- <title>Litt informasjon om Bitfactorys Bensinpris-API</title>
- <link>http://people.skolelinux.org/pere/blog/Litt_informasjon_om_Bitfactorys_Bensinpris_API.html</link>
- <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Litt_informasjon_om_Bitfactorys_Bensinpris_API.html</guid>
- <pubDate>Mon, 28 May 2012 23:55:00 +0200</pubDate>
- <description><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>
-&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>
-
-<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>
-
-<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. <b>Oppdatering 2012-06-02: Denne verdien er antall bekreftelser en gitt pris har fått.</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 &lt;br&gt; og deretter
-en liste med stasjoner på samme format som PriserVedStasjoner.</p>
+ <title>Debian Edu - some ideas for the future versions</title>
+ <link>http://people.skolelinux.org/pere/blog/Debian_Edu___some_ideas_for_the_future_versions.html</link>
+ <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Debian_Edu___some_ideas_for_the_future_versions.html</guid>
+ <pubDate>Mon, 11 Jun 2012 14:30:00 +0200</pubDate>
+ <description><p>During my work on
+<a href="http://www.debian.org/News/2012/20120311.nb.html">Debian Edu
+based on Squeeze</a>, I came across some issues that should be
+addressed in the Wheezy release. I finally found time to wrap up my
+notes and provide quick summary of what I found, with a bit
+explanation.</p>
+
+<p><ul>
+
+<li>We need to rewrite our package installation framework, as tasksel
+changed from using tasksel tasks to using meta packages (aka packages
+with dependencies like our education-* packages), and our installation
+system depend on tasksel tasks in
+/usr/share/tasksel/debian-edu-tasks.desc for package
+installation.</li>
+
+<li>Enable Kerberos login for more services. Now with the Kerberos
+foundation in place, we should use it to get single sign on with more
+services, and avoiding unneeded password / login questions. We should
+at least try to enable it for these services:
+<ul>
+
+ <li>CUPS for admins to add/configure printers and users when using
+ quotas.</li>
+ <li>Nagios for admins checking the system status.</li>
+ <li>GOsa for admins updating LDAP and users changing their passwords.</li>
+ <li>LDAP for admins updating LDAP.</li>
+ <li>Squid for users when exam mode / filtering is active.</li>
+ <li>ssh for admins and users to save a password prompt.</li>
+
+</ul></li>
+
+<li>When we move GOsa to use Kerberos instead of LDAP bind to
+authenticate users, we should try to block or at least limit access to
+use LDAP bind for authentication, to ensure Kerberos is used when it
+is intended, and nothing fall back to using the less safe LDAP bind</li>
+
+<li>Merge debian-edu-config and debian-edu-install. The split made
+sense when d-e-install did a lot more, but these days it is just an
+inconvenience when we update the debconf preseeding values.</li>
+
+<li>Fix partman-auto to allow us to abort the installation before
+touching the disk if the disk is too small. This is
+<a href="http://bugs.debian.org/653305">BTS report #653305</a> and the
+d-i developers are fine with the patch and someone just need to apply
+it and upload. After this is done we need to adjust
+debian-edu-install to use this new hook.</li>
+
+<li>Adjust to new LTSP framework (boot time config instead of install
+time config). LTSP changed its design, and our hooks to install
+packages and update the configuration is most likely not going to work
+in Wheezy.
+
+<li>Consider switching to NBD instead of NFS for LTSP root, to allow
+the Kernel to cache files in its normal file cache, possibly speeding
+up KDE login on slow networks.</li>
+
+<li>Make it possible to create expired user passwords that need to
+change on first login. This is useful when handing out password on
+paper, to make sure only the user know the password. This require
+fixes to the PAM handling of kdm and gdm.</li>
+
+<li>Make GUI for adding new machines automatically from sitesummary.
+The current command line script is not very friendly to people most
+familiar with GUIs. This should probably be integrated into GOsa to
+have it available where the admin will be looking for it..</li>
+
+<li>We should find way for Nagios to check that the DHCP service
+actually is working (as in handling out IP addresses). None of the
+Nagios checks I have found so far have been working for me.</li>
+
+<li>We should switch from libpam-nss-ldapd to sssd for all profiles
+using LDAP, and not only on for roaming workstations, to have less
+packages to configure and consistent setup across all profiles.</li>
+
+<li>We should configure Kerberos to update LDAP and Samba password
+when changing password using the Kerberos protocol. The hook was
+requested in <a href="http://bugs.debian.org/588968">BTS report
+#588968</a> and is now available in Wheezy. We might need to write a
+MIT Kerberos plugin in C to get this.</li>
+
+<li>We should clean up the set of applications installed by default.
+<ul>
+
+<li>reduce the number of chemistry visualisers</li>
+<li>consider dropping xpaint</li>
+<li>and probably more?</li>
+</ul></li>
+
+<li>Some hardware need external firmware to work properly. This is
+mostly the case for WiFi network cards, but there are some other
+examples too. For popular laptops to work out of the box, such
+firmware need to be installed from non-free, and we should provide
+some GUI to do this. Ubuntu already have this implemented, and we
+could consider using their packages. At the moment we have some
+command line script to do this (one for the running system, another
+for the LTSP chroot).</li>
+
+
+<li>In Squeeze, we provide KDE, Gnome and LXDE as desktop options. We
+should extend the list to Xfce and Sugar, and preferably find a way to
+install several and allow the admin or the user to select which one to
+use.</li>
+
+<li>The golearn tool from the goplay package make it easy to check out
+interesting educational packages. We should work on the package
+tagging in Debian to ensure it represent all the useful educational
+packages, and extend the tool to allow it to use packagekit to install
+new applications with a simple mouse click.</li>
+
+<li>The Squeeze version got half a exam solution already in place,
+with the introduction of iptable based network blocking, but for it to
+be a complete exam solution the Squid proxy need to enable
+filtering/blocking as well when the exam mode is enabled. We should
+implement a way to easily enable this for the schools that want it,
+instead of the "it is documented" method of today.</li>
+
+<li>A feature used in several schools is the ability for a teacher to
+"take over" the desktop of individual or all computers in the room.
+There are at least three implementations,
+<a href="italc.sourceforge.net/">italc</a>,
+<a href="http://www.itais.net/help/en/">controlaula</a> og
+<a href="http://www.epoptes.org/">epoptes</a> and we should pick one of
+them and make it trivial to set it up in a school. The challenges is
+how to distribute crypto keys and how to group computers in one room
+and how to set up which machine/user can control the machines in a
+given room.</li>
+
+<li>Tablets and surf boards are getting more and more popular, and we
+should look into providing a good solution for integrating these into
+the Debian Edu network. Not quite sure how. Perhaps we should
+provide a installation profile with better touch screen support for
+them, or add some sync services to allow them to exchange
+configuration and data with the central server. This should be
+investigated.</li>
+
+</ul></p>
+
+<p>I guess we will discover more as we continue to work on the Wheezy
+version.</p>