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