]> pere.pagekite.me Git - homepage.git/blob - blog/archive/2018/07/index.html
Typo.
[homepage.git] / blog / archive / 2018 / 07 / 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 July 2018</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="07.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 July 2018.</h3>
23
24 <div class="entry">
25 <div class="title">
26 <a href="http://people.skolelinux.org/pere/blog/Streaming_the_Linux_desktop_to_Kodi_using_VLC_and_RTSP.html">Streaming the Linux desktop to Kodi using VLC and RTSP</a>
27 </div>
28 <div class="date">
29 12th July 2018
30 </div>
31 <div class="body">
32 <p>A while back, I was asked by a friend how to stream the desktop to
33 my projector connected to Kodi. I sadly had to admit that I had no
34 idea, as it was a task I never had tried. Since then, I have been
35 looking for a way to do so, preferable without much extra software to
36 install on either side. Today I found a way that seem to kind of
37 work. Not great, but it is a start.</p>
38
39 <p>I had a look at several approaches, for example
40 <a href="https://github.com/mfoetsch/dlna_live_streaming">using uPnP
41 DLNA as described in 2011</a>, but it required a uPnP server, fuse and
42 local storage enough to store the stream locally. This is not going
43 to work well for me, lacking enough free space, and it would
44 impossible for my friend to get working.</p>
45
46 <p>Next, it occurred to me that perhaps I could use VLC to create a
47 video stream that Kodi could play. Preferably using
48 broadcast/multicast, to avoid having to change any setup on the Kodi
49 side when starting such stream. Unfortunately, the only recipe I
50 could find using multicast used the rtp protocol, and this protocol
51 seem to not be supported by Kodi.</p>
52
53 <p>On the other hand, the rtsp protocol is working! Unfortunately I
54 have to specify the IP address of the streaming machine in both the
55 sending command and the file on the Kodi server. But it is showing my
56 desktop, and thus allow us to have a shared look on the big screen at
57 the programs I work on.</p>
58
59 <p>I did not spend much time investigating codeces. I combined the
60 rtp and rtsp recipes from
61 <a href="https://wiki.videolan.org/Documentation:Streaming_HowTo/Command_Line_Examples/">the
62 VLC Streaming HowTo/Command Line Examples</a>, and was able to get
63 this working on the desktop/streaming end.</p>
64
65 <blockquote><pre>
66 vlc screen:// --sout \
67 '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128}:rtp{dst=projector.local,port=1234,sdp=rtsp://192.168.11.4:8080/test.sdp}'
68 </pre></blockquote>
69
70 <p>I ssh-ed into my Kodi box and created a file like this with the
71 same IP address:</p>
72
73 <blockquote><pre>
74 echo rtsp://192.168.11.4:8080/test.sdp \
75 > /storage/videos/screenstream.m3u
76 </pre></blockquote>
77
78 <p>Note the 192.168.11.4 IP address is my desktops IP address. As far
79 as I can tell the IP must be hardcoded for this to work. In other
80 words, if someone elses machine is going to do the steaming, you have
81 to update screenstream.m4u on the Kodi machine and adjust the vlc
82 recipe. To get started, locate the file in Kodi and select the m3u
83 file while the VLC stream is running. The desktop then show up in my
84 big screen. :)</p>
85
86 <p>When using the same technique to stream a video file with audio,
87 the audio quality is really bad. No idea if the problem is package
88 loss or bad parameters for the transcode. I do not know VLC nor Kodi
89 enough to tell.</p>
90
91 <p><strong>Update 2018-07-12</strong>: Johannes Schauer send me a few
92 succestions and reminded me about an important step. The "screen:"
93 input source is only available once the vlc-plugin-access-extra
94 package is installed on Debian. Without it, you will see this error
95 message: "VLC is unable to open the MRL 'screen://'. Check the log
96 for details." He further found that it is possible to drop some parts
97 of the VLC command line to reduce the amount of hardcoded information.
98 It is also useful to consider using cvlc to avoid having the VLC
99 window in the desktop view. In sum, this give us this command line on
100 the source end
101
102 <blockquote><pre>
103 cvlc screen:// --sout \
104 '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128}:rtp{sdp=rtsp://:8080/}'
105 </pre></blockquote>
106
107 <p>and this on the Kodi end<p>
108
109 <blockquote><pre>
110 echo rtsp://192.168.11.4:8080/ \
111 > /storage/videos/screenstream.m3u
112 </pre></blockquote>
113
114 <p>Still bad image quality, though. But I did discover that streaming
115 a DVD using dvdsimple:///dev/dvd as the source had excellent video and
116 audio quality, so I guess the issue is in the input or transcoding
117 parts, not the rtsp part. I've tried to change the vb and ab
118 parameters to use more bandwidth, but it did not make a
119 difference.</p>
120
121 <p>I further received a suggestion from Einar Haraldseid to try using
122 gstreamer instead of VLC, and this proved to work great! He also
123 provided me with the trick to get Kodi to use a multicast stream as
124 its source. By using this monstrous oneliner, I can stream my desktop
125 with good video quality in reasonable framerate to the 239.255.0.1
126 multicast address on port 1234:
127
128 <blockquote><pre>
129 gst-launch-1.0 ximagesrc use-damage=0 ! video/x-raw,framerate=30/1 ! \
130 videoconvert ! queue2 ! \
131 x264enc bitrate=8000 speed-preset=superfast tune=zerolatency qp-min=30 \
132 key-int-max=15 bframes=2 ! video/x-h264,profile=high ! queue2 ! \
133 mpegtsmux alignment=7 name=mux ! rndbuffersize max=1316 min=1316 ! \
134 udpsink host=239.255.0.1 port=1234 ttl-mc=0 auto-multicast=1 sync=0 \
135 pulsesrc device=$(pactl list | grep -A2 'Source #' | \
136 grep 'Name: .*\.monitor$' | cut -d" " -f2|head -1) ! \
137 audioconvert ! queue2 ! avenc_aac ! queue2 ! mux.
138 </pre></blockquote>
139
140 <p>and this on the Kodi end<p>
141
142 <blockquote><pre>
143 echo udp://@239.255.0.1:1234 \
144 > /storage/videos/screenstream.m3u
145 </pre></blockquote>
146
147 <p>Note the trick to pick a valid pulseaudio source. It might not
148 pick the one you need. This approach will of course lead to trouble
149 if more than one source uses the same multicast port and address.
150 Note the ttl-mc=0 setting, which limit the multicast packages to the
151 local network. If the value is increased, your screen will be
152 broadcasted further, one network "hop" for each increase (read up on
153 multicast to learn more. :)!</p>
154
155 <p>Having cracked how to get Kodi to receive multicast streams, I
156 could use this VLC command to stream to the same multicast address.
157 The image quality is way better than the rtsp approach.</p>
158
159 <blockquote><pre>
160 cvlc screen:// --sout '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128}:rtp{mux=ts,dst=239.255.0.1,port=1234,sdp=sap}'
161 </pre></blockquote>
162
163 <p>As usual, if you use Bitcoin and want to show your support of my
164 activities, please send Bitcoin donations to my address
165 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
166
167 </div>
168 <div class="tags">
169
170
171 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/video">video</a>.
172
173
174 </div>
175 </div>
176 <div class="padding"></div>
177
178 <div class="entry">
179 <div class="title">
180 <a href="http://people.skolelinux.org/pere/blog/What_is_the_most_supported_MIME_type_in_Debian_in_2018_.html">What is the most supported MIME type in Debian in 2018?</a>
181 </div>
182 <div class="date">
183 9th July 2018
184 </div>
185 <div class="body">
186 <p>Five years ago,
187 <a href="http://people.skolelinux.org/pere/blog/What_is_the_most_supported_MIME_type_in_Debian_.html">I
188 measured what the most supported MIME type in Debian was</a>, by
189 analysing the desktop files in all packages in the archive. Since
190 then, the DEP-11 AppStream system has been put into production, making
191 the task a lot easier. This made me want to repeat the measurement,
192 to see how much things changed. Here are the new numbers, for
193 unstable only this time:
194
195 <p><strong>Debian Unstable:</strong></p>
196
197 <pre>
198 count MIME type
199 ----- -----------------------
200 56 image/jpeg
201 55 image/png
202 49 image/tiff
203 48 image/gif
204 39 image/bmp
205 38 text/plain
206 37 audio/mpeg
207 34 application/ogg
208 33 audio/x-flac
209 32 audio/x-mp3
210 30 audio/x-wav
211 30 audio/x-vorbis+ogg
212 29 image/x-portable-pixmap
213 27 inode/directory
214 27 image/x-portable-bitmap
215 27 audio/x-mpeg
216 26 application/x-ogg
217 25 audio/x-mpegurl
218 25 audio/ogg
219 24 text/html
220 </pre>
221
222 <p>The list was created like this using a sid chroot: "cat
223 /var/lib/apt/lists/*sid*_dep11_Components-amd64.yml.gz| zcat | awk '/^
224 - \S+\/\S+$/ {print $2 }' | sort | uniq -c | sort -nr | head -20"</p>
225
226 <p>It is interesting to see how image formats have passed text/plain
227 as the most announced supported MIME type. These days, thanks to the
228 AppStream system, if you run into a file format you do not know, and
229 want to figure out which packages support the format, you can find the
230 MIME type of the file using "file --mime &lt;filename&gt;", and then
231 look up all packages announcing support for this format in their
232 AppStream metadata (XML or .desktop file) using "appstreamcli
233 what-provides mimetype &lt;mime-type&gt;. For example if you, like
234 me, want to know which packages support inode/directory, you can get a
235 list like this:</p>
236
237 <p><blockquote><pre>
238 % appstreamcli what-provides mimetype inode/directory | grep Package: | sort
239 Package: anjuta
240 Package: audacious
241 Package: baobab
242 Package: cervisia
243 Package: chirp
244 Package: dolphin
245 Package: doublecmd-common
246 Package: easytag
247 Package: enlightenment
248 Package: ephoto
249 Package: filelight
250 Package: gwenview
251 Package: k4dirstat
252 Package: kaffeine
253 Package: kdesvn
254 Package: kid3
255 Package: kid3-qt
256 Package: nautilus
257 Package: nemo
258 Package: pcmanfm
259 Package: pcmanfm-qt
260 Package: qweborf
261 Package: ranger
262 Package: sirikali
263 Package: spacefm
264 Package: spacefm
265 Package: vifm
266 %
267 </pre></blockquote></p>
268
269 <p>Using the same method, I can quickly discover that the Sketchup file
270 format is not yet supported by any package in Debian:</p>
271
272 <p><blockquote><pre>
273 % appstreamcli what-provides mimetype application/vnd.sketchup.skp
274 Could not find component providing 'mimetype::application/vnd.sketchup.skp'.
275 %
276 </pre></blockquote></p>
277
278 <p>Yesterday I used it to figure out which packages support the STL 3D
279 format:</p>
280
281 <p><blockquote><pre>
282 % appstreamcli what-provides mimetype application/sla|grep Package
283 Package: cura
284 Package: meshlab
285 Package: printrun
286 %
287 </pre></blockquote></p>
288
289 <p>PS: A new version of Cura was uploaded to Debian yesterday.</p>
290
291 <p>As usual, if you use Bitcoin and want to show your support of my
292 activities, please send Bitcoin donations to my address
293 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
294
295 </div>
296 <div class="tags">
297
298
299 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>.
300
301
302 </div>
303 </div>
304 <div class="padding"></div>
305
306 <div class="entry">
307 <div class="title">
308 <a href="http://people.skolelinux.org/pere/blog/Debian_APT_upgrade_without_enough_free_space_on_the_disk___.html">Debian APT upgrade without enough free space on the disk...</a>
309 </div>
310 <div class="date">
311 8th July 2018
312 </div>
313 <div class="body">
314 <p>Quite regularly, I let my Debian Sid/Unstable chroot stay untouch
315 for a while, and when I need to update it there is not enough free
316 space on the disk for apt to do a normal 'apt upgrade'. I normally
317 would resolve the issue by doing 'apt install &lt;somepackages&gt;' to
318 upgrade only some of the packages in one batch, until the amount of
319 packages to download fall below the amount of free space available.
320 Today, I had about 500 packages to upgrade, and after a while I got
321 tired of trying to install chunks of packages manually. I concluded
322 that I did not have the spare hours required to complete the task, and
323 decided to see if I could automate it. I came up with this small
324 script which I call 'apt-in-chunks':</p>
325
326 <p><blockquote><pre>
327 #!/bin/sh
328 #
329 # Upgrade packages when the disk is too full to upgrade every
330 # upgradable package in one lump. Fetching packages to upgrade using
331 # apt, and then installing using dpkg, to avoid changing the package
332 # flag for manual/automatic.
333
334 set -e
335
336 ignore() {
337 if [ "$1" ]; then
338 grep -v "$1"
339 else
340 cat
341 fi
342 }
343
344 for p in $(apt list --upgradable | ignore "$@" |cut -d/ -f1 | grep -v '^Listing...'); do
345 echo "Upgrading $p"
346 apt clean
347 apt install --download-only -y $p
348 for f in /var/cache/apt/archives/*.deb; do
349 if [ -e "$f" ]; then
350 dpkg -i /var/cache/apt/archives/*.deb
351 break
352 fi
353 done
354 done
355 </pre></blockquote></p>
356
357 <p>The script will extract the list of packages to upgrade, try to
358 download the packages needed to upgrade one package, install the
359 downloaded packages using dpkg. The idea is to upgrade packages
360 without changing the APT mark for the package (ie the one recording of
361 the package was manually requested or pulled in as a dependency). To
362 use it, simply run it as root from the command line. If it fail, try
363 'apt install -f' to clean up the mess and run the script again. This
364 might happen if the new packages conflict with one of the old
365 packages. dpkg is unable to remove, while apt can do this.</p>
366
367 <p>It take one option, a package to ignore in the list of packages to
368 upgrade. The option to ignore a package is there to be able to skip
369 the packages that are simply too large to unpack. Today this was
370 'ghc', but I have run into other large packages causing similar
371 problems earlier (like TeX).</p>
372
373 <p>Update 2018-07-08: Thanks to Paul Wise, I am aware of two
374 alternative ways to handle this. The "unattended-upgrades
375 --minimal-upgrade-steps" option will try to calculate upgrade sets for
376 each package to upgrade, and then upgrade them in order, smallest set
377 first. It might be a better option than my above mentioned script.
378 Also, "aptutude upgrade" can upgrade single packages, thus avoiding
379 the need for using "dpkg -i" in the script above.</p>
380
381 <p>As usual, if you use Bitcoin and want to show your support of my
382 activities, please send Bitcoin donations to my address
383 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
384
385 </div>
386 <div class="tags">
387
388
389 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>.
390
391
392 </div>
393 </div>
394 <div class="padding"></div>
395
396 <p style="text-align: right;"><a href="07.rss"><img src="http://people.skolelinux.org/pere/blog/xml.gif" alt="RSS Feed" width="36" height="14" /></a></p>
397 <div id="sidebar">
398
399
400
401 <h2>Archive</h2>
402 <ul>
403
404 <li>2018
405 <ul>
406
407 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/01/">January (1)</a></li>
408
409 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/02/">February (5)</a></li>
410
411 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/03/">March (5)</a></li>
412
413 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/04/">April (3)</a></li>
414
415 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/06/">June (2)</a></li>
416
417 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/07/">July (3)</a></li>
418
419 </ul></li>
420
421 <li>2017
422 <ul>
423
424 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/01/">January (4)</a></li>
425
426 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/02/">February (3)</a></li>
427
428 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/03/">March (5)</a></li>
429
430 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/04/">April (2)</a></li>
431
432 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/06/">June (5)</a></li>
433
434 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/07/">July (1)</a></li>
435
436 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/08/">August (1)</a></li>
437
438 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/09/">September (3)</a></li>
439
440 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/10/">October (5)</a></li>
441
442 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/11/">November (3)</a></li>
443
444 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/12/">December (4)</a></li>
445
446 </ul></li>
447
448 <li>2016
449 <ul>
450
451 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/01/">January (3)</a></li>
452
453 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/02/">February (2)</a></li>
454
455 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/03/">March (3)</a></li>
456
457 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/04/">April (8)</a></li>
458
459 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/05/">May (8)</a></li>
460
461 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/06/">June (2)</a></li>
462
463 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/07/">July (2)</a></li>
464
465 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/08/">August (5)</a></li>
466
467 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/09/">September (2)</a></li>
468
469 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/10/">October (3)</a></li>
470
471 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/11/">November (8)</a></li>
472
473 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/12/">December (5)</a></li>
474
475 </ul></li>
476
477 <li>2015
478 <ul>
479
480 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/01/">January (7)</a></li>
481
482 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/02/">February (6)</a></li>
483
484 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/03/">March (1)</a></li>
485
486 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/04/">April (4)</a></li>
487
488 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/05/">May (3)</a></li>
489
490 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/06/">June (4)</a></li>
491
492 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/07/">July (6)</a></li>
493
494 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/08/">August (2)</a></li>
495
496 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/09/">September (2)</a></li>
497
498 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/10/">October (9)</a></li>
499
500 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/11/">November (6)</a></li>
501
502 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/12/">December (3)</a></li>
503
504 </ul></li>
505
506 <li>2014
507 <ul>
508
509 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/01/">January (2)</a></li>
510
511 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/02/">February (3)</a></li>
512
513 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/03/">March (8)</a></li>
514
515 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/04/">April (7)</a></li>
516
517 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/05/">May (1)</a></li>
518
519 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/06/">June (2)</a></li>
520
521 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/07/">July (2)</a></li>
522
523 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/08/">August (2)</a></li>
524
525 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/09/">September (5)</a></li>
526
527 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/10/">October (6)</a></li>
528
529 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/11/">November (3)</a></li>
530
531 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/12/">December (5)</a></li>
532
533 </ul></li>
534
535 <li>2013
536 <ul>
537
538 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/01/">January (11)</a></li>
539
540 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/02/">February (9)</a></li>
541
542 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/03/">March (9)</a></li>
543
544 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/04/">April (6)</a></li>
545
546 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/05/">May (9)</a></li>
547
548 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/06/">June (10)</a></li>
549
550 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/07/">July (7)</a></li>
551
552 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/08/">August (3)</a></li>
553
554 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/09/">September (5)</a></li>
555
556 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/10/">October (7)</a></li>
557
558 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/11/">November (9)</a></li>
559
560 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/12/">December (3)</a></li>
561
562 </ul></li>
563
564 <li>2012
565 <ul>
566
567 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/01/">January (7)</a></li>
568
569 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/02/">February (10)</a></li>
570
571 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/03/">March (17)</a></li>
572
573 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/04/">April (12)</a></li>
574
575 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/05/">May (12)</a></li>
576
577 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/06/">June (20)</a></li>
578
579 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/07/">July (17)</a></li>
580
581 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/08/">August (6)</a></li>
582
583 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/09/">September (9)</a></li>
584
585 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/10/">October (17)</a></li>
586
587 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/11/">November (10)</a></li>
588
589 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/12/">December (7)</a></li>
590
591 </ul></li>
592
593 <li>2011
594 <ul>
595
596 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/01/">January (16)</a></li>
597
598 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/02/">February (6)</a></li>
599
600 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/03/">March (6)</a></li>
601
602 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/04/">April (7)</a></li>
603
604 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/05/">May (3)</a></li>
605
606 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/06/">June (2)</a></li>
607
608 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/07/">July (7)</a></li>
609
610 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/08/">August (6)</a></li>
611
612 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/09/">September (4)</a></li>
613
614 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/10/">October (2)</a></li>
615
616 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/11/">November (3)</a></li>
617
618 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/12/">December (1)</a></li>
619
620 </ul></li>
621
622 <li>2010
623 <ul>
624
625 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/01/">January (2)</a></li>
626
627 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/02/">February (1)</a></li>
628
629 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/03/">March (3)</a></li>
630
631 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/04/">April (3)</a></li>
632
633 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/05/">May (9)</a></li>
634
635 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/06/">June (14)</a></li>
636
637 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/07/">July (12)</a></li>
638
639 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/08/">August (13)</a></li>
640
641 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/09/">September (7)</a></li>
642
643 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/10/">October (9)</a></li>
644
645 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/11/">November (13)</a></li>
646
647 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/12/">December (12)</a></li>
648
649 </ul></li>
650
651 <li>2009
652 <ul>
653
654 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/01/">January (8)</a></li>
655
656 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/02/">February (8)</a></li>
657
658 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/03/">March (12)</a></li>
659
660 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/04/">April (10)</a></li>
661
662 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/05/">May (9)</a></li>
663
664 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/06/">June (3)</a></li>
665
666 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/07/">July (4)</a></li>
667
668 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/08/">August (3)</a></li>
669
670 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/09/">September (1)</a></li>
671
672 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/10/">October (2)</a></li>
673
674 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/11/">November (3)</a></li>
675
676 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/12/">December (3)</a></li>
677
678 </ul></li>
679
680 <li>2008
681 <ul>
682
683 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/11/">November (5)</a></li>
684
685 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/12/">December (7)</a></li>
686
687 </ul></li>
688
689 </ul>
690
691
692
693 <h2>Tags</h2>
694 <ul>
695
696 <li><a href="http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (16)</a></li>
697
698 <li><a href="http://people.skolelinux.org/pere/blog/tags/amiga">amiga (1)</a></li>
699
700 <li><a href="http://people.skolelinux.org/pere/blog/tags/aros">aros (1)</a></li>
701
702 <li><a href="http://people.skolelinux.org/pere/blog/tags/bankid">bankid (4)</a></li>
703
704 <li><a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (9)</a></li>
705
706 <li><a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (17)</a></li>
707
708 <li><a href="http://people.skolelinux.org/pere/blog/tags/bsa">bsa (2)</a></li>
709
710 <li><a href="http://people.skolelinux.org/pere/blog/tags/chrpath">chrpath (2)</a></li>
711
712 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian">debian (159)</a></li>
713
714 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (158)</a></li>
715
716 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian-handbook">debian-handbook (4)</a></li>
717
718 <li><a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan (10)</a></li>
719
720 <li><a href="http://people.skolelinux.org/pere/blog/tags/dld">dld (17)</a></li>
721
722 <li><a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook (25)</a></li>
723
724 <li><a href="http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
725
726 <li><a href="http://people.skolelinux.org/pere/blog/tags/english">english (377)</a></li>
727
728 <li><a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (23)</a></li>
729
730 <li><a href="http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (13)</a></li>
731
732 <li><a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (32)</a></li>
733
734 <li><a href="http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox (9)</a></li>
735
736 <li><a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (18)</a></li>
737
738 <li><a href="http://people.skolelinux.org/pere/blog/tags/h264">h264 (20)</a></li>
739
740 <li><a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju (42)</a></li>
741
742 <li><a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram (16)</a></li>
743
744 <li><a href="http://people.skolelinux.org/pere/blog/tags/kart">kart (20)</a></li>
745
746 <li><a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap (9)</a></li>
747
748 <li><a href="http://people.skolelinux.org/pere/blog/tags/lego">lego (4)</a></li>
749
750 <li><a href="http://people.skolelinux.org/pere/blog/tags/lenker">lenker (8)</a></li>
751
752 <li><a href="http://people.skolelinux.org/pere/blog/tags/lsdvd">lsdvd (2)</a></li>
753
754 <li><a href="http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (1)</a></li>
755
756 <li><a href="http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network (8)</a></li>
757
758 <li><a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (41)</a></li>
759
760 <li><a href="http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software (10)</a></li>
761
762 <li><a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk (299)</a></li>
763
764 <li><a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug (190)</a></li>
765
766 <li><a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (33)</a></li>
767
768 <li><a href="http://people.skolelinux.org/pere/blog/tags/open311">open311 (2)</a></li>
769
770 <li><a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (71)</a></li>
771
772 <li><a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern (107)</a></li>
773
774 <li><a href="http://people.skolelinux.org/pere/blog/tags/raid">raid (2)</a></li>
775
776 <li><a href="http://people.skolelinux.org/pere/blog/tags/reactos">reactos (1)</a></li>
777
778 <li><a href="http://people.skolelinux.org/pere/blog/tags/reprap">reprap (11)</a></li>
779
780 <li><a href="http://people.skolelinux.org/pere/blog/tags/rfid">rfid (3)</a></li>
781
782 <li><a href="http://people.skolelinux.org/pere/blog/tags/robot">robot (10)</a></li>
783
784 <li><a href="http://people.skolelinux.org/pere/blog/tags/rss">rss (1)</a></li>
785
786 <li><a href="http://people.skolelinux.org/pere/blog/tags/ruter">ruter (6)</a></li>
787
788 <li><a href="http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (2)</a></li>
789
790 <li><a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (54)</a></li>
791
792 <li><a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (4)</a></li>
793
794 <li><a href="http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (5)</a></li>
795
796 <li><a href="http://people.skolelinux.org/pere/blog/tags/standard">standard (55)</a></li>
797
798 <li><a href="http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (6)</a></li>
799
800 <li><a href="http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (12)</a></li>
801
802 <li><a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (55)</a></li>
803
804 <li><a href="http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (4)</a></li>
805
806 <li><a href="http://people.skolelinux.org/pere/blog/tags/usenix">usenix (2)</a></li>
807
808 <li><a href="http://people.skolelinux.org/pere/blog/tags/valg">valg (9)</a></li>
809
810 <li><a href="http://people.skolelinux.org/pere/blog/tags/verkidetfri">verkidetfri (11)</a></li>
811
812 <li><a href="http://people.skolelinux.org/pere/blog/tags/video">video (65)</a></li>
813
814 <li><a href="http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (4)</a></li>
815
816 <li><a href="http://people.skolelinux.org/pere/blog/tags/web">web (41)</a></li>
817
818 </ul>
819
820
821 </div>
822 <p style="text-align: right">
823 Created by <a href="http://steve.org.uk/Software/chronicle">Chronicle v4.6</a>
824 </p>
825
826 </body>
827 </html>