]> pere.pagekite.me Git - homepage.git/blob - blog/index.html
Generated.
[homepage.git] / blog / index.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
4 <head>
5 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
6 <title>Petter Reinholdtsen</title>
7 <link rel="stylesheet" type="text/css" media="screen" href="http://people.skolelinux.org/pere/blog/style.css" />
8 <link rel="stylesheet" type="text/css" media="screen" href="http://people.skolelinux.org/pere/blog/vim.css" />
9 <link rel="alternate" title="RSS Feed" href="http://people.skolelinux.org/pere/blog/index.rss" type="application/rss+xml" />
10 </head>
11 <body>
12 <div class="title">
13 <h1>
14 <a href="http://people.skolelinux.org/pere/blog/">Petter Reinholdtsen</a>
15
16 </h1>
17
18 </div>
19
20
21
22 <div class="entry">
23 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Nikita_og_Noark_5_tjenestegrensesnittet_tilbyr_ny_m_te___tenke_arkivering.html">Nikita og Noark 5 tjenestegrensesnittet tilbyr ny måte å tenke arkivering</a></div>
24 <div class="date">21st June 2019</div>
25 <div class="body"><p><em>av Thomas Sødring (OsloMet) og Petter Reinholdtsen (foreningen
26 NUUG)</em></p>
27
28 <p>Nikita Noark 5-kjerne er et fri programvareprosjekt som tar i bruk
29 Arkivverkets spesifikasjonen for Noark 5 Tjenestegrensesnitt og tilbyr
30 et maskinlesbar grensesnitt (arkiv-API) til datasystemer som trenger å
31 arkivere dokumenter og informasjon. I tillegg tilbyr Nikita et
32 nettleserbasert brukergrensesnitt for brukere av arkivet. Dette
33 brukergrensesnittet benytter det maskinlesbare grensesnittet. Noark 5
34 Tjenestegrensesnitt er en ny måte å tenke arkivering, med fokus på
35 automatisering og maskinell behandling av arkivmateriale, i stedet for
36 å fokusere på brukergrensesnitt. En kan tenke på
37 tjenestegrensesnittet som arkivet uten brukergrensesnitt, der flere
38 aktører kan koble til ulike brukergrensesnitt, tilpasset ulike
39 behov.</p>
40
41 <p>Historisk sett gjorde Noark en veldig bra jobb med overgangen fra
42 papir til digital saksbehandling, men det har kommet til kort på andre
43 områder. Den teknologiske utviklingen har brakt oss ditt av vi kan og
44 skal forvente langt mer fra en arkivkjerne enn før, men det offentlig
45 er ofte konservativ når det gjelder nytenking. For lengst skulle
46 begreper som samvirke mellom datasystemer, metadata, prosess og
47 tjenestegrensesnitt (API) vært dominerende når systemer kjøpes
48 inn. Dessverre er det slik at ikke alle ønsker samvirke mellom
49 datasystemer velkommen, og det kan være trygt å kjøpe svarte bokser
50 der du slipper å ta stilling til hvordan man skal få flere systemer
51 til å virke sammen. Men IT-arkitektur er et begrep arkivfolk også
52 begynner å ta inn over seg.</p>
53
54 <p>Slike systemer for å organisere metadata bør ha nettbaserte
55 tjenestegrensesnitt der brukergrensesnitt er tydelig adskilt fra
56 bakenforliggende system. Det finnes mange rapporter som snakker om å
57 bryte ned siloer i forvaltningen og standardiserte tjenestegrensesnitt
58 er det viktigste virkemiddel mot datasiloer og legger til rette for
59 økt samvirke mellom systemer. Et standardisert tjenestegrensesnitt er
60 et viktig middel for å få systemer til å samhandle da det sikrer at
61 ulike produsenters systemer kan snakke sammen på tvers. Samfunnet
62 fungerer ikke uten standardisering. Vi har alle samme strømstyrke og
63 kontakter i veggene og kjører alle på høyre side. Det er i en slik
64 sammenheng at prosjektet «Noark 5 Tjenestegrensesnitt» er veldig
65 viktig. Hvis alle leverandører av arkivsystemer forholdt seg til et
66 standardisert tjenestegrensesnitt kunne kostnadene for arkivering
67 reduseres. Tenk at du er en kommune som ønsker et fagsystem integrert
68 med arkivløsningen din. I dag må fagsystemleverandøren vite og
69 tilpasse seg den spesifikke versjonen og varianten av arkivløsningen
70 du har. Hvis vi antar at alle leverandører av arkivkjerner har solgt
71 inn enten SOAP eller REST-grensesnitt til kunder de siste 10 årene og
72 det kommer endret versjon av grensesnittet innimellom så gir det
73 veldig mange forskjellige tjenestegrensesnitt en fagsystemleverandør
74 må forholde seg til. Med 12 leverandører og kvartalsvise oppdateringer
75 kan det potensielt bli 96 ulike varianter hvert eneste år. Det sier
76 seg selv at det blir dyrt. Men det blir faktisk verre. Hvis du senere
77 ønsker å bytte ut arkivsystemet med et annet så er du avhengig å få
78 alle integrasjonene dine laget på nytt. Dette kan gjøre at du velger å
79 forbli hos en dårlig leverandør framfor å skaffe nytt system, fordi
80 det blir for vanskelig og dyrt å bytte. Dermed etableres det små
81 monopolsituasjoner som er vanskelig å bryte ut av. Dårlige valg i dag
82 kan ha uante kostander på sikt. I Nikita-prosjektet har vi kun jobbet
83 opp mot Noark 5 Tjenestegrensesnittet. Det har tatt en god del
84 ressurser å sette seg inn i spesifikasjonen og ta den i bruk, spesielt
85 på grunn av uklarheter i spesifikasjonen. Hvis vi måtte gjøre det
86 samme for alle versjoner og varianter av de forskjellige
87 tjenestegrensesnittene ville det blitt veldig dyrt.</p>
88
89 <p>For deg som arkivar er digitalisering og systemer som skal virke
90 sammen en del av den nye hverdagen. Du har kanskje blitt skånet for
91 det ved å kjøpe svarte bokser, men du risikerer at du gjør deg selv en
92 bjørnetjeneste. Det kan oppleves som kjedelig å fortelle kolleger at
93 du skal sette deg inn i et tjenestegrensesnitt, men dette er faktisk
94 veldig spennende. Tjenestegrensesnittet er på en måte blitt levende og
95 det er spesielt et begrep du bør merke deg: OData. Å trekke inn deler
96 av OData-standarden som en måte å filtrere entitetsøk i et arkivsystem
97 var et nyttig trekk i prosjektet. Følgende eksempel er en
98 OData-spørring det går an å sende inn til en standardisert
99 arkivkjerne:</p>
100
101 <p><blockquote>
102 .../sakarkiv/journalpost?filter=contains(tittel, 'nabovarsel')
103 </blockquote></p>
104
105 <p>Spørringen over vil hente en liste av alle dine journalposter der
106 tittelen til journalposten inneholder ordet 'nabovarsel'. Alle
107 leverandører som implementerer tjenestegrensesnittet vil måtte tilby
108 dette. Det betyr at hvis du lærer dete språket for et system, vil det
109 være gjeldende for alle. Dette er egentlig en nye måte å søke i
110 arkivdatabasen på og vil være svært nyttig, for eksempel kan søk i
111 tjenestegrensesnittet antagelig brukes til å hente ut offentlig
112 postjournal. I arkivverden pleier vi å like teknologier som er
113 menneskelesbart, da vet vi det er enkelt og nyttig! OData er også
114 viktig fordi det kan bli en ny måte å svare innsynsforespørsler på i
115 tråd med offentlighetsloven § 9, der retten til å kreve innsyn i
116 sammenstilling fra databaser er nedfelt. I dag ser vi
117 forvaltningsorganer som avviser slike krav fordi det «ikke kan gjøres
118 med enkle framgangsmåter». Bruken av OData i tjenestegrensesnittet,
119 sammen med maskinlesbar markeringsformater kan være et viktig bidrag
120 til å åpne arkivene i tråd med prinsippene om en åpen og transparent
121 forvaltning.</p>
122
123 <p>Standardisering er viktig fordi det <em>kan</em> sikre
124 samvirke. Men den effekten kommer kun hvis standardiseringen sikrer
125 at alle forstår standarden på samme måte, dvs. at den er entydig og
126 klar. En god måte å sikre en entydig og klar spesifikasjon er ved å
127 kreve at det finnes minst to ulike implementasjoner som følger
128 spesifikasjonen og som kan snakke sammen, det vil si at de snakker
129 samme språk, slik IETF krever for alle sine standarder, før
130 spesifikasjonen anses å være ferdig. Tilbakemelding fra miljøet
131 forteller at både leverandører og kunder har et avslappet forhold til
132 Noark 5 Tjenestegrensesnitt og det er så langt kun Evry som har visst
133 offentlig at de har en implementasjon av tjenestegrensesnittet. For å
134 redusere kostnadene for samvirkende datasystemer betraktelig, er det
135 veldig viktig at vi kommer i en situasjon der alle leverandører har
136 sine egne implementasjoner av tjenestegrensesnittet, og at disse
137 oppfører seg likt og i tråd med det som er beskrevet i
138 spesifikasjonen.</p>
139
140 <p>Det er er her fri programvare spiller en viktig rolle. Med en uklar
141 standard blir det som en polsk riksdag, der ingenting fungerer. Nikita
142 er en fri programvareimplementasjon av tjenestegrensesnitt og kan
143 fungere som teknisk referanse slik at leverandører enklere kan se og
144 forstå hvordan standarden skal tolkes. Vi har i Nikitaprosjektet
145 erfart å ende opp med vidt forskjellige tolkninger når
146 prosjektmedlemmene leser spesifikasjonsteksten, en effekt av en uklar
147 spesifikasjon. Men Nikitaprosjektet har også utviklet et test-program
148 som sjekker om et tjenestegrensesnitt er i samsvar med standarden, og
149 prosjektet bruker det hele tiden for å sikre at endringer og
150 forbedringer fungerer. Egenerklæringsskjemaenes dager kan væræ talte!
151 Snart vil du selv kunne teste hver oppdatering av arkivsystemet med en
152 uavhengig sjekk.</p>
153
154 <p>Fri programvare representerer en demokratisering av kunnskap der
155 tolkning- og innlåsingsmakt flyttes fra leverandør til almenheten.
156 Med fri programvare har du en litt annerledes verdikjede, der selve
157 produktet ikke holdes hemmelig for å tjene penger, slik en gjør med
158 ufri programvare og skytjenester som ikke bruker fri programvare, men
159 du kan tjene penger på andre deler av verdikjeden. Med fri programvare
160 kan samfunnet betale for å videreutvikle nyttig
161 fellesfunksjonalitet.</p.
162
163 <p>Nikita er en fri programvareimplementasjon av tjenestegrensesnittet og
164 kan fungere som en referanseimplementasjon dersom det er ønskelig.
165 Alle har lik tilgang til koden og det koster ingenting å ta den i bruk
166 og utforske det. Nikitaprosjektet ønsker tjenestegrensesnittet
167 velkommen og stiller veldig gjerne opp i diskusjoner om tolkning av
168 tjenestegrensesnittet. Nikita er bygget på moderne
169 programmeringsrammeverk og utviklet i full åpenhet. Men nikita er ikke
170 noe du kan kjøpe. Nikita er først og fremst et verktøy for forsking og
171 utvikling laget for å fremme forskning på arkivfeltet. Systemer som
172 virker sammen har alltid vært hovedfokus og vil være det fremover.
173 Det brukes som undervisningsverktøy der studentene ved OsloMet lærer
174 om administrativ oppsett, saksbehandling, uttrekk og samvirkende
175 datasystemer. Det brukes også som forskningsobjekt der vi ser på
176 import av dokumentsamlinger, bruk av blokkjede og andre nyskapende
177 måter å tenke arkiv på. Det er dog helt greit om andre tar Nikita og
178 pakker det for å selge det som produkt. Forvaltningsorganer med
179 sterke drift- og utviklingsmiljøer kan også se på Nikita og utforske
180 hva som er mulig. Dette kan de gjøre uten å måtte betale for
181 bruksrettigheter eller tilgang til konsulenter. Men arkivering blir
182 ikke gratis på grunn av Nikita. Det trengs fortsatt folk med
183 kompetanse og tid til å ta i bruk Nikita.</p>
184
185 <p>Nikita har nylig kommet med en ny utgave, den sjette i rekken.
186 Systemet er ikke ferdig, mest på grunn av at API-spesifikasjonen for
187 Noark 5 Tjenestegrensesnitt ikke er ferdig, men allerede i dag kan en
188 bruke Nikita som arkiv. Vi har laget eksempelsystem for å importere
189 data fra deponi-XML og slik gjøre eksisterende arkivdata tilgjengelig
190 via et API. Vi har også laget en testklient som importerer epost inn
191 i arkivet med vedlegg der epostenes trådinformasjon brukes til å legge
192 eposttråder i samme arkivmappe, og en annen testklient som henter
193 epost ut av en arkivmappe på mbox-format slik at en vanlig epostklient
194 kan brukes til å lese igjennom og svare på epostene i en
195 arkivmappe. De som vil ta en titt på Nikita kan besøke
196 <a href="https://nikita.oslomet.no">https://nikita.oslomet.no</a> og
197 logge inn med brukernavn «admin@example.com» og passord «password».
198 Dette gir tilgang til det forenklede brukergrensesnittet som brukes
199 til undervisning. De som heller vil ta en titt under panseret kan
200 besøke
201 <a href="https://nikita.oslomet.no/browse.html">https://nikita.oslomet.no/browse.html</a>
202 og der se hvordan API-et fungerer mer i detalj. Innloggingsdetaljer
203 her er det samme som for brukergrensesnittet.</p>
204
205 <p>Fremover er fokuset på forbedring av spesifikasjonen Noark 5
206 Tjenestegrensesnitt. De som skrev tjenestegrensesnittet gjorde et
207 interessant og framtidsrettet grep, de skilte sak fra arkiv.
208 Tjenestegrensesnittet består av flere "pakker", der noen er
209 grunnleggende mens andre bygger på de grunnleggende pakkene. Pakkene
210 som er beskrevet så langt heter «arkivstruktur», «sakarkiv»,
211 «administrasjon», «loggogsporing» og «moeter» (dessverre
212 <a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/pull/120">planlagt
213 fjernet</a> i første utgave). Etter hvert håper vi å utforske
214 prosses- og metadatabeskrivelser til flere fagområder og bidra til at
215 tjenestegrensesnittet kan legge til flere pakker som «byggarkiv»,
216 «barnevern», «personal», «barnehage», der arkivfaglig metadata- og
217 dokumentasjonsbehov er kartlagt og standardisert.</p>
218
219 <p>Nikita utvikles av en liten prosjektgruppe, og vi er alltid
220 interessert å bli flere. Hvis en åpen, fri og standardisert tilnærming
221 til arkivering høres interessant ut, bli med oss på veien videre. Vi
222 er tilstede på IRC-kanalen #nikita hos FreeNode (tilgjengelig via
223 nettleser på
224 <a href="https://webchat.freenode.net?channels=#nikita">https://webchat.freenode.net?channels=#nikita</a>),
225 og har en e-postliste nikita-noark@nuug.no hos NUUG (tilgjengelig for
226 påmelding og arkiv på
227 <a href="https://lists.nuug.no/mailman/listinfo/nikita-noark">https://lists.nuug.no/mailman/listinfo/nikita-noark</a>)
228 der en kan følge med eller være med oss på den spennende veien videre.
229 Spesifikasjonen for Noark 5 Tjenestegrensesnitt vedlikeholdes på
230 github,
231 <a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/">https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/</a>.</p>
232
233 <p>Som vanlig, hvis du bruker Bitcoin og ønsker å vise din støtte til
234 det jeg driver med, setter jeg pris på om du sender Bitcoin-donasjoner
235 til min adresse
236 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
237 </div>
238 <div class="tags">
239
240
241 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/noark5">noark5</a>, <a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>.
242
243
244 </div>
245 </div>
246 <div class="padding"></div>
247
248 <div class="entry">
249 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Jami_Ring__finally_functioning_peer_to_peer_communication_client.html">Jami/Ring, finally functioning peer to peer communication client</a></div>
250 <div class="date">19th June 2019</div>
251 <div class="body"><p>Some years ago, in 2016, I
252 <a href="http://people.skolelinux.org/pere/blog/Experience_and_updated_recipe_for_using_the_Signal_app_without_a_mobile_phone.html">wrote
253 for the first time about</a> the Ring peer to peer messaging system.
254 It would provide messaging without any central server coordinating the
255 system and without requiring all users to register a phone number or
256 own a mobile phone. Back then, I could not get it to work, and put it
257 aside until it had seen more development. A few days ago I decided to
258 give it another try, and am happy to report that this time I am able
259 to not only send and receive messages, but also place audio and video
260 calls. But only if UDP is not blocked into your network.</p>
261
262 <p>The Ring system changed name earlier this year to
263 <a href="https://en.wikipedia.org/wiki/Jami_(software)">Jami</a>. I
264 tried doing web search for 'ring' when I discovered it for the first
265 time, and can only applaud this change as it is impossible to find
266 something called Ring among the noise of other uses of that word. Now
267 you can search for 'jami' and this client and
268 <a href="https://jami.net/">the Jami system</a> is the first hit at
269 least on duckduckgo.</p>
270
271 <p>Jami will by default encrypt messages as well as audio and video
272 calls, and try to send them directly between the communicating parties
273 if possible. If this proves impossible (for example if both ends are
274 behind NAT), it will use a central SIP TURN server maintained by the
275 Jami project. Jami can also be a normal SIP client. If the SIP
276 server is unencrypted, the audio and video calls will also be
277 unencrypted. This is as far as I know the only case where Jami will
278 do anything without encryption.</p>
279
280 <p>Jami is available for several platforms: Linux, Windows, MacOSX,
281 Android, iOS, and Android TV. It is included in Debian already. Jami
282 also work for those using F-Droid without any Google connections,
283 while Signal do not.
284 <a href="https://git.jami.net/savoirfairelinux/ring-project/wikis/technical/Protocol">The
285 protocol</a> is described in the Ring project wiki. The system uses a
286 distributed hash table (DHT) system (similar to BitTorrent) running
287 over UDP. On one of the networks I use, I discovered Jami failed to
288 work. I tracked this down to the fact that incoming UDP packages
289 going to ports 1-49999 were blocked, and the DHT would pick a random
290 port and end up in the low range most of the time. After talking to
291 the developers, I solved this by enabling the dhtproxy in the
292 settings, thus using TCP to talk to a central DHT proxy instead of
293
294 peering directly with others. I've been told the developers are
295 working on allowing DHT to use TCP to avoid this problem. I also ran
296 into a problem when trying to talk to the version of Ring included in
297 Debian Stable (Stretch). Apparently the protocol changed between
298 beta2 and the current version, making these clients incompatible.
299 Hopefully the protocol will not be made incompatible in the
300 future.</p>
301
302 <p>It is worth noting that while looking at Jami and its features, I
303 came across another communication platform I have not tested yet. The
304 <a href="https://en.wikipedia.org/wiki/Tox_(protocol)">Tox protocol</a>
305 and <a href="https://tox.chat/">family of Tox clients</a>. It might
306 become the topic of a future blog post.</p>
307
308 <p>As usual, if you use Bitcoin and want to show your support of my
309 activities, please send Bitcoin donations to my address
310 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
311 </div>
312 <div class="tags">
313
314
315 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>.
316
317
318 </div>
319 </div>
320 <div class="padding"></div>
321
322 <div class="entry">
323 <div class="title"><a href="http://people.skolelinux.org/pere/blog/More_sales_number_for_my_Free_Culture_paper_editions__2019_edition_.html">More sales number for my Free Culture paper editions (2019-edition)</a></div>
324 <div class="date">11th June 2019</div>
325 <div class="body"><p>The first book I published,
326 <a href="http://www.free-culture.cc/">Free Culture by Lawrence
327 Lessig</a>, is still selling a few copies. Not a lot, but enough to
328 have contributed slightly over $500 to the <a
329 href="https://creativecommons.org/">Creative Commons Corporation</a>
330 so far. All the profit is sent there. Most books are still sold via
331 Amazon (83 copies), with Ingram second (49) and Lulu (12) and Machette (7) as
332 minor channels. Bying directly from Lulu bring the largest cut to
333 Creative Commons. The English Edition sold 80 copies so far, the
334 French 59 copies, and Norwegian only 8 copies. Nothing impressive,
335 but nice to see the work we put down is still being appreciated. The
336 ebook edition is available for free from
337 <a href="https://github.com/petterreinholdtsen/free-culture-lessig">Github</a>.</p>
338
339 <table border="0">
340 <tr><th rowspan="2" valign="bottom">Title / language</th>
341 <th colspan="7">Quantity</th></tr>
342 <tr>
343 <th>2016 jan-jun</th>
344 <th>2016 jul-dec</th>
345 <th>2017 jan-jun</th>
346 <th>2017 jul-dec</th>
347 <th>2018 jan-jun</th>
348 <th>2018 jul-dec</th>
349 <th>2019 jan-may</th>
350 </tr>
351
352 <tr>
353 <td><a href="http://www.lulu.com/shop/lawrence-lessig/culture-libre/paperback/product-22645082.html">Culture Libre / French</a></td>
354 <td align="right">3</td>
355 <td align="right">6</td>
356 <td align="right">19</td>
357 <td align="right">11</td>
358 <td align="right">7</td>
359 <td align="right">6</td>
360 <td align="right">7</td>
361 </tr>
362
363 <tr>
364 <td><a href="http://www.lulu.com/shop/lawrence-lessig/fri-kultur/paperback/product-22441576.html">Fri kultur / Norwegian</a></td>
365 <td align="right">7</td>
366 <td align="right">1</td>
367 <td align="right">0</td>
368 <td align="right">0</td>
369 <td align="right">0</td>
370 <td align="right">0</td>
371 <td align="right">0</td>
372 </tr>
373
374 <tr>
375 <td><a href="http://www.lulu.com/shop/lawrence-lessig/free-culture/paperback/product-22440520.html">Free Culture / English</a></td>
376 <td align="right">14</td>
377 <td align="right">27</td>
378 <td align="right">16</td>
379 <td align="right">9</td>
380 <td align="right">3</td>
381 <td align="right">7</td>
382 <td align="right">3</td>
383 </tr>
384
385 <tr>
386 <td>Total</td>
387 <td align="right">24</td>
388 <td align="right">34</td>
389 <td align="right">35</td>
390 <td align="right">20</td>
391 <td align="right">10</td>
392 <td align="right">13</td>
393 <td align="right">10</td>
394 </tr>
395
396 </table>
397
398 <p>It is fun to see the French edition being more popular than the
399 English one.</p>
400
401 <p>If you would like to translate and publish the book in your native
402 language, I would be happy to help make it happen. Please get in
403 touch.</p>
404 </div>
405 <div class="tags">
406
407
408 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>.
409
410
411 </div>
412 </div>
413 <div class="padding"></div>
414
415 <div class="entry">
416 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Official_MIME_type__text_vnd_sosi__for_SOSI_map_data.html">Official MIME type "text/vnd.sosi" for SOSI map data</a></div>
417 <div class="date"> 4th June 2019</div>
418 <div class="body"><p>Just 15 days ago,
419 <ahref="http://people.skolelinux.org/pere/blog/MIME_type__text_vnd_sosi__for_SOSI_map_data.html">I
420 mentioned</a> my submission to IANA to register an official MIME type
421 for the SOSI vector map format. This morning, just an hour ago, I was
422 notified that
423 <a href="https://www.iana.org/assignments/media-types/text/vnd.sosi">the
424 MIME type "text/vnd.sosi"</a> is registered for this format. In
425 addition to this registration, my
426 <a href="https://github.com/file/file/blob/master/magic/Magdir/sosi">file(1)
427 patch for a pattern matching rule for SOSI files</a> has been accepted
428 into the official source of that program (pending a new release), and
429 I've been told by the team behind
430 <a href="https://www.nationalarchives.gov.uk/PRONOM/">PRONOM</a> that
431 the SOSI format will be included in the next release of PRONOM, which
432 they plan to release this summer around July.</p>
433
434 <p>I am very happy to see all of this fall into place, for use by
435 <a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/">the
436 Noark 5 Tjenestegrensesnitt</a> implementations.</p>
437
438 <p>As usual, if you use Bitcoin and want to show your support of my
439 activities, please send Bitcoin donations to my address
440 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
441 </div>
442 <div class="tags">
443
444
445 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/kart">kart</a>, <a href="http://people.skolelinux.org/pere/blog/tags/noark5">noark5</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>.
446
447
448 </div>
449 </div>
450 <div class="padding"></div>
451
452 <div class="entry">
453 <div class="title"><a href="http://people.skolelinux.org/pere/blog/The_space_rover_coquine__or_how_I_ended_up_on_the_dark_side_of_the_moon.html">The space rover coquine, or how I ended up on the dark side of the moon</a></div>
454 <div class="date"> 2nd June 2019</div>
455 <div class="body"><p>A while back a college and friend from Debian and the Skolelinux /
456 Debian Edu project approached me, asking if I knew someone that might
457 be interested in helping out with a technology project he was running
458 as a teacher at <a href="https://www.ecolefrancodanoise.dk/">L'école
459 franco-danoise</a> - the Danish-French school and kindergarden. The
460 kids were building robots, rovers. The story behind it is to build a
461 rover for use
462 <a href="http://blog.ecolefrancodanoise.dk/first-week-on-the-dark-side">on
463 the dark side of the moon</a>, and remote control it. As travel cost
464 was a bit high for the final destination, and they wanted to test the
465 concept first, he was looking for volunteers to host a rover for the
466 kids to control in a foreign country. I ended up volunteering as a
467 host, and last week the rover arrived. It took a while to arrive
468 after <a href="http://blog.ecolefrancodanoise.dk/model-moms">it was
469 built and shipped</a>, because of customs confusion. Luckily we were
470 able fix it quickly with help from my colleges at work.</p>
471
472 <p>This is what it looked like when the rover arrived. Note the cute
473 eyes looking up on me from the wrapping</p>
474
475 <img src="http://people.skolelinux.org/pere/blog/images/2019-06-02-robot-dark-side-of-moon-esken-med-det-rare-i.jpeg" width="32%" style="clear:left"/>
476 <img src="http://people.skolelinux.org/pere/blog/images/2019-06-02-robot-dark-side-of-moon-den-ser-meg.jpeg" width="32%" style="clear:left"/>
477 <img src="http://people.skolelinux.org/pere/blog/images/2019-06-02-robot-dark-side-of-moon-en-skrue-loes.jpeg" width="32%" style="clear:left"/>
478
479 <p style="text-align:left">Once the robot arrived, we needed to track
480 down batteries and figure out how to build custom firmware for it with
481 the appropriate wifi settings. I asked a friend if I could get two
482 18650 batteries from his pile of Tesla batteries (he had them from the
483 wrack of a crashed Tesla), so now the rover is running on Tesla
484 batteries.</p>
485
486 <p>Building
487 <a href="https://gitlab.com/ecolefrancodanoise/arduino-efd/">the rover
488 firmware</a> proved a bit harder, as the code did not work out of the
489 box with the Arduino IDE package in Debian Buster. I suspect this is
490 due to a unsolved
491 <a href="https://github.com/arduino/Arduino/pull/2703"> license problem
492 with arduino</a> blocking Debian from upgrading to the latest version.
493 In the end we gave up debugging why the IDE failed to find the
494 required libraries, and ended up using the Arduino Makefile from the
495 <a href="https://tracker.debian.org/pkg/arduino-mk">arduino-mk Debian
496 package</a> instead. Unfortunately the camera library is missing from
497 the Arduino environment in Debian, so we disabled the camera support
498 for the first firmware build, to get something up and running. With
499 this reduced firmware, the robot could be controlled via the
500 controller server, driving around and measuring distance using its
501 internal acoustic sensor.</p>
502
503 <p>Next, With some help from my friend in Denmark, which checked in the
504 camera library into the gitlab repository for me to use, we were able
505 to build a new and more complete version of the firmware, and the
506 robot is now up and running. This is what the "commander" web page
507 look like after taking a measurement and a snapshot:</p>
508
509 <img src="http://people.skolelinux.org/pere/blog/images/2019-06-02-robot-dark-side-of-moon-commander.png" width="40%" border="1" align="center"/>
510
511 <p>If you want to learn more about this project, you can check out the
512 <a href="https://hackaday.io/project/164082-the-dark-side-challenge">The
513 Dark Side Challenge</a> Hackaday web pages.</p>
514
515 <p>As usual, if you use Bitcoin and want to show your support of my
516 activities, please send Bitcoin donations to my address
517 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
518 </div>
519 <div class="tags">
520
521
522 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/robot">robot</a>.
523
524
525 </div>
526 </div>
527 <div class="padding"></div>
528
529 <div class="entry">
530 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Nikita_version_0_4_released___free_software_archive_API_server.html">Nikita version 0.4 released - free software archive API server</a></div>
531 <div class="date">22nd May 2019</div>
532 <div class="body"><p>This morning, a new release of
533 <a href="https://gitlab.com/OsloMet-ABI/nikita-noark5-core/">Nikita
534 Noark 5 core project</a> was
535 <a href="https://lists.nuug.no/pipermail/nikita-noark/2019-May/000468.html">announced
536 on the project mailing list</a>. The Nikita free software solution is
537 an implementation of the Norwegian archive standard Noark 5 used by
538 government offices in Norway. These were the changes in version 0.4
539 since version 0.3, see the email link above for links to a demo site:</p>
540
541 <ul>
542
543 <li>Roll out OData handling to all endpoints where applicable</li>
544 <li>Changed the relation key for "ny-journalpost" to the official one.</li>
545 <li>Better link generation on outgoing links.</li>
546 <li>Tidy up code and make code and approaches more consistent throughout
547 the codebase</li>
548 <li>Update rels to be in compliance with updated version in the
549 interface standard</li>
550 <li>Avoid printing links on empty objects as they can't have links</li>
551 <li>Small bug fixes and improvements</li>
552 <li>Start moving generation of outgoing links to @Service layer so access
553 control can be used when generating links</li>
554 <li>Log exception that was being swallowed so it's traceable</li>
555 <li>Fix name mapping problem</li>
556 <li>Update templated printing so templated should only be printed if it
557 is set true. Requires more work to roll out across entire
558 application.</li>
559 <li>Remove Record->DocumentObject as per domain model of n5v4</li>
560 <li>Add ability to delete lists filtered with OData</li>
561 <li>Return NO_CONTENT (204) on delete as per interface standard</li>
562 <li>Introduce support for ConstraintViolationException exception</li>
563 <li>Make Service classes extend NoarkService</li>
564 <li>Make code base respect X-Forwarded-Host, X-Forwarded-Proto and
565 X-Forwarded-Port</li>
566 <li>Update CorrespondencePart* code to be more in line with Single
567 Responsibility Principle</li>
568 <li>Make package name follow directory structure</li>
569 <li>Make sure Document number starts at 1, not 0</li>
570 <li>Fix isues discovered by FindBugs</li>
571 <li>Update from Date to ZonedDateTime</li>
572 <li>Fix wrong tablename</li>
573 <li>Introduce Service layer tests</li>
574 <li>Improvements to CorrespondencePart</li>
575 <li>Continued work on Class / Classificationsystem</li>
576 <li>Fix feature where authors were stored as storageLocations</li>
577 <li>Update HQL builder for OData</li>
578 <li>Update OData search capability from webpage</li>
579
580 </ul>
581
582 <p>If free and open standardized archiving API sound interesting to
583 you, please contact us on IRC
584 (<a href="irc://irc.freenode.net/%23nikita">#nikita on
585 irc.freenode.net</a>) or email
586 (<a href="https://lists.nuug.no/mailman/listinfo/nikita-noark">nikita-noark
587 mailing list</a>).</p>
588
589 <p>As usual, if you use Bitcoin and want to show your support of my
590 activities, please send Bitcoin donations to my address
591 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
592 </div>
593 <div class="tags">
594
595
596 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/noark5">noark5</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>.
597
598
599 </div>
600 </div>
601 <div class="padding"></div>
602
603 <div class="entry">
604 <div class="title"><a href="http://people.skolelinux.org/pere/blog/MIME_type__text_vnd_sosi__for_SOSI_map_data.html">MIME type "text/vnd.sosi" for SOSI map data</a></div>
605 <div class="date">20th May 2019</div>
606 <div class="body"><p>As part of my involvement in the work to
607 <a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard">standardise
608 a REST based API for Noark 5</a>, the Norwegian archiving standard, I
609 spent some time the last few months to try to register a
610 <a href="https://www.iana.org/assignments/media-types/">MIME type</a>
611 and <a href="https://www.nationalarchives.gov.uk/PRONOM/">PRONOM
612 code</a> for the SOSI file format. The background is that there is a
613 set of formats approved for long term storage and archiving in Norway,
614 and among these formats, SOSI is the only format missing a MIME type
615 and PRONOM code.</p>
616
617 <p>What is SOSI, you might ask? To quote Wikipedia: SOSI is short for
618 Samordnet Opplegg for Stedfestet Informasjon (literally "Coordinated
619 Approach for Spatial Information", but more commonly expanded in
620 English to Systematic Organization of Spatial Information). It is a
621 text based file format for geo-spatial vector information used in
622 Norway. Information about the SOSI format can be found in English
623 from <a href="https://en.wikipedia.org/wiki/SOSI">Wikipedia</a>. The
624 specification is available in Norwegian from
625 <a href="https://www.kartverket.no/geodataarbeid/Standarder/SOSI/">the
626 Norwegian mapping authority</a>. The SOSI standard, which originated
627 in the beginning of nineteen eighties, was the inspiration and formed the
628 basis for the XML based
629 <a href="https://en.wikipedia.org/wiki/Geography_Markup_Language">Geography
630 Markup Language</a>.</p>
631
632 <p>I have so far written
633 <a href="https://github.com/file/file/pull/67">a pattern matching
634 rule</a> for the file(1) unix tool to recognize SOSI files, submitted
635 a request to the PRONOM project to have a PRONOM ID assigned to the
636 format (reference TNA1555078202S60), and today send a request to IANA
637 to register the "text/vnd.sosi" MIME type for this format (referanse
638 <a href="https://tools.iana.org/public-view/viewticket/1143144">IANA
639 #1143144</a>). If all goes well, in a few months, anyone implementing
640 the Noark 5 Tjenestegrensesnitt API spesification should be able to
641 use an official MIME type and PRONOM code for SOSI files. In
642 addition, anyone using SOSI files on Linux should be able to
643 automatically recognise the format and web sites handing out SOSI
644 files can begin providing a more specific MIME type. So far, SOSI
645 files has been handed out from web sites using the
646 "application/octet-stream" MIME type, which is just a nice way of
647 stating "I do not know". Soon, we will know. :)</p>
648
649 <p>As usual, if you use Bitcoin and want to show your support of my
650 activities, please send Bitcoin donations to my address
651 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
652 </div>
653 <div class="tags">
654
655
656 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/kart">kart</a>, <a href="http://people.skolelinux.org/pere/blog/tags/noark5">noark5</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>.
657
658
659 </div>
660 </div>
661 <div class="padding"></div>
662
663 <div class="entry">
664 <div class="title"><a href="http://people.skolelinux.org/pere/blog/PlantUML_for_text_based_UML_diagram_modelling___nice_free_software.html">PlantUML for text based UML diagram modelling - nice free software</a></div>
665 <div class="date">25th March 2019</div>
666 <div class="body"><p>As part of my involvement with the
667 <a href="https://gitlab.com/OsloMet-ABI/nikita-noark5-core/">Nikita
668 Noark 5 core project</a>, I have been proposing improvements to the
669 API specification created by <a href="https://www.arkivverket.no/">The
670 National Archives of Norway</a> and helped migrating the text from a
671 version control system unfriendly binary format (docx) to Markdown in
672 git. Combined with the migration to a public git repository (on
673 github), this has made it possible for anyone to suggest improvement
674 to the text.</p>
675
676 <p>The specification is filled with UML diagrams. I believe the
677 original diagrams were modelled using Sparx Systems Enterprise
678 Architect, and exported as EMF files for import into docx. This
679 approach make it very hard to track changes using a version control
680 system. To improve the situation I have been looking for a good text
681 based UML format with associated command line free software tools on
682 Linux and Windows, to allow anyone to send in corrections to the UML
683 diagrams in the specification. The tool must be text based to work
684 with git, and command line to be able to run it automatically to
685 generate the diagram images. Finally, it must be free software to
686 allow anyone, even those that can not accept a non-free software
687 license, to contribute.</p>
688
689 <p>I did not know much about free software UML modelling tools when I
690 started. I have used dia and inkscape for simple modelling in the
691 past, but neither are available on Windows, as far as I could tell. I
692 came across a nice
693 <a href="https://modeling-languages.com/text-uml-tools-complete-list/">list
694 of text mode uml tools</a>, and tested out a few of the tools listed
695 there. <a href="http://plantuml.com/">The PlantUML tool</a> seemed
696 most promising. After verifying that the packages
697 <a href="https://tracker.debian.org/pkg/plantuml">is available in
698 Debian</a> and found <a href="https://github.com/plantuml/plantuml">its
699 Java source</a> under a GPL license on github, I set out to test if it
700 could represent the diagrams we needed, ie the ones currently in
701 <a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/">the
702 Noark 5 Tjenestegrensesnitt specification</a>. I am happy to report
703 that it could represent them, even thought it have a few warts here
704 and there.</p>
705
706 <p>After a few days of modelling I completed the task this weekend. A
707 temporary link to the complete set of diagrams (original and from
708 PlantUML) is available in
709 <a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues/76">the
710 github issue discussing the need for a text based UML format</a>, but
711 please note I lack a sensible tool to convert EMF files to PNGs, so
712 the "original" rendering is not as good as the original was in the
713 publised PDF.</p>
714
715 <p>Here is an example UML diagram, showing the core classes for
716 keeping metadata about archived documents:</p>
717
718 <pre>
719 @startuml
720 skinparam classAttributeIconSize 0
721
722 !include media/uml-class-arkivskaper.iuml
723 !include media/uml-class-arkiv.iuml
724 !include media/uml-class-klassifikasjonssystem.iuml
725 !include media/uml-class-klasse.iuml
726 !include media/uml-class-arkivdel.iuml
727 !include media/uml-class-mappe.iuml
728 !include media/uml-class-merknad.iuml
729 !include media/uml-class-registrering.iuml
730 !include media/uml-class-basisregistrering.iuml
731 !include media/uml-class-dokumentbeskrivelse.iuml
732 !include media/uml-class-dokumentobjekt.iuml
733 !include media/uml-class-konvertering.iuml
734 !include media/uml-datatype-elektronisksignatur.iuml
735
736 Arkivstruktur.Arkivskaper "+arkivskaper 1..*" <-o "+arkiv 0..*" Arkivstruktur.Arkiv
737 Arkivstruktur.Arkiv o--> "+underarkiv 0..*" Arkivstruktur.Arkiv
738 Arkivstruktur.Arkiv "+arkiv 1" o--> "+arkivdel 0..*" Arkivstruktur.Arkivdel
739 Arkivstruktur.Klassifikasjonssystem "+klassifikasjonssystem [0..1]" <--o "+arkivdel 1..*" Arkivstruktur.Arkivdel
740 Arkivstruktur.Klassifikasjonssystem "+klassifikasjonssystem [0..1]" o--> "+klasse 0..*" Arkivstruktur.Klasse
741 Arkivstruktur.Arkivdel "+arkivdel 0..1" o--> "+mappe 0..*" Arkivstruktur.Mappe
742 Arkivstruktur.Arkivdel "+arkivdel 0..1" o--> "+registrering 0..*" Arkivstruktur.Registrering
743 Arkivstruktur.Klasse "+klasse 0..1" o--> "+mappe 0..*" Arkivstruktur.Mappe
744 Arkivstruktur.Klasse "+klasse 0..1" o--> "+registrering 0..*" Arkivstruktur.Registrering
745 Arkivstruktur.Mappe --> "+undermappe 0..*" Arkivstruktur.Mappe
746 Arkivstruktur.Mappe "+mappe 0..1" o--> "+registrering 0..*" Arkivstruktur.Registrering
747 Arkivstruktur.Merknad "+merknad 0..*" <--* Arkivstruktur.Mappe
748 Arkivstruktur.Merknad "+merknad 0..*" <--* Arkivstruktur.Dokumentbeskrivelse
749 Arkivstruktur.Basisregistrering -|> Arkivstruktur.Registrering
750 Arkivstruktur.Merknad "+merknad 0..*" <--* Arkivstruktur.Basisregistrering
751 Arkivstruktur.Registrering "+registrering 1..*" o--> "+dokumentbeskrivelse 0..*" Arkivstruktur.Dokumentbeskrivelse
752 Arkivstruktur.Dokumentbeskrivelse "+dokumentbeskrivelse 1" o-> "+dokumentobjekt 0..*" Arkivstruktur.Dokumentobjekt
753 Arkivstruktur.Dokumentobjekt *-> "+konvertering 0..*" Arkivstruktur.Konvertering
754 Arkivstruktur.ElektroniskSignatur -[hidden]-> Arkivstruktur.Dokumentobjekt
755 @enduml
756 </pre>
757
758 <p><a href="http://plantuml.com/class-diagram">The format</a> is quite
759 compact, with little redundant information. The text expresses
760 entities and relations, and there is little layout related fluff. One
761 can reuse content by using include files, allowing for consistent
762 naming across several diagrams. The include files can be standalone
763 PlantUML too. Here is the content of
764 <tt>media/uml-class-arkivskaper.iuml<tt>:</p>
765
766 <pre>
767 @startuml
768 class Arkivstruktur.Arkivskaper <Arkivenhet> {
769 +arkivskaperID : string
770 +arkivskaperNavn : string
771 +beskrivelse : string [0..1]
772 }
773 @enduml
774 </pre>
775
776 <p>This is what the complete diagram for the PlantUML notation above
777 look like:</p>
778
779 <p><img width="80%" src="http://people.skolelinux.org/pere/blog/images/2019-03-25-noark5-plantuml-diagrameksempel.png"></p>
780
781 <p>A cool feature of PlantUML is that the generated PNG files include
782 the entire original source diagram as text. The source (with include
783 statements expanded) can be extracted using for example
784 <tt>exiftool</tt>. Another cool feature is that parts of the entities
785 can be hidden after inclusion. This allow to use include files with
786 all attributes listed, even for UML diagrams that should not list any
787 attributes.</p>
788
789 <p>The diagram also show some of the warts. Some times the layout
790 engine place text labels on top of each other, and some times it place
791 the class boxes too close to each other, not leaving room for the
792 labels on the relationship arrows. The former can be worked around by
793 placing extra newlines in the labes (ie "\n"). I did not do it here
794 to be able to demonstrate the issue. I have not found a good way
795 around the latter, so I normally try to reduce the problem by changing
796 from vertical to horizontal links to improve the layout.</p>
797
798 <p>All in all, I am quite happy with PlantUML, and very impressed with
799 how quickly its lead developer responds to questions. So far I got an
800 answer to my questions in a few hours when I send an email. I
801 definitely recommend looking at PlantUML if you need to make UML
802 diagrams. Note, PlantUML can draw a lot more than class relations.
803 Check out the documention for a complete list. :)</p>
804
805 <p>As usual, if you use Bitcoin and want to show your support of my
806 activities, please send Bitcoin donations to my address
807 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
808 </div>
809 <div class="tags">
810
811
812 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software</a>, <a href="http://people.skolelinux.org/pere/blog/tags/noark5">noark5</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>.
813
814
815 </div>
816 </div>
817 <div class="padding"></div>
818
819 <div class="entry">
820 <div class="title"><a href="http://people.skolelinux.org/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></div>
821 <div class="date">24th March 2019</div>
822 <div class="body"><p>Yesterday, a new release of
823 <a href="https://gitlab.com/OsloMet-ABI/nikita-noark5-core/">Nikita
824 Noark 5 core project</a> was
825 <a href="https://lists.nuug.no/pipermail/nikita-noark/2019-March/000451.html">announced
826 on the project mailing list</a>. The free software solution is an
827 implementation of the Norwegian archive standard Noark 5 used by
828 government offices in Norway. These were the changes in version 0.3
829 since version 0.2.1 (from NEWS.md):</p>
830
831 <ul>
832 <li>Improved ClassificationSystem and Class behaviour.</li>
833 <li>Tidied up known inconsistencies between domain model and hateaos links.</li>
834 <li>Added experimental code for blockchain integration. </li>
835 <li>Make token expiry time configurable at upstart from properties file.</li>
836 <li>Continued work on OData search syntax.</li>
837 <li>Started work on pagination for entities, partly implemented for Saksmappe.</li>
838 <li>Finalise ClassifiedCode Metadata entity.</li>
839 <li>Implement mechanism to check if authentication token is still
840 valid. This allow the GUI to return a more sensible message to the
841 user if the token is expired.</li>
842 <li>Reintroduce browse.html page to allow user to browse JSON API using
843 hateoas links.</li>
844 <li>Fix bug in handling file/mappe sequence number. Year change was
845 not properly handled.</li>
846 <li>Update application yml files to be in sync with current development.</li>
847 <li>Stop 'converting' everything to PDF using libreoffice. Only
848 convert the file formats doc, ppt, xls, docx, pptx, xlsx, odt, odp
849 and ods.</li>
850 <li>Continued code style fixing, making code more readable.</li>
851 <li>Minor bug fixes.</li>
852
853 </ul>
854
855 <p>If free and open standardized archiving API sound interesting to
856 you, please contact us on IRC
857 (<a href="irc://irc.freenode.net/%23nikita">#nikita on
858 irc.freenode.net</a>) or email
859 (<a href="https://lists.nuug.no/mailman/listinfo/nikita-noark">nikita-noark
860 mailing list</a>).</p>
861
862 <p>As usual, if you use Bitcoin and want to show your support of my
863 activities, please send Bitcoin donations to my address
864 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
865 </div>
866 <div class="tags">
867
868
869 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/noark5">noark5</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>.
870
871
872 </div>
873 </div>
874 <div class="padding"></div>
875
876 <div class="entry">
877 <div class="title"><a href="http://people.skolelinux.org/pere/blog/_pen_og_gjennomsiktig_vedlikehold_av_spesifikasjonen_for_Noark_5_Tjenestegrensesnitt.html">Åpen og gjennomsiktig vedlikehold av spesifikasjonen for Noark 5 Tjenestegrensesnitt</a></div>
878 <div class="date">11th March 2019</div>
879 <div class="body"><p>Et virksomhetsarkiv for meg, er et arbeidsverktøy der en enkelt kan
880 finne informasjonen en trenger når en trenger det, og der
881 virksomhetens samlede kunnskap er tilgjengelig. Det må være greit å
882 finne frem i, litt som en bibliotek. Men der et bibliotek gjerne tar
883 vare på offentliggjort informasjon som er tilgjengelig flere steder,
884 tar et arkiv vare på virksomhetsintern og til tider personlig
885 informasjon som ofte kun er tilgjengelig fra et sted.</p>
886
887 <p>Jeg mistenker den eneste måten å sikre at arkivet inneholder den
888 samlede kunnskapen i en virksomhet, er å bruke det som virksomhetens
889 kunnskapslager. Det innebærer å automatisk kopiere (brev, epost,
890 SMS-er etc) inn i arkivet når de sendes og mottas, og der filtrere
891 vekk det en ikke vil ta vare på, og legge på metadata om det som er
892 samlet inn for enkel gjenfinning. En slik bruk av arkivet innebærer at
893 arkivet er en del av daglig virke, ikke at det er siste hvilested for
894 informasjon ingen lenger har daglig bruk for. For å kunne være en del
895 av det daglige virket må arkivet enkelt kunne integreres med andre
896 systemer. I disse dager betyr det å tilby arkivet som en
897 nett-tjeneste til hele virksomheten, tilgjengelig for både mennesker
898 og datamaskiner. Det betyr i tur å både tilby nettsider og et
899 maskinlesbart grensesnitt.</p>
900
901 <p>For noen år siden erkjente visjonære arkivarer fordelene med et
902 standardisert maskinlesbart grensesnitt til organisasjonens arkiv. De
903 gikk igang med å lage noe de kalte
904 <a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/">Noark
905 5 Tjenestegrensesnitt</a>. Gjort riktig, så åpner slike maskinlesbare
906 grensesnitt for samvirke på tvers av uavhengige programvaresystemer.
907 Gjort feil, vil det blokkere for samvirke og bidra til
908 leverandørinnlåsing. For å gjøre det riktig så må grensesnittet være
909 klart og entydig beskrevet i en spesifikasjon som gjør at
910 spesifikasjonen tolkes på samme måte uavhengig av hvem som leser den,
911 og uavhengig av hvem som tar den i bruk.</p>
912
913 <p>For å oppnå klare og entydige beskrivelser i en spesifikasjon, som
914 trengs for å kunne få en fri og åpen standard (se
915 <a href="http://people.skolelinux.org/pere/blog/Fri_og__pen_standard__slik_Digistan_ser_det.html">Digistan-definisjon</a>),
916 så trengs det en åpen og gjennomsiktig inngangsport med lav terskel,
917 der de som forsøker å ta den i bruk enkelt kan få inn korreksjoner,
918 etterlyse klargjøringer og rapportere uklarheter i spesifikasjonen.
919 En trenger også automatiserte datasystemer som måler og sjekker at et
920 gitt grensesnitt fungerer i tråd med spesifikasjonen.</p>
921
922 <p>For Noark 5 Tjenestegrensesnittet er det nå etablert en slik åpen
923 og gjennomsiktig inngangsport på prosjekttjenesten github. Denne
924 inngangsporten består først og fremst av en åpen portal som lar enhver
925 se hva som er gjort av endringer i spesifikasjonsteksten over tid, men
926 det hører også med et åpent &quot;diskusjonsforum&quot; der en kan
927 komme med endringsforslag og forespørsler om klargjøringer. Alle
928 registrerte brukere på github kan bidra med innspill til disse
929 henvendelsene.</p>
930
931 <p>I samarbeide med Arkivverket har jeg fått opprettet et git-depot
932 med spesifikasjonsteksten for tjenestegrensesnittet, der det er lagt
933 inn historikk for endringer i teksten de siste årene, samt lagt inn
934 endringsforslag og forespørsler om klargjøring av teksten. Bakgrunnen
935 for at jeg bidro med dette er at jeg er involvert i
936 <a href="https://gitlab.com/OsloMet-ABI/nikita-noark5-core">Nikita-prosjektet</a>,
937 som lager en fri programvare-utgave av Noark 5 Tjenestegrensesnitt.
938 Det er først når en forsøker å lage noe i tråd med en spesifikasjon at
939 en oppdager hvor mange detaljer som må beskrives i spesifikasjonen for
940 å sikre samhandling.</p>
941
942 <p>Spesifikasjonen vedlikeholdes i et rent tekstformat, for å ha et
943 format egnet for versjonskontroll via versjontrollsystemet git. Dette
944 gjør det både enkelt å se konkret hvilke endringer som er gjort når,
945 samt gjør det praktisk mulig for enhver med github-konto å sende inn
946 endringsforslag med formuleringer til spesifikasjonsteksten. Dette
947 tekstformatet vises frem som nettsider på github, slik at en ikke
948 trenger spesielle verktøy for å se på siste utgave av
949 spesifikasjonen.</p>
950
951 <p>Fra dette rene tekstformatet kan det så avledes ulike formater, som
952 HTML for websider, PDF for utskrift på papir og ePub for lesing med
953 ebokleser. Avlednings-systemet (byggesystemet) bruker i dag
954 verktøyene pandoc, latex, docbook-xsl og GNU make til
955 transformasjonen. Tekstformatet som brukes dag er
956 <a href="https://www.markdownguide.org/">Markdown</a>, men det vurderes
957 å
958 <a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues/9">endre
959 til formatet RST</a> i fremtiden for bedre styring av utseende på
960 PDF-utgaven.</p>
961
962 <p>Versjonskontrollsystemet git ble valgt da det er både fleksibelt,
963 avansert og enkelt å ta i bruk. Github ble valgt (foran f.eks. Gitlab
964 som vi bruker i Nikita), da Arkivverket allerede hadde tatt i bruk
965 Github i andre sammenhenger.</p>
966
967 <p>Enkle endringer i teksten kan gjøres av priviligerte brukere
968 direkte i nettsidene til Github, ved å finne aktuell fil som skal
969 endres (f.eks. kapitler/03-konformitet.md), klikke på den lille
970 bokstaven i høyre hjørne over teksten. Det kommer opp en nettside der
971 en kan endre teksten slik en ønsker. Når en er fornøyd med endringen
972 så må endringen &quot;sjekkes inn&quot; i historikken. Det gjøres ved
973 å gi en kort beskrivelse av endringen (beskriv helst hvorfor endringen
974 trengs, ikke hva som er endret), under overskriften &quot;Commit
975 changes&quot;. En kan og bør legge inn en lengre forklaring i det
976 større skrivefeltet, før en velger om endringen skal sendes direkte
977 til 'master'-grenen (dvs. autorativ utgave av spesifikasjonen) eller
978 om en skal lage en ny gren for denne endringen og opprette en
979 endringsforespørsel (aka &quot;Pull Request&quot;/PR). Når alt dette
980 er gjort kan en velge &quot;Commit changes&quot; for å sende inn
981 endringen. Hvis den er lagt inn i &quot;master&quot;-grenen så er den
982 en offisiell del av spesifikasjonen med en gang. Hvis den derimot er
983 en endringsforespørsel, så legges den inn i
984 <a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/pulls">listen
985 over forslag til endringer</a> som venter på korrekturlesing og
986 godkjenning.</p>
987
988 <p>Større endringer (for eksempel samtidig endringer i flere filer)
989 gjøres enklest ved å hente ned en kopi av git-depoet lokalt og gjøre
990 endringene der før endringsforslaget sendes inn. Denne prosessen er
991 godt beskrivet i dokumentasjon fra github. Git-prosjektet som skal
992 &quot;klones&quot; er
993 <a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/">https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/</a>.</p>
994
995 <p>For å registrere nye utfordringer (issues) eller kommentere på
996 eksisterende utfordringer benyttes nettsiden
997 <a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues">https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues</a>.
998 I skrivende stund er det 48 åpne og 11 avsluttede utfordringer. Et
999 forslag til hva som bør være med når en beskriver en utfordring er
1000 tilgjengelig som utfordring
1001 <a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues/14">#14</a>.</p>
1002
1003 <p>For å bygge en PDF-utgave av spesifikasjonen så bruker jeg i dag en
1004 Debian GNU/Linux-maskin med en rekke programpakker installert. Når
1005 dette er på plass, så holder det å kjøre kommandoen 'make pdf html' på
1006 kommandolinjen, vente ca. 20 sekunder, før spesifikasjon.pdf og
1007 spesifikasjon.html ligger klar på disken. Verktøyene for bygging av
1008 PDF, HTML og ePub-utgave er også tilgjengelig på Windows og
1009 MacOSX.</p>
1010
1011 <p>Github bidrar med rammeverket. Men for at åpent vedlikehold av
1012 spesifikasjonen skal fungere, så trengs det folk som bidrar med sin
1013 tid og kunnskap. Arkivverket har sagt de skal bidra med innspill og
1014 godkjenne forslag til endringer, men det blir størst suksess hvis alle
1015 som bruker og lager systemer basert på Noark 5 Tjenestegrensesnitt
1016 bidrar med sin kunnskap og kommer med forslag til forebedringer. Jeg
1017 stiller. Blir du med?</p>
1018
1019 <p>Det er viktig å legge til rette for åpen diskusjon blant alle
1020 interesserte, som ikke krever at en må godta lange kontrakter med
1021 vilkår for deltagelse. Inntil Arkivverket dukker opp på IRC har vi
1022 laget en IRC-kanal der interesserte enkelt kan orientere seg og
1023 diskutere tjenestegrensesnittet. Alle er velkommen til å ta turen
1024 innom
1025 <a href="https://webchat.freenode.net/?channels=nikita">#nikita</a>
1026 (f.eks. via irc.freenode.net) for å møte likesinnede.</p>
1027
1028 <p>Det holder dog ikke å ha en god spesifikasjon, hvis ikke de som tar
1029 den i bruk gjør en like god jobb. For å automatisk teste om et konkret
1030 tjenestegrensesnitt følger (min) forståelse av
1031 spesifikasjonsdokumentet, har jeg skrevet et program som kobler seg
1032 opp til et Noark 5v4 REST-tjeneste og tester alt den finner for å se
1033 om det er i henhold til min tolkning av spesifikasjonen. Dette
1034 verktøyet er tilgjengelig fra
1035 <a href="https://github.com/petterreinholdtsen/noark5-tester">https://github.com/petterreinholdtsen/noark5-tester</a>,
1036 og brukes daglig mens vi utvikler Nikita for å sikre at vi ikke
1037 introduserer nye feil. Hvis en skal sikre samvirke på tvers av ulike
1038 systemer er det helt essensielt å kunne raskt og automatisk sjekke at
1039 tjenestegrensesnittet oppfører seg som forventet. Jeg håper andre som
1040 lager sin utgave av tjenestegrensesnittet vi bruke dette verktøyet,
1041 slik at vi tidlig og raskt kan oppdage hvor vi har tolket
1042 spesifikasjonen ulikt, og dermed få et godt grunnlag for å gjøre
1043 spesifikasjonsteksten enda klarere og bedre.</p>
1044
1045 <p>Dagens beskrivelse av Noark 5 Tjenestegrensesnitt er et svært godt
1046 utgangspunkt for å gjøre virksomhetens arkiv til et dynamisk og
1047 sentralt arbeidsverktøy i organisasjonen. Blir du med å gjøre den
1048 enda bedre?</p>
1049 </div>
1050 <div class="tags">
1051
1052
1053 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan</a>, <a href="http://people.skolelinux.org/pere/blog/tags/noark5">noark5</a>, <a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>.
1054
1055
1056 </div>
1057 </div>
1058 <div class="padding"></div>
1059
1060 <p style="text-align: right;"><a href="index.rss"><img src="http://people.skolelinux.org/pere/blog/xml.gif" alt="RSS feed" width="36" height="14" /></a></p>
1061 <div id="sidebar">
1062
1063
1064
1065 <h2>Archive</h2>
1066 <ul>
1067
1068 <li>2019
1069 <ul>
1070
1071 <li><a href="http://people.skolelinux.org/pere/blog/archive/2019/01/">January (4)</a></li>
1072
1073 <li><a href="http://people.skolelinux.org/pere/blog/archive/2019/02/">February (3)</a></li>
1074
1075 <li><a href="http://people.skolelinux.org/pere/blog/archive/2019/03/">March (3)</a></li>
1076
1077 <li><a href="http://people.skolelinux.org/pere/blog/archive/2019/05/">May (2)</a></li>
1078
1079 <li><a href="http://people.skolelinux.org/pere/blog/archive/2019/06/">June (5)</a></li>
1080
1081 </ul></li>
1082
1083 <li>2018
1084 <ul>
1085
1086 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/01/">January (1)</a></li>
1087
1088 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/02/">February (5)</a></li>
1089
1090 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/03/">March (5)</a></li>
1091
1092 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/04/">April (3)</a></li>
1093
1094 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/06/">June (2)</a></li>
1095
1096 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/07/">July (5)</a></li>
1097
1098 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/08/">August (3)</a></li>
1099
1100 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/09/">September (3)</a></li>
1101
1102 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/10/">October (5)</a></li>
1103
1104 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/11/">November (2)</a></li>
1105
1106 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/12/">December (4)</a></li>
1107
1108 </ul></li>
1109
1110 <li>2017
1111 <ul>
1112
1113 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/01/">January (4)</a></li>
1114
1115 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/02/">February (3)</a></li>
1116
1117 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/03/">March (5)</a></li>
1118
1119 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/04/">April (2)</a></li>
1120
1121 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/06/">June (5)</a></li>
1122
1123 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/07/">July (1)</a></li>
1124
1125 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/08/">August (1)</a></li>
1126
1127 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/09/">September (3)</a></li>
1128
1129 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/10/">October (5)</a></li>
1130
1131 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/11/">November (3)</a></li>
1132
1133 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/12/">December (4)</a></li>
1134
1135 </ul></li>
1136
1137 <li>2016
1138 <ul>
1139
1140 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/01/">January (3)</a></li>
1141
1142 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/02/">February (2)</a></li>
1143
1144 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/03/">March (3)</a></li>
1145
1146 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/04/">April (8)</a></li>
1147
1148 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/05/">May (8)</a></li>
1149
1150 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/06/">June (2)</a></li>
1151
1152 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/07/">July (2)</a></li>
1153
1154 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/08/">August (5)</a></li>
1155
1156 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/09/">September (2)</a></li>
1157
1158 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/10/">October (3)</a></li>
1159
1160 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/11/">November (8)</a></li>
1161
1162 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/12/">December (5)</a></li>
1163
1164 </ul></li>
1165
1166 <li>2015
1167 <ul>
1168
1169 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/01/">January (7)</a></li>
1170
1171 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/02/">February (6)</a></li>
1172
1173 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/03/">March (1)</a></li>
1174
1175 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/04/">April (4)</a></li>
1176
1177 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/05/">May (3)</a></li>
1178
1179 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/06/">June (4)</a></li>
1180
1181 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/07/">July (6)</a></li>
1182
1183 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/08/">August (2)</a></li>
1184
1185 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/09/">September (2)</a></li>
1186
1187 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/10/">October (9)</a></li>
1188
1189 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/11/">November (6)</a></li>
1190
1191 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/12/">December (3)</a></li>
1192
1193 </ul></li>
1194
1195 <li>2014
1196 <ul>
1197
1198 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/01/">January (2)</a></li>
1199
1200 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/02/">February (3)</a></li>
1201
1202 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/03/">March (8)</a></li>
1203
1204 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/04/">April (7)</a></li>
1205
1206 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/05/">May (1)</a></li>
1207
1208 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/06/">June (2)</a></li>
1209
1210 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/07/">July (2)</a></li>
1211
1212 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/08/">August (2)</a></li>
1213
1214 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/09/">September (5)</a></li>
1215
1216 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/10/">October (6)</a></li>
1217
1218 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/11/">November (3)</a></li>
1219
1220 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/12/">December (5)</a></li>
1221
1222 </ul></li>
1223
1224 <li>2013
1225 <ul>
1226
1227 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/01/">January (11)</a></li>
1228
1229 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/02/">February (9)</a></li>
1230
1231 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/03/">March (9)</a></li>
1232
1233 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/04/">April (6)</a></li>
1234
1235 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/05/">May (9)</a></li>
1236
1237 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/06/">June (10)</a></li>
1238
1239 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/07/">July (7)</a></li>
1240
1241 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/08/">August (3)</a></li>
1242
1243 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/09/">September (5)</a></li>
1244
1245 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/10/">October (7)</a></li>
1246
1247 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/11/">November (9)</a></li>
1248
1249 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/12/">December (3)</a></li>
1250
1251 </ul></li>
1252
1253 <li>2012
1254 <ul>
1255
1256 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/01/">January (7)</a></li>
1257
1258 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/02/">February (10)</a></li>
1259
1260 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/03/">March (17)</a></li>
1261
1262 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/04/">April (12)</a></li>
1263
1264 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/05/">May (12)</a></li>
1265
1266 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/06/">June (20)</a></li>
1267
1268 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/07/">July (17)</a></li>
1269
1270 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/08/">August (6)</a></li>
1271
1272 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/09/">September (9)</a></li>
1273
1274 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/10/">October (17)</a></li>
1275
1276 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/11/">November (10)</a></li>
1277
1278 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/12/">December (7)</a></li>
1279
1280 </ul></li>
1281
1282 <li>2011
1283 <ul>
1284
1285 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/01/">January (16)</a></li>
1286
1287 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/02/">February (6)</a></li>
1288
1289 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/03/">March (6)</a></li>
1290
1291 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/04/">April (7)</a></li>
1292
1293 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/05/">May (3)</a></li>
1294
1295 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/06/">June (2)</a></li>
1296
1297 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/07/">July (7)</a></li>
1298
1299 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/08/">August (6)</a></li>
1300
1301 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/09/">September (4)</a></li>
1302
1303 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/10/">October (2)</a></li>
1304
1305 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/11/">November (3)</a></li>
1306
1307 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/12/">December (1)</a></li>
1308
1309 </ul></li>
1310
1311 <li>2010
1312 <ul>
1313
1314 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/01/">January (2)</a></li>
1315
1316 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/02/">February (1)</a></li>
1317
1318 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/03/">March (3)</a></li>
1319
1320 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/04/">April (3)</a></li>
1321
1322 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/05/">May (9)</a></li>
1323
1324 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/06/">June (14)</a></li>
1325
1326 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/07/">July (12)</a></li>
1327
1328 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/08/">August (13)</a></li>
1329
1330 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/09/">September (7)</a></li>
1331
1332 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/10/">October (9)</a></li>
1333
1334 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/11/">November (13)</a></li>
1335
1336 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/12/">December (12)</a></li>
1337
1338 </ul></li>
1339
1340 <li>2009
1341 <ul>
1342
1343 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/01/">January (8)</a></li>
1344
1345 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/02/">February (8)</a></li>
1346
1347 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/03/">March (12)</a></li>
1348
1349 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/04/">April (10)</a></li>
1350
1351 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/05/">May (9)</a></li>
1352
1353 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/06/">June (3)</a></li>
1354
1355 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/07/">July (4)</a></li>
1356
1357 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/08/">August (3)</a></li>
1358
1359 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/09/">September (1)</a></li>
1360
1361 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/10/">October (2)</a></li>
1362
1363 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/11/">November (3)</a></li>
1364
1365 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/12/">December (3)</a></li>
1366
1367 </ul></li>
1368
1369 <li>2008
1370 <ul>
1371
1372 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/11/">November (5)</a></li>
1373
1374 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/12/">December (7)</a></li>
1375
1376 </ul></li>
1377
1378 </ul>
1379
1380
1381
1382 <h2>Tags</h2>
1383 <ul>
1384
1385 <li><a href="http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (16)</a></li>
1386
1387 <li><a href="http://people.skolelinux.org/pere/blog/tags/amiga">amiga (1)</a></li>
1388
1389 <li><a href="http://people.skolelinux.org/pere/blog/tags/aros">aros (1)</a></li>
1390
1391 <li><a href="http://people.skolelinux.org/pere/blog/tags/bankid">bankid (4)</a></li>
1392
1393 <li><a href="http://people.skolelinux.org/pere/blog/tags/betalkontant">betalkontant (8)</a></li>
1394
1395 <li><a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (11)</a></li>
1396
1397 <li><a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (17)</a></li>
1398
1399 <li><a href="http://people.skolelinux.org/pere/blog/tags/bsa">bsa (2)</a></li>
1400
1401 <li><a href="http://people.skolelinux.org/pere/blog/tags/chrpath">chrpath (2)</a></li>
1402
1403 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian">debian (168)</a></li>
1404
1405 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (158)</a></li>
1406
1407 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian-handbook">debian-handbook (4)</a></li>
1408
1409 <li><a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan (11)</a></li>
1410
1411 <li><a href="http://people.skolelinux.org/pere/blog/tags/dld">dld (17)</a></li>
1412
1413 <li><a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook (26)</a></li>
1414
1415 <li><a href="http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
1416
1417 <li><a href="http://people.skolelinux.org/pere/blog/tags/english">english (406)</a></li>
1418
1419 <li><a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (23)</a></li>
1420
1421 <li><a href="http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (14)</a></li>
1422
1423 <li><a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (34)</a></li>
1424
1425 <li><a href="http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox (9)</a></li>
1426
1427 <li><a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (20)</a></li>
1428
1429 <li><a href="http://people.skolelinux.org/pere/blog/tags/h264">h264 (20)</a></li>
1430
1431 <li><a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju (42)</a></li>
1432
1433 <li><a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram (16)</a></li>
1434
1435 <li><a href="http://people.skolelinux.org/pere/blog/tags/kart">kart (22)</a></li>
1436
1437 <li><a href="http://people.skolelinux.org/pere/blog/tags/kodi">kodi (4)</a></li>
1438
1439 <li><a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap (9)</a></li>
1440
1441 <li><a href="http://people.skolelinux.org/pere/blog/tags/lego">lego (4)</a></li>
1442
1443 <li><a href="http://people.skolelinux.org/pere/blog/tags/lenker">lenker (8)</a></li>
1444
1445 <li><a href="http://people.skolelinux.org/pere/blog/tags/lsdvd">lsdvd (2)</a></li>
1446
1447 <li><a href="http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (1)</a></li>
1448
1449 <li><a href="http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network (8)</a></li>
1450
1451 <li><a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (42)</a></li>
1452
1453 <li><a href="http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software (12)</a></li>
1454
1455 <li><a href="http://people.skolelinux.org/pere/blog/tags/noark5">noark5 (16)</a></li>
1456
1457 <li><a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk (306)</a></li>
1458
1459 <li><a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug (195)</a></li>
1460
1461 <li><a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (37)</a></li>
1462
1463 <li><a href="http://people.skolelinux.org/pere/blog/tags/open311">open311 (2)</a></li>
1464
1465 <li><a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (73)</a></li>
1466
1467 <li><a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern (108)</a></li>
1468
1469 <li><a href="http://people.skolelinux.org/pere/blog/tags/raid">raid (2)</a></li>
1470
1471 <li><a href="http://people.skolelinux.org/pere/blog/tags/reactos">reactos (1)</a></li>
1472
1473 <li><a href="http://people.skolelinux.org/pere/blog/tags/reprap">reprap (11)</a></li>
1474
1475 <li><a href="http://people.skolelinux.org/pere/blog/tags/rfid">rfid (3)</a></li>
1476
1477 <li><a href="http://people.skolelinux.org/pere/blog/tags/robot">robot (12)</a></li>
1478
1479 <li><a href="http://people.skolelinux.org/pere/blog/tags/rss">rss (1)</a></li>
1480
1481 <li><a href="http://people.skolelinux.org/pere/blog/tags/ruter">ruter (7)</a></li>
1482
1483 <li><a href="http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (2)</a></li>
1484
1485 <li><a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (56)</a></li>
1486
1487 <li><a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (4)</a></li>
1488
1489 <li><a href="http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (5)</a></li>
1490
1491 <li><a href="http://people.skolelinux.org/pere/blog/tags/standard">standard (65)</a></li>
1492
1493 <li><a href="http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (6)</a></li>
1494
1495 <li><a href="http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (12)</a></li>
1496
1497 <li><a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (56)</a></li>
1498
1499 <li><a href="http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (4)</a></li>
1500
1501 <li><a href="http://people.skolelinux.org/pere/blog/tags/usenix">usenix (2)</a></li>
1502
1503 <li><a href="http://people.skolelinux.org/pere/blog/tags/valg">valg (9)</a></li>
1504
1505 <li><a href="http://people.skolelinux.org/pere/blog/tags/verkidetfri">verkidetfri (15)</a></li>
1506
1507 <li><a href="http://people.skolelinux.org/pere/blog/tags/video">video (73)</a></li>
1508
1509 <li><a href="http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (4)</a></li>
1510
1511 <li><a href="http://people.skolelinux.org/pere/blog/tags/web">web (42)</a></li>
1512
1513 </ul>
1514
1515
1516 </div>
1517 <p style="text-align: right">
1518 Created by <a href="http://steve.org.uk/Software/chronicle">Chronicle v4.6</a>
1519 </p>
1520
1521 </body>
1522 </html>