]> pere.pagekite.me Git - homepage.git/blobdiff - blog/index.html
New post.
[homepage.git] / blog / index.html
index d185f8fa18a4a424c2289e65b6216e93c1a0080c..3e773a0c13e621248c35ce68037f497c14200d27 100644 (file)
 
 
     
+    <div class="entry">
+      <div class="title"><a href="http://people.skolelinux.org/pere/blog/Suddenly_I_am_the_new_upstream_of_the_lsdvd_command_line_tool.html">Suddenly I am the new upstream of the lsdvd command line tool</a></div>
+      <div class="date">25th September 2014</div>
+      <div class="body"><p>I use the <a href="https://sourceforge.net/p/lsdvd/">lsdvd tool</a>
+to handle my fairly large DVD collection.  It is a nice command line
+tool to get details about a DVD, like title, tracks, track length,
+etc, in XML, Perl or human readable format.  But lsdvd have not seen
+any new development since 2006 and had a few irritating bugs affecting
+its use with some DVDs.  Upstream seemed to be dead, and in January I
+sent a small probe asking for a version control repository for the
+project, without any reply.  But I use it regularly and would like to
+get <a href="https://packages.qa.debian.org/lsdvd">an updated version
+into Debian</a>.  So two weeks ago I tried harder to get in touch with
+the project admin, and after getting a reply from him explaining that
+he was no longer interested in the project, I asked if I could take
+over.  And yesterday, I became project admin.</p>
+
+<p>I've been in touch with a Gentoo developer and the Debian
+maintainer interested in joining forces to maintain the upstream
+project, and I hope we can get a new release out fairly quickly,
+collecting the patches spread around on the internet into on place.
+I've added the relevant Debian patches to the freshly created git
+repository, and expect the Gentoo patches to make it too.  If you got
+a DVD collection and care about command line tools, check out
+<a href="https://sourceforge.net/p/lsdvd/git/ci/master/tree/">the git source</a> and join
+<a href="https://sourceforge.net/p/lsdvd/mailman/">the project mailing
+list</a>. :)</p>
+</div>
+      <div class="tags">
+        
+        
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>. 
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
+    <div class="entry">
+      <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 '&lt;totaltAntallReturnert>0&lt;'
+    then
+    :
+    else
+    echo $id
+    lookup "/datakatalog/objekttyper/$id" |grep '^  &lt;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
+  &lt;navn>Rekkverk&lt;/navn>
+14
+  &lt;navn>Rekkverksende&lt;/navn>
+47
+  &lt;navn>Trafikklomme&lt;/navn>
+49
+  &lt;navn>Trafikkøy&lt;/navn>
+60
+  &lt;navn>Bru&lt;/navn>
+79
+  &lt;navn>Stikkrenne/Kulvert&lt;/navn>
+80
+  &lt;navn>Grøft, åpen&lt;/navn>
+86
+  &lt;navn>Belysningsstrekning&lt;/navn>
+95
+  &lt;navn>Skiltpunkt&lt;/navn>
+96
+  &lt;navn>Skiltplate&lt;/navn>
+98
+  &lt;navn>Referansestolpe&lt;/navn>
+99
+  &lt;navn>Vegoppmerking, langsgående&lt;/navn>
+105
+  &lt;navn>Fartsgrense&lt;/navn>
+106
+  &lt;navn>Vinterdriftsstrategi&lt;/navn>
+172
+  &lt;navn>Trafikkdeler&lt;/navn>
+241
+  &lt;navn>Vegdekke&lt;/navn>
+293
+  &lt;navn>Breddemåling&lt;/navn>
+301
+  &lt;navn>Kantklippareal&lt;/navn>
+318
+  &lt;navn>Snø-/isrydding&lt;/navn>
+445
+  &lt;navn>Skred&lt;/navn>
+446
+  &lt;navn>Dokumentasjon&lt;/navn>
+452
+  &lt;navn>Undergang&lt;/navn>
+528
+  &lt;navn>Tverrprofil&lt;/navn>
+532
+  &lt;navn>Vegreferanse&lt;/navn>
+534
+  &lt;navn>Region&lt;/navn>
+535
+  &lt;navn>Fylke&lt;/navn>
+536
+  &lt;navn>Kommune&lt;/navn>
+538
+  &lt;navn>Gate&lt;/navn>
+539
+  &lt;navn>Transportlenke&lt;/navn>
+540
+  &lt;navn>Trafikkmengde&lt;/navn>
+570
+  &lt;navn>Trafikkulykke&lt;/navn>
+571
+  &lt;navn>Ulykkesinvolvert enhet&lt;/navn>
+572
+  &lt;navn>Ulykkesinvolvert person&lt;/navn>
+579
+  &lt;navn>Politidistrikt&lt;/navn>
+583
+  &lt;navn>Vegbredde&lt;/navn>
+591
+  &lt;navn>Høydebegrensning&lt;/navn>
+592
+  &lt;navn>Nedbøyningsmåling&lt;/navn>
+597
+  &lt;navn>Støy-luft, Strekningsdata&lt;/navn>
+601
+  &lt;navn>Oppgravingsdata&lt;/navn>
+602
+  &lt;navn>Oppgravingslag&lt;/navn>
+603
+  &lt;navn>PMS-parsell&lt;/navn>
+604
+  &lt;navn>Vegnormalstrekning&lt;/navn>
+605
+  &lt;navn>Værrelatert strekning&lt;/navn>
+616
+  &lt;navn>Feltstrekning&lt;/navn>
+617
+  &lt;navn>Adressepunkt&lt;/navn>
+626
+  &lt;navn>Friksjonsmåleserie&lt;/navn>
+629
+  &lt;navn>Vegdekke, flatelapping&lt;/navn>
+639
+  &lt;navn>Kurvatur, horisontalelement&lt;/navn>
+640
+  &lt;navn>Kurvatur, vertikalelement&lt;/navn>
+642
+  &lt;navn>Kurvatur, vertikalpunkt&lt;/navn>
+643
+  &lt;navn>Statistikk, trafikkmengde&lt;/navn>
+647
+  &lt;navn>Statistikk, vegbredde&lt;/navn>
+774
+  &lt;navn>Nedbøyningsmåleserie&lt;/navn>
+775
+  &lt;navn>ATK, influensstrekning&lt;/navn>
+794
+  &lt;navn>Systemobjekt&lt;/navn>
+810
+  &lt;navn>Vinterdriftsklasse&lt;/navn>
+821
+  &lt;navn>Funksjonell vegklasse&lt;/navn>
+825
+  &lt;navn>Kurvatur, stigning&lt;/navn>
+838
+  &lt;navn>Vegbredde, beregnet&lt;/navn>
+862
+  &lt;navn>Reisetidsregistreringspunkt&lt;/navn>
+871
+  &lt;navn>Bruksklasse&lt;/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>
+</div>
+      <div class="tags">
+        
+        
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/kart">kart</a>, <a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/rfid">rfid</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>. 
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
+    <div class="entry">
+      <div class="title"><a href="http://people.skolelinux.org/pere/blog/Speeding_up_the_Debian_installer_using_eatmydata_and_dpkg_divert.html">Speeding up the Debian installer using eatmydata and dpkg-divert</a></div>
+      <div class="date">16th September 2014</div>
+      <div class="body"><p>The <a href="https://www.debian.org/">Debian</a> installer could be
+a lot quicker.  When we install more than 2000 packages in
+<a href="http://www.skolelinux.org/">Skolelinux / Debian Edu</a> using
+tasksel in the installer, unpacking the binary packages take forever.
+A part of the slow I/O issue was discussed in
+<a href="https://bugs.debian.org/613428">bug #613428</a> about too
+much file system sync-ing done by dpkg, which is the package
+responsible for unpacking the binary packages.  Other parts (like code
+executed by postinst scripts) might also sync to disk during
+installation.  All this sync-ing to disk do not really make sense to
+me.  If the machine crash half-way through, I start over, I do not try
+to salvage the half installed system.  So the failure sync-ing is
+supposed to protect against, hardware or system crash, is not really
+relevant while the installer is running.</p>
+
+<p>A few days ago, I thought of a way to get rid of all the file
+system sync()-ing in a fairly non-intrusive way, without the need to
+change the code in several packages.  The idea is not new, but I have
+not heard anyone propose the approach using dpkg-divert before.  It
+depend on the small and clever package
+<a href="https://packages.qa.debian.org/eatmydata">eatmydata</a>, which
+uses LD_PRELOAD to replace the system functions for syncing data to
+disk with functions doing nothing, thus allowing programs to live
+dangerous while speeding up disk I/O significantly.  Instead of
+modifying the implementation of dpkg, apt and tasksel (which are the
+packages responsible for selecting, fetching and installing packages),
+it occurred to me that we could just divert the programs away, replace
+them with a simple shell wrapper calling
+"eatmydata&nbsp;$program&nbsp;$@", to get the same effect.
+Two days ago I decided to test the idea, and wrapped up a simple
+implementation for the Debian Edu udeb.</p>
+
+<p>The effect was stunning.  In my first test it reduced the running
+time of the pkgsel step (installing tasks) from 64 to less than 44
+minutes (20 minutes shaved off the installation) on an old Dell
+Latitude D505 machine.  I am not quite sure what the optimised time
+would have been, as I messed up the testing a bit, causing the debconf
+priority to get low enough for two questions to pop up during
+installation.  As soon as I saw the questions I moved the installation
+along, but do not know how long the question were holding up the
+installation.  I did some more measurements using Debian Edu Jessie,
+and got these results.  The time measured is the time stamp in
+/var/log/syslog between the "pkgsel: starting tasksel" and the
+"pkgsel: finishing up" lines, if you want to do the same measurement
+yourself.  In Debian Edu, the tasksel dialog do not show up, and the
+timing thus do not depend on how quickly the user handle the tasksel
+dialog.</p>
+
+<p><table>
+
+<tr>
+<th>Machine/setup</th>
+<th>Original tasksel</th>
+<th>Optimised tasksel</th>
+<th>Reduction</th>
+</tr>
+
+<tr>
+<td>Latitude D505 Main+LTSP LXDE</td>
+<td>64 min (07:46-08:50)</td>
+<td><44 min (11:27-12:11)</td>
+<td>>20 min 18%</td>
+</tr>
+
+<tr>
+<td>Latitude D505 Roaming LXDE</td>
+<td>57 min (08:48-09:45)</td>
+<td>34 min (07:43-08:17)</td>
+<td>23 min 40%</td>
+</tr>
+
+<tr>
+<td>Latitude D505 Minimal</td>
+<td>22 min (10:37-10:59)</td>
+<td>11 min (11:16-11:27)</td>
+<td>11 min 50%</td>
+</tr>
+
+<tr>
+<td>Thinkpad X200 Minimal</td>
+<td>6 min (08:19-08:25)</td>
+<td>4 min (08:04-08:08)</td>
+<td>2 min 33%</td>
+</tr>
+
+<tr>
+<td>Thinkpad X200 Roaming KDE</td>
+<td>19 min (09:21-09:40)</td>
+<td>15 min (10:25-10:40)</td>
+<td>4 min 21%</td>
+</tr>
+
+</table></p>
+
+<p>The test is done using a netinst ISO on a USB stick, so some of the
+time is spent downloading packages.  The connection to the Internet
+was 100Mbit/s during testing, so downloading should not be a
+significant factor in the measurement.  Download typically took a few
+seconds to a few minutes, depending on the amount of packages being
+installed.</p>
+
+<p>The speedup is implemented by using two hooks in
+<a href="https://www.debian.org/devel/debian-installer/">Debian
+Installer</a>, the pre-pkgsel.d hook to set up the diverts, and the
+finish-install.d hook to remove the divert at the end of the
+installation.  I picked the pre-pkgsel.d hook instead of the
+post-base-installer.d hook because I test using an ISO without the
+eatmydata package included, and the post-base-installer.d hook in
+Debian Edu can only operate on packages included in the ISO.  The
+negative effect of this is that I am unable to activate this
+optimization for the kernel installation step in d-i.  If the code is
+moved to the post-base-installer.d hook, the speedup would be larger
+for the entire installation.</p>
+
+<p>I've implemented this in the
+<a href="https://packages.qa.debian.org/debian-edu-install">debian-edu-install</a>
+git repository, and plan to provide the optimization as part of the
+Debian Edu installation.  If you want to test this yourself, you can
+create two files in the installer (or in an udeb).  One shell script
+need do go into /usr/lib/pre-pkgsel.d/, with content like this:</p>
+
+<p><blockquote><pre>
+#!/bin/sh
+set -e
+. /usr/share/debconf/confmodule
+info() {
+    logger -t my-pkgsel "info: $*"
+}
+error() {
+    logger -t my-pkgsel "error: $*"
+}
+override_install() {
+    apt-install eatmydata || true
+    if [ -x /target/usr/bin/eatmydata ] ; then
+        for bin in dpkg apt-get aptitude tasksel ; do
+            file=/usr/bin/$bin
+            # Test that the file exist and have not been diverted already.
+            if [ -f /target$file ] ; then
+                info "diverting $file using eatmydata"
+                printf "#!/bin/sh\neatmydata $bin.distrib \"\$@\"\n" \
+                    > /target$file.edu
+                chmod 755 /target$file.edu
+                in-target dpkg-divert --package debian-edu-config \
+                    --rename --quiet --add $file
+                ln -sf ./$bin.edu /target$file
+            else
+                error "unable to divert $file, as it is missing."
+            fi
+        done
+    else
+        error "unable to find /usr/bin/eatmydata after installing the eatmydata pacage"
+    fi
+}
+
+override_install
+</pre></blockquote></p>
+
+<p>To clean up, another shell script should go into
+/usr/lib/finish-install.d/ with code like this:
+
+<p><blockquote><pre>
+#! /bin/sh -e
+. /usr/share/debconf/confmodule
+error() {
+    logger -t my-finish-install "error: $@"
+}
+remove_install_override() {
+    for bin in dpkg apt-get aptitude tasksel ; do
+        file=/usr/bin/$bin
+        if [ -x /target$file.edu ] ; then
+            rm /target$file
+            in-target dpkg-divert --package debian-edu-config \
+                --rename --quiet --remove $file
+            rm /target$file.edu
+        else
+            error "Missing divert for $file."
+        fi
+    done
+    sync # Flush file buffers before continuing
+}
+
+remove_install_override
+</pre></blockquote></p>
+
+<p>In Debian Edu, I placed both code fragments in a separate script
+edu-eatmydata-install and call it from the pre-pkgsel.d and
+finish-install.d scripts.</p>
+
+<p>By now you might ask if this change should get into the normal
+Debian installer too?  I suspect it should, but am not sure the
+current debian-installer coordinators find it useful enough.  It also
+depend on the side effects of the change.  I'm not aware of any, but I
+guess we will see if the change is safe after some more testing.
+Perhaps there is some package in Debian depending on sync() and
+fsync() having effect?  Perhaps it should go into its own udeb, to
+allow those of us wanting to enable it to do so without affecting
+everyone.</p>
+
+<p>Update 2014-09-24: Since a few days ago, enabling this optimization
+will break installation of all programs using gnutls because of
+<a href="https://bugs.debian.org/702711">bug #702711.  An updated
+eatmydata package in Debian will solve it.</p>
+</div>
+      <div class="tags">
+        
+        
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <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/Good_bye_subkeys_pgp_net__welcome_pool_sks_keyservers_net.html">Good bye subkeys.pgp.net, welcome pool.sks-keyservers.net</a></div>
+      <div class="date">10th September 2014</div>
+      <div class="body"><p>Yesterday, I had the pleasure of attending a talk with the
+<a href="http://www.nuug.no/">Norwegian Unix User Group</a> about
+<a href="http://www.nuug.no/aktiviteter/20140909-sks-keyservers/">the
+OpenPGP keyserver pool sks-keyservers.net</a>, and was very happy to
+learn that there is a large set of publicly available key servers to
+use when looking for peoples public key.  So far I have used
+subkeys.pgp.net, and some times wwwkeys.nl.pgp.net when the former
+were misbehaving, but those days are ended.  The servers I have used
+up until yesterday have been slow and some times unavailable.  I hope
+those problems are gone now.</p>
+
+<p>Behind the round robin DNS entry of the
+<a href="https://sks-keyservers.net/">sks-keyservers.net</a> service
+there is a pool of more than 100 keyservers which are checked every
+day to ensure they are well connected and up to date.  It must be
+better than what I have used so far. :)</p>
+
+<p>Yesterdays speaker told me that the service is the default
+keyserver provided by the default configuration in GnuPG, but this do
+not seem to be used in Debian.  Perhaps it should?</p>
+
+<p>Anyway, I've updated my ~/.gnupg/options file to now include this
+line:</p>
+
+<p><blockquote><pre>
+keyserver pool.sks-keyservers.net
+</pre></blockquote></p>
+
+<p>With GnuPG version 2 one can also locate the keyserver using SRV
+entries in DNS.  Just for fun, I did just that at work, so now every
+user of GnuPG at the University of Oslo should find a OpenGPG
+keyserver automatically should their need it:</p>
+
+<p><blockquote><pre>
+% host -t srv _pgpkey-http._tcp.uio.no
+_pgpkey-http._tcp.uio.no has SRV record 0 100 11371 pool.sks-keyservers.net.
+%
+</pre></blockquote></p>
+
+<p>Now if only
+<a href="http://ietfreport.isoc.org/idref/draft-shaw-openpgp-hkp/">the
+HKP lookup protocol</a> supported finding signature paths, I would be
+very happy.  It can look up a given key or search for a user ID, but I
+normally do not want that, but to find a trust path from my key to
+another key.  Given a user ID or key ID, I would like to find (and
+download) the keys representing a signature path from my key to the
+key in question, to be able to get a trust path between the two keys.
+This is as far as I can tell not possible today.  Perhaps something
+for a future version of the protocol?</p>
+</div>
+      <div class="tags">
+        
+        
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>. 
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
     <div class="entry">
       <div class="title"><a href="http://people.skolelinux.org/pere/blog/Do_you_need_an_agreement_with_MPEG_LA_to_publish_and_broadcast_H_264_video_in_Norway_.html">Do you need an agreement with MPEG-LA to publish and broadcast H.264 video in Norway?</a></div>
       <div class="date">25th August 2014</div>
