- <div class="title"><a href="http://people.skolelinux.org/pere/blog/RSS_kilde_for_friteksts_k_i_offentlige_anbud_hos_Doffin.html">RSS-kilde for fritekstsøk i offentlige anbud hos Doffin</a></div>
- <div class="date">22nd November 2013</div>
- <div class="body"><p>I fjor sommer lagde jeg en
-<a href="http://people.skolelinux.org/pere/blog/SQL_database_med_anbud_publisert_p__Doffin.html">offentlig
-tilgjengelig SQL-database over offentlig anbud</a> basert på skraping
-av HTML-data fra Doffin. Den har stått og gått siden da, og har nå
-ca. 28000 oppføringer. Jeg oppdaget da jeg tittet innom at noen
-oppføringer var ikke blitt med, antagelig på grunn av at de fikk
-tildelt sekvensnummer i Doffin en godt stund før de ble publisert,
-slik at min nettsideskraper som fortsatte skrapingen der den slapp
-sist ikke fikk dem med seg. Jeg har fikset litt slik at skraperen nå
-ser litt tilbake i tid for å se om den har gått glipp av noen
-oppføringer, og har skrapet på nytt fra midten av september 2013 og
-fremover. Det bør dermed bli en mer komplett database for kommende
-måneder. Hvis jeg får tid skal jeg forsøke å skrape "glemte" data fra
-før midten av september 2013, men tør ikke garantere at det blir
-prioritert med det første. </p>
-
-<p>Men målet med denne bloggposten er å vise hvordan denne
-Doffin-databasen kan brukes og integreres med en RSS-leser, slik at en
-kan la datamaskinen holde et øye med Doffin-annonseringer etter
-nøkkelord. En kan lage sitt eget søk ved å besøke
-<ahref="https://classic.scraperwiki.com/docs/api?name=norwegian-doffin#sqlite">API-et
-hos Scraperwiki</a>, velge format rss2 og så legge inn noe ala dette i
-"query in SQL":</p>
-
-<p><pre>
-select title, scrapedurl as link, abstract as description,
- publishdate as pubDate from 'swdata'
- where abstract like '%linux%' or title like '%linux%'
- order by seq desc limit 20
-</pre></p>
-
-<p>Dette vil søke opp alle anbud med ordet linux i oppsummering eller
-tittel. En kan lage mer avanserte søk hvis en ønsker det. URL-en som
-dukker opp nederst på siden kan en så gi til sin RSS-leser (jeg bruker
-akregator selv), og så automatisk få beskjed hvis det dukker opp anbud
-med det aktuelle nøkkelordet i teksten. Merk at kapasiteten og
-ytelsen hos Scraperwiki er begrenset, så ikke be RSS-leseren hente ned
-oftere enn en gang hver dag.</p>
-
-<p>Du lurer kanskje på hva slags informasjon en kan få ut fra denne
-databasen. Her er to RSS-kilder, med søkeordet
-"<a href="https://api.scraperwiki.com/api/1.0/datastore/sqlite?format=rss2&name=norwegian-doffin&query=select%20title%2C%20scrapedurl%20as%20link%2C%20abstract%20as%20description%2C%0A%20%20%20%20%20%20%20publishdate%20as%20pubDate%20from%20'swdata'%0A%20%20%20where%20abstract%20like%20'%25linux%25'%20or%20title%20like%20'%25linux%25'%0A%20%20%20order%20by%20seq%20desc%20limit%2020">linux</a>",
-søkeordet
-"<a href="https://api.scraperwiki.com/api/1.0/datastore/sqlite?format=rss2&name=norwegian-doffin&query=select%20title%2C%20scrapedurl%20as%20link%2C%20abstract%20as%20description%2C%0A%20%20%20%20%20%20%20publishdate%20as%20pubDate%20from%20'swdata'%0A%20%20%20where%20abstract%20like%20'%25fri%20programvare%25'%20or%20title%20like%20'%25fri%20programvare%25'%0A%20%20%20order%20by%20seq%20desc%20limit%2020">fri
-programvare</a>"
-og søkeordet
-"<a href="https://api.scraperwiki.com/api/1.0/datastore/sqlite?format=rss2&name=norwegian-doffin&query=select%20title%2C%20scrapedurl%20as%20link%2C%20abstract%20as%20description%2C%0A%20%20%20%20%20%20%20publishdate%20as%20pubDate%20from%20'swdata'%0A%20%20%20where%20abstract%20like%20'%25odf%25'%20or%20title%20like%20'%25odf%25'%0A%20%20%20order%20by%20seq%20desc%20limit%2020">odf</a>".
-Det er bare å søke på det en er interessert i. Kopier gjerne
-datasettet og sett opp din egen tjeneste hvis du vil gjøre mer
-avanserte søk. SQLite-filen med Doffin-oppføringer kan lastes med fra
-Scraperwiki for de som vil grave dypere.</p>
+ <div class="title"><a href="http://people.skolelinux.org/pere/blog/Hva_henger_under_skibrua_over_E16_p__Sollih_gda_.html">Hva henger under skibrua over E16 på Sollihøgda?</a></div>
+ <div class="date">21st September 2014</div>
+ <div class="body"><p>Rundt omkring i Oslo og Østlandsområdet henger det bokser over
+veiene som jeg har lurt på hva gjør. De har ut fra plassering og
+vinkling sett ut som bokser som sniffer ut et eller annet fra
+forbipasserende trafikk, men det har vært uklart for meg hva det er de
+leser av. Her om dagen tok jeg bilde av en slik boks som henger under
+<a href="http://www.openstreetmap.no/?zoom=19&mlat=59.96396&mlon=10.34443&layers=B00000">ei
+skibru på Sollihøgda</a>:</p>
+
+<p align="center"><img width="60%" src="http://people.skolelinux.org/pere/blog/images/2014-09-13-kapsch-sollihogda-crop.jpeg"></p>
+
+<p>Boksen er tydelig merket «Kapsch >>>», logoen til
+<a href="http://www.kapsch.net/">det sveitsiske selskapet Kapsch</a> som
+blant annet lager sensorsystemer for veitrafikk. Men de lager mye
+forskjellig, og jeg kjente ikke igjen boksen på utseendet etter en
+kjapp titt på produktlista til selskapet.</p>
+
+<p>I og med at boksen henger over veien E16, en riksvei vedlikeholdt
+av Statens Vegvesen, så antok jeg at det burde være mulig å bruke
+REST-API-et som gir tilgang til vegvesenets database over veier,
+skilter og annet veirelatert til å finne ut hva i alle dager dette
+kunne være. De har både
+<a href="https://www.vegvesen.no/nvdb/api/dokumentasjon/datakatalog">en
+datakatalog</a> og
+<a href="https://www.vegvesen.no/nvdb/api/dokumentasjon/sok">et
+søk</a>, der en kan søke etter ulike typer oppføringer innen for et
+gitt geografisk område. Jeg laget et enkelt shell-script for å hente
+ut antall av en gitt type innenfor området skibrua dekker, og listet
+opp navnet på typene som ble funnet. Orket ikke slå opp hvordan
+URL-koding av aktuelle strenger kunne gjøres mer generisk, og brukte
+en stygg sed-linje i stedet.</p>
+
+<blockquote><pre>
+#!/bin/sh
+urlmap() {
+ sed \
+ -e 's/ / /g' -e 's/{/%7B/g' \
+ -e 's/}/%7D/g' -e 's/\[/%5B/g' \
+ -e 's/\]/%5D/g' -e 's/ /%20/g' \
+ -e 's/,/%2C/g' -e 's/\"/%22/g' \
+ -e 's/:/%3A/g'
+}
+
+lookup() {
+ url="$1"
+ curl -s -H 'Accept: application/vnd.vegvesen.nvdb-v1+xml' \
+ "https://www.vegvesen.no/nvdb/api$url" | xmllint --format -
+}
+
+for id in $(seq 1 874) ; do
+ search="{
+ lokasjon: {
+ bbox: \"10.34425,59.96386,10.34458,59.96409\",
+ srid: \"WGS84\"
+ },
+ objektTyper: [{
+ id: $id, antall: 10
+ }]
+}"
+
+ query=/sok?kriterie=$(echo $search | urlmap)
+ if lookup "$query" |
+ grep -q '<totaltAntallReturnert>0<'
+ then
+ :
+ else
+ echo $id
+ lookup "/datakatalog/objekttyper/$id" |grep '^ <navn>'
+ fi
+done
+
+exit 0
+</pre></blockquote>
+
+Aktuelt ID-område 1-874 var riktig i datakatalogen da jeg laget
+scriptet. Det vil endre seg over tid. Skriptet listet så opp
+aktuelle typer i og rundt skibrua:
+
+<blockquote><pre>
+5
+ <navn>Rekkverk</navn>
+14
+ <navn>Rekkverksende</navn>
+47
+ <navn>Trafikklomme</navn>
+49
+ <navn>Trafikkøy</navn>
+60
+ <navn>Bru</navn>
+79
+ <navn>Stikkrenne/Kulvert</navn>
+80
+ <navn>Grøft, åpen</navn>
+86
+ <navn>Belysningsstrekning</navn>
+95
+ <navn>Skiltpunkt</navn>
+96
+ <navn>Skiltplate</navn>
+98
+ <navn>Referansestolpe</navn>
+99
+ <navn>Vegoppmerking, langsgående</navn>
+105
+ <navn>Fartsgrense</navn>
+106
+ <navn>Vinterdriftsstrategi</navn>
+172
+ <navn>Trafikkdeler</navn>
+241
+ <navn>Vegdekke</navn>
+293
+ <navn>Breddemåling</navn>
+301
+ <navn>Kantklippareal</navn>
+318
+ <navn>Snø-/isrydding</navn>
+445
+ <navn>Skred</navn>
+446
+ <navn>Dokumentasjon</navn>
+452
+ <navn>Undergang</navn>
+528
+ <navn>Tverrprofil</navn>
+532
+ <navn>Vegreferanse</navn>
+534
+ <navn>Region</navn>
+535
+ <navn>Fylke</navn>
+536
+ <navn>Kommune</navn>
+538
+ <navn>Gate</navn>
+539
+ <navn>Transportlenke</navn>
+540
+ <navn>Trafikkmengde</navn>
+570
+ <navn>Trafikkulykke</navn>
+571
+ <navn>Ulykkesinvolvert enhet</navn>
+572
+ <navn>Ulykkesinvolvert person</navn>
+579
+ <navn>Politidistrikt</navn>
+583
+ <navn>Vegbredde</navn>
+591
+ <navn>Høydebegrensning</navn>
+592
+ <navn>Nedbøyningsmåling</navn>
+597
+ <navn>Støy-luft, Strekningsdata</navn>
+601
+ <navn>Oppgravingsdata</navn>
+602
+ <navn>Oppgravingslag</navn>
+603
+ <navn>PMS-parsell</navn>
+604
+ <navn>Vegnormalstrekning</navn>
+605
+ <navn>Værrelatert strekning</navn>
+616
+ <navn>Feltstrekning</navn>
+617
+ <navn>Adressepunkt</navn>
+626
+ <navn>Friksjonsmåleserie</navn>
+629
+ <navn>Vegdekke, flatelapping</navn>
+639
+ <navn>Kurvatur, horisontalelement</navn>
+640
+ <navn>Kurvatur, vertikalelement</navn>
+642
+ <navn>Kurvatur, vertikalpunkt</navn>
+643
+ <navn>Statistikk, trafikkmengde</navn>
+647
+ <navn>Statistikk, vegbredde</navn>
+774
+ <navn>Nedbøyningsmåleserie</navn>
+775
+ <navn>ATK, influensstrekning</navn>
+794
+ <navn>Systemobjekt</navn>
+810
+ <navn>Vinterdriftsklasse</navn>
+821
+ <navn>Funksjonell vegklasse</navn>
+825
+ <navn>Kurvatur, stigning</navn>
+838
+ <navn>Vegbredde, beregnet</navn>
+862
+ <navn>Reisetidsregistreringspunkt</navn>
+871
+ <navn>Bruksklasse</navn>
+</pre></blockquote>
+
+<p>Av disse ser ID 775 og 862 mest relevant ut. ID 775 antar jeg
+refererer til fotoboksen som står like ved brua, mens
+«Reisetidsregistreringspunkt» kanskje kan være boksen som henger der.
+Hvordan finner jeg så ut hva dette kan være for noe. En titt på
+<a href="http://labs.vegdata.no/nvdb-datakatalog/862-Reisetidsregistreringspunkt/">datakatalogsiden
+for ID 862/Reisetidsregistreringspunkt</a> viser at det er finnes 53
+slike målere i Norge, og hvor de er plassert, men gir ellers få
+detaljer. Det er plassert 40 på østlandet og 13 i Trondheimsregionen.
+Men siden nevner «AutoPASS», og hvis en slår opp oppføringen på
+Sollihøgda nevner den «Ciber AS» som ID for eksternt system. (Kan det
+være snakk om
+<a href="http://www.proff.no/selskap/ciber-norge-as/oslo/internettdesign-og-programmering/Z0I3KMF4/">Ciber
+Norge AS</a>, et selskap eid av Ciber Europe Bv?) Et nettsøk på
+ «Ciber AS autopass» fører meg til en artikkel fra NRK Trøndelag i
+ 2013 med tittel
+«<a href="http://www.nrk.no/trondelag/sjekk-dette-hvis-du-vil-unnga-ko-1.11327947">Sjekk
+dette hvis du vil unngå kø</a>». Artikkelen henviser til vegvesenets
+nettside
+<a href="http://www.reisetider.no/reisetid/forside.html">reisetider.no</a>
+som har en
+<a href="http://www.reisetider.no/reisetid/omrade.html?omrade=5">kartside
+for Østlandet</a> som viser at det måles mellom Sandvika og Sollihøgda.
+Det kan dermed se ut til at jeg har funnet ut hva boksene gjør.</p>
+
+<p>Hvis det stemmer, så er dette bokser som leser av AutoPASS-ID-en
+til alle passerende biler med AutoPASS-brikke, og dermed gjør det mulig
+for de som kontrollerer boksene å holde rede på hvor en gitt bil er
+når den passerte et slikt målepunkt. NRK-artikkelen forteller at
+denne informasjonen i dag kun brukes til å koble to
+AutoPASS-brikkepasseringer passeringer sammen for å beregne
+reisetiden, og at bruken er godkjent av Datatilsynet. Det er desverre
+ikke mulig for en sjåfør som passerer under en slik boks å kontrollere
+at AutoPASS-ID-en kun brukes til dette i dag og i fremtiden.</p>
+
+<p>I tillegg til denne type AutoPASS-sniffere vet jeg at det også
+finnes mange automatiske stasjoner som tar betalt pr. passering (aka
+bomstasjoner), og der lagres informasjon om tid, sted og bilnummer i
+10 år. Finnes det andre slike sniffere plassert ut på veiene?</p>
+
+<p>Personlig har jeg valgt å ikke bruke AutoPASS-brikke, for å gjøre
+det vanskeligere og mer kostbart for de som vil invadere privatsfæren
+og holde rede på hvor bilen min beveger seg til enhver tid. Jeg håper
+flere vil gjøre det samme, selv om det gir litt høyere private
+utgifter (dyrere bompassering). Vern om privatsfæren koster i disse
+dager.</p>
+
+<p>Takk til Jan Kristian Jensen i Statens Vegvesen for tips om
+dokumentasjon på vegvesenets REST-API.</p>