]> pere.pagekite.me Git - homepage.git/blob - blog/archive/2019/03/03.rss
Generated.
[homepage.git] / blog / archive / 2019 / 03 / 03.rss
1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <rss version='2.0' xmlns:lj='http://www.livejournal.org/rss/lj/1.0/'>
3 <channel>
4 <title>Petter Reinholdtsen - Entries from March 2019</title>
5 <description>Entries from March 2019</description>
6 <link>http://www.hungry.com/~pere/blog/</link>
7
8
9 <item>
10 <title>PlantUML for text based UML diagram modelling - nice free software</title>
11 <link>http://www.hungry.com/~pere/blog/PlantUML_for_text_based_UML_diagram_modelling___nice_free_software.html</link>
12 <guid isPermaLink="true">http://www.hungry.com/~pere/blog/PlantUML_for_text_based_UML_diagram_modelling___nice_free_software.html</guid>
13 <pubDate>Mon, 25 Mar 2019 09:35:00 +0100</pubDate>
14 <description>&lt;p&gt;As part of my involvement with the
15 &lt;a href=&quot;https://gitlab.com/OsloMet-ABI/nikita-noark5-core/&quot;&gt;Nikita
16 Noark 5 core project&lt;/a&gt;, I have been proposing improvements to the
17 API specification created by &lt;a href=&quot;https://www.arkivverket.no/&quot;&gt;The
18 National Archives of Norway&lt;/a&gt; and helped migrating the text from a
19 version control system unfriendly binary format (docx) to Markdown in
20 git. Combined with the migration to a public git repository (on
21 github), this has made it possible for anyone to suggest improvement
22 to the text.&lt;/p&gt;
23
24 &lt;p&gt;The specification is filled with UML diagrams. I believe the
25 original diagrams were modelled using Sparx Systems Enterprise
26 Architect, and exported as EMF files for import into docx. This
27 approach make it very hard to track changes using a version control
28 system. To improve the situation I have been looking for a good text
29 based UML format with associated command line free software tools on
30 Linux and Windows, to allow anyone to send in corrections to the UML
31 diagrams in the specification. The tool must be text based to work
32 with git, and command line to be able to run it automatically to
33 generate the diagram images. Finally, it must be free software to
34 allow anyone, even those that can not accept a non-free software
35 license, to contribute.&lt;/p&gt;
36
37 &lt;p&gt;I did not know much about free software UML modelling tools when I
38 started. I have used dia and inkscape for simple modelling in the
39 past, but neither are available on Windows, as far as I could tell. I
40 came across a nice
41 &lt;a href=&quot;https://modeling-languages.com/text-uml-tools-complete-list/&quot;&gt;list
42 of text mode uml tools&lt;/a&gt;, and tested out a few of the tools listed
43 there. &lt;a href=&quot;http://plantuml.com/&quot;&gt;The PlantUML tool&lt;/a&gt; seemed
44 most promising. After verifying that the packages
45 &lt;a href=&quot;https://tracker.debian.org/pkg/plantuml&quot;&gt;is available in
46 Debian&lt;/a&gt; and found &lt;a href=&quot;https://github.com/plantuml/plantuml&quot;&gt;its
47 Java source&lt;/a&gt; under a GPL license on github, I set out to test if it
48 could represent the diagrams we needed, ie the ones currently in
49 &lt;a href=&quot;https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/&quot;&gt;the
50 Noark 5 Tjenestegrensesnitt specification&lt;/a&gt;. I am happy to report
51 that it could represent them, even thought it have a few warts here
52 and there.&lt;/p&gt;
53
54 &lt;p&gt;After a few days of modelling I completed the task this weekend. A
55 temporary link to the complete set of diagrams (original and from
56 PlantUML) is available in
57 &lt;a href=&quot;https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues/76&quot;&gt;the
58 github issue discussing the need for a text based UML format&lt;/a&gt;, but
59 please note I lack a sensible tool to convert EMF files to PNGs, so
60 the &quot;original&quot; rendering is not as good as the original was in the
61 publised PDF.&lt;/p&gt;
62
63 &lt;p&gt;Here is an example UML diagram, showing the core classes for
64 keeping metadata about archived documents:&lt;/p&gt;
65
66 &lt;pre&gt;
67 @startuml
68 skinparam classAttributeIconSize 0
69
70 !include media/uml-class-arkivskaper.iuml
71 !include media/uml-class-arkiv.iuml
72 !include media/uml-class-klassifikasjonssystem.iuml
73 !include media/uml-class-klasse.iuml
74 !include media/uml-class-arkivdel.iuml
75 !include media/uml-class-mappe.iuml
76 !include media/uml-class-merknad.iuml
77 !include media/uml-class-registrering.iuml
78 !include media/uml-class-basisregistrering.iuml
79 !include media/uml-class-dokumentbeskrivelse.iuml
80 !include media/uml-class-dokumentobjekt.iuml
81 !include media/uml-class-konvertering.iuml
82 !include media/uml-datatype-elektronisksignatur.iuml
83
84 Arkivstruktur.Arkivskaper &quot;+arkivskaper 1..*&quot; &lt;-o &quot;+arkiv 0..*&quot; Arkivstruktur.Arkiv
85 Arkivstruktur.Arkiv o--&gt; &quot;+underarkiv 0..*&quot; Arkivstruktur.Arkiv
86 Arkivstruktur.Arkiv &quot;+arkiv 1&quot; o--&gt; &quot;+arkivdel 0..*&quot; Arkivstruktur.Arkivdel
87 Arkivstruktur.Klassifikasjonssystem &quot;+klassifikasjonssystem [0..1]&quot; &lt;--o &quot;+arkivdel 1..*&quot; Arkivstruktur.Arkivdel
88 Arkivstruktur.Klassifikasjonssystem &quot;+klassifikasjonssystem [0..1]&quot; o--&gt; &quot;+klasse 0..*&quot; Arkivstruktur.Klasse
89 Arkivstruktur.Arkivdel &quot;+arkivdel 0..1&quot; o--&gt; &quot;+mappe 0..*&quot; Arkivstruktur.Mappe
90 Arkivstruktur.Arkivdel &quot;+arkivdel 0..1&quot; o--&gt; &quot;+registrering 0..*&quot; Arkivstruktur.Registrering
91 Arkivstruktur.Klasse &quot;+klasse 0..1&quot; o--&gt; &quot;+mappe 0..*&quot; Arkivstruktur.Mappe
92 Arkivstruktur.Klasse &quot;+klasse 0..1&quot; o--&gt; &quot;+registrering 0..*&quot; Arkivstruktur.Registrering
93 Arkivstruktur.Mappe --&gt; &quot;+undermappe 0..*&quot; Arkivstruktur.Mappe
94 Arkivstruktur.Mappe &quot;+mappe 0..1&quot; o--&gt; &quot;+registrering 0..*&quot; Arkivstruktur.Registrering
95 Arkivstruktur.Merknad &quot;+merknad 0..*&quot; &lt;--* Arkivstruktur.Mappe
96 Arkivstruktur.Merknad &quot;+merknad 0..*&quot; &lt;--* Arkivstruktur.Dokumentbeskrivelse
97 Arkivstruktur.Basisregistrering -|&gt; Arkivstruktur.Registrering
98 Arkivstruktur.Merknad &quot;+merknad 0..*&quot; &lt;--* Arkivstruktur.Basisregistrering
99 Arkivstruktur.Registrering &quot;+registrering 1..*&quot; o--&gt; &quot;+dokumentbeskrivelse 0..*&quot; Arkivstruktur.Dokumentbeskrivelse
100 Arkivstruktur.Dokumentbeskrivelse &quot;+dokumentbeskrivelse 1&quot; o-&gt; &quot;+dokumentobjekt 0..*&quot; Arkivstruktur.Dokumentobjekt
101 Arkivstruktur.Dokumentobjekt *-&gt; &quot;+konvertering 0..*&quot; Arkivstruktur.Konvertering
102 Arkivstruktur.ElektroniskSignatur -[hidden]-&gt; Arkivstruktur.Dokumentobjekt
103 @enduml
104 &lt;/pre&gt;
105
106 &lt;p&gt;&lt;a href=&quot;http://plantuml.com/class-diagram&quot;&gt;The format&lt;/a&gt; is quite
107 compact, with little redundant information. The text expresses
108 entities and relations, and there is little layout related fluff. One
109 can reuse content by using include files, allowing for consistent
110 naming across several diagrams. The include files can be standalone
111 PlantUML too. Here is the content of
112 &lt;tt&gt;media/uml-class-arkivskaper.iuml&lt;/tt&gt;:&lt;/p&gt;
113
114 &lt;pre&gt;
115 @startuml
116 class Arkivstruktur.Arkivskaper &lt;Arkivenhet&gt; {
117 +arkivskaperID : string
118 +arkivskaperNavn : string
119 +beskrivelse : string [0..1]
120 }
121 @enduml
122 &lt;/pre&gt;
123
124 &lt;p&gt;This is what the complete diagram for the PlantUML notation above
125 look like:&lt;/p&gt;
126
127 &lt;p&gt;&lt;img width=&quot;80%&quot; src=&quot;http://www.hungry.com/~pere/blog/images/2019-03-25-noark5-plantuml-diagrameksempel.png&quot;&gt;&lt;/p&gt;
128
129 &lt;p&gt;A cool feature of PlantUML is that the generated PNG files include
130 the entire original source diagram as text. The source (with include
131 statements expanded) can be extracted using for example
132 &lt;tt&gt;exiftool&lt;/tt&gt;. Another cool feature is that parts of the entities
133 can be hidden after inclusion. This allow to use include files with
134 all attributes listed, even for UML diagrams that should not list any
135 attributes.&lt;/p&gt;
136
137 &lt;p&gt;The diagram also show some of the warts. Some times the layout
138 engine place text labels on top of each other, and some times it place
139 the class boxes too close to each other, not leaving room for the
140 labels on the relationship arrows. The former can be worked around by
141 placing extra newlines in the labes (ie &quot;\n&quot;). I did not do it here
142 to be able to demonstrate the issue. I have not found a good way
143 around the latter, so I normally try to reduce the problem by changing
144 from vertical to horizontal links to improve the layout.&lt;/p&gt;
145
146 &lt;p&gt;All in all, I am quite happy with PlantUML, and very impressed with
147 how quickly its lead developer responds to questions. So far I got an
148 answer to my questions in a few hours when I send an email. I
149 definitely recommend looking at PlantUML if you need to make UML
150 diagrams. Note, PlantUML can draw a lot more than class relations.
151 Check out the documention for a complete list. :)&lt;/p&gt;
152
153 &lt;p&gt;As usual, if you use Bitcoin and want to show your support of my
154 activities, please send Bitcoin donations to my address
155 &lt;b&gt;&lt;a href=&quot;bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&quot;&gt;15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&lt;/a&gt;&lt;/b&gt;.&lt;/p&gt;
156 </description>
157 </item>
158
159 <item>
160 <title>Release 0.3 of free software archive API system Nikita announced</title>
161 <link>http://www.hungry.com/~pere/blog/Release_0_3_of_free_software_archive_API_system_Nikita_announced.html</link>
162 <guid isPermaLink="true">http://www.hungry.com/~pere/blog/Release_0_3_of_free_software_archive_API_system_Nikita_announced.html</guid>
163 <pubDate>Sun, 24 Mar 2019 14:30:00 +0100</pubDate>
164 <description>&lt;p&gt;Yesterday, a new release of
165 &lt;a href=&quot;https://gitlab.com/OsloMet-ABI/nikita-noark5-core/&quot;&gt;Nikita
166 Noark 5 core project&lt;/a&gt; was
167 &lt;a href=&quot;https://lists.nuug.no/pipermail/nikita-noark/2019-March/000451.html&quot;&gt;announced
168 on the project mailing list&lt;/a&gt;. The free software solution is an
169 implementation of the Norwegian archive standard Noark 5 used by
170 government offices in Norway. These were the changes in version 0.3
171 since version 0.2.1 (from NEWS.md):&lt;/p&gt;
172
173 &lt;ul&gt;
174 &lt;li&gt;Improved ClassificationSystem and Class behaviour.&lt;/li&gt;
175 &lt;li&gt;Tidied up known inconsistencies between domain model and hateaos links.&lt;/li&gt;
176 &lt;li&gt;Added experimental code for blockchain integration. &lt;/li&gt;
177 &lt;li&gt;Make token expiry time configurable at upstart from properties file.&lt;/li&gt;
178 &lt;li&gt;Continued work on OData search syntax.&lt;/li&gt;
179 &lt;li&gt;Started work on pagination for entities, partly implemented for Saksmappe.&lt;/li&gt;
180 &lt;li&gt;Finalise ClassifiedCode Metadata entity.&lt;/li&gt;
181 &lt;li&gt;Implement mechanism to check if authentication token is still
182 valid. This allow the GUI to return a more sensible message to the
183 user if the token is expired.&lt;/li&gt;
184 &lt;li&gt;Reintroduce browse.html page to allow user to browse JSON API using
185 hateoas links.&lt;/li&gt;
186 &lt;li&gt;Fix bug in handling file/mappe sequence number. Year change was
187 not properly handled.&lt;/li&gt;
188 &lt;li&gt;Update application yml files to be in sync with current development.&lt;/li&gt;
189 &lt;li&gt;Stop &#39;converting&#39; everything to PDF using libreoffice. Only
190 convert the file formats doc, ppt, xls, docx, pptx, xlsx, odt, odp
191 and ods.&lt;/li&gt;
192 &lt;li&gt;Continued code style fixing, making code more readable.&lt;/li&gt;
193 &lt;li&gt;Minor bug fixes.&lt;/li&gt;
194
195 &lt;/ul&gt;
196
197 &lt;p&gt;If free and open standardized archiving API sound interesting to
198 you, please contact us on IRC
199 (&lt;a href=&quot;irc://irc.freenode.net/%23nikita&quot;&gt;#nikita on
200 irc.freenode.net&lt;/a&gt;) or email
201 (&lt;a href=&quot;https://lists.nuug.no/mailman/listinfo/nikita-noark&quot;&gt;nikita-noark
202 mailing list&lt;/a&gt;).&lt;/p&gt;
203
204 &lt;p&gt;As usual, if you use Bitcoin and want to show your support of my
205 activities, please send Bitcoin donations to my address
206 &lt;b&gt;&lt;a href=&quot;bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&quot;&gt;15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&lt;/a&gt;&lt;/b&gt;.&lt;/p&gt;
207 </description>
208 </item>
209
210 <item>
211 <title>Åpen og gjennomsiktig vedlikehold av spesifikasjonen for Noark 5 Tjenestegrensesnitt</title>
212 <link>http://www.hungry.com/~pere/blog/_pen_og_gjennomsiktig_vedlikehold_av_spesifikasjonen_for_Noark_5_Tjenestegrensesnitt.html</link>
213 <guid isPermaLink="true">http://www.hungry.com/~pere/blog/_pen_og_gjennomsiktig_vedlikehold_av_spesifikasjonen_for_Noark_5_Tjenestegrensesnitt.html</guid>
214 <pubDate>Mon, 11 Mar 2019 16:00:00 +0100</pubDate>
215 <description>&lt;p&gt;Et virksomhetsarkiv for meg, er et arbeidsverktøy der en enkelt kan
216 finne informasjonen en trenger når en trenger det, og der
217 virksomhetens samlede kunnskap er tilgjengelig. Det må være greit å
218 finne frem i, litt som en bibliotek. Men der et bibliotek gjerne tar
219 vare på offentliggjort informasjon som er tilgjengelig flere steder,
220 tar et arkiv vare på virksomhetsintern og til tider personlig
221 informasjon som ofte kun er tilgjengelig fra et sted.&lt;/p&gt;
222
223 &lt;p&gt;Jeg mistenker den eneste måten å sikre at arkivet inneholder den
224 samlede kunnskapen i en virksomhet, er å bruke det som virksomhetens
225 kunnskapslager. Det innebærer å automatisk kopiere (brev, epost,
226 SMS-er etc) inn i arkivet når de sendes og mottas, og der filtrere
227 vekk det en ikke vil ta vare på, og legge på metadata om det som er
228 samlet inn for enkel gjenfinning. En slik bruk av arkivet innebærer at
229 arkivet er en del av daglig virke, ikke at det er siste hvilested for
230 informasjon ingen lenger har daglig bruk for. For å kunne være en del
231 av det daglige virket må arkivet enkelt kunne integreres med andre
232 systemer. I disse dager betyr det å tilby arkivet som en
233 nett-tjeneste til hele virksomheten, tilgjengelig for både mennesker
234 og datamaskiner. Det betyr i tur å både tilby nettsider og et
235 maskinlesbart grensesnitt.&lt;/p&gt;
236
237 &lt;p&gt;For noen år siden erkjente visjonære arkivarer fordelene med et
238 standardisert maskinlesbart grensesnitt til organisasjonens arkiv. De
239 gikk igang med å lage noe de kalte
240 &lt;a href=&quot;https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/&quot;&gt;Noark
241 5 Tjenestegrensesnitt&lt;/a&gt;. Gjort riktig, så åpner slike maskinlesbare
242 grensesnitt for samvirke på tvers av uavhengige programvaresystemer.
243 Gjort feil, vil det blokkere for samvirke og bidra til
244 leverandørinnlåsing. For å gjøre det riktig så må grensesnittet være
245 klart og entydig beskrevet i en spesifikasjon som gjør at
246 spesifikasjonen tolkes på samme måte uavhengig av hvem som leser den,
247 og uavhengig av hvem som tar den i bruk.&lt;/p&gt;
248
249 &lt;p&gt;For å oppnå klare og entydige beskrivelser i en spesifikasjon, som
250 trengs for å kunne få en fri og åpen standard (se
251 &lt;a href=&quot;http://www.hungry.com/~pere/blog/Fri_og__pen_standard__slik_Digistan_ser_det.html&quot;&gt;Digistan-definisjon&lt;/a&gt;),
252 så trengs det en åpen og gjennomsiktig inngangsport med lav terskel,
253 der de som forsøker å ta den i bruk enkelt kan få inn korreksjoner,
254 etterlyse klargjøringer og rapportere uklarheter i spesifikasjonen.
255 En trenger også automatiserte datasystemer som måler og sjekker at et
256 gitt grensesnitt fungerer i tråd med spesifikasjonen.&lt;/p&gt;
257
258 &lt;p&gt;For Noark 5 Tjenestegrensesnittet er det nå etablert en slik åpen
259 og gjennomsiktig inngangsport på prosjekttjenesten github. Denne
260 inngangsporten består først og fremst av en åpen portal som lar enhver
261 se hva som er gjort av endringer i spesifikasjonsteksten over tid, men
262 det hører også med et åpent &amp;quot;diskusjonsforum&amp;quot; der en kan
263 komme med endringsforslag og forespørsler om klargjøringer. Alle
264 registrerte brukere på github kan bidra med innspill til disse
265 henvendelsene.&lt;/p&gt;
266
267 &lt;p&gt;I samarbeide med Arkivverket har jeg fått opprettet et git-depot
268 med spesifikasjonsteksten for tjenestegrensesnittet, der det er lagt
269 inn historikk for endringer i teksten de siste årene, samt lagt inn
270 endringsforslag og forespørsler om klargjøring av teksten. Bakgrunnen
271 for at jeg bidro med dette er at jeg er involvert i
272 &lt;a href=&quot;https://gitlab.com/OsloMet-ABI/nikita-noark5-core&quot;&gt;Nikita-prosjektet&lt;/a&gt;,
273 som lager en fri programvare-utgave av Noark 5 Tjenestegrensesnitt.
274 Det er først når en forsøker å lage noe i tråd med en spesifikasjon at
275 en oppdager hvor mange detaljer som må beskrives i spesifikasjonen for
276 å sikre samhandling.&lt;/p&gt;
277
278 &lt;p&gt;Spesifikasjonen vedlikeholdes i et rent tekstformat, for å ha et
279 format egnet for versjonskontroll via versjontrollsystemet git. Dette
280 gjør det både enkelt å se konkret hvilke endringer som er gjort når,
281 samt gjør det praktisk mulig for enhver med github-konto å sende inn
282 endringsforslag med formuleringer til spesifikasjonsteksten. Dette
283 tekstformatet vises frem som nettsider på github, slik at en ikke
284 trenger spesielle verktøy for å se på siste utgave av
285 spesifikasjonen.&lt;/p&gt;
286
287 &lt;p&gt;Fra dette rene tekstformatet kan det så avledes ulike formater, som
288 HTML for websider, PDF for utskrift på papir og ePub for lesing med
289 ebokleser. Avlednings-systemet (byggesystemet) bruker i dag
290 verktøyene pandoc, latex, docbook-xsl og GNU make til
291 transformasjonen. Tekstformatet som brukes dag er
292 &lt;a href=&quot;https://www.markdownguide.org/&quot;&gt;Markdown&lt;/a&gt;, men det vurderes
293 å
294 &lt;a href=&quot;https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues/9&quot;&gt;endre
295 til formatet RST&lt;/a&gt; i fremtiden for bedre styring av utseende på
296 PDF-utgaven.&lt;/p&gt;
297
298 &lt;p&gt;Versjonskontrollsystemet git ble valgt da det er både fleksibelt,
299 avansert og enkelt å ta i bruk. Github ble valgt (foran f.eks. Gitlab
300 som vi bruker i Nikita), da Arkivverket allerede hadde tatt i bruk
301 Github i andre sammenhenger.&lt;/p&gt;
302
303 &lt;p&gt;Enkle endringer i teksten kan gjøres av priviligerte brukere
304 direkte i nettsidene til Github, ved å finne aktuell fil som skal
305 endres (f.eks. kapitler/03-konformitet.md), klikke på den lille
306 bokstaven i høyre hjørne over teksten. Det kommer opp en nettside der
307 en kan endre teksten slik en ønsker. Når en er fornøyd med endringen
308 så må endringen &amp;quot;sjekkes inn&amp;quot; i historikken. Det gjøres ved
309 å gi en kort beskrivelse av endringen (beskriv helst hvorfor endringen
310 trengs, ikke hva som er endret), under overskriften &amp;quot;Commit
311 changes&amp;quot;. En kan og bør legge inn en lengre forklaring i det
312 større skrivefeltet, før en velger om endringen skal sendes direkte
313 til &#39;master&#39;-grenen (dvs. autorativ utgave av spesifikasjonen) eller
314 om en skal lage en ny gren for denne endringen og opprette en
315 endringsforespørsel (aka &amp;quot;Pull Request&amp;quot;/PR). Når alt dette
316 er gjort kan en velge &amp;quot;Commit changes&amp;quot; for å sende inn
317 endringen. Hvis den er lagt inn i &amp;quot;master&amp;quot;-grenen så er den
318 en offisiell del av spesifikasjonen med en gang. Hvis den derimot er
319 en endringsforespørsel, så legges den inn i
320 &lt;a href=&quot;https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/pulls&quot;&gt;listen
321 over forslag til endringer&lt;/a&gt; som venter på korrekturlesing og
322 godkjenning.&lt;/p&gt;
323
324 &lt;p&gt;Større endringer (for eksempel samtidig endringer i flere filer)
325 gjøres enklest ved å hente ned en kopi av git-depoet lokalt og gjøre
326 endringene der før endringsforslaget sendes inn. Denne prosessen er
327 godt beskrivet i dokumentasjon fra github. Git-prosjektet som skal
328 &amp;quot;klones&amp;quot; er
329 &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;
330
331 &lt;p&gt;For å registrere nye utfordringer (issues) eller kommentere på
332 eksisterende utfordringer benyttes nettsiden
333 &lt;a href=&quot;https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues&quot;&gt;https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues&lt;/a&gt;.
334 I skrivende stund er det 48 åpne og 11 avsluttede utfordringer. Et
335 forslag til hva som bør være med når en beskriver en utfordring er
336 tilgjengelig som utfordring
337 &lt;a href=&quot;https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues/14&quot;&gt;#14&lt;/a&gt;.&lt;/p&gt;
338
339 &lt;p&gt;For å bygge en PDF-utgave av spesifikasjonen så bruker jeg i dag en
340 Debian GNU/Linux-maskin med en rekke programpakker installert. Når
341 dette er på plass, så holder det å kjøre kommandoen &#39;make pdf html&#39;
342 kommandolinjen, vente ca. 20 sekunder, før spesifikasjon.pdf og
343 spesifikasjon.html ligger klar på disken. Verktøyene for bygging av
344 PDF, HTML og ePub-utgave er også tilgjengelig på Windows og
345 MacOSX.&lt;/p&gt;
346
347 &lt;p&gt;Github bidrar med rammeverket. Men for at åpent vedlikehold av
348 spesifikasjonen skal fungere, så trengs det folk som bidrar med sin
349 tid og kunnskap. Arkivverket har sagt de skal bidra med innspill og
350 godkjenne forslag til endringer, men det blir størst suksess hvis alle
351 som bruker og lager systemer basert på Noark 5 Tjenestegrensesnitt
352 bidrar med sin kunnskap og kommer med forslag til forebedringer. Jeg
353 stiller. Blir du med?&lt;/p&gt;
354
355 &lt;p&gt;Det er viktig å legge til rette for åpen diskusjon blant alle
356 interesserte, som ikke krever at en må godta lange kontrakter med
357 vilkår for deltagelse. Inntil Arkivverket dukker opp på IRC har vi
358 laget en IRC-kanal der interesserte enkelt kan orientere seg og
359 diskutere tjenestegrensesnittet. Alle er velkommen til å ta turen
360 innom
361 &lt;a href=&quot;https://webchat.freenode.net/?channels=nikita&quot;&gt;#nikita&lt;/a&gt;
362 (f.eks. via irc.freenode.net) for å møte likesinnede.&lt;/p&gt;
363
364 &lt;p&gt;Det holder dog ikke å ha en god spesifikasjon, hvis ikke de som tar
365 den i bruk gjør en like god jobb. For å automatisk teste om et konkret
366 tjenestegrensesnitt følger (min) forståelse av
367 spesifikasjonsdokumentet, har jeg skrevet et program som kobler seg
368 opp til et Noark 5v4 REST-tjeneste og tester alt den finner for å se
369 om det er i henhold til min tolkning av spesifikasjonen. Dette
370 verktøyet er tilgjengelig fra
371 &lt;a href=&quot;https://github.com/petterreinholdtsen/noark5-tester&quot;&gt;https://github.com/petterreinholdtsen/noark5-tester&lt;/a&gt;,
372 og brukes daglig mens vi utvikler Nikita for å sikre at vi ikke
373 introduserer nye feil. Hvis en skal sikre samvirke på tvers av ulike
374 systemer er det helt essensielt å kunne raskt og automatisk sjekke at
375 tjenestegrensesnittet oppfører seg som forventet. Jeg håper andre som
376 lager sin utgave av tjenestegrensesnittet vi bruke dette verktøyet,
377 slik at vi tidlig og raskt kan oppdage hvor vi har tolket
378 spesifikasjonen ulikt, og dermed få et godt grunnlag for å gjøre
379 spesifikasjonsteksten enda klarere og bedre.&lt;/p&gt;
380
381 &lt;p&gt;Dagens beskrivelse av Noark 5 Tjenestegrensesnitt er et svært godt
382 utgangspunkt for å gjøre virksomhetens arkiv til et dynamisk og
383 sentralt arbeidsverktøy i organisasjonen. Blir du med å gjøre den
384 enda bedre?&lt;/p&gt;
385 </description>
386 </item>
387
388 </channel>
389 </rss>