Petter Reinholdtsen

Jami/Ring, finally functioning peer to peer communication client
19th June 2019

Some years ago, in 2016, I wrote for the first time about the Ring peer to peer messaging system. It would provide messaging without any central server coordinating the system and without requiring all users to register a phone number or own a mobile phone. Back then, I could not get it to work, and put it aside until it had seen more development. A few days ago I decided to give it another try, and am happy to report that this time I am able to not only send and receive messages, but also place audio and video calls. But only if UDP is not blocked into your network.

The Ring system changed name earlier this year to Jami. I tried doing web search for 'ring' when I discovered it for the first time, and can only applaud this change as it is impossible to find something called Ring among the noise of other uses of that word. Now you can search for 'jami' and this client and the Jami system is the first hit at least on duckduckgo.

Jami will by default encrypt messages as well as audio and video calls, and try to send them directly between the communicating parties if possible. If this proves impossible (for example if both ends are behind NAT), it will use a central SIP TURN server maintained by the Jami project. Jami can also be a normal SIP client. If the SIP server is unencrypted, the audio and video calls will also be unencrypted. This is as far as I know the only case where Jami will do anything without encryption.

Jami is available for several platforms: Linux, Windows, MacOSX, Android, iOS, and Android TV. It is included in Debian already. Jami also work for those using F-Droid without any Google connections, while Signal do not. The protocol is described in the Ring project wiki. The system uses a distributed hash table (DHT) system (similar to BitTorrent) running over UDP. On one of the networks I use, I discovered Jami failed to work. I tracked this down to the fact that incoming UDP packages going to ports 1-49999 were blocked, and the DHT would pick a random port and end up in the low range most of the time. After talking to the developers, I solved this by enabling the dhtproxy in the settings, thus using TCP to talk to a central DHT proxy instead of peering directly with others. I've been told the developers are working on allowing DHT to use TCP to avoid this problem. I also ran into a problem when trying to talk to the version of Ring included in Debian Stable (Stretch). Apparently the protocol changed between beta2 and the current version, making these clients incompatible. Hopefully the protocol will not be made incompatible in the future.

It is worth noting that while looking at Jami and its features, I came across another communication platform I have not tested yet. The Tox protocol and family of Tox clients. It might become the topic of a future blog post.

As usual, if you use Bitcoin and want to show your support of my activities, please send Bitcoin donations to my address 15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b.

Tags: debian, english, sikkerhet, surveillance.
More sales number for my Free Culture paper editions (2019-edition)
11th June 2019

The first book I published, Free Culture by Lawrence Lessig, is still selling a few copies. Not a lot, but enough to have contributed slightly over $500 to the Creative Commons Corporation so far. All the profit is sent there. Most books are still sold via Amazon (83 copies), with Ingram second (49) and Lulu (12) and Machette (7) as minor channels. Bying directly from Lulu bring the largest cut to Creative Commons. The English Edition sold 80 copies so far, the French 59 copies, and Norwegian only 8 copies. Nothing impressive, but nice to see the work we put down is still being appreciated. The ebook edition is available for free from Github.

Title / language Quantity
2016 jan-jun 2016 jul-dec 2017 jan-jun 2017 jul-dec 2018 jan-jun 2018 jul-dec 2019 jan-may
Culture Libre / French 3 6 19 11 7 6 7
Fri kultur / Norwegian 7 1 0 0 0 0 0
Free Culture / English 14 27 16 9 3 7 3
Total 24 34 35 20 10 13 10

It is fun to see the French edition being more popular than the English one.

If you would like to translate and publish the book in your native language, I would be happy to help make it happen. Please get in touch.

Tags: docbook, english, freeculture.
Official MIME type "text/vnd.sosi" for SOSI map data
4th June 2019

Just 15 days ago, I mentioned my submission to IANA to register an official MIME type for the SOSI vector map format. This morning, just an hour ago, I was notified that the MIME type "text/vnd.sosi" is registered for this format. In addition to this registration, my file(1) patch for a pattern matching rule for SOSI files has been accepted into the official source of that program (pending a new release), and I've been told by the team behind PRONOM that the SOSI format will be included in the next release of PRONOM, which they plan to release this summer around July.

