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">
5 <meta http-equiv=
"Content-Type" content=
"text/html;charset=utf-8" />
6 <title>Petter Reinholdtsen: entries from January
2025</title>
7 <link rel=
"stylesheet" type=
"text/css" media=
"screen" href=
"http://www.hungry.com/~pere/blog/style.css" />
8 <link rel=
"stylesheet" type=
"text/css" media=
"screen" href=
"http://www.hungry.com/~pere/blog/vim.css" />
9 <link rel=
"alternate" title=
"RSS Feed" href=
"01.rss" type=
"application/rss+xml" />
15 <a href=
"http://www.hungry.com/~pere/blog/">Petter Reinholdtsen
</a>
22 <h3>Entries from January
2025.
</h3>
26 <a href=
"http://www.hungry.com/~pere/blog/121_packages_in_Debian_mapped_to_hardware_for_automatic_recommendation.html">121 packages in Debian mapped to hardware for automatic recommendation
</a>
32 <p>For some years now, I have been working on a automatic hardware
33 based package recommendation system for Debian and other Linux
34 distributions. The isenkram system I started on back in
2013 now
35 consist of two subsystems, one locating firmware files using the
36 information provided by apt-file, and one matching hardware to
37 packages using information provided by AppStream. The former is very
38 similar to the mechanism implemented in debian-installer to pick the
39 right firmware packages to install. This post is about the latter
40 system. Thanks to steady progress and good help from both other
41 Debian and upstream developers, I am happy to report that
42 <a href=
"https://tracker.debian.org/pkg/isenkram">the Isenkram
43 system
</a> now are able to recommend
121 packages using information
45 <a href=
"https://www.freedesktop.org/wiki/Distributions/AppStream/">AppStream
</a>.
</p>
47 <p>The mapping is done using modalias information provided by the
48 kernel, the same information used by udev when creating device files,
49 and the kernel when deciding which kernel modules to load. To get all
50 the modalias identifiers relevant for your machine, you can run the
51 following command on the command line:
</p>
54 find /sys/devices -name modalias -print0 | xargs -
0 sort -u
57 <p>The modalias identifiers can look something like this:
</p>
61 cpu:type:x86,ven0000fam0006mod003F:feature:,
0000,
0001,
0002,
0003,
0004,
0005,
0006,
0007,
0008,
0009,
000B,
000C,
000D,
000E,
000F,
0010,
0011,
0013,
0015,
0016,
0017,
0018,
0019,
001A,
001B,
001C,
001D,
001F,
002B,
0034,
003A,
003B,
003D,
0068,
006B,
006C,
006D,
006F,
0070,
0072,
0074,
0075,
0076,
0078,
0079,
007C,
0080,
0081,
0082,
0083,
0084,
0085,
0086,
0087,
0088,
0089,
008B,
008C,
008D,
008E,
008F,
0091,
0092,
0093,
0094,
0095,
0096,
0097,
0098,
0099,
009A,
009B,
009C,
009D,
009E,
00C0,
00C5,
00E1,
00E3,
00EB,
00ED,
00F0,
00F1,
00F3,
00F5,
00F6,
00F9,
00FA,
00FB,
00FD,
00FF,
0100,
0101,
0102,
0103,
0111,
0120,
0121,
0123,
0125,
0127,
0128,
0129,
012A,
012C,
012D,
0140,
0160,
0161,
0165,
016C,
017B,
01C0,
01C1,
01C2,
01C4,
01C5,
01C6,
01F9,
024A,
025A,
025B,
025C,
025F,
0282
62 dmi:bvnDellInc.:bvr2.18
.1:bd08/
14/
2023:br2.18:svnDellInc.:pnPowerEdgeR730:pvr:rvnDellInc.:rn0H21J3:rvrA09:cvnDellInc.:ct23:cvr:skuSKU=NotProvided
63 pci:v00008086d00008D3Bsv00001028sd00000600bc07sc80i00
66 usb:v413CpA001d0000dc09dsc00dp00ic09isc00ip00in00
69 <p>The entries above are a selection of the complete set available on
70 a Dell PowerEdge R730 machine I have access to, to give an idea about
71 the various styles of hardware identifiers presented in the modalias
72 format. When looking up relevant packages in a Debian Testing
73 installation on the same R730, I get this list of packages
77 % sudo isenkram-lookup
79 firmware-nvidia-graphics
86 <p>The list consist of firmware packages requested by kernel modules,
87 as well packages with program to get the status from the RAID
88 controller and to maintain the LAN console. When the edac-utils
89 package providing tools to check the ECC RAM status will enter testing
90 in a few days, it will also show up as a proposal from isenkram. In
91 addition, once the mfiutil package we uploaded in October get past the
92 NEW processing, it will also propose a tool to configure the RAID
95 <p>Another example is the trusty old Lenovo Thinkpad X230, which have
96 hardware handled by several packages in the archive. This is running
106 firmware-misc-nonfree
120 <p>Here there proposal consist of software to handle the camera,
121 bluetooth, network card, wifi card, GPU, fan, fingerprint reader and
122 acceleration sensor on the machine.
</p>
124 <p>Here is the complete set of packages currently providing hardware
125 mapping via AppStream in Debian Unstable: air-quality-sensor,
126 alsa-firmware-loaders, antpm, array-info, avarice, avrdude,
127 bmusb-v4l2proxy, brltty, calibre, colorhug-client, concordance-common,
128 consolekit, dahdi-firmware-nonfree, dahdi-linux, edac-utils,
129 eegdev-plugins-free, ekeyd, elogind, firmware-amd-graphics,
130 firmware-ath9k-htc, firmware-atheros, firmware-b43-installer,
131 firmware-b43legacy-installer, firmware-bnx2, firmware-bnx2x,
132 firmware-brcm80211, firmware-carl9170, firmware-cavium,
133 firmware-intel-graphics, firmware-intel-misc, firmware-ipw2x00,
134 firmware-ivtv, firmware-iwlwifi, firmware-libertas,
135 firmware-linux-free, firmware-mediatek, firmware-misc-nonfree,
136 firmware-myricom, firmware-netronome, firmware-netxen,
137 firmware-nvidia-graphics, firmware-qcom-soc, firmware-qlogic,
138 firmware-realtek, firmware-ti-connectivity, fpga-icestorm, g810-led,
139 galileo, garmin-forerunner-tools, gkrellm-thinkbat, goldencheetah,
140 gpsman, gpstrans, gqrx-sdr, i8kutils, imsprog, ledger-wallets-udev,
141 libairspy0, libam7xxx0.1, libbladerf2, libgphoto2-
6t64,
142 libhamlib-utils, libm2k0.9
.0, libmirisdr4, libnxt, libopenxr1-monado,
143 libosmosdr0, librem5-flash-image, librtlsdr0, libticables2-
8,
144 libx52pro0, libykpers-
1-
1, libyubikey-udev, limesuite,
145 linuxcnc-uspace, lomoco, madwimax, media-player-info, megactl, mixxx,
146 mkgmap, msi-keyboard, mu-editor, mustang-plug, nbc, nitrokey-app, nqc,
147 ola, openfpgaloader, openocd, openrazer-driver-dkms, pcmciautils,
148 pcscd, pidgin-blinklight, ponyprog, printer-driver-splix,
149 python-yubico-tools, python3-btchip, qlcplus, rosegarden, scdaemon,
150 sispmctl, solaar, spectools, sunxi-tools, t2n, thinkfan, tlp,
151 tp-smapi-dkms, trezor, tucnak, ubertooth, usbrelay, uuu, viking,
152 w1retap, wsl, xawtv, xinput-calibrator, xserver-xorg-input-wacom and
155 <p>In addition to these, there are several
156 <a href=
"https://udd.debian.org/cgi-bin/bts-usertags.cgi?user=pere%40hungry.com&tag=appstream-modalias">with
157 patches pending in the Debian bug tracking system
</a>, and even more
158 where no-one wrote patches yet. Good candiates for the latter are
160 <a href=
"https://udd.debian.org/lintian-tag.cgi?tag=appstream-metadata-missing-modalias-provide">with
161 udev rules but no AppStream hardware information
</a>.
</p>
163 <p>The isenkram system consist of two packages, isenkram-cli with the
164 command line tools, and isenkram with a GUI background process. The
165 latter will listen for dbus events from udev emitted when new hardware
166 become available (like when inserting a USB dongle or discovering a
167 new bluetooth device), look up the modalias entry for this piece of
168 hardware in AppStream (and a hard coded list of mappings from isenkram
169 - currently working hard to move this list to AppStream), and pop up a
170 dialog proposing to install any not already installed packages
171 supporting this hardware. It work very well today when inserting the
172 LEGO Mindstorms RCX, NXT and EV3 controllers. :) If you want to make
173 sure more hardware related packages get recommended, please help out
174 fixing the remaining packages in Debian to provide AppStream metadata
175 with hardware mappings.
</p>
177 <p>As usual, if you use Bitcoin and want to show your support of my
178 activities, please send Bitcoin donations to my address
179 <b><a href=
"bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a></b>.
</p>
185 Tags:
<a href=
"http://www.hungry.com/~pere/blog/tags/debian">debian
</a>,
<a href=
"http://www.hungry.com/~pere/blog/tags/english">english
</a>,
<a href=
"http://www.hungry.com/~pere/blog/tags/isenkram">isenkram
</a>.
190 <div class=
"padding"></div>
194 <a href=
"http://www.hungry.com/~pere/blog/What_is_the_most_supported_MIME_type_in_Debian_in_2025_.html">What is the most supported MIME type in Debian in
2025?
</a>
200 <p><a href=
"http://www.hungry.com/~pere/blog/What_is_the_most_supported_MIME_type_in_Debian_in_2018_.html">Seven
</a>
202 <a href=
"http://www.hungry.com/~pere/blog/What_is_the_most_supported_MIME_type_in_Debian_.html">twelve
</a>
203 years ago, I measured what the most supported MIME type in Debian
204 was
</a>, first by analysing the desktop files in all packages in the
205 archive, then by analysing the DEP-
11 AppStream data set. I guess it
206 is time to repeat the measurement, only for unstable as last time:
</p>
208 <p><strong>Debian Unstable:
</strong></p>
212 ----- -----------------------
224 36 audio/x-vorbis+ogg
235 <p>The list was created like this using a sid chroot:
</p>
238 cat /var/lib/apt/lists/*sid*_dep11_Components-amd64.yml.gz | \
239 zcat | awk '/^ - \S+\/\S+$/ {print $
2 }' | sort | \
240 uniq -c | sort -nr | head -
20
243 <p>It is nice to see that the same number of packages now support PNG
244 and JPEG. Last time JPEG had more support than PNG. Most of the MIME
245 types are known to me, but the 'audio/x-scpls' one I have no idea what
246 represent, except it being an audio format. To find the packages
247 claiming support for this format, the appstreamcli command from the
248 appstream package can be used:
251 % appstreamcli what-provides mediatype audio/x-scpls | grep Package: | sort -u
252 Package: alsaplayer-common
259 Package: cynthiune.app
264 Package: kylin-burner
266 Package: mediaconch-gui
267 Package: mediainfo-gui
279 Package: soundconverter
286 <p>Look like several video and auto tools understand the format.
287 Similarly one can check out the number of packages supporting the STL
288 format commonly used for
3D printing:
</p>
291 % appstreamcli what-provides mediatype model/stl | grep Package: | sort -u
294 Package: open3d-viewer
299 <a href=
"https://tracker.debian.org/pkg/slic3r">slic3r
</a> and
300 <a href=
"https://tracker.debian.org/pkg/slic3r-prusa">prusa-slicer
</a>
301 packages do not support STL. Perhaps just missing package metadata?
302 Luckily the amount of package metadata in Debian is getting better,
303 and hopefully this way of locating relevant packages for any file
304 format will be the preferred one soon.
306 <p>As usual, if you use Bitcoin and want to show your support of my
307 activities, please send Bitcoin donations to my address
308 <b><a href=
"bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a></b>.
</p>
314 Tags:
<a href=
"http://www.hungry.com/~pere/blog/tags/debian">debian
</a>,
<a href=
"http://www.hungry.com/~pere/blog/tags/english">english
</a>,
<a href=
"http://www.hungry.com/~pere/blog/tags/isenkram">isenkram
</a>.
319 <div class=
"padding"></div>
323 <a href=
"http://www.hungry.com/~pere/blog/The_2025_LinuxCNC_Norwegian_developer_gathering.html">The
2025 LinuxCNC Norwegian developer gathering
</a>
329 <p><a href=
"https://linuxcnc.org/">The LinuxCNC project
</a> is
330 trotting along. And I believe this great software system for
331 numerical control of machines such as milling machines, lathes, plasma
332 cutters, routers, cutting machines, robots and hexapods, would do even
333 better with more in-person developer gatherings, so we plan to
334 organise such gathering this summer too.
</p>
336 <p>This year we would like to invite to a small LinuxCNC and free
337 software fabrication workshop/gathering in Norway this summer for the
338 weekend starting July
4th
2025. New this year is the slightly larger
339 scope, and we invite people also outside the LinuxCNC community to
340 join. As earlier, we suggest to organize it as an
341 <a href=
"https://en.wikipedia.org/wiki/Unconference">unconference
</a>,
342 where the participants create the program upon arrival.
</p>
344 <p>The location is a metal workshop
15 minutes drive away from to the
345 Gardermoen airport (OSL), where there is a lot of space and a hotel only
346 5 minutes away by car. We plan to fire up the barbeque in the evenings.
</p>
348 <p>Please let us know if you would like to join. We track the list of
349 participants on
<a href=
"https://pad.efn.no/p/linuxcnc-2025-norway">a
350 simple pad
</a>, please add yourself there if you are interested in joining.
</p>
352 <p><a href=
"https://www.nuugfoundation.no/">The NUUG Foundation
</a> has on
353 our request offered to handle any money involved with this gathering,
354 in other words holding any sponsor funds and paying any bills.
355 NUUG Foundation is a spinnoff from the NUUG member organisation here
356 in Norway with long ties to the free software and open standards
359 <p>As usual we hope to find sponsors to pay for food, lodging and travel.
</p>
361 <p>As usual, if you use Bitcoin and want to show your support of my
362 activities, please send Bitcoin donations to my address
363 <b><a href=
"bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a></b>.
</p>
369 Tags:
<a href=
"http://www.hungry.com/~pere/blog/tags/debian">debian
</a>,
<a href=
"http://www.hungry.com/~pere/blog/tags/english">english
</a>,
<a href=
"http://www.hungry.com/~pere/blog/tags/linuxcnc">linuxcnc
</a>.
374 <div class=
"padding"></div>
376 <p style=
"text-align: right;"><a href=
"01.rss"><img src=
"http://www.hungry.com/~pere/blog/xml.gif" alt=
"RSS Feed" width=
"36" height=
"14" /></a></p>
387 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2025/01/">January (
3)
</a></li>
394 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2024/01/">January (
1)
</a></li>
396 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2024/02/">February (
1)
</a></li>
398 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2024/03/">March (
2)
</a></li>
400 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2024/04/">April (
3)
</a></li>
402 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2024/05/">May (
1)
</a></li>
404 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2024/06/">June (
1)
</a></li>
406 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2024/07/">July (
2)
</a></li>
408 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2024/12/">December (
1)
</a></li>
415 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2023/01/">January (
3)
</a></li>
417 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2023/02/">February (
1)
</a></li>
419 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2023/04/">April (
2)
</a></li>
421 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2023/05/">May (
3)
</a></li>
423 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2023/06/">June (
1)
</a></li>
425 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2023/08/">August (
1)
</a></li>
427 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2023/09/">September (
1)
</a></li>
429 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2023/10/">October (
1)
</a></li>
431 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2023/11/">November (
4)
</a></li>
433 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2023/12/">December (
1)
</a></li>
440 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2022/02/">February (
1)
</a></li>
442 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2022/03/">March (
3)
</a></li>
444 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2022/04/">April (
2)
</a></li>
446 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2022/06/">June (
2)
</a></li>
448 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2022/07/">July (
1)
</a></li>
450 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2022/09/">September (
1)
</a></li>
452 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2022/10/">October (
1)
</a></li>
454 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2022/12/">December (
1)
</a></li>
461 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2021/01/">January (
2)
</a></li>
463 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2021/02/">February (
1)
</a></li>
465 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2021/05/">May (
1)
</a></li>
467 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2021/06/">June (
1)
</a></li>
469 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2021/07/">July (
3)
</a></li>
471 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2021/08/">August (
1)
</a></li>
473 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2021/09/">September (
1)
</a></li>
475 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2021/10/">October (
1)
</a></li>
477 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2021/12/">December (
1)
</a></li>
484 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2020/02/">February (
2)
</a></li>
486 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2020/03/">March (
2)
</a></li>
488 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2020/04/">April (
2)
</a></li>
490 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2020/05/">May (
3)
</a></li>
492 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2020/06/">June (
2)
</a></li>
494 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2020/07/">July (
1)
</a></li>
496 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2020/09/">September (
1)
</a></li>
498 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2020/10/">October (
1)
</a></li>
500 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2020/11/">November (
1)
</a></li>
507 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2019/01/">January (
4)
</a></li>
509 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2019/02/">February (
3)
</a></li>
511 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2019/03/">March (
3)
</a></li>
513 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2019/05/">May (
2)
</a></li>
515 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2019/06/">June (
5)
</a></li>
517 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2019/07/">July (
2)
</a></li>
519 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2019/08/">August (
1)
</a></li>
521 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2019/09/">September (
1)
</a></li>
523 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2019/11/">November (
1)
</a></li>
525 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2019/12/">December (
4)
</a></li>
532 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2018/01/">January (
1)
</a></li>
534 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2018/02/">February (
5)
</a></li>
536 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2018/03/">March (
5)
</a></li>
538 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2018/04/">April (
3)
</a></li>
540 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2018/06/">June (
2)
</a></li>
542 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2018/07/">July (
5)
</a></li>
544 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2018/08/">August (
3)
</a></li>
546 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2018/09/">September (
3)
</a></li>
548 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2018/10/">October (
5)
</a></li>
550 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2018/11/">November (
2)
</a></li>
552 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2018/12/">December (
4)
</a></li>
559 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2017/01/">January (
4)
</a></li>
561 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2017/02/">February (
3)
</a></li>
563 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2017/03/">March (
5)
</a></li>
565 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2017/04/">April (
2)
</a></li>
567 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2017/06/">June (
5)
</a></li>
569 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2017/07/">July (
1)
</a></li>
571 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2017/08/">August (
1)
</a></li>
573 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2017/09/">September (
3)
</a></li>
575 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2017/10/">October (
5)
</a></li>
577 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2017/11/">November (
3)
</a></li>
579 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2017/12/">December (
4)
</a></li>
586 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/01/">January (
3)
</a></li>
588 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/02/">February (
2)
</a></li>
590 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/03/">March (
3)
</a></li>
592 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/04/">April (
8)
</a></li>
594 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/05/">May (
8)
</a></li>
596 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/06/">June (
2)
</a></li>
598 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/07/">July (
2)
</a></li>
600 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/08/">August (
5)
</a></li>
602 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/09/">September (
2)
</a></li>
604 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/10/">October (
3)
</a></li>
606 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/11/">November (
8)
</a></li>
608 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/12/">December (
5)
</a></li>
615 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/01/">January (
7)
</a></li>
617 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/02/">February (
6)
</a></li>
619 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/03/">March (
1)
</a></li>
621 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/04/">April (
4)
</a></li>
623 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/05/">May (
3)
</a></li>
625 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/06/">June (
4)
</a></li>
627 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/07/">July (
6)
</a></li>
629 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/08/">August (
2)
</a></li>
631 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/09/">September (
2)
</a></li>
633 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/10/">October (
9)
</a></li>
635 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/11/">November (
6)
</a></li>
637 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/12/">December (
3)
</a></li>
644 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/01/">January (
2)
</a></li>
646 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/02/">February (
3)
</a></li>
648 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/03/">March (
8)
</a></li>
650 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/04/">April (
7)
</a></li>
652 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/05/">May (
1)
</a></li>
654 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/06/">June (
2)
</a></li>
656 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/07/">July (
2)
</a></li>
658 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/08/">August (
2)
</a></li>
660 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/09/">September (
5)
</a></li>
662 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/10/">October (
6)
</a></li>
664 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/11/">November (
3)
</a></li>
666 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/12/">December (
5)
</a></li>
673 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/01/">January (
11)
</a></li>
675 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/02/">February (
9)
</a></li>
677 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/03/">March (
9)
</a></li>
679 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/04/">April (
6)
</a></li>
681 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/05/">May (
9)
</a></li>
683 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/06/">June (
10)
</a></li>
685 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/07/">July (
7)
</a></li>
687 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/08/">August (
3)
</a></li>
689 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/09/">September (
5)
</a></li>
691 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/10/">October (
7)
</a></li>
693 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/11/">November (
9)
</a></li>
695 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/12/">December (
3)
</a></li>
702 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/01/">January (
7)
</a></li>
704 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/02/">February (
10)
</a></li>
706 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/03/">March (
17)
</a></li>
708 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/04/">April (
12)
</a></li>
710 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/05/">May (
12)
</a></li>
712 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/06/">June (
20)
</a></li>
714 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/07/">July (
17)
</a></li>
716 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/08/">August (
6)
</a></li>
718 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/09/">September (
9)
</a></li>
720 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/10/">October (
17)
</a></li>
722 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/11/">November (
10)
</a></li>
724 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/12/">December (
7)
</a></li>
731 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/01/">January (
16)
</a></li>
733 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/02/">February (
6)
</a></li>
735 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/03/">March (
6)
</a></li>
737 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/04/">April (
7)
</a></li>
739 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/05/">May (
3)
</a></li>
741 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/06/">June (
2)
</a></li>
743 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/07/">July (
7)
</a></li>
745 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/08/">August (
6)
</a></li>
747 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/09/">September (
4)
</a></li>
749 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/10/">October (
2)
</a></li>
751 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/11/">November (
3)
</a></li>
753 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/12/">December (
1)
</a></li>
760 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/01/">January (
2)
</a></li>
762 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/02/">February (
1)
</a></li>
764 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/03/">March (
3)
</a></li>
766 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/04/">April (
3)
</a></li>
768 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/05/">May (
9)
</a></li>
770 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/06/">June (
14)
</a></li>
772 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/07/">July (
12)
</a></li>
774 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/08/">August (
13)
</a></li>
776 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/09/">September (
7)
</a></li>
778 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/10/">October (
9)
</a></li>
780 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/11/">November (
13)
</a></li>
782 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/12/">December (
12)
</a></li>
789 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/01/">January (
8)
</a></li>
791 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/02/">February (
8)
</a></li>
793 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/03/">March (
12)
</a></li>
795 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/04/">April (
10)
</a></li>
797 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/05/">May (
9)
</a></li>
799 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/06/">June (
3)
</a></li>
801 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/07/">July (
4)
</a></li>
803 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/08/">August (
3)
</a></li>
805 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/09/">September (
1)
</a></li>
807 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/10/">October (
2)
</a></li>
809 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/11/">November (
3)
</a></li>
811 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/12/">December (
3)
</a></li>
818 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2008/11/">November (
5)
</a></li>
820 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2008/12/">December (
7)
</a></li>
831 <li><a href=
"http://www.hungry.com/~pere/blog/tags/3d-printer">3d-printer (
19)
</a></li>
833 <li><a href=
"http://www.hungry.com/~pere/blog/tags/amiga">amiga (
1)
</a></li>
835 <li><a href=
"http://www.hungry.com/~pere/blog/tags/aros">aros (
1)
</a></li>
837 <li><a href=
"http://www.hungry.com/~pere/blog/tags/bankid">bankid (
4)
</a></li>
839 <li><a href=
"http://www.hungry.com/~pere/blog/tags/betalkontant">betalkontant (
9)
</a></li>
841 <li><a href=
"http://www.hungry.com/~pere/blog/tags/bitcoin">bitcoin (
13)
</a></li>
843 <li><a href=
"http://www.hungry.com/~pere/blog/tags/bootsystem">bootsystem (
17)
</a></li>
845 <li><a href=
"http://www.hungry.com/~pere/blog/tags/bsa">bsa (
2)
</a></li>
847 <li><a href=
"http://www.hungry.com/~pere/blog/tags/chrpath">chrpath (
3)
</a></li>
849 <li><a href=
"http://www.hungry.com/~pere/blog/tags/debian">debian (
206)
</a></li>
851 <li><a href=
"http://www.hungry.com/~pere/blog/tags/debian edu">debian edu (
159)
</a></li>
853 <li><a href=
"http://www.hungry.com/~pere/blog/tags/debian-handbook">debian-handbook (
9)
</a></li>
855 <li><a href=
"http://www.hungry.com/~pere/blog/tags/digistan">digistan (
11)
</a></li>
857 <li><a href=
"http://www.hungry.com/~pere/blog/tags/dld">dld (
18)
</a></li>
859 <li><a href=
"http://www.hungry.com/~pere/blog/tags/docbook">docbook (
33)
</a></li>
861 <li><a href=
"http://www.hungry.com/~pere/blog/tags/drivstoffpriser">drivstoffpriser (
4)
</a></li>
863 <li><a href=
"http://www.hungry.com/~pere/blog/tags/english">english (
468)
</a></li>
865 <li><a href=
"http://www.hungry.com/~pere/blog/tags/fiksgatami">fiksgatami (
23)
</a></li>
867 <li><a href=
"http://www.hungry.com/~pere/blog/tags/fildeling">fildeling (
14)
</a></li>
869 <li><a href=
"http://www.hungry.com/~pere/blog/tags/freeculture">freeculture (
34)
</a></li>
871 <li><a href=
"http://www.hungry.com/~pere/blog/tags/freedombox">freedombox (
9)
</a></li>
873 <li><a href=
"http://www.hungry.com/~pere/blog/tags/frikanalen">frikanalen (
20)
</a></li>
875 <li><a href=
"http://www.hungry.com/~pere/blog/tags/h264">h264 (
20)
</a></li>
877 <li><a href=
"http://www.hungry.com/~pere/blog/tags/intervju">intervju (
43)
</a></li>
879 <li><a href=
"http://www.hungry.com/~pere/blog/tags/isenkram">isenkram (
20)
</a></li>
881 <li><a href=
"http://www.hungry.com/~pere/blog/tags/kart">kart (
23)
</a></li>
883 <li><a href=
"http://www.hungry.com/~pere/blog/tags/kodi">kodi (
6)
</a></li>
885 <li><a href=
"http://www.hungry.com/~pere/blog/tags/ldap">ldap (
9)
</a></li>
887 <li><a href=
"http://www.hungry.com/~pere/blog/tags/lego">lego (
5)
</a></li>
889 <li><a href=
"http://www.hungry.com/~pere/blog/tags/lenker">lenker (
8)
</a></li>
891 <li><a href=
"http://www.hungry.com/~pere/blog/tags/linuxcnc">linuxcnc (
8)
</a></li>
893 <li><a href=
"http://www.hungry.com/~pere/blog/tags/lsdvd">lsdvd (
2)
</a></li>
895 <li><a href=
"http://www.hungry.com/~pere/blog/tags/ltsp">ltsp (
1)
</a></li>
897 <li><a href=
"http://www.hungry.com/~pere/blog/tags/madewithcc">madewithcc (
3)
</a></li>
899 <li><a href=
"http://www.hungry.com/~pere/blog/tags/mesh network">mesh network (
8)
</a></li>
901 <li><a href=
"http://www.hungry.com/~pere/blog/tags/multimedia">multimedia (
46)
</a></li>
903 <li><a href=
"http://www.hungry.com/~pere/blog/tags/nice free software">nice free software (
15)
</a></li>
905 <li><a href=
"http://www.hungry.com/~pere/blog/tags/noark5">noark5 (
25)
</a></li>
907 <li><a href=
"http://www.hungry.com/~pere/blog/tags/norsk">norsk (
325)
</a></li>
909 <li><a href=
"http://www.hungry.com/~pere/blog/tags/nuug">nuug (
199)
</a></li>
911 <li><a href=
"http://www.hungry.com/~pere/blog/tags/offentlig innsyn">offentlig innsyn (
41)
</a></li>
913 <li><a href=
"http://www.hungry.com/~pere/blog/tags/open311">open311 (
2)
</a></li>
915 <li><a href=
"http://www.hungry.com/~pere/blog/tags/opensnitch">opensnitch (
4)
</a></li>
917 <li><a href=
"http://www.hungry.com/~pere/blog/tags/opphavsrett">opphavsrett (
76)
</a></li>
919 <li><a href=
"http://www.hungry.com/~pere/blog/tags/personvern">personvern (
114)
</a></li>
921 <li><a href=
"http://www.hungry.com/~pere/blog/tags/raid">raid (
4)
</a></li>
923 <li><a href=
"http://www.hungry.com/~pere/blog/tags/reactos">reactos (
1)
</a></li>
925 <li><a href=
"http://www.hungry.com/~pere/blog/tags/reprap">reprap (
11)
</a></li>
927 <li><a href=
"http://www.hungry.com/~pere/blog/tags/rfid">rfid (
3)
</a></li>
929 <li><a href=
"http://www.hungry.com/~pere/blog/tags/robot">robot (
17)
</a></li>
931 <li><a href=
"http://www.hungry.com/~pere/blog/tags/rss">rss (
1)
</a></li>
933 <li><a href=
"http://www.hungry.com/~pere/blog/tags/ruter">ruter (
7)
</a></li>
935 <li><a href=
"http://www.hungry.com/~pere/blog/tags/scraperwiki">scraperwiki (
2)
</a></li>
937 <li><a href=
"http://www.hungry.com/~pere/blog/tags/sikkerhet">sikkerhet (
60)
</a></li>
939 <li><a href=
"http://www.hungry.com/~pere/blog/tags/sitesummary">sitesummary (
4)
</a></li>
941 <li><a href=
"http://www.hungry.com/~pere/blog/tags/skepsis">skepsis (
5)
</a></li>
943 <li><a href=
"http://www.hungry.com/~pere/blog/tags/standard">standard (
76)
</a></li>
945 <li><a href=
"http://www.hungry.com/~pere/blog/tags/stavekontroll">stavekontroll (
7)
</a></li>
947 <li><a href=
"http://www.hungry.com/~pere/blog/tags/stortinget">stortinget (
14)
</a></li>
949 <li><a href=
"http://www.hungry.com/~pere/blog/tags/surveillance">surveillance (
65)
</a></li>
951 <li><a href=
"http://www.hungry.com/~pere/blog/tags/sysadmin">sysadmin (
5)
</a></li>
953 <li><a href=
"http://www.hungry.com/~pere/blog/tags/usenix">usenix (
2)
</a></li>
955 <li><a href=
"http://www.hungry.com/~pere/blog/tags/valg">valg (
9)
</a></li>
957 <li><a href=
"http://www.hungry.com/~pere/blog/tags/verkidetfri">verkidetfri (
22)
</a></li>
959 <li><a href=
"http://www.hungry.com/~pere/blog/tags/video">video (
80)
</a></li>
961 <li><a href=
"http://www.hungry.com/~pere/blog/tags/vitenskap">vitenskap (
4)
</a></li>
963 <li><a href=
"http://www.hungry.com/~pere/blog/tags/web">web (
42)
</a></li>
969 <p style=
"text-align: right">
970 Created by
<a href=
"http://steve.org.uk/Software/chronicle">Chronicle v4.6
</a>