@@ -609,305 +1190,6 @@ god innsats og youtube-dl-utviklerne for rask respons.</p>
     </div>
     <div class="padding"></div>
     
-    <div class="entry">
-      <div class="title"><a href="http://people.skolelinux.org/pere/blog/Free_software_car_computer_solution_.html">Free software car computer solution?</a></div>
-      <div class="date">29th May 2014</div>
-      <div class="body"><p>Dear lazyweb.  I'm planning to set up a small Raspberry Pi computer
-in my car, connected to
-<a href="http://www.dx.com/p/400a-4-0-tft-lcd-digital-monitor-for-vehicle-parking-reverse-camera-1440x272-12v-dc-57776">a
-small screen</a> next to the rear mirror.  I plan to hook it up with a
-GPS and a USB wifi card too.  The idea is to get my own
-"<a href="http://en.wikipedia.org/wiki/Carputer">Carputer</a>".  But I
-wonder if someone already created a good free software solution for
-such car computer.</p>
-
-<p>This is my current wish list for such system:</p>
-
-<ul>
-
- <li>Work on Raspberry Pi.</li>
-
- <li>Show current speed limit based on location, and warn if going too
-   fast (for example using color codes yellow and red on the screen,
-   or make a sound).  This could be done either using either data from
-   <a href="http://www.openstreetmap.org/">Openstreetmap</a> or OCR
-   info gathered from a dashboard camera.</li>
-
- <li>Track automatic toll road passes and their cost, show total spent
-   and make it possible to calculate toll costs for planned
-   route.</li>
-
- <li>Collect GPX tracks for use with OpenStreetMap.</li>
-
- <li>Automatically detect and use any wireless connection to connect
-   to home server.  Try IP over DNS
-   (<a href="http://dev.kryo.se/iodine/">iodine</a>) or ICMP
-   (<a href="http://code.gerade.org/hans/">Hans</a>) if direct
-   connection do not work.</li>
-
- <li>Set up mesh network to talk to other cars with the same system,
-   or some standard car mesh protocol.</li>
-
- <li>Warn when approaching speed cameras and speed camera ranges
-   (speed calculated between two cameras).</li>
-
- <li>Suport dashboard/front facing camera to discover speed limits and
-   run OCR to track registration number of passing cars.</li>
-
-</ul>
-
-<p>If you know of any free software car computer system supporting
-some or all of these features, please let me know.</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/Half_the_Coverity_issues_in_Gnash_fixed_in_the_next_release.html">Half the Coverity issues in Gnash fixed in the next release</a></div>
-      <div class="date">29th April 2014</div>
-      <div class="body"><p>I've been following <a href="http://www.getgnash.org/">the Gnash
-project</a> for quite a while now.  It is a free software
-implementation of Adobe Flash, both a standalone player and a browser
-plugin.  Gnash implement support for the AVM1 format (and not the
-newer AVM2 format - see
-<a href="http://lightspark.github.io/">Lightspark</a> for that one),
-allowing several flash based sites to work.  Thanks to the friendly
-developers at Youtube, it also work with Youtube videos, because the
-Javascript code at Youtube detect Gnash and serve a AVM1 player to
-those users. :) Would be great if someone found time to implement AVM2
-support, but it has not happened yet.  If you install both Lightspark
-and Gnash, Lightspark will invoke Gnash if it find a AVM1 flash file,
-so you can get both handled as free software.  Unfortunately,
-Lightspark so far only implement a small subset of AVM2, and many
-sites do not work yet.</p>
-
-<p>A few months ago, I started looking at
-<a href="http://scan.coverity.com/">Coverity</a>, the static source
-checker used to find heaps and heaps of bugs in free software (thanks
-to the donation of a scanning service to free software projects by the
-company developing this non-free code checker), and Gnash was one of
-the projects I decided to check out.  Coverity is able to find lock
-errors, memory errors, dead code and more.  A few days ago they even
-extended it to also be able to find the heartbleed bug in OpenSSL.
-There are heaps of checks being done on the instrumented code, and the
-amount of bogus warnings is quite low compared to the other static
-code checkers I have tested over the years.</p>
-
-<p>Since a few weeks ago, I've been working with the other Gnash
-developers squashing bugs discovered by Coverity.  I was quite happy
-today when I checked the current status and saw that of the 777 issues
-detected so far, 374 are marked as fixed.  This make me confident that
-the next Gnash release will be more stable and more dependable than
-the previous one.  Most of the reported issues were and are in the
-test suite, but it also found a few in the rest of the code.</p>
-
-<p>If you want to help out, you find us on
-<a href="https://lists.gnu.org/mailman/listinfo/gnash-dev">the
-gnash-dev mailing list</a> and on
-<a href="irc://irc.freenode.net/#gnash">the #gnash channel on
-irc.freenode.net IRC server</a>.</p>
-</div>
-      <div class="tags">
-        
-        
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</a>. 
-        
-        
-      </div>
-    </div>
-    <div class="padding"></div>
-    
-    <div class="entry">
-      <div class="title"><a href="http://people.skolelinux.org/pere/blog/Install_hardware_dependent_packages_using_tasksel__Isenkram_0_7_.html">Install hardware dependent packages using tasksel (Isenkram 0.7)</a></div>
-      <div class="date">23rd April 2014</div>
-      <div class="body"><p>It would be nice if it was easier in Debian to get all the hardware
-related packages relevant for the computer installed automatically.
-So I implemented one, using
-<a href="http://packages.qa.debian.org/isenkram">my Isenkram
-package</a>.  To use it, install the tasksel and isenkram packages and
-run tasksel as user root.  You should be presented with a new option,
-"Hardware specific packages (autodetected by isenkram)".  When you
-select it, tasksel will install the packages isenkram claim is fit for
-the current hardware, hot pluggable or not.<p>
-
-<p>The implementation is in two files, one is the tasksel menu entry
-description, and the other is the script used to extract the list of
-packages to install.  The first part is in
-<tt>/usr/share/tasksel/descs/isenkram.desc</tt> and look like
-this:</p>
-
-<p><blockquote><pre>
-Task: isenkram
-Section: hardware
-Description: Hardware specific packages (autodetected by isenkram)
- Based on the detected hardware various hardware specific packages are
- proposed.
-Test-new-install: mark show
-Relevance: 8
-Packages: for-current-hardware
-</pre></blockquote></p>
-
-<p>The second part is in
-<tt>/usr/lib/tasksel/packages/for-current-hardware</tt> and look like
-this:</p>
-
-<p><blockquote><pre>
-#!/bin/sh
-#
-(
-    isenkram-lookup
-    isenkram-autoinstall-firmware -l
-) | sort -u
-</pre></blockquote></p>
-
-<p>All in all, a very short and simple implementation making it
-trivial to install the hardware dependent package we all may want to
-have installed on our machines.  I've not been able to find a way to
-get tasksel to tell you exactly which packages it plan to install
-before doing the installation.  So if you are curious or careful,
-check the output from the isenkram-* command line tools first.</p>
-
-<p>The information about which packages are handling which hardware is
-fetched either from the isenkram package itself in
-/usr/share/isenkram/, from git.debian.org or from the APT package
-database (using the Modaliases header).  The APT package database
-parsing have caused a nasty resource leak in the isenkram daemon (bugs
-<a href="http://bugs.debian.org/719837">#719837</a> and
-<a href="http://bugs.debian.org/730704">#730704</a>).  The cause is in
-the python-apt code (bug
-<a href="http://bugs.debian.org/745487">#745487</a>), but using a
-workaround I was able to get rid of the file descriptor leak and
-reduce the memory leak from ~30 MiB per hardware detection down to
-around 2 MiB per hardware detection.  It should make the desktop
-daemon a lot more useful.  The fix is in version 0.7 uploaded to
-unstable today.</p>
-
-<p>I believe the current way of mapping hardware to packages in
-Isenkram is is a good draft, but in the future I expect isenkram to
-use the AppStream data source for this.  A proposal for getting proper
-AppStream support into Debian is floating around as
-<a href="https://wiki.debian.org/DEP-11">DEP-11</a>, and
-<a href="https://wiki.debian.org/SummerOfCode2014/Projects#SummerOfCode2014.2FProjects.2FAppStreamDEP11Implementation.AppStream.2FDEP-11_for_the_Debian_Archive">GSoC
-project</a> will take place this summer to improve the situation.  I
-look forward to seeing the result, and welcome patches for isenkram to
-start using the information when it is ready.</p>
-
-<p>If you want your package to map to some specific hardware, either
-add a "Xb-Modaliases" header to your control file like I did in
-<a href="http://packages.qa.debian.org/pymissile">the pymissile
-package</a> or submit a bug report with the details to the isenkram
-package.  See also
-<a href="http://people.skolelinux.org/pere/blog/tags/isenkram/">all my
-blog posts tagged isenkram</a> for details on the notation.  I expect
-the information will be migrated to AppStream eventually, but for the
-moment I got no better place to store it.</p>
-</div>
-      <div class="tags">
-        
-        
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram</a>. 
-        
-        
-      </div>
-    </div>
-    <div class="padding"></div>
-    
-    <div class="entry">
-      <div class="title"><a href="http://people.skolelinux.org/pere/blog/FreedomBox_milestone___all_packages_now_in_Debian_Sid.html">FreedomBox milestone - all packages now in Debian Sid</a></div>
-      <div class="date">15th April 2014</div>
-      <div class="body"><p>The <a href="https://wiki.debian.org/FreedomBox">Freedombox
-project</a> is working on providing the software and hardware to make
-it easy for non-technical people to host their data and communication
-at home, and being able to communicate with their friends and family
-encrypted and away from prying eyes.  It is still going strong, and
-today a major mile stone was reached.</p>
-
-<p>Today, the last of the packages currently used by the project to
-created the system images were accepted into Debian Unstable.  It was
-the freedombox-setup package, which is used to configure the images
-during build and on the first boot.  Now all one need to get going is
-the build code from the freedom-maker git repository and packages from
-Debian.  And once the freedombox-setup package enter testing, we can
-build everything directly from Debian. :)</p>
-
-<p>Some key packages used by Freedombox are
-<a href="http://packages.qa.debian.org/freedombox-setup">freedombox-setup</a>,
-<a href="http://packages.qa.debian.org/plinth">plinth</a>,
-<a href="http://packages.qa.debian.org/pagekite">pagekite</a>,
-<a href="http://packages.qa.debian.org/tor">tor</a>,
-<a href="http://packages.qa.debian.org/privoxy">privoxy</a>,
-<a href="http://packages.qa.debian.org/owncloud">owncloud</a> and
-<a href="http://packages.qa.debian.org/dnsmasq">dnsmasq</a>.  There
-are plans to integrate more packages into the setup.  User
-documentation is maintained on the Debian wiki.  Please
-<a href="https://wiki.debian.org/FreedomBox/Manual/Jessie">check out
-the manual</a> and help us improve it.</p>
-
-<p>To test for yourself and create boot images with the FreedomBox
-setup, run this on a Debian machine using a user with sudo rights to
-become root:</p>
-
-<p><pre>
-sudo apt-get install git vmdebootstrap mercurial python-docutils \
-  mktorrent extlinux virtualbox qemu-user-static binfmt-support \
-  u-boot-tools
-git clone http://anonscm.debian.org/git/freedombox/freedom-maker.git \
-  freedom-maker
-make -C freedom-maker dreamplug-image raspberry-image virtualbox-image
-</pre></p>
-
-<p>Root access is needed to run debootstrap and mount loopback
-devices.  See the README in the freedom-maker git repo for more
-details on the build.  If you do not want all three images, trim the
-make line.  Note that the virtualbox-image target is not really
-virtualbox specific.  It create a x86 image usable in kvm, qemu,
-vmware and any other x86 virtual machine environment.  You might need
-the version of vmdebootstrap in Jessie to get the build working, as it
-include fixes for a race condition with kpartx.</p>
-
-<p>If you instead want to install using a Debian CD and the preseed
-method, boot a Debian Wheezy ISO and use this boot argument to load
-the preseed values:</p>
-
-<p><pre>
-url=<a href="http://www.reinholdtsen.name/freedombox/preseed-jessie.dat">http://www.reinholdtsen.name/freedombox/preseed-jessie.dat</a>
-</pre></p>
-
-<p>I have not tested it myself the last few weeks, so I do not know if
-it still work.</p>
-
-<p>If you wonder how to help, one task you could look at is using
-systemd as the boot system.  It will become the default for Linux in
-Jessie, so we need to make sure it is usable on the Freedombox.  I did
-a simple test a few weeks ago, and noticed dnsmasq failed to start
-during boot when using systemd.  I suspect there are other problems
-too. :) To detect problems, there is a test suite included, which can
-be run from the plinth web interface.</p>
-
-<p>Give it a go and let us know how it goes on the mailing list, and help
-us get the new release published. :) Please join us on
-<a href="irc://irc.debian.org:6667/%23freedombox">IRC (#freedombox on
-irc.debian.org)</a> and
-<a href="http://lists.alioth.debian.org/mailman/listinfo/freedombox-discuss">the
-mailing list</a> if you want to help make this vision come true.</p>
-</div>
-      <div class="tags">
-        
-        
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</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">
       
