+ <div class="entry">
+ <div class="title"><a href="http://people.skolelinux.org/pere/blog/Database_over_bensinpriser_fra_dinside_no.html">Database over bensinpriser fra dinside.no</a></div>
+ <div class="date">30th May 2012</div>
+ <div class="body"><p>En god og offentlig kilde til bensinpriser i Norge er
+<a href="http://www.dinside.no/1931/her-faar-du-billigst-bensin-diesel">dinside.no
+sin prisoversikt</a> samlet inn på dugnad fra frivillige over hele
+landet. Den har ikke like mange priser rapportert inn som Bitfactorys
+mobil-app, men informasjonen som samles inn er enkelt offentlig
+tilgjengelig på web. Dessverre forsvinner prisene fra web etter noen
+dager, så for å kunne lage analyser og se trender må en lage en
+database ved å hente ut informasjon fra dinside.no sine nettsider over
+en lengre periode. Jeg startet for litt over en uke siden en
+innsamlingstjeneste som gjør nettopp dette. Jeg har de siste ukene
+lært meg å bruke <a href="http://www.scraperwiki.com/">Scraperwiki</a>,
+et nytt og nyttig verktøy for å strukturere informasjon hentet ut fra
+nettsider, PDF-er og andre kilder som trenger strukturering. Hvis du
+vil se hvordan prisene har utviklet seg, ta en titt på
+<a href="https://scraperwiki.com/scrapers/dinside-bensinpriser/">scraperwiki-siden
+
+med databasen</a> over bensinpriser. Den henter ned priser fra
+dinside.no hver time. Hvis du vil bidra til å bedre oversikt over
+bensinprisene i Norge
+<a href="http://www.dinside.no/php/int/vis_endre.php?ny=1">registrer
+deg</a> hos dinside.no og legg inn prisene fra dine lokale
+bensinstasjoner.</p>
+
+<p>Jeg har kun gjort dette med informasjonen fra dinside.no og ikke
+informasjonen fra Bitfactory pga. bekymring rundt opphavsrettslige
+problemstillinger. Faktainformasjonen samlet inn av brukerene av
+dinside.no nettsider er åpenbart publisert offentlig, mens jeg
+mistenker det er en juridisk gråsone om det samme gjelder
+informasjonen samlet inn av brukerne av bitfactorys mobilapp. Derfor
+bidrar jeg med å samle inn priser hos dinside.no, og anbefaler andre å
+gjøre det samme. Jeg prioriterer å bidra hos de som forstår verdien
+av å dele informasjon med andre uten bruksbegresninger.</p>
+</div>
+ <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/scraperwiki">scraperwiki</a>.
+
+
+ </div>
+ </div>
+ <div class="padding"></div>
+
+ <div class="entry">
+ <div class="title"><a href="http://people.skolelinux.org/pere/blog/Litt_informasjon_om_Bitfactorys_Bensinpris_API.html">Litt informasjon om Bitfactorys Bensinpris-API</a></div>
+ <div class="date">28th May 2012</div>
+ <div class="body"><p>I fjor lanserte Bitfactory en
+<a href="http://www.bitfactory.no/bensinpris.html">mobilapp for å få
+tilgang til bensinpriser</a> på landets bensinstasjoner ved å samle
+inn prisene på dugnad ved hjelp av mobilapp-ens brukere.
+Informasjonen app-ens brukere har samlet inn har så langt kun vært
+tilgjengelig for brukerne av app-ene, og API for å hente ut
+informasjonen fra andre plattformer har ikke vært publisert. Da
+løsningen kom spurte jeg utviklerne om de kunne publisere
+API-dokumentasjon og de skulle se på saken, men det har ikke skjedd så
+langt. Jeg antar de har vært for travelt opptatt til å publisere
+API-dokumentasjon.</p>
+
+<p>Utrolig nok er det i følge
+<a href="http://www.dn.no/energi/article2194526.ece">Dagens
+Næringsliv</a> og
+<a href="http://www.finnmarkdagblad.no/nyheter/article5323140.ece">Finnmark
+Dagblad</a> bensinstasjoner som nekter å oppgi prisene sine på
+telefon, slik at det ikke finnes en fornuftig måte å få tak i prisene
+på uten å samle dem inn på stedet. Flere har dugnader på gang for å
+samle inn prisinformasjon om bensin, men så vidt jeg kan se er det kun
+<a href="http://www.dinside.no/php/oko/bensin/vis_prisliste.php">dinside.no</a>
+og Bitfactorys App som får regelmessige oppdateringer. Dinsides
+oversikt er tilgjengelig på web for de som vil følge med, mens
+bitfactorys informasjon ikke er like enkelt tilgjengelig.<p>
+
+<p>Jeg tok meg derfor litt tid for å revers-utvikle protokollen for
+Bitfactorys mobilapp for å gjøre den innsamlede informasjonen mer
+tilgjengelig for flere. Protokollen bruker HTTP og normal
+forms-notasjon for POST. Jeg lot en telefon koble seg til mitt
+trådløsnett, og satte opp tcpdump til å samle all trafikken mot
+www.bitfactory.no, og deretter tittet på alle HTTP-kallene ved hjelp
+av wireshark. Her er API-kallene jeg har identifisert så langt.</p>
+
+<p><b>stasjonsDatabaseUpdateStamp</b></p>
+
+<p><tt>GET http://www.bitfactory.no/Bensin/ver1.1.stasjonsDatabaseUpdateStamp</tt></p>
+
+<p>Vet ikke helt hva dette API-kallet gjør, men navnet gjør at jeg
+tror den rapporterer når listen over stasjoner sist ble endret.
+Returverdien er et tall som pr. 2011-12-09 er 1319145491 og
+pr. 2012-05-28 er 1336420693. Mitt gjett er at dette er sekunder
+siden 1. januar 1970 ala det en finner på Linux, som kan konverteres
+til en leselig dato med <tt>perl -e 'print
+scalar(localtime(1319145491)), "\n"'</tt>. Den første verdien
+konverterer da til "Thu Oct 20 23:18:11 2011", mens den andre
+konverteres til "Mon May 7 21:58:13 2012".</p>
+
+<p><b>GetXMLDatabase</b></p>
+
+<p><tt>echo password=XYZXYZXYZXYZX | POST http://www.bitfactory.no/Bensin/GetXMLDatabase.php</tt></p>
+
+<p>Henter ned listen med stasjoner på XML-format. Argumentet er
+password som muligens følger med i programpakken og eventuelt
+genereres av app-en. Nedlasting med samme passord flere ganger ser
+ikke ut til å fungere. Innholdet er ca. 1600 stasjoner, men manglet
+bensinstasjonen i min hjemkommune Ballangen da jeg sjekket, så den er
+ikke komplett. Formatet på selve listen ser slik ut (klippet):</p>
+
+<p><pre>
+<?xml version="1.0" encoding="UTF-8"?>
+<STASJONSDATABASE>
+<STASJON>
+<NAME></NAME>
+<ADDRESS></ADDRESS>
+<ID>0</ID>
+<LATITUDE>0.000000</LATITUDE>
+<LONGITUDE>0.000000</LONGITUDE>
+<COMPANY></COMPANY>
+</STASJON>
+<STASJON>
+<NAME>Statoil Best Eidsvoll Verk</NAME>
+<ADDRESS>Gamle Trondheimsvei 339 2074 Eidsvoll Verk</ADDRESS>
+<ID>1</ID>
+<LATITUDE>60.303902</LATITUDE>
+<LONGITUDE>11.168100</LONGITUDE>
+<COMPANY>Best</COMPANY>
+</STASJON>
+[...]
+<STASJON>
+<NAME>Esso Andenes</NAME>
+<ADDRESS>Falcksgate 9, 8480 Andenes</ADDRESS>
+<ID>1822</ID>
+<LATITUDE>69.320999</LATITUDE>
+<LONGITUDE>16.118700</LONGITUDE>
+<COMPANY>Esso</COMPANY>
+</STASJON>
+</STASJONSDATABASE>
+</pre></p>
+
+<p><b>GetBanStatus</b></p>
+
+<p><tt>echo UDID=Android-123456789012345 | POST http://www.bitfactory.no/Bensin/ver1.1.GetBanStatus.php</tt></p>
+
+<p>Vet heller ikke helt hva dette API-kallet gjør. Navnet gjør at jeg
+tror den rapporterer om telefonen med UDID oppgitt som argument er
+bannlyst fra tjenesten. Bannlysning gjør antagelig at telefonen ikke
+kan brukes til å registrere bensinpriser, men det er også mulig det
+blokkerer for å se på priser. Eneste POST-argument er UDID, som ser
+ut til å være den unike ID-en til en mobil-enhet. Returnverdi er 'NO'
+for alle UDID-verdier jeg har testet. Gjetter på at alternativ
+returverdi er 'YES', men har ikke sett en slik verdi så langt.</p>
+
+<p><b>PriserVedStasjoner</b></p>
+
+<p><tt>echo 'stasjoner=810,364&day=0' | POST http://www.bitfactory.no/Bensin/ver1.1.PriserVedStasjoner.php</tt></p>
+
+<p>Dette kallet henter ut priser registrert på en eller flere
+bensinstasjoner. Den tar to POST-argumenter, "stasjoner" som er
+kommaseparert liste over stasjons-IDer (numeriske), og "day" som bør
+settes til "0" for å få ut informasjon om priser. Usikker på hva
+day-tallet betyr, men mistenker det har med hvor langt tilbake i tid
+det skal hentes ut informasjon.</p>
+
+<p>Resultatet som kommer tilbake er en kommaseparert liste for hver
+enkelt stasjon, med <br> som skillemarkør mellom hver stasjon.
+Ikke helt sikker på hva alle feltene er. Her er mine gjett:</p>
+
+<p><table>
+<tr><ht>Felt</ht><ht>Beskrivelse</ht></tr>
+<tr><td>1</td><td>Bensinstasjons-ID</td></tr>
+<tr><td>2</td><td>Pris for blyfri 95 oktan, flyttall med punktum som desimalskille.</td></tr>
+<tr><td>3</td><td>Klokkeslett da prisen ble oppdatert, format HH:MM. </td></tr>
+<tr><td>4</td><td>Telefon-ID på formen Android-123456789012345 eller hex-kodet streng/MD5-sum</td></tr>
+<tr><td>5</td><td>tall, uviss betydning. muligens relatert til day-verdien.</td></tr>
+<tr><td>6</td><td>Pris for blyfri 98-oktan?</td></tr>
+<tr><td>7</td><td>samme som felt 3</td></tr>
+<tr><td>8</td><td>samme som felt 4</td></tr>
+<tr><td>9</td><td>samme som felt 5</td></tr>
+<tr><td>10</td><td>Pris for disel</td></tr>
+<tr><td>11</td><td>Samme som felt 3</td></tr>
+<tr><td>12</td><td>Samme som felt 4</td></tr>
+<tr><td>13</td><td>Samme som felt 5</td></tr>
+</table></p>
+
+<p>En stasjonsoppføring består dermed av av bensinstasjons-ID og
+deretter tre blokker for 95-oktan bensin, 98-oktan bensin og
+disel.</p>
+
+<p><b>PriserVedStasjon</b></p>
+
+<p><tt>echo 'id=736&day=0' | POST http://www.bitfactory.no/Bensin/ver1.1.PriserVedStasjon.php</tt></p>
+
+<p>Ser ut til å returnere informasjon for en enkelt bensinstasjon.
+Formatet er dato på formen "08_12_2011" for 2011-12-08, og noe som ser
+ut som samme format som fra PriserVedStasjoner. For stasjoner der
+intet er registrert returnerer den "NO RESULTS".</p>
+
+<p><b>AllePriser</b></p>
+
+<p><tt>echo day=0 | POST http://www.bitfactory.no/Bensin/ver1.1.AllePriser.php</tt></p>
+
+<p>Returnere liste med av alle stasjoner det er registrert oppdaterte
+priser på siste 24 timer (eller er det fra ca. midnatt dagen før?).
+Returnerer "NO RESULTS" når listen er tom. Ellers returnerer den en
+dato på formen "Thursday_09_12_2011" fulgt av <br> og deretter
+en liste med stasjoner på samme format som PriserVedStasjoner.</p>
+</div>
+ <div class="tags">
+
+
+ Tags: <a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk</a>.
+
+
+ </div>
+ </div>
+ <div class="padding"></div>
+
<div class="entry">
<div class="title"><a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Ralf_Gesellensetter.html">Debian Edu interview: Ralf Gesellensetter</a></div>
<div class="date">27th May 2012</div>
<div class="body"><p>In 2003, a German teacher showed up on the
<a href="http://www.skolelinux.org/">Debian Edu and Skolelinux</a>
mailing list with interesting problems and reports proving he setting
-up Linux for a (for us at the time) lot of pupiles. His name was Ralf
-Gesellensetter, and he have been an important tester and contributor
+up Linux for a (for us at the time) lot of pupils. His name was Ralf
+Gesellensetter, and he has been an important tester and contributor
since then, helping to make sure the
<a href="http://www.debian.org/News/2012/20120311.html">Debian Edu
Squeeze</a> release became as good as it is..</p>
trained. In many cases, teachers' software customs are respected by
decision makers rather than the expertise of any IT experts.</li>
-<li>Don't stick to free software as to be run natively. Everybody uses
+<li>Don't limit ourself to free software run natively. Everybody uses
free software or free licenses (for instance Wikipedia), and this
general concept should get expanded to free educational content to be
shared world wide (school books e.g.).</li>
</div>
<div class="padding"></div>
- <div class="entry">
- <div class="title"><a href="http://people.skolelinux.org/pere/blog/Cutting_it_short___and_picking_the_right_tool_for_the_job.html">Cutting it short - and picking the right tool for the job</a></div>
- <div class="date">30th April 2012</div>
- <div class="body"><p><!-- IMG_5869.JPG -->
-<img src="http://people.skolelinux.org/pere/blog/images/panasonic-er-1611.jpeg"></p>
-
-<p>I normally cut my hair short, and my tool of choice has been a
-common hair/beard cutter, bought in a electrical shop here in Norway.
-But the last ones have not really been up to the task. My last
-cutter, some model from Braun, could only cut a few of my hairs at the
-time, and cutting my head took forever. And the one before that did
-not work very well either. We have looked for something better for a
-while, but it was not until I ended up visiting a hairdresser that we
-discovered that there are indeed better tools available. But these
-are not marketed and sold to "regular consumers". The hair saloons
-can get them through their suppliers, but their suppliers only sell
-companies. The models they sell, are very different from the ones
-available from Elkjøp and Lefdal. The main difference is their
-efficiency. It would cut my hair in 5 minutes, instead of the 30-40
-minutes required by my impotent Braun. The hairdresser I visited had
-a Panasonic ER160, which unfortunately is no longer available from the
-producer. But I found it had a successor, the Panasonic ER1611.</p>
-
-<p>The next step was to find somewhere to buy it. This was not
-straight forward. The list of suppliers I got from the hairdresser
-did not want to sell anything to me. But searching for the model on
-the web we found a supplier in Norway willing to sell it to us for
-around NOK 4000,-. This was a bit much. We kept searching and
-finally found a Danish supplier
-<a href="http://nicehair.dk/panasonic-er-1611-professionel-hartrimmer.html">selling
-it for around NOK 1800,-</a>. We ordered one, and it arrived a few
-days ago.</p>
-
-<p>The instructions said it had to charge for 8 hours when we started
-to use it, so we left it charging over night. Normally it will only
-need one hour to charge. The following evening we successfully tested
-it, and I can warmly recommend it to anyone looking for a real hair
-cutter. The ones we have used until now have been hair cutter
-toys.</p>
-</div>
- <div class="tags">
-
-
- Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
-
-
- </div>
- </div>
- <div class="padding"></div>
-
- <div class="entry">
- <div class="title"><a href="http://people.skolelinux.org/pere/blog/NUUGs_leverer_h_ringsuttalelse_om_v3_1_av_statens_referansekatalog.html">NUUGs leverer høringsuttalelse om v3.1 av statens referansekatalog</a></div>
- <div class="date">27th April 2012</div>
- <div class="body"><p>NUUG-styremedlem Hans-Petter Fjeld
-<a href="https://plus.google.com/u/0/110394259537201279374/posts/AGzRmAuFdW1">meldte
-nettopp</a> at han har sendt inn <a href="http://www.nuug.no/">NUUG</a>s
-høringsuttalelse angående Difi sin standardkatalog v3.1. Jeg er veldig
-glad for at så mange bidro og sikret at vår stemme blir hørt i denne
-høringen. Anbefaler alle å lese våre
-<a href="http://wiki.nuug.no/uttalelser/201204-standardkatalog-v3.1">to
-sider med innspill</a>.</p>
-</div>
- <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/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>.
-
-
- </div>
- </div>
- <div class="padding"></div>
-
<p style="text-align: right;"><a href="index.rss"><img src="http://people.skolelinux.org/pere/blog/xml.gif" alt="RSS feed" width="36" height="14" /></a></p>
<div id="sidebar">
<li><a href="http://people.skolelinux.org/pere/blog/archive/2012/04/">April (12)</a></li>
-<li><a href="http://people.skolelinux.org/pere/blog/archive/2012/05/">May (8)</a></li>
+<li><a href="http://people.skolelinux.org/pere/blog/archive/2012/05/">May (10)</a></li>
</ul></li>
<li><a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (16)</a></li>
- <li><a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk (164)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk (166)</a></li>
<li><a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug (127)</a></li>
<li><a href="http://people.skolelinux.org/pere/blog/tags/ruter">ruter (4)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (1)</a></li>
+
<li><a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (23)</a></li>
<li><a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (4)</a></li>