I am very happy to see all of this fall into place, for use by the Noark 5 Tjenestegrensesnitt implementations.

As usual, if you use Bitcoin and want to show your support of my activities, please send Bitcoin donations to my address 15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b.

Tags: english, kart, noark5, standard.
The space rover coquine, or how I ended up on the dark side of the moon
2nd June 2019

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 L'école franco-danoise - the Danish-French school and kindergarden. The kids were building robots, rovers. The story behind it is to build a rover for use on the dark side of the moon, 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 it was built and shipped, because of customs confusion. Luckily we were able fix it quickly with help from my colleges at work.

This is what it looked like when the rover arrived. Note the cute eyes looking up on me from the wrapping

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.

Building the rover firmware 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 license problem with arduino 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 arduino-mk Debian package 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.

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:

If you want to learn more about this project, you can check out the The Dark Side Challenge Hackaday web pages.

As usual, if you use Bitcoin and want to show your support of my activities, please send Bitcoin donations to my address 15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b.

Tags: english, robot.
Nikita version 0.4 released - free software archive API server
22nd May 2019

This morning, a new release of Nikita Noark 5 core project was announced on the project mailing list. 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:

If free and open standardized archiving API sound interesting to you, please contact us on IRC (#nikita on irc.freenode.net) or email (nikita-noark mailing list).

As usual, if you use Bitcoin and want to show your support of my activities, please send Bitcoin donations to my address 15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b.

Tags: english, noark5, nuug, offentlig innsyn, standard.
MIME type "text/vnd.sosi" for SOSI map data
20th May 2019

As part of my involvement in the work to standardise a REST based API for Noark 5, the Norwegian archiving standard, I spent some time the last few months to try to register a MIME type and PRONOM code 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.

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 Wikipedia. The specification is available in Norwegian from the Norwegian mapping authority. The SOSI standard, which originated in the beginning of nineteen eighties, was the inspiration and formed the basis for the XML based Geography Markup Language.

I have so far written a pattern matching rule 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 IANA #1143144). 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. :)

As usual, if you use Bitcoin and want to show your support of my activities, please send Bitcoin donations to my address 15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b.

Tags: english, kart, noark5, standard.
PlantUML for text based UML diagram modelling - nice free software
25th March 2019

As part of my involvement with the Nikita Noark 5 core project, I have been proposing improvements to the API specification created by The National Archives of Norway 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.

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.

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 list of text mode uml tools, and tested out a few of the tools listed there. The PlantUML tool seemed most promising. After verifying that the packages is available in Debian and found its Java source under a GPL license on github, I set out to test if it could represent the diagrams we needed, ie the ones currently in the Noark 5 Tjenestegrensesnitt specification. I am happy to report that it could represent them, even thought it have a few warts here and there.

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 the github issue discussing the need for a text based UML format, 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.

Here is an example UML diagram, showing the core classes for keeping metadata about archived documents:

@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

The format 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 media/uml-class-arkivskaper.iuml:

@startuml
class Arkivstruktur.Arkivskaper  {
  +arkivskaperID : string
  +arkivskaperNavn : string
  +beskrivelse : string [0..1]
}
@enduml

This is what the complete diagram for the PlantUML notation above look like:

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 exiftool. 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.

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.

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. :)

As usual, if you use Bitcoin and want to show your support of my activities, please send Bitcoin donations to my address 15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b.

24th March 2019

