]> pere.pagekite.me Git - homepage.git/blobdiff - blog/tags/standard/index.html
Improve text.
[homepage.git] / blog / tags / standard / index.html
index 32ad02ba67d306bcd399030a3a517940669a98a2..dffe5bf48f15f559eac4a52627a348d904d1181f 100644 (file)
 
     <h3>Entries tagged "standard".</h3>
     
 
     <h3>Entries tagged "standard".</h3>
     
+    <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.  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 ninety 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
+<a href="https://tools.iana.org/public-view/viewticket/1143144">[IANA
+#1143144]</a>.  If all go 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.</p>
+
+<p>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>
+    
+    <div class="entry">
+      <div class="title">
+        <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>
+      </div>
+      <div class="date">
+        24th March 2019
+      </div>
+      <div class="body">
+        <p>Yesterday,  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-March/000451.html">announced
+on the project mailing list</a>.  The 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.3
+since version 0.2.1 (from NEWS.md):</p>
+
+<ul>
+  <li>Improved ClassificationSystem and Class behaviour.</li>
+  <li>Tidied up known inconsistencies between domain model and hateaos links.</li>
+  <li>Added experimental code for blockchain integration.  </li>
+  <li>Make token expiry time configurable at upstart from properties file.</li>
+  <li>Continued work on OData search syntax.</li>
+  <li>Started work on pagination for entities, partly implemented for Saksmappe.</li>
+  <li>Finalise ClassifiedCode Metadata entity.</li>
+  <li>Implement mechanism to check if authentication token is still
+   valid.  This allow the GUI to return a more sensible message to the
+   user if the token is expired.</li>
+  <li>Reintroduce browse.html page to allow user to browse JSON API using
+   hateoas links.</li>
+  <li>Fix bug in handling file/mappe sequence number.  Year change was
+   not properly handled.</li>
+  <li>Update application yml files to be in sync with current development.</li>
+  <li>Stop 'converting' everything to PDF using libreoffice.  Only
+   convert the file formats doc, ppt, xls, docx, pptx, xlsx, odt, odp
+   and ods.</li>
+  <li>Continued code style fixing, making code more readable.</li>
+  <li>Minor bug fixes.</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/_pen_og_gjennomsiktig_vedlikehold_av_spesifikasjonen_for_Noark_5_Tjenestegrensesnitt.html">Åpen og gjennomsiktig vedlikehold av spesifikasjonen for Noark 5 Tjenestegrensesnitt</a>
+      </div>
+      <div class="date">
+        11th March 2019
+      </div>
+      <div class="body">
+        <p>Et virksomhetsarkiv for meg, er et arbeidsverktøy der en enkelt kan
+finne informasjonen en trenger når en trenger det, og der
+virksomhetens samlede kunnskap er tilgjengelig. Det må være greit å
+finne frem i, litt som en bibliotek. Men der et bibliotek gjerne tar
+vare på offentliggjort informasjon som er tilgjengelig flere steder,
+tar et arkiv vare på virksomhetsintern og til tider personlig
+informasjon som ofte kun er tilgjengelig fra et sted.</p>
+
+<p>Jeg mistenker den eneste måten å sikre at arkivet inneholder den
+samlede kunnskapen i en virksomhet, er å bruke det som virksomhetens
+kunnskapslager. Det innebærer å automatisk kopiere (brev, epost,
+SMS-er etc) inn i arkivet når de sendes og mottas, og der filtrere
+vekk det en ikke vil ta vare på, og legge på metadata om det som er
+samlet inn for enkel gjenfinning. En slik bruk av arkivet innebærer at
+arkivet er en del av daglig virke, ikke at det er siste hvilested for
+informasjon ingen lenger har daglig bruk for. For å kunne være en del
+av det daglige virket må arkivet enkelt kunne integreres med andre
+systemer.  I disse dager betyr det å tilby arkivet som en
+nett-tjeneste til hele virksomheten, tilgjengelig for både mennesker
+og datamaskiner.  Det betyr i tur å både tilby nettsider og et
+maskinlesbart grensesnitt.</p>
+
+<p>For noen år siden erkjente visjonære arkivarer fordelene med et
+standardisert maskinlesbart grensesnitt til organisasjonens arkiv.  De
+gikk igang med å lage noe de kalte
+<a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/">Noark
+5 Tjenestegrensesnitt</a>.  Gjort riktig, så åpner slike maskinlesbare
+grensesnitt for samvirke på tvers av uavhengige programvaresystemer.
+Gjort feil, vil det blokkere for samvirke og bidra til
+leverandørinnlåsing.  For å gjøre det riktig så må grensesnittet være
+klart og entydig beskrevet i en spesifikasjon som gjør at
+spesifikasjonen tolkes på samme måte uavhengig av hvem som leser den,
+og uavhengig av hvem som tar den i bruk.</p>
+
+<p>For å oppnå klare og entydige beskrivelser i en spesifikasjon, som
+trengs for å kunne få en fri og åpen standard (se
+<a href="http://people.skolelinux.org/pere/blog/Fri_og__pen_standard__slik_Digistan_ser_det.html">Digistan-definisjon</a>),
+så trengs det en åpen og gjennomsiktig inngangsport med lav terskel,
+der de som forsøker å ta den i bruk enkelt kan få inn korreksjoner,
+etterlyse klargjøringer og rapportere uklarheter i spesifikasjonen.
+En trenger også automatiserte datasystemer som måler og sjekker at et
+gitt grensesnitt fungerer i tråd med spesifikasjonen.</p>
+
+<p>For Noark 5 Tjenestegrensesnittet er det nå etablert en slik åpen
+og gjennomsiktig inngangsport på prosjekttjenesten github.  Denne
+inngangsporten består først og fremst av en åpen portal som lar enhver
+se hva som er gjort av endringer i spesifikasjonsteksten over tid, men
+det hører også med et åpent &quot;diskusjonsforum&quot; der en kan
+komme med endringsforslag og forespørsler om klargjøringer.  Alle
+registrerte brukere på github kan bidra med innspill til disse
+henvendelsene.</p>
+
+<p>I samarbeide med Arkivverket har jeg fått opprettet et git-depot
+med spesifikasjonsteksten for tjenestegrensesnittet, der det er lagt
+inn historikk for endringer i teksten de siste årene, samt lagt inn
+endringsforslag og forespørsler om klargjøring av teksten.  Bakgrunnen
+for at jeg bidro med dette er at jeg er involvert i
+<a href="https://gitlab.com/OsloMet-ABI/nikita-noark5-core">Nikita-prosjektet</a>,
+som lager en fri programvare-utgave av Noark 5 Tjenestegrensesnitt.
+Det er først når en forsøker å lage noe i tråd med en spesifikasjon at
+en oppdager hvor mange detaljer som må beskrives i spesifikasjonen for
+å sikre samhandling.</p>
+
+<p>Spesifikasjonen vedlikeholdes i et rent tekstformat, for å ha et
+format egnet for versjonskontroll via versjontrollsystemet git.  Dette
+gjør det både enkelt å se konkret hvilke endringer som er gjort når,
+samt gjør det praktisk mulig for enhver med github-konto å sende inn
+endringsforslag med formuleringer til spesifikasjonsteksten.  Dette
+tekstformatet vises frem som nettsider på github, slik at en ikke
+trenger spesielle verktøy for å se på siste utgave av
+spesifikasjonen.</p>
+
+<p>Fra dette rene tekstformatet kan det så avledes ulike formater, som
+HTML for websider, PDF for utskrift på papir og ePub for lesing med
+ebokleser.  Avlednings-systemet (byggesystemet) bruker i dag
+verktøyene pandoc, latex, docbook-xsl og GNU make til
+transformasjonen.  Tekstformatet som brukes dag er
+<a href="https://www.markdownguide.org/">Markdown</a>, men det vurderes
+<a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues/9">endre
+til formatet RST</a> i fremtiden for bedre styring av utseende på
+PDF-utgaven.</p>
+
+<p>Versjonskontrollsystemet git ble valgt da det er både fleksibelt,
+avansert og enkelt å ta i bruk. Github ble valgt (foran f.eks. Gitlab
+som vi bruker i Nikita), da Arkivverket allerede hadde tatt i bruk
+Github i andre sammenhenger.</p>
+
+<p>Enkle endringer i teksten kan gjøres av priviligerte brukere
+direkte i nettsidene til Github, ved å finne aktuell fil som skal
+endres (f.eks. kapitler/03-konformitet.md), klikke på den lille
+bokstaven i høyre hjørne over teksten. Det kommer opp en nettside der
+en kan endre teksten slik en ønsker. Når en er fornøyd med endringen
+så må endringen &quot;sjekkes inn&quot; i historikken. Det gjøres ved
+å gi en kort beskrivelse av endringen (beskriv helst hvorfor endringen
+trengs, ikke hva som er endret), under overskriften &quot;Commit
+changes&quot;. En kan og bør legge inn en lengre forklaring i det
+større skrivefeltet, før en velger om endringen skal sendes direkte
+til 'master'-grenen (dvs. autorativ utgave av spesifikasjonen) eller
+om en skal lage en ny gren for denne endringen og opprette en
+endringsforespørsel (aka &quot;Pull Request&quot;/PR). Når alt dette
+er gjort kan en velge &quot;Commit changes&quot; for å sende inn
+endringen. Hvis den er lagt inn i &quot;master&quot;-grenen så er den
+en offisiell del av spesifikasjonen med en gang.  Hvis den derimot er
+en endringsforespørsel, så legges den inn i
+<a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/pulls">listen
+over forslag til endringer</a> som venter på korrekturlesing og
+godkjenning.</p>
+
+<p>Større endringer (for eksempel samtidig endringer i flere filer)
+gjøres enklest ved å hente ned en kopi av git-depoet lokalt og gjøre
+endringene der før endringsforslaget sendes inn. Denne prosessen er
+godt beskrivet i dokumentasjon fra github.  Git-prosjektet som skal
+&quot;klones&quot; er
+<a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/">https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/</a>.</p>
+
+<p>For å registrere nye utfordringer (issues) eller kommentere på
+eksisterende utfordringer benyttes nettsiden
+<a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues">https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues</a>.
+I skrivende stund er det 48 åpne og 11 avsluttede utfordringer.  Et
+forslag til hva som bør være med når en beskriver en utfordring er
+tilgjengelig som utfordring
+<a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues/14">#14</a>.</p>
+
+<p>For å bygge en PDF-utgave av spesifikasjonen så bruker jeg i dag en
+Debian GNU/Linux-maskin med en rekke programpakker installert.  Når
+dette er på plass, så holder det å kjøre kommandoen 'make pdf html' på
+kommandolinjen, vente ca. 20 sekunder, før spesifikasjon.pdf og
+spesifikasjon.html ligger klar på disken. Verktøyene for bygging av
+PDF, HTML og ePub-utgave er også tilgjengelig på Windows og
+MacOSX.</p>
+
+<p>Github bidrar med rammeverket.  Men for at åpent vedlikehold av
+spesifikasjonen skal fungere, så trengs det folk som bidrar med sin
+tid og kunnskap.  Arkivverket har sagt de skal bidra med innspill og
+godkjenne forslag til endringer, men det blir størst suksess hvis alle
+som bruker og lager systemer basert på Noark 5 Tjenestegrensesnitt
+bidrar med sin kunnskap og kommer med forslag til forebedringer.  Jeg
+stiller.  Blir du med?</p>
+
+<p>Det er viktig å legge til rette for åpen diskusjon blant alle
+interesserte, som ikke krever at en må godta lange kontrakter med
+vilkår for deltagelse. Inntil Arkivverket dukker opp på IRC har vi
+laget en IRC-kanal der interesserte enkelt kan orientere seg og
+diskutere tjenestegrensesnittet. Alle er velkommen til å ta turen
+innom
+<a href="https://webchat.freenode.net/?channels=nikita">#nikita</a>
+(f.eks. via irc.freenode.net) for å møte likesinnede.</p>
+
+<p>Det holder dog ikke å ha en god spesifikasjon, hvis ikke de som tar
+den i bruk gjør en like god jobb. For å automatisk teste om et konkret
+tjenestegrensesnitt følger (min) forståelse av
+spesifikasjonsdokumentet, har jeg skrevet et program som kobler seg
+opp til et Noark 5v4 REST-tjeneste og tester alt den finner for å se
+om det er i henhold til min tolkning av spesifikasjonen.  Dette
+verktøyet er tilgjengelig fra
+<a href="https://github.com/petterreinholdtsen/noark5-tester">https://github.com/petterreinholdtsen/noark5-tester</a>,
+og brukes daglig mens vi utvikler Nikita for å sikre at vi ikke
+introduserer nye feil.  Hvis en skal sikre samvirke på tvers av ulike
+systemer er det helt essensielt å kunne raskt og automatisk sjekke at
+tjenestegrensesnittet oppfører seg som forventet.  Jeg håper andre som
+lager sin utgave av tjenestegrensesnittet vi bruke dette verktøyet,
+slik at vi tidlig og raskt kan oppdage hvor vi har tolket
+spesifikasjonen ulikt, og dermed få et godt grunnlag for å gjøre
+spesifikasjonsteksten enda klarere og bedre.</p>
+
+<p>Dagens beskrivelse av Noark 5 Tjenestegrensesnitt er et svært godt
+utgangspunkt for å gjøre virksomhetens arkiv til et dynamisk og
+sentralt arbeidsverktøy i organisasjonen.  Blir du med å gjøre den
+enda bedre?</p>
+
+      </div>
+      <div class="tags">
+        
+        
+        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>.
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
+    <div class="entry">
+      <div class="title">
+        <a href="http://people.skolelinux.org/pere/blog/Why_is_your_site_not_using_Content_Security_Policy___CSP_.html">Why is your site not using Content Security Policy / CSP?</a>
+      </div>
+      <div class="date">
+         9th December 2018
+      </div>
+      <div class="body">
+        <p>Yesterday, I had the pleasure of watching on Frikanalen the OWASP
+talk by Scott Helme titled
+"<a href="https://frikanalen.no/video/626080/">What We’ve Learned From
+Billions of Security Reports</a>".  I had not heard of the
+<a href="https://en.wikipedia.org/wiki/Content_Security_Policy">Content
+Security Policy standard</a> nor its ability to "call home" when a
+browser detect a policy breach (I do not follow web page design
+development much these days), and found the talk very illuminating.</p>
+
+<p>The mechanism allow a web site owner to use HTTP headers to tell
+visitors web browser which sources (internal and external) are allowed to
+be used on the web site.  Thus it become possible to enforce a "only
+local content" policy despite web designers urge to fetch programs
+from random sites on the Internet, like the one
+<a href="https://securityaffairs.co/wordpress/68966/hacking/browsealoud-plugin-hack.html">enabling
+the attack</a> reported by Scott Helme earlier this year.</p>
+
+<p>Using CSP seem like an obvious thing for a site admin to implement
+to take some control over the information leak that occur when
+external sources are used to render web pages, it is a mystery more
+sites are not using CSP?  It is being
+<a href="https://www.w3.org/TR/CSP/">standardized under W3C</a> these
+days, and is supposed by most web browsers</p>
+
+<p>I managed to find <a href="https://github.com/mozilla/django-csp">a
+Django middleware for implementing CSP</a> and was happy to discover
+it was already in Debian.  I plan to use it to add CSP support to the
+Frikanalen web site soon.</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/standard">standard</a>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</a>.
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
+    <div class="entry">
+      <div class="title">
+        <a href="http://people.skolelinux.org/pere/blog/Time_for_an_official_MIME_type_for_patches_.html">Time for an official MIME type for patches?</a>
+      </div>
+      <div class="date">
+         1st November 2018
+      </div>
+      <div class="body">
+        <p>As part of my involvement in
+<a href="https://gitlab.com/OsloMet-ABI/nikita-noark5-core">the Nikita
+archive API project</a>, I've been importing a fairly large lump of
+emails into a test instance of the archive to see how well this would
+go.  I picked a subset of <a href="https://notmuchmail.org/">my
+notmuch email database</a>, all public emails sent to me via
+@lists.debian.org, giving me a set of around 216 000 emails to import.
+In the process, I had a look at the various attachments included in
+these emails, to figure out what to do with attachments, and noticed
+that one of the most common attachment formats do not have
+<a href="https://www.iana.org/assignments/media-types/media-types.xhtml">an
+official MIME type</a> registered with IANA/IETF.  The output from
+diff, ie the input for patch, is on the top 10 list of formats
+included in these emails.  At the moment people seem to use either
+text/x-patch or text/x-diff, but neither is officially registered.  It
+would be better if one official MIME type were registered and used
+everywhere.</p>
+
+<p>To try to get one official MIME type for these files, I've brought
+up the topic on
+<a href="https://www.ietf.org/mailman/listinfo/media-types">the
+media-types mailing list</a>.  If you are interested in discussion
+which MIME type to use as the official for patch files, or involved in
+making software using a MIME type for patches, perhaps you would like
+to join the discussion?</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/debian">debian</a>, <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/standard">standard</a>.
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
+    <div class="entry">
+      <div class="title">
+        <a href="http://people.skolelinux.org/pere/blog/Release_0_2_of_free_software_archive_system_Nikita_announced.html">Release 0.2 of free software archive system Nikita announced</a>
+      </div>
+      <div class="date">
+        18th October 2018
+      </div>
+      <div class="body">
+        <p>This morning, the new release of the
+<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/2018-October/000406.html">announced
+on the project mailing list</a>.  The 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.2
+since version 0.1.1 (from NEWS.md):
+
+<ul>
+  <li>Fix typos in REL names</li>
+  <li>Tidy up error message reporting</li>
+  <li>Fix issue where we used Integer.valueOf(), not Integer.getInteger()</li>
+  <li>Change some String handling to StringBuffer</li>
+  <li>Fix error reporting</li>
+  <li>Code tidy-up</li>
+  <li>Fix issue using static non-synchronized SimpleDateFormat to avoid 
+      race conditions</li>
+  <li>Fix problem where deserialisers were treating integers as strings</li>
+  <li>Update methods to make them null-safe</li>
+  <li>Fix many issues reported by coverity</li>
+  <li>Improve equals(), compareTo() and hash() in domain model</li>
+  <li>Improvements to the domain model for metadata classes</li>
+  <li>Fix CORS issues when downloading document</li>
+  <li>Implementation of case-handling with registryEntry and document upload</li>
+  <li>Better support in Javascript for OPTIONS</li>
+  <li>Adding concept description of mail integration</li>
+  <li>Improve setting of default values for GET on ny-journalpost</li>
+  <li>Better handling of required values during deserialisation </li>
+  <li>Changed tilknyttetDato (M620) from date to dateTime</li>
+  <li>Corrected some opprettetDato (M600) (de)serialisation errors.</li>
+  <li>Improve parse error reporting.</li>
+  <li>Started on OData search and filtering.</li>
+  <li>Added Contributor Covenant Code of Conduct to project.</li>
+  <li>Moved repository and project from Github to Gitlab.</li>
+  <li>Restructured repository, moved code into src/ and web/.</li>
+  <li>Updated code to use Spring Boot version 2.</li>
+  <li>Added support for OAuth2 authentication.</li>
+  <li>Fixed several bugs discovered by Coverity.</li>
+  <li>Corrected handling of date/datetime fields.</li>
+  <li>Improved error reporting when rejecting during deserializatoin.</li>
+  <li>Adjusted default values provided for ny-arkivdel, ny-mappe,
+   ny-saksmappe, ny-journalpost and ny-dokumentbeskrivelse.</li>
+  <li>Several fixes for korrespondansepart*.</li>
+  <li>Updated web GUI:
+     <ul>
+       <li>Now handle both file upload and download.</li>
+       <li>Uses new OAuth2 authentication for login.</li>
+       <li>Forms now fetches default values from API using GET.</li>
+       <li>Added RFC 822 (email), TIFF and JPEG to list of possible file formats.</li>
+     </ul></li>
+</ul>
+
+<p>The changes and improvements are extensive.  Running diffstat on
+the changes between git tab 0.1.1 and 0.2 show 1098 files changed,
+108666 insertions(+), 54066 deletions(-).</p>
+
+<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/Release_0_1_1_of_free_software_archive_system_Nikita_announced.html">Release 0.1.1 of free software archive system Nikita announced</a>
     <div class="entry">
       <div class="title">
         <a href="http://people.skolelinux.org/pere/blog/Release_0_1_1_of_free_software_archive_system_Nikita_announced.html">Release 0.1.1 of free software archive system Nikita announced</a>
@@ -79,7 +746,7 @@ mailing list).</p>
       <div class="tags">
         
         
       <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/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>.
