]> pere.pagekite.me Git - homepage.git/blob - blog/tags/nice free software/index.html
e005b43f4bc8c7cb4915a76db4bc5b068406c9f9
[homepage.git] / blog / tags / nice free software / index.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
4 <head>
5 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
6 <title>Petter Reinholdtsen: Entries Tagged nice free software</title>
7 <link rel="stylesheet" type="text/css" media="screen" href="http://people.skolelinux.org/pere/blog/style.css" />
8 <link rel="stylesheet" type="text/css" media="screen" href="http://people.skolelinux.org/pere/blog/vim.css" />
9 <link rel="alternate" title="RSS Feed" href="nice free software.rss" type="application/rss+xml" />
10 </head>
11 <body>
12 <div class="title">
13 <h1>
14 <a href="http://people.skolelinux.org/pere/blog/">Petter Reinholdtsen</a>
15
16 </h1>
17
18 </div>
19
20
21 <h3>Entries tagged "nice free software".</h3>
22
23 <div class="entry">
24 <div class="title">
25 <a href="http://people.skolelinux.org/pere/blog/OpenALPR__find_car_license_plates_in_video_streams___nice_free_software.html">OpenALPR, find car license plates in video streams - nice free software</a>
26 </div>
27 <div class="date">
28 23rd December 2015
29 </div>
30 <div class="body">
31 <p>When I was a kid, we used to collect "car numbers", as we used to
32 call the car license plate numbers in those days. I would write the
33 numbers down in my little book and compare notes with the other kids
34 to see how many region codes we had seen and if we had seen some
35 exotic or special region codes and numbers. It was a fun game to pass
36 time, as we kids have plenty of it.</p>
37
38 <p>A few days I came across
39 <a href="https://github.com/openalpr/openalpr">the OpenALPR
40 project</a>, a free software project to automatically discover and
41 report license plates in images and video streams, and provide the
42 "car numbers" in a machine readable format. I've been looking for
43 such system for a while now, because I believe it is a bad idea that the
44 <a href="https://en.wikipedia.org/wiki/Automatic_number_plate_recognition">automatic
45 number plate recognition</a> tool only is available in the hands of
46 the powerful, and want it to be available also for the powerless to
47 even the score when it comes to surveillance and sousveillance. I
48 discovered the developer
49 <a href="https://bugs.debian.org/747509">wanted to get the tool into
50 Debian</a>, and as I too wanted it to be in Debian, I volunteered to
51 help him get it into shape to get the package uploaded into the Debian
52 archive.</p>
53
54 <p>Today we finally managed to get the package into shape and uploaded
55 it into Debian, where it currently
56 <a href="https://ftp-master.debian.org//new/openalpr_2.2.1-1.html">waits
57 in the NEW queue</a> for review by the Debian ftpmasters.</p>
58
59 <p>I guess you are wondering why on earth such tool would be useful
60 for the common folks, ie those not running a large government
61 surveillance system? Well, I plan to put it in a computer on my bike
62 and in my car, tracking the cars nearby and allowing me to be notified
63 when number plates on my watch list are discovered. Another use case
64 was suggested by a friend of mine, who wanted to set it up at his home
65 to open the car port automatically when it discovered the plate on his
66 car. When I mentioned it perhaps was a bit foolhardy to allow anyone
67 capable of placing his license plate number of a piece of cardboard to
68 open his car port, men replied that it was always unlocked anyway. I
69 guess for such use case it make sense. I am sure there are other use
70 cases too, for those with imagination and a vision.</p>
71
72 <p>If you want to build your own version of the Debian package, check
73 out the upstream git source and symlink ./distros/debian to ./debian/
74 before running "debuild" to build the source. Or wait a bit until the
75 package show up in unstable.</p>
76
77 </div>
78 <div class="tags">
79
80
81 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software</a>.
82
83
84 </div>
85 </div>
86 <div class="padding"></div>
87
88 <div class="entry">
89 <div class="title">
90 <a href="http://people.skolelinux.org/pere/blog/listadmin__the_quick_way_to_moderate_mailman_lists___nice_free_software.html">listadmin, the quick way to moderate mailman lists - nice free software</a>
91 </div>
92 <div class="date">
93 22nd October 2014
94 </div>
95 <div class="body">
96 <p>If you ever had to moderate a mailman list, like the ones on
97 alioth.debian.org, you know the web interface is fairly slow to
98 operate. First you visit one web page, enter the moderation password
99 and get a new page shown with a list of all the messages to moderate
100 and various options for each email address. This take a while for
101 every list you moderate, and you need to do it regularly to do a good
102 job as a list moderator. But there is a quick alternative,
103 <a href="http://heim.ifi.uio.no/kjetilho/hacks/#listadmin">the
104 listadmin program</a>. It allow you to check lists for new messages
105 to moderate in a fraction of a second. Here is a test run on two
106 lists I recently took over:</p>
107
108 <p><blockquote><pre>
109 % time listadmin xiph
110 fetching data for pkg-xiph-commits@lists.alioth.debian.org ... nothing in queue
111 fetching data for pkg-xiph-maint@lists.alioth.debian.org ... nothing in queue
112
113 real 0m1.709s
114 user 0m0.232s
115 sys 0m0.012s
116 %
117 </pre></blockquote></p>
118
119 <p>In 1.7 seconds I had checked two mailing lists and confirmed that
120 there are no message in the moderation queue. Every morning I
121 currently moderate 68 mailman lists, and it normally take around two
122 minutes. When I took over the two pkg-xiph lists above a few days
123 ago, there were 400 emails waiting in the moderator queue. It took me
124 less than 15 minutes to process them all using the listadmin
125 program.</p>
126
127 <p>If you install
128 <a href="https://tracker.debian.org/pkg/listadmin">the listadmin
129 package</a> from Debian and create a file <tt>~/.listadmin.ini</tt>
130 with content like this, the moderation task is a breeze:</p>
131
132 <p><blockquote><pre>
133 username username@example.org
134 spamlevel 23
135 default discard
136 discard_if_reason "Posting restricted to members only. Remove us from your mail list."
137
138 password secret
139 adminurl https://{domain}/mailman/admindb/{list}
140 mailman-list@lists.example.com
141
142 password hidden
143 other-list@otherserver.example.org
144 </pre></blockquote></p>
145
146 <p>There are other options to set as well. Check the manual page to
147 learn the details.</p>
148
149 <p>If you are forced to moderate lists on a mailman installation where
150 the SSL certificate is self signed or not properly signed by a
151 generally accepted signing authority, you can set a environment
152 variable when calling listadmin to disable SSL verification:</p>
153
154 <p><blockquote><pre>
155 PERL_LWP_SSL_VERIFY_HOSTNAME=0 listadmin
156 </pre></blockquote></p>
157
158 <p>If you want to moderate a subset of the lists you take care of, you
159 can provide an argument to the listadmin script like I do in the
160 initial screen dump (the xiph argument). Using an argument, only
161 lists matching the argument string will be processed. This make it
162 quick to accept messages if you notice the moderation request in your
163 email.</p>
164
165 <p>Without the listadmin program, I would never be the moderator of 68
166 mailing lists, as I simply do not have time to spend on that if the
167 process was any slower. The listadmin program have saved me hours of
168 time I could spend elsewhere over the years. It truly is nice free
169 software.</p>
170
171 <p>As usual, if you use Bitcoin and want to show your support of my
172 activities, please send Bitcoin donations to my address
173 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&label=PetterReinholdtsenBlog">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
174
175 <p>Update 2014-10-27: Added missing 'username' statement in
176 configuration example. Also, I've been told that the
177 PERL_LWP_SSL_VERIFY_HOSTNAME=0 setting do not work for everyone. Not
178 sure why.</p>
179
180 </div>
181 <div class="tags">
182
183
184 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software</a>.
185
186
187 </div>
188 </div>
189 <div class="padding"></div>
190
191 <div class="entry">
192 <div class="title">
193 <a href="http://people.skolelinux.org/pere/blog/S3QL__a_locally_mounted_cloud_file_system___nice_free_software.html">S3QL, a locally mounted cloud file system - nice free software</a>
194 </div>
195 <div class="date">
196 9th April 2014
197 </div>
198 <div class="body">
199 <p>For a while now, I have been looking for a sensible offsite backup
200 solution for use at home. My requirements are simple, it must be
201 cheap and locally encrypted (in other words, I keep the encryption
202 keys, the storage provider do not have access to my private files).
203 One idea me and my friends had many years ago, before the cloud
204 storage providers showed up, was to use Google mail as storage,
205 writing a Linux block device storing blocks as emails in the mail
206 service provided by Google, and thus get heaps of free space. On top
207 of this one can add encryption, RAID and volume management to have
208 lots of (fairly slow, I admit that) cheap and encrypted storage. But
209 I never found time to implement such system. But the last few weeks I
210 have looked at a system called
211 <a href="https://bitbucket.org/nikratio/s3ql/">S3QL</a>, a locally
212 mounted network backed file system with the features I need.</p>
213
214 <p>S3QL is a fuse file system with a local cache and cloud storage,
215 handling several different storage providers, any with Amazon S3,
216 Google Drive or OpenStack API. There are heaps of such storage
217 providers. S3QL can also use a local directory as storage, which
218 combined with sshfs allow for file storage on any ssh server. S3QL
219 include support for encryption, compression, de-duplication, snapshots
220 and immutable file systems, allowing me to mount the remote storage as
221 a local mount point, look at and use the files as if they were local,
222 while the content is stored in the cloud as well. This allow me to
223 have a backup that should survive fire. The file system can not be
224 shared between several machines at the same time, as only one can
225 mount it at the time, but any machine with the encryption key and
226 access to the storage service can mount it if it is unmounted.</p>
227
228 <p>It is simple to use. I'm using it on Debian Wheezy, where the
229 package is included already. So to get started, run <tt>apt-get
230 install s3ql</tt>. Next, pick a storage provider. I ended up picking
231 Greenqloud, after reading their nice recipe on
232 <a href="https://greenqloud.zendesk.com/entries/44611757-How-To-Use-S3QL-to-mount-a-StorageQloud-bucket-on-Debian-Wheezy">how
233 to use S3QL with their Amazon S3 service</a>, because I trust the laws
234 in Iceland more than those in USA when it come to keeping my personal
235 data safe and private, and thus would rather spend money on a company
236 in Iceland. Another nice recipe is available from the article
237 <a href="http://www.admin-magazine.com/HPC/Articles/HPC-Cloud-Storage">S3QL
238 Filesystem for HPC Storage</a> by Jeff Layton in the HPC section of
239 Admin magazine. When the provider is picked, figure out how to get
240 the API key needed to connect to the storage API. With Greencloud,
241 the key did not show up until I had added payment details to my
242 account.</p>
243
244 <p>Armed with the API access details, it is time to create the file
245 system. First, create a new bucket in the cloud. This bucket is the
246 file system storage area. I picked a bucket name reflecting the
247 machine that was going to store data there, but any name will do.
248 I'll refer to it as <tt>bucket-name</tt> below. In addition, one need
249 the API login and password, and a locally created password. Store it
250 all in ~root/.s3ql/authinfo2 like this:
251
252 <p><blockquote><pre>
253 [s3c]
254 storage-url: s3c://s.greenqloud.com:443/bucket-name
255 backend-login: API-login
256 backend-password: API-password
257 fs-passphrase: local-password
258 </pre></blockquote></p>
259
260 <p>I create my local passphrase using <tt>pwget 50</tt> or similar,
261 but any sensible way to create a fairly random password should do it.
262 Armed with these details, it is now time to run mkfs, entering the API
263 details and password to create it:</p>
264
265 <p><blockquote><pre>
266 # mkdir -m 700 /var/lib/s3ql-cache
267 # mkfs.s3ql --cachedir /var/lib/s3ql-cache --authfile /root/.s3ql/authinfo2 \
268 --ssl s3c://s.greenqloud.com:443/bucket-name
269 Enter backend login:
270 Enter backend password:
271 Before using S3QL, make sure to read the user's guide, especially
272 the 'Important Rules to Avoid Loosing Data' section.
273 Enter encryption password:
274 Confirm encryption password:
275 Generating random encryption key...
276 Creating metadata tables...
277 Dumping metadata...
278 ..objects..
279 ..blocks..
280 ..inodes..
281 ..inode_blocks..
282 ..symlink_targets..
283 ..names..
284 ..contents..
285 ..ext_attributes..
286 Compressing and uploading metadata...
287 Wrote 0.00 MB of compressed metadata.
288 # </pre></blockquote></p>
289
290 <p>The next step is mounting the file system to make the storage available.
291
292 <p><blockquote><pre>
293 # mount.s3ql --cachedir /var/lib/s3ql-cache --authfile /root/.s3ql/authinfo2 \
294 --ssl --allow-root s3c://s.greenqloud.com:443/bucket-name /s3ql
295 Using 4 upload threads.
296 Downloading and decompressing metadata...
297 Reading metadata...
298 ..objects..
299 ..blocks..
300 ..inodes..
301 ..inode_blocks..
302 ..symlink_targets..
303 ..names..
304 ..contents..
305 ..ext_attributes..
306 Mounting filesystem...
307 # df -h /s3ql
308 Filesystem Size Used Avail Use% Mounted on
309 s3c://s.greenqloud.com:443/bucket-name 1.0T 0 1.0T 0% /s3ql
310 #
311 </pre></blockquote></p>
312
313 <p>The file system is now ready for use. I use rsync to store my
314 backups in it, and as the metadata used by rsync is downloaded at
315 mount time, no network traffic (and storage cost) is triggered by
316 running rsync. To unmount, one should not use the normal umount
317 command, as this will not flush the cache to the cloud storage, but
318 instead running the umount.s3ql command like this:
319
320 <p><blockquote><pre>
321 # umount.s3ql /s3ql
322 #
323 </pre></blockquote></p>
324
325 <p>There is a fsck command available to check the file system and
326 correct any problems detected. This can be used if the local server
327 crashes while the file system is mounted, to reset the "already
328 mounted" flag. This is what it look like when processing a working
329 file system:</p>
330
331 <p><blockquote><pre>
332 # fsck.s3ql --force --ssl s3c://s.greenqloud.com:443/bucket-name
333 Using cached metadata.
334 File system seems clean, checking anyway.
335 Checking DB integrity...
336 Creating temporary extra indices...
337 Checking lost+found...
338 Checking cached objects...
339 Checking names (refcounts)...
340 Checking contents (names)...
341 Checking contents (inodes)...
342 Checking contents (parent inodes)...
343 Checking objects (reference counts)...
344 Checking objects (backend)...
345 ..processed 5000 objects so far..
346 ..processed 10000 objects so far..
347 ..processed 15000 objects so far..
348 Checking objects (sizes)...
349 Checking blocks (referenced objects)...
350 Checking blocks (refcounts)...
351 Checking inode-block mapping (blocks)...
352 Checking inode-block mapping (inodes)...
353 Checking inodes (refcounts)...
354 Checking inodes (sizes)...
355 Checking extended attributes (names)...
356 Checking extended attributes (inodes)...
357 Checking symlinks (inodes)...
358 Checking directory reachability...
359 Checking unix conventions...
360 Checking referential integrity...
361 Dropping temporary indices...
362 Backing up old metadata...
363 Dumping metadata...
364 ..objects..
365 ..blocks..
366 ..inodes..
367 ..inode_blocks..
368 ..symlink_targets..
369 ..names..
370 ..contents..
371 ..ext_attributes..
372 Compressing and uploading metadata...
373 Wrote 0.89 MB of compressed metadata.
374 #
375 </pre></blockquote></p>
376
377 <p>Thanks to the cache, working on files that fit in the cache is very
378 quick, about the same speed as local file access. Uploading large
379 amount of data is to me limited by the bandwidth out of and into my
380 house. Uploading 685 MiB with a 100 MiB cache gave me 305 kiB/s,
381 which is very close to my upload speed, and downloading the same
382 Debian installation ISO gave me 610 kiB/s, close to my download speed.
383 Both were measured using <tt>dd</tt>. So for me, the bottleneck is my
384 network, not the file system code. I do not know what a good cache
385 size would be, but suspect that the cache should e larger than your
386 working set.</p>
387
388 <p>I mentioned that only one machine can mount the file system at the
389 time. If another machine try, it is told that the file system is
390 busy:</p>
391
392 <p><blockquote><pre>
393 # mount.s3ql --cachedir /var/lib/s3ql-cache --authfile /root/.s3ql/authinfo2 \
394 --ssl --allow-root s3c://s.greenqloud.com:443/bucket-name /s3ql
395 Using 8 upload threads.
396 Backend reports that fs is still mounted elsewhere, aborting.
397 #
398 </pre></blockquote></p>
399
400 <p>The file content is uploaded when the cache is full, while the
401 metadata is uploaded once every 24 hour by default. To ensure the
402 file system content is flushed to the cloud, one can either umount the
403 file system, or ask S3QL to flush the cache and metadata using
404 s3qlctrl:
405
406 <p><blockquote><pre>
407 # s3qlctrl upload-meta /s3ql
408 # s3qlctrl flushcache /s3ql
409 #
410 </pre></blockquote></p>
411
412 <p>If you are curious about how much space your data uses in the
413 cloud, and how much compression and deduplication cut down on the
414 storage usage, you can use s3qlstat on the mounted file system to get
415 a report:</p>
416
417 <p><blockquote><pre>
418 # s3qlstat /s3ql
419 Directory entries: 9141
420 Inodes: 9143
421 Data blocks: 8851
422 Total data size: 22049.38 MB
423 After de-duplication: 21955.46 MB (99.57% of total)
424 After compression: 21877.28 MB (99.22% of total, 99.64% of de-duplicated)
425 Database size: 2.39 MB (uncompressed)
426 (some values do not take into account not-yet-uploaded dirty blocks in cache)
427 #
428 </pre></blockquote></p>
429
430 <p>I mentioned earlier that there are several possible suppliers of
431 storage. I did not try to locate them all, but am aware of at least
432 <a href="https://www.greenqloud.com/">Greenqloud</a>,
433 <a href="http://drive.google.com/">Google Drive</a>,
434 <a href="http://aws.amazon.com/s3/">Amazon S3 web serivces</a>,
435 <a href="http://www.rackspace.com/">Rackspace</a> and
436 <a href="http://crowncloud.net/">Crowncloud</A>. The latter even
437 accept payment in Bitcoin. Pick one that suit your need. Some of
438 them provide several GiB of free storage, but the prize models are
439 quite different and you will have to figure out what suits you
440 best.</p>
441
442 <p>While researching this blog post, I had a look at research papers
443 and posters discussing the S3QL file system. There are several, which
444 told me that the file system is getting a critical check by the
445 science community and increased my confidence in using it. One nice
446 poster is titled
447 "<a href="http://www.lanl.gov/orgs/adtsc/publications/science_highlights_2013/docs/pg68_69.pdf">An
448 Innovative Parallel Cloud Storage System using OpenStack’s SwiftObject
449 Store and Transformative Parallel I/O Approach</a>" by Hsing-Bung
450 Chen, Benjamin McClelland, David Sherrill, Alfred Torrez, Parks Fields
451 and Pamela Smith. Please have a look.</p>
452
453 <p>Given my problems with different file systems earlier, I decided to
454 check out the mounted S3QL file system to see if it would be usable as
455 a home directory (in other word, that it provided POSIX semantics when
456 it come to locking and umask handling etc). Running
457 <a href="http://people.skolelinux.org/pere/blog/Testing_if_a_file_system_can_be_used_for_home_directories___.html">my
458 test code to check file system semantics</a>, I was happy to discover that
459 no error was found. So the file system can be used for home
460 directories, if one chooses to do so.</p>
461
462 <p>If you do not want a locally file system, and want something that
463 work without the Linux fuse file system, I would like to mention the
464 <a href="http://www.tarsnap.com/">Tarsnap service</a>, which also
465 provide locally encrypted backup using a command line client. It have
466 a nicer access control system, where one can split out read and write
467 access, allowing some systems to write to the backup and others to
468 only read from it.</p>
469
470 <p>As usual, if you use Bitcoin and want to show your support of my
471 activities, please send Bitcoin donations to my address
472 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&label=PetterReinholdtsenBlog">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
473
474 </div>
475 <div class="tags">
476
477
478 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>.
479
480
481 </div>
482 </div>
483 <div class="padding"></div>
484
485 <div class="entry">
486 <div class="title">
487 <a href="http://people.skolelinux.org/pere/blog/ReactOS_Windows_clone___nice_free_software.html">ReactOS Windows clone - nice free software</a>
488 </div>
489 <div class="date">
490 1st April 2014
491 </div>
492 <div class="body">
493 <p>Microsoft have announced that Windows XP reaches its end of life
494 2014-04-08, in 7 days. But there are heaps of machines still running
495 Windows XP, and depending on Windows XP to run their applications, and
496 upgrading will be expensive, both when it comes to money and when it
497 comes to the amount of effort needed to migrate from Windows XP to a
498 new operating system. Some obvious options (buy new a Windows
499 machine, buy a MacOSX machine, install Linux on the existing machine)
500 are already well known and covered elsewhere. Most of them involve
501 leaving the user applications installed on Windows XP behind and
502 trying out replacements or updated versions. In this blog post I want
503 to mention one strange bird that allow people to keep the hardware and
504 the existing Windows XP applications and run them on a free software
505 operating system that is Windows XP compatible.</p>
506
507 <p><a href="http://www.reactos.org/">ReactOS</a> is a free software
508 operating system (GNU GPL licensed) working on providing a operating
509 system that is binary compatible with Windows, able to run windows
510 programs directly and to use Windows drivers for hardware directly.
511 The project goal is for Windows user to keep their existing machines,
512 drivers and software, and gain the advantages from user a operating
513 system without usage limitations caused by non-free licensing. It is
514 a Windows clone running directly on the hardware, so quite different
515 from the approach taken by <a href="http://www.winehq.org/">the Wine
516 project</a>, which make it possible to run Windows binaries on
517 Linux.</p>
518
519 <p>The ReactOS project share code with the Wine project, so most
520 shared libraries available on Windows are already implemented already.
521 There is also a software manager like the one we are used to on Linux,
522 allowing the user to install free software applications with a simple
523 click directly from the Internet. Check out the
524 <a href="http://www.reactos.org/screenshots">screen shots on the
525 project web site</a> for an idea what it look like (it looks just like
526 Windows before metro).</p>
527
528 <p>I do not use ReactOS myself, preferring Linux and Unix like
529 operating systems. I've tested it, and it work fine in a virt-manager
530 virtual machine. The browser, minesweeper, notepad etc is working
531 fine as far as I can tell. Unfortunately, my main test application
532 is the software included on a CD with the Lego Mindstorms NXT, which
533 seem to install just fine from CD but fail to leave any binaries on
534 the disk after the installation. So no luck with that test software.
535 No idea why, but hope someone else figure out and fix the problem.
536 I've tried the ReactOS Live ISO on a physical machine, and it seemed
537 to work just fine. If you like Windows and want to keep running your
538 old Windows binaries, check it out by
539 <a href="http://www.reactos.org/download">downloading</a> the
540 installation CD, the live CD or the preinstalled virtual machine
541 image.</p>
542
543 </div>
544 <div class="tags">
545
546
547 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software</a>, <a href="http://people.skolelinux.org/pere/blog/tags/reactos">reactos</a>.
548
549
550 </div>
551 </div>
552 <div class="padding"></div>
553
554 <div class="entry">
555 <div class="title">
556 <a href="http://people.skolelinux.org/pere/blog/Video_DVD_reader_library___python_dvdvideo___nice_free_software.html">Video DVD reader library / python-dvdvideo - nice free software</a>
557 </div>
558 <div class="date">
559 21st March 2014
560 </div>
561 <div class="body">
562 <p>Keeping your DVD collection safe from scratches and curious
563 children fingers while still having it available when you want to see a
564 movie is not straight forward. My preferred method at the moment is
565 to store a full copy of the ISO on a hard drive, and use VLC, Popcorn
566 Hour or other useful players to view the resulting file. This way the
567 subtitles and bonus material are still available and using the ISO is
568 just like inserting the original DVD record in the DVD player.</p>
569
570 <p>Earlier I used dd for taking security copies, but it do not handle
571 DVDs giving read errors (which are quite a few of them). I've also
572 tried using
573 <a href="http://people.skolelinux.org/pere/blog/Ripping_problematic_DVDs_using_dvdbackup_and_genisoimage.html">dvdbackup
574 and genisoimage</a>, but these days I use the marvellous python library
575 and program
576 <a href="http://bblank.thinkmo.de/blog/new-software-python-dvdvideo">python-dvdvideo</a>
577 written by Bastian Blank. It is
578 <a href="http://packages.qa.debian.org/p/python-dvdvideo.html">in Debian
579 already</a> and the binary package name is python3-dvdvideo. Instead
580 of trying to read every block from the DVD, it parses the file
581 structure and figure out which block on the DVD is actually in used,
582 and only read those blocks from the DVD. This work surprisingly well,
583 and I have been able to almost backup my entire DVD collection using
584 this method.</p>
585
586 <p>So far, python-dvdvideo have failed on between 10 and
587 20 DVDs, which is a small fraction of my collection. The most common
588 problem is
589 <a href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=720831">DVDs
590 using UTF-16 instead of UTF-8 characters</a>, which according to
591 Bastian is against the DVD specification (and seem to cause some
592 players to fail too). A rarer problem is what seem to be inconsistent
593 DVD structures, as the python library
594 <a href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=723079">claim
595 there is a overlap between objects</a>. An equally rare problem claim
596 <a href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=741878">some
597 value is out of range</a>. No idea what is going on there. I wish I
598 knew enough about the DVD format to fix these, to ensure my movie
599 collection will stay with me in the future.</p>
600
601 <p>So, if you need to keep your DVDs safe, back them up using
602 python-dvdvideo. :)</p>
603
604 </div>
605 <div class="tags">
606
607
608 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
609
610
611 </div>
612 </div>
613 <div class="padding"></div>
614
615 <div class="entry">
616 <div class="title">
617 <a href="http://people.skolelinux.org/pere/blog/Free_Timetabling_Software___nice_free_software.html">Free Timetabling Software - nice free software</a>
618 </div>
619 <div class="date">
620 7th July 2012
621 </div>
622 <div class="body">
623 <p>Included in <a href="http://www.skolelinux.org/">Debian Edu /
624 Skolelinux</a> is a large collection of end user and school specific
625 software. It is one of the packages not installed by default but
626 provided in the Debian archive for schools to install if they want to,
627 is a system to automatically plan the school time table using
628 information about available teachers, classes and rooms, combined with
629 the list of required courses and how many hours each topic should
630 receive. The software is
631
632 <a href="http://lalescu.ro/liviu/fet/">named FET</a>, and it provide a
633 graphical user interface to input the required information, save the
634 result in a fairly simple XML format, and generate time tables for
635 both teachers and students. It is available both for
636 <a href="http://lalescu.ro/liviu/fet/download.html">Linux, MacOSX and
637 Windows</a>.</p>
638
639 <p>This is <a href="http://lalescu.ro/liviu/fet/features.html">the
640 feature list</a>, liftet from the project web site:</p>
641
642 <p><ul>
643
644 <li>FET is free software, licensed under the GNU GPL v2 or later.
645 You can freely use, copy, modify and redistribute it </li>
646
647 <li>Localized to en_US (US English, default), ar (Arabic), ca
648 (Catalan), da (Danish), de (German), el (Greek), es (Spanish), fa
649 (Persian), fr (French), gl (Galician), he (Hebrew), hu
650 (Hungarian), id (Indonesian), it (Italian), lt (Lithuanian), mk
651 (Macedonian), ms (Malay), nl (Dutch), pl (Polish), pt_BR
652 (Brazilian Portuguese), ro (Romanian), ru (Russian), si (Sinhala),
653 sk (Slovak), sr (Serbian), tr (Turkish), uk (Ukrainian), uz
654 (Uzbek) and vi (Vietnamese) (incompletely for some languages)
655 </li>
656
657 <li>Fully automatic generation algorithm, allowing also
658 semi-automatic or manual allocation</li>
659
660 <li>Platform independent implementation, allowing running on
661 GNU/Linux, Windows, Mac and any system that Qt supports </li>
662
663 <li>Flexible modular XML format for the input file, allowing editing
664 with an XML editor or by hand (besides FET interface)</li>
665
666 <li>Import/export from CSV format</li>
667
668 <li>The resulted timetables are exported into HTML, XML and CSV
669 formats </li>
670
671 <li>Flexible students structure, organized into sets: years, groups
672 and subgroups. FET allows overlapping years and groups and
673 non-overlapping subgroups. You can even define individual students
674 (as separate sets)</li>
675
676 <li>Each constraint has a weight percentage, from 0.0% to 100.0%
677 (but some special constraints are allowed to have only 100% weight
678 percentage)</li>
679
680 <li>Limits for the algorithm (all these limits can be increased on
681 demand, as a custom version, because this would require a bit more
682 memory):
683 <ul>
684 <li>Maximum total number of hours (periods) per day: 60</li>
685 <li>Maximum number of working days per week: 35</li>
686 <li>Maximum total number of teachers: 6000</li>
687 <li>Maximum total number of sets of students: 30000</li>
688 <li>Maximum total number of subjects: 6000</li>
689 <li>Virtually unlimited number of activity tags</li>
690 <li>Maximum number of activities: 30000</li>
691 <li>Maximum number of rooms: 6000</li>
692 <li>Maximum number of buildings: 6000</li>
693 <li>Possibility of adding multiple teachers and
694 students sets for each activity. (it is possible
695 also to have no teachers or no students sets for an
696 activity)</li>
697 <li>Virtually unlimited number of time constraints</li>
698 <li>Virtually unlimited number of space constraints</li>
699 </ul></li>
700
701 <li>A large and flexible palette of time constraints:
702 <ul>
703 <li>Break periods</li>
704 <li>For teacher(s):
705 <ul>
706 <li>Not available periods</li>
707 <li>Max/min days per week</li>
708 <li>Max gaps per day/week</li>
709 <li>Max hours daily/continuously</li>
710 <li>Min hours daily</li>
711 <li>Max hours daily/continuously with an activity tag</li>
712
713 <li>Respect working in an hourly interval a max number of
714 days per week</li>
715 </ul></li>
716 <li>For students (sets):
717 <ul>
718 <li>Not available periods</li>
719 <li>Begins early (specify max allowed beginnings at second hour)</li>
720 <li>Max gaps per day/week</li>
721 <li>Max hours daily/continuously</li>
722 <li>Min hours daily</li>
723 <li>Max hours daily/continuously with an activity tag</li>
724
725 <li>Respect working in an hourly interval a max number of
726 days per week</li>
727 </ul></li>
728 <li>For an activity or a set of activities/subactivities:
729 <ul>
730 <li>A single preferred starting time</li>
731 <li>A set of preferred starting times</li>
732 <li>A set of preferred time slots</li>
733 <li>Min/max days between them</li>
734 <li>End(s) students day</li>
735 <li>Same starting time/day/hour</li>
736 <li>Occupy max time slots from selection (a complex and
737 flexible constraint, useful in many situations)</li>
738 <li>Consecutive, ordered, grouped (for 2 or 3 (sub)activities)</li>
739 <li>Not overlapping</li>
740 <li>Max simultaneous in selected time slots</li>
741 <li>Min gaps between a set of (sub)activities</li>
742 </ul></li>
743 </ul></li>
744
745 <li>A large and flexible palette of space constraints:
746 <ul>
747 <li>Room not available periods</li>
748 <li>For teacher(s):
749 <ul>
750 <li>Home room(s)</li>
751 <li>Max building changes per day/week</li>
752 <li>Min gaps between building changes</li>
753 </ul>
754 </li>
755
756 <li>For students (sets):
757 <ul>
758 <li>Home room(s)</li>
759 <li>Max building changes per day/week</li>
760 <li>Min gaps between building changes</li>
761 </ul>
762 </li>
763 <li>Preferred room(s):
764 <ul>
765 <li>For a subject</li>
766 <li>For an activity tag</li>
767 <li>For a subject and an activity tag</li>
768 <li>Individually for a (sub)activity</li>
769 </ul>
770 </li>
771
772 <li>For a set of activities:
773 <ul>
774 <li>Occupy a maximum number of different rooms</li>
775 </ul>
776 </li>
777 </ul>
778 </li>
779 </ul></p>
780
781 <p>I have not used it myself, as I am not involved in time table
782 planning at a school, but it seem to work fine when I test it. If you
783 need to set up your schools time table, and is tired of doing it
784 manually, check it out.
785
786 A quick summary on how to use it can be found in
787 <a href="http://marvelsoft.co.in/wp/2012/03/generate-timetable-for-state-cbse-icse-igcse-schools-free/">a
788 blog post from MarvelSoft</a>. If you find FET useful, please provide
789 a recipe for the Debian Edu project in the
790 <a href="http://wiki.debian.org/DebianEdu#Howtos">Debian Edu HowTo
791 section</a>.</p>
792
793 </div>
794 <div class="tags">
795
796
797 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software</a>.
798
799
800 </div>
801 </div>
802 <div class="padding"></div>
803
804 <p style="text-align: right;"><a href="nice free software.rss"><img src="http://people.skolelinux.org/pere/blog/xml.gif" alt="RSS Feed" width="36" height="14" /></a></p>
805 <div id="sidebar">
806
807
808
809 <h2>Archive</h2>
810 <ul>
811
812 <li>2016
813 <ul>
814
815 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/01/">January (2)</a></li>
816
817 </ul></li>
818
819 <li>2015
820 <ul>
821
822 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/01/">January (7)</a></li>
823
824 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/02/">February (6)</a></li>
825
826 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/03/">March (1)</a></li>
827
828 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/04/">April (4)</a></li>
829
830 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/05/">May (3)</a></li>
831
832 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/06/">June (4)</a></li>
833
834 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/07/">July (6)</a></li>
835
836 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/08/">August (2)</a></li>
837
838 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/09/">September (2)</a></li>
839
840 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/10/">October (9)</a></li>
841
842 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/11/">November (6)</a></li>
843
844 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/12/">December (3)</a></li>
845
846 </ul></li>
847
848 <li>2014
849 <ul>
850
851 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/01/">January (2)</a></li>
852
853 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/02/">February (3)</a></li>
854
855 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/03/">March (8)</a></li>
856
857 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/04/">April (7)</a></li>
858
859 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/05/">May (1)</a></li>
860
861 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/06/">June (2)</a></li>
862
863 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/07/">July (2)</a></li>
864
865 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/08/">August (2)</a></li>
866
867 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/09/">September (5)</a></li>
868
869 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/10/">October (6)</a></li>
870
871 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/11/">November (3)</a></li>
872
873 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/12/">December (5)</a></li>
874
875 </ul></li>
876
877 <li>2013
878 <ul>
879
880 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/01/">January (11)</a></li>
881
882 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/02/">February (9)</a></li>
883
884 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/03/">March (9)</a></li>
885
886 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/04/">April (6)</a></li>
887
888 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/05/">May (9)</a></li>
889
890 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/06/">June (10)</a></li>
891
892 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/07/">July (7)</a></li>
893
894 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/08/">August (3)</a></li>
895
896 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/09/">September (5)</a></li>
897
898 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/10/">October (7)</a></li>
899
900 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/11/">November (9)</a></li>
901
902 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/12/">December (3)</a></li>
903
904 </ul></li>
905
906 <li>2012
907 <ul>
908
909 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/01/">January (7)</a></li>
910
911 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/02/">February (10)</a></li>
912
913 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/03/">March (17)</a></li>
914
915 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/04/">April (12)</a></li>
916
917 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/05/">May (12)</a></li>
918
919 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/06/">June (20)</a></li>
920
921 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/07/">July (17)</a></li>
922
923 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/08/">August (6)</a></li>
924
925 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/09/">September (9)</a></li>
926
927 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/10/">October (17)</a></li>
928
929 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/11/">November (10)</a></li>
930
931 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/12/">December (7)</a></li>
932
933 </ul></li>
934
935 <li>2011
936 <ul>
937
938 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/01/">January (16)</a></li>
939
940 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/02/">February (6)</a></li>
941
942 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/03/">March (6)</a></li>
943
944 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/04/">April (7)</a></li>
945
946 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/05/">May (3)</a></li>
947
948 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/06/">June (2)</a></li>
949
950 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/07/">July (7)</a></li>
951
952 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/08/">August (6)</a></li>
953
954 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/09/">September (4)</a></li>
955
956 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/10/">October (2)</a></li>
957
958 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/11/">November (3)</a></li>
959
960 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/12/">December (1)</a></li>
961
962 </ul></li>
963
964 <li>2010
965 <ul>
966
967 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/01/">January (2)</a></li>
968
969 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/02/">February (1)</a></li>
970
971 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/03/">March (3)</a></li>
972
973 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/04/">April (3)</a></li>
974
975 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/05/">May (9)</a></li>
976
977 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/06/">June (14)</a></li>
978
979 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/07/">July (12)</a></li>
980
981 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/08/">August (13)</a></li>
982
983 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/09/">September (7)</a></li>
984
985 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/10/">October (9)</a></li>
986
987 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/11/">November (13)</a></li>
988
989 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/12/">December (12)</a></li>
990
991 </ul></li>
992
993 <li>2009
994 <ul>
995
996 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/01/">January (8)</a></li>
997
998 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/02/">February (8)</a></li>
999
1000 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/03/">March (12)</a></li>
1001
1002 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/04/">April (10)</a></li>
1003
1004 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/05/">May (9)</a></li>
1005
1006 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/06/">June (3)</a></li>
1007
1008 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/07/">July (4)</a></li>
1009
1010 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/08/">August (3)</a></li>
1011
1012 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/09/">September (1)</a></li>
1013
1014 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/10/">October (2)</a></li>
1015
1016 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/11/">November (3)</a></li>
1017
1018 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/12/">December (3)</a></li>
1019
1020 </ul></li>
1021
1022 <li>2008
1023 <ul>
1024
1025 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/11/">November (5)</a></li>
1026
1027 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/12/">December (7)</a></li>
1028
1029 </ul></li>
1030
1031 </ul>
1032
1033
1034
1035 <h2>Tags</h2>
1036 <ul>
1037
1038 <li><a href="http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (13)</a></li>
1039
1040 <li><a href="http://people.skolelinux.org/pere/blog/tags/amiga">amiga (1)</a></li>
1041
1042 <li><a href="http://people.skolelinux.org/pere/blog/tags/aros">aros (1)</a></li>
1043
1044 <li><a href="http://people.skolelinux.org/pere/blog/tags/bankid">bankid (4)</a></li>
1045
1046 <li><a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (9)</a></li>
1047
1048 <li><a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (15)</a></li>
1049
1050 <li><a href="http://people.skolelinux.org/pere/blog/tags/bsa">bsa (2)</a></li>
1051
1052 <li><a href="http://people.skolelinux.org/pere/blog/tags/chrpath">chrpath (2)</a></li>
1053
1054 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian">debian (117)</a></li>
1055
1056 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (154)</a></li>
1057
1058 <li><a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan (10)</a></li>
1059
1060 <li><a href="http://people.skolelinux.org/pere/blog/tags/dld">dld (15)</a></li>
1061
1062 <li><a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook (20)</a></li>
1063
1064 <li><a href="http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
1065
1066 <li><a href="http://people.skolelinux.org/pere/blog/tags/english">english (299)</a></li>
1067
1068 <li><a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (23)</a></li>
1069
1070 <li><a href="http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (12)</a></li>
1071
1072 <li><a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (25)</a></li>
1073
1074 <li><a href="http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox (9)</a></li>
1075
1076 <li><a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (16)</a></li>
1077
1078 <li><a href="http://people.skolelinux.org/pere/blog/tags/h264">h264 (20)</a></li>
1079
1080 <li><a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju (42)</a></li>
1081
1082 <li><a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram (11)</a></li>
1083
1084 <li><a href="http://people.skolelinux.org/pere/blog/tags/kart">kart (19)</a></li>
1085
1086 <li><a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap (9)</a></li>
1087
1088 <li><a href="http://people.skolelinux.org/pere/blog/tags/lenker">lenker (8)</a></li>
1089
1090 <li><a href="http://people.skolelinux.org/pere/blog/tags/lsdvd">lsdvd (2)</a></li>
1091
1092 <li><a href="http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (1)</a></li>
1093
1094 <li><a href="http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network (8)</a></li>
1095
1096 <li><a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (37)</a></li>
1097
1098 <li><a href="http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software (6)</a></li>
1099
1100 <li><a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk (273)</a></li>
1101
1102 <li><a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug (177)</a></li>
1103
1104 <li><a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (22)</a></li>
1105
1106 <li><a href="http://people.skolelinux.org/pere/blog/tags/open311">open311 (2)</a></li>
1107
1108 <li><a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (58)</a></li>
1109
1110 <li><a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern (92)</a></li>
1111
1112 <li><a href="http://people.skolelinux.org/pere/blog/tags/raid">raid (1)</a></li>
1113
1114 <li><a href="http://people.skolelinux.org/pere/blog/tags/reactos">reactos (1)</a></li>
1115
1116 <li><a href="http://people.skolelinux.org/pere/blog/tags/reprap">reprap (11)</a></li>
1117
1118 <li><a href="http://people.skolelinux.org/pere/blog/tags/rfid">rfid (3)</a></li>
1119
1120 <li><a href="http://people.skolelinux.org/pere/blog/tags/robot">robot (9)</a></li>
1121
1122 <li><a href="http://people.skolelinux.org/pere/blog/tags/rss">rss (1)</a></li>
1123
1124 <li><a href="http://people.skolelinux.org/pere/blog/tags/ruter">ruter (4)</a></li>
1125
1126 <li><a href="http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (2)</a></li>
1127
1128 <li><a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (45)</a></li>
1129
1130 <li><a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (4)</a></li>
1131
1132 <li><a href="http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (4)</a></li>
1133
1134 <li><a href="http://people.skolelinux.org/pere/blog/tags/standard">standard (48)</a></li>
1135
1136 <li><a href="http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (3)</a></li>
1137
1138 <li><a href="http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (10)</a></li>
1139
1140 <li><a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (36)</a></li>
1141
1142 <li><a href="http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (2)</a></li>
1143
1144 <li><a href="http://people.skolelinux.org/pere/blog/tags/usenix">usenix (2)</a></li>
1145
1146 <li><a href="http://people.skolelinux.org/pere/blog/tags/valg">valg (8)</a></li>
1147
1148 <li><a href="http://people.skolelinux.org/pere/blog/tags/video">video (55)</a></li>
1149
1150 <li><a href="http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (4)</a></li>
1151
1152 <li><a href="http://people.skolelinux.org/pere/blog/tags/web">web (38)</a></li>
1153
1154 </ul>
1155
1156
1157 </div>
1158 <p style="text-align: right">
1159 Created by <a href="http://steve.org.uk/Software/chronicle">Chronicle v4.6</a>
1160 </p>
1161
1162 </body>
1163 </html>