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