]> pere.pagekite.me Git - homepage.git/blob - blog/archive/2019/03/index.html
Generated.
[homepage.git] / blog / archive / 2019 / 03 / index.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
4 <head>
5 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
6 <title>Petter Reinholdtsen: entries from March 2019</title>
7 <link rel="stylesheet" type="text/css" media="screen" href="http://people.skolelinux.org/pere/blog/style.css" />
8 <link rel="stylesheet" type="text/css" media="screen" href="http://people.skolelinux.org/pere/blog/vim.css" />
9 <link rel="alternate" title="RSS Feed" href="03.rss" type="application/rss+xml" />
10 </head>
11 <body>
12 <!-- XML FEED -->
13 <div class="title">
14 <h1>
15 <a href="http://people.skolelinux.org/pere/blog/">Petter Reinholdtsen</a>
16
17 </h1>
18
19 </div>
20
21
22 <h3>Entries from March 2019.</h3>
23
24 <div class="entry">
25 <div class="title">
26 <a href="http://people.skolelinux.org/pere/blog/PlantUML_for_text_based_UML_diagram_modelling___nice_free_software.html">PlantUML for text based UML diagram modelling - nice free software</a>
27 </div>
28 <div class="date">
29 25th March 2019
30 </div>
31 <div class="body">
32 <p>As part of my involvement with the
33 <a href="https://gitlab.com/OsloMet-ABI/nikita-noark5-core/">Nikita
34 Noark 5 core project</a>, I have been proposing improvements to the
35 API specification created by <a href="https://www.arkivverket.no/">The
36 National Archives of Norway</a> and helped migrating the text from a
37 version control system unfriendly binary format (docx) to Markdown in
38 git. Combined with the migration to a public git repository (on
39 github), this has made it possible for anyone to suggest improvement
40 to the text.</p>
41
42 <p>The specification is filled with UML diagrams. I believe the
43 original diagrams were modelled using Sparx Systems Enterprise
44 Architect, and exported as EMF files for import into docx. This
45 approach make it very hard to track changes using a version control
46 system. To improve the situation I have been looking for a good text
47 based UML format with associated command line free software tools on
48 Linux and Windows, to allow anyone to send in corrections to the UML
49 diagrams in the specification. The tool must be text based to work
50 with git, and command line to be able to run it automatically to
51 generate the diagram images. Finally, it must be free software to
52 allow anyone, even those that can not accept a non-free software
53 license, to contribute.</p>
54
55 <p>I did not know much about free software UML modelling tools when I
56 started. I have used dia and inkscape for simple modelling in the
57 past, but neither are available on Windows, as far as I could tell. I
58 came across a nice
59 <a href="https://modeling-languages.com/text-uml-tools-complete-list/">list
60 of text mode uml tools</a>, and tested out a few of the tools listed
61 there. <a href="http://plantuml.com/">The PlantUML tool</a> seemed
62 most promising. After verifying that the packages
63 <a href="https://tracker.debian.org/pkg/plantuml">is available in
64 Debian</a> and found <a href="https://github.com/plantuml/plantuml">its
65 Java source</a> under a GPL license on github, I set out to test if it
66 could represent the diagrams we needed, ie the ones currently in
67 <a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/">the
68 Noark 5 Tjenestegrensesnitt specification</a>. I am happy to report
69 that it could represent them, even thought it have a few warts here
70 and there.</p>
71
72 <p>After a few days of modelling I completed the task this weekend. A
73 temporary link to the complete set of diagrams (original and from
74 PlantUML) is available in
75 <a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues/76">the
76 github issue discussing the need for a text based UML format</a>, but
77 please note I lack a sensible tool to convert EMF files to PNGs, so
78 the "original" rendering is not as good as the original was in the
79 publised PDF.</p>
80
81 <p>Here is an example UML diagram, showing the core classes for
82 keeping metadata about archived documents:</p>
83
84 <pre>
85 @startuml
86 skinparam classAttributeIconSize 0
87
88 !include media/uml-class-arkivskaper.iuml
89 !include media/uml-class-arkiv.iuml
90 !include media/uml-class-klassifikasjonssystem.iuml
91 !include media/uml-class-klasse.iuml
92 !include media/uml-class-arkivdel.iuml
93 !include media/uml-class-mappe.iuml
94 !include media/uml-class-merknad.iuml
95 !include media/uml-class-registrering.iuml
96 !include media/uml-class-basisregistrering.iuml
97 !include media/uml-class-dokumentbeskrivelse.iuml
98 !include media/uml-class-dokumentobjekt.iuml
99 !include media/uml-class-konvertering.iuml
100 !include media/uml-datatype-elektronisksignatur.iuml
101
102 Arkivstruktur.Arkivskaper "+arkivskaper 1..*" <-o "+arkiv 0..*" Arkivstruktur.Arkiv
103 Arkivstruktur.Arkiv o--> "+underarkiv 0..*" Arkivstruktur.Arkiv
104 Arkivstruktur.Arkiv "+arkiv 1" o--> "+arkivdel 0..*" Arkivstruktur.Arkivdel
105 Arkivstruktur.Klassifikasjonssystem "+klassifikasjonssystem [0..1]" <--o "+arkivdel 1..*" Arkivstruktur.Arkivdel
106 Arkivstruktur.Klassifikasjonssystem "+klassifikasjonssystem [0..1]" o--> "+klasse 0..*" Arkivstruktur.Klasse
107 Arkivstruktur.Arkivdel "+arkivdel 0..1" o--> "+mappe 0..*" Arkivstruktur.Mappe
108 Arkivstruktur.Arkivdel "+arkivdel 0..1" o--> "+registrering 0..*" Arkivstruktur.Registrering
109 Arkivstruktur.Klasse "+klasse 0..1" o--> "+mappe 0..*" Arkivstruktur.Mappe
110 Arkivstruktur.Klasse "+klasse 0..1" o--> "+registrering 0..*" Arkivstruktur.Registrering
111 Arkivstruktur.Mappe --> "+undermappe 0..*" Arkivstruktur.Mappe
112 Arkivstruktur.Mappe "+mappe 0..1" o--> "+registrering 0..*" Arkivstruktur.Registrering
113 Arkivstruktur.Merknad "+merknad 0..*" <--* Arkivstruktur.Mappe
114 Arkivstruktur.Merknad "+merknad 0..*" <--* Arkivstruktur.Dokumentbeskrivelse
115 Arkivstruktur.Basisregistrering -|> Arkivstruktur.Registrering
116 Arkivstruktur.Merknad "+merknad 0..*" <--* Arkivstruktur.Basisregistrering
117 Arkivstruktur.Registrering "+registrering 1..*" o--> "+dokumentbeskrivelse 0..*" Arkivstruktur.Dokumentbeskrivelse
118 Arkivstruktur.Dokumentbeskrivelse "+dokumentbeskrivelse 1" o-> "+dokumentobjekt 0..*" Arkivstruktur.Dokumentobjekt
119 Arkivstruktur.Dokumentobjekt *-> "+konvertering 0..*" Arkivstruktur.Konvertering
120 Arkivstruktur.ElektroniskSignatur -[hidden]-> Arkivstruktur.Dokumentobjekt
121 @enduml
122 </pre>
123
124 <p><a href="http://plantuml.com/class-diagram">The format</a> is quite
125 compact, with little redundant information. The text expresses
126 entities and relations, and there is little layout related fluff. One
127 can reuse content by using include files, allowing for consistent
128 naming across several diagrams. The include files can be standalone
129 PlantUML too. Here is the content of
130 <tt>media/uml-class-arkivskaper.iuml<tt>:</p>
131
132 <pre>
133 @startuml
134 class Arkivstruktur.Arkivskaper <Arkivenhet> {
135 +arkivskaperID : string
136 +arkivskaperNavn : string
137 +beskrivelse : string [0..1]
138 }
139 @enduml
140 </pre>
141
142 <p>This is what the complete diagram for the PlantUML notation above
143 look like:</p>
144
145 <p><img width="80%" src="http://people.skolelinux.org/pere/blog/images/2019-03-25-noark5-plantuml-diagrameksempel.png"></p>
146
147 <p>A cool feature of PlantUML is that the generated PNG files include
148 the entire original source diagram as text. The source (with include
149 statements expanded) can be extracted using for example
150 <tt>exiftool</tt>. Another cool feature is that parts of the entities
151 can be hidden after inclusion. This allow to use include files with
152 all attributes listed, even for UML diagrams that should not list any
153 attributes.</p>
154
155 <p>The diagram also show some of the warts. Some times the layout
156 engine place text labels on top of each other, and some times it place
157 the class boxes too close to each other, not leaving room for the
158 labels on the relationship arrows. The former can be worked around by
159 placing extra newlines in the labes (ie "\n"). I did not do it here
160 to be able to demonstrate the issue. I have not found a good way
161 around the latter, so I normally try to reduce the problem by changing
162 from vertical to horizontal links to improve the layout.</p>
163
164 <p>All in all, I am quite happy with PlantUML, and very impressed with
165 how quickly its lead developer responds to questions. So far I got an
166 answer to my questions in a few hours when I send an email. I
167 definitely recommend looking at PlantUML if you need to make UML
168 diagrams. Note, PlantUML can draw a lot more than class relations.
169 Check out the documention for a complete list. :)</p>
170
171 <p>As usual, if you use Bitcoin and want to show your support of my
172 activities, please send Bitcoin donations to my address
173 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
174
175 </div>
176 <div class="tags">
177
178
179 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software</a>, <a href="http://people.skolelinux.org/pere/blog/tags/noark5">noark5</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>.
180
181
182 </div>
183 </div>
184 <div class="padding"></div>
185
186 <div class="entry">
187 <div class="title">
188 <a href="http://people.skolelinux.org/pere/blog/Release_0_3_of_free_software_archive_API_system_Nikita_announced.html">Release 0.3 of free software archive API system Nikita announced</a>
189 </div>
190 <div class="date">
191 24th March 2019
192 </div>
193 <div class="body">
194 <p>Yesterday, a new release of
195 <a href="https://gitlab.com/OsloMet-ABI/nikita-noark5-core/">Nikita
196 Noark 5 core project</a> was
197 <a href="https://lists.nuug.no/pipermail/nikita-noark/2019-March/000451.html">announced
198 on the project mailing list</a>. The free software solution is an
199 implementation of the Norwegian archive standard Noark 5 used by
200 government offices in Norway. These were the changes in version 0.3
201 since version 0.2.1 (from NEWS.md):</p>
202
203 <ul>
204 <li>Improved ClassificationSystem and Class behaviour.</li>
205 <li>Tidied up known inconsistencies between domain model and hateaos links.</li>
206 <li>Added experimental code for blockchain integration. </li>
207 <li>Make token expiry time configurable at upstart from properties file.</li>
208 <li>Continued work on OData search syntax.</li>
209 <li>Started work on pagination for entities, partly implemented for Saksmappe.</li>
210 <li>Finalise ClassifiedCode Metadata entity.</li>
211 <li>Implement mechanism to check if authentication token is still
212 valid. This allow the GUI to return a more sensible message to the
213 user if the token is expired.</li>
214 <li>Reintroduce browse.html page to allow user to browse JSON API using
215 hateoas links.</li>
216 <li>Fix bug in handling file/mappe sequence number. Year change was
217 not properly handled.</li>
218 <li>Update application yml files to be in sync with current development.</li>
219 <li>Stop 'converting' everything to PDF using libreoffice. Only
220 convert the file formats doc, ppt, xls, docx, pptx, xlsx, odt, odp
221 and ods.</li>
222 <li>Continued code style fixing, making code more readable.</li>
223 <li>Minor bug fixes.</li>
224
225 </ul>
226
227 <p>If free and open standardized archiving API sound interesting to
228 you, please contact us on IRC
229 (<a href="irc://irc.freenode.net/%23nikita">#nikita on
230 irc.freenode.net</a>) or email
231 (<a href="https://lists.nuug.no/mailman/listinfo/nikita-noark">nikita-noark
232 mailing list</a>).</p>
233
234 <p>As usual, if you use Bitcoin and want to show your support of my
235 activities, please send Bitcoin donations to my address
236 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
237
238 </div>
239 <div class="tags">
240
241
242 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/noark5">noark5</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>.
243
244
245 </div>
246 </div>
247 <div class="padding"></div>
248
249 <div class="entry">
250 <div class="title">
251 <a href="http://people.skolelinux.org/pere/blog/_pen_og_gjennomsiktig_vedlikehold_av_spesifikasjonen_for_Noark_5_Tjenestegrensesnitt.html">Ã…pen og gjennomsiktig vedlikehold av spesifikasjonen for Noark 5 Tjenestegrensesnitt</a>
252 </div>
253 <div class="date">
254 11th March 2019
255 </div>
256 <div class="body">
257 <p>Et virksomhetsarkiv for meg, er et arbeidsverktøy der en enkelt kan
258 finne informasjonen en trenger når en trenger det, og der
259 virksomhetens samlede kunnskap er tilgjengelig. Det må være greit å
260 finne frem i, litt som en bibliotek. Men der et bibliotek gjerne tar
261 vare på offentliggjort informasjon som er tilgjengelig flere steder,
262 tar et arkiv vare på virksomhetsintern og til tider personlig
263 informasjon som ofte kun er tilgjengelig fra et sted.</p>
264
265 <p>Jeg mistenker den eneste måten å sikre at arkivet inneholder den
266 samlede kunnskapen i en virksomhet, er å bruke det som virksomhetens
267 kunnskapslager. Det innebærer å automatisk kopiere (brev, epost,
268 SMS-er etc) inn i arkivet når de sendes og mottas, og der filtrere
269 vekk det en ikke vil ta vare på, og legge på metadata om det som er
270 samlet inn for enkel gjenfinning. En slik bruk av arkivet innebærer at
271 arkivet er en del av daglig virke, ikke at det er siste hvilested for
272 informasjon ingen lenger har daglig bruk for. For å kunne være en del
273 av det daglige virket må arkivet enkelt kunne integreres med andre
274 systemer. I disse dager betyr det å tilby arkivet som en
275 nett-tjeneste til hele virksomheten, tilgjengelig for både mennesker
276 og datamaskiner. Det betyr i tur å både tilby nettsider og et
277 maskinlesbart grensesnitt.</p>
278
279 <p>For noen år siden erkjente visjonære arkivarer fordelene med et
280 standardisert maskinlesbart grensesnitt til organisasjonens arkiv. De
281 gikk igang med å lage noe de kalte
282 <a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/">Noark
283 5 Tjenestegrensesnitt</a>. Gjort riktig, så åpner slike maskinlesbare
284 grensesnitt for samvirke på tvers av uavhengige programvaresystemer.
285 Gjort feil, vil det blokkere for samvirke og bidra til
286 leverandørinnlåsing. For å gjøre det riktig så må grensesnittet være
287 klart og entydig beskrevet i en spesifikasjon som gjør at
288 spesifikasjonen tolkes på samme måte uavhengig av hvem som leser den,
289 og uavhengig av hvem som tar den i bruk.</p>
290
291 <p>For å oppnå klare og entydige beskrivelser i en spesifikasjon, som
292 trengs for å kunne få en fri og åpen standard (se
293 <a href="http://people.skolelinux.org/pere/blog/Fri_og__pen_standard__slik_Digistan_ser_det.html">Digistan-definisjon</a>),
294 så trengs det en åpen og gjennomsiktig inngangsport med lav terskel,
295 der de som forsøker å ta den i bruk enkelt kan få inn korreksjoner,
296 etterlyse klargjøringer og rapportere uklarheter i spesifikasjonen.
297 En trenger også automatiserte datasystemer som måler og sjekker at et
298 gitt grensesnitt fungerer i tråd med spesifikasjonen.</p>
299
300 <p>For Noark 5 Tjenestegrensesnittet er det nå etablert en slik åpen
301 og gjennomsiktig inngangsport på prosjekttjenesten github. Denne
302 inngangsporten består først og fremst av en åpen portal som lar enhver
303 se hva som er gjort av endringer i spesifikasjonsteksten over tid, men
304 det hører også med et åpent &quot;diskusjonsforum&quot; der en kan
305 komme med endringsforslag og forespørsler om klargjøringer. Alle
306 registrerte brukere på github kan bidra med innspill til disse
307 henvendelsene.</p>
308
309 <p>I samarbeide med Arkivverket har jeg fått opprettet et git-depot
310 med spesifikasjonsteksten for tjenestegrensesnittet, der det er lagt
311 inn historikk for endringer i teksten de siste årene, samt lagt inn
312 endringsforslag og forespørsler om klargjøring av teksten. Bakgrunnen
313 for at jeg bidro med dette er at jeg er involvert i
314 <a href="https://gitlab.com/OsloMet-ABI/nikita-noark5-core">Nikita-prosjektet</a>,
315 som lager en fri programvare-utgave av Noark 5 Tjenestegrensesnitt.
316 Det er først når en forsøker å lage noe i tråd med en spesifikasjon at
317 en oppdager hvor mange detaljer som må beskrives i spesifikasjonen for
318 å sikre samhandling.</p>
319
320 <p>Spesifikasjonen vedlikeholdes i et rent tekstformat, for å ha et
321 format egnet for versjonskontroll via versjontrollsystemet git. Dette
322 gjør det både enkelt å se konkret hvilke endringer som er gjort når,
323 samt gjør det praktisk mulig for enhver med github-konto å sende inn
324 endringsforslag med formuleringer til spesifikasjonsteksten. Dette
325 tekstformatet vises frem som nettsider på github, slik at en ikke
326 trenger spesielle verktøy for å se på siste utgave av
327 spesifikasjonen.</p>
328
329 <p>Fra dette rene tekstformatet kan det så avledes ulike formater, som
330 HTML for websider, PDF for utskrift på papir og ePub for lesing med
331 ebokleser. Avlednings-systemet (byggesystemet) bruker i dag
332 verktøyene pandoc, latex, docbook-xsl og GNU make til
333 transformasjonen. Tekstformatet som brukes dag er
334 <a href="https://www.markdownguide.org/">Markdown</a>, men det vurderes
335 å
336 <a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues/9">endre
337 til formatet RST</a> i fremtiden for bedre styring av utseende på
338 PDF-utgaven.</p>
339
340 <p>Versjonskontrollsystemet git ble valgt da det er både fleksibelt,
341 avansert og enkelt å ta i bruk. Github ble valgt (foran f.eks. Gitlab
342 som vi bruker i Nikita), da Arkivverket allerede hadde tatt i bruk
343 Github i andre sammenhenger.</p>
344
345 <p>Enkle endringer i teksten kan gjøres av priviligerte brukere
346 direkte i nettsidene til Github, ved å finne aktuell fil som skal
347 endres (f.eks. kapitler/03-konformitet.md), klikke på den lille
348 bokstaven i høyre hjørne over teksten. Det kommer opp en nettside der
349 en kan endre teksten slik en ønsker. Når en er fornøyd med endringen
350 så må endringen &quot;sjekkes inn&quot; i historikken. Det gjøres ved
351 å gi en kort beskrivelse av endringen (beskriv helst hvorfor endringen
352 trengs, ikke hva som er endret), under overskriften &quot;Commit
353 changes&quot;. En kan og bør legge inn en lengre forklaring i det
354 større skrivefeltet, før en velger om endringen skal sendes direkte
355 til 'master'-grenen (dvs. autorativ utgave av spesifikasjonen) eller
356 om en skal lage en ny gren for denne endringen og opprette en
357 endringsforespørsel (aka &quot;Pull Request&quot;/PR). Når alt dette
358 er gjort kan en velge &quot;Commit changes&quot; for å sende inn
359 endringen. Hvis den er lagt inn i &quot;master&quot;-grenen så er den
360 en offisiell del av spesifikasjonen med en gang. Hvis den derimot er
361 en endringsforespørsel, så legges den inn i
362 <a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/pulls">listen
363 over forslag til endringer</a> som venter på korrekturlesing og
364 godkjenning.</p>
365
366 <p>Større endringer (for eksempel samtidig endringer i flere filer)
367 gjøres enklest ved å hente ned en kopi av git-depoet lokalt og gjøre
368 endringene der før endringsforslaget sendes inn. Denne prosessen er
369 godt beskrivet i dokumentasjon fra github. Git-prosjektet som skal
370 &quot;klones&quot; er
371 <a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/">https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/</a>.</p>
372
373 <p>For å registrere nye utfordringer (issues) eller kommentere på
374 eksisterende utfordringer benyttes nettsiden
375 <a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues">https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues</a>.
376 I skrivende stund er det 48 åpne og 11 avsluttede utfordringer. Et
377 forslag til hva som bør være med når en beskriver en utfordring er
378 tilgjengelig som utfordring
379 <a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues/14">#14</a>.</p>
380
381 <p>For å bygge en PDF-utgave av spesifikasjonen så bruker jeg i dag en
382 Debian GNU/Linux-maskin med en rekke programpakker installert. NÃ¥r
383 dette er på plass, så holder det å kjøre kommandoen 'make pdf html' på
384 kommandolinjen, vente ca. 20 sekunder, før spesifikasjon.pdf og
385 spesifikasjon.html ligger klar på disken. Verktøyene for bygging av
386 PDF, HTML og ePub-utgave er også tilgjengelig på Windows og
387 MacOSX.</p>
388
389 <p>Github bidrar med rammeverket. Men for at åpent vedlikehold av
390 spesifikasjonen skal fungere, så trengs det folk som bidrar med sin
391 tid og kunnskap. Arkivverket har sagt de skal bidra med innspill og
392 godkjenne forslag til endringer, men det blir størst suksess hvis alle
393 som bruker og lager systemer basert på Noark 5 Tjenestegrensesnitt
394 bidrar med sin kunnskap og kommer med forslag til forebedringer. Jeg
395 stiller. Blir du med?</p>
396
397 <p>Det er viktig å legge til rette for åpen diskusjon blant alle
398 interesserte, som ikke krever at en må godta lange kontrakter med
399 vilkår for deltagelse. Inntil Arkivverket dukker opp på IRC har vi
400 laget en IRC-kanal der interesserte enkelt kan orientere seg og
401 diskutere tjenestegrensesnittet. Alle er velkommen til å ta turen
402 innom
403 <a href="https://webchat.freenode.net/?channels=nikita">#nikita</a>
404 (f.eks. via irc.freenode.net) for å møte likesinnede.</p>
405
406 <p>Det holder dog ikke å ha en god spesifikasjon, hvis ikke de som tar
407 den i bruk gjør en like god jobb. For å automatisk teste om et konkret
408 tjenestegrensesnitt følger (min) forståelse av
409 spesifikasjonsdokumentet, har jeg skrevet et program som kobler seg
410 opp til et Noark 5v4 REST-tjeneste og tester alt den finner for å se
411 om det er i henhold til min tolkning av spesifikasjonen. Dette
412 verktøyet er tilgjengelig fra
413 <a href="https://github.com/petterreinholdtsen/noark5-tester">https://github.com/petterreinholdtsen/noark5-tester</a>,
414 og brukes daglig mens vi utvikler Nikita for å sikre at vi ikke
415 introduserer nye feil. Hvis en skal sikre samvirke på tvers av ulike
416 systemer er det helt essensielt å kunne raskt og automatisk sjekke at
417 tjenestegrensesnittet oppfører seg som forventet. Jeg håper andre som
418 lager sin utgave av tjenestegrensesnittet vi bruke dette verktøyet,
419 slik at vi tidlig og raskt kan oppdage hvor vi har tolket
420 spesifikasjonen ulikt, og dermed få et godt grunnlag for å gjøre
421 spesifikasjonsteksten enda klarere og bedre.</p>
422
423 <p>Dagens beskrivelse av Noark 5 Tjenestegrensesnitt er et svært godt
424 utgangspunkt for å gjøre virksomhetens arkiv til et dynamisk og
425 sentralt arbeidsverktøy i organisasjonen. Blir du med å gjøre den
426 enda bedre?</p>
427
428 </div>
429 <div class="tags">
430
431
432 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan</a>, <a href="http://people.skolelinux.org/pere/blog/tags/noark5">noark5</a>, <a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>.
433
434
435 </div>
436 </div>
437 <div class="padding"></div>
438
439 <p style="text-align: right;"><a href="03.rss"><img src="http://people.skolelinux.org/pere/blog/xml.gif" alt="RSS Feed" width="36" height="14" /></a></p>
440 <div id="sidebar">
441
442
443
444 <h2>Archive</h2>
445 <ul>
446
447 <li>2019
448 <ul>
449
450 <li><a href="http://people.skolelinux.org/pere/blog/archive/2019/01/">January (4)</a></li>
451
452 <li><a href="http://people.skolelinux.org/pere/blog/archive/2019/02/">February (3)</a></li>
453
454 <li><a href="http://people.skolelinux.org/pere/blog/archive/2019/03/">March (3)</a></li>
455
456 <li><a href="http://people.skolelinux.org/pere/blog/archive/2019/05/">May (1)</a></li>
457
458 </ul></li>
459
460 <li>2018
461 <ul>
462
463 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/01/">January (1)</a></li>
464
465 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/02/">February (5)</a></li>
466
467 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/03/">March (5)</a></li>
468
469 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/04/">April (3)</a></li>
470
471 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/06/">June (2)</a></li>
472
473 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/07/">July (5)</a></li>
474
475 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/08/">August (3)</a></li>
476
477 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/09/">September (3)</a></li>
478
479 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/10/">October (5)</a></li>
480
481 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/11/">November (2)</a></li>
482
483 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/12/">December (4)</a></li>
484
485 </ul></li>
486
487 <li>2017
488 <ul>
489
490 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/01/">January (4)</a></li>
491
492 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/02/">February (3)</a></li>
493
494 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/03/">March (5)</a></li>
495
496 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/04/">April (2)</a></li>
497
498 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/06/">June (5)</a></li>
499
500 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/07/">July (1)</a></li>
501
502 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/08/">August (1)</a></li>
503
504 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/09/">September (3)</a></li>
505
506 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/10/">October (5)</a></li>
507
508 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/11/">November (3)</a></li>
509
510 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/12/">December (4)</a></li>
511
512 </ul></li>
513
514 <li>2016
515 <ul>
516
517 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/01/">January (3)</a></li>
518
519 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/02/">February (2)</a></li>
520
521 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/03/">March (3)</a></li>
522
523 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/04/">April (8)</a></li>
524
525 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/05/">May (8)</a></li>
526
527 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/06/">June (2)</a></li>
528
529 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/07/">July (2)</a></li>
530
531 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/08/">August (5)</a></li>
532
533 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/09/">September (2)</a></li>
534
535 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/10/">October (3)</a></li>
536
537 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/11/">November (8)</a></li>
538
539 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/12/">December (5)</a></li>
540
541 </ul></li>
542
543 <li>2015
544 <ul>
545
546 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/01/">January (7)</a></li>
547
548 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/02/">February (6)</a></li>
549
550 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/03/">March (1)</a></li>
551
552 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/04/">April (4)</a></li>
553
554 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/05/">May (3)</a></li>
555
556 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/06/">June (4)</a></li>
557
558 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/07/">July (6)</a></li>
559
560 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/08/">August (2)</a></li>
561
562 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/09/">September (2)</a></li>
563
564 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/10/">October (9)</a></li>
565
566 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/11/">November (6)</a></li>
567
568 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/12/">December (3)</a></li>
569
570 </ul></li>
571
572 <li>2014
573 <ul>
574
575 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/01/">January (2)</a></li>
576
577 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/02/">February (3)</a></li>
578
579 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/03/">March (8)</a></li>
580
581 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/04/">April (7)</a></li>
582
583 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/05/">May (1)</a></li>
584
585 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/06/">June (2)</a></li>
586
587 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/07/">July (2)</a></li>
588
589 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/08/">August (2)</a></li>
590
591 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/09/">September (5)</a></li>
592
593 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/10/">October (6)</a></li>
594
595 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/11/">November (3)</a></li>
596
597 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/12/">December (5)</a></li>
598
599 </ul></li>
600
601 <li>2013
602 <ul>
603
604 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/01/">January (11)</a></li>
605
606 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/02/">February (9)</a></li>
607
608 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/03/">March (9)</a></li>
609
610 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/04/">April (6)</a></li>
611
612 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/05/">May (9)</a></li>
613
614 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/06/">June (10)</a></li>
615
616 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/07/">July (7)</a></li>
617
618 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/08/">August (3)</a></li>
619
620 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/09/">September (5)</a></li>
621
622 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/10/">October (7)</a></li>
623
624 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/11/">November (9)</a></li>
625
626 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/12/">December (3)</a></li>
627
628 </ul></li>
629
630 <li>2012
631 <ul>
632
633 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/01/">January (7)</a></li>
634
635 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/02/">February (10)</a></li>
636
637 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/03/">March (17)</a></li>
638
639 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/04/">April (12)</a></li>
640
641 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/05/">May (12)</a></li>
642
643 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/06/">June (20)</a></li>
644
645 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/07/">July (17)</a></li>
646
647 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/08/">August (6)</a></li>
648
649 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/09/">September (9)</a></li>
650
651 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/10/">October (17)</a></li>
652
653 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/11/">November (10)</a></li>
654
655 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/12/">December (7)</a></li>
656
657 </ul></li>
658
659 <li>2011
660 <ul>
661
662 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/01/">January (16)</a></li>
663
664 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/02/">February (6)</a></li>
665
666 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/03/">March (6)</a></li>
667
668 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/04/">April (7)</a></li>
669
670 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/05/">May (3)</a></li>
671
672 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/06/">June (2)</a></li>
673
674 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/07/">July (7)</a></li>
675
676 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/08/">August (6)</a></li>
677
678 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/09/">September (4)</a></li>
679
680 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/10/">October (2)</a></li>
681
682 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/11/">November (3)</a></li>
683
684 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/12/">December (1)</a></li>
685
686 </ul></li>
687
688 <li>2010
689 <ul>
690
691 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/01/">January (2)</a></li>
692
693 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/02/">February (1)</a></li>
694
695 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/03/">March (3)</a></li>
696
697 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/04/">April (3)</a></li>
698
699 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/05/">May (9)</a></li>
700
701 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/06/">June (14)</a></li>
702
703 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/07/">July (12)</a></li>
704
705 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/08/">August (13)</a></li>
706
707 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/09/">September (7)</a></li>
708
709 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/10/">October (9)</a></li>
710
711 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/11/">November (13)</a></li>
712
713 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/12/">December (12)</a></li>
714
715 </ul></li>
716
717 <li>2009
718 <ul>
719
720 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/01/">January (8)</a></li>
721
722 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/02/">February (8)</a></li>
723
724 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/03/">March (12)</a></li>
725
726 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/04/">April (10)</a></li>
727
728 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/05/">May (9)</a></li>
729
730 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/06/">June (3)</a></li>
731
732 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/07/">July (4)</a></li>
733
734 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/08/">August (3)</a></li>
735
736 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/09/">September (1)</a></li>
737
738 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/10/">October (2)</a></li>
739
740 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/11/">November (3)</a></li>
741
742 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/12/">December (3)</a></li>
743
744 </ul></li>
745
746 <li>2008
747 <ul>
748
749 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/11/">November (5)</a></li>
750
751 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/12/">December (7)</a></li>
752
753 </ul></li>
754
755 </ul>
756
757
758
759 <h2>Tags</h2>
760 <ul>
761
762 <li><a href="http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (16)</a></li>
763
764 <li><a href="http://people.skolelinux.org/pere/blog/tags/amiga">amiga (1)</a></li>
765
766 <li><a href="http://people.skolelinux.org/pere/blog/tags/aros">aros (1)</a></li>
767
768 <li><a href="http://people.skolelinux.org/pere/blog/tags/bankid">bankid (4)</a></li>
769
770 <li><a href="http://people.skolelinux.org/pere/blog/tags/betalkontant">betalkontant (8)</a></li>
771
772 <li><a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (11)</a></li>
773
774 <li><a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (17)</a></li>
775
776 <li><a href="http://people.skolelinux.org/pere/blog/tags/bsa">bsa (2)</a></li>
777
778 <li><a href="http://people.skolelinux.org/pere/blog/tags/chrpath">chrpath (2)</a></li>
779
780 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian">debian (167)</a></li>
781
782 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (158)</a></li>
783
784 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian-handbook">debian-handbook (4)</a></li>
785
786 <li><a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan (11)</a></li>
787
788 <li><a href="http://people.skolelinux.org/pere/blog/tags/dld">dld (17)</a></li>
789
790 <li><a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook (25)</a></li>
791
792 <li><a href="http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
793
794 <li><a href="http://people.skolelinux.org/pere/blog/tags/english">english (401)</a></li>
795
796 <li><a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (23)</a></li>
797
798 <li><a href="http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (14)</a></li>
799
800 <li><a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (33)</a></li>
801
802 <li><a href="http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox (9)</a></li>
803
804 <li><a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (20)</a></li>
805
806 <li><a href="http://people.skolelinux.org/pere/blog/tags/h264">h264 (20)</a></li>
807
808 <li><a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju (42)</a></li>
809
810 <li><a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram (16)</a></li>
811
812 <li><a href="http://people.skolelinux.org/pere/blog/tags/kart">kart (21)</a></li>
813
814 <li><a href="http://people.skolelinux.org/pere/blog/tags/kodi">kodi (4)</a></li>
815
816 <li><a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap (9)</a></li>
817
818 <li><a href="http://people.skolelinux.org/pere/blog/tags/lego">lego (4)</a></li>
819
820 <li><a href="http://people.skolelinux.org/pere/blog/tags/lenker">lenker (8)</a></li>
821
822 <li><a href="http://people.skolelinux.org/pere/blog/tags/lsdvd">lsdvd (2)</a></li>
823
824 <li><a href="http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (1)</a></li>
825
826 <li><a href="http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network (8)</a></li>
827
828 <li><a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (42)</a></li>
829
830 <li><a href="http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software (12)</a></li>
831
832 <li><a href="http://people.skolelinux.org/pere/blog/tags/noark5">noark5 (13)</a></li>
833
834 <li><a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk (305)</a></li>
835
836 <li><a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug (194)</a></li>
837
838 <li><a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (36)</a></li>
839
840 <li><a href="http://people.skolelinux.org/pere/blog/tags/open311">open311 (2)</a></li>
841
842 <li><a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (73)</a></li>
843
844 <li><a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern (108)</a></li>
845
846 <li><a href="http://people.skolelinux.org/pere/blog/tags/raid">raid (2)</a></li>
847
848 <li><a href="http://people.skolelinux.org/pere/blog/tags/reactos">reactos (1)</a></li>
849
850 <li><a href="http://people.skolelinux.org/pere/blog/tags/reprap">reprap (11)</a></li>
851
852 <li><a href="http://people.skolelinux.org/pere/blog/tags/rfid">rfid (3)</a></li>
853
854 <li><a href="http://people.skolelinux.org/pere/blog/tags/robot">robot (11)</a></li>
855
856 <li><a href="http://people.skolelinux.org/pere/blog/tags/rss">rss (1)</a></li>
857
858 <li><a href="http://people.skolelinux.org/pere/blog/tags/ruter">ruter (7)</a></li>
859
860 <li><a href="http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (2)</a></li>
861
862 <li><a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (55)</a></li>
863
864 <li><a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (4)</a></li>
865
866 <li><a href="http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (5)</a></li>
867
868 <li><a href="http://people.skolelinux.org/pere/blog/tags/standard">standard (62)</a></li>
869
870 <li><a href="http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (6)</a></li>
871
872 <li><a href="http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (12)</a></li>
873
874 <li><a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (55)</a></li>
875
876 <li><a href="http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (4)</a></li>
877
878 <li><a href="http://people.skolelinux.org/pere/blog/tags/usenix">usenix (2)</a></li>
879
880 <li><a href="http://people.skolelinux.org/pere/blog/tags/valg">valg (9)</a></li>
881
882 <li><a href="http://people.skolelinux.org/pere/blog/tags/verkidetfri">verkidetfri (15)</a></li>
883
884 <li><a href="http://people.skolelinux.org/pere/blog/tags/video">video (73)</a></li>
885
886 <li><a href="http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (4)</a></li>
887
888 <li><a href="http://people.skolelinux.org/pere/blog/tags/web">web (42)</a></li>
889
890 </ul>
891
892
893 </div>
894 <p style="text-align: right">
895 Created by <a href="http://steve.org.uk/Software/chronicle">Chronicle v4.6</a>
896 </p>
897
898 </body>
899 </html>