+        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>
@@ -185,7 +852,7 @@ the Noark 5 specification?</p>
       <div class="tags">
         
         
       <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/offentlig innsyn">offentlig innsyn</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>.
+        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/offentlig innsyn">offentlig innsyn</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>.
         
         
       </div>
         
         
       </div>
@@ -259,7 +926,7 @@ fremdriften på web</a>.</p>
       <div class="tags">
         
         
       <div class="tags">
         
         
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk</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>.
+        Tags: <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/offentlig innsyn">offentlig innsyn</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>.
         
         
       </div>
         
         
       </div>
@@ -296,7 +963,7 @@ itches.</p>
 
 <p>If you would like to help make sure there is a free software
 alternatives for the archives, please join our IRC channel
 
 <p>If you would like to help make sure there is a free software
 alternatives for the archives, please join our IRC channel
-(<a href="irc://irc.freenode.net/%23nikita"">#nikita on
+(<a href="irc://irc.freenode.net/%23nikita">#nikita on
 irc.freenode.net</a>) and
 <a href="https://lists.nuug.no/mailman/listinfo/nikita-noark">the
 project mailing list</a>.</p>
 irc.freenode.net</a>) and
 <a href="https://lists.nuug.no/mailman/listinfo/nikita-noark">the
 project mailing list</a>.</p>
