]> pere.pagekite.me Git - homepage.git/blob - blog/index.html
New blog post on sales numbers.
[homepage.git] / blog / index.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
4 <head>
5 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
6 <title>Petter Reinholdtsen</title>
7 <link rel="stylesheet" type="text/css" media="screen" href="http://people.skolelinux.org/pere/blog/style.css" />
8 <link rel="stylesheet" type="text/css" media="screen" href="http://people.skolelinux.org/pere/blog/vim.css" />
9 <link rel="alternate" title="RSS Feed" href="http://people.skolelinux.org/pere/blog/index.rss" type="application/rss+xml" />
10 </head>
11 <body>
12 <div class="title">
13 <h1>
14 <a href="http://people.skolelinux.org/pere/blog/">Petter Reinholdtsen</a>
15
16 </h1>
17
18 </div>
19
20
21
22 <div class="entry">
23 <div class="title"><a href="http://people.skolelinux.org/pere/blog/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):
31
32 <ul>
33
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
38 regualr basis.</li>
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)
57 style.</li>
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>
63 <li>...</li>
64
65 </ul>
66
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
70 mailing list).</p>
71 </div>
72 <div class="tags">
73
74
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>.
76
77
78 </div>
79 </div>
80 <div class="padding"></div>
81
82 <div class="entry">
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>
92
93 <p>I've been wondering a bit lately how trusted timestamps could be
94 stored in Noark 5.
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>
100
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
104 stamping?</p>
105
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
109 attributes:</p>
110
111 <ul>
112
113 <li>format -> "RFC3161"
114 <li>mimeType -> "application/timestamp-reply"
115 <li>formatDetaljer -> "&lt;source URL for timestamp service&gt;"
116 <li>filenavn -> "&lt;sjekksum&gt;.tsr"
117
118 </ul>
119
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
129 itself.</p>
130
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
135 compromised.</p>
136
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
140 above).</p>
141
142 <p><blockquote><pre>
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>
147
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>
150
151 <p><blockquote><pre>
152 wget -O ca-cert.txt \
153 https://pki.pca.dfn.de/global-services-ca/pub/cacert/chain.txt
154 </pre></blockquote></p>
155
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>
161
162 <p>The verification itself is a simple openssl command:</p>
163
164 <p><blockquote><pre>
165 openssl ts -verify -data $inputfile -in $sha256.tsr \
166 -CAfile ca-cert.txt -text
167 </pre></blockquote></p>
168
169 <p>Is there any reason this approach would not work? Is it somehow against
170 the Noark 5 specification?</p>
171 </div>
172 <div class="tags">
173
174
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>.
176
177
178 </div>
179 </div>
180 <div class="padding"></div>
181
182 <div class="entry">
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>
192
193 <p>Her er bokmålsoppgaven fra eksamenen:</p>
194
195 <blockquote>
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>
199
200 <p>Vedlegge er eksempler på tekster som kan gi relevante perspektiver
201 på temaet:</p>
202 <ol>
203 <li>Flykningeregnskapet 2016, UNHCR og IDMC
204 <li>«Grenseløst Europa for fall» A-Magasinet, 26. november 2015
205 </ol>
206
207 </blockquote>
208
209 <p>Dette oversetter Apertium slik:</p>
210
211 <blockquote>
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>
215
216 <p>Vedleggja er døme på tekster som kan gje relevante perspektiv på
217 temaet:</p>
218
219 <ol>
220 <li>*Flykningeregnskapet 2016, *UNHCR og *IDMC</li>
221 <li>«*Grenseløst Europa for fall» A-Magasinet, 26. november 2015</li>
222 </ol>
223
224 </blockquote>
225
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>
233 </div>
234 <div class="tags">
235
236
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>.
238
239
240 </div>
241 </div>
242 <div class="padding"></div>
243
244 <div class="entry">
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>
253
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>
268
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>
272
273 <p><blockquote>
274
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
279 forskrift).</p>
280
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
283 RFC 5322,
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>
288
289 </blockquote></p>
290
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>
297
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>
301 </div>
302 <div class="tags">
303
304
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>.
306
307
308 </div>
309 </div>
310 <div class="padding"></div>
311
312 <div class="entry">
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>
320
321 <blockquote><pre>
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'
325 < HTTP/1.1 200 OK
326 %
327 </pre></blockquote>
328
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
332 2017-03-02.</p>
333
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
338 hindrer innsyn i
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>
343
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
351 Basefarm.
352 <a href="https://www.mimesbronn.no/request/blokkering_av_tilgang_til_oep_fo">Mimes brønn neste</a>,
353 tenker jeg.</p>
354 </div>
355 <div class="tags">
356
357
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>.
359
360
361 </div>
362 </div>
363 <div class="padding"></div>
364
365 <div class="entry">
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
377 Unix User Group
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
386 itches.</p>
387
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>
394
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
408 our API tester:</p>
409
410 <p><blockquote><pre>
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
414
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>
423
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>
428
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
432 tester currently use
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
439 specification.</p>
440
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,
444 and we have
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> :).
451
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>
456 </div>
457 <div class="tags">
458
459
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>.
461
462
463 </div>
464 </div>
465 <div class="padding"></div>
466
467 <div class="entry">
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>
478
479 <p><blockquote>
480 nfs: server nfsserver not responding, still trying
481 <br>nfs: server nfsserver OK
482 </blockquote></p>
483
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
487 are noticed.</p>
488
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>
495
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>
502
503 <p>The content for a NFS mount point look similar to this:</p>
504
505 <p><blockquote><pre>
506 [...]
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
510 age: 7863311
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
517 per-op statistics
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
540
541 device binfmt_misc mounted on /proc/sys/fs/binfmt_misc with fstype binfmt_misc
542 [...]
543 </pre></blockquote></p>
544
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
554 mount options.</p>
555
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/.
558 But according to
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>
565
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>
571 </div>
572 <div class="tags">
573
574
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>.
576
577
578 </div>
579 </div>
580 <div class="padding"></div>
581
582 <div class="entry">
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>
592
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
598 world.</p>
599
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>
604
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>
612
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>
616 </div>
617 <div class="tags">
618
619
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>.
621
622
623 </div>
624 </div>
625 <div class="padding"></div>
626
627 <div class="entry">
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>
639
640 <p><a href="http://people.skolelinux.org/pere/debian-handbook/debian-handbook-nb-NO.pdf">A
641
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>
650 </div>
651 <div class="tags">
652
653
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>.
655
656
657 </div>
658 </div>
659 <div class="padding"></div>
660
661 <div class="entry">
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>
675
676 <blockquote><pre>
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; \
681 sleep 1; \
682 done
683 300
684 0+1 oppføringer inn
685 0+1 oppføringer ut
686 28 byte kopiert, 0,000264565 s, 106 kB/s
687 4
688 8
689 12
690 17
691 21
692 %
693 </pre></blockquote>
694
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>
699
700 <blockquote><pre>
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; \
705 sleep 1; \
706 done
707 1079
708 0+1 oppføringer inn
709 0+1 oppføringer ut
710 104 byte kopiert, 0,000487647 s, 213 kB/s
711 433
712 1028
713 1031
714 1035
715 1038
716 %
717 </pre></blockquote>
718
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>
721
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
727 post.</p>
728 </div>
729 <div class="tags">
730
731
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>.
733
734
735 </div>
736 </div>
737 <div class="padding"></div>
738
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>
740 <div id="sidebar">
741
742
743
744 <h2>Archive</h2>
745 <ul>
746
747 <li>2017
748 <ul>
749
750 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/01/">January (4)</a></li>
751
752 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/02/">February (3)</a></li>
753
754 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/03/">March (5)</a></li>
755
756 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/04/">April (2)</a></li>
757
758 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/06/">June (3)</a></li>
759
760 </ul></li>
761
762 <li>2016
763 <ul>
764
765 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/01/">January (3)</a></li>
766
767 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/02/">February (2)</a></li>
768
769 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/03/">March (3)</a></li>
770
771 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/04/">April (8)</a></li>
772
773 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/05/">May (8)</a></li>
774
775 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/06/">June (2)</a></li>
776
777 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/07/">July (2)</a></li>
778
779 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/08/">August (5)</a></li>
780
781 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/09/">September (2)</a></li>
782
783 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/10/">October (3)</a></li>
784
785 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/11/">November (8)</a></li>
786
787 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/12/">December (5)</a></li>
788
789 </ul></li>
790
791 <li>2015
792 <ul>
793
794 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/01/">January (7)</a></li>
795
796 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/02/">February (6)</a></li>
797
798 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/03/">March (1)</a></li>
799
800 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/04/">April (4)</a></li>
801
802 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/05/">May (3)</a></li>
803
804 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/06/">June (4)</a></li>
805
806 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/07/">July (6)</a></li>
807
808 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/08/">August (2)</a></li>
809
810 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/09/">September (2)</a></li>
811
812 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/10/">October (9)</a></li>
813
814 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/11/">November (6)</a></li>
815
816 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/12/">December (3)</a></li>
817
818 </ul></li>
819
820 <li>2014
821 <ul>
822
823 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/01/">January (2)</a></li>
824
825 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/02/">February (3)</a></li>
826
827 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/03/">March (8)</a></li>
828
829 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/04/">April (7)</a></li>
830
831 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/05/">May (1)</a></li>
832
833 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/06/">June (2)</a></li>
834
835 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/07/">July (2)</a></li>
836
837 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/08/">August (2)</a></li>
838
839 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/09/">September (5)</a></li>
840
841 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/10/">October (6)</a></li>
842
843 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/11/">November (3)</a></li>
844
845 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/12/">December (5)</a></li>
846
847 </ul></li>
848
849 <li>2013
850 <ul>
851
852 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/01/">January (11)</a></li>
853
854 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/02/">February (9)</a></li>
855
856 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/03/">March (9)</a></li>
857
858 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/04/">April (6)</a></li>
859
860 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/05/">May (9)</a></li>
861
862 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/06/">June (10)</a></li>
863
864 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/07/">July (7)</a></li>
865
866 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/08/">August (3)</a></li>
867
868 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/09/">September (5)</a></li>
869
870 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/10/">October (7)</a></li>
871
872 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/11/">November (9)</a></li>
873
874 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/12/">December (3)</a></li>
875
876 </ul></li>
877
878 <li>2012
879 <ul>
880
881 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/01/">January (7)</a></li>
882
883 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/02/">February (10)</a></li>
884
885 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/03/">March (17)</a></li>
886
887 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/04/">April (12)</a></li>
888
889 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/05/">May (12)</a></li>
890
891 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/06/">June (20)</a></li>
892
893 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/07/">July (17)</a></li>
894
895 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/08/">August (6)</a></li>
896
897 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/09/">September (9)</a></li>
898
899 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/10/">October (17)</a></li>
900
901 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/11/">November (10)</a></li>
902
903 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/12/">December (7)</a></li>
904
905 </ul></li>
906
907 <li>2011
908 <ul>
909
910 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/01/">January (16)</a></li>
911
912 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/02/">February (6)</a></li>
913
914 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/03/">March (6)</a></li>
915
916 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/04/">April (7)</a></li>
917
918 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/05/">May (3)</a></li>
919
920 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/06/">June (2)</a></li>
921
922 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/07/">July (7)</a></li>
923
924 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/08/">August (6)</a></li>
925
926 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/09/">September (4)</a></li>
927
928 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/10/">October (2)</a></li>
929
930 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/11/">November (3)</a></li>
931
932 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/12/">December (1)</a></li>
933
934 </ul></li>
935
936 <li>2010
937 <ul>
938
939 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/01/">January (2)</a></li>
940
941 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/02/">February (1)</a></li>
942
943 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/03/">March (3)</a></li>
944
945 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/04/">April (3)</a></li>
946
947 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/05/">May (9)</a></li>
948
949 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/06/">June (14)</a></li>
950
951 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/07/">July (12)</a></li>
952
953 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/08/">August (13)</a></li>
954
955 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/09/">September (7)</a></li>
956
957 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/10/">October (9)</a></li>
958
959 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/11/">November (13)</a></li>
960
961 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/12/">December (12)</a></li>
962
963 </ul></li>
964
965 <li>2009
966 <ul>
967
968 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/01/">January (8)</a></li>
969
970 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/02/">February (8)</a></li>
971
972 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/03/">March (12)</a></li>
973
974 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/04/">April (10)</a></li>
975
976 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/05/">May (9)</a></li>
977
978 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/06/">June (3)</a></li>
979
980 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/07/">July (4)</a></li>
981
982 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/08/">August (3)</a></li>
983
984 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/09/">September (1)</a></li>
985
986 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/10/">October (2)</a></li>
987
988 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/11/">November (3)</a></li>
989
990 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/12/">December (3)</a></li>
991
992 </ul></li>
993
994 <li>2008
995 <ul>
996
997 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/11/">November (5)</a></li>
998
999 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/12/">December (7)</a></li>
1000
1001 </ul></li>
1002
1003 </ul>
1004
1005
1006
1007 <h2>Tags</h2>
1008 <ul>
1009
1010 <li><a href="http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (13)</a></li>
1011
1012 <li><a href="http://people.skolelinux.org/pere/blog/tags/amiga">amiga (1)</a></li>
1013
1014 <li><a href="http://people.skolelinux.org/pere/blog/tags/aros">aros (1)</a></li>
1015
1016 <li><a href="http://people.skolelinux.org/pere/blog/tags/bankid">bankid (4)</a></li>
1017
1018 <li><a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (9)</a></li>
1019
1020 <li><a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (16)</a></li>
1021
1022 <li><a href="http://people.skolelinux.org/pere/blog/tags/bsa">bsa (2)</a></li>
1023
1024 <li><a href="http://people.skolelinux.org/pere/blog/tags/chrpath">chrpath (2)</a></li>
1025
1026 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian">debian (149)</a></li>
1027
1028 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (158)</a></li>
1029
1030 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian-handbook">debian-handbook (3)</a></li>
1031
1032 <li><a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan (10)</a></li>
1033
1034 <li><a href="http://people.skolelinux.org/pere/blog/tags/dld">dld (16)</a></li>
1035
1036 <li><a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook (23)</a></li>
1037
1038 <li><a href="http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
1039
1040 <li><a href="http://people.skolelinux.org/pere/blog/tags/english">english (348)</a></li>
1041
1042 <li><a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (23)</a></li>
1043
1044 <li><a href="http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (12)</a></li>
1045
1046 <li><a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (29)</a></li>
1047
1048 <li><a href="http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox (9)</a></li>
1049
1050 <li><a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (18)</a></li>
1051
1052 <li><a href="http://people.skolelinux.org/pere/blog/tags/h264">h264 (20)</a></li>
1053
1054 <li><a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju (42)</a></li>
1055
1056 <li><a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram (15)</a></li>
1057
1058 <li><a href="http://people.skolelinux.org/pere/blog/tags/kart">kart (20)</a></li>
1059
1060 <li><a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap (9)</a></li>
1061
1062 <li><a href="http://people.skolelinux.org/pere/blog/tags/lenker">lenker (8)</a></li>
1063
1064 <li><a href="http://people.skolelinux.org/pere/blog/tags/lsdvd">lsdvd (2)</a></li>
1065
1066 <li><a href="http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (1)</a></li>
1067
1068 <li><a href="http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network (8)</a></li>
1069
1070 <li><a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (39)</a></li>
1071
1072 <li><a href="http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software (9)</a></li>
1073
1074 <li><a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk (290)</a></li>
1075
1076 <li><a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug (189)</a></li>
1077
1078 <li><a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (33)</a></li>
1079
1080 <li><a href="http://people.skolelinux.org/pere/blog/tags/open311">open311 (2)</a></li>
1081
1082 <li><a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (64)</a></li>
1083
1084 <li><a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern (99)</a></li>
1085
1086 <li><a href="http://people.skolelinux.org/pere/blog/tags/raid">raid (1)</a></li>
1087
1088 <li><a href="http://people.skolelinux.org/pere/blog/tags/reactos">reactos (1)</a></li>
1089
1090 <li><a href="http://people.skolelinux.org/pere/blog/tags/reprap">reprap (11)</a></li>
1091
1092 <li><a href="http://people.skolelinux.org/pere/blog/tags/rfid">rfid (3)</a></li>
1093
1094 <li><a href="http://people.skolelinux.org/pere/blog/tags/robot">robot (10)</a></li>
1095
1096 <li><a href="http://people.skolelinux.org/pere/blog/tags/rss">rss (1)</a></li>
1097
1098 <li><a href="http://people.skolelinux.org/pere/blog/tags/ruter">ruter (5)</a></li>
1099
1100 <li><a href="http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (2)</a></li>
1101
1102 <li><a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (52)</a></li>
1103
1104 <li><a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (4)</a></li>
1105
1106 <li><a href="http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (5)</a></li>
1107
1108 <li><a href="http://people.skolelinux.org/pere/blog/tags/standard">standard (55)</a></li>
1109
1110 <li><a href="http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (6)</a></li>
1111
1112 <li><a href="http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (11)</a></li>
1113
1114 <li><a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (48)</a></li>
1115
1116 <li><a href="http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (3)</a></li>
1117
1118 <li><a href="http://people.skolelinux.org/pere/blog/tags/usenix">usenix (2)</a></li>
1119
1120 <li><a href="http://people.skolelinux.org/pere/blog/tags/valg">valg (8)</a></li>
1121
1122 <li><a href="http://people.skolelinux.org/pere/blog/tags/video">video (59)</a></li>
1123
1124 <li><a href="http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (4)</a></li>
1125
1126 <li><a href="http://people.skolelinux.org/pere/blog/tags/web">web (40)</a></li>
1127
1128 </ul>
1129
1130
1131 </div>
1132 <p style="text-align: right">
1133 Created by <a href="http://steve.org.uk/Software/chronicle">Chronicle v4.6</a>
1134 </p>
1135
1136 </body>
1137 </html>