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 March
2017</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=
"03.rss" type=
"application/rss+xml" />
15 <a href=
"http://www.hungry.com/~pere/blog/">Petter Reinholdtsen
</a>
22 <h3>Entries from March
2017.
</h3>
26 <a href=
"http://www.hungry.com/~pere/blog/Free_software_archive_system_Nikita_now_able_to_store_documents.html">Free software archive system Nikita now able to store documents
</a>
32 <p>The
<a href=
"https://github.com/hiOA-ABI/nikita-noark5-core">Nikita
33 Noark
5 core project
</a> is implementing the Norwegian standard for
34 keeping an electronic archive of government documents.
35 <a href=
"http://www.arkivverket.no/arkivverket/Offentlig-forvaltning/Noark/Noark-5/English-version">The
36 Noark
5 standard
</a> document the requirement for data systems used by
37 the archives in the Norwegian government, and the Noark
5 web interface
38 specification document a REST web service for storing, searching and
39 retrieving documents and metadata in such archive. I've been involved
40 in the project since a few weeks before Christmas, when the Norwegian
42 <a href=
"https://www.nuug.no/news/NOARK5_kjerne_som_fri_programvare_f_r_epostliste_hos_NUUG.shtml">announced
43 it supported the project
</a>. I believe this is an important project,
44 and hope it can make it possible for the government archives in the
45 future to use free software to keep the archives we citizens depend
46 on. But as I do not hold such archive myself, personally my first use
47 case is to store and analyse public mail journal metadata published
48 from the government. I find it useful to have a clear use case in
49 mind when developing, to make sure the system scratches one of my
52 <p>If you would like to help make sure there is a free software
53 alternatives for the archives, please join our IRC channel
54 (
<a href=
"irc://irc.freenode.net/%23nikita">#nikita on
55 irc.freenode.net
</a>) and
56 <a href=
"https://lists.nuug.no/mailman/listinfo/nikita-noark">the
57 project mailing list
</a>.
</p>
59 <p>When I got involved, the web service could store metadata about
60 documents. But a few weeks ago, a new milestone was reached when it
61 became possible to store full text documents too. Yesterday, I
62 completed an implementation of a command line tool
63 <tt>archive-pdf
</tt> to upload a PDF file to the archive using this
64 API. The tool is very simple at the moment, and find existing
65 <a href=
"https://en.wikipedia.org/wiki/Fonds">fonds
</a>, series and
66 files while asking the user to select which one to use if more than
67 one exist. Once a file is identified, the PDF is associated with the
68 file and uploaded, using the title extracted from the PDF itself. The
69 process is fairly similar to visiting the archive, opening a cabinet,
70 locating a file and storing a piece of paper in the archive. Here is
71 a test run directly after populating the database with test data using
75 ~/src//noark5-tester$ ./archive-pdf mangelmelding/mangler.pdf
76 using arkiv: Title of the test fonds created
2017-
03-
18T23:
49:
32.103446
77 using arkivdel: Title of the test series created
2017-
03-
18T23:
49:
32.103446
79 0 - Title of the test case file created
2017-
03-
18T23:
49:
32.103446
80 1 - Title of the test file created
2017-
03-
18T23:
49:
32.103446
81 Select which mappe you want (or search term):
0
82 Uploading mangelmelding/mangler.pdf
83 PDF title: Mangler i spesifikasjonsdokumentet for NOARK
5 Tjenestegrensesnitt
84 File
2017/
1: Title of the test case file created
2017-
03-
18T23:
49:
32.103446
86 </pre></blockquote></p>
88 <p>You can see here how the fonds (arkiv) and serie (arkivdel) only had
89 one option, while the user need to choose which file (mappe) to use
90 among the two created by the API tester. The
<tt>archive-pdf
</tt>
91 tool can be found in the git repository for the API tester.
</p>
93 <p>In the project, I have been mostly working on
94 <a href=
"https://github.com/petterreinholdtsen/noark5-tester">the API
95 tester
</a> so far, while getting to know the code base. The API
97 <a href=
"https://en.wikipedia.org/wiki/HATEOAS">the HATEOAS links
</a>
98 to traverse the entire exposed service API and verify that the exposed
99 operations and objects match the specification, as well as trying to
100 create objects holding metadata and uploading a simple XML file to
101 store. The tester has proved very useful for finding flaws in our
102 implementation, as well as flaws in the reference site and the
105 <p>The test document I uploaded is a summary of all the specification
106 defects we have collected so far while implementing the web service.
107 There are several unclear and conflicting parts of the specification,
109 <a href=
"https://github.com/petterreinholdtsen/noark5-tester/tree/master/mangelmelding">started
110 writing down
</a> the questions we get from implementing it. We use a
111 format inspired by how
<a href=
"http://www.opengroup.org/austin/">The
112 Austin Group
</a> collect defect reports for the POSIX standard with
113 <a href=
"http://www.opengroup.org/austin/mantis.html">their
114 instructions for the MANTIS defect tracker system
</a>, in lack of an official way to structure defect reports for Noark
5 (our first submitted defect report was a
<a href=
"https://github.com/petterreinholdtsen/noark5-tester/blob/master/mangelmelding/sendt/2017-03-15-mangel-prosess.md">request for a procedure for submitting defect reports
</a> :).
116 <p>The Nikita project is implemented using Java and Spring, and is
117 fairly easy to get up and running using Docker containers for those
118 that want to test the current code base. The API tester is
119 implemented in Python.
</p>
125 Tags:
<a href=
"http://www.hungry.com/~pere/blog/tags/english">english
</a>,
<a href=
"http://www.hungry.com/~pere/blog/tags/noark5">noark5
</a>,
<a href=
"http://www.hungry.com/~pere/blog/tags/nuug">nuug
</a>,
<a href=
"http://www.hungry.com/~pere/blog/tags/offentlig innsyn">offentlig innsyn
</a>,
<a href=
"http://www.hungry.com/~pere/blog/tags/standard">standard
</a>.
130 <div class=
"padding"></div>
134 <a href=
"http://www.hungry.com/~pere/blog/Detecting_NFS_hangs_on_Linux_without_hanging_yourself___.html">Detecting NFS hangs on Linux without hanging yourself...
</a>
140 <p>Over the years, administrating thousand of NFS mounting linux
141 computers at the time, I often needed a way to detect if the machine
142 was experiencing NFS hang. If you try to use
<tt>df
</tt> or look at a
143 file or directory affected by the hang, the process (and possibly the
144 shell) will hang too. So you want to be able to detect this without
145 risking the detection process getting stuck too. It has not been
146 obvious how to do this. When the hang has lasted a while, it is
147 possible to find messages like these in dmesg:
</p>
150 nfs: server nfsserver not responding, still trying
151 <br>nfs: server nfsserver OK
154 <p>It is hard to know if the hang is still going on, and it is hard to
155 be sure looking in dmesg is going to work. If there are lots of other
156 messages in dmesg the lines might have rotated out of site before they
159 <p>While reading through the nfs client implementation in linux kernel
160 code, I came across some statistics that seem to give a way to detect
161 it. The om_timeouts sunrpc value in the kernel will increase every
162 time the above log entry is inserted into dmesg. And after digging a
163 bit further, I discovered that this value show up in
164 /proc/self/mountstats on Linux.
</p>
166 <p>The mountstats content seem to be shared between files using the
167 same file system context, so it is enough to check one of the
168 mountstats files to get the state of the mount point for the machine.
169 I assume this will not show lazy umounted NFS points, nor NFS mount
170 points in a different process context (ie with a different filesystem
171 view), but that does not worry me.
</p>
173 <p>The content for a NFS mount point look similar to this:
</p>
177 device /dev/mapper/Debian-var mounted on /var with fstype ext3
178 device nfsserver:/mnt/nfsserver/home0 mounted on /mnt/nfsserver/home0 with fstype nfs statvers=
1.1
179 opts: rw,vers=
3,rsize=
65536,wsize=
65536,namlen=
255,acregmin=
3,acregmax=
60,acdirmin=
30,acdirmax=
60,soft,nolock,proto=tcp,timeo=
600,retrans=
2,sec=sys,mountaddr=
129.240.3.145,mountvers=
3,mountport=
4048,mountproto=udp,local_lock=all
181 caps: caps=
0x3fe7,wtmult=
4096,dtsize=
8192,bsize=
0,namlen=
255
182 sec: flavor=
1,pseudoflavor=
1
183 events:
61063112 732346265 1028140 35486205 16220064 8162542 761447191 71714012 37189 3891185 45561809 110486139 4850138 420353 15449177 296502 52736725 13523379 0 52182 9016896 1231 0 0 0 0 0
184 bytes:
166253035039 219519120027 0 0 40783504807 185466229638 11677877 45561809
185 RPC iostats version:
1.0 p/v:
100003/
3 (nfs)
186 xprt: tcp
925 1 6810 0 0 111505412 111480497 109 2672418560317 0 248 53869103 22481820
188 NULL:
0 0 0 0 0 0 0 0
189 GETATTR:
61063106 61063108 0 9621383060 6839064400 453650 77291321 78926132
190 SETATTR:
463469 463470 0 92005440 66739536 63787 603235 687943
191 LOOKUP:
17021657 17021657 0 3354097764 4013442928 57216 35125459 35566511
192 ACCESS:
14281703 14290009 5 2318400592 1713803640 1709282 4865144 7130140
193 READLINK:
125 125 0 20472 18620 0 1112 1118
194 READ:
4214236 4214237 0 715608524 41328653212 89884 22622768 22806693
195 WRITE:
8479010 8494376 22 187695798568 1356087148 178264904 51506907 231671771
196 CREATE:
171708 171708 0 38084748 46702272 873 1041833 1050398
197 MKDIR:
3680 3680 0 773980 993920 26 23990 24245
198 SYMLINK:
903 903 0 233428 245488 6 5865 5917
199 MKNOD:
80 80 0 20148 21760 0 299 304
200 REMOVE:
429921 429921 0 79796004 61908192 3313 2710416 2741636
201 RMDIR:
3367 3367 0 645112 484848 22 5782 6002
202 RENAME:
466201 466201 0 130026184 121212260 7075 5935207 5961288
203 LINK:
289155 289155 0 72775556 67083960 2199 2565060 2585579
204 READDIR:
2933237 2933237 0 516506204 13973833412 10385 3190199 3297917
205 READDIRPLUS:
1652839 1652839 0 298640972 6895997744 84735 14307895 14448937
206 FSSTAT:
6144 6144 0 1010516 1032192 51 9654 10022
207 FSINFO:
2 2 0 232 328 0 1 1
208 PATHCONF:
1 1 0 116 140 0 0 0
209 COMMIT:
0 0 0 0 0 0 0 0
211 device binfmt_misc mounted on /proc/sys/fs/binfmt_misc with fstype binfmt_misc
213 </pre></blockquote></p>
215 <p>The key number to look at is the third number in the per-op list.
216 It is the number of NFS timeouts experiences per file system
217 operation. Here
22 write timeouts and
5 access timeouts. If these
218 numbers are increasing, I believe the machine is experiencing NFS
219 hang. Unfortunately the timeout value do not start to increase right
220 away. The NFS operations need to time out first, and this can take a
221 while. The exact timeout value depend on the setup. For example the
222 defaults for TCP and UDP mount points are quite different, and the
223 timeout value is affected by the soft, hard, timeo and retrans NFS
226 <p>The only way I have been able to get working on Debian and RedHat
227 Enterprise Linux for getting the timeout count is to peek in /proc/.
229 <ahref=
"http://docs.oracle.com/cd/E19253-01/816-4555/netmonitor-12/index.html">Solaris
230 10 System Administration Guide: Network Services
</a>, the 'nfsstat -c'
231 command can be used to get these timeout values. But this do not work
232 on Linux, as far as I can tell. I
233 <ahref=
"http://bugs.debian.org/857043">asked Debian about this
</a>,
234 but have not seen any replies yet.
</p>
236 <p>Is there a better way to figure out if a Linux NFS client is
237 experiencing NFS hangs? Is there a way to detect which processes are
238 affected? Is there a way to get the NFS mount going quickly once the
239 network problem causing the NFS hang has been cleared? I would very
240 much welcome some clues, as we regularly run into NFS hangs.
</p>
246 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/sysadmin">sysadmin
</a>.
251 <div class=
"padding"></div>
255 <a href=
"http://www.hungry.com/~pere/blog/How_does_it_feel_to_be_wiretapped__when_you_should_be_doing_the_wiretapping___.html">How does it feel to be wiretapped, when you should be doing the wiretapping...
</a>
261 <p>So the new president in the United States of America claim to be
262 surprised to discover that he was wiretapped during the election
263 before he was elected president. He even claim this must be illegal.
264 Well, doh, if it is one thing the confirmations from Snowden
265 documented, it is that the entire population in USA is wiretapped, one
266 way or another. Of course the president candidates were wiretapped,
267 alongside the senators, judges and the rest of the people in USA.
</p>
269 <p>Next, the Federal Bureau of Investigation ask the Department of
270 Justice to go public rejecting the claims that Donald Trump was
271 wiretapped illegally. I fail to see the relevance, given that I am
272 sure the surveillance industry in USA believe they have all the legal
273 backing they need to conduct mass surveillance on the entire
276 <p>There is even the director of the FBI stating that he never saw an
277 order requesting wiretapping of Donald Trump. That is not very
278 surprising, given how the FISA court work, with all its activity being
279 secret. Perhaps he only heard about it?
</p>
281 <p>What I find most sad in this story is how Norwegian journalists
282 present it. In a news reports the other day in the radio from the
283 Norwegian National broadcasting Company (NRK), I heard the journalist
284 claim that 'the FBI denies any wiretapping', while the reality is that
285 'the FBI denies any illegal wiretapping'. There is a fundamental and
286 important difference, and it make me sad that the journalists are
287 unable to grasp it.
</p>
289 <p><strong>Update
2017-
03-
13:
</strong> Look like
290 <a href=
"https://theintercept.com/2017/03/13/rand-paul-is-right-nsa-routinely-monitors-americans-communications-without-warrants/">The
291 Intercept report that US Senator Rand Paul confirm what I state above
</a>.
</p>
297 Tags:
<a href=
"http://www.hungry.com/~pere/blog/tags/english">english
</a>,
<a href=
"http://www.hungry.com/~pere/blog/tags/surveillance">surveillance
</a>.
302 <div class=
"padding"></div>
306 <a href=
"http://www.hungry.com/~pere/blog/Norwegian_Bokm_l_translation_of_The_Debian_Administrator_s_Handbook_complete__proofreading_in_progress.html">Norwegian Bokmål translation of The Debian Administrator's Handbook complete, proofreading in progress
</a>
312 <p>For almost a year now, we have been working on making a Norwegian
313 Bokmål edition of
<a href=
"https://debian-handbook.info/">The Debian
314 Administrator's Handbook
</a>. Now, thanks to the tireless effort of
315 Ole-Erik, Ingrid and Andreas, the initial translation is complete, and
316 we are working on the proof reading to ensure consistent language and
317 use of correct computer science terms. The plan is to make the book
318 available on paper, as well as in electronic form. For that to
319 happen, the proof reading must be completed and all the figures need
320 to be translated. If you want to help out, get in touch.
</p>
322 <p><a href=
"http://www.hungry.com/~pere/debian-handbook/debian-handbook-nb-NO.pdf">A
324 fresh PDF edition
</a> in A4 format (the final book will have smaller
325 pages) of the book created every morning is available for
326 proofreading. If you find any errors, please
327 <a href=
"https://hosted.weblate.org/projects/debian-handbook/">visit
328 Weblate and correct the error
</a>. The
329 <a href=
"http://l.github.io/debian-handbook/stat/nb-NO/index.html">state
330 of the translation including figures
</a> is a useful source for those
331 provide Norwegian bokmål screen shots and figures.
</p>
337 Tags:
<a href=
"http://www.hungry.com/~pere/blog/tags/debian">debian
</a>,
<a href=
"http://www.hungry.com/~pere/blog/tags/debian-handbook">debian-handbook
</a>,
<a href=
"http://www.hungry.com/~pere/blog/tags/english">english
</a>.
342 <div class=
"padding"></div>
346 <a href=
"http://www.hungry.com/~pere/blog/Unlimited_randomness_with_the_ChaosKey_.html">Unlimited randomness with the ChaosKey?
</a>
352 <p>A few days ago I ordered a small batch of
353 <a href=
"http://altusmetrum.org/ChaosKey/">the ChaosKey
</a>, a small
354 USB dongle for generating entropy created by Bdale Garbee and Keith
355 Packard. Yesterday it arrived, and I am very happy to report that it
356 work great! According to its designers, to get it to work out of the
357 box, you need the Linux kernel version
4.1 or later. I tested on a
358 Debian Stretch machine (kernel version
4.9), and there it worked just
359 fine, increasing the available entropy very quickly. I wrote a small
360 test oneliner to test. It first print the current entropy level,
361 drain /dev/random, and then print the entropy level for five seconds.
362 Here is the situation without the ChaosKey inserted:
</p>
365 % cat /proc/sys/kernel/random/entropy_avail; \
366 dd bs=
1M if=/dev/random of=/dev/null count=
1; \
367 for n in $(seq
1 5); do \
368 cat /proc/sys/kernel/random/entropy_avail; \
374 28 byte kopiert,
0,
000264565 s,
106 kB/s
383 <p>The entropy level increases by
3-
4 every second. In such case any
384 application requiring random bits (like a HTTPS enabled web server)
385 will halt and wait for more entrpy. And here is the situation with
386 the ChaosKey inserted:
</p>
389 % cat /proc/sys/kernel/random/entropy_avail; \
390 dd bs=
1M if=/dev/random of=/dev/null count=
1; \
391 for n in $(seq
1 5); do \
392 cat /proc/sys/kernel/random/entropy_avail; \
398 104 byte kopiert,
0,
000487647 s,
213 kB/s
407 <p>Quite the difference. :) I bought a few more than I need, in case
408 someone want to buy one here in Norway. :)
</p>
410 <p>Update: The dongle was presented at Debconf last year. You might
411 find
<a href=
"https://debconf16.debconf.org/talks/94/">the talk
412 recording illuminating
</a>. It explains exactly what the source of
413 randomness is, if you are unable to spot it from the schema drawing
414 available from the ChaosKey web site linked at the start of this blog
421 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>.
426 <div class=
"padding"></div>
428 <p style=
"text-align: right;"><a href=
"03.rss"><img src=
"http://www.hungry.com/~pere/blog/xml.gif" alt=
"RSS Feed" width=
"36" height=
"14" /></a></p>
439 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2025/01/">January (
4)
</a></li>
441 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2025/02/">February (
3)
</a></li>
448 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2024/01/">January (
1)
</a></li>
450 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2024/02/">February (
1)
</a></li>
452 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2024/03/">March (
2)
</a></li>
454 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2024/04/">April (
3)
</a></li>
456 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2024/05/">May (
1)
</a></li>
458 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2024/06/">June (
1)
</a></li>
460 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2024/07/">July (
2)
</a></li>
462 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2024/12/">December (
1)
</a></li>
469 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2023/01/">January (
3)
</a></li>
471 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2023/02/">February (
1)
</a></li>
473 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2023/04/">April (
2)
</a></li>
475 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2023/05/">May (
3)
</a></li>
477 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2023/06/">June (
1)
</a></li>
479 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2023/08/">August (
1)
</a></li>
481 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2023/09/">September (
1)
</a></li>
483 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2023/10/">October (
1)
</a></li>
485 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2023/11/">November (
4)
</a></li>
487 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2023/12/">December (
1)
</a></li>
494 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2022/02/">February (
1)
</a></li>
496 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2022/03/">March (
3)
</a></li>
498 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2022/04/">April (
2)
</a></li>
500 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2022/06/">June (
2)
</a></li>
502 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2022/07/">July (
1)
</a></li>
504 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2022/09/">September (
1)
</a></li>
506 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2022/10/">October (
1)
</a></li>
508 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2022/12/">December (
1)
</a></li>
515 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2021/01/">January (
2)
</a></li>
517 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2021/02/">February (
1)
</a></li>
519 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2021/05/">May (
1)
</a></li>
521 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2021/06/">June (
1)
</a></li>
523 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2021/07/">July (
3)
</a></li>
525 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2021/08/">August (
1)
</a></li>
527 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2021/09/">September (
1)
</a></li>
529 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2021/10/">October (
1)
</a></li>
531 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2021/12/">December (
1)
</a></li>
538 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2020/02/">February (
2)
</a></li>
540 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2020/03/">March (
2)
</a></li>
542 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2020/04/">April (
2)
</a></li>
544 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2020/05/">May (
3)
</a></li>
546 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2020/06/">June (
2)
</a></li>
548 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2020/07/">July (
1)
</a></li>
550 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2020/09/">September (
1)
</a></li>
552 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2020/10/">October (
1)
</a></li>
554 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2020/11/">November (
1)
</a></li>
561 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2019/01/">January (
4)
</a></li>
563 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2019/02/">February (
3)
</a></li>
565 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2019/03/">March (
3)
</a></li>
567 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2019/05/">May (
2)
</a></li>
569 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2019/06/">June (
5)
</a></li>
571 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2019/07/">July (
2)
</a></li>
573 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2019/08/">August (
1)
</a></li>
575 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2019/09/">September (
1)
</a></li>
577 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2019/11/">November (
1)
</a></li>
579 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2019/12/">December (
4)
</a></li>
586 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2018/01/">January (
1)
</a></li>
588 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2018/02/">February (
5)
</a></li>
590 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2018/03/">March (
5)
</a></li>
592 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2018/04/">April (
3)
</a></li>
594 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2018/06/">June (
2)
</a></li>
596 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2018/07/">July (
5)
</a></li>
598 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2018/08/">August (
3)
</a></li>
600 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2018/09/">September (
3)
</a></li>
602 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2018/10/">October (
5)
</a></li>
604 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2018/11/">November (
2)
</a></li>
606 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2018/12/">December (
4)
</a></li>
613 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2017/01/">January (
4)
</a></li>
615 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2017/02/">February (
3)
</a></li>
617 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2017/03/">March (
5)
</a></li>
619 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2017/04/">April (
2)
</a></li>
621 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2017/06/">June (
5)
</a></li>
623 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2017/07/">July (
1)
</a></li>
625 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2017/08/">August (
1)
</a></li>
627 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2017/09/">September (
3)
</a></li>
629 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2017/10/">October (
5)
</a></li>
631 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2017/11/">November (
3)
</a></li>
633 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2017/12/">December (
4)
</a></li>
640 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/01/">January (
3)
</a></li>
642 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/02/">February (
2)
</a></li>
644 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/03/">March (
3)
</a></li>
646 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/04/">April (
8)
</a></li>
648 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/05/">May (
8)
</a></li>
650 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/06/">June (
2)
</a></li>
652 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/07/">July (
2)
</a></li>
654 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/08/">August (
5)
</a></li>
656 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/09/">September (
2)
</a></li>
658 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/10/">October (
3)
</a></li>
660 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/11/">November (
8)
</a></li>
662 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/12/">December (
5)
</a></li>
669 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/01/">January (
7)
</a></li>
671 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/02/">February (
6)
</a></li>
673 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/03/">March (
1)
</a></li>
675 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/04/">April (
4)
</a></li>
677 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/05/">May (
3)
</a></li>
679 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/06/">June (
4)
</a></li>
681 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/07/">July (
6)
</a></li>
683 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/08/">August (
2)
</a></li>
685 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/09/">September (
2)
</a></li>
687 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/10/">October (
9)
</a></li>
689 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/11/">November (
6)
</a></li>
691 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/12/">December (
3)
</a></li>
698 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/01/">January (
2)
</a></li>
700 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/02/">February (
3)
</a></li>
702 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/03/">March (
8)
</a></li>
704 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/04/">April (
7)
</a></li>
706 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/05/">May (
1)
</a></li>
708 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/06/">June (
2)
</a></li>
710 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/07/">July (
2)
</a></li>
712 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/08/">August (
2)
</a></li>
714 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/09/">September (
5)
</a></li>
716 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/10/">October (
6)
</a></li>
718 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/11/">November (
3)
</a></li>
720 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/12/">December (
5)
</a></li>
727 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/01/">January (
11)
</a></li>
729 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/02/">February (
9)
</a></li>
731 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/03/">March (
9)
</a></li>
733 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/04/">April (
6)
</a></li>
735 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/05/">May (
9)
</a></li>
737 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/06/">June (
10)
</a></li>
739 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/07/">July (
7)
</a></li>
741 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/08/">August (
3)
</a></li>
743 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/09/">September (
5)
</a></li>
745 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/10/">October (
7)
</a></li>
747 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/11/">November (
9)
</a></li>
749 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/12/">December (
3)
</a></li>
756 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/01/">January (
7)
</a></li>
758 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/02/">February (
10)
</a></li>
760 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/03/">March (
17)
</a></li>
762 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/04/">April (
12)
</a></li>
764 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/05/">May (
12)
</a></li>
766 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/06/">June (
20)
</a></li>
768 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/07/">July (
17)
</a></li>
770 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/08/">August (
6)
</a></li>
772 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/09/">September (
9)
</a></li>
774 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/10/">October (
17)
</a></li>
776 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/11/">November (
10)
</a></li>
778 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/12/">December (
7)
</a></li>
785 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/01/">January (
16)
</a></li>
787 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/02/">February (
6)
</a></li>
789 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/03/">March (
6)
</a></li>
791 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/04/">April (
7)
</a></li>
793 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/05/">May (
3)
</a></li>
795 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/06/">June (
2)
</a></li>
797 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/07/">July (
7)
</a></li>
799 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/08/">August (
6)
</a></li>
801 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/09/">September (
4)
</a></li>
803 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/10/">October (
2)
</a></li>
805 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/11/">November (
3)
</a></li>
807 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/12/">December (
1)
</a></li>
814 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/01/">January (
2)
</a></li>
816 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/02/">February (
1)
</a></li>
818 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/03/">March (
3)
</a></li>
820 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/04/">April (
3)
</a></li>
822 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/05/">May (
9)
</a></li>
824 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/06/">June (
14)
</a></li>
826 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/07/">July (
12)
</a></li>
828 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/08/">August (
13)
</a></li>
830 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/09/">September (
7)
</a></li>
832 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/10/">October (
9)
</a></li>
834 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/11/">November (
13)
</a></li>
836 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/12/">December (
12)
</a></li>
843 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/01/">January (
8)
</a></li>
845 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/02/">February (
8)
</a></li>
847 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/03/">March (
12)
</a></li>
849 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/04/">April (
10)
</a></li>
851 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/05/">May (
9)
</a></li>
853 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/06/">June (
3)
</a></li>
855 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/07/">July (
4)
</a></li>
857 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/08/">August (
3)
</a></li>
859 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/09/">September (
1)
</a></li>
861 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/10/">October (
2)
</a></li>
863 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/11/">November (
3)
</a></li>
865 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/12/">December (
3)
</a></li>
872 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2008/11/">November (
5)
</a></li>
874 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2008/12/">December (
7)
</a></li>
885 <li><a href=
"http://www.hungry.com/~pere/blog/tags/3d-printer">3d-printer (
19)
</a></li>
887 <li><a href=
"http://www.hungry.com/~pere/blog/tags/amiga">amiga (
1)
</a></li>
889 <li><a href=
"http://www.hungry.com/~pere/blog/tags/aros">aros (
1)
</a></li>
891 <li><a href=
"http://www.hungry.com/~pere/blog/tags/bankid">bankid (
4)
</a></li>
893 <li><a href=
"http://www.hungry.com/~pere/blog/tags/betalkontant">betalkontant (
9)
</a></li>
895 <li><a href=
"http://www.hungry.com/~pere/blog/tags/bitcoin">bitcoin (
13)
</a></li>
897 <li><a href=
"http://www.hungry.com/~pere/blog/tags/bootsystem">bootsystem (
17)
</a></li>
899 <li><a href=
"http://www.hungry.com/~pere/blog/tags/bsa">bsa (
2)
</a></li>
901 <li><a href=
"http://www.hungry.com/~pere/blog/tags/chrpath">chrpath (
3)
</a></li>
903 <li><a href=
"http://www.hungry.com/~pere/blog/tags/debian">debian (
209)
</a></li>
905 <li><a href=
"http://www.hungry.com/~pere/blog/tags/debian edu">debian edu (
159)
</a></li>
907 <li><a href=
"http://www.hungry.com/~pere/blog/tags/debian-handbook">debian-handbook (
9)
</a></li>
909 <li><a href=
"http://www.hungry.com/~pere/blog/tags/digistan">digistan (
11)
</a></li>
911 <li><a href=
"http://www.hungry.com/~pere/blog/tags/dld">dld (
18)
</a></li>
913 <li><a href=
"http://www.hungry.com/~pere/blog/tags/docbook">docbook (
33)
</a></li>
915 <li><a href=
"http://www.hungry.com/~pere/blog/tags/drivstoffpriser">drivstoffpriser (
4)
</a></li>
917 <li><a href=
"http://www.hungry.com/~pere/blog/tags/english">english (
471)
</a></li>
919 <li><a href=
"http://www.hungry.com/~pere/blog/tags/fiksgatami">fiksgatami (
23)
</a></li>
921 <li><a href=
"http://www.hungry.com/~pere/blog/tags/fildeling">fildeling (
14)
</a></li>
923 <li><a href=
"http://www.hungry.com/~pere/blog/tags/freeculture">freeculture (
34)
</a></li>
925 <li><a href=
"http://www.hungry.com/~pere/blog/tags/freedombox">freedombox (
9)
</a></li>
927 <li><a href=
"http://www.hungry.com/~pere/blog/tags/frikanalen">frikanalen (
20)
</a></li>
929 <li><a href=
"http://www.hungry.com/~pere/blog/tags/h264">h264 (
20)
</a></li>
931 <li><a href=
"http://www.hungry.com/~pere/blog/tags/intervju">intervju (
43)
</a></li>
933 <li><a href=
"http://www.hungry.com/~pere/blog/tags/isenkram">isenkram (
21)
</a></li>
935 <li><a href=
"http://www.hungry.com/~pere/blog/tags/kart">kart (
23)
</a></li>
937 <li><a href=
"http://www.hungry.com/~pere/blog/tags/kodi">kodi (
6)
</a></li>
939 <li><a href=
"http://www.hungry.com/~pere/blog/tags/ldap">ldap (
9)
</a></li>
941 <li><a href=
"http://www.hungry.com/~pere/blog/tags/lego">lego (
5)
</a></li>
943 <li><a href=
"http://www.hungry.com/~pere/blog/tags/lenker">lenker (
8)
</a></li>
945 <li><a href=
"http://www.hungry.com/~pere/blog/tags/linuxcnc">linuxcnc (
8)
</a></li>
947 <li><a href=
"http://www.hungry.com/~pere/blog/tags/lsdvd">lsdvd (
3)
</a></li>
949 <li><a href=
"http://www.hungry.com/~pere/blog/tags/ltsp">ltsp (
1)
</a></li>
951 <li><a href=
"http://www.hungry.com/~pere/blog/tags/madewithcc">madewithcc (
3)
</a></li>
953 <li><a href=
"http://www.hungry.com/~pere/blog/tags/mesh network">mesh network (
8)
</a></li>
955 <li><a href=
"http://www.hungry.com/~pere/blog/tags/multimedia">multimedia (
48)
</a></li>
957 <li><a href=
"http://www.hungry.com/~pere/blog/tags/nice free software">nice free software (
15)
</a></li>
959 <li><a href=
"http://www.hungry.com/~pere/blog/tags/noark5">noark5 (
27)
</a></li>
961 <li><a href=
"http://www.hungry.com/~pere/blog/tags/norsk">norsk (
326)
</a></li>
963 <li><a href=
"http://www.hungry.com/~pere/blog/tags/nuug">nuug (
200)
</a></li>
965 <li><a href=
"http://www.hungry.com/~pere/blog/tags/offentlig innsyn">offentlig innsyn (
42)
</a></li>
967 <li><a href=
"http://www.hungry.com/~pere/blog/tags/open311">open311 (
2)
</a></li>
969 <li><a href=
"http://www.hungry.com/~pere/blog/tags/opensnitch">opensnitch (
4)
</a></li>
971 <li><a href=
"http://www.hungry.com/~pere/blog/tags/opphavsrett">opphavsrett (
76)
</a></li>
973 <li><a href=
"http://www.hungry.com/~pere/blog/tags/personvern">personvern (
114)
</a></li>
975 <li><a href=
"http://www.hungry.com/~pere/blog/tags/raid">raid (
4)
</a></li>
977 <li><a href=
"http://www.hungry.com/~pere/blog/tags/reactos">reactos (
1)
</a></li>
979 <li><a href=
"http://www.hungry.com/~pere/blog/tags/reprap">reprap (
11)
</a></li>
981 <li><a href=
"http://www.hungry.com/~pere/blog/tags/rfid">rfid (
3)
</a></li>
983 <li><a href=
"http://www.hungry.com/~pere/blog/tags/robot">robot (
17)
</a></li>
985 <li><a href=
"http://www.hungry.com/~pere/blog/tags/rss">rss (
1)
</a></li>
987 <li><a href=
"http://www.hungry.com/~pere/blog/tags/ruter">ruter (
7)
</a></li>
989 <li><a href=
"http://www.hungry.com/~pere/blog/tags/scraperwiki">scraperwiki (
2)
</a></li>
991 <li><a href=
"http://www.hungry.com/~pere/blog/tags/sikkerhet">sikkerhet (
60)
</a></li>
993 <li><a href=
"http://www.hungry.com/~pere/blog/tags/sitesummary">sitesummary (
4)
</a></li>
995 <li><a href=
"http://www.hungry.com/~pere/blog/tags/skepsis">skepsis (
5)
</a></li>
997 <li><a href=
"http://www.hungry.com/~pere/blog/tags/standard">standard (
80)
</a></li>
999 <li><a href=
"http://www.hungry.com/~pere/blog/tags/stavekontroll">stavekontroll (
7)
</a></li>
1001 <li><a href=
"http://www.hungry.com/~pere/blog/tags/stortinget">stortinget (
14)
</a></li>
1003 <li><a href=
"http://www.hungry.com/~pere/blog/tags/surveillance">surveillance (
65)
</a></li>
1005 <li><a href=
"http://www.hungry.com/~pere/blog/tags/sysadmin">sysadmin (
6)
</a></li>
1007 <li><a href=
"http://www.hungry.com/~pere/blog/tags/usenix">usenix (
2)
</a></li>
1009 <li><a href=
"http://www.hungry.com/~pere/blog/tags/valg">valg (
9)
</a></li>
1011 <li><a href=
"http://www.hungry.com/~pere/blog/tags/verkidetfri">verkidetfri (
23)
</a></li>
1013 <li><a href=
"http://www.hungry.com/~pere/blog/tags/video">video (
82)
</a></li>
1015 <li><a href=
"http://www.hungry.com/~pere/blog/tags/vitenskap">vitenskap (
4)
</a></li>
1017 <li><a href=
"http://www.hungry.com/~pere/blog/tags/web">web (
42)
</a></li>
1023 <p style=
"text-align: right">
1024 Created by
<a href=
"http://steve.org.uk/Software/chronicle">Chronicle v4.6
</a>