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