1 <?xml version=
"1.0" encoding=
"utf-8"?>
2 <rss version='
2.0' xmlns:lj='http://www.livejournal.org/rss/lj/
1.0/' xmlns:
atom=
"http://www.w3.org/2005/Atom">
4 <title>Petter Reinholdtsen
</title>
5 <description></description>
6 <link>http://people.skolelinux.org/pere/blog/
</link>
7 <atom:link href=
"http://people.skolelinux.org/pere/blog/index.rss" rel=
"self" type=
"application/rss+xml" />
10 <title>More sales number for my Free Culture paper editions (
2019-edition)
</title>
11 <link>http://people.skolelinux.org/pere/blog/More_sales_number_for_my_Free_Culture_paper_editions__2019_edition_.html
</link>
12 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/More_sales_number_for_my_Free_Culture_paper_editions__2019_edition_.html
</guid>
13 <pubDate>Tue,
11 Jun
2019 16:
05:
00 +
0200</pubDate>
14 <description><p
>The first book I published,
15 <a href=
"http://www.free-culture.cc/
">Free Culture by Lawrence
16 Lessig
</a
>, is still selling a few copies. Not a lot, but enough to
17 have contributed slightly over $
500 to the
<a
18 href=
"https://creativecommons.org/
">Creative Commons Corporation
</a
>
19 so far. Most books are still sold via Amazon (
83), with Ingram second
20 (
49) and Lulu (
12) and Machette (
7) as minor channels. Bying directly
21 from Lulu bring the largest cut to Creative Commons. The English
22 Edition sold
80 copies so far, the French
59 copies, and Norwegian
23 only
8 copies. Nothing impressive, but nice to see the work we put
24 down is still being appreciated. The ebook edition is available for
25 free from
<a href=
"https://github.com/petterreinholdtsen/free-culture-lessig
">Github
</a
>.
</p
>
27 <table border=
"0">
28 <tr
><th rowspan=
"2" valign=
"bottom
">Title / language
</th
>
29 <th colspan=
"7">Quantity
</th
></tr
>
31 <th
>2016 jan-jun
</th
>
32 <th
>2016 jul-dec
</th
>
33 <th
>2017 jan-jun
</th
>
34 <th
>2017 jul-dec
</th
>
35 <th
>2018 jan-jun
</th
>
36 <th
>2018 jul-dec
</th
>
37 <th
>2019 jan-may
</th
>
41 <td
><a href=
"http://www.lulu.com/shop/lawrence-lessig/culture-libre/paperback/product-
22645082.html
">Culture Libre / French
</a
></td
>
42 <td align=
"right
">3</td
>
43 <td align=
"right
">6</td
>
44 <td align=
"right
">19</td
>
45 <td align=
"right
">11</td
>
46 <td align=
"right
">7</td
>
47 <td align=
"right
">6</td
>
48 <td align=
"right
">7</td
>
52 <td
><a href=
"http://www.lulu.com/shop/lawrence-lessig/fri-kultur/paperback/product-
22441576.html
">Fri kultur / Norwegian
</a
></td
>
53 <td align=
"right
">7</td
>
54 <td align=
"right
">1</td
>
55 <td align=
"right
">0</td
>
56 <td align=
"right
">0</td
>
57 <td align=
"right
">0</td
>
58 <td align=
"right
">0</td
>
59 <td align=
"right
">0</td
>
63 <td
><a href=
"http://www.lulu.com/shop/lawrence-lessig/free-culture/paperback/product-
22440520.html
">Free Culture / English
</a
></td
>
64 <td align=
"right
">14</td
>
65 <td align=
"right
">27</td
>
66 <td align=
"right
">16</td
>
67 <td align=
"right
">9</td
>
68 <td align=
"right
">3</td
>
69 <td align=
"right
">7</td
>
70 <td align=
"right
">3</td
>
74 <td
>Total
</td
>
75 <td align=
"right
">24</td
>
76 <td align=
"right
">34</td
>
77 <td align=
"right
">35</td
>
78 <td align=
"right
">20</td
>
79 <td align=
"right
">10</td
>
80 <td align=
"right
">13</td
>
81 <td align=
"right
">10</td
>
86 <p
>It is fun to see the French edition being more popular than the
87 English one.
</p
>
89 <p
>If you would like to translate and publish the book in your native
90 language, I would be happy to help make it happen. Please get in
96 <title>Official MIME type
"text/vnd.sosi
" for SOSI map data
</title>
97 <link>http://people.skolelinux.org/pere/blog/Official_MIME_type__text_vnd_sosi__for_SOSI_map_data.html
</link>
98 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Official_MIME_type__text_vnd_sosi__for_SOSI_map_data.html
</guid>
99 <pubDate>Tue,
4 Jun
2019 09:
20:
00 +
0200</pubDate>
100 <description><p
>Just
15 days ago,
101 <ahref=
"http://people.skolelinux.org/pere/blog/MIME_type__text_vnd_sosi__for_SOSI_map_data.html
">I
102 mentioned
</a
> my submission to IANA to register an official MIME type
103 for the SOSI vector map format. This morning, just an hour ago, I was
105 <a href=
"https://www.iana.org/assignments/media-types/text/vnd.sosi
">the
106 MIME type
"text/vnd.sosi
"</a
> is registered for this format. In
107 addition to this registration, my
108 <a href=
"https://github.com/file/file/blob/master/magic/Magdir/sosi
">file(
1)
109 patch for a pattern matching rule for SOSI files
</a
> has been accepted
110 into the official source of that program (pending a new release), and
111 I
've been told by the team behind
112 <a href=
"https://www.nationalarchives.gov.uk/PRONOM/
">PRONOM
</a
> that
113 the SOSI format will be included in the next release of PRONOM, which
114 they plan to release this summer around July.
</p
>
116 <p
>I am very happy to see all of this fall into place, for use by
117 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/
">the
118 Noark
5 Tjenestegrensesnitt
</a
> implementations.
</p
>
120 <p
>As usual, if you use Bitcoin and want to show your support of my
121 activities, please send Bitcoin donations to my address
122 <b
><a href=
"bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a
></b
>.
</p
>
127 <title>The space rover coquine, or how I ended up on the dark side of the moon
</title>
128 <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>
129 <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>
130 <pubDate>Sun,
2 Jun
2019 23:
55:
00 +
0200</pubDate>
131 <description><p
>A while back a college and friend from Debian and the Skolelinux /
132 Debian Edu project approached me, asking if I knew someone that might
133 be interested in helping out with a technology project he was running
134 as a teacher at
<a href=
"https://www.ecolefrancodanoise.dk/
">L
'école
135 franco-danoise
</a
> - the Danish-French school and kindergarden. The
136 kids were building robots, rovers. The story behind it is to build a
138 <a href=
"http://blog.ecolefrancodanoise.dk/first-week-on-the-dark-side
">on
139 the dark side of the moon
</a
>, and remote control it. As travel cost
140 was a bit high for the final destination, and they wanted to test the
141 concept first, he was looking for volunteers to host a rover for the
142 kids to control in a foreign country. I ended up volunteering as a
143 host, and last week the rover arrived. It took a while to arrive
144 after
<a href=
"http://blog.ecolefrancodanoise.dk/model-moms
">it was
145 built and shipped
</a
>, because of customs confusion. Luckily we were
146 able fix it quickly with help from my colleges at work.
</p
>
148 <p
>This is what it looked like when the rover arrived. Note the cute
149 eyes looking up on me from the wrapping
</p
>
151 <img src=
"http://people.skolelinux.org/pere/blog/images/
2019-
06-
02-robot-dark-side-of-moon-esken-med-det-rare-i.jpeg
" width=
"32%
" style=
"clear:left
"/
>
152 <img src=
"http://people.skolelinux.org/pere/blog/images/
2019-
06-
02-robot-dark-side-of-moon-den-ser-meg.jpeg
" width=
"32%
" style=
"clear:left
"/
>
153 <img src=
"http://people.skolelinux.org/pere/blog/images/
2019-
06-
02-robot-dark-side-of-moon-en-skrue-loes.jpeg
" width=
"32%
" style=
"clear:left
"/
>
155 <p style=
"text-align:left
">Once the robot arrived, we needed to track
156 down batteries and figure out how to build custom firmware for it with
157 the appropriate wifi settings. I asked a friend if I could get two
158 18650 batteries from his pile of Tesla batteries (he had them from the
159 wrack of a crashed Tesla), so now the rover is running on Tesla
163 <a href=
"https://gitlab.com/ecolefrancodanoise/arduino-efd/
">the rover
164 firmware
</a
> proved a bit harder, as the code did not work out of the
165 box with the Arduino IDE package in Debian Buster. I suspect this is
167 <a href=
"https://github.com/arduino/Arduino/pull/
2703"> license problem
168 with arduino
</a
> blocking Debian from upgrading to the latest version.
169 In the end we gave up debugging why the IDE failed to find the
170 required libraries, and ended up using the Arduino Makefile from the
171 <a href=
"https://tracker.debian.org/pkg/arduino-mk
">arduino-mk Debian
172 package
</a
> instead. Unfortunately the camera library is missing from
173 the Arduino environment in Debian, so we disabled the camera support
174 for the first firmware build, to get something up and running. With
175 this reduced firmware, the robot could be controlled via the
176 controller server, driving around and measuring distance using its
177 internal acoustic sensor.
</p
>
179 <p
>Next, With some help from my friend in Denmark, which checked in the
180 camera library into the gitlab repository for me to use, we were able
181 to build a new and more complete version of the firmware, and the
182 robot is now up and running. This is what the
"commander
" web page
183 look like after taking a measurement and a snapshot:
</p
>
185 <img src=
"http://people.skolelinux.org/pere/blog/images/
2019-
06-
02-robot-dark-side-of-moon-commander.png
" width=
"40%
" border=
"1" align=
"center
"/
>
187 <p
>If you want to learn more about this project, you can check out the
188 <a href=
"https://hackaday.io/project/
164082-the-dark-side-challenge
">The
189 Dark Side Challenge
</a
> Hackaday web pages.
</p
>
191 <p
>As usual, if you use Bitcoin and want to show your support of my
192 activities, please send Bitcoin donations to my address
193 <b
><a href=
"bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a
></b
>.
</p
>
198 <title>Nikita version
0.4 released - free software archive API server
</title>
199 <link>http://people.skolelinux.org/pere/blog/Nikita_version_0_4_released___free_software_archive_API_server.html
</link>
200 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Nikita_version_0_4_released___free_software_archive_API_server.html
</guid>
201 <pubDate>Wed,
22 May
2019 11:
30:
00 +
0200</pubDate>
202 <description><p
>This morning, a new release of
203 <a href=
"https://gitlab.com/OsloMet-ABI/nikita-noark5-core/
">Nikita
204 Noark
5 core project
</a
> was
205 <a href=
"https://lists.nuug.no/pipermail/nikita-noark/
2019-May/
000468.html
">announced
206 on the project mailing list
</a
>. The Nikita free software solution is
207 an implementation of the Norwegian archive standard Noark
5 used by
208 government offices in Norway. These were the changes in version
0.4
209 since version
0.3, see the email link above for links to a demo site:
</p
>
213 <li
>Roll out OData handling to all endpoints where applicable
</li
>
214 <li
>Changed the relation key for
"ny-journalpost
" to the official one.
</li
>
215 <li
>Better link generation on outgoing links.
</li
>
216 <li
>Tidy up code and make code and approaches more consistent throughout
217 the codebase
</li
>
218 <li
>Update rels to be in compliance with updated version in the
219 interface standard
</li
>
220 <li
>Avoid printing links on empty objects as they can
't have links
</li
>
221 <li
>Small bug fixes and improvements
</li
>
222 <li
>Start moving generation of outgoing links to @Service layer so access
223 control can be used when generating links
</li
>
224 <li
>Log exception that was being swallowed so it
's traceable
</li
>
225 <li
>Fix name mapping problem
</li
>
226 <li
>Update templated printing so templated should only be printed if it
227 is set true. Requires more work to roll out across entire
228 application.
</li
>
229 <li
>Remove Record-
>DocumentObject as per domain model of n5v4
</li
>
230 <li
>Add ability to delete lists filtered with OData
</li
>
231 <li
>Return NO_CONTENT (
204) on delete as per interface standard
</li
>
232 <li
>Introduce support for ConstraintViolationException exception
</li
>
233 <li
>Make Service classes extend NoarkService
</li
>
234 <li
>Make code base respect X-Forwarded-Host, X-Forwarded-Proto and
235 X-Forwarded-Port
</li
>
236 <li
>Update CorrespondencePart* code to be more in line with Single
237 Responsibility Principle
</li
>
238 <li
>Make package name follow directory structure
</li
>
239 <li
>Make sure Document number starts at
1, not
0</li
>
240 <li
>Fix isues discovered by FindBugs
</li
>
241 <li
>Update from Date to ZonedDateTime
</li
>
242 <li
>Fix wrong tablename
</li
>
243 <li
>Introduce Service layer tests
</li
>
244 <li
>Improvements to CorrespondencePart
</li
>
245 <li
>Continued work on Class / Classificationsystem
</li
>
246 <li
>Fix feature where authors were stored as storageLocations
</li
>
247 <li
>Update HQL builder for OData
</li
>
248 <li
>Update OData search capability from webpage
</li
>
252 <p
>If free and open standardized archiving API sound interesting to
253 you, please contact us on IRC
254 (
<a href=
"irc://irc.freenode.net/%
23nikita
">#nikita on
255 irc.freenode.net
</a
>) or email
256 (
<a href=
"https://lists.nuug.no/mailman/listinfo/nikita-noark
">nikita-noark
257 mailing list
</a
>).
</p
>
259 <p
>As usual, if you use Bitcoin and want to show your support of my
260 activities, please send Bitcoin donations to my address
261 <b
><a href=
"bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a
></b
>.
</p
>
266 <title>MIME type
"text/vnd.sosi
" for SOSI map data
</title>
267 <link>http://people.skolelinux.org/pere/blog/MIME_type__text_vnd_sosi__for_SOSI_map_data.html
</link>
268 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/MIME_type__text_vnd_sosi__for_SOSI_map_data.html
</guid>
269 <pubDate>Mon,
20 May
2019 08:
35:
00 +
0200</pubDate>
270 <description><p
>As part of my involvement in the work to
271 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard
">standardise
272 a REST based API for Noark
5</a
>, the Norwegian archiving standard, I
273 spent some time the last few months to try to register a
274 <a href=
"https://www.iana.org/assignments/media-types/
">MIME type
</a
>
275 and
<a href=
"https://www.nationalarchives.gov.uk/PRONOM/
">PRONOM
276 code
</a
> for the SOSI file format. The background is that there is a
277 set of formats approved for long term storage and archiving in Norway,
278 and among these formats, SOSI is the only format missing a MIME type
279 and PRONOM code.
</p
>
281 <p
>What is SOSI, you might ask? To quote Wikipedia: SOSI is short for
282 Samordnet Opplegg for Stedfestet Informasjon (literally
"Coordinated
283 Approach for Spatial Information
", but more commonly expanded in
284 English to Systematic Organization of Spatial Information). It is a
285 text based file format for geo-spatial vector information used in
286 Norway. Information about the SOSI format can be found in English
287 from
<a href=
"https://en.wikipedia.org/wiki/SOSI
">Wikipedia
</a
>. The
288 specification is available in Norwegian from
289 <a href=
"https://www.kartverket.no/geodataarbeid/Standarder/SOSI/
">the
290 Norwegian mapping authority
</a
>. The SOSI standard, which originated
291 in the beginning of nineteen eighties, was the inspiration and formed the
292 basis for the XML based
293 <a href=
"https://en.wikipedia.org/wiki/Geography_Markup_Language
">Geography
294 Markup Language
</a
>.
</p
>
296 <p
>I have so far written
297 <a href=
"https://github.com/file/file/pull/
67">a pattern matching
298 rule
</a
> for the file(
1) unix tool to recognize SOSI files, submitted
299 a request to the PRONOM project to have a PRONOM ID assigned to the
300 format (reference TNA1555078202S60), and today send a request to IANA
301 to register the
"text/vnd.sosi
" MIME type for this format (referanse
302 <a href=
"https://tools.iana.org/public-view/viewticket/
1143144">IANA
303 #
1143144</a
>). If all goes well, in a few months, anyone implementing
304 the Noark
5 Tjenestegrensesnitt API spesification should be able to
305 use an official MIME type and PRONOM code for SOSI files. In
306 addition, anyone using SOSI files on Linux should be able to
307 automatically recognise the format and web sites handing out SOSI
308 files can begin providing a more specific MIME type. So far, SOSI
309 files has been handed out from web sites using the
310 "application/octet-stream
" MIME type, which is just a nice way of
311 stating
"I do not know
". Soon, we will know. :)
</p
>
313 <p
>As usual, if you use Bitcoin and want to show your support of my
314 activities, please send Bitcoin donations to my address
315 <b
><a href=
"bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a
></b
>.
</p
>
320 <title>PlantUML for text based UML diagram modelling - nice free software
</title>
321 <link>http://people.skolelinux.org/pere/blog/PlantUML_for_text_based_UML_diagram_modelling___nice_free_software.html
</link>
322 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/PlantUML_for_text_based_UML_diagram_modelling___nice_free_software.html
</guid>
323 <pubDate>Mon,
25 Mar
2019 09:
35:
00 +
0100</pubDate>
324 <description><p
>As part of my involvement with the
325 <a href=
"https://gitlab.com/OsloMet-ABI/nikita-noark5-core/
">Nikita
326 Noark
5 core project
</a
>, I have been proposing improvements to the
327 API specification created by
<a href=
"https://www.arkivverket.no/
">The
328 National Archives of Norway
</a
> and helped migrating the text from a
329 version control system unfriendly binary format (docx) to Markdown in
330 git. Combined with the migration to a public git repository (on
331 github), this has made it possible for anyone to suggest improvement
332 to the text.
</p
>
334 <p
>The specification is filled with UML diagrams. I believe the
335 original diagrams were modelled using Sparx Systems Enterprise
336 Architect, and exported as EMF files for import into docx. This
337 approach make it very hard to track changes using a version control
338 system. To improve the situation I have been looking for a good text
339 based UML format with associated command line free software tools on
340 Linux and Windows, to allow anyone to send in corrections to the UML
341 diagrams in the specification. The tool must be text based to work
342 with git, and command line to be able to run it automatically to
343 generate the diagram images. Finally, it must be free software to
344 allow anyone, even those that can not accept a non-free software
345 license, to contribute.
</p
>
347 <p
>I did not know much about free software UML modelling tools when I
348 started. I have used dia and inkscape for simple modelling in the
349 past, but neither are available on Windows, as far as I could tell. I
351 <a href=
"https://modeling-languages.com/text-uml-tools-complete-list/
">list
352 of text mode uml tools
</a
>, and tested out a few of the tools listed
353 there.
<a href=
"http://plantuml.com/
">The PlantUML tool
</a
> seemed
354 most promising. After verifying that the packages
355 <a href=
"https://tracker.debian.org/pkg/plantuml
">is available in
356 Debian
</a
> and found
<a href=
"https://github.com/plantuml/plantuml
">its
357 Java source
</a
> under a GPL license on github, I set out to test if it
358 could represent the diagrams we needed, ie the ones currently in
359 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/
">the
360 Noark
5 Tjenestegrensesnitt specification
</a
>. I am happy to report
361 that it could represent them, even thought it have a few warts here
364 <p
>After a few days of modelling I completed the task this weekend. A
365 temporary link to the complete set of diagrams (original and from
366 PlantUML) is available in
367 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues/
76">the
368 github issue discussing the need for a text based UML format
</a
>, but
369 please note I lack a sensible tool to convert EMF files to PNGs, so
370 the
"original
" rendering is not as good as the original was in the
371 publised PDF.
</p
>
373 <p
>Here is an example UML diagram, showing the core classes for
374 keeping metadata about archived documents:
</p
>
378 skinparam classAttributeIconSize
0
380 !include media/uml-class-arkivskaper.iuml
381 !include media/uml-class-arkiv.iuml
382 !include media/uml-class-klassifikasjonssystem.iuml
383 !include media/uml-class-klasse.iuml
384 !include media/uml-class-arkivdel.iuml
385 !include media/uml-class-mappe.iuml
386 !include media/uml-class-merknad.iuml
387 !include media/uml-class-registrering.iuml
388 !include media/uml-class-basisregistrering.iuml
389 !include media/uml-class-dokumentbeskrivelse.iuml
390 !include media/uml-class-dokumentobjekt.iuml
391 !include media/uml-class-konvertering.iuml
392 !include media/uml-datatype-elektronisksignatur.iuml
394 Arkivstruktur.Arkivskaper
"+arkivskaper
1..*
" <-o
"+arkiv
0..*
" Arkivstruktur.Arkiv
395 Arkivstruktur.Arkiv o--
> "+underarkiv
0..*
" Arkivstruktur.Arkiv
396 Arkivstruktur.Arkiv
"+arkiv
1" o--
> "+arkivdel
0..*
" Arkivstruktur.Arkivdel
397 Arkivstruktur.Klassifikasjonssystem
"+klassifikasjonssystem [
0.
.1]
" <--o
"+arkivdel
1..*
" Arkivstruktur.Arkivdel
398 Arkivstruktur.Klassifikasjonssystem
"+klassifikasjonssystem [
0.
.1]
" o--
> "+klasse
0..*
" Arkivstruktur.Klasse
399 Arkivstruktur.Arkivdel
"+arkivdel
0.
.1" o--
> "+mappe
0..*
" Arkivstruktur.Mappe
400 Arkivstruktur.Arkivdel
"+arkivdel
0.
.1" o--
> "+registrering
0..*
" Arkivstruktur.Registrering
401 Arkivstruktur.Klasse
"+klasse
0.
.1" o--
> "+mappe
0..*
" Arkivstruktur.Mappe
402 Arkivstruktur.Klasse
"+klasse
0.
.1" o--
> "+registrering
0..*
" Arkivstruktur.Registrering
403 Arkivstruktur.Mappe --
> "+undermappe
0..*
" Arkivstruktur.Mappe
404 Arkivstruktur.Mappe
"+mappe
0.
.1" o--
> "+registrering
0..*
" Arkivstruktur.Registrering
405 Arkivstruktur.Merknad
"+merknad
0..*
" <--* Arkivstruktur.Mappe
406 Arkivstruktur.Merknad
"+merknad
0..*
" <--* Arkivstruktur.Dokumentbeskrivelse
407 Arkivstruktur.Basisregistrering -|
> Arkivstruktur.Registrering
408 Arkivstruktur.Merknad
"+merknad
0..*
" <--* Arkivstruktur.Basisregistrering
409 Arkivstruktur.Registrering
"+registrering
1..*
" o--
> "+dokumentbeskrivelse
0..*
" Arkivstruktur.Dokumentbeskrivelse
410 Arkivstruktur.Dokumentbeskrivelse
"+dokumentbeskrivelse
1" o-
> "+dokumentobjekt
0..*
" Arkivstruktur.Dokumentobjekt
411 Arkivstruktur.Dokumentobjekt *-
> "+konvertering
0..*
" Arkivstruktur.Konvertering
412 Arkivstruktur.ElektroniskSignatur -[hidden]-
> Arkivstruktur.Dokumentobjekt
416 <p
><a href=
"http://plantuml.com/class-diagram
">The format
</a
> is quite
417 compact, with little redundant information. The text expresses
418 entities and relations, and there is little layout related fluff. One
419 can reuse content by using include files, allowing for consistent
420 naming across several diagrams. The include files can be standalone
421 PlantUML too. Here is the content of
422 <tt
>media/uml-class-arkivskaper.iuml
<tt
>:
</p
>
426 class Arkivstruktur.Arkivskaper
<Arkivenhet
> {
427 +arkivskaperID : string
428 +arkivskaperNavn : string
429 +beskrivelse : string [
0.
.1]
434 <p
>This is what the complete diagram for the PlantUML notation above
437 <p
><img width=
"80%
" src=
"http://people.skolelinux.org/pere/blog/images/
2019-
03-
25-noark5-plantuml-diagrameksempel.png
"></p
>
439 <p
>A cool feature of PlantUML is that the generated PNG files include
440 the entire original source diagram as text. The source (with include
441 statements expanded) can be extracted using for example
442 <tt
>exiftool
</tt
>. Another cool feature is that parts of the entities
443 can be hidden after inclusion. This allow to use include files with
444 all attributes listed, even for UML diagrams that should not list any
445 attributes.
</p
>
447 <p
>The diagram also show some of the warts. Some times the layout
448 engine place text labels on top of each other, and some times it place
449 the class boxes too close to each other, not leaving room for the
450 labels on the relationship arrows. The former can be worked around by
451 placing extra newlines in the labes (ie
"\n
"). I did not do it here
452 to be able to demonstrate the issue. I have not found a good way
453 around the latter, so I normally try to reduce the problem by changing
454 from vertical to horizontal links to improve the layout.
</p
>
456 <p
>All in all, I am quite happy with PlantUML, and very impressed with
457 how quickly its lead developer responds to questions. So far I got an
458 answer to my questions in a few hours when I send an email. I
459 definitely recommend looking at PlantUML if you need to make UML
460 diagrams. Note, PlantUML can draw a lot more than class relations.
461 Check out the documention for a complete list. :)
</p
>
463 <p
>As usual, if you use Bitcoin and want to show your support of my
464 activities, please send Bitcoin donations to my address
465 <b
><a href=
"bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a
></b
>.
</p
>
470 <title>Release
0.3 of free software archive API system Nikita announced
</title>
471 <link>http://people.skolelinux.org/pere/blog/Release_0_3_of_free_software_archive_API_system_Nikita_announced.html
</link>
472 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Release_0_3_of_free_software_archive_API_system_Nikita_announced.html
</guid>
473 <pubDate>Sun,
24 Mar
2019 14:
30:
00 +
0100</pubDate>
474 <description><p
>Yesterday, a new release of
475 <a href=
"https://gitlab.com/OsloMet-ABI/nikita-noark5-core/
">Nikita
476 Noark
5 core project
</a
> was
477 <a href=
"https://lists.nuug.no/pipermail/nikita-noark/
2019-March/
000451.html
">announced
478 on the project mailing list
</a
>. The free software solution is an
479 implementation of the Norwegian archive standard Noark
5 used by
480 government offices in Norway. These were the changes in version
0.3
481 since version
0.2.1 (from NEWS.md):
</p
>
484 <li
>Improved ClassificationSystem and Class behaviour.
</li
>
485 <li
>Tidied up known inconsistencies between domain model and hateaos links.
</li
>
486 <li
>Added experimental code for blockchain integration.
</li
>
487 <li
>Make token expiry time configurable at upstart from properties file.
</li
>
488 <li
>Continued work on OData search syntax.
</li
>
489 <li
>Started work on pagination for entities, partly implemented for Saksmappe.
</li
>
490 <li
>Finalise ClassifiedCode Metadata entity.
</li
>
491 <li
>Implement mechanism to check if authentication token is still
492 valid. This allow the GUI to return a more sensible message to the
493 user if the token is expired.
</li
>
494 <li
>Reintroduce browse.html page to allow user to browse JSON API using
495 hateoas links.
</li
>
496 <li
>Fix bug in handling file/mappe sequence number. Year change was
497 not properly handled.
</li
>
498 <li
>Update application yml files to be in sync with current development.
</li
>
499 <li
>Stop
'converting
' everything to PDF using libreoffice. Only
500 convert the file formats doc, ppt, xls, docx, pptx, xlsx, odt, odp
502 <li
>Continued code style fixing, making code more readable.
</li
>
503 <li
>Minor bug fixes.
</li
>
507 <p
>If free and open standardized archiving API sound interesting to
508 you, please contact us on IRC
509 (
<a href=
"irc://irc.freenode.net/%
23nikita
">#nikita on
510 irc.freenode.net
</a
>) or email
511 (
<a href=
"https://lists.nuug.no/mailman/listinfo/nikita-noark
">nikita-noark
512 mailing list
</a
>).
</p
>
514 <p
>As usual, if you use Bitcoin and want to show your support of my
515 activities, please send Bitcoin donations to my address
516 <b
><a href=
"bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a
></b
>.
</p
>
521 <title>Åpen og gjennomsiktig vedlikehold av spesifikasjonen for Noark
5 Tjenestegrensesnitt
</title>
522 <link>http://people.skolelinux.org/pere/blog/_pen_og_gjennomsiktig_vedlikehold_av_spesifikasjonen_for_Noark_5_Tjenestegrensesnitt.html
</link>
523 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/_pen_og_gjennomsiktig_vedlikehold_av_spesifikasjonen_for_Noark_5_Tjenestegrensesnitt.html
</guid>
524 <pubDate>Mon,
11 Mar
2019 16:
00:
00 +
0100</pubDate>
525 <description><p
>Et virksomhetsarkiv for meg, er et arbeidsverktøy der en enkelt kan
526 finne informasjonen en trenger når en trenger det, og der
527 virksomhetens samlede kunnskap er tilgjengelig. Det må være greit å
528 finne frem i, litt som en bibliotek. Men der et bibliotek gjerne tar
529 vare på offentliggjort informasjon som er tilgjengelig flere steder,
530 tar et arkiv vare på virksomhetsintern og til tider personlig
531 informasjon som ofte kun er tilgjengelig fra et sted.
</p
>
533 <p
>Jeg mistenker den eneste måten å sikre at arkivet inneholder den
534 samlede kunnskapen i en virksomhet, er å bruke det som virksomhetens
535 kunnskapslager. Det innebærer å automatisk kopiere (brev, epost,
536 SMS-er etc) inn i arkivet når de sendes og mottas, og der filtrere
537 vekk det en ikke vil ta vare på, og legge på metadata om det som er
538 samlet inn for enkel gjenfinning. En slik bruk av arkivet innebærer at
539 arkivet er en del av daglig virke, ikke at det er siste hvilested for
540 informasjon ingen lenger har daglig bruk for. For å kunne være en del
541 av det daglige virket må arkivet enkelt kunne integreres med andre
542 systemer. I disse dager betyr det å tilby arkivet som en
543 nett-tjeneste til hele virksomheten, tilgjengelig for både mennesker
544 og datamaskiner. Det betyr i tur å både tilby nettsider og et
545 maskinlesbart grensesnitt.
</p
>
547 <p
>For noen år siden erkjente visjonære arkivarer fordelene med et
548 standardisert maskinlesbart grensesnitt til organisasjonens arkiv. De
549 gikk igang med å lage noe de kalte
550 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/
">Noark
551 5 Tjenestegrensesnitt
</a
>. Gjort riktig, så åpner slike maskinlesbare
552 grensesnitt for samvirke på tvers av uavhengige programvaresystemer.
553 Gjort feil, vil det blokkere for samvirke og bidra til
554 leverandørinnlåsing. For å gjøre det riktig så må grensesnittet være
555 klart og entydig beskrevet i en spesifikasjon som gjør at
556 spesifikasjonen tolkes på samme måte uavhengig av hvem som leser den,
557 og uavhengig av hvem som tar den i bruk.
</p
>
559 <p
>For å oppnå klare og entydige beskrivelser i en spesifikasjon, som
560 trengs for å kunne få en fri og åpen standard (se
561 <a href=
"http://people.skolelinux.org/pere/blog/Fri_og__pen_standard__slik_Digistan_ser_det.html
">Digistan-definisjon
</a
>),
562 så trengs det en åpen og gjennomsiktig inngangsport med lav terskel,
563 der de som forsøker å ta den i bruk enkelt kan få inn korreksjoner,
564 etterlyse klargjøringer og rapportere uklarheter i spesifikasjonen.
565 En trenger også automatiserte datasystemer som måler og sjekker at et
566 gitt grensesnitt fungerer i tråd med spesifikasjonen.
</p
>
568 <p
>For Noark
5 Tjenestegrensesnittet er det nå etablert en slik åpen
569 og gjennomsiktig inngangsport på prosjekttjenesten github. Denne
570 inngangsporten består først og fremst av en åpen portal som lar enhver
571 se hva som er gjort av endringer i spesifikasjonsteksten over tid, men
572 det hører også med et åpent
&quot;diskusjonsforum
&quot; der en kan
573 komme med endringsforslag og forespørsler om klargjøringer. Alle
574 registrerte brukere på github kan bidra med innspill til disse
575 henvendelsene.
</p
>
577 <p
>I samarbeide med Arkivverket har jeg fått opprettet et git-depot
578 med spesifikasjonsteksten for tjenestegrensesnittet, der det er lagt
579 inn historikk for endringer i teksten de siste årene, samt lagt inn
580 endringsforslag og forespørsler om klargjøring av teksten. Bakgrunnen
581 for at jeg bidro med dette er at jeg er involvert i
582 <a href=
"https://gitlab.com/OsloMet-ABI/nikita-noark5-core
">Nikita-prosjektet
</a
>,
583 som lager en fri programvare-utgave av Noark
5 Tjenestegrensesnitt.
584 Det er først når en forsøker å lage noe i tråd med en spesifikasjon at
585 en oppdager hvor mange detaljer som må beskrives i spesifikasjonen for
586 å sikre samhandling.
</p
>
588 <p
>Spesifikasjonen vedlikeholdes i et rent tekstformat, for å ha et
589 format egnet for versjonskontroll via versjontrollsystemet git. Dette
590 gjør det både enkelt å se konkret hvilke endringer som er gjort når,
591 samt gjør det praktisk mulig for enhver med github-konto å sende inn
592 endringsforslag med formuleringer til spesifikasjonsteksten. Dette
593 tekstformatet vises frem som nettsider på github, slik at en ikke
594 trenger spesielle verktøy for å se på siste utgave av
595 spesifikasjonen.
</p
>
597 <p
>Fra dette rene tekstformatet kan det så avledes ulike formater, som
598 HTML for websider, PDF for utskrift på papir og ePub for lesing med
599 ebokleser. Avlednings-systemet (byggesystemet) bruker i dag
600 verktøyene pandoc, latex, docbook-xsl og GNU make til
601 transformasjonen. Tekstformatet som brukes dag er
602 <a href=
"https://www.markdownguide.org/
">Markdown
</a
>, men det vurderes
604 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues/
9">endre
605 til formatet RST
</a
> i fremtiden for bedre styring av utseende på
606 PDF-utgaven.
</p
>
608 <p
>Versjonskontrollsystemet git ble valgt da det er både fleksibelt,
609 avansert og enkelt å ta i bruk. Github ble valgt (foran f.eks. Gitlab
610 som vi bruker i Nikita), da Arkivverket allerede hadde tatt i bruk
611 Github i andre sammenhenger.
</p
>
613 <p
>Enkle endringer i teksten kan gjøres av priviligerte brukere
614 direkte i nettsidene til Github, ved å finne aktuell fil som skal
615 endres (f.eks. kapitler/
03-konformitet.md), klikke på den lille
616 bokstaven i høyre hjørne over teksten. Det kommer opp en nettside der
617 en kan endre teksten slik en ønsker. Når en er fornøyd med endringen
618 så må endringen
&quot;sjekkes inn
&quot; i historikken. Det gjøres ved
619 å gi en kort beskrivelse av endringen (beskriv helst hvorfor endringen
620 trengs, ikke hva som er endret), under overskriften
&quot;Commit
621 changes
&quot;. En kan og bør legge inn en lengre forklaring i det
622 større skrivefeltet, før en velger om endringen skal sendes direkte
623 til
'master
'-grenen (dvs. autorativ utgave av spesifikasjonen) eller
624 om en skal lage en ny gren for denne endringen og opprette en
625 endringsforespørsel (aka
&quot;Pull Request
&quot;/PR). Når alt dette
626 er gjort kan en velge
&quot;Commit changes
&quot; for å sende inn
627 endringen. Hvis den er lagt inn i
&quot;master
&quot;-grenen så er den
628 en offisiell del av spesifikasjonen med en gang. Hvis den derimot er
629 en endringsforespørsel, så legges den inn i
630 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/pulls
">listen
631 over forslag til endringer
</a
> som venter på korrekturlesing og
632 godkjenning.
</p
>
634 <p
>Større endringer (for eksempel samtidig endringer i flere filer)
635 gjøres enklest ved å hente ned en kopi av git-depoet lokalt og gjøre
636 endringene der før endringsforslaget sendes inn. Denne prosessen er
637 godt beskrivet i dokumentasjon fra github. Git-prosjektet som skal
638 &quot;klones
&quot; er
639 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/
">https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/
</a
>.
</p
>
641 <p
>For å registrere nye utfordringer (issues) eller kommentere på
642 eksisterende utfordringer benyttes nettsiden
643 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues
">https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues
</a
>.
644 I skrivende stund er det
48 åpne og
11 avsluttede utfordringer. Et
645 forslag til hva som bør være med når en beskriver en utfordring er
646 tilgjengelig som utfordring
647 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues/
14">#
14</a
>.
</p
>
649 <p
>For å bygge en PDF-utgave av spesifikasjonen så bruker jeg i dag en
650 Debian GNU/Linux-maskin med en rekke programpakker installert. Når
651 dette er på plass, så holder det å kjøre kommandoen
'make pdf html
' på
652 kommandolinjen, vente ca.
20 sekunder, før spesifikasjon.pdf og
653 spesifikasjon.html ligger klar på disken. Verktøyene for bygging av
654 PDF, HTML og ePub-utgave er også tilgjengelig på Windows og
657 <p
>Github bidrar med rammeverket. Men for at åpent vedlikehold av
658 spesifikasjonen skal fungere, så trengs det folk som bidrar med sin
659 tid og kunnskap. Arkivverket har sagt de skal bidra med innspill og
660 godkjenne forslag til endringer, men det blir størst suksess hvis alle
661 som bruker og lager systemer basert på Noark
5 Tjenestegrensesnitt
662 bidrar med sin kunnskap og kommer med forslag til forebedringer. Jeg
663 stiller. Blir du med?
</p
>
665 <p
>Det er viktig å legge til rette for åpen diskusjon blant alle
666 interesserte, som ikke krever at en må godta lange kontrakter med
667 vilkår for deltagelse. Inntil Arkivverket dukker opp på IRC har vi
668 laget en IRC-kanal der interesserte enkelt kan orientere seg og
669 diskutere tjenestegrensesnittet. Alle er velkommen til å ta turen
671 <a href=
"https://webchat.freenode.net/?channels=nikita
">#nikita
</a
>
672 (f.eks. via irc.freenode.net) for å møte likesinnede.
</p
>
674 <p
>Det holder dog ikke å ha en god spesifikasjon, hvis ikke de som tar
675 den i bruk gjør en like god jobb. For å automatisk teste om et konkret
676 tjenestegrensesnitt følger (min) forståelse av
677 spesifikasjonsdokumentet, har jeg skrevet et program som kobler seg
678 opp til et Noark
5v4 REST-tjeneste og tester alt den finner for å se
679 om det er i henhold til min tolkning av spesifikasjonen. Dette
680 verktøyet er tilgjengelig fra
681 <a href=
"https://github.com/petterreinholdtsen/noark5-tester
">https://github.com/petterreinholdtsen/noark5-tester
</a
>,
682 og brukes daglig mens vi utvikler Nikita for å sikre at vi ikke
683 introduserer nye feil. Hvis en skal sikre samvirke på tvers av ulike
684 systemer er det helt essensielt å kunne raskt og automatisk sjekke at
685 tjenestegrensesnittet oppfører seg som forventet. Jeg håper andre som
686 lager sin utgave av tjenestegrensesnittet vi bruke dette verktøyet,
687 slik at vi tidlig og raskt kan oppdage hvor vi har tolket
688 spesifikasjonen ulikt, og dermed få et godt grunnlag for å gjøre
689 spesifikasjonsteksten enda klarere og bedre.
</p
>
691 <p
>Dagens beskrivelse av Noark
5 Tjenestegrensesnitt er et svært godt
692 utgangspunkt for å gjøre virksomhetens arkiv til et dynamisk og
693 sentralt arbeidsverktøy i organisasjonen. Blir du med å gjøre den
694 enda bedre?
</p
>
699 <title>Dårlig med sikkerhetsoppdateringer for Ruters billettautomater i Oslo?
</title>
700 <link>http://people.skolelinux.org/pere/blog/D_rlig_med_sikkerhetsoppdateringer_for_Ruters_billettautomater_i_Oslo_.html
</link>
701 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/D_rlig_med_sikkerhetsoppdateringer_for_Ruters_billettautomater_i_Oslo_.html
</guid>
702 <pubDate>Wed,
13 Feb
2019 10:
45:
00 +
0100</pubDate>
703 <description><p
><a href=
"http://people.skolelinux.org/pere/blog/Er_billettautomatene_til_kollektivtrafikken_i_Oslo_uten_sikkerhetsoppdateringer_.html
">For
704 syv år siden
</a
> oppdaget jeg at billettautomater for
705 kollektivtrafikken i Oslo kjørte
706 <a href=
"http://en.wikipedia.org/wiki/Windows_2000
">Windows
2000
707 Professional
</a
>. Operativsystemet har ikke fått sikkerhetsfikser fra
708 Microsoft siden
2010-
07-
13 i følge dem selv. Den samme versjonen av
709 operativsystemet var i bruk
710 <a href=
"http://people.skolelinux.org/pere/blog/Fortsatt_ingen_sikkerhetsoppdateringer_for_billettautomatene_til_kollektivtrafikken_i_Oslo_.html
">for
711 to og et halvt år siden
</a
>, og jammen er det ikke også i bruk den dag
714 <p align=
"center
"><a href=
"http://people.skolelinux.org/pere/blog/images/
2019-
02-
13-ruter-win2000pro.jpeg
"><img width=
"40%
" src=
"http://people.skolelinux.org/pere/blog/images/
2019-
02-
13-ruter-win2000pro.jpeg
" alt=
"[Bilde av Ruters billettautomat med Windows
2000-feilmelding]
"></a
></p
>
716 <p
>Bildet er tatt i dag av Kirill Miazine og tilgjengelig for bruk med
718 <a href=
"http://creativecommons.org/licenses/by/
4.0/
">Creative
719 Commons Attribution
4.0 International (CC BY
4.0)
</a
>.
</p
>
721 <p
>Kanskje det hadde vært
722 <a href=
"https://www.aftenposten.no/osloby/i/awqgO/Her-kjorer-du-gratis-trikk-og-buss
">bedre
723 med gratis kollektivtrafikk
</A
>, slik at vi slapp å stole på
724 datakompetansen til Ruter for å verne våre privatliv samt holde
725 personopplysninger og betalingsinformasjon unna uvedkommende. Eneste
726 måten å sikre at hvor en befinner seg ikke kan hentes ut fra Ruters
727 systemer er å betale enkeltbilletter med kontanter. Jeg vet at Ruter
728 har en god historie om hvor personvernvennlige mobil-app og
729 RFID-kortene er, men den historien er ikke mulig å uavhengig
730 kontrollere uten priviligert tilgang til interne system og blir dermed
731 bare nok en god historie basert på tillit til de som forteller
732 historien. Det er ikke slik en sikrer privatsfæren. Det gjør en ved
733 å sikre at det ikke (kan) registreres informasjon om ens person.
</p
>
735 <p
>Som vanlig, hvis du bruker Bitcoin og ønsker å vise din støtte til
736 det jeg driver med, setter jeg pris på om du sender Bitcoin-donasjoner
738 <b
><a href=
"bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a
></b
>.
739 Merk, betaling med bitcoin er ikke anonymt. :)
</p
>
744 <title>Stortinget vedtar maskinlesbart register over
20% av selskapseierne i Norge
</title>
745 <link>http://people.skolelinux.org/pere/blog/Stortinget_vedtar_maskinlesbart_register_over_20__av_selskapseierne_i_Norge.html
</link>
746 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Stortinget_vedtar_maskinlesbart_register_over_20__av_selskapseierne_i_Norge.html
</guid>
747 <pubDate>Thu,
7 Feb
2019 23:
55:
00 +
0100</pubDate>
748 <description><p
>Jeg registrerer med glede at Stortinget i dag har
749 <a href=
"https://www.stortinget.no/no/Saker-og-publikasjoner/Saker/Sak/?p=
72826">vedtatt
750 at det skal vedlikeholdes et åpent og maskinlesbart register over
751 reelle rettighetshavere i Norge
</a
>. Her kan en kanskje få et
752 register som kan brukes til å analysere eierskap og kontroll i Norge
753 maskinelt og knytte det til internasjonale databaser som
754 <a href=
"https://opencorporates.com/
">OpenCorporates
</a
>. Det liker
757 <p
>Den vedtatte grense på
25 prosents eierandel fikk stor
758 oppmerksomhet i debatten. Jeg ser fra enkel analyse av skatteetatens
759 eierskapsregister at
80.4% av alle selskapseiere i registeret har
760 mindre enn
25% eierandel, mot
73.8% som har mindre enn
5% eierandel.
761 En grense på
25% vil altså utelukke
80.4% av selskapseierne fra det
762 vedtatte registeret, og en grense på
5% vil skjule
73.8%. En må helt
763 ned i registrering av eierandeler over circa
0.002% for å få mer enn
764 halvparten av selskapseierne i Norge. Mon tro hvor langt ned en må i
765 eierprosent for å få med alle eierskapene til politisk valgte
766 representanter?
</p
>
768 <p
>Jeg biter meg også merke i at Sivert Bjørnstad fra FrP
769 tilsynelatende tror at aksjonærregisteret er et eksisterende åpent
770 register, på tross av at det så vidt jeg vet kun deles ved personlig
771 oppmøte hos skatteetaten og ikke er tilgjengelig i maskinlesbart
772 format for enhver, og dermed så langt ikke er importert inn i
773 OpenCorporates. Det anser jeg ikke for et spesielt åpent register.
774 Debatten ga ellers lite håp om at situasjonen bedrer seg, da
775 finansministeren bare henviste til en fraværende næringsministeren og
776 ikke ville uttale seg om et skikkelig aksjonærregister snart dukker
779 <p
>Som vanlig, hvis du bruker Bitcoin og ønsker å vise din støtte til
780 det jeg driver med, setter jeg pris på om du sender Bitcoin-donasjoner
782 <b
><a href=
"bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a
></b
>.
783 Merk, betaling med bitcoin er ikke anonymt. :)
</p
>