@@ -935,6 +1217,8 @@ mailing list</a> if you want to help make this vision come true.</p>
 
 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/08/">August (2)</a></li>
 
+<li><a href="http://people.skolelinux.org/pere/blog/archive/2014/09/">September (4)</a></li>
+
 </ul></li>
 
 <li>2013
@@ -1114,9 +1398,9 @@ mailing list</a> if you want to help make this vision come true.</p>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/chrpath">chrpath (2)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/debian">debian (99)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/debian">debian (102)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (148)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (149)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan (10)</a></li>
 
@@ -1126,7 +1410,7 @@ mailing list</a> if you want to help make this vision come true.</p>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/english">english (251)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/english">english (254)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (21)</a></li>
 
@@ -1142,7 +1426,7 @@ mailing list</a> if you want to help make this vision come true.</p>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram (9)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/kart">kart (18)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/kart">kart (19)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap (9)</a></li>
 
@@ -1152,9 +1436,9 @@ mailing list</a> if you want to help make this vision come true.</p>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network (8)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (29)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (30)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk (247)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk (248)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug (162)</a></li>
 
@@ -1164,7 +1448,7 @@ mailing list</a> if you want to help make this vision come true.</p>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (48)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern (73)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern (75)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/raid">raid (1)</a></li>
 
@@ -1172,7 +1456,7 @@ mailing list</a> if you want to help make this vision come true.</p>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/reprap">reprap (11)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/rfid">rfid (2)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/rfid">rfid (3)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/robot">robot (9)</a></li>
 
@@ -1182,7 +1466,7 @@ mailing list</a> if you want to help make this vision come true.</p>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (2)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (40)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (41)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (4)</a></li>
 
@@ -1194,7 +1478,7 @@ mailing list</a> if you want to help make this vision come true.</p>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (9)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (25)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (26)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (1)</a></li>