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 October
2016</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=
"10.rss" type=
"application/rss+xml" />
15 <a href=
"http://www.hungry.com/~pere/blog/">Petter Reinholdtsen
</a>
22 <h3>Entries from October
2016.
</h3>
26 <a href=
"http://www.hungry.com/~pere/blog/Experience_and_updated_recipe_for_using_the_Signal_app_without_a_mobile_phone.html">Experience and updated recipe for using the Signal app without a mobile phone
</a>
33 <a href=
"http://www.hungry.com/~pere/blog/How_to_use_the_Signal_app_if_you_only_have_a_land_line__ie_no_mobile_phone_.html">I
34 wrote how to get the Signal Chrome/Chromium app working
</a> without
35 the ability to receive SMS messages (aka without a cell phone). It is
36 time to share some experiences and provide an updated setup.
</p>
38 <p>The Signal app have worked fine for several months now, and I use
39 it regularly to chat with my loved ones. I had a major snag at the
40 end of my summer vacation, when the the app completely forgot my
41 setup, identity and keys. The reason behind this major mess was
42 running out of disk space. To avoid that ever happening again I have
43 started storing everything in
<tt>userdata/
</tt> in git, to be able to
44 roll back to an earlier version if the files are wiped by mistake. I
45 had to use it once after introducing the git backup. When rolling
46 back to an earlier version, one need to use the 'reset session' option
47 in Signal to get going, and notify the people you talk with about the
48 problem. I assume there is some sequence number tracking in the
49 protocol to detect rollback attacks. The git repository is rather big
50 (
674 MiB so far), but I have not tried to figure out if some of the
51 content can be added to a .gitignore file due to lack of spare
54 <p>I've also hit the
90 days timeout blocking, and noticed that this
55 make it impossible to send messages using Signal. I could still
56 receive them, but had to patch the code with a new timestamp to send.
57 I believe the timeout is added by the developers to force people to
58 upgrade to the latest version of the app, even when there is no
59 protocol changes, to reduce the version skew among the user base and
60 thus try to keep the number of support requests down.
</p>
62 <p>Since my original recipe, the Signal source code changed slightly,
63 making the old patch fail to apply cleanly. Below is an updated
64 patch, including the shell wrapper I use to start Signal. The
65 original version required a new user to locate the JavaScript console
66 and call a function from there. I got help from a friend with more
67 JavaScript knowledge than me to modify the code to provide a GUI
68 button instead. This mean that to get started you just need to run
69 the wrapper and click the 'Register without mobile phone' to get going
70 now. I've also modified the timeout code to always set it to
90 days
71 in the future, to avoid having to patch the code regularly.
</p>
73 <p>So, the updated recipe for Debian Jessie:
</p>
77 <li>First, install required packages to get the source code and the
78 browser you need. Signal only work with Chrome/Chromium, as far as I
79 know, so you need to install it.
82 apt install git tor chromium
83 git clone https://github.com/WhisperSystems/Signal-Desktop.git
86 <li>Modify the source code using command listed in the the patch
89 <li>Start Signal using the run-signal-app wrapper (for example using
90 <tt>`pwd`/run-signal-app
</tt>).
92 <li>Click on the 'Register without mobile phone', will in a phone
93 number you can receive calls to the next minute, receive the
94 verification code and enter it into the form field and press
95 'Register'. Note, the phone number you use will be user Signal
96 username, ie the way others can find you on Signal.
</li>
98 <li>You can now use Signal to contact others. Note, new contacts do
99 not show up in the contact list until you restart Signal, and there is
100 no way to assign names to Contacts. There is also no way to create or
101 update chat groups. I suspect this is because the web app do not have
102 a associated contact database.
</li>
106 <p>I am still a bit uneasy about using Signal, because of the way its
107 main author moxie0 reject federation and accept dependencies to major
108 corporations like Google (part of the code is fetched from Google) and
109 Amazon (the central coordination point is owned by Amazon). See for
111 <a href=
"https://github.com/LibreSignal/LibreSignal/issues/37">the
112 LibreSignal issue tracker
</a> for a thread documenting the authors
113 view on these issues. But the network effect is strong in this case,
114 and several of the people I want to communicate with already use
115 Signal. Perhaps we can all move to
<a href=
"https://ring.cx/">Ring
</a>
116 once it
<a href=
"https://bugs.debian.org/830265">work on my
117 laptop
</a>? It already work on Windows and Android, and is included
118 in
<a href=
"https://tracker.debian.org/pkg/ring">Debian
</a> and
119 <a href=
"https://launchpad.net/ubuntu/+source/ring">Ubuntu
</a>, but not
120 working on Debian Stable.
</p>
122 <p>Anyway, this is the patch I apply to the Signal code to get it
123 working. It switch to the production servers, disable to timeout,
124 make registration easier and add the shell wrapper:
</p>
127 cd Signal-Desktop; cat
<<EOF | patch -p1
128 diff --git a/js/background.js b/js/background.js
129 index
24b4c1d.
.579345f
100644
130 --- a/js/background.js
131 +++ b/js/background.js
136 - var SERVER_URL = 'https://textsecure-service-staging.whispersystems.org';
137 + var SERVER_URL = 'https://textsecure-service-ca.whispersystems.org';
138 var SERVER_PORTS = [
80,
4433,
8443];
139 - var ATTACHMENT_SERVER_URL = 'https://whispersystems-textsecure-attachments-staging.s3.amazonaws.com';
140 + var ATTACHMENT_SERVER_URL = 'https://whispersystems-textsecure-attachments.s3.amazonaws.com';
142 window.getSocketStatus = function() {
143 if (messageReceiver) {
144 diff --git a/js/expire.js b/js/expire.js
145 index
639aeae..beb91c3
100644
151 - var BUILD_EXPIRATION =
0;
152 + var BUILD_EXPIRATION = Date.now() + (
90 *
24 *
60 *
60 *
1000);
154 window.extension = window.extension || {};
156 diff --git a/js/views/install_view.js b/js/views/install_view.js
157 index
7816f4f.
.1d6233b
100644
158 --- a/js/views/install_view.js
159 +++ b/js/views/install_view.js
162 'click .step1': this.selectStep.bind(this,
1),
163 'click .step2': this.selectStep.bind(this,
2),
164 - 'click .step3': this.selectStep.bind(this,
3)
165 + 'click .step3': this.selectStep.bind(this,
3),
166 + 'click .callreg': function() { extension.install('standalone') },
169 clearQR: function() {
170 diff --git a/options.html b/options.html
171 index dc0f28e.
.8d709f6
100644
176 <h1
>{{ installWelcome }}
</h1
>
177 <p
>{{ installTagline }}
</p
>
178 -
<div
> <a class='button step2'
>{{ installGetStartedButton }}
</a
> </div
>
179 +
<div
> <a class='button step2'
>{{ installGetStartedButton }}
</a
>
180 +
<br
> <a
class="button callreg"
>Register without mobile phone
</a
>
183 <span class='dot step1 selected'
></span
>
184 <span class='dot step2'
></span
>
185 <span class='dot step3'
></span
>
186 --- /dev/null
2016-
10-
07 09:
55:
13.730181472 +
0200
187 +++ b/run-signal-app
2016-
10-
10 08:
54:
09.434172391 +
0200
193 +
userdata="`pwd`/userdata"
194 +if [ -d "$userdata" ] && [ ! -d "$userdata/.git" ] ; then
195 + (cd $userdata && git init)
197 +(cd $userdata && git add . && git commit -m "Current status." || true)
199 +
--proxy-server="socks://localhost:
9050" \
200 + --user-data-dir=$userdata --load-and-launch-app=`pwd`
202 chmod a+rx run-signal-app
205 <p>As usual, if you use Bitcoin and want to show your support of my
206 activities, please send Bitcoin donations to my address
207 <b><a href=
"bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a></b>.
</p>
213 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/sikkerhet">sikkerhet
</a>,
<a href=
"http://www.hungry.com/~pere/blog/tags/surveillance">surveillance
</a>.
218 <div class=
"padding"></div>
222 <a href=
"http://www.hungry.com/~pere/blog/NRKs_kildevern_n_r_NRK_epost_deles_med_utenlands_etterretning_.html">NRKs kildevern når NRK-epost deles med utenlands etterretning?
</a>
229 <a href=
"https://nrkbeta.no/2016/09/02/securing-whistleblowers/">lanserte
230 for noen uker siden
</a> en ny
231 <a href=
"https://www.nrk.no/varsle/">varslerportal som bruker
232 SecureDrop til å ta imot tips
</a> der det er vesentlig at ingen
233 utenforstående får vite at NRK er tipset. Det er et langt steg
234 fremover for NRK, og når en leser bloggposten om hva de har tenkt på
235 og hvordan løsningen er satt opp virker det som om de har gjort en
236 grundig jobb der. Men det er ganske mye ekstra jobb å motta tips via
237 SecureDrop, så varslersiden skriver "Nyhetstips som ikke krever denne
238 typen ekstra vern vil vi gjerne ha på nrk.no/
03030", og
03030-siden
239 foreslår i tillegg til et webskjema å bruke epost, SMS, telefon,
240 personlig oppmøte og brevpost. Denne artikkelen handler disse andre
243 <p>Når en sender epost til en @nrk.no-adresse så vil eposten sendes ut
244 av landet til datamaskiner kontrollert av Microsoft. En kan sjekke
245 dette selv ved å slå opp epostleveringsadresse (MX) i DNS. For NRK er
246 dette i dag "nrk-no.mail.protection.outlook.com". NRK har som en ser
247 valgt å sette bort epostmottaket sitt til de som står bak outlook.com,
248 dvs. Microsoft. En kan sjekke hvor nettverkstrafikken tar veien
249 gjennom Internett til epostmottaket vha. programmet
250 <tt>traceroute
</tt>, og finne ut hvem som eier en Internett-adresse
251 vha. whois-systemet. Når en gjør dette for epost-trafikk til @nrk.no
252 ser en at trafikken fra Norge mot nrk-no.mail.protection.outlook.com
253 går via Sverige mot enten Irland eller Tyskland (det varierer fra gang
254 til gang og kan endre seg over tid).
</p>
257 <a href=
"https://no.wikipedia.org/wiki/FRA-loven">introduksjonen av
258 FRA-loven
</a> at IP-trafikk som passerer grensen til Sverige avlyttes
259 av Försvarets radioanstalt (FRA). Vi vet videre takket være
260 Snowden-bekreftelsene at trafikk som passerer grensen til
261 Storbritannia avlyttes av Government Communications Headquarters
262 (GCHQ). I tillegg er er det nettopp lansert et forslag i Norge om at
263 forsvarets E-tjeneste skal få avlytte trafikk som krysser grensen til
264 Norge. Jeg er ikke kjent med dokumentasjon på at Irland og Tyskland
265 gjør det samme. Poenget er uansett at utenlandsk etterretning har
266 mulighet til å snappe opp trafikken når en sender epost til @nrk.no.
267 I tillegg er det selvsagt tilgjengelig for Microsoft som er underlagt USAs
269 <a href=
"https://www.theguardian.com/world/2013/jul/11/microsoft-nsa-collaboration-user-data">samarbeider
270 med USAs etterretning på flere områder
</a>. De som tipser NRK om
271 nyheter via epost kan dermed gå ut fra at det blir kjent for mange
272 andre enn NRK at det er gjort.
</p>
274 <p>Bruk av SMS og telefon registreres av blant annet telefonselskapene
275 og er tilgjengelig i følge lov og forskrift for blant annet Politi,
276 NAV og Finanstilsynet, i tillegg til IT-folkene hos telefonselskapene
277 og deres overordnede. Hvis innringer eller mottaker bruker
278 smarttelefon vil slik kontakt også gjøres tilgjengelig for ulike
279 app-leverandører og de som lytter på trafikken mellom telefon og
280 app-leverandør, alt etter hva som er installert på telefonene som
283 <p>Brevpost kan virke trygt, og jeg vet ikke hvor mye som registreres
284 og lagres av postens datastyrte postsorteringssentraler. Det vil ikke
285 overraske meg om det lagres hvor i landet hver konvolutt kommer fra og
286 hvor den er adressert, i hvert fall for en kortere periode. Jeg vet
287 heller ikke hvem slik informasjon gjøres tilgjengelig for. Det kan
288 være nok til å ringe inn potensielle kilder når det krysses med hvem
289 som kjente til aktuell informasjon og hvor de befant seg (tilgjengelig
290 f.eks. hvis de bærer mobiltelefon eller bor i nærheten).
</p>
292 <p>Personlig oppmøte hos en NRK-journalist er antagelig det tryggeste,
293 men en bør passe seg for å bruke NRK-kantina. Der bryter de nemlig
294 <a href=
"http://www.lovdata.no/all/hl-19850524-028.html#14">Sentralbanklovens
295 paragraf
14</a> og nekter folk å betale med kontanter. I stedet
296 krever de at en varsle sin bankkortutsteder om hvor en befinner seg
297 ved å bruke bankkort. Banktransaksjoner er tilgjengelig for
298 bankkortutsteder (det være seg VISA, Mastercard, Nets og/eller en
299 bank) i tillegg til politiet og i hvert fall tidligere med Se & Hør
300 (via utro tjenere, slik det ble avslørt etter utgivelsen av boken
301 «Livet, det forbannede» av Ken B. Rasmussen). Men hvor mange kjenner
302 en NRK-journalist personlig? Besøk på NRK på Marienlyst krever at en
303 registrerer sin ankost elektronisk i besøkssystemet. Jeg vet ikke hva
304 som skjer med det datasettet, men har grunn til å tro at det sendes ut
305 SMS til den en skal besøke med navnet som er oppgitt. Kanskje greit å
306 oppgi falskt navn.
</p>
308 <p>Når så tipset er kommet frem til NRK skal det behandles
309 redaksjonelt i NRK. Der vet jeg via ulike kilder at de fleste
310 journalistene bruker lokalt installert programvare, men noen bruker
311 Google Docs og andre skytjenester i strid med interne retningslinjer
312 når de skriver. Hvordan vet en hvem det gjelder? Ikke vet jeg, men
313 det kan være greit å spørre for å sjekke at journalisten har tenkt på
314 problemstillingen, før en gir et tips. Og hvis tipset omtales internt
315 på epost, er det jo grunn til å tro at også intern eposten vil deles
316 med Microsoft og utenlands etterretning, slik tidligere nevnt, men det
317 kan hende at det holdes internt i NRKs interne MS Exchange-løsning.
318 Men Microsoft ønsker å få alle Exchange-kunder over "i skyen" (eller
319 andre folks datamaskiner, som det jo innebærer), så jeg vet ikke hvor
320 lenge det i så fall vil vare.
</p>
322 <p>I tillegg vet en jo at
323 <a href=
"https://www.nrk.no/ytring/elektronisk-kildevern-i-nrk-1.11941196">NRK
324 har valgt å gi nasjonal sikkerhetsmyndighet (NSM) tilgang til å se på
325 intern og ekstern Internett-trafikk
</a> hos NRK ved oppsett av såkalte
326 VDI-noder, på tross av
327 <a href=
"https://www.nrk.no/ytring/bekymring-for-nrks-kildevern-1.11941584">protester
328 fra NRKs journalistlag
</a>. Jeg vet ikke om den vil kunne snappe opp
329 dokumenter som lagres på interne filtjenere eller dokumenter som lages
330 i de interne webbaserte publiseringssystemene, men vet at hva noden
331 ser etter på nettet kontrolleres av NSM og oppdateres automatisk, slik
332 at det ikke gir så mye mening å sjekke hva noden ser etter i dag når
333 det kan endres automatisk i morgen.
</p>
335 <p>Personlig vet jeg ikke om jeg hadde turt tipse NRK hvis jeg satt på
336 noe som kunne være en trussel mot den bestående makten i Norge eller
337 verden. Til det virker det å være for mange åpninger for
338 utenforstående med andre prioriteter enn NRKs journalistiske fokus.
339 Og den største truslen for en varsler er jo om metainformasjon kommer
340 på avveie, dvs. informasjon om at en har vært i kontakt med en
341 journalist. Det kan være nok til at en kommer i myndighetenes
342 søkelys, og de færreste har nok operasjonell sikkerhet til at vil tåle
343 slik flombelysning på sitt privatliv.
</p>
349 Tags:
<a href=
"http://www.hungry.com/~pere/blog/tags/betalkontant">betalkontant
</a>,
<a href=
"http://www.hungry.com/~pere/blog/tags/dld">dld
</a>,
<a href=
"http://www.hungry.com/~pere/blog/tags/norsk">norsk
</a>,
<a href=
"http://www.hungry.com/~pere/blog/tags/personvern">personvern
</a>,
<a href=
"http://www.hungry.com/~pere/blog/tags/sikkerhet">sikkerhet
</a>,
<a href=
"http://www.hungry.com/~pere/blog/tags/surveillance">surveillance
</a>.
354 <div class=
"padding"></div>
358 <a href=
"http://www.hungry.com/~pere/blog/Isenkram__Appstream_and_udev_make_life_as_a_LEGO_builder_easier.html">Isenkram, Appstream and udev make life as a LEGO builder easier
</a>
364 <p><a href=
"http://packages.qa.debian.org/isenkram">The Isenkram
365 system
</a> provide a practical and easy way to figure out which
366 packages support the hardware in a given machine. The command line
367 tool
<tt>isenkram-lookup
</tt> and the tasksel options provide a
368 convenient way to list and install packages relevant for the current
369 hardware during system installation, both user space packages and
370 firmware packages. The GUI background daemon on the other hand provide
371 a pop-up proposing to install packages when a new dongle is inserted
372 while using the computer. For example, if you plug in a smart card
373 reader, the system will ask if you want to install
<tt>pcscd
</tt> if
374 that package isn't already installed, and if you plug in a USB video
375 camera the system will ask if you want to install
<tt>cheese
</tt> if
376 cheese is currently missing. This already work just fine.
</p>
378 <p>But Isenkram depend on a database mapping from hardware IDs to
379 package names. When I started no such database existed in Debian, so
380 I made my own data set and included it with the isenkram package and
381 made isenkram fetch the latest version of this database from git using
382 http. This way the isenkram users would get updated package proposals
383 as soon as I learned more about hardware related packages.
</p>
385 <p>The hardware is identified using modalias strings. The modalias
386 design is from the Linux kernel where most hardware descriptors are
387 made available as a strings that can be matched using filename style
388 globbing. It handle USB, PCI, DMI and a lot of other hardware related
391 <p>The downside to the Isenkram specific database is that there is no
392 information about relevant distribution / Debian version, making
393 isenkram propose obsolete packages too. But along came AppStream, a
394 cross distribution mechanism to store and collect metadata about
395 software packages. When I heard about the proposal, I contacted the
396 people involved and suggested to add a hardware matching rule using
397 modalias strings in the specification, to be able to use AppStream for
398 mapping hardware to packages. This idea was accepted and AppStream is
399 now a great way for a package to announce the hardware it support in a
400 distribution neutral way. I wrote
401 <a href=
"http://www.hungry.com/~pere/blog/Using_appstream_with_isenkram_to_install_hardware_related_packages_in_Debian.html">a
402 recipe on how to add such meta-information
</a> in a blog post last
403 December. If you have a hardware related package in Debian, please
404 announce the relevant hardware IDs using AppStream.
</p>
406 <p>In Debian, almost all packages that can talk to a LEGO Mindestorms
407 RCX or NXT unit, announce this support using AppStream. The effect is
408 that when you insert such LEGO robot controller into your Debian
409 machine, Isenkram will propose to install the packages needed to get
410 it working. The intention is that this should allow the local user to
411 start programming his robot controller right away without having to
412 guess what packages to use or which permissions to fix.
</p>
414 <p>But when I sat down with my son the other day to program our NXT
415 unit using his Debian Stretch computer, I discovered something
416 annoying. The local console user (ie my son) did not get access to
417 the USB device for programming the unit. This used to work, but no
418 longer in Jessie and Stretch. After some investigation and asking
419 around on #debian-devel, I discovered that this was because udev had
420 changed the mechanism used to grant access to local devices. The
421 ConsoleKit mechanism from
<tt>/lib/udev/rules.d/
70-udev-acl.rules
</tt>
422 no longer applied, because LDAP users no longer was added to the
423 plugdev group during login. Michael Biebl told me that this method
424 was obsolete and the new method used ACLs instead. This was good
425 news, as the plugdev mechanism is a mess when using a remote user
426 directory like LDAP. Using ACLs would make sure a user lost device
427 access when she logged out, even if the user left behind a background
428 process which would retain the plugdev membership with the ConsoleKit
429 setup. Armed with this knowledge I moved on to fix the access problem
430 for the LEGO Mindstorms related packages.
</p>
432 <p>The new system uses a udev tag, 'uaccess'. It can either be
433 applied directly for a device, or is applied in
434 /lib/udev/rules.d/
70-uaccess.rules for classes of devices. As the
435 LEGO Mindstorms udev rules did not have a class, I decided to add the
436 tag directly in the udev rules files included in the packages. Here
437 is one example. For the nqc C compiler for the RCX, the
438 <tt>/lib/udev/rules.d/
60-nqc.rules
</tt> file now look like this:
441 SUBSYSTEM=="usb", ACTION=="add", ATTR{idVendor}=="
0694", ATTR{idProduct}=="
0001", \
442 SYMLINK+="rcx-%k", TAG+="uaccess"
445 <p>The key part is the 'TAG+="uaccess"' at the end. I suspect all
446 packages using plugdev in their /lib/udev/rules.d/ files should be
447 changed to use this tag (either directly or indirectly via
448 <tt>70-uaccess.rules
</tt>). Perhaps a lintian check should be created
451 <p>I've been unable to find good documentation on the uaccess feature.
452 It is unclear to me if the uaccess tag is an internal implementation
453 detail like the udev-acl tag used by
454 <tt>/lib/udev/rules.d/
70-udev-acl.rules
</tt>. If it is, I guess the
455 indirect method is the preferred way. Michael
456 <a href=
"https://github.com/systemd/systemd/issues/4288">asked for more
457 documentation from the systemd project
</a> and I hope it will make
458 this clearer. For now I use the generic classes when they exist and
459 is already handled by
<tt>70-uaccess.rules
</tt>, and add the tag
460 directly if no such class exist.
</p>
462 <p>To learn more about the isenkram system, please check out
463 <a href=
"http://www.hungry.com/~pere/blog/tags/isenkram/">my
464 blog posts tagged isenkram
</a>.
</p>
466 <p>To help out making life for LEGO constructors in Debian easier,
467 please join us on our IRC channel
468 <a href=
"irc://irc.debian.org/%23debian-lego">#debian-lego
</a> and join
469 the
<a href=
"https://alioth.debian.org/projects/debian-lego/">Debian
470 LEGO team
</a> in the Alioth project we created yesterday. A mailing
471 list is not yet created, but we are working on it. :)
</p>
473 <p>As usual, if you use Bitcoin and want to show your support of my
474 activities, please send Bitcoin donations to my address
475 <b><a href=
"bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a></b>.
</p>
481 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>,
<a href=
"http://www.hungry.com/~pere/blog/tags/lego">lego
</a>.
486 <div class=
"padding"></div>
488 <p style=
"text-align: right;"><a href=
"10.rss"><img src=
"http://www.hungry.com/~pere/blog/xml.gif" alt=
"RSS Feed" width=
"36" height=
"14" /></a></p>
499 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2025/01/">January (
4)
</a></li>
501 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2025/02/">February (
3)
</a></li>
508 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2024/01/">January (
1)
</a></li>
510 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2024/02/">February (
1)
</a></li>
512 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2024/03/">March (
2)
</a></li>
514 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2024/04/">April (
3)
</a></li>
516 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2024/05/">May (
1)
</a></li>
518 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2024/06/">June (
1)
</a></li>
520 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2024/07/">July (
2)
</a></li>
522 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2024/12/">December (
1)
</a></li>
529 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2023/01/">January (
3)
</a></li>
531 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2023/02/">February (
1)
</a></li>
533 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2023/04/">April (
2)
</a></li>
535 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2023/05/">May (
3)
</a></li>
537 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2023/06/">June (
1)
</a></li>
539 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2023/08/">August (
1)
</a></li>
541 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2023/09/">September (
1)
</a></li>
543 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2023/10/">October (
1)
</a></li>
545 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2023/11/">November (
4)
</a></li>
547 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2023/12/">December (
1)
</a></li>
554 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2022/02/">February (
1)
</a></li>
556 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2022/03/">March (
3)
</a></li>
558 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2022/04/">April (
2)
</a></li>
560 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2022/06/">June (
2)
</a></li>
562 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2022/07/">July (
1)
</a></li>
564 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2022/09/">September (
1)
</a></li>
566 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2022/10/">October (
1)
</a></li>
568 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2022/12/">December (
1)
</a></li>
575 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2021/01/">January (
2)
</a></li>
577 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2021/02/">February (
1)
</a></li>
579 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2021/05/">May (
1)
</a></li>
581 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2021/06/">June (
1)
</a></li>
583 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2021/07/">July (
3)
</a></li>
585 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2021/08/">August (
1)
</a></li>
587 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2021/09/">September (
1)
</a></li>
589 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2021/10/">October (
1)
</a></li>
591 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2021/12/">December (
1)
</a></li>
598 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2020/02/">February (
2)
</a></li>
600 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2020/03/">March (
2)
</a></li>
602 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2020/04/">April (
2)
</a></li>
604 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2020/05/">May (
3)
</a></li>
606 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2020/06/">June (
2)
</a></li>
608 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2020/07/">July (
1)
</a></li>
610 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2020/09/">September (
1)
</a></li>
612 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2020/10/">October (
1)
</a></li>
614 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2020/11/">November (
1)
</a></li>
621 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2019/01/">January (
4)
</a></li>
623 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2019/02/">February (
3)
</a></li>
625 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2019/03/">March (
3)
</a></li>
627 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2019/05/">May (
2)
</a></li>
629 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2019/06/">June (
5)
</a></li>
631 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2019/07/">July (
2)
</a></li>
633 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2019/08/">August (
1)
</a></li>
635 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2019/09/">September (
1)
</a></li>
637 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2019/11/">November (
1)
</a></li>
639 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2019/12/">December (
4)
</a></li>
646 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2018/01/">January (
1)
</a></li>
648 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2018/02/">February (
5)
</a></li>
650 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2018/03/">March (
5)
</a></li>
652 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2018/04/">April (
3)
</a></li>
654 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2018/06/">June (
2)
</a></li>
656 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2018/07/">July (
5)
</a></li>
658 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2018/08/">August (
3)
</a></li>
660 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2018/09/">September (
3)
</a></li>
662 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2018/10/">October (
5)
</a></li>
664 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2018/11/">November (
2)
</a></li>
666 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2018/12/">December (
4)
</a></li>
673 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2017/01/">January (
4)
</a></li>
675 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2017/02/">February (
3)
</a></li>
677 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2017/03/">March (
5)
</a></li>
679 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2017/04/">April (
2)
</a></li>
681 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2017/06/">June (
5)
</a></li>
683 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2017/07/">July (
1)
</a></li>
685 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2017/08/">August (
1)
</a></li>
687 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2017/09/">September (
3)
</a></li>
689 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2017/10/">October (
5)
</a></li>
691 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2017/11/">November (
3)
</a></li>
693 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2017/12/">December (
4)
</a></li>
700 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/01/">January (
3)
</a></li>
702 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/02/">February (
2)
</a></li>
704 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/03/">March (
3)
</a></li>
706 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/04/">April (
8)
</a></li>
708 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/05/">May (
8)
</a></li>
710 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/06/">June (
2)
</a></li>
712 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/07/">July (
2)
</a></li>
714 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/08/">August (
5)
</a></li>
716 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/09/">September (
2)
</a></li>
718 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/10/">October (
3)
</a></li>
720 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/11/">November (
8)
</a></li>
722 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/12/">December (
5)
</a></li>
729 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/01/">January (
7)
</a></li>
731 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/02/">February (
6)
</a></li>
733 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/03/">March (
1)
</a></li>
735 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/04/">April (
4)
</a></li>
737 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/05/">May (
3)
</a></li>
739 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/06/">June (
4)
</a></li>
741 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/07/">July (
6)
</a></li>
743 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/08/">August (
2)
</a></li>
745 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/09/">September (
2)
</a></li>
747 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/10/">October (
9)
</a></li>
749 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/11/">November (
6)
</a></li>
751 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/12/">December (
3)
</a></li>
758 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/01/">January (
2)
</a></li>
760 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/02/">February (
3)
</a></li>
762 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/03/">March (
8)
</a></li>
764 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/04/">April (
7)
</a></li>
766 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/05/">May (
1)
</a></li>
768 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/06/">June (
2)
</a></li>
770 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/07/">July (
2)
</a></li>
772 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/08/">August (
2)
</a></li>
774 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/09/">September (
5)
</a></li>
776 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/10/">October (
6)
</a></li>
778 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/11/">November (
3)
</a></li>
780 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/12/">December (
5)
</a></li>
787 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/01/">January (
11)
</a></li>
789 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/02/">February (
9)
</a></li>
791 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/03/">March (
9)
</a></li>
793 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/04/">April (
6)
</a></li>
795 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/05/">May (
9)
</a></li>
797 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/06/">June (
10)
</a></li>
799 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/07/">July (
7)
</a></li>
801 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/08/">August (
3)
</a></li>
803 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/09/">September (
5)
</a></li>
805 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/10/">October (
7)
</a></li>
807 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/11/">November (
9)
</a></li>
809 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/12/">December (
3)
</a></li>
816 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/01/">January (
7)
</a></li>
818 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/02/">February (
10)
</a></li>
820 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/03/">March (
17)
</a></li>
822 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/04/">April (
12)
</a></li>
824 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/05/">May (
12)
</a></li>
826 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/06/">June (
20)
</a></li>
828 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/07/">July (
17)
</a></li>
830 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/08/">August (
6)
</a></li>
832 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/09/">September (
9)
</a></li>
834 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/10/">October (
17)
</a></li>
836 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/11/">November (
10)
</a></li>
838 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/12/">December (
7)
</a></li>
845 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/01/">January (
16)
</a></li>
847 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/02/">February (
6)
</a></li>
849 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/03/">March (
6)
</a></li>
851 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/04/">April (
7)
</a></li>
853 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/05/">May (
3)
</a></li>
855 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/06/">June (
2)
</a></li>
857 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/07/">July (
7)
</a></li>
859 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/08/">August (
6)
</a></li>
861 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/09/">September (
4)
</a></li>
863 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/10/">October (
2)
</a></li>
865 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/11/">November (
3)
</a></li>
867 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/12/">December (
1)
</a></li>
874 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/01/">January (
2)
</a></li>
876 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/02/">February (
1)
</a></li>
878 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/03/">March (
3)
</a></li>
880 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/04/">April (
3)
</a></li>
882 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/05/">May (
9)
</a></li>
884 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/06/">June (
14)
</a></li>
886 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/07/">July (
12)
</a></li>
888 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/08/">August (
13)
</a></li>
890 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/09/">September (
7)
</a></li>
892 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/10/">October (
9)
</a></li>
894 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/11/">November (
13)
</a></li>
896 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/12/">December (
12)
</a></li>
903 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/01/">January (
8)
</a></li>
905 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/02/">February (
8)
</a></li>
907 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/03/">March (
12)
</a></li>
909 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/04/">April (
10)
</a></li>
911 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/05/">May (
9)
</a></li>
913 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/06/">June (
3)
</a></li>
915 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/07/">July (
4)
</a></li>
917 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/08/">August (
3)
</a></li>
919 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/09/">September (
1)
</a></li>
921 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/10/">October (
2)
</a></li>
923 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/11/">November (
3)
</a></li>
925 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/12/">December (
3)
</a></li>
932 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2008/11/">November (
5)
</a></li>
934 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2008/12/">December (
7)
</a></li>
945 <li><a href=
"http://www.hungry.com/~pere/blog/tags/3d-printer">3d-printer (
19)
</a></li>
947 <li><a href=
"http://www.hungry.com/~pere/blog/tags/amiga">amiga (
1)
</a></li>
949 <li><a href=
"http://www.hungry.com/~pere/blog/tags/aros">aros (
1)
</a></li>
951 <li><a href=
"http://www.hungry.com/~pere/blog/tags/bankid">bankid (
4)
</a></li>
953 <li><a href=
"http://www.hungry.com/~pere/blog/tags/betalkontant">betalkontant (
9)
</a></li>
955 <li><a href=
"http://www.hungry.com/~pere/blog/tags/bitcoin">bitcoin (
13)
</a></li>
957 <li><a href=
"http://www.hungry.com/~pere/blog/tags/bootsystem">bootsystem (
17)
</a></li>
959 <li><a href=
"http://www.hungry.com/~pere/blog/tags/bsa">bsa (
2)
</a></li>
961 <li><a href=
"http://www.hungry.com/~pere/blog/tags/chrpath">chrpath (
3)
</a></li>
963 <li><a href=
"http://www.hungry.com/~pere/blog/tags/debian">debian (
209)
</a></li>
965 <li><a href=
"http://www.hungry.com/~pere/blog/tags/debian edu">debian edu (
159)
</a></li>
967 <li><a href=
"http://www.hungry.com/~pere/blog/tags/debian-handbook">debian-handbook (
9)
</a></li>
969 <li><a href=
"http://www.hungry.com/~pere/blog/tags/digistan">digistan (
11)
</a></li>
971 <li><a href=
"http://www.hungry.com/~pere/blog/tags/dld">dld (
18)
</a></li>
973 <li><a href=
"http://www.hungry.com/~pere/blog/tags/docbook">docbook (
33)
</a></li>
975 <li><a href=
"http://www.hungry.com/~pere/blog/tags/drivstoffpriser">drivstoffpriser (
4)
</a></li>
977 <li><a href=
"http://www.hungry.com/~pere/blog/tags/english">english (
471)
</a></li>
979 <li><a href=
"http://www.hungry.com/~pere/blog/tags/fiksgatami">fiksgatami (
23)
</a></li>
981 <li><a href=
"http://www.hungry.com/~pere/blog/tags/fildeling">fildeling (
14)
</a></li>
983 <li><a href=
"http://www.hungry.com/~pere/blog/tags/freeculture">freeculture (
34)
</a></li>
985 <li><a href=
"http://www.hungry.com/~pere/blog/tags/freedombox">freedombox (
9)
</a></li>
987 <li><a href=
"http://www.hungry.com/~pere/blog/tags/frikanalen">frikanalen (
20)
</a></li>
989 <li><a href=
"http://www.hungry.com/~pere/blog/tags/h264">h264 (
20)
</a></li>
991 <li><a href=
"http://www.hungry.com/~pere/blog/tags/intervju">intervju (
43)
</a></li>
993 <li><a href=
"http://www.hungry.com/~pere/blog/tags/isenkram">isenkram (
21)
</a></li>
995 <li><a href=
"http://www.hungry.com/~pere/blog/tags/kart">kart (
23)
</a></li>
997 <li><a href=
"http://www.hungry.com/~pere/blog/tags/kodi">kodi (
6)
</a></li>
999 <li><a href=
"http://www.hungry.com/~pere/blog/tags/ldap">ldap (
9)
</a></li>
1001 <li><a href=
"http://www.hungry.com/~pere/blog/tags/lego">lego (
5)
</a></li>
1003 <li><a href=
"http://www.hungry.com/~pere/blog/tags/lenker">lenker (
8)
</a></li>
1005 <li><a href=
"http://www.hungry.com/~pere/blog/tags/linuxcnc">linuxcnc (
8)
</a></li>
1007 <li><a href=
"http://www.hungry.com/~pere/blog/tags/lsdvd">lsdvd (
3)
</a></li>
1009 <li><a href=
"http://www.hungry.com/~pere/blog/tags/ltsp">ltsp (
1)
</a></li>
1011 <li><a href=
"http://www.hungry.com/~pere/blog/tags/madewithcc">madewithcc (
3)
</a></li>
1013 <li><a href=
"http://www.hungry.com/~pere/blog/tags/mesh network">mesh network (
8)
</a></li>
1015 <li><a href=
"http://www.hungry.com/~pere/blog/tags/multimedia">multimedia (
48)
</a></li>
1017 <li><a href=
"http://www.hungry.com/~pere/blog/tags/nice free software">nice free software (
15)
</a></li>
1019 <li><a href=
"http://www.hungry.com/~pere/blog/tags/noark5">noark5 (
27)
</a></li>
1021 <li><a href=
"http://www.hungry.com/~pere/blog/tags/norsk">norsk (
326)
</a></li>
1023 <li><a href=
"http://www.hungry.com/~pere/blog/tags/nuug">nuug (
200)
</a></li>
1025 <li><a href=
"http://www.hungry.com/~pere/blog/tags/offentlig innsyn">offentlig innsyn (
42)
</a></li>
1027 <li><a href=
"http://www.hungry.com/~pere/blog/tags/open311">open311 (
2)
</a></li>
1029 <li><a href=
"http://www.hungry.com/~pere/blog/tags/opensnitch">opensnitch (
4)
</a></li>
1031 <li><a href=
"http://www.hungry.com/~pere/blog/tags/opphavsrett">opphavsrett (
76)
</a></li>
1033 <li><a href=
"http://www.hungry.com/~pere/blog/tags/personvern">personvern (
114)
</a></li>
1035 <li><a href=
"http://www.hungry.com/~pere/blog/tags/raid">raid (
4)
</a></li>
1037 <li><a href=
"http://www.hungry.com/~pere/blog/tags/reactos">reactos (
1)
</a></li>
1039 <li><a href=
"http://www.hungry.com/~pere/blog/tags/reprap">reprap (
11)
</a></li>
1041 <li><a href=
"http://www.hungry.com/~pere/blog/tags/rfid">rfid (
3)
</a></li>
1043 <li><a href=
"http://www.hungry.com/~pere/blog/tags/robot">robot (
17)
</a></li>
1045 <li><a href=
"http://www.hungry.com/~pere/blog/tags/rss">rss (
1)
</a></li>
1047 <li><a href=
"http://www.hungry.com/~pere/blog/tags/ruter">ruter (
7)
</a></li>
1049 <li><a href=
"http://www.hungry.com/~pere/blog/tags/scraperwiki">scraperwiki (
2)
</a></li>
1051 <li><a href=
"http://www.hungry.com/~pere/blog/tags/sikkerhet">sikkerhet (
60)
</a></li>
1053 <li><a href=
"http://www.hungry.com/~pere/blog/tags/sitesummary">sitesummary (
4)
</a></li>
1055 <li><a href=
"http://www.hungry.com/~pere/blog/tags/skepsis">skepsis (
5)
</a></li>
1057 <li><a href=
"http://www.hungry.com/~pere/blog/tags/standard">standard (
80)
</a></li>
1059 <li><a href=
"http://www.hungry.com/~pere/blog/tags/stavekontroll">stavekontroll (
7)
</a></li>
1061 <li><a href=
"http://www.hungry.com/~pere/blog/tags/stortinget">stortinget (
14)
</a></li>
1063 <li><a href=
"http://www.hungry.com/~pere/blog/tags/surveillance">surveillance (
65)
</a></li>
1065 <li><a href=
"http://www.hungry.com/~pere/blog/tags/sysadmin">sysadmin (
6)
</a></li>
1067 <li><a href=
"http://www.hungry.com/~pere/blog/tags/usenix">usenix (
2)
</a></li>
1069 <li><a href=
"http://www.hungry.com/~pere/blog/tags/valg">valg (
9)
</a></li>
1071 <li><a href=
"http://www.hungry.com/~pere/blog/tags/verkidetfri">verkidetfri (
23)
</a></li>
1073 <li><a href=
"http://www.hungry.com/~pere/blog/tags/video">video (
82)
</a></li>
1075 <li><a href=
"http://www.hungry.com/~pere/blog/tags/vitenskap">vitenskap (
4)
</a></li>
1077 <li><a href=
"http://www.hungry.com/~pere/blog/tags/web">web (
42)
</a></li>
1083 <p style=
"text-align: right">
1084 Created by
<a href=
"http://steve.org.uk/Software/chronicle">Chronicle v4.6
</a>