]> pere.pagekite.me Git - homepage.git/blob - blog/tags/noark5/index.html
c69b533d126064ba4536da16c5fd20eb6cd23d91
[homepage.git] / blog / tags / noark5 / 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: Entries Tagged noark5</title>
7 <link rel="stylesheet" type="text/css" media="screen" href="http://www.hungry.com/~pere/blog/style.css" />
8 <link rel="stylesheet" type="text/css" media="screen" href="http://www.hungry.com/~pere/blog/vim.css" />
9 <link rel="alternate" title="RSS Feed" href="noark5.rss" type="application/rss+xml" />
10 </head>
11 <body>
12 <div class="title">
13 <h1>
14 <a href="http://www.hungry.com/~pere/blog/">Petter Reinholdtsen</a>
15
16 </h1>
17
18 </div>
19
20
21 <h3>Entries tagged "noark5".</h3>
22
23 <div class="entry">
24 <div class="title">
25 <a href="http://www.hungry.com/~pere/blog/Frokostseminar_om_Noark_5_i_Oslo_tirsdag_2024_03_12.html">Frokostseminar om Noark 5 i Oslo tirsdag 2024-03-12</a>
26 </div>
27 <div class="date">
28 27th February 2024
29 </div>
30 <div class="body">
31 <p>Nikita-prosjektet, der jeg er involvert, inviterer i samarbeid med
32 Oslo Byarkiv, forskningsgruppen METAINFO og foreningen NUUG, til et
33 frokostseminar om Noark 5 og Noark 5 Tjenestegrensesnitt tirsdag
34 2024-03-12. Seminaret finner sted ved Oslo byarkiv. Vi håper å få
35 til videostrømming via Internett av presentasjoner og paneldiskusjon.
36 Oppdatert program og lenker til påmeldingsskjema er
37 <a href="https://noark.codeberg.page/noark5-seminars/2023-03-12-noark-workshop.html">tilgjengelig
38 fra Nikita-prosjektet</a>. Arrangementet er gratis.
39
40 <p>Som vanlig, hvis du bruker Bitcoin og ønsker å vise din støtte til
41 det jeg driver med, setter jeg pris på om du sender Bitcoin-donasjoner
42 til min adresse
43 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>. Merk,
44 betaling med bitcoin er ikke anonymt. :)</p>
45
46 </div>
47 <div class="tags">
48
49
50 Tags: <a href="http://www.hungry.com/~pere/blog/tags/noark5">noark5</a>, <a href="http://www.hungry.com/~pere/blog/tags/norsk">norsk</a>, <a href="http://www.hungry.com/~pere/blog/tags/nuug">nuug</a>, <a href="http://www.hungry.com/~pere/blog/tags/offentlig innsyn">offentlig innsyn</a>, <a href="http://www.hungry.com/~pere/blog/tags/standard">standard</a>.
51
52
53 </div>
54 </div>
55 <div class="padding"></div>
56
57 <div class="entry">
58 <div class="title">
59 <a href="http://www.hungry.com/~pere/blog/_N_r__p___blir__p_____Et_reservoar_av_tegn_sett_fra_depotet__i_tidsskriftet_Aksess.html">«Når «på» blir «pÃ¥»: Et reservoar av tegn sett fra depotet» i tidsskriftet Aksess</a>
60 </div>
61 <div class="date">
62 15th November 2023
63 </div>
64 <div class="body">
65 <p>For noen uker siden skrev en kamerat og meg
66 <a href="https://www.aksess-tidsskrift.no/fordypning/175530">en
67 artikkel om tegnsett</a> i
68 <a href="https://www.aksess-tidsskrift.no/">arkivtidsskriftet
69 Aksess</a> både på web og i papirutgave nr. 3 2023. Her er det som
70 nettopp ble publisert.</p>
71
72 <blockquote>
73
74 <p><strong>Når «på» blir «pÃ¥»: Et reservoar av tegn sett fra
75 depotet</strong></p>
76
77 <p>av Thomas Sødring og Petter Reinholdtsen</p>
78
79 <p>De færreste av oss tenker over hva som skjer dypere i datamaskinen
80 mens vi sitter der og skriver noe på tastaturet. Når du trykker på
81 tasten «Å», så vises bokstaven Å. Men noen ganger blir det
82 feil. Hvorfor det – og hva er viktig å være klar over i
83 arkivsammenheng?</p>
84
85 <p>Dersom bokstaver tolkes forskjellig mellom systemer, blir det fort
86 rot, dette kalles mojibake blant kjennere, etter det japanske
87 uttrykket for tegnomforming. Det er en lang historie her som tidvis
88 har vært preget av rot. Noen husker kanskje tilbake til en tid der
89 bokstavene æ, ø og å ofte var ødelagt i e-poster – et klassisk
90 eksempel på tegnsettproblemstilling.</p>
91
92 <p id="tegnsett_access_nå_og_før"><strong>«Nå» og «før»</strong></p>
93
94 <p>Tid er et skjult problem for depot fordi vi danner dokumentasjon i
95 en kontekst som er preget av å være «nå». Vår forståelse av verden og
96 bruken av teknologi er utgangspunktet for denne konteksten. Tenk selv
97 hvordan verden har utviklet seg de siste 20 årene, hva samfunnet er
98 opptatt av, og hvordan vi bruker teknologi i hverdagen. Tid er et
99 skjult problem fordi når vi trekker dokumentasjon ut av systemer og
100 deponerer for langtidsbevaring, er konteksten til materialet «nå», men
101 verden går videre. Ettersom teknologien og måten vi bruker den på,
102 utvikler seg, blir «nå» til «før», og dokumentasjonen befinner seg
103 snart i en «før»-kontekst.</p>
104
105 <p>Dette med «før» og «nå» i forhold til dokumentasjonens kontekst er
106 noe vi er veldig lite bevisste på, men det er en problemstilling
107 depotarkivene eier og forvalter. En av disse utfordringene er hvorfor
108 «Ø» ikke nødvendigvis er det samme som «Ø», og hvorfor det i det hele
109 tatt gir mening å si noe sånt. Vi snakker her om noe som heter
110 tegnsett, som er en avtalt måte å representere bokstaver, tall og
111 andre symboler på slik at vi på en feilfri måte kan utveksle tekst
112 mellom datasystemer.</p>
113
114 <p>Tegnsettproblemstillingen er satt sammen av fire fasetter;
115 repertoar, representasjon, koding og uttegning.</p>
116
117 <p id="tegnsett_access_repertoarer"><strong>Repertoarer</strong></p>
118
119 <p>Repertoar er en samling med tegn og symboler som kan
120 representeres. Tenk norsk alfabet eller japanske piktogrammer, men
121 også matematiske og elektroniske symboler. Bokstaven «stor a» kan være
122 en oppføring i et slikt repertoar. For å kunne brukes i en datamaskin
123 trenger hver oppføring i et slikt repertoar en representasjon, hvilket
124 i datamaskinsammenheng betyr at det tilordnes et tall. Tallet kan
125 lagres på ulike vis i en eller flere kodingsformater. For eksempel kan
126 en skrive tallet ti som både 10, X og A, i henholdsvis
127 titallssystemet, romertallssystemet og sekstentallssystemet.</p>
128
129 <p>Hvis en skal kunne lese inn filer og vite hvilket tall og hvilken
130 representasjon og instans i et repertoar det er snakk om, så må en
131 vite hvordan tallet er kodet. Sist, men ikke minst, for å kunne bruke
132 symbolet til noe må det kunne være kjent hvordan det skal se ut eller
133 tegnes på ark. Det finnes utallige skrifttyper med norske bokstaver,
134 alle litt forskjellige, og skal en kunne tegne en stor A på skjermen,
135 så må datamaskinen vite hva den skal tegne. Skrifttyper inneholder
136 informasjon om hvordan ulike tall skal tegnes. De inneholder ikke
137 alltid alle symbolene som er brukt i en tekst, hvilket gjør at ikke
138 alle forståtte tegn vil kunne vises på skjerm eller ark.</p>
139
140 <p>Hver av disse fasettene må være avklart for å kunne ta vare på og vise
141 frem tekst med en datamaskin. Kombinasjon av repertoar, representasjon
142 og koding er det en kaller et tegnsett. Kombinasjonen av
143 representasjon og uttegning kalles en skrifttype. De fleste
144 skrifttyper har også informasjon om repertoar, men det finnes
145 skrifttyper som kun kobler mellom tallkode og uttegning, uten å
146 fortelle noe om hvordan tallkodene egentlig skal tolkes.</p>
147
148 <p id="tegnsett_access_fra_ascii_til_iso_8859"><strong>Fra ASCII til ISO-8859</strong></p>
149
150 <p>Vi begynner historien med ASCII (American Standard Code for
151 Information Interchange) som har en historie som spores tilbake til
152 1963. Utgangspunktet til ASCII var at det kunne kode opp til 128
153 forskjellige symboler i vanlig bruk i USA. De visuelle symbolene i
154 ASCII er de små og store bokstavene (a til z og A til Z), tall (0 til
155 9) og tegnsettingssymboler (for eksempel semikolon, komma og
156 punktum). ASCII har også noen usynlige symboler som ble brukt for
157 bl.a. kommunikasjon. Før ASCII var det for eksempel teleks-tegnsett
158 med plass til bare 32 tegn og EBCDIC med plass til 256 tegn, alle med
159 en helt annen rekkefølge på symbolene enn ASCII, men de har vært lite
160 brukt de siste femti årene. Et eksempel på noen utvalgte symboler i
161 repertoaret til ASCII vises i tabell 1.</p>
162
163 <table align="center" width="50%">
164
165 <caption>Tabell 1. Eksempel på utvalgte symboler hentet fra
166 ASCII-tegnsettet. Kolonnen «Binær» viser symbolets verdi i
167 totallssystemet (1 og 0 tall), mens kolonnen «Desimal» viser symbolets
168 verdi i titallssystemet.</caption>
169
170 <tbody>
171 <tr>
172 <th>Grafisk</th>
173 <th>Binær</th>
174 <th>Desimal</th>
175 </tr>
176 <tr>
177 <td>A</td>
178 <td>1000001</td>
179 <td align="right">65</td>
180 </tr>
181 <tr>
182 <td>M</td>
183 <td>1001101</td>
184 <td align="right">77</td>
185 </tr>
186 <tr>
187 <td>Z</td>
188 <td>1011010</td>
189 <td align="right">90</td>
190 </tr>
191 <tr>
192 <td>a</td>
193 <td>1100001</td>
194 <td align="right">97</td>
195 </tr>
196 <tr>
197 <td>m</td>
198 <td>1101101</td>
199 <td align="right">109</td>
200 </tr>
201 <tr>
202 <td>z</td>
203 <td>1111010</td>
204 <td align="right">122</td>
205 </tr>
206 <tr>
207 <td>0</td>
208 <td>0110000</td>
209 <td align="right">48</td>
210 </tr>
211 <tr>
212 <td>9</td>
213 <td>0111001</td>
214 <td align="right">58</td>
215 </tr>
216 <tr>
217 <td>;</td>
218 <td>0111011</td>
219 <td align="right">59</td>
220 </tr>
221 </tbody>
222 </table>
223
224 <p>Det opprinnelige ASCII-tegnsettet ble også omtalt som ASCII-7 og
225 brukte 7 bits (0 og 1) for å representere symboler. Datamaskiner er
226 ofte konfigurert til å jobbe med enheter der bits er gruppert som 4
227 eller 8 bits . Det lå en mulighet i å ta i bruk bit åtte. En slik
228 endring ville gjøre det mulig for datamaskiner å øke antall symboler
229 de kunne representere, noe som ga en økning fra 128 forskjellige
230 symboler til 256 forskjellige symboler. Det ble åpnet for å innlemme
231 de nordiske bokstavene sammen med ASCII, og dette ble etter hvert
232 standardisert som ISO-8859-1. Tabell 2 viser deler av ISO-8859-1 som
233 støtter de norske bokstavene.</p>
234
235 <p>Det sier seg selv at muligheten til å representere inntil 256 symboler
236 ikke holder når vi snakker om en global verden, og det ble gjort et
237 standardiseringsløp som tok utgangspunkt i ASCII-7 med en utvidelse
238 til å bruke den åttende biten for ulike språkgrupper. Denne standarden
239 heter ISO-8859 og er inndelt i opptil 16 varianter, altså fra
240 ISO-8859-1 til ISO-8859-16.</p>
241
242 <table align="center" width="50%">
243
244 <caption>Tabell 2. Koding av de norske symbolene slik de er definert i
245 ISO-8859-1 tegnsettet.</caption>
246
247 <tbody>
248 <tr>
249 <th>Grafisk</th>
250 <th>Binær</th>
251 <th>Desimal</th>
252 </tr>
253 <tr>
254 <td>Æ</td>
255 <td>11000110</td>
256 <td align="right">198</td>
257 </tr>
258 <tr>
259 <td>Ø</td>
260 <td>11011000</td>
261 <td align="right">216</td>
262 </tr>
263 <tr>
264 <td>Å</td>
265 <td>11000101</td>
266 <td align="right">197</td>
267 </tr>
268 <tr>
269 <td>æ</td>
270 <td>11100110</td>
271 <td align="right">230</td>
272 </tr>
273 <tr>
274 <td>ø</td>
275 <td>11111000</td>
276 <td align="right">248</td>
277 </tr>
278 <tr>
279 <td>å</td>
280 <td>11100101</td>
281 <td align="right">229</td>
282 </tr>
283 </tbody>
284 </table>
285
286 <p>Norske tegn er definert i ISO-8859-1, som også omtales som Latin 1, de
287 fleste samiske tegn er definert i ISO-8859-4 (Latin 4) mens tilgang
288 til €-symbolet kom med ISO-8859-15 (Latin 9). ISO-8859-15 er en
289 revisjon av ISO-8859-1 som fjerner noen lite brukte symboler og
290 erstatter bokstaver som er mer brukt, og introduserer €-symbolet. Det
291 er viktig å merke at alle ISO-8859-variantene har overlapp med
292 ASCII-7, noe som ga samvirke med de engelskspråklige landene som ikke
293 trengte å gjøre noe. Det innebærer også at de første 128 verdiene i
294 ISO-8859-variantene representerer de samme symbolene. Det er først når
295 du kommer til tolkningen av de resterende 128 verdiene med nummer 128
296 til 255, at det oppsto tolkningsutfordringer mellom
297 ISO-8859-variantene.</p>
298
299 <p>ISO-8859-verdenen fungerte godt så lenge tegnsettet som ble brukt når
300 innhold ble skapt, også ble brukt når innhold ble gjengitt og du ikke
301 trengte å kombinere innhold fra forskjellige tegnsett i samme
302 dokument. Utfordringen med bruken av ISO-8859-variantene ble raskt
303 tydelig i en mer globalisert verden med utveksling av tekst på tvers
304 av landegrenser der tekstlig innhold i dokumenter, e-poster og
305 websider kunne bli skrevet med ett tegnsett og gjengitt med et annet
306 tegnsett.</p>
307
308 <table align="center" width="60%">
309
310 <caption>Tabell 3. Viser tolkning av verdiene som er tilegnet de
311 norske symbolene i ISO-8859-1 i de andre ISO 8859-variatene. Merk
312 ISO-8859-12 ikke finnes da arbeidet ble avsluttet.<sup>[<a id="tegnsett_access_footnoteref_1" href="#tegnsett_access_footnotedef_1" title="View footnote.">1</a>]</sup></caption>
313
314 <tbody>
315 <tr>
316 <th>Binærverdi</th>
317 <th>1</th>
318 <th>2</th>
319 <th>3</th>
320 <th>4</th>
321 <th>5</th>
322 <th>6</th>
323 <th>7</th>
324 <th>8</th>
325 <th>9</th>
326 <th>10</th>
327 <th>11</th>
328 <th>13</th>
329 <th>14</th>
330 <th>15</th>
331 <th>16</th>
332 </tr>
333 <tr>
334 <td>11000110</td>
335 <td>Æ</td>
336 <td>Ć</td>
337 <td>Ĉ</td>
338 <td>Æ</td>
339 <td>Ц</td>
340 <td>ئ</td>
341 <td>Ζ</td>
342 <td></td>
343 <td>Æ</td>
344 <td>Æ</td>
345 <td></td>
346 <td>Ę</td>
347 <td>Æ</td>
348 <td>Æ</td>
349 <td>Æ</td>
350 </tr>
351 <tr>
352 <td>11011000</td>
353 <td>Ø</td>
354 <td>Ř</td>
355 <td>Ĝ</td>
356 <td>Ø</td>
357 <td>и</td>
358 <td>ظ</td>
359 <td>Ψ</td>
360 <td></td>
361 <td>Ø</td>
362 <td>Ø</td>
363 <td></td>
364 <td>Ų</td>
365 <td>Ø</td>
366 <td>Ø</td>
367 <td>Ű</td>
368 </tr>
369 <tr>
370 <td>11000101</td>
371 <td>Å</td>
372 <td>Ĺ</td>
373 <td>Ċ</td>
374 <td>Å</td>
375 <td>Х</td>
376 <td>إ</td>
377 <td>Ε</td>
378 <td></td>
379 <td>Å</td>
380 <td>Å</td>
381 <td></td>
382 <td>Å</td>
383 <td>Å</td>
384 <td>Å</td>
385 <td>Ć</td>
386 </tr>
387 <tr>
388 <td>11100110</td>
389 <td>æ</td>
390 <td>ć</td>
391 <td>ĉ</td>
392 <td>æ</td>
393 <td>ц</td>
394 <td>ن</td>
395 <td>ζ</td>
396 <td>ז</td>
397 <td>æ</td>
398 <td>æ</td>
399 <td></td>
400 <td>ę</td>
401 <td>æ</td>
402 <td>æ</td>
403 <td>v</td>
404 </tr>
405 <tr>
406 <td>11111000</td>
407 <td>ø</td>
408 <td>ř</td>
409 <td>ĝ</td>
410 <td>ø</td>
411 <td>ј</td>
412 <td></td>
413 <td>ψ</td>
414 <td>ר</td>
415 <td>ø</td>
416 <td>ø</td>
417 <td></td>
418 <td>ų</td>
419 <td>ø</td>
420 <td>ø</td>
421 <td>ű</td>
422 </tr>
423 <tr>
424 <td>11100101</td>
425 <td>å</td>
426 <td>ĺ</td>
427 <td>ċ</td>
428 <td>å</td>
429 <td>х</td>
430 <td>م</td>
431 <td>ε</td>
432 <td>ו</td>
433 <td>å</td>
434 <td>å</td>
435 <td></td>
436 <td>å</td>
437 <td>å</td>
438 <td>å</td>
439 <td>ć</td>
440 </tr>
441 </tbody>
442 </table>
443
444 <p>Denne problemstillingen er illustrert i tabell 3, der vi ser verdiene
445 tilegnet de norske symbolene i ISO-8859-1 i kolonne «1». I de øvrige
446 kolonnene ser vi hvilket symbol verdien får i de andre
447 ISO-8859-variantene. Tar vi utgangspunkt i tabell 3, kan vi se at
448 ordet lærlingspørsmål gjengitt med ISO-8859-2 (kolonne 2) blir
449 lćrlingspřrsmĺl, mens det blir lζrlingspψrsmεl med ISO- 8859-7
450 (kolonne 7). Med ISO-8859-2 blir «æ» til «ć», «ø» til «ř» og «å» til
451 «ĺ». I ISO-8859-7 blir «æ» til «ζ», «ø» til «ψ», mens «å» blir «ε».</p>
452
453 <p>Det er egentlig ingen utfordring med dette så lenge du vet hvilket
454 tegnsett innholdet ditt er representert med, og det ikke har skjedd
455 omforminger som du ikke er klar over. Det er det siste som er
456 problematisk, spesielt de datasystemene som har vært i bruk de siste
457 20 årene, som ikke har noe innebygd funksjonalitet for å forvalte
458 tegnsettproblematikken. Et godt eksempel på dette er
459 Microsoft-tegnsettet Windows-1252, som ble forvekslet som 100 %
460 kompatibel med ISO-8859-1, men hadde byttet ut plassene fra 127 til
461 159. Historisk vil det finnes en del variasjon i hvilket tegnsett som
462 har vært i bruk, og hvor vellykket konvertering mellom tegnsett har
463 vært.</p>
464
465 <p id="tegnsett_access_unicode_som_løsning"><strong>Unicode som løsning</strong></p>
466
467 <p>Tegnsettforvirring ble etter hvert et irritasjonsmoment og
468 samvirkeproblem. Ofte fikk man en e-post der æøå var erstattet av rare
469 symboler fordi e-posten hadde vært innom et eller annet datasystem som
470 ikke brukte samme tegnsett.</p>
471
472 <p>For å løse dette samvirkeproblemet for tegnsett ble det startet et
473 arbeid og en ny standard så dagens lys etter hvert. Denne standarden
474 fikk navnet Unicode (ISO/ IEC 10646) og skulle resultere i et tegnsett
475 som alle skulle være enige om. Unicode er et repertoar og en
476 representasjon, dvs. navngivning og tilordning av tallverdi til alle
477 symboler i bruk i verden i dag. Oppføringer i Unicode skrives gjerne
478 U+XXXX der XXXX er tallkoden i sekstentallssystemet som oppføringen
479 har i Unicode-katalogen. Her finner vi tegn brukt av både levende og
480 døde språk, konstruerte språk, tekniske symboler, morsomme tegninger
481 (såkalte emojier) og tegn ingen vet hva betyr eller skal brukes
482 til. Et morsomt eksempel er i nettartikkelen: U+237C ⍼ RIGHT ANGLE
483 WITH DOWNWARDS ZIGZAG ARROW, av Jonathan Chan.<sup>[<a id="tegnsett_access_footnoteref_2" href="#tegnsett_access_footnotedef_2" title="View footnote.">2</a>]</sup></p>
484
485 <p>Sammen med Unicode kom det tre måter å kode disse tallene på; UTF-8,
486 UTF-16 og UTF-32. Av datatekniske årsaker er UTF-8 mye brukt, spesielt
487 når det gjelder utveksling av tekst over Internett, mens UTF-16 er
488 brukt en del til tekstfiler lagret på Windows. En utfordring med
489 Unicode og UTF-variantene er at disse gir flere måter å kode samme
490 symbol på med en kombinasjonsmekanisme. Dette kan gi utfordringer ved
491 søk, hvis en skal søke etter et ord som har ett eller flere symboler
492 som kan skrives på ulikt vis, så er det ikke sikkert at søkesystemet
493 vil finne alle forekomster. For eksempel kan bokstaven U+00F8 «Latin
494 Small Letter O with Stroke» kodes som den tradisjonelle norske tegnet
495 ø, men også som o kombinert med skråstrek U+0338. Begge deler er
496 gyldig bruk av Unicode, selv om det er tradisjon for å foretrekke å
497 «normalisere» kombinasjoner som enkelttegn der det er mulig, nettopp
498 for å forenkle søk.</p>
499
500 <p id="tegnsett_access_bare_unicode_fremover"><strong>Bare Unicode fremover</strong></p>
501
502 <p>Forvaltningens bruk av tegnsett er regulert i Forskrift om
503 IT-standarder i offentlig forvaltning<sup>[<a id="tegnsett_access_footnoteref_3" href="#tegnsett_access_footnotedef_3" title="View footnote.">3</a>]</sup>. Her står det: «Ved all
504 utveksling av informasjon mellom forvaltningsorganer og fra
505 forvaltningsorgan til innbyggere og næringsliv skal tegnsettstandarden
506 ISO/IEC 10646 representert ved UTF8 benyttes.» Det er forskjellige
507 bruksområder til UTF-8, UTF-16 og UTF-32, men UTF-8 er kodingen vi
508 kjenner mest til. Det er flere grunner at UTF-8 «vant» konkurransen
509 til å bli den utvalgte. Den kanskje viktigste er at UTF-8 er fullt
510 samvirkende med ASCII-7, slik at den engelskspråklige delen av verden
511 kunne rulle ut UTF-8 uten å merke noe forskjell. En tekstfil med kun
512 ASCII-tekst vil være identisk på disken hvis den lagres som UTF-8 og
513 ASCII. UTF-16 og UTF-32 byr på noen optimaliseringer som gjør dem
514 relevant for spesifikke problemområder, men for det meste vil vi aldri
515 oppleve disse standardene på nært hold i hverdagen. Det er uansett kun
516 bruken av UTF-8 som er lovregulert i Norge.</p>
517
518 <p>Det er ikke slik at hele verden bruker ISO/IEC 10646 og UTF-8. Kina
519 har egne standarder for tegnsett, mye brukt er GB 18030, som er
520 Unicode med en annen koding enn UTF-8, mens Taiwan og andre asiatiske
521 land gjerne bruker Big5 eller andre tegnsett.</p>
522
523 <p>UTF-8 er dominerende i Norge, men det er tidsperioder der forskjellige
524 datasystemer utvekslet data i henhold til ISO-8859-1, ISO-8859-15,
525 Windows-1252, Codepage 865 og ISO-646-60 / Codepage 1016 mens
526 overgangen til UTF-8 pågikk. Det er ikke slik at et datasystem enkelt
527 kan tvinges til å bruke et tegnsett, da det er flere lag i et
528 datasystem som må settes opp til å bruke riktig tegnsett, og
529 tegnsettproblemet fort oppstår når det er et eller annet i
530 datasystemet som bruker feil tegnsett.</p>
531
532 <p>Et klassisk eksempel på problemet er en utveksling av tekst mellom to
533 systemer der teksten i utgangspunktet er kodet i UTF-8, men går
534 gjennom noe som er ISO-8859-1 underveis. Dette kan vises med at ordet
535 «på» i et slik scenario ender opp som «pÃ¥». Det er mulig å spore
536 dette tilbake til verdiene symbolene er tilordnet i tegnsettene. «på»
537 blir til «pÃ¥» fordi «å» i UTF-8 er representert med U+C3AF, og dersom
538 vi ser på hva disse verdiene representerer, ser vi at
539 sekstentallssystemverdien C3 er 1100 0011 i totallssystemet og
540 symbolet med dette tallet i ISO-8859-1 er Ã.</p>
541
542 <p>Vi ser det samme med sekstentallssystemverdien A5, som er 1010 0101 i
543 totallssystemet, og tilsvarende symbol i ISO-8859-1 er ¥. Slik
544 mojibake kan lett skje hvis «på» i utgangspunktet var representert med
545 UTF-8, men ble behandlet med et system som bruker ISO-8859-1. Det er
546 ingen automatikk i å fange opp slike ødeleggelser mens tekstlig
547 innhold utveksles mellom datasystemer.</p>
548
549 <p>En utfordring for depotarkivene er at bruken av tegnsett ikke alltid
550 har vært regulert, og at det kan finnes flere dokumentasjonssamlinger
551 som er opprettet med varierende tegnsett før gjeldende forskrift
552 inntraff – uten at det er mulig å avlede fra filene hvilket tegnsett
553 som ble brukt. Et eksempel på dette er €-symbolet, som kom først etter
554 at ISO-8859-1 var tatt i bruk. Det kan bli en utfordring for et
555 depotarkiv, men så lenge det er kjent hvilket tegnsett var i bruk, så
556 bør det gå bra. Riksarkivarens
557 forskrift<sup>[<a id="tegnsett_access_footnoteref_4" href="#tegnsett_access_footnotedef_4" title="View footnote.">4</a>]</sup>
558 formaliserer dette ved å kreve følgende:</p>
559
560 <blockquote>
561 <p>§ 5-11. Tegnsett i arkivuttrekk</p>
562
563 <ol>
564 <li>Arkivuttrekk og medfølgende struktur- og innholdsbeskrivelser skal
565 overføres som ren tekst i ukryptert form, og benytte godkjent
566 tegnsett.</li>
567
568 <li>Godkjente tegnsett er:
569 <ol>
570 <li>Unicode UTF-8<br>
571 (ISO/IEC 10646-1:2000 Annex D)</li>
572 <li>ISO 8859-1:1998, Latin 1</li>
573 <li>ISO 8859-4:1998, Latin 4 for samiske tegn.</li>
574 </ol></li>
575
576 <li>Andre tegnsett aksepteres bare etter avtale med Arkivverket.</li>
577 </ol>
578 </blockquote>
579
580 <p id="tegnsett_access_ditt_ansvar"><strong>Ditt ansvar</strong></p>
581
582 <p>På mange måter burde ikke tegnsett være et problem i 2023, men sånn er
583 det nok ikke. Land som har oppgradert til UTF-8 som primærtegnsett for
584 utveksling av tekstlig innhold, begrenser problematikken betraktelig,
585 men globalt sett så er tegnsettutfordringen ikke løst fordi ikke alle
586 er enige om å bruke samme tegnsett. Det kan være geopolitiske eller
587 kulturelle hensyn som ligger til grunn for dette.</p>
588
589 <p>Det er uansett verdt å merke at selv om bruken av UTF-8 skulle bli
590 100% utbredt, så er det et historisk perspektiv (ASCII-7,
591 ISO-8859-variantene, UTF-8) her som gjør tegnsett til et problemområde
592 arkivarene må forstå og håndtere. Som danningsarkivar har du et
593 ansvar for å vite hvilket tegnsett systemene og databasene dere
594 forvalter, er i samsvar med. Det er noe IT-avdelingen din eller
595 programvareleverandørene enkelt skal kunne svare på, og svaret skal
596 være UTF-8 for alle nye systemer.</p>
597
598 <hr>
599
600 <p id="tegnsett_access_footnotedef_1"><a href="#tegnsett_access_footnoteref_1">1</a>. Tegnsettkilde <a href="https://en.wikipedia.org/wiki/ISO/IEC_8859">https://en.wikipedia.org/wiki/ISO/IEC_8859</a></p>
601
602 <p id="tegnsett_access_footnotedef_2"><a href="#tegnsett_access_footnoteref_2">2</a>. <a href="https://ionathan.ch/2022/04/09/angzarr.html">https://ionathan.ch/2022/04/09/angzarr.html</a></p>
603
604 <p id="tegnsett_access_footnotedef_3"><a href="#tegnsett_access_footnoteref_3">3</a>. <a href="https://lovdata.no/dokument/SF/forskrift/2013-04-05-959/%C2%A78#%C2%A78">https://lovdata.no/dokument/SF/forskrift/2013-04-05-959/%C2%A78#%C2%A78</a></p>
605
606 <p id="tegnsett_access_footnotedef_4"><a href="#tegnsett_access_footnoteref_4">4</a>. <a href="https://lovdata.no/forskrift/2017-12-19-2286/§5-11">https://lovdata.no/forskrift/2017-12-19-22865-11</a></p>
607
608 </blockquote>
609
610 <p>For øvrig burde varsleren Edward Snowden få politisk asyl i Norge.</p>
611
612 <p>Som vanlig, hvis du bruker Bitcoin og ønsker å vise din støtte til
613 det jeg driver med, setter jeg pris på om du sender Bitcoin-donasjoner
614 til min adresse
615 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>. Merk,
616 betaling med bitcoin er ikke anonymt. :)</p>
617
618 <p><b>Oppdatering 2024-08-23</b>: Har fått innspill om at det norske
619 ordet for japanske mojibake er tegnsalat.</p>
620
621 </div>
622 <div class="tags">
623
624
625 Tags: <a href="http://www.hungry.com/~pere/blog/tags/noark5">noark5</a>, <a href="http://www.hungry.com/~pere/blog/tags/norsk">norsk</a>, <a href="http://www.hungry.com/~pere/blog/tags/standard">standard</a>.
626
627
628 </div>
629 </div>
630 <div class="padding"></div>
631
632 <div class="entry">
633 <div class="title">
634 <a href="http://www.hungry.com/~pere/blog/Nikita_version_0_6_released___free_software_archive_API_server.html">Nikita version 0.6 released - free software archive API server</a>
635 </div>
636 <div class="date">
637 10th June 2021
638 </div>
639 <div class="body">
640 <p>I am very pleased to be able to share with you
641 <a href="https://lists.nuug.no/pipermail/nikita-noark/2021-June/000576.html">the
642 announcement of a new version of the archiving system Nikita</a>
643 published by its lead developer Thomas Sødring:</p>
644
645 <p><blockquote>
646
647 <p>It is with great pleasure that we can announce a new release of
648 nikita. Version 0.6
649 (<a href="https://gitlab.com/OsloMet-ABI/nikita-noark5-core">https://gitlab.com/OsloMet-ABI/nikita-noark5-core</a>). This
650 release makes new record keeping functionality available. This really
651 is a maturity release. Both in terms of functionality but also code.
652 Considerable effort has gone into refactoring the codebase and
653 simplifying the code. Notable changes for this release include:</p>
654
655 <ul>
656
657 <li>Significantly improved OData parsing</li>
658 <li>Support for business specific metadata and national identifiers</li>
659 <li>Continued implementation of domain model and endpoints</li>
660 <li>Improved testing</li>
661 <li>Ability to export and import from arkivstruktur.xml</li>
662
663 </ul>
664
665 <p>We are currently in the process of reaching an agreement with an
666 archive institution to publish their picture archive using nikita with
667 business specific metadata and we hope that we can share this with you
668 soon. This is an interesting project as it allows the organisation to
669 bring an older picture archive back to life while using the original
670 metadata values stored as business specific metadata. Combined with
671 OData means the scope and use of the archive is significantly
672 increased and will showcase both the flexibility and power of
673 Noark.</p>
674
675 <p>I really think we are approaching a version 1.0 of nikita, even
676 though there is still a lot of work to be done. The notable work at
677 the moment is to implement access-control and full text indexing of
678 documents.</p>
679
680 <p>My sincere thanks to everyone who has contributed to this
681 release!</p>
682
683 <p>- Thomas</p>
684
685 <p><strong>Release 0.6 2021-06-10 (d1ba5fc7e8bad0cfdce45ac20354b19d10ebbc7b)</strong></p>
686
687 <ul>
688
689 <li>Refactor metadata entity search</li>
690 <li>Remove redundant security configuration</li>
691 <li>Make OpenAPI documentation work</li>
692 <li>Change database structure / inheritance model to a more sensible approach</li>
693 <li>Make it possible to move entities around the fonds structure</li>
694 <li>Implemented a number of missing endpoints</li>
695 <li>Make sure yml files are in sync</li>
696 <li>Implemented/finalised storing and use of
697 <ul>
698     <li>Business Specific Metadata</li>
699     <li>Norwegian National Identifiers</li>
700     <li>Cross Reference</li>
701     <li>Keyword</li>
702     <li>StorageLocation</li>
703     <li>Author</li>
704     <li>Screening for relevant objects</li>
705     <li>ChangeLog</li>
706     <li>EventLog</li>
707 </ul></li>
708 <li>Make generation of updated docker image part of successful CI pipeline</li>
709 <li>Implement pagination for all list requests
710 <ul>
711     <li>Refactor code to support lists</li>
712     <li>Refactor code for readability</li>
713     <li>Standardise the controller/service code</li>
714 </ul></li>
715 <li>Finalise File->CaseFile expansion and Record->registryEntry/recordNote
716 expansion</li>
717 <li>Improved Continuous Integration (CI) approach via gitlab</li>
718 <li>Changed conversion approach to generate tagged PDF documents</li>
719 <li>Updated dependencies
720 <ul>
721     <li>For security reasons</li>
722     <li>Brought codebase to spring-boot version 2.5.0</li>
723     <li>Remove import of necessary dependencies</li>
724     <li>Remove non-used metrics classes</li>
725 </ul></li>
726 <li>Added new analysis to CI including</li>
727 <li>Implemented storing of Keyword</li>
728 <li>Implemented storing of Screening and ScreeningMetadata</li>
729 <li>Improved OData support
730 <ul>
731     <li>Better support for inheritance in queries where applicable</li>
732     <li>Brought in more OData tests</li>
733     <li>Improved OData/hibernate understanding of queries</li>
734     <li>Implement $count, $orderby</li>
735     <li>Finalise $top and $skip</li>
736     <li>Make sure & is used between query parameters</li>
737 </ul></li>
738 <li>Improved Testing in codebase
739 <ul>
740     <li>A new approach for integration tests to make test more readable</li>
741     <li>Introduce tests in parallel with code development for TDD approach</li>
742     <li>Remove test that required particular access to storage</li>
743 </ul></li>
744 <li>Implement case-handling process from received email to case-handler
745 <ul>
746     <li>Develop required GUI elements (digital postroom from email)</li>
747     <li>Introduced leader, quality control and postroom roles</li>
748 </ul></li>
749 <li>Make PUT requests return 200 OK not 201 CREATED</li>
750 <li>Make DELETE requests return 204 NO CONTENT not 200 OK</li>
751 <li>Replaced 'oppdatert*' with 'endret*' everywhere to match latest spec</li>
752 <li>Upgrade Gitlab CI to use python > 3 for CI scripts</li>
753 <li>Bug fixes
754 <ul>
755     <li>Fix missing ALLOW</li>
756     <li>Fix reading of objects from jar file during start-up</li>
757     <li>Reduce the number of warnings in the codebase</li>
758     <li>Fix delete problems</li>
759     <li>Make better use of cascade for "leaf" objects</li>
760     <li>Add missing annotations where relevant</li>
761     <li>Remove the use of ETAG for delete</li>
762     <li>Fix missing/wrong/broken rels discovered by runtest</li>
763     <li>Drop unofficial convertFil (konverterFil) end point</li>
764     <li>Fix regex problem for dateTime</li>
765     <li>Fix multiple static analysis issues discovered by coverity</li>
766     <li>Fix proxy problem when looking for object class names</li>
767     <li>Add many missing translated Norwegian to English (internal)
768 attribute/entity names</li>
769     <li>Change UUID generation approach to allow code also set a value</li>
770     <li>Fix problem with Part/PartParson</li>
771     <li>Fix problem with empty OData search results</li>
772     <li>Fix metadata entity domain problem</li>
773 </ul></li>
774 <li>General Improvements
775 <ul>
776     <li>Makes future refactoring easier as coupling is reduced</li>
777     <li>Allow some constant variables to be set from property file</li>
778     <li>Refactor code to make reflection work better across codebase</li>
779     <li>Reduce the number of @Service layer classes used in @Controller
780 classes</li>
781     <li>Be more consistent on naming of similar variable types</li>
782     <li>Start printing rels/href if they are applicable</li>
783     <li>Cleaner / standardised approach to deleting objects</li>
784     <li>Avoid concatenation when using StringBuilder</li>
785     <li>Consolidate code to avoid duplication</li>
786     <li>Tidy formatting for a more consistent reading style across
787 similar class files</li>
788     <li>Make throw a log.error message not an log.info message</li>
789     <li>Make throw print the log value rather than printing in multiple
790 places</li>
791     <li>Add some missing pronom codes</li>
792     <li>Fix time formatting issue in Gitlab CI</li>
793     <li>Remove stale / unused code</li>
794     <li>Use only UUID datatype rather than combination String/UUID for systemID</li>
795     <li>Mark variables final and @NotNull where relevant to indicate
796 intention</li>
797 </ul></li>
798 <li>Change Date values to DateTime to maintain compliance with Noark 5
799 standard</li>
800 <li>Domain model improvements using Hypersistence Optimizer
801 <ul>
802     <li>Move @Transactional from class to methods to avoid borrowing the JDBC Connection unnecessarily</li>
803     <li>Fix OneToOne performance issues</li>
804     <li>Fix ManyToMany performance issues</li>
805     <li>Add missing bidirectional synchronization support</li>
806     <li>Fix ManyToMany performance issue</li>
807 </ul></li>
808 <li>Make List<> and Set<> use final-keyword to avoid potential problems
809 during update operations</li>
810 <li>Changed internal URLs, replaced "hateoas-api" with "api".</li>
811 <li>Implemented storing of Precedence.</li>
812 <li>Corrected handling of screening.</li>
813 <li>Corrected _links collection returned for list of mixed entity types
814 to match the specific entity.</li>
815 <li>Improved several internal structures.</li>
816 </ul>
817
818 </blockquote></p>
819
820 <p>If free and open standardized archiving API sound interesting to
821 you, please contact us on IRC
822 (<a href="irc://irc.oftc.net/%23nikita">#nikita on
823 irc.oftc.net</a>) or email
824 (<a href="https://lists.nuug.no/mailman/listinfo/nikita-noark">nikita-noark
825 mailing list</a>).</p>
826
827 <p>As usual, if you use Bitcoin and want to show your support of my
828 activities, please send Bitcoin donations to my address
829 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
830
831 </div>
832 <div class="tags">
833
834
835 Tags: <a href="http://www.hungry.com/~pere/blog/tags/english">english</a>, <a href="http://www.hungry.com/~pere/blog/tags/noark5">noark5</a>, <a href="http://www.hungry.com/~pere/blog/tags/nuug">nuug</a>, <a href="http://www.hungry.com/~pere/blog/tags/offentlig innsyn">offentlig innsyn</a>, <a href="http://www.hungry.com/~pere/blog/tags/standard">standard</a>.
836
837
838 </div>
839 </div>
840 <div class="padding"></div>
841
842 <div class="entry">
843 <div class="title">
844 <a href="http://www.hungry.com/~pere/blog/Nikita_version_0_5_released___updated_free_software_archive_API_server.html">Nikita version 0.5 released - updated free software archive API server</a>
845 </div>
846 <div class="date">
847 2nd March 2020
848 </div>
849 <div class="body">
850 <p>Today, after many months of development, a new release of
851 <ahref="https://gitlab.com/OsloMet-ABI/nikita-noark5-core/">Nikita
852 Noark 5 core project</a> was finally
853 <ahref="https://lists.nuug.no/pipermail/nikita-noark/2020-March/000519.html">announced
854 on the project mailing list</a>. The Nikita free software solution is
855 an implementation of the Norwegian archive standard Noark 5 used by
856 government offices in Norway. These were the changes in version 0.5
857 since version 0.4, see the email link above for links to a demo
858 site:</p>
859
860 <ul>
861
862 <li>Updated to Noark 5 versjon 5.0 API specification.
863 <ul>
864 <li>Changed formatting of _links from [] to {} to match IETF draft
865 on JSON HAL.</li>
866 <li>Merged Registrering og Basisregistrering in version 4 to
867 combined Registrering.</li>
868 <li>DokumentObjekt is now subtype of ArkivEnhet.</li>
869 <li>Introducing new entity Arkivnotat.</li>
870 <li>Changed all relation keys to use /v5/ instead of /v4/.</li>
871 <li>Corrected to use new official relation keys when possible.</li>
872 <li>Renamed Sakspart to Part and connect it to Mappe, Registrering
873 and Dokumentbeskrivelse instead of only Saksmappe.</li>
874 <li>Moved Korrespondansepart connection from Journalpost to
875 Registrering.</li>
876 <li>Moved Part and Korrespondansepart from package sakarkiv to
877 arkivstruktur.</li>
878 <li>Renamed presedensstatus to presedensStatus.</li>
879 <li>Use new JSON content-type "application/vnd.noark5+json".</li>
880 <li>Updated prepopulated format list to use PRONOM codes.</li>
881 <li>Implemented endpoint for system information.</li>
882 <li>Implemented national identifiers for both file and record.</li>
883 <li>Implemented comments.</li>
884 <li>implemented sign off.</li>
885 <li>implemented conversion.</li>
886 </ul></li>
887 <li>Improved/implemented OData search and paging support for more entities.</li>
888 <li>No longer exposes attribute Dokumentobjekt.referanseDokumentfil,
889 one should use the relation in _links instead.</li>
890 <li>Corrected relation keys under
891 https://rel.arkivverket.no/noark5/v5/api/administrasjon/, replacing
892 'administrasjon' with 'admin'.</li>
893 <li>Fixed several security and stability issues discovered by Coverity.</li>
894 <li>Corrected handling ETag errors, now return code 409.</li>
895 <li>Improved handling of Kryssreferanse.</li>
896 <li>Changed internal database model to use UUID/SystemID as primary keys
897 in tables.</li>
898 <li>Changed internal database table names to use package prefix.</li>
899 <li>Changed time zone handling for date and datetime attributes, to be
900 more according to the new definition in the API specification.</li>
901 <li>Change revoke-token to only drop token on POST requests, not GET.</li>
902 <li>Updated to newer Spring version.</li>
903 <li>Changed primary key and URL component for metadata code lists to
904 use the 'kode' value instead of a SystemID.</li>
905 <li>Corrected implementation of Part and Sakspart.</li>
906 <li>Changed instance lists with subtypes (like .../registrering/ and
907 .../mappe/) to include the attributes and _links entries for the
908 subtype in the supertype lists.</li>
909 <li>Adjusted _links relations to make it possible to figure out the
910 entity of an instance using the self->href->relation key lookup
911 method.</li>
912 <li>Fixed several end points to make sure GET, PUT, POST and DELETE
913 match each other.</li>
914 <li>Updated DELETE endpoints to work with UUID based entity
915 identifiers.</li>
916 <li>Restructured code to use more common URL related constants in entry
917 point values and replace @RequestMapping with method specific
918 annotations.</li>
919 <li>Added first unit test code.</li>
920 <li>Updated web GUI to work with the updated API.</li>
921 <li>Changed integer fields, enforce them as numeric.</li>
922 <li>Rewrote and simplify metadata handling to use common service and
923 controller code instead of duplicating for each type.</li>
924 <li>Implemented the remaining metadata types.</li>
925 <li>Changed Country list source from Wikipedia to Debian iso-codes and
926 updated the list of Countries.</li>
927 <li>Many many corrections and improvements.</li>
928
929 </ul>
930
931 <p>If free and open standardized archiving API sound interesting to
932 you, please contact us on IRC
933 (<a href="irc://irc.freenode.net/%23nikita">#nikita on
934 irc.freenode.net</a>) or email
935 (<a href="https://lists.nuug.no/mailman/listinfo/nikita-noark">nikita-noark
936 mailing list</a>).</p>
937
938 <p>As usual, if you use Bitcoin and want to show your support of my
939 activities, please send Bitcoin donations to my address
940 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
941
942 </div>
943 <div class="tags">
944
945
946 Tags: <a href="http://www.hungry.com/~pere/blog/tags/english">english</a>, <a href="http://www.hungry.com/~pere/blog/tags/noark5">noark5</a>, <a href="http://www.hungry.com/~pere/blog/tags/nuug">nuug</a>, <a href="http://www.hungry.com/~pere/blog/tags/offentlig innsyn">offentlig innsyn</a>, <a href="http://www.hungry.com/~pere/blog/tags/standard">standard</a>.
947
948
949 </div>
950 </div>
951 <div class="padding"></div>
952
953 <div class="entry">
954 <div class="title">
955 <a href="http://www.hungry.com/~pere/blog/Blockchain_and_IoT_articles_accepted_into_Records_Management_Journal.html">Blockchain and IoT articles accepted into Records Management Journal</a>
956 </div>
957 <div class="date">
958 27th February 2020
959 </div>
960 <div class="body">
961 <p>On Tuesday, two scietific articles we have been working on for a
962 while, was finally accepted for publication into
963 <a href="https://www.emerald.com/insight/publication/issn/0956-5698">Records
964 Management Journal</a>. Still waiting for the assigned DOI urls to
965 start working, but you can have a look at the LaTeX originals here.</p>
966
967 <p>The first article is
968 "<a href="http://www.hungry.com/~pere/blog/images/2020-02-25-rmj-iot-record-keeping.pdf">A
969 record-keeping approach to managing IoT-data for government
970 agencies</a>" (<a href="https://doi.org/10.1108/RMJ-09-2019-0050">DOI
971 10.1108/RMJ-09-2019-0050<a/>) by Thomas Sødring, Petter Reinholdtsen
972 and David Massey, and sketches some approaches for storing measurement
973 data (aka Internet of Things sensor data) in a archive, thus providing
974 a well defined mechanism for screening and deletion of the information </p>
975
976 <p>The second article is
977 "<a href="http://www.hungry.com/~pere/blog/images/2020-02-25-rmj-block-chain-record-keeping.pdf">Publishing
978 and using record-keeping structural information in a blockchain</a>"
979 (<a href="https://doi.org/10.1108/RMJ-09-2019-0056">DOI
980 10.1108/RMJ-09-2019-0056</a>) by Thomas Sødring, Petter Reinholdtsen
981 and Svein Ølnes, where we describe a way for third parties to validate
982 authenticity and thus improve trust in the records kept in a
983 archive.</p>
984
985 <p>As usual, if you use Bitcoin and want to show your support of my
986 activities, please send Bitcoin donations to my address
987 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
988
989 <p><strong>Update 2020-04-26</strong>: Initially managed to swap the
990 DOI numbers. Fixed it.</p>
991
992 </div>
993 <div class="tags">
994
995
996 Tags: <a href="http://www.hungry.com/~pere/blog/tags/english">english</a>, <a href="http://www.hungry.com/~pere/blog/tags/noark5">noark5</a>.
997
998
999 </div>
1000 </div>
1001 <div class="padding"></div>
1002
1003 <div class="entry">
1004 <div class="title">
1005 <a href="http://www.hungry.com/~pere/blog/Redaksjon_p__plass_for_Noark_5_tjenestegrensesnitt.html">Redaksjon på plass for Noark 5 tjenestegrensesnitt</a>
1006 </div>
1007 <div class="date">
1008 5th February 2020
1009 </div>
1010 <div class="body">
1011 <p>Arbeidet med å lage et godt, fritt og åpent standardisert maskinelt
1012 grensesnitt for arkivering, med tilhørende fri
1013 programvareimplementasjon fortsetter. Jeg snakker om
1014 <a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard">Noark
1015 5 Tjenestegrensesnitt</a> og
1016 <a href="https://gitlab.com/OsloMet-ABI/nikita-noark5-core/">Nikita</a>.
1017 Siste nytt etter
1018 <a href="https://www.nuug.no/aktiviteter/20200127-noark-seminar/">seminaret
1019 for noen dager siden</a>, er vi i Nikita-prosjektet har fått beskjed
1020 fra Arkivverket at det blir satt ned en redaksjon for å videreutvikle
1021 spesifikasjonen. Redaksjonen består av Mona Danielsen og Anne Sofie
1022 Knutsen ved arkivverket, Thomas Sødring ved OsloMet, og meg selv fra
1023 NUUG. De to sistenevnte tar seg av de åpenbare forbedringene, mens
1024 hele redaksjonen diskuterer tvilstilfeller. Jeg håper dette vil bidra
1025 til at vi lykkes i å gjøre denne protokollspesifikasjonen så entydig
1026 og klar at den vil bidra til et velfungerende marked for
1027 arkivsystemer, og sikre at programmer som trenger å snakke med
1028 arkivsystemet kan snakke med enhver implementasjon av
1029 API-spesifikasjonen. Nikita er den første implementasjonen, men det
1030 bør blir flere.</p>
1031
1032 <p>Det gjenstår riktig nok endel før vi er i mål, selv om svært mye
1033 allerede er på plass. Med innspill og forslag til forbedringer fra
1034 alle som vil ha et leverandøruavhengig og fullstendig
1035 datamaskinlesbart grensesnitt til arkivet, så tror jeg vi vil
1036 lykkes.</p>
1037
1038 <p>Som vanlig, hvis du bruker Bitcoin og ønsker å vise din støtte til
1039 det jeg driver med, setter jeg pris på om du sender Bitcoin-donasjoner
1040 til min adresse
1041 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.
1042 Merk, betaling med bitcoin er ikke anonymt. :)</p>
1043
1044 </div>
1045 <div class="tags">
1046
1047
1048 Tags: <a href="http://www.hungry.com/~pere/blog/tags/noark5">noark5</a>, <a href="http://www.hungry.com/~pere/blog/tags/norsk">norsk</a>, <a href="http://www.hungry.com/~pere/blog/tags/standard">standard</a>.
1049
1050
1051 </div>
1052 </div>
1053 <div class="padding"></div>
1054
1055 <div class="entry">
1056 <div class="title">
1057 <a href="http://www.hungry.com/~pere/blog/Artikkel_om_Noark_5_Tjenestegrensesnitt_og_Nikita_i_Arkivr_d_nummer_3_for_2019.html">Artikkel om Noark 5 Tjenestegrensesnitt og Nikita i Arkivråd nummer 3 for 2019</a>
1058 </div>
1059 <div class="date">
1060 26th December 2019
1061 </div>
1062 <div class="body">
1063 <p>Like før julaften ble en artikkel jeg har skrevet om vedlikehold av
1064 <a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard">Noark
1065 5 Tjenestegrensesnitt</a> og Nikita publisert i <a
1066 href="https://www.arkivrad.no/arkivrad">tidsskriftet Arkivråd</a>.
1067 Det er basert på
1068 <a href="http://www.hungry.com/~pere/blog/_pen_og_gjennomsiktig_vedlikehold_av_spesifikasjonen_for_Noark_5_Tjenestegrensesnitt.html">min bloggpost
1069 om samme tema</a> som ble publisert 2019-03-11. Jeg oppdaget nettopp
1070 at nettsiden til tidsskriftet Arkivråd er oppdatert med siste utgave,
1071 og artikkelen dermed er tilgjengelig for alle. Du finner den i
1072 <a href="https://www.arkivrad.no/sites/arkivrad/files/arkivrad_03_2019_nett.pdf">PDF-en
1073 til nummer 2019/3 på side 30-33</a>. Jeg håper leserne av
1074 tidsskriftet får lyst til å sjekke ut tjenestegrensesnittet og at
1075 artikkelen vil gjøre det enklere for flere å bidra til en enda bedre,
1076 klarere og mer entydig API-spesifikasjon. Det kan gjøre at
1077 <a href="https://gitlab.com/OsloMet-ABI/nikita-noark5-core/">arkivsystemet
1078 Nikita</a> kan bli enda bedre når spesifikasjonen forbedres.</p>
1079
1080 <p>Som vanlig, hvis du bruker Bitcoin og ønsker å vise din støtte til
1081 det jeg driver med, setter jeg pris på om du sender Bitcoin-donasjoner
1082 til min adresse
1083 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.
1084 Merk, betaling med bitcoin er ikke anonymt. :)</p>
1085
1086 </div>
1087 <div class="tags">
1088
1089
1090 Tags: <a href="http://www.hungry.com/~pere/blog/tags/noark5">noark5</a>, <a href="http://www.hungry.com/~pere/blog/tags/norsk">norsk</a>, <a href="http://www.hungry.com/~pere/blog/tags/standard">standard</a>.
1091
1092
1093 </div>
1094 </div>
1095 <div class="padding"></div>
1096
1097 <div class="entry">
1098 <div class="title">
1099 <a href="http://www.hungry.com/~pere/blog/Artikkel_om_Nikita_i_Arkheion_nummer_2019_2.html">Artikkel om Nikita i Arkheion nummer 2019/2</a>
1100 </div>
1101 <div class="date">
1102 9th December 2019
1103 </div>
1104 <div class="body">
1105 <p>Jeg hadde i dag gleden av å oppdage at en artikkel om
1106 <a href="https://gitlab.com/OsloMet-ABI/nikita-noark5-core/">arkivsystemet
1107 Nikita</a> som vi skrev i sommer, nå er publisert i
1108 <a href="http://www.arkheion.no/">Arkheion, fagtidsskrift for kommunial
1109 arkivsektor</a>. Du finner artikkelen på side 30-33 i nummer 2019/2,
1110 PDF kan lastes ned fra nettstedet til tidsskriftet. Kanskje
1111 publiseringen kan føre til at noen flere får øynene opp for verdien av
1112 et åpent standardisert API for arkivering og søk i arkivet.</p>
1113
1114 <p>Som vanlig, hvis du bruker Bitcoin og ønsker å vise din støtte til
1115 det jeg driver med, setter jeg pris på om du sender Bitcoin-donasjoner
1116 til min adresse
1117 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.
1118 Merk, betaling med bitcoin er ikke anonymt. :)</p>
1119
1120 </div>
1121 <div class="tags">
1122
1123
1124 Tags: <a href="http://www.hungry.com/~pere/blog/tags/noark5">noark5</a>, <a href="http://www.hungry.com/~pere/blog/tags/norsk">norsk</a>, <a href="http://www.hungry.com/~pere/blog/tags/standard">standard</a>.
1125
1126
1127 </div>
1128 </div>
1129 <div class="padding"></div>
1130
1131 <div class="entry">
1132 <div class="title">
1133 <a href="http://www.hungry.com/~pere/blog/Oppdatert_Noark_5_Tjenestegrenesnitt_versjon_1_0_for_Noark_5_5_0.html">Oppdatert Noark 5 Tjenestegrenesnitt versjon 1.0 for Noark 5.5.0</a>
1134 </div>
1135 <div class="date">
1136 5th July 2019
1137 </div>
1138 <div class="body">
1139 <p>Jeg er veldig glad for å kunne fortelle at i går ble ny versjon av
1140 <a href="https://www.arkivverket.no/forvaltning-og-utvikling/noark-standarden/noark-5/tjenestegrensesnitt-noark5">API-spesifikasjonen
1141 for Noark 5 Tjenestegrensesnitt</a> gitt ut. Det så lenge mørkt ut
1142 for sjansene for å få inn nødvendige korreksjoner i
1143 spesifikasjonsteksten innen rimelig tid, men takket være intens og god
1144 innsats fra Mona og Anne Sofie hos Arkivverket de siste ukene, så ble
1145 resultatet som ble gitt ut på USAs uavhengighetsdag mye bedre enn jeg
1146 fryktet.</p>
1147
1148 <p>Spesifikasjonen er
1149 <a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/">tilgjengelig
1150 som markdown-filer i Arkivverkets github-prosjekt for dette</a>, og de
1151 aller fleste av forslagene til forbedringer fra oss som holder på med
1152 <a href="https://gitlab.com/OsloMet-ABI/nikita-noark5-core">Nikita-prosjektet</a>
1153 kom med i denne nye og oppdaterte spesifikasjonsteksten. Det er
1154 fortsatt mye som gjenstår før den er entydig, klar og sikrer samvirke
1155 på tvers av leverandører, men utgangspunktet er veldig mye bedre enn
1156 forrige versjon fra 2016. Ta gjerne en titt.</p>
1157
1158 <p>Ellers må jeg jo si at det var hyggelig å se at min forrige
1159 bloggpost om tjenestegrensesnittet fikk en
1160 <a href="https://beta.arkivverket.no/post/186020592045/noark-5-versjon-50-tjenestegrensesnitt-10">lenke
1161 fra Arkivverket Beta</a>.</p>
1162
1163 <p>Som vanlig, hvis du bruker Bitcoin og ønsker å vise din støtte til
1164 det jeg driver med, setter jeg pris på om du sender Bitcoin-donasjoner
1165 til min adresse
1166 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.
1167 Merk, betaling med bitcoin er ikke anonymt. :)</p>
1168
1169 </div>
1170 <div class="tags">
1171
1172
1173 Tags: <a href="http://www.hungry.com/~pere/blog/tags/noark5">noark5</a>, <a href="http://www.hungry.com/~pere/blog/tags/norsk">norsk</a>, <a href="http://www.hungry.com/~pere/blog/tags/standard">standard</a>.
1174
1175
1176 </div>
1177 </div>
1178 <div class="padding"></div>
1179
1180 <div class="entry">
1181 <div class="title">
1182 <a href="http://www.hungry.com/~pere/blog/Nikita_og_Noark_5_tjenestegrensesnittet_tilbyr_ny_m_te___tenke_arkivering.html">Nikita og Noark 5 tjenestegrensesnittet tilbyr ny måte å tenke arkivering</a>
1183 </div>
1184 <div class="date">
1185 21st June 2019
1186 </div>
1187 <div class="body">
1188 <p><em>av Thomas Sødring (OsloMet) og Petter Reinholdtsen (foreningen
1189 NUUG)</em></p>
1190
1191 <p>Nikita Noark 5-kjerne er et fri programvareprosjekt som tar i bruk
1192 Arkivverkets spesifikasjonen for Noark 5 Tjenestegrensesnitt og tilbyr
1193 et maskinlesbart grensesnitt (arkiv-API) til datasystemer som trenger å
1194 arkivere dokumenter og informasjon. I tillegg tilbyr Nikita et
1195 nettleserbasert brukergrensesnitt for brukere av arkivet. Dette
1196 brukergrensesnittet benytter det maskinlesbare grensesnittet. Noark 5
1197 Tjenestegrensesnitt er en ny måte å tenke arkivering, med fokus på
1198 automatisering og maskinell behandling av arkivmateriale, i stedet for
1199 å fokusere på brukergrensesnitt. En kan tenke på
1200 tjenestegrensesnittet som arkivet uten brukergrensesnitt, der flere
1201 aktører kan koble til ulike brukergrensesnitt, tilpasset ulike
1202 behov.</p>
1203
1204 <p>Historisk sett gjorde Noark standarden en veldig bra jobb med
1205 overgangen fra
1206 papir til digital saksbehandling, men det har kommet til kort på andre
1207 områder. Den teknologiske utviklingen har brakt oss ditt at vi kan og
1208 skal forvente langt mer fra en arkivkjerne enn før, men det offentlig
1209 er ofte konservativ når det gjelder nytenking. For lengst skulle
1210 begreper som samvirke mellom datasystemer, metadata, prosess og
1211 tjenestegrensesnitt (API) vært dominerende når systemer kjøpes
1212 inn. Dessverre er det slik at ikke alle ønsker samvirke mellom
1213 datasystemer velkommen, og det kan være trygt å kjøpe «svarte bokser»
1214 der du slipper å ta stilling til hvordan man skal få flere systemer
1215 til å virke sammen. Men IT-arkitektur er et begrep arkivfolk også
1216 begynner å ta inn over seg.</p>
1217
1218 <p>Slike systemer for å organisere metadata bør ha nettbaserte
1219 tjenestegrensesnitt der brukergrensesnitt er tydelig adskilt fra
1220 bakenforliggende system. Det finnes mange rapporter som snakker om å
1221 bryte ned siloer i forvaltningen og standardiserte tjenestegrensesnitt
1222 er det viktigste virkemiddel mot datasiloer og legger til rette for
1223 økt samvirke mellom systemer. Et standardisert tjenestegrensesnitt er
1224 et viktig middel for å få systemer til å samhandle da det sikrer at
1225 ulike produsenters systemer kan snakke sammen på tvers. Samfunnet
1226 fungerer ikke uten standardisering. Vi har alle samme strømstyrke og
1227 kontakter i veggene og kjører alle på høyre side av veien i Norge. Det er i en slik
1228 sammenheng at prosjektet «Noark 5 Tjenestegrensesnitt» er veldig
1229 viktig. Hvis alle leverandører av arkivsystemer forholdt seg til et
1230 standardisert tjenestegrensesnitt kunne kostnadene for arkivering
1231 reduseres. Tenk deg at du er en kommune som ønsker et fagsystem integrert
1232 med arkivløsningen din. I dag må fagsystemleverandøren vite og
1233 tilpasse seg den spesifikke versjonen og varianten av arkivløsningen
1234 du har. Hvis vi antar at alle leverandører av arkivkjerner har solgt
1235 inn enten SOAP eller REST-grensesnitt til kunder de siste 10 årene og
1236 det kommer endret versjon av grensesnittet innimellom, så gir det
1237 veldig mange forskjellige tjenestegrensesnitt en fagsystemleverandør
1238 må forholde seg til. Med 12 leverandører og kvartalsvise oppdateringer
1239 kan det potensielt bli 96 ulike varianter hvert eneste år. Det sier
1240 seg selv at det blir dyrt. Men det blir faktisk verre. Hvis du senere
1241 ønsker å bytte ut arkivsystemet med et annet så er du avhengig å få
1242 alle integrasjonene dine laget på nytt. Dette kan gjøre at du velger å
1243 forbli hos en dårlig leverandør framfor å skaffe nytt system, fordi
1244 det blir for vanskelig og dyrt å bytte. Dermed etableres det «små»
1245 monopolsituasjoner som er vanskelig å bryte ut av. Dårlige valg i dag
1246 kan ha uante kostander på sikt. I Nikita-prosjektet har vi kun jobbet
1247 opp mot Noark 5 Tjenestegrensesnittet. Det har tatt en god del
1248 ressurser å sette seg inn i spesifikasjonen og ta den i bruk, spesielt
1249 på grunn av uklarheter i spesifikasjonen. Hvis vi måtte gjøre det
1250 samme for alle versjoner og varianter av de forskjellige
1251 tjenestegrensesnittene ville det blitt veldig tidkrevende og
1252 kostbart.</p>
1253
1254 <p>For deg som arkivar er digitalisering og systemer som skal virke
1255 sammen en del av den nye hverdagen. Du har kanskje blitt skånet for
1256 det ved å kjøpe svarte bokser, men du risikerer at du gjør deg selv en
1257 bjørnetjeneste. Det kan oppleves som kjedelig å fortelle kolleger at
1258 du skal sette deg inn i et tjenestegrensesnitt, men dette er faktisk
1259 veldig spennende. Tjenestegrensesnittet er på en måte blitt levende og
1260 det er spesielt et begrep du bør merke deg: OData. Å trekke inn deler
1261 av OData-standarden som en måte å filtrere entitetsøk i et arkivsystem
1262 var et nyttig trekk i prosjektet. Følgende eksempel er en
1263 OData-spørring det går an å sende inn til en standardisert
1264 arkivkjerne:</p>
1265
1266 <p><blockquote>
1267 .../sakarkiv/journalpost?filter=contains(tittel, 'nabovarsel')
1268 </blockquote></p>
1269
1270 <p>Spørringen over vil hente en liste av alle dine journalposter der
1271 tittelen til journalposten inneholder ordet 'nabovarsel'. Alle
1272 leverandører som implementerer tjenestegrensesnittet vil måtte tilby
1273 dette. Det betyr at hvis du lærer dette språket for et system, vil det
1274 være gjeldende for alle. Dette er egentlig en ny måte å søke i
1275 arkivdatabasen på og vil være svært nyttig, for eksempel kan søk i
1276 tjenestegrensesnittet antagelig brukes til å hente ut offentlig
1277 postjournal. I arkivverden pleier vi å like teknologier som er
1278 menneskelesbart, da vet vi det er enkelt og nyttig! OData er også
1279 viktig fordi det kan bli en ny måte å svare innsynsforespørsler på i
1280 tråd med offentlighetsloven § 9, der retten til å kreve innsyn i
1281 sammenstilling fra databaser er nedfelt. I dag ser vi
1282 forvaltningsorganer som avviser slike krav fordi det «ikke kan gjøres
1283 med enkle framgangsmåter». Bruken av OData i tjenestegrensesnittet,
1284 sammen med maskinlesbar markeringsformater kan være et viktig bidrag
1285 til å åpne arkivene i tråd med prinsippene om en åpen og transparent
1286 forvaltning.</p>
1287
1288 <p>Standardisering er viktig fordi det <em>kan</em> sikre samvirke.
1289 Men den effekten kommer kun hvis standardiseringen sikrer at alle
1290 forstår standarden på samme måte, dvs. at den er entydig og klar. En
1291 god måte å sikre en entydig og klar spesifikasjon er ved å kreve at
1292 det finnes minst to ulike implementasjoner som følger spesifikasjonen
1293 og som kan snakke sammen, det vil si at de snakker samme språk, slik
1294 IETF krever for alle sine standarder, før spesifikasjonen anses å være
1295 ferdig. Tilbakemelding fra miljøet forteller at både leverandører og
1296 kunder har et avslappet forhold til Noark 5 Tjenestegrensesnitt og det
1297 er så langt kun Evry som har visst offentlig at de har en
1298 implementasjon av tjenestegrensesnittet. Evry, HK Data og Fredrikstad
1299 kommune er igang med et pilotprosjekt på Noark 5
1300 Tjenestegrensesnitt. For å redusere kostnadene for samvirkende
1301 datasystemer betraktelig, er det veldig viktig at vi kommer i en
1302 situasjon der alle leverandører har sine egne implementasjoner av
1303 tjenestegrensesnittet, og at disse oppfører seg likt og i tråd med det
1304 som er beskrevet i spesifikasjonen.</p>
1305
1306 <p>Det er her fri programvare spiller en viktig rolle. Med en uklar
1307 standard blir det som en polsk riksdag, der ingenting fungerer. Nikita
1308 er en fri programvareimplementasjon av tjenestegrensesnitt og kan
1309 fungere som teknisk referanse slik at leverandører enklere kan se og
1310 forstå hvordan standarden skal tolkes. Vi har i Nikitaprosjektet
1311 erfart å ende opp med vidt forskjellige tolkninger når
1312 prosjektmedlemmene leser spesifikasjonsteksten, en effekt av en uklar
1313 spesifikasjon. Men Nikitaprosjektet har også utviklet et test-program
1314 som sjekker om et tjenestegrensesnitt er i samsvar med standarden, og
1315 prosjektet bruker det hele tiden for å sikre at endringer og
1316 forbedringer fungerer. Egenerklæringsskjemaenes dager kan være talte!
1317 Snart vil du selv kunne teste hver oppdatering av arkivsystemet med en
1318 uavhengig sjekk.</p>
1319
1320 <p>Fri programvare representerer en demokratisering av kunnskap der
1321 tolkning- og innlåsingsmakt flyttes fra leverandør til allmenheten.
1322 Med fri programvare har du en litt annerledes verdikjede, der selve
1323 produktet ikke holdes hemmelig for å tjene penger, slik en gjør med
1324 ufri programvare og skytjenester som ikke bruker fri programvare, men
1325 du kan tjene penger på andre deler av verdikjeden. Med fri programvare
1326 kan samfunnet betale for å videreutvikle nyttig
1327 fellesfunksjonalitet.</p>
1328
1329 <p>Nikita er en fri programvareimplementasjon av tjenestegrensesnittet og
1330 kan fungere som en referanseimplementasjon dersom det er ønskelig.
1331 Alle har lik tilgang til koden og det koster ingenting å ta den i bruk
1332 og utforske det. Nikitaprosjektet ønsker tjenestegrensesnittet
1333 velkommen og stiller veldig gjerne opp i diskusjoner om tolkning av
1334 tjenestegrensesnittet. Nikita er bygget på moderne
1335 programmeringsrammeverk og utviklet i full åpenhet. Men Nikita er ikke
1336 noe du kan kjøpe. Nikita er først og fremst et verktøy for forsking og
1337 utvikling laget for å fremme forskning på arkivfeltet. Systemer som
1338 virker sammen har alltid vært hovedfokus og vil være det fremover.
1339 Det brukes som undervisningsverktøy der studentene ved OsloMet lærer
1340 om administrativt oppsett, saksbehandling, uttrekk og samvirkende
1341 datasystemer. Det brukes også som forskningsobjekt der vi ser på
1342 import av dokumentsamlinger, bruk av blokkjede og andre nyskapende
1343 måter å tenke arkiv på. Det er dog helt greit om andre tar Nikita og
1344 pakker det for å selge det som produkt. Forvaltningsorganer med
1345 sterke drift- og utviklingsmiljøer kan også se på Nikita og utforske
1346 hva som er mulig. Dette kan de gjøre uten å måtte betale for
1347 bruksrettigheter eller tilgang til konsulenter. Men arkivering blir
1348 ikke gratis på grunn av Nikita. Det trengs fortsatt folk med
1349 kompetanse og tid til å ta i bruk Nikita.</p>
1350
1351 <p>Nikita har nylig kommet med en ny utgave, den sjette i rekken.
1352 Systemet er ikke ferdig, mest på grunn av at API-spesifikasjonen for
1353 Noark 5 Tjenestegrensesnitt ikke er ferdig, men allerede i dag kan en
1354 bruke Nikita som arkiv. Vi har laget eksempelsystem for å importere
1355 data fra deponi-XML og slik gjøre eksisterende arkivdata tilgjengelig
1356 via et API. Vi har også laget en testklient som importerer epost inn
1357 i arkivet med vedlegg der epostenes trådinformasjon brukes til å legge
1358 eposttråder i samme arkivmappe, og en annen testklient som henter
1359 epost ut av en arkivmappe på mbox-format slik at en vanlig epostklient
1360 kan brukes til å lese igjennom og svare på epostene i en
1361 arkivmappe. De som vil ta en titt på Nikita kan besøke
1362 <a href="https://nikita.oslomet.no">https://nikita.oslomet.no</a> og
1363 logge inn med brukernavn «admin@example.com» og passord «password».
1364 Dette gir tilgang til det forenklede brukergrensesnittet som brukes
1365 til undervisning. De som heller vil ta en titt under panseret kan
1366 besøke
1367 <a href="https://nikita.oslomet.no/browse.html">https://nikita.oslomet.no/browse.html</a>
1368 og der se hvordan API-et fungerer mer i detalj. Innloggingsdetaljer
1369 her er det samme som for brukergrensesnittet.</p>
1370
1371 <p>Fremover er fokuset på forbedring av spesifikasjonen Noark 5
1372 Tjenestegrensesnitt. De som skrev tjenestegrensesnittet gjorde et
1373 interessant og framtidsrettet grep, de skilte sak fra arkiv.
1374 Tjenestegrensesnittet består av flere "pakker", der noen er
1375 grunnleggende mens andre bygger på de grunnleggende pakkene. Pakkene
1376 som er beskrevet så langt heter «arkivstruktur», «sakarkiv»,
1377 «administrasjon», «loggogsporing» og «moeter» (dessverre
1378 <a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/pull/120">planlagt
1379 fjernet</a> i første utgave). Etter hvert håper vi å utforske
1380 prosses- og metadatabeskrivelser til flere fagområder og bidra til at
1381 tjenestegrensesnittet kan legge til flere pakker som «byggarkiv»,
1382 «barnevern», «personal», «barnehage», der arkivfaglig metadata- og
1383 dokumentasjonsbehov er kartlagt og standardisert.</p>
1384
1385 <p>Nikita utvikles av en liten prosjektgruppe, og vi er alltid
1386 interessert å bli flere. Hvis en åpen, fri og standardisert tilnærming
1387 til arkivering høres interessant ut, bli med oss på veien videre. Vi
1388 er tilstede på IRC-kanalen #nikita hos FreeNode (tilgjengelig via
1389 nettleser på
1390 <a href="https://webchat.freenode.net?channels=#nikita">https://webchat.freenode.net?channels=#nikita</a>),
1391 og har en e-postliste nikita-noark@nuug.no hos NUUG (tilgjengelig for
1392 påmelding og arkiv på
1393 <a href="https://lists.nuug.no/mailman/listinfo/nikita-noark">https://lists.nuug.no/mailman/listinfo/nikita-noark</a>)
1394 der en kan følge med eller være med oss på den spennende veien videre.
1395 Spesifikasjonen for Noark 5 Tjenestegrensesnitt vedlikeholdes på
1396 github,
1397 <a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/">https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/</a>.</p>
1398
1399 <p>Som vanlig, hvis du bruker Bitcoin og ønsker å vise din støtte til
1400 det jeg driver med, setter jeg pris på om du sender Bitcoin-donasjoner
1401 til min adresse
1402 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
1403
1404 </div>
1405 <div class="tags">
1406
1407
1408 Tags: <a href="http://www.hungry.com/~pere/blog/tags/noark5">noark5</a>, <a href="http://www.hungry.com/~pere/blog/tags/norsk">norsk</a>, <a href="http://www.hungry.com/~pere/blog/tags/standard">standard</a>.
1409
1410
1411 </div>
1412 </div>
1413 <div class="padding"></div>
1414
1415 <div class="entry">
1416 <div class="title">
1417 <a href="http://www.hungry.com/~pere/blog/Official_MIME_type__text_vnd_sosi__for_SOSI_map_data.html">Official MIME type "text/vnd.sosi" for SOSI map data</a>
1418 </div>
1419 <div class="date">
1420 4th June 2019
1421 </div>
1422 <div class="body">
1423 <p>Just 15 days ago,
1424 <ahref="http://www.hungry.com/~pere/blog/MIME_type__text_vnd_sosi__for_SOSI_map_data.html">I
1425 mentioned</a> my submission to IANA to register an official MIME type
1426 for the SOSI vector map format. This morning, just an hour ago, I was
1427 notified that
1428 <a href="https://www.iana.org/assignments/media-types/text/vnd.sosi">the
1429 MIME type "text/vnd.sosi"</a> is registered for this format. In
1430 addition to this registration, my
1431 <a href="https://github.com/file/file/blob/master/magic/Magdir/sosi">file(1)
1432 patch for a pattern matching rule for SOSI files</a> has been accepted
1433 into the official source of that program (pending a new release), and
1434 I've been told by the team behind
1435 <a href="https://www.nationalarchives.gov.uk/PRONOM/">PRONOM</a> that
1436 the SOSI format will be included in the next release of PRONOM, which
1437 they plan to release this summer around July.</p>
1438
1439 <p>I am very happy to see all of this fall into place, for use by
1440 <a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/">the
1441 Noark 5 Tjenestegrensesnitt</a> implementations.</p>
1442
1443 <p>As usual, if you use Bitcoin and want to show your support of my
1444 activities, please send Bitcoin donations to my address
1445 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
1446
1447 </div>
1448 <div class="tags">
1449
1450
1451 Tags: <a href="http://www.hungry.com/~pere/blog/tags/english">english</a>, <a href="http://www.hungry.com/~pere/blog/tags/kart">kart</a>, <a href="http://www.hungry.com/~pere/blog/tags/noark5">noark5</a>, <a href="http://www.hungry.com/~pere/blog/tags/standard">standard</a>.
1452
1453
1454 </div>
1455 </div>
1456 <div class="padding"></div>
1457
1458 <div class="entry">
1459 <div class="title">
1460 <a href="http://www.hungry.com/~pere/blog/Nikita_version_0_4_released___free_software_archive_API_server.html">Nikita version 0.4 released - free software archive API server</a>
1461 </div>
1462 <div class="date">
1463 22nd May 2019
1464 </div>
1465 <div class="body">
1466 <p>This morning, a new release of
1467 <a href="https://gitlab.com/OsloMet-ABI/nikita-noark5-core/">Nikita
1468 Noark 5 core project</a> was
1469 <a href="https://lists.nuug.no/pipermail/nikita-noark/2019-May/000468.html">announced
1470 on the project mailing list</a>. The Nikita free software solution is
1471 an implementation of the Norwegian archive standard Noark 5 used by
1472 government offices in Norway. These were the changes in version 0.4
1473 since version 0.3, see the email link above for links to a demo site:</p>
1474
1475 <ul>
1476
1477 <li>Roll out OData handling to all endpoints where applicable</li>
1478 <li>Changed the relation key for "ny-journalpost" to the official one.</li>
1479 <li>Better link generation on outgoing links.</li>
1480 <li>Tidy up code and make code and approaches more consistent throughout
1481 the codebase</li>
1482 <li>Update rels to be in compliance with updated version in the
1483 interface standard</li>
1484 <li>Avoid printing links on empty objects as they can't have links</li>
1485 <li>Small bug fixes and improvements</li>
1486 <li>Start moving generation of outgoing links to @Service layer so access
1487 control can be used when generating links</li>
1488 <li>Log exception that was being swallowed so it's traceable</li>
1489 <li>Fix name mapping problem</li>
1490 <li>Update templated printing so templated should only be printed if it
1491 is set true. Requires more work to roll out across entire
1492 application.</li>
1493 <li>Remove Record->DocumentObject as per domain model of n5v4</li>
1494 <li>Add ability to delete lists filtered with OData</li>
1495 <li>Return NO_CONTENT (204) on delete as per interface standard</li>
1496 <li>Introduce support for ConstraintViolationException exception</li>
1497 <li>Make Service classes extend NoarkService</li>
1498 <li>Make code base respect X-Forwarded-Host, X-Forwarded-Proto and
1499 X-Forwarded-Port</li>
1500 <li>Update CorrespondencePart* code to be more in line with Single
1501 Responsibility Principle</li>
1502 <li>Make package name follow directory structure</li>
1503 <li>Make sure Document number starts at 1, not 0</li>
1504 <li>Fix isues discovered by FindBugs</li>
1505 <li>Update from Date to ZonedDateTime</li>
1506 <li>Fix wrong tablename</li>
1507 <li>Introduce Service layer tests</li>
1508 <li>Improvements to CorrespondencePart</li>
1509 <li>Continued work on Class / Classificationsystem</li>
1510 <li>Fix feature where authors were stored as storageLocations</li>
1511 <li>Update HQL builder for OData</li>
1512 <li>Update OData search capability from webpage</li>
1513
1514 </ul>
1515
1516 <p>If free and open standardized archiving API sound interesting to
1517 you, please contact us on IRC
1518 (<a href="irc://irc.freenode.net/%23nikita">#nikita on
1519 irc.freenode.net</a>) or email
1520 (<a href="https://lists.nuug.no/mailman/listinfo/nikita-noark">nikita-noark
1521 mailing list</a>).</p>
1522
1523 <p>As usual, if you use Bitcoin and want to show your support of my
1524 activities, please send Bitcoin donations to my address
1525 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
1526
1527 </div>
1528 <div class="tags">
1529
1530
1531 Tags: <a href="http://www.hungry.com/~pere/blog/tags/english">english</a>, <a href="http://www.hungry.com/~pere/blog/tags/noark5">noark5</a>, <a href="http://www.hungry.com/~pere/blog/tags/nuug">nuug</a>, <a href="http://www.hungry.com/~pere/blog/tags/offentlig innsyn">offentlig innsyn</a>, <a href="http://www.hungry.com/~pere/blog/tags/standard">standard</a>.
1532
1533
1534 </div>
1535 </div>
1536 <div class="padding"></div>
1537
1538 <div class="entry">
1539 <div class="title">
1540 <a href="http://www.hungry.com/~pere/blog/MIME_type__text_vnd_sosi__for_SOSI_map_data.html">MIME type "text/vnd.sosi" for SOSI map data</a>
1541 </div>
1542 <div class="date">
1543 20th May 2019
1544 </div>
1545 <div class="body">
1546 <p>As part of my involvement in the work to
1547 <a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard">standardise
1548 a REST based API for Noark 5</a>, the Norwegian archiving standard, I
1549 spent some time the last few months to try to register a
1550 <a href="https://www.iana.org/assignments/media-types/">MIME type</a>
1551 and <a href="https://www.nationalarchives.gov.uk/PRONOM/">PRONOM
1552 code</a> for the SOSI file format. The background is that there is a
1553 set of formats approved for long term storage and archiving in Norway,
1554 and among these formats, SOSI is the only format missing a MIME type
1555 and PRONOM code.</p>
1556
1557 <p>What is SOSI, you might ask? To quote Wikipedia: SOSI is short for
1558 Samordnet Opplegg for Stedfestet Informasjon (literally "Coordinated
1559 Approach for Spatial Information", but more commonly expanded in
1560 English to Systematic Organization of Spatial Information). It is a
1561 text based file format for geo-spatial vector information used in
1562 Norway. Information about the SOSI format can be found in English
1563 from <a href="https://en.wikipedia.org/wiki/SOSI">Wikipedia</a>. The
1564 specification is available in Norwegian from
1565 <a href="https://www.kartverket.no/geodataarbeid/Standarder/SOSI/">the
1566 Norwegian mapping authority</a>. The SOSI standard, which originated
1567 in the beginning of nineteen eighties, was the inspiration and formed the
1568 basis for the XML based
1569 <a href="https://en.wikipedia.org/wiki/Geography_Markup_Language">Geography
1570 Markup Language</a>.</p>
1571
1572 <p>I have so far written
1573 <a href="https://github.com/file/file/pull/67">a pattern matching
1574 rule</a> for the file(1) unix tool to recognize SOSI files, submitted
1575 a request to the PRONOM project to have a PRONOM ID assigned to the
1576 format (reference TNA1555078202S60), and today send a request to IANA
1577 to register the "text/vnd.sosi" MIME type for this format (referanse
1578 <a href="https://tools.iana.org/public-view/viewticket/1143144">IANA
1579 #1143144</a>). If all goes well, in a few months, anyone implementing
1580 the Noark 5 Tjenestegrensesnitt API spesification should be able to
1581 use an official MIME type and PRONOM code for SOSI files. In
1582 addition, anyone using SOSI files on Linux should be able to
1583 automatically recognise the format and web sites handing out SOSI
1584 files can begin providing a more specific MIME type. So far, SOSI
1585 files has been handed out from web sites using the
1586 "application/octet-stream" MIME type, which is just a nice way of
1587 stating "I do not know". Soon, we will know. :)</p>
1588
1589 <p>As usual, if you use Bitcoin and want to show your support of my
1590 activities, please send Bitcoin donations to my address
1591 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
1592
1593 </div>
1594 <div class="tags">
1595
1596
1597 Tags: <a href="http://www.hungry.com/~pere/blog/tags/english">english</a>, <a href="http://www.hungry.com/~pere/blog/tags/kart">kart</a>, <a href="http://www.hungry.com/~pere/blog/tags/noark5">noark5</a>, <a href="http://www.hungry.com/~pere/blog/tags/standard">standard</a>.
1598
1599
1600 </div>
1601 </div>
1602 <div class="padding"></div>
1603
1604 <div class="entry">
1605 <div class="title">
1606 <a href="http://www.hungry.com/~pere/blog/PlantUML_for_text_based_UML_diagram_modelling___nice_free_software.html">PlantUML for text based UML diagram modelling - nice free software</a>
1607 </div>
1608 <div class="date">
1609 25th March 2019
1610 </div>
1611 <div class="body">
1612 <p>As part of my involvement with the
1613 <a href="https://gitlab.com/OsloMet-ABI/nikita-noark5-core/">Nikita
1614 Noark 5 core project</a>, I have been proposing improvements to the
1615 API specification created by <a href="https://www.arkivverket.no/">The
1616 National Archives of Norway</a> and helped migrating the text from a
1617 version control system unfriendly binary format (docx) to Markdown in
1618 git. Combined with the migration to a public git repository (on
1619 github), this has made it possible for anyone to suggest improvement
1620 to the text.</p>
1621
1622 <p>The specification is filled with UML diagrams. I believe the
1623 original diagrams were modelled using Sparx Systems Enterprise
1624 Architect, and exported as EMF files for import into docx. This
1625 approach make it very hard to track changes using a version control
1626 system. To improve the situation I have been looking for a good text
1627 based UML format with associated command line free software tools on
1628 Linux and Windows, to allow anyone to send in corrections to the UML
1629 diagrams in the specification. The tool must be text based to work
1630 with git, and command line to be able to run it automatically to
1631 generate the diagram images. Finally, it must be free software to
1632 allow anyone, even those that can not accept a non-free software
1633 license, to contribute.</p>
1634
1635 <p>I did not know much about free software UML modelling tools when I
1636 started. I have used dia and inkscape for simple modelling in the
1637 past, but neither are available on Windows, as far as I could tell. I
1638 came across a nice
1639 <a href="https://modeling-languages.com/text-uml-tools-complete-list/">list
1640 of text mode uml tools</a>, and tested out a few of the tools listed
1641 there. <a href="http://plantuml.com/">The PlantUML tool</a> seemed
1642 most promising. After verifying that the packages
1643 <a href="https://tracker.debian.org/pkg/plantuml">is available in
1644 Debian</a> and found <a href="https://github.com/plantuml/plantuml">its
1645 Java source</a> under a GPL license on github, I set out to test if it
1646 could represent the diagrams we needed, ie the ones currently in
1647 <a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/">the
1648 Noark 5 Tjenestegrensesnitt specification</a>. I am happy to report
1649 that it could represent them, even thought it have a few warts here
1650 and there.</p>
1651
1652 <p>After a few days of modelling I completed the task this weekend. A
1653 temporary link to the complete set of diagrams (original and from
1654 PlantUML) is available in
1655 <a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues/76">the
1656 github issue discussing the need for a text based UML format</a>, but
1657 please note I lack a sensible tool to convert EMF files to PNGs, so
1658 the "original" rendering is not as good as the original was in the
1659 publised PDF.</p>
1660
1661 <p>Here is an example UML diagram, showing the core classes for
1662 keeping metadata about archived documents:</p>
1663
1664 <pre>
1665 @startuml
1666 skinparam classAttributeIconSize 0
1667
1668 !include media/uml-class-arkivskaper.iuml
1669 !include media/uml-class-arkiv.iuml
1670 !include media/uml-class-klassifikasjonssystem.iuml
1671 !include media/uml-class-klasse.iuml
1672 !include media/uml-class-arkivdel.iuml
1673 !include media/uml-class-mappe.iuml
1674 !include media/uml-class-merknad.iuml
1675 !include media/uml-class-registrering.iuml
1676 !include media/uml-class-basisregistrering.iuml
1677 !include media/uml-class-dokumentbeskrivelse.iuml
1678 !include media/uml-class-dokumentobjekt.iuml
1679 !include media/uml-class-konvertering.iuml
1680 !include media/uml-datatype-elektronisksignatur.iuml
1681
1682 Arkivstruktur.Arkivskaper "+arkivskaper 1..*" <-o "+arkiv 0..*" Arkivstruktur.Arkiv
1683 Arkivstruktur.Arkiv o--> "+underarkiv 0..*" Arkivstruktur.Arkiv
1684 Arkivstruktur.Arkiv "+arkiv 1" o--> "+arkivdel 0..*" Arkivstruktur.Arkivdel
1685 Arkivstruktur.Klassifikasjonssystem "+klassifikasjonssystem [0..1]" <--o "+arkivdel 1..*" Arkivstruktur.Arkivdel
1686 Arkivstruktur.Klassifikasjonssystem "+klassifikasjonssystem [0..1]" o--> "+klasse 0..*" Arkivstruktur.Klasse
1687 Arkivstruktur.Arkivdel "+arkivdel 0..1" o--> "+mappe 0..*" Arkivstruktur.Mappe
1688 Arkivstruktur.Arkivdel "+arkivdel 0..1" o--> "+registrering 0..*" Arkivstruktur.Registrering
1689 Arkivstruktur.Klasse "+klasse 0..1" o--> "+mappe 0..*" Arkivstruktur.Mappe
1690 Arkivstruktur.Klasse "+klasse 0..1" o--> "+registrering 0..*" Arkivstruktur.Registrering
1691 Arkivstruktur.Mappe --> "+undermappe 0..*" Arkivstruktur.Mappe
1692 Arkivstruktur.Mappe "+mappe 0..1" o--> "+registrering 0..*" Arkivstruktur.Registrering
1693 Arkivstruktur.Merknad "+merknad 0..*" <--* Arkivstruktur.Mappe
1694 Arkivstruktur.Merknad "+merknad 0..*" <--* Arkivstruktur.Dokumentbeskrivelse
1695 Arkivstruktur.Basisregistrering -|> Arkivstruktur.Registrering
1696 Arkivstruktur.Merknad "+merknad 0..*" <--* Arkivstruktur.Basisregistrering
1697 Arkivstruktur.Registrering "+registrering 1..*" o--> "+dokumentbeskrivelse 0..*" Arkivstruktur.Dokumentbeskrivelse
1698 Arkivstruktur.Dokumentbeskrivelse "+dokumentbeskrivelse 1" o-> "+dokumentobjekt 0..*" Arkivstruktur.Dokumentobjekt
1699 Arkivstruktur.Dokumentobjekt *-> "+konvertering 0..*" Arkivstruktur.Konvertering
1700 Arkivstruktur.ElektroniskSignatur -[hidden]-> Arkivstruktur.Dokumentobjekt
1701 @enduml
1702 </pre>
1703
1704 <p><a href="http://plantuml.com/class-diagram">The format</a> is quite
1705 compact, with little redundant information. The text expresses
1706 entities and relations, and there is little layout related fluff. One
1707 can reuse content by using include files, allowing for consistent
1708 naming across several diagrams. The include files can be standalone
1709 PlantUML too. Here is the content of
1710 <tt>media/uml-class-arkivskaper.iuml</tt>:</p>
1711
1712 <pre>
1713 @startuml
1714 class Arkivstruktur.Arkivskaper <Arkivenhet> {
1715 +arkivskaperID : string
1716 +arkivskaperNavn : string
1717 +beskrivelse : string [0..1]
1718 }
1719 @enduml
1720 </pre>
1721
1722 <p>This is what the complete diagram for the PlantUML notation above
1723 look like:</p>
1724
1725 <p><img width="80%" src="http://www.hungry.com/~pere/blog/images/2019-03-25-noark5-plantuml-diagrameksempel.png"></p>
1726
1727 <p>A cool feature of PlantUML is that the generated PNG files include
1728 the entire original source diagram as text. The source (with include
1729 statements expanded) can be extracted using for example
1730 <tt>exiftool</tt>. Another cool feature is that parts of the entities
1731 can be hidden after inclusion. This allow to use include files with
1732 all attributes listed, even for UML diagrams that should not list any
1733 attributes.</p>
1734
1735 <p>The diagram also show some of the warts. Some times the layout
1736 engine place text labels on top of each other, and some times it place
1737 the class boxes too close to each other, not leaving room for the
1738 labels on the relationship arrows. The former can be worked around by
1739 placing extra newlines in the labes (ie "\n"). I did not do it here
1740 to be able to demonstrate the issue. I have not found a good way
1741 around the latter, so I normally try to reduce the problem by changing
1742 from vertical to horizontal links to improve the layout.</p>
1743
1744 <p>All in all, I am quite happy with PlantUML, and very impressed with
1745 how quickly its lead developer responds to questions. So far I got an
1746 answer to my questions in a few hours when I send an email. I
1747 definitely recommend looking at PlantUML if you need to make UML
1748 diagrams. Note, PlantUML can draw a lot more than class relations.
1749 Check out the documention for a complete list. :)</p>
1750
1751 <p>As usual, if you use Bitcoin and want to show your support of my
1752 activities, please send Bitcoin donations to my address
1753 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
1754
1755 </div>
1756 <div class="tags">
1757
1758
1759 Tags: <a href="http://www.hungry.com/~pere/blog/tags/english">english</a>, <a href="http://www.hungry.com/~pere/blog/tags/nice free software">nice free software</a>, <a href="http://www.hungry.com/~pere/blog/tags/noark5">noark5</a>, <a href="http://www.hungry.com/~pere/blog/tags/nuug">nuug</a>, <a href="http://www.hungry.com/~pere/blog/tags/standard">standard</a>.
1760
1761
1762 </div>
1763 </div>
1764 <div class="padding"></div>
1765
1766 <div class="entry">
1767 <div class="title">
1768 <a href="http://www.hungry.com/~pere/blog/Release_0_3_of_free_software_archive_API_system_Nikita_announced.html">Release 0.3 of free software archive API system Nikita announced</a>
1769 </div>
1770 <div class="date">
1771 24th March 2019
1772 </div>
1773 <div class="body">
1774 <p>Yesterday, a new release of
1775 <a href="https://gitlab.com/OsloMet-ABI/nikita-noark5-core/">Nikita
1776 Noark 5 core project</a> was
1777 <a href="https://lists.nuug.no/pipermail/nikita-noark/2019-March/000451.html">announced
1778 on the project mailing list</a>. The free software solution is an
1779 implementation of the Norwegian archive standard Noark 5 used by
1780 government offices in Norway. These were the changes in version 0.3
1781 since version 0.2.1 (from NEWS.md):</p>
1782
1783 <ul>
1784 <li>Improved ClassificationSystem and Class behaviour.</li>
1785 <li>Tidied up known inconsistencies between domain model and hateaos links.</li>
1786 <li>Added experimental code for blockchain integration. </li>
1787 <li>Make token expiry time configurable at upstart from properties file.</li>
1788 <li>Continued work on OData search syntax.</li>
1789 <li>Started work on pagination for entities, partly implemented for Saksmappe.</li>
1790 <li>Finalise ClassifiedCode Metadata entity.</li>
1791 <li>Implement mechanism to check if authentication token is still
1792 valid. This allow the GUI to return a more sensible message to the
1793 user if the token is expired.</li>
1794 <li>Reintroduce browse.html page to allow user to browse JSON API using
1795 hateoas links.</li>
1796 <li>Fix bug in handling file/mappe sequence number. Year change was
1797 not properly handled.</li>
1798 <li>Update application yml files to be in sync with current development.</li>
1799 <li>Stop 'converting' everything to PDF using libreoffice. Only
1800 convert the file formats doc, ppt, xls, docx, pptx, xlsx, odt, odp
1801 and ods.</li>
1802 <li>Continued code style fixing, making code more readable.</li>
1803 <li>Minor bug fixes.</li>
1804
1805 </ul>
1806
1807 <p>If free and open standardized archiving API sound interesting to
1808 you, please contact us on IRC
1809 (<a href="irc://irc.freenode.net/%23nikita">#nikita on
1810 irc.freenode.net</a>) or email
1811 (<a href="https://lists.nuug.no/mailman/listinfo/nikita-noark">nikita-noark
1812 mailing list</a>).</p>
1813
1814 <p>As usual, if you use Bitcoin and want to show your support of my
1815 activities, please send Bitcoin donations to my address
1816 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
1817
1818 </div>
1819 <div class="tags">
1820
1821
1822 Tags: <a href="http://www.hungry.com/~pere/blog/tags/english">english</a>, <a href="http://www.hungry.com/~pere/blog/tags/noark5">noark5</a>, <a href="http://www.hungry.com/~pere/blog/tags/nuug">nuug</a>, <a href="http://www.hungry.com/~pere/blog/tags/offentlig innsyn">offentlig innsyn</a>, <a href="http://www.hungry.com/~pere/blog/tags/standard">standard</a>.
1823
1824
1825 </div>
1826 </div>
1827 <div class="padding"></div>
1828
1829 <div class="entry">
1830 <div class="title">
1831 <a href="http://www.hungry.com/~pere/blog/_pen_og_gjennomsiktig_vedlikehold_av_spesifikasjonen_for_Noark_5_Tjenestegrensesnitt.html">Åpen og gjennomsiktig vedlikehold av spesifikasjonen for Noark 5 Tjenestegrensesnitt</a>
1832 </div>
1833 <div class="date">
1834 11th March 2019
1835 </div>
1836 <div class="body">
1837 <p>Et virksomhetsarkiv for meg, er et arbeidsverktøy der en enkelt kan
1838 finne informasjonen en trenger når en trenger det, og der
1839 virksomhetens samlede kunnskap er tilgjengelig. Det må være greit å
1840 finne frem i, litt som en bibliotek. Men der et bibliotek gjerne tar
1841 vare på offentliggjort informasjon som er tilgjengelig flere steder,
1842 tar et arkiv vare på virksomhetsintern og til tider personlig
1843 informasjon som ofte kun er tilgjengelig fra et sted.</p>
1844
1845 <p>Jeg mistenker den eneste måten å sikre at arkivet inneholder den
1846 samlede kunnskapen i en virksomhet, er å bruke det som virksomhetens
1847 kunnskapslager. Det innebærer å automatisk kopiere (brev, epost,
1848 SMS-er etc) inn i arkivet når de sendes og mottas, og der filtrere
1849 vekk det en ikke vil ta vare på, og legge på metadata om det som er
1850 samlet inn for enkel gjenfinning. En slik bruk av arkivet innebærer at
1851 arkivet er en del av daglig virke, ikke at det er siste hvilested for
1852 informasjon ingen lenger har daglig bruk for. For å kunne være en del
1853 av det daglige virket må arkivet enkelt kunne integreres med andre
1854 systemer. I disse dager betyr det å tilby arkivet som en
1855 nett-tjeneste til hele virksomheten, tilgjengelig for både mennesker
1856 og datamaskiner. Det betyr i tur å både tilby nettsider og et
1857 maskinlesbart grensesnitt.</p>
1858
1859 <p>For noen år siden erkjente visjonære arkivarer fordelene med et
1860 standardisert maskinlesbart grensesnitt til organisasjonens arkiv. De
1861 gikk igang med å lage noe de kalte
1862 <a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/">Noark
1863 5 Tjenestegrensesnitt</a>. Gjort riktig, så åpner slike maskinlesbare
1864 grensesnitt for samvirke på tvers av uavhengige programvaresystemer.
1865 Gjort feil, vil det blokkere for samvirke og bidra til
1866 leverandørinnlåsing. For å gjøre det riktig så må grensesnittet være
1867 klart og entydig beskrevet i en spesifikasjon som gjør at
1868 spesifikasjonen tolkes på samme måte uavhengig av hvem som leser den,
1869 og uavhengig av hvem som tar den i bruk.</p>
1870
1871 <p>For å oppnå klare og entydige beskrivelser i en spesifikasjon, som
1872 trengs for å kunne få en fri og åpen standard (se
1873 <a href="http://www.hungry.com/~pere/blog/Fri_og__pen_standard__slik_Digistan_ser_det.html">Digistan-definisjon</a>),
1874 så trengs det en åpen og gjennomsiktig inngangsport med lav terskel,
1875 der de som forsøker å ta den i bruk enkelt kan få inn korreksjoner,
1876 etterlyse klargjøringer og rapportere uklarheter i spesifikasjonen.
1877 En trenger også automatiserte datasystemer som måler og sjekker at et
1878 gitt grensesnitt fungerer i tråd med spesifikasjonen.</p>
1879
1880 <p>For Noark 5 Tjenestegrensesnittet er det nå etablert en slik åpen
1881 og gjennomsiktig inngangsport på prosjekttjenesten github. Denne
1882 inngangsporten består først og fremst av en åpen portal som lar enhver
1883 se hva som er gjort av endringer i spesifikasjonsteksten over tid, men
1884 det hører også med et åpent &quot;diskusjonsforum&quot; der en kan
1885 komme med endringsforslag og forespørsler om klargjøringer. Alle
1886 registrerte brukere på github kan bidra med innspill til disse
1887 henvendelsene.</p>
1888
1889 <p>I samarbeide med Arkivverket har jeg fått opprettet et git-depot
1890 med spesifikasjonsteksten for tjenestegrensesnittet, der det er lagt
1891 inn historikk for endringer i teksten de siste årene, samt lagt inn
1892 endringsforslag og forespørsler om klargjøring av teksten. Bakgrunnen
1893 for at jeg bidro med dette er at jeg er involvert i
1894 <a href="https://gitlab.com/OsloMet-ABI/nikita-noark5-core">Nikita-prosjektet</a>,
1895 som lager en fri programvare-utgave av Noark 5 Tjenestegrensesnitt.
1896 Det er først når en forsøker å lage noe i tråd med en spesifikasjon at
1897 en oppdager hvor mange detaljer som må beskrives i spesifikasjonen for
1898 å sikre samhandling.</p>
1899
1900 <p>Spesifikasjonen vedlikeholdes i et rent tekstformat, for å ha et
1901 format egnet for versjonskontroll via versjontrollsystemet git. Dette
1902 gjør det både enkelt å se konkret hvilke endringer som er gjort når,
1903 samt gjør det praktisk mulig for enhver med github-konto å sende inn
1904 endringsforslag med formuleringer til spesifikasjonsteksten. Dette
1905 tekstformatet vises frem som nettsider på github, slik at en ikke
1906 trenger spesielle verktøy for å se på siste utgave av
1907 spesifikasjonen.</p>
1908
1909 <p>Fra dette rene tekstformatet kan det så avledes ulike formater, som
1910 HTML for websider, PDF for utskrift på papir og ePub for lesing med
1911 ebokleser. Avlednings-systemet (byggesystemet) bruker i dag
1912 verktøyene pandoc, latex, docbook-xsl og GNU make til
1913 transformasjonen. Tekstformatet som brukes dag er
1914 <a href="https://www.markdownguide.org/">Markdown</a>, men det vurderes
1915 å
1916 <a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues/9">endre
1917 til formatet RST</a> i fremtiden for bedre styring av utseende på
1918 PDF-utgaven.</p>
1919
1920 <p>Versjonskontrollsystemet git ble valgt da det er både fleksibelt,
1921 avansert og enkelt å ta i bruk. Github ble valgt (foran f.eks. Gitlab
1922 som vi bruker i Nikita), da Arkivverket allerede hadde tatt i bruk
1923 Github i andre sammenhenger.</p>
1924
1925 <p>Enkle endringer i teksten kan gjøres av priviligerte brukere
1926 direkte i nettsidene til Github, ved å finne aktuell fil som skal
1927 endres (f.eks. kapitler/03-konformitet.md), klikke på den lille
1928 bokstaven i høyre hjørne over teksten. Det kommer opp en nettside der
1929 en kan endre teksten slik en ønsker. Når en er fornøyd med endringen
1930 så må endringen &quot;sjekkes inn&quot; i historikken. Det gjøres ved
1931 å gi en kort beskrivelse av endringen (beskriv helst hvorfor endringen
1932 trengs, ikke hva som er endret), under overskriften &quot;Commit
1933 changes&quot;. En kan og bør legge inn en lengre forklaring i det
1934 større skrivefeltet, før en velger om endringen skal sendes direkte
1935 til 'master'-grenen (dvs. autorativ utgave av spesifikasjonen) eller
1936 om en skal lage en ny gren for denne endringen og opprette en
1937 endringsforespørsel (aka &quot;Pull Request&quot;/PR). Når alt dette
1938 er gjort kan en velge &quot;Commit changes&quot; for å sende inn
1939 endringen. Hvis den er lagt inn i &quot;master&quot;-grenen så er den
1940 en offisiell del av spesifikasjonen med en gang. Hvis den derimot er
1941 en endringsforespørsel, så legges den inn i
1942 <a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/pulls">listen
1943 over forslag til endringer</a> som venter på korrekturlesing og
1944 godkjenning.</p>
1945
1946 <p>Større endringer (for eksempel samtidig endringer i flere filer)
1947 gjøres enklest ved å hente ned en kopi av git-depoet lokalt og gjøre
1948 endringene der før endringsforslaget sendes inn. Denne prosessen er
1949 godt beskrivet i dokumentasjon fra github. Git-prosjektet som skal
1950 &quot;klones&quot; er
1951 <a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/">https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/</a>.</p>
1952
1953 <p>For å registrere nye utfordringer (issues) eller kommentere på
1954 eksisterende utfordringer benyttes nettsiden
1955 <a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues">https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues</a>.
1956 I skrivende stund er det 48 åpne og 11 avsluttede utfordringer. Et
1957 forslag til hva som bør være med når en beskriver en utfordring er
1958 tilgjengelig som utfordring
1959 <a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues/14">#14</a>.</p>
1960
1961 <p>For å bygge en PDF-utgave av spesifikasjonen så bruker jeg i dag en
1962 Debian GNU/Linux-maskin med en rekke programpakker installert. Når
1963 dette er på plass, så holder det å kjøre kommandoen 'make pdf html' på
1964 kommandolinjen, vente ca. 20 sekunder, før spesifikasjon.pdf og
1965 spesifikasjon.html ligger klar på disken. Verktøyene for bygging av
1966 PDF, HTML og ePub-utgave er også tilgjengelig på Windows og
1967 MacOSX.</p>
1968
1969 <p>Github bidrar med rammeverket. Men for at åpent vedlikehold av
1970 spesifikasjonen skal fungere, så trengs det folk som bidrar med sin
1971 tid og kunnskap. Arkivverket har sagt de skal bidra med innspill og
1972 godkjenne forslag til endringer, men det blir størst suksess hvis alle
1973 som bruker og lager systemer basert på Noark 5 Tjenestegrensesnitt
1974 bidrar med sin kunnskap og kommer med forslag til forebedringer. Jeg
1975 stiller. Blir du med?</p>
1976
1977 <p>Det er viktig å legge til rette for åpen diskusjon blant alle
1978 interesserte, som ikke krever at en må godta lange kontrakter med
1979 vilkår for deltagelse. Inntil Arkivverket dukker opp på IRC har vi
1980 laget en IRC-kanal der interesserte enkelt kan orientere seg og
1981 diskutere tjenestegrensesnittet. Alle er velkommen til å ta turen
1982 innom
1983 <a href="https://webchat.freenode.net/?channels=nikita">#nikita</a>
1984 (f.eks. via irc.freenode.net) for å møte likesinnede.</p>
1985
1986 <p>Det holder dog ikke å ha en god spesifikasjon, hvis ikke de som tar
1987 den i bruk gjør en like god jobb. For å automatisk teste om et konkret
1988 tjenestegrensesnitt følger (min) forståelse av
1989 spesifikasjonsdokumentet, har jeg skrevet et program som kobler seg
1990 opp til et Noark 5v4 REST-tjeneste og tester alt den finner for å se
1991 om det er i henhold til min tolkning av spesifikasjonen. Dette
1992 verktøyet er tilgjengelig fra
1993 <a href="https://github.com/petterreinholdtsen/noark5-tester">https://github.com/petterreinholdtsen/noark5-tester</a>,
1994 og brukes daglig mens vi utvikler Nikita for å sikre at vi ikke
1995 introduserer nye feil. Hvis en skal sikre samvirke på tvers av ulike
1996 systemer er det helt essensielt å kunne raskt og automatisk sjekke at
1997 tjenestegrensesnittet oppfører seg som forventet. Jeg håper andre som
1998 lager sin utgave av tjenestegrensesnittet vi bruke dette verktøyet,
1999 slik at vi tidlig og raskt kan oppdage hvor vi har tolket
2000 spesifikasjonen ulikt, og dermed få et godt grunnlag for å gjøre
2001 spesifikasjonsteksten enda klarere og bedre.</p>
2002
2003 <p>Dagens beskrivelse av Noark 5 Tjenestegrensesnitt er et svært godt
2004 utgangspunkt for å gjøre virksomhetens arkiv til et dynamisk og
2005 sentralt arbeidsverktøy i organisasjonen. Blir du med å gjøre den
2006 enda bedre?</p>
2007
2008 </div>
2009 <div class="tags">
2010
2011
2012 Tags: <a href="http://www.hungry.com/~pere/blog/tags/digistan">digistan</a>, <a href="http://www.hungry.com/~pere/blog/tags/noark5">noark5</a>, <a href="http://www.hungry.com/~pere/blog/tags/norsk">norsk</a>, <a href="http://www.hungry.com/~pere/blog/tags/standard">standard</a>.
2013
2014
2015 </div>
2016 </div>
2017 <div class="padding"></div>
2018
2019 <div class="entry">
2020 <div class="title">
2021 <a href="http://www.hungry.com/~pere/blog/Time_for_an_official_MIME_type_for_patches_.html">Time for an official MIME type for patches?</a>
2022 </div>
2023 <div class="date">
2024 1st November 2018
2025 </div>
2026 <div class="body">
2027 <p>As part of my involvement in
2028 <a href="https://gitlab.com/OsloMet-ABI/nikita-noark5-core">the Nikita
2029 archive API project</a>, I've been importing a fairly large lump of
2030 emails into a test instance of the archive to see how well this would
2031 go. I picked a subset of <a href="https://notmuchmail.org/">my
2032 notmuch email database</a>, all public emails sent to me via
2033 @lists.debian.org, giving me a set of around 216 000 emails to import.
2034 In the process, I had a look at the various attachments included in
2035 these emails, to figure out what to do with attachments, and noticed
2036 that one of the most common attachment formats do not have
2037 <a href="https://www.iana.org/assignments/media-types/media-types.xhtml">an
2038 official MIME type</a> registered with IANA/IETF. The output from
2039 diff, ie the input for patch, is on the top 10 list of formats
2040 included in these emails. At the moment people seem to use either
2041 text/x-patch or text/x-diff, but neither is officially registered. It
2042 would be better if one official MIME type were registered and used
2043 everywhere.</p>
2044
2045 <p>To try to get one official MIME type for these files, I've brought
2046 up the topic on
2047 <a href="https://www.ietf.org/mailman/listinfo/media-types">the
2048 media-types mailing list</a>. If you are interested in discussion
2049 which MIME type to use as the official for patch files, or involved in
2050 making software using a MIME type for patches, perhaps you would like
2051 to join the discussion?</p>
2052
2053 <p>As usual, if you use Bitcoin and want to show your support of my
2054 activities, please send Bitcoin donations to my address
2055 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
2056
2057 </div>
2058 <div class="tags">
2059
2060
2061 Tags: <a href="http://www.hungry.com/~pere/blog/tags/debian">debian</a>, <a href="http://www.hungry.com/~pere/blog/tags/english">english</a>, <a href="http://www.hungry.com/~pere/blog/tags/noark5">noark5</a>, <a href="http://www.hungry.com/~pere/blog/tags/standard">standard</a>.
2062
2063
2064 </div>
2065 </div>
2066 <div class="padding"></div>
2067
2068 <div class="entry">
2069 <div class="title">
2070 <a href="http://www.hungry.com/~pere/blog/Release_0_2_of_free_software_archive_system_Nikita_announced.html">Release 0.2 of free software archive system Nikita announced</a>
2071 </div>
2072 <div class="date">
2073 18th October 2018
2074 </div>
2075 <div class="body">
2076 <p>This morning, the new release of the
2077 <a href="https://gitlab.com/OsloMet-ABI/nikita-noark5-core/">Nikita
2078 Noark 5 core project</a> was
2079 <a href="https://lists.nuug.no/pipermail/nikita-noark/2018-October/000406.html">announced
2080 on the project mailing list</a>. The free software solution is an
2081 implementation of the Norwegian archive standard Noark 5 used by
2082 government offices in Norway. These were the changes in version 0.2
2083 since version 0.1.1 (from NEWS.md):
2084
2085 <ul>
2086 <li>Fix typos in REL names</li>
2087 <li>Tidy up error message reporting</li>
2088 <li>Fix issue where we used Integer.valueOf(), not Integer.getInteger()</li>
2089 <li>Change some String handling to StringBuffer</li>
2090 <li>Fix error reporting</li>
2091 <li>Code tidy-up</li>
2092 <li>Fix issue using static non-synchronized SimpleDateFormat to avoid
2093 race conditions</li>
2094 <li>Fix problem where deserialisers were treating integers as strings</li>
2095 <li>Update methods to make them null-safe</li>
2096 <li>Fix many issues reported by coverity</li>
2097 <li>Improve equals(), compareTo() and hash() in domain model</li>
2098 <li>Improvements to the domain model for metadata classes</li>
2099 <li>Fix CORS issues when downloading document</li>
2100 <li>Implementation of case-handling with registryEntry and document upload</li>
2101 <li>Better support in Javascript for OPTIONS</li>
2102 <li>Adding concept description of mail integration</li>
2103 <li>Improve setting of default values for GET on ny-journalpost</li>
2104 <li>Better handling of required values during deserialisation </li>
2105 <li>Changed tilknyttetDato (M620) from date to dateTime</li>
2106 <li>Corrected some opprettetDato (M600) (de)serialisation errors.</li>
2107 <li>Improve parse error reporting.</li>
2108 <li>Started on OData search and filtering.</li>
2109 <li>Added Contributor Covenant Code of Conduct to project.</li>
2110 <li>Moved repository and project from Github to Gitlab.</li>
2111 <li>Restructured repository, moved code into src/ and web/.</li>
2112 <li>Updated code to use Spring Boot version 2.</li>
2113 <li>Added support for OAuth2 authentication.</li>
2114 <li>Fixed several bugs discovered by Coverity.</li>
2115 <li>Corrected handling of date/datetime fields.</li>
2116 <li>Improved error reporting when rejecting during deserializatoin.</li>
2117 <li>Adjusted default values provided for ny-arkivdel, ny-mappe,
2118 ny-saksmappe, ny-journalpost and ny-dokumentbeskrivelse.</li>
2119 <li>Several fixes for korrespondansepart*.</li>
2120 <li>Updated web GUI:
2121 <ul>
2122 <li>Now handle both file upload and download.</li>
2123 <li>Uses new OAuth2 authentication for login.</li>
2124 <li>Forms now fetches default values from API using GET.</li>
2125 <li>Added RFC 822 (email), TIFF and JPEG to list of possible file formats.</li>
2126 </ul></li>
2127 </ul>
2128
2129 <p>The changes and improvements are extensive. Running diffstat on
2130 the changes between git tab 0.1.1 and 0.2 show 1098 files changed,
2131 108666 insertions(+), 54066 deletions(-).</p>
2132
2133 <p>If free and open standardized archiving API sound interesting to
2134 you, please contact us on IRC
2135 (<a href="irc://irc.freenode.net/%23nikita">#nikita on
2136 irc.freenode.net</a>) or email
2137 (<a href="https://lists.nuug.no/mailman/listinfo/nikita-noark">nikita-noark
2138 mailing list</a>).</p>
2139
2140 <p>As usual, if you use Bitcoin and want to show your support of my
2141 activities, please send Bitcoin donations to my address
2142 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
2143
2144 </div>
2145 <div class="tags">
2146
2147
2148 Tags: <a href="http://www.hungry.com/~pere/blog/tags/english">english</a>, <a href="http://www.hungry.com/~pere/blog/tags/noark5">noark5</a>, <a href="http://www.hungry.com/~pere/blog/tags/nuug">nuug</a>, <a href="http://www.hungry.com/~pere/blog/tags/offentlig innsyn">offentlig innsyn</a>, <a href="http://www.hungry.com/~pere/blog/tags/standard">standard</a>.
2149
2150
2151 </div>
2152 </div>
2153 <div class="padding"></div>
2154
2155 <div class="entry">
2156 <div class="title">
2157 <a href="http://www.hungry.com/~pere/blog/Fetching_trusted_timestamps_using_the_rfc3161ng_python_module.html">Fetching trusted timestamps using the rfc3161ng python module</a>
2158 </div>
2159 <div class="date">
2160 8th October 2018
2161 </div>
2162 <div class="body">
2163 <p>I have earlier covered the basics of trusted timestamping using the
2164 'openssl ts' client. See blog post for
2165 <a href="http://www.hungry.com/~pere/blog/Public_Trusted_Timestamping_services_for_everyone.html">2014</a>,
2166 <a href="http://www.hungry.com/~pere/blog/syslog_trusted_timestamp___chain_of_trusted_timestamps_for_your_syslog.html">2016</a>
2167 and
2168 <a href="http://www.hungry.com/~pere/blog/Idea_for_storing_trusted_timestamps_in_a_Noark_5_archive.html">2017</a>
2169 for those stories. But some times I want to integrate the timestamping
2170 in other code, and recently I needed to integrate it into Python.
2171 After searching a bit, I found
2172 <a href="https://dev.entrouvert.org/projects/python-rfc3161">the
2173 rfc3161 library</a> which seemed like a good fit, but I soon
2174 discovered it only worked for python version 2, and I needed something
2175 that work with python version 3. Luckily I next came across
2176 <a href="https://github.com/trbs/rfc3161ng/">the rfc3161ng library</a>,
2177 a fork of the original rfc3161 library. Not only is it working with
2178 python 3, it have fixed a few of the bugs in the original library, and
2179 it has an active maintainer. I decided to wrap it up and make it
2180 <a href="https://tracker.debian.org/pkg/python-rfc3161ng">available in
2181 Debian</a>, and a few days ago it entered Debian unstable and testing.</p>
2182
2183 <p>Using the library is fairly straight forward. The only slightly
2184 problematic step is to fetch the required certificates to verify the
2185 timestamp. For some services it is straight forward, while for others
2186 I have not yet figured out how to do it. Here is a small standalone
2187 code example based on of the integration tests in the library code:</p>
2188
2189 <pre>
2190 #!/usr/bin/python3
2191
2192 """
2193
2194 Python 3 script demonstrating how to use the rfc3161ng module to
2195 get trusted timestamps.
2196
2197 The license of this code is the same as the license of the rfc3161ng
2198 library, ie MIT/BSD.
2199
2200 """
2201
2202 import os
2203 import pyasn1.codec.der
2204 import rfc3161ng
2205 import subprocess
2206 import tempfile
2207 import urllib.request
2208
2209 def store(f, data):
2210 f.write(data)
2211 f.flush()
2212 f.seek(0)
2213
2214 def fetch(url, f=None):
2215 response = urllib.request.urlopen(url)
2216 data = response.read()
2217 if f:
2218 store(f, data)
2219 return data
2220
2221 def main():
2222 with tempfile.NamedTemporaryFile() as cert_f,\
2223 tempfile.NamedTemporaryFile() as ca_f,\
2224 tempfile.NamedTemporaryFile() as msg_f,\
2225 tempfile.NamedTemporaryFile() as tsr_f:
2226
2227 # First fetch certificates used by service
2228 certificate_data = fetch('https://freetsa.org/files/tsa.crt', cert_f)
2229 ca_data_data = fetch('https://freetsa.org/files/cacert.pem', ca_f)
2230
2231 # Then timestamp the message
2232 timestamper = \
2233 rfc3161ng.RemoteTimestamper('http://freetsa.org/tsr',
2234 certificate=certificate_data)
2235 data = b"Python forever!\n"
2236 tsr = timestamper(data=data, return_tsr=True)
2237
2238 # Finally, convert message and response to something 'openssl ts' can verify
2239 store(msg_f, data)
2240 store(tsr_f, pyasn1.codec.der.encoder.encode(tsr))
2241 args = ["openssl", "ts", "-verify",
2242 "-data", msg_f.name,
2243 "-in", tsr_f.name,
2244 "-CAfile", ca_f.name,
2245 "-untrusted", cert_f.name]
2246 subprocess.check_call(args)
2247
2248 if '__main__' == __name__:
2249 main()
2250 </pre>
2251
2252 <p>The code fetches the required certificates, store them as temporary
2253 files, timestamp a simple message, store the message and timestamp to
2254 disk and ask 'openssl ts' to verify the timestamp. A timestamp is
2255 around 1.5 kiB in size, and should be fairly easy to store for future
2256 use.</p>
2257
2258 <p>As usual, if you use Bitcoin and want to show your support of my
2259 activities, please send Bitcoin donations to my address
2260 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
2261
2262 </div>
2263 <div class="tags">
2264
2265
2266 Tags: <a href="http://www.hungry.com/~pere/blog/tags/english">english</a>, <a href="http://www.hungry.com/~pere/blog/tags/noark5">noark5</a>, <a href="http://www.hungry.com/~pere/blog/tags/sikkerhet">sikkerhet</a>.
2267
2268
2269 </div>
2270 </div>
2271 <div class="padding"></div>
2272
2273 <div class="entry">
2274 <div class="title">
2275 <a href="http://www.hungry.com/~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>
2276 </div>
2277 <div class="date">
2278 10th June 2017
2279 </div>
2280 <div class="body">
2281 <p>I am very happy to report that the
2282 <a href="https://github.com/hiOA-ABI/nikita-noark5-core">Nikita Noark 5
2283 core project</a> tagged its second release today. The free software
2284 solution is an implementation of the Norwegian archive standard Noark
2285 5 used by government offices in Norway. These were the changes in
2286 version 0.1.1 since version 0.1.0 (from NEWS.md):
2287
2288 <ul>
2289
2290 <li>Continued work on the angularjs GUI, including document upload.</li>
2291 <li>Implemented correspondencepartPerson, correspondencepartUnit and
2292 correspondencepartInternal</li>
2293 <li>Applied for coverity coverage and started submitting code on
2294 regualr basis.</li>
2295 <li>Started fixing bugs reported by coverity</li>
2296 <li>Corrected and completed HATEOAS links to make sure entire API is
2297 available via URLs in _links.</li>
2298 <li>Corrected all relation URLs to use trailing slash.</li>
2299 <li>Add initial support for storing data in ElasticSearch.</li>
2300 <li>Now able to receive and store uploaded files in the archive.</li>
2301 <li>Changed JSON output for object lists to have relations in _links.</li>
2302 <li>Improve JSON output for empty object lists.</li>
2303 <li>Now uses correct MIME type application/vnd.noark5-v4+json.</li>
2304 <li>Added support for docker container images.</li>
2305 <li>Added simple API browser implemented in JavaScript/Angular.</li>
2306 <li>Started on archive client implemented in JavaScript/Angular.</li>
2307 <li>Started on prototype to show the public mail journal.</li>
2308 <li>Improved performance by disabling Sprint FileWatcher.</li>
2309 <li>Added support for 'arkivskaper', 'saksmappe' and 'journalpost'.</li>
2310 <li>Added support for some metadata codelists.</li>
2311 <li>Added support for Cross-origin resource sharing (CORS).</li>
2312 <li>Changed login method from Basic Auth to JSON Web Token (RFC 7519)
2313 style.</li>
2314 <li>Added support for GET-ing ny-* URLs.</li>
2315 <li>Added support for modifying entities using PUT and eTag.</li>
2316 <li>Added support for returning XML output on request.</li>
2317 <li>Removed support for English field and class names, limiting ourself
2318 to the official names.</li>
2319 <li>...</li>
2320
2321 </ul>
2322
2323 <p>If this sound interesting to you, please contact us on IRC (#nikita
2324 on irc.freenode.net) or email
2325 (<a href="https://lists.nuug.no/mailman/listinfo/nikita-noark">nikita-noark
2326 mailing list).</p>
2327
2328 </div>
2329 <div class="tags">
2330
2331
2332 Tags: <a href="http://www.hungry.com/~pere/blog/tags/english">english</a>, <a href="http://www.hungry.com/~pere/blog/tags/noark5">noark5</a>, <a href="http://www.hungry.com/~pere/blog/tags/nuug">nuug</a>, <a href="http://www.hungry.com/~pere/blog/tags/offentlig innsyn">offentlig innsyn</a>, <a href="http://www.hungry.com/~pere/blog/tags/standard">standard</a>.
2333
2334
2335 </div>
2336 </div>
2337 <div class="padding"></div>
2338
2339 <div class="entry">
2340 <div class="title">
2341 <a href="http://www.hungry.com/~pere/blog/Idea_for_storing_trusted_timestamps_in_a_Noark_5_archive.html">Idea for storing trusted timestamps in a Noark 5 archive</a>
2342 </div>
2343 <div class="date">
2344 7th June 2017
2345 </div>
2346 <div class="body">
2347 <p><em>This is a copy of
2348 <a href="https://lists.nuug.no/pipermail/nikita-noark/2017-June/000297.html">an
2349 email I posted to the nikita-noark mailing list</a>. Please follow up
2350 there if you would like to discuss this topic. The background is that
2351 we are making a free software archive system based on the Norwegian
2352 <a href="https://www.arkivverket.no/forvaltning-og-utvikling/regelverk-og-standarder/noark-standarden">Noark
2353 5 standard</a> for government archives.</em></p>
2354
2355 <p>I've been wondering a bit lately how trusted timestamps could be
2356 stored in Noark 5.
2357 <a href="https://en.wikipedia.org/wiki/Trusted_timestamping">Trusted
2358 timestamps</a> can be used to verify that some information
2359 (document/file/checksum/metadata) have not been changed since a
2360 specific time in the past. This is useful to verify the integrity of
2361 the documents in the archive.</p>
2362
2363 <p>Then it occured to me, perhaps the trusted timestamps could be
2364 stored as dokument variants (ie dokumentobjekt referered to from
2365 dokumentbeskrivelse) with the filename set to the hash it is
2366 stamping?</p>
2367
2368 <p>Given a "dokumentbeskrivelse" with an associated "dokumentobjekt",
2369 a new dokumentobjekt is associated with "dokumentbeskrivelse" with the
2370 same attributes as the stamped dokumentobjekt except these
2371 attributes:</p>
2372
2373 <ul>
2374
2375 <li>format -> "RFC3161"
2376 <li>mimeType -> "application/timestamp-reply"
2377 <li>formatDetaljer -> "&lt;source URL for timestamp service&gt;"
2378 <li>filenavn -> "&lt;sjekksum&gt;.tsr"
2379
2380 </ul>
2381
2382 <p>This assume a service following
2383 <a href="https://tools.ietf.org/html/rfc3161">IETF RFC 3161</a> is
2384 used, which specifiy the given MIME type for replies and the .tsr file
2385 ending for the content of such trusted timestamp. As far as I can
2386 tell from the Noark 5 specifications, it is OK to have several
2387 variants/renderings of a dokument attached to a given
2388 dokumentbeskrivelse objekt. It might be stretching it a bit to make
2389 some of these variants represent crypto-signatures useful for
2390 verifying the document integrity instead of representing the dokument
2391 itself.</p>
2392
2393 <p>Using the source of the service in formatDetaljer allow several
2394 timestamping services to be used. This is useful to spread the risk
2395 of key compromise over several organisations. It would only be a
2396 problem to trust the timestamps if all of the organisations are
2397 compromised.</p>
2398
2399 <p>The following oneliner on Linux can be used to generate the tsr
2400 file. $input is the path to the file to checksum, and $sha256 is the
2401 SHA-256 checksum of the file (ie the "<sjekksum>.tsr" value mentioned
2402 above).</p>
2403
2404 <p><blockquote><pre>
2405 openssl ts -query -data "$inputfile" -cert -sha256 -no_nonce \
2406 | curl -s -H "Content-Type: application/timestamp-query" \
2407 --data-binary "@-" http://zeitstempel.dfn.de > $sha256.tsr
2408 </pre></blockquote></p>
2409
2410 <p>To verify the timestamp, you first need to download the public key
2411 of the trusted timestamp service, for example using this command:</p>
2412
2413 <p><blockquote><pre>
2414 wget -O ca-cert.txt \
2415 https://pki.pca.dfn.de/global-services-ca/pub/cacert/chain.txt
2416 </pre></blockquote></p>
2417
2418 <p>Note, the public key should be stored alongside the timestamps in
2419 the archive to make sure it is also available 100 years from now. It
2420 is probably a good idea to standardise how and were to store such
2421 public keys, to make it easier to find for those trying to verify
2422 documents 100 or 1000 years from now. :)</p>
2423
2424 <p>The verification itself is a simple openssl command:</p>
2425
2426 <p><blockquote><pre>
2427 openssl ts -verify -data $inputfile -in $sha256.tsr \
2428 -CAfile ca-cert.txt -text
2429 </pre></blockquote></p>
2430
2431 <p>Is there any reason this approach would not work? Is it somehow against
2432 the Noark 5 specification?</p>
2433
2434 </div>
2435 <div class="tags">
2436
2437
2438 Tags: <a href="http://www.hungry.com/~pere/blog/tags/english">english</a>, <a href="http://www.hungry.com/~pere/blog/tags/noark5">noark5</a>, <a href="http://www.hungry.com/~pere/blog/tags/offentlig innsyn">offentlig innsyn</a>, <a href="http://www.hungry.com/~pere/blog/tags/standard">standard</a>.
2439
2440
2441 </div>
2442 </div>
2443 <div class="padding"></div>
2444
2445 <div class="entry">
2446 <div class="title">
2447 <a href="http://www.hungry.com/~pere/blog/Epost_inn_som_arkivformat_i_Riksarkivarens_forskrift_.html">Epost inn som arkivformat i Riksarkivarens forskrift?</a>
2448 </div>
2449 <div class="date">
2450 27th April 2017
2451 </div>
2452 <div class="body">
2453 <p>I disse dager, med frist 1. mai, har Riksarkivaren ute en høring på
2454 sin forskrift. Som en kan se er det ikke mye tid igjen før fristen
2455 som går ut på søndag. Denne forskriften er det som lister opp hvilke
2456 formater det er greit å arkivere i
2457 <a href="http://www.arkivverket.no/arkivverket/Offentleg-forvalting/Noark/Noark-5">Noark
2458 5-løsninger</a> i Norge.</p>
2459
2460 <p>Jeg fant høringsdokumentene hos
2461 <a href="https://www.arkivrad.no/aktuelt/riksarkivarens-forskrift-pa-horing">Norsk
2462 Arkivråd</a> etter å ha blitt tipset på epostlisten til
2463 <a href="https://github.com/hiOA-ABI/nikita-noark5-core">fri
2464 programvareprosjektet Nikita Noark5-Core</a>, som lager et Noark 5
2465 Tjenestegresesnitt. Jeg er involvert i Nikita-prosjektet og takket
2466 være min interesse for tjenestegrensesnittsprosjektet har jeg lest en
2467 god del Noark 5-relaterte dokumenter, og til min overraskelse oppdaget
2468 at standard epost ikke er på listen over godkjente formater som kan
2469 arkiveres. Høringen med frist søndag er en glimrende mulighet til å
2470 forsøke å gjøre noe med det. Jeg holder på med
2471 <a href="https://github.com/petterreinholdtsen/noark5-tester/blob/master/docs/hoering-arkivforskrift.tex">egen
2472 høringsuttalelse</a>, og lurer på om andre er interessert i å støtte
2473 forslaget om å tillate arkivering av epost som epost i arkivet.</p>
2474
2475 <p>Er du igang med å skrive egen høringsuttalelse allerede? I så fall
2476 kan du jo vurdere å ta med en formulering om epost-lagring. Jeg tror
2477 ikke det trengs så mye. Her et kort forslag til tekst:</p>
2478
2479 <p><blockquote>
2480
2481 <p>Viser til høring sendt ut 2017-02-17 (Riksarkivarens referanse
2482 2016/9840 HELHJO), og tillater oss å sende inn noen innspill om
2483 revisjon av Forskrift om utfyllende tekniske og arkivfaglige
2484 bestemmelser om behandling av offentlige arkiver (Riksarkivarens
2485 forskrift).</p>
2486
2487 <p>Svært mye av vår kommuikasjon foregår i dag på e-post.  Vi
2488 foreslår derfor at Internett-e-post, slik det er beskrevet i IETF
2489 RFC 5322,
2490 <a href="https://tools.ietf.org/html/rfc5322">https://tools.ietf.org/html/rfc5322</a>. bør
2491 inn som godkjent dokumentformat.  Vi foreslår at forskriftens
2492 oversikt over godkjente dokumentformater ved innlevering i § 5-16
2493 endres til å ta med Internett-e-post.</p>
2494
2495 </blockquote></p>
2496
2497 <p>Som del av arbeidet med tjenestegrensesnitt har vi testet hvordan
2498 epost kan lagres i en Noark 5-struktur, og holder på å skrive et
2499 forslag om hvordan dette kan gjøres som vil bli sendt over til
2500 arkivverket så snart det er ferdig. De som er interesserte kan
2501 <a href="https://github.com/petterreinholdtsen/noark5-tester/blob/master/docs/epostlagring.md">følge
2502 fremdriften på web</a>.</p>
2503
2504 <p>Oppdatering 2017-04-28: I dag ble høringuttalelsen jeg skrev
2505 <a href="https://www.nuug.no/news/NUUGs_h_ringuttalelse_til_Riksarkivarens_forskrift.shtml">sendt
2506 inn av foreningen NUUG</a>.</p>
2507
2508 </div>
2509 <div class="tags">
2510
2511
2512 Tags: <a href="http://www.hungry.com/~pere/blog/tags/noark5">noark5</a>, <a href="http://www.hungry.com/~pere/blog/tags/norsk">norsk</a>, <a href="http://www.hungry.com/~pere/blog/tags/offentlig innsyn">offentlig innsyn</a>, <a href="http://www.hungry.com/~pere/blog/tags/standard">standard</a>.
2513
2514
2515 </div>
2516 </div>
2517 <div class="padding"></div>
2518
2519 <div class="entry">
2520 <div class="title">
2521 <a href="http://www.hungry.com/~pere/blog/Free_software_archive_system_Nikita_now_able_to_store_documents.html">Free software archive system Nikita now able to store documents</a>
2522 </div>
2523 <div class="date">
2524 19th March 2017
2525 </div>
2526 <div class="body">
2527 <p>The <a href="https://github.com/hiOA-ABI/nikita-noark5-core">Nikita
2528 Noark 5 core project</a> is implementing the Norwegian standard for
2529 keeping an electronic archive of government documents.
2530 <a href="http://www.arkivverket.no/arkivverket/Offentlig-forvaltning/Noark/Noark-5/English-version">The
2531 Noark 5 standard</a> document the requirement for data systems used by
2532 the archives in the Norwegian government, and the Noark 5 web interface
2533 specification document a REST web service for storing, searching and
2534 retrieving documents and metadata in such archive. I've been involved
2535 in the project since a few weeks before Christmas, when the Norwegian
2536 Unix User Group
2537 <a href="https://www.nuug.no/news/NOARK5_kjerne_som_fri_programvare_f_r_epostliste_hos_NUUG.shtml">announced
2538 it supported the project</a>. I believe this is an important project,
2539 and hope it can make it possible for the government archives in the
2540 future to use free software to keep the archives we citizens depend
2541 on. But as I do not hold such archive myself, personally my first use
2542 case is to store and analyse public mail journal metadata published
2543 from the government. I find it useful to have a clear use case in
2544 mind when developing, to make sure the system scratches one of my
2545 itches.</p>
2546
2547 <p>If you would like to help make sure there is a free software
2548 alternatives for the archives, please join our IRC channel
2549 (<a href="irc://irc.freenode.net/%23nikita">#nikita on
2550 irc.freenode.net</a>) and
2551 <a href="https://lists.nuug.no/mailman/listinfo/nikita-noark">the
2552 project mailing list</a>.</p>
2553
2554 <p>When I got involved, the web service could store metadata about
2555 documents. But a few weeks ago, a new milestone was reached when it
2556 became possible to store full text documents too. Yesterday, I
2557 completed an implementation of a command line tool
2558 <tt>archive-pdf</tt> to upload a PDF file to the archive using this
2559 API. The tool is very simple at the moment, and find existing
2560 <a href="https://en.wikipedia.org/wiki/Fonds">fonds</a>, series and
2561 files while asking the user to select which one to use if more than
2562 one exist. Once a file is identified, the PDF is associated with the
2563 file and uploaded, using the title extracted from the PDF itself. The
2564 process is fairly similar to visiting the archive, opening a cabinet,
2565 locating a file and storing a piece of paper in the archive. Here is
2566 a test run directly after populating the database with test data using
2567 our API tester:</p>
2568
2569 <p><blockquote><pre>
2570 ~/src//noark5-tester$ ./archive-pdf mangelmelding/mangler.pdf
2571 using arkiv: Title of the test fonds created 2017-03-18T23:49:32.103446
2572 using arkivdel: Title of the test series created 2017-03-18T23:49:32.103446
2573
2574 0 - Title of the test case file created 2017-03-18T23:49:32.103446
2575 1 - Title of the test file created 2017-03-18T23:49:32.103446
2576 Select which mappe you want (or search term): 0
2577 Uploading mangelmelding/mangler.pdf
2578 PDF title: Mangler i spesifikasjonsdokumentet for NOARK 5 Tjenestegrensesnitt
2579 File 2017/1: Title of the test case file created 2017-03-18T23:49:32.103446
2580 ~/src//noark5-tester$
2581 </pre></blockquote></p>
2582
2583 <p>You can see here how the fonds (arkiv) and serie (arkivdel) only had
2584 one option, while the user need to choose which file (mappe) to use
2585 among the two created by the API tester. The <tt>archive-pdf</tt>
2586 tool can be found in the git repository for the API tester.</p>
2587
2588 <p>In the project, I have been mostly working on
2589 <a href="https://github.com/petterreinholdtsen/noark5-tester">the API
2590 tester</a> so far, while getting to know the code base. The API
2591 tester currently use
2592 <a href="https://en.wikipedia.org/wiki/HATEOAS">the HATEOAS links</a>
2593 to traverse the entire exposed service API and verify that the exposed
2594 operations and objects match the specification, as well as trying to
2595 create objects holding metadata and uploading a simple XML file to
2596 store. The tester has proved very useful for finding flaws in our
2597 implementation, as well as flaws in the reference site and the
2598 specification.</p>
2599
2600 <p>The test document I uploaded is a summary of all the specification
2601 defects we have collected so far while implementing the web service.
2602 There are several unclear and conflicting parts of the specification,
2603 and we have
2604 <a href="https://github.com/petterreinholdtsen/noark5-tester/tree/master/mangelmelding">started
2605 writing down</a> the questions we get from implementing it. We use a
2606 format inspired by how <a href="http://www.opengroup.org/austin/">The
2607 Austin Group</a> collect defect reports for the POSIX standard with
2608 <a href="http://www.opengroup.org/austin/mantis.html">their
2609 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> :).
2610
2611 <p>The Nikita project is implemented using Java and Spring, and is
2612 fairly easy to get up and running using Docker containers for those
2613 that want to test the current code base. The API tester is
2614 implemented in Python.</p>
2615
2616 </div>
2617 <div class="tags">
2618
2619
2620 Tags: <a href="http://www.hungry.com/~pere/blog/tags/english">english</a>, <a href="http://www.hungry.com/~pere/blog/tags/noark5">noark5</a>, <a href="http://www.hungry.com/~pere/blog/tags/nuug">nuug</a>, <a href="http://www.hungry.com/~pere/blog/tags/offentlig innsyn">offentlig innsyn</a>, <a href="http://www.hungry.com/~pere/blog/tags/standard">standard</a>.
2621
2622
2623 </div>
2624 </div>
2625 <div class="padding"></div>
2626
2627 <div class="entry">
2628 <div class="title">
2629 <a href="http://www.hungry.com/~pere/blog/Hva__mangler__i_OEP___litt_statistikk_utledet_fra_saksnummer_og_dokumentnummer.html">Hva «mangler» i OEP - litt statistikk utledet fra saksnummer og dokumentnummer</a>
2630 </div>
2631 <div class="date">
2632 29th January 2015
2633 </div>
2634 <div class="body">
2635 <p>En ting jeg har lurt på når det gjelder offentlige postjournaler,
2636 er hvor stor andel av det som ligger i de interne databasene kommer
2637 ikke med i postjournalen. Dette er det mulig å finne ut basert på det
2638 som ligger i postjournalen. For å forstå hva jeg mener, trengs det
2639 litt bakgrunnsinformasjon. I henhold til
2640 <a href="http://www.arkivverket.no/arkivverket/Offentleg-forvalting/Noark">NOARK-standarden</a>
2641 for norske offentlige arkiv skal enhver sak ha et årstall og et
2642 løpenummer, og ethvert dokument i saken skal gis et
2643 dokument-løpenummer. Det vil si at en ender opp med dokument-ID som
2644 ser ut som ÅÅÅÅ/SAKNR-DOKNR, f.eks. 2014/2-1 eller 2014/12312-14.
2645 Mange oppgir kun tosifret årstall, men prinsippet er det samme. Så
2646 vidt jeg vet skal saksnummer og dokumentnummer tildeles løpende og i
2647 stigende rekkefølge. Gitt en instans med følgende dokument-ID i
2648 postjournalen, så kan en regne ut hvor mye som ikke finnes i
2649 journalen:
2650
2651 <ul>
2652 <li>2014/2-1</li>
2653 <li>2014/5-1</li>
2654 <li>2014/5-3</li>
2655 </ul>
2656
2657 <p>Her ser en at saksnummer 2 og 5 finnes i postjournalen, mens
2658 nummerene 1, 3 og 4 mangler. En ser også at i sak 2014/5 mangler
2659 dokument 2. Ved hjelp av denne informasjonen har jeg regnet ut hvor
2660 stor andel av saksnummer og dokumentløpenummer som ikke har dukket opp
2661 i <a href="https://www.oep.no/">Offentlig Elektronisk Postjournal</a>
2662 (OEP). For saksnummer har jeg tatt utgangspunkt i at en ikke trenger
2663 å starte på 1, og dermed regnet med området fra laveste til høyeste
2664 saksnummer og talt antall unike saksnummer som forekommer i OEP. I
2665 dette tilfellet betyr de at 2 av 4 saksnummer er ubrukte (50%). For
2666 dokumentløpenummer har jeg tilsvarende tatt utgangspunkt i laveste og
2667 høyeste kjente dokumentløpenummer, for å handtere databaser der jeg
2668 mangler komplett postjournal. For sak 2014/5 her betyr det at 1 av 3
2669 dokumenter mangler (33%).</p>
2670
2671 <p>Det er flere årsaker til at det kan bli hull i nummerseriene.
2672 Feilføring der et dokument tildeles et nytt saksnummer ved en feil, og
2673 deretter flyttes inn i riktig sak vil gi et ubrukt saksnummer, da
2674 saksnummer skal tildeles i stigende rekkefølge og en ikke får opprette
2675 nye saker innimellom gamle saker. Tilsvarende kan skje med
2676 dokument-løpenummer. Det er jo heller ikke sikkert at et saksnummer i
2677 OEP er det samme som løpenummeret som brukes som saksnummeret i
2678 instansens interne datasystem. Kanskje snakker vi om ulike ontologier
2679 der en delmengde av interne saksnummer tilsvarer saksnummer i OEP.
2680 Hvis like nummer også tildeles andre ting enn saker som skal til OEP
2681 vil en tilsvarende få «hull» i saksnumrene i postjournalen.</p>
2682
2683 <p>Jeg er litt usikker på hva denne statistikken egentlig viser, og
2684 heller ikke sikker på om det er reelt sett mangler i OEP (som kanskje
2685 kunne anses å være kritikkverdig), bare er resultatet av hendelige
2686 uhell i nummertildelingen eller resultat av ulik ontologi i OEP og
2687 instansens datasystem. Men jeg syntes tallene og variasjonen var så
2688 interessant at jeg hadde lyst til å dele dem med mine lesere. Jeg har
2689 sortert listen på prosent upubliserte saksnummer for 2014.</p>
2690
2691 <table border="1">
2692 <tr><th colspan="6">Saksnummer</th><th colspan="3">Dokumentnummer</th><th rowspan="3">Instans</th></tr>
2693 <tr><th colspan="3">2014</th><th colspan="3">2013</th><th colspan="3">2014</th></tr>
2694 <tr><th>%</th><th>Upubl. saksnr.</th><th>Totalt</th>
2695 <th>%</th><th>Upubl. saksnr</th><th>Totalt</th>
2696 <th>%</th><th>Upubl. dok.nr.</th><th>Totalt</th>
2697 </tr>
2698
2699 <tr><td> 0.6</td><td> 8</td><td> 1282</td><td> 0.2</td><td> 2</td><td> 861</td><td> 0.0</td><td> 0</td><td> 6105</td><td>Vox, nasjonalt fagorgan for kompetansepolitikk</td></tr>
2700 <tr><td> 0.9</td><td> 91</td><td> 9863</td><td> 2.7</td><td> 313</td><td> 11703</td><td> 0.0</td><td> 0</td><td> 24029</td><td>Direktoratet for byggkvalitet</td></tr>
2701 <tr><td> 1.0</td><td> 161</td><td> 15663</td><td> 3.3</td><td> 558</td><td> 17045</td><td> 0.0</td><td> 0</td><td> 41954</td><td>Justervesenet</td></tr>
2702 <tr><td> 1.1</td><td> 325</td><td> 28515</td><td> 1.2</td><td> 357</td><td> 29621</td><td> 0.0</td><td> 0</td><td> 66871</td><td>Arkivverket</td></tr>
2703 <tr><td> 1.8</td><td> 28</td><td> 1568</td><td> 1.0</td><td> 17</td><td> 1722</td><td> 0.0</td><td> 0</td><td> 9259</td><td>Statistisk sentralbyrå</td></tr>
2704 <tr><td> 1.8</td><td> 92</td><td> 5066</td><td>75.4</td><td>3144</td><td> 4169</td><td> 0.0</td><td> 0</td><td> 17056</td><td>Arbeids- og sosialdepartementet</td></tr>
2705 <tr><td> 2.2</td><td> 32</td><td> 1470</td><td> 2.4</td><td> 36</td><td> 1471</td><td> 0.0</td><td> 0</td><td> 9757</td><td>Norsk Filminstitutt</td></tr>
2706 <tr><td> 2.3</td><td> 34</td><td> 1478</td><td> 2.9</td><td> 41</td><td> 1425</td><td> 0.0</td><td> 0</td><td> 4522</td><td>Datatilsynet</td></tr>
2707 <tr><td> 2.7</td><td> 49</td><td> 1795</td><td> 2.8</td><td> 34</td><td> 1199</td><td> 0.0</td><td> 0</td><td> 5824</td><td>Direktoratet for mineralforvaltning med Bergmesteren for Svalbard</td></tr>
2708 <tr><td> 3.1</td><td> 134</td><td> 4326</td><td> 2.8</td><td> 144</td><td> 5119</td><td> 0.0</td><td> 0</td><td> 12223</td><td>Brønnøysundregistrene</td></tr>
2709 <tr><td> 3.1</td><td> 201</td><td> 6571</td><td> 6.1</td><td> 603</td><td> 9870</td><td> 0.0</td><td> 0</td><td> 22390</td><td>Statens kartverk</td></tr>
2710 <tr><td> 3.2</td><td> 228</td><td> 7092</td><td> 2.0</td><td> 143</td><td> 7032</td><td> 0.1</td><td> 14</td><td> 24491</td><td>Lotteri- og stiftelsestilsynet</td></tr>
2711 <tr><td> 3.6</td><td> 32</td><td> 891</td><td> 4.9</td><td> 37</td><td> 753</td><td> 0.0</td><td> 0</td><td> 3055</td><td>Statens innkrevingssentral</td></tr>
2712 <tr><td> 3.8</td><td>1016</td><td> 26466</td><td> 2.5</td><td> 716</td><td> 28727</td><td> 0.0</td><td> 0</td><td> 86951</td><td>Husbanken</td></tr>
2713 <tr><td> 3.9</td><td> 52</td><td> 1326</td><td>14.4</td><td> 180</td><td> 1247</td><td> 0.0</td><td> 0</td><td> 4922</td><td>Sysselmannen på Svalbard</td></tr>
2714 <tr><td> 4.0</td><td> 248</td><td> 6250</td><td> 4.6</td><td> 332</td><td> 7159</td><td> 0.0</td><td> 0</td><td> 22063</td><td>Post- og teletilsynet</td></tr>
2715 <tr><td> 4.1</td><td> 102</td><td> 2488</td><td> 2.7</td><td> 62</td><td> 2291</td><td> 0.0</td><td> 0</td><td> 9707</td><td>Forbrukerombudet</td></tr>
2716 <tr><td> 4.8</td><td> 51</td><td> 1060</td><td>12.6</td><td> 132</td><td> 1046</td><td> 0.0</td><td> 0</td><td> 3616</td><td>Statens strålevern</td></tr>
2717 <tr><td> 5.2</td><td> 924</td><td> 17781</td><td> 6.3</td><td>1184</td><td> 18665</td><td> 0.0</td><td> 0</td><td> 59772</td><td>Fiskeridirektoratet</td></tr>
2718 <tr><td> 5.5</td><td> 254</td><td> 4638</td><td> 6.1</td><td> 315</td><td> 5168</td><td> 0.0</td><td> 0</td><td> 15470</td><td>Barne-, likestillings- og inkluderingsdepartementet</td></tr>
2719 <tr><td> 6.0</td><td> 80</td><td> 1336</td><td> 3.7</td><td> 48</td><td> 1314</td><td> 0.0</td><td> 0</td><td> 2691</td><td>Medietilsynet</td></tr>
2720 <tr><td> 6.1</td><td> 91</td><td> 1486</td><td> 5.0</td><td> 83</td><td> 1651</td><td> 0.2</td><td> 17</td><td> 7473</td><td>Petroleumstilsynet</td></tr>
2721 <tr><td> 6.2</td><td> 248</td><td> 3997</td><td>73.7</td><td>3459</td><td> 4693</td><td> 0.0</td><td> 0</td><td> 10963</td><td>Klima- og miljødepartementet</td></tr>
2722 <tr><td> 7.0</td><td> 190</td><td> 2700</td><td>10.2</td><td> 207</td><td> 2033</td><td> 0.0</td><td> 1</td><td> 14299</td><td>Samferdselsdepartementet</td></tr>
2723 <tr><td> 7.1</td><td> 35</td><td> 492</td><td> 4.5</td><td> 41</td><td> 909</td><td> 0.0</td><td> 0</td><td> 2960</td><td>Konkurransetilsynet</td></tr>
2724 <tr><td> 7.1</td><td> 482</td><td> 6800</td><td> 6.4</td><td> 532</td><td> 8259</td><td> 0.0</td><td> 0</td><td> 28684</td><td>Justis- og beredskapsdepartementet</td></tr>
2725 <tr><td> 7.2</td><td> 87</td><td> 1204</td><td> 4.2</td><td> 50</td><td> 1199</td><td> 0.0</td><td> 3</td><td> 7428</td><td>Oljedirektoratet</td></tr>
2726 <tr><td> 7.2</td><td> 106</td><td> 1478</td><td> 6.3</td><td> 129</td><td> 2045</td><td> 0.0</td><td> 2</td><td> 4987</td><td>Statens jernbanetilsyn</td></tr>
2727 <tr><td> 7.2</td><td> 131</td><td> 1813</td><td> 8.5</td><td> 124</td><td> 1452</td><td> 0.0</td><td> 2</td><td> 8758</td><td>Statsministerens kontor</td></tr>
2728 <tr><td> 7.3</td><td> 816</td><td> 11218</td><td> 6.1</td><td> 655</td><td> 10665</td><td> 0.0</td><td> 0</td><td> 47160</td><td>Norges forskningsråd</td></tr>
2729 <tr><td> 7.8</td><td>1150</td><td> 14712</td><td> 6.7</td><td> 746</td><td> 11202</td><td> 0.0</td><td> 0</td><td> 33794</td><td>Miljødirektoratet</td></tr>
2730 <tr><td> 7.9</td><td> 411</td><td> 5216</td><td> 8.3</td><td> 446</td><td> 5365</td><td> 0.0</td><td> 0</td><td> 16441</td><td>Helse- og omsorgsdepartementet</td></tr>
2731 <tr><td> 8.3</td><td> 376</td><td> 4514</td><td> 8.2</td><td> 457</td><td> 5548</td><td> 0.0</td><td> 3</td><td> 20840</td><td>Luftfartstilsynet</td></tr>
2732 <tr><td> 8.5</td><td> 185</td><td> 2181</td><td> 9.8</td><td> 175</td><td> 1780</td><td> 0.0</td><td> 0</td><td> 7669</td><td>Landbruks- og matdepartementet</td></tr>
2733 <tr><td> 8.6</td><td> 10</td><td> 116</td><td> 0.8</td><td> 1</td><td> 127</td><td> 0.0</td><td> 0</td><td> 318</td><td>Statens institutt for rusmiddelforskning</td></tr>
2734 <tr><td> 9.0</td><td> 597</td><td> 6648</td><td> 9.7</td><td> 705</td><td> 7236</td><td> 0.0</td><td> 3</td><td> 35663</td><td>Utdanningsdirektoratet</td></tr>
2735 <tr><td> 9.0</td><td>1139</td><td> 12632</td><td> 8.2</td><td>1100</td><td> 13344</td><td> 0.0</td><td> 2</td><td> 36987</td><td>Finanstilsynet</td></tr>
2736 <tr><td> 9.1</td><td> 540</td><td> 5949</td><td>13.4</td><td> 769</td><td> 5743</td><td> 0.0</td><td> 0</td><td> 13908</td><td>Finansdepartementet</td></tr>
2737 <tr><td> 9.2</td><td> 256</td><td> 2787</td><td> 6.5</td><td> 203</td><td> 3147</td><td> 0.0</td><td> 0</td><td> 9487</td><td>Riksantikvaren - Direktoratet for kulturminneforvaltning</td></tr>
2738 <tr><td> 9.3</td><td>1596</td><td> 17209</td><td> 2.5</td><td> 463</td><td> 18438</td><td> 0.0</td><td> 0</td><td> 53119</td><td>Statens legemiddelverk</td></tr>
2739 <tr><td> 9.7</td><td> 299</td><td> 3085</td><td>10.7</td><td> 329</td><td> 3072</td><td> 0.1</td><td> 6</td><td> 7579</td><td>Forsvarsdepartementet</td></tr>
2740 <tr><td>10.1</td><td> 167</td><td> 1650</td><td> 4.5</td><td> 65</td><td> 1445</td><td> 0.0</td><td> 0</td><td> 11157</td><td>Statens helsetilsyn</td></tr>
2741 <tr><td>10.9</td><td> 59</td><td> 542</td><td> 7.7</td><td> 44</td><td> 569</td><td> 0.0</td><td> 0</td><td> 1283</td><td>Statens arbeidsmiljøinstitutt</td></tr>
2742 <tr><td>11.3</td><td> 46</td><td> 407</td><td>96.1</td><td>2591</td><td> 2695</td><td> 0.0</td><td> 0</td><td> 1489</td><td>Landbruksdirektoratet Alta</td></tr>
2743 <tr><td>11.4</td><td> 675</td><td> 5933</td><td>13.6</td><td> 613</td><td> 4492</td><td> 0.0</td><td> 0</td><td> 24598</td><td>Kystverket</td></tr>
2744 <tr><td>11.6</td><td> 739</td><td> 6383</td><td>12.2</td><td> 748</td><td> 6121</td><td> 0.0</td><td> 1</td><td> 18605</td><td>Kunnskapsdepartementet</td></tr>
2745 <tr><td>11.9</td><td> 641</td><td> 5398</td><td> 9.3</td><td> 432</td><td> 4655</td><td> 0.0</td><td> 0</td><td> 14438</td><td>Kulturdepartementet</td></tr>
2746 <tr><td>11.9</td><td> 934</td><td> 7835</td><td> 0.0</td><td> 0</td><td> 0</td><td> 0.0</td><td> 0</td><td> 33448</td><td>Kommunal- og moderniseringsdepartementet</td></tr>
2747 <tr><td>12.1</td><td> 588</td><td> 4860</td><td>12.2</td><td> 522</td><td> 4294</td><td> 0.0</td><td> 0</td><td> 14173</td><td>Politidirektoratet</td></tr>
2748 <tr><td>12.1</td><td>1444</td><td> 11893</td><td>46.0</td><td>5212</td><td> 11331</td><td> 0.0</td><td> 0</td><td> 51438</td><td>Helsedirektoratet</td></tr>
2749 <tr><td>12.6</td><td> 220</td><td> 1745</td><td>17.5</td><td> 112</td><td> 640</td><td> 0.1</td><td> 3</td><td> 4184</td><td>Språkrådet</td></tr>
2750 <tr><td>12.7</td><td> 211</td><td> 1664</td><td> 9.7</td><td> 226</td><td> 2318</td><td> 0.0</td><td> 0</td><td> 9151</td><td>Direktoratet for utviklingssamarbeid</td></tr>
2751 <tr><td>13.9</td><td> 321</td><td> 2309</td><td>15.1</td><td> 329</td><td> 2185</td><td> 0.0</td><td> 0</td><td> 6307</td><td>Olje- og energidepartementet</td></tr>
2752 <tr><td>14.3</td><td> 429</td><td> 2996</td><td>12.5</td><td> 303</td><td> 2432</td><td> 0.0</td><td> 0</td><td> 7560</td><td>Nasjonalt folkehelseinstitutt</td></tr>
2753 <tr><td>14.4</td><td>1408</td><td> 9785</td><td> 0.0</td><td> 0</td><td> 0</td><td> 0.0</td><td> 0</td><td> 38923</td><td>Nærings- og fiskeridepartementet</td></tr>
2754 <tr><td>14.7</td><td> 143</td><td> 973</td><td> 7.7</td><td> 83</td><td> 1084</td><td> 0.0</td><td> 0</td><td> 4130</td><td>Utlendingsnemnda</td></tr>
2755 <tr><td>15.8</td><td> 173</td><td> 1097</td><td>38.8</td><td> 621</td><td> 1602</td><td> 0.0</td><td> 0</td><td> 7557</td><td>Direktoratet for forvaltning og IKT</td></tr>
2756 <tr><td>16.7</td><td>1345</td><td> 8069</td><td> 8.6</td><td> 703</td><td> 8219</td><td> 0.0</td><td> 0</td><td> 20834</td><td>Norges vassdrags- og energidirektorat</td></tr>
2757 <tr><td>17.5</td><td> 61</td><td> 348</td><td>17.2</td><td> 67</td><td> 389</td><td> 0.0</td><td> 0</td><td> 7732</td><td>Senter for internasjonalisering av utdanning</td></tr>
2758 <tr><td>18.9</td><td>3737</td><td> 19734</td><td> 4.4</td><td> 606</td><td> 13752</td><td> 0.0</td><td> 0</td><td> 49938</td><td>Direktoratet for samfunnssikkerhet og beredskap</td></tr>
2759 <tr><td>19.1</td><td>1392</td><td> 7269</td><td>19.1</td><td>1263</td><td> 6601</td><td> 0.0</td><td> 0</td><td> 19869</td><td>Fylkesmannen i Troms</td></tr>
2760 <tr><td>20.4</td><td> 768</td><td> 3758</td><td>15.7</td><td> 471</td><td> 3008</td><td> 0.1</td><td> 9</td><td> 11280</td><td>Integrerings- og mangfoldsdirektoratet</td></tr>
2761 <tr><td>21.0</td><td> 995</td><td> 4737</td><td>17.8</td><td> 978</td><td> 5508</td><td> 0.0</td><td> 0</td><td> 11260</td><td>Fylkesmannen i Sogn og Fjordane</td></tr>
2762 <tr><td>21.6</td><td> 16</td><td> 74</td><td>97.3</td><td>2626</td><td> 2698</td><td> 0.0</td><td> 0</td><td> 155</td><td>Statens reindriftsforvaltning</td></tr>
2763 <tr><td>22.1</td><td> 96</td><td> 435</td><td>17.6</td><td> 81</td><td> 459</td><td> 0.2</td><td> 3</td><td> 1943</td><td>Norges geologiske undersøkelse</td></tr>
2764 <tr><td>22.3</td><td> 27</td><td> 121</td><td>10.6</td><td> 15</td><td> 141</td><td> 0.1</td><td> 1</td><td> 779</td><td>Kunst i offentlige rom</td></tr>
2765 <tr><td>22.4</td><td>1939</td><td> 8659</td><td>21.8</td><td>1992</td><td> 9120</td><td> 0.0</td><td> 1</td><td> 17738</td><td>Fylkesmannen i Nordland</td></tr>
2766 <tr><td>22.5</td><td> 52</td><td> 231</td><td>14.7</td><td> 32</td><td> 217</td><td> 0.0</td><td> 0</td><td> 896</td><td>Fredskorpset</td></tr>
2767 <tr><td>22.5</td><td>2017</td><td> 8957</td><td>95.5</td><td>40498</td><td> 42425</td><td> 0.0</td><td> 0</td><td> 14223</td><td>Statens landbruksforvaltning</td></tr>
2768 <tr><td>22.9</td><td> 116</td><td> 507</td><td>15.2</td><td> 81</td><td> 532</td><td> 0.0</td><td> 0</td><td> 2069</td><td>Nasjonalbiblioteket</td></tr>
2769 <tr><td>25.5</td><td> 211</td><td> 829</td><td>20.8</td><td> 205</td><td> 987</td><td> 0.0</td><td> 0</td><td> 3867</td><td>Direktoratet for økonomistyring</td></tr>
2770 <tr><td>26.1</td><td> 6</td><td> 23</td><td> 9.7</td><td> 3</td><td> 31</td><td> 0.0</td><td> 0</td><td> 106</td><td>Kompetansesenter for distriktsutvikling</td></tr>
2771 <tr><td>26.6</td><td> 187</td><td> 702</td><td>28.5</td><td> 248</td><td> 871</td><td> 0.0</td><td> 1</td><td> 3154</td><td>Nasjonalt organ for kvalitet i utdanningen</td></tr>
2772 <tr><td>27.1</td><td> 90</td><td> 332</td><td>13.2</td><td> 41</td><td> 311</td><td> 0.0</td><td> 0</td><td> 2400</td><td>Norsk Akkreditering</td></tr>
2773 <tr><td>28.3</td><td> 562</td><td> 1986</td><td>20.0</td><td> 518</td><td> 2586</td><td> 0.0</td><td> 0</td><td> 6267</td><td>Statens lånekasse for utdanning</td></tr>
2774 <tr><td>28.8</td><td> 443</td><td> 1538</td><td>41.0</td><td> 688</td><td> 1679</td><td> 0.0</td><td> 0</td><td> 5556</td><td>Havforskningsinstituttet</td></tr>
2775 <tr><td>29.8</td><td>1473</td><td> 4944</td><td>24.8</td><td>1047</td><td> 4230</td><td> 0.0</td><td> 0</td><td> 9850</td><td>Utlendingsdirektoratet</td></tr>
2776 <tr><td>29.8</td><td>1563</td><td> 5249</td><td>31.0</td><td>1421</td><td> 4588</td><td> 0.0</td><td> 0</td><td> 15660</td><td>Fylkesmannen i Finnmark</td></tr>
2777 <tr><td>30.8</td><td> 314</td><td> 1021</td><td>58.4</td><td> 941</td><td> 1610</td><td> 0.3</td><td> 13</td><td> 3979</td><td>Direktoratet for nødkommunikasjon</td></tr>
2778 <tr><td>31.4</td><td> 463</td><td> 1475</td><td>37.0</td><td> 280</td><td> 757</td><td> 0.1</td><td> 7</td><td> 4797</td><td>Domstoladministrasjonen</td></tr>
2779 <tr><td>31.8</td><td>4708</td><td> 14785</td><td>25.2</td><td>2236</td><td> 8879</td><td> 0.0</td><td> 2</td><td> 39313</td><td>Utenriksdepartementet</td></tr>
2780 <tr><td>36.1</td><td> 526</td><td> 1456</td><td>76.6</td><td>1364</td><td> 1781</td><td> 0.0</td><td> 0</td><td> 4472</td><td>Departementenes sikkerhets- og serviceorganisasjon</td></tr>
2781 <tr><td>36.7</td><td> 447</td><td> 1217</td><td>63.8</td><td>1503</td><td> 2355</td><td> 1.8</td><td> 92</td><td> 5121</td><td>Garantiinstituttet for eksportkreditt</td></tr>
2782 <tr><td>38.2</td><td>3341</td><td> 8744</td><td>34.7</td><td>3096</td><td> 8927</td><td> 0.0</td><td> 3</td><td> 15180</td><td>Fylkesmannen i Oppland</td></tr>
2783 <tr><td>39.3</td><td>6267</td><td> 15947</td><td>37.7</td><td>6262</td><td> 16606</td><td> 0.1</td><td> 15</td><td> 29707</td><td>Fylkesmannen i Hordaland</td></tr>
2784 <tr><td>39.6</td><td>2122</td><td> 5365</td><td>41.3</td><td>2242</td><td> 5428</td><td> 0.0</td><td> 0</td><td> 12680</td><td>Fylkesmannen i Telemark</td></tr>
2785 <tr><td>40.8</td><td>3137</td><td> 7698</td><td>37.0</td><td>3059</td><td> 8272</td><td> 0.0</td><td> 5</td><td> 13848</td><td>Fylkesmannen i Nord-Trøndelag</td></tr>
2786 <tr><td>42.1</td><td>1528</td><td> 3627</td><td>19.2</td><td> 529</td><td> 2750</td><td> 0.0</td><td> 1</td><td> 13524</td><td>Statsbygg</td></tr>
2787 <tr><td>42.4</td><td>2844</td><td> 6700</td><td>42.4</td><td>2913</td><td> 6863</td><td> 0.0</td><td> 0</td><td> 12090</td><td>Fylkesmannen i Vest-Agder</td></tr>
2788 <tr><td>42.9</td><td> 6</td><td> 14</td><td>88.9</td><td>2398</td><td> 2698</td><td> 0.0</td><td> 0</td><td> 23</td><td>Reindriftsforvaltningen</td></tr>
2789 <tr><td>43.3</td><td>3310</td><td> 7645</td><td>42.6</td><td>3369</td><td> 7908</td><td> 0.0</td><td> 0</td><td> 15739</td><td>Fylkesmannen i Vestfold</td></tr>
2790 <tr><td>43.4</td><td>3433</td><td> 7905</td><td>40.8</td><td>3508</td><td> 8594</td><td> 0.0</td><td> 0</td><td> 12921</td><td>Fylkesmannen i Møre og Romsdal</td></tr>
2791 <tr><td>43.4</td><td>5540</td><td> 12773</td><td>40.1</td><td>5429</td><td> 13534</td><td> 0.0</td><td> 0</td><td> 22389</td><td>Fylkesmannen i Rogaland</td></tr>
2792 <tr><td>43.6</td><td>2334</td><td> 5350</td><td>39.5</td><td>2314</td><td> 5861</td><td> 0.0</td><td> 0</td><td> 9997</td><td>Fylkesmannen i Aust-Agder</td></tr>
2793 <tr><td>43.7</td><td>2656</td><td> 6079</td><td>23.1</td><td> 890</td><td> 3853</td><td> 0.1</td><td> 21</td><td> 18064</td><td>Forsvarsbygg</td></tr>
2794 <tr><td>48.9</td><td>4276</td><td> 8747</td><td>48.0</td><td>4189</td><td> 8734</td><td> 0.0</td><td> 0</td><td> 16281</td><td>Fylkesmannen i Buskerud</td></tr>
2795 <tr><td>50.9</td><td>5106</td><td> 10024</td><td>45.7</td><td>4584</td><td> 10022</td><td> 0.0</td><td> 0</td><td> 15340</td><td>Fylkesmannen i Sør-Trøndelag</td></tr>
2796 <tr><td>51.4</td><td>4477</td><td> 8703</td><td>45.8</td><td>4240</td><td> 9253</td><td> 0.0</td><td> 5</td><td> 12067</td><td>Fylkesmannen i Hedmark</td></tr>
2797 <tr><td>51.5</td><td> 210</td><td> 408</td><td>36.8</td><td> 656</td><td> 1785</td><td> 0.0</td><td> 0</td><td> 658</td><td>Departementenes servicesenter</td></tr>
2798 <tr><td>52.7</td><td>4663</td><td> 8852</td><td>46.6</td><td>4110</td><td> 8824</td><td> 0.0</td><td> 0</td><td> 13869</td><td>Fylkesmannen i Østfold</td></tr>
2799 <tr><td>59.7</td><td>14852</td><td> 24867</td><td>56.6</td><td>14366</td><td> 25404</td><td> 0.0</td><td> 0</td><td> 38706</td><td>Fylkesmannen i Oslo og Akershus</td></tr>
2800 <tr><td>61.1</td><td>44900</td><td> 73495</td><td>95.1</td><td>40365</td><td> 42462</td><td> 0.0</td><td> 11</td><td> 63747</td><td>Landbruksdirektoratet Oslo</td></tr>
2801 <tr><td>63.8</td><td>68121</td><td>106802</td><td>18.5</td><td>7592</td><td> 41093</td><td> 0.0</td><td> 0</td><td>144950</td><td>Arbeidstilsynet</td></tr>
2802 <tr><td>69.8</td><td>110225</td><td>157962</td><td>70.8</td><td>105811</td><td>149449</td><td> 0.0</td><td> 14</td><td>106772</td><td>Statens vegvesen Region øst</td></tr>
2803 <tr><td>72.2</td><td>16772</td><td> 23215</td><td>95.2</td><td>16409</td><td> 17238</td><td> 0.0</td><td> 0</td><td> 16705</td><td>Norsk kulturråd</td></tr>
2804 <tr><td>78.6</td><td>124131</td><td>157956</td><td>77.6</td><td>115949</td><td>149462</td><td> 0.0</td><td> 0</td><td> 77689</td><td>Statens vegvesen Region sør</td></tr>
2805 <tr><td>80.7</td><td>55587</td><td> 68896</td><td>71.9</td><td>36121</td><td> 50269</td><td> 0.0</td><td> 0</td><td> 42152</td><td>Sjøfartsdirektoratet</td></tr>
2806 <tr><td>81.0</td><td>128006</td><td>157956</td><td>80.1</td><td>119743</td><td>149456</td><td> 0.0</td><td> 8</td><td> 74195</td><td>Statens vegvesen Region vest</td></tr>
2807 <tr><td>87.2</td><td>137798</td><td>157962</td><td>87.6</td><td>130971</td><td>149449</td><td> 0.0</td><td> 9</td><td> 50814</td><td>Statens vegvesen Region midt</td></tr>
2808 <tr><td>88.0</td><td>12239</td><td> 13902</td><td>86.1</td><td>19158</td><td> 22244</td><td> 0.0</td><td> 0</td><td> 5492</td><td>Barne-, ungdoms- og familiedirektoratet</td></tr>
2809 <tr><td>90.8</td><td>143453</td><td>157956</td><td>90.6</td><td>135441</td><td>149453</td><td> 0.0</td><td> 0</td><td> 39961</td><td>Statens vegvesen Region nord</td></tr>
2810 <tr><td>93.8</td><td>5865</td><td> 6250</td><td>99.3</td><td>7093</td><td> 7140</td><td> 0.0</td><td> 0</td><td> 984</td><td>Nasjonal kommunikasjonsmyndighet</td></tr>
2811 <tr><td>95.3</td><td>4655</td><td> 4883</td><td>94.3</td><td>3819</td><td> 4049</td><td> 0.1</td><td> 1</td><td> 967</td><td>Landinfo</td></tr>
2812 <tr><td>96.2</td><td>151935</td><td>157870</td><td>96.0</td><td>143497</td><td>149452</td><td> 0.0</td><td> 0</td><td> 19555</td><td>Statens vegvesen Vegdirektoratet</td></tr>
2813 <tr><td>97.5</td><td>100799</td><td>103373</td><td>96.9</td><td>119802</td><td>123636</td><td> 0.0</td><td> 0</td><td> 7605</td><td>Toll- og avgiftsdirektoratet</td></tr>
2814 <tr><td>97.7</td><td>24104</td><td> 24666</td><td>98.2</td><td>23640</td><td> 24062</td><td> 0.2</td><td> 5</td><td> 2108</td><td>Kriminalomsorgsdirektoratet</td></tr>
2815 <tr><td>98.3</td><td>60845</td><td> 61922</td><td>98.3</td><td>58575</td><td> 59605</td><td> 0.0</td><td> 0</td><td> 2837</td><td>Statens pensjonskasse</td></tr>
2816 <tr><td>99.5</td><td>990661</td><td>995873</td><td>99.4</td><td>953094</td><td>958529</td><td> 0.0</td><td> 0</td><td> 18246</td><td>Skattedirektoratet</td></tr>
2817
2818 </table>
2819
2820 <p>Det kunne vært interessant å se hva som skjedde hvis en ba om
2821 innsyn i en dokument-ID som ikke finnes i OEP... :) Det hadde også
2822 vært interessant å få vite hva årsaken til at noen saksnummer ikke
2823 dukker opp i OEP der det er få og mange. Jeg mistenker jo at årsaken
2824 ikke er den samme hos Skattedirektoratet og hos Landinfo, selv om
2825 andelen upubliserte nummer er ganske lik.</p>
2826
2827 </div>
2828 <div class="tags">
2829
2830
2831 Tags: <a href="http://www.hungry.com/~pere/blog/tags/noark5">noark5</a>, <a href="http://www.hungry.com/~pere/blog/tags/norsk">norsk</a>, <a href="http://www.hungry.com/~pere/blog/tags/nuug">nuug</a>, <a href="http://www.hungry.com/~pere/blog/tags/offentlig innsyn">offentlig innsyn</a>.
2832
2833
2834 </div>
2835 </div>
2836 <div class="padding"></div>
2837
2838 <div class="entry">
2839 <div class="title">
2840 <a href="http://www.hungry.com/~pere/blog/Hvordan_b_r_RFC_822_formattert_epost_lagres_i_en_NOARK5_database_.html">Hvordan bør RFC 822-formattert epost lagres i en NOARK5-database?</a>
2841 </div>
2842 <div class="date">
2843 7th March 2014
2844 </div>
2845 <div class="body">
2846 <p>For noen uker siden ble NXCs fri programvarelisenserte
2847 NOARK5-løsning
2848 <a href="http://www.nuug.no/aktiviteter/20140211-noark/">presentert hos
2849 NUUG</a> (video
2850 <a href="https://www.youtube.com/watch?v=JCb_dNS3MHQ">på youtube
2851 foreløbig</a>), og det fikk meg til å titte litt mer på NOARK5,
2852 standarden for arkivhåndtering i det offentlige Norge. Jeg lurer på
2853 om denne kjernen kan være nyttig i et par av mine prosjekter, og for ett
2854 av dem er det mest aktuelt å lagre epost. Jeg klarte ikke finne noen
2855 anbefaling om hvordan RFC 822-formattert epost (aka Internett-epost)
2856 burde lagres i NOARK5, selv om jeg vet at noen arkiver tar
2857 PDF-utskrift av eposten med sitt epostprogram og så arkiverer PDF-en
2858 (eller enda værre, tar papirutskrift og lagrer bildet av eposten som
2859 PDF i arkivet).</p>
2860
2861 <p>Det er ikke så mange formater som er akseptert av riksarkivet til
2862 langtidsoppbevaring av offentlige arkiver, og PDF og XML er de mest
2863 aktuelle i så måte. Det slo meg at det måtte da finnes en eller annen
2864 egnet XML-representasjon og at det kanskje var enighet om hvilken som
2865 burde brukes, så jeg tok mot til meg og spurte
2866 <a href="http://samdok.com/">SAMDOK</a>, en gruppe tilknyttet
2867 arkivverket som ser ut til å jobbe med NOARK-samhandling, om de hadde
2868 noen anbefalinger:
2869
2870 <p><blockquote>
2871 <p>Hei.</p>
2872
2873 <p>Usikker på om dette er riktig forum å ta opp mitt spørsmål, men jeg
2874 lurer på om det er definert en anbefaling om hvordan RFC
2875 822-formatterte epost (aka vanlig Internet-epost) bør lages håndteres
2876 i NOARK5, slik at en bevarer all informasjon i eposten
2877 (f.eks. Received-linjer). Finnes det en anbefalt XML-mapping ala den
2878 som beskrives på
2879 &lt;URL: <a href="https://www.informit.com/articles/article.aspx?p=32074">https://www.informit.com/articles/article.aspx?p=32074</a> &gt;? Mitt
2880 mål er at det skal være mulig å lagre eposten i en NOARK5-kjerne og
2881 kunne få ut en identisk formattert kopi av opprinnelig epost ved
2882 behov.</p>
2883 </blockquote></p>
2884
2885 <p>Postmottaker hos SAMDOK mente spørsmålet heller burde stilles
2886 direkte til riksarkivet, og jeg fikk i dag svar derfra formulert av
2887 seniorrådgiver Geir Ivar Tungesvik:</p>
2888
2889 <p><blockquote>
2890 <p>Riksarkivet har ingen anbefalinger når det gjelder konvertering fra
2891 e-post til XML. Det står arkivskaper fritt å eventuelt definere/bruke
2892 eget format. Inklusive da - som det spørres om - et format der det er
2893 mulig å re-etablere e-post format ut fra XML-en. XML (e-post)
2894 dokumenter må være referert i arkivstrukturen, og det må vedlegges et
2895 gyldig XML skjema (.xsd) for XML-filene. Arkivskaper står altså fritt
2896 til å gjøre hva de vil, bare det dokumenteres og det kan dannes et
2897 utrekk ved avlevering til depot.</p>
2898
2899 <p>De obligatoriske kravene i Noark 5 standarden må altså oppfylles -
2900 etter dialog med Riksarkivet i forbindelse med godkjenning. For
2901 offentlige arkiv er det særlig viktig med filene loependeJournal.xml
2902 og offentligJournal.xml. Private arkiv som vil forholde seg til Noark
2903 5 standarden er selvsagt frie til å bruke det som er relevant for dem
2904 av obligatoriske krav.</p>
2905 </blockquote></p>
2906
2907 <p>Det ser dermed ut for meg som om det er et lite behov for å
2908 standardisere XML-lagring av RFC-822-formatterte meldinger. Noen som
2909 vet om god spesifikasjon i så måte? I tillegg til den omtalt over,
2910 har jeg kommet over flere aktuelle beskrivelser (søk på "rfc 822
2911 xml", så finner du aktuelle alternativer).</p>
2912
2913 <ul>
2914
2915 <li><a href="http://www.openhealth.org/xmtp/">XML MIME Transformation
2916 protocol (XMTP)</a> fra OpenHealth, sist oppdatert 2001.</li>
2917
2918 <li><a href="https://tools.ietf.org/html/draft-klyne-message-rfc822-xml-03">An
2919 XML format for mail and other messages</a> utkast fra IETF datert
2920 2001.</li>
2921
2922 <li><a href="http://www.informit.com/articles/article.aspx?p=32074">xMail:
2923 E-mail as XML</a> en artikkel fra 2003 som beskriver python-modulen
2924 rfc822 som gir ut XML-representasjon av en RFC 822-formattert epost.</li>
2925
2926 </ul>
2927
2928 <p>Finnes det andre og bedre spesifikasjoner for slik lagring? Send
2929 meg en epost hvis du har innspill.</p>
2930
2931 </div>
2932 <div class="tags">
2933
2934
2935 Tags: <a href="http://www.hungry.com/~pere/blog/tags/noark5">noark5</a>, <a href="http://www.hungry.com/~pere/blog/tags/norsk">norsk</a>, <a href="http://www.hungry.com/~pere/blog/tags/offentlig innsyn">offentlig innsyn</a>.
2936
2937
2938 </div>
2939 </div>
2940 <div class="padding"></div>
2941
2942 <p style="text-align: right;"><a href="noark5.rss"><img src="http://www.hungry.com/~pere/blog/xml.gif" alt="RSS Feed" width="36" height="14" /></a></p>
2943 <div id="sidebar">
2944
2945
2946
2947 <h2>Archive</h2>
2948 <ul>
2949
2950 <li>2025
2951 <ul>
2952
2953 <li><a href="http://www.hungry.com/~pere/blog/archive/2025/01/">January (2)</a></li>
2954
2955 </ul></li>
2956
2957 <li>2024
2958 <ul>
2959
2960 <li><a href="http://www.hungry.com/~pere/blog/archive/2024/01/">January (1)</a></li>
2961
2962 <li><a href="http://www.hungry.com/~pere/blog/archive/2024/02/">February (1)</a></li>
2963
2964 <li><a href="http://www.hungry.com/~pere/blog/archive/2024/03/">March (2)</a></li>
2965
2966 <li><a href="http://www.hungry.com/~pere/blog/archive/2024/04/">April (3)</a></li>
2967
2968 <li><a href="http://www.hungry.com/~pere/blog/archive/2024/05/">May (1)</a></li>
2969
2970 <li><a href="http://www.hungry.com/~pere/blog/archive/2024/06/">June (1)</a></li>
2971
2972 <li><a href="http://www.hungry.com/~pere/blog/archive/2024/07/">July (2)</a></li>
2973
2974 <li><a href="http://www.hungry.com/~pere/blog/archive/2024/12/">December (1)</a></li>
2975
2976 </ul></li>
2977
2978 <li>2023
2979 <ul>
2980
2981 <li><a href="http://www.hungry.com/~pere/blog/archive/2023/01/">January (3)</a></li>
2982
2983 <li><a href="http://www.hungry.com/~pere/blog/archive/2023/02/">February (1)</a></li>
2984
2985 <li><a href="http://www.hungry.com/~pere/blog/archive/2023/04/">April (2)</a></li>
2986
2987 <li><a href="http://www.hungry.com/~pere/blog/archive/2023/05/">May (3)</a></li>
2988
2989 <li><a href="http://www.hungry.com/~pere/blog/archive/2023/06/">June (1)</a></li>
2990
2991 <li><a href="http://www.hungry.com/~pere/blog/archive/2023/08/">August (1)</a></li>
2992
2993 <li><a href="http://www.hungry.com/~pere/blog/archive/2023/09/">September (1)</a></li>
2994
2995 <li><a href="http://www.hungry.com/~pere/blog/archive/2023/10/">October (1)</a></li>
2996
2997 <li><a href="http://www.hungry.com/~pere/blog/archive/2023/11/">November (4)</a></li>
2998
2999 <li><a href="http://www.hungry.com/~pere/blog/archive/2023/12/">December (1)</a></li>
3000
3001 </ul></li>
3002
3003 <li>2022
3004 <ul>
3005
3006 <li><a href="http://www.hungry.com/~pere/blog/archive/2022/02/">February (1)</a></li>
3007
3008 <li><a href="http://www.hungry.com/~pere/blog/archive/2022/03/">March (3)</a></li>
3009
3010 <li><a href="http://www.hungry.com/~pere/blog/archive/2022/04/">April (2)</a></li>
3011
3012 <li><a href="http://www.hungry.com/~pere/blog/archive/2022/06/">June (2)</a></li>
3013
3014 <li><a href="http://www.hungry.com/~pere/blog/archive/2022/07/">July (1)</a></li>
3015
3016 <li><a href="http://www.hungry.com/~pere/blog/archive/2022/09/">September (1)</a></li>
3017
3018 <li><a href="http://www.hungry.com/~pere/blog/archive/2022/10/">October (1)</a></li>
3019
3020 <li><a href="http://www.hungry.com/~pere/blog/archive/2022/12/">December (1)</a></li>
3021
3022 </ul></li>
3023
3024 <li>2021
3025 <ul>
3026
3027 <li><a href="http://www.hungry.com/~pere/blog/archive/2021/01/">January (2)</a></li>
3028
3029 <li><a href="http://www.hungry.com/~pere/blog/archive/2021/02/">February (1)</a></li>
3030
3031 <li><a href="http://www.hungry.com/~pere/blog/archive/2021/05/">May (1)</a></li>
3032
3033 <li><a href="http://www.hungry.com/~pere/blog/archive/2021/06/">June (1)</a></li>
3034
3035 <li><a href="http://www.hungry.com/~pere/blog/archive/2021/07/">July (3)</a></li>
3036
3037 <li><a href="http://www.hungry.com/~pere/blog/archive/2021/08/">August (1)</a></li>
3038
3039 <li><a href="http://www.hungry.com/~pere/blog/archive/2021/09/">September (1)</a></li>
3040
3041 <li><a href="http://www.hungry.com/~pere/blog/archive/2021/10/">October (1)</a></li>
3042
3043 <li><a href="http://www.hungry.com/~pere/blog/archive/2021/12/">December (1)</a></li>
3044
3045 </ul></li>
3046
3047 <li>2020
3048 <ul>
3049
3050 <li><a href="http://www.hungry.com/~pere/blog/archive/2020/02/">February (2)</a></li>
3051
3052 <li><a href="http://www.hungry.com/~pere/blog/archive/2020/03/">March (2)</a></li>
3053
3054 <li><a href="http://www.hungry.com/~pere/blog/archive/2020/04/">April (2)</a></li>
3055
3056 <li><a href="http://www.hungry.com/~pere/blog/archive/2020/05/">May (3)</a></li>
3057
3058 <li><a href="http://www.hungry.com/~pere/blog/archive/2020/06/">June (2)</a></li>
3059
3060 <li><a href="http://www.hungry.com/~pere/blog/archive/2020/07/">July (1)</a></li>
3061
3062 <li><a href="http://www.hungry.com/~pere/blog/archive/2020/09/">September (1)</a></li>
3063
3064 <li><a href="http://www.hungry.com/~pere/blog/archive/2020/10/">October (1)</a></li>
3065
3066 <li><a href="http://www.hungry.com/~pere/blog/archive/2020/11/">November (1)</a></li>
3067
3068 </ul></li>
3069
3070 <li>2019
3071 <ul>
3072
3073 <li><a href="http://www.hungry.com/~pere/blog/archive/2019/01/">January (4)</a></li>
3074
3075 <li><a href="http://www.hungry.com/~pere/blog/archive/2019/02/">February (3)</a></li>
3076
3077 <li><a href="http://www.hungry.com/~pere/blog/archive/2019/03/">March (3)</a></li>
3078
3079 <li><a href="http://www.hungry.com/~pere/blog/archive/2019/05/">May (2)</a></li>
3080
3081 <li><a href="http://www.hungry.com/~pere/blog/archive/2019/06/">June (5)</a></li>
3082
3083 <li><a href="http://www.hungry.com/~pere/blog/archive/2019/07/">July (2)</a></li>
3084
3085 <li><a href="http://www.hungry.com/~pere/blog/archive/2019/08/">August (1)</a></li>
3086
3087 <li><a href="http://www.hungry.com/~pere/blog/archive/2019/09/">September (1)</a></li>
3088
3089 <li><a href="http://www.hungry.com/~pere/blog/archive/2019/11/">November (1)</a></li>
3090
3091 <li><a href="http://www.hungry.com/~pere/blog/archive/2019/12/">December (4)</a></li>
3092
3093 </ul></li>
3094
3095 <li>2018
3096 <ul>
3097
3098 <li><a href="http://www.hungry.com/~pere/blog/archive/2018/01/">January (1)</a></li>
3099
3100 <li><a href="http://www.hungry.com/~pere/blog/archive/2018/02/">February (5)</a></li>
3101
3102 <li><a href="http://www.hungry.com/~pere/blog/archive/2018/03/">March (5)</a></li>
3103
3104 <li><a href="http://www.hungry.com/~pere/blog/archive/2018/04/">April (3)</a></li>
3105
3106 <li><a href="http://www.hungry.com/~pere/blog/archive/2018/06/">June (2)</a></li>
3107
3108 <li><a href="http://www.hungry.com/~pere/blog/archive/2018/07/">July (5)</a></li>
3109
3110 <li><a href="http://www.hungry.com/~pere/blog/archive/2018/08/">August (3)</a></li>
3111
3112 <li><a href="http://www.hungry.com/~pere/blog/archive/2018/09/">September (3)</a></li>
3113
3114 <li><a href="http://www.hungry.com/~pere/blog/archive/2018/10/">October (5)</a></li>
3115
3116 <li><a href="http://www.hungry.com/~pere/blog/archive/2018/11/">November (2)</a></li>
3117
3118 <li><a href="http://www.hungry.com/~pere/blog/archive/2018/12/">December (4)</a></li>
3119
3120 </ul></li>
3121
3122 <li>2017
3123 <ul>
3124
3125 <li><a href="http://www.hungry.com/~pere/blog/archive/2017/01/">January (4)</a></li>
3126
3127 <li><a href="http://www.hungry.com/~pere/blog/archive/2017/02/">February (3)</a></li>
3128
3129 <li><a href="http://www.hungry.com/~pere/blog/archive/2017/03/">March (5)</a></li>
3130
3131 <li><a href="http://www.hungry.com/~pere/blog/archive/2017/04/">April (2)</a></li>
3132
3133 <li><a href="http://www.hungry.com/~pere/blog/archive/2017/06/">June (5)</a></li>
3134
3135 <li><a href="http://www.hungry.com/~pere/blog/archive/2017/07/">July (1)</a></li>
3136
3137 <li><a href="http://www.hungry.com/~pere/blog/archive/2017/08/">August (1)</a></li>
3138
3139 <li><a href="http://www.hungry.com/~pere/blog/archive/2017/09/">September (3)</a></li>
3140
3141 <li><a href="http://www.hungry.com/~pere/blog/archive/2017/10/">October (5)</a></li>
3142
3143 <li><a href="http://www.hungry.com/~pere/blog/archive/2017/11/">November (3)</a></li>
3144
3145 <li><a href="http://www.hungry.com/~pere/blog/archive/2017/12/">December (4)</a></li>
3146
3147 </ul></li>
3148
3149 <li>2016
3150 <ul>
3151
3152 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/01/">January (3)</a></li>
3153
3154 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/02/">February (2)</a></li>
3155
3156 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/03/">March (3)</a></li>
3157
3158 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/04/">April (8)</a></li>
3159
3160 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/05/">May (8)</a></li>
3161
3162 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/06/">June (2)</a></li>
3163
3164 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/07/">July (2)</a></li>
3165
3166 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/08/">August (5)</a></li>
3167
3168 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/09/">September (2)</a></li>
3169
3170 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/10/">October (3)</a></li>
3171
3172 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/11/">November (8)</a></li>
3173
3174 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/12/">December (5)</a></li>
3175
3176 </ul></li>
3177
3178 <li>2015
3179 <ul>
3180
3181 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/01/">January (7)</a></li>
3182
3183 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/02/">February (6)</a></li>
3184
3185 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/03/">March (1)</a></li>
3186
3187 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/04/">April (4)</a></li>
3188
3189 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/05/">May (3)</a></li>
3190
3191 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/06/">June (4)</a></li>
3192
3193 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/07/">July (6)</a></li>
3194
3195 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/08/">August (2)</a></li>
3196
3197 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/09/">September (2)</a></li>
3198
3199 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/10/">October (9)</a></li>
3200
3201 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/11/">November (6)</a></li>
3202
3203 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/12/">December (3)</a></li>
3204
3205 </ul></li>
3206
3207 <li>2014
3208 <ul>
3209
3210 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/01/">January (2)</a></li>
3211
3212 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/02/">February (3)</a></li>
3213
3214 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/03/">March (8)</a></li>
3215
3216 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/04/">April (7)</a></li>
3217
3218 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/05/">May (1)</a></li>
3219
3220 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/06/">June (2)</a></li>
3221
3222 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/07/">July (2)</a></li>
3223
3224 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/08/">August (2)</a></li>
3225
3226 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/09/">September (5)</a></li>
3227
3228 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/10/">October (6)</a></li>
3229
3230 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/11/">November (3)</a></li>
3231
3232 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/12/">December (5)</a></li>
3233
3234 </ul></li>
3235
3236 <li>2013
3237 <ul>
3238
3239 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/01/">January (11)</a></li>
3240
3241 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/02/">February (9)</a></li>
3242
3243 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/03/">March (9)</a></li>
3244
3245 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/04/">April (6)</a></li>
3246
3247 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/05/">May (9)</a></li>
3248
3249 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/06/">June (10)</a></li>
3250
3251 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/07/">July (7)</a></li>
3252
3253 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/08/">August (3)</a></li>
3254
3255 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/09/">September (5)</a></li>
3256
3257 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/10/">October (7)</a></li>
3258
3259 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/11/">November (9)</a></li>
3260
3261 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/12/">December (3)</a></li>
3262
3263 </ul></li>
3264
3265 <li>2012
3266 <ul>
3267
3268 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/01/">January (7)</a></li>
3269
3270 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/02/">February (10)</a></li>
3271
3272 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/03/">March (17)</a></li>
3273
3274 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/04/">April (12)</a></li>
3275
3276 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/05/">May (12)</a></li>
3277
3278 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/06/">June (20)</a></li>
3279
3280 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/07/">July (17)</a></li>
3281
3282 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/08/">August (6)</a></li>
3283
3284 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/09/">September (9)</a></li>
3285
3286 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/10/">October (17)</a></li>
3287
3288 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/11/">November (10)</a></li>
3289
3290 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/12/">December (7)</a></li>
3291
3292 </ul></li>
3293
3294 <li>2011
3295 <ul>
3296
3297 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/01/">January (16)</a></li>
3298
3299 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/02/">February (6)</a></li>
3300
3301 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/03/">March (6)</a></li>
3302
3303 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/04/">April (7)</a></li>
3304
3305 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/05/">May (3)</a></li>
3306
3307 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/06/">June (2)</a></li>
3308
3309 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/07/">July (7)</a></li>
3310
3311 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/08/">August (6)</a></li>
3312
3313 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/09/">September (4)</a></li>
3314
3315 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/10/">October (2)</a></li>
3316
3317 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/11/">November (3)</a></li>
3318
3319 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/12/">December (1)</a></li>
3320
3321 </ul></li>
3322
3323 <li>2010
3324 <ul>
3325
3326 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/01/">January (2)</a></li>
3327
3328 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/02/">February (1)</a></li>
3329
3330 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/03/">March (3)</a></li>
3331
3332 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/04/">April (3)</a></li>
3333
3334 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/05/">May (9)</a></li>
3335
3336 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/06/">June (14)</a></li>
3337
3338 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/07/">July (12)</a></li>
3339
3340 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/08/">August (13)</a></li>
3341
3342 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/09/">September (7)</a></li>
3343
3344 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/10/">October (9)</a></li>
3345
3346 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/11/">November (13)</a></li>
3347
3348 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/12/">December (12)</a></li>
3349
3350 </ul></li>
3351
3352 <li>2009
3353 <ul>
3354
3355 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/01/">January (8)</a></li>
3356
3357 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/02/">February (8)</a></li>
3358
3359 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/03/">March (12)</a></li>
3360
3361 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/04/">April (10)</a></li>
3362
3363 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/05/">May (9)</a></li>
3364
3365 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/06/">June (3)</a></li>
3366
3367 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/07/">July (4)</a></li>
3368
3369 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/08/">August (3)</a></li>
3370
3371 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/09/">September (1)</a></li>
3372
3373 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/10/">October (2)</a></li>
3374
3375 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/11/">November (3)</a></li>
3376
3377 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/12/">December (3)</a></li>
3378
3379 </ul></li>
3380
3381 <li>2008
3382 <ul>
3383
3384 <li><a href="http://www.hungry.com/~pere/blog/archive/2008/11/">November (5)</a></li>
3385
3386 <li><a href="http://www.hungry.com/~pere/blog/archive/2008/12/">December (7)</a></li>
3387
3388 </ul></li>
3389
3390 </ul>
3391
3392
3393
3394 <h2>Tags</h2>
3395 <ul>
3396
3397 <li><a href="http://www.hungry.com/~pere/blog/tags/3d-printer">3d-printer (19)</a></li>
3398
3399 <li><a href="http://www.hungry.com/~pere/blog/tags/amiga">amiga (1)</a></li>
3400
3401 <li><a href="http://www.hungry.com/~pere/blog/tags/aros">aros (1)</a></li>
3402
3403 <li><a href="http://www.hungry.com/~pere/blog/tags/bankid">bankid (4)</a></li>
3404
3405 <li><a href="http://www.hungry.com/~pere/blog/tags/betalkontant">betalkontant (9)</a></li>
3406
3407 <li><a href="http://www.hungry.com/~pere/blog/tags/bitcoin">bitcoin (13)</a></li>
3408
3409 <li><a href="http://www.hungry.com/~pere/blog/tags/bootsystem">bootsystem (17)</a></li>
3410
3411 <li><a href="http://www.hungry.com/~pere/blog/tags/bsa">bsa (2)</a></li>
3412
3413 <li><a href="http://www.hungry.com/~pere/blog/tags/chrpath">chrpath (3)</a></li>
3414
3415 <li><a href="http://www.hungry.com/~pere/blog/tags/debian">debian (205)</a></li>
3416
3417 <li><a href="http://www.hungry.com/~pere/blog/tags/debian edu">debian edu (159)</a></li>
3418
3419 <li><a href="http://www.hungry.com/~pere/blog/tags/debian-handbook">debian-handbook (9)</a></li>
3420
3421 <li><a href="http://www.hungry.com/~pere/blog/tags/digistan">digistan (11)</a></li>
3422
3423 <li><a href="http://www.hungry.com/~pere/blog/tags/dld">dld (18)</a></li>
3424
3425 <li><a href="http://www.hungry.com/~pere/blog/tags/docbook">docbook (33)</a></li>
3426
3427 <li><a href="http://www.hungry.com/~pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
3428
3429 <li><a href="http://www.hungry.com/~pere/blog/tags/english">english (467)</a></li>
3430
3431 <li><a href="http://www.hungry.com/~pere/blog/tags/fiksgatami">fiksgatami (23)</a></li>
3432
3433 <li><a href="http://www.hungry.com/~pere/blog/tags/fildeling">fildeling (14)</a></li>
3434
3435 <li><a href="http://www.hungry.com/~pere/blog/tags/freeculture">freeculture (34)</a></li>
3436
3437 <li><a href="http://www.hungry.com/~pere/blog/tags/freedombox">freedombox (9)</a></li>
3438
3439 <li><a href="http://www.hungry.com/~pere/blog/tags/frikanalen">frikanalen (20)</a></li>
3440
3441 <li><a href="http://www.hungry.com/~pere/blog/tags/h264">h264 (20)</a></li>
3442
3443 <li><a href="http://www.hungry.com/~pere/blog/tags/intervju">intervju (43)</a></li>
3444
3445 <li><a href="http://www.hungry.com/~pere/blog/tags/isenkram">isenkram (19)</a></li>
3446
3447 <li><a href="http://www.hungry.com/~pere/blog/tags/kart">kart (23)</a></li>
3448
3449 <li><a href="http://www.hungry.com/~pere/blog/tags/kodi">kodi (6)</a></li>
3450
3451 <li><a href="http://www.hungry.com/~pere/blog/tags/ldap">ldap (9)</a></li>
3452
3453 <li><a href="http://www.hungry.com/~pere/blog/tags/lego">lego (5)</a></li>
3454
3455 <li><a href="http://www.hungry.com/~pere/blog/tags/lenker">lenker (8)</a></li>
3456
3457 <li><a href="http://www.hungry.com/~pere/blog/tags/linuxcnc">linuxcnc (8)</a></li>
3458
3459 <li><a href="http://www.hungry.com/~pere/blog/tags/lsdvd">lsdvd (2)</a></li>
3460
3461 <li><a href="http://www.hungry.com/~pere/blog/tags/ltsp">ltsp (1)</a></li>
3462
3463 <li><a href="http://www.hungry.com/~pere/blog/tags/madewithcc">madewithcc (3)</a></li>
3464
3465 <li><a href="http://www.hungry.com/~pere/blog/tags/mesh network">mesh network (8)</a></li>
3466
3467 <li><a href="http://www.hungry.com/~pere/blog/tags/multimedia">multimedia (46)</a></li>
3468
3469 <li><a href="http://www.hungry.com/~pere/blog/tags/nice free software">nice free software (15)</a></li>
3470
3471 <li><a href="http://www.hungry.com/~pere/blog/tags/noark5">noark5 (25)</a></li>
3472
3473 <li><a href="http://www.hungry.com/~pere/blog/tags/norsk">norsk (325)</a></li>
3474
3475 <li><a href="http://www.hungry.com/~pere/blog/tags/nuug">nuug (199)</a></li>
3476
3477 <li><a href="http://www.hungry.com/~pere/blog/tags/offentlig innsyn">offentlig innsyn (41)</a></li>
3478
3479 <li><a href="http://www.hungry.com/~pere/blog/tags/open311">open311 (2)</a></li>
3480
3481 <li><a href="http://www.hungry.com/~pere/blog/tags/opensnitch">opensnitch (4)</a></li>
3482
3483 <li><a href="http://www.hungry.com/~pere/blog/tags/opphavsrett">opphavsrett (76)</a></li>
3484
3485 <li><a href="http://www.hungry.com/~pere/blog/tags/personvern">personvern (114)</a></li>
3486
3487 <li><a href="http://www.hungry.com/~pere/blog/tags/raid">raid (4)</a></li>
3488
3489 <li><a href="http://www.hungry.com/~pere/blog/tags/reactos">reactos (1)</a></li>
3490
3491 <li><a href="http://www.hungry.com/~pere/blog/tags/reprap">reprap (11)</a></li>
3492
3493 <li><a href="http://www.hungry.com/~pere/blog/tags/rfid">rfid (3)</a></li>
3494
3495 <li><a href="http://www.hungry.com/~pere/blog/tags/robot">robot (17)</a></li>
3496
3497 <li><a href="http://www.hungry.com/~pere/blog/tags/rss">rss (1)</a></li>
3498
3499 <li><a href="http://www.hungry.com/~pere/blog/tags/ruter">ruter (7)</a></li>
3500
3501 <li><a href="http://www.hungry.com/~pere/blog/tags/scraperwiki">scraperwiki (2)</a></li>
3502
3503 <li><a href="http://www.hungry.com/~pere/blog/tags/sikkerhet">sikkerhet (60)</a></li>
3504
3505 <li><a href="http://www.hungry.com/~pere/blog/tags/sitesummary">sitesummary (4)</a></li>
3506
3507 <li><a href="http://www.hungry.com/~pere/blog/tags/skepsis">skepsis (5)</a></li>
3508
3509 <li><a href="http://www.hungry.com/~pere/blog/tags/standard">standard (76)</a></li>
3510
3511 <li><a href="http://www.hungry.com/~pere/blog/tags/stavekontroll">stavekontroll (7)</a></li>
3512
3513 <li><a href="http://www.hungry.com/~pere/blog/tags/stortinget">stortinget (14)</a></li>
3514
3515 <li><a href="http://www.hungry.com/~pere/blog/tags/surveillance">surveillance (65)</a></li>
3516
3517 <li><a href="http://www.hungry.com/~pere/blog/tags/sysadmin">sysadmin (5)</a></li>
3518
3519 <li><a href="http://www.hungry.com/~pere/blog/tags/usenix">usenix (2)</a></li>
3520
3521 <li><a href="http://www.hungry.com/~pere/blog/tags/valg">valg (9)</a></li>
3522
3523 <li><a href="http://www.hungry.com/~pere/blog/tags/verkidetfri">verkidetfri (22)</a></li>
3524
3525 <li><a href="http://www.hungry.com/~pere/blog/tags/video">video (80)</a></li>
3526
3527 <li><a href="http://www.hungry.com/~pere/blog/tags/vitenskap">vitenskap (4)</a></li>
3528
3529 <li><a href="http://www.hungry.com/~pere/blog/tags/web">web (42)</a></li>
3530
3531 </ul>
3532
3533
3534 </div>
3535 <p style="text-align: right">
3536 Created by <a href="http://steve.org.uk/Software/chronicle">Chronicle v4.6</a>
3537 </p>
3538
3539 </body>
3540 </html>