]> pere.pagekite.me Git - homepage.git/blobdiff - blog/index.html
Generated.
[homepage.git] / blog / index.html
index 5a67e8db6db85b2aecac8a2147af238e13275c04..a0fd966708c6858a7236c6a8614c2326595df2ee 100644 (file)
 
 
     
 
 
     
+    <div class="entry">
+      <div class="title"><a href="http://people.skolelinux.org/pere/blog/Litt_informasjon_om_Bitfactors_Bensinpris_API.html">Litt informasjon om Bitfactors Bensinpris-API</a></div>
+      <div class="date">28th May 2012</div>
+      <div class="body"><p>I fjor siden 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
+Dagbladet</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=X43uP9KS_3ZqR | POST http://www.bitfactory.no/Bensin/GetXMLDatabase.php
+<p><tt>echo password=XYZXYZXYZXYZX | POST http://www.bitfactory.no/Bensin/GetXMLDatabase.php
+
+<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>
+
+<pre>
+&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;STASJONSDATABASE&gt;
+&lt;STASJON&gt;
+&lt;NAME&gt;&lt;/NAME&gt;
+&lt;ADDRESS&gt;&lt;/ADDRESS&gt;
+&lt;ID&gt;0&lt;/ID&gt;
+&lt;LATITUDE&gt;0.000000&lt;/LATITUDE&gt;
+&lt;LONGITUDE&gt;0.000000&lt;/LONGITUDE&gt;
+&lt;COMPANY&gt;&lt;/COMPANY&gt;
+&lt;/STASJON&gt;
+&lt;STASJON&gt;
+&lt;NAME&gt;Statoil Best Eidsvoll Verk&lt;/NAME&gt;
+&lt;ADDRESS&gt;Gamle Trondheimsvei 339 2074 Eidsvoll Verk&lt;/ADDRESS&gt;
+&lt;ID&gt;1&lt;/ID&gt;
+&lt;LATITUDE&gt;60.303902&lt;/LATITUDE&gt;
+&lt;LONGITUDE&gt;11.168100&lt;/LONGITUDE&gt;
+&lt;COMPANY&gt;Best&lt;/COMPANY&gt;
+&lt;/STASJON&gt;
+[...]
+&lt;STASJON&gt;
+&lt;NAME&gt;Esso Andenes&lt;/NAME&gt;
+&lt;ADDRESS&gt;Falcksgate 9, 8480 Andenes&lt;/ADDRESS&gt;
+&lt;ID&gt;1822&lt;/ID&gt;
+&lt;LATITUDE&gt;69.320999&lt;/LATITUDE&gt;
+&lt;LONGITUDE&gt;16.118700&lt;/LONGITUDE&gt;
+&lt;COMPANY&gt;Esso&lt;/COMPANY&gt;
+&lt;/STASJON&gt;
+&lt;/STASJONSDATABASE&gt;
+</pre>
+
+<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 &lt;br&gt; som skillemarkør mellom hver stasjon.
+Ikke helt sikker på hva alle feltene er.  Her er mine gjett:</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>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 &lt;br&gt; 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="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>
@@ -724,28 +895,6 @@ toys.</p>
     </div>
     <div class="padding"></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">
       
     <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">
       
@@ -765,7 +914,7 @@ sider med innspill</a>.</p>
 
 <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/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 (9)</a></li>
 
 </ul></li>
 
 
 </ul></li>
 
@@ -908,7 +1057,7 @@ sider med innspill</a>.</p>
 
  <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/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 (165)</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/nuug">nuug (127)</a></li>