@@ -367,7 +1034,7 @@ implemented in Python.</p>
       <div class="tags">
         
         
       <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/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>.
+        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>
@@ -5044,6 +5711,46 @@ Kjenner kun til ufullstendige løsninger for slikt.</p>
 <h2>Archive</h2>
 <ul>
 
 <h2>Archive</h2>
 <ul>
 
+<li>2019
+<ul>
+
+<li><a href="http://people.skolelinux.org/pere/blog/archive/2019/01/">January (4)</a></li>
+
+<li><a href="http://people.skolelinux.org/pere/blog/archive/2019/02/">February (3)</a></li>
+
+<li><a href="http://people.skolelinux.org/pere/blog/archive/2019/03/">March (3)</a></li>
+
+<li><a href="http://people.skolelinux.org/pere/blog/archive/2019/05/">May (1)</a></li>
+
+</ul></li>
+
+<li>2018
+<ul>
+
+<li><a href="http://people.skolelinux.org/pere/blog/archive/2018/01/">January (1)</a></li>
+
+<li><a href="http://people.skolelinux.org/pere/blog/archive/2018/02/">February (5)</a></li>
+
+<li><a href="http://people.skolelinux.org/pere/blog/archive/2018/03/">March (5)</a></li>
+
+<li><a href="http://people.skolelinux.org/pere/blog/archive/2018/04/">April (3)</a></li>
+
+<li><a href="http://people.skolelinux.org/pere/blog/archive/2018/06/">June (2)</a></li>
+
+<li><a href="http://people.skolelinux.org/pere/blog/archive/2018/07/">July (5)</a></li>
+
+<li><a href="http://people.skolelinux.org/pere/blog/archive/2018/08/">August (3)</a></li>
+
+<li><a href="http://people.skolelinux.org/pere/blog/archive/2018/09/">September (3)</a></li>
+
+<li><a href="http://people.skolelinux.org/pere/blog/archive/2018/10/">October (5)</a></li>
+
+<li><a href="http://people.skolelinux.org/pere/blog/archive/2018/11/">November (2)</a></li>
+
+<li><a href="http://people.skolelinux.org/pere/blog/archive/2018/12/">December (4)</a></li>
+
+</ul></li>
+
 <li>2017
 <ul>
 
 <li>2017
 <ul>
 
