]> pere.pagekite.me Git - homepage.git/blob - blog/archive/2017/01/index.html
Add forgotten english tag.
[homepage.git] / blog / archive / 2017 / 01 / 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: entries from January 2017</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="01.rss" type="application/rss+xml" />
10 </head>
11 <body>
12 <!-- XML FEED -->
13 <div class="title">
14 <h1>
15 <a href="http://people.skolelinux.org/pere/blog/">Petter Reinholdtsen</a>
16
17 </h1>
18
19 </div>
20
21
22 <h3>Entries from January 2017.</h3>
23
24 <div class="entry">
25 <div class="title">
26 <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>
27 </div>
28 <div class="date">
29 9th January 2017
30 </div>
31 <div class="body">
32 <p>Did you ever wonder where the web trafic really flow to reach the
33 web servers, and who own the network equipment it is flowing through?
34 It is possible to get a glimpse of this from using traceroute, but it
35 is hard to find all the details. Many years ago, I wrote a system to
36 map the Norwegian Internet (trying to figure out if our plans for a
37 network game service would get low enough latency, and who we needed
38 to talk to about setting up game servers close to the users. Back
39 then I used traceroute output from many locations (I asked my friends
40 to run a script and send me their traceroute output) to create the
41 graph and the map. The output from traceroute typically look like
42 this:
43
44 <p><pre>
45 traceroute to www.stortinget.no (85.88.67.10), 30 hops max, 60 byte packets
46 1 uio-gw10.uio.no (129.240.202.1) 0.447 ms 0.486 ms 0.621 ms
47 2 uio-gw8.uio.no (129.240.24.229) 0.467 ms 0.578 ms 0.675 ms
48 3 oslo-gw1.uninett.no (128.39.65.17) 0.385 ms 0.373 ms 0.358 ms
49 4 te3-1-2.br1.fn3.as2116.net (193.156.90.3) 1.174 ms 1.172 ms 1.153 ms
50 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
51 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
52 7 89.191.10.146 (89.191.10.146) 0.931 ms 0.917 ms 0.955 ms
53 8 * * *
54 9 * * *
55 [...]
56 </pre></p>
57
58 <p>This show the DNS names and IP addresses of (at least some of the)
59 network equipment involved in getting the data traffic from me to the
60 www.stortinget.no server, and how long it took in milliseconds for a
61 package to reach the equipment and return to me. Three packages are
62 sent, and some times the packages do not follow the same path. This
63 is shown for hop 5, where three different IP addresses replied to the
64 traceroute request.</p>
65
66 <p>There are many ways to measure trace routes. Other good traceroute
67 implementations I use are traceroute (using ICMP packages) mtr (can do
68 both ICMP, UDP and TCP) and scapy (python library with ICMP, UDP, TCP
69 traceroute and a lot of other capabilities). All of them are easily
70 available in <a href="https://www.debian.org/">Debian</a>.</p>
71
72 <p>This time around, I wanted to know the geographic location of
73 different route points, to visualize how visiting a web page spread
74 information about the visit to a lot of servers around the globe. The
75 background is that a web site today often will ask the browser to get
76 from many servers the parts (for example HTML, JSON, fonts,
77 JavaScript, CSS, video) required to display the content. This will
78 leak information about the visit to those controlling these servers
79 and anyone able to peek at the data traffic passing by (like your ISP,
80 the ISPs backbone provider, FRA, GCHQ, NSA and others).</p>
81
82 <p>Lets pick an example, the Norwegian parliament web site
83 www.stortinget.no. It is read daily by all members of parliament and
84 their staff, as well as political journalists, activits and many other
85 citizens of Norway. A visit to the www.stortinget.no web site will
86 ask your browser to contact 8 other servers: ajax.googleapis.com,
87 insights.hotjar.com, script.hotjar.com, static.hotjar.com,
88 stats.g.doubleclick.net, www.google-analytics.com,
89 www.googletagmanager.com and www.netigate.se. I extracted this by
90 asking <a href="http://phantomjs.org/">PhantomJS</a> to visit the
91 Stortinget web page and tell me all the URLs PhantomJS downloaded to
92 render the page (in HAR format using
93 <a href="https://github.com/ariya/phantomjs/blob/master/examples/netsniff.js">their
94 netsniff example</a>. I am very grateful to Gorm for showing me how
95 to do this). My goal is to visualize network traces to all IP
96 addresses behind these DNS names, do show where visitors personal
97 information is spread when visiting the page.</p>
98
99 <p align="center"><a href="www.stortinget.no-geoip.kml"><img
100 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>
101
102 <p>When I had a look around for options, I could not find any good
103 free software tools to do this, and decided I needed my own traceroute
104 wrapper outputting KML based on locations looked up using GeoIP. KML
105 is easy to work with and easy to generate, and understood by several
106 of the GIS tools I have available. I got good help from by NUUG
107 colleague Anders Einar with this, and the result can be seen in
108 <a href="https://github.com/petterreinholdtsen/kmltraceroute">my
109 kmltraceroute git repository</a>. Unfortunately, the quality of the
110 free GeoIP databases I could find (and the for-pay databases my
111 friends had access to) is not up to the task. The IP addresses of
112 central Internet infrastructure would typically be placed near the
113 controlling companies main office, and not where the router is really
114 located, as you can see from <a href="www.stortinget.no-geoip.kml">the
115 KML file I created</a> using the GeoLite City dataset from MaxMind.
116
117 <p align="center"><a href="http://people.skolelinux.org/pere/blog/images/2017-01-09-www.stortinget.no-scapy.svg"><img
118 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>
119
120 <p>I also had a look at the visual traceroute graph created by
121 <a href="http://www.secdev.org/projects/scapy/">the scrapy project</a>,
122 showing IP network ownership (aka AS owner) for the IP address in
123 question.
124 <a href="http://people.skolelinux.org/pere/blog/images/2017-01-09-www.stortinget.no-scapy.svg">The
125 graph display a lot of useful information about the traceroute in SVG
126 format</a>, and give a good indication on who control the network
127 equipment involved, but it do not include geolocation. This graph
128 make it possible to see the information is made available at least for
129 UNINETT, Catchcom, Stortinget, Nordunet, Google, Amazon, Telia, Level
130 3 Communications and NetDNA.</p>
131
132 <p align="center"><a href="https://geotraceroute.com/index.php?node=4&host=www.stortinget.no"><img
133 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>
134
135 <p>In the process, I came across the
136 <a href="https://geotraceroute.com/">web service GeoTraceroute</a> by
137 Salim Gasmi. Its methology of combining guesses based on DNS names,
138 various location databases and finally use latecy times to rule out
139 candidate locations seemed to do a very good job of guessing correct
140 geolocation. But it could only do one trace at the time, did not have
141 a sensor in Norway and did not make the geolocations easily available
142 for postprocessing. So I contacted the developer and asked if he
143 would be willing to share the code (he refused until he had time to
144 clean it up), but he was interested in providing the geolocations in a
145 machine readable format, and willing to set up a sensor in Norway. So
146 since yesterday, it is possible to run traces from Norway in this
147 service thanks to a sensor node set up by
148 <a href="https://www.nuug.no/">the NUUG assosiation</a>, and get the
149 trace in KML format for further processing.</p>
150
151 <p align="center"><a href="http://people.skolelinux.org/pere/blog/images/2017-01-09-www.stortinget.no-geotraceroute-kml-join.kml"><img
152 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>
153
154 <p>Here we can see a lot of trafic passes Sweden on its way to
155 Denmark, Germany, Holland and Ireland. Plenty of places where the
156 Snowden confirmations verified the traffic is read by various actors
157 without your best interest as their top priority.</p>
158
159 <p>Combining KML files is trivial using a text editor, so I could loop
160 over all the hosts behind the urls imported by www.stortinget.no and
161 ask for the KML file from GeoTraceroute, and create a combined KML
162 file with all the traces (unfortunately only one of the IP addresses
163 behind the DNS name is traced this time. To get them all, one would
164 have to request traces using IP number instead of DNS names from
165 GeoTraceroute). That might be the next step in this project.</p>
166
167 <p>Armed with these tools, I find it a lot easier to figure out where
168 the IP traffic moves and who control the boxes involved in moving it.
169 And every time the link crosses for example the Swedish border, we can
170 be sure Swedish Signal Intelligence (FRA) is listening, as GCHQ do in
171 Britain and NSA in USA and cables around the globe. (Hm, what should
172 we tell them? :) Keep that in mind if you ever send anything
173 unencrypted over the Internet.</p>
174
175 <p>PS: KML files are drawn using
176 <a href="http://ivanrublev.me/kml/">the KML viewer from Ivan
177 Rublev<a/>, as it was less cluttered than the local Linux application
178 Marble. There are heaps of other options too.</p>
179
180 <p>As usual, if you use Bitcoin and want to show your support of my
181 activities, please send Bitcoin donations to my address
182 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&label=PetterReinholdtsenBlog">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
183
184 </div>
185 <div class="tags">
186
187
188 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</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>.
189
190
191 </div>
192 </div>
193 <div class="padding"></div>
194
195 <div class="entry">
196 <div class="title">
197 <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>
198 </div>
199 <div class="date">
200 4th January 2017
201 </div>
202 <div class="body">
203 <p>Do you have a large <a href="https://icalendar.org/">iCalendar</a>
204 file with lots of old entries, and would like to archive them to save
205 space and resources? At least those of us using KOrganizer know that
206 turning on and off an event set become slower and slower the more
207 entries are in the set. While working on migrating our calendars to a
208 <a href="http://radicale.org/">Radicale CalDAV server</a> on our
209 <a href="https://freedomboxfoundation.org/">Freedombox server</a/>, my
210 loved one wondered if I could find a way to split up the calendar file
211 she had in KOrganizer, and I set out to write a tool. I spent a few
212 days writing and polishing the system, and it is now ready for general
213 consumption. The
214 <a href="https://github.com/petterreinholdtsen/ical-archiver">code for
215 ical-archiver</a> is publicly available from a git repository on
216 github. The system is written in Python and depend on
217 <a href="http://eventable.github.io/vobject/">the vobject Python
218 module</a>.</p>
219
220 <p>To use it, locate the iCalendar file you want to operate on and
221 give it as an argument to the ical-archiver script. This will
222 generate a set of new files, one file per component type per year for
223 all components expiring more than two years in the past. The vevent,
224 vtodo and vjournal entries are handled by the script. The remaining
225 entries are stored in a 'remaining' file.</p>
226
227 <p>This is what a test run can look like:
228
229 <p><pre>
230 % ical-archiver t/2004-2016.ics
231 Found 3612 vevents
232 Found 6 vtodos
233 Found 2 vjournals
234 Writing t/2004-2016.ics-subset-vevent-2004.ics
235 Writing t/2004-2016.ics-subset-vevent-2005.ics
236 Writing t/2004-2016.ics-subset-vevent-2006.ics
237 Writing t/2004-2016.ics-subset-vevent-2007.ics
238 Writing t/2004-2016.ics-subset-vevent-2008.ics
239 Writing t/2004-2016.ics-subset-vevent-2009.ics
240 Writing t/2004-2016.ics-subset-vevent-2010.ics
241 Writing t/2004-2016.ics-subset-vevent-2011.ics
242 Writing t/2004-2016.ics-subset-vevent-2012.ics
243 Writing t/2004-2016.ics-subset-vevent-2013.ics
244 Writing t/2004-2016.ics-subset-vevent-2014.ics
245 Writing t/2004-2016.ics-subset-vjournal-2007.ics
246 Writing t/2004-2016.ics-subset-vjournal-2011.ics
247 Writing t/2004-2016.ics-subset-vtodo-2012.ics
248 Writing t/2004-2016.ics-remaining.ics
249 %
250 </pre></p>
251
252 <p>As you can see, the original file is untouched and new files are
253 written with names derived from the original file. If you are happy
254 with their content, the *-remaining.ics file can replace the original
255 the the others can be archived or imported as historical calendar
256 collections.</p>
257
258 <p>The script should probably be improved a bit. The error handling
259 when discovering broken entries is not good, and I am not sure yet if
260 it make sense to split different entry types into separate files or
261 not. The program is thus likely to change. If you find it
262 interesting, please get in touch. :)</p>
263
264 <p>As usual, if you use Bitcoin and want to show your support of my
265 activities, please send Bitcoin donations to my address
266 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&label=PetterReinholdtsenBlog">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
267
268 </div>
269 <div class="tags">
270
271
272 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>.
273
274
275 </div>
276 </div>
277 <div class="padding"></div>
278
279 <p style="text-align: right;"><a href="01.rss"><img src="http://people.skolelinux.org/pere/blog/xml.gif" alt="RSS Feed" width="36" height="14" /></a></p>
280 <div id="sidebar">
281
282
283
284 <h2>Archive</h2>
285 <ul>
286
287 <li>2017
288 <ul>
289
290 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/01/">January (2)</a></li>
291
292 </ul></li>
293
294 <li>2016
295 <ul>
296
297 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/01/">January (3)</a></li>
298
299 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/02/">February (2)</a></li>
300
301 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/03/">March (3)</a></li>
302
303 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/04/">April (8)</a></li>
304
305 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/05/">May (8)</a></li>
306
307 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/06/">June (2)</a></li>
308
309 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/07/">July (2)</a></li>
310
311 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/08/">August (5)</a></li>
312
313 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/09/">September (2)</a></li>
314
315 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/10/">October (3)</a></li>
316
317 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/11/">November (8)</a></li>
318
319 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/12/">December (5)</a></li>
320
321 </ul></li>
322
323 <li>2015
324 <ul>
325
326 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/01/">January (7)</a></li>
327
328 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/02/">February (6)</a></li>
329
330 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/03/">March (1)</a></li>
331
332 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/04/">April (4)</a></li>
333
334 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/05/">May (3)</a></li>
335
336 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/06/">June (4)</a></li>
337
338 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/07/">July (6)</a></li>
339
340 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/08/">August (2)</a></li>
341
342 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/09/">September (2)</a></li>
343
344 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/10/">October (9)</a></li>
345
346 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/11/">November (6)</a></li>
347
348 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/12/">December (3)</a></li>
349
350 </ul></li>
351
352 <li>2014
353 <ul>
354
355 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/01/">January (2)</a></li>
356
357 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/02/">February (3)</a></li>
358
359 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/03/">March (8)</a></li>
360
361 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/04/">April (7)</a></li>
362
363 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/05/">May (1)</a></li>
364
365 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/06/">June (2)</a></li>
366
367 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/07/">July (2)</a></li>
368
369 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/08/">August (2)</a></li>
370
371 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/09/">September (5)</a></li>
372
373 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/10/">October (6)</a></li>
374
375 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/11/">November (3)</a></li>
376
377 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/12/">December (5)</a></li>
378
379 </ul></li>
380
381 <li>2013
382 <ul>
383
384 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/01/">January (11)</a></li>
385
386 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/02/">February (9)</a></li>
387
388 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/03/">March (9)</a></li>
389
390 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/04/">April (6)</a></li>
391
392 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/05/">May (9)</a></li>
393
394 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/06/">June (10)</a></li>
395
396 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/07/">July (7)</a></li>
397
398 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/08/">August (3)</a></li>
399
400 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/09/">September (5)</a></li>
401
402 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/10/">October (7)</a></li>
403
404 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/11/">November (9)</a></li>
405
406 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/12/">December (3)</a></li>
407
408 </ul></li>
409
410 <li>2012
411 <ul>
412
413 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/01/">January (7)</a></li>
414
415 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/02/">February (10)</a></li>
416
417 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/03/">March (17)</a></li>
418
419 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/04/">April (12)</a></li>
420
421 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/05/">May (12)</a></li>
422
423 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/06/">June (20)</a></li>
424
425 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/07/">July (17)</a></li>
426
427 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/08/">August (6)</a></li>
428
429 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/09/">September (9)</a></li>
430
431 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/10/">October (17)</a></li>
432
433 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/11/">November (10)</a></li>
434
435 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/12/">December (7)</a></li>
436
437 </ul></li>
438
439 <li>2011
440 <ul>
441
442 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/01/">January (16)</a></li>
443
444 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/02/">February (6)</a></li>
445
446 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/03/">March (6)</a></li>
447
448 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/04/">April (7)</a></li>
449
450 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/05/">May (3)</a></li>
451
452 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/06/">June (2)</a></li>
453
454 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/07/">July (7)</a></li>
455
456 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/08/">August (6)</a></li>
457
458 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/09/">September (4)</a></li>
459
460 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/10/">October (2)</a></li>
461
462 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/11/">November (3)</a></li>
463
464 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/12/">December (1)</a></li>
465
466 </ul></li>
467
468 <li>2010
469 <ul>
470
471 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/01/">January (2)</a></li>
472
473 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/02/">February (1)</a></li>
474
475 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/03/">March (3)</a></li>
476
477 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/04/">April (3)</a></li>
478
479 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/05/">May (9)</a></li>
480
481 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/06/">June (14)</a></li>
482
483 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/07/">July (12)</a></li>
484
485 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/08/">August (13)</a></li>
486
487 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/09/">September (7)</a></li>
488
489 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/10/">October (9)</a></li>
490
491 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/11/">November (13)</a></li>
492
493 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/12/">December (12)</a></li>
494
495 </ul></li>
496
497 <li>2009
498 <ul>
499
500 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/01/">January (8)</a></li>
501
502 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/02/">February (8)</a></li>
503
504 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/03/">March (12)</a></li>
505
506 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/04/">April (10)</a></li>
507
508 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/05/">May (9)</a></li>
509
510 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/06/">June (3)</a></li>
511
512 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/07/">July (4)</a></li>
513
514 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/08/">August (3)</a></li>
515
516 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/09/">September (1)</a></li>
517
518 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/10/">October (2)</a></li>
519
520 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/11/">November (3)</a></li>
521
522 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/12/">December (3)</a></li>
523
524 </ul></li>
525
526 <li>2008
527 <ul>
528
529 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/11/">November (5)</a></li>
530
531 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/12/">December (7)</a></li>
532
533 </ul></li>
534
535 </ul>
536
537
538
539 <h2>Tags</h2>
540 <ul>
541
542 <li><a href="http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (13)</a></li>
543
544 <li><a href="http://people.skolelinux.org/pere/blog/tags/amiga">amiga (1)</a></li>
545
546 <li><a href="http://people.skolelinux.org/pere/blog/tags/aros">aros (1)</a></li>
547
548 <li><a href="http://people.skolelinux.org/pere/blog/tags/bankid">bankid (4)</a></li>
549
550 <li><a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (9)</a></li>
551
552 <li><a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (16)</a></li>
553
554 <li><a href="http://people.skolelinux.org/pere/blog/tags/bsa">bsa (2)</a></li>
555
556 <li><a href="http://people.skolelinux.org/pere/blog/tags/chrpath">chrpath (2)</a></li>
557
558 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian">debian (145)</a></li>
559
560 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (158)</a></li>
561
562 <li><a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan (10)</a></li>
563
564 <li><a href="http://people.skolelinux.org/pere/blog/tags/dld">dld (16)</a></li>
565
566 <li><a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook (23)</a></li>
567
568 <li><a href="http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
569
570 <li><a href="http://people.skolelinux.org/pere/blog/tags/english">english (337)</a></li>
571
572 <li><a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (23)</a></li>
573
574 <li><a href="http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (12)</a></li>
575
576 <li><a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (29)</a></li>
577
578 <li><a href="http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox (9)</a></li>
579
580 <li><a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (18)</a></li>
581
582 <li><a href="http://people.skolelinux.org/pere/blog/tags/h264">h264 (20)</a></li>
583
584 <li><a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju (42)</a></li>
585
586 <li><a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram (15)</a></li>
587
588 <li><a href="http://people.skolelinux.org/pere/blog/tags/kart">kart (20)</a></li>
589
590 <li><a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap (9)</a></li>
591
592 <li><a href="http://people.skolelinux.org/pere/blog/tags/lenker">lenker (8)</a></li>
593
594 <li><a href="http://people.skolelinux.org/pere/blog/tags/lsdvd">lsdvd (2)</a></li>
595
596 <li><a href="http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (1)</a></li>
597
598 <li><a href="http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network (8)</a></li>
599
600 <li><a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (39)</a></li>
601
602 <li><a href="http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software (9)</a></li>
603
604 <li><a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk (285)</a></li>
605
606 <li><a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug (183)</a></li>
607
608 <li><a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (26)</a></li>
609
610 <li><a href="http://people.skolelinux.org/pere/blog/tags/open311">open311 (2)</a></li>
611
612 <li><a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (62)</a></li>
613
614 <li><a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern (97)</a></li>
615
616 <li><a href="http://people.skolelinux.org/pere/blog/tags/raid">raid (1)</a></li>
617
618 <li><a href="http://people.skolelinux.org/pere/blog/tags/reactos">reactos (1)</a></li>
619
620 <li><a href="http://people.skolelinux.org/pere/blog/tags/reprap">reprap (11)</a></li>
621
622 <li><a href="http://people.skolelinux.org/pere/blog/tags/rfid">rfid (3)</a></li>
623
624 <li><a href="http://people.skolelinux.org/pere/blog/tags/robot">robot (10)</a></li>
625
626 <li><a href="http://people.skolelinux.org/pere/blog/tags/rss">rss (1)</a></li>
627
628 <li><a href="http://people.skolelinux.org/pere/blog/tags/ruter">ruter (5)</a></li>
629
630 <li><a href="http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (2)</a></li>
631
632 <li><a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (52)</a></li>
633
634 <li><a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (4)</a></li>
635
636 <li><a href="http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (5)</a></li>
637
638 <li><a href="http://people.skolelinux.org/pere/blog/tags/standard">standard (50)</a></li>
639
640 <li><a href="http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (5)</a></li>
641
642 <li><a href="http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (11)</a></li>
643
644 <li><a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (45)</a></li>
645
646 <li><a href="http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (2)</a></li>
647
648 <li><a href="http://people.skolelinux.org/pere/blog/tags/usenix">usenix (2)</a></li>
649
650 <li><a href="http://people.skolelinux.org/pere/blog/tags/valg">valg (8)</a></li>
651
652 <li><a href="http://people.skolelinux.org/pere/blog/tags/video">video (59)</a></li>
653
654 <li><a href="http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (4)</a></li>
655
656 <li><a href="http://people.skolelinux.org/pere/blog/tags/web">web (39)</a></li>
657
658 </ul>
659
660
661 </div>
662 <p style="text-align: right">
663 Created by <a href="http://steve.org.uk/Software/chronicle">Chronicle v4.6</a>
664 </p>
665
666 </body>
667 </html>