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
</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" />
9 <link rel=
"alternate" title=
"RSS Feed" href=
"http://people.skolelinux.org/pere/blog/index.rss" type=
"application/rss+xml" />
14 <a href=
"http://people.skolelinux.org/pere/blog/">Petter Reinholdtsen
</a>
23 <div class=
"title"><a href=
"http://people.skolelinux.org/pere/blog/Unlimited_randomness_with_the_ChaosKey_.html">Unlimited randomness with the ChaosKey?
</a></div>
24 <div class=
"date"> 1st March
2017</div>
25 <div class=
"body"><p>A few days ago I ordered a small batch of
26 <a href=
"http://altusmetrum.org/ChaosKey/">the ChaosKey
</a>, a small
27 USB dongle for generating entropy created by Bdale Garbee and Keith
28 Packard. Yesterday it arrived, and I am very happy to report that it
29 work great! According to its designers, to get it to work out of the
30 box, you need the Linux kernel version
4.1 or later. I tested on a
31 Debian Stretch machine (kernel version
4.9), and there it worked just
32 fine, increasing the available entropy very quickly. I wrote a small
33 test oneliner to test. It first print the current entropy level,
34 drain /dev/random, and then print the entropy level for five seconds.
35 Here is the situation without the ChaosKey inserted:
</p>
38 % cat /proc/sys/kernel/random/entropy_avail; \
39 dd bs=
1M if=/dev/random of=/dev/null count=
1; \
40 for n in $(seq
1 5); do \
41 cat /proc/sys/kernel/random/entropy_avail; \
47 28 byte kopiert,
0,
000264565 s,
106 kB/s
56 <p>The entropy level increases by
3-
4 every second. In such case any
57 application requiring random bits (like a HTTPS enabled web server)
58 will halt and wait for more entrpy. And here is the situation with
59 the ChaosKey inserted:
</p>
62 % cat /proc/sys/kernel/random/entropy_avail; \
63 dd bs=
1M if=/dev/random of=/dev/null count=
1; \
64 for n in $(seq
1 5); do \
65 cat /proc/sys/kernel/random/entropy_avail; \
71 104 byte kopiert,
0,
000487647 s,
213 kB/s
80 <p>Quite the difference. :) I bought a few more than I need, in case
81 someone want to buy one here in Norway. :)
</p>
83 <p>Update: The dongle was presented at Debconf last year. You might
84 find
<a href=
"https://debconf16.debconf.org/talks/94/">the talk
85 recording illuminating
</a>. It explains exactly what the source of
86 randomness is, if you are unable to spot it from the schema drawing
87 available from the ChaosKey web site linked at the start of this blog
93 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>.
98 <div class=
"padding"></div>
101 <div class=
"title"><a href=
"http://people.skolelinux.org/pere/blog/Detect_OOXML_files_with_undefined_behaviour_.html">Detect OOXML files with undefined behaviour?
</a></div>
102 <div class=
"date">21st February
2017</div>
103 <div class=
"body"><p>I just noticed
104 <a href=
"http://www.arkivrad.no/aktuelt/riksarkivarens-forskrift-pa-horing">the
105 new Norwegian proposal for archiving rules in the goverment
</a> list
106 <a href=
"http://www.ecma-international.org/publications/standards/Ecma-376.htm">ECMA-
376</a>
107 / ISO/IEC
29500 (aka OOXML) as valid formats to put in long term
108 storage. Luckily such files will only be accepted based on
109 pre-approval from the National Archive. Allowing OOXML files to be
110 used for long term storage might seem like a good idea as long as we
111 forget that there are plenty of ways for a "valid" OOXML document to
112 have content with no defined interpretation in the standard, which
113 lead to a question and an idea.
</p>
115 <p>Is there any tool to detect if a OOXML document depend on such
116 undefined behaviour? It would be useful for the National Archive (and
117 anyone else interested in verifying that a document is well defined)
118 to have such tool available when considering to approve the use of
119 OOXML. I'm aware of the
120 <a href=
"https://github.com/arlm/officeotron/">officeotron OOXML
121 validator
</a>, but do not know how complete it is nor if it will
122 report use of undefined behaviour. Are there other similar tools
123 available? Please send me an email if you know of any such tool.
</p>
128 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/english">english
</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>.
133 <div class=
"padding"></div>
136 <div class=
"title"><a href=
"http://people.skolelinux.org/pere/blog/Ruling_ignored_our_objections_to_the_seizure_of_popcorn_time_no___domstolkontroll_.html">Ruling ignored our objections to the seizure of popcorn-time.no (#domstolkontroll)
</a></div>
137 <div class=
"date">13th February
2017</div>
138 <div class=
"body"><p>A few days ago, we received the ruling from
139 <a href=
"http://people.skolelinux.org/pere/blog/A_day_in_court_challenging_seizure_of_popcorn_time_no_for__domstolkontroll.html">my
140 day in court
</a>. The case in question is a challenge of the seizure
141 of the DNS domain popcorn-time.no. The ruling simply did not mention
142 most of our arguments, and seemed to take everything ØKOKRIM said at
143 face value, ignoring our demonstration and explanations. But it is
144 hard to tell for sure, as we still have not seen most of the documents
145 in the case and thus were unprepared and unable to contradict several
146 of the claims made in court by the opposition. We are considering an
147 appeal, but it is partly a question of funding, as it is costing us
148 quite a bit to pay for our lawyer. If you want to help, please
149 <a href=
"http://www.nuug.no/dns-beslag-donasjon.shtml">donate to the
150 NUUG defense fund
</a>.
</p>
152 <p>The details of the case, as far as we know it, is available in
154 <a href=
"https://www.nuug.no/news/tags/dns-domenebeslag/">the NUUG
155 blog
</a>. This also include
156 <a href=
"https://www.nuug.no/news/Avslag_etter_rettslig_h_ring_om_DNS_beslaget___vurderer_veien_videre.shtml">the
157 ruling itself
</a>.
</p>
162 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/english">english
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/nuug">nuug
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett
</a>.
167 <div class=
"padding"></div>
170 <div class=
"title"><a href=
"http://people.skolelinux.org/pere/blog/A_day_in_court_challenging_seizure_of_popcorn_time_no_for__domstolkontroll.html">A day in court challenging seizure of popcorn-time.no for #domstolkontroll
</a></div>
171 <div class=
"date"> 3rd February
2017</div>
172 <div class=
"body"><p align=
"center"><img width=
"70%" src=
"http://people.skolelinux.org/pere/blog/images/2017-02-01-popcorn-time-in-court.jpeg"></p>
174 <p>On Wednesday, I spent the entire day in court in Follo Tingrett
175 representing
<a href=
"https://www.nuug.no/">the member association
176 NUUG
</a>, alongside
<a href=
"https://www.efn.no/">the member
177 association EFN
</a> and
<a href=
"http://www.imc.no">the DNS registrar
178 IMC
</a>, challenging the seizure of the DNS name popcorn-time.no. It
179 was interesting to sit in a court of law for the first time in my
180 life. Our team can be seen in the picture above: attorney Ola
181 Tellesbø, EFN board member Tom Fredrik Blenning, IMC CEO Morten Emil
182 Eriksen and NUUG board member Petter Reinholdtsen.
</p>
184 <p><a href=
"http://www.domstol.no/no/Enkelt-domstol/follo-tingrett/Nar-gar-rettssaken/Beramming/?cid=AAAA1701301512081262234UJFBVEZZZZZEJBAvtale">The
185 case at hand
</a> is that the Norwegian National Authority for
186 Investigation and Prosecution of Economic and Environmental Crime (aka
187 Økokrim) decided on their own, to seize a DNS domain early last
188 year, without following
189 <a href=
"https://www.norid.no/no/regelverk/navnepolitikk/#link12">the
190 official policy of the Norwegian DNS authority
</a> which require a
191 court decision. The web site in question was a site covering Popcorn
192 Time. And Popcorn Time is the name of a technology with both legal
193 and illegal applications. Popcorn Time is a client combining
194 searching a Bittorrent directory available on the Internet with
195 downloading/distribute content via Bittorrent and playing the
196 downloaded content on screen. It can be used illegally if it is used
197 to distribute content against the will of the right holder, but it can
198 also be used legally to play a lot of content, for example the
200 <a href=
"https://archive.org/details/movies">available from the
201 Internet Archive
</a> or the collection
202 <a href=
"http://vodo.net/films/">available from Vodo
</a>. We created
203 <a href=
"magnet:?xt=urn:btih:86c1802af5a667ca56d3918aecb7d3c0f7173084&dn=PresentasjonFolloTingrett.mov&tr=udp%3A%2F%2Fpublic.popcorn-tracker.org%3A6969%2Fannounce">a
204 video demonstrating legally use of Popcorn Time
</a> and played it in
205 Court. It can of course be downloaded using Bittorrent.
</p>
207 <p>I did not quite know what to expect from a day in court. The
208 government held on to their version of the story and we held on to
209 ours, and I hope the judge is able to make sense of it all. We will
210 know in two weeks time. Unfortunately I do not have high hopes, as
211 the Government have the upper hand here with more knowledge about the
212 case, better training in handling criminal law and in general higher
213 standing in the courts than fairly unknown DNS registrar and member
214 associations. It is expensive to be right also in Norway. So far the
215 case have cost more than NOK
70 000,-. To help fund the case, NUUG
216 and EFN have asked for donations, and managed to collect around NOK
25
217 000,- so far. Given the presentation from the Government, I expect
218 the government to appeal if the case go our way. And if the case do
219 not go our way, I hope we have enough funding to appeal.
</p>
221 <p>From the other side came two people from Økokrim. On the benches,
222 appearing to be part of the group from the government were two people
223 from the Simonsen Vogt Wiik lawyer office, and three others I am not
224 quite sure who was. Økokrim had proposed to present two witnesses
225 from The Motion Picture Association, but this was rejected because
226 they did not speak Norwegian and it was a bit late to bring in a
227 translator, but perhaps the two from MPA were present anyway. All
228 seven appeared to know each other. Good to see the case is take
231 <p>If you, like me, believe the courts should be involved before a DNS
232 domain is hijacked by the government, or you believe the Popcorn Time
233 technology have a lot of useful and legal applications, I suggest you
234 too
<a href=
"http://www.nuug.no/dns-beslag-donasjon.shtml">donate to
235 the NUUG defense fund
</a>. Both Bitcoin and bank transfer are
236 available. If NUUG get more than we need for the legal action (very
237 unlikely), the rest will be spend promoting free software, open
238 standards and unix-like operating systems in Norway, so no matter what
239 happens the money will be put to good use.
</p>
241 <p>If you want to lean more about the case, I recommend you check out
242 <a href=
"https://www.nuug.no/news/tags/dns-domenebeslag/">the blog
243 posts from NUUG covering the case
</a>. They cover the legal arguments
249 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/english">english
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/nuug">nuug
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett
</a>.
254 <div class=
"padding"></div>
257 <div class=
"title"><a href=
"http://people.skolelinux.org/pere/blog/Nasjonalbiblioteket_avslutter_sin_ulovlige_bruk_av_Google_Skjemaer.html">Nasjonalbiblioteket avslutter sin ulovlige bruk av Google Skjemaer
</a></div>
258 <div class=
"date">12th January
2017</div>
259 <div class=
"body"><p>I dag fikk jeg en skikkelig gladmelding. Bakgrunnen er at før jul
260 arrangerte Nasjonalbiblioteket
261 <a href=
"http://www.nb.no/Bibliotekutvikling/Kunnskapsorganisering/Nasjonalt-verksregister/Seminar-om-verksregister">et
262 seminar om sitt knakende gode tiltak «verksregister»
</a>. Eneste
263 måten å melde seg på dette seminaret var å sende personopplysninger
264 til Google via Google Skjemaer. Dette syntes jeg var tvilsom praksis,
265 da det bør være mulig å delta på seminarer arrangert av det offentlige
266 uten å måtte dele sine interesser, posisjon og andre
267 personopplysninger med Google. Jeg ba derfor om innsyn via
268 <a href=
"https://www.mimesbronn.no/">Mimes brønn
</a> i
269 <a href=
"https://www.mimesbronn.no/request/personopplysninger_til_google_sk">avtaler
270 og vurderinger Nasjonalbiblioteket hadde rundt dette
</a>.
271 Personopplysningsloven legger klare rammer for hva som må være på
272 plass før en kan be tredjeparter, spesielt i utlandet, behandle
273 personopplysninger på sine vegne, så det burde eksistere grundig
274 dokumentasjon før noe slikt kan bli lovlig. To jurister hos
275 Nasjonalbiblioteket mente først dette var helt i orden, og at Googles
276 standardavtale kunne brukes som databehandlingsavtale. Det syntes jeg
277 var merkelig, men har ikke hatt kapasitet til å følge opp saken før
278 for to dager siden.
</p>
280 <p>Gladnyheten i dag, som kom etter at jeg tipset Nasjonalbiblioteket
281 om at Datatilsynet underkjente Googles standardavtaler som
282 databehandleravtaler i
2011, er at Nasjonalbiblioteket har bestemt seg
283 for å avslutte bruken av Googles Skjemaer/Apps og gå i dialog med DIFI
284 for å finne bedre måter å håndtere påmeldinger i tråd med
285 personopplysningsloven. Det er fantastisk å se at av og til hjelper
286 det å spørre hva i alle dager det offentlige holder på med.
</p>
291 Tags:
<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/surveillance">surveillance
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/web">web
</a>.
296 <div class=
"padding"></div>
299 <div class=
"title"><a href=
"http://people.skolelinux.org/pere/blog/Bryter_NAV_sin_egen_personvernerkl_ring_.html">Bryter NAV sin egen personvernerklæring?
</a></div>
300 <div class=
"date">11th January
2017</div>
301 <div class=
"body"><p>Jeg leste med interesse en nyhetssak hos
302 <a href=
"http://www.digi.no/artikler/nav-avslorer-trygdemisbruk-ved-a-spore-ip-adresser/367394">digi.no
</a>
304 <a href=
"https://www.nrk.no/buskerud/trygdesvindlere-avslores-av-utenlandske-ip-adresser-1.13313461">NRK
</a>
305 om at det ikke bare er meg, men at også NAV bedriver geolokalisering
306 av IP-adresser, og at det gjøres analyse av IP-adressene til de som
307 sendes inn meldekort for å se om meldekortet sendes inn fra
308 utenlandske IP-adresser. Politiadvokat i Drammen, Hans Lyder Haare,
309 er sitert i NRK på at «De to er jo blant annet avslørt av
310 IP-adresser. At man ser at meldekortet kommer fra utlandet.»
</p>
312 <p>Jeg synes det er fint at det blir bedre kjent at IP-adresser
313 knyttes til enkeltpersoner og at innsamlet informasjon brukes til å
314 stedsbestemme personer også av aktører her i Norge. Jeg ser det som
315 nok et argument for å bruke
316 <a href=
"https://www.torproject.org/">Tor
</a> så mye som mulig for å
317 gjøre gjøre IP-lokalisering vanskeligere, slik at en kan beskytte sin
318 privatsfære og unngå å dele sin fysiske plassering med
321 <P>Men det er en ting som bekymrer meg rundt denne nyheten. Jeg ble
322 tipset (takk #nuug) om
323 <a href=
"https://www.nav.no/no/NAV+og+samfunn/Kontakt+NAV/Teknisk+brukerstotte/Snarveier/personvernerkl%C3%A6ring-for-arbeids-og-velferdsetaten">NAVs
324 personvernerklæring
</a>, som under punktet «Personvern og statistikk»
329 <p>«Når du besøker nav.no, etterlater du deg elektroniske spor. Sporene
330 dannes fordi din nettleser automatisk sender en rekke opplysninger til
331 NAVs tjener (server-maskin) hver gang du ber om å få vist en side. Det
332 er eksempelvis opplysninger om hvilken nettleser og -versjon du
333 bruker, og din internettadresse (ip-adresse). For hver side som vises,
334 lagres følgende opplysninger:
</p>
337 <li>hvilken side du ser på
</li>
339 <li>hvilken nettleser du bruker
</li>
340 <li>din ip-adresse
</li>
343 <p>Ingen av opplysningene vil bli brukt til å identifisere
344 enkeltpersoner. NAV bruker disse opplysningene til å generere en
345 samlet statistikk som blant annet viser hvilke sider som er mest
346 populære. Statistikken er et redskap til å forbedre våre
351 <p>Jeg klarer ikke helt å se hvordan analyse av de besøkendes
352 IP-adresser for å se hvem som sender inn meldekort via web fra en
353 IP-adresse i utlandet kan gjøres uten å komme i strid med påstanden om
354 at «ingen av opplysningene vil bli brukt til å identifisere
355 enkeltpersoner». Det virker dermed for meg som at NAV bryter sine
356 egen personvernerklæring, hvilket
357 <a href=
"http://people.skolelinux.org/pere/blog/Er_lover_brutt_n_r_personvernpolicy_ikke_stemmer_med_praksis_.html">Datatilsynet
358 fortalte meg i starten av desember antagelig er brudd på
359 personopplysningsloven
</a>.
361 <p>I tillegg er personvernerklæringen ganske misvisende i og med at
362 NAVs nettsider ikke bare forsyner NAV med personopplysninger, men i
363 tillegg ber brukernes nettleser kontakte fem andre nettjenere
364 (script.hotjar.com, static.hotjar.com, vars.hotjar.com,
365 www.google-analytics.com og www.googletagmanager.com), slik at
366 personopplysninger blir gjort tilgjengelig for selskapene Hotjar og
367 Google , og alle som kan lytte på trafikken på veien (som FRA, GCHQ og
368 NSA). Jeg klarer heller ikke se hvordan slikt spredning av
369 personopplysninger kan være i tråd med kravene i
370 personopplysningloven, eller i tråd med NAVs personvernerklæring.
</p>
372 <p>Kanskje NAV bør ta en nøye titt på sin personvernerklæring? Eller
373 kanskje Datatilsynet bør gjøre det?
</p>
378 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/personvern">personvern
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance
</a>.
383 <div class=
"padding"></div>
386 <div class=
"title"><a href=
"http://people.skolelinux.org/pere/blog/Where_did_that_package_go___mdash__geolocated_IP_traceroute.html">Where did that package go?
— geolocated IP traceroute
</a></div>
387 <div class=
"date"> 9th January
2017</div>
388 <div class=
"body"><p>Did you ever wonder where the web trafic really flow to reach the
389 web servers, and who own the network equipment it is flowing through?
390 It is possible to get a glimpse of this from using traceroute, but it
391 is hard to find all the details. Many years ago, I wrote a system to
392 map the Norwegian Internet (trying to figure out if our plans for a
393 network game service would get low enough latency, and who we needed
394 to talk to about setting up game servers close to the users. Back
395 then I used traceroute output from many locations (I asked my friends
396 to run a script and send me their traceroute output) to create the
397 graph and the map. The output from traceroute typically look like
401 traceroute to www.stortinget.no (
85.88.67.10),
30 hops max,
60 byte packets
402 1 uio-gw10.uio.no (
129.240.202.1)
0.447 ms
0.486 ms
0.621 ms
403 2 uio-gw8.uio.no (
129.240.24.229)
0.467 ms
0.578 ms
0.675 ms
404 3 oslo-gw1.uninett.no (
128.39.65.17)
0.385 ms
0.373 ms
0.358 ms
405 4 te3-
1-
2.br1.fn3.as2116.net (
193.156.90.3)
1.174 ms
1.172 ms
1.153 ms
406 5 he16-
1-
1.cr1.san110.as2116.net (
195.0.244.234)
2.627 ms he16-
1-
1.cr2.oslosda310.as2116.net (
195.0.244.48)
3.172 ms he16-
1-
1.cr1.san110.as2116.net (
195.0.244.234)
2.857 ms
407 6 ae1.ar8.oslosda310.as2116.net (
195.0.242.39)
0.662 ms
0.637 ms ae0.ar8.oslosda310.as2116.net (
195.0.242.23)
0.622 ms
408 7 89.191.10.146 (
89.191.10.146)
0.931 ms
0.917 ms
0.955 ms
414 <p>This show the DNS names and IP addresses of (at least some of the)
415 network equipment involved in getting the data traffic from me to the
416 www.stortinget.no server, and how long it took in milliseconds for a
417 package to reach the equipment and return to me. Three packages are
418 sent, and some times the packages do not follow the same path. This
419 is shown for hop
5, where three different IP addresses replied to the
420 traceroute request.
</p>
422 <p>There are many ways to measure trace routes. Other good traceroute
423 implementations I use are traceroute (using ICMP packages) mtr (can do
424 both ICMP, UDP and TCP) and scapy (python library with ICMP, UDP, TCP
425 traceroute and a lot of other capabilities). All of them are easily
426 available in
<a href=
"https://www.debian.org/">Debian
</a>.
</p>
428 <p>This time around, I wanted to know the geographic location of
429 different route points, to visualize how visiting a web page spread
430 information about the visit to a lot of servers around the globe. The
431 background is that a web site today often will ask the browser to get
432 from many servers the parts (for example HTML, JSON, fonts,
433 JavaScript, CSS, video) required to display the content. This will
434 leak information about the visit to those controlling these servers
435 and anyone able to peek at the data traffic passing by (like your ISP,
436 the ISPs backbone provider, FRA, GCHQ, NSA and others).
</p>
438 <p>Lets pick an example, the Norwegian parliament web site
439 www.stortinget.no. It is read daily by all members of parliament and
440 their staff, as well as political journalists, activits and many other
441 citizens of Norway. A visit to the www.stortinget.no web site will
442 ask your browser to contact
8 other servers: ajax.googleapis.com,
443 insights.hotjar.com, script.hotjar.com, static.hotjar.com,
444 stats.g.doubleclick.net, www.google-analytics.com,
445 www.googletagmanager.com and www.netigate.se. I extracted this by
446 asking
<a href=
"http://phantomjs.org/">PhantomJS
</a> to visit the
447 Stortinget web page and tell me all the URLs PhantomJS downloaded to
448 render the page (in HAR format using
449 <a href=
"https://github.com/ariya/phantomjs/blob/master/examples/netsniff.js">their
450 netsniff example
</a>. I am very grateful to Gorm for showing me how
451 to do this). My goal is to visualize network traces to all IP
452 addresses behind these DNS names, do show where visitors personal
453 information is spread when visiting the page.
</p>
455 <p align=
"center"><a href=
"www.stortinget.no-geoip.kml"><img
456 src=
"http://people.skolelinux.org/pere/blog/images/2017-01-09-www.stortinget.no-geoip-small.png" alt=
"map of combined traces for URLs used by www.stortinget.no using GeoIP"/></a></p>
458 <p>When I had a look around for options, I could not find any good
459 free software tools to do this, and decided I needed my own traceroute
460 wrapper outputting KML based on locations looked up using GeoIP. KML
461 is easy to work with and easy to generate, and understood by several
462 of the GIS tools I have available. I got good help from by NUUG
463 colleague Anders Einar with this, and the result can be seen in
464 <a href=
"https://github.com/petterreinholdtsen/kmltraceroute">my
465 kmltraceroute git repository
</a>. Unfortunately, the quality of the
466 free GeoIP databases I could find (and the for-pay databases my
467 friends had access to) is not up to the task. The IP addresses of
468 central Internet infrastructure would typically be placed near the
469 controlling companies main office, and not where the router is really
470 located, as you can see from
<a href=
"www.stortinget.no-geoip.kml">the
471 KML file I created
</a> using the GeoLite City dataset from MaxMind.
473 <p align=
"center"><a href=
"http://people.skolelinux.org/pere/blog/images/2017-01-09-www.stortinget.no-scapy.svg"><img
474 src=
"http://people.skolelinux.org/pere/blog/images/2017-01-09-www.stortinget.no-scapy-small.png" alt=
"scapy traceroute graph for URLs used by www.stortinget.no"/></a></p>
476 <p>I also had a look at the visual traceroute graph created by
477 <a href=
"http://www.secdev.org/projects/scapy/">the scrapy project
</a>,
478 showing IP network ownership (aka AS owner) for the IP address in
480 <a href=
"http://people.skolelinux.org/pere/blog/images/2017-01-09-www.stortinget.no-scapy.svg">The
481 graph display a lot of useful information about the traceroute in SVG
482 format
</a>, and give a good indication on who control the network
483 equipment involved, but it do not include geolocation. This graph
484 make it possible to see the information is made available at least for
485 UNINETT, Catchcom, Stortinget, Nordunet, Google, Amazon, Telia, Level
486 3 Communications and NetDNA.
</p>
488 <p align=
"center"><a href=
"https://geotraceroute.com/index.php?node=4&host=www.stortinget.no"><img
489 src=
"http://people.skolelinux.org/pere/blog/images/2017-01-09-www.stortinget.no-geotraceroute-small.png" alt=
"example geotraceroute view for www.stortinget.no"/></a></p>
491 <p>In the process, I came across the
492 <a href=
"https://geotraceroute.com/">web service GeoTraceroute
</a> by
493 Salim Gasmi. Its methology of combining guesses based on DNS names,
494 various location databases and finally use latecy times to rule out
495 candidate locations seemed to do a very good job of guessing correct
496 geolocation. But it could only do one trace at the time, did not have
497 a sensor in Norway and did not make the geolocations easily available
498 for postprocessing. So I contacted the developer and asked if he
499 would be willing to share the code (he refused until he had time to
500 clean it up), but he was interested in providing the geolocations in a
501 machine readable format, and willing to set up a sensor in Norway. So
502 since yesterday, it is possible to run traces from Norway in this
503 service thanks to a sensor node set up by
504 <a href=
"https://www.nuug.no/">the NUUG assosiation
</a>, and get the
505 trace in KML format for further processing.
</p>
507 <p align=
"center"><a href=
"http://people.skolelinux.org/pere/blog/images/2017-01-09-www.stortinget.no-geotraceroute-kml-join.kml"><img
508 src=
"http://people.skolelinux.org/pere/blog/images/2017-01-09-www.stortinget.no-geotraceroute-kml-join.png" alt=
"map of combined traces for URLs used by www.stortinget.no using geotraceroute"/></a></p>
510 <p>Here we can see a lot of trafic passes Sweden on its way to
511 Denmark, Germany, Holland and Ireland. Plenty of places where the
512 Snowden confirmations verified the traffic is read by various actors
513 without your best interest as their top priority.
</p>
515 <p>Combining KML files is trivial using a text editor, so I could loop
516 over all the hosts behind the urls imported by www.stortinget.no and
517 ask for the KML file from GeoTraceroute, and create a combined KML
518 file with all the traces (unfortunately only one of the IP addresses
519 behind the DNS name is traced this time. To get them all, one would
520 have to request traces using IP number instead of DNS names from
521 GeoTraceroute). That might be the next step in this project.
</p>
523 <p>Armed with these tools, I find it a lot easier to figure out where
524 the IP traffic moves and who control the boxes involved in moving it.
525 And every time the link crosses for example the Swedish border, we can
526 be sure Swedish Signal Intelligence (FRA) is listening, as GCHQ do in
527 Britain and NSA in USA and cables around the globe. (Hm, what should
528 we tell them? :) Keep that in mind if you ever send anything
529 unencrypted over the Internet.
</p>
531 <p>PS: KML files are drawn using
532 <a href=
"http://ivanrublev.me/kml/">the KML viewer from Ivan
533 Rublev
<a/>, as it was less cluttered than the local Linux application
534 Marble. There are heaps of other options too.
</p>
536 <p>As usual, if you use Bitcoin and want to show your support of my
537 activities, please send Bitcoin donations to my address
538 <b><a href=
"bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&label=PetterReinholdtsenBlog">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a></b>.
</p>
543 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/kart">kart
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/nuug">nuug
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/personvern">personvern
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget
</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>.
548 <div class=
"padding"></div>
551 <div class=
"title"><a href=
"http://people.skolelinux.org/pere/blog/Introducing_ical_archiver_to_split_out_old_iCalendar_entries.html">Introducing ical-archiver to split out old iCalendar entries
</a></div>
552 <div class=
"date"> 4th January
2017</div>
553 <div class=
"body"><p>Do you have a large
<a href=
"https://icalendar.org/">iCalendar
</a>
554 file with lots of old entries, and would like to archive them to save
555 space and resources? At least those of us using KOrganizer know that
556 turning on and off an event set become slower and slower the more
557 entries are in the set. While working on migrating our calendars to a
558 <a href=
"http://radicale.org/">Radicale CalDAV server
</a> on our
559 <a href=
"https://freedomboxfoundation.org/">Freedombox server
</a/>, my
560 loved one wondered if I could find a way to split up the calendar file
561 she had in KOrganizer, and I set out to write a tool. I spent a few
562 days writing and polishing the system, and it is now ready for general
564 <a href=
"https://github.com/petterreinholdtsen/ical-archiver">code for
565 ical-archiver
</a> is publicly available from a git repository on
566 github. The system is written in Python and depend on
567 <a href=
"http://eventable.github.io/vobject/">the vobject Python
570 <p>To use it, locate the iCalendar file you want to operate on and
571 give it as an argument to the ical-archiver script. This will
572 generate a set of new files, one file per component type per year for
573 all components expiring more than two years in the past. The vevent,
574 vtodo and vjournal entries are handled by the script. The remaining
575 entries are stored in a 'remaining' file.
</p>
577 <p>This is what a test run can look like:
580 % ical-archiver t/
2004-
2016.ics
584 Writing t/
2004-
2016.ics-subset-vevent-
2004.ics
585 Writing t/
2004-
2016.ics-subset-vevent-
2005.ics
586 Writing t/
2004-
2016.ics-subset-vevent-
2006.ics
587 Writing t/
2004-
2016.ics-subset-vevent-
2007.ics
588 Writing t/
2004-
2016.ics-subset-vevent-
2008.ics
589 Writing t/
2004-
2016.ics-subset-vevent-
2009.ics
590 Writing t/
2004-
2016.ics-subset-vevent-
2010.ics
591 Writing t/
2004-
2016.ics-subset-vevent-
2011.ics
592 Writing t/
2004-
2016.ics-subset-vevent-
2012.ics
593 Writing t/
2004-
2016.ics-subset-vevent-
2013.ics
594 Writing t/
2004-
2016.ics-subset-vevent-
2014.ics
595 Writing t/
2004-
2016.ics-subset-vjournal-
2007.ics
596 Writing t/
2004-
2016.ics-subset-vjournal-
2011.ics
597 Writing t/
2004-
2016.ics-subset-vtodo-
2012.ics
598 Writing t/
2004-
2016.ics-remaining.ics
602 <p>As you can see, the original file is untouched and new files are
603 written with names derived from the original file. If you are happy
604 with their content, the *-remaining.ics file can replace the original
605 the the others can be archived or imported as historical calendar
608 <p>The script should probably be improved a bit. The error handling
609 when discovering broken entries is not good, and I am not sure yet if
610 it make sense to split different entry types into separate files or
611 not. The program is thus likely to change. If you find it
612 interesting, please get in touch. :)
</p>
614 <p>As usual, if you use Bitcoin and want to show your support of my
615 activities, please send Bitcoin donations to my address
616 <b><a href=
"bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&label=PetterReinholdtsenBlog">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a></b>.
</p>
621 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/english">english
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/standard">standard
</a>.
626 <div class=
"padding"></div>
629 <div class=
"title"><a href=
"http://people.skolelinux.org/pere/blog/Appstream_just_learned_how_to_map_hardware_to_packages_too_.html">Appstream just learned how to map hardware to packages too!
</a></div>
630 <div class=
"date">23rd December
2016</div>
631 <div class=
"body"><p>I received a very nice Christmas present today. As my regular
632 readers probably know, I have been working on the
633 <a href=
"http://packages.qa.debian.org/isenkram">the Isenkram
634 system
</a> for many years. The goal of the Isenkram system is to make
635 it easier for users to figure out what to install to get a given piece
636 of hardware to work in Debian, and a key part of this system is a way
637 to map hardware to packages. Isenkram have its own mapping database,
638 and also uses data provided by each package using the AppStream
639 metadata format. And today,
640 <a href=
"https://tracker.debian.org/pkg/appstream">AppStream
</a> in
641 Debian learned to look up hardware the same way Isenkram is doing it,
642 ie using fnmatch():
</p>
645 % appstreamcli what-provides modalias \
646 usb:v1130p0202d0100dc00dsc00dp00ic03isc00ip00in00
647 Identifier: pymissile [generic]
649 Summary: Control original Striker USB Missile Launcher
651 % appstreamcli what-provides modalias usb:v0694p0002d0000
652 Identifier: libnxt [generic]
654 Summary: utility library for talking to the LEGO Mindstorms NXT brick
657 Identifier: t2n [generic]
659 Summary: Simple command-line tool for Lego NXT
662 Identifier: python-nxt [generic]
664 Summary: Python driver/interface/wrapper for the Lego Mindstorms NXT robot
667 Identifier: nbc [generic]
669 Summary: C compiler for LEGO Mindstorms NXT bricks
674 <p>A similar query can be done using the combined AppStream and
675 Isenkram databases using the isenkram-lookup tool:
</p>
678 % isenkram-lookup usb:v1130p0202d0100dc00dsc00dp00ic03isc00ip00in00
680 % isenkram-lookup usb:v0694p0002d0000
688 <p>You can find modalias values relevant for your machine using
689 <tt>cat $(find /sys/devices/ -name modalias)
</tt>.
691 <p>If you want to make this system a success and help Debian users
692 make the most of the hardware they have, please
693 help
<a href=
"https://wiki.debian.org/AppStream/Guidelines">add
694 AppStream metadata for your package following the guidelines
</a>
695 documented in the wiki. So far only
11 packages provide such
696 information, among the several hundred hardware specific packages in
697 Debian. The Isenkram database on the other hand contain
101 packages,
698 mostly related to USB dongles. Most of the packages with hardware
699 mapping in AppStream are LEGO Mindstorms related, because I have, as
700 part of my involvement in
701 <a href=
"https://wiki.debian.org/LegoDesigners">the Debian LEGO
702 team
</a> given priority to making sure LEGO users get proposed the
703 complete set of packages in Debian for that particular hardware. The
704 team also got a nice Christmas present today. The
705 <a href=
"https://tracker.debian.org/pkg/nxt-firmware">nxt-firmware
706 package
</a> made it into Debian. With this package in place, it is
707 now possible to use the LEGO Mindstorms NXT unit with only free
708 software, as the nxt-firmware package contain the source and firmware
709 binaries for the NXT brick.
</p>
711 <p>As usual, if you use Bitcoin and want to show your support of my
712 activities, please send Bitcoin donations to my address
713 <b><a href=
"bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&label=PetterReinholdtsenBlog">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a></b>.
</p>
718 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>.
723 <div class=
"padding"></div>
726 <div class=
"title"><a href=
"http://people.skolelinux.org/pere/blog/Isenkram_updated_with_a_lot_more_hardware_package_mappings.html">Isenkram updated with a lot more hardware-package mappings
</a></div>
727 <div class=
"date">20th December
2016</div>
728 <div class=
"body"><p><a href=
"http://packages.qa.debian.org/isenkram">The Isenkram
729 system
</a> I wrote two years ago to make it easier in Debian to find
730 and install packages to get your hardware dongles to work, is still
731 going strong. It is a system to look up the hardware present on or
732 connected to the current system, and map the hardware to Debian
733 packages. It can either be done using the tools in isenkram-cli or
734 using the user space daemon in the isenkram package. The latter will
735 notify you, when inserting new hardware, about what packages to
736 install to get the dongle working. It will even provide a button to
737 click on to ask packagekit to install the packages.
</p>
739 <p>Here is an command line example from my Thinkpad laptop:
</p>
760 <p>It can also list the firware package providing firmware requested
761 by the load kernel modules, which in my case is an empty list because
762 I have all the firmware my machine need:
765 % /usr/sbin/isenkram-autoinstall-firmware -l
766 info: did not find any firmware files requested by loaded kernel modules. exiting
770 <p>The last few days I had a look at several of the around
250
771 packages in Debian with udev rules. These seem like good candidates
772 to install when a given hardware dongle is inserted, and I found
773 several that should be proposed by isenkram. I have not had time to
774 check all of them, but am happy to report that now there are
97
775 packages packages mapped to hardware by Isenkram.
11 of these
776 packages provide hardware mapping using AppStream, while the rest are
777 listed in the modaliases file provided in isenkram.
</p>
779 <p>These are the packages with hardware mappings at the moment. The
780 <strong>marked packages
</strong> are also announcing their hardware
781 support using AppStream, for everyone to use:
</p>
783 <p>air-quality-sensor, alsa-firmware-loaders, argyll,
784 <strong>array-info
</strong>, avarice, avrdude, b43-fwcutter,
785 bit-babbler, bluez, bluez-firmware,
<strong>brltty
</strong>,
786 <strong>broadcom-sta-dkms
</strong>, calibre, cgminer, cheese, colord,
787 <strong>colorhug-client
</strong>, dahdi-firmware-nonfree, dahdi-linux,
788 dfu-util, dolphin-emu, ekeyd, ethtool, firmware-ipw2x00, fprintd,
789 fprintd-demo,
<strong>galileo
</strong>, gkrellm-thinkbat, gphoto2,
790 gpsbabel, gpsbabel-gui, gpsman, gpstrans, gqrx-sdr, gr-fcdproplus,
791 gr-osmosdr, gtkpod, hackrf, hdapsd, hdmi2usb-udev, hpijs-ppds, hplip,
792 ipw3945-source, ipw3945d, kde-config-tablet, kinect-audio-setup,
793 <strong>libnxt
</strong>, libpam-fprintd,
<strong>lomoco
</strong>,
794 madwimax, minidisc-utils, mkgmap, msi-keyboard, mtkbabel,
795 <strong>nbc
</strong>,
<strong>nqc
</strong>, nut-hal-drivers, ola,
796 open-vm-toolbox, open-vm-tools, openambit, pcgminer, pcmciautils,
797 pcscd, pidgin-blinklight, printer-driver-splix,
798 <strong>pymissile
</strong>, python-nxt, qlandkartegt,
799 qlandkartegt-garmin, rosegarden, rt2x00-source, sispmctl,
800 soapysdr-module-hackrf, solaar, squeak-plugins-scratch, sunxi-tools,
801 <strong>t2n
</strong>, thinkfan, thinkfinger-tools, tlp, tp-smapi-dkms,
802 tp-smapi-source, tpb, tucnak, uhd-host, usbmuxd, viking,
803 virtualbox-ose-guest-x11, w1retap, xawtv, xserver-xorg-input-vmmouse,
804 xserver-xorg-input-wacom, xserver-xorg-video-qxl,
805 xserver-xorg-video-vmware, yubikey-personalization and
808 <p>If you know of other packages, please let me know with a wishlist
809 bug report against the isenkram-cli package, and ask the package
811 <a href=
"https://wiki.debian.org/AppStream/Guidelines">add AppStream
812 metadata according to the guidelines
</a> to provide the information
813 for everyone. In time, I hope to get rid of the isenkram specific
814 hardware mapping and depend exclusively on AppStream.
</p>
816 <p>Note, the AppStream metadata for broadcom-sta-dkms is matching too
817 much hardware, and suggest that the package with with any ethernet
818 card. See
<a href=
"http://bugs.debian.org/838735">bug #
838735</a> for
819 the details. I hope the maintainer find time to address it soon. In
820 the mean time I provide an override in isenkram.
</p>
825 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>.
830 <div class=
"padding"></div>
832 <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>
843 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2017/01/">January (
4)
</a></li>
845 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2017/02/">February (
3)
</a></li>
847 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2017/03/">March (
1)
</a></li>
854 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/01/">January (
3)
</a></li>
856 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/02/">February (
2)
</a></li>
858 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/03/">March (
3)
</a></li>
860 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/04/">April (
8)
</a></li>
862 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/05/">May (
8)
</a></li>
864 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/06/">June (
2)
</a></li>
866 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/07/">July (
2)
</a></li>
868 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/08/">August (
5)
</a></li>
870 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/09/">September (
2)
</a></li>
872 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/10/">October (
3)
</a></li>
874 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/11/">November (
8)
</a></li>
876 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/12/">December (
5)
</a></li>
883 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/01/">January (
7)
</a></li>
885 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/02/">February (
6)
</a></li>
887 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/03/">March (
1)
</a></li>
889 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/04/">April (
4)
</a></li>
891 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/05/">May (
3)
</a></li>
893 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/06/">June (
4)
</a></li>
895 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/07/">July (
6)
</a></li>
897 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/08/">August (
2)
</a></li>
899 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/09/">September (
2)
</a></li>
901 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/10/">October (
9)
</a></li>
903 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/11/">November (
6)
</a></li>
905 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/12/">December (
3)
</a></li>
912 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/01/">January (
2)
</a></li>
914 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/02/">February (
3)
</a></li>
916 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/03/">March (
8)
</a></li>
918 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/04/">April (
7)
</a></li>
920 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/05/">May (
1)
</a></li>
922 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/06/">June (
2)
</a></li>
924 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/07/">July (
2)
</a></li>
926 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/08/">August (
2)
</a></li>
928 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/09/">September (
5)
</a></li>
930 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/10/">October (
6)
</a></li>
932 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/11/">November (
3)
</a></li>
934 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/12/">December (
5)
</a></li>
941 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/01/">January (
11)
</a></li>
943 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/02/">February (
9)
</a></li>
945 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/03/">March (
9)
</a></li>
947 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/04/">April (
6)
</a></li>
949 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/05/">May (
9)
</a></li>
951 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/06/">June (
10)
</a></li>
953 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/07/">July (
7)
</a></li>
955 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/08/">August (
3)
</a></li>
957 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/09/">September (
5)
</a></li>
959 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/10/">October (
7)
</a></li>
961 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/11/">November (
9)
</a></li>
963 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/12/">December (
3)
</a></li>
970 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/01/">January (
7)
</a></li>
972 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/02/">February (
10)
</a></li>
974 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/03/">March (
17)
</a></li>
976 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/04/">April (
12)
</a></li>
978 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/05/">May (
12)
</a></li>
980 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/06/">June (
20)
</a></li>
982 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/07/">July (
17)
</a></li>
984 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/08/">August (
6)
</a></li>
986 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/09/">September (
9)
</a></li>
988 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/10/">October (
17)
</a></li>
990 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/11/">November (
10)
</a></li>
992 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/12/">December (
7)
</a></li>
999 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/01/">January (
16)
</a></li>
1001 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/02/">February (
6)
</a></li>
1003 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/03/">March (
6)
</a></li>
1005 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/04/">April (
7)
</a></li>
1007 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/05/">May (
3)
</a></li>
1009 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/06/">June (
2)
</a></li>
1011 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/07/">July (
7)
</a></li>
1013 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/08/">August (
6)
</a></li>
1015 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/09/">September (
4)
</a></li>
1017 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/10/">October (
2)
</a></li>
1019 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/11/">November (
3)
</a></li>
1021 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/12/">December (
1)
</a></li>
1028 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/01/">January (
2)
</a></li>
1030 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/02/">February (
1)
</a></li>
1032 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/03/">March (
3)
</a></li>
1034 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/04/">April (
3)
</a></li>
1036 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/05/">May (
9)
</a></li>
1038 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/06/">June (
14)
</a></li>
1040 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/07/">July (
12)
</a></li>
1042 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/08/">August (
13)
</a></li>
1044 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/09/">September (
7)
</a></li>
1046 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/10/">October (
9)
</a></li>
1048 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/11/">November (
13)
</a></li>
1050 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/12/">December (
12)
</a></li>
1057 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/01/">January (
8)
</a></li>
1059 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/02/">February (
8)
</a></li>
1061 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/03/">March (
12)
</a></li>
1063 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/04/">April (
10)
</a></li>
1065 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/05/">May (
9)
</a></li>
1067 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/06/">June (
3)
</a></li>
1069 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/07/">July (
4)
</a></li>
1071 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/08/">August (
3)
</a></li>
1073 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/09/">September (
1)
</a></li>
1075 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/10/">October (
2)
</a></li>
1077 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/11/">November (
3)
</a></li>
1079 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/12/">December (
3)
</a></li>
1086 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2008/11/">November (
5)
</a></li>
1088 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2008/12/">December (
7)
</a></li>
1099 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (
13)
</a></li>
1101 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/amiga">amiga (
1)
</a></li>
1103 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/aros">aros (
1)
</a></li>
1105 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/bankid">bankid (
4)
</a></li>
1107 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (
9)
</a></li>
1109 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (
16)
</a></li>
1111 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/bsa">bsa (
2)
</a></li>
1113 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/chrpath">chrpath (
2)
</a></li>
1115 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/debian">debian (
146)
</a></li>
1117 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (
158)
</a></li>
1119 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/digistan">digistan (
10)
</a></li>
1121 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/dld">dld (
16)
</a></li>
1123 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/docbook">docbook (
23)
</a></li>
1125 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (
4)
</a></li>
1127 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/english">english (
342)
</a></li>
1129 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (
23)
</a></li>
1131 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (
12)
</a></li>
1133 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (
29)
</a></li>
1135 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox (
9)
</a></li>
1137 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (
18)
</a></li>
1139 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/h264">h264 (
20)
</a></li>
1141 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/intervju">intervju (
42)
</a></li>
1143 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram (
15)
</a></li>
1145 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/kart">kart (
20)
</a></li>
1147 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/ldap">ldap (
9)
</a></li>
1149 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/lenker">lenker (
8)
</a></li>
1151 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/lsdvd">lsdvd (
2)
</a></li>
1153 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (
1)
</a></li>
1155 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network (
8)
</a></li>
1157 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (
39)
</a></li>
1159 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software (
9)
</a></li>
1161 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/norsk">norsk (
287)
</a></li>
1163 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/nuug">nuug (
187)
</a></li>
1165 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (
28)
</a></li>
1167 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/open311">open311 (
2)
</a></li>
1169 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (
64)
</a></li>
1171 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/personvern">personvern (
99)
</a></li>
1173 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/raid">raid (
1)
</a></li>
1175 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/reactos">reactos (
1)
</a></li>
1177 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/reprap">reprap (
11)
</a></li>
1179 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/rfid">rfid (
3)
</a></li>
1181 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/robot">robot (
10)
</a></li>
1183 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/rss">rss (
1)
</a></li>
1185 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/ruter">ruter (
5)
</a></li>
1187 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (
2)
</a></li>
1189 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (
52)
</a></li>
1191 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (
4)
</a></li>
1193 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (
5)
</a></li>
1195 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/standard">standard (
51)
</a></li>
1197 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (
5)
</a></li>
1199 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (
11)
</a></li>
1201 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (
47)
</a></li>
1203 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (
2)
</a></li>
1205 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/usenix">usenix (
2)
</a></li>
1207 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/valg">valg (
8)
</a></li>
1209 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/video">video (
59)
</a></li>
1211 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (
4)
</a></li>
1213 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/web">web (
40)
</a></li>
1219 <p style=
"text-align: right">
1220 Created by
<a href=
"http://steve.org.uk/Software/chronicle">Chronicle v4.6
</a>