]> pere.pagekite.me Git - homepage.git/blob - blog/index.html
d97fb9135e5073436796d311e628a70f2a8c527c
[homepage.git] / blog / 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</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="http://people.skolelinux.org/pere/blog/index.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
22 <div class="entry">
23 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Making_battery_measurements_a_little_easier_in_Debian.html">Making battery measurements a little easier in Debian</a></div>
24 <div class="date">15th March 2016</div>
25 <div class="body"><p>Back in September, I blogged about
26 <a href="http://people.skolelinux.org/pere/blog/The_life_and_death_of_a_laptop_battery.html">the
27 system I wrote to collect statistics about my laptop battery</a>, and
28 how it showed the decay and death of this battery (now replaced). I
29 created a simple deb package to handle the collection and graphing,
30 but did not want to upload it to Debian as there were already
31 <a href="https://tracker.debian.org/pkg/battery-stats">a battery-stats
32 package in Debian</a> that should do the same thing, and I did not see
33 a point of uploading a competing package when battery-stats could be
34 fixed instead. I reported a few bugs about its non-function, and
35 hoped someone would step in and fix it. But no-one did.</p>
36
37 <p>I got tired of waiting a few days ago, and took matters in my own
38 hands. The end result is that I am now the new upstream developer of
39 battery stats (<a href="https://github.com/petterreinholdtsen/battery-stats">available from github</a>) and part of the team maintaining
40 battery-stats in Debian, and the package in Debian unstable is finally
41 able to collect battery status using the <tt>/sys/class/power_supply/</tt>
42 information provided by the Linux kernel. If you install the
43 battery-stats package from unstable now, you will be able to get a
44 graph of the current battery fill level, to get some idea about the
45 status of the battery. The source package build and work just fine in
46 Debian testing and stable (and probably oldstable too, but I have not
47 tested). The default graph you get for that system look like this:</p>
48
49 <p align="center"><img src="http://people.skolelinux.org/pere/blog/images/2016-03-15-battery-stats-graph-example.png" width="70%" align="center"></p>
50
51 <p>My plans for the future is to merge my old scripts into the
52 battery-stats package, as my old scripts collected a lot more details
53 about the battery. The scripts are merged into the upstream
54 battery-stats git repository already, but I am not convinced they work
55 yet, as I changed a lot of paths along the way. Will have to test a
56 bit more before I make a new release.</p>
57
58 <p>I will also consider changing the file format slightly, as I
59 suspect the way I combine several values into one field might make it
60 impossible to know the type of the value when using it for processing
61 and graphing.</p>
62
63 <p>If you would like I would like to keep an close eye on your laptop
64 battery, check out the battery-stats package in
65 <a href="https://tracker.debian.org/pkg/battery-stats">Debian</a> and
66 on
67 <a href="https://github.com/petterreinholdtsen/battery-stats">github</a>.
68 I would love some help to improve the system further.</p>
69 </div>
70 <div class="tags">
71
72
73 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>.
74
75
76 </div>
77 </div>
78 <div class="padding"></div>
79
80 <div class="entry">
81 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Creating__updating_and_checking_debian_copyright_semi_automatically.html">Creating, updating and checking debian/copyright semi-automatically</a></div>
82 <div class="date">19th February 2016</div>
83 <div class="body"><p>Making packages for Debian requires quite a lot of attention to
84 details. And one of the details is the content of the
85 debian/copyright file, which should list all relevant licenses used by
86 the code in the package in question, preferably in
87 <a href="https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/">machine
88 readable DEP5 format</a>.</p>
89
90 <p>For large packages with lots of contributors it is hard to write
91 and update this file manually, and if you get some detail wrong, the
92 package is normally rejected by the ftpmasters. So getting it right
93 the first time around get the package into Debian faster, and save
94 both you and the ftpmasters some work.. Today, while trying to figure
95 out what was wrong with
96 <a href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=686447">the
97 zfsonlinux copyright file</a>, I decided to spend some time on
98 figuring out the options for doing this job automatically, or at least
99 semi-automatically.</p>
100
101 <p>Lucikly, there are at least two tools available for generating the
102 file based on the code in the source package,
103 <tt><a href="https://tracker.debian.org/pkg/debmake">debmake</a></tt>
104 and <tt><a href="https://tracker.debian.org/pkg/cme">cme</a></tt>. I'm
105 not sure which one of them came first, but both seem to be able to
106 create a sensible draft file. As far as I can tell, none of them can
107 be trusted to get the result just right, so the content need to be
108 polished a bit before the file is OK to upload. I found the debmake
109 option in
110 <a href="http://goofying-with-debian.blogspot.com/2014/07/debmake-checking-source-against-dep-5.html">a
111 blog posts from 2014</a>.
112
113 <p>To generate using debmake, use the -cc option:
114
115 <p><pre>
116 debmake -cc > debian/copyright
117 </pre></p>
118
119 <p>Note there are some problems with python and non-ASCII names, so
120 this might not be the best option.</p>
121
122 <p>The cme option is based on a config parsing library, and I found
123 this approach in
124 <a href="https://ddumont.wordpress.com/2015/04/05/improving-creation-of-debian-copyright-file/">a
125 blog post from 2015</a>. To generate using cme, use the 'update
126 dpkg-copyright' option:
127
128 <p><pre>
129 cme update dpkg-copyright
130 </pre></p>
131
132 <p>This will create or update debian/copyright. The cme tool seem to
133 handle UTF-8 names better than debmake.</p>
134
135 <p>When the copyright file is created, I would also like some help to
136 check if the file is correct. For this I found two good options,
137 <tt>debmake -k</tt> and <tt>license-reconcile</tt>. The former seem
138 to focus on license types and file matching, and is able to detect
139 ineffective blocks in the copyright file. The latter reports missing
140 copyright holders and years, but was confused by inconsistent license
141 names (like CDDL vs. CDDL-1.0). I suspect it is good to use both and
142 fix all issues reported by them before uploading. But I do not know
143 if the tools and the ftpmasters agree on what is important to fix in a
144 copyright file, so the package might still be rejected.</p>
145
146 <p>The devscripts tool <tt>licensecheck</tt> deserve mentioning. It
147 will read through the source and try to find all copyright statements.
148 It is not comparing the result to the content of debian/copyright, but
149 can be useful when verifying the content of the copyright file.</p>
150
151 <p>Are you aware of better tools in Debian to create and update
152 debian/copyright file. Please let me know, or blog about it on
153 planet.debian.org.</p>
154
155 <p>As usual, if you use Bitcoin and want to show your support of my
156 activities, please send Bitcoin donations to my address
157 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
158
159 <p><strong>Update 2016-02-20</strong>: I got a tip from Mike Gabriel
160 on how to use licensecheck and cdbs to create a draft copyright file
161
162 <p><pre>
163 licensecheck --copyright -r `find * -type f` | \
164 /usr/lib/cdbs/licensecheck2dep5 > debian/copyright.auto
165 </pre></p>
166
167 <p>He mentioned that he normally check the generated file into the
168 version control system to make it easier to discover license and
169 copyright changes in the upstream source. I will try to do the same
170 with my packages in the future.</p>
171
172 <p><strong>Update 2016-02-21</strong>: The cme author recommended
173 against using -quiet for new users, so I removed it from the proposed
174 command line.</p>
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>.
180
181
182 </div>
183 </div>
184 <div class="padding"></div>
185
186 <div class="entry">
187 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Using_appstream_in_Debian_to_locate_packages_with_firmware_and_mime_type_support.html">Using appstream in Debian to locate packages with firmware and mime type support</a></div>
188 <div class="date"> 4th February 2016</div>
189 <div class="body"><p>The <a href="https://wiki.debian.org/DEP-11">appstream system</a>
190 is taking shape in Debian, and one provided feature is a very
191 convenient way to tell you which package to install to make a given
192 firmware file available when the kernel is looking for it. This can
193 be done using apt-file too, but that is for someone else to blog
194 about. :)</p>
195
196 <p>Here is a small recipe to find the package with a given firmware
197 file, in this example I am looking for ctfw-3.2.3.0.bin, randomly
198 picked from the set of firmware announced using appstream in Debian
199 unstable. In general you would be looking for the firmware requested
200 by the kernel during kernel module loading. To find the package
201 providing the example file, do like this:</p>
202
203 <blockquote><pre>
204 % apt install appstream
205 [...]
206 % apt update
207 [...]
208 % appstreamcli what-provides firmware:runtime ctfw-3.2.3.0.bin | \
209 awk '/Package:/ {print $2}'
210 firmware-qlogic
211 %
212 </pre></blockquote>
213
214 <p>See <a href="https://wiki.debian.org/AppStream/Guidelines">the
215 appstream wiki</a> page to learn how to embed the package metadata in
216 a way appstream can use.</p>
217
218 <p>This same approach can be used to find any package supporting a
219 given MIME type. This is very useful when you get a file you do not
220 know how to handle. First find the mime type using <tt>file
221 --mime-type</tt>, and next look up the package providing support for
222 it. Lets say you got an SVG file. Its MIME type is image/svg+xml,
223 and you can find all packages handling this type like this:</p>
224
225 <blockquote><pre>
226 % apt install appstream
227 [...]
228 % apt update
229 [...]
230 % appstreamcli what-provides mimetype image/svg+xml | \
231 awk '/Package:/ {print $2}'
232 bkchem
233 phototonic
234 inkscape
235 shutter
236 tetzle
237 geeqie
238 xia
239 pinta
240 gthumb
241 karbon
242 comix
243 mirage
244 viewnior
245 postr
246 ristretto
247 kolourpaint4
248 eog
249 eom
250 gimagereader
251 midori
252 %
253 </pre></blockquote>
254
255 <p>I believe the MIME types are fetched from the desktop file for
256 packages providing appstream metadata.</p>
257 </div>
258 <div class="tags">
259
260
261 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>.
262
263
264 </div>
265 </div>
266 <div class="padding"></div>
267
268 <div class="entry">
269 <div class="title"><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></div>
270 <div class="date">24th January 2016</div>
271 <div class="body"><p>Most people seem not to realise that every time they walk around
272 with the computerised radio beacon known as a mobile phone their
273 position is tracked by the phone company and often stored for a long
274 time (like every time a SMS is received or sent). And if their
275 computerised radio beacon is capable of running programs (often called
276 mobile apps) downloaded from the Internet, these programs are often
277 also capable of tracking their location (if the app requested access
278 during installation). And when these programs send out information to
279 central collection points, the location is often included, unless
280 extra care is taken to not send the location. The provided
281 information is used by several entities, for good and bad (what is
282 good and bad, depend on your point of view). What is certain, is that
283 the private sphere and the right to free movement is challenged and
284 perhaps even eradicated for those announcing their location this way,
285 when they share their whereabouts with private and public
286 entities.</p>
287
288 <p align="center"><img width="70%" src="http://people.skolelinux.org/pere/blog/images/2016-01-24-nice-creepy-desktop-window.png"></p>
289
290 <p>The phone company logs provide a register of locations to check out
291 when one want to figure out what the tracked person was doing. It is
292 unavailable for most of us, but provided to selected government
293 officials, company staff, those illegally buying information from
294 unfaithful servants and crackers stealing the information. But the
295 public information can be collected and analysed, and a free software
296 tool to do so is called
297 <a href="http://www.geocreepy.com/">Creepy or Cree.py</a>. I
298 discovered it when I read
299 <a href="http://www.aftenposten.no/kultur/Slik-kan-du-bli-overvaket-pa-Twitter-og-Instagram-uten-a-ane-det-7787884.html">an
300 article about Creepy</a> in the Norwegian newspaper Aftenposten i
301 November 2014, and decided to check if it was available in Debian.
302 The python program was in Debian, but
303 <a href="https://tracker.debian.org/pkg/creepy">the version in
304 Debian</a> was completely broken and practically unmaintained. I
305 uploaded a new version which did not work quite right, but did not
306 have time to fix it then. This Christmas I decided to finally try to
307 get Creepy operational in Debian. Now a fixed version is available in
308 Debian unstable and testing, and almost all Debian specific patches
309 are now included
310 <a href="https://github.com/jkakavas/creepy">upstream</a>.</p>
311
312 <p>The Creepy program visualises geolocation information fetched from
313 Twitter, Instagram, Flickr and Google+, and allow one to get a
314 complete picture of every social media message posted recently in a
315 given area, or track the movement of a given individual across all
316 these services. Earlier it was possible to use the search API of at
317 least some of these services without identifying oneself, but these
318 days it is impossible. This mean that to use Creepy, you need to
319 configure it to log in as yourself on these services, and provide
320 information to them about your search interests. This should be taken
321 into account when using Creepy, as it will also share information
322 about yourself with the services.</p>
323
324 <p>The picture above show the twitter messages sent from (or at least
325 geotagged with a position from) the city centre of Oslo, the capital
326 of Norway. One useful way to use Creepy is to first look at
327 information tagged with an area of interest, and next look at all the
328 information provided by one or more individuals who was in the area.
329 I tested it by checking out which celebrity provide their location in
330 twitter messages by checkout out who sent twitter messages near a
331 Norwegian TV station, and next could track their position over time,
332 making it possible to locate their home and work place, among other
333 things. A similar technique have been
334 <a href="http://www.buzzfeed.com/maxseddon/does-this-soldiers-instagram-account-prove-russia-is-covertl">used
335 to locate Russian soldiers in Ukraine</a>, and it is both a powerful
336 tool to discover lying governments, and a useful tool to help people
337 understand the value of the private information they provide to the
338 public.</p>
339
340 <p>The package is not trivial to backport to Debian Stable/Jessie, as
341 it depend on several python modules currently missing in Jessie (at
342 least python-instagram, python-flickrapi and
343 python-requests-toolbelt).</p>
344
345 <p>(I have uploaded
346 <a href="https://screenshots.debian.net/package/creepy">the image to
347 screenshots.debian.net</a> and licensed it under the same terms as the
348 Creepy program in Debian.)</p>
349 </div>
350 <div class="tags">
351
352
353 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>.
354
355
356 </div>
357 </div>
358 <div class="padding"></div>
359
360 <div class="entry">
361 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Always_download_Debian_packages_using_Tor___the_simple_recipe.html">Always download Debian packages using Tor - the simple recipe</a></div>
362 <div class="date">15th January 2016</div>
363 <div class="body"><p>During his DebConf15 keynote, Jacob Appelbaum
364 <a href="https://summit.debconf.org/debconf15/meeting/331/what-is-to-be-done/">observed
365 that those listening on the Internet lines would have good reason to
366 believe a computer have a given security hole</a> if it download a
367 security fix from a Debian mirror. This is a good reason to always
368 use encrypted connections to the Debian mirror, to make sure those
369 listening do not know which IP address to attack. In August, Richard
370 Hartmann observed that encryption was not enough, when it was possible
371 to interfere download size to security patches or the fact that
372 download took place shortly after a security fix was released, and
373 <a href="http://richardhartmann.de/blog/posts/2015/08/24-Tor-enabled_Debian_mirror/">proposed
374 to always use Tor to download packages from the Debian mirror</a>. He
375 was not the first to propose this, as the
376 <tt><a href="https://tracker.debian.org/pkg/apt-transport-tor">apt-transport-tor</a></tt>
377 package by Tim Retout already existed to make it easy to convince apt
378 to use <a href="https://www.torproject.org/">Tor</a>, but I was not
379 aware of that package when I read the blog post from Richard.</p>
380
381 <p>Richard discussed the idea with Peter Palfrader, one of the Debian
382 sysadmins, and he set up a Tor hidden service on one of the central
383 Debian mirrors using the address vwakviie2ienjx6t.onion, thus making
384 it possible to download packages directly between two tor nodes,
385 making sure the network traffic always were encrypted.</p>
386
387 <p>Here is a short recipe for enabling this on your machine, by
388 installing <tt>apt-transport-tor</tt> and replacing http and https
389 urls with tor+http and tor+https, and using the hidden service instead
390 of the official Debian mirror site. I recommend installing
391 <tt>etckeeper</tt> before you start to have a history of the changes
392 done in /etc/.</p>
393
394 <blockquote><pre>
395 apt install apt-transport-tor
396 sed -i 's% http://ftp.debian.org/% tor+http://vwakviie2ienjx6t.onion/%' /etc/apt/sources.list
397 sed -i 's% http% tor+http%' /etc/apt/sources.list
398 </pre></blockquote>
399
400 <p>If you have more sources listed in /etc/apt/sources.list.d/, run
401 the sed commands for these too. The sed command is assuming your are
402 using the ftp.debian.org Debian mirror. Adjust the command (or just
403 edit the file manually) to match your mirror.</p>
404
405 <p>This work in Debian Jessie and later. Note that tools like
406 <tt>apt-file</tt> only recently started using the apt transport
407 system, and do not work with these tor+http URLs. For
408 <tt>apt-file</tt> you need the version currently in experimental,
409 which need a recent apt version currently only in unstable. So if you
410 need a working <tt>apt-file</tt>, this is not for you.</p>
411
412 <p>Another advantage from this change is that your machine will start
413 using Tor regularly and at fairly random intervals (every time you
414 update the package lists or upgrade or install a new package), thus
415 masking other Tor traffic done from the same machine. Using Tor will
416 become normal for the machine in question.</p>
417
418 <p>On <a href="https://wiki.debian.org/FreedomBox">Freedombox</a>, APT
419 is set up by default to use <tt>apt-transport-tor</tt> when Tor is
420 enabled. It would be great if it was the default on any Debian
421 system.</p>
422 </div>
423 <div class="tags">
424
425
426 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/sikkerhet">sikkerhet</a>.
427
428
429 </div>
430 </div>
431 <div class="padding"></div>
432
433 <div class="entry">
434 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Nedlasting_fra_NRK__som_Matroska_med_undertekster.html">Nedlasting fra NRK, som Matroska med undertekster</a></div>
435 <div class="date"> 2nd January 2016</div>
436 <div class="body"><p>Det kommer stadig nye løsninger for å ta lagre unna innslag fra NRK
437 for å se på det senere. For en stund tilbake kom jeg over et script
438 nrkopptak laget av Ingvar Hagelund. Han fjernet riktignok sitt script
439 etter forespørsel fra Erik Bolstad i NRK, men noen tok heldigvis og
440 gjorde det <a href="https://github.com/liangqi/nrkopptak">tilgjengelig
441 via github</a>.</p>
442
443 <p>Scriptet kan lagre som MPEG4 eller Matroska, og bake inn
444 undertekster i fila på et vis som blant annet VLC forstår. For å
445 bruke scriptet, kopier ned git-arkivet og kjør</p>
446
447 <p><pre>
448 nrkopptak/bin/nrk-opptak k <ahref="https://tv.nrk.no/serie/bmi-turne/MUHH45000115/sesong-1/episode-1">https://tv.nrk.no/serie/bmi-turne/MUHH45000115/sesong-1/episode-1</a>
449 </pre></p>
450
451 <p>URL-eksemplet er dagens toppsak på tv.nrk.no. Argument 'k' ber
452 scriptet laste ned og lagre som Matroska. Det finnes en rekke andre
453 muligheter for valg av kvalitet og format.</p>
454
455 <p>Jeg foretrekker dette scriptet fremfor youtube-dl, som
456 <a href="http://people.skolelinux.org/pere/blog/Hvordan_enkelt_laste_ned_filmer_fra_NRK_med_den__nye__l_sningen.html">
457 nevnt i 2014 støtter NRK</a> og en rekke andre videokilder, på grunn
458 av at nrkopptak samler undertekster og video i en enkelt fil, hvilket
459 gjør håndtering enklere på disk.</p>
460 </div>
461 <div class="tags">
462
463
464 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</a>.
465
466
467 </div>
468 </div>
469 <div class="padding"></div>
470
471 <div class="entry">
472 <div class="title"><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></div>
473 <div class="date">23rd December 2015</div>
474 <div class="body"><p>When I was a kid, we used to collect "car numbers", as we used to
475 call the car license plate numbers in those days. I would write the
476 numbers down in my little book and compare notes with the other kids
477 to see how many region codes we had seen and if we had seen some
478 exotic or special region codes and numbers. It was a fun game to pass
479 time, as we kids have plenty of it.</p>
480
481 <p>A few days I came across
482 <a href="https://github.com/openalpr/openalpr">the OpenALPR
483 project</a>, a free software project to automatically discover and
484 report license plates in images and video streams, and provide the
485 "car numbers" in a machine readable format. I've been looking for
486 such system for a while now, because I believe it is a bad idea that the
487 <a href="https://en.wikipedia.org/wiki/Automatic_number_plate_recognition">automatic
488 number plate recognition</a> tool only is available in the hands of
489 the powerful, and want it to be available also for the powerless to
490 even the score when it comes to surveillance and sousveillance. I
491 discovered the developer
492 <a href="https://bugs.debian.org/747509">wanted to get the tool into
493 Debian</a>, and as I too wanted it to be in Debian, I volunteered to
494 help him get it into shape to get the package uploaded into the Debian
495 archive.</p>
496
497 <p>Today we finally managed to get the package into shape and uploaded
498 it into Debian, where it currently
499 <a href="https://ftp-master.debian.org//new/openalpr_2.2.1-1.html">waits
500 in the NEW queue</a> for review by the Debian ftpmasters.</p>
501
502 <p>I guess you are wondering why on earth such tool would be useful
503 for the common folks, ie those not running a large government
504 surveillance system? Well, I plan to put it in a computer on my bike
505 and in my car, tracking the cars nearby and allowing me to be notified
506 when number plates on my watch list are discovered. Another use case
507 was suggested by a friend of mine, who wanted to set it up at his home
508 to open the car port automatically when it discovered the plate on his
509 car. When I mentioned it perhaps was a bit foolhardy to allow anyone
510 capable of placing his license plate number of a piece of cardboard to
511 open his car port, men replied that it was always unlocked anyway. I
512 guess for such use case it make sense. I am sure there are other use
513 cases too, for those with imagination and a vision.</p>
514
515 <p>If you want to build your own version of the Debian package, check
516 out the upstream git source and symlink ./distros/debian to ./debian/
517 before running "debuild" to build the source. Or wait a bit until the
518 package show up in unstable.</p>
519 </div>
520 <div class="tags">
521
522
523 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>.
524
525
526 </div>
527 </div>
528 <div class="padding"></div>
529
530 <div class="entry">
531 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Using_appstream_with_isenkram_to_install_hardware_related_packages_in_Debian.html">Using appstream with isenkram to install hardware related packages in Debian</a></div>
532 <div class="date">20th December 2015</div>
533 <div class="body"><p>Around three years ago, I created
534 <a href="http://packages.qa.debian.org/isenkram">the isenkram
535 system</a> to get a more practical solution in Debian for handing
536 hardware related packages. A GUI system in the isenkram package will
537 present a pop-up dialog when some hardware dongle supported by
538 relevant packages in Debian is inserted into the machine. The same
539 lookup mechanism to detect packages is available as command line
540 tools in the isenkram-cli package. In addition to mapping hardware,
541 it will also map kernel firmware files to packages and make it easy to
542 install needed firmware packages automatically. The key for this
543 system to work is a good way to map hardware to packages, in other
544 words, allow packages to announce what hardware they will work
545 with.</p>
546
547 <p>I started by providing data files in the isenkram source, and
548 adding code to download the latest version of these data files at run
549 time, to ensure every user had the most up to date mapping available.
550 I also added support for storing the mapping in the Packages file in
551 the apt repositories, but did not push this approach because while I
552 was trying to figure out how to best store hardware/package mappings,
553 <a href="http://www.freedesktop.org/software/appstream/docs/">the
554 appstream system</a> was announced. I got in touch and suggested to
555 add the hardware mapping into that data set to be able to use
556 appstream as a data source, and this was accepted at least for the
557 Debian version of appstream.</p>
558
559 <p>A few days ago using appstream in Debian for this became possible,
560 and today I uploaded a new version 0.20 of isenkram adding support for
561 appstream as a data source for mapping hardware to packages. The only
562 package so far using appstream to announce its hardware support is my
563 pymissile package. I got help from Matthias Klumpp with figuring out
564 how do add the required
565 <a href="https://appstream.debian.org/html/sid/main/metainfo/pymissile.html">metadata
566 in pymissile</a>. I added a file debian/pymissile.metainfo.xml with
567 this content:</p>
568
569 <blockquote><pre>
570 &lt;?xml version="1.0" encoding="UTF-8"?&gt;
571 &lt;component&gt;
572 &lt;id&gt;pymissile&lt;/id&gt;
573 &lt;metadata_license&gt;MIT&lt;/metadata_license&gt;
574 &lt;name&gt;pymissile&lt;/name&gt;
575 &lt;summary&gt;Control original Striker USB Missile Launcher&lt;/summary&gt;
576 &lt;description&gt;
577 &lt;p&gt;
578 Pymissile provides a curses interface to control an original
579 Marks and Spencer / Striker USB Missile Launcher, as well as a
580 motion control script to allow a webcamera to control the
581 launcher.
582 &lt;/p&gt;
583 &lt;/description&gt;
584 &lt;provides&gt;
585 &lt;modalias&gt;usb:v1130p0202d*&lt;/modalias&gt;
586 &lt;/provides&gt;
587 &lt;/component&gt;
588 </pre></blockquote>
589
590 <p>The key for isenkram is the component/provides/modalias value,
591 which is a glob style match rule for hardware specific strings
592 (modalias strings) provided by the Linux kernel. In this case, it
593 will map to all USB devices with vendor code 1130 and product code
594 0202.</p>
595
596 <p>Note, it is important that the license of all the metadata files
597 are compatible to have permissions to aggregate them into archive wide
598 appstream files. Matthias suggested to use MIT or BSD licenses for
599 these files. A challenge is figuring out a good id for the data, as
600 it is supposed to be globally unique and shared across distributions
601 (in other words, best to coordinate with upstream what to use). But
602 it can be changed later or, so we went with the package name as
603 upstream for this project is dormant.</p>
604
605 <p>To get the metadata file installed in the correct location for the
606 mirror update scripts to pick it up and include its content the
607 appstream data source, the file must be installed in the binary
608 package under /usr/share/appdata/. I did this by adding the following
609 line to debian/pymissile.install:</p>
610
611 <blockquote><pre>
612 debian/pymissile.metainfo.xml usr/share/appdata
613 </pre></blockquote>
614
615 <p>With that in place, the command line tool isenkram-lookup will list
616 all packages useful on the current computer automatically, and the GUI
617 pop-up handler will propose to install the package not already
618 installed if a hardware dongle is inserted into the machine in
619 question.</p>
620
621 <p>Details of the modalias field in appstream is available from the
622 <a href="https://wiki.debian.org/DEP-11">DEP-11</a> proposal.</p>
623
624 <p>To locate the modalias values of all hardware present in a machine,
625 try running this command on the command line:</p>
626
627 <blockquote><pre>
628 cat $(find /sys/devices/|grep modalias)
629 </pre></blockquote>
630
631 <p>To learn more about the isenkram system, please check out
632 <a href="http://people.skolelinux.org/pere/blog/tags/isenkram/">my
633 blog posts tagged isenkram</a>.</p>
634 </div>
635 <div class="tags">
636
637
638 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/isenkram">isenkram</a>.
639
640
641 </div>
642 </div>
643 <div class="padding"></div>
644
645 <div class="entry">
646 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Bokhandeldistribusjon_av_boken_Fri_kultur_av_Lawrence_Lessig.html">Bokhandeldistribusjon av boken Fri kultur av Lawrence Lessig</a></div>
647 <div class="date">14th December 2015</div>
648 <div class="body"><p><strong>Besøk
649 <a href="https://www.lulu.com/shop/lawrence-lessig/fri-kultur/paperback/product-22441576.html">lulu.com</a>
650 eller
651 <a href="https://www.amazon.com/Fri-kultur-Norwegian-Lawrence-Lessig/dp/8269018236/">Amazon</a>
652 for å kjøpe boken på papir, eller last ned ebook som
653 <a href="https://github.com/petterreinholdtsen/free-culture-lessig/raw/master/archive/freeculture.nb.pdf">PDF</a>,
654 <a href="https://github.com/petterreinholdtsen/free-culture-lessig/raw/master/archive/freeculture.nb.epub">ePub</a>
655 eller
656 <a href="https://github.com/petterreinholdtsen/free-culture-lessig/raw/master/archive/freeculture.nb.mobi">MOBI</a>
657 fra
658 <a href="https://github.com/petterreinholdtsen/free-culture-lessig/">github</a>.</strong></p>
659
660 <p>Jeg ble gledelig overrasket i dag da jeg oppdaget at boken jeg har
661 gitt ut
662 <a href="https://www.amazon.com/Fri-kultur-Norwegian-Lawrence-Lessig/dp/8269018236/">hadde
663 dukket opp i Amazon</a>. Jeg hadde trodd det skulle ta lenger tid, da
664 jeg fikk beskjed om at det skulle ta seks til åtte uker.
665 Amazonoppføringen er et resultat av at jeg for noen uker siden
666 diskuterte prissetting og håndtering av profitt med forfatteren. Det
667 måtte avklares da bruksvilkårene til boken har krav om
668 ikke-kommersiell bruk. Vi ble enige om at overskuddet fra salg av
669 boken skal sendes til
670 <a href="https://creativecommons.org/">Creative Commons-stiftelsen</a>.
671 Med det på plass kunne jeg be
672 <a href="https://www.lulu.com/shop/lawrence-lessig/fri-kultur/paperback/product-22441576.html">lulu.com</a>
673 om å gi boken «utvidet» distribusjon. Årsaken til at
674 bokhandeldistribusjon var litt utfordrende er at bokhandlere krever
675 mulighet for profitt på bøkene de selger (selvfølgelig), og dermed
676 måtte de få lov til å selge til høyere pris enn lulu.com. I tillegg
677 er det krav om samme pris på lulu.com og i bokhandlene, dermed blir
678 prisen økt også hos lulu.com. Hva skulle jeg gjøre med den profitten
679 uten å bryte med klausulen om ikkekommersiell? Løsningen var å gi
680 bort profitten til CC-stiftelsen. Prisen på boken ble nesten
681 tredoblet, til $19.99 (ca. 160,-) pluss frakt, men synligheten øker
682 betraktelig når den kan finnes i katalogene til store nettbokhandlere.
683 Det betyr at hvis du allerede har kjøpt boken har du fått den veldig
684 billig, og kjøper du den nå, får du den fortsatt billig samt donerer i
685 tillegg noen tiere til fremme av Creative Commons.</p>
686
687 <p>Mens jeg var i gang med å titte etter informasjon om boken
688 oppdaget jeg at den også var dukket opp på
689 <a href="https://books.google.no/books?id=uKUGCwAAQBAJ">Google
690 Books</a>, der en kan lese den på web. PDF-utgaven har ennå ikke
691 dukket opp hos <a href="https://www.nb.no/">Nasjonalbiblioteket</a>,
692 men det regner jeg med kommer på plass i løpet av noen uker. Boken er
693 heller ikke dukket opp hos
694 <a href="https://www.barnesandnoble.com/">Barnes & Noble</a> ennå, men
695 jeg antar det bare er et tidsspørsmål før dette er på plass.</p>
696
697 <p>Boken er dessverre ikke tilgjengelig fra norske bokhandlere, og
698 kommer neppe til å bli det med det første. Årsaken er at for å få det
699 til måtte jeg personlig håndtere bestilling av bøker, hvilket jeg ikke
700 er interessert i å bruke tid på. Jeg kunne betalt ca 2000,- til
701 <a href="http://www.bokbasen.no/">den norske bokbasen</a>, en felles
702 database over bøker tilgjengelig for norske bokhandlere, for å få en
703 oppføring der, men da måtte jeg tatt imot bestillinger på epost og
704 sendt ut bøker selv. Det ville krevd at jeg var klar til å
705 sende ut bøker på kort varsel, dvs. holdt meg med ekstra bøker,
706 konvolutter og frimerker. Bokbasen har visst ikke opplegg for å be
707 bokhandlene bestille direkte via web, så jeg droppet oppføring der.
708 Jeg har spurt Haugen bok og Tronsmo direkte på epost om de er
709 interessert i å ta inn boken i sin bestillingskatalog, men ikke fått
710 svar, så jeg antar de ikke er interessert. Derimot har jeg fått en
711 hyggelig henvendelse fra Biblioteksentralen som fortalte at de har
712 lagt den inn i sin database slik at deres bibliotekskunder enkelt kan
713 bestille den via dem.</p>
714
715 <p>Boken er i følge
716 <a href="http://bibsys-almaprimo.hosted.exlibrisgroup.com/primo_library/libweb/action/display.do?tabs=detailsTab&ct=display&fn=search&doc=BIBSYS_ILS71518423420002201&indx=1&recIds=BIBSYS_ILS71518423420002201&recIdxs=0&elementId=0&renderMode=poppedOut&displayMode=full&frbrVersion=&dscnt=0&tab=library_catalogue&dstmp=1448543801124&vl(freeText0)=fri%20kultur&vid=UBO&mode=Basic">Bibsys/Oria</a>
717 og bokdatabasen til
718 <a href="https://www.deich.folkebibl.no/cgi-bin/websok?tnr=1819617">Deichmanske</a>
719 tilgjengelig fra flere biblioteker allerede, og alle eksemplarer er
720 visst allerede utlånt med ventetid. Det synes jeg er veldig gledelig
721 å se. Jeg håper mange kommer til å lese boken. Jeg tror den er
722 spesielt egnet for foreldre og bekjente av oss nerder for å forklare
723 hva slags problemer vi ser med dagens opphavsrettsregime.</p>
724 </div>
725 <div class="tags">
726
727
728 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>, <a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk</a>.
729
730
731 </div>
732 </div>
733 <div class="padding"></div>
734
735 <div class="entry">
736 <div class="title"><a href="http://people.skolelinux.org/pere/blog/The_GNU_General_Public_License_is_not_magic_pixie_dust.html">The GNU General Public License is not magic pixie dust</a></div>
737 <div class="date">30th November 2015</div>
738 <div class="body"><p>A blog post from my fellow Debian developer Paul Wise titled
739 "<a href="http://bonedaddy.net/pabs3/log/2015/11/27/sfc-supporter/">The
740 GPL is not magic pixie dust</a>" explain the importance of making sure
741 the <a href="http://www.gnu.org/copyleft/gpl.html">GPL</a> is enforced.
742 I quote the blog post from Paul in full here with his permission:<p>
743
744 <blockquote>
745
746 <p><a href="https://sfconservancy.org/supporter/"><img src="https://sfconservancy.org/img/supporter-badge.png" width="194" height="90" alt="Become a Software Freedom Conservancy Supporter!" align="right" border="0" /></a></p>
747
748 <blockquote>
749 The GPL is not magic pixie dust. It does not work by itself.<br/>
750
751 The first step is to choose a
752 <a href="https://copyleft.org/">copyleft</a> license for your
753 code.<br/>
754
755 The next step is, when someone fails to follow that copyleft license,
756 <b>it must be enforced</b><br/>
757
758 and its a simple fact of our modern society that such type of
759 work<br/>
760
761 is incredibly expensive to do and incredibly difficult to do.
762 </blockquote>
763
764 <p><small>-- <a href="http://ebb.org/bkuhn/">Bradley Kuhn</a>, in
765 <a href="http://faif.us/" title="Free as in Freedom">FaiF</a>
766 <a href="http://faif.us/cast/2015/nov/24/0x57/">episode
767 0x57</a></small></p>
768
769 <p>As the Debian Website
770 <a href="https://bugs.debian.org/794116">used</a>
771 <a href="https://anonscm.debian.org/viewvc/webwml/webwml/english/intro/free.wml?r1=1.24&amp;r2=1.25">to</a>
772 imply, public domain and permissively licensed software can lead to
773 the production of more proprietary software as people discover useful
774 software, extend it and or incorporate it into their hardware or
775 software products. Copyleft licenses such as the GNU GPL were created
776 to close off this avenue to the production of proprietary software but
777 such licenses are not enough. With the ongoing adoption of Free
778 Software by individuals and groups, inevitably the community's
779 expectations of license compliance are violated, usually out of
780 ignorance of the way Free Software works, but not always. As Karen
781 and Bradley explained in <a href="http://faif.us/" title="Free as in
782 Freedom">FaiF</a>
783 <a href="http://faif.us/cast/2015/nov/24/0x57/">episode 0x57</a>,
784 copyleft is nothing if no-one is willing and able to stand up in court
785 to protect it. The reality of today's world is that legal
786 representation is expensive, difficult and time consuming. With
787 <a href="http://gpl-violations.org/">gpl-violations.org</a> in hiatus
788 <a href="http://gpl-violations.org/news/20151027-homepage-recovers/">until</a>
789 some time in 2016, the <a href="https://sfconservancy.org/">Software
790 Freedom Conservancy</a> (a tax-exempt charity) is the major defender
791 of the Linux project, Debian and other groups against GPL violations.
792 In March the SFC supported a
793 <a href="https://sfconservancy.org/news/2015/mar/05/vmware-lawsuit/">lawsuit
794 by Christoph Hellwig</a> against VMware for refusing to
795 <a href="https://sfconservancy.org/linux-compliance/vmware-lawsuit-faq.html">comply
796 with the GPL</a> in relation to their use of parts of the Linux
797 kernel. Since then two of their sponsors pulled corporate funding and
798 conferences
799 <a href="https://sfconservancy.org/blog/2015/nov/24/faif-carols-fundraiser/">blocked
800 or cancelled their talks</a>. As a result they have decided to rely
801 less on corporate funding and more on the broad community of
802 individuals who support Free Software and copyleft. So the SFC has
803 <a href="https://sfconservancy.org/news/2015/nov/23/2015fundraiser/">launched</a>
804 a <a href="https://sfconservancy.org/supporter/">campaign</a> to create
805 a community of folks who stand up for copyleft and the GPL by
806 supporting their work on promoting and supporting copyleft and Free
807 Software.</p>
808
809 <p>If you support Free Software,
810 <a href="https://sfconservancy.org/blog/2015/nov/26/like-what-I-do/">like</a>
811 what the SFC do, agree with their
812 <a href="https://sfconservancy.org/linux-compliance/principles.html">compliance
813 principles</a>, are happy about their
814 <a href="https://sfconservancy.org/supporter/">successes</a> in 2015,
815 work on a project that is an SFC
816 <a href="https://sfconservancy.org/members/current/">member</a> and or
817 just want to stand up for copyleft, please join
818 <a href="https://identi.ca/cwebber/image/JQGPA4qbTyyp3-MY8QpvuA">Christopher
819 Allan Webber</a>,
820 <a href="https://sfconservancy.org/blog/2015/nov/24/faif-carols-fundraiser/">Carol
821 Smith</a>,
822 <a href="http://www.jonobacon.org/2015/11/25/supporting-software-freedom-conservancy/">Jono
823 Bacon</a>, myself and
824 <a href="https://sfconservancy.org/sponsors/#supporters">others</a> in
825 becoming a
826 <a href="https://sfconservancy.org/supporter/">supporter</a>. For the
827 next week your donation will be
828 <a href="https://sfconservancy.org/news/2015/nov/27/black-friday/">matched</a>
829 by an anonymous donor. Please also consider asking your employer to
830 match your donation or become a sponsor of SFC. Don't forget to
831 spread the word about your support for SFC via email, your blog and or
832 social media accounts.</p>
833
834 </blockquote>
835
836 <p>I agree with Paul on this topic and just signed up as a Supporter
837 of Software Freedom Conservancy myself. Perhaps you should be a
838 supporter too?</p>
839 </div>
840 <div class="tags">
841
842
843 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <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/opphavsrett">opphavsrett</a>.
844
845
846 </div>
847 </div>
848 <div class="padding"></div>
849
850 <p style="text-align: right;"><a href="index.rss"><img src="http://people.skolelinux.org/pere/blog/xml.gif" alt="RSS feed" width="36" height="14" /></a></p>
851 <div id="sidebar">
852
853
854
855 <h2>Archive</h2>
856 <ul>
857
858 <li>2016
859 <ul>
860
861 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/01/">January (3)</a></li>
862
863 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/02/">February (2)</a></li>
864
865 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/03/">March (1)</a></li>
866
867 </ul></li>
868
869 <li>2015
870 <ul>
871
872 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/01/">January (7)</a></li>
873
874 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/02/">February (6)</a></li>
875
876 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/03/">March (1)</a></li>
877
878 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/04/">April (4)</a></li>
879
880 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/05/">May (3)</a></li>
881
882 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/06/">June (4)</a></li>
883
884 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/07/">July (6)</a></li>
885
886 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/08/">August (2)</a></li>
887
888 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/09/">September (2)</a></li>
889
890 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/10/">October (9)</a></li>
891
892 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/11/">November (6)</a></li>
893
894 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/12/">December (3)</a></li>
895
896 </ul></li>
897
898 <li>2014
899 <ul>
900
901 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/01/">January (2)</a></li>
902
903 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/02/">February (3)</a></li>
904
905 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/03/">March (8)</a></li>
906
907 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/04/">April (7)</a></li>
908
909 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/05/">May (1)</a></li>
910
911 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/06/">June (2)</a></li>
912
913 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/07/">July (2)</a></li>
914
915 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/08/">August (2)</a></li>
916
917 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/09/">September (5)</a></li>
918
919 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/10/">October (6)</a></li>
920
921 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/11/">November (3)</a></li>
922
923 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/12/">December (5)</a></li>
924
925 </ul></li>
926
927 <li>2013
928 <ul>
929
930 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/01/">January (11)</a></li>
931
932 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/02/">February (9)</a></li>
933
934 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/03/">March (9)</a></li>
935
936 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/04/">April (6)</a></li>
937
938 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/05/">May (9)</a></li>
939
940 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/06/">June (10)</a></li>
941
942 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/07/">July (7)</a></li>
943
944 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/08/">August (3)</a></li>
945
946 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/09/">September (5)</a></li>
947
948 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/10/">October (7)</a></li>
949
950 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/11/">November (9)</a></li>
951
952 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/12/">December (3)</a></li>
953
954 </ul></li>
955
956 <li>2012
957 <ul>
958
959 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/01/">January (7)</a></li>
960
961 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/02/">February (10)</a></li>
962
963 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/03/">March (17)</a></li>
964
965 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/04/">April (12)</a></li>
966
967 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/05/">May (12)</a></li>
968
969 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/06/">June (20)</a></li>
970
971 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/07/">July (17)</a></li>
972
973 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/08/">August (6)</a></li>
974
975 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/09/">September (9)</a></li>
976
977 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/10/">October (17)</a></li>
978
979 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/11/">November (10)</a></li>
980
981 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/12/">December (7)</a></li>
982
983 </ul></li>
984
985 <li>2011
986 <ul>
987
988 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/01/">January (16)</a></li>
989
990 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/02/">February (6)</a></li>
991
992 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/03/">March (6)</a></li>
993
994 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/04/">April (7)</a></li>
995
996 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/05/">May (3)</a></li>
997
998 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/06/">June (2)</a></li>
999
1000 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/07/">July (7)</a></li>
1001
1002 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/08/">August (6)</a></li>
1003
1004 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/09/">September (4)</a></li>
1005
1006 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/10/">October (2)</a></li>
1007
1008 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/11/">November (3)</a></li>
1009
1010 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/12/">December (1)</a></li>
1011
1012 </ul></li>
1013
1014 <li>2010
1015 <ul>
1016
1017 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/01/">January (2)</a></li>
1018
1019 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/02/">February (1)</a></li>
1020
1021 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/03/">March (3)</a></li>
1022
1023 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/04/">April (3)</a></li>
1024
1025 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/05/">May (9)</a></li>
1026
1027 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/06/">June (14)</a></li>
1028
1029 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/07/">July (12)</a></li>
1030
1031 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/08/">August (13)</a></li>
1032
1033 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/09/">September (7)</a></li>
1034
1035 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/10/">October (9)</a></li>
1036
1037 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/11/">November (13)</a></li>
1038
1039 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/12/">December (12)</a></li>
1040
1041 </ul></li>
1042
1043 <li>2009
1044 <ul>
1045
1046 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/01/">January (8)</a></li>
1047
1048 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/02/">February (8)</a></li>
1049
1050 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/03/">March (12)</a></li>
1051
1052 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/04/">April (10)</a></li>
1053
1054 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/05/">May (9)</a></li>
1055
1056 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/06/">June (3)</a></li>
1057
1058 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/07/">July (4)</a></li>
1059
1060 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/08/">August (3)</a></li>
1061
1062 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/09/">September (1)</a></li>
1063
1064 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/10/">October (2)</a></li>
1065
1066 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/11/">November (3)</a></li>
1067
1068 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/12/">December (3)</a></li>
1069
1070 </ul></li>
1071
1072 <li>2008
1073 <ul>
1074
1075 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/11/">November (5)</a></li>
1076
1077 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/12/">December (7)</a></li>
1078
1079 </ul></li>
1080
1081 </ul>
1082
1083
1084
1085 <h2>Tags</h2>
1086 <ul>
1087
1088 <li><a href="http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (13)</a></li>
1089
1090 <li><a href="http://people.skolelinux.org/pere/blog/tags/amiga">amiga (1)</a></li>
1091
1092 <li><a href="http://people.skolelinux.org/pere/blog/tags/aros">aros (1)</a></li>
1093
1094 <li><a href="http://people.skolelinux.org/pere/blog/tags/bankid">bankid (4)</a></li>
1095
1096 <li><a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (9)</a></li>
1097
1098 <li><a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (15)</a></li>
1099
1100 <li><a href="http://people.skolelinux.org/pere/blog/tags/bsa">bsa (2)</a></li>
1101
1102 <li><a href="http://people.skolelinux.org/pere/blog/tags/chrpath">chrpath (2)</a></li>
1103
1104 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian">debian (121)</a></li>
1105
1106 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (154)</a></li>
1107
1108 <li><a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan (10)</a></li>
1109
1110 <li><a href="http://people.skolelinux.org/pere/blog/tags/dld">dld (15)</a></li>
1111
1112 <li><a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook (20)</a></li>
1113
1114 <li><a href="http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
1115
1116 <li><a href="http://people.skolelinux.org/pere/blog/tags/english">english (303)</a></li>
1117
1118 <li><a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (23)</a></li>
1119
1120 <li><a href="http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (12)</a></li>
1121
1122 <li><a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (25)</a></li>
1123
1124 <li><a href="http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox (9)</a></li>
1125
1126 <li><a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (16)</a></li>
1127
1128 <li><a href="http://people.skolelinux.org/pere/blog/tags/h264">h264 (20)</a></li>
1129
1130 <li><a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju (42)</a></li>
1131
1132 <li><a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram (11)</a></li>
1133
1134 <li><a href="http://people.skolelinux.org/pere/blog/tags/kart">kart (19)</a></li>
1135
1136 <li><a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap (9)</a></li>
1137
1138 <li><a href="http://people.skolelinux.org/pere/blog/tags/lenker">lenker (8)</a></li>
1139
1140 <li><a href="http://people.skolelinux.org/pere/blog/tags/lsdvd">lsdvd (2)</a></li>
1141
1142 <li><a href="http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (1)</a></li>
1143
1144 <li><a href="http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network (8)</a></li>
1145
1146 <li><a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (37)</a></li>
1147
1148 <li><a href="http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software (7)</a></li>
1149
1150 <li><a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk (273)</a></li>
1151
1152 <li><a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug (177)</a></li>
1153
1154 <li><a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (22)</a></li>
1155
1156 <li><a href="http://people.skolelinux.org/pere/blog/tags/open311">open311 (2)</a></li>
1157
1158 <li><a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (58)</a></li>
1159
1160 <li><a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern (92)</a></li>
1161
1162 <li><a href="http://people.skolelinux.org/pere/blog/tags/raid">raid (1)</a></li>
1163
1164 <li><a href="http://people.skolelinux.org/pere/blog/tags/reactos">reactos (1)</a></li>
1165
1166 <li><a href="http://people.skolelinux.org/pere/blog/tags/reprap">reprap (11)</a></li>
1167
1168 <li><a href="http://people.skolelinux.org/pere/blog/tags/rfid">rfid (3)</a></li>
1169
1170 <li><a href="http://people.skolelinux.org/pere/blog/tags/robot">robot (9)</a></li>
1171
1172 <li><a href="http://people.skolelinux.org/pere/blog/tags/rss">rss (1)</a></li>
1173
1174 <li><a href="http://people.skolelinux.org/pere/blog/tags/ruter">ruter (4)</a></li>
1175
1176 <li><a href="http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (2)</a></li>
1177
1178 <li><a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (45)</a></li>
1179
1180 <li><a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (4)</a></li>
1181
1182 <li><a href="http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (4)</a></li>
1183
1184 <li><a href="http://people.skolelinux.org/pere/blog/tags/standard">standard (48)</a></li>
1185
1186 <li><a href="http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (3)</a></li>
1187
1188 <li><a href="http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (10)</a></li>
1189
1190 <li><a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (36)</a></li>
1191
1192 <li><a href="http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (2)</a></li>
1193
1194 <li><a href="http://people.skolelinux.org/pere/blog/tags/usenix">usenix (2)</a></li>
1195
1196 <li><a href="http://people.skolelinux.org/pere/blog/tags/valg">valg (8)</a></li>
1197
1198 <li><a href="http://people.skolelinux.org/pere/blog/tags/video">video (55)</a></li>
1199
1200 <li><a href="http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (4)</a></li>
1201
1202 <li><a href="http://people.skolelinux.org/pere/blog/tags/web">web (38)</a></li>
1203
1204 </ul>
1205
1206
1207 </div>
1208 <p style="text-align: right">
1209 Created by <a href="http://steve.org.uk/Software/chronicle">Chronicle v4.6</a>
1210 </p>
1211
1212 </body>
1213 </html>