1 <?xml version=
"1.0" encoding=
"utf-8"?>
2 <rss version='
2.0' xmlns:lj='http://www.livejournal.org/rss/lj/
1.0/' xmlns:
atom=
"http://www.w3.org/2005/Atom">
4 <title>Petter Reinholdtsen
</title>
5 <description></description>
6 <link>http://people.skolelinux.org/pere/blog/
</link>
7 <atom:link href=
"http://people.skolelinux.org/pere/blog/index.rss" rel=
"self" type=
"application/rss+xml" />
10 <title>Nikita og Noark
5 tjenestegrensesnittet tilbyr ny måte å tenke arkivering
</title>
11 <link>http://people.skolelinux.org/pere/blog/Nikita_og_Noark_5_tjenestegrensesnittet_tilbyr_ny_m_te___tenke_arkivering.html
</link>
12 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Nikita_og_Noark_5_tjenestegrensesnittet_tilbyr_ny_m_te___tenke_arkivering.html
</guid>
13 <pubDate>Fri,
21 Jun
2019 11:
30:
00 +
0200</pubDate>
14 <description><p
><em
>av Thomas Sødring (OsloMet) og Petter Reinholdtsen (foreningen
15 NUUG)
</em
></p
>
17 <p
>Nikita Noark
5-kjerne er et fri programvareprosjekt som tar i bruk
18 Arkivverkets spesifikasjonen for Noark
5 Tjenestegrensesnitt og tilbyr
19 et maskinlesbart grensesnitt (arkiv-API) til datasystemer som trenger å
20 arkivere dokumenter og informasjon. I tillegg tilbyr Nikita et
21 nettleserbasert brukergrensesnitt for brukere av arkivet. Dette
22 brukergrensesnittet benytter det maskinlesbare grensesnittet. Noark
5
23 Tjenestegrensesnitt er en ny måte å tenke arkivering, med fokus på
24 automatisering og maskinell behandling av arkivmateriale, i stedet for
25 å fokusere på brukergrensesnitt. En kan tenke på
26 tjenestegrensesnittet som arkivet uten brukergrensesnitt, der flere
27 aktører kan koble til ulike brukergrensesnitt, tilpasset ulike
30 <p
>Historisk sett gjorde Noark standarden en veldig bra jobb med
32 papir til digital saksbehandling, men det har kommet til kort på andre
33 områder. Den teknologiske utviklingen har brakt oss ditt at vi kan og
34 skal forvente langt mer fra en arkivkjerne enn før, men det offentlig
35 er ofte konservativ når det gjelder nytenking. For lengst skulle
36 begreper som samvirke mellom datasystemer, metadata, prosess og
37 tjenestegrensesnitt (API) vært dominerende når systemer kjøpes
38 inn. Dessverre er det slik at ikke alle ønsker samvirke mellom
39 datasystemer velkommen, og det kan være trygt å kjøpe «svarte bokser»
40 der du slipper å ta stilling til hvordan man skal få flere systemer
41 til å virke sammen. Men IT-arkitektur er et begrep arkivfolk også
42 begynner å ta inn over seg.
</p
>
44 <p
>Slike systemer for å organisere metadata bør ha nettbaserte
45 tjenestegrensesnitt der brukergrensesnitt er tydelig adskilt fra
46 bakenforliggende system. Det finnes mange rapporter som snakker om å
47 bryte ned siloer i forvaltningen og standardiserte tjenestegrensesnitt
48 er det viktigste virkemiddel mot datasiloer og legger til rette for
49 økt samvirke mellom systemer. Et standardisert tjenestegrensesnitt er
50 et viktig middel for å få systemer til å samhandle da det sikrer at
51 ulike produsenters systemer kan snakke sammen på tvers. Samfunnet
52 fungerer ikke uten standardisering. Vi har alle samme strømstyrke og
53 kontakter i veggene og kjører alle på høyre side av veien i Norge. Det er i en slik
54 sammenheng at prosjektet «Noark
5 Tjenestegrensesnitt» er veldig
55 viktig. Hvis alle leverandører av arkivsystemer forholdt seg til et
56 standardisert tjenestegrensesnitt kunne kostnadene for arkivering
57 reduseres. Tenk deg at du er en kommune som ønsker et fagsystem integrert
58 med arkivløsningen din. I dag må fagsystemleverandøren vite og
59 tilpasse seg den spesifikke versjonen og varianten av arkivløsningen
60 du har. Hvis vi antar at alle leverandører av arkivkjerner har solgt
61 inn enten SOAP eller REST-grensesnitt til kunder de siste
10 årene og
62 det kommer endret versjon av grensesnittet innimellom, så gir det
63 veldig mange forskjellige tjenestegrensesnitt en fagsystemleverandør
64 må forholde seg til. Med
12 leverandører og kvartalsvise oppdateringer
65 kan det potensielt bli
96 ulike varianter hvert eneste år. Det sier
66 seg selv at det blir dyrt. Men det blir faktisk verre. Hvis du senere
67 ønsker å bytte ut arkivsystemet med et annet så er du avhengig å få
68 alle integrasjonene dine laget på nytt. Dette kan gjøre at du velger å
69 forbli hos en dårlig leverandør framfor å skaffe nytt system, fordi
70 det blir for vanskelig og dyrt å bytte. Dermed etableres det «små»
71 monopolsituasjoner som er vanskelig å bryte ut av. Dårlige valg i dag
72 kan ha uante kostander på sikt. I Nikita-prosjektet har vi kun jobbet
73 opp mot Noark
5 Tjenestegrensesnittet. Det har tatt en god del
74 ressurser å sette seg inn i spesifikasjonen og ta den i bruk, spesielt
75 på grunn av uklarheter i spesifikasjonen. Hvis vi måtte gjøre det
76 samme for alle versjoner og varianter av de forskjellige
77 tjenestegrensesnittene ville det blitt veldig tidkrevende og
80 <p
>For deg som arkivar er digitalisering og systemer som skal virke
81 sammen en del av den nye hverdagen. Du har kanskje blitt skånet for
82 det ved å kjøpe svarte bokser, men du risikerer at du gjør deg selv en
83 bjørnetjeneste. Det kan oppleves som kjedelig å fortelle kolleger at
84 du skal sette deg inn i et tjenestegrensesnitt, men dette er faktisk
85 veldig spennende. Tjenestegrensesnittet er på en måte blitt levende og
86 det er spesielt et begrep du bør merke deg: OData. Å trekke inn deler
87 av OData-standarden som en måte å filtrere entitetsøk i et arkivsystem
88 var et nyttig trekk i prosjektet. Følgende eksempel er en
89 OData-spørring det går an å sende inn til en standardisert
90 arkivkjerne:
</p
>
92 <p
><blockquote
>
93 .../sakarkiv/journalpost?filter=contains(tittel,
'nabovarsel
')
94 </blockquote
></p
>
96 <p
>Spørringen over vil hente en liste av alle dine journalposter der
97 tittelen til journalposten inneholder ordet
'nabovarsel
'. Alle
98 leverandører som implementerer tjenestegrensesnittet vil måtte tilby
99 dette. Det betyr at hvis du lærer dette språket for et system, vil det
100 være gjeldende for alle. Dette er egentlig en ny måte å søke i
101 arkivdatabasen på og vil være svært nyttig, for eksempel kan søk i
102 tjenestegrensesnittet antagelig brukes til å hente ut offentlig
103 postjournal. I arkivverden pleier vi å like teknologier som er
104 menneskelesbart, da vet vi det er enkelt og nyttig! OData er også
105 viktig fordi det kan bli en ny måte å svare innsynsforespørsler på i
106 tråd med offentlighetsloven §
9, der retten til å kreve innsyn i
107 sammenstilling fra databaser er nedfelt. I dag ser vi
108 forvaltningsorganer som avviser slike krav fordi det «ikke kan gjøres
109 med enkle framgangsmåter». Bruken av OData i tjenestegrensesnittet,
110 sammen med maskinlesbar markeringsformater kan være et viktig bidrag
111 til å åpne arkivene i tråd med prinsippene om en åpen og transparent
112 forvaltning.
</p
>
114 <p
>Standardisering er viktig fordi det
<em
>kan
</em
> sikre samvirke.
115 Men den effekten kommer kun hvis standardiseringen sikrer at alle
116 forstår standarden på samme måte, dvs. at den er entydig og klar. En
117 god måte å sikre en entydig og klar spesifikasjon er ved å kreve at
118 det finnes minst to ulike implementasjoner som følger spesifikasjonen
119 og som kan snakke sammen, det vil si at de snakker samme språk, slik
120 IETF krever for alle sine standarder, før spesifikasjonen anses å være
121 ferdig. Tilbakemelding fra miljøet forteller at både leverandører og
122 kunder har et avslappet forhold til Noark
5 Tjenestegrensesnitt og det
123 er så langt kun Evry som har visst offentlig at de har en
124 implementasjon av tjenestegrensesnittet. Evry, HK Data og Fredrikstad
125 kommune er igang med et pilotprosjekt på Noark
5
126 Tjenestegrensesnitt. For å redusere kostnadene for samvirkende
127 datasystemer betraktelig, er det veldig viktig at vi kommer i en
128 situasjon der alle leverandører har sine egne implementasjoner av
129 tjenestegrensesnittet, og at disse oppfører seg likt og i tråd med det
130 som er beskrevet i spesifikasjonen.
</p
>
132 <p
>Det er her fri programvare spiller en viktig rolle. Med en uklar
133 standard blir det som en polsk riksdag, der ingenting fungerer. Nikita
134 er en fri programvareimplementasjon av tjenestegrensesnitt og kan
135 fungere som teknisk referanse slik at leverandører enklere kan se og
136 forstå hvordan standarden skal tolkes. Vi har i Nikitaprosjektet
137 erfart å ende opp med vidt forskjellige tolkninger når
138 prosjektmedlemmene leser spesifikasjonsteksten, en effekt av en uklar
139 spesifikasjon. Men Nikitaprosjektet har også utviklet et test-program
140 som sjekker om et tjenestegrensesnitt er i samsvar med standarden, og
141 prosjektet bruker det hele tiden for å sikre at endringer og
142 forbedringer fungerer. Egenerklæringsskjemaenes dager kan være talte!
143 Snart vil du selv kunne teste hver oppdatering av arkivsystemet med en
144 uavhengig sjekk.
</p
>
146 <p
>Fri programvare representerer en demokratisering av kunnskap der
147 tolkning- og innlåsingsmakt flyttes fra leverandør til allmenheten.
148 Med fri programvare har du en litt annerledes verdikjede, der selve
149 produktet ikke holdes hemmelig for å tjene penger, slik en gjør med
150 ufri programvare og skytjenester som ikke bruker fri programvare, men
151 du kan tjene penger på andre deler av verdikjeden. Med fri programvare
152 kan samfunnet betale for å videreutvikle nyttig
153 fellesfunksjonalitet.
</p
>
155 <p
>Nikita er en fri programvareimplementasjon av tjenestegrensesnittet og
156 kan fungere som en referanseimplementasjon dersom det er ønskelig.
157 Alle har lik tilgang til koden og det koster ingenting å ta den i bruk
158 og utforske det. Nikitaprosjektet ønsker tjenestegrensesnittet
159 velkommen og stiller veldig gjerne opp i diskusjoner om tolkning av
160 tjenestegrensesnittet. Nikita er bygget på moderne
161 programmeringsrammeverk og utviklet i full åpenhet. Men Nikita er ikke
162 noe du kan kjøpe. Nikita er først og fremst et verktøy for forsking og
163 utvikling laget for å fremme forskning på arkivfeltet. Systemer som
164 virker sammen har alltid vært hovedfokus og vil være det fremover.
165 Det brukes som undervisningsverktøy der studentene ved OsloMet lærer
166 om administrativt oppsett, saksbehandling, uttrekk og samvirkende
167 datasystemer. Det brukes også som forskningsobjekt der vi ser på
168 import av dokumentsamlinger, bruk av blokkjede og andre nyskapende
169 måter å tenke arkiv på. Det er dog helt greit om andre tar Nikita og
170 pakker det for å selge det som produkt. Forvaltningsorganer med
171 sterke drift- og utviklingsmiljøer kan også se på Nikita og utforske
172 hva som er mulig. Dette kan de gjøre uten å måtte betale for
173 bruksrettigheter eller tilgang til konsulenter. Men arkivering blir
174 ikke gratis på grunn av Nikita. Det trengs fortsatt folk med
175 kompetanse og tid til å ta i bruk Nikita.
</p
>
177 <p
>Nikita har nylig kommet med en ny utgave, den sjette i rekken.
178 Systemet er ikke ferdig, mest på grunn av at API-spesifikasjonen for
179 Noark
5 Tjenestegrensesnitt ikke er ferdig, men allerede i dag kan en
180 bruke Nikita som arkiv. Vi har laget eksempelsystem for å importere
181 data fra deponi-XML og slik gjøre eksisterende arkivdata tilgjengelig
182 via et API. Vi har også laget en testklient som importerer epost inn
183 i arkivet med vedlegg der epostenes trådinformasjon brukes til å legge
184 eposttråder i samme arkivmappe, og en annen testklient som henter
185 epost ut av en arkivmappe på mbox-format slik at en vanlig epostklient
186 kan brukes til å lese igjennom og svare på epostene i en
187 arkivmappe. De som vil ta en titt på Nikita kan besøke
188 <a href=
"https://nikita.oslomet.no
">https://nikita.oslomet.no
</a
> og
189 logge inn med brukernavn «admin@example.com» og passord «password».
190 Dette gir tilgang til det forenklede brukergrensesnittet som brukes
191 til undervisning. De som heller vil ta en titt under panseret kan
193 <a href=
"https://nikita.oslomet.no/browse.html
">https://nikita.oslomet.no/browse.html
</a
>
194 og der se hvordan API-et fungerer mer i detalj. Innloggingsdetaljer
195 her er det samme som for brukergrensesnittet.
</p
>
197 <p
>Fremover er fokuset på forbedring av spesifikasjonen Noark
5
198 Tjenestegrensesnitt. De som skrev tjenestegrensesnittet gjorde et
199 interessant og framtidsrettet grep, de skilte sak fra arkiv.
200 Tjenestegrensesnittet består av flere
"pakker
", der noen er
201 grunnleggende mens andre bygger på de grunnleggende pakkene. Pakkene
202 som er beskrevet så langt heter «arkivstruktur», «sakarkiv»,
203 «administrasjon», «loggogsporing» og «moeter» (dessverre
204 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/pull/
120">planlagt
205 fjernet
</a
> i første utgave). Etter hvert håper vi å utforske
206 prosses- og metadatabeskrivelser til flere fagområder og bidra til at
207 tjenestegrensesnittet kan legge til flere pakker som «byggarkiv»,
208 «barnevern», «personal», «barnehage», der arkivfaglig metadata- og
209 dokumentasjonsbehov er kartlagt og standardisert.
</p
>
211 <p
>Nikita utvikles av en liten prosjektgruppe, og vi er alltid
212 interessert å bli flere. Hvis en åpen, fri og standardisert tilnærming
213 til arkivering høres interessant ut, bli med oss på veien videre. Vi
214 er tilstede på IRC-kanalen #nikita hos FreeNode (tilgjengelig via
216 <a href=
"https://webchat.freenode.net?channels=#nikita
">https://webchat.freenode.net?channels=#nikita
</a
>),
217 og har en e-postliste nikita-noark@nuug.no hos NUUG (tilgjengelig for
218 påmelding og arkiv på
219 <a href=
"https://lists.nuug.no/mailman/listinfo/nikita-noark
">https://lists.nuug.no/mailman/listinfo/nikita-noark
</a
>)
220 der en kan følge med eller være med oss på den spennende veien videre.
221 Spesifikasjonen for Noark
5 Tjenestegrensesnitt vedlikeholdes på
223 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/
">https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/
</a
>.
</p
>
225 <p
>Som vanlig, hvis du bruker Bitcoin og ønsker å vise din støtte til
226 det jeg driver med, setter jeg pris på om du sender Bitcoin-donasjoner
228 <b
><a href=
"bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a
></b
>.
</p
>
233 <title>Jami/Ring, finally functioning peer to peer communication client
</title>
234 <link>http://people.skolelinux.org/pere/blog/Jami_Ring__finally_functioning_peer_to_peer_communication_client.html
</link>
235 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Jami_Ring__finally_functioning_peer_to_peer_communication_client.html
</guid>
236 <pubDate>Wed,
19 Jun
2019 08:
50:
00 +
0200</pubDate>
237 <description><p
>Some years ago, in
2016, I
238 <a href=
"http://people.skolelinux.org/pere/blog/Experience_and_updated_recipe_for_using_the_Signal_app_without_a_mobile_phone.html
">wrote
239 for the first time about
</a
> the Ring peer to peer messaging system.
240 It would provide messaging without any central server coordinating the
241 system and without requiring all users to register a phone number or
242 own a mobile phone. Back then, I could not get it to work, and put it
243 aside until it had seen more development. A few days ago I decided to
244 give it another try, and am happy to report that this time I am able
245 to not only send and receive messages, but also place audio and video
246 calls. But only if UDP is not blocked into your network.
</p
>
248 <p
>The Ring system changed name earlier this year to
249 <a href=
"https://en.wikipedia.org/wiki/Jami_(software)
">Jami
</a
>. I
250 tried doing web search for
'ring
' when I discovered it for the first
251 time, and can only applaud this change as it is impossible to find
252 something called Ring among the noise of other uses of that word. Now
253 you can search for
'jami
' and this client and
254 <a href=
"https://jami.net/
">the Jami system
</a
> is the first hit at
255 least on duckduckgo.
</p
>
257 <p
>Jami will by default encrypt messages as well as audio and video
258 calls, and try to send them directly between the communicating parties
259 if possible. If this proves impossible (for example if both ends are
260 behind NAT), it will use a central SIP TURN server maintained by the
261 Jami project. Jami can also be a normal SIP client. If the SIP
262 server is unencrypted, the audio and video calls will also be
263 unencrypted. This is as far as I know the only case where Jami will
264 do anything without encryption.
</p
>
266 <p
>Jami is available for several platforms: Linux, Windows, MacOSX,
267 Android, iOS, and Android TV. It is included in Debian already. Jami
268 also work for those using F-Droid without any Google connections,
270 <a href=
"https://git.jami.net/savoirfairelinux/ring-project/wikis/technical/Protocol
">The
271 protocol
</a
> is described in the Ring project wiki. The system uses a
272 distributed hash table (DHT) system (similar to BitTorrent) running
273 over UDP. On one of the networks I use, I discovered Jami failed to
274 work. I tracked this down to the fact that incoming UDP packages
275 going to ports
1-
49999 were blocked, and the DHT would pick a random
276 port and end up in the low range most of the time. After talking to
277 the developers, I solved this by enabling the dhtproxy in the
278 settings, thus using TCP to talk to a central DHT proxy instead of
280 peering directly with others. I
've been told the developers are
281 working on allowing DHT to use TCP to avoid this problem. I also ran
282 into a problem when trying to talk to the version of Ring included in
283 Debian Stable (Stretch). Apparently the protocol changed between
284 beta2 and the current version, making these clients incompatible.
285 Hopefully the protocol will not be made incompatible in the
288 <p
>It is worth noting that while looking at Jami and its features, I
289 came across another communication platform I have not tested yet. The
290 <a href=
"https://en.wikipedia.org/wiki/Tox_(protocol)
">Tox protocol
</a
>
291 and
<a href=
"https://tox.chat/
">family of Tox clients
</a
>. It might
292 become the topic of a future blog post.
</p
>
294 <p
>As usual, if you use Bitcoin and want to show your support of my
295 activities, please send Bitcoin donations to my address
296 <b
><a href=
"bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a
></b
>.
</p
>
301 <title>More sales number for my Free Culture paper editions (
2019-edition)
</title>
302 <link>http://people.skolelinux.org/pere/blog/More_sales_number_for_my_Free_Culture_paper_editions__2019_edition_.html
</link>
303 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/More_sales_number_for_my_Free_Culture_paper_editions__2019_edition_.html
</guid>
304 <pubDate>Tue,
11 Jun
2019 16:
05:
00 +
0200</pubDate>
305 <description><p
>The first book I published,
306 <a href=
"http://www.free-culture.cc/
">Free Culture by Lawrence
307 Lessig
</a
>, is still selling a few copies. Not a lot, but enough to
308 have contributed slightly over $
500 to the
<a
309 href=
"https://creativecommons.org/
">Creative Commons Corporation
</a
>
310 so far. All the profit is sent there. Most books are still sold via
311 Amazon (
83 copies), with Ingram second (
49) and Lulu (
12) and Machette (
7) as
312 minor channels. Bying directly from Lulu bring the largest cut to
313 Creative Commons. The English Edition sold
80 copies so far, the
314 French
59 copies, and Norwegian only
8 copies. Nothing impressive,
315 but nice to see the work we put down is still being appreciated. The
316 ebook edition is available for free from
317 <a href=
"https://github.com/petterreinholdtsen/free-culture-lessig
">Github
</a
>.
</p
>
319 <table border=
"0">
320 <tr
><th rowspan=
"2" valign=
"bottom
">Title / language
</th
>
321 <th colspan=
"7">Quantity
</th
></tr
>
323 <th
>2016 jan-jun
</th
>
324 <th
>2016 jul-dec
</th
>
325 <th
>2017 jan-jun
</th
>
326 <th
>2017 jul-dec
</th
>
327 <th
>2018 jan-jun
</th
>
328 <th
>2018 jul-dec
</th
>
329 <th
>2019 jan-may
</th
>
333 <td
><a href=
"http://www.lulu.com/shop/lawrence-lessig/culture-libre/paperback/product-
22645082.html
">Culture Libre / French
</a
></td
>
334 <td align=
"right
">3</td
>
335 <td align=
"right
">6</td
>
336 <td align=
"right
">19</td
>
337 <td align=
"right
">11</td
>
338 <td align=
"right
">7</td
>
339 <td align=
"right
">6</td
>
340 <td align=
"right
">7</td
>
344 <td
><a href=
"http://www.lulu.com/shop/lawrence-lessig/fri-kultur/paperback/product-
22441576.html
">Fri kultur / Norwegian
</a
></td
>
345 <td align=
"right
">7</td
>
346 <td align=
"right
">1</td
>
347 <td align=
"right
">0</td
>
348 <td align=
"right
">0</td
>
349 <td align=
"right
">0</td
>
350 <td align=
"right
">0</td
>
351 <td align=
"right
">0</td
>
355 <td
><a href=
"http://www.lulu.com/shop/lawrence-lessig/free-culture/paperback/product-
22440520.html
">Free Culture / English
</a
></td
>
356 <td align=
"right
">14</td
>
357 <td align=
"right
">27</td
>
358 <td align=
"right
">16</td
>
359 <td align=
"right
">9</td
>
360 <td align=
"right
">3</td
>
361 <td align=
"right
">7</td
>
362 <td align=
"right
">3</td
>
366 <td
>Total
</td
>
367 <td align=
"right
">24</td
>
368 <td align=
"right
">34</td
>
369 <td align=
"right
">35</td
>
370 <td align=
"right
">20</td
>
371 <td align=
"right
">10</td
>
372 <td align=
"right
">13</td
>
373 <td align=
"right
">10</td
>
378 <p
>It is fun to see the French edition being more popular than the
379 English one.
</p
>
381 <p
>If you would like to translate and publish the book in your native
382 language, I would be happy to help make it happen. Please get in
388 <title>Official MIME type
"text/vnd.sosi
" for SOSI map data
</title>
389 <link>http://people.skolelinux.org/pere/blog/Official_MIME_type__text_vnd_sosi__for_SOSI_map_data.html
</link>
390 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Official_MIME_type__text_vnd_sosi__for_SOSI_map_data.html
</guid>
391 <pubDate>Tue,
4 Jun
2019 09:
20:
00 +
0200</pubDate>
392 <description><p
>Just
15 days ago,
393 <ahref=
"http://people.skolelinux.org/pere/blog/MIME_type__text_vnd_sosi__for_SOSI_map_data.html
">I
394 mentioned
</a
> my submission to IANA to register an official MIME type
395 for the SOSI vector map format. This morning, just an hour ago, I was
397 <a href=
"https://www.iana.org/assignments/media-types/text/vnd.sosi
">the
398 MIME type
"text/vnd.sosi
"</a
> is registered for this format. In
399 addition to this registration, my
400 <a href=
"https://github.com/file/file/blob/master/magic/Magdir/sosi
">file(
1)
401 patch for a pattern matching rule for SOSI files
</a
> has been accepted
402 into the official source of that program (pending a new release), and
403 I
've been told by the team behind
404 <a href=
"https://www.nationalarchives.gov.uk/PRONOM/
">PRONOM
</a
> that
405 the SOSI format will be included in the next release of PRONOM, which
406 they plan to release this summer around July.
</p
>
408 <p
>I am very happy to see all of this fall into place, for use by
409 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/
">the
410 Noark
5 Tjenestegrensesnitt
</a
> implementations.
</p
>
412 <p
>As usual, if you use Bitcoin and want to show your support of my
413 activities, please send Bitcoin donations to my address
414 <b
><a href=
"bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a
></b
>.
</p
>
419 <title>The space rover coquine, or how I ended up on the dark side of the moon
</title>
420 <link>http://people.skolelinux.org/pere/blog/The_space_rover_coquine__or_how_I_ended_up_on_the_dark_side_of_the_moon.html
</link>
421 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/The_space_rover_coquine__or_how_I_ended_up_on_the_dark_side_of_the_moon.html
</guid>
422 <pubDate>Sun,
2 Jun
2019 23:
55:
00 +
0200</pubDate>
423 <description><p
>A while back a college and friend from Debian and the Skolelinux /
424 Debian Edu project approached me, asking if I knew someone that might
425 be interested in helping out with a technology project he was running
426 as a teacher at
<a href=
"https://www.ecolefrancodanoise.dk/
">L
'école
427 franco-danoise
</a
> - the Danish-French school and kindergarden. The
428 kids were building robots, rovers. The story behind it is to build a
430 <a href=
"http://blog.ecolefrancodanoise.dk/first-week-on-the-dark-side
">on
431 the dark side of the moon
</a
>, and remote control it. As travel cost
432 was a bit high for the final destination, and they wanted to test the
433 concept first, he was looking for volunteers to host a rover for the
434 kids to control in a foreign country. I ended up volunteering as a
435 host, and last week the rover arrived. It took a while to arrive
436 after
<a href=
"http://blog.ecolefrancodanoise.dk/model-moms
">it was
437 built and shipped
</a
>, because of customs confusion. Luckily we were
438 able fix it quickly with help from my colleges at work.
</p
>
440 <p
>This is what it looked like when the rover arrived. Note the cute
441 eyes looking up on me from the wrapping
</p
>
443 <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
"/
>
444 <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
"/
>
445 <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
"/
>
447 <p style=
"text-align:left
">Once the robot arrived, we needed to track
448 down batteries and figure out how to build custom firmware for it with
449 the appropriate wifi settings. I asked a friend if I could get two
450 18650 batteries from his pile of Tesla batteries (he had them from the
451 wrack of a crashed Tesla), so now the rover is running on Tesla
455 <a href=
"https://gitlab.com/ecolefrancodanoise/arduino-efd/
">the rover
456 firmware
</a
> proved a bit harder, as the code did not work out of the
457 box with the Arduino IDE package in Debian Buster. I suspect this is
459 <a href=
"https://github.com/arduino/Arduino/pull/
2703"> license problem
460 with arduino
</a
> blocking Debian from upgrading to the latest version.
461 In the end we gave up debugging why the IDE failed to find the
462 required libraries, and ended up using the Arduino Makefile from the
463 <a href=
"https://tracker.debian.org/pkg/arduino-mk
">arduino-mk Debian
464 package
</a
> instead. Unfortunately the camera library is missing from
465 the Arduino environment in Debian, so we disabled the camera support
466 for the first firmware build, to get something up and running. With
467 this reduced firmware, the robot could be controlled via the
468 controller server, driving around and measuring distance using its
469 internal acoustic sensor.
</p
>
471 <p
>Next, With some help from my friend in Denmark, which checked in the
472 camera library into the gitlab repository for me to use, we were able
473 to build a new and more complete version of the firmware, and the
474 robot is now up and running. This is what the
"commander
" web page
475 look like after taking a measurement and a snapshot:
</p
>
477 <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
"/
>
479 <p
>If you want to learn more about this project, you can check out the
480 <a href=
"https://hackaday.io/project/
164082-the-dark-side-challenge
">The
481 Dark Side Challenge
</a
> Hackaday web pages.
</p
>
483 <p
>As usual, if you use Bitcoin and want to show your support of my
484 activities, please send Bitcoin donations to my address
485 <b
><a href=
"bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a
></b
>.
</p
>
490 <title>Nikita version
0.4 released - free software archive API server
</title>
491 <link>http://people.skolelinux.org/pere/blog/Nikita_version_0_4_released___free_software_archive_API_server.html
</link>
492 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Nikita_version_0_4_released___free_software_archive_API_server.html
</guid>
493 <pubDate>Wed,
22 May
2019 11:
30:
00 +
0200</pubDate>
494 <description><p
>This morning, a new release of
495 <a href=
"https://gitlab.com/OsloMet-ABI/nikita-noark5-core/
">Nikita
496 Noark
5 core project
</a
> was
497 <a href=
"https://lists.nuug.no/pipermail/nikita-noark/
2019-May/
000468.html
">announced
498 on the project mailing list
</a
>. The Nikita free software solution is
499 an implementation of the Norwegian archive standard Noark
5 used by
500 government offices in Norway. These were the changes in version
0.4
501 since version
0.3, see the email link above for links to a demo site:
</p
>
505 <li
>Roll out OData handling to all endpoints where applicable
</li
>
506 <li
>Changed the relation key for
"ny-journalpost
" to the official one.
</li
>
507 <li
>Better link generation on outgoing links.
</li
>
508 <li
>Tidy up code and make code and approaches more consistent throughout
509 the codebase
</li
>
510 <li
>Update rels to be in compliance with updated version in the
511 interface standard
</li
>
512 <li
>Avoid printing links on empty objects as they can
't have links
</li
>
513 <li
>Small bug fixes and improvements
</li
>
514 <li
>Start moving generation of outgoing links to @Service layer so access
515 control can be used when generating links
</li
>
516 <li
>Log exception that was being swallowed so it
's traceable
</li
>
517 <li
>Fix name mapping problem
</li
>
518 <li
>Update templated printing so templated should only be printed if it
519 is set true. Requires more work to roll out across entire
520 application.
</li
>
521 <li
>Remove Record-
>DocumentObject as per domain model of n5v4
</li
>
522 <li
>Add ability to delete lists filtered with OData
</li
>
523 <li
>Return NO_CONTENT (
204) on delete as per interface standard
</li
>
524 <li
>Introduce support for ConstraintViolationException exception
</li
>
525 <li
>Make Service classes extend NoarkService
</li
>
526 <li
>Make code base respect X-Forwarded-Host, X-Forwarded-Proto and
527 X-Forwarded-Port
</li
>
528 <li
>Update CorrespondencePart* code to be more in line with Single
529 Responsibility Principle
</li
>
530 <li
>Make package name follow directory structure
</li
>
531 <li
>Make sure Document number starts at
1, not
0</li
>
532 <li
>Fix isues discovered by FindBugs
</li
>
533 <li
>Update from Date to ZonedDateTime
</li
>
534 <li
>Fix wrong tablename
</li
>
535 <li
>Introduce Service layer tests
</li
>
536 <li
>Improvements to CorrespondencePart
</li
>
537 <li
>Continued work on Class / Classificationsystem
</li
>
538 <li
>Fix feature where authors were stored as storageLocations
</li
>
539 <li
>Update HQL builder for OData
</li
>
540 <li
>Update OData search capability from webpage
</li
>
544 <p
>If free and open standardized archiving API sound interesting to
545 you, please contact us on IRC
546 (
<a href=
"irc://irc.freenode.net/%
23nikita
">#nikita on
547 irc.freenode.net
</a
>) or email
548 (
<a href=
"https://lists.nuug.no/mailman/listinfo/nikita-noark
">nikita-noark
549 mailing list
</a
>).
</p
>
551 <p
>As usual, if you use Bitcoin and want to show your support of my
552 activities, please send Bitcoin donations to my address
553 <b
><a href=
"bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a
></b
>.
</p
>
558 <title>MIME type
"text/vnd.sosi
" for SOSI map data
</title>
559 <link>http://people.skolelinux.org/pere/blog/MIME_type__text_vnd_sosi__for_SOSI_map_data.html
</link>
560 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/MIME_type__text_vnd_sosi__for_SOSI_map_data.html
</guid>
561 <pubDate>Mon,
20 May
2019 08:
35:
00 +
0200</pubDate>
562 <description><p
>As part of my involvement in the work to
563 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard
">standardise
564 a REST based API for Noark
5</a
>, the Norwegian archiving standard, I
565 spent some time the last few months to try to register a
566 <a href=
"https://www.iana.org/assignments/media-types/
">MIME type
</a
>
567 and
<a href=
"https://www.nationalarchives.gov.uk/PRONOM/
">PRONOM
568 code
</a
> for the SOSI file format. The background is that there is a
569 set of formats approved for long term storage and archiving in Norway,
570 and among these formats, SOSI is the only format missing a MIME type
571 and PRONOM code.
</p
>
573 <p
>What is SOSI, you might ask? To quote Wikipedia: SOSI is short for
574 Samordnet Opplegg for Stedfestet Informasjon (literally
"Coordinated
575 Approach for Spatial Information
", but more commonly expanded in
576 English to Systematic Organization of Spatial Information). It is a
577 text based file format for geo-spatial vector information used in
578 Norway. Information about the SOSI format can be found in English
579 from
<a href=
"https://en.wikipedia.org/wiki/SOSI
">Wikipedia
</a
>. The
580 specification is available in Norwegian from
581 <a href=
"https://www.kartverket.no/geodataarbeid/Standarder/SOSI/
">the
582 Norwegian mapping authority
</a
>. The SOSI standard, which originated
583 in the beginning of nineteen eighties, was the inspiration and formed the
584 basis for the XML based
585 <a href=
"https://en.wikipedia.org/wiki/Geography_Markup_Language
">Geography
586 Markup Language
</a
>.
</p
>
588 <p
>I have so far written
589 <a href=
"https://github.com/file/file/pull/
67">a pattern matching
590 rule
</a
> for the file(
1) unix tool to recognize SOSI files, submitted
591 a request to the PRONOM project to have a PRONOM ID assigned to the
592 format (reference TNA1555078202S60), and today send a request to IANA
593 to register the
"text/vnd.sosi
" MIME type for this format (referanse
594 <a href=
"https://tools.iana.org/public-view/viewticket/
1143144">IANA
595 #
1143144</a
>). If all goes well, in a few months, anyone implementing
596 the Noark
5 Tjenestegrensesnitt API spesification should be able to
597 use an official MIME type and PRONOM code for SOSI files. In
598 addition, anyone using SOSI files on Linux should be able to
599 automatically recognise the format and web sites handing out SOSI
600 files can begin providing a more specific MIME type. So far, SOSI
601 files has been handed out from web sites using the
602 "application/octet-stream
" MIME type, which is just a nice way of
603 stating
"I do not know
". Soon, we will know. :)
</p
>
605 <p
>As usual, if you use Bitcoin and want to show your support of my
606 activities, please send Bitcoin donations to my address
607 <b
><a href=
"bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a
></b
>.
</p
>
612 <title>PlantUML for text based UML diagram modelling - nice free software
</title>
613 <link>http://people.skolelinux.org/pere/blog/PlantUML_for_text_based_UML_diagram_modelling___nice_free_software.html
</link>
614 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/PlantUML_for_text_based_UML_diagram_modelling___nice_free_software.html
</guid>
615 <pubDate>Mon,
25 Mar
2019 09:
35:
00 +
0100</pubDate>
616 <description><p
>As part of my involvement with the
617 <a href=
"https://gitlab.com/OsloMet-ABI/nikita-noark5-core/
">Nikita
618 Noark
5 core project
</a
>, I have been proposing improvements to the
619 API specification created by
<a href=
"https://www.arkivverket.no/
">The
620 National Archives of Norway
</a
> and helped migrating the text from a
621 version control system unfriendly binary format (docx) to Markdown in
622 git. Combined with the migration to a public git repository (on
623 github), this has made it possible for anyone to suggest improvement
624 to the text.
</p
>
626 <p
>The specification is filled with UML diagrams. I believe the
627 original diagrams were modelled using Sparx Systems Enterprise
628 Architect, and exported as EMF files for import into docx. This
629 approach make it very hard to track changes using a version control
630 system. To improve the situation I have been looking for a good text
631 based UML format with associated command line free software tools on
632 Linux and Windows, to allow anyone to send in corrections to the UML
633 diagrams in the specification. The tool must be text based to work
634 with git, and command line to be able to run it automatically to
635 generate the diagram images. Finally, it must be free software to
636 allow anyone, even those that can not accept a non-free software
637 license, to contribute.
</p
>
639 <p
>I did not know much about free software UML modelling tools when I
640 started. I have used dia and inkscape for simple modelling in the
641 past, but neither are available on Windows, as far as I could tell. I
643 <a href=
"https://modeling-languages.com/text-uml-tools-complete-list/
">list
644 of text mode uml tools
</a
>, and tested out a few of the tools listed
645 there.
<a href=
"http://plantuml.com/
">The PlantUML tool
</a
> seemed
646 most promising. After verifying that the packages
647 <a href=
"https://tracker.debian.org/pkg/plantuml
">is available in
648 Debian
</a
> and found
<a href=
"https://github.com/plantuml/plantuml
">its
649 Java source
</a
> under a GPL license on github, I set out to test if it
650 could represent the diagrams we needed, ie the ones currently in
651 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/
">the
652 Noark
5 Tjenestegrensesnitt specification
</a
>. I am happy to report
653 that it could represent them, even thought it have a few warts here
656 <p
>After a few days of modelling I completed the task this weekend. A
657 temporary link to the complete set of diagrams (original and from
658 PlantUML) is available in
659 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues/
76">the
660 github issue discussing the need for a text based UML format
</a
>, but
661 please note I lack a sensible tool to convert EMF files to PNGs, so
662 the
"original
" rendering is not as good as the original was in the
663 publised PDF.
</p
>
665 <p
>Here is an example UML diagram, showing the core classes for
666 keeping metadata about archived documents:
</p
>
670 skinparam classAttributeIconSize
0
672 !include media/uml-class-arkivskaper.iuml
673 !include media/uml-class-arkiv.iuml
674 !include media/uml-class-klassifikasjonssystem.iuml
675 !include media/uml-class-klasse.iuml
676 !include media/uml-class-arkivdel.iuml
677 !include media/uml-class-mappe.iuml
678 !include media/uml-class-merknad.iuml
679 !include media/uml-class-registrering.iuml
680 !include media/uml-class-basisregistrering.iuml
681 !include media/uml-class-dokumentbeskrivelse.iuml
682 !include media/uml-class-dokumentobjekt.iuml
683 !include media/uml-class-konvertering.iuml
684 !include media/uml-datatype-elektronisksignatur.iuml
686 Arkivstruktur.Arkivskaper
"+arkivskaper
1..*
" <-o
"+arkiv
0..*
" Arkivstruktur.Arkiv
687 Arkivstruktur.Arkiv o--
> "+underarkiv
0..*
" Arkivstruktur.Arkiv
688 Arkivstruktur.Arkiv
"+arkiv
1" o--
> "+arkivdel
0..*
" Arkivstruktur.Arkivdel
689 Arkivstruktur.Klassifikasjonssystem
"+klassifikasjonssystem [
0.
.1]
" <--o
"+arkivdel
1..*
" Arkivstruktur.Arkivdel
690 Arkivstruktur.Klassifikasjonssystem
"+klassifikasjonssystem [
0.
.1]
" o--
> "+klasse
0..*
" Arkivstruktur.Klasse
691 Arkivstruktur.Arkivdel
"+arkivdel
0.
.1" o--
> "+mappe
0..*
" Arkivstruktur.Mappe
692 Arkivstruktur.Arkivdel
"+arkivdel
0.
.1" o--
> "+registrering
0..*
" Arkivstruktur.Registrering
693 Arkivstruktur.Klasse
"+klasse
0.
.1" o--
> "+mappe
0..*
" Arkivstruktur.Mappe
694 Arkivstruktur.Klasse
"+klasse
0.
.1" o--
> "+registrering
0..*
" Arkivstruktur.Registrering
695 Arkivstruktur.Mappe --
> "+undermappe
0..*
" Arkivstruktur.Mappe
696 Arkivstruktur.Mappe
"+mappe
0.
.1" o--
> "+registrering
0..*
" Arkivstruktur.Registrering
697 Arkivstruktur.Merknad
"+merknad
0..*
" <--* Arkivstruktur.Mappe
698 Arkivstruktur.Merknad
"+merknad
0..*
" <--* Arkivstruktur.Dokumentbeskrivelse
699 Arkivstruktur.Basisregistrering -|
> Arkivstruktur.Registrering
700 Arkivstruktur.Merknad
"+merknad
0..*
" <--* Arkivstruktur.Basisregistrering
701 Arkivstruktur.Registrering
"+registrering
1..*
" o--
> "+dokumentbeskrivelse
0..*
" Arkivstruktur.Dokumentbeskrivelse
702 Arkivstruktur.Dokumentbeskrivelse
"+dokumentbeskrivelse
1" o-
> "+dokumentobjekt
0..*
" Arkivstruktur.Dokumentobjekt
703 Arkivstruktur.Dokumentobjekt *-
> "+konvertering
0..*
" Arkivstruktur.Konvertering
704 Arkivstruktur.ElektroniskSignatur -[hidden]-
> Arkivstruktur.Dokumentobjekt
708 <p
><a href=
"http://plantuml.com/class-diagram
">The format
</a
> is quite
709 compact, with little redundant information. The text expresses
710 entities and relations, and there is little layout related fluff. One
711 can reuse content by using include files, allowing for consistent
712 naming across several diagrams. The include files can be standalone
713 PlantUML too. Here is the content of
714 <tt
>media/uml-class-arkivskaper.iuml
<tt
>:
</p
>
718 class Arkivstruktur.Arkivskaper
<Arkivenhet
> {
719 +arkivskaperID : string
720 +arkivskaperNavn : string
721 +beskrivelse : string [
0.
.1]
726 <p
>This is what the complete diagram for the PlantUML notation above
729 <p
><img width=
"80%
" src=
"http://people.skolelinux.org/pere/blog/images/
2019-
03-
25-noark5-plantuml-diagrameksempel.png
"></p
>
731 <p
>A cool feature of PlantUML is that the generated PNG files include
732 the entire original source diagram as text. The source (with include
733 statements expanded) can be extracted using for example
734 <tt
>exiftool
</tt
>. Another cool feature is that parts of the entities
735 can be hidden after inclusion. This allow to use include files with
736 all attributes listed, even for UML diagrams that should not list any
737 attributes.
</p
>
739 <p
>The diagram also show some of the warts. Some times the layout
740 engine place text labels on top of each other, and some times it place
741 the class boxes too close to each other, not leaving room for the
742 labels on the relationship arrows. The former can be worked around by
743 placing extra newlines in the labes (ie
"\n
"). I did not do it here
744 to be able to demonstrate the issue. I have not found a good way
745 around the latter, so I normally try to reduce the problem by changing
746 from vertical to horizontal links to improve the layout.
</p
>
748 <p
>All in all, I am quite happy with PlantUML, and very impressed with
749 how quickly its lead developer responds to questions. So far I got an
750 answer to my questions in a few hours when I send an email. I
751 definitely recommend looking at PlantUML if you need to make UML
752 diagrams. Note, PlantUML can draw a lot more than class relations.
753 Check out the documention for a complete list. :)
</p
>
755 <p
>As usual, if you use Bitcoin and want to show your support of my
756 activities, please send Bitcoin donations to my address
757 <b
><a href=
"bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a
></b
>.
</p
>
762 <title>Release
0.3 of free software archive API system Nikita announced
</title>
763 <link>http://people.skolelinux.org/pere/blog/Release_0_3_of_free_software_archive_API_system_Nikita_announced.html
</link>
764 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Release_0_3_of_free_software_archive_API_system_Nikita_announced.html
</guid>
765 <pubDate>Sun,
24 Mar
2019 14:
30:
00 +
0100</pubDate>
766 <description><p
>Yesterday, a new release of
767 <a href=
"https://gitlab.com/OsloMet-ABI/nikita-noark5-core/
">Nikita
768 Noark
5 core project
</a
> was
769 <a href=
"https://lists.nuug.no/pipermail/nikita-noark/
2019-March/
000451.html
">announced
770 on the project mailing list
</a
>. The free software solution is an
771 implementation of the Norwegian archive standard Noark
5 used by
772 government offices in Norway. These were the changes in version
0.3
773 since version
0.2.1 (from NEWS.md):
</p
>
776 <li
>Improved ClassificationSystem and Class behaviour.
</li
>
777 <li
>Tidied up known inconsistencies between domain model and hateaos links.
</li
>
778 <li
>Added experimental code for blockchain integration.
</li
>
779 <li
>Make token expiry time configurable at upstart from properties file.
</li
>
780 <li
>Continued work on OData search syntax.
</li
>
781 <li
>Started work on pagination for entities, partly implemented for Saksmappe.
</li
>
782 <li
>Finalise ClassifiedCode Metadata entity.
</li
>
783 <li
>Implement mechanism to check if authentication token is still
784 valid. This allow the GUI to return a more sensible message to the
785 user if the token is expired.
</li
>
786 <li
>Reintroduce browse.html page to allow user to browse JSON API using
787 hateoas links.
</li
>
788 <li
>Fix bug in handling file/mappe sequence number. Year change was
789 not properly handled.
</li
>
790 <li
>Update application yml files to be in sync with current development.
</li
>
791 <li
>Stop
'converting
' everything to PDF using libreoffice. Only
792 convert the file formats doc, ppt, xls, docx, pptx, xlsx, odt, odp
794 <li
>Continued code style fixing, making code more readable.
</li
>
795 <li
>Minor bug fixes.
</li
>
799 <p
>If free and open standardized archiving API sound interesting to
800 you, please contact us on IRC
801 (
<a href=
"irc://irc.freenode.net/%
23nikita
">#nikita on
802 irc.freenode.net
</a
>) or email
803 (
<a href=
"https://lists.nuug.no/mailman/listinfo/nikita-noark
">nikita-noark
804 mailing list
</a
>).
</p
>
806 <p
>As usual, if you use Bitcoin and want to show your support of my
807 activities, please send Bitcoin donations to my address
808 <b
><a href=
"bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a
></b
>.
</p
>
813 <title>Åpen og gjennomsiktig vedlikehold av spesifikasjonen for Noark
5 Tjenestegrensesnitt
</title>
814 <link>http://people.skolelinux.org/pere/blog/_pen_og_gjennomsiktig_vedlikehold_av_spesifikasjonen_for_Noark_5_Tjenestegrensesnitt.html
</link>
815 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/_pen_og_gjennomsiktig_vedlikehold_av_spesifikasjonen_for_Noark_5_Tjenestegrensesnitt.html
</guid>
816 <pubDate>Mon,
11 Mar
2019 16:
00:
00 +
0100</pubDate>
817 <description><p
>Et virksomhetsarkiv for meg, er et arbeidsverktøy der en enkelt kan
818 finne informasjonen en trenger når en trenger det, og der
819 virksomhetens samlede kunnskap er tilgjengelig. Det må være greit å
820 finne frem i, litt som en bibliotek. Men der et bibliotek gjerne tar
821 vare på offentliggjort informasjon som er tilgjengelig flere steder,
822 tar et arkiv vare på virksomhetsintern og til tider personlig
823 informasjon som ofte kun er tilgjengelig fra et sted.
</p
>
825 <p
>Jeg mistenker den eneste måten å sikre at arkivet inneholder den
826 samlede kunnskapen i en virksomhet, er å bruke det som virksomhetens
827 kunnskapslager. Det innebærer å automatisk kopiere (brev, epost,
828 SMS-er etc) inn i arkivet når de sendes og mottas, og der filtrere
829 vekk det en ikke vil ta vare på, og legge på metadata om det som er
830 samlet inn for enkel gjenfinning. En slik bruk av arkivet innebærer at
831 arkivet er en del av daglig virke, ikke at det er siste hvilested for
832 informasjon ingen lenger har daglig bruk for. For å kunne være en del
833 av det daglige virket må arkivet enkelt kunne integreres med andre
834 systemer. I disse dager betyr det å tilby arkivet som en
835 nett-tjeneste til hele virksomheten, tilgjengelig for både mennesker
836 og datamaskiner. Det betyr i tur å både tilby nettsider og et
837 maskinlesbart grensesnitt.
</p
>
839 <p
>For noen år siden erkjente visjonære arkivarer fordelene med et
840 standardisert maskinlesbart grensesnitt til organisasjonens arkiv. De
841 gikk igang med å lage noe de kalte
842 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/
">Noark
843 5 Tjenestegrensesnitt
</a
>. Gjort riktig, så åpner slike maskinlesbare
844 grensesnitt for samvirke på tvers av uavhengige programvaresystemer.
845 Gjort feil, vil det blokkere for samvirke og bidra til
846 leverandørinnlåsing. For å gjøre det riktig så må grensesnittet være
847 klart og entydig beskrevet i en spesifikasjon som gjør at
848 spesifikasjonen tolkes på samme måte uavhengig av hvem som leser den,
849 og uavhengig av hvem som tar den i bruk.
</p
>
851 <p
>For å oppnå klare og entydige beskrivelser i en spesifikasjon, som
852 trengs for å kunne få en fri og åpen standard (se
853 <a href=
"http://people.skolelinux.org/pere/blog/Fri_og__pen_standard__slik_Digistan_ser_det.html
">Digistan-definisjon
</a
>),
854 så trengs det en åpen og gjennomsiktig inngangsport med lav terskel,
855 der de som forsøker å ta den i bruk enkelt kan få inn korreksjoner,
856 etterlyse klargjøringer og rapportere uklarheter i spesifikasjonen.
857 En trenger også automatiserte datasystemer som måler og sjekker at et
858 gitt grensesnitt fungerer i tråd med spesifikasjonen.
</p
>
860 <p
>For Noark
5 Tjenestegrensesnittet er det nå etablert en slik åpen
861 og gjennomsiktig inngangsport på prosjekttjenesten github. Denne
862 inngangsporten består først og fremst av en åpen portal som lar enhver
863 se hva som er gjort av endringer i spesifikasjonsteksten over tid, men
864 det hører også med et åpent
&quot;diskusjonsforum
&quot; der en kan
865 komme med endringsforslag og forespørsler om klargjøringer. Alle
866 registrerte brukere på github kan bidra med innspill til disse
867 henvendelsene.
</p
>
869 <p
>I samarbeide med Arkivverket har jeg fått opprettet et git-depot
870 med spesifikasjonsteksten for tjenestegrensesnittet, der det er lagt
871 inn historikk for endringer i teksten de siste årene, samt lagt inn
872 endringsforslag og forespørsler om klargjøring av teksten. Bakgrunnen
873 for at jeg bidro med dette er at jeg er involvert i
874 <a href=
"https://gitlab.com/OsloMet-ABI/nikita-noark5-core
">Nikita-prosjektet
</a
>,
875 som lager en fri programvare-utgave av Noark
5 Tjenestegrensesnitt.
876 Det er først når en forsøker å lage noe i tråd med en spesifikasjon at
877 en oppdager hvor mange detaljer som må beskrives i spesifikasjonen for
878 å sikre samhandling.
</p
>
880 <p
>Spesifikasjonen vedlikeholdes i et rent tekstformat, for å ha et
881 format egnet for versjonskontroll via versjontrollsystemet git. Dette
882 gjør det både enkelt å se konkret hvilke endringer som er gjort når,
883 samt gjør det praktisk mulig for enhver med github-konto å sende inn
884 endringsforslag med formuleringer til spesifikasjonsteksten. Dette
885 tekstformatet vises frem som nettsider på github, slik at en ikke
886 trenger spesielle verktøy for å se på siste utgave av
887 spesifikasjonen.
</p
>
889 <p
>Fra dette rene tekstformatet kan det så avledes ulike formater, som
890 HTML for websider, PDF for utskrift på papir og ePub for lesing med
891 ebokleser. Avlednings-systemet (byggesystemet) bruker i dag
892 verktøyene pandoc, latex, docbook-xsl og GNU make til
893 transformasjonen. Tekstformatet som brukes dag er
894 <a href=
"https://www.markdownguide.org/
">Markdown
</a
>, men det vurderes
896 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues/
9">endre
897 til formatet RST
</a
> i fremtiden for bedre styring av utseende på
898 PDF-utgaven.
</p
>
900 <p
>Versjonskontrollsystemet git ble valgt da det er både fleksibelt,
901 avansert og enkelt å ta i bruk. Github ble valgt (foran f.eks. Gitlab
902 som vi bruker i Nikita), da Arkivverket allerede hadde tatt i bruk
903 Github i andre sammenhenger.
</p
>
905 <p
>Enkle endringer i teksten kan gjøres av priviligerte brukere
906 direkte i nettsidene til Github, ved å finne aktuell fil som skal
907 endres (f.eks. kapitler/
03-konformitet.md), klikke på den lille
908 bokstaven i høyre hjørne over teksten. Det kommer opp en nettside der
909 en kan endre teksten slik en ønsker. Når en er fornøyd med endringen
910 så må endringen
&quot;sjekkes inn
&quot; i historikken. Det gjøres ved
911 å gi en kort beskrivelse av endringen (beskriv helst hvorfor endringen
912 trengs, ikke hva som er endret), under overskriften
&quot;Commit
913 changes
&quot;. En kan og bør legge inn en lengre forklaring i det
914 større skrivefeltet, før en velger om endringen skal sendes direkte
915 til
'master
'-grenen (dvs. autorativ utgave av spesifikasjonen) eller
916 om en skal lage en ny gren for denne endringen og opprette en
917 endringsforespørsel (aka
&quot;Pull Request
&quot;/PR). Når alt dette
918 er gjort kan en velge
&quot;Commit changes
&quot; for å sende inn
919 endringen. Hvis den er lagt inn i
&quot;master
&quot;-grenen så er den
920 en offisiell del av spesifikasjonen med en gang. Hvis den derimot er
921 en endringsforespørsel, så legges den inn i
922 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/pulls
">listen
923 over forslag til endringer
</a
> som venter på korrekturlesing og
924 godkjenning.
</p
>
926 <p
>Større endringer (for eksempel samtidig endringer i flere filer)
927 gjøres enklest ved å hente ned en kopi av git-depoet lokalt og gjøre
928 endringene der før endringsforslaget sendes inn. Denne prosessen er
929 godt beskrivet i dokumentasjon fra github. Git-prosjektet som skal
930 &quot;klones
&quot; er
931 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/
">https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/
</a
>.
</p
>
933 <p
>For å registrere nye utfordringer (issues) eller kommentere på
934 eksisterende utfordringer benyttes nettsiden
935 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues
">https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues
</a
>.
936 I skrivende stund er det
48 åpne og
11 avsluttede utfordringer. Et
937 forslag til hva som bør være med når en beskriver en utfordring er
938 tilgjengelig som utfordring
939 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues/
14">#
14</a
>.
</p
>
941 <p
>For å bygge en PDF-utgave av spesifikasjonen så bruker jeg i dag en
942 Debian GNU/Linux-maskin med en rekke programpakker installert. Når
943 dette er på plass, så holder det å kjøre kommandoen
'make pdf html
' på
944 kommandolinjen, vente ca.
20 sekunder, før spesifikasjon.pdf og
945 spesifikasjon.html ligger klar på disken. Verktøyene for bygging av
946 PDF, HTML og ePub-utgave er også tilgjengelig på Windows og
949 <p
>Github bidrar med rammeverket. Men for at åpent vedlikehold av
950 spesifikasjonen skal fungere, så trengs det folk som bidrar med sin
951 tid og kunnskap. Arkivverket har sagt de skal bidra med innspill og
952 godkjenne forslag til endringer, men det blir størst suksess hvis alle
953 som bruker og lager systemer basert på Noark
5 Tjenestegrensesnitt
954 bidrar med sin kunnskap og kommer med forslag til forebedringer. Jeg
955 stiller. Blir du med?
</p
>
957 <p
>Det er viktig å legge til rette for åpen diskusjon blant alle
958 interesserte, som ikke krever at en må godta lange kontrakter med
959 vilkår for deltagelse. Inntil Arkivverket dukker opp på IRC har vi
960 laget en IRC-kanal der interesserte enkelt kan orientere seg og
961 diskutere tjenestegrensesnittet. Alle er velkommen til å ta turen
963 <a href=
"https://webchat.freenode.net/?channels=nikita
">#nikita
</a
>
964 (f.eks. via irc.freenode.net) for å møte likesinnede.
</p
>
966 <p
>Det holder dog ikke å ha en god spesifikasjon, hvis ikke de som tar
967 den i bruk gjør en like god jobb. For å automatisk teste om et konkret
968 tjenestegrensesnitt følger (min) forståelse av
969 spesifikasjonsdokumentet, har jeg skrevet et program som kobler seg
970 opp til et Noark
5v4 REST-tjeneste og tester alt den finner for å se
971 om det er i henhold til min tolkning av spesifikasjonen. Dette
972 verktøyet er tilgjengelig fra
973 <a href=
"https://github.com/petterreinholdtsen/noark5-tester
">https://github.com/petterreinholdtsen/noark5-tester
</a
>,
974 og brukes daglig mens vi utvikler Nikita for å sikre at vi ikke
975 introduserer nye feil. Hvis en skal sikre samvirke på tvers av ulike
976 systemer er det helt essensielt å kunne raskt og automatisk sjekke at
977 tjenestegrensesnittet oppfører seg som forventet. Jeg håper andre som
978 lager sin utgave av tjenestegrensesnittet vi bruke dette verktøyet,
979 slik at vi tidlig og raskt kan oppdage hvor vi har tolket
980 spesifikasjonen ulikt, og dermed få et godt grunnlag for å gjøre
981 spesifikasjonsteksten enda klarere og bedre.
</p
>
983 <p
>Dagens beskrivelse av Noark
5 Tjenestegrensesnitt er et svært godt
984 utgangspunkt for å gjøre virksomhetens arkiv til et dynamisk og
985 sentralt arbeidsverktøy i organisasjonen. Blir du med å gjøre den
986 enda bedre?
</p
>