- <div class="entry">
- <div class="title"><a href="http://people.skolelinux.org/pere/blog/The_space_rover_coquine__or_how_I_ended_up_on_the_dark_side_of_the_moon.html">The space rover coquine, or how I ended up on the dark side of the moon</a></div>
- <div class="date"> 2nd June 2019</div>
- <div class="body"><p>A while back a college and friend from Debian and the Skolelinux /
-Debian Edu project approached me, asking if I knew someone that might
-be interested in helping out with a technology project he was running
-as a teacher at <a href="https://www.ecolefrancodanoise.dk/">L'école
-franco-danoise</a> - the Danish-French school and kindergarden. The
-kids were building robots, rovers. The story behind it is to build a
-rover for use
-<a href="http://blog.ecolefrancodanoise.dk/first-week-on-the-dark-side">on
-the dark side of the moon</a>, and remote control it. As travel cost
-was a bit high for the final destination, and they wanted to test the
-concept first, he was looking for volunteers to host a rover for the
-kids to control in a foreign country. I ended up volunteering as a
-host, and last week the rover arrived. It took a while to arrive
-after <a href="http://blog.ecolefrancodanoise.dk/model-moms">it was
-built and shipped</a>, because of customs confusion. Luckily we were
-able fix it quickly with help from my colleges at work.</p>
-
-<p>This is what it looked like when the rover arrived. Note the cute
-eyes looking up on me from the wrapping</p>
-
-<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"/>
-<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"/>
-<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"/>
-
-<p style="text-align:left">Once the robot arrived, we needed to track
-down batteries and figure out how to build custom firmware for it with
-the appropriate wifi settings. I asked a friend if I could get two
-18650 batteries from his pile of Tesla batteries (he had them from the
-wrack of a crashed Tesla), so now the rover is running on Tesla
-batteries.</p>
-
-<p>Building
-<a href="https://gitlab.com/ecolefrancodanoise/arduino-efd/">the rover
-firmware</a> proved a bit harder, as the code did not work out of the
-box with the Arduino IDE package in Debian Buster. I suspect this is
-due to a unsolved
-<a href="https://github.com/arduino/Arduino/pull/2703"> license problem
-with arduino</a> blocking Debian from upgrading to the latest version.
-In the end we gave up debugging why the IDE failed to find the
-required libraries, and ended up using the Arduino Makefile from the
-<a href="https://tracker.debian.org/pkg/arduino-mk">arduino-mk Debian
-package</a> instead. Unfortunately the camera library is missing from
-the Arduino environment in Debian, so we disabled the camera support
-for the first firmware build, to get something up and running. With
-this reduced firmware, the robot could be controlled via the
-controller server, driving around and measuring distance using its
-internal acoustic sensor.</p>
-
-<p>Next, With some help from my friend in Denmark, which checked in the
-camera library into the gitlab repository for me to use, we were able
-to build a new and more complete version of the firmware, and the
-robot is now up and running. This is what the "commander" web page
-look like after taking a measurement and a snapshot:</p>
-
-<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"/>
-
-<p>If you want to learn more about this project, you can check out the
-<a href="https://hackaday.io/project/164082-the-dark-side-challenge">The
-Dark Side Challenge</a> Hackaday web pages.</p>
-
-<p>As usual, if you use Bitcoin and want to show your support of my
-activities, please send Bitcoin donations to my address
-<b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
-</div>
- <div class="tags">
-
-
- Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/robot">robot</a>.
-
-
- </div>
- </div>
- <div class="padding"></div>
-
- <div class="entry">
- <div class="title"><a href="http://people.skolelinux.org/pere/blog/Nikita_version_0_4_released___free_software_archive_API_server.html">Nikita version 0.4 released - free software archive API server</a></div>
- <div class="date">22nd May 2019</div>
- <div class="body"><p>This morning, a new release of
-<a href="https://gitlab.com/OsloMet-ABI/nikita-noark5-core/">Nikita
-Noark 5 core project</a> was
-<a href="https://lists.nuug.no/pipermail/nikita-noark/2019-May/000468.html">announced
-on the project mailing list</a>. The Nikita free software solution is
-an implementation of the Norwegian archive standard Noark 5 used by
-government offices in Norway. These were the changes in version 0.4
-since version 0.3, see the email link above for links to a demo site:</p>
-
-<ul>
-
- <li>Roll out OData handling to all endpoints where applicable</li>
- <li>Changed the relation key for "ny-journalpost" to the official one.</li>
- <li>Better link generation on outgoing links.</li>
- <li>Tidy up code and make code and approaches more consistent throughout
- the codebase</li>
- <li>Update rels to be in compliance with updated version in the
- interface standard</li>
- <li>Avoid printing links on empty objects as they can't have links</li>
- <li>Small bug fixes and improvements</li>
- <li>Start moving generation of outgoing links to @Service layer so access
- control can be used when generating links</li>
- <li>Log exception that was being swallowed so it's traceable</li>
- <li>Fix name mapping problem</li>
- <li>Update templated printing so templated should only be printed if it
- is set true. Requires more work to roll out across entire
- application.</li>
- <li>Remove Record->DocumentObject as per domain model of n5v4</li>
- <li>Add ability to delete lists filtered with OData</li>
- <li>Return NO_CONTENT (204) on delete as per interface standard</li>
- <li>Introduce support for ConstraintViolationException exception</li>
- <li>Make Service classes extend NoarkService</li>
- <li>Make code base respect X-Forwarded-Host, X-Forwarded-Proto and
- X-Forwarded-Port</li>
- <li>Update CorrespondencePart* code to be more in line with Single
- Responsibility Principle</li>
- <li>Make package name follow directory structure</li>
- <li>Make sure Document number starts at 1, not 0</li>
- <li>Fix isues discovered by FindBugs</li>
- <li>Update from Date to ZonedDateTime</li>
- <li>Fix wrong tablename</li>
- <li>Introduce Service layer tests</li>
- <li>Improvements to CorrespondencePart</li>
- <li>Continued work on Class / Classificationsystem</li>
- <li>Fix feature where authors were stored as storageLocations</li>
- <li>Update HQL builder for OData</li>
- <li>Update OData search capability from webpage</li>
-
-</ul>
-
-<p>If free and open standardized archiving API sound interesting to
-you, please contact us on IRC
-(<a href="irc://irc.freenode.net/%23nikita">#nikita on
-irc.freenode.net</a>) or email
-(<a href="https://lists.nuug.no/mailman/listinfo/nikita-noark">nikita-noark
-mailing list</a>).</p>
-
-<p>As usual, if you use Bitcoin and want to show your support of my
-activities, please send Bitcoin donations to my address
-<b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
-</div>
- <div class="tags">
-
-
- 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>.
-
-
- </div>
- </div>
- <div class="padding"></div>
-
- <div class="entry">
- <div class="title"><a href="http://people.skolelinux.org/pere/blog/MIME_type__text_vnd_sosi__for_SOSI_map_data.html">MIME type "text/vnd.sosi" for SOSI map data</a></div>
- <div class="date">20th May 2019</div>
- <div class="body"><p>As part of my involvement in the work to
-<a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard">standardise
-a REST based API for Noark 5</a>, the Norwegian archiving standard, I
-spent some time the last few months to try to register a
-<a href="https://www.iana.org/assignments/media-types/">MIME type</a>
-and <a href="https://www.nationalarchives.gov.uk/PRONOM/">PRONOM
-code</a> for the SOSI file format. The background is that there is a
-set of formats approved for long term storage and archiving in Norway,
-and among these formats, SOSI is the only format missing a MIME type
-and PRONOM code.</p>
-
-<p>What is SOSI, you might ask? To quote Wikipedia: SOSI is short for
-Samordnet Opplegg for Stedfestet Informasjon (literally "Coordinated
-Approach for Spatial Information", but more commonly expanded in
-English to Systematic Organization of Spatial Information). It is a
-text based file format for geo-spatial vector information used in
-Norway. Information about the SOSI format can be found in English
-from <a href="https://en.wikipedia.org/wiki/SOSI">Wikipedia</a>. The
-specification is available in Norwegian from
-<a href="https://www.kartverket.no/geodataarbeid/Standarder/SOSI/">the
-Norwegian mapping authority</a>. The SOSI standard, which originated
-in the beginning of nineteen eighties, was the inspiration and formed the
-basis for the XML based
-<a href="https://en.wikipedia.org/wiki/Geography_Markup_Language">Geography
-Markup Language</a>.</p>
-
-<p>I have so far written
-<a href="https://github.com/file/file/pull/67">a pattern matching
-rule</a> for the file(1) unix tool to recognize SOSI files, submitted
-a request to the PRONOM project to have a PRONOM ID assigned to the
-format (reference TNA1555078202S60), and today send a request to IANA
-to register the "text/vnd.sosi" MIME type for this format (referanse
-<a href="https://tools.iana.org/public-view/viewticket/1143144">IANA
-#1143144</a>). If all goes well, in a few months, anyone implementing
-the Noark 5 Tjenestegrensesnitt API spesification should be able to
-use an official MIME type and PRONOM code for SOSI files. In
-addition, anyone using SOSI files on Linux should be able to
-automatically recognise the format and web sites handing out SOSI
-files can begin providing a more specific MIME type. So far, SOSI
-files has been handed out from web sites using the
-"application/octet-stream" MIME type, which is just a nice way of
-stating "I do not know". Soon, we will know. :)</p>
-
-<p>As usual, if you use Bitcoin and want to show your support of my
-activities, please send Bitcoin donations to my address
-<b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
-</div>
- <div class="tags">
-
-
- Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/kart">kart</a>, <a href="http://people.skolelinux.org/pere/blog/tags/noark5">noark5</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>.
-
-
- </div>
- </div>
- <div class="padding"></div>
-
- <div class="entry">
- <div class="title"><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></div>
- <div class="date">25th March 2019</div>
- <div class="body"><p>As part of my involvement with the
-<a href="https://gitlab.com/OsloMet-ABI/nikita-noark5-core/">Nikita
-Noark 5 core project</a>, I have been proposing improvements to the
-API specification created by <a href="https://www.arkivverket.no/">The
-National Archives of Norway</a> and helped migrating the text from a
-version control system unfriendly binary format (docx) to Markdown in
-git. Combined with the migration to a public git repository (on
-github), this has made it possible for anyone to suggest improvement
-to the text.</p>
-
-<p>The specification is filled with UML diagrams. I believe the
-original diagrams were modelled using Sparx Systems Enterprise
-Architect, and exported as EMF files for import into docx. This
-approach make it very hard to track changes using a version control
-system. To improve the situation I have been looking for a good text
-based UML format with associated command line free software tools on
-Linux and Windows, to allow anyone to send in corrections to the UML
-diagrams in the specification. The tool must be text based to work
-with git, and command line to be able to run it automatically to
-generate the diagram images. Finally, it must be free software to
-allow anyone, even those that can not accept a non-free software
-license, to contribute.</p>
-
-<p>I did not know much about free software UML modelling tools when I
-started. I have used dia and inkscape for simple modelling in the
-past, but neither are available on Windows, as far as I could tell. I
-came across a nice
-<a href="https://modeling-languages.com/text-uml-tools-complete-list/">list
-of text mode uml tools</a>, and tested out a few of the tools listed
-there. <a href="http://plantuml.com/">The PlantUML tool</a> seemed
-most promising. After verifying that the packages
-<a href="https://tracker.debian.org/pkg/plantuml">is available in
-Debian</a> and found <a href="https://github.com/plantuml/plantuml">its
-Java source</a> under a GPL license on github, I set out to test if it
-could represent the diagrams we needed, ie the ones currently in
-<a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/">the
-Noark 5 Tjenestegrensesnitt specification</a>. I am happy to report
-that it could represent them, even thought it have a few warts here
-and there.</p>
-
-<p>After a few days of modelling I completed the task this weekend. A
-temporary link to the complete set of diagrams (original and from
-PlantUML) is available in
-<a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues/76">the
-github issue discussing the need for a text based UML format</a>, but
-please note I lack a sensible tool to convert EMF files to PNGs, so
-the "original" rendering is not as good as the original was in the
-publised PDF.</p>
-
-<p>Here is an example UML diagram, showing the core classes for
-keeping metadata about archived documents:</p>
-
-<pre>
-@startuml
-skinparam classAttributeIconSize 0
-
-!include media/uml-class-arkivskaper.iuml
-!include media/uml-class-arkiv.iuml
-!include media/uml-class-klassifikasjonssystem.iuml
-!include media/uml-class-klasse.iuml
-!include media/uml-class-arkivdel.iuml
-!include media/uml-class-mappe.iuml
-!include media/uml-class-merknad.iuml
-!include media/uml-class-registrering.iuml
-!include media/uml-class-basisregistrering.iuml
-!include media/uml-class-dokumentbeskrivelse.iuml
-!include media/uml-class-dokumentobjekt.iuml
-!include media/uml-class-konvertering.iuml
-!include media/uml-datatype-elektronisksignatur.iuml
-
-Arkivstruktur.Arkivskaper "+arkivskaper 1..*" <-o "+arkiv 0..*" Arkivstruktur.Arkiv
-Arkivstruktur.Arkiv o--> "+underarkiv 0..*" Arkivstruktur.Arkiv
-Arkivstruktur.Arkiv "+arkiv 1" o--> "+arkivdel 0..*" Arkivstruktur.Arkivdel
-Arkivstruktur.Klassifikasjonssystem "+klassifikasjonssystem [0..1]" <--o "+arkivdel 1..*" Arkivstruktur.Arkivdel
-Arkivstruktur.Klassifikasjonssystem "+klassifikasjonssystem [0..1]" o--> "+klasse 0..*" Arkivstruktur.Klasse
-Arkivstruktur.Arkivdel "+arkivdel 0..1" o--> "+mappe 0..*" Arkivstruktur.Mappe
-Arkivstruktur.Arkivdel "+arkivdel 0..1" o--> "+registrering 0..*" Arkivstruktur.Registrering
-Arkivstruktur.Klasse "+klasse 0..1" o--> "+mappe 0..*" Arkivstruktur.Mappe
-Arkivstruktur.Klasse "+klasse 0..1" o--> "+registrering 0..*" Arkivstruktur.Registrering
-Arkivstruktur.Mappe --> "+undermappe 0..*" Arkivstruktur.Mappe
-Arkivstruktur.Mappe "+mappe 0..1" o--> "+registrering 0..*" Arkivstruktur.Registrering
-Arkivstruktur.Merknad "+merknad 0..*" <--* Arkivstruktur.Mappe
-Arkivstruktur.Merknad "+merknad 0..*" <--* Arkivstruktur.Dokumentbeskrivelse
-Arkivstruktur.Basisregistrering -|> Arkivstruktur.Registrering
-Arkivstruktur.Merknad "+merknad 0..*" <--* Arkivstruktur.Basisregistrering
-Arkivstruktur.Registrering "+registrering 1..*" o--> "+dokumentbeskrivelse 0..*" Arkivstruktur.Dokumentbeskrivelse
-Arkivstruktur.Dokumentbeskrivelse "+dokumentbeskrivelse 1" o-> "+dokumentobjekt 0..*" Arkivstruktur.Dokumentobjekt
-Arkivstruktur.Dokumentobjekt *-> "+konvertering 0..*" Arkivstruktur.Konvertering
-Arkivstruktur.ElektroniskSignatur -[hidden]-> Arkivstruktur.Dokumentobjekt
-@enduml
-</pre>
-
-<p><a href="http://plantuml.com/class-diagram">The format</a> is quite
-compact, with little redundant information. The text expresses
-entities and relations, and there is little layout related fluff. One
-can reuse content by using include files, allowing for consistent
-naming across several diagrams. The include files can be standalone
-PlantUML too. Here is the content of
-<tt>media/uml-class-arkivskaper.iuml<tt>:</p>
-
-<pre>
-@startuml
-class Arkivstruktur.Arkivskaper <Arkivenhet> {
- +arkivskaperID : string
- +arkivskaperNavn : string
- +beskrivelse : string [0..1]
-}
-@enduml
-</pre>
-
-<p>This is what the complete diagram for the PlantUML notation above
-look like:</p>
-
-<p><img width="80%" src="http://people.skolelinux.org/pere/blog/images/2019-03-25-noark5-plantuml-diagrameksempel.png"></p>
-
-<p>A cool feature of PlantUML is that the generated PNG files include
-the entire original source diagram as text. The source (with include
-statements expanded) can be extracted using for example
-<tt>exiftool</tt>. Another cool feature is that parts of the entities
-can be hidden after inclusion. This allow to use include files with
-all attributes listed, even for UML diagrams that should not list any
-attributes.</p>
-
-<p>The diagram also show some of the warts. Some times the layout
-engine place text labels on top of each other, and some times it place
-the class boxes too close to each other, not leaving room for the
-labels on the relationship arrows. The former can be worked around by
-placing extra newlines in the labes (ie "\n"). I did not do it here
-to be able to demonstrate the issue. I have not found a good way
-around the latter, so I normally try to reduce the problem by changing
-from vertical to horizontal links to improve the layout.</p>
-
-<p>All in all, I am quite happy with PlantUML, and very impressed with
-how quickly its lead developer responds to questions. So far I got an
-answer to my questions in a few hours when I send an email. I
-definitely recommend looking at PlantUML if you need to make UML
-diagrams. Note, PlantUML can draw a lot more than class relations.
-Check out the documention for a complete list. :)</p>
-
-<p>As usual, if you use Bitcoin and want to show your support of my
-activities, please send Bitcoin donations to my address
-<b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
-</div>
- <div class="tags">
-
-
- 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>.
-
-
- </div>
- </div>
- <div class="padding"></div>
-