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
</title>
7 <link rel=
"stylesheet" type=
"text/css" media=
"screen" href=
"http://people.skolelinux.org/pere/blog/style.css" />
8 <link rel=
"stylesheet" type=
"text/css" media=
"screen" href=
"http://people.skolelinux.org/pere/blog/vim.css" />
9 <link rel=
"alternate" title=
"RSS Feed" href=
"http://people.skolelinux.org/pere/blog/index.rss" type=
"application/rss+xml" />
14 <a href=
"http://people.skolelinux.org/pere/blog/">Petter Reinholdtsen
</a>
23 <div class=
"title"><a href=
"http://people.skolelinux.org/pere/blog/Release_0_1_1_of_free_software_archive_system_Nikita_announced.html">Release
0.1.1 of free software archive system Nikita announced
</a></div>
24 <div class=
"date">10th June
2017</div>
25 <div class=
"body"><p>I am very happy to report that the
26 <a href=
"https://github.com/hiOA-ABI/nikita-noark5-core">Nikita Noark
5
27 core project
</a> tagged its second release today. The free software
28 solution is an implementation of the Norwegian archive standard Noark
29 5 used by government offices in Norway. These were the changes in
30 version
0.1.1 since version
0.1.0 (from NEWS.md):
34 <li>Continued work on the angularjs GUI, including document upload.
</li>
35 <li>Implemented correspondencepartPerson, correspondencepartUnit and
36 correspondencepartInternal
</li>
37 <li>Applied for coverity coverage and started submitting code on
39 <li>Started fixing bugs reported by coverity
</li>
40 <li>Corrected and completed HATEOAS links to make sure entire API is
41 available via URLs in _links.
</li>
42 <li>Corrected all relation URLs to use trailing slash.
</li>
43 <li>Add initial support for storing data in ElasticSearch.
</li>
44 <li>Now able to receive and store uploaded files in the archive.
</li>
45 <li>Changed JSON output for object lists to have relations in _links.
</li>
46 <li>Improve JSON output for empty object lists.
</li>
47 <li>Now uses correct MIME type application/vnd.noark5-v4+json.
</li>
48 <li>Added support for docker container images.
</li>
49 <li>Added simple API browser implemented in JavaScript/Angular.
</li>
50 <li>Started on archive client implemented in JavaScript/Angular.
</li>
51 <li>Started on prototype to show the public mail journal.
</li>
52 <li>Improved performance by disabling Sprint FileWatcher.
</li>
53 <li>Added support for 'arkivskaper', 'saksmappe' and 'journalpost'.
</li>
54 <li>Added support for some metadata codelists.
</li>
55 <li>Added support for Cross-origin resource sharing (CORS).
</li>
56 <li>Changed login method from Basic Auth to JSON Web Token (RFC
7519)
58 <li>Added support for GET-ing ny-* URLs.
</li>
59 <li>Added support for modifying entities using PUT and eTag.
</li>
60 <li>Added support for returning XML output on request.
</li>
61 <li>Removed support for English field and class names, limiting ourself
62 to the official names.
</li>
67 <p>If this sound interesting to you, please contact us on IRC (#nikita
68 on irc.freenode.net) or email
69 (
<a href=
"https://lists.nuug.no/mailman/listinfo/nikita-noark">nikita-noark
75 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/english">english
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/nuug">nuug
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/standard">standard
</a>.
80 <div class=
"padding"></div>
83 <div class=
"title"><a href=
"http://people.skolelinux.org/pere/blog/Idea_for_storing_trusted_timestamps_in_a_Noark_5_archive.html">Idea for storing trusted timestamps in a Noark
5 archive
</a></div>
84 <div class=
"date"> 7th June
2017</div>
85 <div class=
"body"><p><em>This is a copy of
86 <a href=
"https://lists.nuug.no/pipermail/nikita-noark/2017-June/000297.html">an
87 email I posted to the nikita-noark mailing list
</a>. Please follow up
88 there if you would like to discuss this topic. The background is that
89 we are making a free software archive system based on the Norwegian
90 <a href=
"https://www.arkivverket.no/forvaltning-og-utvikling/regelverk-og-standarder/noark-standarden">Noark
91 5 standard
</a> for government archives.
</em></p>
93 <p>I've been wondering a bit lately how trusted timestamps could be
95 <a href=
"https://en.wikipedia.org/wiki/Trusted_timestamping">Trusted
96 timestamps
</a> can be used to verify that some information
97 (document/file/checksum/metadata) have not been changed since a
98 specific time in the past. This is useful to verify the integrity of
99 the documents in the archive.
</p>
101 <p>Then it occured to me, perhaps the trusted timestamps could be
102 stored as dokument variants (ie dokumentobjekt referered to from
103 dokumentbeskrivelse) with the filename set to the hash it is
106 <p>Given a "dokumentbeskrivelse" with an associated "dokumentobjekt",
107 a new dokumentobjekt is associated with "dokumentbeskrivelse" with the
108 same attributes as the stamped dokumentobjekt except these
113 <li>format -
> "RFC3161"
114 <li>mimeType -
> "application/timestamp-reply"
115 <li>formatDetaljer -
> "<source URL for timestamp service>"
116 <li>filenavn -
> "<sjekksum>.tsr"
120 <p>This assume a service following
121 <a href=
"https://tools.ietf.org/html/rfc3161">IETF RFC
3161</a> is
122 used, which specifiy the given MIME type for replies and the .tsr file
123 ending for the content of such trusted timestamp. As far as I can
124 tell from the Noark
5 specifications, it is OK to have several
125 variants/renderings of a dokument attached to a given
126 dokumentbeskrivelse objekt. It might be stretching it a bit to make
127 some of these variants represent crypto-signatures useful for
128 verifying the document integrity instead of representing the dokument
131 <p>Using the source of the service in formatDetaljer allow several
132 timestamping services to be used. This is useful to spread the risk
133 of key compromise over several organisations. It would only be a
134 problem to trust the timestamps if all of the organisations are
137 <p>The following oneliner on Linux can be used to generate the tsr
138 file. $input is the path to the file to checksum, and $sha256 is the
139 SHA-
256 checksum of the file (ie the "
<sjekksum>.tsr" value mentioned
143 openssl ts -query -data "$inputfile" -cert -sha256 -no_nonce \
144 | curl -s -H "Content-Type: application/timestamp-query" \
145 --data-binary "@-" http://zeitstempel.dfn.de
> $sha256.tsr
146 </pre></blockquote></p>
148 <p>To verify the timestamp, you first need to download the public key
149 of the trusted timestamp service, for example using this command:
</p>
152 wget -O ca-cert.txt \
153 https://pki.pca.dfn.de/global-services-ca/pub/cacert/chain.txt
154 </pre></blockquote></p>
156 <p>Note, the public key should be stored alongside the timestamps in
157 the archive to make sure it is also available
100 years from now. It
158 is probably a good idea to standardise how and were to store such
159 public keys, to make it easier to find for those trying to verify
160 documents
100 or
1000 years from now. :)
</p>
162 <p>The verification itself is a simple openssl command:
</p>
165 openssl ts -verify -data $inputfile -in $sha256.tsr \
166 -CAfile ca-cert.txt -text
167 </pre></blockquote></p>
169 <p>Is there any reason this approach would not work? Is it somehow against
170 the Noark
5 specification?
</p>
175 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/english">english
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/standard">standard
</a>.
180 <div class=
"padding"></div>
183 <div class=
"title"><a href=
"http://people.skolelinux.org/pere/blog/N_r_nynorskoversettelsen_svikter_til_eksamen___.html">Når nynorskoversettelsen svikter til eksamen...
</a></div>
184 <div class=
"date"> 3rd June
2017</div>
185 <div class=
"body"><p><a href=
"http://www.aftenposten.no/norge/Krever-at-elever-ma-fa-annullert-eksamen-etter-rot-med-oppgavetekster-622459b.html">Aftenposten
186 melder i dag
</a> om feil i eksamensoppgavene for eksamen i politikk og
187 menneskerettigheter, der teksten i bokmåls og nynorskutgaven ikke var
188 like. Oppgaveteksten er gjengitt i artikkelen, og jeg ble nysgjerring
189 på om den fri oversetterløsningen
190 <a href=
"https://www.apertium.org/">Apertium
</a> ville gjort en bedre
191 jobb enn Utdanningsdirektoratet. Det kan se slik ut.
</p>
193 <p>Her er bokmålsoppgaven fra eksamenen:
</p>
196 <p>Drøft utfordringene knyttet til nasjonalstatenes og andre aktørers
197 rolle og muligheter til å håndtere internasjonale utfordringer, som
198 for eksempel flykningekrisen.
</p>
200 <p>Vedlegge er eksempler på tekster som kan gi relevante perspektiver
203 <li>Flykningeregnskapet
2016, UNHCR og IDMC
204 <li>«Grenseløst Europa for fall» A-Magasinet,
26. november
2015
209 <p>Dette oversetter Apertium slik:
</p>
212 <p>Drøft utfordringane knytte til nasjonalstatane sine og rolla til
213 andre aktørar og høve til å handtera internasjonale utfordringar, som
214 til dømes *flykningekrisen.
</p>
216 <p>Vedleggja er døme på tekster som kan gje relevante perspektiv på
220 <li>*Flykningeregnskapet
2016, *UNHCR og *IDMC
</li>
221 <li>«*Grenseløst Europa for fall» A-Magasinet,
26. november
2015</li>
226 <p>Ord som ikke ble forstått er markert med stjerne (*), og trenger
227 ekstra språksjekk. Men ingen ord er forsvunnet, slik det var i
228 oppgaven elevene fikk presentert på eksamen. Jeg mistenker dog at
229 "andre aktørers rolle og muligheter til ..." burde vært oversatt til
230 "rolla til andre aktørar og deira høve til ..." eller noe slikt, men
231 det er kanskje flisespikking. Det understreker vel bare at det alltid
232 trengs korrekturlesning etter automatisk oversettelse.
</p>
237 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/debian">debian
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/norsk">norsk
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll
</a>.
242 <div class=
"padding"></div>
245 <div class=
"title"><a href=
"http://people.skolelinux.org/pere/blog/Epost_inn_som_arkivformat_i_Riksarkivarens_forskrift_.html">Epost inn som arkivformat i Riksarkivarens forskrift?
</a></div>
246 <div class=
"date">27th April
2017</div>
247 <div class=
"body"><p>I disse dager, med frist
1. mai, har Riksarkivaren ute en høring på
248 sin forskrift. Som en kan se er det ikke mye tid igjen før fristen
249 som går ut på søndag. Denne forskriften er det som lister opp hvilke
250 formater det er greit å arkivere i
251 <a href=
"http://www.arkivverket.no/arkivverket/Offentleg-forvalting/Noark/Noark-5">Noark
252 5-løsninger
</a> i Norge.
</p>
254 <p>Jeg fant høringsdokumentene hos
255 <a href=
"https://www.arkivrad.no/aktuelt/riksarkivarens-forskrift-pa-horing">Norsk
256 Arkivråd
</a> etter å ha blitt tipset på epostlisten til
257 <a href=
"https://github.com/hiOA-ABI/nikita-noark5-core">fri
258 programvareprosjektet Nikita Noark5-Core
</a>, som lager et Noark
5
259 Tjenestegresesnitt. Jeg er involvert i Nikita-prosjektet og takket
260 være min interesse for tjenestegrensesnittsprosjektet har jeg lest en
261 god del Noark
5-relaterte dokumenter, og til min overraskelse oppdaget
262 at standard epost ikke er på listen over godkjente formater som kan
263 arkiveres. Høringen med frist søndag er en glimrende mulighet til å
264 forsøke å gjøre noe med det. Jeg holder på med
265 <a href=
"https://github.com/petterreinholdtsen/noark5-tester/blob/master/docs/hoering-arkivforskrift.tex">egen
266 høringsuttalelse
</a>, og lurer på om andre er interessert i å støtte
267 forslaget om å tillate arkivering av epost som epost i arkivet.
</p>
269 <p>Er du igang med å skrive egen høringsuttalelse allerede? I så fall
270 kan du jo vurdere å ta med en formulering om epost-lagring. Jeg tror
271 ikke det trengs så mye. Her et kort forslag til tekst:
</p>
275 <p>Viser til høring sendt ut
2017-
02-
17 (Riksarkivarens referanse
276 2016/
9840 HELHJO), og tillater oss å sende inn noen innspill om
277 revisjon av Forskrift om utfyllende tekniske og arkivfaglige
278 bestemmelser om behandling av offentlige arkiver (Riksarkivarens
281 <p>Svært mye av vår kommuikasjon foregår i dag på e-post. Vi
282 foreslår derfor at Internett-e-post, slik det er beskrevet i IETF
284 <a href=
"https://tools.ietf.org/html/rfc5322">https://tools.ietf.org/html/rfc5322
</a>. bør
285 inn som godkjent dokumentformat. Vi foreslår at forskriftens
286 oversikt over godkjente dokumentformater ved innlevering i §
5-
16
287 endres til å ta med Internett-e-post.
</p>
291 <p>Som del av arbeidet med tjenestegrensesnitt har vi testet hvordan
292 epost kan lagres i en Noark
5-struktur, og holder på å skrive et
293 forslag om hvordan dette kan gjøres som vil bli sendt over til
294 arkivverket så snart det er ferdig. De som er interesserte kan
295 <a href=
"https://github.com/petterreinholdtsen/noark5-tester/blob/master/docs/epostlagring.md">følge
296 fremdriften på web
</a>.
</p>
298 <p>Oppdatering
2017-
04-
28: I dag ble høringuttalelsen jeg skrev
299 <a href=
"https://www.nuug.no/news/NUUGs_h_ringuttalelse_til_Riksarkivarens_forskrift.shtml">sendt
300 inn av foreningen NUUG
</a>.
</p>
305 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/norsk">norsk
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/standard">standard
</a>.
310 <div class=
"padding"></div>
313 <div class=
"title"><a href=
"http://people.skolelinux.org/pere/blog/Offentlig_elektronisk_postjournal_blokkerer_tilgang_for_utvalgte_webklienter.html">Offentlig elektronisk postjournal blokkerer tilgang for utvalgte webklienter
</a></div>
314 <div class=
"date">20th April
2017</div>
315 <div class=
"body"><p>Jeg oppdaget i dag at
<a href=
"https://www.oep.no/">nettstedet som
316 publiserer offentlige postjournaler fra statlige etater
</a>, OEP, har
317 begynt å blokkerer enkelte typer webklienter fra å få tilgang. Vet
318 ikke hvor mange det gjelder, men det gjelder i hvert fall libwww-perl
319 og curl. For å teste selv, kjør følgende:
</p>
322 % curl -v -s https://www.oep.no/pub/report.xhtml?reportId=
3 2>&
1 |grep '< HTTP'
323 < HTTP/
1.1 404 Not Found
324 % curl -v -s --header 'User-Agent:Opera/
12.0' https://www.oep.no/pub/report.xhtml?reportId=
3 2>&
1 |grep '< HTTP'
329 <p>Her kan en se at tjenesten gir «
404 Not Found» for curl i
330 standardoppsettet, mens den gir «
200 OK» hvis curl hevder å være Opera
331 versjon
12.0. Offentlig elektronisk postjournal startet blokkeringen
334 <p>Blokkeringen vil gjøre det litt vanskeligere å maskinelt hente
335 informasjon fra oep.no. Kan blokkeringen være gjort for å hindre
336 automatisert innsamling av informasjon fra OEP, slik Pressens
337 Offentlighetsutvalg gjorde for å dokumentere hvordan departementene
339 <a href=
"http://presse.no/dette-mener-np/undergraver-offentlighetsloven/">rapporten
340 «Slik hindrer departementer innsyn» som ble publiserte i januar
341 2017</a>. Det virker usannsynlig, da det jo er trivielt å bytte
342 User-Agent til noe nytt.
</p>
344 <p>Finnes det juridisk grunnlag for det offentlige å diskriminere
345 webklienter slik det gjøres her? Der tilgang gis eller ikke alt etter
346 hva klienten sier at den heter? Da OEP eies av DIFI og driftes av
347 Basefarm, finnes det kanskje noen dokumenter sendt mellom disse to
348 aktørene man kan be om innsyn i for å forstå hva som har skjedd. Men
349 <a href=
"https://www.oep.no/search/result.html?period=dateRange&fromDate=01.01.2016&toDate=01.04.2017&dateType=documentDate&caseDescription=&descType=both&caseNumber=&documentNumber=&sender=basefarm&senderType=both&documentType=all&legalAuthority=&archiveCode=&list2=196&searchType=advanced&Search=Search+in+records">postjournalen
350 til DIFI viser kun to dokumenter
</a> det siste året mellom DIFI og
352 <a href=
"https://www.mimesbronn.no/request/blokkering_av_tilgang_til_oep_fo">Mimes brønn neste
</a>,
358 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/norsk">norsk
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn
</a>.
363 <div class=
"padding"></div>
366 <div class=
"title"><a href=
"http://people.skolelinux.org/pere/blog/Free_software_archive_system_Nikita_now_able_to_store_documents.html">Free software archive system Nikita now able to store documents
</a></div>
367 <div class=
"date">19th March
2017</div>
368 <div class=
"body"><p>The
<a href=
"https://github.com/hiOA-ABI/nikita-noark5-core">Nikita
369 Noark
5 core project
</a> is implementing the Norwegian standard for
370 keeping an electronic archive of government documents.
371 <a href=
"http://www.arkivverket.no/arkivverket/Offentlig-forvaltning/Noark/Noark-5/English-version">The
372 Noark
5 standard
</a> document the requirement for data systems used by
373 the archives in the Norwegian government, and the Noark
5 web interface
374 specification document a REST web service for storing, searching and
375 retrieving documents and metadata in such archive. I've been involved
376 in the project since a few weeks before Christmas, when the Norwegian
378 <a href=
"https://www.nuug.no/news/NOARK5_kjerne_som_fri_programvare_f_r_epostliste_hos_NUUG.shtml">announced
379 it supported the project
</a>. I believe this is an important project,
380 and hope it can make it possible for the government archives in the
381 future to use free software to keep the archives we citizens depend
382 on. But as I do not hold such archive myself, personally my first use
383 case is to store and analyse public mail journal metadata published
384 from the government. I find it useful to have a clear use case in
385 mind when developing, to make sure the system scratches one of my
388 <p>If you would like to help make sure there is a free software
389 alternatives for the archives, please join our IRC channel
390 (
<a href=
"irc://irc.freenode.net/%23nikita"">#nikita on
391 irc.freenode.net</a>) and
392 <a href="https://lists.nuug.no/mailman/listinfo/nikita-noark
">the
393 project mailing list</a>.</p>
395 <p>When I got involved, the web service could store metadata about
396 documents. But a few weeks ago, a new milestone was reached when it
397 became possible to store full text documents too. Yesterday, I
398 completed an implementation of a command line tool
399 <tt>archive-pdf</tt> to upload a PDF file to the archive using this
400 API. The tool is very simple at the moment, and find existing
401 <a href="https://en.wikipedia.org/wiki/Fonds
">fonds</a>, series and
402 files while asking the user to select which one to use if more than
403 one exist. Once a file is identified, the PDF is associated with the
404 file and uploaded, using the title extracted from the PDF itself. The
405 process is fairly similar to visiting the archive, opening a cabinet,
406 locating a file and storing a piece of paper in the archive. Here is
407 a test run directly after populating the database with test data using
411 ~/src//noark5-tester$ ./archive-pdf mangelmelding/mangler.pdf
412 using arkiv: Title of the test fonds created 2017-03-18T23:49:32.103446
413 using arkivdel: Title of the test series created 2017-03-18T23:49:32.103446
415 0 - Title of the test case file created 2017-03-18T23:49:32.103446
416 1 - Title of the test file created 2017-03-18T23:49:32.103446
417 Select which mappe you want (or search term): 0
418 Uploading mangelmelding/mangler.pdf
419 PDF title: Mangler i spesifikasjonsdokumentet for NOARK 5 Tjenestegrensesnitt
420 File 2017/1: Title of the test case file created 2017-03-18T23:49:32.103446
421 ~/src//noark5-tester$
422 </pre></blockquote></p>
424 <p>You can see here how the fonds (arkiv) and serie (arkivdel) only had
425 one option, while the user need to choose which file (mappe) to use
426 among the two created by the API tester. The <tt>archive-pdf</tt>
427 tool can be found in the git repository for the API tester.</p>
429 <p>In the project, I have been mostly working on
430 <a href="https://github.com/petterreinholdtsen/noark5-tester
">the API
431 tester</a> so far, while getting to know the code base. The API
433 <a href="https://en.wikipedia.org/wiki/HATEOAS
">the HATEOAS links</a>
434 to traverse the entire exposed service API and verify that the exposed
435 operations and objects match the specification, as well as trying to
436 create objects holding metadata and uploading a simple XML file to
437 store. The tester has proved very useful for finding flaws in our
438 implementation, as well as flaws in the reference site and the
441 <p>The test document I uploaded is a summary of all the specification
442 defects we have collected so far while implementing the web service.
443 There are several unclear and conflicting parts of the specification,
445 <a href="https://github.com/petterreinholdtsen/noark5-tester/tree/master/mangelmelding
">started
446 writing down</a> the questions we get from implementing it. We use a
447 format inspired by how <a href="http://www.opengroup.org/austin/
">The
448 Austin Group</a> collect defect reports for the POSIX standard with
449 <a href="http://www.opengroup.org/austin/mantis.html
">their
450 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> :).
452 <p>The Nikita project is implemented using Java and Spring, and is
453 fairly easy to get up and running using Docker containers for those
454 that want to test the current code base. The API tester is
455 implemented in Python.</p>
460 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english
">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug
">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn
">offentlig innsyn</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard
">standard</a>.
465 <div class="padding
"></div>
468 <div class="title
"><a href="http://people.skolelinux.org/pere/blog/Detecting_NFS_hangs_on_Linux_without_hanging_yourself___.html
">Detecting NFS hangs on Linux without hanging yourself...</a></div>
469 <div class="date
"> 9th March 2017</div>
470 <div class="body
"><p>Over the years, administrating thousand of NFS mounting linux
471 computers at the time, I often needed a way to detect if the machine
472 was experiencing NFS hang. If you try to use <tt>df</tt> or look at a
473 file or directory affected by the hang, the process (and possibly the
474 shell) will hang too. So you want to be able to detect this without
475 risking the detection process getting stuck too. It has not been
476 obvious how to do this. When the hang has lasted a while, it is
477 possible to find messages like these in dmesg:</p>
480 nfs: server nfsserver not responding, still trying
481 <br>nfs: server nfsserver OK
484 <p>It is hard to know if the hang is still going on, and it is hard to
485 be sure looking in dmesg is going to work. If there are lots of other
486 messages in dmesg the lines might have rotated out of site before they
489 <p>While reading through the nfs client implementation in linux kernel
490 code, I came across some statistics that seem to give a way to detect
491 it. The om_timeouts sunrpc value in the kernel will increase every
492 time the above log entry is inserted into dmesg. And after digging a
493 bit further, I discovered that this value show up in
494 /proc/self/mountstats on Linux.</p>
496 <p>The mountstats content seem to be shared between files using the
497 same file system context, so it is enough to check one of the
498 mountstats files to get the state of the mount point for the machine.
499 I assume this will not show lazy umounted NFS points, nor NFS mount
500 points in a different process context (ie with a different filesystem
501 view), but that does not worry me.</p>
503 <p>The content for a NFS mount point look similar to this:</p>
507 device /dev/mapper/Debian-var mounted on /var with fstype ext3
508 device nfsserver:/mnt/nfsserver/home0 mounted on /mnt/nfsserver/home0 with fstype nfs statvers=1.1
509 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
511 caps: caps=0x3fe7,wtmult=4096,dtsize=8192,bsize=0,namlen=255
512 sec: flavor=1,pseudoflavor=1
513 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
514 bytes: 166253035039 219519120027 0 0 40783504807 185466229638 11677877 45561809
515 RPC iostats version: 1.0 p/v: 100003/3 (nfs)
516 xprt: tcp 925 1 6810 0 0 111505412 111480497 109 2672418560317 0 248 53869103 22481820
518 NULL: 0 0 0 0 0 0 0 0
519 GETATTR: 61063106 61063108 0 9621383060 6839064400 453650 77291321 78926132
520 SETATTR: 463469 463470 0 92005440 66739536 63787 603235 687943
521 LOOKUP: 17021657 17021657 0 3354097764 4013442928 57216 35125459 35566511
522 ACCESS: 14281703 14290009 5 2318400592 1713803640 1709282 4865144 7130140
523 READLINK: 125 125 0 20472 18620 0 1112 1118
524 READ: 4214236 4214237 0 715608524 41328653212 89884 22622768 22806693
525 WRITE: 8479010 8494376 22 187695798568 1356087148 178264904 51506907 231671771
526 CREATE: 171708 171708 0 38084748 46702272 873 1041833 1050398
527 MKDIR: 3680 3680 0 773980 993920 26 23990 24245
528 SYMLINK: 903 903 0 233428 245488 6 5865 5917
529 MKNOD: 80 80 0 20148 21760 0 299 304
530 REMOVE: 429921 429921 0 79796004 61908192 3313 2710416 2741636
531 RMDIR: 3367 3367 0 645112 484848 22 5782 6002
532 RENAME: 466201 466201 0 130026184 121212260 7075 5935207 5961288
533 LINK: 289155 289155 0 72775556 67083960 2199 2565060 2585579
534 READDIR: 2933237 2933237 0 516506204 13973833412 10385 3190199 3297917
535 READDIRPLUS: 1652839 1652839 0 298640972 6895997744 84735 14307895 14448937
536 FSSTAT: 6144 6144 0 1010516 1032192 51 9654 10022
537 FSINFO: 2 2 0 232 328 0 1 1
538 PATHCONF: 1 1 0 116 140 0 0 0
539 COMMIT: 0 0 0 0 0 0 0 0
541 device binfmt_misc mounted on /proc/sys/fs/binfmt_misc with fstype binfmt_misc
543 </pre></blockquote></p>
545 <p>The key number to look at is the third number in the per-op list.
546 It is the number of NFS timeouts experiences per file system
547 operation. Here 22 write timeouts and 5 access timeouts. If these
548 numbers are increasing, I believe the machine is experiencing NFS
549 hang. Unfortunately the timeout value do not start to increase right
550 away. The NFS operations need to time out first, and this can take a
551 while. The exact timeout value depend on the setup. For example the
552 defaults for TCP and UDP mount points are quite different, and the
553 timeout value is affected by the soft, hard, timeo and retrans NFS
556 <p>The only way I have been able to get working on Debian and RedHat
557 Enterprise Linux for getting the timeout count is to peek in /proc/.
559 <ahref="http://docs.oracle.com/cd/E19253-
01/
816-
4555/netmonitor-
12/index.html
">Solaris
560 10 System Administration Guide: Network Services</a>, the 'nfsstat -c'
561 command can be used to get these timeout values. But this do not work
562 on Linux, as far as I can tell. I
563 <ahref="http://bugs.debian.org/
857043">asked Debian about this</a>,
564 but have not seen any replies yet.</p>
566 <p>Is there a better way to figure out if a Linux NFS client is
567 experiencing NFS hangs? Is there a way to detect which processes are
568 affected? Is there a way to get the NFS mount going quickly once the
569 network problem causing the NFS hang has been cleared? I would very
570 much welcome some clues, as we regularly run into NFS hangs.</p>
575 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian
">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english
">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sysadmin
">sysadmin</a>.
580 <div class="padding
"></div>
583 <div class="title
"><a href="http://people.skolelinux.org/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></div>
584 <div class="date
"> 8th March 2017</div>
585 <div class="body
"><p>So the new president in the United States of America claim to be
586 surprised to discover that he was wiretapped during the election
587 before he was elected president. He even claim this must be illegal.
588 Well, doh, if it is one thing the confirmations from Snowden
589 documented, it is that the entire population in USA is wiretapped, one
590 way or another. Of course the president candidates were wiretapped,
591 alongside the senators, judges and the rest of the people in USA.</p>
593 <p>Next, the Federal Bureau of Investigation ask the Department of
594 Justice to go public rejecting the claims that Donald Trump was
595 wiretapped illegally. I fail to see the relevance, given that I am
596 sure the surveillance industry in USA believe they have all the legal
597 backing they need to conduct mass surveillance on the entire
600 <p>There is even the director of the FBI stating that he never saw an
601 order requesting wiretapping of Donald Trump. That is not very
602 surprising, given how the FISA court work, with all its activity being
603 secret. Perhaps he only heard about it?</p>
605 <p>What I find most sad in this story is how Norwegian journalists
606 present it. In a news reports the other day in the radio from the
607 Norwegian National broadcasting Company (NRK), I heard the journalist
608 claim that 'the FBI denies any wiretapping', while the reality is that
609 'the FBI denies any illegal wiretapping'. There is a fundamental and
610 important difference, and it make me sad that the journalists are
611 unable to grasp it.</p>
613 <p><strong>Update 2017-03-13:</strong> Look like
614 <a href="https://theintercept.com/
2017/
03/
13/rand-paul-is-right-nsa-routinely-monitors-americans-communications-without-warrants/
">The
615 Intercept report that US Senator Rand Paul confirm what I state above</a>.</p>
620 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english
">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance
">surveillance</a>.
625 <div class="padding
"></div>
628 <div class="title
"><a href="http://people.skolelinux.org/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></div>
629 <div class="date
"> 3rd March 2017</div>
630 <div class="body
"><p>For almost a year now, we have been working on making a Norwegian
631 Bokmål edition of <a href="https://debian-handbook.info/
">The Debian
632 Administrator's Handbook</a>. Now, thanks to the tireless effort of
633 Ole-Erik, Ingrid and Andreas, the initial translation is complete, and
634 we are working on the proof reading to ensure consistent language and
635 use of correct computer science terms. The plan is to make the book
636 available on paper, as well as in electronic form. For that to
637 happen, the proof reading must be completed and all the figures need
638 to be translated. If you want to help out, get in touch.</p>
640 <p><a href="http://people.skolelinux.org/pere/debian-handbook/debian-handbook-nb-NO.pdf
">A
642 fresh PDF edition</a> in A4 format (the final book will have smaller
643 pages) of the book created every morning is available for
644 proofreading. If you find any errors, please
645 <a href="https://hosted.weblate.org/projects/debian-handbook/
">visit
646 Weblate and correct the error</a>. The
647 <a href="http://l.github.io/debian-handbook/stat/nb-NO/index.html
">state
648 of the translation including figures</a> is a useful source for those
649 provide Norwegian bokmål screen shots and figures.</p>
654 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian
">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian-handbook
">debian-handbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english
">english</a>.
659 <div class="padding
"></div>
662 <div class="title
"><a href="http://people.skolelinux.org/pere/blog/Unlimited_randomness_with_the_ChaosKey_.html
">Unlimited randomness with the ChaosKey?</a></div>
663 <div class="date
"> 1st March 2017</div>
664 <div class="body
"><p>A few days ago I ordered a small batch of
665 <a href="http://altusmetrum.org/ChaosKey/
">the ChaosKey</a>, a small
666 USB dongle for generating entropy created by Bdale Garbee and Keith
667 Packard. Yesterday it arrived, and I am very happy to report that it
668 work great! According to its designers, to get it to work out of the
669 box, you need the Linux kernel version 4.1 or later. I tested on a
670 Debian Stretch machine (kernel version 4.9), and there it worked just
671 fine, increasing the available entropy very quickly. I wrote a small
672 test oneliner to test. It first print the current entropy level,
673 drain /dev/random, and then print the entropy level for five seconds.
674 Here is the situation without the ChaosKey inserted:</p>
677 % cat /proc/sys/kernel/random/entropy_avail; \
678 dd bs=1M if=/dev/random of=/dev/null count=1; \
679 for n in $(seq 1 5); do \
680 cat /proc/sys/kernel/random/entropy_avail; \
686 28 byte kopiert, 0,000264565 s, 106 kB/s
695 <p>The entropy level increases by 3-4 every second. In such case any
696 application requiring random bits (like a HTTPS enabled web server)
697 will halt and wait for more entrpy. And here is the situation with
698 the ChaosKey inserted:</p>
701 % cat /proc/sys/kernel/random/entropy_avail; \
702 dd bs=1M if=/dev/random of=/dev/null count=1; \
703 for n in $(seq 1 5); do \
704 cat /proc/sys/kernel/random/entropy_avail; \
710 104 byte kopiert, 0,000487647 s, 213 kB/s
719 <p>Quite the difference. :) I bought a few more than I need, in case
720 someone want to buy one here in Norway. :)</p>
722 <p>Update: The dongle was presented at Debconf last year. You might
723 find <a href="https://debconf16.debconf.org/talks/
94/
">the talk
724 recording illuminating</a>. It explains exactly what the source of
725 randomness is, if you are unable to spot it from the schema drawing
726 available from the ChaosKey web site linked at the start of this blog
732 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian
">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english
">english</a>.
737 <div class="padding
"></div>
739 <p style="text-align: right;
"><a href="index.rss
"><img src="http://people.skolelinux.org/pere/blog/xml.gif
" alt="RSS feed
" width="36" height="14" /></a></p>
750 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2017/
01/
">January (4)</a></li>
752 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2017/
02/
">February (3)</a></li>
754 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2017/
03/
">March (5)</a></li>
756 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2017/
04/
">April (2)</a></li>
758 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2017/
06/
">June (3)</a></li>
765 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2016/
01/
">January (3)</a></li>
767 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2016/
02/
">February (2)</a></li>
769 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2016/
03/
">March (3)</a></li>
771 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2016/
04/
">April (8)</a></li>
773 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2016/
05/
">May (8)</a></li>
775 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2016/
06/
">June (2)</a></li>
777 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2016/
07/
">July (2)</a></li>
779 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2016/
08/
">August (5)</a></li>
781 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2016/
09/
">September (2)</a></li>
783 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2016/
10/
">October (3)</a></li>
785 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2016/
11/
">November (8)</a></li>
787 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2016/
12/
">December (5)</a></li>
794 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2015/
01/
">January (7)</a></li>
796 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2015/
02/
">February (6)</a></li>
798 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2015/
03/
">March (1)</a></li>
800 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2015/
04/
">April (4)</a></li>
802 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2015/
05/
">May (3)</a></li>
804 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2015/
06/
">June (4)</a></li>
806 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2015/
07/
">July (6)</a></li>
808 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2015/
08/
">August (2)</a></li>
810 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2015/
09/
">September (2)</a></li>
812 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2015/
10/
">October (9)</a></li>
814 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2015/
11/
">November (6)</a></li>
816 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2015/
12/
">December (3)</a></li>
823 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2014/
01/
">January (2)</a></li>
825 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2014/
02/
">February (3)</a></li>
827 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2014/
03/
">March (8)</a></li>
829 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2014/
04/
">April (7)</a></li>
831 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2014/
05/
">May (1)</a></li>
833 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2014/
06/
">June (2)</a></li>
835 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2014/
07/
">July (2)</a></li>
837 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2014/
08/
">August (2)</a></li>
839 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2014/
09/
">September (5)</a></li>
841 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2014/
10/
">October (6)</a></li>
843 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2014/
11/
">November (3)</a></li>
845 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2014/
12/
">December (5)</a></li>
852 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2013/
01/
">January (11)</a></li>
854 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2013/
02/
">February (9)</a></li>
856 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2013/
03/
">March (9)</a></li>
858 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2013/
04/
">April (6)</a></li>
860 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2013/
05/
">May (9)</a></li>
862 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2013/
06/
">June (10)</a></li>
864 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2013/
07/
">July (7)</a></li>
866 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2013/
08/
">August (3)</a></li>
868 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2013/
09/
">September (5)</a></li>
870 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2013/
10/
">October (7)</a></li>
872 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2013/
11/
">November (9)</a></li>
874 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2013/
12/
">December (3)</a></li>
881 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2012/
01/
">January (7)</a></li>
883 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2012/
02/
">February (10)</a></li>
885 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2012/
03/
">March (17)</a></li>
887 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2012/
04/
">April (12)</a></li>
889 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2012/
05/
">May (12)</a></li>
891 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2012/
06/
">June (20)</a></li>
893 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2012/
07/
">July (17)</a></li>
895 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2012/
08/
">August (6)</a></li>
897 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2012/
09/
">September (9)</a></li>
899 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2012/
10/
">October (17)</a></li>
901 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2012/
11/
">November (10)</a></li>
903 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2012/
12/
">December (7)</a></li>
910 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2011/
01/
">January (16)</a></li>
912 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2011/
02/
">February (6)</a></li>
914 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2011/
03/
">March (6)</a></li>
916 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2011/
04/
">April (7)</a></li>
918 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2011/
05/
">May (3)</a></li>
920 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2011/
06/
">June (2)</a></li>
922 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2011/
07/
">July (7)</a></li>
924 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2011/
08/
">August (6)</a></li>
926 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2011/
09/
">September (4)</a></li>
928 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2011/
10/
">October (2)</a></li>
930 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2011/
11/
">November (3)</a></li>
932 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2011/
12/
">December (1)</a></li>
939 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2010/
01/
">January (2)</a></li>
941 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2010/
02/
">February (1)</a></li>
943 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2010/
03/
">March (3)</a></li>
945 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2010/
04/
">April (3)</a></li>
947 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2010/
05/
">May (9)</a></li>
949 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2010/
06/
">June (14)</a></li>
951 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2010/
07/
">July (12)</a></li>
953 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2010/
08/
">August (13)</a></li>
955 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2010/
09/
">September (7)</a></li>
957 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2010/
10/
">October (9)</a></li>
959 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2010/
11/
">November (13)</a></li>
961 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2010/
12/
">December (12)</a></li>
968 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2009/
01/
">January (8)</a></li>
970 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2009/
02/
">February (8)</a></li>
972 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2009/
03/
">March (12)</a></li>
974 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2009/
04/
">April (10)</a></li>
976 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2009/
05/
">May (9)</a></li>
978 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2009/
06/
">June (3)</a></li>
980 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2009/
07/
">July (4)</a></li>
982 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2009/
08/
">August (3)</a></li>
984 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2009/
09/
">September (1)</a></li>
986 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2009/
10/
">October (2)</a></li>
988 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2009/
11/
">November (3)</a></li>
990 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2009/
12/
">December (3)</a></li>
997 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2008/
11/
">November (5)</a></li>
999 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2008/
12/
">December (7)</a></li>
1010 <li><a href="http://people.skolelinux.org/pere/blog/tags/
3d-printer
">3d-printer (13)</a></li>
1012 <li><a href="http://people.skolelinux.org/pere/blog/tags/amiga
">amiga (1)</a></li>
1014 <li><a href="http://people.skolelinux.org/pere/blog/tags/aros
">aros (1)</a></li>
1016 <li><a href="http://people.skolelinux.org/pere/blog/tags/bankid
">bankid (4)</a></li>
1018 <li><a href="http://people.skolelinux.org/pere/blog/tags/bitcoin
">bitcoin (9)</a></li>
1020 <li><a href="http://people.skolelinux.org/pere/blog/tags/bootsystem
">bootsystem (16)</a></li>
1022 <li><a href="http://people.skolelinux.org/pere/blog/tags/bsa
">bsa (2)</a></li>
1024 <li><a href="http://people.skolelinux.org/pere/blog/tags/chrpath
">chrpath (2)</a></li>
1026 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian
">debian (149)</a></li>
1028 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu
">debian edu (158)</a></li>
1030 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian-handbook
">debian-handbook (3)</a></li>
1032 <li><a href="http://people.skolelinux.org/pere/blog/tags/digistan
">digistan (10)</a></li>
1034 <li><a href="http://people.skolelinux.org/pere/blog/tags/dld
">dld (16)</a></li>
1036 <li><a href="http://people.skolelinux.org/pere/blog/tags/docbook
">docbook (23)</a></li>
1038 <li><a href="http://people.skolelinux.org/pere/blog/tags/drivstoffpriser
">drivstoffpriser (4)</a></li>
1040 <li><a href="http://people.skolelinux.org/pere/blog/tags/english
">english (348)</a></li>
1042 <li><a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami
">fiksgatami (23)</a></li>
1044 <li><a href="http://people.skolelinux.org/pere/blog/tags/fildeling
">fildeling (12)</a></li>
1046 <li><a href="http://people.skolelinux.org/pere/blog/tags/freeculture
">freeculture (29)</a></li>
1048 <li><a href="http://people.skolelinux.org/pere/blog/tags/freedombox
">freedombox (9)</a></li>
1050 <li><a href="http://people.skolelinux.org/pere/blog/tags/frikanalen
">frikanalen (18)</a></li>
1052 <li><a href="http://people.skolelinux.org/pere/blog/tags/h264
">h264 (20)</a></li>
1054 <li><a href="http://people.skolelinux.org/pere/blog/tags/intervju
">intervju (42)</a></li>
1056 <li><a href="http://people.skolelinux.org/pere/blog/tags/isenkram
">isenkram (15)</a></li>
1058 <li><a href="http://people.skolelinux.org/pere/blog/tags/kart
">kart (20)</a></li>
1060 <li><a href="http://people.skolelinux.org/pere/blog/tags/ldap
">ldap (9)</a></li>
1062 <li><a href="http://people.skolelinux.org/pere/blog/tags/lenker
">lenker (8)</a></li>
1064 <li><a href="http://people.skolelinux.org/pere/blog/tags/lsdvd
">lsdvd (2)</a></li>
1066 <li><a href="http://people.skolelinux.org/pere/blog/tags/ltsp
">ltsp (1)</a></li>
1068 <li><a href="http://people.skolelinux.org/pere/blog/tags/mesh network
">mesh network (8)</a></li>
1070 <li><a href="http://people.skolelinux.org/pere/blog/tags/multimedia
">multimedia (39)</a></li>
1072 <li><a href="http://people.skolelinux.org/pere/blog/tags/nice free software
">nice free software (9)</a></li>
1074 <li><a href="http://people.skolelinux.org/pere/blog/tags/norsk
">norsk (290)</a></li>
1076 <li><a href="http://people.skolelinux.org/pere/blog/tags/nuug
">nuug (189)</a></li>
1078 <li><a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn
">offentlig innsyn (33)</a></li>
1080 <li><a href="http://people.skolelinux.org/pere/blog/tags/open311
">open311 (2)</a></li>
1082 <li><a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett
">opphavsrett (64)</a></li>
1084 <li><a href="http://people.skolelinux.org/pere/blog/tags/personvern
">personvern (99)</a></li>
1086 <li><a href="http://people.skolelinux.org/pere/blog/tags/raid
">raid (1)</a></li>
1088 <li><a href="http://people.skolelinux.org/pere/blog/tags/reactos
">reactos (1)</a></li>
1090 <li><a href="http://people.skolelinux.org/pere/blog/tags/reprap
">reprap (11)</a></li>
1092 <li><a href="http://people.skolelinux.org/pere/blog/tags/rfid
">rfid (3)</a></li>
1094 <li><a href="http://people.skolelinux.org/pere/blog/tags/robot
">robot (10)</a></li>
1096 <li><a href="http://people.skolelinux.org/pere/blog/tags/rss
">rss (1)</a></li>
1098 <li><a href="http://people.skolelinux.org/pere/blog/tags/ruter
">ruter (5)</a></li>
1100 <li><a href="http://people.skolelinux.org/pere/blog/tags/scraperwiki
">scraperwiki (2)</a></li>
1102 <li><a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet
">sikkerhet (52)</a></li>
1104 <li><a href="http://people.skolelinux.org/pere/blog/tags/sitesummary
">sitesummary (4)</a></li>
1106 <li><a href="http://people.skolelinux.org/pere/blog/tags/skepsis
">skepsis (5)</a></li>
1108 <li><a href="http://people.skolelinux.org/pere/blog/tags/standard
">standard (55)</a></li>
1110 <li><a href="http://people.skolelinux.org/pere/blog/tags/stavekontroll
">stavekontroll (6)</a></li>
1112 <li><a href="http://people.skolelinux.org/pere/blog/tags/stortinget
">stortinget (11)</a></li>
1114 <li><a href="http://people.skolelinux.org/pere/blog/tags/surveillance
">surveillance (48)</a></li>
1116 <li><a href="http://people.skolelinux.org/pere/blog/tags/sysadmin
">sysadmin (3)</a></li>
1118 <li><a href="http://people.skolelinux.org/pere/blog/tags/usenix
">usenix (2)</a></li>
1120 <li><a href="http://people.skolelinux.org/pere/blog/tags/valg
">valg (8)</a></li>
1122 <li><a href="http://people.skolelinux.org/pere/blog/tags/video
">video (59)</a></li>
1124 <li><a href="http://people.skolelinux.org/pere/blog/tags/vitenskap
">vitenskap (4)</a></li>
1126 <li><a href="http://people.skolelinux.org/pere/blog/tags/web
">web (40)</a></li>
1132 <p style="text-align: right
">
1133 Created by <a href="http://steve.org.uk/Software/chronicle
">Chronicle v4.6</a>