]> pere.pagekite.me Git - homepage.git/blob - blog/index.html
Generated.
[homepage.git] / blog / index.html
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">
4 <head>
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" />
10 </head>
11 <body>
12 <div class="title">
13 <h1>
14 <a href="http://people.skolelinux.org/pere/blog/">Petter Reinholdtsen</a>
15
16 </h1>
17
18 </div>
19
20
21
22 <div class="entry">
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>
36
37 <blockquote><pre>
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; \
42 sleep 1; \
43 done
44 300
45 0+1 oppføringer inn
46 0+1 oppføringer ut
47 28 byte kopiert, 0,000264565 s, 106 kB/s
48 4
49 8
50 12
51 17
52 21
53 %
54 </pre></blockquote>
55
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>
60
61 <blockquote><pre>
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; \
66 sleep 1; \
67 done
68 1079
69 0+1 oppføringer inn
70 0+1 oppføringer ut
71 104 byte kopiert, 0,000487647 s, 213 kB/s
72 433
73 1028
74 1031
75 1035
76 1038
77 %
78 </pre></blockquote>
79
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>
82
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
88 post.</p>
89 </div>
90 <div class="tags">
91
92
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>.
94
95
96 </div>
97 </div>
98 <div class="padding"></div>
99
100 <div class="entry">
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>
114
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>
124 </div>
125 <div class="tags">
126
127
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>.
129
130
131 </div>
132 </div>
133 <div class="padding"></div>
134
135 <div class="entry">
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>
151
152 <p>The details of the case, as far as we know it, is available in
153 Norwegian from
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>
158 </div>
159 <div class="tags">
160
161
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>.
163
164
165 </div>
166 </div>
167 <div class="padding"></div>
168
169 <div class="entry">
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>
173
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>
183
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
199 millions of movies
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>
206
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>
220
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
229 seriously.</p>
230
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>
240
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
244 on both sides.</p>
245 </div>
246 <div class="tags">
247
248
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>.
250
251
252 </div>
253 </div>
254 <div class="padding"></div>
255
256 <div class="entry">
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>
279
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>
287 </div>
288 <div class="tags">
289
290
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>.
292
293
294 </div>
295 </div>
296 <div class="padding"></div>
297
298 <div class="entry">
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>
303 og
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>
311
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
319 uvedkommede.</p>
320
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»
325 lyder:</p>
326
327 <p><blockquote>
328
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>
335
336 <ul>
337 <li>hvilken side du ser på</li>
338 <li>dato og tid</li>
339 <li>hvilken nettleser du bruker</li>
340 <li>din ip-adresse</li>
341 </ul>
342
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
347 tjenester.»</p>
348
349 </blockquote></p>
350
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>.
360
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>
371
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>
374 </div>
375 <div class="tags">
376
377
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>.
379
380
381 </div>
382 </div>
383 <div class="padding"></div>
384
385 <div class="entry">
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? &mdash; 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
398 this:
399
400 <p><pre>
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
409 8 * * *
410 9 * * *
411 [...]
412 </pre></p>
413
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>
421
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>
427
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>
437
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>
454
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>
457
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.
472
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>
475
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
479 question.
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>
487
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>
490
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>
506
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>
509
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>
514
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>
522
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>
530
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>
535
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>
539 </div>
540 <div class="tags">
541
542
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>.
544
545
546 </div>
547 </div>
548 <div class="padding"></div>
549
550 <div class="entry">
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
563 consumption. The
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
568 module</a>.</p>
569
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>
576
577 <p>This is what a test run can look like:
578
579 <p><pre>
580 % ical-archiver t/2004-2016.ics
581 Found 3612 vevents
582 Found 6 vtodos
583 Found 2 vjournals
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
599 %
600 </pre></p>
601
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
606 collections.</p>
607
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>
613
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>
617 </div>
618 <div class="tags">
619
620
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>.
622
623
624 </div>
625 </div>
626 <div class="padding"></div>
627
628 <div class="entry">
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>
643
644 <p><pre>
645 % appstreamcli what-provides modalias \
646 usb:v1130p0202d0100dc00dsc00dp00ic03isc00ip00in00
647 Identifier: pymissile [generic]
648 Name: pymissile
649 Summary: Control original Striker USB Missile Launcher
650 Package: pymissile
651 % appstreamcli what-provides modalias usb:v0694p0002d0000
652 Identifier: libnxt [generic]
653 Name: libnxt
654 Summary: utility library for talking to the LEGO Mindstorms NXT brick
655 Package: libnxt
656 ---
657 Identifier: t2n [generic]
658 Name: t2n
659 Summary: Simple command-line tool for Lego NXT
660 Package: t2n
661 ---
662 Identifier: python-nxt [generic]
663 Name: python-nxt
664 Summary: Python driver/interface/wrapper for the Lego Mindstorms NXT robot
665 Package: python-nxt
666 ---
667 Identifier: nbc [generic]
668 Name: nbc
669 Summary: C compiler for LEGO Mindstorms NXT bricks
670 Package: nbc
671 %
672 </pre></p>
673
674 <p>A similar query can be done using the combined AppStream and
675 Isenkram databases using the isenkram-lookup tool:</p>
676
677 <p><pre>
678 % isenkram-lookup usb:v1130p0202d0100dc00dsc00dp00ic03isc00ip00in00
679 pymissile
680 % isenkram-lookup usb:v0694p0002d0000
681 libnxt
682 nbc
683 python-nxt
684 t2n
685 %
686 </pre></p>
687
688 <p>You can find modalias values relevant for your machine using
689 <tt>cat $(find /sys/devices/ -name modalias)</tt>.
690
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>
710
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>
714 </div>
715 <div class="tags">
716
717
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>.
719
720
721 </div>
722 </div>
723 <div class="padding"></div>
724
725 <div class="entry">
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>
738
739 <p>Here is an command line example from my Thinkpad laptop:</p>
740
741 <p><pre>
742 % isenkram-lookup
743 bluez
744 cheese
745 ethtool
746 fprintd
747 fprintd-demo
748 gkrellm-thinkbat
749 hdapsd
750 libpam-fprintd
751 pidgin-blinklight
752 thinkfan
753 tlp
754 tp-smapi-dkms
755 tp-smapi-source
756 tpb
757 %
758 </pre></p>
759
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:
763
764 <p><pre>
765 % /usr/sbin/isenkram-autoinstall-firmware -l
766 info: did not find any firmware files requested by loaded kernel modules. exiting
767 %
768 </pre></p>
769
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>
778
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>
782
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
806 zd1211-firmware</p>
807
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
810 maintainer to
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>
815
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>
821 </div>
822 <div class="tags">
823
824
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>.
826
827
828 </div>
829 </div>
830 <div class="padding"></div>
831
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>
833 <div id="sidebar">
834
835
836
837 <h2>Archive</h2>
838 <ul>
839
840 <li>2017
841 <ul>
842
843 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/01/">January (4)</a></li>
844
845 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/02/">February (3)</a></li>
846
847 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/03/">March (1)</a></li>
848
849 </ul></li>
850
851 <li>2016
852 <ul>
853
854 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/01/">January (3)</a></li>
855
856 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/02/">February (2)</a></li>
857
858 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/03/">March (3)</a></li>
859
860 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/04/">April (8)</a></li>
861
862 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/05/">May (8)</a></li>
863
864 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/06/">June (2)</a></li>
865
866 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/07/">July (2)</a></li>
867
868 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/08/">August (5)</a></li>
869
870 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/09/">September (2)</a></li>
871
872 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/10/">October (3)</a></li>
873
874 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/11/">November (8)</a></li>
875
876 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/12/">December (5)</a></li>
877
878 </ul></li>
879
880 <li>2015
881 <ul>
882
883 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/01/">January (7)</a></li>
884
885 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/02/">February (6)</a></li>
886
887 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/03/">March (1)</a></li>
888
889 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/04/">April (4)</a></li>
890
891 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/05/">May (3)</a></li>
892
893 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/06/">June (4)</a></li>
894
895 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/07/">July (6)</a></li>
896
897 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/08/">August (2)</a></li>
898
899 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/09/">September (2)</a></li>
900
901 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/10/">October (9)</a></li>
902
903 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/11/">November (6)</a></li>
904
905 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/12/">December (3)</a></li>
906
907 </ul></li>
908
909 <li>2014
910 <ul>
911
912 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/01/">January (2)</a></li>
913
914 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/02/">February (3)</a></li>
915
916 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/03/">March (8)</a></li>
917
918 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/04/">April (7)</a></li>
919
920 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/05/">May (1)</a></li>
921
922 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/06/">June (2)</a></li>
923
924 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/07/">July (2)</a></li>
925
926 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/08/">August (2)</a></li>
927
928 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/09/">September (5)</a></li>
929
930 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/10/">October (6)</a></li>
931
932 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/11/">November (3)</a></li>
933
934 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/12/">December (5)</a></li>
935
936 </ul></li>
937
938 <li>2013
939 <ul>
940
941 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/01/">January (11)</a></li>
942
943 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/02/">February (9)</a></li>
944
945 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/03/">March (9)</a></li>
946
947 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/04/">April (6)</a></li>
948
949 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/05/">May (9)</a></li>
950
951 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/06/">June (10)</a></li>
952
953 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/07/">July (7)</a></li>
954
955 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/08/">August (3)</a></li>
956
957 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/09/">September (5)</a></li>
958
959 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/10/">October (7)</a></li>
960
961 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/11/">November (9)</a></li>
962
963 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/12/">December (3)</a></li>
964
965 </ul></li>
966
967 <li>2012
968 <ul>
969
970 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/01/">January (7)</a></li>
971
972 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/02/">February (10)</a></li>
973
974 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/03/">March (17)</a></li>
975
976 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/04/">April (12)</a></li>
977
978 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/05/">May (12)</a></li>
979
980 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/06/">June (20)</a></li>
981
982 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/07/">July (17)</a></li>
983
984 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/08/">August (6)</a></li>
985
986 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/09/">September (9)</a></li>
987
988 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/10/">October (17)</a></li>
989
990 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/11/">November (10)</a></li>
991
992 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/12/">December (7)</a></li>
993
994 </ul></li>
995
996 <li>2011
997 <ul>
998
999 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/01/">January (16)</a></li>
1000
1001 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/02/">February (6)</a></li>
1002
1003 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/03/">March (6)</a></li>
1004
1005 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/04/">April (7)</a></li>
1006
1007 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/05/">May (3)</a></li>
1008
1009 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/06/">June (2)</a></li>
1010
1011 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/07/">July (7)</a></li>
1012
1013 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/08/">August (6)</a></li>
1014
1015 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/09/">September (4)</a></li>
1016
1017 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/10/">October (2)</a></li>
1018
1019 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/11/">November (3)</a></li>
1020
1021 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/12/">December (1)</a></li>
1022
1023 </ul></li>
1024
1025 <li>2010
1026 <ul>
1027
1028 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/01/">January (2)</a></li>
1029
1030 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/02/">February (1)</a></li>
1031
1032 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/03/">March (3)</a></li>
1033
1034 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/04/">April (3)</a></li>
1035
1036 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/05/">May (9)</a></li>
1037
1038 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/06/">June (14)</a></li>
1039
1040 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/07/">July (12)</a></li>
1041
1042 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/08/">August (13)</a></li>
1043
1044 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/09/">September (7)</a></li>
1045
1046 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/10/">October (9)</a></li>
1047
1048 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/11/">November (13)</a></li>
1049
1050 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/12/">December (12)</a></li>
1051
1052 </ul></li>
1053
1054 <li>2009
1055 <ul>
1056
1057 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/01/">January (8)</a></li>
1058
1059 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/02/">February (8)</a></li>
1060
1061 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/03/">March (12)</a></li>
1062
1063 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/04/">April (10)</a></li>
1064
1065 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/05/">May (9)</a></li>
1066
1067 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/06/">June (3)</a></li>
1068
1069 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/07/">July (4)</a></li>
1070
1071 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/08/">August (3)</a></li>
1072
1073 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/09/">September (1)</a></li>
1074
1075 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/10/">October (2)</a></li>
1076
1077 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/11/">November (3)</a></li>
1078
1079 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/12/">December (3)</a></li>
1080
1081 </ul></li>
1082
1083 <li>2008
1084 <ul>
1085
1086 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/11/">November (5)</a></li>
1087
1088 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/12/">December (7)</a></li>
1089
1090 </ul></li>
1091
1092 </ul>
1093
1094
1095
1096 <h2>Tags</h2>
1097 <ul>
1098
1099 <li><a href="http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (13)</a></li>
1100
1101 <li><a href="http://people.skolelinux.org/pere/blog/tags/amiga">amiga (1)</a></li>
1102
1103 <li><a href="http://people.skolelinux.org/pere/blog/tags/aros">aros (1)</a></li>
1104
1105 <li><a href="http://people.skolelinux.org/pere/blog/tags/bankid">bankid (4)</a></li>
1106
1107 <li><a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (9)</a></li>
1108
1109 <li><a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (16)</a></li>
1110
1111 <li><a href="http://people.skolelinux.org/pere/blog/tags/bsa">bsa (2)</a></li>
1112
1113 <li><a href="http://people.skolelinux.org/pere/blog/tags/chrpath">chrpath (2)</a></li>
1114
1115 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian">debian (146)</a></li>
1116
1117 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (158)</a></li>
1118
1119 <li><a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan (10)</a></li>
1120
1121 <li><a href="http://people.skolelinux.org/pere/blog/tags/dld">dld (16)</a></li>
1122
1123 <li><a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook (23)</a></li>
1124
1125 <li><a href="http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
1126
1127 <li><a href="http://people.skolelinux.org/pere/blog/tags/english">english (342)</a></li>
1128
1129 <li><a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (23)</a></li>
1130
1131 <li><a href="http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (12)</a></li>
1132
1133 <li><a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (29)</a></li>
1134
1135 <li><a href="http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox (9)</a></li>
1136
1137 <li><a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (18)</a></li>
1138
1139 <li><a href="http://people.skolelinux.org/pere/blog/tags/h264">h264 (20)</a></li>
1140
1141 <li><a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju (42)</a></li>
1142
1143 <li><a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram (15)</a></li>
1144
1145 <li><a href="http://people.skolelinux.org/pere/blog/tags/kart">kart (20)</a></li>
1146
1147 <li><a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap (9)</a></li>
1148
1149 <li><a href="http://people.skolelinux.org/pere/blog/tags/lenker">lenker (8)</a></li>
1150
1151 <li><a href="http://people.skolelinux.org/pere/blog/tags/lsdvd">lsdvd (2)</a></li>
1152
1153 <li><a href="http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (1)</a></li>
1154
1155 <li><a href="http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network (8)</a></li>
1156
1157 <li><a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (39)</a></li>
1158
1159 <li><a href="http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software (9)</a></li>
1160
1161 <li><a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk (287)</a></li>
1162
1163 <li><a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug (187)</a></li>
1164
1165 <li><a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (28)</a></li>
1166
1167 <li><a href="http://people.skolelinux.org/pere/blog/tags/open311">open311 (2)</a></li>
1168
1169 <li><a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (64)</a></li>
1170
1171 <li><a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern (99)</a></li>
1172
1173 <li><a href="http://people.skolelinux.org/pere/blog/tags/raid">raid (1)</a></li>
1174
1175 <li><a href="http://people.skolelinux.org/pere/blog/tags/reactos">reactos (1)</a></li>
1176
1177 <li><a href="http://people.skolelinux.org/pere/blog/tags/reprap">reprap (11)</a></li>
1178
1179 <li><a href="http://people.skolelinux.org/pere/blog/tags/rfid">rfid (3)</a></li>
1180
1181 <li><a href="http://people.skolelinux.org/pere/blog/tags/robot">robot (10)</a></li>
1182
1183 <li><a href="http://people.skolelinux.org/pere/blog/tags/rss">rss (1)</a></li>
1184
1185 <li><a href="http://people.skolelinux.org/pere/blog/tags/ruter">ruter (5)</a></li>
1186
1187 <li><a href="http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (2)</a></li>
1188
1189 <li><a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (52)</a></li>
1190
1191 <li><a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (4)</a></li>
1192
1193 <li><a href="http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (5)</a></li>
1194
1195 <li><a href="http://people.skolelinux.org/pere/blog/tags/standard">standard (51)</a></li>
1196
1197 <li><a href="http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (5)</a></li>
1198
1199 <li><a href="http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (11)</a></li>
1200
1201 <li><a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (47)</a></li>
1202
1203 <li><a href="http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (2)</a></li>
1204
1205 <li><a href="http://people.skolelinux.org/pere/blog/tags/usenix">usenix (2)</a></li>
1206
1207 <li><a href="http://people.skolelinux.org/pere/blog/tags/valg">valg (8)</a></li>
1208
1209 <li><a href="http://people.skolelinux.org/pere/blog/tags/video">video (59)</a></li>
1210
1211 <li><a href="http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (4)</a></li>
1212
1213 <li><a href="http://people.skolelinux.org/pere/blog/tags/web">web (40)</a></li>
1214
1215 </ul>
1216
1217
1218 </div>
1219 <p style="text-align: right">
1220 Created by <a href="http://steve.org.uk/Software/chronicle">Chronicle v4.6</a>
1221 </p>
1222
1223 </body>
1224 </html>