@@ -5067,6 +5774,8 @@ Kjenner kun til ufullstendige løsninger for slikt.</p>
 
 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/11/">November (3)</a></li>
 
 
 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/11/">November (3)</a></li>
 
+<li><a href="http://people.skolelinux.org/pere/blog/archive/2017/12/">December (4)</a></li>
+
 </ul></li>
 
 <li>2016
 </ul></li>
 
 <li>2016
@@ -5317,7 +6026,7 @@ Kjenner kun til ufullstendige løsninger for slikt.</p>
 <h2>Tags</h2>
 <ul>
 
 <h2>Tags</h2>
 <ul>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (14)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (16)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/amiga">amiga (1)</a></li>
 
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/amiga">amiga (1)</a></li>
 
@@ -5325,47 +6034,51 @@ Kjenner kun til ufullstendige løsninger for slikt.</p>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/bankid">bankid (4)</a></li>
 
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/bankid">bankid (4)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (9)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/betalkontant">betalkontant (8)</a></li>
+
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (11)</a></li>
 
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (16)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (17)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/bsa">bsa (2)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/chrpath">chrpath (2)</a></li>
 
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/bsa">bsa (2)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/chrpath">chrpath (2)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/debian">debian (154)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/debian">debian (167)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (158)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/debian-handbook">debian-handbook (4)</a></li>
 
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (158)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/debian-handbook">debian-handbook (4)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan (10)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan (11)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/dld">dld (17)</a></li>
 
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/dld">dld (17)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook (24)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook (25)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
 
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/english">english (360)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/english">english (401)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (23)</a></li>
 
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (23)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (12)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (14)</a></li>
 
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (30)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (33)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox (9)</a></li>
 
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox (9)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (18)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (20)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/h264">h264 (20)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju (42)</a></li>
 
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/h264">h264 (20)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju (42)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram (15)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram (16)</a></li>
 
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/kart">kart (20)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/kart">kart (21)</a></li>
+
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/kodi">kodi (4)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap (9)</a></li>
 
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap (9)</a></li>
 
