1 <!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Strict//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns=
"http://www.w3.org/1999/xhtml" dir=
"ltr">
5 <meta http-equiv=
"Content-Type" content=
"text/html;charset=utf-8" />
6 <title>Petter Reinholdtsen: Entries 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" />
14 <a href=
"http://www.hungry.com/~pere/blog/">Petter Reinholdtsen
</a>
21 <h3>Entries tagged "noark5".
</h3>
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>
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.
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
43 <b><a href=
"bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a></b>. Merk,
44 betaling med bitcoin er ikke anonymt. :)
</p>
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>.
55 <div class=
"padding"></div>
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>
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>
74 <p><strong>Når «på» blir «pÃ¥»: Et reservoar av tegn sett fra
77 <p>av Thomas Sødring og Petter Reinholdtsen
</p>
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
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>
92 <p id=
"tegnsett_access_nå_og_før"><strong>«Nå» og «før»
</strong></p>
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>
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>
114 <p>Tegnsettproblemstillingen er satt sammen av fire fasetter;
115 repertoar, representasjon, koding og uttegning.
</p>
117 <p id=
"tegnsett_access_repertoarer"><strong>Repertoarer
</strong></p>
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>
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>
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>
148 <p id=
"tegnsett_access_fra_ascii_til_iso_8859"><strong>Fra ASCII til ISO-
8859</strong></p>
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>
163 <table align=
"center" width=
"50%">
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>
179 <td align=
"right">65</td>
184 <td align=
"right">77</td>
189 <td align=
"right">90</td>
194 <td align=
"right">97</td>
199 <td align=
"right">109</td>
204 <td align=
"right">122</td>
209 <td align=
"right">48</td>
214 <td align=
"right">58</td>
219 <td align=
"right">59</td>
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>
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>
242 <table align=
"center" width=
"50%">
244 <caption>Tabell
2. Koding av de norske symbolene slik de er definert i
245 ISO-
8859-
1 tegnsettet.
</caption>
256 <td align=
"right">198</td>
261 <td align=
"right">216</td>
266 <td align=
"right">197</td>
271 <td align=
"right">230</td>
276 <td align=
"right">248</td>
281 <td align=
"right">229</td>
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>
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
308 <table align=
"center" width=
"60%">
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>
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>
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
465 <p id=
"tegnsett_access_unicode_som_løsning"><strong>Unicode som løsning
</strong></p>
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>
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>
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>
500 <p id=
"tegnsett_access_bare_unicode_fremover"><strong>Bare Unicode fremover
</strong></p>
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>
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>
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>
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>
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>
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>
561 <p>§
5-
11. Tegnsett i arkivuttrekk
</p>
564 <li>Arkivuttrekk og medfølgende struktur- og innholdsbeskrivelser skal
565 overføres som ren tekst i ukryptert form, og benytte godkjent
568 <li>Godkjente tegnsett er:
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>
576 <li>Andre tegnsett aksepteres bare etter avtale med Arkivverket.
</li>
580 <p id=
"tegnsett_access_ditt_ansvar"><strong>Ditt ansvar
</strong></p>
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>
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>
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>
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>
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>
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-
2286/§
5-
11</a></p>
610 <p>For øvrig burde varsleren Edward Snowden få politisk asyl i Norge.
</p>
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
615 <b><a href=
"bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a></b>. Merk,
616 betaling med bitcoin er ikke anonymt. :)
</p>
618 <p><b>Oppdatering
2024-
08-
23</b>: Har fått innspill om at det norske
619 ordet for japanske mojibake er tegnsalat.
</p>
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>.
630 <div class=
"padding"></div>
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>
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>
647 <p>It is with great pleasure that we can announce a new release of
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>
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>
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
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
680 <p>My sincere thanks to everyone who has contributed to this
685 <p><strong>Release
0.6 2021-
06-
10 (d1ba5fc7e8bad0cfdce45ac20354b19d10ebbc7b)
</strong></p>
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
698 <li>Business Specific Metadata
</li>
699 <li>Norwegian National Identifiers
</li>
700 <li>Cross Reference
</li>
702 <li>StorageLocation
</li>
704 <li>Screening for relevant objects
</li>
708 <li>Make generation of updated docker image part of successful CI pipeline
</li>
709 <li>Implement pagination for all list requests
711 <li>Refactor code to support lists
</li>
712 <li>Refactor code for readability
</li>
713 <li>Standardise the controller/service code
</li>
715 <li>Finalise File-
>CaseFile expansion and Record-
>registryEntry/recordNote
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
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>
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
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>
738 <li>Improved Testing in codebase
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>
744 <li>Implement case-handling process from received email to case-handler
746 <li>Develop required GUI elements (digital postroom from email)
</li>
747 <li>Introduced leader, quality control and postroom roles
</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>
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>
774 <li>General Improvements
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
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
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
798 <li>Change Date values to DateTime to maintain compliance with Noark
5
800 <li>Domain model improvements using Hypersistence Optimizer
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>
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>
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>
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>
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>.
840 <div class=
"padding"></div>
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>
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
862 <li>Updated to Noark
5 versjon
5.0 API specification.
864 <li>Changed formatting of _links from [] to {} to match IETF draft
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
876 <li>Moved Part and Korrespondansepart from package sakarkiv to
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>
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
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
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
916 <li>Restructured code to use more common URL related constants in entry
917 point values and replace @RequestMapping with method specific
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>
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>
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>
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>.
951 <div class=
"padding"></div>
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>
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>
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>
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
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>
989 <p><strong>Update 2020-04-26</strong>: Initially managed to swap the
990 DOI numbers. Fixed it.</p>
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>.
1001 <div class="padding
"></div>
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>
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>.
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
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
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
1041 <b><a href="bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.
1042 Merk, betaling med bitcoin er ikke anonymt. :)</p>
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>.
1053 <div class="padding
"></div>
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>
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>.
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>
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
1083 <b><a href="bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.
1084 Merk, betaling med bitcoin er ikke anonymt. :)</p>
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>.
1095 <div class="padding
"></div>
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>
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>
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
1117 <b><a href="bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.
1118 Merk, betaling med bitcoin er ikke anonymt. :)</p>
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>.
1129 <div class="padding
"></div>
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>
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
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>
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>
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
1166 <b><a href="bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.
1167 Merk, betaling med bitcoin er ikke anonymt. :)</p>
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>.
1178 <div class="padding
"></div>
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>
1188 <p><em>av Thomas Sødring (OsloMet) og Petter Reinholdtsen (foreningen
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
1204 <p>Historisk sett gjorde Noark standarden en veldig bra jobb med
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>
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
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
1267 .../sakarkiv/journalpost?filter=contains(tittel, 'nabovarsel')
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
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>
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>
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>
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>
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
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>
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>
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
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å
1397 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/">https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/
</a>.
</p>
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
1402 <b><a href=
"bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a></b>.
</p>
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>.
1413 <div class=
"padding"></div>
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>
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
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>
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>
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>
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>.
1456 <div class=
"padding"></div>
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>
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>
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
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
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>
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>
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>
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>.
1536 <div class=
"padding"></div>
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>
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>
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>
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>
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>
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>.
1602 <div class=
"padding"></div>
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>
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
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>
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
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
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
1661 <p>Here is an example UML diagram, showing the core classes for
1662 keeping metadata about archived documents:
</p>
1666 skinparam classAttributeIconSize
0
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
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
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>
1714 class Arkivstruktur.Arkivskaper
<Arkivenhet> {
1715 +arkivskaperID : string
1716 +arkivskaperNavn : string
1717 +beskrivelse : string [
0.
.1]
1722 <p>This is what the complete diagram for the PlantUML notation above
1725 <p><img width=
"80%" src=
"http://www.hungry.com/~pere/blog/images/2019-03-25-noark5-plantuml-diagrameksempel.png"></p>
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
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>
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>
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>
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>.
1764 <div class=
"padding"></div>
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>
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>
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
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
1802 <li>Continued code style fixing, making code more readable.
</li>
1803 <li>Minor bug fixes.
</li>
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>
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>
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>.
1827 <div class=
"padding"></div>
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>
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>
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>
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>
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>
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
"diskusjonsforum
" 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
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>
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>
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
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å
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>
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
"sjekkes inn
" 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
"Commit
1933 changes
". 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
"Pull Request
"/PR). Når alt dette
1938 er gjort kan en velge
"Commit changes
" for å sende inn
1939 endringen. Hvis den er lagt inn i
"master
"-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
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 "klones
" er
1951 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/">https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/
</a>.
</p>
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>
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
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>
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
1983 <a href=
"https://webchat.freenode.net/?channels=nikita">#nikita
</a>
1984 (f.eks. via irc.freenode.net) for å møte likesinnede.
</p>
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>
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
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>.
2017 <div class=
"padding"></div>
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>
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
2045 <p>To try to get one official MIME type for these files, I've brought
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>
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>
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>.
2066 <div class=
"padding"></div>
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>
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):
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:
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>
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>
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>
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>
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>.
2153 <div class=
"padding"></div>
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>
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>
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>
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>
2194 Python
3 script demonstrating how to use the rfc3161ng module to
2195 get trusted timestamps.
2197 The license of this code is the same as the license of the rfc3161ng
2198 library, ie MIT/BSD.
2203 import pyasn1.codec.der
2207 import urllib.request
2214 def fetch(url, f=None):
2215 response = urllib.request.urlopen(url)
2216 data = response.read()
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:
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)
2231 # Then timestamp the message
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)
2238 # Finally, convert message and response to something 'openssl ts' can verify
2240 store(tsr_f, pyasn1.codec.der.encoder.encode(tsr))
2241 args = ["openssl", "ts", "-verify",
2242 "-data", msg_f.name,
2244 "-CAfile", ca_f.name,
2245 "-untrusted", cert_f.name]
2246 subprocess.check_call(args)
2248 if '__main__' == __name__:
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
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>
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>.
2271 <div class=
"padding"></div>
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>
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):
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
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)
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>
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
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>.
2337 <div class=
"padding"></div>
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>
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>
2355 <p>I've been wondering a bit lately how trusted timestamps could be
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>
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
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
2375 <li>format -
> "RFC3161"
2376 <li>mimeType -
> "application/timestamp-reply"
2377 <li>formatDetaljer -
> "<source URL for timestamp service>"
2378 <li>filenavn -
> "<sjekksum>.tsr"
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
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
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
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>
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>
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>
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>
2424 <p>The verification itself is a simple openssl command:
</p>
2426 <p><blockquote><pre>
2427 openssl ts -verify -data $inputfile -in $sha256.tsr \
2428 -CAfile ca-cert.txt -text
2429 </pre></blockquote></p>
2431 <p>Is there any reason this approach would not work? Is it somehow against
2432 the Noark
5 specification?
</p>
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>.
2443 <div class=
"padding"></div>
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>
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>
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>
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>
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
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
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>
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>
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>
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>.
2517 <div class=
"padding"></div>
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>
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
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
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>
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
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
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>
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>
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
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,
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> :).
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>
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>.
2625 <div class=
"padding"></div>
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>
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
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>
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>
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>
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>
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>
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>
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>.
2836 <div class=
"padding"></div>
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>
2846 <p>For noen uker siden ble NXCs fri programvarelisenserte
2848 <a href=
"http://www.nuug.no/aktiviteter/20140211-noark/">presentert hos
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
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
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
2879 <URL:
<a href=
"https://www.informit.com/articles/article.aspx?p=32074">https://www.informit.com/articles/article.aspx?p=
32074</a> >? 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
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>
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>
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>
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>
2915 <li><a href=
"http://www.openhealth.org/xmtp/">XML MIME Transformation
2916 protocol (XMTP)
</a> fra OpenHealth, sist oppdatert
2001.
</li>
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
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>
2928 <p>Finnes det andre og bedre spesifikasjoner for slik lagring? Send
2929 meg en epost hvis du har innspill.
</p>
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>.
2940 <div class=
"padding"></div>
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>
2953 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2025/01/">January (
2)
</a></li>
2960 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2024/01/">January (
1)
</a></li>
2962 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2024/02/">February (
1)
</a></li>
2964 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2024/03/">March (
2)
</a></li>
2966 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2024/04/">April (
3)
</a></li>
2968 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2024/05/">May (
1)
</a></li>
2970 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2024/06/">June (
1)
</a></li>
2972 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2024/07/">July (
2)
</a></li>
2974 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2024/12/">December (
1)
</a></li>
2981 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2023/01/">January (
3)
</a></li>
2983 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2023/02/">February (
1)
</a></li>
2985 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2023/04/">April (
2)
</a></li>
2987 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2023/05/">May (
3)
</a></li>
2989 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2023/06/">June (
1)
</a></li>
2991 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2023/08/">August (
1)
</a></li>
2993 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2023/09/">September (
1)
</a></li>
2995 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2023/10/">October (
1)
</a></li>
2997 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2023/11/">November (
4)
</a></li>
2999 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2023/12/">December (
1)
</a></li>
3006 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2022/02/">February (
1)
</a></li>
3008 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2022/03/">March (
3)
</a></li>
3010 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2022/04/">April (
2)
</a></li>
3012 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2022/06/">June (
2)
</a></li>
3014 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2022/07/">July (
1)
</a></li>
3016 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2022/09/">September (
1)
</a></li>
3018 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2022/10/">October (
1)
</a></li>
3020 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2022/12/">December (
1)
</a></li>
3027 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2021/01/">January (
2)
</a></li>
3029 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2021/02/">February (
1)
</a></li>
3031 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2021/05/">May (
1)
</a></li>
3033 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2021/06/">June (
1)
</a></li>
3035 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2021/07/">July (
3)
</a></li>
3037 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2021/08/">August (
1)
</a></li>
3039 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2021/09/">September (
1)
</a></li>
3041 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2021/10/">October (
1)
</a></li>
3043 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2021/12/">December (
1)
</a></li>
3050 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2020/02/">February (
2)
</a></li>
3052 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2020/03/">March (
2)
</a></li>
3054 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2020/04/">April (
2)
</a></li>
3056 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2020/05/">May (
3)
</a></li>
3058 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2020/06/">June (
2)
</a></li>
3060 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2020/07/">July (
1)
</a></li>
3062 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2020/09/">September (
1)
</a></li>
3064 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2020/10/">October (
1)
</a></li>
3066 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2020/11/">November (
1)
</a></li>
3073 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2019/01/">January (
4)
</a></li>
3075 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2019/02/">February (
3)
</a></li>
3077 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2019/03/">March (
3)
</a></li>
3079 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2019/05/">May (
2)
</a></li>
3081 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2019/06/">June (
5)
</a></li>
3083 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2019/07/">July (
2)
</a></li>
3085 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2019/08/">August (
1)
</a></li>
3087 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2019/09/">September (
1)
</a></li>
3089 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2019/11/">November (
1)
</a></li>
3091 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2019/12/">December (
4)
</a></li>
3098 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2018/01/">January (
1)
</a></li>
3100 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2018/02/">February (
5)
</a></li>
3102 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2018/03/">March (
5)
</a></li>
3104 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2018/04/">April (
3)
</a></li>
3106 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2018/06/">June (
2)
</a></li>
3108 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2018/07/">July (
5)
</a></li>
3110 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2018/08/">August (
3)
</a></li>
3112 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2018/09/">September (
3)
</a></li>
3114 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2018/10/">October (
5)
</a></li>
3116 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2018/11/">November (
2)
</a></li>
3118 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2018/12/">December (
4)
</a></li>
3125 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2017/01/">January (
4)
</a></li>
3127 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2017/02/">February (
3)
</a></li>
3129 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2017/03/">March (
5)
</a></li>
3131 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2017/04/">April (
2)
</a></li>
3133 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2017/06/">June (
5)
</a></li>
3135 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2017/07/">July (
1)
</a></li>
3137 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2017/08/">August (
1)
</a></li>
3139 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2017/09/">September (
3)
</a></li>
3141 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2017/10/">October (
5)
</a></li>
3143 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2017/11/">November (
3)
</a></li>
3145 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2017/12/">December (
4)
</a></li>
3152 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/01/">January (
3)
</a></li>
3154 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/02/">February (
2)
</a></li>
3156 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/03/">March (
3)
</a></li>
3158 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/04/">April (
8)
</a></li>
3160 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/05/">May (
8)
</a></li>
3162 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/06/">June (
2)
</a></li>
3164 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/07/">July (
2)
</a></li>
3166 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/08/">August (
5)
</a></li>
3168 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/09/">September (
2)
</a></li>
3170 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/10/">October (
3)
</a></li>
3172 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/11/">November (
8)
</a></li>
3174 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2016/12/">December (
5)
</a></li>
3181 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/01/">January (
7)
</a></li>
3183 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/02/">February (
6)
</a></li>
3185 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/03/">March (
1)
</a></li>
3187 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/04/">April (
4)
</a></li>
3189 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/05/">May (
3)
</a></li>
3191 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/06/">June (
4)
</a></li>
3193 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/07/">July (
6)
</a></li>
3195 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/08/">August (
2)
</a></li>
3197 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/09/">September (
2)
</a></li>
3199 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/10/">October (
9)
</a></li>
3201 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/11/">November (
6)
</a></li>
3203 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2015/12/">December (
3)
</a></li>
3210 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/01/">January (
2)
</a></li>
3212 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/02/">February (
3)
</a></li>
3214 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/03/">March (
8)
</a></li>
3216 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/04/">April (
7)
</a></li>
3218 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/05/">May (
1)
</a></li>
3220 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/06/">June (
2)
</a></li>
3222 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/07/">July (
2)
</a></li>
3224 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/08/">August (
2)
</a></li>
3226 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/09/">September (
5)
</a></li>
3228 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/10/">October (
6)
</a></li>
3230 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/11/">November (
3)
</a></li>
3232 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2014/12/">December (
5)
</a></li>
3239 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/01/">January (
11)
</a></li>
3241 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/02/">February (
9)
</a></li>
3243 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/03/">March (
9)
</a></li>
3245 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/04/">April (
6)
</a></li>
3247 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/05/">May (
9)
</a></li>
3249 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/06/">June (
10)
</a></li>
3251 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/07/">July (
7)
</a></li>
3253 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/08/">August (
3)
</a></li>
3255 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/09/">September (
5)
</a></li>
3257 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/10/">October (
7)
</a></li>
3259 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/11/">November (
9)
</a></li>
3261 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2013/12/">December (
3)
</a></li>
3268 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/01/">January (
7)
</a></li>
3270 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/02/">February (
10)
</a></li>
3272 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/03/">March (
17)
</a></li>
3274 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/04/">April (
12)
</a></li>
3276 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/05/">May (
12)
</a></li>
3278 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/06/">June (
20)
</a></li>
3280 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/07/">July (
17)
</a></li>
3282 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/08/">August (
6)
</a></li>
3284 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/09/">September (
9)
</a></li>
3286 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/10/">October (
17)
</a></li>
3288 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/11/">November (
10)
</a></li>
3290 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2012/12/">December (
7)
</a></li>
3297 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/01/">January (
16)
</a></li>
3299 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/02/">February (
6)
</a></li>
3301 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/03/">March (
6)
</a></li>
3303 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/04/">April (
7)
</a></li>
3305 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/05/">May (
3)
</a></li>
3307 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/06/">June (
2)
</a></li>
3309 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/07/">July (
7)
</a></li>
3311 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/08/">August (
6)
</a></li>
3313 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/09/">September (
4)
</a></li>
3315 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/10/">October (
2)
</a></li>
3317 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/11/">November (
3)
</a></li>
3319 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2011/12/">December (
1)
</a></li>
3326 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/01/">January (
2)
</a></li>
3328 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/02/">February (
1)
</a></li>
3330 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/03/">March (
3)
</a></li>
3332 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/04/">April (
3)
</a></li>
3334 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/05/">May (
9)
</a></li>
3336 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/06/">June (
14)
</a></li>
3338 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/07/">July (
12)
</a></li>
3340 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/08/">August (
13)
</a></li>
3342 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/09/">September (
7)
</a></li>
3344 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/10/">October (
9)
</a></li>
3346 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/11/">November (
13)
</a></li>
3348 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2010/12/">December (
12)
</a></li>
3355 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/01/">January (
8)
</a></li>
3357 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/02/">February (
8)
</a></li>
3359 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/03/">March (
12)
</a></li>
3361 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/04/">April (
10)
</a></li>
3363 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/05/">May (
9)
</a></li>
3365 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/06/">June (
3)
</a></li>
3367 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/07/">July (
4)
</a></li>
3369 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/08/">August (
3)
</a></li>
3371 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/09/">September (
1)
</a></li>
3373 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/10/">October (
2)
</a></li>
3375 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/11/">November (
3)
</a></li>
3377 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2009/12/">December (
3)
</a></li>
3384 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2008/11/">November (
5)
</a></li>
3386 <li><a href=
"http://www.hungry.com/~pere/blog/archive/2008/12/">December (
7)
</a></li>
3397 <li><a href=
"http://www.hungry.com/~pere/blog/tags/3d-printer">3d-printer (
19)
</a></li>
3399 <li><a href=
"http://www.hungry.com/~pere/blog/tags/amiga">amiga (
1)
</a></li>
3401 <li><a href=
"http://www.hungry.com/~pere/blog/tags/aros">aros (
1)
</a></li>
3403 <li><a href=
"http://www.hungry.com/~pere/blog/tags/bankid">bankid (
4)
</a></li>
3405 <li><a href=
"http://www.hungry.com/~pere/blog/tags/betalkontant">betalkontant (
9)
</a></li>
3407 <li><a href=
"http://www.hungry.com/~pere/blog/tags/bitcoin">bitcoin (
13)
</a></li>
3409 <li><a href=
"http://www.hungry.com/~pere/blog/tags/bootsystem">bootsystem (
17)
</a></li>
3411 <li><a href=
"http://www.hungry.com/~pere/blog/tags/bsa">bsa (
2)
</a></li>
3413 <li><a href=
"http://www.hungry.com/~pere/blog/tags/chrpath">chrpath (
3)
</a></li>
3415 <li><a href=
"http://www.hungry.com/~pere/blog/tags/debian">debian (
205)
</a></li>
3417 <li><a href=
"http://www.hungry.com/~pere/blog/tags/debian edu">debian edu (
159)
</a></li>
3419 <li><a href=
"http://www.hungry.com/~pere/blog/tags/debian-handbook">debian-handbook (
9)
</a></li>
3421 <li><a href=
"http://www.hungry.com/~pere/blog/tags/digistan">digistan (
11)
</a></li>
3423 <li><a href=
"http://www.hungry.com/~pere/blog/tags/dld">dld (
18)
</a></li>
3425 <li><a href=
"http://www.hungry.com/~pere/blog/tags/docbook">docbook (
33)
</a></li>
3427 <li><a href=
"http://www.hungry.com/~pere/blog/tags/drivstoffpriser">drivstoffpriser (
4)
</a></li>
3429 <li><a href=
"http://www.hungry.com/~pere/blog/tags/english">english (
467)
</a></li>
3431 <li><a href=
"http://www.hungry.com/~pere/blog/tags/fiksgatami">fiksgatami (
23)
</a></li>
3433 <li><a href=
"http://www.hungry.com/~pere/blog/tags/fildeling">fildeling (
14)
</a></li>
3435 <li><a href=
"http://www.hungry.com/~pere/blog/tags/freeculture">freeculture (
34)
</a></li>
3437 <li><a href=
"http://www.hungry.com/~pere/blog/tags/freedombox">freedombox (
9)
</a></li>
3439 <li><a href=
"http://www.hungry.com/~pere/blog/tags/frikanalen">frikanalen (
20)
</a></li>
3441 <li><a href=
"http://www.hungry.com/~pere/blog/tags/h264">h264 (
20)
</a></li>
3443 <li><a href=
"http://www.hungry.com/~pere/blog/tags/intervju">intervju (
43)
</a></li>
3445 <li><a href=
"http://www.hungry.com/~pere/blog/tags/isenkram">isenkram (
19)
</a></li>
3447 <li><a href=
"http://www.hungry.com/~pere/blog/tags/kart">kart (
23)
</a></li>
3449 <li><a href=
"http://www.hungry.com/~pere/blog/tags/kodi">kodi (
6)
</a></li>
3451 <li><a href=
"http://www.hungry.com/~pere/blog/tags/ldap">ldap (
9)
</a></li>
3453 <li><a href=
"http://www.hungry.com/~pere/blog/tags/lego">lego (
5)
</a></li>
3455 <li><a href=
"http://www.hungry.com/~pere/blog/tags/lenker">lenker (
8)
</a></li>
3457 <li><a href=
"http://www.hungry.com/~pere/blog/tags/linuxcnc">linuxcnc (
8)
</a></li>
3459 <li><a href=
"http://www.hungry.com/~pere/blog/tags/lsdvd">lsdvd (
2)
</a></li>
3461 <li><a href=
"http://www.hungry.com/~pere/blog/tags/ltsp">ltsp (
1)
</a></li>
3463 <li><a href=
"http://www.hungry.com/~pere/blog/tags/madewithcc">madewithcc (
3)
</a></li>
3465 <li><a href=
"http://www.hungry.com/~pere/blog/tags/mesh network">mesh network (
8)
</a></li>
3467 <li><a href=
"http://www.hungry.com/~pere/blog/tags/multimedia">multimedia (
46)
</a></li>
3469 <li><a href=
"http://www.hungry.com/~pere/blog/tags/nice free software">nice free software (
15)
</a></li>
3471 <li><a href=
"http://www.hungry.com/~pere/blog/tags/noark5">noark5 (
25)
</a></li>
3473 <li><a href=
"http://www.hungry.com/~pere/blog/tags/norsk">norsk (
325)
</a></li>
3475 <li><a href=
"http://www.hungry.com/~pere/blog/tags/nuug">nuug (
199)
</a></li>
3477 <li><a href=
"http://www.hungry.com/~pere/blog/tags/offentlig innsyn">offentlig innsyn (
41)
</a></li>
3479 <li><a href=
"http://www.hungry.com/~pere/blog/tags/open311">open311 (
2)
</a></li>
3481 <li><a href=
"http://www.hungry.com/~pere/blog/tags/opensnitch">opensnitch (
4)
</a></li>
3483 <li><a href=
"http://www.hungry.com/~pere/blog/tags/opphavsrett">opphavsrett (
76)
</a></li>
3485 <li><a href=
"http://www.hungry.com/~pere/blog/tags/personvern">personvern (
114)
</a></li>
3487 <li><a href=
"http://www.hungry.com/~pere/blog/tags/raid">raid (
4)
</a></li>
3489 <li><a href=
"http://www.hungry.com/~pere/blog/tags/reactos">reactos (
1)
</a></li>
3491 <li><a href=
"http://www.hungry.com/~pere/blog/tags/reprap">reprap (
11)
</a></li>
3493 <li><a href=
"http://www.hungry.com/~pere/blog/tags/rfid">rfid (
3)
</a></li>
3495 <li><a href=
"http://www.hungry.com/~pere/blog/tags/robot">robot (
17)
</a></li>
3497 <li><a href=
"http://www.hungry.com/~pere/blog/tags/rss">rss (
1)
</a></li>
3499 <li><a href=
"http://www.hungry.com/~pere/blog/tags/ruter">ruter (
7)
</a></li>
3501 <li><a href=
"http://www.hungry.com/~pere/blog/tags/scraperwiki">scraperwiki (
2)
</a></li>
3503 <li><a href=
"http://www.hungry.com/~pere/blog/tags/sikkerhet">sikkerhet (
60)
</a></li>
3505 <li><a href=
"http://www.hungry.com/~pere/blog/tags/sitesummary">sitesummary (
4)
</a></li>
3507 <li><a href=
"http://www.hungry.com/~pere/blog/tags/skepsis">skepsis (
5)
</a></li>
3509 <li><a href=
"http://www.hungry.com/~pere/blog/tags/standard">standard (
76)
</a></li>
3511 <li><a href=
"http://www.hungry.com/~pere/blog/tags/stavekontroll">stavekontroll (
7)
</a></li>
3513 <li><a href=
"http://www.hungry.com/~pere/blog/tags/stortinget">stortinget (
14)
</a></li>
3515 <li><a href=
"http://www.hungry.com/~pere/blog/tags/surveillance">surveillance (
65)
</a></li>
3517 <li><a href=
"http://www.hungry.com/~pere/blog/tags/sysadmin">sysadmin (
5)
</a></li>
3519 <li><a href=
"http://www.hungry.com/~pere/blog/tags/usenix">usenix (
2)
</a></li>
3521 <li><a href=
"http://www.hungry.com/~pere/blog/tags/valg">valg (
9)
</a></li>
3523 <li><a href=
"http://www.hungry.com/~pere/blog/tags/verkidetfri">verkidetfri (
22)
</a></li>
3525 <li><a href=
"http://www.hungry.com/~pere/blog/tags/video">video (
80)
</a></li>
3527 <li><a href=
"http://www.hungry.com/~pere/blog/tags/vitenskap">vitenskap (
4)
</a></li>
3529 <li><a href=
"http://www.hungry.com/~pere/blog/tags/web">web (
42)
</a></li>
3535 <p style=
"text-align: right">
3536 Created by
<a href=
"http://steve.org.uk/Software/chronicle">Chronicle v4.6
</a>