1 <!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Strict//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns=
"http://www.w3.org/1999/xhtml" dir=
"ltr">
5 <meta http-equiv=
"Content-Type" content=
"text/html;charset=utf-8" />
6 <title>Petter Reinholdtsen: Litt informasjon om Bitfactorys Bensinpris-API
</title>
7 <link rel=
"stylesheet" type=
"text/css" media=
"screen" href=
"http://people.skolelinux.org/pere/blog/style.css" />
8 <link rel=
"stylesheet" type=
"text/css" media=
"screen" href=
"http://people.skolelinux.org/pere/blog/vim.css" />
15 <a href=
"http://people.skolelinux.org/pere/blog/">Petter Reinholdtsen
</a>
23 <div class=
"title">Litt informasjon om Bitfactorys Bensinpris-API
</div>
24 <div class=
"date">28th May
2012</div>
25 <div class=
"body"><p>I fjor lanserte Bitfactory en
26 <a href=
"http://www.bitfactory.no/bensinpris.html">mobilapp for å få
27 tilgang til bensinpriser
</a> på landets bensinstasjoner ved å samle
28 inn prisene på dugnad ved hjelp av mobilapp-ens brukere.
29 Informasjonen app-ens brukere har samlet inn har så langt kun vært
30 tilgjengelig for brukerne av app-ene, og API for å hente ut
31 informasjonen fra andre plattformer har ikke vært publisert. Da
32 løsningen kom spurte jeg utviklerne om de kunne publisere
33 API-dokumentasjon og de skulle se på saken, men det har ikke skjedd så
34 langt. Jeg antar de har vært for travelt opptatt til å publisere
35 API-dokumentasjon.
</p>
37 <p>Utrolig nok er det i følge
38 <a href=
"http://www.dn.no/energi/article2194526.ece">Dagens
40 <a href=
"http://www.finnmarkdagblad.no/nyheter/article5323140.ece">Finnmark
41 Dagblad
</a> bensinstasjoner som nekter å oppgi prisene sine på
42 telefon, slik at det ikke finnes en fornuftig måte å få tak i prisene
43 på uten å samle dem inn på stedet. Flere har dugnader på gang for å
44 samle inn prisinformasjon om bensin, men så vidt jeg kan se er det kun
45 <a href=
"http://www.dinside.no/php/oko/bensin/vis_prisliste.php">dinside.no
</a>
46 og Bitfactorys App som får regelmessige oppdateringer. Dinsides
47 oversikt er tilgjengelig på web for de som vil følge med, mens
48 bitfactorys informasjon ikke er like enkelt tilgjengelig.
<p>
50 <p>Jeg tok meg derfor litt tid for å revers-utvikle protokollen for
51 Bitfactorys mobilapp for å gjøre den innsamlede informasjonen mer
52 tilgjengelig for flere. Protokollen bruker HTTP og normal
53 forms-notasjon for POST. Jeg lot en telefon koble seg til mitt
54 trådløsnett, og satte opp tcpdump til å samle all trafikken mot
55 www.bitfactory.no, og deretter tittet på alle HTTP-kallene ved hjelp
56 av wireshark. Her er API-kallene jeg har identifisert så langt.
</p>
58 <p><b>stasjonsDatabaseUpdateStamp
</b></p>
60 <p><tt>GET http://www.bitfactory.no/Bensin/ver1.1.stasjonsDatabaseUpdateStamp
</tt></p>
62 <p>Vet ikke helt hva dette API-kallet gjør, men navnet gjør at jeg
63 tror den rapporterer når listen over stasjoner sist ble endret.
64 Returverdien er et tall som pr.
2011-
12-
09 er
1319145491 og
65 pr.
2012-
05-
28 er
1336420693. Mitt gjett er at dette er sekunder
66 siden
1. januar
1970 ala det en finner på Linux, som kan konverteres
67 til en leselig dato med
<tt>perl -e 'print
68 scalar(localtime(
1319145491)), "\n"'
</tt>. Den første verdien
69 konverterer da til "Thu Oct
20 23:
18:
11 2011", mens den andre
70 konverteres til "Mon May
7 21:
58:
13 2012".
</p>
72 <p><b>GetXMLDatabase
</b></p>
74 <p><tt>echo password=XYZXYZXYZXYZX | POST http://www.bitfactory.no/Bensin/GetXMLDatabase.php
</tt></p>
76 <p>Henter ned listen med stasjoner på XML-format. Argumentet er
77 password som muligens følger med i programpakken og eventuelt
78 genereres av app-en. Nedlasting med samme passord flere ganger ser
79 ikke ut til å fungere. Innholdet er ca.
1600 stasjoner, men manglet
80 bensinstasjonen i min hjemkommune Ballangen da jeg sjekket, så den er
81 ikke komplett. Formatet på selve listen ser slik ut (klippet):
</p>
84 <?xml
version="
1.0"
encoding="UTF-
8"?
>
85 <STASJONSDATABASE
>
87 <NAME
></NAME
>
88 <ADDRESS
></ADDRESS
>
89 <ID
>0</ID
>
90 <LATITUDE
>0.000000</LATITUDE
>
91 <LONGITUDE
>0.000000</LONGITUDE
>
92 <COMPANY
></COMPANY
>
95 <NAME
>Statoil Best Eidsvoll Verk
</NAME
>
96 <ADDRESS
>Gamle Trondheimsvei
339 2074 Eidsvoll Verk
</ADDRESS
>
97 <ID
>1</ID
>
98 <LATITUDE
>60.303902</LATITUDE
>
99 <LONGITUDE
>11.168100</LONGITUDE
>
100 <COMPANY
>Best
</COMPANY
>
104 <NAME
>Esso Andenes
</NAME
>
105 <ADDRESS
>Falcksgate
9,
8480 Andenes
</ADDRESS
>
106 <ID
>1822</ID
>
107 <LATITUDE
>69.320999</LATITUDE
>
108 <LONGITUDE
>16.118700</LONGITUDE
>
109 <COMPANY
>Esso
</COMPANY
>
111 </STASJONSDATABASE
>
114 <p><b>GetBanStatus
</b></p>
116 <p><tt>echo UDID=Android-
123456789012345 | POST http://www.bitfactory.no/Bensin/ver1.1.GetBanStatus.php
</tt></p>
118 <p>Vet heller ikke helt hva dette API-kallet gjør. Navnet gjør at jeg
119 tror den rapporterer om telefonen med UDID oppgitt som argument er
120 bannlyst fra tjenesten. Bannlysning gjør antagelig at telefonen ikke
121 kan brukes til å registrere bensinpriser, men det er også mulig det
122 blokkerer for å se på priser. Eneste POST-argument er UDID, som ser
123 ut til å være den unike ID-en til en mobil-enhet. Returnverdi er 'NO'
124 for alle UDID-verdier jeg har testet. Gjetter på at alternativ
125 returverdi er 'YES', men har ikke sett en slik verdi så langt.
</p>
127 <p><b>PriserVedStasjoner
</b></p>
129 <p><tt>echo 'stasjoner=
810,
364&day=
0' | POST http://www.bitfactory.no/Bensin/ver1.1.PriserVedStasjoner.php
</tt></p>
131 <p>Dette kallet henter ut priser registrert på en eller flere
132 bensinstasjoner. Den tar to POST-argumenter, "stasjoner" som er
133 kommaseparert liste over stasjons-IDer (numeriske), og "day" som bør
134 settes til "
0" for å få ut informasjon om priser. Usikker på hva
135 day-tallet betyr, men mistenker det har med hvor langt tilbake i tid
136 det skal hentes ut informasjon.
</p>
138 <p>Resultatet som kommer tilbake er en kommaseparert liste for hver
139 enkelt stasjon, med
<br
> som skillemarkør mellom hver stasjon.
140 Ikke helt sikker på hva alle feltene er. Her er mine gjett:
</p>
143 <tr><ht>Felt
</ht><ht>Beskrivelse
</ht></tr>
144 <tr><td>1</td><td>Bensinstasjons-ID
</td></tr>
145 <tr><td>2</td><td>Pris for blyfri
95 oktan, flyttall med punktum som desimalskille.
</td></tr>
146 <tr><td>3</td><td>Klokkeslett da prisen ble oppdatert, format HH:MM.
</td></tr>
147 <tr><td>4</td><td>Telefon-ID på formen Android-
123456789012345 eller hex-kodet streng/MD5-sum
</td></tr>
148 <tr><td>5</td><td>tall, uviss betydning. muligens relatert til day-verdien.
<b>Oppdatering
2012-
06-
02: Denne verdien er antall bekreftelser en gitt pris har fått.
</td></tr>
149 <tr><td>6</td><td>Pris for blyfri
98-oktan?
</td></tr>
150 <tr><td>7</td><td>samme som felt
3</td></tr>
151 <tr><td>8</td><td>samme som felt
4</td></tr>
152 <tr><td>9</td><td>samme som felt
5</td></tr>
153 <tr><td>10</td><td>Pris for disel
</td></tr>
154 <tr><td>11</td><td>Samme som felt
3</td></tr>
155 <tr><td>12</td><td>Samme som felt
4</td></tr>
156 <tr><td>13</td><td>Samme som felt
5</td></tr>
159 <p>En stasjonsoppføring består dermed av av bensinstasjons-ID og
160 deretter tre blokker for
95-oktan bensin,
98-oktan bensin og
163 <p><b>PriserVedStasjon
</b></p>
165 <p><tt>echo 'id=
736&day=
0' | POST http://www.bitfactory.no/Bensin/ver1.1.PriserVedStasjon.php
</tt></p>
167 <p>Ser ut til å returnere informasjon for en enkelt bensinstasjon.
168 Formatet er dato på formen "
08_12_2011" for
2011-
12-
08, og noe som ser
169 ut som samme format som fra PriserVedStasjoner. For stasjoner der
170 intet er registrert returnerer den "NO RESULTS".
</p>
172 <p><b>AllePriser
</b></p>
174 <p><tt>echo day=
0 | POST http://www.bitfactory.no/Bensin/ver1.1.AllePriser.php
</tt></p>
176 <p>Returnere liste med av alle stasjoner det er registrert oppdaterte
177 priser på siste
24 timer (eller er det fra ca. midnatt dagen før?).
178 Returnerer "NO RESULTS" når listen er tom. Ellers returnerer den en
179 dato på formen "Thursday_09_12_2011" fulgt av
<br
> og deretter
180 en liste med stasjoner på samme format som PriserVedStasjoner.
</p>
183 <div class=
"tags">Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/norsk">norsk
</a>.
</div>
201 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2020/02/">February (
2)
</a></li>
208 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2019/01/">January (
4)
</a></li>
210 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2019/02/">February (
3)
</a></li>
212 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2019/03/">March (
3)
</a></li>
214 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2019/05/">May (
2)
</a></li>
216 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2019/06/">June (
5)
</a></li>
218 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2019/07/">July (
2)
</a></li>
220 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2019/08/">August (
1)
</a></li>
222 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2019/09/">September (
1)
</a></li>
224 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2019/11/">November (
1)
</a></li>
226 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2019/12/">December (
4)
</a></li>
233 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2018/01/">January (
1)
</a></li>
235 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2018/02/">February (
5)
</a></li>
237 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2018/03/">March (
5)
</a></li>
239 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2018/04/">April (
3)
</a></li>
241 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2018/06/">June (
2)
</a></li>
243 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2018/07/">July (
5)
</a></li>
245 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2018/08/">August (
3)
</a></li>
247 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2018/09/">September (
3)
</a></li>
249 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2018/10/">October (
5)
</a></li>
251 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2018/11/">November (
2)
</a></li>
253 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2018/12/">December (
4)
</a></li>
260 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2017/01/">January (
4)
</a></li>
262 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2017/02/">February (
3)
</a></li>
264 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2017/03/">March (
5)
</a></li>
266 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2017/04/">April (
2)
</a></li>
268 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2017/06/">June (
5)
</a></li>
270 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2017/07/">July (
1)
</a></li>
272 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2017/08/">August (
1)
</a></li>
274 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2017/09/">September (
3)
</a></li>
276 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2017/10/">October (
5)
</a></li>
278 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2017/11/">November (
3)
</a></li>
280 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2017/12/">December (
4)
</a></li>
287 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/01/">January (
3)
</a></li>
289 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/02/">February (
2)
</a></li>
291 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/03/">March (
3)
</a></li>
293 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/04/">April (
8)
</a></li>
295 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/05/">May (
8)
</a></li>
297 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/06/">June (
2)
</a></li>
299 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/07/">July (
2)
</a></li>
301 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/08/">August (
5)
</a></li>
303 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/09/">September (
2)
</a></li>
305 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/10/">October (
3)
</a></li>
307 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/11/">November (
8)
</a></li>
309 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/12/">December (
5)
</a></li>
316 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/01/">January (
7)
</a></li>
318 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/02/">February (
6)
</a></li>
320 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/03/">March (
1)
</a></li>
322 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/04/">April (
4)
</a></li>
324 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/05/">May (
3)
</a></li>
326 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/06/">June (
4)
</a></li>
328 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/07/">July (
6)
</a></li>
330 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/08/">August (
2)
</a></li>
332 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/09/">September (
2)
</a></li>
334 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/10/">October (
9)
</a></li>
336 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/11/">November (
6)
</a></li>
338 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/12/">December (
3)
</a></li>
345 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/01/">January (
2)
</a></li>
347 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/02/">February (
3)
</a></li>
349 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/03/">March (
8)
</a></li>
351 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/04/">April (
7)
</a></li>
353 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/05/">May (
1)
</a></li>
355 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/06/">June (
2)
</a></li>
357 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/07/">July (
2)
</a></li>
359 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/08/">August (
2)
</a></li>
361 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/09/">September (
5)
</a></li>
363 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/10/">October (
6)
</a></li>
365 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/11/">November (
3)
</a></li>
367 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/12/">December (
5)
</a></li>
374 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/01/">January (
11)
</a></li>
376 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/02/">February (
9)
</a></li>
378 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/03/">March (
9)
</a></li>
380 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/04/">April (
6)
</a></li>
382 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/05/">May (
9)
</a></li>
384 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/06/">June (
10)
</a></li>
386 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/07/">July (
7)
</a></li>
388 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/08/">August (
3)
</a></li>
390 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/09/">September (
5)
</a></li>
392 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/10/">October (
7)
</a></li>
394 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/11/">November (
9)
</a></li>
396 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/12/">December (
3)
</a></li>
403 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/01/">January (
7)
</a></li>
405 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/02/">February (
10)
</a></li>
407 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/03/">March (
17)
</a></li>
409 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/04/">April (
12)
</a></li>
411 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/05/">May (
12)
</a></li>
413 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/06/">June (
20)
</a></li>
415 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/07/">July (
17)
</a></li>
417 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/08/">August (
6)
</a></li>
419 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/09/">September (
9)
</a></li>
421 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/10/">October (
17)
</a></li>
423 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/11/">November (
10)
</a></li>
425 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/12/">December (
7)
</a></li>
432 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/01/">January (
16)
</a></li>
434 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/02/">February (
6)
</a></li>
436 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/03/">March (
6)
</a></li>
438 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/04/">April (
7)
</a></li>
440 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/05/">May (
3)
</a></li>
442 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/06/">June (
2)
</a></li>
444 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/07/">July (
7)
</a></li>
446 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/08/">August (
6)
</a></li>
448 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/09/">September (
4)
</a></li>
450 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/10/">October (
2)
</a></li>
452 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/11/">November (
3)
</a></li>
454 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/12/">December (
1)
</a></li>
461 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/01/">January (
2)
</a></li>
463 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/02/">February (
1)
</a></li>
465 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/03/">March (
3)
</a></li>
467 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/04/">April (
3)
</a></li>
469 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/05/">May (
9)
</a></li>
471 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/06/">June (
14)
</a></li>
473 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/07/">July (
12)
</a></li>
475 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/08/">August (
13)
</a></li>
477 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/09/">September (
7)
</a></li>
479 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/10/">October (
9)
</a></li>
481 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/11/">November (
13)
</a></li>
483 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/12/">December (
12)
</a></li>
490 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/01/">January (
8)
</a></li>
492 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/02/">February (
8)
</a></li>
494 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/03/">March (
12)
</a></li>
496 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/04/">April (
10)
</a></li>
498 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/05/">May (
9)
</a></li>
500 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/06/">June (
3)
</a></li>
502 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/07/">July (
4)
</a></li>
504 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/08/">August (
3)
</a></li>
506 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/09/">September (
1)
</a></li>
508 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/10/">October (
2)
</a></li>
510 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/11/">November (
3)
</a></li>
512 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/12/">December (
3)
</a></li>
519 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2008/11/">November (
5)
</a></li>
521 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2008/12/">December (
7)
</a></li>
532 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (
16)
</a></li>
534 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/amiga">amiga (
1)
</a></li>
536 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/aros">aros (
1)
</a></li>
538 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/bankid">bankid (
4)
</a></li>
540 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/betalkontant">betalkontant (
8)
</a></li>
542 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (
11)
</a></li>
544 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (
17)
</a></li>
546 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/bsa">bsa (
2)
</a></li>
548 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/chrpath">chrpath (
2)
</a></li>
550 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/debian">debian (
168)
</a></li>
552 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (
158)
</a></li>
554 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/debian-handbook">debian-handbook (
4)
</a></li>
556 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/digistan">digistan (
11)
</a></li>
558 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/dld">dld (
17)
</a></li>
560 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/docbook">docbook (
26)
</a></li>
562 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (
4)
</a></li>
564 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/english">english (
412)
</a></li>
566 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (
23)
</a></li>
568 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (
14)
</a></li>
570 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (
34)
</a></li>
572 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox (
9)
</a></li>
574 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (
20)
</a></li>
576 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/h264">h264 (
20)
</a></li>
578 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/intervju">intervju (
42)
</a></li>
580 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram (
16)
</a></li>
582 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/kart">kart (
22)
</a></li>
584 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/kodi">kodi (
4)
</a></li>
586 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/ldap">ldap (
9)
</a></li>
588 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/lego">lego (
4)
</a></li>
590 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/lenker">lenker (
8)
</a></li>
592 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/lsdvd">lsdvd (
2)
</a></li>
594 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (
1)
</a></li>
596 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network (
8)
</a></li>
598 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (
42)
</a></li>
600 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software (
12)
</a></li>
602 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/noark5">noark5 (
21)
</a></li>
604 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/norsk">norsk (
311)
</a></li>
606 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/nuug">nuug (
196)
</a></li>
608 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (
37)
</a></li>
610 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/open311">open311 (
2)
</a></li>
612 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (
75)
</a></li>
614 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/personvern">personvern (
111)
</a></li>
616 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/raid">raid (
2)
</a></li>
618 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/reactos">reactos (
1)
</a></li>
620 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/reprap">reprap (
11)
</a></li>
622 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/rfid">rfid (
3)
</a></li>
624 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/robot">robot (
12)
</a></li>
626 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/rss">rss (
1)
</a></li>
628 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/ruter">ruter (
7)
</a></li>
630 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (
2)
</a></li>
632 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (
56)
</a></li>
634 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (
4)
</a></li>
636 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (
5)
</a></li>
638 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/standard">standard (
69)
</a></li>
640 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (
6)
</a></li>
642 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (
12)
</a></li>
644 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (
57)
</a></li>
646 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (
4)
</a></li>
648 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/usenix">usenix (
2)
</a></li>
650 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/valg">valg (
9)
</a></li>
652 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/verkidetfri">verkidetfri (
17)
</a></li>
654 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/video">video (
73)
</a></li>
656 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (
4)
</a></li>
658 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/web">web (
42)
</a></li>
664 <p style=
"text-align: right">
665 Created by
<a href=
"http://steve.org.uk/Software/chronicle">Chronicle v4.6
</a>