@@ -5379,21 +6092,23 @@ Kjenner kun til ufullstendige løsninger for slikt.</p>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network (8)</a></li>
 
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network (8)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (39)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (42)</a></li>
+
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software (12)</a></li>
 
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software (9)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/noark5">noark5 (13)</a></li>
 
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk (293)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk (305)</a></li>
 
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug (189)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug (194)</a></li>
 
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (33)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (36)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/open311">open311 (2)</a></li>
 
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/open311">open311 (2)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (67)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (73)</a></li>
 
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern (104)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern (108)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/raid">raid (2)</a></li>
 
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/raid">raid (2)</a></li>
 
@@ -5403,27 +6118,27 @@ Kjenner kun til ufullstendige løsninger for slikt.</p>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/rfid">rfid (3)</a></li>
 
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/rfid">rfid (3)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/robot">robot (10)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/robot">robot (11)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/rss">rss (1)</a></li>
 
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/rss">rss (1)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/ruter">ruter (5)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/ruter">ruter (7)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (2)</a></li>
 
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (2)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (53)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (55)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (4)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (5)</a></li>
 
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (4)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (5)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/standard">standard (55)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/standard">standard (62)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (6)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (12)</a></li>
 
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (6)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (12)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (52)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (55)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (4)</a></li>
 
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (4)</a></li>
 
@@ -5431,13 +6146,13 @@ Kjenner kun til ufullstendige løsninger for slikt.</p>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/valg">valg (9)</a></li>
 
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/valg">valg (9)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/verkidetfri">verkidetfri (5)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/verkidetfri">verkidetfri (15)</a></li>
 
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/video">video (59)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/video">video (73)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (4)</a></li>
 
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (4)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/web">web (40)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/web">web (42)</a></li>
 
 </ul>
 
 
 </ul>