]> pere.pagekite.me Git - homepage.git/blob - blog/archive/2018/07/index.html
Publish new post.
[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.m3u 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=1 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=1 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, but gstreamer
158 seem to be doing a better job.</p>
159
160 <blockquote><pre>
161 cvlc screen:// --sout '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128}:rtp{mux=ts,dst=239.255.0.1,port=1234,sdp=sap}'
162 </pre></blockquote>
163
164 <p>As usual, if you use Bitcoin and want to show your support of my
165 activities, please send Bitcoin donations to my address
166 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
167
168 </div>
169 <div class="tags">
170
171
172 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>.
173
174
175 </div>
176 </div>
177 <div class="padding"></div>
178
179 <div class="entry">
180 <div class="title">
181 <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>
182 </div>
183 <div class="date">
184 9th July 2018
185 </div>
186 <div class="body">
187 <p>Five years ago,
188 <a href="http://people.skolelinux.org/pere/blog/What_is_the_most_supported_MIME_type_in_Debian_.html">I
189 measured what the most supported MIME type in Debian was</a>, by
190 analysing the desktop files in all packages in the archive. Since
191 then, the DEP-11 AppStream system has been put into production, making
192 the task a lot easier. This made me want to repeat the measurement,
193 to see how much things changed. Here are the new numbers, for
194 unstable only this time:
195
196 <p><strong>Debian Unstable:</strong></p>
197
198 <pre>
199 count MIME type
200 ----- -----------------------
201 56 image/jpeg
202 55 image/png
203 49 image/tiff
204 48 image/gif
205 39 image/bmp
206 38 text/plain
207 37 audio/mpeg
208 34 application/ogg
209 33 audio/x-flac
210 32 audio/x-mp3
211 30 audio/x-wav
212 30 audio/x-vorbis+ogg
213 29 image/x-portable-pixmap
214 27 inode/directory
215 27 image/x-portable-bitmap
216 27 audio/x-mpeg
217 26 application/x-ogg
218 25 audio/x-mpegurl
219 25 audio/ogg
220 24 text/html
221 </pre>
222
223 <p>The list was created like this using a sid chroot: "cat
224 /var/lib/apt/lists/*sid*_dep11_Components-amd64.yml.gz| zcat | awk '/^
225 - \S+\/\S+$/ {print $2 }' | sort | uniq -c | sort -nr | head -20"</p>
226
227 <p>It is interesting to see how image formats have passed text/plain
228 as the most announced supported MIME type. These days, thanks to the
229 AppStream system, if you run into a file format you do not know, and
230 want to figure out which packages support the format, you can find the
231 MIME type of the file using "file --mime &lt;filename&gt;", and then
232 look up all packages announcing support for this format in their
233 AppStream metadata (XML or .desktop file) using "appstreamcli
234 what-provides mimetype &lt;mime-type&gt;. For example if you, like
235 me, want to know which packages support inode/directory, you can get a
236 list like this:</p>
237
238 <p><blockquote><pre>
239 % appstreamcli what-provides mimetype inode/directory | grep Package: | sort
240 Package: anjuta
241 Package: audacious
242 Package: baobab
243 Package: cervisia
244 Package: chirp
245 Package: dolphin
246 Package: doublecmd-common
247 Package: easytag
248 Package: enlightenment
249 Package: ephoto
250 Package: filelight
251 Package: gwenview
252 Package: k4dirstat
253 Package: kaffeine
254 Package: kdesvn
255 Package: kid3
256 Package: kid3-qt
257 Package: nautilus
258 Package: nemo
259 Package: pcmanfm
260 Package: pcmanfm-qt
261 Package: qweborf
262 Package: ranger
263 Package: sirikali
264 Package: spacefm
265 Package: spacefm
266 Package: vifm
267 %
268 </pre></blockquote></p>
269
270 <p>Using the same method, I can quickly discover that the Sketchup file
271 format is not yet supported by any package in Debian:</p>
272
273 <p><blockquote><pre>
274 % appstreamcli what-provides mimetype application/vnd.sketchup.skp
275 Could not find component providing 'mimetype::application/vnd.sketchup.skp'.
276 %
277 </pre></blockquote></p>
278
279 <p>Yesterday I used it to figure out which packages support the STL 3D
280 format:</p>
281
282 <p><blockquote><pre>
283 % appstreamcli what-provides mimetype application/sla|grep Package
284 Package: cura
285 Package: meshlab
286 Package: printrun
287 %
288 </pre></blockquote></p>
289
290 <p>PS: A new version of Cura was uploaded to Debian yesterday.</p>
291
292 <p>As usual, if you use Bitcoin and want to show your support of my
293 activities, please send Bitcoin donations to my address
294 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
295
296 </div>
297 <div class="tags">
298
299
300 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>.
301
302
303 </div>
304 </div>
305 <div class="padding"></div>
306
307 <div class="entry">
308 <div class="title">
309 <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>
310 </div>
311 <div class="date">
312 8th July 2018
313 </div>
314 <div class="body">
315 <p>Quite regularly, I let my Debian Sid/Unstable chroot stay untouch
316 for a while, and when I need to update it there is not enough free
317 space on the disk for apt to do a normal 'apt upgrade'. I normally
318 would resolve the issue by doing 'apt install &lt;somepackages&gt;' to
319 upgrade only some of the packages in one batch, until the amount of
320 packages to download fall below the amount of free space available.
321 Today, I had about 500 packages to upgrade, and after a while I got
322 tired of trying to install chunks of packages manually. I concluded
323 that I did not have the spare hours required to complete the task, and
324 decided to see if I could automate it. I came up with this small
325 script which I call 'apt-in-chunks':</p>
326
327 <p><blockquote><pre>
328 #!/bin/sh
329 #
330 # Upgrade packages when the disk is too full to upgrade every
331 # upgradable package in one lump. Fetching packages to upgrade using
332 # apt, and then installing using dpkg, to avoid changing the package
333 # flag for manual/automatic.
334
335 set -e
336
337 ignore() {
338 if [ "$1" ]; then
339 grep -v "$1"
340 else
341 cat
342 fi
343 }
344
345 for p in $(apt list --upgradable | ignore "$@" |cut -d/ -f1 | grep -v '^Listing...'); do
346 echo "Upgrading $p"
347 apt clean
348 apt install --download-only -y $p
349 for f in /var/cache/apt/archives/*.deb; do
350 if [ -e "$f" ]; then
351 dpkg -i /var/cache/apt/archives/*.deb
352 break
353 fi
354 done
355 done
356 </pre></blockquote></p>
357
358 <p>The script will extract the list of packages to upgrade, try to
359 download the packages needed to upgrade one package, install the
360 downloaded packages using dpkg. The idea is to upgrade packages
361 without changing the APT mark for the package (ie the one recording of
362 the package was manually requested or pulled in as a dependency). To
363 use it, simply run it as root from the command line. If it fail, try
364 'apt install -f' to clean up the mess and run the script again. This
365 might happen if the new packages conflict with one of the old
366 packages. dpkg is unable to remove, while apt can do this.</p>
367
368 <p>It take one option, a package to ignore in the list of packages to
369 upgrade. The option to ignore a package is there to be able to skip
370 the packages that are simply too large to unpack. Today this was
371 'ghc', but I have run into other large packages causing similar
372 problems earlier (like TeX).</p>
373
374 <p>Update 2018-07-08: Thanks to Paul Wise, I am aware of two
375 alternative ways to handle this. The "unattended-upgrades
376 --minimal-upgrade-steps" option will try to calculate upgrade sets for
377 each package to upgrade, and then upgrade them in order, smallest set
378 first. It might be a better option than my above mentioned script.
379 Also, "aptutude upgrade" can upgrade single packages, thus avoiding
380 the need for using "dpkg -i" in the script above.</p>
381
382 <p>As usual, if you use Bitcoin and want to show your support of my
383 activities, please send Bitcoin donations to my address
384 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
385
386 </div>
387 <div class="tags">
388
389
390 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>.
391
392
393 </div>
394 </div>
395 <div class="padding"></div>
396
397 <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>
398 <div id="sidebar">
399
400
401
402 <h2>Archive</h2>
403 <ul>
404
405 <li>2018
406 <ul>
407
408 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/01/">January (1)</a></li>
409
410 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/02/">February (5)</a></li>
411
412 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/03/">March (5)</a></li>
413
414 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/04/">April (3)</a></li>
415
416 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/06/">June (2)</a></li>
417
418 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/07/">July (3)</a></li>
419
420 </ul></li>
421
422 <li>2017
423 <ul>
424
425 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/01/">January (4)</a></li>
426
427 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/02/">February (3)</a></li>
428
429 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/03/">March (5)</a></li>
430
431 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/04/">April (2)</a></li>
432
433 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/06/">June (5)</a></li>
434
435 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/07/">July (1)</a></li>
436
437 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/08/">August (1)</a></li>
438
439 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/09/">September (3)</a></li>
440
441 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/10/">October (5)</a></li>
442
443 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/11/">November (3)</a></li>
444
445 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/12/">December (4)</a></li>
446
447 </ul></li>
448
449 <li>2016
450 <ul>
451
452 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/01/">January (3)</a></li>
453
454 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/02/">February (2)</a></li>
455
456 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/03/">March (3)</a></li>
457
458 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/04/">April (8)</a></li>
459
460 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/05/">May (8)</a></li>
461
462 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/06/">June (2)</a></li>
463
464 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/07/">July (2)</a></li>
465
466 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/08/">August (5)</a></li>
467
468 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/09/">September (2)</a></li>
469
470 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/10/">October (3)</a></li>
471
472 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/11/">November (8)</a></li>
473
474 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/12/">December (5)</a></li>
475
476 </ul></li>
477
478 <li>2015
479 <ul>
480
481 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/01/">January (7)</a></li>
482
483 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/02/">February (6)</a></li>
484
485 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/03/">March (1)</a></li>
486
487 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/04/">April (4)</a></li>
488
489 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/05/">May (3)</a></li>
490
491 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/06/">June (4)</a></li>
492
493 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/07/">July (6)</a></li>
494
495 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/08/">August (2)</a></li>
496
497 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/09/">September (2)</a></li>
498
499 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/10/">October (9)</a></li>
500
501 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/11/">November (6)</a></li>
502
503 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/12/">December (3)</a></li>
504
505 </ul></li>
506
507 <li>2014
508 <ul>
509
510 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/01/">January (2)</a></li>
511
512 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/02/">February (3)</a></li>
513
514 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/03/">March (8)</a></li>
515
516 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/04/">April (7)</a></li>
517
518 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/05/">May (1)</a></li>
519
520 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/06/">June (2)</a></li>
521
522 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/07/">July (2)</a></li>
523
524 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/08/">August (2)</a></li>
525
526 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/09/">September (5)</a></li>
527
528 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/10/">October (6)</a></li>
529
530 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/11/">November (3)</a></li>
531
532 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/12/">December (5)</a></li>
533
534 </ul></li>
535
536 <li>2013
537 <ul>
538
539 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/01/">January (11)</a></li>
540
541 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/02/">February (9)</a></li>
542
543 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/03/">March (9)</a></li>
544
545 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/04/">April (6)</a></li>
546
547 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/05/">May (9)</a></li>
548
549 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/06/">June (10)</a></li>
550
551 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/07/">July (7)</a></li>
552
553 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/08/">August (3)</a></li>
554
555 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/09/">September (5)</a></li>
556
557 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/10/">October (7)</a></li>
558
559 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/11/">November (9)</a></li>
560
561 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/12/">December (3)</a></li>
562
563 </ul></li>
564
565 <li>2012
566 <ul>
567
568 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/01/">January (7)</a></li>
569
570 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/02/">February (10)</a></li>
571
572 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/03/">March (17)</a></li>
573
574 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/04/">April (12)</a></li>
575
576 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/05/">May (12)</a></li>
577
578 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/06/">June (20)</a></li>
579
580 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/07/">July (17)</a></li>
581
582 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/08/">August (6)</a></li>
583
584 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/09/">September (9)</a></li>
585
586 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/10/">October (17)</a></li>
587
588 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/11/">November (10)</a></li>
589
590 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/12/">December (7)</a></li>
591
592 </ul></li>
593
594 <li>2011
595 <ul>
596
597 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/01/">January (16)</a></li>
598
599 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/02/">February (6)</a></li>
600
601 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/03/">March (6)</a></li>
602
603 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/04/">April (7)</a></li>
604
605 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/05/">May (3)</a></li>
606
607 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/06/">June (2)</a></li>
608
609 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/07/">July (7)</a></li>
610
611 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/08/">August (6)</a></li>
612
613 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/09/">September (4)</a></li>
614
615 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/10/">October (2)</a></li>
616
617 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/11/">November (3)</a></li>
618
619 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/12/">December (1)</a></li>
620
621 </ul></li>
622
623 <li>2010
624 <ul>
625
626 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/01/">January (2)</a></li>
627
628 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/02/">February (1)</a></li>
629
630 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/03/">March (3)</a></li>
631
632 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/04/">April (3)</a></li>
633
634 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/05/">May (9)</a></li>
635
636 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/06/">June (14)</a></li>
637
638 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/07/">July (12)</a></li>
639
640 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/08/">August (13)</a></li>
641
642 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/09/">September (7)</a></li>
643
644 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/10/">October (9)</a></li>
645
646 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/11/">November (13)</a></li>
647
648 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/12/">December (12)</a></li>
649
650 </ul></li>
651
652 <li>2009
653 <ul>
654
655 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/01/">January (8)</a></li>
656
657 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/02/">February (8)</a></li>
658
659 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/03/">March (12)</a></li>
660
661 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/04/">April (10)</a></li>
662
663 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/05/">May (9)</a></li>
664
665 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/06/">June (3)</a></li>
666
667 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/07/">July (4)</a></li>
668
669 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/08/">August (3)</a></li>
670
671 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/09/">September (1)</a></li>
672
673 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/10/">October (2)</a></li>
674
675 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/11/">November (3)</a></li>
676
677 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/12/">December (3)</a></li>
678
679 </ul></li>
680
681 <li>2008
682 <ul>
683
684 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/11/">November (5)</a></li>
685
686 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/12/">December (7)</a></li>
687
688 </ul></li>
689
690 </ul>
691
692
693
694 <h2>Tags</h2>
695 <ul>
696
697 <li><a href="http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (16)</a></li>
698
699 <li><a href="http://people.skolelinux.org/pere/blog/tags/amiga">amiga (1)</a></li>
700
701 <li><a href="http://people.skolelinux.org/pere/blog/tags/aros">aros (1)</a></li>
702
703 <li><a href="http://people.skolelinux.org/pere/blog/tags/bankid">bankid (4)</a></li>
704
705 <li><a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (9)</a></li>
706
707 <li><a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (17)</a></li>
708
709 <li><a href="http://people.skolelinux.org/pere/blog/tags/bsa">bsa (2)</a></li>
710
711 <li><a href="http://people.skolelinux.org/pere/blog/tags/chrpath">chrpath (2)</a></li>
712
713 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian">debian (159)</a></li>
714
715 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (158)</a></li>
716
717 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian-handbook">debian-handbook (4)</a></li>
718
719 <li><a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan (10)</a></li>
720
721 <li><a href="http://people.skolelinux.org/pere/blog/tags/dld">dld (17)</a></li>
722
723 <li><a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook (25)</a></li>
724
725 <li><a href="http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
726
727 <li><a href="http://people.skolelinux.org/pere/blog/tags/english">english (377)</a></li>
728
729 <li><a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (23)</a></li>
730
731 <li><a href="http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (13)</a></li>
732
733 <li><a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (32)</a></li>
734
735 <li><a href="http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox (9)</a></li>
736
737 <li><a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (18)</a></li>
738
739 <li><a href="http://people.skolelinux.org/pere/blog/tags/h264">h264 (20)</a></li>
740
741 <li><a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju (42)</a></li>
742
743 <li><a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram (16)</a></li>
744
745 <li><a href="http://people.skolelinux.org/pere/blog/tags/kart">kart (20)</a></li>
746
747 <li><a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap (9)</a></li>
748
749 <li><a href="http://people.skolelinux.org/pere/blog/tags/lego">lego (4)</a></li>
750
751 <li><a href="http://people.skolelinux.org/pere/blog/tags/lenker">lenker (8)</a></li>
752
753 <li><a href="http://people.skolelinux.org/pere/blog/tags/lsdvd">lsdvd (2)</a></li>
754
755 <li><a href="http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (1)</a></li>
756
757 <li><a href="http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network (8)</a></li>
758
759 <li><a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (41)</a></li>
760
761 <li><a href="http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software (10)</a></li>
762
763 <li><a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk (299)</a></li>
764
765 <li><a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug (190)</a></li>
766
767 <li><a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (33)</a></li>
768
769 <li><a href="http://people.skolelinux.org/pere/blog/tags/open311">open311 (2)</a></li>
770
771 <li><a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (71)</a></li>
772
773 <li><a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern (107)</a></li>
774
775 <li><a href="http://people.skolelinux.org/pere/blog/tags/raid">raid (2)</a></li>
776
777 <li><a href="http://people.skolelinux.org/pere/blog/tags/reactos">reactos (1)</a></li>
778
779 <li><a href="http://people.skolelinux.org/pere/blog/tags/reprap">reprap (11)</a></li>
780
781 <li><a href="http://people.skolelinux.org/pere/blog/tags/rfid">rfid (3)</a></li>
782
783 <li><a href="http://people.skolelinux.org/pere/blog/tags/robot">robot (10)</a></li>
784
785 <li><a href="http://people.skolelinux.org/pere/blog/tags/rss">rss (1)</a></li>
786
787 <li><a href="http://people.skolelinux.org/pere/blog/tags/ruter">ruter (6)</a></li>
788
789 <li><a href="http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (2)</a></li>
790
791 <li><a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (54)</a></li>
792
793 <li><a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (4)</a></li>
794
795 <li><a href="http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (5)</a></li>
796
797 <li><a href="http://people.skolelinux.org/pere/blog/tags/standard">standard (55)</a></li>
798
799 <li><a href="http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (6)</a></li>
800
801 <li><a href="http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (12)</a></li>
802
803 <li><a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (55)</a></li>
804
805 <li><a href="http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (4)</a></li>
806
807 <li><a href="http://people.skolelinux.org/pere/blog/tags/usenix">usenix (2)</a></li>
808
809 <li><a href="http://people.skolelinux.org/pere/blog/tags/valg">valg (9)</a></li>
810
811 <li><a href="http://people.skolelinux.org/pere/blog/tags/verkidetfri">verkidetfri (11)</a></li>
812
813 <li><a href="http://people.skolelinux.org/pere/blog/tags/video">video (65)</a></li>
814
815 <li><a href="http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (4)</a></li>
816
817 <li><a href="http://people.skolelinux.org/pere/blog/tags/web">web (41)</a></li>
818
819 </ul>
820
821
822 </div>
823 <p style="text-align: right">
824 Created by <a href="http://steve.org.uk/Software/chronicle">Chronicle v4.6</a>
825 </p>
826
827 </body>
828 </html>