Yesterday, a new release of Nikita Noark 5 core project was announced on the project mailing list. 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):

  • Improved ClassificationSystem and Class behaviour.
  • Tidied up known inconsistencies between domain model and hateaos links.
  • Added experimental code for blockchain integration.
  • Make token expiry time configurable at upstart from properties file.
  • Continued work on OData search syntax.
  • Started work on pagination for entities, partly implemented for Saksmappe.
  • Finalise ClassifiedCode Metadata entity.
  • 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.
  • Reintroduce browse.html page to allow user to browse JSON API using hateoas links.
  • Fix bug in handling file/mappe sequence number. Year change was not properly handled.
  • Update application yml files to be in sync with current development.
  • Stop 'converting' everything to PDF using libreoffice. Only convert the file formats doc, ppt, xls, docx, pptx, xlsx, odt, odp and ods.
  • Continued code style fixing, making code more readable.
  • Minor bug fixes.

If free and open standardized archiving API sound interesting to you, please contact us on IRC (#nikita on irc.freenode.net) or email (nikita-noark mailing list).

As usual, if you use Bitcoin and want to show your support of my activities, please send Bitcoin donations to my address 15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b.

11th March 2019

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.

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.

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 Noark 5 Tjenestegrensesnitt. 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.

For å oppnå klare og entydige beskrivelser i en spesifikasjon, som trengs for å kunne få en fri og åpen standard (se Digistan-definisjon), 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.

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 "diskusjonsforum" der en kan komme med endringsforslag og forespørsler om klargjøringer. Alle registrerte brukere på github kan bidra med innspill til disse henvendelsene.

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 Nikita-prosjektet, 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.

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.

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 Markdown, men det vurderes å endre til formatet RST i fremtiden for bedre styring av utseende på PDF-utgaven.

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.

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 "sjekkes inn" i historikken. Det gjøres ved å gi en kort beskrivelse av endringen (beskriv helst hvorfor endringen trengs, ikke hva som er endret), under overskriften "Commit changes". 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 "Pull Request"/PR). Når alt dette er gjort kan en velge "Commit changes" for å sende inn endringen. Hvis den er lagt inn i "master"-grenen så er den en offisiell del av spesifikasjonen med en gang. Hvis den derimot er en endringsforespørsel, så legges den inn i listen over forslag til endringer som venter på korrekturlesing og godkjenning.

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 "klones" er https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/.

For å registrere nye utfordringer (issues) eller kommentere på eksisterende utfordringer benyttes nettsiden https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues. 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 #14.

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.

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?

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 #nikita (f.eks. via irc.freenode.net) for å møte likesinnede.

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 https://github.com/petterreinholdtsen/noark5-tester, 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.

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?

13th February 2019

For syv år siden oppdaget jeg at billettautomater for kollektivtrafikken i Oslo kjørte Windows 2000 Professional. Operativsystemet har ikke fått sikkerhetsfikser fra Microsoft siden 2010-07-13 i følge dem selv. Den samme versjonen av operativsystemet var i bruk for to og et halvt år siden, og jammen er det ikke også i bruk den dag i dag:

[Bilde av Ruters billettautomat med Windows 2000-feilmelding]

Bildet er tatt i dag av Kirill Miazine og tilgjengelig for bruk med bruksvilkårene til Creative Commons Attribution 4.0 International (CC BY 4.0).

Kanskje det hadde vært bedre med gratis kollektivtrafikk, slik at vi slapp å stole på datakompetansen til Ruter for å verne våre privatliv samt holde personopplysninger og betalingsinformasjon unna uvedkommende. Eneste måten å sikre at hvor en befinner seg ikke kan hentes ut fra Ruters systemer er å betale enkeltbilletter med kontanter. Jeg vet at Ruter har en god historie om hvor personvernvennlige mobil-app og RFID-kortene er, men den historien er ikke mulig å uavhengig kontrollere uten priviligert tilgang til interne system og blir dermed bare nok en god historie basert på tillit til de som forteller historien. Det er ikke slik en sikrer privatsfæren. Det gjør en ved å sikre at det ikke (kan) registreres informasjon om ens person.

Som vanlig, hvis du bruker Bitcoin og ønsker å vise din støtte til det jeg driver med, setter jeg pris på om du sender Bitcoin-donasjoner til min adresse 15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b. Merk, betaling med bitcoin er ikke anonymt. :)

RSS feed

Created by Chronicle v4.6