- <title>Åpen og gjennomsiktig vedlikehold av spesifikasjonen for Noark 5 Tjenestegrensesnitt</title>
- <link>http://people.skolelinux.org/pere/blog/_pen_og_gjennomsiktig_vedlikehold_av_spesifikasjonen_for_Noark_5_Tjenestegrensesnitt.html</link>
- <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/_pen_og_gjennomsiktig_vedlikehold_av_spesifikasjonen_for_Noark_5_Tjenestegrensesnitt.html</guid>
- <pubDate>Mon, 11 Mar 2019 16:00:00 +0100</pubDate>
- <description><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>
+ <title>What would it cost to store all 2018 phone calls in Norway?</title>
+ <link>http://people.skolelinux.org/pere/blog/What_would_it_cost_to_store_all_2018_phone_calls_in_Norway_.html</link>
+ <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/What_would_it_cost_to_store_all_2018_phone_calls_in_Norway_.html</guid>
+ <pubDate>Mon, 25 Nov 2019 20:15:00 +0100</pubDate>
+ <description><p>Four years ago, I did a back of the envelope calculation on
+<a href="http://people.skolelinux.org/pere/blog/What_would_it_cost_to_store_all_phone_calls_in_Norway_.html">how
+much it would cost to store audio recordings of all the phone calls in
+Norway</a>, and came up with NOK 2.1 million / EUR 250 000 for the
+year 2013. It is time to repeat the calculation using updated
+numbers. The calculation is based on how much data storage is needed
+for each minute of audio, how many minutes all the calls in Norway
+sums up to, multiplied by the cost of data storage.</p>
+
+<p>The number of phone call minutes for 2018 was fetched from
+<a href="https://ekomstatistikken.nkom.no/">the NKOM statistics
+site</a>, and for 2018, land line calls are listed as 434 238 000
+minutes, while mobile phone calls are listed with 7 542 006 000
+minutes. The total number of minutes is thus 7 976 244 000. For
+simplicity, I decided to ignore any advantages in audio compression the
+last four years, and continue to assume 60 Kbytes/min as the last
+time.</p>
+
+<p>Storage prices still varies a lot, but as last time, I decide to
+take a reasonable big and cheap hard drive, and double its price to
+include the surrounding costs into account. A 10 TB disk cost less
+than 4500 NOK / 450 EUR these days, and doubling it give 9000 NOK per
+10 TB.</p>
+
+<p>So, with the parameters in place, lets update the old table
+estimating cost for calls in a given year:</p>
+
+<table border="1">
+<tr><th>Year</th><th>Call minutes</th><th>Size</th><th>Price in NOK / EUR</th></tr>
+<tr><td>2005</td><td align="right">24 000 000 000</td><td align="right">1.3 PiB</td><td align="right">1 170 000 / 117 000</td></tr>
+
+<tr><td>2012</td><td align="right">18 000 000 000</td><td align="right">1.0 PiB</td><td align="right">900 000 / 90 000</td></tr>
+
+<tr><td>2013</td><td align="right">17 000 000 000</td><td align="right">950 TiB</td><td align="right">855 000 / 85 500</td></tr>
+
+<tr><td>2018</td><td align="right">7 976 244 000</td><td align="right">445 TiB</td><td align="right">401 100 / 40 110</td></tr>
+</table>
+
+<p>Both the cost of storage and the number of phone call minutes have
+dropped since the last time, bringing the cost down to a level where I
+guess even small organizations can afford to store the audio recording
+from every phone call taken in a year in Norway. Of course, this is
+just the cost of buying the storage equipment. Maintenance, need to
+be included as well, but the volume of a single year is about a single
+rack of hard drives, so it is not much more than I could fit in my own
+home. Wonder how much the electricity bill would raise if I had that
+kind of storage? I doubt it would be more than a few tens of thousand
+NOK per year.</p>