]> 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 her in Norway. :)</p>
82 </div>
83 <div class="tags">
84
85
86 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>.
87
88
89 </div>
90 </div>
91 <div class="padding"></div>
92
93 <div class="entry">
94 <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>
95 <div class="date">21st February 2017</div>
96 <div class="body"><p>I just noticed
97 <a href="http://www.arkivrad.no/aktuelt/riksarkivarens-forskrift-pa-horing">the
98 new Norwegian proposal for archiving rules in the goverment</a> list
99 <a href="http://www.ecma-international.org/publications/standards/Ecma-376.htm">ECMA-376</a>
100 / ISO/IEC 29500 (aka OOXML) as valid formats to put in long term
101 storage. Luckily such files will only be accepted based on
102 pre-approval from the National Archive. Allowing OOXML files to be
103 used for long term storage might seem like a good idea as long as we
104 forget that there are plenty of ways for a "valid" OOXML document to
105 have content with no defined interpretation in the standard, which
106 lead to a question and an idea.</p>
107
108 <p>Is there any tool to detect if a OOXML document depend on such
109 undefined behaviour? It would be useful for the National Archive (and
110 anyone else interested in verifying that a document is well defined)
111 to have such tool available when considering to approve the use of
112 OOXML. I'm aware of the
113 <a href="https://github.com/arlm/officeotron/">officeotron OOXML
114 validator</a>, but do not know how complete it is nor if it will
115 report use of undefined behaviour. Are there other similar tools
116 available? Please send me an email if you know of any such tool.</p>
117 </div>
118 <div class="tags">
119
120
121 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>.
122
123
124 </div>
125 </div>
126 <div class="padding"></div>
127
128 <div class="entry">
129 <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>
130 <div class="date">13th February 2017</div>
131 <div class="body"><p>A few days ago, we received the ruling from
132 <a href="http://people.skolelinux.org/pere/blog/A_day_in_court_challenging_seizure_of_popcorn_time_no_for__domstolkontroll.html">my
133 day in court</a>. The case in question is a challenge of the seizure
134 of the DNS domain popcorn-time.no. The ruling simply did not mention
135 most of our arguments, and seemed to take everything ØKOKRIM said at
136 face value, ignoring our demonstration and explanations. But it is
137 hard to tell for sure, as we still have not seen most of the documents
138 in the case and thus were unprepared and unable to contradict several
139 of the claims made in court by the opposition. We are considering an
140 appeal, but it is partly a question of funding, as it is costing us
141 quite a bit to pay for our lawyer. If you want to help, please
142 <a href="http://www.nuug.no/dns-beslag-donasjon.shtml">donate to the
143 NUUG defense fund</a>.</p>
144
145 <p>The details of the case, as far as we know it, is available in
146 Norwegian from
147 <a href="https://www.nuug.no/news/tags/dns-domenebeslag/">the NUUG
148 blog</a>. This also include
149 <a href="https://www.nuug.no/news/Avslag_etter_rettslig_h_ring_om_DNS_beslaget___vurderer_veien_videre.shtml">the
150 ruling itself</a>.</p>
151 </div>
152 <div class="tags">
153
154
155 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>.
156
157
158 </div>
159 </div>
160 <div class="padding"></div>
161
162 <div class="entry">
163 <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>
164 <div class="date"> 3rd February 2017</div>
165 <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>
166
167 <p>On Wednesday, I spent the entire day in court in Follo Tingrett
168 representing <a href="https://www.nuug.no/">the member association
169 NUUG</a>, alongside <a href="https://www.efn.no/">the member
170 association EFN</a> and <a href="http://www.imc.no">the DNS registrar
171 IMC</a>, challenging the seizure of the DNS name popcorn-time.no. It
172 was interesting to sit in a court of law for the first time in my
173 life. Our team can be seen in the picture above: attorney Ola
174 Tellesbø, EFN board member Tom Fredrik Blenning, IMC CEO Morten Emil
175 Eriksen and NUUG board member Petter Reinholdtsen.</p>
176
177 <p><a href="http://www.domstol.no/no/Enkelt-domstol/follo-tingrett/Nar-gar-rettssaken/Beramming/?cid=AAAA1701301512081262234UJFBVEZZZZZEJBAvtale">The
178 case at hand</a> is that the Norwegian National Authority for
179 Investigation and Prosecution of Economic and Environmental Crime (aka
180 Økokrim) decided on their own, to seize a DNS domain early last
181 year, without following
182 <a href="https://www.norid.no/no/regelverk/navnepolitikk/#link12">the
183 official policy of the Norwegian DNS authority</a> which require a
184 court decision. The web site in question was a site covering Popcorn
185 Time. And Popcorn Time is the name of a technology with both legal
186 and illegal applications. Popcorn Time is a client combining
187 searching a Bittorrent directory available on the Internet with
188 downloading/distribute content via Bittorrent and playing the
189 downloaded content on screen. It can be used illegally if it is used
190 to distribute content against the will of the right holder, but it can
191 also be used legally to play a lot of content, for example the
192 millions of movies
193 <a href="https://archive.org/details/movies">available from the
194 Internet Archive</a> or the collection
195 <a href="http://vodo.net/films/">available from Vodo</a>. We created
196 <a href="magnet:?xt=urn:btih:86c1802af5a667ca56d3918aecb7d3c0f7173084&dn=PresentasjonFolloTingrett.mov&tr=udp%3A%2F%2Fpublic.popcorn-tracker.org%3A6969%2Fannounce">a
197 video demonstrating legally use of Popcorn Time</a> and played it in
198 Court. It can of course be downloaded using Bittorrent.</p>
199
200 <p>I did not quite know what to expect from a day in court. The
201 government held on to their version of the story and we held on to
202 ours, and I hope the judge is able to make sense of it all. We will
203 know in two weeks time. Unfortunately I do not have high hopes, as
204 the Government have the upper hand here with more knowledge about the
205 case, better training in handling criminal law and in general higher
206 standing in the courts than fairly unknown DNS registrar and member
207 associations. It is expensive to be right also in Norway. So far the
208 case have cost more than NOK 70 000,-. To help fund the case, NUUG
209 and EFN have asked for donations, and managed to collect around NOK 25
210 000,- so far. Given the presentation from the Government, I expect
211 the government to appeal if the case go our way. And if the case do
212 not go our way, I hope we have enough funding to appeal.</p>
213
214 <p>From the other side came two people from Økokrim. On the benches,
215 appearing to be part of the group from the government were two people
216 from the Simonsen Vogt Wiik lawyer office, and three others I am not
217 quite sure who was. Økokrim had proposed to present two witnesses
218 from The Motion Picture Association, but this was rejected because
219 they did not speak Norwegian and it was a bit late to bring in a
220 translator, but perhaps the two from MPA were present anyway. All
221 seven appeared to know each other. Good to see the case is take
222 seriously.</p>
223
224 <p>If you, like me, believe the courts should be involved before a DNS
225 domain is hijacked by the government, or you believe the Popcorn Time
226 technology have a lot of useful and legal applications, I suggest you
227 too <a href="http://www.nuug.no/dns-beslag-donasjon.shtml">donate to
228 the NUUG defense fund</a>. Both Bitcoin and bank transfer are
229 available. If NUUG get more than we need for the legal action (very
230 unlikely), the rest will be spend promoting free software, open
231 standards and unix-like operating systems in Norway, so no matter what
232 happens the money will be put to good use.</p>
233
234 <p>If you want to lean more about the case, I recommend you check out
235 <a href="https://www.nuug.no/news/tags/dns-domenebeslag/">the blog
236 posts from NUUG covering the case</a>. They cover the legal arguments
237 on both sides.</p>
238 </div>
239 <div class="tags">
240
241
242 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>.
243
244
245 </div>
246 </div>
247 <div class="padding"></div>
248
249 <div class="entry">
250 <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>
251 <div class="date">12th January 2017</div>
252 <div class="body"><p>I dag fikk jeg en skikkelig gladmelding. Bakgrunnen er at før jul
253 arrangerte Nasjonalbiblioteket
254 <a href="http://www.nb.no/Bibliotekutvikling/Kunnskapsorganisering/Nasjonalt-verksregister/Seminar-om-verksregister">et
255 seminar om sitt knakende gode tiltak «verksregister»</a>. Eneste
256 måten å melde seg på dette seminaret var å sende personopplysninger
257 til Google via Google Skjemaer. Dette syntes jeg var tvilsom praksis,
258 da det bør være mulig å delta på seminarer arrangert av det offentlige
259 uten å måtte dele sine interesser, posisjon og andre
260 personopplysninger med Google. Jeg ba derfor om innsyn via
261 <a href="https://www.mimesbronn.no/">Mimes brønn</a> i
262 <a href="https://www.mimesbronn.no/request/personopplysninger_til_google_sk">avtaler
263 og vurderinger Nasjonalbiblioteket hadde rundt dette</a>.
264 Personopplysningsloven legger klare rammer for hva som må være på
265 plass før en kan be tredjeparter, spesielt i utlandet, behandle
266 personopplysninger på sine vegne, så det burde eksistere grundig
267 dokumentasjon før noe slikt kan bli lovlig. To jurister hos
268 Nasjonalbiblioteket mente først dette var helt i orden, og at Googles
269 standardavtale kunne brukes som databehandlingsavtale. Det syntes jeg
270 var merkelig, men har ikke hatt kapasitet til å følge opp saken før
271 for to dager siden.</p>
272
273 <p>Gladnyheten i dag, som kom etter at jeg tipset Nasjonalbiblioteket
274 om at Datatilsynet underkjente Googles standardavtaler som
275 databehandleravtaler i 2011, er at Nasjonalbiblioteket har bestemt seg
276 for å avslutte bruken av Googles Skjemaer/Apps og gå i dialog med DIFI
277 for å finne bedre måter å håndtere påmeldinger i tråd med
278 personopplysningsloven. Det er fantastisk å se at av og til hjelper
279 det å spørre hva i alle dager det offentlige holder på med.</p>
280 </div>
281 <div class="tags">
282
283
284 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>.
285
286
287 </div>
288 </div>
289 <div class="padding"></div>
290
291 <div class="entry">
292 <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>
293 <div class="date">11th January 2017</div>
294 <div class="body"><p>Jeg leste med interesse en nyhetssak hos
295 <a href="http://www.digi.no/artikler/nav-avslorer-trygdemisbruk-ved-a-spore-ip-adresser/367394">digi.no</a>
296 og
297 <a href="https://www.nrk.no/buskerud/trygdesvindlere-avslores-av-utenlandske-ip-adresser-1.13313461">NRK</a>
298 om at det ikke bare er meg, men at også NAV bedriver geolokalisering
299 av IP-adresser, og at det gjøres analyse av IP-adressene til de som
300 sendes inn meldekort for å se om meldekortet sendes inn fra
301 utenlandske IP-adresser. Politiadvokat i Drammen, Hans Lyder Haare,
302 er sitert i NRK på at «De to er jo blant annet avslørt av
303 IP-adresser. At man ser at meldekortet kommer fra utlandet.»</p>
304
305 <p>Jeg synes det er fint at det blir bedre kjent at IP-adresser
306 knyttes til enkeltpersoner og at innsamlet informasjon brukes til å
307 stedsbestemme personer også av aktører her i Norge. Jeg ser det som
308 nok et argument for å bruke
309 <a href="https://www.torproject.org/">Tor</a> så mye som mulig for å
310 gjøre gjøre IP-lokalisering vanskeligere, slik at en kan beskytte sin
311 privatsfære og unngå å dele sin fysiske plassering med
312 uvedkommede.</p>
313
314 <P>Men det er en ting som bekymrer meg rundt denne nyheten. Jeg ble
315 tipset (takk #nuug) om
316 <a href="https://www.nav.no/no/NAV+og+samfunn/Kontakt+NAV/Teknisk+brukerstotte/Snarveier/personvernerkl%C3%A6ring-for-arbeids-og-velferdsetaten">NAVs
317 personvernerklæring</a>, som under punktet «Personvern og statistikk»
318 lyder:</p>
319
320 <p><blockquote>
321
322 <p>«Når du besøker nav.no, etterlater du deg elektroniske spor. Sporene
323 dannes fordi din nettleser automatisk sender en rekke opplysninger til
324 NAVs tjener (server-maskin) hver gang du ber om å få vist en side. Det
325 er eksempelvis opplysninger om hvilken nettleser og -versjon du
326 bruker, og din internettadresse (ip-adresse). For hver side som vises,
327 lagres følgende opplysninger:</p>
328
329 <ul>
330 <li>hvilken side du ser på</li>
331 <li>dato og tid</li>
332 <li>hvilken nettleser du bruker</li>
333 <li>din ip-adresse</li>
334 </ul>
335
336 <p>Ingen av opplysningene vil bli brukt til å identifisere
337 enkeltpersoner. NAV bruker disse opplysningene til å generere en
338 samlet statistikk som blant annet viser hvilke sider som er mest
339 populære. Statistikken er et redskap til å forbedre våre
340 tjenester.»</p>
341
342 </blockquote></p>
343
344 <p>Jeg klarer ikke helt å se hvordan analyse av de besøkendes
345 IP-adresser for å se hvem som sender inn meldekort via web fra en
346 IP-adresse i utlandet kan gjøres uten å komme i strid med påstanden om
347 at «ingen av opplysningene vil bli brukt til å identifisere
348 enkeltpersoner». Det virker dermed for meg som at NAV bryter sine
349 egen personvernerklæring, hvilket
350 <a href="http://people.skolelinux.org/pere/blog/Er_lover_brutt_n_r_personvernpolicy_ikke_stemmer_med_praksis_.html">Datatilsynet
351 fortalte meg i starten av desember antagelig er brudd på
352 personopplysningsloven</a>.
353
354 <p>I tillegg er personvernerklæringen ganske misvisende i og med at
355 NAVs nettsider ikke bare forsyner NAV med personopplysninger, men i
356 tillegg ber brukernes nettleser kontakte fem andre nettjenere
357 (script.hotjar.com, static.hotjar.com, vars.hotjar.com,
358 www.google-analytics.com og www.googletagmanager.com), slik at
359 personopplysninger blir gjort tilgjengelig for selskapene Hotjar og
360 Google , og alle som kan lytte på trafikken på veien (som FRA, GCHQ og
361 NSA). Jeg klarer heller ikke se hvordan slikt spredning av
362 personopplysninger kan være i tråd med kravene i
363 personopplysningloven, eller i tråd med NAVs personvernerklæring.</p>
364
365 <p>Kanskje NAV bør ta en nøye titt på sin personvernerklæring? Eller
366 kanskje Datatilsynet bør gjøre det?</p>
367 </div>
368 <div class="tags">
369
370
371 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>.
372
373
374 </div>
375 </div>
376 <div class="padding"></div>
377
378 <div class="entry">
379 <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>
380 <div class="date"> 9th January 2017</div>
381 <div class="body"><p>Did you ever wonder where the web trafic really flow to reach the
382 web servers, and who own the network equipment it is flowing through?
383 It is possible to get a glimpse of this from using traceroute, but it
384 is hard to find all the details. Many years ago, I wrote a system to
385 map the Norwegian Internet (trying to figure out if our plans for a
386 network game service would get low enough latency, and who we needed
387 to talk to about setting up game servers close to the users. Back
388 then I used traceroute output from many locations (I asked my friends
389 to run a script and send me their traceroute output) to create the
390 graph and the map. The output from traceroute typically look like
391 this:
392
393 <p><pre>
394 traceroute to www.stortinget.no (85.88.67.10), 30 hops max, 60 byte packets
395 1 uio-gw10.uio.no (129.240.202.1) 0.447 ms 0.486 ms 0.621 ms
396 2 uio-gw8.uio.no (129.240.24.229) 0.467 ms 0.578 ms 0.675 ms
397 3 oslo-gw1.uninett.no (128.39.65.17) 0.385 ms 0.373 ms 0.358 ms
398 4 te3-1-2.br1.fn3.as2116.net (193.156.90.3) 1.174 ms 1.172 ms 1.153 ms
399 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
400 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
401 7 89.191.10.146 (89.191.10.146) 0.931 ms 0.917 ms 0.955 ms
402 8 * * *
403 9 * * *
404 [...]
405 </pre></p>
406
407 <p>This show the DNS names and IP addresses of (at least some of the)
408 network equipment involved in getting the data traffic from me to the
409 www.stortinget.no server, and how long it took in milliseconds for a
410 package to reach the equipment and return to me. Three packages are
411 sent, and some times the packages do not follow the same path. This
412 is shown for hop 5, where three different IP addresses replied to the
413 traceroute request.</p>
414
415 <p>There are many ways to measure trace routes. Other good traceroute
416 implementations I use are traceroute (using ICMP packages) mtr (can do
417 both ICMP, UDP and TCP) and scapy (python library with ICMP, UDP, TCP
418 traceroute and a lot of other capabilities). All of them are easily
419 available in <a href="https://www.debian.org/">Debian</a>.</p>
420
421 <p>This time around, I wanted to know the geographic location of
422 different route points, to visualize how visiting a web page spread
423 information about the visit to a lot of servers around the globe. The
424 background is that a web site today often will ask the browser to get
425 from many servers the parts (for example HTML, JSON, fonts,
426 JavaScript, CSS, video) required to display the content. This will
427 leak information about the visit to those controlling these servers
428 and anyone able to peek at the data traffic passing by (like your ISP,
429 the ISPs backbone provider, FRA, GCHQ, NSA and others).</p>
430
431 <p>Lets pick an example, the Norwegian parliament web site
432 www.stortinget.no. It is read daily by all members of parliament and
433 their staff, as well as political journalists, activits and many other
434 citizens of Norway. A visit to the www.stortinget.no web site will
435 ask your browser to contact 8 other servers: ajax.googleapis.com,
436 insights.hotjar.com, script.hotjar.com, static.hotjar.com,
437 stats.g.doubleclick.net, www.google-analytics.com,
438 www.googletagmanager.com and www.netigate.se. I extracted this by
439 asking <a href="http://phantomjs.org/">PhantomJS</a> to visit the
440 Stortinget web page and tell me all the URLs PhantomJS downloaded to
441 render the page (in HAR format using
442 <a href="https://github.com/ariya/phantomjs/blob/master/examples/netsniff.js">their
443 netsniff example</a>. I am very grateful to Gorm for showing me how
444 to do this). My goal is to visualize network traces to all IP
445 addresses behind these DNS names, do show where visitors personal
446 information is spread when visiting the page.</p>
447
448 <p align="center"><a href="www.stortinget.no-geoip.kml"><img
449 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>
450
451 <p>When I had a look around for options, I could not find any good
452 free software tools to do this, and decided I needed my own traceroute
453 wrapper outputting KML based on locations looked up using GeoIP. KML
454 is easy to work with and easy to generate, and understood by several
455 of the GIS tools I have available. I got good help from by NUUG
456 colleague Anders Einar with this, and the result can be seen in
457 <a href="https://github.com/petterreinholdtsen/kmltraceroute">my
458 kmltraceroute git repository</a>. Unfortunately, the quality of the
459 free GeoIP databases I could find (and the for-pay databases my
460 friends had access to) is not up to the task. The IP addresses of
461 central Internet infrastructure would typically be placed near the
462 controlling companies main office, and not where the router is really
463 located, as you can see from <a href="www.stortinget.no-geoip.kml">the
464 KML file I created</a> using the GeoLite City dataset from MaxMind.
465
466 <p align="center"><a href="http://people.skolelinux.org/pere/blog/images/2017-01-09-www.stortinget.no-scapy.svg"><img
467 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>
468
469 <p>I also had a look at the visual traceroute graph created by
470 <a href="http://www.secdev.org/projects/scapy/">the scrapy project</a>,
471 showing IP network ownership (aka AS owner) for the IP address in
472 question.
473 <a href="http://people.skolelinux.org/pere/blog/images/2017-01-09-www.stortinget.no-scapy.svg">The
474 graph display a lot of useful information about the traceroute in SVG
475 format</a>, and give a good indication on who control the network
476 equipment involved, but it do not include geolocation. This graph
477 make it possible to see the information is made available at least for
478 UNINETT, Catchcom, Stortinget, Nordunet, Google, Amazon, Telia, Level
479 3 Communications and NetDNA.</p>
480
481 <p align="center"><a href="https://geotraceroute.com/index.php?node=4&host=www.stortinget.no"><img
482 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>
483
484 <p>In the process, I came across the
485 <a href="https://geotraceroute.com/">web service GeoTraceroute</a> by
486 Salim Gasmi. Its methology of combining guesses based on DNS names,
487 various location databases and finally use latecy times to rule out
488 candidate locations seemed to do a very good job of guessing correct
489 geolocation. But it could only do one trace at the time, did not have
490 a sensor in Norway and did not make the geolocations easily available
491 for postprocessing. So I contacted the developer and asked if he
492 would be willing to share the code (he refused until he had time to
493 clean it up), but he was interested in providing the geolocations in a
494 machine readable format, and willing to set up a sensor in Norway. So
495 since yesterday, it is possible to run traces from Norway in this
496 service thanks to a sensor node set up by
497 <a href="https://www.nuug.no/">the NUUG assosiation</a>, and get the
498 trace in KML format for further processing.</p>
499
500 <p align="center"><a href="http://people.skolelinux.org/pere/blog/images/2017-01-09-www.stortinget.no-geotraceroute-kml-join.kml"><img
501 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>
502
503 <p>Here we can see a lot of trafic passes Sweden on its way to
504 Denmark, Germany, Holland and Ireland. Plenty of places where the
505 Snowden confirmations verified the traffic is read by various actors
506 without your best interest as their top priority.</p>
507
508 <p>Combining KML files is trivial using a text editor, so I could loop
509 over all the hosts behind the urls imported by www.stortinget.no and
510 ask for the KML file from GeoTraceroute, and create a combined KML
511 file with all the traces (unfortunately only one of the IP addresses
512 behind the DNS name is traced this time. To get them all, one would
513 have to request traces using IP number instead of DNS names from
514 GeoTraceroute). That might be the next step in this project.</p>
515
516 <p>Armed with these tools, I find it a lot easier to figure out where
517 the IP traffic moves and who control the boxes involved in moving it.
518 And every time the link crosses for example the Swedish border, we can
519 be sure Swedish Signal Intelligence (FRA) is listening, as GCHQ do in
520 Britain and NSA in USA and cables around the globe. (Hm, what should
521 we tell them? :) Keep that in mind if you ever send anything
522 unencrypted over the Internet.</p>
523
524 <p>PS: KML files are drawn using
525 <a href="http://ivanrublev.me/kml/">the KML viewer from Ivan
526 Rublev<a/>, as it was less cluttered than the local Linux application
527 Marble. There are heaps of other options too.</p>
528
529 <p>As usual, if you use Bitcoin and want to show your support of my
530 activities, please send Bitcoin donations to my address
531 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&label=PetterReinholdtsenBlog">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
532 </div>
533 <div class="tags">
534
535
536 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>.
537
538
539 </div>
540 </div>
541 <div class="padding"></div>
542
543 <div class="entry">
544 <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>
545 <div class="date"> 4th January 2017</div>
546 <div class="body"><p>Do you have a large <a href="https://icalendar.org/">iCalendar</a>
547 file with lots of old entries, and would like to archive them to save
548 space and resources? At least those of us using KOrganizer know that
549 turning on and off an event set become slower and slower the more
550 entries are in the set. While working on migrating our calendars to a
551 <a href="http://radicale.org/">Radicale CalDAV server</a> on our
552 <a href="https://freedomboxfoundation.org/">Freedombox server</a/>, my
553 loved one wondered if I could find a way to split up the calendar file
554 she had in KOrganizer, and I set out to write a tool. I spent a few
555 days writing and polishing the system, and it is now ready for general
556 consumption. The
557 <a href="https://github.com/petterreinholdtsen/ical-archiver">code for
558 ical-archiver</a> is publicly available from a git repository on
559 github. The system is written in Python and depend on
560 <a href="http://eventable.github.io/vobject/">the vobject Python
561 module</a>.</p>
562
563 <p>To use it, locate the iCalendar file you want to operate on and
564 give it as an argument to the ical-archiver script. This will
565 generate a set of new files, one file per component type per year for
566 all components expiring more than two years in the past. The vevent,
567 vtodo and vjournal entries are handled by the script. The remaining
568 entries are stored in a 'remaining' file.</p>
569
570 <p>This is what a test run can look like:
571
572 <p><pre>
573 % ical-archiver t/2004-2016.ics
574 Found 3612 vevents
575 Found 6 vtodos
576 Found 2 vjournals
577 Writing t/2004-2016.ics-subset-vevent-2004.ics
578 Writing t/2004-2016.ics-subset-vevent-2005.ics
579 Writing t/2004-2016.ics-subset-vevent-2006.ics
580 Writing t/2004-2016.ics-subset-vevent-2007.ics
581 Writing t/2004-2016.ics-subset-vevent-2008.ics
582 Writing t/2004-2016.ics-subset-vevent-2009.ics
583 Writing t/2004-2016.ics-subset-vevent-2010.ics
584 Writing t/2004-2016.ics-subset-vevent-2011.ics
585 Writing t/2004-2016.ics-subset-vevent-2012.ics
586 Writing t/2004-2016.ics-subset-vevent-2013.ics
587 Writing t/2004-2016.ics-subset-vevent-2014.ics
588 Writing t/2004-2016.ics-subset-vjournal-2007.ics
589 Writing t/2004-2016.ics-subset-vjournal-2011.ics
590 Writing t/2004-2016.ics-subset-vtodo-2012.ics
591 Writing t/2004-2016.ics-remaining.ics
592 %
593 </pre></p>
594
595 <p>As you can see, the original file is untouched and new files are
596 written with names derived from the original file. If you are happy
597 with their content, the *-remaining.ics file can replace the original
598 the the others can be archived or imported as historical calendar
599 collections.</p>
600
601 <p>The script should probably be improved a bit. The error handling
602 when discovering broken entries is not good, and I am not sure yet if
603 it make sense to split different entry types into separate files or
604 not. The program is thus likely to change. If you find it
605 interesting, please get in touch. :)</p>
606
607 <p>As usual, if you use Bitcoin and want to show your support of my
608 activities, please send Bitcoin donations to my address
609 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&label=PetterReinholdtsenBlog">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
610 </div>
611 <div class="tags">
612
613
614 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>.
615
616
617 </div>
618 </div>
619 <div class="padding"></div>
620
621 <div class="entry">
622 <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>
623 <div class="date">23rd December 2016</div>
624 <div class="body"><p>I received a very nice Christmas present today. As my regular
625 readers probably know, I have been working on the
626 <a href="http://packages.qa.debian.org/isenkram">the Isenkram
627 system</a> for many years. The goal of the Isenkram system is to make
628 it easier for users to figure out what to install to get a given piece
629 of hardware to work in Debian, and a key part of this system is a way
630 to map hardware to packages. Isenkram have its own mapping database,
631 and also uses data provided by each package using the AppStream
632 metadata format. And today,
633 <a href="https://tracker.debian.org/pkg/appstream">AppStream</a> in
634 Debian learned to look up hardware the same way Isenkram is doing it,
635 ie using fnmatch():</p>
636
637 <p><pre>
638 % appstreamcli what-provides modalias \
639 usb:v1130p0202d0100dc00dsc00dp00ic03isc00ip00in00
640 Identifier: pymissile [generic]
641 Name: pymissile
642 Summary: Control original Striker USB Missile Launcher
643 Package: pymissile
644 % appstreamcli what-provides modalias usb:v0694p0002d0000
645 Identifier: libnxt [generic]
646 Name: libnxt
647 Summary: utility library for talking to the LEGO Mindstorms NXT brick
648 Package: libnxt
649 ---
650 Identifier: t2n [generic]
651 Name: t2n
652 Summary: Simple command-line tool for Lego NXT
653 Package: t2n
654 ---
655 Identifier: python-nxt [generic]
656 Name: python-nxt
657 Summary: Python driver/interface/wrapper for the Lego Mindstorms NXT robot
658 Package: python-nxt
659 ---
660 Identifier: nbc [generic]
661 Name: nbc
662 Summary: C compiler for LEGO Mindstorms NXT bricks
663 Package: nbc
664 %
665 </pre></p>
666
667 <p>A similar query can be done using the combined AppStream and
668 Isenkram databases using the isenkram-lookup tool:</p>
669
670 <p><pre>
671 % isenkram-lookup usb:v1130p0202d0100dc00dsc00dp00ic03isc00ip00in00
672 pymissile
673 % isenkram-lookup usb:v0694p0002d0000
674 libnxt
675 nbc
676 python-nxt
677 t2n
678 %
679 </pre></p>
680
681 <p>You can find modalias values relevant for your machine using
682 <tt>cat $(find /sys/devices/ -name modalias)</tt>.
683
684 <p>If you want to make this system a success and help Debian users
685 make the most of the hardware they have, please
686 help<a href="https://wiki.debian.org/AppStream/Guidelines">add
687 AppStream metadata for your package following the guidelines</a>
688 documented in the wiki. So far only 11 packages provide such
689 information, among the several hundred hardware specific packages in
690 Debian. The Isenkram database on the other hand contain 101 packages,
691 mostly related to USB dongles. Most of the packages with hardware
692 mapping in AppStream are LEGO Mindstorms related, because I have, as
693 part of my involvement in
694 <a href="https://wiki.debian.org/LegoDesigners">the Debian LEGO
695 team</a> given priority to making sure LEGO users get proposed the
696 complete set of packages in Debian for that particular hardware. The
697 team also got a nice Christmas present today. The
698 <a href="https://tracker.debian.org/pkg/nxt-firmware">nxt-firmware
699 package</a> made it into Debian. With this package in place, it is
700 now possible to use the LEGO Mindstorms NXT unit with only free
701 software, as the nxt-firmware package contain the source and firmware
702 binaries for the NXT brick.</p>
703
704 <p>As usual, if you use Bitcoin and want to show your support of my
705 activities, please send Bitcoin donations to my address
706 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&label=PetterReinholdtsenBlog">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
707 </div>
708 <div class="tags">
709
710
711 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>.
712
713
714 </div>
715 </div>
716 <div class="padding"></div>
717
718 <div class="entry">
719 <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>
720 <div class="date">20th December 2016</div>
721 <div class="body"><p><a href="http://packages.qa.debian.org/isenkram">The Isenkram
722 system</a> I wrote two years ago to make it easier in Debian to find
723 and install packages to get your hardware dongles to work, is still
724 going strong. It is a system to look up the hardware present on or
725 connected to the current system, and map the hardware to Debian
726 packages. It can either be done using the tools in isenkram-cli or
727 using the user space daemon in the isenkram package. The latter will
728 notify you, when inserting new hardware, about what packages to
729 install to get the dongle working. It will even provide a button to
730 click on to ask packagekit to install the packages.</p>
731
732 <p>Here is an command line example from my Thinkpad laptop:</p>
733
734 <p><pre>
735 % isenkram-lookup
736 bluez
737 cheese
738 ethtool
739 fprintd
740 fprintd-demo
741 gkrellm-thinkbat
742 hdapsd
743 libpam-fprintd
744 pidgin-blinklight
745 thinkfan
746 tlp
747 tp-smapi-dkms
748 tp-smapi-source
749 tpb
750 %
751 </pre></p>
752
753 <p>It can also list the firware package providing firmware requested
754 by the load kernel modules, which in my case is an empty list because
755 I have all the firmware my machine need:
756
757 <p><pre>
758 % /usr/sbin/isenkram-autoinstall-firmware -l
759 info: did not find any firmware files requested by loaded kernel modules. exiting
760 %
761 </pre></p>
762
763 <p>The last few days I had a look at several of the around 250
764 packages in Debian with udev rules. These seem like good candidates
765 to install when a given hardware dongle is inserted, and I found
766 several that should be proposed by isenkram. I have not had time to
767 check all of them, but am happy to report that now there are 97
768 packages packages mapped to hardware by Isenkram. 11 of these
769 packages provide hardware mapping using AppStream, while the rest are
770 listed in the modaliases file provided in isenkram.</p>
771
772 <p>These are the packages with hardware mappings at the moment. The
773 <strong>marked packages</strong> are also announcing their hardware
774 support using AppStream, for everyone to use:</p>
775
776 <p>air-quality-sensor, alsa-firmware-loaders, argyll,
777 <strong>array-info</strong>, avarice, avrdude, b43-fwcutter,
778 bit-babbler, bluez, bluez-firmware, <strong>brltty</strong>,
779 <strong>broadcom-sta-dkms</strong>, calibre, cgminer, cheese, colord,
780 <strong>colorhug-client</strong>, dahdi-firmware-nonfree, dahdi-linux,
781 dfu-util, dolphin-emu, ekeyd, ethtool, firmware-ipw2x00, fprintd,
782 fprintd-demo, <strong>galileo</strong>, gkrellm-thinkbat, gphoto2,
783 gpsbabel, gpsbabel-gui, gpsman, gpstrans, gqrx-sdr, gr-fcdproplus,
784 gr-osmosdr, gtkpod, hackrf, hdapsd, hdmi2usb-udev, hpijs-ppds, hplip,
785 ipw3945-source, ipw3945d, kde-config-tablet, kinect-audio-setup,
786 <strong>libnxt</strong>, libpam-fprintd, <strong>lomoco</strong>,
787 madwimax, minidisc-utils, mkgmap, msi-keyboard, mtkbabel,
788 <strong>nbc</strong>, <strong>nqc</strong>, nut-hal-drivers, ola,
789 open-vm-toolbox, open-vm-tools, openambit, pcgminer, pcmciautils,
790 pcscd, pidgin-blinklight, printer-driver-splix,
791 <strong>pymissile</strong>, python-nxt, qlandkartegt,
792 qlandkartegt-garmin, rosegarden, rt2x00-source, sispmctl,
793 soapysdr-module-hackrf, solaar, squeak-plugins-scratch, sunxi-tools,
794 <strong>t2n</strong>, thinkfan, thinkfinger-tools, tlp, tp-smapi-dkms,
795 tp-smapi-source, tpb, tucnak, uhd-host, usbmuxd, viking,
796 virtualbox-ose-guest-x11, w1retap, xawtv, xserver-xorg-input-vmmouse,
797 xserver-xorg-input-wacom, xserver-xorg-video-qxl,
798 xserver-xorg-video-vmware, yubikey-personalization and
799 zd1211-firmware</p>
800
801 <p>If you know of other packages, please let me know with a wishlist
802 bug report against the isenkram-cli package, and ask the package
803 maintainer to
804 <a href="https://wiki.debian.org/AppStream/Guidelines">add AppStream
805 metadata according to the guidelines</a> to provide the information
806 for everyone. In time, I hope to get rid of the isenkram specific
807 hardware mapping and depend exclusively on AppStream.</p>
808
809 <p>Note, the AppStream metadata for broadcom-sta-dkms is matching too
810 much hardware, and suggest that the package with with any ethernet
811 card. See <a href="http://bugs.debian.org/838735">bug #838735</a> for
812 the details. I hope the maintainer find time to address it soon. In
813 the mean time I provide an override in isenkram.</p>
814 </div>
815 <div class="tags">
816
817
818 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>.
819
820
821 </div>
822 </div>
823 <div class="padding"></div>
824
825 <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>
826 <div id="sidebar">
827
828
829
830 <h2>Archive</h2>
831 <ul>
832
833 <li>2017
834 <ul>
835
836 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/01/">January (4)</a></li>
837
838 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/02/">February (3)</a></li>
839
840 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/03/">March (1)</a></li>
841
842 </ul></li>
843
844 <li>2016
845 <ul>
846
847 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/01/">January (3)</a></li>
848
849 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/02/">February (2)</a></li>
850
851 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/03/">March (3)</a></li>
852
853 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/04/">April (8)</a></li>
854
855 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/05/">May (8)</a></li>
856
857 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/06/">June (2)</a></li>
858
859 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/07/">July (2)</a></li>
860
861 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/08/">August (5)</a></li>
862
863 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/09/">September (2)</a></li>
864
865 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/10/">October (3)</a></li>
866
867 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/11/">November (8)</a></li>
868
869 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/12/">December (5)</a></li>
870
871 </ul></li>
872
873 <li>2015
874 <ul>
875
876 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/01/">January (7)</a></li>
877
878 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/02/">February (6)</a></li>
879
880 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/03/">March (1)</a></li>
881
882 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/04/">April (4)</a></li>
883
884 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/05/">May (3)</a></li>
885
886 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/06/">June (4)</a></li>
887
888 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/07/">July (6)</a></li>
889
890 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/08/">August (2)</a></li>
891
892 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/09/">September (2)</a></li>
893
894 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/10/">October (9)</a></li>
895
896 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/11/">November (6)</a></li>
897
898 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/12/">December (3)</a></li>
899
900 </ul></li>
901
902 <li>2014
903 <ul>
904
905 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/01/">January (2)</a></li>
906
907 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/02/">February (3)</a></li>
908
909 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/03/">March (8)</a></li>
910
911 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/04/">April (7)</a></li>
912
913 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/05/">May (1)</a></li>
914
915 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/06/">June (2)</a></li>
916
917 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/07/">July (2)</a></li>
918
919 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/08/">August (2)</a></li>
920
921 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/09/">September (5)</a></li>
922
923 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/10/">October (6)</a></li>
924
925 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/11/">November (3)</a></li>
926
927 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/12/">December (5)</a></li>
928
929 </ul></li>
930
931 <li>2013
932 <ul>
933
934 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/01/">January (11)</a></li>
935
936 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/02/">February (9)</a></li>
937
938 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/03/">March (9)</a></li>
939
940 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/04/">April (6)</a></li>
941
942 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/05/">May (9)</a></li>
943
944 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/06/">June (10)</a></li>
945
946 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/07/">July (7)</a></li>
947
948 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/08/">August (3)</a></li>
949
950 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/09/">September (5)</a></li>
951
952 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/10/">October (7)</a></li>
953
954 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/11/">November (9)</a></li>
955
956 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/12/">December (3)</a></li>
957
958 </ul></li>
959
960 <li>2012
961 <ul>
962
963 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/01/">January (7)</a></li>
964
965 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/02/">February (10)</a></li>
966
967 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/03/">March (17)</a></li>
968
969 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/04/">April (12)</a></li>
970
971 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/05/">May (12)</a></li>
972
973 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/06/">June (20)</a></li>
974
975 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/07/">July (17)</a></li>
976
977 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/08/">August (6)</a></li>
978
979 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/09/">September (9)</a></li>
980
981 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/10/">October (17)</a></li>
982
983 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/11/">November (10)</a></li>
984
985 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/12/">December (7)</a></li>
986
987 </ul></li>
988
989 <li>2011
990 <ul>
991
992 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/01/">January (16)</a></li>
993
994 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/02/">February (6)</a></li>
995
996 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/03/">March (6)</a></li>
997
998 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/04/">April (7)</a></li>
999
1000 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/05/">May (3)</a></li>
1001
1002 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/06/">June (2)</a></li>
1003
1004 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/07/">July (7)</a></li>
1005
1006 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/08/">August (6)</a></li>
1007
1008 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/09/">September (4)</a></li>
1009
1010 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/10/">October (2)</a></li>
1011
1012 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/11/">November (3)</a></li>
1013
1014 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/12/">December (1)</a></li>
1015
1016 </ul></li>
1017
1018 <li>2010
1019 <ul>
1020
1021 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/01/">January (2)</a></li>
1022
1023 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/02/">February (1)</a></li>
1024
1025 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/03/">March (3)</a></li>
1026
1027 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/04/">April (3)</a></li>
1028
1029 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/05/">May (9)</a></li>
1030
1031 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/06/">June (14)</a></li>
1032
1033 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/07/">July (12)</a></li>
1034
1035 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/08/">August (13)</a></li>
1036
1037 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/09/">September (7)</a></li>
1038
1039 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/10/">October (9)</a></li>
1040
1041 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/11/">November (13)</a></li>
1042
1043 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/12/">December (12)</a></li>
1044
1045 </ul></li>
1046
1047 <li>2009
1048 <ul>
1049
1050 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/01/">January (8)</a></li>
1051
1052 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/02/">February (8)</a></li>
1053
1054 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/03/">March (12)</a></li>
1055
1056 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/04/">April (10)</a></li>
1057
1058 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/05/">May (9)</a></li>
1059
1060 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/06/">June (3)</a></li>
1061
1062 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/07/">July (4)</a></li>
1063
1064 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/08/">August (3)</a></li>
1065
1066 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/09/">September (1)</a></li>
1067
1068 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/10/">October (2)</a></li>
1069
1070 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/11/">November (3)</a></li>
1071
1072 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/12/">December (3)</a></li>
1073
1074 </ul></li>
1075
1076 <li>2008
1077 <ul>
1078
1079 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/11/">November (5)</a></li>
1080
1081 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/12/">December (7)</a></li>
1082
1083 </ul></li>
1084
1085 </ul>
1086
1087
1088
1089 <h2>Tags</h2>
1090 <ul>
1091
1092 <li><a href="http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (13)</a></li>
1093
1094 <li><a href="http://people.skolelinux.org/pere/blog/tags/amiga">amiga (1)</a></li>
1095
1096 <li><a href="http://people.skolelinux.org/pere/blog/tags/aros">aros (1)</a></li>
1097
1098 <li><a href="http://people.skolelinux.org/pere/blog/tags/bankid">bankid (4)</a></li>
1099
1100 <li><a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (9)</a></li>
1101
1102 <li><a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (16)</a></li>
1103
1104 <li><a href="http://people.skolelinux.org/pere/blog/tags/bsa">bsa (2)</a></li>
1105
1106 <li><a href="http://people.skolelinux.org/pere/blog/tags/chrpath">chrpath (2)</a></li>
1107
1108 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian">debian (146)</a></li>
1109
1110 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (158)</a></li>
1111
1112 <li><a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan (10)</a></li>
1113
1114 <li><a href="http://people.skolelinux.org/pere/blog/tags/dld">dld (16)</a></li>
1115
1116 <li><a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook (23)</a></li>
1117
1118 <li><a href="http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
1119
1120 <li><a href="http://people.skolelinux.org/pere/blog/tags/english">english (342)</a></li>
1121
1122 <li><a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (23)</a></li>
1123
1124 <li><a href="http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (12)</a></li>
1125
1126 <li><a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (29)</a></li>
1127
1128 <li><a href="http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox (9)</a></li>
1129
1130 <li><a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (18)</a></li>
1131
1132 <li><a href="http://people.skolelinux.org/pere/blog/tags/h264">h264 (20)</a></li>
1133
1134 <li><a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju (42)</a></li>
1135
1136 <li><a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram (15)</a></li>
1137
1138 <li><a href="http://people.skolelinux.org/pere/blog/tags/kart">kart (20)</a></li>
1139
1140 <li><a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap (9)</a></li>
1141
1142 <li><a href="http://people.skolelinux.org/pere/blog/tags/lenker">lenker (8)</a></li>
1143
1144 <li><a href="http://people.skolelinux.org/pere/blog/tags/lsdvd">lsdvd (2)</a></li>
1145
1146 <li><a href="http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (1)</a></li>
1147
1148 <li><a href="http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network (8)</a></li>
1149
1150 <li><a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (39)</a></li>
1151
1152 <li><a href="http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software (9)</a></li>
1153
1154 <li><a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk (287)</a></li>
1155
1156 <li><a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug (187)</a></li>
1157
1158 <li><a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (28)</a></li>
1159
1160 <li><a href="http://people.skolelinux.org/pere/blog/tags/open311">open311 (2)</a></li>
1161
1162 <li><a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (64)</a></li>
1163
1164 <li><a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern (99)</a></li>
1165
1166 <li><a href="http://people.skolelinux.org/pere/blog/tags/raid">raid (1)</a></li>
1167
1168 <li><a href="http://people.skolelinux.org/pere/blog/tags/reactos">reactos (1)</a></li>
1169
1170 <li><a href="http://people.skolelinux.org/pere/blog/tags/reprap">reprap (11)</a></li>
1171
1172 <li><a href="http://people.skolelinux.org/pere/blog/tags/rfid">rfid (3)</a></li>
1173
1174 <li><a href="http://people.skolelinux.org/pere/blog/tags/robot">robot (10)</a></li>
1175
1176 <li><a href="http://people.skolelinux.org/pere/blog/tags/rss">rss (1)</a></li>
1177
1178 <li><a href="http://people.skolelinux.org/pere/blog/tags/ruter">ruter (5)</a></li>
1179
1180 <li><a href="http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (2)</a></li>
1181
1182 <li><a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (52)</a></li>
1183
1184 <li><a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (4)</a></li>
1185
1186 <li><a href="http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (5)</a></li>
1187
1188 <li><a href="http://people.skolelinux.org/pere/blog/tags/standard">standard (51)</a></li>
1189
1190 <li><a href="http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (5)</a></li>
1191
1192 <li><a href="http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (11)</a></li>
1193
1194 <li><a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (47)</a></li>
1195
1196 <li><a href="http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (2)</a></li>
1197
1198 <li><a href="http://people.skolelinux.org/pere/blog/tags/usenix">usenix (2)</a></li>
1199
1200 <li><a href="http://people.skolelinux.org/pere/blog/tags/valg">valg (8)</a></li>
1201
1202 <li><a href="http://people.skolelinux.org/pere/blog/tags/video">video (59)</a></li>
1203
1204 <li><a href="http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (4)</a></li>
1205
1206 <li><a href="http://people.skolelinux.org/pere/blog/tags/web">web (40)</a></li>
1207
1208 </ul>
1209
1210
1211 </div>
1212 <p style="text-align: right">
1213 Created by <a href="http://steve.org.uk/Software/chronicle">Chronicle v4.6</a>
1214 </p>
1215
1216 </body>
1217 </html>