]> pere.pagekite.me Git - homepage.git/blob - blog/index.html
Generated.
[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/How_to_find_a_browser_plugin_supporting_a_given_MIME_type.html">How to find a browser plugin supporting a given MIME type</a></div>
24 <div class="date">18th January 2013</div>
25 <div class="body"><p>Some times I try to figure out which Iceweasel browser plugin to
26 install to get support for a given MIME type. Thanks to
27 <a href="https://wiki.ubuntu.com/MozillaTeam/Plugins">specifications
28 done by Ubuntu</a> and Mozilla, it is possible to do this in Debian.
29 Unfortunately, not very many packages provide the needed meta
30 information, Anyway, here is a small script to look up all browser
31 plugin packages announcing ther MIME support using this specification:</p>
32
33 <pre>
34 #!/usr/bin/python
35 import sys
36 import apt
37 def pkgs_handling_mimetype(mimetype):
38 cache = apt.Cache()
39 cache.open(None)
40 thepkgs = []
41 for pkg in cache:
42 version = pkg.candidate
43 if version is None:
44 version = pkg.installed
45 if version is None:
46 continue
47 record = version.record
48 if not record.has_key('Npp-MimeType'):
49 continue
50 mime_types = record['Npp-MimeType'].split(',')
51 for t in mime_types:
52 t = t.rstrip().strip()
53 if t == mimetype:
54 thepkgs.append(pkg.name)
55 return thepkgs
56 mimetype = "audio/ogg"
57 if 1 < len(sys.argv):
58 mimetype = sys.argv[1]
59 print "Browser plugin packages supporting %s:" % mimetype
60 for pkg in pkgs_handling_mimetype(mimetype):
61 print " %s" %pkg
62 </pre>
63
64 <p>It can be used like this to look up a given MIME type:</p>
65
66 <pre>
67 % ./apt-find-browserplug-for-mimetype
68 Browser plugin packages supporting audio/ogg:
69 gecko-mediaplayer
70 % ./apt-find-browserplug-for-mimetype application/x-shockwave-flash
71 Browser plugin packages supporting application/x-shockwave-flash:
72 browser-plugin-gnash
73 %
74 </pre>
75
76 <p>In Ubuntu this mechanism is combined with support in the browser
77 itself to query for plugins and propose to install the needed
78 packages. It would be great if Debian supported such feature too. Is
79 anyone working on adding it?</p>
80 </div>
81 <div class="tags">
82
83
84 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>.
85
86
87 </div>
88 </div>
89 <div class="padding"></div>
90
91 <div class="entry">
92 <div class="title"><a href="http://people.skolelinux.org/pere/blog/What_is_the_most_supported_MIME_type_in_Debian_.html">What is the most supported MIME type in Debian?</a></div>
93 <div class="date">16th January 2013</div>
94 <div class="body"><p>The <a href="http://wiki.debian.org/AppStreamDebianProposal">DEP-11
95 proposal to add AppStream information to the Debian archive</a>, is a
96 proposal to make it possible for a Desktop application to propose to
97 the user some package to install to gain support for a given MIME
98 type, font, library etc. that is currently missing. With such
99 mechanism in place, it would be possible for the desktop to
100 automatically propose and install leocad if some LDraw file is
101 downloaded by the browser.</p>
102
103 <p>To get some idea about the current content of the archive, I decided
104 to write a simple program to extract all .desktop files from the
105 Debian archive and look up the claimed MIME support there. The result
106 can be found on the
107 <a href="http://ftp.skolelinux.org/pub/AppStreamTest">Skolelinux FTP
108 site</a>. Using the collected information, it become possible to
109 answer the question in the title. Here are the 20 most supported MIME
110 types in Debian stable (Squeeze), testing (Wheezy) and unstable (Sid).
111 The complete list is available from the link above.</p>
112
113 <p><strong>Debian Stable:</strong></p>
114
115 <pre>
116 count MIME type
117 ----- -----------------------
118 32 text/plain
119 30 audio/mpeg
120 29 image/png
121 28 image/jpeg
122 27 application/ogg
123 26 audio/x-mp3
124 25 image/tiff
125 25 image/gif
126 22 image/bmp
127 22 audio/x-wav
128 20 audio/x-flac
129 19 audio/x-mpegurl
130 18 video/x-ms-asf
131 18 audio/x-musepack
132 18 audio/x-mpeg
133 18 application/x-ogg
134 17 video/mpeg
135 17 audio/x-scpls
136 17 audio/ogg
137 16 video/x-ms-wmv
138 </pre>
139
140 <p><strong>Debian Testing:</strong></p>
141
142 <pre>
143 count MIME type
144 ----- -----------------------
145 33 text/plain
146 32 image/png
147 32 image/jpeg
148 29 audio/mpeg
149 27 image/gif
150 26 image/tiff
151 26 application/ogg
152 25 audio/x-mp3
153 22 image/bmp
154 21 audio/x-wav
155 19 audio/x-mpegurl
156 19 audio/x-mpeg
157 18 video/mpeg
158 18 audio/x-scpls
159 18 audio/x-flac
160 18 application/x-ogg
161 17 video/x-ms-asf
162 17 text/html
163 17 audio/x-musepack
164 16 image/x-xbitmap
165 </pre>
166
167 <p><strong>Debian Unstable:</strong></p>
168
169 <pre>
170 count MIME type
171 ----- -----------------------
172 31 text/plain
173 31 image/png
174 31 image/jpeg
175 29 audio/mpeg
176 28 application/ogg
177 27 image/gif
178 26 image/tiff
179 26 audio/x-mp3
180 23 audio/x-wav
181 22 image/bmp
182 21 audio/x-flac
183 20 audio/x-mpegurl
184 19 audio/x-mpeg
185 18 video/x-ms-asf
186 18 video/mpeg
187 18 audio/x-scpls
188 18 application/x-ogg
189 17 audio/x-musepack
190 16 video/x-ms-wmv
191 16 video/x-msvideo
192 </pre>
193
194 <p>I am told that PackageKit can provide an API to access the kind of
195 information mentioned in DEP-11. I have not yet had time to look at
196 it, but hope the PackageKit people in Debian are on top of these
197 issues.</p>
198
199 <p><strong>Update 2013-01-16 13:35</strong>: Updated numbers after
200 discovering a typo in my script.</p>
201 </div>
202 <div class="tags">
203
204
205 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>.
206
207
208 </div>
209 </div>
210 <div class="padding"></div>
211
212 <div class="entry">
213 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Using_modalias_info_to_find_packages_handling_my_hardware.html">Using modalias info to find packages handling my hardware</a></div>
214 <div class="date">15th January 2013</div>
215 <div class="body"><p>Yesterday, I wrote about the
216 <a href="http://people.skolelinux.org/pere/blog/Modalias_strings___a_practical_way_to_map__stuff__to_hardware.html">modalias
217 values provided by the Linux kernel</a> following my hope for
218 <a href="http://people.skolelinux.org/pere/blog/Lets_make_hardware_dongles_easier_to_use_in_Debian.html">better
219 dongle support in Debian</a>. Using this knowledge, I have tested how
220 modalias values attached to package names can be used to map packages
221 to hardware. This allow the system to look up and suggest relevant
222 packages when I plug in some new hardware into my machine, and replace
223 discover and discover-data as the database used to map hardware to
224 packages.</p>
225
226 <p>I create a modaliases file with entries like the following,
227 containing package name, kernel module name (if relevant, otherwise
228 the package name) and globs matching the relevant hardware
229 modalias.</p>
230
231 <p><blockquote>
232 Package: package-name
233 <br>Modaliases: module(modaliasglob, modaliasglob, modaliasglob)</p>
234 </blockquote></p>
235
236 <p>It is fairly trivial to write code to find the relevant packages
237 for a given modalias value using this file.</p>
238
239 <p>An entry like this would suggest the video and picture application
240 cheese for many USB web cameras (interface bus class 0E01):</p>
241
242 <p><blockquote>
243 Package: cheese
244 <br>Modaliases: cheese(usb:v*p*d*dc*dsc*dp*ic0Eisc01ip*)</p>
245 </blockquote></p>
246
247 <p>An entry like this would suggest the pcmciautils package when a
248 CardBus bridge (bus class 0607) PCI device is present:</p>
249
250 <p><blockquote>
251 Package: pcmciautils
252 <br>Modaliases: pcmciautils(pci:v*d*sv*sd*bc06sc07i*)
253 </blockquote></p>
254
255 <p>An entry like this would suggest the package colorhug-client when
256 plugging in a ColorHug with USB IDs 04D8:F8DA:</p>
257
258 <p><blockquote>
259 Package: colorhug-client
260 <br>Modaliases: colorhug-client(usb:v04D8pF8DAd*)</p>
261 </blockquote></p>
262
263 <p>I believe the format is compatible with the format of the Packages
264 file in the Debian archive. Ubuntu already uses their Packages file
265 to store their mappings from packages to hardware.</p>
266
267 <p>By adding a XB-Modaliases: header in debian/control, any .deb can
268 announce the hardware it support in a way my prototype understand.
269 This allow those publishing packages in an APT source outside the
270 Debian archive as well as those backporting packages to make sure the
271 hardware mapping are included in the package meta information. I've
272 tested such header in the pymissile package, and its modalias mapping
273 is working as it should with my prototype. It even made it to Ubuntu
274 Raring.</p>
275
276 <p>To test if it was possible to look up supported hardware using only
277 the shell tools available in the Debian installer, I wrote a shell
278 implementation of the lookup code. The idea is to create files for
279 each modalias and let the shell do the matching. Please check out and
280 try the
281 <a href="http://anonscm.debian.org/viewvc/debian-edu/trunk/src/hw-support-handler/hw-support-lookup?view=co">hw-support-lookup</a>
282 shell script. It run without any extra dependencies and fetch the
283 hardware mappings from the Debian archive and the subversion
284 repository where I currently work on my prototype.</p>
285
286 <p>When I use it on a machine with a yubikey inserted, it suggest to
287 install yubikey-personalization:</p>
288
289 <p><blockquote>
290 % ./hw-support-lookup
291 <br>yubikey-personalization
292 <br>%
293 </blockquote></p>
294
295 <p>When I run it on my Thinkpad X40 with a PCMCIA/CardBus slot, it
296 propose to install the pcmciautils package:</p>
297
298 <p><blockquote>
299 % ./hw-support-lookup
300 <br>pcmciautils
301 <br>%
302 </blockquote></p>
303
304 <p>If you know of any hardware-package mapping that should be added to
305 <a href="http://anonscm.debian.org/viewvc/debian-edu/trunk/src/hw-support-handler/modaliases?view=co">my
306 database</a>, please tell me about it.</p>
307
308 <p>It could be possible to generate several of the mappings between
309 packages and hardware. One source would be to look at packages with
310 kernel modules, ie packages with *.ko files in /lib/modules/, and
311 extract their modalias information. Another would be to look at
312 packages with udev rules, ie packages with files in
313 /lib/udev/rules.d/, and extract their vendor/model information to
314 generate a modalias matching rule. I have not tested any of these to
315 see if it work.</p>
316
317 <p>If you want to help implementing a system to let us propose what
318 packages to install when new hardware is plugged into a Debian
319 machine, please send me an email or talk to me on
320 <a href="irc://irc.debian.org/%23debian-devel">#debian-devel</a>.</p>
321 </div>
322 <div class="tags">
323
324
325 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>.
326
327
328 </div>
329 </div>
330 <div class="padding"></div>
331
332 <div class="entry">
333 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Modalias_strings___a_practical_way_to_map__stuff__to_hardware.html">Modalias strings - a practical way to map "stuff" to hardware</a></div>
334 <div class="date">14th January 2013</div>
335 <div class="body"><p>While looking into how to look up Debian packages based on hardware
336 information, to find the packages that support a given piece of
337 hardware, I refreshed my memory regarding modalias values, and decided
338 to document the details. Here are my findings so far, also available
339 in
340 <a href="http://anonscm.debian.org/viewvc/debian-edu/trunk/src/hw-support-handler/">the
341 Debian Edu subversion repository</a>:
342
343 <p><strong>Modalias decoded</strong></p>
344
345 <p>This document try to explain what the different types of modalias
346 values stands for. It is in part based on information from
347 &lt;URL: <a href="https://wiki.archlinux.org/index.php/Modalias">https://wiki.archlinux.org/index.php/Modalias</a> &gt;,
348 &lt;URL: <a href="http://unix.stackexchange.com/questions/26132/how-to-assign-usb-driver-to-device">http://unix.stackexchange.com/questions/26132/how-to-assign-usb-driver-to-device</a> &gt;,
349 &lt;URL: <a href="http://code.metager.de/source/history/linux/stable/scripts/mod/file2alias.c">http://code.metager.de/source/history/linux/stable/scripts/mod/file2alias.c</a> &gt; and
350 &lt;URL: <a href="http://cvs.savannah.gnu.org/viewvc/dmidecode/dmidecode.c?root=dmidecode&view=markup">http://cvs.savannah.gnu.org/viewvc/dmidecode/dmidecode.c?root=dmidecode&view=markup</a> &gt;.
351
352 <p>The modalias entries for a given Linux machine can be found using
353 this shell script:</p>
354
355 <pre>
356 find /sys -name modalias -print0 | xargs -0 cat | sort -u
357 </pre>
358
359 <p>The supported modalias globs for a given kernel module can be found
360 using modinfo:</p>
361
362 <pre>
363 % /sbin/modinfo psmouse | grep alias:
364 alias: serio:ty05pr*id*ex*
365 alias: serio:ty01pr*id*ex*
366 %
367 </pre>
368
369 <p><strong>PCI subtype</strong></p>
370
371 <p>A typical PCI entry can look like this. This is an Intel Host
372 Bridge memory controller:</p>
373
374 <p><blockquote>
375 pci:v00008086d00002770sv00001028sd000001ADbc06sc00i00
376 </blockquote></p>
377
378 <p>This represent these values:</p>
379
380 <pre>
381 v 00008086 (vendor)
382 d 00002770 (device)
383 sv 00001028 (subvendor)
384 sd 000001AD (subdevice)
385 bc 06 (bus class)
386 sc 00 (bus subclass)
387 i 00 (interface)
388 </pre>
389
390 <p>The vendor/device values are the same values outputted from 'lspci
391 -n' as 8086:2770. The bus class/subclass is also shown by lspci as
392 0600. The 0600 class is a host bridge. Other useful bus values are
393 0300 (VGA compatible card) and 0200 (Ethernet controller).</p>
394
395 <p>Not sure how to figure out the interface value, nor what it
396 means.</p>
397
398 <p><strong>USB subtype</strong></p>
399
400 <p>Some typical USB entries can look like this. This is an internal
401 USB hub in a laptop:</p>
402
403 <p><blockquote>
404 usb:v1D6Bp0001d0206dc09dsc00dp00ic09isc00ip00
405 </blockquote></p>
406
407 <p>Here is the values included in this alias:</p>
408
409 <pre>
410 v 1D6B (device vendor)
411 p 0001 (device product)
412 d 0206 (bcddevice)
413 dc 09 (device class)
414 dsc 00 (device subclass)
415 dp 00 (device protocol)
416 ic 09 (interface class)
417 isc 00 (interface subclass)
418 ip 00 (interface protocol)
419 </pre>
420
421 <p>The 0900 device class/subclass means hub. Some times the relevant
422 class is in the interface class section. For a simple USB web camera,
423 these alias entries show up:</p>
424
425 <p><blockquote>
426 usb:v0AC8p3420d5000dcEFdsc02dp01ic01isc01ip00
427 <br>usb:v0AC8p3420d5000dcEFdsc02dp01ic01isc02ip00
428 <br>usb:v0AC8p3420d5000dcEFdsc02dp01ic0Eisc01ip00
429 <br>usb:v0AC8p3420d5000dcEFdsc02dp01ic0Eisc02ip00
430 </blockquote></p>
431
432 <p>Interface class 0E01 is video control, 0E02 is video streaming (aka
433 camera), 0101 is audio control device and 0102 is audio streaming (aka
434 microphone). Thus this is a camera with microphone included.</p>
435
436 <p><strong>ACPI subtype</strong></p>
437
438 <p>The ACPI type is used for several non-PCI/USB stuff. This is an IR
439 receiver in a Thinkpad X40:</p>
440
441 <p><blockquote>
442 acpi:IBM0071:PNP0511:
443 </blockquote></p>
444
445 <p>The values between the colons are IDs.</p>
446
447 <p><strong>DMI subtype</strong></p>
448
449 <p>The DMI table contain lots of information about the computer case
450 and model. This is an entry for a IBM Thinkpad X40, fetched from
451 /sys/devices/virtual/dmi/id/modalias:</p>
452
453 <p><blockquote>
454 dmi:bvnIBM:bvr1UETB6WW(1.66):bd06/15/2005:svnIBM:pn2371H4G:pvrThinkPadX40:rvnIBM:rn2371H4G:rvrNotAvailable:cvnIBM:ct10:cvrNotAvailable:
455 </blockquote></p>
456
457 <p>The values present are</p>
458
459 <pre>
460 bvn IBM (BIOS vendor)
461 bvr 1UETB6WW(1.66) (BIOS version)
462 bd 06/15/2005 (BIOS date)
463 svn IBM (system vendor)
464 pn 2371H4G (product name)
465 pvr ThinkPadX40 (product version)
466 rvn IBM (board vendor)
467 rn 2371H4G (board name)
468 rvr NotAvailable (board version)
469 cvn IBM (chassis vendor)
470 ct 10 (chassis type)
471 cvr NotAvailable (chassis version)
472 </pre>
473
474 <p>The chassis type 10 is Notebook. Other interesting values can be
475 found in the dmidecode source:</p>
476
477 <pre>
478 3 Desktop
479 4 Low Profile Desktop
480 5 Pizza Box
481 6 Mini Tower
482 7 Tower
483 8 Portable
484 9 Laptop
485 10 Notebook
486 11 Hand Held
487 12 Docking Station
488 13 All In One
489 14 Sub Notebook
490 15 Space-saving
491 16 Lunch Box
492 17 Main Server Chassis
493 18 Expansion Chassis
494 19 Sub Chassis
495 20 Bus Expansion Chassis
496 21 Peripheral Chassis
497 22 RAID Chassis
498 23 Rack Mount Chassis
499 24 Sealed-case PC
500 25 Multi-system
501 26 CompactPCI
502 27 AdvancedTCA
503 28 Blade
504 29 Blade Enclosing
505 </pre>
506
507 <p>The chassis type values are not always accurately set in the DMI
508 table. For example my home server is a tower, but the DMI modalias
509 claim it is a desktop.</p>
510
511 <p><strong>SerIO subtype</strong></p>
512
513 <p>This type is used for PS/2 mouse plugs. One example is from my
514 test machine:</p>
515
516 <p><blockquote>
517 serio:ty01pr00id00ex00
518 </blockquote></p>
519
520 <p>The values present are</p>
521
522 <pre>
523 ty 01 (type)
524 pr 00 (prototype)
525 id 00 (id)
526 ex 00 (extra)
527 </pre>
528
529 <p>This type is supported by the psmouse driver. I am not sure what
530 the valid values are.</p>
531
532 <p><strong>Other subtypes</strong></p>
533
534 <p>There are heaps of other modalias subtypes according to
535 file2alias.c. There is the rest of the list from that source: amba,
536 ap, bcma, ccw, css, eisa, hid, i2c, ieee1394, input, ipack, isapnp,
537 mdio, of, parisc, pcmcia, platform, scsi, sdio, spi, ssb, vio, virtio,
538 vmbus, x86cpu and zorro. I did not spend time documenting all of
539 these, as they do not seem relevant for my intended use with mapping
540 hardware to packages when new stuff is inserted during run time.</p>
541
542 <p><strong>Looking up kernel modules using modalias values</strong></p>
543
544 <p>To check which kernel modules provide support for a given modalias,
545 one can use the following shell script:</p>
546
547 <pre>
548 for id in $(find /sys -name modalias -print0 | xargs -0 cat | sort -u); do \
549 echo "$id" ; \
550 /sbin/modprobe --show-depends "$id"|sed 's/^/ /' ; \
551 done
552 </pre>
553
554 <p>The output can look like this (only the first few entries as the
555 list is very long on my test machine):</p>
556
557 <pre>
558 acpi:ACPI0003:
559 insmod /lib/modules/2.6.32-5-686/kernel/drivers/acpi/ac.ko
560 acpi:device:
561 FATAL: Module acpi:device: not found.
562 acpi:IBM0068:
563 insmod /lib/modules/2.6.32-5-686/kernel/drivers/char/nvram.ko
564 insmod /lib/modules/2.6.32-5-686/kernel/drivers/leds/led-class.ko
565 insmod /lib/modules/2.6.32-5-686/kernel/net/rfkill/rfkill.ko
566 insmod /lib/modules/2.6.32-5-686/kernel/drivers/platform/x86/thinkpad_acpi.ko
567 acpi:IBM0071:PNP0511:
568 insmod /lib/modules/2.6.32-5-686/kernel/lib/crc-ccitt.ko
569 insmod /lib/modules/2.6.32-5-686/kernel/net/irda/irda.ko
570 insmod /lib/modules/2.6.32-5-686/kernel/drivers/net/irda/nsc-ircc.ko
571 [...]
572 </pre>
573
574 <p>If you want to help implementing a system to let us propose what
575 packages to install when new hardware is plugged into a Debian
576 machine, please send me an email or talk to me on
577 <a href="irc://irc.debian.org/%23debian-devel">#debian-devel</a>.</p>
578
579 <p><strong>Update 2013-01-15:</strong> Rewrite "cat $(find ...)" to
580 "find ... -print0 | xargs -0 cat" to make sure it handle directories
581 in /sys/ with space in them.</p>
582 </div>
583 <div class="tags">
584
585
586 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>.
587
588
589 </div>
590 </div>
591 <div class="padding"></div>
592
593 <div class="entry">
594 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Moved_the_pymissile_Debian_packaging_to_collab_maint.html">Moved the pymissile Debian packaging to collab-maint</a></div>
595 <div class="date">10th January 2013</div>
596 <div class="body"><p>As part of my investigation on how to improve the support in Debian
597 for hardware dongles, I dug up my old Mark and Spencer USB Rocket
598 Launcher and updated the Debian package
599 <a href="http://packages.qa.debian.org/pymissile">pymissile</a> to make
600 sure udev will fix the device permissions when it is plugged in. I
601 also added a "Modaliases" header to test it in the Debian archive and
602 hopefully make the package be proposed by jockey in Ubuntu when a user
603 plug in his rocket launcher. In the process I moved the source to a
604 git repository under collab-maint, to make it easier for any DD to
605 contribute. <a href="http://code.google.com/p/pymissile/">Upstream</a>
606 is not very active, but the software still work for me even after five
607 years of relative silence. The new git repository is not listed in
608 the uploaded package yet, because I want to test the other changes a
609 bit more before I upload the new version. If you want to check out
610 the new version with a .desktop file included, visit the
611 <a href="http://anonscm.debian.org/gitweb/?p=collab-maint/pymissile.git">gitweb
612 view</a> or use "<tt>git clone
613 git://anonscm.debian.org/collab-maint/pymissile.git</tt>".</p>
614 </div>
615 <div class="tags">
616
617
618 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/robot">robot</a>.
619
620
621 </div>
622 </div>
623 <div class="padding"></div>
624
625 <div class="entry">
626 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Lets_make_hardware_dongles_easier_to_use_in_Debian.html">Lets make hardware dongles easier to use in Debian</a></div>
627 <div class="date"> 9th January 2013</div>
628 <div class="body"><p>One thing that annoys me with Debian and Linux distributions in
629 general, is that there is a great package management system with the
630 ability to automatically install software packages by downloading them
631 from the distribution mirrors, but no way to get it to automatically
632 install the packages I need to use the hardware I plug into my
633 machine. Even if the package to use it is easily available from the
634 Linux distribution. When I plug in a LEGO Mindstorms NXT, it could
635 suggest to automatically install the python-nxt, nbc and t2n packages
636 I need to talk to it. When I plug in a Yubikey, it could propose the
637 yubikey-personalization package. The information required to do this
638 is available, but no-one have pulled all the pieces together.</p>
639
640 <p>Some years ago, I proposed to
641 <a href="http://lists.debian.org/debian-devel/2010/05/msg01206.html">use
642 the discover subsystem to implement this</a>. The idea is fairly
643 simple:
644
645 <ul>
646
647 <li>Add a desktop entry in /usr/share/autostart/ pointing to a program
648 starting when a user log in.</li>
649
650 <li>Set this program up to listen for kernel events emitted when new
651 hardware is inserted into the computer.</li>
652
653 <li>When new hardware is inserted, look up the hardware ID in a
654 database mapping to packages, and take note of any non-installed
655 packages.</li>
656
657 <li>Show a message to the user proposing to install the discovered
658 package, and make it easy to install it.</li>
659
660 </ul>
661
662 <p>I am not sure what the best way to implement this is, but my
663 initial idea was to use dbus events to discover new hardware, the
664 discover database to find packages and
665 <a href="http://www.packagekit.org/">PackageKit</a> to install
666 packages.</p>
667
668 <p>Yesterday, I found time to try to implement this idea, and the
669 draft package is now checked into
670 <a href="http://anonscm.debian.org/viewvc/debian-edu/trunk/src/hw-support-handler/">the
671 Debian Edu subversion repository</a>. In the process, I updated the
672 <a href="http://packages.qa.debian.org/d/discover-data.html">discover-data</a>
673 package to map the USB ids of LEGO Mindstorms and Yubikey devices to
674 the relevant packages in Debian, and uploaded a new version
675 2.2013.01.09 to unstable. I also discovered that the current
676 <a href="http://packages.qa.debian.org/d/discover.html">discover</a>
677 package in Debian no longer discovered any USB devices, because
678 /proc/bus/usb/devices is no longer present. I ported it to use
679 libusb as a fall back option to get it working. The fixed package
680 version 2.1.2-6 is now in experimental (didn't upload it to unstable
681 because of the freeze).</p>
682
683 <p>With this prototype in place, I can insert my Yubikey, and get this
684 desktop notification to show up (only once, the first time it is
685 inserted):</p>
686
687 <p align="center"><img src="http://people.skolelinux.org/pere/blog/images/2013-01-09-hw-autoinstall.png"></p>
688
689 <p>For this prototype to be really useful, some way to automatically
690 install the proposed packages by pressing the "Please install
691 program(s)" button should to be implemented.</p>
692
693 <p>If this idea seem useful to you, and you want to help make it
694 happen, please help me update the discover-data database with mappings
695 from hardware to Debian packages. Check if 'discover-pkginstall -l'
696 list the package you would like to have installed when a given
697 hardware device is inserted into your computer, and report bugs using
698 reportbug if it isn't. Or, if you know of a better way to provide
699 such mapping, please let me know.</p>
700
701 <p>This prototype need more work, and there are several questions that
702 should be considered before it is ready for production use. Is dbus
703 the correct way to detect new hardware? At the moment I look for HAL
704 dbus events on the system bus, because that is the events I could see
705 on my Debian Squeeze KDE desktop. Are there better events to use?
706 How should the user be notified? Is the desktop notification
707 mechanism the best option, or should the background daemon raise a
708 popup instead? How should packages be installed? When should they
709 not be installed?</p>
710
711 <p>If you want to help getting such feature implemented in Debian,
712 please send me an email. :)</p>
713 </div>
714 <div class="tags">
715
716
717 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>.
718
719
720 </div>
721 </div>
722 <div class="padding"></div>
723
724 <div class="entry">
725 <div class="title"><a href="http://people.skolelinux.org/pere/blog/New_IRC_channel_for_LEGO_designers_using_Debian.html">New IRC channel for LEGO designers using Debian</a></div>
726 <div class="date"> 2nd January 2013</div>
727 <div class="body"><p>During Christmas, I have worked a bit on the Debian support for
728 <a href="http://mindstorms.lego.com/en-us/Default.aspx">LEGO Mindstorm
729 NXT</a>. My son and I have played a bit with my NXT set, and I
730 discovered I had to build all the tools myself because none were
731 already in Debian Squeeze. If Debian support for LEGO is something
732 you care about, please join me on the IRC channel
733 <a href="irc://irc.debian.org/%23debian-lego">#debian-lego</a> (server
734 irc.debian.org). There is a lot that could be done to improve the
735 Debian support for LEGO designers. For example both CAD software
736 and Mindstorm compilers are missing. :)</p>
737
738 <p>Update 2012-01-03: A
739 <a href="http://wiki.debian.org/LegoDesigners">project page</a>
740 including links to Lego related packages is now available.</p>
741 </div>
742 <div class="tags">
743
744
745 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/robot">robot</a>.
746
747
748 </div>
749 </div>
750 <div class="padding"></div>
751
752 <div class="entry">
753 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Lenker_for_2013_01_01.html">Lenker for 2013-01-01</a></div>
754 <div class="date"> 1st January 2013</div>
755 <div class="body"><p>Her er noen lenker til tekster jeg har satt pris på å lese den
756 siste måneden.</p>
757
758 <ul>
759
760 <li>2012-12-07
761 <a href="http://www.idg.no/computerworld/article262047.ece">Myter og
762 FUD om fri programvare</a> av min venn Christer Gundersen som
763 kommenterer noen av de påstandene som er spredt via Computerworld
764 Norge de siste månedene.</li>
765
766 <li>BankID er et opplegg der utsteder (dvs. banken eller dens
767 leverandør) sitter på alt som trengs for å bruke BankID, men har
768 lovet å ikke bruke den unntatt på oppdrag fra deg. Det er greit nok
769 for banktjenester, der banken allerede har full kontroll over
770 resultatet, men problematisk når det gjelder tilgang til
771 helseopplysninger og avtaleinngåelse med andre enn banken. Jeg
772 håper protestene brer om seg.
773
774 <ul>
775
776 <li>2012-12-11 <a href="http://www.aftenposten.no/meninger/debatt/BankID-blottlegger-helseopplysninger-7067148.html">BankID
777 blottlegger helseopplysninger</a></li>
778
779 <li>2012-12-07 <a href="http://www.nrk.no/nyheter/norge/1.9695027">-
780 Helseopplysningene ikke sikre med Bank-ID</a></li>
781
782 <li>2012-12-07
783 <a href="https://www.bankid.no/Presse-og-nyheter/Nyhetsarkiv/2012/Papeker-alvorlige-men-kjente-utfordringer/">PÃ¥peker
784 alvorlige, men kjente utfordringer</a> er den offisielle
785 holdningen til de som lager BankID.</li>
786
787 <li>2012-12-08
788 <a href="http://www.tnp.no/norway/panorama/3419-ntnu-researcher-warns-against-security-of-bank-id-password">NTNU
789 Researcher Warns against Security of Bank ID Password</a>
790
791 </ul>
792
793 <li>2012-12-11 <a href="http://www.aftenposten.no/nyheter/iriks/Norske-elever-er-darligst-i-Europa-pa-algebra-7066752.html">Norske elever er dårligst i Europa på algebra</a>
794
795 <li>2012-12-11
796 <a href="http://www.aftenposten.no/meninger/debatt/Realfagsdodaren-7067173.html">Realfagsdødaren</a>
797
798 <li>2012-12-21
799 <a href="http://www.bt.no/nyheter/innenriks/112/--Forventningene-er-for-hoye-2816450.html">-
800 Noen må bli skuffet</a> - Politiet i Bergen forteller hvor lavt de
801 prioriterer hverdagskriminalitet.</li>
802
803 <li>2012-05-03
804 <a href="http://e24.no/jobb/kripos-ansatt-doemt-for-snoking-for-venn/20208585">
805 Kripos-ansatt dømt for snoking for venn</A> - viser hvor svak
806 reaksjonen blir når politiet misbruker innsamlet informasjon. En
807 forvarsel på konsekvensene av nasjonal brev- og besøkskontroll -
808 ofte kalt Datalagringsdirektivet.</li>
809
810 <li>2012-12-14
811 <a href="http://www.dagbladet.no/2012/12/14/kultur/debatt/kronikk/jul/ensomhet/24838541/">Ã…
812 smøre en forskjell</a> - om ensomhet og jul.</li>
813
814 <li>2012-12-18
815 <a href="http://www.aftenposten.no/meninger/kronikker/n-krise-av-gangen_-takk-7072452.html">Én
816 krise av gangen, takk!</a>
817
818
819 <li>2012-12-17
820 <a href="http://www.aftenposten.no/meninger/NAV-Et-mangehodet-monster--7072165.html">NAV:
821 Et mangehodet monster</a></li>
822
823 <li>2011-01-12
824 <a href="http://www.dagbladet.no/2011/01/12/kultur/debatt/kronikk/personvern/15027203/">Pasienter
825 uten vern</a> - forteller litt om hvordan Norsk Pasientregister og
826 andre helseregister raderer bort pasienters privatsfære.</li>
827
828
829 <li>2012-12-19
830 <a href="http://www.aftenposten.no/meninger/debatt/Hvorfor-er-barnefamilier-fattige-7073951.html">Hvorfor
831 er barnefamilier fattige?</a></li>
832
833 <li>2012-12-25
834 <a href="http://www.aftenposten.no/meninger/spaltister/Den-skjulte-minoriteten--konservative-kristne-i-Norge-7075518.html">Den
835 skjulte minoriteten – konservative kristne i Norge</a> - kronikk av
836 Bjørn Stærk fra aftenposten</li>
837
838 <li>2009-05-04
839 <a href="http://deltemeninger.no/-/bulletin/show/303429_folkebiblioteket-2-0?ref=checkpoint">Folkebiblioteket
840 2.0</a> - Min venn Sturle om opphavsrett og Internett, i debatt med
841 Olav Torvund.</li>
842
843 </ul>
844
845 <p>Og et godt nytt år til dere alle!</p>
846 </div>
847 <div class="tags">
848
849
850 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bankid">bankid</a>, <a href="http://people.skolelinux.org/pere/blog/tags/lenker">lenker</a>, <a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>.
851
852
853 </div>
854 </div>
855 <div class="padding"></div>
856
857 <div class="entry">
858 <div class="title"><a href="http://people.skolelinux.org/pere/blog/A_Christmas_present_for_Skolelinux___Debian_Edu.html">A Christmas present for Skolelinux / Debian Edu</a></div>
859 <div class="date">28th December 2012</div>
860 <div class="body"><p>I was happy to discover a few days ago that the
861 <a href="http://www.skolelinux.org/">Skolelinux / Debian Edu</a>
862 project also this year received a Christmas present from Another
863 Agency in Trondheim. NOK 1000,- showed up on our donation account
864 December 24th. I want to express our thanks for this very welcome
865 present. As the Debian Edu / Skolelinux project is very short on
866 funding these days, and thus lack the money to do regular developer
867 gatherings, this donation was most welcome. One developer gathering
868 cost around NOK 15&nbsp;000,-, so we need quite a lot more to keep the
869 development pace we want. Thus, I hope their example this year is
870 followed by many others. :)</p>
871
872 <p>The public list of donors can be found on
873 <a href="http://www.linuxiskolen.no/slxdebianlabs/donations.html">the
874 donation page</a> for the project, which also contain instructions if
875 you want to donate to the project.</p>
876 </div>
877 <div class="tags">
878
879
880 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>.
881
882
883 </div>
884 </div>
885 <div class="padding"></div>
886
887 <div class="entry">
888 <div class="title"><a href="http://people.skolelinux.org/pere/blog/How_to_backport_bitcoin_qt_version_0_7_2_2_to_Debian_Squeeze.html">How to backport bitcoin-qt version 0.7.2-2 to Debian Squeeze</a></div>
889 <div class="date">25th December 2012</div>
890 <div class="body"><p>Let me start by wishing you all marry Christmas and a happy new
891 year! I hope next year will prove to be a good year.</p>
892
893 <p><a href="http://www.bitcoin.org/">Bitcoin</a>, the digital
894 decentralised "currency" that allow people to transfer bitcoins
895 between each other with minimal overhead, is a very interesting
896 experiment. And as I wrote a few days ago, the bitcoin situation in
897 <a href="http://www.debian.org/">Debian</a> is about to improve a bit.
898 The <a href="http://packages.qa.debian.org/bitcoin">new debian source
899 package</a> (version 0.7.2-2) was uploaded yesterday, and is waiting
900 in <a href="http://ftp-master.debian.org/new.html">the NEW queue</A>
901 for one of the ftpmasters to approve the new bitcoin-qt package
902 name.</p>
903
904 <p>And thanks to the great work of Jonas and the rest of the bitcoin
905 team in Debian, you can easily test the package in Debian Squeeze
906 using the following steps to get a set of working packages:</p>
907
908 <blockquote><pre>
909 git clone git://git.debian.org/git/collab-maint/bitcoin
910 cd bitcoin
911 DEB_MAINTAINER_MODE=1 DEB_BUILD_OPTIONS=noupnp fakeroot debian/rules clean
912 DEB_BUILD_OPTIONS=noupnp git-buildpackage --git-ignore-new
913 </pre></blockquote>
914
915 <p>You might have to install some build dependencies as well. The
916 list of commands should give you two packages, bitcoind and
917 bitcoin-qt, ready for use in a Squeeze environment. Note that the
918 client will download the complete set of bitcoin "blocks", which need
919 around 5.6 GiB of data on my machine at the moment. Make sure your
920 ~/.bitcoin/ directory have lots of spare room if you want to download
921 all the blocks. The client will warn if the disk is getting full, so
922 there is not really a problem if you got too little room, but you will
923 not be able to get all the features out of the client.</p>
924
925 <p>As usual, if you use bitcoin and want to show your support of my
926 activities, please send Bitcoin donations to my address
927 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&label=PetterReinholdtsenBlog">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
928 </div>
929 <div class="tags">
930
931
932 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
933
934
935 </div>
936 </div>
937 <div class="padding"></div>
938
939 <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>
940 <div id="sidebar">
941
942
943
944 <h2>Archive</h2>
945 <ul>
946
947 <li>2013
948 <ul>
949
950 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/01/">January (8)</a></li>
951
952 </ul></li>
953
954 <li>2012
955 <ul>
956
957 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/01/">January (7)</a></li>
958
959 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/02/">February (10)</a></li>
960
961 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/03/">March (17)</a></li>
962
963 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/04/">April (12)</a></li>
964
965 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/05/">May (12)</a></li>
966
967 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/06/">June (20)</a></li>
968
969 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/07/">July (17)</a></li>
970
971 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/08/">August (6)</a></li>
972
973 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/09/">September (9)</a></li>
974
975 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/10/">October (17)</a></li>
976
977 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/11/">November (10)</a></li>
978
979 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/12/">December (7)</a></li>
980
981 </ul></li>
982
983 <li>2011
984 <ul>
985
986 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/01/">January (16)</a></li>
987
988 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/02/">February (6)</a></li>
989
990 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/03/">March (6)</a></li>
991
992 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/04/">April (7)</a></li>
993
994 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/05/">May (3)</a></li>
995
996 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/06/">June (2)</a></li>
997
998 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/07/">July (7)</a></li>
999
1000 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/08/">August (6)</a></li>
1001
1002 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/09/">September (4)</a></li>
1003
1004 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/10/">October (2)</a></li>
1005
1006 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/11/">November (3)</a></li>
1007
1008 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/12/">December (1)</a></li>
1009
1010 </ul></li>
1011
1012 <li>2010
1013 <ul>
1014
1015 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/01/">January (2)</a></li>
1016
1017 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/02/">February (1)</a></li>
1018
1019 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/03/">March (3)</a></li>
1020
1021 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/04/">April (3)</a></li>
1022
1023 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/05/">May (9)</a></li>
1024
1025 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/06/">June (14)</a></li>
1026
1027 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/07/">July (12)</a></li>
1028
1029 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/08/">August (13)</a></li>
1030
1031 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/09/">September (7)</a></li>
1032
1033 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/10/">October (9)</a></li>
1034
1035 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/11/">November (13)</a></li>
1036
1037 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/12/">December (12)</a></li>
1038
1039 </ul></li>
1040
1041 <li>2009
1042 <ul>
1043
1044 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/01/">January (8)</a></li>
1045
1046 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/02/">February (8)</a></li>
1047
1048 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/03/">March (12)</a></li>
1049
1050 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/04/">April (10)</a></li>
1051
1052 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/05/">May (9)</a></li>
1053
1054 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/06/">June (3)</a></li>
1055
1056 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/07/">July (4)</a></li>
1057
1058 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/08/">August (3)</a></li>
1059
1060 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/09/">September (1)</a></li>
1061
1062 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/10/">October (2)</a></li>
1063
1064 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/11/">November (3)</a></li>
1065
1066 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/12/">December (3)</a></li>
1067
1068 </ul></li>
1069
1070 <li>2008
1071 <ul>
1072
1073 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/11/">November (5)</a></li>
1074
1075 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/12/">December (7)</a></li>
1076
1077 </ul></li>
1078
1079 </ul>
1080
1081
1082
1083 <h2>Tags</h2>
1084 <ul>
1085
1086 <li><a href="http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (13)</a></li>
1087
1088 <li><a href="http://people.skolelinux.org/pere/blog/tags/amiga">amiga (1)</a></li>
1089
1090 <li><a href="http://people.skolelinux.org/pere/blog/tags/aros">aros (1)</a></li>
1091
1092 <li><a href="http://people.skolelinux.org/pere/blog/tags/bankid">bankid (4)</a></li>
1093
1094 <li><a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (5)</a></li>
1095
1096 <li><a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (12)</a></li>
1097
1098 <li><a href="http://people.skolelinux.org/pere/blog/tags/bsa">bsa (2)</a></li>
1099
1100 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian">debian (66)</a></li>
1101
1102 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (118)</a></li>
1103
1104 <li><a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan (9)</a></li>
1105
1106 <li><a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook (7)</a></li>
1107
1108 <li><a href="http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
1109
1110 <li><a href="http://people.skolelinux.org/pere/blog/tags/english">english (172)</a></li>
1111
1112 <li><a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (21)</a></li>
1113
1114 <li><a href="http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (12)</a></li>
1115
1116 <li><a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (10)</a></li>
1117
1118 <li><a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (9)</a></li>
1119
1120 <li><a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju (32)</a></li>
1121
1122 <li><a href="http://people.skolelinux.org/pere/blog/tags/kart">kart (17)</a></li>
1123
1124 <li><a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap (8)</a></li>
1125
1126 <li><a href="http://people.skolelinux.org/pere/blog/tags/lenker">lenker (6)</a></li>
1127
1128 <li><a href="http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (1)</a></li>
1129
1130 <li><a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (25)</a></li>
1131
1132 <li><a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk (219)</a></li>
1133
1134 <li><a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug (148)</a></li>
1135
1136 <li><a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (6)</a></li>
1137
1138 <li><a href="http://people.skolelinux.org/pere/blog/tags/open311">open311 (2)</a></li>
1139
1140 <li><a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (41)</a></li>
1141
1142 <li><a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern (61)</a></li>
1143
1144 <li><a href="http://people.skolelinux.org/pere/blog/tags/raid">raid (1)</a></li>
1145
1146 <li><a href="http://people.skolelinux.org/pere/blog/tags/reprap">reprap (11)</a></li>
1147
1148 <li><a href="http://people.skolelinux.org/pere/blog/tags/rfid">rfid (2)</a></li>
1149
1150 <li><a href="http://people.skolelinux.org/pere/blog/tags/robot">robot (6)</a></li>
1151
1152 <li><a href="http://people.skolelinux.org/pere/blog/tags/rss">rss (1)</a></li>
1153
1154 <li><a href="http://people.skolelinux.org/pere/blog/tags/ruter">ruter (4)</a></li>
1155
1156 <li><a href="http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (2)</a></li>
1157
1158 <li><a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (28)</a></li>
1159
1160 <li><a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (4)</a></li>
1161
1162 <li><a href="http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (4)</a></li>
1163
1164 <li><a href="http://people.skolelinux.org/pere/blog/tags/standard">standard (39)</a></li>
1165
1166 <li><a href="http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (3)</a></li>
1167
1168 <li><a href="http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (5)</a></li>
1169
1170 <li><a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (12)</a></li>
1171
1172 <li><a href="http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (1)</a></li>
1173
1174 <li><a href="http://people.skolelinux.org/pere/blog/tags/valg">valg (7)</a></li>
1175
1176 <li><a href="http://people.skolelinux.org/pere/blog/tags/video">video (35)</a></li>
1177
1178 <li><a href="http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (4)</a></li>
1179
1180 <li><a href="http://people.skolelinux.org/pere/blog/tags/web">web (26)</a></li>
1181
1182 </ul>
1183
1184
1185 </div>
1186 <p style="text-align: right">
1187 Created by <a href="http://steve.org.uk/Software/chronicle">Chronicle v4.4</a>
1188 </p>
1189
1190 </body>
1191 </html>