]> pere.pagekite.me Git - homepage.git/blob - blog/tags/english/index.html
616d3f2f0994309667d05bd8cc0a0e51c625425b
[homepage.git] / blog / tags / english / 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 Tagged english</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="english.rss" type="application/rss+xml" />
10 </head>
11 <body>
12 <div class="title">
13 <h1>
14 <a href="http://people.skolelinux.org/pere/blog/">Petter Reinholdtsen</a>
15
16 </h1>
17
18 </div>
19
20
21 <h3>Entries tagged "english".</h3>
22
23 <div class="entry">
24 <div class="title">
25 <a href="http://people.skolelinux.org/pere/blog/Websocket_from_Kraken_in_Valutakrambod.html">Websocket from Kraken in Valutakrambod</a>
26 </div>
27 <div class="date">
28 1st February 2019
29 </div>
30 <div class="body">
31 <p>Yesterday, the Kraken virtual currency exchange announced
32 <a href="https://blog.kraken.com/post/2019/websockets-public-api-launching-soon/">their
33 Websocket service</a>, providing a stream of exchange updates to its
34 clients. Getting updated rates quickly is a good idea, so I used
35 their <a href="https://www.kraken.com/en-us/help/websocket-api">API
36 documentation</a> and added Websocket support to the Kraken service in
37 Valutakrambod today. The python library can now get updates
38 from Kraken several times per second, instead of every time the
39 information is polled from the REST API.</p>
40
41 <p>If this sound interesting to you, the code for valutakrambod is
42 available from
43 <a href="http://github.com/petterreinholdtsen/valutakrambod">github</a>.
44 Here is example output from the example client displaying rates in a
45 curses view:</p>
46
47 <p><blockquote><pre>
48 Name Pair Bid Ask Spr Ftcd Age
49 BitcoinsNorway BTCEUR 2959.2800 3021.0500 2.0% 36 nan nan
50 Bitfinex BTCEUR 3087.9000 3088.0000 0.0% 36 37 nan
51 Bitmynt BTCEUR 3001.8700 3135.4600 4.3% 36 52 nan
52 Bitpay BTCEUR 3003.8659 nan nan% 35 nan nan
53 Bitstamp BTCEUR 3008.0000 3010.2300 0.1% 0 1 1
54 Bl3p BTCEUR 3000.6700 3010.9300 0.3% 1 nan nan
55 Coinbase BTCEUR 2992.1800 3023.2500 1.0% 34 nan nan
56 Kraken+BTCEUR 3005.7000 3006.6000 0.0% 0 1 0
57 Paymium BTCEUR 2940.0100 2993.4400 1.8% 0 2688 nan
58 BitcoinsNorway BTCNOK 29000.0000 29360.7400 1.2% 36 nan nan
59 Bitmynt BTCNOK 29115.6400 29720.7500 2.0% 36 52 nan
60 Bitpay BTCNOK 29029.2512 nan nan% 36 nan nan
61 Coinbase BTCNOK 28927.6000 29218.5900 1.0% 35 nan nan
62 MiraiEx BTCNOK 29097.7000 29741.4200 2.2% 36 nan nan
63 BitcoinsNorway BTCUSD 3385.4200 3456.0900 2.0% 36 nan nan
64 Bitfinex BTCUSD 3538.5000 3538.6000 0.0% 36 45 nan
65 Bitpay BTCUSD 3443.4600 nan nan% 34 nan nan
66 Bitstamp BTCUSD 3443.0100 3445.0500 0.1% 0 2 1
67 Coinbase BTCUSD 3428.1600 3462.6300 1.0% 33 nan nan
68 Gemini BTCUSD 3445.8800 3445.8900 0.0% 36 326 nan
69 Hitbtc BTCUSD 3473.4700 3473.0700 -0.0% 0 0 0
70 Kraken+BTCUSD 3444.4000 3445.6000 0.0% 0 1 0
71 Exchangerates EURNOK 9.6685 9.6685 0.0% 36 22226 nan
72 Norgesbank EURNOK 9.6685 9.6685 0.0% 36 22226 nan
73 Bitstamp EURUSD 1.1440 1.1462 0.2% 0 1 2
74 Exchangerates EURUSD 1.1471 1.1471 0.0% 36 22226 nan
75 BitcoinsNorway LTCEUR 1.0009 22.6538 95.6% 35 nan nan
76 BitcoinsNorway LTCNOK 259.0900 264.9300 2.2% 35 nan nan
77 BitcoinsNorway LTCUSD 0.0000 29.0000 100.0% 35 nan nan
78 Norgesbank USDNOK 8.4286 8.4286 0.0% 36 22226 nan
79 </pre></blockquote></p>
80
81 <p>Yes, I notice the strange negative spread on Hitbtc. I've seen the
82 same on Kraken. Another strange observation is that Kraken some times
83 announce trade orders a fraction of a second in the future. I really
84 wonder what is going on there.</p>
85
86 <p>As usual, if you use Bitcoin and want to show your support of my
87 activities, please send Bitcoin donations to my address
88 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
89
90 </div>
91 <div class="tags">
92
93
94 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
95
96
97 </div>
98 </div>
99 <div class="padding"></div>
100
101 <div class="entry">
102 <div class="title">
103 <a href="http://people.skolelinux.org/pere/blog/Debian_now_got_everything_you_need_to_program_Micro_bit.html">Debian now got everything you need to program Micro:bit</a>
104 </div>
105 <div class="date">
106 22nd January 2019
107 </div>
108 <div class="body">
109 <p>I am amazed and very pleased to discover that since a few days ago,
110 everything you need to program the <a href="https://microbit.org/">BBC
111 micro:bit</a> is available from the Debian archive. All this is
112 thanks to the hard work of Nick Morrott and the Debian python
113 packaging team. The micro:bit project recommend the mu-editor to
114 program the microcomputer, as this editor will take care of all the
115 machinery required to injekt/flash micropython alongside the program
116 into the micro:bit, as long as the pieces are available.</p>
117
118 <p>There are three main pieces involved. The first to enter Debian
119 was
120 <a href="https://tracker.debian.org/pkg/python-uflash">python-uflash</a>,
121 which was accepted into the archive 2019-01-12. The next one was
122 <a href="https://tracker.debian.org/pkg/mu-editor">mu-editor</a>, which
123 showed up 2019-01-13. The final and hardest part to to into the
124 archive was
125 <a href="https://tracker.debian.org/pkg/firmware-microbit-micropython">firmware-microbit-micropython</a>,
126 which needed to get its build system and dependencies into Debian
127 before it was accepted 2019-01-20. The last one is already in Debian
128 Unstable and should enter Debian Testing / Buster in three days. This
129 all allow any user of the micro:bit to get going by simply running
130 'apt install mu-editor' when using Testing or Unstable, and once
131 Buster is released as stable, all the users of Debian stable will be
132 catered for.</p>
133
134 <p>As a minor final touch, I added rules to
135 <a href="https://tracker.debian.org/pkg/isenkram">the isenkram
136 package</a> for recognizing micro:bit and recommend the mu-editor
137 package. This make sure any user of the isenkram desktop daemon will
138 get a popup suggesting to install mu-editor then the USB cable from
139 the micro:bit is inserted for the first time.</p>
140
141 <p>This should make it easier to have fun.</p>
142
143 <p>As usual, if you use Bitcoin and want to show your support of my
144 activities, please send Bitcoin donations to my address
145 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
146
147 </div>
148 <div class="tags">
149
150
151 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/robot">robot</a>.
152
153
154 </div>
155 </div>
156 <div class="padding"></div>
157
158 <div class="entry">
159 <div class="title">
160 <a href="http://people.skolelinux.org/pere/blog/CasparCG_Server_for_TV_broadcast_playout_in_Debian.html">CasparCG Server for TV broadcast playout in Debian</a>
161 </div>
162 <div class="date">
163 15th January 2019
164 </div>
165 <div class="body">
166 <p>The layered video playout server created by Sveriges Television,
167 <a href="https://casparcg.com/">CasparCG Server</a>, entered Debian
168 today. This completes many months of work to get the source ready to
169 go into Debian. The first upload to the Debian NEW queue happened a
170 month ago, but the work upstream to prepare it for Debian started more
171 than two and a half month ago. So far
172 <a href="https://tracker.debian.org/pkg/casparcg-server">the
173 casparcg-server package</a> is only available for amd64, but I hope
174 this can be improved. The package is in contrib because it depend on
175 the <a href="https://tracker.debian.org/pkg/fdk-aac">non-free fdk-aac
176 library</a>. The Debian package lack support for streaming web pages
177 because Debian is missing CEF, Chromium Embedded Framework. CEF is
178 wanted by several packages in Debian. But because the Chromium source
179 is <a href="https://bugs.debian.org/893448">not available as a build
180 dependency</a>, it is not yet possible to upload CEF to Debian. I
181 hope this will change in the future.</p>
182
183 <p>The reason I got involved is that
184 <a href="https://frikanalen.no/">the Norwegian open channel
185 Frikanalen</a> is starting to use CasparCG for our HD playout, and I
186 would like to have all the free software tools we use to run the TV
187 channel available as packages from the Debian project. The last
188 remaining piece in the puzzle is Open Broadcast Encoder, but it depend
189 on quite a lot of patched libraries which would have to be included in
190 Debian first.</p>
191
192 <p>As usual, if you use Bitcoin and want to show your support of my
193 activities, please send Bitcoin donations to my address
194 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
195
196 </div>
197 <div class="tags">
198
199
200 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
201
202
203 </div>
204 </div>
205 <div class="padding"></div>
206
207 <div class="entry">
208 <div class="title">
209 <a href="http://people.skolelinux.org/pere/blog/Learn_to_program_with_Minetest_on_Debian.html">Learn to program with Minetest on Debian</a>
210 </div>
211 <div class="date">
212 15th December 2018
213 </div>
214 <div class="body">
215 <p>A fun way to learn how to program
216 <a href="https://www.python.org/">Python</a> is to follow the
217 instructions in the book
218 "<a href="https://nostarch.com/programwithminecraft">Learn to program
219 with Minecraft</a>", which introduces programming in Python to people
220 who like to play with Minecraft. The book uses a Python library to
221 talk to a TCP/IP socket with an API accepting build instructions and
222 providing information about the current players in a Minecraft world.
223 The TCP/IP API was first created for the Minecraft implementation for
224 Raspberry Pi, and has since been ported to some server versions of
225 Minecraft. The book contain recipes for those using Windows, MacOSX
226 and Raspian. But a little known fact is that you can follow the same
227 recipes using the free software construction game
228 <a href="https://minetest.net/">Minetest</a>.</p>
229
230 <p>There is <a href="https://github.com/sprintingkiwi/pycraft_mod">a
231 Minetest module implementing the same API</a>, making it possible to
232 use the Python programs coded to talk to Minecraft with Minetest too.
233 I
234 <a href="https://ftp-master.debian.org/new/minetest-mod-pycraft_0.20%2Bgit20180331.0376a0a%2Bdfsg-1.html">uploaded
235 this module</a> to Debian two weeks ago, and as soon as it clears the
236 FTP masters NEW queue, learning to program Python with Minetest on
237 Debian will be a simple 'apt install' away. The Debian package is
238 maintained as part of the Debian Games team, and
239 <a href="https://salsa.debian.org/games-team/unfinished/minetest-mod-pycraft">the
240 packaging rules</a> are currently located under 'unfinished' on
241 Salsa.</p>
242
243 <p>You will most likely need to install several of the Minetest
244 modules in Debian for the examples included with the library to work
245 well, as there are several blocks used by the example scripts that are
246 provided via modules in Minetest. Without the required blocks, a
247 simple stone block is used instead. My initial testing with a analog
248 clock did not get gold arms as instructed in the python library, but
249 instead used stone arms.</p>
250
251 <p>I tried to find a way to add the API to the desktop version of
252 Minecraft, but were unable to find any working recipes. The
253 <a href="https://www.epiphanydigest.com/tag/minecraft-python-api/">recipes</a>
254 I <a href="https://github.com/kbsriram/mcpiapi">found</a> are only
255 working with a standalone Minecraft server setup. Are there any
256 options to use with the normal desktop version?</p>
257
258 <p>As usual, if you use Bitcoin and want to show your support of my
259 activities, please send Bitcoin donations to my address
260 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
261
262 </div>
263 <div class="tags">
264
265
266 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>.
267
268
269 </div>
270 </div>
271 <div class="padding"></div>
272
273 <div class="entry">
274 <div class="title">
275 <a href="http://people.skolelinux.org/pere/blog/Non_blocking_bittorrent_plugin_for_vlc.html">Non-blocking bittorrent plugin for vlc</a>
276 </div>
277 <div class="date">
278 12th December 2018
279 </div>
280 <div class="body">
281 <p>A few hours ago, a new and improved version (2.4) of
282 <a href="https://tracker.debian.org/pkg/vlc-plugin-bittorrent">the VLC
283 bittorrent plugin</a> was uploaded to Debian. This new version
284 include a complete rewrite of the bittorrent related code, which seem
285 to make the plugin non-blocking. This mean you can actually exit VLC
286 even when the plugin seem to be unable to get the bittorrent streaming
287 started. The new version also include support for filtering playlist
288 by file extension using command line options, if you want to avoid
289 processing audio, video or images. The package is currently in Debian
290 unstable, but should be available in Debian testing in two days. To
291 test it, simply install it like this:</p>
292
293 <p><pre>
294 apt install vlc-plugin-bittorrent
295 </pre></p>
296
297 <p>After it is installed, you can try to use it to play a file
298 downloaded live via bittorrent like this:
299
300 <p><pre>
301 vlc https://archive.org/download/Glass_201703/Glass_201703_archive.torrent
302 </pre></p>
303
304 <p>As usual, if you use Bitcoin and want to show your support of my
305 activities, please send Bitcoin donations to my address
306 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
307
308 </div>
309 <div class="tags">
310
311
312 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/verkidetfri">verkidetfri</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
313
314
315 </div>
316 </div>
317 <div class="padding"></div>
318
319 <div class="entry">
320 <div class="title">
321 <a href="http://people.skolelinux.org/pere/blog/Why_is_your_site_not_using_Content_Security_Policy___CSP_.html">Why is your site not using Content Security Policy / CSP?</a>
322 </div>
323 <div class="date">
324 9th December 2018
325 </div>
326 <div class="body">
327 <p>Yesterday, I had the pleasure of watching on Frikanalen the OWASP
328 talk by Scott Helme titled
329 "<a href="https://frikanalen.no/video/626080/">What We’ve Learned From
330 Billions of Security Reports</a>". I had not heard of the
331 <a href="https://en.wikipedia.org/wiki/Content_Security_Policy">Content
332 Security Policy standard</a> nor its ability to "call home" when a
333 browser detect a policy breach (I do not follow web page design
334 development much these days), and found the talk very illuminating.</p>
335
336 <p>The mechanism allow a web site owner to use HTTP headers to tell
337 visitors web browser which sources (internal and external) are allowed to
338 be used on the web site. Thus it become possible to enforce a "only
339 local content" policy despite web designers urge to fetch programs
340 from random sites on the Internet, like the one
341 <a href="https://securityaffairs.co/wordpress/68966/hacking/browsealoud-plugin-hack.html">enabling
342 the attack</a> reported by Scott Helme earlier this year.</p>
343
344 <p>Using CSP seem like an obvious thing for a site admin to implement
345 to take some control over the information leak that occur when
346 external sources are used to render web pages, it is a mystery more
347 sites are not using CSP? It is being
348 <a href="https://www.w3.org/TR/CSP/">standardized under W3C</a> these
349 days, and is supposed by most web browsers</p>
350
351 <p>I managed to find <a href="https://github.com/mozilla/django-csp">a
352 Django middleware for implementing CSP</a> and was happy to discover
353 it was already in Debian. I plan to use it to add CSP support to the
354 Frikanalen web site soon.</p>
355
356 <p>As usual, if you use Bitcoin and want to show your support of my
357 activities, please send Bitcoin donations to my address
358 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
359
360 </div>
361 <div class="tags">
362
363
364 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>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</a>.
365
366
367 </div>
368 </div>
369 <div class="padding"></div>
370
371 <div class="entry">
372 <div class="title">
373 <a href="http://people.skolelinux.org/pere/blog/New_and_improved_Frikanalen_Kodi_addon_version_0_0_3.html">New and improved Frikanalen Kodi addon version 0.0.3</a>
374 </div>
375 <div class="date">
376 8th November 2018
377 </div>
378 <div class="body">
379 <p>If you read my blog regularly, you probably know I am involved in
380 running and developing the <a href="https://frikanalen.no/">Norwegian
381 TV channel Frikanalen</a>. It is an open channel, allowing everyone
382 in Norway to publish videos on a TV channel with national coverage.
383 You can think of it as Youtube for national television.
384 In addition to distribution on RiksTV and Uninett, Frikanalen is also
385 available as a Kodi addon. The last few days I have updated the code
386 to add more features. A
387 <a href="https://kodi.tv/addon/plugins-video-add-ons/frikanalen-nett-tv">new
388 and improved version 0.0.3 Frikanalen addon</a> was just made
389 available via the Kodi repositories. This new version include a
390 option to browse videos by category, as well as free text search
391 in the video archive. It will now also show the video duration in the
392 video lists, which were missing earlier. A new and experimental
393 link to the HD video stream currently being worked on is provided, for
394 those that want to see what the <a href="https://casparcg.com/">CasparCG</a>
395 output look like. The alternative is the SD video stream, generated
396 using MLT. CasparCG is controlled by our
397 <a href="https://github.com/Frikanalen/mltplayout/">mltplayout
398 server</a> which instead of talking to mlt is giving PLAY instructions
399 to the CasparCG server when it is time to start a new program.</p>
400
401 <p>By now, you are probably wondering what kind of content is being
402 played on the channel. These days, it is filled with technical
403 presentations like those from <a href="https://www.nuug.no/">NUUG</a>,
404 <a href="https://www.debconf.org/">Debconf</a>, Makercon, and TED,
405 but there are also some periods with
406 <a href="https://www.empo.no/">EMPT TV</a> and
407 <a href="https://www.p7.no/">P7</a>.
408
409 <p>As usual, if you use Bitcoin and want to show your support of my
410 activities, please send Bitcoin donations to my address
411 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
412
413 </div>
414 <div class="tags">
415
416
417 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen</a>, <a href="http://people.skolelinux.org/pere/blog/tags/kodi">kodi</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
418
419
420 </div>
421 </div>
422 <div class="padding"></div>
423
424 <div class="entry">
425 <div class="title">
426 <a href="http://people.skolelinux.org/pere/blog/Time_for_an_official_MIME_type_for_patches_.html">Time for an official MIME type for patches?</a>
427 </div>
428 <div class="date">
429 1st November 2018
430 </div>
431 <div class="body">
432 <p>As part of my involvement in
433 <a href="https://gitlab.com/OsloMet-ABI/nikita-noark5-core">the Nikita
434 archive API project</a>, I've been importing a fairly large lump of
435 emails into a test instance of the archive to see how well this would
436 go. I picked a subset of <a href="https://notmuchmail.org/">my
437 notmuch email database</a>, all public emails sent to me via
438 @lists.debian.org, giving me a set of around 216 000 emails to import.
439 In the process, I had a look at the various attachments included in
440 these emails, to figure out what to do with attachments, and noticed
441 that one of the most common attachment formats do not have
442 <a href="https://www.iana.org/assignments/media-types/media-types.xhtml">an
443 official MIME type</a> registered with IANA/IETF. The output from
444 diff, ie the input for patch, is on the top 10 list of formats
445 included in these emails. At the moment people seem to use either
446 text/x-patch or text/x-diff, but neither is officially registered. It
447 would be better if one official MIME type were registered and used
448 everywhere.</p>
449
450 <p>To try to get one official MIME type for these files, I've brought
451 up the topic on
452 <a href="https://www.ietf.org/mailman/listinfo/media-types">the
453 media-types mailing list</a>. If you are interested in discussion
454 which MIME type to use as the official for patch files, or involved in
455 making software using a MIME type for patches, perhaps you would like
456 to join the discussion?</p>
457
458 <p>As usual, if you use Bitcoin and want to show your support of my
459 activities, please send Bitcoin donations to my address
460 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
461
462 </div>
463 <div class="tags">
464
465
466 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/standard">standard</a>.
467
468
469 </div>
470 </div>
471 <div class="padding"></div>
472
473 <div class="entry">
474 <div class="title">
475 <a href="http://people.skolelinux.org/pere/blog/Measuring_the_speaker_frequency_response_using_the_AUDMES_free_software_GUI___nice_free_software.html">Measuring the speaker frequency response using the AUDMES free software GUI - nice free software</a>
476 </div>
477 <div class="date">
478 22nd October 2018
479 </div>
480 <div class="body">
481 <p><img src="http://people.skolelinux.org/pere/blog/images/2018-10-22-audmes-measure-speakers.png" align="right" width="40%"/></p>
482
483 <p>My current home stereo is a patchwork of various pieces I got on
484 flee markeds over the years. It is amazing what kind of equipment
485 show up there. I've been wondering for a while if it was possible to
486 measure how well this equipment is working together, and decided to
487 see how far I could get using free software. After trawling the web I
488 came across an article from DIY Audio and Video on
489 <a href="https://www.diyaudioandvideo.com/Tutorial/SpeakerResponseTesting/">Speaker
490 Testing and Analysis</a> describing how to test speakers, and it listing
491 several software options, among them
492 <a href="https://sourceforge.net/projects/audmes/">AUDio MEasurement
493 System (AUDMES)</a>. It is the only free software system I could find
494 focusing on measuring speakers and audio frequency response. In the
495 process I also found an interesting article from NOVO on
496 <a href="http://novo.press/understanding-speaker-specifications-and-frequency-response/">Understanding
497 Speaker Specifications and Frequency Response</a> and an article from
498 ecoustics on
499 <a href="https://www.ecoustics.com/articles/understanding-speaker-frequency-response/">Understanding
500 Speaker Frequency Response</a>, with a lot of information on what to
501 look for and how to interpret the graphs. Armed with this knowledge,
502 I set out to measure the state of my speakers.</p>
503
504 <p>The first hurdle was that AUDMES hadn't seen a commit for 10 years
505 and did not build with current compilers and libraries. I got in
506 touch with its author, who no longer was spending time on the program
507 but gave me write access to the subversion repository on Sourceforge.
508 The end result is that now the code build on Linux and is capable of
509 saving and loading the collected frequency response data in CSV
510 format. The application is quite nice and flexible, and I was able to
511 select the input and output audio interfaces independently. This made
512 it possible to use a USB mixer as the input source, while sending
513 output via my laptop headphone connection. I lacked the hardware and
514 cabling to figure out a different way to get independent cabling to
515 speakers and microphone.</p>
516
517 <p>Using this setup I could see how a large range of high frequencies
518 apparently were not making it out of my speakers. The picture show
519 the frequency response measurement of one of the speakers. Note the
520 frequency lines seem to be slightly misaligned, compared to the CSV
521 output from the program. I can not hear several of these are high
522 frequencies, according to measurement from
523 <a href="http://freehearingtestsoftware.com">Free Hearing Test
524 Software</a>, an freeware system to measure your hearing (still
525 looking for a free software alternative), so I do not know if they are
526 coming out out the speakers. I thus do not quite know how to figure
527 out if the missing frequencies is a problem with the microphone, the
528 amplifier or the speakers, but I managed to rule out the audio card in my
529 PC by measuring my Bose noise canceling headset using its own
530 microphone. This setup was able to see the high frequency tones, so
531 the problem with my stereo had to be in the amplifier or speakers.</p>
532
533 <p>Anyway, to try to role out one factor I ended up picking up a new
534 set of speakers at a flee marked, and these work a lot better than the
535 old speakers, so I guess the microphone and amplifier is OK. If you
536 need to measure your own speakers, check out AUDMES. If more people
537 get involved, perhaps the project could become good enough to
538 <a href="https://bugs.debian.org/910876">include in Debian</a>? And if
539 you know of some other free software to measure speakers and amplifier
540 performance, please let me know. I am aware of the freeware option
541 <a href="https://www.roomeqwizard.com/">REW</a>, but I want something
542 that can be developed also when the vendor looses interest.</p>
543
544 <p>As usual, if you use Bitcoin and want to show your support of my
545 activities, please send Bitcoin donations to my address
546 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
547
548 </div>
549 <div class="tags">
550
551
552 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software</a>.
553
554
555 </div>
556 </div>
557 <div class="padding"></div>
558
559 <div class="entry">
560 <div class="title">
561 <a href="http://people.skolelinux.org/pere/blog/Web_browser_integration_of_VLC_with_Bittorrent_support.html">Web browser integration of VLC with Bittorrent support</a>
562 </div>
563 <div class="date">
564 21st October 2018
565 </div>
566 <div class="body">
567 <p>Bittorrent is as far as I know, currently the most efficient way to
568 distribute content on the Internet. It is used all by all sorts of
569 content providers, from national TV stations like
570 <a href="https://www.nrk.no/">NRK</a>, Linux distributors like
571 <a href="https://www.debian.org/">Debian</a> and
572 <a href="https://www.ubuntu.com/">Ubuntu</a>, and of course the
573 <a href="https://archive.org/">Internet archive</A>.
574
575 <p>Almost a month ago
576 <a href="https://tracker.debian.org/pkg/vlc-plugin-bittorrent">a new
577 package adding Bittorrent support to VLC</a> became available in
578 Debian testing and unstable. To test it, simply install it like
579 this:</p>
580
581 <p><pre>
582 apt install vlc-plugin-bittorrent
583 </pre></p>
584
585 <p>Since the plugin was made available for the first time in Debian,
586 several improvements have been made to it. In version 2.2-4, now
587 available in both testing and unstable, a desktop file is provided to
588 teach browsers to start VLC when the user click on torrent files or
589 magnet links. The last part is thanks to me finally understanding
590 what the strange x-scheme-handler style MIME types in desktop files
591 are used for. By adding x-scheme-handler/magnet to the MimeType entry
592 in the desktop file, at least the browsers Firefox and Chromium will
593 suggest to start VLC when selecting a magnet URI on a web page. The
594 end result is that now, with the plugin installed in Buster and Sid,
595 one can visit any
596 <a href="https://archive.org/details/CopyingIsNotTheft1080p">Internet
597 Archive page with movies</a> using a web browser and click on the
598 torrent link to start streaming the movie.</p>
599
600 <p>Note, there is still some misfeatures in the plugin. One is the
601 fact that it will hang and
602 <a href="https://github.com/johang/vlc-bittorrent/issues/13">block VLC
603 from exiting until the torrent streaming starts</a>. Another is the
604 fact that it
605 <a href="https://github.com/johang/vlc-bittorrent/issues/9">will pick
606 and play a random file in a multi file torrent</a>. This is not
607 always the video file you want. Combined with the first it can be a
608 bit hard to get the video streaming going. But when it work, it seem
609 to do a good job.</p>
610
611 <p>For the Debian packaging, I would love to find a good way to test
612 if the plugin work with VLC using autopkgtest. I tried, but do not
613 know enough of the inner workings of VLC to get it working. For now
614 the autopkgtest script is only checking if the .so file was
615 successfully loaded by VLC. If you have any suggestions, please
616 submit a patch to the Debian bug tracking system.</p>
617
618 <p>As usual, if you use Bitcoin and want to show your support of my
619 activities, please send Bitcoin donations to my address
620 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
621
622 </div>
623 <div class="tags">
624
625
626 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/verkidetfri">verkidetfri</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
627
628
629 </div>
630 </div>
631 <div class="padding"></div>
632
633 <div class="entry">
634 <div class="title">
635 <a href="http://people.skolelinux.org/pere/blog/Release_0_2_of_free_software_archive_system_Nikita_announced.html">Release 0.2 of free software archive system Nikita announced</a>
636 </div>
637 <div class="date">
638 18th October 2018
639 </div>
640 <div class="body">
641 <p>This morning, the new release of the
642 <a href="https://gitlab.com/OsloMet-ABI/nikita-noark5-core/">Nikita
643 Noark 5 core project</a> was
644 <a href="https://lists.nuug.no/pipermail/nikita-noark/2018-October/000406.html">announced
645 on the project mailing list</a>. The free software solution is an
646 implementation of the Norwegian archive standard Noark 5 used by
647 government offices in Norway. These were the changes in version 0.2
648 since version 0.1.1 (from NEWS.md):
649
650 <ul>
651 <li>Fix typos in REL names</li>
652 <li>Tidy up error message reporting</li>
653 <li>Fix issue where we used Integer.valueOf(), not Integer.getInteger()</li>
654 <li>Change some String handling to StringBuffer</li>
655 <li>Fix error reporting</li>
656 <li>Code tidy-up</li>
657 <li>Fix issue using static non-synchronized SimpleDateFormat to avoid
658 race conditions</li>
659 <li>Fix problem where deserialisers were treating integers as strings</li>
660 <li>Update methods to make them null-safe</li>
661 <li>Fix many issues reported by coverity</li>
662 <li>Improve equals(), compareTo() and hash() in domain model</li>
663 <li>Improvements to the domain model for metadata classes</li>
664 <li>Fix CORS issues when downloading document</li>
665 <li>Implementation of case-handling with registryEntry and document upload</li>
666 <li>Better support in Javascript for OPTIONS</li>
667 <li>Adding concept description of mail integration</li>
668 <li>Improve setting of default values for GET on ny-journalpost</li>
669 <li>Better handling of required values during deserialisation </li>
670 <li>Changed tilknyttetDato (M620) from date to dateTime</li>
671 <li>Corrected some opprettetDato (M600) (de)serialisation errors.</li>
672 <li>Improve parse error reporting.</li>
673 <li>Started on OData search and filtering.</li>
674 <li>Added Contributor Covenant Code of Conduct to project.</li>
675 <li>Moved repository and project from Github to Gitlab.</li>
676 <li>Restructured repository, moved code into src/ and web/.</li>
677 <li>Updated code to use Spring Boot version 2.</li>
678 <li>Added support for OAuth2 authentication.</li>
679 <li>Fixed several bugs discovered by Coverity.</li>
680 <li>Corrected handling of date/datetime fields.</li>
681 <li>Improved error reporting when rejecting during deserializatoin.</li>
682 <li>Adjusted default values provided for ny-arkivdel, ny-mappe,
683 ny-saksmappe, ny-journalpost and ny-dokumentbeskrivelse.</li>
684 <li>Several fixes for korrespondansepart*.</li>
685 <li>Updated web GUI:
686 <ul>
687 <li>Now handle both file upload and download.</li>
688 <li>Uses new OAuth2 authentication for login.</li>
689 <li>Forms now fetches default values from API using GET.</li>
690 <li>Added RFC 822 (email), TIFF and JPEG to list of possible file formats.</li>
691 </ul></li>
692 </ul>
693
694 <p>The changes and improvements are extensive. Running diffstat on
695 the changes between git tab 0.1.1 and 0.2 show 1098 files changed,
696 108666 insertions(+), 54066 deletions(-).</p>
697
698 <p>If free and open standardized archiving API sound interesting to
699 you, please contact us on IRC
700 (<a href="irc://irc.freenode.net/%23nikita">#nikita on
701 irc.freenode.net</a>) or email
702 (<a href="https://lists.nuug.no/mailman/listinfo/nikita-noark">nikita-noark
703 mailing list</a>).</p>
704
705 <p>As usual, if you use Bitcoin and want to show your support of my
706 activities, please send Bitcoin donations to my address
707 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
708
709 </div>
710 <div class="tags">
711
712
713 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>.
714
715
716 </div>
717 </div>
718 <div class="padding"></div>
719
720 <div class="entry">
721 <div class="title">
722 <a href="http://people.skolelinux.org/pere/blog/Fetching_trusted_timestamps_using_the_rfc3161ng_python_module.html">Fetching trusted timestamps using the rfc3161ng python module</a>
723 </div>
724 <div class="date">
725 8th October 2018
726 </div>
727 <div class="body">
728 <p>I have earlier covered the basics of trusted timestamping using the
729 'openssl ts' client. See blog post for
730 <a href="http://people.skolelinux.org/pere/blog/Public_Trusted_Timestamping_services_for_everyone.html">2014</a>,
731 <a href="http://people.skolelinux.org/pere/blog/syslog_trusted_timestamp___chain_of_trusted_timestamps_for_your_syslog.html">2016</a>
732 and
733 <a href="http://people.skolelinux.org/pere/blog/Idea_for_storing_trusted_timestamps_in_a_Noark_5_archive.html">2017</a>
734 for those stories. But some times I want to integrate the timestamping
735 in other code, and recently I needed to integrate it into Python.
736 After searching a bit, I found
737 <a href="https://dev.entrouvert.org/projects/python-rfc3161">the
738 rfc3161 library</a> which seemed like a good fit, but I soon
739 discovered it only worked for python version 2, and I needed something
740 that work with python version 3. Luckily I next came across
741 <a href="https://github.com/trbs/rfc3161ng/">the rfc3161ng library</a>,
742 a fork of the original rfc3161 library. Not only is it working with
743 python 3, it have fixed a few of the bugs in the original library, and
744 it has an active maintainer. I decided to wrap it up and make it
745 <a href="https://tracker.debian.org/pkg/python-rfc3161ng">available in
746 Debian</a>, and a few days ago it entered Debian unstable and testing.</p>
747
748 <p>Using the library is fairly straight forward. The only slightly
749 problematic step is to fetch the required certificates to verify the
750 timestamp. For some services it is straight forward, while for others
751 I have not yet figured out how to do it. Here is a small standalone
752 code example based on of the integration tests in the library code:</p>
753
754 <pre>
755 #!/usr/bin/python3
756
757 """
758
759 Python 3 script demonstrating how to use the rfc3161ng module to
760 get trusted timestamps.
761
762 The license of this code is the same as the license of the rfc3161ng
763 library, ie MIT/BSD.
764
765 """
766
767 import os
768 import pyasn1.codec.der
769 import rfc3161ng
770 import subprocess
771 import tempfile
772 import urllib.request
773
774 def store(f, data):
775 f.write(data)
776 f.flush()
777 f.seek(0)
778
779 def fetch(url, f=None):
780 response = urllib.request.urlopen(url)
781 data = response.read()
782 if f:
783 store(f, data)
784 return data
785
786 def main():
787 with tempfile.NamedTemporaryFile() as cert_f,\
788 tempfile.NamedTemporaryFile() as ca_f,\
789 tempfile.NamedTemporaryFile() as msg_f,\
790 tempfile.NamedTemporaryFile() as tsr_f:
791
792 # First fetch certificates used by service
793 certificate_data = fetch('https://freetsa.org/files/tsa.crt', cert_f)
794 ca_data_data = fetch('https://freetsa.org/files/cacert.pem', ca_f)
795
796 # Then timestamp the message
797 timestamper = \
798 rfc3161ng.RemoteTimestamper('http://freetsa.org/tsr',
799 certificate=certificate_data)
800 data = b"Python forever!\n"
801 tsr = timestamper(data=data, return_tsr=True)
802
803 # Finally, convert message and response to something 'openssl ts' can verify
804 store(msg_f, data)
805 store(tsr_f, pyasn1.codec.der.encoder.encode(tsr))
806 args = ["openssl", "ts", "-verify",
807 "-data", msg_f.name,
808 "-in", tsr_f.name,
809 "-CAfile", ca_f.name,
810 "-untrusted", cert_f.name]
811 subprocess.check_call(args)
812
813 if '__main__' == __name__:
814 main()
815 </pre>
816
817 <p>The code fetches the required certificates, store them as temporary
818 files, timestamp a simple message, store the message and timestamp to
819 disk and ask 'openssl ts' to verify the timestamp. A timestamp is
820 around 1.5 kiB in size, and should be fairly easy to store for future
821 use.</p>
822
823 <p>As usual, if you use Bitcoin and want to show your support of my
824 activities, please send Bitcoin donations to my address
825 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
826
827 </div>
828 <div class="tags">
829
830
831 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>.
832
833
834 </div>
835 </div>
836 <div class="padding"></div>
837
838 <div class="entry">
839 <div class="title">
840 <a href="http://people.skolelinux.org/pere/blog/Automatic_Google_Drive_sync_using_grive_in_Debian.html">Automatic Google Drive sync using grive in Debian</a>
841 </div>
842 <div class="date">
843 4th October 2018
844 </div>
845 <div class="body">
846 <p>A few days, I rescued a Windows victim over to Debian. To try to
847 rescue the remains, I helped set up automatic sync with Google Drive.
848 I did not find any sensible Debian package handling this
849 automatically, so I rebuild the grive2 source from
850 <a href="http://www.webupd8.org/">the Ubuntu UPD8 PPA</a> to do the
851 task and added a autostart desktop entry and a small shell script to
852 run in the background while the user is logged in to do the sync.
853 Here is a sketch of the setup for future reference.</p>
854
855 <p>I first created <tt>~/googledrive</tt>, entered the directory and
856 ran '<tt>grive -a</tt>' to authenticate the machine/user. Next, I
857 created a autostart hook in <tt>~/.config/autostart/grive.desktop</tt>
858 to start the sync when the user log in:</p>
859
860 <p><blockquote><pre>
861 [Desktop Entry]
862 Name=Google drive autosync
863 Type=Application
864 Exec=/home/user/bin/grive-sync
865 </pre></blockquote></p>
866
867 <p>Finally, I wrote the <tt>~/bin/grive-sync</tt> script to sync
868 ~/googledrive/ with the files in Google Drive.</p>
869
870 <p><blockquote><pre>
871 #!/bin/sh
872 set -e
873 cd ~/
874 cleanup() {
875 if [ "$syncpid" ] ; then
876 kill $syncpid
877 fi
878 }
879 trap cleanup EXIT INT QUIT
880 /usr/lib/grive/grive-sync.sh listen googledrive 2>&1 | sed "s%^%$0:%" &
881 syncpdi=$!
882 while true; do
883 if ! xhost >/dev/null 2>&1 ; then
884 echo "no DISPLAY, exiting as the user probably logged out"
885 exit 1
886 fi
887 if [ ! -e /run/user/1000/grive-sync.sh_googledrive ] ; then
888 /usr/lib/grive/grive-sync.sh sync googledrive
889 fi
890 sleep 300
891 done 2>&1 | sed "s%^%$0:%"
892 </pre></blockquote></p>
893
894 <p>Feel free to use the setup if you want. It can be assumed to be
895 GNU GPL v2 licensed (or any later version, at your leisure), but I
896 doubt this code is possible to claim copyright on.</p>
897
898 <p>As usual, if you use Bitcoin and want to show your support of my
899 activities, please send Bitcoin donations to my address
900 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
901
902 </div>
903 <div class="tags">
904
905
906 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>.
907
908
909 </div>
910 </div>
911 <div class="padding"></div>
912
913 <div class="entry">
914 <div class="title">
915 <a href="http://people.skolelinux.org/pere/blog/Valutakrambod___A_python_and_bitcoin_love_story.html">Valutakrambod - A python and bitcoin love story</a>
916 </div>
917 <div class="date">
918 29th September 2018
919 </div>
920 <div class="body">
921 <p>It would come as no surprise to anyone that I am interested in
922 bitcoins and virtual currencies. I've been keeping an eye on virtual
923 currencies for many years, and it is part of the reason a few months
924 ago, I started writing a python library for collecting currency
925 exchange rates and trade on virtual currency exchanges. I decided to
926 name the end result valutakrambod, which perhaps can be translated to
927 small currency shop.</p>
928
929 <p>The library uses the tornado python library to handle HTTP and
930 websocket connections, and provide a asynchronous system for
931 connecting to and tracking several services. The code is available
932 from
933 <a href="http://github.com/petterreinholdtsen/valutakrambod">github</a>.</p>
934
935 </p>There are two example clients of the library. One is very simple and
936 list every updated buy/sell price received from the various services.
937 This code is started by running bin/btc-rates and call the client code
938 in valutakrambod/client.py. The simple client look like this:</p>
939
940 <p><blockquote><pre>
941 import functools
942 import tornado.ioloop
943 import valutakrambod
944 class SimpleClient(object):
945 def __init__(self):
946 self.services = []
947 self.streams = []
948 pass
949 def newdata(self, service, pair, changed):
950 print("%-15s %s-%s: %8.3f %8.3f" % (
951 service.servicename(),
952 pair[0],
953 pair[1],
954 service.rates[pair]['ask'],
955 service.rates[pair]['bid'])
956 )
957 async def refresh(self, service):
958 await service.fetchRates(service.wantedpairs)
959 def run(self):
960 self.ioloop = tornado.ioloop.IOLoop.current()
961 self.services = valutakrambod.service.knownServices()
962 for e in self.services:
963 service = e()
964 service.subscribe(self.newdata)
965 stream = service.websocket()
966 if stream:
967 self.streams.append(stream)
968 else:
969 # Fetch information from non-streaming services immediately
970 self.ioloop.call_later(len(self.services),
971 functools.partial(self.refresh, service))
972 # as well as regularly
973 service.periodicUpdate(60)
974 for stream in self.streams:
975 stream.connect()
976 try:
977 self.ioloop.start()
978 except KeyboardInterrupt:
979 print("Interrupted by keyboard, closing all connections.")
980 pass
981 for stream in self.streams:
982 stream.close()
983 </pre></blockquote></p>
984
985 <p>The library client loops over all known "public" services,
986 initialises it, subscribes to any updates from the service, checks and
987 activates websocket streaming if the service provide it, and if no
988 streaming is supported, fetches information from the service and sets
989 up a periodic update every 60 seconds. The output from this client
990 can look like this:</p>
991
992 <p><blockquote><pre>
993 Bl3p BTC-EUR: 5687.110 5653.690
994 Bl3p BTC-EUR: 5687.110 5653.690
995 Bl3p BTC-EUR: 5687.110 5653.690
996 Hitbtc BTC-USD: 6594.560 6593.690
997 Hitbtc BTC-USD: 6594.560 6593.690
998 Bl3p BTC-EUR: 5687.110 5653.690
999 Hitbtc BTC-USD: 6594.570 6593.690
1000 Bitstamp EUR-USD: 1.159 1.154
1001 Hitbtc BTC-USD: 6594.570 6593.690
1002 Hitbtc BTC-USD: 6594.580 6593.690
1003 Hitbtc BTC-USD: 6594.580 6593.690
1004 Hitbtc BTC-USD: 6594.580 6593.690
1005 Bl3p BTC-EUR: 5687.110 5653.690
1006 Paymium BTC-EUR: 5680.000 5620.240
1007 </pre></blockquote></p>
1008
1009 <p>The exchange order book is tracked in addition to the best buy/sell
1010 price, for those that need to know the details.</p>
1011
1012 <p>The other example client is focusing on providing a curses view
1013 with updated buy/sell prices as soon as they are received from the
1014 services. This code is located in bin/btc-rates-curses and activated
1015 by using the '-c' argument. Without the argument the "curses" output
1016 is printed without using curses, which is useful for debugging. The
1017 curses view look like this:</p>
1018
1019 <p><blockquote><pre>
1020 Name Pair Bid Ask Spr Ftcd Age
1021 BitcoinsNorway BTCEUR 5591.8400 5711.0800 2.1% 16 nan 60
1022 Bitfinex BTCEUR 5671.0000 5671.2000 0.0% 16 22 59
1023 Bitmynt BTCEUR 5580.8000 5807.5200 3.9% 16 41 60
1024 Bitpay BTCEUR 5663.2700 nan nan% 15 nan 60
1025 Bitstamp BTCEUR 5664.8400 5676.5300 0.2% 0 1 1
1026 Bl3p BTCEUR 5653.6900 5684.9400 0.5% 0 nan 19
1027 Coinbase BTCEUR 5600.8200 5714.9000 2.0% 15 nan nan
1028 Kraken BTCEUR 5670.1000 5670.2000 0.0% 14 17 60
1029 Paymium BTCEUR 5620.0600 5680.0000 1.1% 1 7515 nan
1030 BitcoinsNorway BTCNOK 52898.9700 54034.6100 2.1% 16 nan 60
1031 Bitmynt BTCNOK 52960.3200 54031.1900 2.0% 16 41 60
1032 Bitpay BTCNOK 53477.7833 nan nan% 16 nan 60
1033 Coinbase BTCNOK 52990.3500 54063.0600 2.0% 15 nan nan
1034 MiraiEx BTCNOK 52856.5300 54100.6000 2.3% 16 nan nan
1035 BitcoinsNorway BTCUSD 6495.5300 6631.5400 2.1% 16 nan 60
1036 Bitfinex BTCUSD 6590.6000 6590.7000 0.0% 16 23 57
1037 Bitpay BTCUSD 6564.1300 nan nan% 15 nan 60
1038 Bitstamp BTCUSD 6561.1400 6565.6200 0.1% 0 2 1
1039 Coinbase BTCUSD 6504.0600 6635.9700 2.0% 14 nan 117
1040 Gemini BTCUSD 6567.1300 6573.0700 0.1% 16 89 nan
1041 Hitbtc+BTCUSD 6592.6200 6594.2100 0.0% 0 0 0
1042 Kraken BTCUSD 6565.2000 6570.9000 0.1% 15 17 58
1043 Exchangerates EURNOK 9.4665 9.4665 0.0% 16 107789 nan
1044 Norgesbank EURNOK 9.4665 9.4665 0.0% 16 107789 nan
1045 Bitstamp EURUSD 1.1537 1.1593 0.5% 4 5 1
1046 Exchangerates EURUSD 1.1576 1.1576 0.0% 16 107789 nan
1047 BitcoinsNorway LTCEUR 1.0000 49.0000 98.0% 16 nan nan
1048 BitcoinsNorway LTCNOK 492.4800 503.7500 2.2% 16 nan 60
1049 BitcoinsNorway LTCUSD 1.0221 49.0000 97.9% 15 nan nan
1050 Norgesbank USDNOK 8.1777 8.1777 0.0% 16 107789 nan
1051 </pre></blockquote></p>
1052
1053 <p>The code for this client is too complex for a simple blog post, so
1054 you will have to check out the git repository to figure out how it
1055 work. What I can tell is how the three last numbers on each line
1056 should be interpreted. The first is how many seconds ago information
1057 was received from the service. The second is how long ago, according
1058 to the service, the provided information was updated. The last is an
1059 estimate on how often the buy/sell values change.</p>
1060
1061 <p>If you find this library useful, or would like to improve it, I
1062 would love to hear from you. Note that for some of the services I've
1063 implemented a trading API. It might be the topic of a future blog
1064 post.</p>
1065
1066 <p>As usual, if you use Bitcoin and want to show your support of my
1067 activities, please send Bitcoin donations to my address
1068 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
1069
1070 </div>
1071 <div class="tags">
1072
1073
1074 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
1075
1076
1077 </div>
1078 </div>
1079 <div class="padding"></div>
1080
1081 <div class="entry">
1082 <div class="title">
1083 <a href="http://people.skolelinux.org/pere/blog/VLC_in_Debian_now_can_do_bittorrent_streaming.html">VLC in Debian now can do bittorrent streaming</a>
1084 </div>
1085 <div class="date">
1086 24th September 2018
1087 </div>
1088 <div class="body">
1089 <p>Back in February, I got curious to see
1090 <a href="http://people.skolelinux.org/pere/blog/Using_VLC_to_stream_bittorrent_sources.html">if
1091 VLC now supported Bittorrent streaming</a>. It did not, despite the
1092 fact that the idea and code to handle such streaming had been floating
1093 around for years. I did however find
1094 <a href="https://github.com/johang/vlc-bittorrent">a standalone plugin
1095 for VLC</a> to do it, and half a year later I decided to wrap up the
1096 plugin and get it into Debian. I uploaded it to NEW a few days ago,
1097 and am very happy to report that it
1098 <a href="https://tracker.debian.org/pkg/vlc-plugin-bittorrent">entered
1099 Debian</a> a few hours ago, and should be available in Debian/Unstable
1100 tomorrow, and Debian/Testing in a few days.</p>
1101
1102 <p>With the vlc-plugin-bittorrent package installed you should be able
1103 to stream videos using a simple call to</p>
1104
1105 <p><blockquote><pre>
1106 vlc https://archive.org/download/TheGoat/TheGoat_archive.torrent
1107 </pre></blockquote></p>
1108
1109 </p>It can handle magnet links too. Now if only native vlc had
1110 bittorrent support. Then a lot more would be helping each other to
1111 share public domain and creative commons movies. The plugin need some
1112 stability work with seeking and picking the right file in a torrent
1113 with many files, but is already usable. Please note that the plugin
1114 is not removing downloaded files when vlc is stopped, so it can fill
1115 up your disk if you are not careful. Have fun. :)</p>
1116
1117 <p>I would love to get help maintaining this package. Get in touch if
1118 you are interested.</p>
1119
1120 <p>As usual, if you use Bitcoin and want to show your support of my
1121 activities, please send Bitcoin donations to my address
1122 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
1123
1124 </div>
1125 <div class="tags">
1126
1127
1128 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/verkidetfri">verkidetfri</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
1129
1130
1131 </div>
1132 </div>
1133 <div class="padding"></div>
1134
1135 <div class="entry">
1136 <div class="title">
1137 <a href="http://people.skolelinux.org/pere/blog/Using_the_Kodi_API_to_play_Youtube_videos.html">Using the Kodi API to play Youtube videos</a>
1138 </div>
1139 <div class="date">
1140 2nd September 2018
1141 </div>
1142 <div class="body">
1143 <p>I continue to explore my Kodi installation, and today I wanted to
1144 tell it to play a youtube URL I received in a chat, without having to
1145 insert search terms using the on-screen keyboard. After searching the
1146 web for API access to the Youtube plugin and testing a bit, I managed
1147 to find a recipe that worked. If you got a kodi instance with its API
1148 available from http://kodihost/jsonrpc, you can try the following to
1149 have check out a nice cover band.</p>
1150
1151 <p><blockquote><pre>curl --silent --header 'Content-Type: application/json' \
1152 --data-binary '{ "id": 1, "jsonrpc": "2.0", "method": "Player.Open",
1153 "params": {"item": { "file":
1154 "plugin://plugin.video.youtube/play/?video_id=LuRGVM9O0qg" } } }' \
1155 http://projector.local/jsonrpc</pre></blockquote></p>
1156
1157 <p>I've extended kodi-stream program to take a video source as its
1158 first argument. It can now handle direct video links, youtube links
1159 and 'desktop' to stream my desktop to Kodi. It is almost like a
1160 Chromecast. :)</p>
1161
1162 <p>As usual, if you use Bitcoin and want to show your support of my
1163 activities, please send Bitcoin donations to my address
1164 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
1165
1166 </div>
1167 <div class="tags">
1168
1169
1170 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/kodi">kodi</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
1171
1172
1173 </div>
1174 </div>
1175 <div class="padding"></div>
1176
1177 <div class="entry">
1178 <div class="title">
1179 <a href="http://people.skolelinux.org/pere/blog/Software_created_using_taxpayers__money_should_be_Free_Software.html">Software created using taxpayers’ money should be Free Software</a>
1180 </div>
1181 <div class="date">
1182 30th August 2018
1183 </div>
1184 <div class="body">
1185 <p>It might seem obvious that software created using tax money should
1186 be available for everyone to use and improve. Free Software
1187 Foundation Europe recentlystarted a campaign to help get more people
1188 to understand this, and I just signed the petition on
1189 <a href="https://publiccode.eu/">Public Money, Public Code</a> to help
1190 them. I hope you too will do the same.</p>
1191
1192 </div>
1193 <div class="tags">
1194
1195
1196 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>.
1197
1198
1199 </div>
1200 </div>
1201 <div class="padding"></div>
1202
1203 <div class="entry">
1204 <div class="title">
1205 <a href="http://people.skolelinux.org/pere/blog/A_bit_more_on_privacy_respecting_health_monitor___fitness_tracker.html">A bit more on privacy respecting health monitor / fitness tracker</a>
1206 </div>
1207 <div class="date">
1208 13th August 2018
1209 </div>
1210 <div class="body">
1211 <p>A few days ago, I wondered if there are any privacy respecting
1212 health monitors and/or fitness trackers available for sale these days.
1213 I would like to buy one, but do not want to share my personal data
1214 with strangers, nor be forced to have a mobile phone to get data out
1215 of the unit. I've received some ideas, and would like to share them
1216 with you.
1217
1218 One interesting data point was a pointer to a Free Software app for
1219 Android named
1220 <a href="https://github.com/Freeyourgadget/Gadgetbridge/">Gadgetbridge</a>.
1221 It provide cloudless collection and storing of data from a variety of
1222 trackers. Its
1223 <a href="https://github.com/Freeyourgadget/Gadgetbridge/#supported-devices">list
1224 of supported devices</a> is a good indicator for units where the
1225 protocol is fairly open, as it is obviously being handled by Free
1226 Software. Other units are reportedly encrypting the collected
1227 information with their own public key, making sure only the vendor
1228 cloud service is able to extract data from the unit. The people
1229 contacting me about Gadgetbirde said they were using
1230 <a href="https://us.amazfit.com/shop/bip?variant=336750">Amazfit
1231 Bip</a> and
1232 <a href="http://www.xiaomimi6phone.com/xiaomi-mi-band-3-features-release-date-rumors/">Xiaomi
1233 Band 3</a>.</p>
1234
1235 <p>I also got a suggestion to look at some of the units from Garmin.
1236 I was told their GPS watches can be connected via USB and show up as a
1237 USB storage device with
1238 <a href="https://www.gpsbabel.org/htmldoc-development/fmt_garmin_fit.html">Garmin
1239 FIT files</a> containing the collected measurements. While
1240 proprietary, FIT files apparently can be read at least by
1241 <a href="https://www.gpsbabel.org">GPSBabel</a> and the
1242 <a href="https://apps.nextcloud.com/apps/gpxpod">GpxPod</a> Nextcloud
1243 app. It is unclear to me if they can read step count and heart rate
1244 data. The person I talked to was using a
1245 <a href="https://buy.garmin.com/en-US/US/p/564291">Garmin Forerunner
1246 935</a>, which is a fairly expensive unit. I doubt it is worth it for
1247 a unit where the vendor clearly is trying its best to move from open
1248 to closed systems. I still remember when Garmin dropped NMEA support
1249 in its GPSes.</p>
1250
1251 <p>A final idea was to build ones own unit, perhaps by basing it on a
1252 wearable hardware platforms like
1253 <a href="https://learn.adafruit.com/flora-geo-watch">the Flora Geo
1254 Watch</a>. Sound like fun, but I had more money than time to spend on
1255 the topic, so I suspect it will have to wait for another time.</p>
1256
1257 <p>While I was working on tracking down links, I came across an
1258 inspiring TED talk by Dave Debronkart about
1259 <a href="https://archive.org/details/DavedeBronkart_2010X">being a
1260 e-patient</a>, and discovered the web site
1261 <a href="https://participatorymedicine.org/epatients/">Participatory
1262 Medicine</a>. If you too want to track your own health and fitness
1263 without having information about your private life floating around on
1264 computers owned by others, I recommend checking it out.</p>
1265
1266 <p>As usual, if you use Bitcoin and want to show your support of my
1267 activities, please send Bitcoin donations to my address
1268 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
1269
1270 </div>
1271 <div class="tags">
1272
1273
1274 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
1275
1276
1277 </div>
1278 </div>
1279 <div class="padding"></div>
1280
1281 <div class="entry">
1282 <div class="title">
1283 <a href="http://people.skolelinux.org/pere/blog/Privacy_respecting_health_monitor___fitness_tracker_.html">Privacy respecting health monitor / fitness tracker?</a>
1284 </div>
1285 <div class="date">
1286 7th August 2018
1287 </div>
1288 <div class="body">
1289 <p>Dear lazyweb,</p>
1290
1291 <p>I wonder, is there a fitness tracker / health monitor available for
1292 sale today that respect the users privacy? With this I mean a
1293 watch/bracelet capable of measuring pulse rate and other
1294 fitness/health related values (and by all means, also the correct time
1295 and location if possible), which is <strong>only</strong> provided for
1296 me to extract/read from the unit with computer without a radio beacon
1297 and Internet connection. In other words, it do not depend on a cell
1298 phone app, and do make the measurements available via other peoples
1299 computer (aka "the cloud"). The collected data should be available
1300 using only free software. I'm not interested in depending on some
1301 non-free software that will leave me high and dry some time in the
1302 future. I've been unable to find any such unit. I would like to buy
1303 it. The ones I have seen for sale here in Norway are proud to report
1304 that they share my health data with strangers (aka "cloud enabled").
1305 Is there an alternative? I'm not interested in giving money to people
1306 requiring me to accept "privacy terms" to allow myself to measure my
1307 own health.</p>
1308
1309 <p>As usual, if you use Bitcoin and want to show your support of my
1310 activities, please send Bitcoin donations to my address
1311 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
1312
1313 </div>
1314 <div class="tags">
1315
1316
1317 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
1318
1319
1320 </div>
1321 </div>
1322 <div class="padding"></div>
1323
1324 <div class="entry">
1325 <div class="title">
1326 <a href="http://people.skolelinux.org/pere/blog/Sharing_images_with_friends_and_family_using_RSS_and_EXIF_XMP_metadata.html">Sharing images with friends and family using RSS and EXIF/XMP metadata</a>
1327 </div>
1328 <div class="date">
1329 31st July 2018
1330 </div>
1331 <div class="body">
1332 <p>For a while now, I have looked for a sensible way to share images
1333 with my family using a self hosted solution, as it is unacceptable to
1334 place images from my personal life under the control of strangers
1335 working for data hoarders like Google or Dropbox. The last few days I
1336 have drafted an approach that might work out, and I would like to
1337 share it with you. I would like to publish images on a server under
1338 my control, and point some Internet connected display units using some
1339 free and open standard to the images I published. As my primary
1340 language is not limited to ASCII, I need to store metadata using
1341 UTF-8. Many years ago, I hoped to find a digital photo frame capable
1342 of reading a RSS feed with image references (aka using the
1343 &lt;enclosure&gt; RSS tag), but was unable to find a current supplier
1344 of such frames. In the end I gave up that approach.</p>
1345
1346 <p>Some months ago, I discovered that
1347 <a href="https://www.jwz.org/xscreensaver/">XScreensaver</a> is able to
1348 read images from a RSS feed, and used it to set up a screen saver on
1349 my home info screen, showing images from the Daily images feed from
1350 NASA. This proved to work well. More recently I discovered that
1351 <a href="https://kodi.tv">Kodi</a> (both using
1352 <a href="https://www.openelec.tv/">OpenELEC</a> and
1353 <a href="https://libreelec.tv">LibreELEC</a>) provide the
1354 <a href="https://github.com/grinsted/script.screensaver.feedreader">Feedreader</a>
1355 screen saver capable of reading a RSS feed with images and news. For
1356 fun, I used it this summer to test Kodi on my parents TV by hooking up
1357 a Raspberry PI unit with LibreELEC, and wanted to provide them with a
1358 screen saver showing selected pictures from my selection.</p>
1359
1360 <p>Armed with motivation and a test photo frame, I set out to generate
1361 a RSS feed for the Kodi instance. I adjusted my <a
1362 href="https://freedombox.org/">Freedombox</a> instance, created
1363 /var/www/html/privatepictures/, wrote a small Perl script to extract
1364 title and description metadata from the photo files and generate the
1365 RSS file. I ended up using Perl instead of python, as the
1366 libimage-exiftool-perl Debian package seemed to handle the EXIF/XMP
1367 tags I ended up using, while python3-exif did not. The relevant EXIF
1368 tags only support ASCII, so I had to find better alternatives. XMP
1369 seem to have the support I need.</p>
1370
1371 <p>I am a bit unsure which EXIF/XMP tags to use, as I would like to
1372 use tags that can be easily added/updated using normal free software
1373 photo managing software. I ended up using the tags set using this
1374 exiftool command, as these tags can also be set using digiKam:</p>
1375
1376 <blockquote><pre>
1377 exiftool -headline='The RSS image title' \
1378 -description='The RSS image description.' \
1379 -subject+=for-family photo.jpeg
1380 </pre></blockquote>
1381
1382 <p>I initially tried the "-title" and "keyword" tags, but they were
1383 invisible in digiKam, so I changed to "-headline" and "-subject". I
1384 use the keyword/subject 'for-family' to flag that the photo should be
1385 shared with my family. Images with this keyword set are located and
1386 copied into my Freedombox for the RSS generating script to find.</p>
1387
1388 <p>Are there better ways to do this? Get in touch if you have better
1389 suggestions.</p>
1390
1391 <p>As usual, if you use Bitcoin and want to show your support of my
1392 activities, please send Bitcoin donations to my address
1393 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
1394
1395 </div>
1396 <div class="tags">
1397
1398
1399 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>.
1400
1401
1402 </div>
1403 </div>
1404 <div class="padding"></div>
1405
1406 <div class="entry">
1407 <div class="title">
1408 <a href="http://people.skolelinux.org/pere/blog/Simple_streaming_the_Linux_desktop_to_Kodi_using_GStreamer_and_RTP.html">Simple streaming the Linux desktop to Kodi using GStreamer and RTP</a>
1409 </div>
1410 <div class="date">
1411 12th July 2018
1412 </div>
1413 <div class="body">
1414 <p>Last night, I wrote
1415 <a href="http://people.skolelinux.org/pere/blog/Streaming_the_Linux_desktop_to_Kodi_using_VLC_and_RTSP.html">a
1416 recipe to stream a Linux desktop using VLC to a instance of Kodi</a>.
1417 During the day I received valuable feedback, and thanks to the
1418 suggestions I have been able to rewrite the recipe into a much simpler
1419 approach requiring no setup at all. It is a single script that take
1420 care of it all.</p>
1421
1422 <p>This new script uses GStreamer instead of VLC to capture the
1423 desktop and stream it to Kodi. This fixed the video quality issue I
1424 saw initially. It further removes the need to add a m3u file on the
1425 Kodi machine, as it instead connects to
1426 <a href="https://kodi.wiki/view/JSON-RPC_API/v8">the JSON-RPC API in
1427 Kodi</a> and simply ask Kodi to play from the stream created using
1428 GStreamer. Streaming the desktop to Kodi now become trivial. Copy
1429 the script below, run it with the DNS name or IP address of the kodi
1430 server to stream to as the only argument, and watch your screen show
1431 up on the Kodi screen. Note, it depend on multicast on the local
1432 network, so if you need to stream outside the local network, the
1433 script must be modified. Also note, I have no idea if audio work, as
1434 I only care about the picture part.</p>
1435
1436 <blockquote><pre>
1437 #!/bin/sh
1438 #
1439 # Stream the Linux desktop view to Kodi. See
1440 # http://people.skolelinux.org/pere/blog/Streaming_the_Linux_desktop_to_Kodi_using_VLC_and_RTSP.html
1441 # for backgorund information.
1442
1443 # Make sure the stream is stopped in Kodi and the gstreamer process is
1444 # killed if something go wrong (for example if curl is unable to find the
1445 # kodi server). Do the same when interrupting this script.
1446 kodicmd() {
1447 host="$1"
1448 cmd="$2"
1449 params="$3"
1450 curl --silent --header 'Content-Type: application/json' \
1451 --data-binary "{ \"id\": 1, \"jsonrpc\": \"2.0\", \"method\": \"$cmd\", \"params\": $params }" \
1452 "http://$host/jsonrpc"
1453 }
1454 cleanup() {
1455 if [ -n "$kodihost" ] ; then
1456 # Stop the playing when we end
1457 playerid=$(kodicmd "$kodihost" Player.GetActivePlayers "{}" |
1458 jq .result[].playerid)
1459 kodicmd "$kodihost" Player.Stop "{ \"playerid\" : $playerid }" > /dev/null
1460 fi
1461 if [ "$gstpid" ] && kill -0 "$gstpid" >/dev/null 2>&1; then
1462 kill "$gstpid"
1463 fi
1464 }
1465 trap cleanup EXIT INT
1466
1467 if [ -n "$1" ]; then
1468 kodihost=$1
1469 shift
1470 else
1471 kodihost=kodi.local
1472 fi
1473
1474 mcast=239.255.0.1
1475 mcastport=1234
1476 mcastttl=1
1477
1478 pasrc=$(pactl list | grep -A2 'Source #' | grep 'Name: .*\.monitor$' | \
1479 cut -d" " -f2|head -1)
1480 gst-launch-1.0 ximagesrc use-damage=0 ! video/x-raw,framerate=30/1 ! \
1481 videoconvert ! queue2 ! \
1482 x264enc bitrate=8000 speed-preset=superfast tune=zerolatency qp-min=30 \
1483 key-int-max=15 bframes=2 ! video/x-h264,profile=high ! queue2 ! \
1484 mpegtsmux alignment=7 name=mux ! rndbuffersize max=1316 min=1316 ! \
1485 udpsink host=$mcast port=$mcastport ttl-mc=$mcastttl auto-multicast=1 sync=0 \
1486 pulsesrc device=$pasrc ! audioconvert ! queue2 ! avenc_aac ! queue2 ! mux. \
1487 > /dev/null 2>&1 &
1488 gstpid=$!
1489
1490 # Give stream a second to get going
1491 sleep 1
1492
1493 # Ask kodi to start streaming using its JSON-RPC API
1494 kodicmd "$kodihost" Player.Open \
1495 "{\"item\": { \"file\": \"udp://@$mcast:$mcastport\" } }" > /dev/null
1496
1497 # wait for gst to end
1498 wait "$gstpid"
1499 </pre></blockquote>
1500
1501 <p>I hope you find the approach useful. I know I do.</p>
1502
1503 <p>As usual, if you use Bitcoin and want to show your support of my
1504 activities, please send Bitcoin donations to my address
1505 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
1506
1507 </div>
1508 <div class="tags">
1509
1510
1511 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/kodi">kodi</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
1512
1513
1514 </div>
1515 </div>
1516 <div class="padding"></div>
1517
1518 <div class="entry">
1519 <div class="title">
1520 <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>
1521 </div>
1522 <div class="date">
1523 12th July 2018
1524 </div>
1525 <div class="body">
1526 <p>PS: See
1527 <ahref="http://people.skolelinux.org/pere/blog/Simple_streaming_the_Linux_desktop_to_Kodi_using_GStreamer_and_RTP.html">the
1528 followup post</a> for a even better approach.</p>
1529
1530 <p>A while back, I was asked by a friend how to stream the desktop to
1531 my projector connected to Kodi. I sadly had to admit that I had no
1532 idea, as it was a task I never had tried. Since then, I have been
1533 looking for a way to do so, preferable without much extra software to
1534 install on either side. Today I found a way that seem to kind of
1535 work. Not great, but it is a start.</p>
1536
1537 <p>I had a look at several approaches, for example
1538 <a href="https://github.com/mfoetsch/dlna_live_streaming">using uPnP
1539 DLNA as described in 2011</a>, but it required a uPnP server, fuse and
1540 local storage enough to store the stream locally. This is not going
1541 to work well for me, lacking enough free space, and it would
1542 impossible for my friend to get working.</p>
1543
1544 <p>Next, it occurred to me that perhaps I could use VLC to create a
1545 video stream that Kodi could play. Preferably using
1546 broadcast/multicast, to avoid having to change any setup on the Kodi
1547 side when starting such stream. Unfortunately, the only recipe I
1548 could find using multicast used the rtp protocol, and this protocol
1549 seem to not be supported by Kodi.</p>
1550
1551 <p>On the other hand, the rtsp protocol is working! Unfortunately I
1552 have to specify the IP address of the streaming machine in both the
1553 sending command and the file on the Kodi server. But it is showing my
1554 desktop, and thus allow us to have a shared look on the big screen at
1555 the programs I work on.</p>
1556
1557 <p>I did not spend much time investigating codeces. I combined the
1558 rtp and rtsp recipes from
1559 <a href="https://wiki.videolan.org/Documentation:Streaming_HowTo/Command_Line_Examples/">the
1560 VLC Streaming HowTo/Command Line Examples</a>, and was able to get
1561 this working on the desktop/streaming end.</p>
1562
1563 <blockquote><pre>
1564 vlc screen:// --sout \
1565 '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128}:rtp{dst=projector.local,port=1234,sdp=rtsp://192.168.11.4:8080/test.sdp}'
1566 </pre></blockquote>
1567
1568 <p>I ssh-ed into my Kodi box and created a file like this with the
1569 same IP address:</p>
1570
1571 <blockquote><pre>
1572 echo rtsp://192.168.11.4:8080/test.sdp \
1573 > /storage/videos/screenstream.m3u
1574 </pre></blockquote>
1575
1576 <p>Note the 192.168.11.4 IP address is my desktops IP address. As far
1577 as I can tell the IP must be hardcoded for this to work. In other
1578 words, if someone elses machine is going to do the steaming, you have
1579 to update screenstream.m3u on the Kodi machine and adjust the vlc
1580 recipe. To get started, locate the file in Kodi and select the m3u
1581 file while the VLC stream is running. The desktop then show up in my
1582 big screen. :)</p>
1583
1584 <p>When using the same technique to stream a video file with audio,
1585 the audio quality is really bad. No idea if the problem is package
1586 loss or bad parameters for the transcode. I do not know VLC nor Kodi
1587 enough to tell.</p>
1588
1589 <p><strong>Update 2018-07-12</strong>: Johannes Schauer send me a few
1590 succestions and reminded me about an important step. The "screen:"
1591 input source is only available once the vlc-plugin-access-extra
1592 package is installed on Debian. Without it, you will see this error
1593 message: "VLC is unable to open the MRL 'screen://'. Check the log
1594 for details." He further found that it is possible to drop some parts
1595 of the VLC command line to reduce the amount of hardcoded information.
1596 It is also useful to consider using cvlc to avoid having the VLC
1597 window in the desktop view. In sum, this give us this command line on
1598 the source end
1599
1600 <blockquote><pre>
1601 cvlc screen:// --sout \
1602 '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128}:rtp{sdp=rtsp://:8080/}'
1603 </pre></blockquote>
1604
1605 <p>and this on the Kodi end<p>
1606
1607 <blockquote><pre>
1608 echo rtsp://192.168.11.4:8080/ \
1609 > /storage/videos/screenstream.m3u
1610 </pre></blockquote>
1611
1612 <p>Still bad image quality, though. But I did discover that streaming
1613 a DVD using dvdsimple:///dev/dvd as the source had excellent video and
1614 audio quality, so I guess the issue is in the input or transcoding
1615 parts, not the rtsp part. I've tried to change the vb and ab
1616 parameters to use more bandwidth, but it did not make a
1617 difference.</p>
1618
1619 <p>I further received a suggestion from Einar Haraldseid to try using
1620 gstreamer instead of VLC, and this proved to work great! He also
1621 provided me with the trick to get Kodi to use a multicast stream as
1622 its source. By using this monstrous oneliner, I can stream my desktop
1623 with good video quality in reasonable framerate to the 239.255.0.1
1624 multicast address on port 1234:
1625
1626 <blockquote><pre>
1627 gst-launch-1.0 ximagesrc use-damage=0 ! video/x-raw,framerate=30/1 ! \
1628 videoconvert ! queue2 ! \
1629 x264enc bitrate=8000 speed-preset=superfast tune=zerolatency qp-min=30 \
1630 key-int-max=15 bframes=2 ! video/x-h264,profile=high ! queue2 ! \
1631 mpegtsmux alignment=7 name=mux ! rndbuffersize max=1316 min=1316 ! \
1632 udpsink host=239.255.0.1 port=1234 ttl-mc=1 auto-multicast=1 sync=0 \
1633 pulsesrc device=$(pactl list | grep -A2 'Source #' | \
1634 grep 'Name: .*\.monitor$' | cut -d" " -f2|head -1) ! \
1635 audioconvert ! queue2 ! avenc_aac ! queue2 ! mux.
1636 </pre></blockquote>
1637
1638 <p>and this on the Kodi end<p>
1639
1640 <blockquote><pre>
1641 echo udp://@239.255.0.1:1234 \
1642 > /storage/videos/screenstream.m3u
1643 </pre></blockquote>
1644
1645 <p>Note the trick to pick a valid pulseaudio source. It might not
1646 pick the one you need. This approach will of course lead to trouble
1647 if more than one source uses the same multicast port and address.
1648 Note the ttl-mc=1 setting, which limit the multicast packages to the
1649 local network. If the value is increased, your screen will be
1650 broadcasted further, one network "hop" for each increase (read up on
1651 multicast to learn more. :)!</p>
1652
1653 <p>Having cracked how to get Kodi to receive multicast streams, I
1654 could use this VLC command to stream to the same multicast address.
1655 The image quality is way better than the rtsp approach, but gstreamer
1656 seem to be doing a better job.</p>
1657
1658 <blockquote><pre>
1659 cvlc screen:// --sout '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128}:rtp{mux=ts,dst=239.255.0.1,port=1234,sdp=sap}'
1660 </pre></blockquote>
1661
1662 <p>As usual, if you use Bitcoin and want to show your support of my
1663 activities, please send Bitcoin donations to my address
1664 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
1665
1666 </div>
1667 <div class="tags">
1668
1669
1670 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/kodi">kodi</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
1671
1672
1673 </div>
1674 </div>
1675 <div class="padding"></div>
1676
1677 <div class="entry">
1678 <div class="title">
1679 <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>
1680 </div>
1681 <div class="date">
1682 9th July 2018
1683 </div>
1684 <div class="body">
1685 <p>Five years ago,
1686 <a href="http://people.skolelinux.org/pere/blog/What_is_the_most_supported_MIME_type_in_Debian_.html">I
1687 measured what the most supported MIME type in Debian was</a>, by
1688 analysing the desktop files in all packages in the archive. Since
1689 then, the DEP-11 AppStream system has been put into production, making
1690 the task a lot easier. This made me want to repeat the measurement,
1691 to see how much things changed. Here are the new numbers, for
1692 unstable only this time:
1693
1694 <p><strong>Debian Unstable:</strong></p>
1695
1696 <pre>
1697 count MIME type
1698 ----- -----------------------
1699 56 image/jpeg
1700 55 image/png
1701 49 image/tiff
1702 48 image/gif
1703 39 image/bmp
1704 38 text/plain
1705 37 audio/mpeg
1706 34 application/ogg
1707 33 audio/x-flac
1708 32 audio/x-mp3
1709 30 audio/x-wav
1710 30 audio/x-vorbis+ogg
1711 29 image/x-portable-pixmap
1712 27 inode/directory
1713 27 image/x-portable-bitmap
1714 27 audio/x-mpeg
1715 26 application/x-ogg
1716 25 audio/x-mpegurl
1717 25 audio/ogg
1718 24 text/html
1719 </pre>
1720
1721 <p>The list was created like this using a sid chroot: "cat
1722 /var/lib/apt/lists/*sid*_dep11_Components-amd64.yml.gz| zcat | awk '/^
1723 - \S+\/\S+$/ {print $2 }' | sort | uniq -c | sort -nr | head -20"</p>
1724
1725 <p>It is interesting to see how image formats have passed text/plain
1726 as the most announced supported MIME type. These days, thanks to the
1727 AppStream system, if you run into a file format you do not know, and
1728 want to figure out which packages support the format, you can find the
1729 MIME type of the file using "file --mime &lt;filename&gt;", and then
1730 look up all packages announcing support for this format in their
1731 AppStream metadata (XML or .desktop file) using "appstreamcli
1732 what-provides mimetype &lt;mime-type&gt;. For example if you, like
1733 me, want to know which packages support inode/directory, you can get a
1734 list like this:</p>
1735
1736 <p><blockquote><pre>
1737 % appstreamcli what-provides mimetype inode/directory | grep Package: | sort
1738 Package: anjuta
1739 Package: audacious
1740 Package: baobab
1741 Package: cervisia
1742 Package: chirp
1743 Package: dolphin
1744 Package: doublecmd-common
1745 Package: easytag
1746 Package: enlightenment
1747 Package: ephoto
1748 Package: filelight
1749 Package: gwenview
1750 Package: k4dirstat
1751 Package: kaffeine
1752 Package: kdesvn
1753 Package: kid3
1754 Package: kid3-qt
1755 Package: nautilus
1756 Package: nemo
1757 Package: pcmanfm
1758 Package: pcmanfm-qt
1759 Package: qweborf
1760 Package: ranger
1761 Package: sirikali
1762 Package: spacefm
1763 Package: spacefm
1764 Package: vifm
1765 %
1766 </pre></blockquote></p>
1767
1768 <p>Using the same method, I can quickly discover that the Sketchup file
1769 format is not yet supported by any package in Debian:</p>
1770
1771 <p><blockquote><pre>
1772 % appstreamcli what-provides mimetype application/vnd.sketchup.skp
1773 Could not find component providing 'mimetype::application/vnd.sketchup.skp'.
1774 %
1775 </pre></blockquote></p>
1776
1777 <p>Yesterday I used it to figure out which packages support the STL 3D
1778 format:</p>
1779
1780 <p><blockquote><pre>
1781 % appstreamcli what-provides mimetype application/sla|grep Package
1782 Package: cura
1783 Package: meshlab
1784 Package: printrun
1785 %
1786 </pre></blockquote></p>
1787
1788 <p>PS: A new version of Cura was uploaded to Debian yesterday.</p>
1789
1790 <p>As usual, if you use Bitcoin and want to show your support of my
1791 activities, please send Bitcoin donations to my address
1792 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
1793
1794 </div>
1795 <div class="tags">
1796
1797
1798 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>.
1799
1800
1801 </div>
1802 </div>
1803 <div class="padding"></div>
1804
1805 <div class="entry">
1806 <div class="title">
1807 <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>
1808 </div>
1809 <div class="date">
1810 8th July 2018
1811 </div>
1812 <div class="body">
1813 <p>Quite regularly, I let my Debian Sid/Unstable chroot stay untouch
1814 for a while, and when I need to update it there is not enough free
1815 space on the disk for apt to do a normal 'apt upgrade'. I normally
1816 would resolve the issue by doing 'apt install &lt;somepackages&gt;' to
1817 upgrade only some of the packages in one batch, until the amount of
1818 packages to download fall below the amount of free space available.
1819 Today, I had about 500 packages to upgrade, and after a while I got
1820 tired of trying to install chunks of packages manually. I concluded
1821 that I did not have the spare hours required to complete the task, and
1822 decided to see if I could automate it. I came up with this small
1823 script which I call 'apt-in-chunks':</p>
1824
1825 <p><blockquote><pre>
1826 #!/bin/sh
1827 #
1828 # Upgrade packages when the disk is too full to upgrade every
1829 # upgradable package in one lump. Fetching packages to upgrade using
1830 # apt, and then installing using dpkg, to avoid changing the package
1831 # flag for manual/automatic.
1832
1833 set -e
1834
1835 ignore() {
1836 if [ "$1" ]; then
1837 grep -v "$1"
1838 else
1839 cat
1840 fi
1841 }
1842
1843 for p in $(apt list --upgradable | ignore "$@" |cut -d/ -f1 | grep -v '^Listing...'); do
1844 echo "Upgrading $p"
1845 apt clean
1846 apt install --download-only -y $p
1847 for f in /var/cache/apt/archives/*.deb; do
1848 if [ -e "$f" ]; then
1849 dpkg -i /var/cache/apt/archives/*.deb
1850 break
1851 fi
1852 done
1853 done
1854 </pre></blockquote></p>
1855
1856 <p>The script will extract the list of packages to upgrade, try to
1857 download the packages needed to upgrade one package, install the
1858 downloaded packages using dpkg. The idea is to upgrade packages
1859 without changing the APT mark for the package (ie the one recording of
1860 the package was manually requested or pulled in as a dependency). To
1861 use it, simply run it as root from the command line. If it fail, try
1862 'apt install -f' to clean up the mess and run the script again. This
1863 might happen if the new packages conflict with one of the old
1864 packages. dpkg is unable to remove, while apt can do this.</p>
1865
1866 <p>It take one option, a package to ignore in the list of packages to
1867 upgrade. The option to ignore a package is there to be able to skip
1868 the packages that are simply too large to unpack. Today this was
1869 'ghc', but I have run into other large packages causing similar
1870 problems earlier (like TeX).</p>
1871
1872 <p>Update 2018-07-08: Thanks to Paul Wise, I am aware of two
1873 alternative ways to handle this. The "unattended-upgrades
1874 --minimal-upgrade-steps" option will try to calculate upgrade sets for
1875 each package to upgrade, and then upgrade them in order, smallest set
1876 first. It might be a better option than my above mentioned script.
1877 Also, "aptutude upgrade" can upgrade single packages, thus avoiding
1878 the need for using "dpkg -i" in the script above.</p>
1879
1880 <p>As usual, if you use Bitcoin and want to show your support of my
1881 activities, please send Bitcoin donations to my address
1882 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
1883
1884 </div>
1885 <div class="tags">
1886
1887
1888 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>.
1889
1890
1891 </div>
1892 </div>
1893 <div class="padding"></div>
1894
1895 <div class="entry">
1896 <div class="title">
1897 <a href="http://people.skolelinux.org/pere/blog/The_worlds_only_stone_power_plant_.html">The worlds only stone power plant?</a>
1898 </div>
1899 <div class="date">
1900 30th June 2018
1901 </div>
1902 <div class="body">
1903 <p>So far, at least hydro-electric power, coal power, wind power,
1904 solar power, and wood power are well known. Until a few days ago, I
1905 had never heard of stone power. Then I learn about a quarry in a
1906 mountain in
1907 <a href="https://en.wikipedia.org/wiki/Bremanger">Bremanger</a> i
1908 Norway, where
1909 <a href="https://www.bontrup.com/en/activities/raw-materials/bremanger-quarry/">the
1910 Bremanger Quarry</a> company is extracting stone and dumping the stone
1911 into a shaft leading to its shipping harbour. This downward movement
1912 in this shaft is used to produce electricity. In short, it is using
1913 falling rocks instead of falling water to produce electricity, and
1914 according to its own statements it is producing more power than it is
1915 using, and selling the surplus electricity to the Norwegian power
1916 grid. I find the concept truly amazing. Is this the worlds only
1917 stone power plant?</p>
1918
1919 <p>As usual, if you use Bitcoin and want to show your support of my
1920 activities, please send Bitcoin donations to my address
1921 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
1922
1923 </div>
1924 <div class="tags">
1925
1926
1927 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
1928
1929
1930 </div>
1931 </div>
1932 <div class="padding"></div>
1933
1934 <div class="entry">
1935 <div class="title">
1936 <a href="http://people.skolelinux.org/pere/blog/Add_on_to_control_the_projector_from_within_Kodi.html">Add-on to control the projector from within Kodi</a>
1937 </div>
1938 <div class="date">
1939 26th June 2018
1940 </div>
1941 <div class="body">
1942 <p>My movie playing setup involve <a href="https://kodi.tv/">Kodi</a>,
1943 <a href="https://openelec.tv">OpenELEC</a> (probably soon to be
1944 replaced with <a href="https://libreelec.tv/">LibreELEC</a>) and an
1945 Infocus IN76 video projector. My projector can be controlled via both
1946 a infrared remote controller, and a RS-232 serial line. The vendor of
1947 my projector, <a href="https://www.infocus.com/">InFocus</a>, had been
1948 sensible enough to document the serial protocol in its user manual, so
1949 it is easily available, and I used it some years ago to write
1950 <a href="https://github.com/petterreinholdtsen/infocus-projector-control">a
1951 small script to control the projector</a>. For a while now, I longed
1952 for a setup where the projector was controlled by Kodi, for example in
1953 such a way that when the screen saver went on, the projector was
1954 turned off, and when the screen saver exited, the projector was turned
1955 on again.</p>
1956
1957 <p>A few days ago, with very good help from parts of my family, I
1958 managed to find a Kodi Add-on for controlling a Epson projector, and
1959 got in touch with its author to see if we could join forces and make a
1960 Add-on with support for several projectors. To my pleasure, he was
1961 positive to the idea, and we set out to add InFocus support to his
1962 add-on, and make the add-on suitable for the official Kodi add-on
1963 repository.</p>
1964
1965 <p>The Add-on is now working (for me, at least), with a few minor
1966 adjustments. The most important change I do relative to the master
1967 branch in the github repository is embedding the
1968 <a href="https://github.com/pyserial/pyserial">pyserial module</a> in
1969 the add-on. The long term solution is to make a "script" type
1970 pyserial module for Kodi, that can be pulled in as a dependency in
1971 Kodi. But until that in place, I embed it.</p>
1972
1973 <p>The add-on can be configured to turn on the projector when Kodi
1974 starts, off when Kodi stops as well as turn the projector off when the
1975 screensaver start and on when the screesaver stops. It can also be
1976 told to set the projector source when turning on the projector.
1977
1978 <p>If this sound interesting to you, check out
1979 <a href="https://github.com/fredrik-eriksson/kodi_projcontrol">the
1980 project github repository</a>. Perhaps you can send patches to
1981 support your projector too? As soon as we find time to wrap up the
1982 latest changes, it should be available for easy installation using any
1983 Kodi instance.</p>
1984
1985 <p>For future improvements, I would like to add projector model
1986 detection and the ability to adjust the brightness level of the
1987 projector from within Kodi. We also need to figure out how to handle
1988 the cooling period of the projector. My projector refuses to turn on
1989 for 60 seconds after it was turned off. This is not handled well by
1990 the add-on at the moment.</p>
1991
1992 <p>As usual, if you use Bitcoin and want to show your support of my
1993 activities, please send Bitcoin donations to my address
1994 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
1995
1996 </div>
1997 <div class="tags">
1998
1999
2000 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
2001
2002
2003 </div>
2004 </div>
2005 <div class="padding"></div>
2006
2007 <div class="entry">
2008 <div class="title">
2009 <a href="http://people.skolelinux.org/pere/blog/Self_appointed_leaders_of_the_Free_World.html">Self-appointed leaders of the Free World</a>
2010 </div>
2011 <div class="date">
2012 22nd March 2018
2013 </div>
2014 <div class="body">
2015 <p>The leaders of the worlds have started to congratulate the
2016 re-elected Russian head of state, and this causes some criticism. I
2017 am though a little fascinated by a comment from USA senator John McCain,
2018 <a href="http://thehill.com/homenews/senate/379339-mccain-rips-trumps-congratulatory-call-to-putin-as-insult-to-russian-people">sited
2019 by The Hill and others</a>:
2020
2021 <p><blockquote>
2022 <p>"An American president does not lead the Free World by
2023 congratulating dictators on winning sham elections."</p>
2024 </blockquote></p>
2025
2026 <p>While I totally agree with the senator here, the way the quote is
2027 phrased make me suspect that he is unaware of the simple fact that USA
2028 have not lead the Free World since at least before its government
2029 <a href="https://en.wikipedia.org/wiki/Maher_Arar">kidnapped a
2030 completely innocent Canadian citizen in transit on his way home to
2031 Canada via John F. Kennedy International Airport in September 2002 and
2032 sent him to be tortured in Syria for a year</a>.</p>
2033
2034 <p>USA might be running ahead, but the path they are taking is not the
2035 one taken by any Free World.</p>
2036
2037 </div>
2038 <div class="tags">
2039
2040
2041 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
2042
2043
2044 </div>
2045 </div>
2046 <div class="padding"></div>
2047
2048 <div class="entry">
2049 <div class="title">
2050 <a href="http://people.skolelinux.org/pere/blog/Facebooks_ability_to_sell_your_personal_information_is_the_real_Cambridge_Analytica_scandal.html">Facebooks ability to sell your personal information is the real Cambridge Analytica scandal</a>
2051 </div>
2052 <div class="date">
2053 21st March 2018
2054 </div>
2055 <div class="body">
2056 <p>So, Cambridge Analytica is getting some well deserved criticism for
2057 (mis)using information it got from Facebook about 50 million people,
2058 mostly in the USA. What I find a bit surprising, is how little
2059 criticism Facebook is getting for handing the information over to
2060 Cambridge Analytica and others in the first place. And what about the
2061 people handing their private and personal information to Facebook?
2062 And last, but not least, what about the government offices who are
2063 handing information about the visitors of their web pages to Facebook?
2064 No-one who looked at the terms of use of Facebook should be surprised
2065 that information about peoples interests, political views, personal
2066 lifes and whereabouts would be sold by Facebook.</p>
2067
2068 <p>What I find to be the real scandal is the fact that Facebook is
2069 selling your personal information, not that one of the buyers used it
2070 in a way Facebook did not approve when exposed. It is well known that
2071 Facebook is selling out their users privacy, but a scandal
2072 nevertheless. Of course the information provided to them by Facebook
2073 would be misused by one of the parties given access to personal
2074 information about the millions of Facebook users. Collected
2075 information will be misused sooner or later. The only way to avoid
2076 such misuse, is to not collect the information in the first place. If
2077 you do not want Facebook to hand out information about yourself for
2078 the use and misuse of its customers, do not give Facebook the
2079 information.</p>
2080
2081 <p>Personally, I would recommend to completely remove your Facebook
2082 account, and take back some control of your personal information.
2083 <a href="https://www.theguardian.com/technology/2018/mar/19/how-to-protect-your-facebook-privacy-or-delete-yourself-completely">According
2084 to The Guardian</a>, it is a bit hard to find out how to request
2085 account removal (and not just 'disabling'). You need to
2086 <a href="https://www.facebook.com/help/224562897555674?helpref=faq_content">visit
2087 a specific Facebook page</a> and click on 'let us know' on that page
2088 to get to <a href="https://www.facebook.com/help/delete_account">the
2089 real account deletion screen</a>. Perhaps something to consider? I
2090 would not trust the information to really be deleted (who knows,
2091 perhaps NSA, GCHQ and FRA already got a copy), but it might reduce the
2092 exposure a bit.</p>
2093
2094 <p>If you want to learn more about the capabilities of Cambridge
2095 Analytica, I recommend to see the video recording of the one hour talk
2096 Paul-Olivier Dehaye gave to <a href="">NUUG</a> last april about
2097 <a href="https://www.nuug.no/aktiviteter/20170404-big-data-psychometric/">
2098 Data collection, psychometric profiling and their impact on
2099 politics</a>.</p>
2100
2101 <p>And if you want to communicate with your friends and loved ones,
2102 use some end-to-end encrypted method like
2103 <a href="https://www.signal.org/">Signal</a> or
2104 <a href="https://ring.cx/">Ring</a>, and stop sharing your private
2105 messages with strangers like Facebook and Google.</p>
2106
2107 </div>
2108 <div class="tags">
2109
2110
2111 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>.
2112
2113
2114 </div>
2115 </div>
2116 <div class="padding"></div>
2117
2118 <div class="entry">
2119 <div class="title">
2120 <a href="http://people.skolelinux.org/pere/blog/First_rough_draft_Norwegian_and_Spanish_edition_of_the_book_Made_with_Creative_Commons.html">First rough draft Norwegian and Spanish edition of the book Made with Creative Commons</a>
2121 </div>
2122 <div class="date">
2123 13th March 2018
2124 </div>
2125 <div class="body">
2126 <p>I am working on publishing yet another book related to Creative
2127 Commons. This time it is a book filled with interviews and histories
2128 from those around the globe making a living using Creative
2129 Commons.</p>
2130
2131 <p>Yesterday, after many months of hard work by several volunteer
2132 translators, the first draft of a Norwegian Bokmål edition of the book
2133 <a href="https://madewith.cc">Made with Creative Commons from 2017</a>
2134 was complete. The Spanish translation is also complete, while the
2135 Dutch, Polish, German and Ukraine edition need a lot of work. Get in
2136 touch if you want to help make those happen, or would like to
2137 translate into your mother tongue.</p>
2138
2139 <p>The whole book project started when
2140 <a href="http://gwolf.org/node/4102">Gunnar Wolf announced</a> that he
2141 was going to make a Spanish edition of the book. I noticed, and
2142 offered some input on how to make a book, based on my experience with
2143 translating the
2144 <a href="https://www.lulu.com/shop/lawrence-lessig/fri-kultur/paperback/product-22441576.html">Free
2145 Culture</a> and
2146 <a href="https://debian-handbook.info/get/#norwegian">The Debian
2147 Administrator's Handbook</a> books to Norwegian Bokmål. To make a
2148 long story short, we ended up working on a Bokmål edition, and now the
2149 first rough translation is complete, thanks to the hard work of
2150 Ole-Erik Yrvin, Ingrid Yrvin, Allan Nordhøy and myself. The first
2151 proof reading is almost done, and only the second and third proof
2152 reading remains. We will also need to translate the 14 figures and
2153 create a book cover. Once it is done we will publish the book on
2154 paper, as well as in PDF, ePub and possibly Mobi formats.</p>
2155
2156 <p>The book itself originates as a manuscript on Google Docs, is
2157 downloaded as ODT from there and converted to Markdown using pandoc.
2158 The Markdown is modified by a script before is converted to DocBook
2159 using pandoc. The DocBook is modified again using a script before it
2160 is used to create a Gettext POT file for translators. The translated
2161 PO file is then combined with the earlier mentioned DocBook file to
2162 create a translated DocBook file, which finally is given to dblatex to
2163 create the final PDF. The end result is a set of editions of the
2164 manuscript, one English and one for each of the translations.</p>
2165
2166 <p>The translation is conducted using
2167 <a href="https://hosted.weblate.org/projects/madewithcc/translation/">the
2168 Weblate web based translation system</a>. Please have a look there
2169 and get in touch if you would like to help out with proof
2170 reading. :)</p>
2171
2172 <p>As usual, if you use Bitcoin and want to show your support of my
2173 activities, please send Bitcoin donations to my address
2174 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
2175
2176 </div>
2177 <div class="tags">
2178
2179
2180 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
2181
2182
2183 </div>
2184 </div>
2185 <div class="padding"></div>
2186
2187 <div class="entry">
2188 <div class="title">
2189 <a href="http://people.skolelinux.org/pere/blog/Debian_used_in_the_subway_info_screens_in_Oslo__Norway.html">Debian used in the subway info screens in Oslo, Norway</a>
2190 </div>
2191 <div class="date">
2192 2nd March 2018
2193 </div>
2194 <div class="body">
2195 <p>Today I was pleasantly surprised to discover my operating system of
2196 choice, Debian, was used in the info screens on the subway stations.
2197 While passing Nydalen subway station in Oslo, Norway, I discovered the
2198 info screen booting with some text scrolling. I was not quick enough
2199 with my camera to be able to record a video of the scrolling boot
2200 screen, but I did get a photo from when the boot got stuck with a
2201 corrupt file system:
2202
2203 <p align="center"><a href="http://people.skolelinux.org/pere/blog/images/2018-03-02-ruter-debian-lenny.jpeg"><img align="center" width="40%" src="http://people.skolelinux.org/pere/blog/images/2018-03-02-ruter-debian-lenny.jpeg" alt="[photo of subway info screen]"></a></p>
2204
2205 <p>While I am happy to see Debian used more places, some details of the
2206 content on the screen worries me.</p>
2207
2208 <p>The image show the version booting is 'Debian GNU/Linux lenny/sid',
2209 indicating that this is based on code taken from Debian Unstable/Sid
2210 after Debian Etch (version 4) was released 2007-04-08 and before
2211 Debian Lenny (version 5) was released 2009-02-14. Since Lenny Debian
2212 has released version 6 (Squeeze) 2011-02-06, 7 (Wheezy) 2013-05-04, 8
2213 (Jessie) 2015-04-25 and 9 (Stretch) 2017-06-15, according to
2214 <a href="https://en.wikipedia.org/wiki/Debian_version_history">a Debian
2215 version history on Wikpedia</a>. This mean the system is running
2216 around 10 year old code, with no security fixes from the vendor for
2217 many years.</p>
2218
2219 <p>This is not the first time I discover the Oslo subway company,
2220 Ruter, running outdated software. In 2012,
2221 <a href="http://people.skolelinux.org/pere/blog/Er_billettautomatene_til_kollektivtrafikken_i_Oslo_uten_sikkerhetsoppdateringer_.html">I
2222 discovered the ticket vending machines were running Windows 2000</a>,
2223 and this was
2224 <a href="http://people.skolelinux.org/pere/blog/Fortsatt_ingen_sikkerhetsoppdateringer_for_billettautomatene_til_kollektivtrafikken_i_Oslo_.html">still
2225 the case in 2016</a>. Given the response from the responsible people
2226 in 2016, I would assume the machines are still running unpatched
2227 Windows 2000. Thus, an unpatched Debian setup come as no surprise.</p>
2228
2229 <p>The photo is made available under the license terms
2230 <a href="http://creativecommons.org/licenses/by/4.0/">Creative Commons
2231 4.0 Attribution International (CC BY 4.0)</a>.</p>
2232
2233 <p>As usual, if you use Bitcoin and want to show your support of my
2234 activities, please send Bitcoin donations to my address
2235 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
2236
2237 </div>
2238 <div class="tags">
2239
2240
2241 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/ruter">ruter</a>.
2242
2243
2244 </div>
2245 </div>
2246 <div class="padding"></div>
2247
2248 <div class="entry">
2249 <div class="title">
2250 <a href="http://people.skolelinux.org/pere/blog/The_SysVinit_upstream_project_just_migrated_to_git.html">The SysVinit upstream project just migrated to git</a>
2251 </div>
2252 <div class="date">
2253 18th February 2018
2254 </div>
2255 <div class="body">
2256 <p>Surprising as it might sound, there are still computers using the
2257 traditional Sys V init system, and there probably will be until
2258 systemd start working on Hurd and FreeBSD.
2259 <a href="https://savannah.nongnu.org/projects/sysvinit">The upstream
2260 project still exist</a>, though, and up until today, the upstream
2261 source was available from Savannah via subversion. I am happy to
2262 report that this just changed.</p>
2263
2264 <p>The upstream source is now in Git, and consist of three
2265 repositories:</p>
2266
2267 <ul>
2268
2269 <li><a href="http://git.savannah.nongnu.org/cgit/sysvinit.git">sysvinit</a></li>
2270 <li><a href="http://git.savannah.nongnu.org/cgit/sysvinit/insserv.git">insserv</a></li>
2271 <li><a href="http://git.savannah.nongnu.org/cgit/sysvinit/startpar.git">startpar</a></li>
2272
2273 </ul>
2274
2275 <p>I do not really spend much time on the project these days, and I
2276 has mostly retired, but found it best to migrate the source to a good
2277 version control system to help those willing to move it forward.</p>
2278
2279 <p>As usual, if you use Bitcoin and want to show your support of my
2280 activities, please send Bitcoin donations to my address
2281 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
2282
2283 </div>
2284 <div class="tags">
2285
2286
2287 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
2288
2289
2290 </div>
2291 </div>
2292 <div class="padding"></div>
2293
2294 <div class="entry">
2295 <div class="title">
2296 <a href="http://people.skolelinux.org/pere/blog/Using_VLC_to_stream_bittorrent_sources.html">Using VLC to stream bittorrent sources</a>
2297 </div>
2298 <div class="date">
2299 14th February 2018
2300 </div>
2301 <div class="body">
2302 <p>A few days ago, a new major version of
2303 <a href="https://www.videolan.org/">VLC</a> was announced, and I
2304 decided to check out if it now supported streaming over
2305 <a href="http://bittorrent.org/">bittorrent</a> and
2306 <a href="https://webtorrent.io">webtorrent</a>. Bittorrent is one of
2307 the most efficient ways to distribute large files on the Internet, and
2308 Webtorrent is a variant of Bittorrent using
2309 <a href="https://webrtc.org">WebRTC</a> as its transport channel,
2310 allowing web pages to stream and share files using the same technique.
2311 The network protocols are similar but not identical, so a client
2312 supporting one of them can not talk to a client supporting the other.
2313 I was a bit surprised with what I discovered when I started to look.
2314 Looking at
2315 <a href="https://www.videolan.org/vlc/releases/3.0.0.html">the release
2316 notes</a> did not help answering this question, so I started searching
2317 the web. I found several news articles from 2013, most of them
2318 tracing the news from Torrentfreak
2319 ("<a href=https://torrentfreak.com/open-source-giant-vlc-mulls-bittorrent-support-130211/">Open
2320 Source Giant VLC Mulls BitTorrent Streaming Support</a>"), about a
2321 initiative to pay someone to create a VLC patch for bittorrent
2322 support. To figure out what happend with this initiative, I headed
2323 over to the #videolan IRC channel and asked if there were some bug or
2324 feature request tickets tracking such feature. I got an answer from
2325 lead developer Jean-Babtiste Kempf, telling me that there was a patch
2326 but neither he nor anyone else knew where it was. So I searched a bit
2327 more, and came across an independent
2328 <a href="https://github.com/johang/vlc-bittorrent">VLC plugin to add
2329 bittorrent support</a>, created by Johan Gunnarsson in 2016/2017.
2330 Again according to Jean-Babtiste, this is not the patch he was talking
2331 about.</p>
2332
2333 <p>Anyway, to test the plugin, I made a working Debian package from
2334 the git repository, with some modifications. After installing this
2335 package, I could stream videos from
2336 <a href="https://www.archive.org/">The Internet Archive</a> using VLC
2337 commands like this:</p>
2338
2339 <p><blockquote><pre>
2340 vlc https://archive.org/download/LoveNest/LoveNest_archive.torrent
2341 </pre></blockquote></p>
2342
2343 <p>The plugin is supposed to handle magnet links too, but since The
2344 Internet Archive do not have magnet links and I did not want to spend
2345 time tracking down another source, I have not tested it. It can take
2346 quite a while before the video start playing without any indication of
2347 what is going on from VLC. It took 10-20 seconds when I measured it.
2348 Some times the plugin seem unable to find the correct video file to
2349 play, and show the metadata XML file name in the VLC status line. I
2350 have no idea why.</p>
2351
2352 <p>I have created a <a href="https://bugs.debian.org/890360">request for
2353 a new package in Debian (RFP)</a> and
2354 <a href="https://github.com/johang/vlc-bittorrent/issues/1">asked if
2355 the upstream author is willing to help make this happen</a>. Now we
2356 wait to see what come out of this. I do not want to maintain a
2357 package that is not maintained upstream, nor do I really have time to
2358 maintain more packages myself, so I might leave it at this. But I
2359 really hope someone step up to do the packaging, and hope upstream is
2360 still maintaining the source. If you want to help, please update the
2361 RFP request or the upstream issue.</p>
2362
2363 <p>I have not found any traces of webtorrent support for VLC.</p>
2364
2365 <p>As usual, if you use Bitcoin and want to show your support of my
2366 activities, please send Bitcoin donations to my address
2367 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
2368
2369 </div>
2370 <div class="tags">
2371
2372
2373 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/verkidetfri">verkidetfri</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
2374
2375
2376 </div>
2377 </div>
2378 <div class="padding"></div>
2379
2380 <div class="entry">
2381 <div class="title">
2382 <a href="http://people.skolelinux.org/pere/blog/Version_3_1_of_Cura__the_3D_print_slicer__is_now_in_Debian.html">Version 3.1 of Cura, the 3D print slicer, is now in Debian</a>
2383 </div>
2384 <div class="date">
2385 13th February 2018
2386 </div>
2387 <div class="body">
2388 <p>A new version of the
2389 <a href="https://tracker.debian.org/pkg/cura">3D printer slicer
2390 software Cura</a>, version 3.1.0, is now available in Debian Testing
2391 (aka Buster) and Debian Unstable (aka Sid). I hope you find it
2392 useful. It was uploaded the last few days, and the last update will
2393 enter testing tomorrow. See the
2394 <a href="https://ultimaker.com/en/products/cura-software/release-notes">release
2395 notes</a> for the list of bug fixes and new features. Version 3.2
2396 was announced 6 days ago. We will try to get it into Debian as
2397 well.</p>
2398
2399 <p>More information related to 3D printing is available on the
2400 <a href="https://wiki.debian.org/3DPrinting">3D printing</a> and
2401 <a href="https://wiki.debian.org/3D-printer">3D printer</a> wiki pages
2402 in Debian.</p>
2403
2404 <p>As usual, if you use Bitcoin and want to show your support of my
2405 activities, please send Bitcoin donations to my address
2406 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
2407
2408 </div>
2409 <div class="tags">
2410
2411
2412 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
2413
2414
2415 </div>
2416 </div>
2417 <div class="padding"></div>
2418
2419 <div class="entry">
2420 <div class="title">
2421 <a href="http://people.skolelinux.org/pere/blog/How_hard_can______and___be_.html">How hard can æ, ø and å be?</a>
2422 </div>
2423 <div class="date">
2424 11th February 2018
2425 </div>
2426 <div class="body">
2427 <img src="http://people.skolelinux.org/pere/blog/images/2018-02-11-peppes-unicode.jpeg" align="right"/>
2428
2429 <p>We write 2018, and it is 30 years since Unicode was introduced.
2430 Most of us in Norway have come to expect the use of our alphabet to
2431 just work with any computer system. But it is apparently beyond reach
2432 of the computers printing recites at a restaurant. Recently I visited
2433 a Peppes pizza resturant, and noticed a few details on the recite.
2434 Notice how 'ø' and 'å' are replaced with strange symbols in
2435 'Servitør', 'Å BETALE', 'Beløp pr. gjest', 'Takk for besøket.' and 'Vi
2436 gleder oss til å se deg igjen'.</p>
2437
2438 <p>I would say that this state is passed sad and over in embarrassing.</p>
2439
2440 <p>I removed personal and private information to be nice.</p>
2441
2442 <p>As usual, if you use Bitcoin and want to show your support of my
2443 activities, please send Bitcoin donations to my address
2444 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
2445
2446 </div>
2447 <div class="tags">
2448
2449
2450 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
2451
2452
2453 </div>
2454 </div>
2455 <div class="padding"></div>
2456
2457 <div class="entry">
2458 <div class="title">
2459 <a href="http://people.skolelinux.org/pere/blog/Legal_to_share_more_than_11_000_movies_listed_on_IMDB_.html">Legal to share more than 11,000 movies listed on IMDB?</a>
2460 </div>
2461 <div class="date">
2462 7th January 2018
2463 </div>
2464 <div class="body">
2465 <p>I've continued to track down list of movies that are legal to
2466 distribute on the Internet, and identified more than 11,000 title IDs
2467 in The Internet Movie Database (IMDB) so far. Most of them (57%) are
2468 feature films from USA published before 1923. I've also tracked down
2469 more than 24,000 movies I have not yet been able to map to IMDB title
2470 ID, so the real number could be a lot higher. According to the front
2471 web page for <a href="https://retrofilmvault.com/">Retro Film
2472 Vault</A>, there are 44,000 public domain films, so I guess there are
2473 still some left to identify.</p>
2474
2475 <p>The complete data set is available from
2476 <a href="https://github.com/petterreinholdtsen/public-domain-free-imdb">a
2477 public git repository</a>, including the scripts used to create it.
2478 Most of the data is collected using web scraping, for example from the
2479 "product catalog" of companies selling copies of public domain movies,
2480 but any source I find believable is used. I've so far had to throw
2481 out three sources because I did not trust the public domain status of
2482 the movies listed.</p>
2483
2484 <p>Anyway, this is the summary of the 28 collected data sources so
2485 far:</p>
2486
2487 <p><pre>
2488 2352 entries ( 66 unique) with and 15983 without IMDB title ID in free-movies-archive-org-search.json
2489 2302 entries ( 120 unique) with and 0 without IMDB title ID in free-movies-archive-org-wikidata.json
2490 195 entries ( 63 unique) with and 200 without IMDB title ID in free-movies-cinemovies.json
2491 89 entries ( 52 unique) with and 38 without IMDB title ID in free-movies-creative-commons.json
2492 344 entries ( 28 unique) with and 655 without IMDB title ID in free-movies-fesfilm.json
2493 668 entries ( 209 unique) with and 1064 without IMDB title ID in free-movies-filmchest-com.json
2494 830 entries ( 21 unique) with and 0 without IMDB title ID in free-movies-icheckmovies-archive-mochard.json
2495 19 entries ( 19 unique) with and 0 without IMDB title ID in free-movies-imdb-c-expired-gb.json
2496 6822 entries ( 6669 unique) with and 0 without IMDB title ID in free-movies-imdb-c-expired-us.json
2497 137 entries ( 0 unique) with and 0 without IMDB title ID in free-movies-imdb-externlist.json
2498 1205 entries ( 57 unique) with and 0 without IMDB title ID in free-movies-imdb-pd.json
2499 84 entries ( 20 unique) with and 167 without IMDB title ID in free-movies-infodigi-pd.json
2500 158 entries ( 135 unique) with and 0 without IMDB title ID in free-movies-letterboxd-looney-tunes.json
2501 113 entries ( 4 unique) with and 0 without IMDB title ID in free-movies-letterboxd-pd.json
2502 182 entries ( 100 unique) with and 0 without IMDB title ID in free-movies-letterboxd-silent.json
2503 229 entries ( 87 unique) with and 1 without IMDB title ID in free-movies-manual.json
2504 44 entries ( 2 unique) with and 64 without IMDB title ID in free-movies-openflix.json
2505 291 entries ( 33 unique) with and 474 without IMDB title ID in free-movies-profilms-pd.json
2506 211 entries ( 7 unique) with and 0 without IMDB title ID in free-movies-publicdomainmovies-info.json
2507 1232 entries ( 57 unique) with and 1875 without IMDB title ID in free-movies-publicdomainmovies-net.json
2508 46 entries ( 13 unique) with and 81 without IMDB title ID in free-movies-publicdomainreview.json
2509 698 entries ( 64 unique) with and 118 without IMDB title ID in free-movies-publicdomaintorrents.json
2510 1758 entries ( 882 unique) with and 3786 without IMDB title ID in free-movies-retrofilmvault.json
2511 16 entries ( 0 unique) with and 0 without IMDB title ID in free-movies-thehillproductions.json
2512 63 entries ( 16 unique) with and 141 without IMDB title ID in free-movies-vodo.json
2513 11583 unique IMDB title IDs in total, 8724 only in one list, 24647 without IMDB title ID
2514 </pre></p>
2515
2516 <p> I keep finding more data sources. I found the cinemovies source
2517 just a few days ago, and as you can see from the summary, it extended
2518 my list with 63 movies. Check out the mklist-* scripts in the git
2519 repository if you are curious how the lists are created. Many of the
2520 titles are extracted using searches on IMDB, where I look for the
2521 title and year, and accept search results with only one movie listed
2522 if the year matches. This allow me to automatically use many lists of
2523 movies without IMDB title ID references at the cost of increasing the
2524 risk of wrongly identify a IMDB title ID as public domain. So far my
2525 random manual checks have indicated that the method is solid, but I
2526 really wish all lists of public domain movies would include unique
2527 movie identifier like the IMDB title ID. It would make the job of
2528 counting movies in the public domain a lot easier.</p>
2529
2530 <p>As usual, if you use Bitcoin and want to show your support of my
2531 activities, please send Bitcoin donations to my address
2532 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
2533
2534 </div>
2535 <div class="tags">
2536
2537
2538 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>, <a href="http://people.skolelinux.org/pere/blog/tags/verkidetfri">verkidetfri</a>.
2539
2540
2541 </div>
2542 </div>
2543 <div class="padding"></div>
2544
2545 <div class="entry">
2546 <div class="title">
2547 <a href="http://people.skolelinux.org/pere/blog/Cura__the_nice_3D_print_slicer__is_now_in_Debian_Unstable.html">Cura, the nice 3D print slicer, is now in Debian Unstable</a>
2548 </div>
2549 <div class="date">
2550 17th December 2017
2551 </div>
2552 <div class="body">
2553 <p>After several months of working and waiting, I am happy to report
2554 that the nice and user friendly 3D printer slicer software Cura just
2555 entered Debian Unstable. It consist of five packages,
2556 <a href="https://tracker.debian.org/pkg/cura">cura</a>,
2557 <a href="https://tracker.debian.org/pkg/cura-engine">cura-engine</a>,
2558 <a href="https://tracker.debian.org/pkg/libarcus">libarcus</a>,
2559 <a href="https://tracker.debian.org/pkg/fdm-materials">fdm-materials</a>,
2560 <a href="https://tracker.debian.org/pkg/libsavitar">libsavitar</a> and
2561 <a href="https://tracker.debian.org/pkg/uranium">uranium</a>. The last
2562 two, uranium and cura, entered Unstable yesterday. This should make
2563 it easier for Debian users to print on at least the Ultimaker class of
2564 3D printers. My nearest 3D printer is an Ultimaker 2+, so it will
2565 make life easier for at least me. :)</p>
2566
2567 <p>The work to make this happen was done by Gregor Riepl, and I was
2568 happy to assist him in sponsoring the packages. With the introduction
2569 of Cura, Debian is up to three 3D printer slicers at your service,
2570 Cura, Slic3r and Slic3r Prusa. If you own or have access to a 3D
2571 printer, give it a go. :)</p>
2572
2573 <p>The 3D printer software is maintained by the 3D printer Debian
2574 team, flocking together on the
2575 <a href="http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/3dprinter-general">3dprinter-general</a>
2576 mailing list and the
2577 <a href="irc://irc.debian.org/#debian-3dprinting">#debian-3dprinting</a>
2578 IRC channel.</p>
2579
2580 <p>The next step for Cura in Debian is to update the cura package to
2581 version 3.0.3 and then update the entire set of packages to version
2582 3.1.0 which showed up the last few days.</p>
2583
2584 </div>
2585 <div class="tags">
2586
2587
2588 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
2589
2590
2591 </div>
2592 </div>
2593 <div class="padding"></div>
2594
2595 <div class="entry">
2596 <div class="title">
2597 <a href="http://people.skolelinux.org/pere/blog/Idea_for_finding_all_public_domain_movies_in_the_USA.html">Idea for finding all public domain movies in the USA</a>
2598 </div>
2599 <div class="date">
2600 13th December 2017
2601 </div>
2602 <div class="body">
2603 <p>While looking at
2604 <a href="http://onlinebooks.library.upenn.edu/cce/">the scanned copies
2605 for the copyright renewal entries for movies published in the USA</a>,
2606 an idea occurred to me. The number of renewals are so few per year, it
2607 should be fairly quick to transcribe them all and add references to
2608 the corresponding IMDB title ID. This would give the (presumably)
2609 complete list of movies published 28 years earlier that did _not_
2610 enter the public domain for the transcribed year. By fetching the
2611 list of USA movies published 28 years earlier and subtract the movies
2612 with renewals, we should be left with movies registered in IMDB that
2613 are now in the public domain. For the year 1955 (which is the one I
2614 have looked at the most), the total number of pages to transcribe is
2615 21. For the 28 years from 1950 to 1978, it should be in the range
2616 500-600 pages. It is just a few days of work, and spread among a
2617 small group of people it should be doable in a few weeks of spare
2618 time.</p>
2619
2620 <p>A typical copyright renewal entry look like this (the first one
2621 listed for 1955):</p>
2622
2623 <p><blockquote>
2624 ADAM AND EVIL, a photoplay in seven reels by Metro-Goldwyn-Mayer
2625 Distribution Corp. (c) 17Aug27; L24293. Loew's Incorporated (PWH);
2626 10Jun55; R151558.
2627 </blockquote></p>
2628
2629 <p>The movie title as well as registration and renewal dates are easy
2630 enough to locate by a program (split on first comma and look for
2631 DDmmmYY). The rest of the text is not required to find the movie in
2632 IMDB, but is useful to confirm the correct movie is found. I am not
2633 quite sure what the L and R numbers mean, but suspect they are
2634 reference numbers into the archive of the US Copyright Office.</p>
2635
2636 <p>Tracking down the equivalent IMDB title ID is probably going to be
2637 a manual task, but given the year it is fairly easy to search for the
2638 movie title using for example
2639 <a href="http://www.imdb.com/find?q=adam+and+evil+1927&s=all">http://www.imdb.com/find?q=adam+and+evil+1927&s=all</a>.
2640 Using this search, I find that the equivalent IMDB title ID for the
2641 first renewal entry from 1955 is
2642 <a href="http://www.imdb.com/title/tt0017588/">http://www.imdb.com/title/tt0017588/</a>.</p>
2643
2644 <p>I suspect the best way to do this would be to make a specialised
2645 web service to make it easy for contributors to transcribe and track
2646 down IMDB title IDs. In the web service, once a entry is transcribed,
2647 the title and year could be extracted from the text, a search in IMDB
2648 conducted for the user to pick the equivalent IMDB title ID right
2649 away. By spreading out the work among volunteers, it would also be
2650 possible to make at least two persons transcribe the same entries to
2651 be able to discover any typos introduced. But I will need help to
2652 make this happen, as I lack the spare time to do all of this on my
2653 own. If you would like to help, please get in touch. Perhaps you can
2654 draft a web service for crowd sourcing the task?</p>
2655
2656 <p>Note, Project Gutenberg already have some
2657 <a href="http://www.gutenberg.org/ebooks/search/?query=copyright+office+renewals">transcribed
2658 copies of the US Copyright Office renewal protocols</a>, but I have
2659 not been able to find any film renewals there, so I suspect they only
2660 have copies of renewal for written works. I have not been able to find
2661 any transcribed versions of movie renewals so far. Perhaps they exist
2662 somewhere?</p>
2663
2664 <p>I would love to figure out methods for finding all the public
2665 domain works in other countries too, but it is a lot harder. At least
2666 for Norway and Great Britain, such work involve tracking down the
2667 people involved in making the movie and figuring out when they died.
2668 It is hard enough to figure out who was part of making a movie, but I
2669 do not know how to automate such procedure without a registry of every
2670 person involved in making movies and their death year.</p>
2671
2672 <p>As usual, if you use Bitcoin and want to show your support of my
2673 activities, please send Bitcoin donations to my address
2674 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
2675
2676 </div>
2677 <div class="tags">
2678
2679
2680 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>, <a href="http://people.skolelinux.org/pere/blog/tags/verkidetfri">verkidetfri</a>.
2681
2682
2683 </div>
2684 </div>
2685 <div class="padding"></div>
2686
2687 <div class="entry">
2688 <div class="title">
2689 <a href="http://people.skolelinux.org/pere/blog/Is_the_short_movie__Empty_Socks__from_1927_in_the_public_domain_or_not_.html">Is the short movie «Empty Socks» from 1927 in the public domain or not?</a>
2690 </div>
2691 <div class="date">
2692 5th December 2017
2693 </div>
2694 <div class="body">
2695 <p>Three years ago, a presumed lost animation film,
2696 <a href="https://en.wikipedia.org/wiki/Empty_Socks">Empty Socks from
2697 1927</a>, was discovered in the Norwegian National Library. At the
2698 time it was discovered, it was generally assumed to be copyrighted by
2699 The Walt Disney Company, and I blogged about
2700 <a href="http://people.skolelinux.org/pere/blog/Opphavsretts_status_for__Empty_Socks__fra_1927_.html">my
2701 reasoning to conclude</a> that it would would enter the Norwegian
2702 equivalent of the public domain in 2053, based on my understanding of
2703 Norwegian Copyright Law. But a few days ago, I came across
2704 <a href="http://www.toonzone.net/forums/threads/exposed-disneys-repurchase-of-oswald-the-rabbit-a-sham.4792291/">a
2705 blog post claiming the movie was already in the public domain</a>, at
2706 least in USA. The reasoning is as follows: The film was released in
2707 November or Desember 1927 (sources disagree), and presumably
2708 registered its copyright that year. At that time, right holders of
2709 movies registered by the copyright office received government
2710 protection for there work for 28 years. After 28 years, the copyright
2711 had to be renewed if the wanted the government to protect it further.
2712 The blog post I found claim such renewal did not happen for this
2713 movie, and thus it entered the public domain in 1956. Yet someone
2714 claim the copyright was renewed and the movie is still copyright
2715 protected. Can anyone help me to figure out which claim is correct?
2716 I have not been able to find Empty Socks in Catalog of copyright
2717 entries. Ser.3 pt.12-13 v.9-12 1955-1958 Motion Pictures
2718 <a href="http://onlinebooks.library.upenn.edu/cce/1955r.html#film">available
2719 from the University of Pennsylvania</a>, neither in
2720 <a href="https://babel.hathitrust.org/cgi/pt?id=mdp.39015084451130;page=root;view=image;size=100;seq=83;num=45">page
2721 45 for the first half of 1955</a>, nor in
2722 <a href="https://babel.hathitrust.org/cgi/pt?id=mdp.39015084451130;page=root;view=image;size=100;seq=175;num=119">page
2723 119 for the second half of 1955</a>. It is of course possible that
2724 the renewal entry was left out of the printed catalog by mistake. Is
2725 there some way to rule out this possibility? Please help, and update
2726 the wikipedia page with your findings.
2727
2728 <p>As usual, if you use Bitcoin and want to show your support of my
2729 activities, please send Bitcoin donations to my address
2730 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
2731
2732 </div>
2733 <div class="tags">
2734
2735
2736 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>, <a href="http://people.skolelinux.org/pere/blog/tags/verkidetfri">verkidetfri</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
2737
2738
2739 </div>
2740 </div>
2741 <div class="padding"></div>
2742
2743 <div class="entry">
2744 <div class="title">
2745 <a href="http://people.skolelinux.org/pere/blog/Metadata_proposal_for_movies_on_the_Internet_Archive.html">Metadata proposal for movies on the Internet Archive</a>
2746 </div>
2747 <div class="date">
2748 28th November 2017
2749 </div>
2750 <div class="body">
2751 <p>It would be easier to locate the movie you want to watch in
2752 <a href="https://www.archive.org/">the Internet Archive</a>, if the
2753 metadata about each movie was more complete and accurate. In the
2754 archiving community, a well known saying state that good metadata is a
2755 love letter to the future. The metadata in the Internet Archive could
2756 use a face lift for the future to love us back. Here is a proposal
2757 for a small improvement that would make the metadata more useful
2758 today. I've been unable to find any document describing the various
2759 standard fields available when uploading videos to the archive, so
2760 this proposal is based on my best quess and searching through several
2761 of the existing movies.</p>
2762
2763 <p>I have a few use cases in mind. First of all, I would like to be
2764 able to count the number of distinct movies in the Internet Archive,
2765 without duplicates. I would further like to identify the IMDB title
2766 ID of the movies in the Internet Archive, to be able to look up a IMDB
2767 title ID and know if I can fetch the video from there and share it
2768 with my friends.</p>
2769
2770 <p>Second, I would like the Butter data provider for The Internet
2771 archive
2772 (<a href="https://github.com/butterproviders/butter-provider-archive">available
2773 from github</a>), to list as many of the good movies as possible. The
2774 plugin currently do a search in the archive with the following
2775 parameters:</p>
2776
2777 <p><pre>
2778 collection:moviesandfilms
2779 AND NOT collection:movie_trailers
2780 AND -mediatype:collection
2781 AND format:"Archive BitTorrent"
2782 AND year
2783 </pre></p>
2784
2785 <p>Most of the cool movies that fail to show up in Butter do so
2786 because the 'year' field is missing. The 'year' field is populated by
2787 the year part from the 'date' field, and should be when the movie was
2788 released (date or year). Two such examples are
2789 <a href="https://archive.org/details/SidneyOlcottsBen-hur1905">Ben Hur
2790 from 1905</a> and
2791 <a href="https://archive.org/details/Caminandes2GranDillama">Caminandes
2792 2: Gran Dillama from 2013</a>, where the year metadata field is
2793 missing.</p>
2794
2795 So, my proposal is simply, for every movie in The Internet Archive
2796 where an IMDB title ID exist, please fill in these metadata fields
2797 (note, they can be updated also long after the video was uploaded, but
2798 as far as I can tell, only by the uploader):
2799
2800 <dl>
2801
2802 <dt>mediatype</dt>
2803 <dd>Should be 'movie' for movies.</dd>
2804
2805 <dt>collection</dt>
2806 <dd>Should contain 'moviesandfilms'.</dd>
2807
2808 <dt>title</dt>
2809 <dd>The title of the movie, without the publication year.</dd>
2810
2811 <dt>date</dt>
2812 <dd>The data or year the movie was released. This make the movie show
2813 up in Butter, as well as make it possible to know the age of the
2814 movie and is useful to figure out copyright status.</dd>
2815
2816 <dt>director</dt>
2817 <dd>The director of the movie. This make it easier to know if the
2818 correct movie is found in movie databases.</dd>
2819
2820 <dt>publisher</dt>
2821 <dd>The production company making the movie. Also useful for
2822 identifying the correct movie.</dd>
2823
2824 <dt>links</dt>
2825
2826 <dd>Add a link to the IMDB title page, for example like this: &lt;a
2827 href="http://www.imdb.com/title/tt0028496/"&gt;Movie in
2828 IMDB&lt;/a&gt;. This make it easier to find duplicates and allow for
2829 counting of number of unique movies in the Archive. Other external
2830 references, like to TMDB, could be added like this too.</dd>
2831
2832 </dl>
2833
2834 <p>I did consider proposing a Custom field for the IMDB title ID (for
2835 example 'imdb_title_url', 'imdb_code' or simply 'imdb', but suspect it
2836 will be easier to simply place it in the links free text field.</p>
2837
2838 <p>I created
2839 <a href="https://github.com/petterreinholdtsen/public-domain-free-imdb">a
2840 list of IMDB title IDs for several thousand movies in the Internet
2841 Archive</a>, but I also got a list of several thousand movies without
2842 such IMDB title ID (and quite a few duplicates). It would be great if
2843 this data set could be integrated into the Internet Archive metadata
2844 to be available for everyone in the future, but with the current
2845 policy of leaving metadata editing to the uploaders, it will take a
2846 while before this happen. If you have uploaded movies into the
2847 Internet Archive, you can help. Please consider following my proposal
2848 above for your movies, to ensure that movie is properly
2849 counted. :)</p>
2850
2851 <p>The list is mostly generated using wikidata, which based on
2852 Wikipedia articles make it possible to link between IMDB and movies in
2853 the Internet Archive. But there are lots of movies without a
2854 Wikipedia article, and some movies where only a collection page exist
2855 (like for <a href="https://en.wikipedia.org/wiki/Caminandes">the
2856 Caminandes example above</a>, where there are three movies but only
2857 one Wikidata entry).</p>
2858
2859 <p>As usual, if you use Bitcoin and want to show your support of my
2860 activities, please send Bitcoin donations to my address
2861 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
2862
2863 </div>
2864 <div class="tags">
2865
2866
2867 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>, <a href="http://people.skolelinux.org/pere/blog/tags/verkidetfri">verkidetfri</a>.
2868
2869
2870 </div>
2871 </div>
2872 <div class="padding"></div>
2873
2874 <div class="entry">
2875 <div class="title">
2876 <a href="http://people.skolelinux.org/pere/blog/Legal_to_share_more_than_3000_movies_listed_on_IMDB_.html">Legal to share more than 3000 movies listed on IMDB?</a>
2877 </div>
2878 <div class="date">
2879 18th November 2017
2880 </div>
2881 <div class="body">
2882 <p>A month ago, I blogged about my work to
2883 <a href="http://people.skolelinux.org/pere/blog/Locating_IMDB_IDs_of_movies_in_the_Internet_Archive_using_Wikidata.html">automatically
2884 check the copyright status of IMDB entries</a>, and try to count the
2885 number of movies listed in IMDB that is legal to distribute on the
2886 Internet. I have continued to look for good data sources, and
2887 identified a few more. The code used to extract information from
2888 various data sources is available in
2889 <a href="https://github.com/petterreinholdtsen/public-domain-free-imdb">a
2890 git repository</a>, currently available from github.</p>
2891
2892 <p>So far I have identified 3186 unique IMDB title IDs. To gain
2893 better understanding of the structure of the data set, I created a
2894 histogram of the year associated with each movie (typically release
2895 year). It is interesting to notice where the peaks and dips in the
2896 graph are located. I wonder why they are placed there. I suspect
2897 World War II caused the dip around 1940, but what caused the peak
2898 around 2010?</p>
2899
2900 <p align="center"><img src="http://people.skolelinux.org/pere/blog/images/2017-11-18-verk-i-det-fri-filmer.png" /></p>
2901
2902 <p>I've so far identified ten sources for IMDB title IDs for movies in
2903 the public domain or with a free license. This is the statistics
2904 reported when running 'make stats' in the git repository:</p>
2905
2906 <pre>
2907 249 entries ( 6 unique) with and 288 without IMDB title ID in free-movies-archive-org-butter.json
2908 2301 entries ( 540 unique) with and 0 without IMDB title ID in free-movies-archive-org-wikidata.json
2909 830 entries ( 29 unique) with and 0 without IMDB title ID in free-movies-icheckmovies-archive-mochard.json
2910 2109 entries ( 377 unique) with and 0 without IMDB title ID in free-movies-imdb-pd.json
2911 291 entries ( 122 unique) with and 0 without IMDB title ID in free-movies-letterboxd-pd.json
2912 144 entries ( 135 unique) with and 0 without IMDB title ID in free-movies-manual.json
2913 350 entries ( 1 unique) with and 801 without IMDB title ID in free-movies-publicdomainmovies.json
2914 4 entries ( 0 unique) with and 124 without IMDB title ID in free-movies-publicdomainreview.json
2915 698 entries ( 119 unique) with and 118 without IMDB title ID in free-movies-publicdomaintorrents.json
2916 8 entries ( 8 unique) with and 196 without IMDB title ID in free-movies-vodo.json
2917 3186 unique IMDB title IDs in total
2918 </pre>
2919
2920 <p>The entries without IMDB title ID are candidates to increase the
2921 data set, but might equally well be duplicates of entries already
2922 listed with IMDB title ID in one of the other sources, or represent
2923 movies that lack a IMDB title ID. I've seen examples of all these
2924 situations when peeking at the entries without IMDB title ID. Based
2925 on these data sources, the lower bound for movies listed in IMDB that
2926 are legal to distribute on the Internet is between 3186 and 4713.
2927
2928 <p>It would be great for improving the accuracy of this measurement,
2929 if the various sources added IMDB title ID to their metadata. I have
2930 tried to reach the people behind the various sources to ask if they
2931 are interested in doing this, without any replies so far. Perhaps you
2932 can help me get in touch with the people behind VODO, Public Domain
2933 Torrents, Public Domain Movies and Public Domain Review to try to
2934 convince them to add more metadata to their movie entries?</p>
2935
2936 <p>Another way you could help is by adding pages to Wikipedia about
2937 movies that are legal to distribute on the Internet. If such page
2938 exist and include a link to both IMDB and The Internet Archive, the
2939 script used to generate free-movies-archive-org-wikidata.json should
2940 pick up the mapping as soon as wikidata is updates.</p>
2941
2942 <p>As usual, if you use Bitcoin and want to show your support of my
2943 activities, please send Bitcoin donations to my address
2944 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
2945
2946 </div>
2947 <div class="tags">
2948
2949
2950 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>, <a href="http://people.skolelinux.org/pere/blog/tags/verkidetfri">verkidetfri</a>.
2951
2952
2953 </div>
2954 </div>
2955 <div class="padding"></div>
2956
2957 <div class="entry">
2958 <div class="title">
2959 <a href="http://people.skolelinux.org/pere/blog/Some_notes_on_fault_tolerant_storage_systems.html">Some notes on fault tolerant storage systems</a>
2960 </div>
2961 <div class="date">
2962 1st November 2017
2963 </div>
2964 <div class="body">
2965 <p>If you care about how fault tolerant your storage is, you might
2966 find these articles and papers interesting. They have formed how I
2967 think of when designing a storage system.</p>
2968
2969 <ul>
2970
2971 <li>USENIX :login; <a
2972 href="https://www.usenix.org/publications/login/summer2017/ganesan">Redundancy
2973 Does Not Imply Fault Tolerance. Analysis of Distributed Storage
2974 Reactions to Single Errors and Corruptions</a> by Aishwarya Ganesan,
2975 Ramnatthan Alagappan, Andrea C. Arpaci-Dusseau, and Remzi
2976 H. Arpaci-Dusseau</li>
2977
2978 <li>ZDNet
2979 <a href="http://www.zdnet.com/article/why-raid-5-stops-working-in-2009/">Why
2980 RAID 5 stops working in 2009</a> by Robin Harris</li>
2981
2982 <li>ZDNet
2983 <a href="http://www.zdnet.com/article/why-raid-6-stops-working-in-2019/">Why
2984 RAID 6 stops working in 2019</a> by Robin Harris</li>
2985
2986 <li>USENIX FAST'07
2987 <a href="http://research.google.com/archive/disk_failures.pdf">Failure
2988 Trends in a Large Disk Drive Population</a> by Eduardo Pinheiro,
2989 Wolf-Dietrich Weber and Luiz André Barroso</li>
2990
2991 <li>USENIX ;login: <a
2992 href="https://www.usenix.org/system/files/login/articles/hughes12-04.pdf">Data
2993 Integrity. Finding Truth in a World of Guesses and Lies</a> by Doug
2994 Hughes</li>
2995
2996 <li>USENIX FAST'08
2997 <a href="https://www.usenix.org/events/fast08/tech/full_papers/bairavasundaram/bairavasundaram_html/">An
2998 Analysis of Data Corruption in the Storage Stack</a> by
2999 L. N. Bairavasundaram, G. R. Goodson, B. Schroeder, A. C.
3000 Arpaci-Dusseau, and R. H. Arpaci-Dusseau</li>
3001
3002 <li>USENIX FAST'07 <a
3003 href="https://www.usenix.org/legacy/events/fast07/tech/schroeder/schroeder_html/">Disk
3004 failures in the real world: what does an MTTF of 1,000,000 hours mean
3005 to you?</a> by B. Schroeder and G. A. Gibson.</li>
3006
3007 <li>USENIX ;login: <a
3008 href="https://www.usenix.org/events/fast08/tech/full_papers/jiang/jiang_html/">Are
3009 Disks the Dominant Contributor for Storage Failures? A Comprehensive
3010 Study of Storage Subsystem Failure Characteristics</a> by Weihang
3011 Jiang, Chongfeng Hu, Yuanyuan Zhou, and Arkady Kanevsky</li>
3012
3013 <li>SIGMETRICS 2007
3014 <a href="http://research.cs.wisc.edu/adsl/Publications/latent-sigmetrics07.pdf">An
3015 analysis of latent sector errors in disk drives</a> by
3016 L. N. Bairavasundaram, G. R. Goodson, S. Pasupathy, and J. Schindler</li>
3017
3018 </ul>
3019
3020 <p>Several of these research papers are based on data collected from
3021 hundred thousands or millions of disk, and their findings are eye
3022 opening. The short story is simply do not implicitly trust RAID or
3023 redundant storage systems. Details matter. And unfortunately there
3024 are few options on Linux addressing all the identified issues. Both
3025 ZFS and Btrfs are doing a fairly good job, but have legal and
3026 practical issues on their own. I wonder how cluster file systems like
3027 Ceph do in this regard. After all, there is an old saying, you know
3028 you have a distributed system when the crash of a computer you have
3029 never heard of stops you from getting any work done. The same holds
3030 true if fault tolerance do not work.</p>
3031
3032 <p>Just remember, in the end, it do not matter how redundant, or how
3033 fault tolerant your storage is, if you do not continuously monitor its
3034 status to detect and replace failed disks.</p>
3035
3036 <p>As usual, if you use Bitcoin and want to show your support of my
3037 activities, please send Bitcoin donations to my address
3038 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
3039
3040 </div>
3041 <div class="tags">
3042
3043
3044 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/raid">raid</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin</a>.
3045
3046
3047 </div>
3048 </div>
3049 <div class="padding"></div>
3050
3051 <div class="entry">
3052 <div class="title">
3053 <a href="http://people.skolelinux.org/pere/blog/Web_services_for_writing_academic_LaTeX_papers_as_a_team.html">Web services for writing academic LaTeX papers as a team</a>
3054 </div>
3055 <div class="date">
3056 31st October 2017
3057 </div>
3058 <div class="body">
3059 <p>I was surprised today to learn that a friend in academia did not
3060 know there are easily available web services available for writing
3061 LaTeX documents as a team. I thought it was common knowledge, but to
3062 make sure at least my readers are aware of it, I would like to mention
3063 these useful services for writing LaTeX documents. Some of them even
3064 provide a WYSIWYG editor to ease writing even further.</p>
3065
3066 <p>There are two commercial services available,
3067 <a href="https://sharelatex.com">ShareLaTeX</a> and
3068 <a href="https://overleaf.com">Overleaf</a>. They are very easy to
3069 use. Just start a new document, select which publisher to write for
3070 (ie which LaTeX style to use), and start writing. Note, these two
3071 have announced their intention to join forces, so soon it will only be
3072 one joint service. I've used both for different documents, and they
3073 work just fine. While
3074 <a href="https://github.com/sharelatex/sharelatex">ShareLaTeX is free
3075 software</a>, while the latter is not. According to <a
3076 href="https://www.overleaf.com/help/17-is-overleaf-open-source">a
3077 announcement from Overleaf</a>, they plan to keep the ShareLaTeX code
3078 base maintained as free software.</p>
3079
3080 But these two are not the only alternatives.
3081 <a href="https://app.fiduswriter.org/">Fidus Writer</a> is another free
3082 software solution with <a href="https://github.com/fiduswriter">the
3083 source available on github</a>. I have not used it myself. Several
3084 others can be found on the nice
3085 <a href="https://alternativeto.net/software/sharelatex/">alterntiveTo
3086 web service</a>.
3087
3088 <p>If you like Google Docs or Etherpad, but would like to write
3089 documents in LaTeX, you should check out these services. You can even
3090 host your own, if you want to. :)</p>
3091
3092 <p>As usual, if you use Bitcoin and want to show your support of my
3093 activities, please send Bitcoin donations to my address
3094 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
3095
3096 </div>
3097 <div class="tags">
3098
3099
3100 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
3101
3102
3103 </div>
3104 </div>
3105 <div class="padding"></div>
3106
3107 <div class="entry">
3108 <div class="title">
3109 <a href="http://people.skolelinux.org/pere/blog/Locating_IMDB_IDs_of_movies_in_the_Internet_Archive_using_Wikidata.html">Locating IMDB IDs of movies in the Internet Archive using Wikidata</a>
3110 </div>
3111 <div class="date">
3112 25th October 2017
3113 </div>
3114 <div class="body">
3115 <p>Recently, I needed to automatically check the copyright status of a
3116 set of <a href="http://www.imdb.com/">The Internet Movie database
3117 (IMDB)</a> entries, to figure out which one of the movies they refer
3118 to can be freely distributed on the Internet. This proved to be
3119 harder than it sounds. IMDB for sure list movies without any
3120 copyright protection, where the copyright protection has expired or
3121 where the movie is lisenced using a permissive license like one from
3122 Creative Commons. These are mixed with copyright protected movies,
3123 and there seem to be no way to separate these classes of movies using
3124 the information in IMDB.</p>
3125
3126 <p>First I tried to look up entries manually in IMDB,
3127 <a href="https://www.wikipedia.org/">Wikipedia</a> and
3128 <a href="https://www.archive.org/">The Internet Archive</a>, to get a
3129 feel how to do this. It is hard to know for sure using these sources,
3130 but it should be possible to be reasonable confident a movie is "out
3131 of copyright" with a few hours work per movie. As I needed to check
3132 almost 20,000 entries, this approach was not sustainable. I simply
3133 can not work around the clock for about 6 years to check this data
3134 set.</p>
3135
3136 <p>I asked the people behind The Internet Archive if they could
3137 introduce a new metadata field in their metadata XML for IMDB ID, but
3138 was told that they leave it completely to the uploaders to update the
3139 metadata. Some of the metadata entries had IMDB links in the
3140 description, but I found no way to download all metadata files in bulk
3141 to locate those ones and put that approach aside.</p>
3142
3143 <p>In the process I noticed several Wikipedia articles about movies
3144 had links to both IMDB and The Internet Archive, and it occured to me
3145 that I could use the Wikipedia RDF data set to locate entries with
3146 both, to at least get a lower bound on the number of movies on The
3147 Internet Archive with a IMDB ID. This is useful based on the
3148 assumption that movies distributed by The Internet Archive can be
3149 legally distributed on the Internet. With some help from the RDF
3150 community (thank you DanC), I was able to come up with this query to
3151 pass to <a href="https://query.wikidata.org/">the SPARQL interface on
3152 Wikidata</a>:
3153
3154 <p><pre>
3155 SELECT ?work ?imdb ?ia ?when ?label
3156 WHERE
3157 {
3158 ?work wdt:P31/wdt:P279* wd:Q11424.
3159 ?work wdt:P345 ?imdb.
3160 ?work wdt:P724 ?ia.
3161 OPTIONAL {
3162 ?work wdt:P577 ?when.
3163 ?work rdfs:label ?label.
3164 FILTER(LANG(?label) = "en").
3165 }
3166 }
3167 </pre></p>
3168
3169 <p>If I understand the query right, for every film entry anywhere in
3170 Wikpedia, it will return the IMDB ID and The Internet Archive ID, and
3171 when the movie was released and its English title, if either or both
3172 of the latter two are available. At the moment the result set contain
3173 2338 entries. Of course, it depend on volunteers including both
3174 correct IMDB and The Internet Archive IDs in the wikipedia articles
3175 for the movie. It should be noted that the result will include
3176 duplicates if the movie have entries in several languages. There are
3177 some bogus entries, either because The Internet Archive ID contain a
3178 typo or because the movie is not available from The Internet Archive.
3179 I did not verify the IMDB IDs, as I am unsure how to do that
3180 automatically.</p>
3181
3182 <p>I wrote a small python script to extract the data set from Wikidata
3183 and check if the XML metadata for the movie is available from The
3184 Internet Archive, and after around 1.5 hour it produced a list of 2097
3185 free movies and their IMDB ID. In total, 171 entries in Wikidata lack
3186 the refered Internet Archive entry. I assume the 70 "disappearing"
3187 entries (ie 2338-2097-171) are duplicate entries.</p>
3188
3189 <p>This is not too bad, given that The Internet Archive report to
3190 contain <a href="https://archive.org/details/feature_films">5331
3191 feature films</a> at the moment, but it also mean more than 3000
3192 movies are missing on Wikipedia or are missing the pair of references
3193 on Wikipedia.</p>
3194
3195 <p>I was curious about the distribution by release year, and made a
3196 little graph to show how the amount of free movies is spread over the
3197 years:<p>
3198
3199 <p><img src="http://people.skolelinux.org/pere/blog/images/2017-10-25-verk-i-det-fri-filmer.png"></p>
3200
3201 <p>I expect the relative distribution of the remaining 3000 movies to
3202 be similar.</p>
3203
3204 <p>If you want to help, and want to ensure Wikipedia can be used to
3205 cross reference The Internet Archive and The Internet Movie Database,
3206 please make sure entries like this are listed under the "External
3207 links" heading on the Wikipedia article for the movie:</p>
3208
3209 <p><pre>
3210 * {{Internet Archive film|id=FightingLady}}
3211 * {{IMDb title|id=0036823|title=The Fighting Lady}}
3212 </pre></p>
3213
3214 <p>Please verify the links on the final page, to make sure you did not
3215 introduce a typo.</p>
3216
3217 <p>Here is the complete list, if you want to correct the 171
3218 identified Wikipedia entries with broken links to The Internet
3219 Archive: <a href="http://www.wikidata.org/entity/Q1140317">Q1140317</a>,
3220 <a href="http://www.wikidata.org/entity/Q458656">Q458656</a>,
3221 <a href="http://www.wikidata.org/entity/Q458656">Q458656</a>,
3222 <a href="http://www.wikidata.org/entity/Q470560">Q470560</a>,
3223 <a href="http://www.wikidata.org/entity/Q743340">Q743340</a>,
3224 <a href="http://www.wikidata.org/entity/Q822580">Q822580</a>,
3225 <a href="http://www.wikidata.org/entity/Q480696">Q480696</a>,
3226 <a href="http://www.wikidata.org/entity/Q128761">Q128761</a>,
3227 <a href="http://www.wikidata.org/entity/Q1307059">Q1307059</a>,
3228 <a href="http://www.wikidata.org/entity/Q1335091">Q1335091</a>,
3229 <a href="http://www.wikidata.org/entity/Q1537166">Q1537166</a>,
3230 <a href="http://www.wikidata.org/entity/Q1438334">Q1438334</a>,
3231 <a href="http://www.wikidata.org/entity/Q1479751">Q1479751</a>,
3232 <a href="http://www.wikidata.org/entity/Q1497200">Q1497200</a>,
3233 <a href="http://www.wikidata.org/entity/Q1498122">Q1498122</a>,
3234 <a href="http://www.wikidata.org/entity/Q865973">Q865973</a>,
3235 <a href="http://www.wikidata.org/entity/Q834269">Q834269</a>,
3236 <a href="http://www.wikidata.org/entity/Q841781">Q841781</a>,
3237 <a href="http://www.wikidata.org/entity/Q841781">Q841781</a>,
3238 <a href="http://www.wikidata.org/entity/Q1548193">Q1548193</a>,
3239 <a href="http://www.wikidata.org/entity/Q499031">Q499031</a>,
3240 <a href="http://www.wikidata.org/entity/Q1564769">Q1564769</a>,
3241 <a href="http://www.wikidata.org/entity/Q1585239">Q1585239</a>,
3242 <a href="http://www.wikidata.org/entity/Q1585569">Q1585569</a>,
3243 <a href="http://www.wikidata.org/entity/Q1624236">Q1624236</a>,
3244 <a href="http://www.wikidata.org/entity/Q4796595">Q4796595</a>,
3245 <a href="http://www.wikidata.org/entity/Q4853469">Q4853469</a>,
3246 <a href="http://www.wikidata.org/entity/Q4873046">Q4873046</a>,
3247 <a href="http://www.wikidata.org/entity/Q915016">Q915016</a>,
3248 <a href="http://www.wikidata.org/entity/Q4660396">Q4660396</a>,
3249 <a href="http://www.wikidata.org/entity/Q4677708">Q4677708</a>,
3250 <a href="http://www.wikidata.org/entity/Q4738449">Q4738449</a>,
3251 <a href="http://www.wikidata.org/entity/Q4756096">Q4756096</a>,
3252 <a href="http://www.wikidata.org/entity/Q4766785">Q4766785</a>,
3253 <a href="http://www.wikidata.org/entity/Q880357">Q880357</a>,
3254 <a href="http://www.wikidata.org/entity/Q882066">Q882066</a>,
3255 <a href="http://www.wikidata.org/entity/Q882066">Q882066</a>,
3256 <a href="http://www.wikidata.org/entity/Q204191">Q204191</a>,
3257 <a href="http://www.wikidata.org/entity/Q204191">Q204191</a>,
3258 <a href="http://www.wikidata.org/entity/Q1194170">Q1194170</a>,
3259 <a href="http://www.wikidata.org/entity/Q940014">Q940014</a>,
3260 <a href="http://www.wikidata.org/entity/Q946863">Q946863</a>,
3261 <a href="http://www.wikidata.org/entity/Q172837">Q172837</a>,
3262 <a href="http://www.wikidata.org/entity/Q573077">Q573077</a>,
3263 <a href="http://www.wikidata.org/entity/Q1219005">Q1219005</a>,
3264 <a href="http://www.wikidata.org/entity/Q1219599">Q1219599</a>,
3265 <a href="http://www.wikidata.org/entity/Q1643798">Q1643798</a>,
3266 <a href="http://www.wikidata.org/entity/Q1656352">Q1656352</a>,
3267 <a href="http://www.wikidata.org/entity/Q1659549">Q1659549</a>,
3268 <a href="http://www.wikidata.org/entity/Q1660007">Q1660007</a>,
3269 <a href="http://www.wikidata.org/entity/Q1698154">Q1698154</a>,
3270 <a href="http://www.wikidata.org/entity/Q1737980">Q1737980</a>,
3271 <a href="http://www.wikidata.org/entity/Q1877284">Q1877284</a>,
3272 <a href="http://www.wikidata.org/entity/Q1199354">Q1199354</a>,
3273 <a href="http://www.wikidata.org/entity/Q1199354">Q1199354</a>,
3274 <a href="http://www.wikidata.org/entity/Q1199451">Q1199451</a>,
3275 <a href="http://www.wikidata.org/entity/Q1211871">Q1211871</a>,
3276 <a href="http://www.wikidata.org/entity/Q1212179">Q1212179</a>,
3277 <a href="http://www.wikidata.org/entity/Q1238382">Q1238382</a>,
3278 <a href="http://www.wikidata.org/entity/Q4906454">Q4906454</a>,
3279 <a href="http://www.wikidata.org/entity/Q320219">Q320219</a>,
3280 <a href="http://www.wikidata.org/entity/Q1148649">Q1148649</a>,
3281 <a href="http://www.wikidata.org/entity/Q645094">Q645094</a>,
3282 <a href="http://www.wikidata.org/entity/Q5050350">Q5050350</a>,
3283 <a href="http://www.wikidata.org/entity/Q5166548">Q5166548</a>,
3284 <a href="http://www.wikidata.org/entity/Q2677926">Q2677926</a>,
3285 <a href="http://www.wikidata.org/entity/Q2698139">Q2698139</a>,
3286 <a href="http://www.wikidata.org/entity/Q2707305">Q2707305</a>,
3287 <a href="http://www.wikidata.org/entity/Q2740725">Q2740725</a>,
3288 <a href="http://www.wikidata.org/entity/Q2024780">Q2024780</a>,
3289 <a href="http://www.wikidata.org/entity/Q2117418">Q2117418</a>,
3290 <a href="http://www.wikidata.org/entity/Q2138984">Q2138984</a>,
3291 <a href="http://www.wikidata.org/entity/Q1127992">Q1127992</a>,
3292 <a href="http://www.wikidata.org/entity/Q1058087">Q1058087</a>,
3293 <a href="http://www.wikidata.org/entity/Q1070484">Q1070484</a>,
3294 <a href="http://www.wikidata.org/entity/Q1080080">Q1080080</a>,
3295 <a href="http://www.wikidata.org/entity/Q1090813">Q1090813</a>,
3296 <a href="http://www.wikidata.org/entity/Q1251918">Q1251918</a>,
3297 <a href="http://www.wikidata.org/entity/Q1254110">Q1254110</a>,
3298 <a href="http://www.wikidata.org/entity/Q1257070">Q1257070</a>,
3299 <a href="http://www.wikidata.org/entity/Q1257079">Q1257079</a>,
3300 <a href="http://www.wikidata.org/entity/Q1197410">Q1197410</a>,
3301 <a href="http://www.wikidata.org/entity/Q1198423">Q1198423</a>,
3302 <a href="http://www.wikidata.org/entity/Q706951">Q706951</a>,
3303 <a href="http://www.wikidata.org/entity/Q723239">Q723239</a>,
3304 <a href="http://www.wikidata.org/entity/Q2079261">Q2079261</a>,
3305 <a href="http://www.wikidata.org/entity/Q1171364">Q1171364</a>,
3306 <a href="http://www.wikidata.org/entity/Q617858">Q617858</a>,
3307 <a href="http://www.wikidata.org/entity/Q5166611">Q5166611</a>,
3308 <a href="http://www.wikidata.org/entity/Q5166611">Q5166611</a>,
3309 <a href="http://www.wikidata.org/entity/Q324513">Q324513</a>,
3310 <a href="http://www.wikidata.org/entity/Q374172">Q374172</a>,
3311 <a href="http://www.wikidata.org/entity/Q7533269">Q7533269</a>,
3312 <a href="http://www.wikidata.org/entity/Q970386">Q970386</a>,
3313 <a href="http://www.wikidata.org/entity/Q976849">Q976849</a>,
3314 <a href="http://www.wikidata.org/entity/Q7458614">Q7458614</a>,
3315 <a href="http://www.wikidata.org/entity/Q5347416">Q5347416</a>,
3316 <a href="http://www.wikidata.org/entity/Q5460005">Q5460005</a>,
3317 <a href="http://www.wikidata.org/entity/Q5463392">Q5463392</a>,
3318 <a href="http://www.wikidata.org/entity/Q3038555">Q3038555</a>,
3319 <a href="http://www.wikidata.org/entity/Q5288458">Q5288458</a>,
3320 <a href="http://www.wikidata.org/entity/Q2346516">Q2346516</a>,
3321 <a href="http://www.wikidata.org/entity/Q5183645">Q5183645</a>,
3322 <a href="http://www.wikidata.org/entity/Q5185497">Q5185497</a>,
3323 <a href="http://www.wikidata.org/entity/Q5216127">Q5216127</a>,
3324 <a href="http://www.wikidata.org/entity/Q5223127">Q5223127</a>,
3325 <a href="http://www.wikidata.org/entity/Q5261159">Q5261159</a>,
3326 <a href="http://www.wikidata.org/entity/Q1300759">Q1300759</a>,
3327 <a href="http://www.wikidata.org/entity/Q5521241">Q5521241</a>,
3328 <a href="http://www.wikidata.org/entity/Q7733434">Q7733434</a>,
3329 <a href="http://www.wikidata.org/entity/Q7736264">Q7736264</a>,
3330 <a href="http://www.wikidata.org/entity/Q7737032">Q7737032</a>,
3331 <a href="http://www.wikidata.org/entity/Q7882671">Q7882671</a>,
3332 <a href="http://www.wikidata.org/entity/Q7719427">Q7719427</a>,
3333 <a href="http://www.wikidata.org/entity/Q7719444">Q7719444</a>,
3334 <a href="http://www.wikidata.org/entity/Q7722575">Q7722575</a>,
3335 <a href="http://www.wikidata.org/entity/Q2629763">Q2629763</a>,
3336 <a href="http://www.wikidata.org/entity/Q2640346">Q2640346</a>,
3337 <a href="http://www.wikidata.org/entity/Q2649671">Q2649671</a>,
3338 <a href="http://www.wikidata.org/entity/Q7703851">Q7703851</a>,
3339 <a href="http://www.wikidata.org/entity/Q7747041">Q7747041</a>,
3340 <a href="http://www.wikidata.org/entity/Q6544949">Q6544949</a>,
3341 <a href="http://www.wikidata.org/entity/Q6672759">Q6672759</a>,
3342 <a href="http://www.wikidata.org/entity/Q2445896">Q2445896</a>,
3343 <a href="http://www.wikidata.org/entity/Q12124891">Q12124891</a>,
3344 <a href="http://www.wikidata.org/entity/Q3127044">Q3127044</a>,
3345 <a href="http://www.wikidata.org/entity/Q2511262">Q2511262</a>,
3346 <a href="http://www.wikidata.org/entity/Q2517672">Q2517672</a>,
3347 <a href="http://www.wikidata.org/entity/Q2543165">Q2543165</a>,
3348 <a href="http://www.wikidata.org/entity/Q426628">Q426628</a>,
3349 <a href="http://www.wikidata.org/entity/Q426628">Q426628</a>,
3350 <a href="http://www.wikidata.org/entity/Q12126890">Q12126890</a>,
3351 <a href="http://www.wikidata.org/entity/Q13359969">Q13359969</a>,
3352 <a href="http://www.wikidata.org/entity/Q13359969">Q13359969</a>,
3353 <a href="http://www.wikidata.org/entity/Q2294295">Q2294295</a>,
3354 <a href="http://www.wikidata.org/entity/Q2294295">Q2294295</a>,
3355 <a href="http://www.wikidata.org/entity/Q2559509">Q2559509</a>,
3356 <a href="http://www.wikidata.org/entity/Q2559912">Q2559912</a>,
3357 <a href="http://www.wikidata.org/entity/Q7760469">Q7760469</a>,
3358 <a href="http://www.wikidata.org/entity/Q6703974">Q6703974</a>,
3359 <a href="http://www.wikidata.org/entity/Q4744">Q4744</a>,
3360 <a href="http://www.wikidata.org/entity/Q7766962">Q7766962</a>,
3361 <a href="http://www.wikidata.org/entity/Q7768516">Q7768516</a>,
3362 <a href="http://www.wikidata.org/entity/Q7769205">Q7769205</a>,
3363 <a href="http://www.wikidata.org/entity/Q7769988">Q7769988</a>,
3364 <a href="http://www.wikidata.org/entity/Q2946945">Q2946945</a>,
3365 <a href="http://www.wikidata.org/entity/Q3212086">Q3212086</a>,
3366 <a href="http://www.wikidata.org/entity/Q3212086">Q3212086</a>,
3367 <a href="http://www.wikidata.org/entity/Q18218448">Q18218448</a>,
3368 <a href="http://www.wikidata.org/entity/Q18218448">Q18218448</a>,
3369 <a href="http://www.wikidata.org/entity/Q18218448">Q18218448</a>,
3370 <a href="http://www.wikidata.org/entity/Q6909175">Q6909175</a>,
3371 <a href="http://www.wikidata.org/entity/Q7405709">Q7405709</a>,
3372 <a href="http://www.wikidata.org/entity/Q7416149">Q7416149</a>,
3373 <a href="http://www.wikidata.org/entity/Q7239952">Q7239952</a>,
3374 <a href="http://www.wikidata.org/entity/Q7317332">Q7317332</a>,
3375 <a href="http://www.wikidata.org/entity/Q7783674">Q7783674</a>,
3376 <a href="http://www.wikidata.org/entity/Q7783704">Q7783704</a>,
3377 <a href="http://www.wikidata.org/entity/Q7857590">Q7857590</a>,
3378 <a href="http://www.wikidata.org/entity/Q3372526">Q3372526</a>,
3379 <a href="http://www.wikidata.org/entity/Q3372642">Q3372642</a>,
3380 <a href="http://www.wikidata.org/entity/Q3372816">Q3372816</a>,
3381 <a href="http://www.wikidata.org/entity/Q3372909">Q3372909</a>,
3382 <a href="http://www.wikidata.org/entity/Q7959649">Q7959649</a>,
3383 <a href="http://www.wikidata.org/entity/Q7977485">Q7977485</a>,
3384 <a href="http://www.wikidata.org/entity/Q7992684">Q7992684</a>,
3385 <a href="http://www.wikidata.org/entity/Q3817966">Q3817966</a>,
3386 <a href="http://www.wikidata.org/entity/Q3821852">Q3821852</a>,
3387 <a href="http://www.wikidata.org/entity/Q3420907">Q3420907</a>,
3388 <a href="http://www.wikidata.org/entity/Q3429733">Q3429733</a>,
3389 <a href="http://www.wikidata.org/entity/Q774474">Q774474</a></p>
3390
3391 <p>As usual, if you use Bitcoin and want to show your support of my
3392 activities, please send Bitcoin donations to my address
3393 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
3394
3395 </div>
3396 <div class="tags">
3397
3398
3399 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>, <a href="http://people.skolelinux.org/pere/blog/tags/verkidetfri">verkidetfri</a>.
3400
3401
3402 </div>
3403 </div>
3404 <div class="padding"></div>
3405
3406 <div class="entry">
3407 <div class="title">
3408 <a href="http://people.skolelinux.org/pere/blog/A_one_way_wall_on_the_border_.html">A one-way wall on the border?</a>
3409 </div>
3410 <div class="date">
3411 14th October 2017
3412 </div>
3413 <div class="body">
3414 <p>I find it fascinating how many of the people being locked inside
3415 the proposed border wall between USA and Mexico support the idea. The
3416 proposal to keep Mexicans out reminds me of
3417 <a href="http://www.history.com/news/10-things-you-may-not-know-about-the-berlin-wall">the
3418 propaganda twist from the East Germany government</a> calling the wall
3419 the “Antifascist Bulwark” after erecting the Berlin Wall, claiming
3420 that the wall was erected to keep enemies from creeping into East
3421 Germany, while it was obvious to the people locked inside it that it
3422 was erected to keep the people from escaping.</p>
3423
3424 <p>Do the people in USA supporting this wall really believe it is a
3425 one way wall, only keeping people on the outside from getting in,
3426 while not keeping people in the inside from getting out?</p>
3427
3428 <p>As usual, if you use Bitcoin and want to show your support of my
3429 activities, please send Bitcoin donations to my address
3430 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
3431
3432 </div>
3433 <div class="tags">
3434
3435
3436 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
3437
3438
3439 </div>
3440 </div>
3441 <div class="padding"></div>
3442
3443 <div class="entry">
3444 <div class="title">
3445 <a href="http://people.skolelinux.org/pere/blog/Generating_3D_prints_in_Debian_using_Cura_and_Slic3r__prusa_.html">Generating 3D prints in Debian using Cura and Slic3r(-prusa)</a>
3446 </div>
3447 <div class="date">
3448 9th October 2017
3449 </div>
3450 <div class="body">
3451 <p>At my nearby maker space,
3452 <a href="http://sonen.ifi.uio.no/">Sonen</a>, I heard the story that it
3453 was easier to generate gcode files for theyr 3D printers (Ultimake 2+)
3454 on Windows and MacOS X than Linux, because the software involved had
3455 to be manually compiled and set up on Linux while premade packages
3456 worked out of the box on Windows and MacOS X. I found this annoying,
3457 as the software involved,
3458 <a href="https://github.com/Ultimaker/Cura">Cura</a>, is free software
3459 and should be trivial to get up and running on Linux if someone took
3460 the time to package it for the relevant distributions. I even found
3461 <a href="https://bugs.debian.org/706656">a request for adding into
3462 Debian</a> from 2013, which had seem some activity over the years but
3463 never resulted in the software showing up in Debian. So a few days
3464 ago I offered my help to try to improve the situation.</p>
3465
3466 <p>Now I am very happy to see that all the packages required by a
3467 working Cura in Debian are uploaded into Debian and waiting in the NEW
3468 queue for the ftpmasters to have a look. You can track the progress
3469 on
3470 <a href="https://qa.debian.org/developer.php?email=3dprinter-general%40lists.alioth.debian.org">the
3471 status page for the 3D printer team</a>.</p>
3472
3473 <p>The uploaded packages are a bit behind upstream, and was uploaded
3474 now to get slots in <a href="https://ftp-master.debian.org/new.html">the NEW
3475 queue</a> while we work up updating the packages to the latest
3476 upstream version.</p>
3477
3478 <p>On a related note, two competitors for Cura, which I found harder
3479 to use and was unable to configure correctly for Ultimaker 2+ in the
3480 short time I spent on it, are already in Debian. If you are looking
3481 for 3D printer "slicers" and want something already available in
3482 Debian, check out
3483 <a href="https://tracker.debian.org/pkg/slic3r">slic3r</a> and
3484 <a href="https://tracker.debian.org/pkg/slic3r-prusa">slic3r-prusa</a>.
3485 The latter is a fork of the former.</p>
3486
3487 <p>As usual, if you use Bitcoin and want to show your support of my
3488 activities, please send Bitcoin donations to my address
3489 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
3490
3491 </div>
3492 <div class="tags">
3493
3494
3495 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
3496
3497
3498 </div>
3499 </div>
3500 <div class="padding"></div>
3501
3502 <div class="entry">
3503 <div class="title">
3504 <a href="http://people.skolelinux.org/pere/blog/Visualizing_GSM_radio_chatter_using_gr_gsm_and_Hopglass.html">Visualizing GSM radio chatter using gr-gsm and Hopglass</a>
3505 </div>
3506 <div class="date">
3507 29th September 2017
3508 </div>
3509 <div class="body">
3510 <p>Every mobile phone announce its existence over radio to the nearby
3511 mobile cell towers. And this radio chatter is available for anyone
3512 with a radio receiver capable of receiving them. Details about the
3513 mobile phones with very good accuracy is of course collected by the
3514 phone companies, but this is not the topic of this blog post. The
3515 mobile phone radio chatter make it possible to figure out when a cell
3516 phone is nearby, as it include the SIM card ID (IMSI). By paying
3517 attention over time, one can see when a phone arrive and when it leave
3518 an area. I believe it would be nice to make this information more
3519 available to the general public, to make more people aware of how
3520 their phones are announcing their whereabouts to anyone that care to
3521 listen.</p>
3522
3523 <p>I am very happy to report that we managed to get something
3524 visualizing this information up and running for
3525 <a href="http://norwaymakers.org/osf17">Oslo Skaperfestival 2017</a>
3526 (Oslo Makers Festival) taking place today and tomorrow at Deichmanske
3527 library. The solution is based on the
3528 <a href="http://people.skolelinux.org/pere/blog/Easier_recipe_to_observe_the_cell_phones_around_you.html">simple
3529 recipe for listening to GSM chatter</a> I posted a few days ago, and
3530 will show up at the stand of <a href="http://sonen.ifi.uio.no/">Åpen
3531 Sone from the Computer Science department of the University of
3532 Oslo</a>. The presentation will show the nearby mobile phones (aka
3533 IMSIs) as dots in a web browser graph, with lines to the dot
3534 representing mobile base station it is talking to. It was working in
3535 the lab yesterday, and was moved into place this morning.</p>
3536
3537 <p>We set up a fairly powerful desktop machine using Debian
3538 Buster/Testing with several (five, I believe) RTL2838 DVB-T receivers
3539 connected and visualize the visible cell phone towers using an
3540 <a href="https://github.com/marlow925/hopglass">English version of
3541 Hopglass</a>. A fairly powerfull machine is needed as the
3542 grgsm_livemon_headless processes from
3543 <a href="https://tracker.debian.org/pkg/gr-gsm">gr-gsm</a> converting
3544 the radio signal to data packages is quite CPU intensive.</p>
3545
3546 <p>The frequencies to listen to, are identified using a slightly
3547 patched scan-and-livemon (to set the --args values for each receiver),
3548 and the Hopglass data is generated using the
3549 <a href="https://github.com/petterreinholdtsen/IMSI-catcher/tree/meshviewer-output">patches
3550 in my meshviewer-output branch</a>. For some reason we could not get
3551 more than four SDRs working. There is also a geographical map trying
3552 to show the location of the base stations, but I believe their
3553 coordinates are hardcoded to some random location in Germany, I
3554 believe. The code should be replaced with code to look up location in
3555 a text file, a sqlite database or one of the online databases
3556 mentioned in
3557 <a href="https://github.com/Oros42/IMSI-catcher/issues/14">the github
3558 issue for the topic</a>.
3559
3560 <p>If this sound interesting, visit the stand at the festival!</p>
3561
3562 </div>
3563 <div class="tags">
3564
3565
3566 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/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>.
3567
3568
3569 </div>
3570 </div>
3571 <div class="padding"></div>
3572
3573 <div class="entry">
3574 <div class="title">
3575 <a href="http://people.skolelinux.org/pere/blog/Easier_recipe_to_observe_the_cell_phones_around_you.html">Easier recipe to observe the cell phones around you</a>
3576 </div>
3577 <div class="date">
3578 24th September 2017
3579 </div>
3580 <div class="body">
3581 <p>A little more than a month ago I wrote
3582 <a href="http://people.skolelinux.org/pere/blog/Simpler_recipe_on_how_to_make_a_simple__7_IMSI_Catcher_using_Debian.html">how
3583 to observe the SIM card ID (aka IMSI number) of mobile phones talking
3584 to nearby mobile phone base stations using Debian GNU/Linux and a
3585 cheap USB software defined radio</a>, and thus being able to pinpoint
3586 the location of people and equipment (like cars and trains) with an
3587 accuracy of a few kilometer. Since then we have worked to make the
3588 procedure even simpler, and it is now possible to do this without any
3589 manual frequency tuning and without building your own packages.</p>
3590
3591 <p>The <a href="https://tracker.debian.org/pkg/gr-gsm">gr-gsm</a>
3592 package is now included in Debian testing and unstable, and the
3593 IMSI-catcher code no longer require root access to fetch and decode
3594 the GSM data collected using gr-gsm.</p>
3595
3596 <p>Here is an updated recipe, using packages built by Debian and a git
3597 clone of two python scripts:</p>
3598
3599 <ol>
3600
3601 <li>Start with a Debian machine running the Buster version (aka
3602 testing).</li>
3603
3604 <li>Run '<tt>apt install gr-gsm python-numpy python-scipy
3605 python-scapy</tt>' as root to install required packages.</li>
3606
3607 <li>Fetch the code decoding GSM packages using '<tt>git clone
3608 github.com/Oros42/IMSI-catcher.git</tt>'.</li>
3609
3610 <li>Insert USB software defined radio supported by GNU Radio.</li>
3611
3612 <li>Enter the IMSI-catcher directory and run '<tt>python
3613 scan-and-livemon</tt>' to locate the frequency of nearby base
3614 stations and start listening for GSM packages on one of them.</li>
3615
3616 <li>Enter the IMSI-catcher directory and run '<tt>python
3617 simple_IMSI-catcher.py</tt>' to display the collected information.</li>
3618
3619 </ol>
3620
3621 <p>Note, due to a bug somewhere the scan-and-livemon program (actually
3622 <a href="https://github.com/ptrkrysik/gr-gsm/issues/336">its underlying
3623 program grgsm_scanner</a>) do not work with the HackRF radio. It does
3624 work with RTL 8232 and other similar USB radio receivers you can get
3625 very cheaply
3626 (<a href="https://www.ebay.com/sch/items/?_nkw=rtl+2832">for example
3627 from ebay</a>), so for now the solution is to scan using the RTL radio
3628 and only use HackRF for fetching GSM data.</p>
3629
3630 <p>As far as I can tell, a cell phone only show up on one of the
3631 frequencies at the time, so if you are going to track and count every
3632 cell phone around you, you need to listen to all the frequencies used.
3633 To listen to several frequencies, use the --numrecv argument to
3634 scan-and-livemon to use several receivers. Further, I am not sure if
3635 phones using 3G or 4G will show as talking GSM to base stations, so
3636 this approach might not see all phones around you. I typically see
3637 0-400 IMSI numbers an hour when looking around where I live.</p>
3638
3639 <p>I've tried to run the scanner on a
3640 <a href="https://wiki.debian.org/RaspberryPi">Raspberry Pi 2 and 3
3641 running Debian Buster</a>, but the grgsm_livemon_headless process seem
3642 to be too CPU intensive to keep up. When GNU Radio print 'O' to
3643 stdout, I am told there it is caused by a buffer overflow between the
3644 radio and GNU Radio, caused by the program being unable to read the
3645 GSM data fast enough. If you see a stream of 'O's from the terminal
3646 where you started scan-and-livemon, you need a give the process more
3647 CPU power. Perhaps someone are able to optimize the code to a point
3648 where it become possible to set up RPi3 based GSM sniffers? I tried
3649 using Raspbian instead of Debian, but there seem to be something wrong
3650 with GNU Radio on raspbian, causing glibc to abort().</p>
3651
3652 </div>
3653 <div class="tags">
3654
3655
3656 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/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>.
3657
3658
3659 </div>
3660 </div>
3661 <div class="padding"></div>
3662
3663 <div class="entry">
3664 <div class="title">
3665 <a href="http://people.skolelinux.org/pere/blog/Simpler_recipe_on_how_to_make_a_simple__7_IMSI_Catcher_using_Debian.html">Simpler recipe on how to make a simple $7 IMSI Catcher using Debian</a>
3666 </div>
3667 <div class="date">
3668 9th August 2017
3669 </div>
3670 <div class="body">
3671 <p>On friday, I came across an interesting article in the Norwegian
3672 web based ICT news magazine digi.no on
3673 <a href="https://www.digi.no/artikler/sikkerhetsforsker-lagde-enkel-imsi-catcher-for-60-kroner-na-kan-mobiler-kartlegges-av-alle/398588">how
3674 to collect the IMSI numbers of nearby cell phones</a> using the cheap
3675 DVB-T software defined radios. The article refered to instructions
3676 and <a href="https://www.youtube.com/watch?v=UjwgNd_as30">a recipe by
3677 Keld Norman on Youtube on how to make a simple $7 IMSI Catcher</a>, and I decided to test them out.</p>
3678
3679 <p>The instructions said to use Ubuntu, install pip using apt (to
3680 bypass apt), use pip to install pybombs (to bypass both apt and pip),
3681 and the ask pybombs to fetch and build everything you need from
3682 scratch. I wanted to see if I could do the same on the most recent
3683 Debian packages, but this did not work because pybombs tried to build
3684 stuff that no longer build with the most recent openssl library or
3685 some other version skew problem. While trying to get this recipe
3686 working, I learned that the apt->pip->pybombs route was a long detour,
3687 and the only piece of software dependency missing in Debian was the
3688 gr-gsm package. I also found out that the lead upstream developer of
3689 gr-gsm (the name stand for GNU Radio GSM) project already had a set of
3690 Debian packages provided in an Ubuntu PPA repository. All I needed to
3691 do was to dget the Debian source package and built it.</p>
3692
3693 <p>The IMSI collector is a python script listening for packages on the
3694 loopback network device and printing to the terminal some specific GSM
3695 packages with IMSI numbers in them. The code is fairly short and easy
3696 to understand. The reason this work is because gr-gsm include a tool
3697 to read GSM data from a software defined radio like a DVB-T USB stick
3698 and other software defined radios, decode them and inject them into a
3699 network device on your Linux machine (using the loopback device by
3700 default). This proved to work just fine, and I've been testing the
3701 collector for a few days now.</p>
3702
3703 <p>The updated and simpler recipe is thus to</p>
3704
3705 <ol>
3706
3707 <li>start with a Debian machine running Stretch or newer,</li>
3708
3709 <li>build and install the gr-gsm package available from
3710 <a href="http://ppa.launchpad.net/ptrkrysik/gr-gsm/ubuntu/pool/main/g/gr-gsm/">http://ppa.launchpad.net/ptrkrysik/gr-gsm/ubuntu/pool/main/g/gr-gsm/</a>,</li>
3711
3712 <li>clone the git repostory from <a href="https://github.com/Oros42/IMSI-catcher">https://github.com/Oros42/IMSI-catcher</a>,</li>
3713
3714 <li>run grgsm_livemon and adjust the frequency until the terminal
3715 where it was started is filled with a stream of text (meaning you
3716 found a GSM station).</li>
3717
3718 <li>go into the IMSI-catcher directory and run 'sudo python simple_IMSI-catcher.py' to extract the IMSI numbers.</li>
3719
3720 </ol>
3721
3722 <p>To make it even easier in the future to get this sniffer up and
3723 running, I decided to package
3724 <a href="https://github.com/ptrkrysik/gr-gsm/">the gr-gsm project</a>
3725 for Debian (<a href="https://bugs.debian.org/871055">WNPP
3726 #871055</a>), and the package was uploaded into the NEW queue today.
3727 Luckily the gnuradio maintainer has promised to help me, as I do not
3728 know much about gnuradio stuff yet.</p>
3729
3730 <p>I doubt this "IMSI cacher" is anywhere near as powerfull as
3731 commercial tools like
3732 <a href="https://www.thespyphone.com/portable-imsi-imei-catcher/">The
3733 Spy Phone Portable IMSI / IMEI Catcher</a> or the
3734 <a href="https://en.wikipedia.org/wiki/Stingray_phone_tracker">Harris
3735 Stingray</a>, but I hope the existance of cheap alternatives can make
3736 more people realise how their whereabouts when carrying a cell phone
3737 is easily tracked. Seeing the data flow on the screen, realizing that
3738 I live close to a police station and knowing that the police is also
3739 wearing cell phones, I wonder how hard it would be for criminals to
3740 track the position of the police officers to discover when there are
3741 police near by, or for foreign military forces to track the location
3742 of the Norwegian military forces, or for anyone to track the location
3743 of government officials...</p>
3744
3745 <p>It is worth noting that the data reported by the IMSI-catcher
3746 script mentioned above is only a fraction of the data broadcasted on
3747 the GSM network. It will only collect one frequency at the time,
3748 while a typical phone will be using several frequencies, and not all
3749 phones will be using the frequencies tracked by the grgsm_livemod
3750 program. Also, there is a lot of radio chatter being ignored by the
3751 simple_IMSI-catcher script, which would be collected by extending the
3752 parser code. I wonder if gr-gsm can be set up to listen to more than
3753 one frequency?</p>
3754
3755 </div>
3756 <div class="tags">
3757
3758
3759 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/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>.
3760
3761
3762 </div>
3763 </div>
3764 <div class="padding"></div>
3765
3766 <div class="entry">
3767 <div class="title">
3768 <a href="http://people.skolelinux.org/pere/blog/Norwegian_Bokm_l_edition_of_Debian_Administrator_s_Handbook_is_now_available.html">Norwegian Bokmål edition of Debian Administrator's Handbook is now available</a>
3769 </div>
3770 <div class="date">
3771 25th July 2017
3772 </div>
3773 <div class="body">
3774 <p align="center"><img align="center" src="http://people.skolelinux.org/pere/blog/images/2017-07-25-debian-handbook-nb-testprint.png"/></p>
3775
3776 <p>I finally received a copy of the Norwegian Bokmål edition of
3777 "<a href="https://debian-handbook.info/">The Debian Administrator's
3778 Handbook</a>". This test copy arrived in the mail a few days ago, and
3779 I am very happy to hold the result in my hand. We spent around one and a half year translating it. This paperbook edition
3780 <a href="https://debian-handbook.info/get/#norwegian">is available
3781 from lulu.com</a>. If you buy it quickly, you save 25% on the list
3782 price. The book is also available for download in electronic form as
3783 PDF, EPUB and Mobipocket, as can be
3784 <a href="https://debian-handbook.info/browse/nb-NO/stable/">read online
3785 as a web page</a>.</p>
3786
3787 <p>This is the second book I publish (the first was the book
3788 "<a href="http://free-culture.cc/">Free Culture</a>" by Lawrence Lessig
3789 in
3790 <a href="http://www.lulu.com/shop/lawrence-lessig/free-culture/paperback/product-22440520.html">English</a>,
3791 <a href="http://www.lulu.com/shop/lawrence-lessig/culture-libre/paperback/product-22645082.html">French</a>
3792 and
3793 <a href="http://www.lulu.com/shop/lawrence-lessig/fri-kultur/paperback/product-22441576.html">Norwegian
3794 Bokmål</a>), and I am very excited to finally wrap up this
3795 project. I hope
3796 "<a href="http://www.lulu.com/shop/rapha%C3%ABl-hertzog-and-roland-mas/h%C3%A5ndbok-for-debian-administratoren/paperback/product-23262290.html">Håndbok
3797 for Debian-administratoren</a>" will be well received.</p>
3798
3799 </div>
3800 <div class="tags">
3801
3802
3803 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian-handbook">debian-handbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
3804
3805
3806 </div>
3807 </div>
3808 <div class="padding"></div>
3809
3810 <div class="entry">
3811 <div class="title">
3812 <a href="http://people.skolelinux.org/pere/blog/Updated_sales_number_for_my_Free_Culture_paper_editions.html">Updated sales number for my Free Culture paper editions</a>
3813 </div>
3814 <div class="date">
3815 12th June 2017
3816 </div>
3817 <div class="body">
3818 <p>It is pleasing to see that the work we put down in publishing new
3819 editions of the classic <a href="http://www.free-culture.cc/">Free
3820 Culture book</a> by the founder of the Creative Commons movement,
3821 Lawrence Lessig, is still being appreciated. I had a look at the
3822 latest sales numbers for the paper edition today. Not too impressive,
3823 but happy to see some buyers still exist. All the revenue from the
3824 books is sent to the <a href="https://creativecommons.org/">Creative
3825 Commons Corporation</a>, and they receive the largest cut if you buy
3826 directly from Lulu. Most books are sold via Amazon, with Ingram
3827 second and only a small fraction directly from Lulu. The ebook
3828 edition is available for free from
3829 <a href="https://github.com/petterreinholdtsen/free-culture-lessig">Github</a>.</p>
3830
3831 <table border="0">
3832 <tr><th rowspan="2" valign="bottom">Title / language</th><th colspan="3">Quantity</th></tr>
3833 <tr><th>2016 jan-jun</th><th>2016 jul-dec</th><th>2017 jan-may</th></tr>
3834
3835 <tr>
3836 <td><a href="http://www.lulu.com/shop/lawrence-lessig/culture-libre/paperback/product-22645082.html">Culture Libre / French</a></td>
3837 <td align="right">3</td>
3838 <td align="right">6</td>
3839 <td align="right">15</td>
3840 </tr>
3841
3842 <tr>
3843 <td><a href="http://www.lulu.com/shop/lawrence-lessig/fri-kultur/paperback/product-22441576.html">Fri kultur / Norwegian</a></td>
3844 <td align="right">7</td>
3845 <td align="right">1</td>
3846 <td align="right">0</td>
3847 </tr>
3848
3849 <tr>
3850 <td><a href="http://www.lulu.com/shop/lawrence-lessig/free-culture/paperback/product-22440520.html">Free Culture / English</a></td>
3851 <td align="right">14</td>
3852 <td align="right">27</td>
3853 <td align="right">16</td>
3854 </tr>
3855
3856 <tr>
3857 <td>Total</td>
3858 <td align="right">24</td>
3859 <td align="right">34</td>
3860 <td align="right">31</td>
3861 </tr>
3862
3863 </table>
3864
3865 <p>A bit sad to see the low sales number on the Norwegian edition, and
3866 a bit surprising the English edition still selling so well.</p>
3867
3868 <p>If you would like to translate and publish the book in your native
3869 language, I would be happy to help make it happen. Please get in
3870 touch.</p>
3871
3872 </div>
3873 <div class="tags">
3874
3875
3876 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>.
3877
3878
3879 </div>
3880 </div>
3881 <div class="padding"></div>
3882
3883 <div class="entry">
3884 <div class="title">
3885 <a href="http://people.skolelinux.org/pere/blog/Release_0_1_1_of_free_software_archive_system_Nikita_announced.html">Release 0.1.1 of free software archive system Nikita announced</a>
3886 </div>
3887 <div class="date">
3888 10th June 2017
3889 </div>
3890 <div class="body">
3891 <p>I am very happy to report that the
3892 <a href="https://github.com/hiOA-ABI/nikita-noark5-core">Nikita Noark 5
3893 core project</a> tagged its second release today. The free software
3894 solution is an implementation of the Norwegian archive standard Noark
3895 5 used by government offices in Norway. These were the changes in
3896 version 0.1.1 since version 0.1.0 (from NEWS.md):
3897
3898 <ul>
3899
3900 <li>Continued work on the angularjs GUI, including document upload.</li>
3901 <li>Implemented correspondencepartPerson, correspondencepartUnit and
3902 correspondencepartInternal</li>
3903 <li>Applied for coverity coverage and started submitting code on
3904 regualr basis.</li>
3905 <li>Started fixing bugs reported by coverity</li>
3906 <li>Corrected and completed HATEOAS links to make sure entire API is
3907 available via URLs in _links.</li>
3908 <li>Corrected all relation URLs to use trailing slash.</li>
3909 <li>Add initial support for storing data in ElasticSearch.</li>
3910 <li>Now able to receive and store uploaded files in the archive.</li>
3911 <li>Changed JSON output for object lists to have relations in _links.</li>
3912 <li>Improve JSON output for empty object lists.</li>
3913 <li>Now uses correct MIME type application/vnd.noark5-v4+json.</li>
3914 <li>Added support for docker container images.</li>
3915 <li>Added simple API browser implemented in JavaScript/Angular.</li>
3916 <li>Started on archive client implemented in JavaScript/Angular.</li>
3917 <li>Started on prototype to show the public mail journal.</li>
3918 <li>Improved performance by disabling Sprint FileWatcher.</li>
3919 <li>Added support for 'arkivskaper', 'saksmappe' and 'journalpost'.</li>
3920 <li>Added support for some metadata codelists.</li>
3921 <li>Added support for Cross-origin resource sharing (CORS).</li>
3922 <li>Changed login method from Basic Auth to JSON Web Token (RFC 7519)
3923 style.</li>
3924 <li>Added support for GET-ing ny-* URLs.</li>
3925 <li>Added support for modifying entities using PUT and eTag.</li>
3926 <li>Added support for returning XML output on request.</li>
3927 <li>Removed support for English field and class names, limiting ourself
3928 to the official names.</li>
3929 <li>...</li>
3930
3931 </ul>
3932
3933 <p>If this sound interesting to you, please contact us on IRC (#nikita
3934 on irc.freenode.net) or email
3935 (<a href="https://lists.nuug.no/mailman/listinfo/nikita-noark">nikita-noark
3936 mailing list).</p>
3937
3938 </div>
3939 <div class="tags">
3940
3941
3942 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>.
3943
3944
3945 </div>
3946 </div>
3947 <div class="padding"></div>
3948
3949 <div class="entry">
3950 <div class="title">
3951 <a href="http://people.skolelinux.org/pere/blog/Idea_for_storing_trusted_timestamps_in_a_Noark_5_archive.html">Idea for storing trusted timestamps in a Noark 5 archive</a>
3952 </div>
3953 <div class="date">
3954 7th June 2017
3955 </div>
3956 <div class="body">
3957 <p><em>This is a copy of
3958 <a href="https://lists.nuug.no/pipermail/nikita-noark/2017-June/000297.html">an
3959 email I posted to the nikita-noark mailing list</a>. Please follow up
3960 there if you would like to discuss this topic. The background is that
3961 we are making a free software archive system based on the Norwegian
3962 <a href="https://www.arkivverket.no/forvaltning-og-utvikling/regelverk-og-standarder/noark-standarden">Noark
3963 5 standard</a> for government archives.</em></p>
3964
3965 <p>I've been wondering a bit lately how trusted timestamps could be
3966 stored in Noark 5.
3967 <a href="https://en.wikipedia.org/wiki/Trusted_timestamping">Trusted
3968 timestamps</a> can be used to verify that some information
3969 (document/file/checksum/metadata) have not been changed since a
3970 specific time in the past. This is useful to verify the integrity of
3971 the documents in the archive.</p>
3972
3973 <p>Then it occured to me, perhaps the trusted timestamps could be
3974 stored as dokument variants (ie dokumentobjekt referered to from
3975 dokumentbeskrivelse) with the filename set to the hash it is
3976 stamping?</p>
3977
3978 <p>Given a "dokumentbeskrivelse" with an associated "dokumentobjekt",
3979 a new dokumentobjekt is associated with "dokumentbeskrivelse" with the
3980 same attributes as the stamped dokumentobjekt except these
3981 attributes:</p>
3982
3983 <ul>
3984
3985 <li>format -> "RFC3161"
3986 <li>mimeType -> "application/timestamp-reply"
3987 <li>formatDetaljer -> "&lt;source URL for timestamp service&gt;"
3988 <li>filenavn -> "&lt;sjekksum&gt;.tsr"
3989
3990 </ul>
3991
3992 <p>This assume a service following
3993 <a href="https://tools.ietf.org/html/rfc3161">IETF RFC 3161</a> is
3994 used, which specifiy the given MIME type for replies and the .tsr file
3995 ending for the content of such trusted timestamp. As far as I can
3996 tell from the Noark 5 specifications, it is OK to have several
3997 variants/renderings of a dokument attached to a given
3998 dokumentbeskrivelse objekt. It might be stretching it a bit to make
3999 some of these variants represent crypto-signatures useful for
4000 verifying the document integrity instead of representing the dokument
4001 itself.</p>
4002
4003 <p>Using the source of the service in formatDetaljer allow several
4004 timestamping services to be used. This is useful to spread the risk
4005 of key compromise over several organisations. It would only be a
4006 problem to trust the timestamps if all of the organisations are
4007 compromised.</p>
4008
4009 <p>The following oneliner on Linux can be used to generate the tsr
4010 file. $input is the path to the file to checksum, and $sha256 is the
4011 SHA-256 checksum of the file (ie the "<sjekksum>.tsr" value mentioned
4012 above).</p>
4013
4014 <p><blockquote><pre>
4015 openssl ts -query -data "$inputfile" -cert -sha256 -no_nonce \
4016 | curl -s -H "Content-Type: application/timestamp-query" \
4017 --data-binary "@-" http://zeitstempel.dfn.de > $sha256.tsr
4018 </pre></blockquote></p>
4019
4020 <p>To verify the timestamp, you first need to download the public key
4021 of the trusted timestamp service, for example using this command:</p>
4022
4023 <p><blockquote><pre>
4024 wget -O ca-cert.txt \
4025 https://pki.pca.dfn.de/global-services-ca/pub/cacert/chain.txt
4026 </pre></blockquote></p>
4027
4028 <p>Note, the public key should be stored alongside the timestamps in
4029 the archive to make sure it is also available 100 years from now. It
4030 is probably a good idea to standardise how and were to store such
4031 public keys, to make it easier to find for those trying to verify
4032 documents 100 or 1000 years from now. :)</p>
4033
4034 <p>The verification itself is a simple openssl command:</p>
4035
4036 <p><blockquote><pre>
4037 openssl ts -verify -data $inputfile -in $sha256.tsr \
4038 -CAfile ca-cert.txt -text
4039 </pre></blockquote></p>
4040
4041 <p>Is there any reason this approach would not work? Is it somehow against
4042 the Noark 5 specification?</p>
4043
4044 </div>
4045 <div class="tags">
4046
4047
4048 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>.
4049
4050
4051 </div>
4052 </div>
4053 <div class="padding"></div>
4054
4055 <div class="entry">
4056 <div class="title">
4057 <a href="http://people.skolelinux.org/pere/blog/Free_software_archive_system_Nikita_now_able_to_store_documents.html">Free software archive system Nikita now able to store documents</a>
4058 </div>
4059 <div class="date">
4060 19th March 2017
4061 </div>
4062 <div class="body">
4063 <p>The <a href="https://github.com/hiOA-ABI/nikita-noark5-core">Nikita
4064 Noark 5 core project</a> is implementing the Norwegian standard for
4065 keeping an electronic archive of government documents.
4066 <a href="http://www.arkivverket.no/arkivverket/Offentlig-forvaltning/Noark/Noark-5/English-version">The
4067 Noark 5 standard</a> document the requirement for data systems used by
4068 the archives in the Norwegian government, and the Noark 5 web interface
4069 specification document a REST web service for storing, searching and
4070 retrieving documents and metadata in such archive. I've been involved
4071 in the project since a few weeks before Christmas, when the Norwegian
4072 Unix User Group
4073 <a href="https://www.nuug.no/news/NOARK5_kjerne_som_fri_programvare_f_r_epostliste_hos_NUUG.shtml">announced
4074 it supported the project</a>. I believe this is an important project,
4075 and hope it can make it possible for the government archives in the
4076 future to use free software to keep the archives we citizens depend
4077 on. But as I do not hold such archive myself, personally my first use
4078 case is to store and analyse public mail journal metadata published
4079 from the government. I find it useful to have a clear use case in
4080 mind when developing, to make sure the system scratches one of my
4081 itches.</p>
4082
4083 <p>If you would like to help make sure there is a free software
4084 alternatives for the archives, please join our IRC channel
4085 (<a href="irc://irc.freenode.net/%23nikita">#nikita on
4086 irc.freenode.net</a>) and
4087 <a href="https://lists.nuug.no/mailman/listinfo/nikita-noark">the
4088 project mailing list</a>.</p>
4089
4090 <p>When I got involved, the web service could store metadata about
4091 documents. But a few weeks ago, a new milestone was reached when it
4092 became possible to store full text documents too. Yesterday, I
4093 completed an implementation of a command line tool
4094 <tt>archive-pdf</tt> to upload a PDF file to the archive using this
4095 API. The tool is very simple at the moment, and find existing
4096 <a href="https://en.wikipedia.org/wiki/Fonds">fonds</a>, series and
4097 files while asking the user to select which one to use if more than
4098 one exist. Once a file is identified, the PDF is associated with the
4099 file and uploaded, using the title extracted from the PDF itself. The
4100 process is fairly similar to visiting the archive, opening a cabinet,
4101 locating a file and storing a piece of paper in the archive. Here is
4102 a test run directly after populating the database with test data using
4103 our API tester:</p>
4104
4105 <p><blockquote><pre>
4106 ~/src//noark5-tester$ ./archive-pdf mangelmelding/mangler.pdf
4107 using arkiv: Title of the test fonds created 2017-03-18T23:49:32.103446
4108 using arkivdel: Title of the test series created 2017-03-18T23:49:32.103446
4109
4110 0 - Title of the test case file created 2017-03-18T23:49:32.103446
4111 1 - Title of the test file created 2017-03-18T23:49:32.103446
4112 Select which mappe you want (or search term): 0
4113 Uploading mangelmelding/mangler.pdf
4114 PDF title: Mangler i spesifikasjonsdokumentet for NOARK 5 Tjenestegrensesnitt
4115 File 2017/1: Title of the test case file created 2017-03-18T23:49:32.103446
4116 ~/src//noark5-tester$
4117 </pre></blockquote></p>
4118
4119 <p>You can see here how the fonds (arkiv) and serie (arkivdel) only had
4120 one option, while the user need to choose which file (mappe) to use
4121 among the two created by the API tester. The <tt>archive-pdf</tt>
4122 tool can be found in the git repository for the API tester.</p>
4123
4124 <p>In the project, I have been mostly working on
4125 <a href="https://github.com/petterreinholdtsen/noark5-tester">the API
4126 tester</a> so far, while getting to know the code base. The API
4127 tester currently use
4128 <a href="https://en.wikipedia.org/wiki/HATEOAS">the HATEOAS links</a>
4129 to traverse the entire exposed service API and verify that the exposed
4130 operations and objects match the specification, as well as trying to
4131 create objects holding metadata and uploading a simple XML file to
4132 store. The tester has proved very useful for finding flaws in our
4133 implementation, as well as flaws in the reference site and the
4134 specification.</p>
4135
4136 <p>The test document I uploaded is a summary of all the specification
4137 defects we have collected so far while implementing the web service.
4138 There are several unclear and conflicting parts of the specification,
4139 and we have
4140 <a href="https://github.com/petterreinholdtsen/noark5-tester/tree/master/mangelmelding">started
4141 writing down</a> the questions we get from implementing it. We use a
4142 format inspired by how <a href="http://www.opengroup.org/austin/">The
4143 Austin Group</a> collect defect reports for the POSIX standard with
4144 <a href="http://www.opengroup.org/austin/mantis.html">their
4145 instructions for the MANTIS defect tracker system</a>, in lack of an official way to structure defect reports for Noark 5 (our first submitted defect report was a <a href="https://github.com/petterreinholdtsen/noark5-tester/blob/master/mangelmelding/sendt/2017-03-15-mangel-prosess.md">request for a procedure for submitting defect reports</a> :).
4146
4147 <p>The Nikita project is implemented using Java and Spring, and is
4148 fairly easy to get up and running using Docker containers for those
4149 that want to test the current code base. The API tester is
4150 implemented in Python.</p>
4151
4152 </div>
4153 <div class="tags">
4154
4155
4156 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>.
4157
4158
4159 </div>
4160 </div>
4161 <div class="padding"></div>
4162
4163 <div class="entry">
4164 <div class="title">
4165 <a href="http://people.skolelinux.org/pere/blog/Detecting_NFS_hangs_on_Linux_without_hanging_yourself___.html">Detecting NFS hangs on Linux without hanging yourself...</a>
4166 </div>
4167 <div class="date">
4168 9th March 2017
4169 </div>
4170 <div class="body">
4171 <p>Over the years, administrating thousand of NFS mounting linux
4172 computers at the time, I often needed a way to detect if the machine
4173 was experiencing NFS hang. If you try to use <tt>df</tt> or look at a
4174 file or directory affected by the hang, the process (and possibly the
4175 shell) will hang too. So you want to be able to detect this without
4176 risking the detection process getting stuck too. It has not been
4177 obvious how to do this. When the hang has lasted a while, it is
4178 possible to find messages like these in dmesg:</p>
4179
4180 <p><blockquote>
4181 nfs: server nfsserver not responding, still trying
4182 <br>nfs: server nfsserver OK
4183 </blockquote></p>
4184
4185 <p>It is hard to know if the hang is still going on, and it is hard to
4186 be sure looking in dmesg is going to work. If there are lots of other
4187 messages in dmesg the lines might have rotated out of site before they
4188 are noticed.</p>
4189
4190 <p>While reading through the nfs client implementation in linux kernel
4191 code, I came across some statistics that seem to give a way to detect
4192 it. The om_timeouts sunrpc value in the kernel will increase every
4193 time the above log entry is inserted into dmesg. And after digging a
4194 bit further, I discovered that this value show up in
4195 /proc/self/mountstats on Linux.</p>
4196
4197 <p>The mountstats content seem to be shared between files using the
4198 same file system context, so it is enough to check one of the
4199 mountstats files to get the state of the mount point for the machine.
4200 I assume this will not show lazy umounted NFS points, nor NFS mount
4201 points in a different process context (ie with a different filesystem
4202 view), but that does not worry me.</p>
4203
4204 <p>The content for a NFS mount point look similar to this:</p>
4205
4206 <p><blockquote><pre>
4207 [...]
4208 device /dev/mapper/Debian-var mounted on /var with fstype ext3
4209 device nfsserver:/mnt/nfsserver/home0 mounted on /mnt/nfsserver/home0 with fstype nfs statvers=1.1
4210 opts: rw,vers=3,rsize=65536,wsize=65536,namlen=255,acregmin=3,acregmax=60,acdirmin=30,acdirmax=60,soft,nolock,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=129.240.3.145,mountvers=3,mountport=4048,mountproto=udp,local_lock=all
4211 age: 7863311
4212 caps: caps=0x3fe7,wtmult=4096,dtsize=8192,bsize=0,namlen=255
4213 sec: flavor=1,pseudoflavor=1
4214 events: 61063112 732346265 1028140 35486205 16220064 8162542 761447191 71714012 37189 3891185 45561809 110486139 4850138 420353 15449177 296502 52736725 13523379 0 52182 9016896 1231 0 0 0 0 0
4215 bytes: 166253035039 219519120027 0 0 40783504807 185466229638 11677877 45561809
4216 RPC iostats version: 1.0 p/v: 100003/3 (nfs)
4217 xprt: tcp 925 1 6810 0 0 111505412 111480497 109 2672418560317 0 248 53869103 22481820
4218 per-op statistics
4219 NULL: 0 0 0 0 0 0 0 0
4220 GETATTR: 61063106 61063108 0 9621383060 6839064400 453650 77291321 78926132
4221 SETATTR: 463469 463470 0 92005440 66739536 63787 603235 687943
4222 LOOKUP: 17021657 17021657 0 3354097764 4013442928 57216 35125459 35566511
4223 ACCESS: 14281703 14290009 5 2318400592 1713803640 1709282 4865144 7130140
4224 READLINK: 125 125 0 20472 18620 0 1112 1118
4225 READ: 4214236 4214237 0 715608524 41328653212 89884 22622768 22806693
4226 WRITE: 8479010 8494376 22 187695798568 1356087148 178264904 51506907 231671771
4227 CREATE: 171708 171708 0 38084748 46702272 873 1041833 1050398
4228 MKDIR: 3680 3680 0 773980 993920 26 23990 24245
4229 SYMLINK: 903 903 0 233428 245488 6 5865 5917
4230 MKNOD: 80 80 0 20148 21760 0 299 304
4231 REMOVE: 429921 429921 0 79796004 61908192 3313 2710416 2741636
4232 RMDIR: 3367 3367 0 645112 484848 22 5782 6002
4233 RENAME: 466201 466201 0 130026184 121212260 7075 5935207 5961288
4234 LINK: 289155 289155 0 72775556 67083960 2199 2565060 2585579
4235 READDIR: 2933237 2933237 0 516506204 13973833412 10385 3190199 3297917
4236 READDIRPLUS: 1652839 1652839 0 298640972 6895997744 84735 14307895 14448937
4237 FSSTAT: 6144 6144 0 1010516 1032192 51 9654 10022
4238 FSINFO: 2 2 0 232 328 0 1 1
4239 PATHCONF: 1 1 0 116 140 0 0 0
4240 COMMIT: 0 0 0 0 0 0 0 0
4241
4242 device binfmt_misc mounted on /proc/sys/fs/binfmt_misc with fstype binfmt_misc
4243 [...]
4244 </pre></blockquote></p>
4245
4246 <p>The key number to look at is the third number in the per-op list.
4247 It is the number of NFS timeouts experiences per file system
4248 operation. Here 22 write timeouts and 5 access timeouts. If these
4249 numbers are increasing, I believe the machine is experiencing NFS
4250 hang. Unfortunately the timeout value do not start to increase right
4251 away. The NFS operations need to time out first, and this can take a
4252 while. The exact timeout value depend on the setup. For example the
4253 defaults for TCP and UDP mount points are quite different, and the
4254 timeout value is affected by the soft, hard, timeo and retrans NFS
4255 mount options.</p>
4256
4257 <p>The only way I have been able to get working on Debian and RedHat
4258 Enterprise Linux for getting the timeout count is to peek in /proc/.
4259 But according to
4260 <ahref="http://docs.oracle.com/cd/E19253-01/816-4555/netmonitor-12/index.html">Solaris
4261 10 System Administration Guide: Network Services</a>, the 'nfsstat -c'
4262 command can be used to get these timeout values. But this do not work
4263 on Linux, as far as I can tell. I
4264 <ahref="http://bugs.debian.org/857043">asked Debian about this</a>,
4265 but have not seen any replies yet.</p>
4266
4267 <p>Is there a better way to figure out if a Linux NFS client is
4268 experiencing NFS hangs? Is there a way to detect which processes are
4269 affected? Is there a way to get the NFS mount going quickly once the
4270 network problem causing the NFS hang has been cleared? I would very
4271 much welcome some clues, as we regularly run into NFS hangs.</p>
4272
4273 </div>
4274 <div class="tags">
4275
4276
4277 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/sysadmin">sysadmin</a>.
4278
4279
4280 </div>
4281 </div>
4282 <div class="padding"></div>
4283
4284 <div class="entry">
4285 <div class="title">
4286 <a href="http://people.skolelinux.org/pere/blog/How_does_it_feel_to_be_wiretapped__when_you_should_be_doing_the_wiretapping___.html">How does it feel to be wiretapped, when you should be doing the wiretapping...</a>
4287 </div>
4288 <div class="date">
4289 8th March 2017
4290 </div>
4291 <div class="body">
4292 <p>So the new president in the United States of America claim to be
4293 surprised to discover that he was wiretapped during the election
4294 before he was elected president. He even claim this must be illegal.
4295 Well, doh, if it is one thing the confirmations from Snowden
4296 documented, it is that the entire population in USA is wiretapped, one
4297 way or another. Of course the president candidates were wiretapped,
4298 alongside the senators, judges and the rest of the people in USA.</p>
4299
4300 <p>Next, the Federal Bureau of Investigation ask the Department of
4301 Justice to go public rejecting the claims that Donald Trump was
4302 wiretapped illegally. I fail to see the relevance, given that I am
4303 sure the surveillance industry in USA believe they have all the legal
4304 backing they need to conduct mass surveillance on the entire
4305 world.</p>
4306
4307 <p>There is even the director of the FBI stating that he never saw an
4308 order requesting wiretapping of Donald Trump. That is not very
4309 surprising, given how the FISA court work, with all its activity being
4310 secret. Perhaps he only heard about it?</p>
4311
4312 <p>What I find most sad in this story is how Norwegian journalists
4313 present it. In a news reports the other day in the radio from the
4314 Norwegian National broadcasting Company (NRK), I heard the journalist
4315 claim that 'the FBI denies any wiretapping', while the reality is that
4316 'the FBI denies any illegal wiretapping'. There is a fundamental and
4317 important difference, and it make me sad that the journalists are
4318 unable to grasp it.</p>
4319
4320 <p><strong>Update 2017-03-13:</strong> Look like
4321 <a href="https://theintercept.com/2017/03/13/rand-paul-is-right-nsa-routinely-monitors-americans-communications-without-warrants/">The
4322 Intercept report that US Senator Rand Paul confirm what I state above</a>.</p>
4323
4324 </div>
4325 <div class="tags">
4326
4327
4328 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>.
4329
4330
4331 </div>
4332 </div>
4333 <div class="padding"></div>
4334
4335 <div class="entry">
4336 <div class="title">
4337 <a href="http://people.skolelinux.org/pere/blog/Norwegian_Bokm_l_translation_of_The_Debian_Administrator_s_Handbook_complete__proofreading_in_progress.html">Norwegian Bokmål translation of The Debian Administrator's Handbook complete, proofreading in progress</a>
4338 </div>
4339 <div class="date">
4340 3rd March 2017
4341 </div>
4342 <div class="body">
4343 <p>For almost a year now, we have been working on making a Norwegian
4344 Bokmål edition of <a href="https://debian-handbook.info/">The Debian
4345 Administrator's Handbook</a>. Now, thanks to the tireless effort of
4346 Ole-Erik, Ingrid and Andreas, the initial translation is complete, and
4347 we are working on the proof reading to ensure consistent language and
4348 use of correct computer science terms. The plan is to make the book
4349 available on paper, as well as in electronic form. For that to
4350 happen, the proof reading must be completed and all the figures need
4351 to be translated. If you want to help out, get in touch.</p>
4352
4353 <p><a href="http://people.skolelinux.org/pere/debian-handbook/debian-handbook-nb-NO.pdf">A
4354
4355 fresh PDF edition</a> in A4 format (the final book will have smaller
4356 pages) of the book created every morning is available for
4357 proofreading. If you find any errors, please
4358 <a href="https://hosted.weblate.org/projects/debian-handbook/">visit
4359 Weblate and correct the error</a>. The
4360 <a href="http://l.github.io/debian-handbook/stat/nb-NO/index.html">state
4361 of the translation including figures</a> is a useful source for those
4362 provide Norwegian bokmål screen shots and figures.</p>
4363
4364 </div>
4365 <div class="tags">
4366
4367
4368 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian-handbook">debian-handbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
4369
4370
4371 </div>
4372 </div>
4373 <div class="padding"></div>
4374
4375 <div class="entry">
4376 <div class="title">
4377 <a href="http://people.skolelinux.org/pere/blog/Unlimited_randomness_with_the_ChaosKey_.html">Unlimited randomness with the ChaosKey?</a>
4378 </div>
4379 <div class="date">
4380 1st March 2017
4381 </div>
4382 <div class="body">
4383 <p>A few days ago I ordered a small batch of
4384 <a href="http://altusmetrum.org/ChaosKey/">the ChaosKey</a>, a small
4385 USB dongle for generating entropy created by Bdale Garbee and Keith
4386 Packard. Yesterday it arrived, and I am very happy to report that it
4387 work great! According to its designers, to get it to work out of the
4388 box, you need the Linux kernel version 4.1 or later. I tested on a
4389 Debian Stretch machine (kernel version 4.9), and there it worked just
4390 fine, increasing the available entropy very quickly. I wrote a small
4391 test oneliner to test. It first print the current entropy level,
4392 drain /dev/random, and then print the entropy level for five seconds.
4393 Here is the situation without the ChaosKey inserted:</p>
4394
4395 <blockquote><pre>
4396 % cat /proc/sys/kernel/random/entropy_avail; \
4397 dd bs=1M if=/dev/random of=/dev/null count=1; \
4398 for n in $(seq 1 5); do \
4399 cat /proc/sys/kernel/random/entropy_avail; \
4400 sleep 1; \
4401 done
4402 300
4403 0+1 oppføringer inn
4404 0+1 oppføringer ut
4405 28 byte kopiert, 0,000264565 s, 106 kB/s
4406 4
4407 8
4408 12
4409 17
4410 21
4411 %
4412 </pre></blockquote>
4413
4414 <p>The entropy level increases by 3-4 every second. In such case any
4415 application requiring random bits (like a HTTPS enabled web server)
4416 will halt and wait for more entrpy. And here is the situation with
4417 the ChaosKey inserted:</p>
4418
4419 <blockquote><pre>
4420 % cat /proc/sys/kernel/random/entropy_avail; \
4421 dd bs=1M if=/dev/random of=/dev/null count=1; \
4422 for n in $(seq 1 5); do \
4423 cat /proc/sys/kernel/random/entropy_avail; \
4424 sleep 1; \
4425 done
4426 1079
4427 0+1 oppføringer inn
4428 0+1 oppføringer ut
4429 104 byte kopiert, 0,000487647 s, 213 kB/s
4430 433
4431 1028
4432 1031
4433 1035
4434 1038
4435 %
4436 </pre></blockquote>
4437
4438 <p>Quite the difference. :) I bought a few more than I need, in case
4439 someone want to buy one here in Norway. :)</p>
4440
4441 <p>Update: The dongle was presented at Debconf last year. You might
4442 find <a href="https://debconf16.debconf.org/talks/94/">the talk
4443 recording illuminating</a>. It explains exactly what the source of
4444 randomness is, if you are unable to spot it from the schema drawing
4445 available from the ChaosKey web site linked at the start of this blog
4446 post.</p>
4447
4448 </div>
4449 <div class="tags">
4450
4451
4452 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>.
4453
4454
4455 </div>
4456 </div>
4457 <div class="padding"></div>
4458
4459 <div class="entry">
4460 <div class="title">
4461 <a href="http://people.skolelinux.org/pere/blog/Detect_OOXML_files_with_undefined_behaviour_.html">Detect OOXML files with undefined behaviour?</a>
4462 </div>
4463 <div class="date">
4464 21st February 2017
4465 </div>
4466 <div class="body">
4467 <p>I just noticed
4468 <a href="http://www.arkivrad.no/aktuelt/riksarkivarens-forskrift-pa-horing">the
4469 new Norwegian proposal for archiving rules in the goverment</a> list
4470 <a href="http://www.ecma-international.org/publications/standards/Ecma-376.htm">ECMA-376</a>
4471 / ISO/IEC 29500 (aka OOXML) as valid formats to put in long term
4472 storage. Luckily such files will only be accepted based on
4473 pre-approval from the National Archive. Allowing OOXML files to be
4474 used for long term storage might seem like a good idea as long as we
4475 forget that there are plenty of ways for a "valid" OOXML document to
4476 have content with no defined interpretation in the standard, which
4477 lead to a question and an idea.</p>
4478
4479 <p>Is there any tool to detect if a OOXML document depend on such
4480 undefined behaviour? It would be useful for the National Archive (and
4481 anyone else interested in verifying that a document is well defined)
4482 to have such tool available when considering to approve the use of
4483 OOXML. I'm aware of the
4484 <a href="https://github.com/arlm/officeotron/">officeotron OOXML
4485 validator</a>, but do not know how complete it is nor if it will
4486 report use of undefined behaviour. Are there other similar tools
4487 available? Please send me an email if you know of any such tool.</p>
4488
4489 </div>
4490 <div class="tags">
4491
4492
4493 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>.
4494
4495
4496 </div>
4497 </div>
4498 <div class="padding"></div>
4499
4500 <div class="entry">
4501 <div class="title">
4502 <a href="http://people.skolelinux.org/pere/blog/Ruling_ignored_our_objections_to_the_seizure_of_popcorn_time_no___domstolkontroll_.html">Ruling ignored our objections to the seizure of popcorn-time.no (#domstolkontroll)</a>
4503 </div>
4504 <div class="date">
4505 13th February 2017
4506 </div>
4507 <div class="body">
4508 <p>A few days ago, we received the ruling from
4509 <a href="http://people.skolelinux.org/pere/blog/A_day_in_court_challenging_seizure_of_popcorn_time_no_for__domstolkontroll.html">my
4510 day in court</a>. The case in question is a challenge of the seizure
4511 of the DNS domain popcorn-time.no. The ruling simply did not mention
4512 most of our arguments, and seemed to take everything ØKOKRIM said at
4513 face value, ignoring our demonstration and explanations. But it is
4514 hard to tell for sure, as we still have not seen most of the documents
4515 in the case and thus were unprepared and unable to contradict several
4516 of the claims made in court by the opposition. We are considering an
4517 appeal, but it is partly a question of funding, as it is costing us
4518 quite a bit to pay for our lawyer. If you want to help, please
4519 <a href="http://www.nuug.no/dns-beslag-donasjon.shtml">donate to the
4520 NUUG defense fund</a>.</p>
4521
4522 <p>The details of the case, as far as we know it, is available in
4523 Norwegian from
4524 <a href="https://www.nuug.no/news/tags/dns-domenebeslag/">the NUUG
4525 blog</a>. This also include
4526 <a href="https://www.nuug.no/news/Avslag_etter_rettslig_h_ring_om_DNS_beslaget___vurderer_veien_videre.shtml">the
4527 ruling itself</a>.</p>
4528
4529 </div>
4530 <div class="tags">
4531
4532
4533 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>.
4534
4535
4536 </div>
4537 </div>
4538 <div class="padding"></div>
4539
4540 <div class="entry">
4541 <div class="title">
4542 <a href="http://people.skolelinux.org/pere/blog/A_day_in_court_challenging_seizure_of_popcorn_time_no_for__domstolkontroll.html">A day in court challenging seizure of popcorn-time.no for #domstolkontroll</a>
4543 </div>
4544 <div class="date">
4545 3rd February 2017
4546 </div>
4547 <div class="body">
4548 <p align="center"><img width="70%" src="http://people.skolelinux.org/pere/blog/images/2017-02-01-popcorn-time-in-court.jpeg"></p>
4549
4550 <p>On Wednesday, I spent the entire day in court in Follo Tingrett
4551 representing <a href="https://www.nuug.no/">the member association
4552 NUUG</a>, alongside <a href="https://www.efn.no/">the member
4553 association EFN</a> and <a href="http://www.imc.no">the DNS registrar
4554 IMC</a>, challenging the seizure of the DNS name popcorn-time.no. It
4555 was interesting to sit in a court of law for the first time in my
4556 life. Our team can be seen in the picture above: attorney Ola
4557 Tellesbø, EFN board member Tom Fredrik Blenning, IMC CEO Morten Emil
4558 Eriksen and NUUG board member Petter Reinholdtsen.</p>
4559
4560 <p><a href="http://www.domstol.no/no/Enkelt-domstol/follo-tingrett/Nar-gar-rettssaken/Beramming/?cid=AAAA1701301512081262234UJFBVEZZZZZEJBAvtale">The
4561 case at hand</a> is that the Norwegian National Authority for
4562 Investigation and Prosecution of Economic and Environmental Crime (aka
4563 Økokrim) decided on their own, to seize a DNS domain early last
4564 year, without following
4565 <a href="https://www.norid.no/no/regelverk/navnepolitikk/#link12">the
4566 official policy of the Norwegian DNS authority</a> which require a
4567 court decision. The web site in question was a site covering Popcorn
4568 Time. And Popcorn Time is the name of a technology with both legal
4569 and illegal applications. Popcorn Time is a client combining
4570 searching a Bittorrent directory available on the Internet with
4571 downloading/distribute content via Bittorrent and playing the
4572 downloaded content on screen. It can be used illegally if it is used
4573 to distribute content against the will of the right holder, but it can
4574 also be used legally to play a lot of content, for example the
4575 millions of movies
4576 <a href="https://archive.org/details/movies">available from the
4577 Internet Archive</a> or the collection
4578 <a href="http://vodo.net/films/">available from Vodo</a>. We created
4579 <a href="magnet:?xt=urn:btih:86c1802af5a667ca56d3918aecb7d3c0f7173084&dn=PresentasjonFolloTingrett.mov&tr=udp%3A%2F%2Fpublic.popcorn-tracker.org%3A6969%2Fannounce">a
4580 video demonstrating legally use of Popcorn Time</a> and played it in
4581 Court. It can of course be downloaded using Bittorrent.</p>
4582
4583 <p>I did not quite know what to expect from a day in court. The
4584 government held on to their version of the story and we held on to
4585 ours, and I hope the judge is able to make sense of it all. We will
4586 know in two weeks time. Unfortunately I do not have high hopes, as
4587 the Government have the upper hand here with more knowledge about the
4588 case, better training in handling criminal law and in general higher
4589 standing in the courts than fairly unknown DNS registrar and member
4590 associations. It is expensive to be right also in Norway. So far the
4591 case have cost more than NOK 70 000,-. To help fund the case, NUUG
4592 and EFN have asked for donations, and managed to collect around NOK 25
4593 000,- so far. Given the presentation from the Government, I expect
4594 the government to appeal if the case go our way. And if the case do
4595 not go our way, I hope we have enough funding to appeal.</p>
4596
4597 <p>From the other side came two people from Økokrim. On the benches,
4598 appearing to be part of the group from the government were two people
4599 from the Simonsen Vogt Wiik lawyer office, and three others I am not
4600 quite sure who was. Økokrim had proposed to present two witnesses
4601 from The Motion Picture Association, but this was rejected because
4602 they did not speak Norwegian and it was a bit late to bring in a
4603 translator, but perhaps the two from MPA were present anyway. All
4604 seven appeared to know each other. Good to see the case is take
4605 seriously.</p>
4606
4607 <p>If you, like me, believe the courts should be involved before a DNS
4608 domain is hijacked by the government, or you believe the Popcorn Time
4609 technology have a lot of useful and legal applications, I suggest you
4610 too <a href="http://www.nuug.no/dns-beslag-donasjon.shtml">donate to
4611 the NUUG defense fund</a>. Both Bitcoin and bank transfer are
4612 available. If NUUG get more than we need for the legal action (very
4613 unlikely), the rest will be spend promoting free software, open
4614 standards and unix-like operating systems in Norway, so no matter what
4615 happens the money will be put to good use.</p>
4616
4617 <p>If you want to lean more about the case, I recommend you check out
4618 <a href="https://www.nuug.no/news/tags/dns-domenebeslag/">the blog
4619 posts from NUUG covering the case</a>. They cover the legal arguments
4620 on both sides.</p>
4621
4622 </div>
4623 <div class="tags">
4624
4625
4626 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>.
4627
4628
4629 </div>
4630 </div>
4631 <div class="padding"></div>
4632
4633 <div class="entry">
4634 <div class="title">
4635 <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>
4636 </div>
4637 <div class="date">
4638 9th January 2017
4639 </div>
4640 <div class="body">
4641 <p>Did you ever wonder where the web trafic really flow to reach the
4642 web servers, and who own the network equipment it is flowing through?
4643 It is possible to get a glimpse of this from using traceroute, but it
4644 is hard to find all the details. Many years ago, I wrote a system to
4645 map the Norwegian Internet (trying to figure out if our plans for a
4646 network game service would get low enough latency, and who we needed
4647 to talk to about setting up game servers close to the users. Back
4648 then I used traceroute output from many locations (I asked my friends
4649 to run a script and send me their traceroute output) to create the
4650 graph and the map. The output from traceroute typically look like
4651 this:
4652
4653 <p><pre>
4654 traceroute to www.stortinget.no (85.88.67.10), 30 hops max, 60 byte packets
4655 1 uio-gw10.uio.no (129.240.202.1) 0.447 ms 0.486 ms 0.621 ms
4656 2 uio-gw8.uio.no (129.240.24.229) 0.467 ms 0.578 ms 0.675 ms
4657 3 oslo-gw1.uninett.no (128.39.65.17) 0.385 ms 0.373 ms 0.358 ms
4658 4 te3-1-2.br1.fn3.as2116.net (193.156.90.3) 1.174 ms 1.172 ms 1.153 ms
4659 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
4660 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
4661 7 89.191.10.146 (89.191.10.146) 0.931 ms 0.917 ms 0.955 ms
4662 8 * * *
4663 9 * * *
4664 [...]
4665 </pre></p>
4666
4667 <p>This show the DNS names and IP addresses of (at least some of the)
4668 network equipment involved in getting the data traffic from me to the
4669 www.stortinget.no server, and how long it took in milliseconds for a
4670 package to reach the equipment and return to me. Three packages are
4671 sent, and some times the packages do not follow the same path. This
4672 is shown for hop 5, where three different IP addresses replied to the
4673 traceroute request.</p>
4674
4675 <p>There are many ways to measure trace routes. Other good traceroute
4676 implementations I use are traceroute (using ICMP packages) mtr (can do
4677 both ICMP, UDP and TCP) and scapy (python library with ICMP, UDP, TCP
4678 traceroute and a lot of other capabilities). All of them are easily
4679 available in <a href="https://www.debian.org/">Debian</a>.</p>
4680
4681 <p>This time around, I wanted to know the geographic location of
4682 different route points, to visualize how visiting a web page spread
4683 information about the visit to a lot of servers around the globe. The
4684 background is that a web site today often will ask the browser to get
4685 from many servers the parts (for example HTML, JSON, fonts,
4686 JavaScript, CSS, video) required to display the content. This will
4687 leak information about the visit to those controlling these servers
4688 and anyone able to peek at the data traffic passing by (like your ISP,
4689 the ISPs backbone provider, FRA, GCHQ, NSA and others).</p>
4690
4691 <p>Lets pick an example, the Norwegian parliament web site
4692 www.stortinget.no. It is read daily by all members of parliament and
4693 their staff, as well as political journalists, activits and many other
4694 citizens of Norway. A visit to the www.stortinget.no web site will
4695 ask your browser to contact 8 other servers: ajax.googleapis.com,
4696 insights.hotjar.com, script.hotjar.com, static.hotjar.com,
4697 stats.g.doubleclick.net, www.google-analytics.com,
4698 www.googletagmanager.com and www.netigate.se. I extracted this by
4699 asking <a href="http://phantomjs.org/">PhantomJS</a> to visit the
4700 Stortinget web page and tell me all the URLs PhantomJS downloaded to
4701 render the page (in HAR format using
4702 <a href="https://github.com/ariya/phantomjs/blob/master/examples/netsniff.js">their
4703 netsniff example</a>. I am very grateful to Gorm for showing me how
4704 to do this). My goal is to visualize network traces to all IP
4705 addresses behind these DNS names, do show where visitors personal
4706 information is spread when visiting the page.</p>
4707
4708 <p align="center"><a href="www.stortinget.no-geoip.kml"><img
4709 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>
4710
4711 <p>When I had a look around for options, I could not find any good
4712 free software tools to do this, and decided I needed my own traceroute
4713 wrapper outputting KML based on locations looked up using GeoIP. KML
4714 is easy to work with and easy to generate, and understood by several
4715 of the GIS tools I have available. I got good help from by NUUG
4716 colleague Anders Einar with this, and the result can be seen in
4717 <a href="https://github.com/petterreinholdtsen/kmltraceroute">my
4718 kmltraceroute git repository</a>. Unfortunately, the quality of the
4719 free GeoIP databases I could find (and the for-pay databases my
4720 friends had access to) is not up to the task. The IP addresses of
4721 central Internet infrastructure would typically be placed near the
4722 controlling companies main office, and not where the router is really
4723 located, as you can see from <a href="www.stortinget.no-geoip.kml">the
4724 KML file I created</a> using the GeoLite City dataset from MaxMind.
4725
4726 <p align="center"><a href="http://people.skolelinux.org/pere/blog/images/2017-01-09-www.stortinget.no-scapy.svg"><img
4727 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>
4728
4729 <p>I also had a look at the visual traceroute graph created by
4730 <a href="http://www.secdev.org/projects/scapy/">the scrapy project</a>,
4731 showing IP network ownership (aka AS owner) for the IP address in
4732 question.
4733 <a href="http://people.skolelinux.org/pere/blog/images/2017-01-09-www.stortinget.no-scapy.svg">The
4734 graph display a lot of useful information about the traceroute in SVG
4735 format</a>, and give a good indication on who control the network
4736 equipment involved, but it do not include geolocation. This graph
4737 make it possible to see the information is made available at least for
4738 UNINETT, Catchcom, Stortinget, Nordunet, Google, Amazon, Telia, Level
4739 3 Communications and NetDNA.</p>
4740
4741 <p align="center"><a href="https://geotraceroute.com/index.php?node=4&host=www.stortinget.no"><img
4742 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>
4743
4744 <p>In the process, I came across the
4745 <a href="https://geotraceroute.com/">web service GeoTraceroute</a> by
4746 Salim Gasmi. Its methology of combining guesses based on DNS names,
4747 various location databases and finally use latecy times to rule out
4748 candidate locations seemed to do a very good job of guessing correct
4749 geolocation. But it could only do one trace at the time, did not have
4750 a sensor in Norway and did not make the geolocations easily available
4751 for postprocessing. So I contacted the developer and asked if he
4752 would be willing to share the code (he refused until he had time to
4753 clean it up), but he was interested in providing the geolocations in a
4754 machine readable format, and willing to set up a sensor in Norway. So
4755 since yesterday, it is possible to run traces from Norway in this
4756 service thanks to a sensor node set up by
4757 <a href="https://www.nuug.no/">the NUUG assosiation</a>, and get the
4758 trace in KML format for further processing.</p>
4759
4760 <p align="center"><a href="http://people.skolelinux.org/pere/blog/images/2017-01-09-www.stortinget.no-geotraceroute-kml-join.kml"><img
4761 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>
4762
4763 <p>Here we can see a lot of trafic passes Sweden on its way to
4764 Denmark, Germany, Holland and Ireland. Plenty of places where the
4765 Snowden confirmations verified the traffic is read by various actors
4766 without your best interest as their top priority.</p>
4767
4768 <p>Combining KML files is trivial using a text editor, so I could loop
4769 over all the hosts behind the urls imported by www.stortinget.no and
4770 ask for the KML file from GeoTraceroute, and create a combined KML
4771 file with all the traces (unfortunately only one of the IP addresses
4772 behind the DNS name is traced this time. To get them all, one would
4773 have to request traces using IP number instead of DNS names from
4774 GeoTraceroute). That might be the next step in this project.</p>
4775
4776 <p>Armed with these tools, I find it a lot easier to figure out where
4777 the IP traffic moves and who control the boxes involved in moving it.
4778 And every time the link crosses for example the Swedish border, we can
4779 be sure Swedish Signal Intelligence (FRA) is listening, as GCHQ do in
4780 Britain and NSA in USA and cables around the globe. (Hm, what should
4781 we tell them? :) Keep that in mind if you ever send anything
4782 unencrypted over the Internet.</p>
4783
4784 <p>PS: KML files are drawn using
4785 <a href="http://ivanrublev.me/kml/">the KML viewer from Ivan
4786 Rublev<a/>, as it was less cluttered than the local Linux application
4787 Marble. There are heaps of other options too.</p>
4788
4789 <p>As usual, if you use Bitcoin and want to show your support of my
4790 activities, please send Bitcoin donations to my address
4791 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
4792
4793 </div>
4794 <div class="tags">
4795
4796
4797 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/kart">kart</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</a>.
4798
4799
4800 </div>
4801 </div>
4802 <div class="padding"></div>
4803
4804 <div class="entry">
4805 <div class="title">
4806 <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>
4807 </div>
4808 <div class="date">
4809 4th January 2017
4810 </div>
4811 <div class="body">
4812 <p>Do you have a large <a href="https://icalendar.org/">iCalendar</a>
4813 file with lots of old entries, and would like to archive them to save
4814 space and resources? At least those of us using KOrganizer know that
4815 turning on and off an event set become slower and slower the more
4816 entries are in the set. While working on migrating our calendars to a
4817 <a href="http://radicale.org/">Radicale CalDAV server</a> on our
4818 <a href="https://freedomboxfoundation.org/">Freedombox server</a/>, my
4819 loved one wondered if I could find a way to split up the calendar file
4820 she had in KOrganizer, and I set out to write a tool. I spent a few
4821 days writing and polishing the system, and it is now ready for general
4822 consumption. The
4823 <a href="https://github.com/petterreinholdtsen/ical-archiver">code for
4824 ical-archiver</a> is publicly available from a git repository on
4825 github. The system is written in Python and depend on
4826 <a href="http://eventable.github.io/vobject/">the vobject Python
4827 module</a>.</p>
4828
4829 <p>To use it, locate the iCalendar file you want to operate on and
4830 give it as an argument to the ical-archiver script. This will
4831 generate a set of new files, one file per component type per year for
4832 all components expiring more than two years in the past. The vevent,
4833 vtodo and vjournal entries are handled by the script. The remaining
4834 entries are stored in a 'remaining' file.</p>
4835
4836 <p>This is what a test run can look like:
4837
4838 <p><pre>
4839 % ical-archiver t/2004-2016.ics
4840 Found 3612 vevents
4841 Found 6 vtodos
4842 Found 2 vjournals
4843 Writing t/2004-2016.ics-subset-vevent-2004.ics
4844 Writing t/2004-2016.ics-subset-vevent-2005.ics
4845 Writing t/2004-2016.ics-subset-vevent-2006.ics
4846 Writing t/2004-2016.ics-subset-vevent-2007.ics
4847 Writing t/2004-2016.ics-subset-vevent-2008.ics
4848 Writing t/2004-2016.ics-subset-vevent-2009.ics
4849 Writing t/2004-2016.ics-subset-vevent-2010.ics
4850 Writing t/2004-2016.ics-subset-vevent-2011.ics
4851 Writing t/2004-2016.ics-subset-vevent-2012.ics
4852 Writing t/2004-2016.ics-subset-vevent-2013.ics
4853 Writing t/2004-2016.ics-subset-vevent-2014.ics
4854 Writing t/2004-2016.ics-subset-vjournal-2007.ics
4855 Writing t/2004-2016.ics-subset-vjournal-2011.ics
4856 Writing t/2004-2016.ics-subset-vtodo-2012.ics
4857 Writing t/2004-2016.ics-remaining.ics
4858 %
4859 </pre></p>
4860
4861 <p>As you can see, the original file is untouched and new files are
4862 written with names derived from the original file. If you are happy
4863 with their content, the *-remaining.ics file can replace the original
4864 the the others can be archived or imported as historical calendar
4865 collections.</p>
4866
4867 <p>The script should probably be improved a bit. The error handling
4868 when discovering broken entries is not good, and I am not sure yet if
4869 it make sense to split different entry types into separate files or
4870 not. The program is thus likely to change. If you find it
4871 interesting, please get in touch. :)</p>
4872
4873 <p>As usual, if you use Bitcoin and want to show your support of my
4874 activities, please send Bitcoin donations to my address
4875 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
4876
4877 </div>
4878 <div class="tags">
4879
4880
4881 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>.
4882
4883
4884 </div>
4885 </div>
4886 <div class="padding"></div>
4887
4888 <div class="entry">
4889 <div class="title">
4890 <a href="http://people.skolelinux.org/pere/blog/Appstream_just_learned_how_to_map_hardware_to_packages_too_.html">Appstream just learned how to map hardware to packages too!</a>
4891 </div>
4892 <div class="date">
4893 23rd December 2016
4894 </div>
4895 <div class="body">
4896 <p>I received a very nice Christmas present today. As my regular
4897 readers probably know, I have been working on the
4898 <a href="http://packages.qa.debian.org/isenkram">the Isenkram
4899 system</a> for many years. The goal of the Isenkram system is to make
4900 it easier for users to figure out what to install to get a given piece
4901 of hardware to work in Debian, and a key part of this system is a way
4902 to map hardware to packages. Isenkram have its own mapping database,
4903 and also uses data provided by each package using the AppStream
4904 metadata format. And today,
4905 <a href="https://tracker.debian.org/pkg/appstream">AppStream</a> in
4906 Debian learned to look up hardware the same way Isenkram is doing it,
4907 ie using fnmatch():</p>
4908
4909 <p><pre>
4910 % appstreamcli what-provides modalias \
4911 usb:v1130p0202d0100dc00dsc00dp00ic03isc00ip00in00
4912 Identifier: pymissile [generic]
4913 Name: pymissile
4914 Summary: Control original Striker USB Missile Launcher
4915 Package: pymissile
4916 % appstreamcli what-provides modalias usb:v0694p0002d0000
4917 Identifier: libnxt [generic]
4918 Name: libnxt
4919 Summary: utility library for talking to the LEGO Mindstorms NXT brick
4920 Package: libnxt
4921 ---
4922 Identifier: t2n [generic]
4923 Name: t2n
4924 Summary: Simple command-line tool for Lego NXT
4925 Package: t2n
4926 ---
4927 Identifier: python-nxt [generic]
4928 Name: python-nxt
4929 Summary: Python driver/interface/wrapper for the Lego Mindstorms NXT robot
4930 Package: python-nxt
4931 ---
4932 Identifier: nbc [generic]
4933 Name: nbc
4934 Summary: C compiler for LEGO Mindstorms NXT bricks
4935 Package: nbc
4936 %
4937 </pre></p>
4938
4939 <p>A similar query can be done using the combined AppStream and
4940 Isenkram databases using the isenkram-lookup tool:</p>
4941
4942 <p><pre>
4943 % isenkram-lookup usb:v1130p0202d0100dc00dsc00dp00ic03isc00ip00in00
4944 pymissile
4945 % isenkram-lookup usb:v0694p0002d0000
4946 libnxt
4947 nbc
4948 python-nxt
4949 t2n
4950 %
4951 </pre></p>
4952
4953 <p>You can find modalias values relevant for your machine using
4954 <tt>cat $(find /sys/devices/ -name modalias)</tt>.
4955
4956 <p>If you want to make this system a success and help Debian users
4957 make the most of the hardware they have, please
4958 help<a href="https://wiki.debian.org/AppStream/Guidelines">add
4959 AppStream metadata for your package following the guidelines</a>
4960 documented in the wiki. So far only 11 packages provide such
4961 information, among the several hundred hardware specific packages in
4962 Debian. The Isenkram database on the other hand contain 101 packages,
4963 mostly related to USB dongles. Most of the packages with hardware
4964 mapping in AppStream are LEGO Mindstorms related, because I have, as
4965 part of my involvement in
4966 <a href="https://wiki.debian.org/LegoDesigners">the Debian LEGO
4967 team</a> given priority to making sure LEGO users get proposed the
4968 complete set of packages in Debian for that particular hardware. The
4969 team also got a nice Christmas present today. The
4970 <a href="https://tracker.debian.org/pkg/nxt-firmware">nxt-firmware
4971 package</a> made it into Debian. With this package in place, it is
4972 now possible to use the LEGO Mindstorms NXT unit with only free
4973 software, as the nxt-firmware package contain the source and firmware
4974 binaries for the NXT brick.</p>
4975
4976 <p>As usual, if you use Bitcoin and want to show your support of my
4977 activities, please send Bitcoin donations to my address
4978 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
4979
4980 </div>
4981 <div class="tags">
4982
4983
4984 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>.
4985
4986
4987 </div>
4988 </div>
4989 <div class="padding"></div>
4990
4991 <div class="entry">
4992 <div class="title">
4993 <a href="http://people.skolelinux.org/pere/blog/Isenkram_updated_with_a_lot_more_hardware_package_mappings.html">Isenkram updated with a lot more hardware-package mappings</a>
4994 </div>
4995 <div class="date">
4996 20th December 2016
4997 </div>
4998 <div class="body">
4999 <p><a href="http://packages.qa.debian.org/isenkram">The Isenkram
5000 system</a> I wrote two years ago to make it easier in Debian to find
5001 and install packages to get your hardware dongles to work, is still
5002 going strong. It is a system to look up the hardware present on or
5003 connected to the current system, and map the hardware to Debian
5004 packages. It can either be done using the tools in isenkram-cli or
5005 using the user space daemon in the isenkram package. The latter will
5006 notify you, when inserting new hardware, about what packages to
5007 install to get the dongle working. It will even provide a button to
5008 click on to ask packagekit to install the packages.</p>
5009
5010 <p>Here is an command line example from my Thinkpad laptop:</p>
5011
5012 <p><pre>
5013 % isenkram-lookup
5014 bluez
5015 cheese
5016 ethtool
5017 fprintd
5018 fprintd-demo
5019 gkrellm-thinkbat
5020 hdapsd
5021 libpam-fprintd
5022 pidgin-blinklight
5023 thinkfan
5024 tlp
5025 tp-smapi-dkms
5026 tp-smapi-source
5027 tpb
5028 %
5029 </pre></p>
5030
5031 <p>It can also list the firware package providing firmware requested
5032 by the load kernel modules, which in my case is an empty list because
5033 I have all the firmware my machine need:
5034
5035 <p><pre>
5036 % /usr/sbin/isenkram-autoinstall-firmware -l
5037 info: did not find any firmware files requested by loaded kernel modules. exiting
5038 %
5039 </pre></p>
5040
5041 <p>The last few days I had a look at several of the around 250
5042 packages in Debian with udev rules. These seem like good candidates
5043 to install when a given hardware dongle is inserted, and I found
5044 several that should be proposed by isenkram. I have not had time to
5045 check all of them, but am happy to report that now there are 97
5046 packages packages mapped to hardware by Isenkram. 11 of these
5047 packages provide hardware mapping using AppStream, while the rest are
5048 listed in the modaliases file provided in isenkram.</p>
5049
5050 <p>These are the packages with hardware mappings at the moment. The
5051 <strong>marked packages</strong> are also announcing their hardware
5052 support using AppStream, for everyone to use:</p>
5053
5054 <p>air-quality-sensor, alsa-firmware-loaders, argyll,
5055 <strong>array-info</strong>, avarice, avrdude, b43-fwcutter,
5056 bit-babbler, bluez, bluez-firmware, <strong>brltty</strong>,
5057 <strong>broadcom-sta-dkms</strong>, calibre, cgminer, cheese, colord,
5058 <strong>colorhug-client</strong>, dahdi-firmware-nonfree, dahdi-linux,
5059 dfu-util, dolphin-emu, ekeyd, ethtool, firmware-ipw2x00, fprintd,
5060 fprintd-demo, <strong>galileo</strong>, gkrellm-thinkbat, gphoto2,
5061 gpsbabel, gpsbabel-gui, gpsman, gpstrans, gqrx-sdr, gr-fcdproplus,
5062 gr-osmosdr, gtkpod, hackrf, hdapsd, hdmi2usb-udev, hpijs-ppds, hplip,
5063 ipw3945-source, ipw3945d, kde-config-tablet, kinect-audio-setup,
5064 <strong>libnxt</strong>, libpam-fprintd, <strong>lomoco</strong>,
5065 madwimax, minidisc-utils, mkgmap, msi-keyboard, mtkbabel,
5066 <strong>nbc</strong>, <strong>nqc</strong>, nut-hal-drivers, ola,
5067 open-vm-toolbox, open-vm-tools, openambit, pcgminer, pcmciautils,
5068 pcscd, pidgin-blinklight, printer-driver-splix,
5069 <strong>pymissile</strong>, python-nxt, qlandkartegt,
5070 qlandkartegt-garmin, rosegarden, rt2x00-source, sispmctl,
5071 soapysdr-module-hackrf, solaar, squeak-plugins-scratch, sunxi-tools,
5072 <strong>t2n</strong>, thinkfan, thinkfinger-tools, tlp, tp-smapi-dkms,
5073 tp-smapi-source, tpb, tucnak, uhd-host, usbmuxd, viking,
5074 virtualbox-ose-guest-x11, w1retap, xawtv, xserver-xorg-input-vmmouse,
5075 xserver-xorg-input-wacom, xserver-xorg-video-qxl,
5076 xserver-xorg-video-vmware, yubikey-personalization and
5077 zd1211-firmware</p>
5078
5079 <p>If you know of other packages, please let me know with a wishlist
5080 bug report against the isenkram-cli package, and ask the package
5081 maintainer to
5082 <a href="https://wiki.debian.org/AppStream/Guidelines">add AppStream
5083 metadata according to the guidelines</a> to provide the information
5084 for everyone. In time, I hope to get rid of the isenkram specific
5085 hardware mapping and depend exclusively on AppStream.</p>
5086
5087 <p>Note, the AppStream metadata for broadcom-sta-dkms is matching too
5088 much hardware, and suggest that the package with with any ethernet
5089 card. See <a href="http://bugs.debian.org/838735">bug #838735</a> for
5090 the details. I hope the maintainer find time to address it soon. In
5091 the mean time I provide an override in isenkram.</p>
5092
5093 </div>
5094 <div class="tags">
5095
5096
5097 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>.
5098
5099
5100 </div>
5101 </div>
5102 <div class="padding"></div>
5103
5104 <div class="entry">
5105 <div class="title">
5106 <a href="http://people.skolelinux.org/pere/blog/Oolite__a_life_in_space_as_vagabond_and_mercenary___nice_free_software.html">Oolite, a life in space as vagabond and mercenary - nice free software</a>
5107 </div>
5108 <div class="date">
5109 11th December 2016
5110 </div>
5111 <div class="body">
5112 <p align="center"><img width="70%" src="http://people.skolelinux.org/pere/blog/images/2016-12-11-nice-oolite.png"/></p>
5113
5114 <p>In my early years, I played
5115 <a href="http://wiki.alioth.net/index.php/Classic_Elite">the epic game
5116 Elite</a> on my PC. I spent many months trading and fighting in
5117 space, and reached the 'elite' fighting status before I moved on. The
5118 original Elite game was available on Commodore 64 and the IBM PC
5119 edition I played had a 64 KB executable. I am still impressed today
5120 that the authors managed to squeeze both a 3D engine and details about
5121 more than 2000 planet systems across 7 galaxies into a binary so
5122 small.</p>
5123
5124 <p>I have known about <a href="http://www.oolite.org/">the free
5125 software game Oolite inspired by Elite</a> for a while, but did not
5126 really have time to test it properly until a few days ago. It was
5127 great to discover that my old knowledge about trading routes were
5128 still valid. But my fighting and flying abilities were gone, so I had
5129 to retrain to be able to dock on a space station. And I am still not
5130 able to make much resistance when I am attacked by pirates, so I
5131 bougth and mounted the most powerful laser in the rear to be able to
5132 put up at least some resistance while fleeing for my life. :)</p>
5133
5134 <p>When playing Elite in the late eighties, I had to discover
5135 everything on my own, and I had long lists of prices seen on different
5136 planets to be able to decide where to trade what. This time I had the
5137 advantages of the
5138 <a href="http://wiki.alioth.net/index.php/Main_Page">Elite wiki</a>,
5139 where information about each planet is easily available with common
5140 price ranges and suggested trading routes. This improved my ability
5141 to earn money and I have been able to earn enough to buy a lot of
5142 useful equipent in a few days. I believe I originally played for
5143 months before I could get a docking computer, while now I could get it
5144 after less then a week.</p>
5145
5146 <p>If you like science fiction and dreamed of a life as a vagabond in
5147 space, you should try out Oolite. It is available for Linux, MacOSX
5148 and Windows, and is included in Debian and derivatives since 2011.</p>
5149
5150 <p>As usual, if you use Bitcoin and want to show your support of my
5151 activities, please send Bitcoin donations to my address
5152 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
5153
5154 </div>
5155 <div class="tags">
5156
5157
5158 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/nice free software">nice free software</a>.
5159
5160
5161 </div>
5162 </div>
5163 <div class="padding"></div>
5164
5165 <div class="entry">
5166 <div class="title">
5167 <a href="http://people.skolelinux.org/pere/blog/Quicker_Debian_installations_using_eatmydata.html">Quicker Debian installations using eatmydata</a>
5168 </div>
5169 <div class="date">
5170 25th November 2016
5171 </div>
5172 <div class="body">
5173 <p>Two years ago, I did some experiments with eatmydata and the Debian
5174 installation system, observing how using
5175 <a href="http://people.skolelinux.org/pere/blog/Speeding_up_the_Debian_installer_using_eatmydata_and_dpkg_divert.html">eatmydata
5176 could speed up the installation</a> quite a bit. My testing measured
5177 speedup around 20-40 percent for Debian Edu, where we install around
5178 1000 packages from within the installer. The eatmydata package
5179 provide a way to disable/delay file system flushing. This is a bit
5180 risky in the general case, as files that should be stored on disk will
5181 stay only in memory a bit longer than expected, causing problems if a
5182 machine crashes at an inconvenient time. But for an installation, if
5183 the machine crashes during installation the process is normally
5184 restarted, and avoiding disk operations as much as possible to speed
5185 up the process make perfect sense.
5186
5187 <p>I added code in the Debian Edu specific installation code to enable
5188 <a href="https://tracker.debian.org/pkg/libeatmydata">eatmydata</a>,
5189 but did not have time to push it any further. But a few months ago I
5190 picked it up again and worked with the libeatmydata package maintainer
5191 Mattia Rizzolo to make it easier for everyone to get this installation
5192 speedup in Debian. Thanks to our cooperation There is now an
5193 eatmydata-udeb package in Debian testing and unstable, and simply
5194 enabling/installing it in debian-installer (d-i) is enough to get the
5195 quicker installations. It can be enabled using preseeding. The
5196 following untested kernel argument should do the trick:</p>
5197
5198 <blockquote><pre>
5199 preseed/early_command="anna-install eatmydata-udeb"
5200 </pre></blockquote>
5201
5202 <p>This should ask d-i to install the package inside the d-i
5203 environment early in the installation sequence. Having it installed
5204 in d-i in turn will make sure the relevant scripts are called just
5205 after debootstrap filled /target/ with the freshly installed Debian
5206 system to configure apt to run dpkg with eatmydata. This is enough to
5207 speed up the installation process. There is a proposal to
5208 <a href="https://bugs.debian.org/841153">extend the idea a bit further
5209 by using /etc/ld.so.preload instead of apt.conf</a>, but I have not
5210 tested its impact.</p>
5211
5212
5213 </div>
5214 <div class="tags">
5215
5216
5217 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
5218
5219
5220 </div>
5221 </div>
5222 <div class="padding"></div>
5223
5224 <div class="entry">
5225 <div class="title">
5226 <a href="http://people.skolelinux.org/pere/blog/Coz_profiler_for_multi_threaded_software_is_now_in_Debian.html">Coz profiler for multi-threaded software is now in Debian</a>
5227 </div>
5228 <div class="date">
5229 13th November 2016
5230 </div>
5231 <div class="body">
5232 <p><a href="http://coz-profiler.org/">The Coz profiler</a>, a nice
5233 profiler able to run benchmarking experiments on the instrumented
5234 multi-threaded program, finally
5235 <a href="https://tracker.debian.org/pkg/coz-profiler">made it into
5236 Debian unstable yesterday</A>. Lluís Vilanova and I have spent many
5237 months since
5238 <a href="http://people.skolelinux.org/pere/blog/Coz_can_help_you_find_bottlenecks_in_multi_threaded_software___nice_free_software.html">I
5239 blogged about the coz tool</a> in August working with upstream to make
5240 it suitable for Debian. There are still issues with clang
5241 compatibility, inline assembly only working x86 and minimized
5242 JavaScript libraries.</p>
5243
5244 <p>To test it, install 'coz-profiler' using apt and run it like this:</p>
5245
5246 <p><blockquote>
5247 <tt>coz run --- /path/to/binary-with-debug-info</tt>
5248 </blockquote></p>
5249
5250 <p>This will produce a profile.coz file in the current working
5251 directory with the profiling information. This is then given to a
5252 JavaScript application provided in the package and available from
5253 <a href="http://plasma-umass.github.io/coz/">a project web page</a>.
5254 To start the local copy, invoke it in a browser like this:</p>
5255
5256 <p><blockquote>
5257 <tt>sensible-browser /usr/share/coz-profiler/viewer/index.htm</tt>
5258 </blockquote></p>
5259
5260 <p>See the project home page and the
5261 <a href="https://www.usenix.org/publications/login/summer2016/curtsinger">USENIX
5262 ;login: article on Coz</a> for more information on how it is
5263 working.</p>
5264
5265 </div>
5266 <div class="tags">
5267
5268
5269 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>.
5270
5271
5272 </div>
5273 </div>
5274 <div class="padding"></div>
5275
5276 <div class="entry">
5277 <div class="title">
5278 <a href="http://people.skolelinux.org/pere/blog/How_to_talk_with_your_loved_ones_in_private.html">How to talk with your loved ones in private</a>
5279 </div>
5280 <div class="date">
5281 7th November 2016
5282 </div>
5283 <div class="body">
5284 <p>A few days ago I ran a very biased and informal survey to get an
5285 idea about what options are being used to communicate with end to end
5286 encryption with friends and family. I explicitly asked people not to
5287 list options only used in a work setting. The background is the
5288 uneasy feeling I get when using Signal, a feeling shared by others as
5289 a blog post from Sander Venima about
5290 <a href="https://sandervenema.ch/2016/11/why-i-wont-recommend-signal-anymore/">why
5291 he do not recommend Signal anymore</a> (with
5292 <a href="https://news.ycombinator.com/item?id=12883410">feedback from
5293 the Signal author available from ycombinator</a>). I wanted an
5294 overview of the options being used, and hope to include those options
5295 in a less biased survey later on. So far I have not taken the time to
5296 look into the individual proposed systems. They range from text
5297 sharing web pages, via file sharing and email to instant messaging,
5298 VOIP and video conferencing. For those considering which system to
5299 use, it is also useful to have a look at
5300 <a href="https://www.eff.org/secure-messaging-scorecard">the EFF Secure
5301 messaging scorecard</a> which is slightly out of date but still
5302 provide valuable information.</p>
5303
5304 <p>So, on to the list. There were some used by many, some used by a
5305 few, some rarely used ones and a few mentioned but without anyone
5306 claiming to use them. Notice the grouping is in reality quite random
5307 given the biased self selected set of participants. First the ones
5308 used by many:</p>
5309
5310 <ul>
5311
5312 <li><a href="https://whispersystems.org/">Signal</a></li>
5313 <li>Email w/<a href="http://openpgp.org/">OpenPGP</a> (Enigmail, GPGSuite,etc)</li>
5314 <li><a href="https://www.whatsapp.com/">Whatsapp</a></li>
5315 <li>IRC w/<a href="https://otr.cypherpunks.ca/">OTR</a></li>
5316 <li>XMPP w/<a href="https://otr.cypherpunks.ca/">OTR</a></li>
5317
5318 </ul>
5319
5320 <p>Then the ones used by a few.</p>
5321
5322 <ul>
5323
5324 <li><a href="https://wiki.mumble.info/wiki/Main_Page">Mumble</a></li>
5325 <li>iMessage (included in iOS from Apple)</li>
5326 <li><a href="https://telegram.org/">Telegram</a></li>
5327 <li><a href="https://jitsi.org/">Jitsi</a></li>
5328 <li><a href="https://keybase.io/download">Keybase file</a></li>
5329
5330 </ul>
5331
5332 <p>Then the ones used by even fewer people</p>
5333
5334 <ul>
5335
5336 <li><a href="https://ring.cx/">Ring</a></li>
5337 <li><a href="https://bitmessage.org/">Bitmessage</a></li>
5338 <li><a href="https://wire.com/">Wire</a></li>
5339 <li>VoIP w/<a href="https://en.wikipedia.org/wiki/ZRTP">ZRTP</a> or controlled <a href="https://en.wikipedia.org/wiki/Secure_Real-time_Transport_Protocol">SRTP</a> (e.g using <a href="https://en.wikipedia.org/wiki/CSipSimple">CSipSimple</a>, <a href="https://en.wikipedia.org/wiki/Linphone">Linphone</a>)</li>
5340 <li><a href="https://matrix.org/">Matrix</a></li>
5341 <li><a href="https://kontalk.org/">Kontalk</a></li>
5342 <li><a href="https://0bin.net/">0bin</a> (encrypted pastebin)</li>
5343 <li><a href="https://appear.in">Appear.in</a></li>
5344 <li><a href="https://riot.im/">riot</a></li>
5345 <li><a href="https://www.wickr.com/">Wickr Me</a></li>
5346
5347 </ul>
5348
5349 <p>And finally the ones mentioned by not marked as used by
5350 anyone. This might be a mistake, perhaps the person adding the entry
5351 forgot to flag it as used?</p>
5352
5353 <ul>
5354
5355 <li>Email w/Certificates <a href="https://en.wikipedia.org/wiki/S/MIME">S/MIME</a></li>
5356 <li><a href="https://www.crypho.com/">Crypho</a></li>
5357 <li><a href="https://cryptpad.fr/">CryptPad</a></li>
5358 <li><a href="https://github.com/ricochet-im/ricochet">ricochet</a></li>
5359
5360 </ul>
5361
5362 <p>Given the network effect it seem obvious to me that we as a society
5363 have been divided and conquered by those interested in keeping
5364 encrypted and secure communication away from the masses. The
5365 finishing remarks <a href="https://vimeo.com/97505679">from Aral Balkan
5366 in his talk "Free is a lie"</a> about the usability of free software
5367 really come into effect when you want to communicate in private with
5368 your friends and family. We can not expect them to allow the
5369 usability of communication tool to block their ability to talk to
5370 their loved ones.</p>
5371
5372 <p>Note for example the option IRC w/OTR. Most IRC clients do not
5373 have OTR support, so in most cases OTR would not be an option, even if
5374 you wanted to. In my personal experience, about 1 in 20 I talk to
5375 have a IRC client with OTR. For private communication to really be
5376 available, most people to talk to must have the option in their
5377 currently used client. I can not simply ask my family to install an
5378 IRC client. I need to guide them through a technical multi-step
5379 process of adding extensions to the client to get them going. This is
5380 a non-starter for most.</p>
5381
5382 <p>I would like to be able to do video phone calls, audio phone calls,
5383 exchange instant messages and share files with my loved ones, without
5384 being forced to share with people I do not know. I do not want to
5385 share the content of the conversations, and I do not want to share who
5386 I communicate with or the fact that I communicate with someone.
5387 Without all these factors in place, my private life is being more or
5388 less invaded.</p>
5389
5390 </div>
5391 <div class="tags">
5392
5393
5394 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>.
5395
5396
5397 </div>
5398 </div>
5399 <div class="padding"></div>
5400
5401 <div class="entry">
5402 <div class="title">
5403 <a href="http://people.skolelinux.org/pere/blog/My_own_self_balancing_Lego_Segway.html">My own self balancing Lego Segway</a>
5404 </div>
5405 <div class="date">
5406 4th November 2016
5407 </div>
5408 <div class="body">
5409 <p>A while back I received a Gyro sensor for the NXT
5410 <a href="mindstorms.lego.com">Mindstorms</a> controller as a birthday
5411 present. It had been on my wishlist for a while, because I wanted to
5412 build a Segway like balancing lego robot. I had already built
5413 <a href="http://www.nxtprograms.com/NXT2/segway/">a simple balancing
5414 robot</a> with the kids, using the light/color sensor included in the
5415 NXT kit as the balance sensor, but it was not working very well. It
5416 could balance for a while, but was very sensitive to the light
5417 condition in the room and the reflective properties of the surface and
5418 would fall over after a short while. I wanted something more robust,
5419 and had
5420 <a href="https://www.hitechnic.com/cgi-bin/commerce.cgi?preadd=action&key=NGY1044">the
5421 gyro sensor from HiTechnic</a> I believed would solve it on my
5422 wishlist for some years before it suddenly showed up as a gift from my
5423 loved ones. :)</p>
5424
5425 <p>Unfortunately I have not had time to sit down and play with it
5426 since then. But that changed some days ago, when I was searching for
5427 lego segway information and came across a recipe from HiTechnic for
5428 building
5429 <a href="http://www.hitechnic.com/blog/gyro-sensor/htway/">the
5430 HTWay</a>, a segway like balancing robot. Build instructions and
5431 <a href="https://www.hitechnic.com/upload/786-HTWayC.nxc">source
5432 code</a> was included, so it was just a question of putting it all
5433 together. And thanks to the great work of many Debian developers, the
5434 compiler needed to build the source for the NXT is already included in
5435 Debian, so I was read to go in less than an hour. The resulting robot
5436 do not look very impressive in its simplicity:</p>
5437
5438 <p align="center"><img width="70%" src="http://people.skolelinux.org/pere/blog/images/2016-11-04-lego-htway-robot.jpeg"></p>
5439
5440 <p>Because I lack the infrared sensor used to control the robot in the
5441 design from HiTechnic, I had to comment out the last task
5442 (taskControl). I simply placed /* and */ around it get the program
5443 working without that sensor present. Now it balances just fine until
5444 the battery status run low:</p>
5445
5446 <p align="center"><video width="70%" controls="true">
5447 <source src="http://people.skolelinux.org/pere/blog/images/2016-11-04-lego-htway-balancing.ogv" type="video/ogg">
5448 </video></p>
5449
5450 <p>Now we would like to teach it how to follow a line and take remote
5451 control instructions using the included Bluetooth receiver in the NXT.</p>
5452
5453 <p>If you, like me, love LEGO and want to make sure we find the tools
5454 they need to work with LEGO in Debian and all our derivative
5455 distributions like Ubuntu, check out
5456 <a href="http://wiki.debian.org/LegoDesigners">the LEGO designers
5457 project page</a> and join the Debian LEGO team. Personally I own a
5458 RCX and NXT controller (no EV3), and would like to make sure the
5459 Debian tools needed to program the systems I own work as they
5460 should.</p>
5461
5462 </div>
5463 <div class="tags">
5464
5465
5466 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/lego">lego</a>, <a href="http://people.skolelinux.org/pere/blog/tags/robot">robot</a>.
5467
5468
5469 </div>
5470 </div>
5471 <div class="padding"></div>
5472
5473 <div class="entry">
5474 <div class="title">
5475 <a href="http://people.skolelinux.org/pere/blog/Experience_and_updated_recipe_for_using_the_Signal_app_without_a_mobile_phone.html">Experience and updated recipe for using the Signal app without a mobile phone</a>
5476 </div>
5477 <div class="date">
5478 10th October 2016
5479 </div>
5480 <div class="body">
5481 <p>In July
5482 <a href="http://people.skolelinux.org/pere/blog/How_to_use_the_Signal_app_if_you_only_have_a_land_line__ie_no_mobile_phone_.html">I
5483 wrote how to get the Signal Chrome/Chromium app working</a> without
5484 the ability to receive SMS messages (aka without a cell phone). It is
5485 time to share some experiences and provide an updated setup.</p>
5486
5487 <p>The Signal app have worked fine for several months now, and I use
5488 it regularly to chat with my loved ones. I had a major snag at the
5489 end of my summer vacation, when the the app completely forgot my
5490 setup, identity and keys. The reason behind this major mess was
5491 running out of disk space. To avoid that ever happening again I have
5492 started storing everything in <tt>userdata/</tt> in git, to be able to
5493 roll back to an earlier version if the files are wiped by mistake. I
5494 had to use it once after introducing the git backup. When rolling
5495 back to an earlier version, one need to use the 'reset session' option
5496 in Signal to get going, and notify the people you talk with about the
5497 problem. I assume there is some sequence number tracking in the
5498 protocol to detect rollback attacks. The git repository is rather big
5499 (674 MiB so far), but I have not tried to figure out if some of the
5500 content can be added to a .gitignore file due to lack of spare
5501 time.</p>
5502
5503 <p>I've also hit the 90 days timeout blocking, and noticed that this
5504 make it impossible to send messages using Signal. I could still
5505 receive them, but had to patch the code with a new timestamp to send.
5506 I believe the timeout is added by the developers to force people to
5507 upgrade to the latest version of the app, even when there is no
5508 protocol changes, to reduce the version skew among the user base and
5509 thus try to keep the number of support requests down.</p>
5510
5511 <p>Since my original recipe, the Signal source code changed slightly,
5512 making the old patch fail to apply cleanly. Below is an updated
5513 patch, including the shell wrapper I use to start Signal. The
5514 original version required a new user to locate the JavaScript console
5515 and call a function from there. I got help from a friend with more
5516 JavaScript knowledge than me to modify the code to provide a GUI
5517 button instead. This mean that to get started you just need to run
5518 the wrapper and click the 'Register without mobile phone' to get going
5519 now. I've also modified the timeout code to always set it to 90 days
5520 in the future, to avoid having to patch the code regularly.</p>
5521
5522 <p>So, the updated recipe for Debian Jessie:</p>
5523
5524 <ol>
5525
5526 <li>First, install required packages to get the source code and the
5527 browser you need. Signal only work with Chrome/Chromium, as far as I
5528 know, so you need to install it.
5529
5530 <pre>
5531 apt install git tor chromium
5532 git clone https://github.com/WhisperSystems/Signal-Desktop.git
5533 </pre></li>
5534
5535 <li>Modify the source code using command listed in the the patch
5536 block below.</li>
5537
5538 <li>Start Signal using the run-signal-app wrapper (for example using
5539 <tt>`pwd`/run-signal-app</tt>).
5540
5541 <li>Click on the 'Register without mobile phone', will in a phone
5542 number you can receive calls to the next minute, receive the
5543 verification code and enter it into the form field and press
5544 'Register'. Note, the phone number you use will be user Signal
5545 username, ie the way others can find you on Signal.</li>
5546
5547 <li>You can now use Signal to contact others. Note, new contacts do
5548 not show up in the contact list until you restart Signal, and there is
5549 no way to assign names to Contacts. There is also no way to create or
5550 update chat groups. I suspect this is because the web app do not have
5551 a associated contact database.</li>
5552
5553 </ol>
5554
5555 <p>I am still a bit uneasy about using Signal, because of the way its
5556 main author moxie0 reject federation and accept dependencies to major
5557 corporations like Google (part of the code is fetched from Google) and
5558 Amazon (the central coordination point is owned by Amazon). See for
5559 example
5560 <a href="https://github.com/LibreSignal/LibreSignal/issues/37">the
5561 LibreSignal issue tracker</a> for a thread documenting the authors
5562 view on these issues. But the network effect is strong in this case,
5563 and several of the people I want to communicate with already use
5564 Signal. Perhaps we can all move to <a href="https://ring.cx/">Ring</a>
5565 once it <a href="https://bugs.debian.org/830265">work on my
5566 laptop</a>? It already work on Windows and Android, and is included
5567 in <a href="https://tracker.debian.org/pkg/ring">Debian</a> and
5568 <a href="https://launchpad.net/ubuntu/+source/ring">Ubuntu</a>, but not
5569 working on Debian Stable.</p>
5570
5571 <p>Anyway, this is the patch I apply to the Signal code to get it
5572 working. It switch to the production servers, disable to timeout,
5573 make registration easier and add the shell wrapper:</p>
5574
5575 <pre>
5576 cd Signal-Desktop; cat &lt;&lt;EOF | patch -p1
5577 diff --git a/js/background.js b/js/background.js
5578 index 24b4c1d..579345f 100644
5579 --- a/js/background.js
5580 +++ b/js/background.js
5581 @@ -33,9 +33,9 @@
5582 });
5583 });
5584
5585 - var SERVER_URL = 'https://textsecure-service-staging.whispersystems.org';
5586 + var SERVER_URL = 'https://textsecure-service-ca.whispersystems.org';
5587 var SERVER_PORTS = [80, 4433, 8443];
5588 - var ATTACHMENT_SERVER_URL = 'https://whispersystems-textsecure-attachments-staging.s3.amazonaws.com';
5589 + var ATTACHMENT_SERVER_URL = 'https://whispersystems-textsecure-attachments.s3.amazonaws.com';
5590 var messageReceiver;
5591 window.getSocketStatus = function() {
5592 if (messageReceiver) {
5593 diff --git a/js/expire.js b/js/expire.js
5594 index 639aeae..beb91c3 100644
5595 --- a/js/expire.js
5596 +++ b/js/expire.js
5597 @@ -1,6 +1,6 @@
5598 ;(function() {
5599 'use strict';
5600 - var BUILD_EXPIRATION = 0;
5601 + var BUILD_EXPIRATION = Date.now() + (90 * 24 * 60 * 60 * 1000);
5602
5603 window.extension = window.extension || {};
5604
5605 diff --git a/js/views/install_view.js b/js/views/install_view.js
5606 index 7816f4f..1d6233b 100644
5607 --- a/js/views/install_view.js
5608 +++ b/js/views/install_view.js
5609 @@ -38,7 +38,8 @@
5610 return {
5611 'click .step1': this.selectStep.bind(this, 1),
5612 'click .step2': this.selectStep.bind(this, 2),
5613 - 'click .step3': this.selectStep.bind(this, 3)
5614 + 'click .step3': this.selectStep.bind(this, 3),
5615 + 'click .callreg': function() { extension.install('standalone') },
5616 };
5617 },
5618 clearQR: function() {
5619 diff --git a/options.html b/options.html
5620 index dc0f28e..8d709f6 100644
5621 --- a/options.html
5622 +++ b/options.html
5623 @@ -14,7 +14,10 @@
5624 &lt;div class='nav'>
5625 &lt;h1>{{ installWelcome }}&lt;/h1>
5626 &lt;p>{{ installTagline }}&lt;/p>
5627 - &lt;div> &lt;a class='button step2'>{{ installGetStartedButton }}&lt;/a> &lt;/div>
5628 + &lt;div> &lt;a class='button step2'>{{ installGetStartedButton }}&lt;/a>
5629 + &lt;br> &lt;a class="button callreg">Register without mobile phone&lt;/a>
5630 +
5631 + &lt;/div>
5632 &lt;span class='dot step1 selected'>&lt;/span>
5633 &lt;span class='dot step2'>&lt;/span>
5634 &lt;span class='dot step3'>&lt;/span>
5635 --- /dev/null 2016-10-07 09:55:13.730181472 +0200
5636 +++ b/run-signal-app 2016-10-10 08:54:09.434172391 +0200
5637 @@ -0,0 +1,12 @@
5638 +#!/bin/sh
5639 +set -e
5640 +cd $(dirname $0)
5641 +mkdir -p userdata
5642 +userdata="`pwd`/userdata"
5643 +if [ -d "$userdata" ] && [ ! -d "$userdata/.git" ] ; then
5644 + (cd $userdata && git init)
5645 +fi
5646 +(cd $userdata && git add . && git commit -m "Current status." || true)
5647 +exec chromium \
5648 + --proxy-server="socks://localhost:9050" \
5649 + --user-data-dir=$userdata --load-and-launch-app=`pwd`
5650 EOF
5651 chmod a+rx run-signal-app
5652 </pre>
5653
5654 <p>As usual, if you use Bitcoin and want to show your support of my
5655 activities, please send Bitcoin donations to my address
5656 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
5657
5658 </div>
5659 <div class="tags">
5660
5661
5662 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/sikkerhet">sikkerhet</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>.
5663
5664
5665 </div>
5666 </div>
5667 <div class="padding"></div>
5668
5669 <div class="entry">
5670 <div class="title">
5671 <a href="http://people.skolelinux.org/pere/blog/Isenkram__Appstream_and_udev_make_life_as_a_LEGO_builder_easier.html">Isenkram, Appstream and udev make life as a LEGO builder easier</a>
5672 </div>
5673 <div class="date">
5674 7th October 2016
5675 </div>
5676 <div class="body">
5677 <p><a href="http://packages.qa.debian.org/isenkram">The Isenkram
5678 system</a> provide a practical and easy way to figure out which
5679 packages support the hardware in a given machine. The command line
5680 tool <tt>isenkram-lookup</tt> and the tasksel options provide a
5681 convenient way to list and install packages relevant for the current
5682 hardware during system installation, both user space packages and
5683 firmware packages. The GUI background daemon on the other hand provide
5684 a pop-up proposing to install packages when a new dongle is inserted
5685 while using the computer. For example, if you plug in a smart card
5686 reader, the system will ask if you want to install <tt>pcscd</tt> if
5687 that package isn't already installed, and if you plug in a USB video
5688 camera the system will ask if you want to install <tt>cheese</tt> if
5689 cheese is currently missing. This already work just fine.</p>
5690
5691 <p>But Isenkram depend on a database mapping from hardware IDs to
5692 package names. When I started no such database existed in Debian, so
5693 I made my own data set and included it with the isenkram package and
5694 made isenkram fetch the latest version of this database from git using
5695 http. This way the isenkram users would get updated package proposals
5696 as soon as I learned more about hardware related packages.</p>
5697
5698 <p>The hardware is identified using modalias strings. The modalias
5699 design is from the Linux kernel where most hardware descriptors are
5700 made available as a strings that can be matched using filename style
5701 globbing. It handle USB, PCI, DMI and a lot of other hardware related
5702 identifiers.</p>
5703
5704 <p>The downside to the Isenkram specific database is that there is no
5705 information about relevant distribution / Debian version, making
5706 isenkram propose obsolete packages too. But along came AppStream, a
5707 cross distribution mechanism to store and collect metadata about
5708 software packages. When I heard about the proposal, I contacted the
5709 people involved and suggested to add a hardware matching rule using
5710 modalias strings in the specification, to be able to use AppStream for
5711 mapping hardware to packages. This idea was accepted and AppStream is
5712 now a great way for a package to announce the hardware it support in a
5713 distribution neutral way. I wrote
5714 <a href="http://people.skolelinux.org/pere/blog/Using_appstream_with_isenkram_to_install_hardware_related_packages_in_Debian.html">a
5715 recipe on how to add such meta-information</a> in a blog post last
5716 December. If you have a hardware related package in Debian, please
5717 announce the relevant hardware IDs using AppStream.</p>
5718
5719 <p>In Debian, almost all packages that can talk to a LEGO Mindestorms
5720 RCX or NXT unit, announce this support using AppStream. The effect is
5721 that when you insert such LEGO robot controller into your Debian
5722 machine, Isenkram will propose to install the packages needed to get
5723 it working. The intention is that this should allow the local user to
5724 start programming his robot controller right away without having to
5725 guess what packages to use or which permissions to fix.</p>
5726
5727 <p>But when I sat down with my son the other day to program our NXT
5728 unit using his Debian Stretch computer, I discovered something
5729 annoying. The local console user (ie my son) did not get access to
5730 the USB device for programming the unit. This used to work, but no
5731 longer in Jessie and Stretch. After some investigation and asking
5732 around on #debian-devel, I discovered that this was because udev had
5733 changed the mechanism used to grant access to local devices. The
5734 ConsoleKit mechanism from <tt>/lib/udev/rules.d/70-udev-acl.rules</tt>
5735 no longer applied, because LDAP users no longer was added to the
5736 plugdev group during login. Michael Biebl told me that this method
5737 was obsolete and the new method used ACLs instead. This was good
5738 news, as the plugdev mechanism is a mess when using a remote user
5739 directory like LDAP. Using ACLs would make sure a user lost device
5740 access when she logged out, even if the user left behind a background
5741 process which would retain the plugdev membership with the ConsoleKit
5742 setup. Armed with this knowledge I moved on to fix the access problem
5743 for the LEGO Mindstorms related packages.</p>
5744
5745 <p>The new system uses a udev tag, 'uaccess'. It can either be
5746 applied directly for a device, or is applied in
5747 /lib/udev/rules.d/70-uaccess.rules for classes of devices. As the
5748 LEGO Mindstorms udev rules did not have a class, I decided to add the
5749 tag directly in the udev rules files included in the packages. Here
5750 is one example. For the nqc C compiler for the RCX, the
5751 <tt>/lib/udev/rules.d/60-nqc.rules</tt> file now look like this:
5752
5753 <p><pre>
5754 SUBSYSTEM=="usb", ACTION=="add", ATTR{idVendor}=="0694", ATTR{idProduct}=="0001", \
5755 SYMLINK+="rcx-%k", TAG+="uaccess"
5756 </pre></p>
5757
5758 <p>The key part is the 'TAG+="uaccess"' at the end. I suspect all
5759 packages using plugdev in their /lib/udev/rules.d/ files should be
5760 changed to use this tag (either directly or indirectly via
5761 <tt>70-uaccess.rules</tt>). Perhaps a lintian check should be created
5762 to detect this?</p>
5763
5764 <p>I've been unable to find good documentation on the uaccess feature.
5765 It is unclear to me if the uaccess tag is an internal implementation
5766 detail like the udev-acl tag used by
5767 <tt>/lib/udev/rules.d/70-udev-acl.rules</tt>. If it is, I guess the
5768 indirect method is the preferred way. Michael
5769 <a href="https://github.com/systemd/systemd/issues/4288">asked for more
5770 documentation from the systemd project</a> and I hope it will make
5771 this clearer. For now I use the generic classes when they exist and
5772 is already handled by <tt>70-uaccess.rules</tt>, and add the tag
5773 directly if no such class exist.</p>
5774
5775 <p>To learn more about the isenkram system, please check out
5776 <a href="http://people.skolelinux.org/pere/blog/tags/isenkram/">my
5777 blog posts tagged isenkram</a>.</p>
5778
5779 <p>To help out making life for LEGO constructors in Debian easier,
5780 please join us on our IRC channel
5781 <a href="irc://irc.debian.org/%23debian-lego">#debian-lego</a> and join
5782 the <a href="https://alioth.debian.org/projects/debian-lego/">Debian
5783 LEGO team</a> in the Alioth project we created yesterday. A mailing
5784 list is not yet created, but we are working on it. :)</p>
5785
5786 <p>As usual, if you use Bitcoin and want to show your support of my
5787 activities, please send Bitcoin donations to my address
5788 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
5789
5790 </div>
5791 <div class="tags">
5792
5793
5794 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>, <a href="http://people.skolelinux.org/pere/blog/tags/lego">lego</a>.
5795
5796
5797 </div>
5798 </div>
5799 <div class="padding"></div>
5800
5801 <div class="entry">
5802 <div class="title">
5803 <a href="http://people.skolelinux.org/pere/blog/First_draft_Norwegian_Bokm_l_edition_of_The_Debian_Administrator_s_Handbook_now_public.html">First draft Norwegian Bokmål edition of The Debian Administrator's Handbook now public</a>
5804 </div>
5805 <div class="date">
5806 30th August 2016
5807 </div>
5808 <div class="body">
5809 <p>In April we
5810 <a href="http://people.skolelinux.org/pere/blog/Lets_make_a_Norwegian_Bokm_l_edition_of_The_Debian_Administrator_s_Handbook.html">started
5811 to work</a> on a Norwegian Bokmål edition of the "open access" book on
5812 how to set up and administrate a Debian system. Today I am happy to
5813 report that the first draft is now publicly available. You can find
5814 it on <a href="https://debian-handbook.info/get/">get the Debian
5815 Administrator's Handbook page</a> (under Other languages). The first
5816 eight chapters have a first draft translation, and we are working on
5817 proofreading the content. If you want to help out, please start
5818 contributing using
5819 <a href="https://hosted.weblate.org/projects/debian-handbook/">the
5820 hosted weblate project page</a>, and get in touch using
5821 <a href="http://lists.alioth.debian.org/mailman/listinfo/debian-handbook-translators">the
5822 translators mailing list</a>. Please also check out
5823 <a href="https://debian-handbook.info/contribute/">the instructions for
5824 contributors</a>. A good way to contribute is to proofread the text
5825 and update weblate if you find errors.</p>
5826
5827 <p>Our goal is still to make the Norwegian book available on paper as well as
5828 electronic form.</p>
5829
5830 </div>
5831 <div class="tags">
5832
5833
5834 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian-handbook">debian-handbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
5835
5836
5837 </div>
5838 </div>
5839 <div class="padding"></div>
5840
5841 <div class="entry">
5842 <div class="title">
5843 <a href="http://people.skolelinux.org/pere/blog/Coz_can_help_you_find_bottlenecks_in_multi_threaded_software___nice_free_software.html">Coz can help you find bottlenecks in multi-threaded software - nice free software</a>
5844 </div>
5845 <div class="date">
5846 11th August 2016
5847 </div>
5848 <div class="body">
5849 <p>This summer, I read a great article
5850 "<a href="https://www.usenix.org/publications/login/summer2016/curtsinger">coz:
5851 This Is the Profiler You're Looking For</a>" in USENIX ;login: about
5852 how to profile multi-threaded programs. It presented a system for
5853 profiling software by running experiences in the running program,
5854 testing how run time performance is affected by "speeding up" parts of
5855 the code to various degrees compared to a normal run. It does this by
5856 slowing down parallel threads while the "faster up" code is running
5857 and measure how this affect processing time. The processing time is
5858 measured using probes inserted into the code, either using progress
5859 counters (COZ_PROGRESS) or as latency meters (COZ_BEGIN/COZ_END). It
5860 can also measure unmodified code by measuring complete the program
5861 runtime and running the program several times instead.</p>
5862
5863 <p>The project and presentation was so inspiring that I would like to
5864 get the system into Debian. I
5865 <a href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=830708">created
5866 a WNPP request for it</a> and contacted upstream to try to make the
5867 system ready for Debian by sending patches. The build process need to
5868 be changed a bit to avoid running 'git clone' to get dependencies, and
5869 to include the JavaScript web page used to visualize the collected
5870 profiling information included in the source package.
5871 But I expect that should work out fairly soon.</p>
5872
5873 <p>The way the system work is fairly simple. To run an coz experiment
5874 on a binary with debug symbols available, start the program like this:
5875
5876 <p><blockquote><pre>
5877 coz run --- program-to-run
5878 </pre></blockquote></p>
5879
5880 <p>This will create a text file profile.coz with the instrumentation
5881 information. To show what part of the code affect the performance
5882 most, use a web browser and either point it to
5883 <a href="http://plasma-umass.github.io/coz/">http://plasma-umass.github.io/coz/</a>
5884 or use the copy from git (in the gh-pages branch). Check out this web
5885 site to have a look at several example profiling runs and get an idea what the end result from the profile runs look like. To make the
5886 profiling more useful you include &lt;coz.h&gt; and insert the
5887 COZ_PROGRESS or COZ_BEGIN and COZ_END at appropriate places in the
5888 code, rebuild and run the profiler. This allow coz to do more
5889 targeted experiments.</p>
5890
5891 <p>A video published by ACM
5892 <a href="https://www.youtube.com/watch?v=jE0V-p1odPg">presenting the
5893 Coz profiler</a> is available from Youtube. There is also a paper
5894 from the 25th Symposium on Operating Systems Principles available
5895 titled
5896 <a href="https://www.usenix.org/conference/atc16/technical-sessions/presentation/curtsinger">Coz:
5897 finding code that counts with causal profiling</a>.</p>
5898
5899 <p><a href="https://github.com/plasma-umass/coz">The source code</a>
5900 for Coz is available from github. It will only build with clang
5901 because it uses a
5902 <a href="https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55606">C++
5903 feature missing in GCC</a>, but I've submitted
5904 <a href="https://github.com/plasma-umass/coz/pull/67">a patch to solve
5905 it</a> and hope it will be included in the upstream source soon.</p>
5906
5907 <p>Please get in touch if you, like me, would like to see this piece
5908 of software in Debian. I would very much like some help with the
5909 packaging effort, as I lack the in depth knowledge on how to package
5910 C++ libraries.</p>
5911
5912 </div>
5913 <div class="tags">
5914
5915
5916 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/nice free software">nice free software</a>.
5917
5918
5919 </div>
5920 </div>
5921 <div class="padding"></div>
5922
5923 <div class="entry">
5924 <div class="title">
5925 <a href="http://people.skolelinux.org/pere/blog/Sales_number_for_the_Free_Culture_translation__first_half_of_2016.html">Sales number for the Free Culture translation, first half of 2016</a>
5926 </div>
5927 <div class="date">
5928 5th August 2016
5929 </div>
5930 <div class="body">
5931 <p>As my regular readers probably remember, the last year I published
5932 a French and Norwegian translation of the classic
5933 <a href="http://www.free-culture.cc/">Free Culture book</a> by the
5934 founder of the Creative Commons movement, Lawrence Lessig. A bit less
5935 known is the fact that due to the way I created the translations,
5936 using docbook and po4a, I also recreated the English original. And
5937 because I already had created a new the PDF edition, I published it
5938 too. The revenue from the books are sent to the Creative Commons
5939 Corporation. In other words, I do not earn any money from this
5940 project, I just earn the warm fuzzy feeling that the text is available
5941 for a wider audience and more people can learn why the Creative
5942 Commons is needed.</p>
5943
5944 <p>Today, just for fun, I had a look at the sales number over at
5945 Lulu.com, which take care of payment, printing and shipping. Much to
5946 my surprise, the English edition is selling better than both the
5947 French and Norwegian edition, despite the fact that it has been
5948 available in English since it was first published. In total, 24 paper
5949 books was sold for USD $19.99 between 2016-01-01 and 2016-07-31:</p>
5950
5951 <table border="0">
5952 <tr><th>Title / language</th><th>Quantity</th></tr>
5953 <tr><td><a href="http://www.lulu.com/shop/lawrence-lessig/culture-libre/paperback/product-22645082.html">Culture Libre / French</a></td><td align="right">3</td></tr>
5954 <tr><td><a href="http://www.lulu.com/shop/lawrence-lessig/fri-kultur/paperback/product-22441576.html">Fri kultur / Norwegian</a></td><td align="right">7</td></tr>
5955 <tr><td><a href="http://www.lulu.com/shop/lawrence-lessig/free-culture/paperback/product-22440520.html">Free Culture / English</a></td><td align="right">14</td></tr>
5956 </table>
5957
5958 <p>The books are available both from Lulu.com and from large book
5959 stores like Amazon and Barnes&Noble. Most revenue, around $10 per
5960 book, is sent to the Creative Commons project when the book is sold
5961 directly by Lulu.com. The other channels give less revenue. The
5962 summary from Lulu tell me 10 books was sold via the Amazon channel, 10
5963 via Ingram (what is this?) and 4 directly by Lulu. And Lulu.com tells
5964 me that the revenue sent so far this year is USD $101.42. No idea
5965 what kind of sales numbers to expect, so I do not know if that is a
5966 good amount of sales for a 10 year old book or not. But it make me
5967 happy that the buyers find the book, and I hope they enjoy reading it
5968 as much as I did.</p>
5969
5970 <p>The ebook edition is available for free from
5971 <a href="https://github.com/petterreinholdtsen/free-culture-lessig">Github</a>.</p>
5972
5973 <p>If you would like to translate and publish the book in your native
5974 language, I would be happy to help make it happen. Please get in
5975 touch.</p>
5976
5977 </div>
5978 <div class="tags">
5979
5980
5981 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>.
5982
5983
5984 </div>
5985 </div>
5986 <div class="padding"></div>
5987
5988 <div class="entry">
5989 <div class="title">
5990 <a href="http://people.skolelinux.org/pere/blog/Techno_TV_broadcasting_live_across_Norway_and_the_Internet___debconf16___nuug__on__frikanalen.html">Techno TV broadcasting live across Norway and the Internet (#debconf16, #nuug) on @frikanalen</a>
5991 </div>
5992 <div class="date">
5993 1st August 2016
5994 </div>
5995 <div class="body">
5996 <p>Did you know there is a TV channel broadcasting talks from DebConf
5997 16 across an entire country? Or that there is a TV channel
5998 broadcasting talks by or about
5999 <a href="http://beta.frikanalen.no/video/625529/">Linus Torvalds</a>,
6000 <a href="http://beta.frikanalen.no/video/625599/">Tor</a>,
6001 <a href="http://beta.frikanalen.no/video/624019/">OpenID</A>,
6002 <a href="http://beta.frikanalen.no/video/625624/">Common Lisp</a>,
6003 <a href="http://beta.frikanalen.no/video/625446/">Civic Tech</a>,
6004 <a href="http://beta.frikanalen.no/video/625090/">EFF founder John Barlow</a>,
6005 <a href="http://beta.frikanalen.no/video/625432/">how to make 3D
6006 printer electronics</a> and many more fascinating topics? It works
6007 using only free software (all of it
6008 <a href="http://github.com/Frikanalen">available from Github</a>), and
6009 is administrated using a web browser and a web API.</p>
6010
6011 <p>The TV channel is the Norwegian open channel
6012 <a href="http://www.frikanalen.no/">Frikanalen</a>, and I am involved
6013 via <a href="https://www.nuug.no/">the NUUG member association</a> in
6014 running and developing the software for the channel. The channel is
6015 organised as a member organisation where its members can upload and
6016 broadcast what they want (think of it as Youtube for national
6017 broadcasting television). Individuals can broadcast too. The time
6018 slots are handled on a first come, first serve basis. Because the
6019 channel have almost no viewers and very few active members, we can
6020 experiment with TV technology without too much flack when we make
6021 mistakes. And thanks to the few active members, most of the slots on
6022 the schedule are free. I see this as an opportunity to spread
6023 knowledge about technology and free software, and have a script I run
6024 regularly to fill up all the open slots the next few days with
6025 technology related video. The end result is a channel I like to
6026 describe as Techno TV - filled with interesting talks and
6027 presentations.</p>
6028
6029 <p>It is available on channel 50 on the Norwegian national digital TV
6030 network (RiksTV). It is also available as a multicast stream on
6031 Uninett. And finally, it is available as
6032 <a href="http://beta.frikanalen.no/">a WebM unicast stream</a> from
6033 Frikanalen and NUUG. Check it out. :)</p>
6034
6035 </div>
6036 <div class="tags">
6037
6038
6039 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
6040
6041
6042 </div>
6043 </div>
6044 <div class="padding"></div>
6045
6046 <div class="entry">
6047 <div class="title">
6048 <a href="http://people.skolelinux.org/pere/blog/Unlocking_HTC_Desire_HD_on_Linux_using_unruu_and_fastboot.html">Unlocking HTC Desire HD on Linux using unruu and fastboot</a>
6049 </div>
6050 <div class="date">
6051 7th July 2016
6052 </div>
6053 <div class="body">
6054 <p>Yesterday, I tried to unlock a HTC Desire HD phone, and it proved
6055 to be a slight challenge. Here is the recipe if I ever need to do it
6056 again. It all started by me wanting to try the recipe to set up
6057 <a href="https://blog.torproject.org/blog/mission-impossible-hardening-android-security-and-privacy">an
6058 hardened Android installation</a> from the Tor project blog on a
6059 device I had access to. It is a old mobile phone with a broken
6060 microphone The initial idea had been to just
6061 <a href="http://wiki.cyanogenmod.org/w/Install_CM_for_ace">install
6062 CyanogenMod on it</a>, but did not quite find time to start on it
6063 until a few days ago.</p>
6064
6065 <p>The unlock process is supposed to be simple: (1) Boot into the boot
6066 loader (press volume down and power at the same time), (2) select
6067 'fastboot' before (3) connecting the device via USB to a Linux
6068 machine, (4) request the device identifier token by running 'fastboot
6069 oem get_identifier_token', (5) request the device unlocking key using
6070 the <a href="http://www.htcdev.com/bootloader/">HTC developer web
6071 site</a> and unlock the phone using the key file emailed to you.</p>
6072
6073 <p>Unfortunately, this only work fi you have hboot version 2.00.0029
6074 or newer, and the device I was working on had 2.00.0027. This
6075 apparently can be easily fixed by downloading a Windows program and
6076 running it on your Windows machine, if you accept the terms Microsoft
6077 require you to accept to use Windows - which I do not. So I had to
6078 come up with a different approach. I got a lot of help from AndyCap
6079 on #nuug, and would not have been able to get this working without
6080 him.</p>
6081
6082 <p>First I needed to extract the hboot firmware from
6083 <a href="http://www.htcdev.com/ruu/PD9810000_Ace_Sense30_S_hboot_2.00.0029.exe">the
6084 windows binary for HTC Desire HD</a> downloaded as 'the RUU' from HTC.
6085 For this there is is <a href="https://github.com/kmdm/unruu/">a github
6086 project named unruu</a> using libunshield. The unshield tool did not
6087 recognise the file format, but unruu worked and extracted rom.zip,
6088 containing the new hboot firmware and a text file describing which
6089 devices it would work for.</p>
6090
6091 <p>Next, I needed to get the new firmware into the device. For this I
6092 followed some instructions
6093 <a href="http://www.htc1guru.com/2013/09/new-ruu-zips-posted/">available
6094 from HTC1Guru.com</a>, and ran these commands as root on a Linux
6095 machine with Debian testing:</p>
6096
6097 <p><pre>
6098 adb reboot-bootloader
6099 fastboot oem rebootRUU
6100 fastboot flash zip rom.zip
6101 fastboot flash zip rom.zip
6102 fastboot reboot
6103 </pre></p>
6104
6105 <p>The flash command apparently need to be done twice to take effect,
6106 as the first is just preparations and the second one do the flashing.
6107 The adb command is just to get to the boot loader menu, so turning the
6108 device on while holding volume down and the power button should work
6109 too.</p>
6110
6111 <p>With the new hboot version in place I could start following the
6112 instructions on the HTC developer web site. I got the device token
6113 like this:</p>
6114
6115 <p><pre>
6116 fastboot oem get_identifier_token 2>&1 | sed 's/(bootloader) //'
6117 </pre>
6118
6119 <p>And once I got the unlock code via email, I could use it like
6120 this:</p>
6121
6122 <p><pre>
6123 fastboot flash unlocktoken Unlock_code.bin
6124 </pre></p>
6125
6126 <p>And with that final step in place, the phone was unlocked and I
6127 could start stuffing the software of my own choosing into the device.
6128 So far I only inserted a replacement recovery image to wipe the phone
6129 before I start. We will see what happen next. Perhaps I should
6130 install <a href="https://www.debian.org/">Debian</a> on it. :)</p>
6131
6132 </div>
6133 <div class="tags">
6134
6135
6136 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <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/opphavsrett">opphavsrett</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>.
6137
6138
6139 </div>
6140 </div>
6141 <div class="padding"></div>
6142
6143 <div class="entry">
6144 <div class="title">
6145 <a href="http://people.skolelinux.org/pere/blog/How_to_use_the_Signal_app_if_you_only_have_a_land_line__ie_no_mobile_phone_.html">How to use the Signal app if you only have a land line (ie no mobile phone)</a>
6146 </div>
6147 <div class="date">
6148 3rd July 2016
6149 </div>
6150 <div class="body">
6151 <p>For a while now, I have wanted to test
6152 <a href="https://whispersystems.org/">the Signal app</a>, as it is
6153 said to provide end to end encrypted communication and several of my
6154 friends and family are already using it. As I by choice do not own a
6155 mobile phone, this proved to be harder than expected. And I wanted to
6156 have the source of the client and know that it was the code used on my
6157 machine. But yesterday I managed to get it working. I used the
6158 Github source, compared it to the source in
6159 <a href="https://chrome.google.com/webstore/detail/signal-private-messenger/bikioccmkafdpakkkcpdbppfkghcmihk?hl=en-US">the
6160 Signal Chrome app</a> available from the Chrome web store, applied
6161 patches to use the production Signal servers, started the app and
6162 asked for the hidden "register without a smart phone" form. Here is
6163 the recipe how I did it.</p>
6164
6165 <p>First, I fetched the Signal desktop source from Github, using
6166
6167 <pre>
6168 git clone https://github.com/WhisperSystems/Signal-Desktop.git
6169 </pre>
6170
6171 <p>Next, I patched the source to use the production servers, to be
6172 able to talk to other Signal users:</p>
6173
6174 <pre>
6175 cat &lt;&lt;EOF | patch -p0
6176 diff -ur ./js/background.js userdata/Default/Extensions/bikioccmkafdpakkkcpdbppfkghcmihk/0.15.0_0/js/background.js
6177 --- ./js/background.js 2016-06-29 13:43:15.630344628 +0200
6178 +++ userdata/Default/Extensions/bikioccmkafdpakkkcpdbppfkghcmihk/0.15.0_0/js/background.js 2016-06-29 14:06:29.530300934 +0200
6179 @@ -47,8 +47,8 @@
6180 });
6181 });
6182
6183 - var SERVER_URL = 'https://textsecure-service-staging.whispersystems.org';
6184 - var ATTACHMENT_SERVER_URL = 'https://whispersystems-textsecure-attachments-staging.s3.amazonaws.com';
6185 + var SERVER_URL = 'https://textsecure-service-ca.whispersystems.org:4433';
6186 + var ATTACHMENT_SERVER_URL = 'https://whispersystems-textsecure-attachments.s3.amazonaws.com';
6187 var messageReceiver;
6188 window.getSocketStatus = function() {
6189 if (messageReceiver) {
6190 diff -ur ./js/expire.js userdata/Default/Extensions/bikioccmkafdpakkkcpdbppfkghcmihk/0.15.0_0/js/expire.js
6191 --- ./js/expire.js 2016-06-29 13:43:15.630344628 +0200
6192 +++ userdata/Default/Extensions/bikioccmkafdpakkkcpdbppfkghcmihk/0.15.0_0/js/expire.js2016-06-29 14:06:29.530300934 +0200
6193 @@ -1,6 +1,6 @@
6194 ;(function() {
6195 'use strict';
6196 - var BUILD_EXPIRATION = 0;
6197 + var BUILD_EXPIRATION = 1474492690000;
6198
6199 window.extension = window.extension || {};
6200
6201 EOF
6202 </pre>
6203
6204 <p>The first part is changing the servers, and the second is updating
6205 an expiration timestamp. This timestamp need to be updated regularly.
6206 It is set 90 days in the future by the build process (Gruntfile.js).
6207 The value is seconds since 1970 times 1000, as far as I can tell.</p>
6208
6209 <p>Based on a tip and good help from the #nuug IRC channel, I wrote a
6210 script to launch Signal in Chromium.</p>
6211
6212 <pre>
6213 #!/bin/sh
6214 cd $(dirname $0)
6215 mkdir -p userdata
6216 exec chromium \
6217 --proxy-server="socks://localhost:9050" \
6218 --user-data-dir=`pwd`/userdata --load-and-launch-app=`pwd`
6219 </pre>
6220
6221 <p> The script start the app and configure Chromium to use the Tor
6222 SOCKS5 proxy to make sure those controlling the Signal servers (today
6223 Amazon and Whisper Systems) as well as those listening on the lines
6224 will have a harder time location my laptop based on the Signal
6225 connections if they use source IP address.</p>
6226
6227 <p>When the script starts, one need to follow the instructions under
6228 "Standalone Registration" in the CONTRIBUTING.md file in the git
6229 repository. I right clicked on the Signal window to get up the
6230 Chromium debugging tool, visited the 'Console' tab and wrote
6231 'extension.install("standalone")' on the console prompt to get the
6232 registration form. Then I entered by land line phone number and
6233 pressed 'Call'. 5 seconds later the phone rang and a robot voice
6234 repeated the verification code three times. After entering the number
6235 into the verification code field in the form, I could start using
6236 Signal from my laptop.
6237
6238 <p>As far as I can tell, The Signal app will leak who is talking to
6239 whom and thus who know who to those controlling the central server,
6240 but such leakage is hard to avoid with a centrally controlled server
6241 setup. It is something to keep in mind when using Signal - the
6242 content of your chats are harder to intercept, but the meta data
6243 exposing your contact network is available to people you do not know.
6244 So better than many options, but not great. And sadly the usage is
6245 connected to my land line, thus allowing those controlling the server
6246 to associate it to my home and person. I would prefer it if only
6247 those I knew could tell who I was on Signal. There are options
6248 avoiding such information leakage, but most of my friends are not
6249 using them, so I am stuck with Signal for now.</p>
6250
6251 <p><strong>Update 2017-01-10</strong>: There is an updated blog post
6252 on this topic in
6253 <a href="http://people.skolelinux.org/pere/blog/Experience_and_updated_recipe_for_using_the_Signal_app_without_a_mobile_phone.html">Experience
6254 and updated recipe for using the Signal app without a mobile
6255 phone</a>.</p>
6256
6257 </div>
6258 <div class="tags">
6259
6260
6261 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/sikkerhet">sikkerhet</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>.
6262
6263
6264 </div>
6265 </div>
6266 <div class="padding"></div>
6267
6268 <div class="entry">
6269 <div class="title">
6270 <a href="http://people.skolelinux.org/pere/blog/The_new__best__multimedia_player_in_Debian_.html">The new "best" multimedia player in Debian?</a>
6271 </div>
6272 <div class="date">
6273 6th June 2016
6274 </div>
6275 <div class="body">
6276 <p>When I set out a few weeks ago to figure out
6277 <a href="http://people.skolelinux.org/pere/blog/What_is_the_best_multimedia_player_in_Debian_.html">which
6278 multimedia player in Debian claimed to support most file formats /
6279 MIME types</a>, I was a bit surprised how varied the sets of MIME types
6280 the various players claimed support for. The range was from 55 to 130
6281 MIME types. I suspect most media formats are supported by all
6282 players, but this is not really reflected in the MimeTypes values in
6283 their desktop files. There are probably also some bogus MIME types
6284 listed, but it is hard to identify which one this is.</p>
6285
6286 <p>Anyway, in the mean time I got in touch with upstream for some of
6287 the players suggesting to add more MIME types to their desktop files,
6288 and decided to spend some time myself improving the situation for my
6289 favorite media player VLC. The fixes for VLC entered Debian unstable
6290 yesterday. The complete list of MIME types can be seen on the
6291 <a href="https://wiki.debian.org/DebianMultimedia/PlayerSupport">Multimedia
6292 player MIME type support status</a> Debian wiki page.</p>
6293
6294 <p>The new "best" multimedia player in Debian? It is VLC, followed by
6295 totem, parole, kplayer, gnome-mpv, mpv, smplayer, mplayer-gui and
6296 kmplayer. I am sure some of the other players desktop files support
6297 several of the formats currently listed as working only with vlc,
6298 toten and parole.</p>
6299
6300 <p>A sad observation is that only 14 MIME types are listed as
6301 supported by all the tested multimedia players in Debian in their
6302 desktop files: audio/mpeg, audio/vnd.rn-realaudio, audio/x-mpegurl,
6303 audio/x-ms-wma, audio/x-scpls, audio/x-wav, video/mp4, video/mpeg,
6304 video/quicktime, video/vnd.rn-realvideo, video/x-matroska,
6305 video/x-ms-asf, video/x-ms-wmv and video/x-msvideo. Personally I find
6306 it sad that video/ogg and video/webm is not supported by all the media
6307 players in Debian. As far as I can tell, all of them can handle both
6308 formats.</p>
6309
6310 </div>
6311 <div class="tags">
6312
6313
6314 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
6315
6316
6317 </div>
6318 </div>
6319 <div class="padding"></div>
6320
6321 <div class="entry">
6322 <div class="title">
6323 <a href="http://people.skolelinux.org/pere/blog/A_program_should_be_able_to_open_its_own_files_on_Linux.html">A program should be able to open its own files on Linux</a>
6324 </div>
6325 <div class="date">
6326 5th June 2016
6327 </div>
6328 <div class="body">
6329 <p>Many years ago, when koffice was fresh and with few users, I
6330 decided to test its presentation tool when making the slides for a
6331 talk I was giving for NUUG on Japhar, a free Java virtual machine. I
6332 wrote the first draft of the slides, saved the result and went to bed
6333 the day before I would give the talk. The next day I took a plane to
6334 the location where the meeting should take place, and on the plane I
6335 started up koffice again to polish the talk a bit, only to discover
6336 that kpresenter refused to load its own data file. I cursed a bit and
6337 started making the slides again from memory, to have something to
6338 present when I arrived. I tested that the saved files could be
6339 loaded, and the day seemed to be rescued. I continued to polish the
6340 slides until I suddenly discovered that the saved file could no longer
6341 be loaded into kpresenter. In the end I had to rewrite the slides
6342 three times, condensing the content until the talk became shorter and
6343 shorter. After the talk I was able to pinpoint the problem &ndash;
6344 kpresenter wrote inline images in a way itself could not understand.
6345 Eventually that bug was fixed and kpresenter ended up being a great
6346 program to make slides. The point I'm trying to make is that we
6347 expect a program to be able to load its own data files, and it is
6348 embarrassing to its developers if it can't.</p>
6349
6350 <p>Did you ever experience a program failing to load its own data
6351 files from the desktop file browser? It is not a uncommon problem. A
6352 while back I discovered that the screencast recorder
6353 gtk-recordmydesktop would save an Ogg Theora video file the KDE file
6354 browser would refuse to open. No video player claimed to understand
6355 such file. I tracked down the cause being <tt>file --mime-type</tt>
6356 returning the application/ogg MIME type, which no video player I had
6357 installed listed as a MIME type they would understand. I asked for
6358 <a href="http://bugs.gw.com/view.php?id=382">file to change its
6359 behavour</a> and use the MIME type video/ogg instead. I also asked
6360 several video players to add video/ogg to their desktop files, to give
6361 the file browser an idea what to do about Ogg Theora files. After a
6362 while, the desktop file browsers in Debian started to handle the
6363 output from gtk-recordmydesktop properly.</p>
6364
6365 <p>But history repeats itself. A few days ago I tested the music
6366 system Rosegarden again, and I discovered that the KDE and xfce file
6367 browsers did not know what to do with the Rosegarden project files
6368 (*.rg). I've reported <a href="http://bugs.debian.org/825993">the
6369 rosegarden problem to BTS</a> and a fix is commited to git and will be
6370 included in the next upload. To increase the chance of me remembering
6371 how to fix the problem next time some program fail to load its files
6372 from the file browser, here are some notes on how to fix it.</p>
6373
6374 <p>The file browsers in Debian in general operates on MIME types.
6375 There are two sources for the MIME type of a given file. The output from
6376 <tt>file --mime-type</tt> mentioned above, and the content of the
6377 shared MIME type registry (under /usr/share/mime/). The file MIME
6378 type is mapped to programs supporting the MIME type, and this
6379 information is collected from
6380 <a href="https://www.freedesktop.org/wiki/Specifications/desktop-entry-spec/">the
6381 desktop files</a> available in /usr/share/applications/. If there is
6382 one desktop file claiming support for the MIME type of the file, it is
6383 activated when asking to open a given file. If there are more, one
6384 can normally select which one to use by right-clicking on the file and
6385 selecting the wanted one using 'Open with' or similar. In general
6386 this work well. But it depend on each program picking a good MIME
6387 type (preferably
6388 <a href="http://www.iana.org/assignments/media-types/media-types.xhtml">a
6389 MIME type registered with IANA</a>), file and/or the shared MIME
6390 registry recognizing the file and the desktop file to list the MIME
6391 type in its list of supported MIME types.</p>
6392
6393 <p>The <tt>/usr/share/mime/packages/rosegarden.xml</tt> entry for
6394 <a href="http://www.freedesktop.org/wiki/Specifications/shared-mime-info-spec">the
6395 Shared MIME database</a> look like this:</p>
6396
6397 <p><blockquote><pre>
6398 &lt;?xml version="1.0" encoding="UTF-8"?&gt;
6399 &lt;mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info"&gt;
6400 &lt;mime-type type="audio/x-rosegarden"&gt;
6401 &lt;sub-class-of type="application/x-gzip"/&gt;
6402 &lt;comment&gt;Rosegarden project file&lt;/comment&gt;
6403 &lt;glob pattern="*.rg"/&gt;
6404 &lt;/mime-type&gt;
6405 &lt;/mime-info&gt;
6406 </pre></blockquote></p>
6407
6408 <p>This states that audio/x-rosegarden is a kind of application/x-gzip
6409 (it is a gzipped XML file). Note, it is much better to use an
6410 official MIME type registered with IANA than it is to make up ones own
6411 unofficial ones like the x-rosegarden type used by rosegarden.</p>
6412
6413 <p>The desktop file of the rosegarden program failed to list
6414 audio/x-rosegarden in its list of supported MIME types, causing the
6415 file browsers to have no idea what to do with *.rg files:</p>
6416
6417 <p><blockquote><pre>
6418 % grep Mime /usr/share/applications/rosegarden.desktop
6419 MimeType=audio/x-rosegarden-composition;audio/x-rosegarden-device;audio/x-rosegarden-project;audio/x-rosegarden-template;audio/midi;
6420 X-KDE-NativeMimeType=audio/x-rosegarden-composition
6421 %
6422 </pre></blockquote></p>
6423
6424 <p>The fix was to add "audio/x-rosegarden;" at the end of the
6425 MimeType= line.</p>
6426
6427 <p>If you run into a file which fail to open the correct program when
6428 selected from the file browser, please check out the output from
6429 <tt>file --mime-type</tt> for the file, ensure the file ending and
6430 MIME type is registered somewhere under /usr/share/mime/ and check
6431 that some desktop file under /usr/share/applications/ is claiming
6432 support for this MIME type. If not, please report a bug to have it
6433 fixed. :)</p>
6434
6435 </div>
6436 <div class="tags">
6437
6438
6439 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>.
6440
6441
6442 </div>
6443 </div>
6444 <div class="padding"></div>
6445
6446 <div class="entry">
6447 <div class="title">
6448 <a href="http://people.skolelinux.org/pere/blog/Tor___from_its_creators_mouth_11_years_ago.html">Tor - from its creators mouth 11 years ago</a>
6449 </div>
6450 <div class="date">
6451 28th May 2016
6452 </div>
6453 <div class="body">
6454 <p>A little more than 11 years ago, one of the creators of Tor, and
6455 the current President of <a href="https://www.torproject.org/">the Tor
6456 project</a>, Roger Dingledine, gave a talk for the members of the
6457 <a href="http://www.nuug.no/">Norwegian Unix User group</a> (NUUG). A
6458 video of the talk was recorded, and today, thanks to the great help
6459 from David Noble, I finally was able to publish the video of the talk
6460 on Frikanalen, the Norwegian open channel TV station where NUUG
6461 currently publishes its talks. You can
6462 <a href="http://frikanalen.no/se">watch the live stream using a web
6463 browser</a> with WebM support, or check out the recording on the video
6464 on demand page for the talk
6465 "<a href="http://beta.frikanalen.no/video/625599">Tor: Anonymous
6466 communication for the US Department of Defence...and you.</a>".</p>
6467
6468 <p>Here is the video included for those of you using browsers with
6469 HTML video and Ogg Theora support:</p>
6470
6471 <p><video width="70%" poster="http://simula.gunkies.org/media/625599/large_thumb/20050421-tor-frikanalen.jpg" controls>
6472 <source src="http://simula.gunkies.org/media/625599/theora/20050421-tor-frikanalen.ogv" type="video/ogg"/>
6473 </video></p>
6474
6475 <p>I guess the gist of the talk can be summarised quite simply: If you
6476 want to help the military in USA (and everyone else), use Tor. :)</p>
6477
6478 </div>
6479 <div class="tags">
6480
6481
6482 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
6483
6484
6485 </div>
6486 </div>
6487 <div class="padding"></div>
6488
6489 <div class="entry">
6490 <div class="title">
6491 <a href="http://people.skolelinux.org/pere/blog/Isenkram_with_PackageKit_support___new_version_0_23_available_in_Debian_unstable.html">Isenkram with PackageKit support - new version 0.23 available in Debian unstable</a>
6492 </div>
6493 <div class="date">
6494 25th May 2016
6495 </div>
6496 <div class="body">
6497 <p><a href="https://tracker.debian.org/pkg/isenkram">The isenkram
6498 system</a> is a user-focused solution in Debian for handling hardware
6499 related packages. The idea is to have a database of mappings between
6500 hardware and packages, and pop up a dialog suggesting for the user to
6501 install the packages to use a given hardware dongle. Some use cases
6502 are when you insert a Yubikey, it proposes to install the software
6503 needed to control it; when you insert a braille reader list it
6504 proposes to install the packages needed to send text to the reader;
6505 and when you insert a ColorHug screen calibrator it suggests to
6506 install the driver for it. The system work well, and even have a few
6507 command line tools to install firmware packages and packages for the
6508 hardware already in the machine (as opposed to hotpluggable hardware).</p>
6509
6510 <p>The system was initially written using aptdaemon, because I found
6511 good documentation and example code on how to use it. But aptdaemon
6512 is going away and is generally being replaced by
6513 <a href="http://www.freedesktop.org/software/PackageKit/">PackageKit</a>,
6514 so Isenkram needed a rewrite. And today, thanks to the great patch
6515 from my college Sunil Mohan Adapa in the FreedomBox project, the
6516 rewrite finally took place. I've just uploaded a new version of
6517 Isenkram into Debian Unstable with the patch included, and the default
6518 for the background daemon is now to use PackageKit. To check it out,
6519 install the <tt>isenkram</tt> package and insert some hardware dongle
6520 and see if it is recognised.</p>
6521
6522 <p>If you want to know what kind of packages isenkram would propose for
6523 the machine it is running on, you can check out the isenkram-lookup
6524 program. This is what it look like on a Thinkpad X230:</p>
6525
6526 <p><blockquote><pre>
6527 % isenkram-lookup
6528 bluez
6529 cheese
6530 fprintd
6531 fprintd-demo
6532 gkrellm-thinkbat
6533 hdapsd
6534 libpam-fprintd
6535 pidgin-blinklight
6536 thinkfan
6537 tleds
6538 tp-smapi-dkms
6539 tp-smapi-source
6540 tpb
6541 %p
6542 </pre></blockquote></p>
6543
6544 <p>The hardware mappings come from several places. The preferred way
6545 is for packages to announce their hardware support using
6546 <a href="https://www.freedesktop.org/software/appstream/docs/">the
6547 cross distribution appstream system</a>.
6548 See
6549 <a href="http://people.skolelinux.org/pere/blog/tags/isenkram/">previous
6550 blog posts about isenkram</a> to learn how to do that.</p>
6551
6552 </div>
6553 <div class="tags">
6554
6555
6556 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>.
6557
6558
6559 </div>
6560 </div>
6561 <div class="padding"></div>
6562
6563 <div class="entry">
6564 <div class="title">
6565 <a href="http://people.skolelinux.org/pere/blog/Discharge_rate_estimate_in_new_battery_statistics_collector_for_Debian.html">Discharge rate estimate in new battery statistics collector for Debian</a>
6566 </div>
6567 <div class="date">
6568 23rd May 2016
6569 </div>
6570 <div class="body">
6571 <p>Yesterday I updated the
6572 <a href="https://tracker.debian.org/pkg/battery-stats">battery-stats
6573 package in Debian</a> with a few patches sent to me by skilled and
6574 enterprising users. There were some nice user and visible changes.
6575 First of all, both desktop menu entries now work. A design flaw in
6576 one of the script made the history graph fail to show up (its PNG was
6577 dumped in ~/.xsession-errors) if no controlling TTY was available.
6578 The script worked when called from the command line, but not when
6579 called from the desktop menu. I changed this to look for a DISPLAY
6580 variable or a TTY before deciding where to draw the graph, and now the
6581 graph window pop up as expected.</p>
6582
6583 <p>The next new feature is a discharge rate estimator in one of the
6584 graphs (the one showing the last few hours). New is also the user of
6585 colours showing charging in blue and discharge in red. The percentages
6586 of this graph is relative to last full charge, not battery design
6587 capacity.</p>
6588
6589 <p align="center"><img src="http://people.skolelinux.org/pere/blog/images/2016-05-23-battery-stats-rate.png"/></p>
6590
6591 <p>The other graph show the entire history of the collected battery
6592 statistics, comparing it to the design capacity of the battery to
6593 visualise how the battery life time get shorter over time. The red
6594 line in this graph is what the previous graph considers 100 percent:
6595
6596 <p align="center"><img src="http://people.skolelinux.org/pere/blog/images/2016-05-23-battery-stats-history.png"/></p>
6597
6598 <p>In this graph you can see that I only charge the battery to 80
6599 percent of last full capacity, and how the capacity of the battery is
6600 shrinking. :(</p>
6601
6602 <p>The last new feature is in the collector, which now will handle
6603 more hardware models. On some hardware, Linux power supply
6604 information is stored in /sys/class/power_supply/ACAD/, while the
6605 collector previously only looked in /sys/class/power_supply/AC/. Now
6606 both are checked to figure if there is power connected to the
6607 machine.</p>
6608
6609 <p>If you are interested in how your laptop battery is doing, please
6610 check out the
6611 <a href="https://tracker.debian.org/pkg/battery-stats">battery-stats</a>
6612 in Debian unstable, or rebuild it on Jessie to get it working on
6613 Debian stable. :) The upstream source is available from <a
6614 href="https://github.com/petterreinholdtsen/battery-stats">github</a>.
6615 Patches are very welcome.</p>
6616
6617 <p>As usual, if you use Bitcoin and want to show your support of my
6618 activities, please send Bitcoin donations to my address
6619 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
6620
6621 </div>
6622 <div class="tags">
6623
6624
6625 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>.
6626
6627
6628 </div>
6629 </div>
6630 <div class="padding"></div>
6631
6632 <div class="entry">
6633 <div class="title">
6634 <a href="http://people.skolelinux.org/pere/blog/French_edition_of_Lawrence_Lessigs_book_Cultura_Libre_on_Amazon_and_Barnes___Noble.html">French edition of Lawrence Lessigs book Cultura Libre on Amazon and Barnes & Noble</a>
6635 </div>
6636 <div class="date">
6637 21st May 2016
6638 </div>
6639 <div class="body">
6640 <p>A few weeks ago the French paperback edition of Lawrence Lessigs
6641 2004 book Cultura Libre was published. Today I noticed that the book
6642 is now available from book stores. You can now buy it from
6643 <a href="http://www.amazon.com/Culture-Libre-French-Lawrence-Lessig/dp/8269018260">Amazon</a>
6644 ($19.99),
6645 <a href="http://www.barnesandnoble.com/w/culture-libre-lawrence-lessig/1123776705">Barnes
6646 & Noble</a> ($?) and as always from
6647 <a href="http://www.lulu.com/shop/lawrence-lessig/culture-libre/paperback/product-22645082.html">Lulu.com</a>
6648 ($19.99). The revenue is donated to the Creative Commons project. If
6649 you buy from Lulu.com, they currently get $10.59, while if you buy
6650 from one of the book stores most of the revenue go to the book store
6651 and the Creative Commons project get much (not sure how much
6652 less).</p>
6653
6654 <p>I was a bit surprised to discover that there is a kindle edition
6655 sold by Amazon Digital Services LLC on Amazon. Not quite sure how
6656 that edition was created, but if you want to download a electronic
6657 edition (PDF, EPUB, Mobi) generated from the same files used to create
6658 the paperback edition, they are
6659 <a href="https://github.com/petterreinholdtsen/free-culture-lessig">available
6660 from github</a>.</p>
6661
6662 </div>
6663 <div class="tags">
6664
6665
6666 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>.
6667
6668
6669 </div>
6670 </div>
6671 <div class="padding"></div>
6672
6673 <div class="entry">
6674 <div class="title">
6675 <a href="http://people.skolelinux.org/pere/blog/I_want_the_courts_to_be_involved_before_the_police_can_hijack_a_news_site_DNS_domain___domstolkontroll_.html">I want the courts to be involved before the police can hijack a news site DNS domain (#domstolkontroll)</a>
6676 </div>
6677 <div class="date">
6678 19th May 2016
6679 </div>
6680 <div class="body">
6681 <p>I just donated to the
6682 <a href="http://www.nuug.no/dns-beslag-donasjon.shtml">NUUG defence
6683 "fond"</a> to fund the effort in Norway to get the seizure of the news
6684 site popcorn-time.no tested in court. I hope everyone that agree with
6685 me will do the same.</p>
6686
6687 <p>Would you be worried if you knew the police in your country could
6688 hijack DNS domains of news sites covering free software system without
6689 talking to a judge first? I am. What if the free software system
6690 combined search engine lookups, bittorrent downloads and video playout
6691 and was called Popcorn Time? Would that affect your view? It still
6692 make me worried.</p>
6693
6694 <p>In March 2016, the Norwegian police seized (as in forced NORID to
6695 change the IP address pointed to by it to one controlled by the
6696 police) the DNS domain popcorn-time.no, without any supervision from
6697 the courts. I did not know about the web site back then, and assumed
6698 the courts had been involved, and was very surprised when I discovered
6699 that the police had hijacked the DNS domain without asking a judge for
6700 permission first. I was even more surprised when I had a look at
6701 <a href="https://web.archive.org/web/*/http://popcorn-time.no">the web
6702 site content on the Internet Archive</A>, and only found news coverage
6703 about Popcorn Time, not any material published without the right
6704 holders permissions.</p>
6705
6706 <p>The seizure was widely covered in the Norwegian press (see for
6707 example <a href="http://www.hegnar.no/Nyheter/Naeringsliv/2016/03/Popcorn-time.no-beslaglagt-av-OEkokrim">Hegnar Online</a> and
6708 <a href="http://itavisen.no/2016/03/08/okokrim-har-beslaglagt-popcorn-time-no/">ITavisen<a/>
6709 and
6710 <a href="http://www.nrk.no/kultur/okokrim-gar-til-aksjon-mot-popcorn-time-1.12842452">NRK</a>),
6711 at first due to the press release sent out by Økokrim, but then based
6712 on
6713 <a href="http://blogg.torvund.net/2016/03/09/okokrims-beslag-i-domenet-popcorn-time-no/">protests
6714 from the law professor Olav Torvund</a> and
6715 <a href="http://www.klassekampen.no/article/20160311/ARTICLE/160319995">lawyer
6716 Jon Wessel-Aas</a>. It even got some
6717 <a href="https://torrentfreak.com/norwegian-authorities-sued-over-popcorn-time-domain-seizure-160418/">coverage
6718 on TorrentFreak</a>.</p>
6719
6720 <p>I
6721 <a href="http://people.skolelinux.org/pere/blog/NUUG_contests_Norwegian_police_DNS_seizure_of_popcorn_time_no.html">
6722 wrote about the case a month ago</a>, when the
6723 <a href="http://www.nuug.no/">Norwegian Unix User Group</a> (NUUG),
6724 where I am an active member, decided to ask the courts to test this seizure.
6725 The request was denied, but NUUG and its co-requestor EFN have not
6726 given up, and now they are rallying for support to get the seizure
6727 legally challenged. They accept both bank and Bitcoin transfer for
6728 those that want to support the request.</p>
6729
6730 <p>If you as me believe news sites about free software should not be
6731 censored, even if the free software have both legal and illegal
6732 applications, and that DNS hijacking should be tested by the courts, I
6733 suggest you <a href="http://www.nuug.no/dns-beslag-donasjon.shtml">show
6734 your support by donating to NUUG</a>.</a>
6735
6736 </div>
6737 <div class="tags">
6738
6739
6740 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>.
6741
6742
6743 </div>
6744 </div>
6745 <div class="padding"></div>
6746
6747 <div class="entry">
6748 <div class="title">
6749 <a href="http://people.skolelinux.org/pere/blog/Debian_now_with_ZFS_on_Linux_included.html">Debian now with ZFS on Linux included</a>
6750 </div>
6751 <div class="date">
6752 12th May 2016
6753 </div>
6754 <div class="body">
6755 <p>Today, after many years of hard work from many people,
6756 <a href="http://zfsonlinux.org/">ZFS for Linux</a> finally entered
6757 Debian. The package status can be seen on
6758 <a href="https://tracker.debian.org/pkg/zfs-linux">the package tracker
6759 for zfs-linux</a>. and
6760 <a href="https://qa.debian.org/developer.php?login=pkg-zfsonlinux-devel@lists.alioth.debian.org">the
6761 team status page</a>. If you want to help out, please join us.
6762 <a href="http://anonscm.debian.org/gitweb/?p=pkg-zfsonlinux/zfs.git">The
6763 source code</a> is available via git on Alioth. It would also be
6764 great if you could help out with
6765 <a href="https://tracker.debian.org/pkg/dkms">the dkms package</a>, as
6766 it is an important piece of the puzzle to get ZFS working.</p>
6767
6768 </div>
6769 <div class="tags">
6770
6771
6772 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>.
6773
6774
6775 </div>
6776 </div>
6777 <div class="padding"></div>
6778
6779 <div class="entry">
6780 <div class="title">
6781 <a href="http://people.skolelinux.org/pere/blog/What_is_the_best_multimedia_player_in_Debian_.html">What is the best multimedia player in Debian?</a>
6782 </div>
6783 <div class="date">
6784 8th May 2016
6785 </div>
6786 <div class="body">
6787 <p><strong>Where I set out to figure out which multimedia player in
6788 Debian claim support for most file formats.</strong></p>
6789
6790 <p>A few years ago, I had a look at the media support for Browser
6791 plugins in Debian, to get an idea which plugins to include in Debian
6792 Edu. I created a script to extract the set of supported MIME types
6793 for each plugin, and used this to find out which multimedia browser
6794 plugin supported most file formats / media types.
6795 <a href="https://wiki.debian.org/DebianEdu/BrowserMultimedia">The
6796 result</a> can still be seen on the Debian wiki, even though it have
6797 not been updated for a while. But browser plugins are less relevant
6798 these days, so I thought it was time to look at standalone
6799 players.</p>
6800
6801 <p>A few days ago I was tired of VLC not being listed as a viable
6802 player when I wanted to play videos from the Norwegian National
6803 Broadcasting Company, and decided to investigate why. The cause is a
6804 <a href="https://bugs.debian.org/822245">missing MIME type in the VLC
6805 desktop file</a>. In the process I wrote a script to compare the set
6806 of MIME types announced in the desktop file and the browser plugin,
6807 only to discover that there is quite a large difference between the
6808 two for VLC. This discovery made me dig up the script I used to
6809 compare browser plugins, and adjust it to compare desktop files
6810 instead, to try to figure out which multimedia player in Debian
6811 support most file formats.</p>
6812
6813 <p>The result can be seen on the Debian Wiki, as
6814 <a href="https://wiki.debian.org/DebianMultimedia/PlayerSupport">a
6815 table listing all MIME types supported by one of the packages included
6816 in the table</a>, with the package supporting most MIME types being
6817 listed first in the table.</p>
6818
6819 </p>The best multimedia player in Debian? It is totem, followed by
6820 parole, kplayer, mpv, vlc, smplayer mplayer-gui gnome-mpv and
6821 kmplayer. Time for the other players to update their announced MIME
6822 support?</p>
6823
6824 </div>
6825 <div class="tags">
6826
6827
6828 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
6829
6830
6831 </div>
6832 </div>
6833 <div class="padding"></div>
6834
6835 <div class="entry">
6836 <div class="title">
6837 <a href="http://people.skolelinux.org/pere/blog/The_Pyra___handheld_computer_with_Debian_preinstalled.html">The Pyra - handheld computer with Debian preinstalled</a>
6838 </div>
6839 <div class="date">
6840 4th May 2016
6841 </div>
6842 <div class="body">
6843 A friend of mine made me aware of
6844 <a href="https://pyra-handheld.com/boards/pages/pyra/">The Pyra</a>, a
6845 handheld computer which will be delivered with Debian preinstalled. I
6846 would love to get one of those for my birthday. :)</p>
6847
6848 <p>The machine is a complete ARM-based PC with micro HDMI, SATA, USB
6849 plugs and many others connectors, and include a full keyboard and a 5"
6850 LCD touch screen. The 6000mAh battery is claimed to provide a whole
6851 day of battery life time, but I have not seen any independent tests
6852 confirming this. The vendor is still collecting preorders, and the
6853 last I heard last night was that 22 more orders were needed before
6854 production started.</p>
6855
6856 <p>As far as I know, this is the first handheld preinstalled with
6857 Debian. Please let me know if you know of any others. Is it the
6858 first computer being sold with Debian preinstalled?</p>
6859
6860 </div>
6861 <div class="tags">
6862
6863
6864 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>.
6865
6866
6867 </div>
6868 </div>
6869 <div class="padding"></div>
6870
6871 <div class="entry">
6872 <div class="title">
6873 <a href="http://people.skolelinux.org/pere/blog/NUUG_contests_Norwegian_police_DNS_seizure_of_popcorn_time_no.html">NUUG contests Norwegian police DNS seizure of popcorn-time.no</a>
6874 </div>
6875 <div class="date">
6876 18th April 2016
6877 </div>
6878 <div class="body">
6879 <p>It is days like today I am really happy to be a member of
6880 <a href="http://www.nuug.no/">the Norwegian Unix User group</a>, a
6881 member association for those of us believing in free software, open
6882 standards and unix-like operating systems. NUUG announced today it
6883 will
6884 <a href="http://www.nuug.no/news/Pressemelding__NUUG_og_EFN_begj_rer_rettslig_pr_ving_for_DNS_domenebeslag_av_popcorn_time_no.shtml">try
6885 to bring the seizure of the DNS domain popcorn-time.no as
6886 unlawful</a>, to stand up for the principle that writing about a
6887 controversial topic is not infringing copyrights, and censuring web
6888 pages by hijacking DNS domain should be decided by the courts, not the
6889 police. The DNS domain was seized by the Norwegian National Authority
6890 for Investigation and Prosecution of Economic and Environmental Crime
6891 a month ago. I hope this bring more paying members to NUUG to give
6892 the association the financial muscle needed to bring this case as far
6893 as it must go to stop this kind of DNS hijacking.</p>
6894
6895 </div>
6896 <div class="tags">
6897
6898
6899 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>.
6900
6901
6902 </div>
6903 </div>
6904 <div class="padding"></div>
6905
6906 <div class="entry">
6907 <div class="title">
6908 <a href="http://people.skolelinux.org/pere/blog/I_F__Stone___an_inspiration_for_us_all.html">I.F. Stone - an inspiration for us all</a>
6909 </div>
6910 <div class="date">
6911 13th April 2016
6912 </div>
6913 <div class="body">
6914 <p>I first got to know I.F. Stone when I came across an article by Jon
6915 Schwarz on The Intercept
6916 <a href="https://theintercept.com/2015/05/07/new-documentary-legacy-f-stone/">about
6917 his extraordinary contribution to investigative journalism in
6918 USA</a>. The article is about a new documentary in two parts
6919 (<a href="https://vimeo.com/123974841">part one is 12 minutes</a> and
6920 <a href="https://vimeo.com/123974842">part two is 30 minutes</a>), and
6921 I found both truly fascinating. It is amazing what he was able to
6922 find by digging up public sources and government papers. He
6923 documented lots of government abuse and cover ups, and I find
6924 <a href="http://www.ifstone.org/weekly.php">his weekly news letters</a>
6925 inspiring to read even today.</p>
6926
6927 <p><blockquote>
6928 All governments are run by liars and nothing they say should be believed.
6929 <br>- I. F. Stone
6930 </blockquote></p>
6931
6932 <p>His starting point was that reporters should not assume governments
6933 and corporations are telling the truth, but verify all their claims as
6934 much as possible. I wonder how many Norwegian reporters can be said
6935 to follow the principles of I. F. Stone. They are definitely in short
6936 supply. If you, like me half a year ago, have never heard of him,
6937 check him out.</p>
6938
6939 </div>
6940 <div class="tags">
6941
6942
6943 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn</a>.
6944
6945
6946 </div>
6947 </div>
6948 <div class="padding"></div>
6949
6950 <div class="entry">
6951 <div class="title">
6952 <a href="http://people.skolelinux.org/pere/blog/A_French_paperback_edition_of_the_book_Free_Culture_by_Lawrence_Lessig_is_now_available.html">A French paperback edition of the book Free Culture by Lawrence Lessig is now available</a>
6953 </div>
6954 <div class="date">
6955 12th April 2016
6956 </div>
6957 <div class="body">
6958 <p>I'm happy to report that
6959 <a href="http://www.lulu.com/shop/lawrence-lessig/culture-libre/paperback/product-22645082.html">the
6960 French paperback edition</a> of
6961 <a href="https://github.com/petterreinholdtsen/free-culture-lessig">my
6962 project to translate</a> the <a href="http://free-culture.cc/">Free
6963 Culture</a> book by Lawrence Lessig is now available for sale on
6964 Lulu.com. Once I have formally verified my proof reading copy, which
6965 should be in the mail, the paperback edition should be available in
6966 book stores like Amazon and Barnes & Noble too.</p>
6967
6968 <p>This French edition, Culture Libre, is the work of the
6969 <a href="http://dblatex.sourceforge.net/">dblatex</a> developer Benoît
6970 Guillon, who created the PO file from the initial translation
6971 available from
6972 <a href="http://www.wikilivres.ca/wiki/Culture_libre">the Wikilivres
6973 wiki pages</a> and completed and corrected the translation to match
6974 the original docbook edition my project is using, as well as
6975 coordinated the proof reading of the final result. I believe the end
6976 result look great, but I am biased and do not read French. In
6977 addition to the paperback edition, the book is available in PDF, EPUB
6978 and Mobi format from the github project page linked to above.</p>
6979
6980 <p>When enabling book store distribution on Lulu.com, I had to nearly
6981 triple the price to allow the book stores some profit. I also had to
6982 accept that I will get some revenue when a book is sold via Lulu.com.
6983 But because of the non-commercial clause in the book license
6984 (CC-BY-NC), this might be a problem. To bypass the problem I
6985 discussed how to handle the revenue with the author, and we agreed
6986 that the revenue for these editions go to the
6987 <a href="https://creativecommons.org/">Creative Commons non-profit
6988 Corporation</a> who handle donations to the Creative Commons project.
6989 So far they have earned around USD 70 on sales of the
6990 <a href="http://www.lulu.com/shop/lawrence-lessig/free-culture/paperback/product-22440520.html">English</a>
6991 and
6992 <a href="http://www.lulu.com/shop/lawrence-lessig/fri-kultur/paperback/product-22441576.html">Norwegian
6993 Bokmål</a> editions, according to Lulu.com. They will get the revenue
6994 for the French edition too. Their revenue is higher if you buy the
6995 book directly from Lulu.com instead of via a book store, so I
6996 recommend you buy directly from Lulu.com.</p>
6997
6998 <p>Perhaps you would like to get the book published in your language?
6999 The translation is done using a web based translator service, so the
7000 technical bar to enter is fairly low. Get in touch if you would like
7001 to make this happen.</p>
7002
7003 </div>
7004 <div class="tags">
7005
7006
7007 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>.
7008
7009
7010 </div>
7011 </div>
7012 <div class="padding"></div>
7013
7014 <div class="entry">
7015 <div class="title">
7016 <a href="http://people.skolelinux.org/pere/blog/Lets_make_a_Norwegian_Bokm_l_edition_of_The_Debian_Administrator_s_Handbook.html">Lets make a Norwegian Bokmål edition of The Debian Administrator's Handbook</a>
7017 </div>
7018 <div class="date">
7019 10th April 2016
7020 </div>
7021 <div class="body">
7022 <p>During this weekends
7023 <a href="http://www.nuug.no/news/Oslo__Takk_for_feilfiksingsfesten.shtml">bug
7024 squashing party and developer gathering</a>, we decided to do our part
7025 to make sure there are good books about Debian available in Norwegian
7026 Bokmål, and got in touch with the people behind the
7027 <a href="http://debian-handbook.info/">Debian Administrator's Handbook
7028 project</a> to get started. If you want to help out, please start
7029 contributing using
7030 <a href="https://hosted.weblate.org/projects/debian-handbook/">the
7031 hosted weblate project page</a>, and get in touch using
7032 <a href="http://lists.alioth.debian.org/mailman/listinfo/debian-handbook-translators">the
7033 translators mailing list</a>. Please also check out
7034 <a href="https://debian-handbook.info/contribute/">the instructions for
7035 contributors</a>.</p>
7036
7037 <p>The book is already available on paper in English, French and
7038 Japanese, and our goal is to get it available on paper in Norwegian
7039 Bokmål too. In addition to the paper edition, there are also EPUB and
7040 Mobi versions available. And there are incomplete translations
7041 available for many more languages.</p>
7042
7043 </div>
7044 <div class="tags">
7045
7046
7047 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian-handbook">debian-handbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
7048
7049
7050 </div>
7051 </div>
7052 <div class="padding"></div>
7053
7054 <div class="entry">
7055 <div class="title">
7056 <a href="http://people.skolelinux.org/pere/blog/One_in_two_hundred_Debian_users_using_ZFS_on_Linux_.html">One in two hundred Debian users using ZFS on Linux?</a>
7057 </div>
7058 <div class="date">
7059 7th April 2016
7060 </div>
7061 <div class="body">
7062 <p>Just for fun I had a look at the popcon number of ZFS related
7063 packages in Debian, and was quite surprised with what I found. I use
7064 ZFS myself at home, but did not really expect many others to do so.
7065 But I might be wrong.</p>
7066
7067 <p>According to
7068 <a href="https://qa.debian.org/popcon.php?package=spl-linux">the popcon
7069 results for spl-linux</a>, there are 1019 Debian installations, or
7070 0.53% of the population, with the package installed. As far as I know
7071 the only use of the spl-linux package is as a support library for ZFS
7072 on Linux, so I use it here as proxy for measuring the number of ZFS
7073 installation on Linux in Debian. In the kFreeBSD variant of Debian
7074 the ZFS feature is already available, and there
7075 <a href="https://qa.debian.org/popcon.php?package=zfsutils">the popcon
7076 results for zfsutils</a> show 1625 Debian installations or 0.84% of
7077 the population. So I guess I am not alone in using ZFS on Debian.</p>
7078
7079 <p>But even though the Debian project leader Lucas Nussbaum
7080 <a href="https://lists.debian.org/debian-devel-announce/2015/04/msg00006.html">announced
7081 in April 2015</a> that the legal obstacles blocking ZFS on Debian were
7082 cleared, the package is still not in Debian. The package is again in
7083 the NEW queue. Several uploads have been rejected so far because the
7084 debian/copyright file was incomplete or wrong, but there is no reason
7085 to give up. The current status can be seen on
7086 <a href="https://qa.debian.org/developer.php?login=pkg-zfsonlinux-devel@lists.alioth.debian.org">the
7087 team status page</a>, and
7088 <a href="http://anonscm.debian.org/gitweb/?p=pkg-zfsonlinux/zfs.git">the
7089 source code</a> is available on Alioth.</p>
7090
7091 <p>As I want ZFS to be included in next version of Debian to make sure
7092 my home server can function in the future using only official Debian
7093 packages, and the current blocker is to get the debian/copyright file
7094 accepted by the FTP masters in Debian, I decided a while back to try
7095 to help out the team. This was the background for my blog post about
7096 <a href="http://people.skolelinux.org/pere/blog/Creating__updating_and_checking_debian_copyright_semi_automatically.html">creating,
7097 updating and checking debian/copyright semi-automatically</a>, and I
7098 used the techniques I explored there to try to find any errors in the
7099 copyright file. It is not very easy to check every one of the around
7100 2000 files in the source package, but I hope we this time got it
7101 right. If you want to help out, check out the git source and try to
7102 find missing entries in the debian/copyright file.</p>
7103
7104 </div>
7105 <div class="tags">
7106
7107
7108 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>.
7109
7110
7111 </div>
7112 </div>
7113 <div class="padding"></div>
7114
7115 <div class="entry">
7116 <div class="title">
7117 <a href="http://people.skolelinux.org/pere/blog/syslog_trusted_timestamp___chain_of_trusted_timestamps_for_your_syslog.html">syslog-trusted-timestamp - chain of trusted timestamps for your syslog</a>
7118 </div>
7119 <div class="date">
7120 2nd April 2016
7121 </div>
7122 <div class="body">
7123 <p>Two years ago, I had
7124 <a href="http://people.skolelinux.org/pere/blog/Public_Trusted_Timestamping_services_for_everyone.html">a
7125 look at trusted timestamping options available</a>, and among
7126 other things noted a still open
7127 <a href="https://bugs.debian.org/742553">bug in the tsget script</a>
7128 included in openssl that made it harder than necessary to use openssl
7129 as a trusted timestamping client. A few days ago I was told
7130 <a href="https:/www.difi.no/">the Norwegian government office DIFI</a> is
7131 close to releasing their own trusted timestamp service, and in the
7132 process I was happy to learn about a replacement for the tsget script
7133 using only curl:</p>
7134
7135 <p><pre>
7136 openssl ts -query -data "/etc/shells" -cert -sha256 -no_nonce \
7137 | curl -s -H "Content-Type: application/timestamp-query" \
7138 --data-binary "@-" http://zeitstempel.dfn.de > etc-shells.tsr
7139 openssl ts -reply -text -in etc-shells.tsr
7140 </pre></p>
7141
7142 <p>This produces a binary timestamp file (etc-shells.tsr) which can be
7143 used to verify that the content of the file /etc/shell with the
7144 calculated sha256 hash existed at the point in time when the request
7145 was made. The last command extract the content of the etc-shells.tsr
7146 in human readable form. The idea behind such timestamp is to be able
7147 to prove using cryptography that the content of a file have not
7148 changed since the file was stamped.</p>
7149
7150 <p>To verify that the file on disk match the public key signature in
7151 the timestamp file, run the following commands. It make sure you have
7152 the required certificate for the trusted timestamp service available
7153 and use it to compare the file content with the timestamp. In
7154 production, one should of course use a better method to verify the
7155 service certificate.</p>
7156
7157 <p><pre>
7158 wget -O ca-cert.txt https://pki.pca.dfn.de/global-services-ca/pub/cacert/chain.txt
7159 openssl ts -verify -data /etc/shells -in etc-shells.tsr -CAfile ca-cert.txt -text
7160 </pre></p>
7161
7162 <p>Wikipedia have a lot more information about
7163 <a href="https://en.wikipedia.org/wiki/Trusted_timestamping">trusted
7164 Timestamping</a> and
7165 <a href="https://en.wikipedia.org/wiki/Linked_timestamping">linked
7166 timestamping</a>, and there are several trusted timestamping services
7167 around, both as commercial services and as free and public services.
7168 Among the latter is
7169 <a href="https://www.pki.dfn.de/zeitstempeldienst/">the
7170 zeitstempel.dfn.de service</a> mentioned above and
7171 <a href="https://freetsa.org/">freetsa.org service</a> linked to from the
7172 wikipedia web site. I believe the DIFI service should show up on
7173 https://tsa.difi.no, but it is not available to the public at the
7174 moment. I hope this will change when it is into production. The
7175 <a href="https://tools.ietf.org/html/rfc3161">RFC 3161</a> trusted
7176 timestamping protocol standard is even implemented in LibreOffice,
7177 Microsoft Office and Adobe Acrobat, making it possible to verify when
7178 a document was created.</p>
7179
7180 <p>I would find it useful to be able to use such trusted timestamp
7181 service to make it possible to verify that my stored syslog files have
7182 not been tampered with. This is not a new idea. I found one example
7183 implemented on the Endian network appliances where
7184 <a href="http://help.endian.com/entries/21518508-Enabling-Timestamping-on-log-files-">the
7185 configuration of such feature was described in 2012</a>.</p>
7186
7187 <p>But I could not find any free implementation of such feature when I
7188 searched, so I decided to try to
7189 <a href="https://github.com/petterreinholdtsen/syslog-trusted-timestamp">build
7190 a prototype named syslog-trusted-timestamp</a>. My idea is to
7191 generate a timestamp of the old log files after they are rotated, and
7192 store the timestamp in the new log file just after rotation. This
7193 will form a chain that would make it possible to see if any old log
7194 files are tampered with. But syslog is bad at handling kilobytes of
7195 binary data, so I decided to base64 encode the timestamp and add an ID
7196 and line sequence numbers to the base64 data to make it possible to
7197 reassemble the timestamp file again. To use it, simply run it like
7198 this:
7199
7200 <p><pre>
7201 syslog-trusted-timestamp /path/to/list-of-log-files
7202 </pre></p>
7203
7204 <p>This will send a timestamp from one or more timestamp services (not
7205 yet decided nor implemented) for each listed file to the syslog using
7206 logger(1). To verify the timestamp, the same program is used with the
7207 --verify option:</p>
7208
7209 <p><pre>
7210 syslog-trusted-timestamp --verify /path/to/log-file /path/to/log-with-timestamp
7211 </pre></p>
7212
7213 <p>The verification step is not yet well designed. The current
7214 implementation depend on the file path being unique and unchanging,
7215 and this is not a solid assumption. It also uses process number as
7216 timestamp ID, and this is bound to create ID collisions. I hope to
7217 have time to come up with a better way to handle timestamp IDs and
7218 verification later.</p>
7219
7220 <p>Please check out
7221 <a href="https://github.com/petterreinholdtsen/syslog-trusted-timestamp">the
7222 prototype for syslog-trusted-timestamp on github</a> and send
7223 suggestions and improvement, or let me know if there already exist a
7224 similar system for timestamping logs already to allow me to join
7225 forces with others with the same interest.</p>
7226
7227 <p>As usual, if you use Bitcoin and want to show your support of my
7228 activities, please send Bitcoin donations to my address
7229 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
7230
7231 </div>
7232 <div class="tags">
7233
7234
7235 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>.
7236
7237
7238 </div>
7239 </div>
7240 <div class="padding"></div>
7241
7242 <div class="entry">
7243 <div class="title">
7244 <a href="http://people.skolelinux.org/pere/blog/Full_battery_stats_collector_is_now_available_in_Debian.html">Full battery stats collector is now available in Debian</a>
7245 </div>
7246 <div class="date">
7247 23rd March 2016
7248 </div>
7249 <div class="body">
7250 <p>Since this morning, the battery-stats package in Debian include an
7251 extended collector that will collect the complete battery history for
7252 later processing and graphing. The original collector store the
7253 battery level as percentage of last full level, while the new
7254 collector also record battery vendor, model, serial number, design
7255 full level, last full level and current battery level. This make it
7256 possible to predict the lifetime of the battery as well as visualise
7257 the energy flow when the battery is charging or discharging.</p>
7258
7259 <p>The new tools are available in <tt>/usr/share/battery-stats/</tt>
7260 in the version 0.5.1 package in unstable. Get the new battery level graph
7261 and lifetime prediction by running:
7262
7263 <p><pre>
7264 /usr/share/battery-stats/battery-stats-graph /var/log/battery-stats.csv
7265 </pre></p>
7266
7267 <p>Or select the 'Battery Level Graph' from your application menu.</p>
7268
7269 <p>The flow in/out of the battery can be seen by running (no menu
7270 entry yet):</p>
7271
7272 <p><pre>
7273 /usr/share/battery-stats/battery-stats-graph-flow
7274 </pre></p>
7275
7276 <p>I'm not quite happy with the way the data is visualised, at least
7277 when there are few data points. The graphs look a bit better with a
7278 few years of data.</p>
7279
7280 <p>A while back one important feature I use in the battery stats
7281 collector broke in Debian. The scripts in
7282 <tt>/usr/lib/pm-utils/power.d/</tt> were no longer executed. I
7283 suspect it happened when Jessie started using systemd, but I do not
7284 know. The issue is reported as
7285 <a href="https://bugs.debian.org/818649">bug #818649</a> against
7286 pm-utils. I managed to work around it by adding an udev rule to call
7287 the collector script every time the power connector is connected and
7288 disconnected. With this fix in place it was finally time to make a
7289 new release of the package, and get it into Debian.</p>
7290
7291 <p>If you are interested in how your laptop battery is doing, please
7292 check out the
7293 <a href="https://tracker.debian.org/pkg/battery-stats">battery-stats</a>
7294 in Debian unstable, or rebuild it on Jessie to get it working on
7295 Debian stable. :) The upstream source is available from
7296 <a href="https://github.com/petterreinholdtsen/battery-stats">github</a>.
7297 As always, patches are very welcome.</p>
7298
7299 </div>
7300 <div class="tags">
7301
7302
7303 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>.
7304
7305
7306 </div>
7307 </div>
7308 <div class="padding"></div>
7309
7310 <div class="entry">
7311 <div class="title">
7312 <a href="http://people.skolelinux.org/pere/blog/UsingQR____Electronic__paper_invoices_using_JSON_and_QR_codes.html">UsingQR - "Electronic" paper invoices using JSON and QR codes</a>
7313 </div>
7314 <div class="date">
7315 19th March 2016
7316 </div>
7317 <div class="body">
7318 <p>Back in 2013 I proposed
7319 <a href="http://people.skolelinux.org/pere/blog/_Electronic__paper_invoices___using_vCard_in_a_QR_code.html">a
7320 way to make paper and PDF invoices easier to process electronically by
7321 adding a QR code with the key information about the invoice</a>. I
7322 suggested using vCard field definition, to get some standard format
7323 for name and address, but any format would work. I did not do
7324 anything about the proposal, but hoped someone one day would make
7325 something like it. It would make it possible to efficiently send
7326 machine readable invoices directly between seller and buyer.</p>
7327
7328 <p>This was the background when I came across a proposal and
7329 specification from the web based accounting and invoicing supplier
7330 <a href="http://www.visma.com/">Visma</a> in Sweden called
7331 <a href="http://usingqr.com/">UsingQR</a>. Their PDF invoices contain
7332 a QR code with the key information of the invoice in JSON format.
7333 This is the typical content of a QR code following the UsingQR
7334 specification (based on a real world example, some numbers replaced to
7335 get a more bogus entry). I've reformatted the JSON to make it easier
7336 to read. Normally this is all on one long line:</p>
7337
7338 <p><img src="http://people.skolelinux.org/pere/blog/images/2016-03-19-qr-invoice.png" align="right"><pre>
7339 {
7340 "vh":500.00,
7341 "vm":0,
7342 "vl":0,
7343 "uqr":1,
7344 "tp":1,
7345 "nme":"Din Leverandør",
7346 "cc":"NO",
7347 "cid":"997912345 MVA",
7348 "iref":"12300001",
7349 "idt":"20151022",
7350 "ddt":"20151105",
7351 "due":2500.0000,
7352 "cur":"NOK",
7353 "pt":"BBAN",
7354 "acc":"17202612345",
7355 "bc":"BIENNOK1",
7356 "adr":"0313 OSLO"
7357 }
7358 </pre></p>
7359
7360 </p>The interpretation of the fields can be found in the
7361 <a href="http://usingqr.com/wp-content/uploads/2014/06/UsingQR_specification1.pdf">format
7362 specification</a> (revision 2 from june 2014). The format seem to
7363 have most of the information needed to handle accounting and payment
7364 of invoices, at least the fields I have needed so far here in
7365 Norway.</p>
7366
7367 <p>Unfortunately, the site and document do not mention anything about
7368 the patent, trademark and copyright status of the format and the
7369 specification. Because of this, I asked the people behind it back in
7370 November to clarify. Ann-Christine Savlid (ann-christine.savlid (at)
7371 visma.com) replied that Visma had not applied for patent or trademark
7372 protection for this format, and that there were no copyright based
7373 usage limitations for the format. I urged her to make sure this was
7374 explicitly written on the web pages and in the specification, but
7375 unfortunately this has not happened yet. So I guess if there is
7376 submarine patents, hidden trademarks or a will to sue for copyright
7377 infringements, those starting to use the UsingQR format might be at
7378 risk, but if this happen there is some legal defense in the fact that
7379 the people behind the format claimed it was safe to do so. At least
7380 with patents, there is always
7381 <a href="http://www.paperspecs.com/paper-news/beware-the-qr-code-patent-trap/">a
7382 chance of getting sued...</a></p>
7383
7384 <p>I also asked if they planned to maintain the format in an
7385 independent standard organization to give others more confidence that
7386 they would participate in the standardization process on equal terms
7387 with Visma, but they had no immediate plans for this. Their plan was
7388 to work with banks to try to get more users of the format, and
7389 evaluate the way forward if the format proved to be popular. I hope
7390 they conclude that using an open standard organisation like
7391 <a href="http://www.ietf.org/">IETF</a> is the correct place to
7392 maintain such specification.</p>
7393
7394 <p><strong>Update 2016-03-20</strong>: Via Twitter I became aware of
7395 <a href="https://news.ycombinator.com/item?id=11319492">some comments
7396 about this blog post</a> that had several useful links and references to
7397 similar systems. In the Czech republic, the Czech Banking Association
7398 standard #26, with short name SPAYD, uses QR codes with payment
7399 information. More information is available from the Wikipedia page on
7400 <a href="https://en.wikipedia.org/wiki/Short_Payment_Descriptor">Short
7401 Payment Descriptor</a>. And in Germany, there is a system named
7402 <a href="http://www.bezahlcode.de/">BezahlCode</a>,
7403 (<a href="http://www.bezahlcode.de/wp-content/uploads/BezahlCode_TechDok.pdf">specification
7404 v1.8 2013-12-05 available as PDF</a>), which uses QR codes with
7405 URL-like formatting using "bank:" as the URI schema/protocol to
7406 provide the payment information. There is also the
7407 <a href="http://www.ferd-net.de/front_content.php?idcat=231">ZUGFeRD</a>
7408 file format that perhaps could be transfered using QR codes, but I am
7409 not sure if it is done already. Last, in Bolivia there are reports
7410 that tax information since november 2014 need to be printed in QR
7411 format on invoices. I have not been able to track down a
7412 specification for this format, because of my limited language skill
7413 sets.</p>
7414
7415 </div>
7416 <div class="tags">
7417
7418
7419 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>.
7420
7421
7422 </div>
7423 </div>
7424 <div class="padding"></div>
7425
7426 <div class="entry">
7427 <div class="title">
7428 <a href="http://people.skolelinux.org/pere/blog/Making_battery_measurements_a_little_easier_in_Debian.html">Making battery measurements a little easier in Debian</a>
7429 </div>
7430 <div class="date">
7431 15th March 2016
7432 </div>
7433 <div class="body">
7434 <p>Back in September, I blogged about
7435 <a href="http://people.skolelinux.org/pere/blog/The_life_and_death_of_a_laptop_battery.html">the
7436 system I wrote to collect statistics about my laptop battery</a>, and
7437 how it showed the decay and death of this battery (now replaced). I
7438 created a simple deb package to handle the collection and graphing,
7439 but did not want to upload it to Debian as there were already
7440 <a href="https://tracker.debian.org/pkg/battery-stats">a battery-stats
7441 package in Debian</a> that should do the same thing, and I did not see
7442 a point of uploading a competing package when battery-stats could be
7443 fixed instead. I reported a few bugs about its non-function, and
7444 hoped someone would step in and fix it. But no-one did.</p>
7445
7446 <p>I got tired of waiting a few days ago, and took matters in my own
7447 hands. The end result is that I am now the new upstream developer of
7448 battery stats (<a href="https://github.com/petterreinholdtsen/battery-stats">available from github</a>) and part of the team maintaining
7449 battery-stats in Debian, and the package in Debian unstable is finally
7450 able to collect battery status using the <tt>/sys/class/power_supply/</tt>
7451 information provided by the Linux kernel. If you install the
7452 battery-stats package from unstable now, you will be able to get a
7453 graph of the current battery fill level, to get some idea about the
7454 status of the battery. The source package build and work just fine in
7455 Debian testing and stable (and probably oldstable too, but I have not
7456 tested). The default graph you get for that system look like this:</p>
7457
7458 <p align="center"><img src="http://people.skolelinux.org/pere/blog/images/2016-03-15-battery-stats-graph-example.png" width="70%" align="center"></p>
7459
7460 <p>My plans for the future is to merge my old scripts into the
7461 battery-stats package, as my old scripts collected a lot more details
7462 about the battery. The scripts are merged into the upstream
7463 battery-stats git repository already, but I am not convinced they work
7464 yet, as I changed a lot of paths along the way. Will have to test a
7465 bit more before I make a new release.</p>
7466
7467 <p>I will also consider changing the file format slightly, as I
7468 suspect the way I combine several values into one field might make it
7469 impossible to know the type of the value when using it for processing
7470 and graphing.</p>
7471
7472 <p>If you would like I would like to keep an close eye on your laptop
7473 battery, check out the battery-stats package in
7474 <a href="https://tracker.debian.org/pkg/battery-stats">Debian</a> and
7475 on
7476 <a href="https://github.com/petterreinholdtsen/battery-stats">github</a>.
7477 I would love some help to improve the system further.</p>
7478
7479 </div>
7480 <div class="tags">
7481
7482
7483 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>.
7484
7485
7486 </div>
7487 </div>
7488 <div class="padding"></div>
7489
7490 <div class="entry">
7491 <div class="title">
7492 <a href="http://people.skolelinux.org/pere/blog/Creating__updating_and_checking_debian_copyright_semi_automatically.html">Creating, updating and checking debian/copyright semi-automatically</a>
7493 </div>
7494 <div class="date">
7495 19th February 2016
7496 </div>
7497 <div class="body">
7498 <p>Making packages for Debian requires quite a lot of attention to
7499 details. And one of the details is the content of the
7500 debian/copyright file, which should list all relevant licenses used by
7501 the code in the package in question, preferably in
7502 <a href="https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/">machine
7503 readable DEP5 format</a>.</p>
7504
7505 <p>For large packages with lots of contributors it is hard to write
7506 and update this file manually, and if you get some detail wrong, the
7507 package is normally rejected by the ftpmasters. So getting it right
7508 the first time around get the package into Debian faster, and save
7509 both you and the ftpmasters some work.. Today, while trying to figure
7510 out what was wrong with
7511 <a href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=686447">the
7512 zfsonlinux copyright file</a>, I decided to spend some time on
7513 figuring out the options for doing this job automatically, or at least
7514 semi-automatically.</p>
7515
7516 <p>Lucikly, there are at least two tools available for generating the
7517 file based on the code in the source package,
7518 <tt><a href="https://tracker.debian.org/pkg/debmake">debmake</a></tt>
7519 and <tt><a href="https://tracker.debian.org/pkg/cme">cme</a></tt>. I'm
7520 not sure which one of them came first, but both seem to be able to
7521 create a sensible draft file. As far as I can tell, none of them can
7522 be trusted to get the result just right, so the content need to be
7523 polished a bit before the file is OK to upload. I found the debmake
7524 option in
7525 <a href="http://goofying-with-debian.blogspot.com/2014/07/debmake-checking-source-against-dep-5.html">a
7526 blog posts from 2014</a>.
7527
7528 <p>To generate using debmake, use the -cc option:
7529
7530 <p><pre>
7531 debmake -cc > debian/copyright
7532 </pre></p>
7533
7534 <p>Note there are some problems with python and non-ASCII names, so
7535 this might not be the best option.</p>
7536
7537 <p>The cme option is based on a config parsing library, and I found
7538 this approach in
7539 <a href="https://ddumont.wordpress.com/2015/04/05/improving-creation-of-debian-copyright-file/">a
7540 blog post from 2015</a>. To generate using cme, use the 'update
7541 dpkg-copyright' option:
7542
7543 <p><pre>
7544 cme update dpkg-copyright
7545 </pre></p>
7546
7547 <p>This will create or update debian/copyright. The cme tool seem to
7548 handle UTF-8 names better than debmake.</p>
7549
7550 <p>When the copyright file is created, I would also like some help to
7551 check if the file is correct. For this I found two good options,
7552 <tt>debmake -k</tt> and <tt>license-reconcile</tt>. The former seem
7553 to focus on license types and file matching, and is able to detect
7554 ineffective blocks in the copyright file. The latter reports missing
7555 copyright holders and years, but was confused by inconsistent license
7556 names (like CDDL vs. CDDL-1.0). I suspect it is good to use both and
7557 fix all issues reported by them before uploading. But I do not know
7558 if the tools and the ftpmasters agree on what is important to fix in a
7559 copyright file, so the package might still be rejected.</p>
7560
7561 <p>The devscripts tool <tt>licensecheck</tt> deserve mentioning. It
7562 will read through the source and try to find all copyright statements.
7563 It is not comparing the result to the content of debian/copyright, but
7564 can be useful when verifying the content of the copyright file.</p>
7565
7566 <p>Are you aware of better tools in Debian to create and update
7567 debian/copyright file. Please let me know, or blog about it on
7568 planet.debian.org.</p>
7569
7570 <p>As usual, if you use Bitcoin and want to show your support of my
7571 activities, please send Bitcoin donations to my address
7572 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
7573
7574 <p><strong>Update 2016-02-20</strong>: I got a tip from Mike Gabriel
7575 on how to use licensecheck and cdbs to create a draft copyright file
7576
7577 <p><pre>
7578 licensecheck --copyright -r `find * -type f` | \
7579 /usr/lib/cdbs/licensecheck2dep5 > debian/copyright.auto
7580 </pre></p>
7581
7582 <p>He mentioned that he normally check the generated file into the
7583 version control system to make it easier to discover license and
7584 copyright changes in the upstream source. I will try to do the same
7585 with my packages in the future.</p>
7586
7587 <p><strong>Update 2016-02-21</strong>: The cme author recommended
7588 against using -quiet for new users, so I removed it from the proposed
7589 command line.</p>
7590
7591 </div>
7592 <div class="tags">
7593
7594
7595 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>.
7596
7597
7598 </div>
7599 </div>
7600 <div class="padding"></div>
7601
7602 <div class="entry">
7603 <div class="title">
7604 <a href="http://people.skolelinux.org/pere/blog/Using_appstream_in_Debian_to_locate_packages_with_firmware_and_mime_type_support.html">Using appstream in Debian to locate packages with firmware and mime type support</a>
7605 </div>
7606 <div class="date">
7607 4th February 2016
7608 </div>
7609 <div class="body">
7610 <p>The <a href="https://wiki.debian.org/DEP-11">appstream system</a>
7611 is taking shape in Debian, and one provided feature is a very
7612 convenient way to tell you which package to install to make a given
7613 firmware file available when the kernel is looking for it. This can
7614 be done using apt-file too, but that is for someone else to blog
7615 about. :)</p>
7616
7617 <p>Here is a small recipe to find the package with a given firmware
7618 file, in this example I am looking for ctfw-3.2.3.0.bin, randomly
7619 picked from the set of firmware announced using appstream in Debian
7620 unstable. In general you would be looking for the firmware requested
7621 by the kernel during kernel module loading. To find the package
7622 providing the example file, do like this:</p>
7623
7624 <blockquote><pre>
7625 % apt install appstream
7626 [...]
7627 % apt update
7628 [...]
7629 % appstreamcli what-provides firmware:runtime ctfw-3.2.3.0.bin | \
7630 awk '/Package:/ {print $2}'
7631 firmware-qlogic
7632 %
7633 </pre></blockquote>
7634
7635 <p>See <a href="https://wiki.debian.org/AppStream/Guidelines">the
7636 appstream wiki</a> page to learn how to embed the package metadata in
7637 a way appstream can use.</p>
7638
7639 <p>This same approach can be used to find any package supporting a
7640 given MIME type. This is very useful when you get a file you do not
7641 know how to handle. First find the mime type using <tt>file
7642 --mime-type</tt>, and next look up the package providing support for
7643 it. Lets say you got an SVG file. Its MIME type is image/svg+xml,
7644 and you can find all packages handling this type like this:</p>
7645
7646 <blockquote><pre>
7647 % apt install appstream
7648 [...]
7649 % apt update
7650 [...]
7651 % appstreamcli what-provides mimetype image/svg+xml | \
7652 awk '/Package:/ {print $2}'
7653 bkchem
7654 phototonic
7655 inkscape
7656 shutter
7657 tetzle
7658 geeqie
7659 xia
7660 pinta
7661 gthumb
7662 karbon
7663 comix
7664 mirage
7665 viewnior
7666 postr
7667 ristretto
7668 kolourpaint4
7669 eog
7670 eom
7671 gimagereader
7672 midori
7673 %
7674 </pre></blockquote>
7675
7676 <p>I believe the MIME types are fetched from the desktop file for
7677 packages providing appstream metadata.</p>
7678
7679 </div>
7680 <div class="tags">
7681
7682
7683 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>.
7684
7685
7686 </div>
7687 </div>
7688 <div class="padding"></div>
7689
7690 <div class="entry">
7691 <div class="title">
7692 <a href="http://people.skolelinux.org/pere/blog/Creepy__visualise_geotagged_social_media_information___nice_free_software.html">Creepy, visualise geotagged social media information - nice free software</a>
7693 </div>
7694 <div class="date">
7695 24th January 2016
7696 </div>
7697 <div class="body">
7698 <p>Most people seem not to realise that every time they walk around
7699 with the computerised radio beacon known as a mobile phone their
7700 position is tracked by the phone company and often stored for a long
7701 time (like every time a SMS is received or sent). And if their
7702 computerised radio beacon is capable of running programs (often called
7703 mobile apps) downloaded from the Internet, these programs are often
7704 also capable of tracking their location (if the app requested access
7705 during installation). And when these programs send out information to
7706 central collection points, the location is often included, unless
7707 extra care is taken to not send the location. The provided
7708 information is used by several entities, for good and bad (what is
7709 good and bad, depend on your point of view). What is certain, is that
7710 the private sphere and the right to free movement is challenged and
7711 perhaps even eradicated for those announcing their location this way,
7712 when they share their whereabouts with private and public
7713 entities.</p>
7714
7715 <p align="center"><img width="70%" src="http://people.skolelinux.org/pere/blog/images/2016-01-24-nice-creepy-desktop-window.png"></p>
7716
7717 <p>The phone company logs provide a register of locations to check out
7718 when one want to figure out what the tracked person was doing. It is
7719 unavailable for most of us, but provided to selected government
7720 officials, company staff, those illegally buying information from
7721 unfaithful servants and crackers stealing the information. But the
7722 public information can be collected and analysed, and a free software
7723 tool to do so is called
7724 <a href="http://www.geocreepy.com/">Creepy or Cree.py</a>. I
7725 discovered it when I read
7726 <a href="http://www.aftenposten.no/kultur/Slik-kan-du-bli-overvaket-pa-Twitter-og-Instagram-uten-a-ane-det-7787884.html">an
7727 article about Creepy</a> in the Norwegian newspaper Aftenposten i
7728 November 2014, and decided to check if it was available in Debian.
7729 The python program was in Debian, but
7730 <a href="https://tracker.debian.org/pkg/creepy">the version in
7731 Debian</a> was completely broken and practically unmaintained. I
7732 uploaded a new version which did not work quite right, but did not
7733 have time to fix it then. This Christmas I decided to finally try to
7734 get Creepy operational in Debian. Now a fixed version is available in
7735 Debian unstable and testing, and almost all Debian specific patches
7736 are now included
7737 <a href="https://github.com/jkakavas/creepy">upstream</a>.</p>
7738
7739 <p>The Creepy program visualises geolocation information fetched from
7740 Twitter, Instagram, Flickr and Google+, and allow one to get a
7741 complete picture of every social media message posted recently in a
7742 given area, or track the movement of a given individual across all
7743 these services. Earlier it was possible to use the search API of at
7744 least some of these services without identifying oneself, but these
7745 days it is impossible. This mean that to use Creepy, you need to
7746 configure it to log in as yourself on these services, and provide
7747 information to them about your search interests. This should be taken
7748 into account when using Creepy, as it will also share information
7749 about yourself with the services.</p>
7750
7751 <p>The picture above show the twitter messages sent from (or at least
7752 geotagged with a position from) the city centre of Oslo, the capital
7753 of Norway. One useful way to use Creepy is to first look at
7754 information tagged with an area of interest, and next look at all the
7755 information provided by one or more individuals who was in the area.
7756 I tested it by checking out which celebrity provide their location in
7757 twitter messages by checkout out who sent twitter messages near a
7758 Norwegian TV station, and next could track their position over time,
7759 making it possible to locate their home and work place, among other
7760 things. A similar technique have been
7761 <a href="http://www.buzzfeed.com/maxseddon/does-this-soldiers-instagram-account-prove-russia-is-covertl">used
7762 to locate Russian soldiers in Ukraine</a>, and it is both a powerful
7763 tool to discover lying governments, and a useful tool to help people
7764 understand the value of the private information they provide to the
7765 public.</p>
7766
7767 <p>The package is not trivial to backport to Debian Stable/Jessie, as
7768 it depend on several python modules currently missing in Jessie (at
7769 least python-instagram, python-flickrapi and
7770 python-requests-toolbelt).</p>
7771
7772 <p>(I have uploaded
7773 <a href="https://screenshots.debian.net/package/creepy">the image to
7774 screenshots.debian.net</a> and licensed it under the same terms as the
7775 Creepy program in Debian.)</p>
7776
7777 </div>
7778 <div class="tags">
7779
7780
7781 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/nice free software">nice free software</a>.
7782
7783
7784 </div>
7785 </div>
7786 <div class="padding"></div>
7787
7788 <div class="entry">
7789 <div class="title">
7790 <a href="http://people.skolelinux.org/pere/blog/Always_download_Debian_packages_using_Tor___the_simple_recipe.html">Always download Debian packages using Tor - the simple recipe</a>
7791 </div>
7792 <div class="date">
7793 15th January 2016
7794 </div>
7795 <div class="body">
7796 <p>During his DebConf15 keynote, Jacob Appelbaum
7797 <a href="https://summit.debconf.org/debconf15/meeting/331/what-is-to-be-done/">observed
7798 that those listening on the Internet lines would have good reason to
7799 believe a computer have a given security hole</a> if it download a
7800 security fix from a Debian mirror. This is a good reason to always
7801 use encrypted connections to the Debian mirror, to make sure those
7802 listening do not know which IP address to attack. In August, Richard
7803 Hartmann observed that encryption was not enough, when it was possible
7804 to interfere download size to security patches or the fact that
7805 download took place shortly after a security fix was released, and
7806 <a href="http://richardhartmann.de/blog/posts/2015/08/24-Tor-enabled_Debian_mirror/">proposed
7807 to always use Tor to download packages from the Debian mirror</a>. He
7808 was not the first to propose this, as the
7809 <tt><a href="https://tracker.debian.org/pkg/apt-transport-tor">apt-transport-tor</a></tt>
7810 package by Tim Retout already existed to make it easy to convince apt
7811 to use <a href="https://www.torproject.org/">Tor</a>, but I was not
7812 aware of that package when I read the blog post from Richard.</p>
7813
7814 <p>Richard discussed the idea with Peter Palfrader, one of the Debian
7815 sysadmins, and he set up a Tor hidden service on one of the central
7816 Debian mirrors using the address vwakviie2ienjx6t.onion, thus making
7817 it possible to download packages directly between two tor nodes,
7818 making sure the network traffic always were encrypted.</p>
7819
7820 <p>Here is a short recipe for enabling this on your machine, by
7821 installing <tt>apt-transport-tor</tt> and replacing http and https
7822 urls with tor+http and tor+https, and using the hidden service instead
7823 of the official Debian mirror site. I recommend installing
7824 <tt>etckeeper</tt> before you start to have a history of the changes
7825 done in /etc/.</p>
7826
7827 <blockquote><pre>
7828 apt install apt-transport-tor
7829 sed -i 's% http://ftp.debian.org/% tor+http://vwakviie2ienjx6t.onion/%' /etc/apt/sources.list
7830 sed -i 's% http% tor+http%' /etc/apt/sources.list
7831 </pre></blockquote>
7832
7833 <p>If you have more sources listed in /etc/apt/sources.list.d/, run
7834 the sed commands for these too. The sed command is assuming your are
7835 using the ftp.debian.org Debian mirror. Adjust the command (or just
7836 edit the file manually) to match your mirror.</p>
7837
7838 <p>This work in Debian Jessie and later. Note that tools like
7839 <tt>apt-file</tt> only recently started using the apt transport
7840 system, and do not work with these tor+http URLs. For
7841 <tt>apt-file</tt> you need the version currently in experimental,
7842 which need a recent apt version currently only in unstable. So if you
7843 need a working <tt>apt-file</tt>, this is not for you.</p>
7844
7845 <p>Another advantage from this change is that your machine will start
7846 using Tor regularly and at fairly random intervals (every time you
7847 update the package lists or upgrade or install a new package), thus
7848 masking other Tor traffic done from the same machine. Using Tor will
7849 become normal for the machine in question.</p>
7850
7851 <p>On <a href="https://wiki.debian.org/FreedomBox">Freedombox</a>, APT
7852 is set up by default to use <tt>apt-transport-tor</tt> when Tor is
7853 enabled. It would be great if it was the default on any Debian
7854 system.</p>
7855
7856 </div>
7857 <div class="tags">
7858
7859
7860 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/sikkerhet">sikkerhet</a>.
7861
7862
7863 </div>
7864 </div>
7865 <div class="padding"></div>
7866
7867 <div class="entry">
7868 <div class="title">
7869 <a href="http://people.skolelinux.org/pere/blog/OpenALPR__find_car_license_plates_in_video_streams___nice_free_software.html">OpenALPR, find car license plates in video streams - nice free software</a>
7870 </div>
7871 <div class="date">
7872 23rd December 2015
7873 </div>
7874 <div class="body">
7875 <p>When I was a kid, we used to collect "car numbers", as we used to
7876 call the car license plate numbers in those days. I would write the
7877 numbers down in my little book and compare notes with the other kids
7878 to see how many region codes we had seen and if we had seen some
7879 exotic or special region codes and numbers. It was a fun game to pass
7880 time, as we kids have plenty of it.</p>
7881
7882 <p>A few days I came across
7883 <a href="https://github.com/openalpr/openalpr">the OpenALPR
7884 project</a>, a free software project to automatically discover and
7885 report license plates in images and video streams, and provide the
7886 "car numbers" in a machine readable format. I've been looking for
7887 such system for a while now, because I believe it is a bad idea that the
7888 <a href="https://en.wikipedia.org/wiki/Automatic_number_plate_recognition">automatic
7889 number plate recognition</a> tool only is available in the hands of
7890 the powerful, and want it to be available also for the powerless to
7891 even the score when it comes to surveillance and sousveillance. I
7892 discovered the developer
7893 <a href="https://bugs.debian.org/747509">wanted to get the tool into
7894 Debian</a>, and as I too wanted it to be in Debian, I volunteered to
7895 help him get it into shape to get the package uploaded into the Debian
7896 archive.</p>
7897
7898 <p>Today we finally managed to get the package into shape and uploaded
7899 it into Debian, where it currently
7900 <a href="https://ftp-master.debian.org//new/openalpr_2.2.1-1.html">waits
7901 in the NEW queue</a> for review by the Debian ftpmasters.</p>
7902
7903 <p>I guess you are wondering why on earth such tool would be useful
7904 for the common folks, ie those not running a large government
7905 surveillance system? Well, I plan to put it in a computer on my bike
7906 and in my car, tracking the cars nearby and allowing me to be notified
7907 when number plates on my watch list are discovered. Another use case
7908 was suggested by a friend of mine, who wanted to set it up at his home
7909 to open the car port automatically when it discovered the plate on his
7910 car. When I mentioned it perhaps was a bit foolhardy to allow anyone
7911 capable of placing his license plate number of a piece of cardboard to
7912 open his car port, men replied that it was always unlocked anyway. I
7913 guess for such use case it make sense. I am sure there are other use
7914 cases too, for those with imagination and a vision.</p>
7915
7916 <p>If you want to build your own version of the Debian package, check
7917 out the upstream git source and symlink ./distros/debian to ./debian/
7918 before running "debuild" to build the source. Or wait a bit until the
7919 package show up in unstable.</p>
7920
7921 </div>
7922 <div class="tags">
7923
7924
7925 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/nice free software">nice free software</a>.
7926
7927
7928 </div>
7929 </div>
7930 <div class="padding"></div>
7931
7932 <div class="entry">
7933 <div class="title">
7934 <a href="http://people.skolelinux.org/pere/blog/Using_appstream_with_isenkram_to_install_hardware_related_packages_in_Debian.html">Using appstream with isenkram to install hardware related packages in Debian</a>
7935 </div>
7936 <div class="date">
7937 20th December 2015
7938 </div>
7939 <div class="body">
7940 <p>Around three years ago, I created
7941 <a href="http://packages.qa.debian.org/isenkram">the isenkram
7942 system</a> to get a more practical solution in Debian for handing
7943 hardware related packages. A GUI system in the isenkram package will
7944 present a pop-up dialog when some hardware dongle supported by
7945 relevant packages in Debian is inserted into the machine. The same
7946 lookup mechanism to detect packages is available as command line
7947 tools in the isenkram-cli package. In addition to mapping hardware,
7948 it will also map kernel firmware files to packages and make it easy to
7949 install needed firmware packages automatically. The key for this
7950 system to work is a good way to map hardware to packages, in other
7951 words, allow packages to announce what hardware they will work
7952 with.</p>
7953
7954 <p>I started by providing data files in the isenkram source, and
7955 adding code to download the latest version of these data files at run
7956 time, to ensure every user had the most up to date mapping available.
7957 I also added support for storing the mapping in the Packages file in
7958 the apt repositories, but did not push this approach because while I
7959 was trying to figure out how to best store hardware/package mappings,
7960 <a href="http://www.freedesktop.org/software/appstream/docs/">the
7961 appstream system</a> was announced. I got in touch and suggested to
7962 add the hardware mapping into that data set to be able to use
7963 appstream as a data source, and this was accepted at least for the
7964 Debian version of appstream.</p>
7965
7966 <p>A few days ago using appstream in Debian for this became possible,
7967 and today I uploaded a new version 0.20 of isenkram adding support for
7968 appstream as a data source for mapping hardware to packages. The only
7969 package so far using appstream to announce its hardware support is my
7970 pymissile package. I got help from Matthias Klumpp with figuring out
7971 how do add the required
7972 <a href="https://appstream.debian.org/html/sid/main/metainfo/pymissile.html">metadata
7973 in pymissile</a>. I added a file debian/pymissile.metainfo.xml with
7974 this content:</p>
7975
7976 <blockquote><pre>
7977 &lt;?xml version="1.0" encoding="UTF-8"?&gt;
7978 &lt;component&gt;
7979 &lt;id&gt;pymissile&lt;/id&gt;
7980 &lt;metadata_license&gt;MIT&lt;/metadata_license&gt;
7981 &lt;name&gt;pymissile&lt;/name&gt;
7982 &lt;summary&gt;Control original Striker USB Missile Launcher&lt;/summary&gt;
7983 &lt;description&gt;
7984 &lt;p&gt;
7985 Pymissile provides a curses interface to control an original
7986 Marks and Spencer / Striker USB Missile Launcher, as well as a
7987 motion control script to allow a webcamera to control the
7988 launcher.
7989 &lt;/p&gt;
7990 &lt;/description&gt;
7991 &lt;provides&gt;
7992 &lt;modalias&gt;usb:v1130p0202d*&lt;/modalias&gt;
7993 &lt;/provides&gt;
7994 &lt;/component&gt;
7995 </pre></blockquote>
7996
7997 <p>The key for isenkram is the component/provides/modalias value,
7998 which is a glob style match rule for hardware specific strings
7999 (modalias strings) provided by the Linux kernel. In this case, it
8000 will map to all USB devices with vendor code 1130 and product code
8001 0202.</p>
8002
8003 <p>Note, it is important that the license of all the metadata files
8004 are compatible to have permissions to aggregate them into archive wide
8005 appstream files. Matthias suggested to use MIT or BSD licenses for
8006 these files. A challenge is figuring out a good id for the data, as
8007 it is supposed to be globally unique and shared across distributions
8008 (in other words, best to coordinate with upstream what to use). But
8009 it can be changed later or, so we went with the package name as
8010 upstream for this project is dormant.</p>
8011
8012 <p>To get the metadata file installed in the correct location for the
8013 mirror update scripts to pick it up and include its content the
8014 appstream data source, the file must be installed in the binary
8015 package under /usr/share/appdata/. I did this by adding the following
8016 line to debian/pymissile.install:</p>
8017
8018 <blockquote><pre>
8019 debian/pymissile.metainfo.xml usr/share/appdata
8020 </pre></blockquote>
8021
8022 <p>With that in place, the command line tool isenkram-lookup will list
8023 all packages useful on the current computer automatically, and the GUI
8024 pop-up handler will propose to install the package not already
8025 installed if a hardware dongle is inserted into the machine in
8026 question.</p>
8027
8028 <p>Details of the modalias field in appstream is available from the
8029 <a href="https://wiki.debian.org/DEP-11">DEP-11</a> proposal.</p>
8030
8031 <p>To locate the modalias values of all hardware present in a machine,
8032 try running this command on the command line:</p>
8033
8034 <blockquote><pre>
8035 cat $(find /sys/devices/|grep modalias)
8036 </pre></blockquote>
8037
8038 <p>To learn more about the isenkram system, please check out
8039 <a href="http://people.skolelinux.org/pere/blog/tags/isenkram/">my
8040 blog posts tagged isenkram</a>.</p>
8041
8042 </div>
8043 <div class="tags">
8044
8045
8046 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>.
8047
8048
8049 </div>
8050 </div>
8051 <div class="padding"></div>
8052
8053 <div class="entry">
8054 <div class="title">
8055 <a href="http://people.skolelinux.org/pere/blog/The_GNU_General_Public_License_is_not_magic_pixie_dust.html">The GNU General Public License is not magic pixie dust</a>
8056 </div>
8057 <div class="date">
8058 30th November 2015
8059 </div>
8060 <div class="body">
8061 <p>A blog post from my fellow Debian developer Paul Wise titled
8062 "<a href="http://bonedaddy.net/pabs3/log/2015/11/27/sfc-supporter/">The
8063 GPL is not magic pixie dust</a>" explain the importance of making sure
8064 the <a href="http://www.gnu.org/copyleft/gpl.html">GPL</a> is enforced.
8065 I quote the blog post from Paul in full here with his permission:<p>
8066
8067 <blockquote>
8068
8069 <p><a href="https://sfconservancy.org/supporter/"><img src="https://sfconservancy.org/img/supporter-badge.png" width="194" height="90" alt="Become a Software Freedom Conservancy Supporter!" align="right" border="0" /></a></p>
8070
8071 <blockquote>
8072 The GPL is not magic pixie dust. It does not work by itself.<br/>
8073
8074 The first step is to choose a
8075 <a href="https://copyleft.org/">copyleft</a> license for your
8076 code.<br/>
8077
8078 The next step is, when someone fails to follow that copyleft license,
8079 <b>it must be enforced</b><br/>
8080
8081 and its a simple fact of our modern society that such type of
8082 work<br/>
8083
8084 is incredibly expensive to do and incredibly difficult to do.
8085 </blockquote>
8086
8087 <p><small>-- <a href="http://ebb.org/bkuhn/">Bradley Kuhn</a>, in
8088 <a href="http://faif.us/" title="Free as in Freedom">FaiF</a>
8089 <a href="http://faif.us/cast/2015/nov/24/0x57/">episode
8090 0x57</a></small></p>
8091
8092 <p>As the Debian Website
8093 <a href="https://bugs.debian.org/794116">used</a>
8094 <a href="https://anonscm.debian.org/viewvc/webwml/webwml/english/intro/free.wml?r1=1.24&amp;r2=1.25">to</a>
8095 imply, public domain and permissively licensed software can lead to
8096 the production of more proprietary software as people discover useful
8097 software, extend it and or incorporate it into their hardware or
8098 software products. Copyleft licenses such as the GNU GPL were created
8099 to close off this avenue to the production of proprietary software but
8100 such licenses are not enough. With the ongoing adoption of Free
8101 Software by individuals and groups, inevitably the community's
8102 expectations of license compliance are violated, usually out of
8103 ignorance of the way Free Software works, but not always. As Karen
8104 and Bradley explained in <a href="http://faif.us/" title="Free as in
8105 Freedom">FaiF</a>
8106 <a href="http://faif.us/cast/2015/nov/24/0x57/">episode 0x57</a>,
8107 copyleft is nothing if no-one is willing and able to stand up in court
8108 to protect it. The reality of today's world is that legal
8109 representation is expensive, difficult and time consuming. With
8110 <a href="http://gpl-violations.org/">gpl-violations.org</a> in hiatus
8111 <a href="http://gpl-violations.org/news/20151027-homepage-recovers/">until</a>
8112 some time in 2016, the <a href="https://sfconservancy.org/">Software
8113 Freedom Conservancy</a> (a tax-exempt charity) is the major defender
8114 of the Linux project, Debian and other groups against GPL violations.
8115 In March the SFC supported a
8116 <a href="https://sfconservancy.org/news/2015/mar/05/vmware-lawsuit/">lawsuit
8117 by Christoph Hellwig</a> against VMware for refusing to
8118 <a href="https://sfconservancy.org/linux-compliance/vmware-lawsuit-faq.html">comply
8119 with the GPL</a> in relation to their use of parts of the Linux
8120 kernel. Since then two of their sponsors pulled corporate funding and
8121 conferences
8122 <a href="https://sfconservancy.org/blog/2015/nov/24/faif-carols-fundraiser/">blocked
8123 or cancelled their talks</a>. As a result they have decided to rely
8124 less on corporate funding and more on the broad community of
8125 individuals who support Free Software and copyleft. So the SFC has
8126 <a href="https://sfconservancy.org/news/2015/nov/23/2015fundraiser/">launched</a>
8127 a <a href="https://sfconservancy.org/supporter/">campaign</a> to create
8128 a community of folks who stand up for copyleft and the GPL by
8129 supporting their work on promoting and supporting copyleft and Free
8130 Software.</p>
8131
8132 <p>If you support Free Software,
8133 <a href="https://sfconservancy.org/blog/2015/nov/26/like-what-I-do/">like</a>
8134 what the SFC do, agree with their
8135 <a href="https://sfconservancy.org/linux-compliance/principles.html">compliance
8136 principles</a>, are happy about their
8137 <a href="https://sfconservancy.org/supporter/">successes</a> in 2015,
8138 work on a project that is an SFC
8139 <a href="https://sfconservancy.org/members/current/">member</a> and or
8140 just want to stand up for copyleft, please join
8141 <a href="https://identi.ca/cwebber/image/JQGPA4qbTyyp3-MY8QpvuA">Christopher
8142 Allan Webber</a>,
8143 <a href="https://sfconservancy.org/blog/2015/nov/24/faif-carols-fundraiser/">Carol
8144 Smith</a>,
8145 <a href="http://www.jonobacon.org/2015/11/25/supporting-software-freedom-conservancy/">Jono
8146 Bacon</a>, myself and
8147 <a href="https://sfconservancy.org/sponsors/#supporters">others</a> in
8148 becoming a
8149 <a href="https://sfconservancy.org/supporter/">supporter</a>. For the
8150 next week your donation will be
8151 <a href="https://sfconservancy.org/news/2015/nov/27/black-friday/">matched</a>
8152 by an anonymous donor. Please also consider asking your employer to
8153 match your donation or become a sponsor of SFC. Don't forget to
8154 spread the word about your support for SFC via email, your blog and or
8155 social media accounts.</p>
8156
8157 </blockquote>
8158
8159 <p>I agree with Paul on this topic and just signed up as a Supporter
8160 of Software Freedom Conservancy myself. Perhaps you should be a
8161 supporter too?</p>
8162
8163 </div>
8164 <div class="tags">
8165
8166
8167 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>.
8168
8169
8170 </div>
8171 </div>
8172 <div class="padding"></div>
8173
8174 <div class="entry">
8175 <div class="title">
8176 <a href="http://people.skolelinux.org/pere/blog/PGP_key_transition_statement_for_key_EE4E02F9.html">PGP key transition statement for key EE4E02F9</a>
8177 </div>
8178 <div class="date">
8179 17th November 2015
8180 </div>
8181 <div class="body">
8182 <p>I've needed a new OpenPGP key for a while, but have not had time to
8183 set it up properly. I wanted to generate it offline and have it
8184 available on <a href="http://shop.kernelconcepts.de/#openpgp">a OpenPGP
8185 smart card</a> for daily use, and learning how to do it and finding
8186 time to sit down with an offline machine almost took forever. But
8187 finally I've been able to complete the process, and have now moved
8188 from my old GPG key to a new GPG key. See
8189 <a href="http://people.skolelinux.org/pere/blog/images/2015-11-17-new-gpg-key-transition.txt">the
8190 full transition statement, signed with both my old and new key</a> for
8191 the details. This is my new key:</p>
8192
8193 <pre>
8194 pub 3936R/<a href="http://pgp.cs.uu.nl/stats/111D6B29EE4E02F9.html">111D6B29EE4E02F9</a> 2015-11-03 [expires: 2019-11-14]
8195 Key fingerprint = 3AC7 B2E3 ACA5 DF87 78F1 D827 111D 6B29 EE4E 02F9
8196 uid Petter Reinholdtsen &lt;pere@hungry.com&gt;
8197 uid Petter Reinholdtsen &lt;pere@debian.org&gt;
8198 sub 4096R/87BAFB0E 2015-11-03 [expires: 2019-11-02]
8199 sub 4096R/F91E6DE9 2015-11-03 [expires: 2019-11-02]
8200 sub 4096R/A0439BAB 2015-11-03 [expires: 2019-11-02]
8201 </pre>
8202
8203 <p>The key can be downloaded from the OpenPGP key servers, signed by
8204 my old key.</p>
8205
8206 <p>If you signed my old key
8207 (<a href="http://pgp.cs.uu.nl/stats/DB4CCC4B2A30D729.html">DB4CCC4B2A30D729</a>),
8208 I'd very much appreciate a signature on my new key, details and
8209 instructions in the transition statement. I m happy to reciprocate if
8210 you have a similarly signed transition statement to present.</p>
8211
8212 </div>
8213 <div class="tags">
8214
8215
8216 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/sikkerhet">sikkerhet</a>.
8217
8218
8219 </div>
8220 </div>
8221 <div class="padding"></div>
8222
8223 <div class="entry">
8224 <div class="title">
8225 <a href="http://people.skolelinux.org/pere/blog/Is_Pentagon_deciding_the_Norwegian_negotiating_position_on_Internet_governance_.html">Is Pentagon deciding the Norwegian negotiating position on Internet governance?</a>
8226 </div>
8227 <div class="date">
8228 3rd November 2015
8229 </div>
8230 <div class="body">
8231 <p>In Norway, all government offices are required by law to keep a
8232 list of every document or letter arriving and leaving their offices.
8233 Internal notes should also be documented. The document list (called a mail
8234 journal - "postjournal" in Norwegian) is public information and thanks
8235 to the Norwegian Freedom of Information Act (Offentleglova) the mail
8236 journal is available for everyone. Most offices even publish the mail
8237 journal on their web pages, as PDFs or tables in web pages. The state-level offices even have a shared web based search service (called
8238 <a href="https://www.oep.no/">Offentlig Elektronisk Postjournal -
8239 OEP</a>) to make it possible to search the entries in the list. Not
8240 all journal entries show up on OEP, and the search service is hard to
8241 use, but OEP does make it easier to find at least some interesting
8242 journal entries .</p>
8243
8244 <p>In 2012 I came across a document in the mail journal for the
8245 Norwegian Ministry of Transport and Communications on OEP that
8246 piqued my interest. The title of the document was
8247 "<a href="https://www.oep.no/search/resultSingle.html?journalPostId=4192362">Internet
8248 Governance and how it affects national security</a>" (Norwegian:
8249 "Internet Governance og påvirkning på nasjonal sikkerhet"). The
8250 document date was 2012-05-22, and it was said to be sent from the
8251 "Permanent Mission of Norway to the United Nations". I asked for a
8252 copy, but my request was rejected with a reference to a legal clause said to authorize them to reject it
8253 (<a href="http://lovdata.no/lov/2006-05-19-1620">offentleglova § 20,
8254 letter c</a>) and an explanation that the document was exempt because
8255 of foreign policy interests as it contained information related to the
8256 Norwegian negotiating position, negotiating strategies or similar. I
8257 was told the information in the document related to the ongoing
8258 negotiation in the International Telecommunications Union (ITU). The
8259 explanation made sense to me in early January 2013, as a ITU
8260 conference in Dubay discussing Internet Governance
8261 (<a href="https://en.wikipedia.org/wiki/International_Telecommunication_Union#World_Conference_on_International_Telecommunications_2012_.28WCIT-12.29">World
8262 Conference on International Telecommunications - WCIT-12</a>) had just
8263 ended,
8264 <a href="http://www.digi.no/kommentarer/2012/12/18/tvil-om-usas-rolle-pa-teletoppmote">reportedly
8265 in chaos</a> when USA walked out of the negotiations and 25 countries
8266 including Norway refused to sign the new treaty. It seemed
8267 reasonable to believe talks were still going on a few weeks later.
8268 Norway was represented at the ITU meeting by two authorities, the
8269 <a href="http://www.nkom.no/">Norwegian Communications Authority</a>
8270 and the <a href="https://www.regjeringen.no/no/dep/sd/">Ministry of
8271 Transport and Communications</a>. This might be the reason the letter
8272 was sent to the ministry. As I was unable to find the document in the
8273 mail journal of any Norwegian UN mission, I asked the ministry who had
8274 sent the document to the ministry, and was told that it was the Deputy
8275 Permanent Representative with the Permanent Mission of Norway in
8276 Geneva.</p>
8277
8278 <p>Three years later, I was still curious about the content of that
8279 document, and again asked for a copy, believing the negotiation was
8280 over now. This time
8281 <a href="https://mimesbronn.no/request/kopi_av_dokumenter_i_sak_2012914">I
8282 asked both the Ministry of Transport and Communications as the
8283 receiver</a> and
8284 <a href="https://mimesbronn.no/request/brev_om_internet_governance_og_p">asked
8285 the Permanent Mission of Norway in Geneva as the sender</a> for a
8286 copy, to see if they both agreed that it should be withheld from the
8287 public. The ministry upheld its rejection quoting the same law
8288 reference as before, while the permanent mission rejected it quoting a
8289 different clause
8290 (<a href="http://lovdata.no/lov/2006-05-19-1620">offentleglova § 20
8291 letter b</a>), claiming that they were required to keep the
8292 content of the document from the public because it contained
8293 information given to Norway with the expressed or implied expectation
8294 that the information should not be made public. I asked the permanent
8295 mission for an explanation, and was told that the document contained
8296 an account from a meeting held in the Pentagon for a limited group of NATO
8297 nations where the organiser of the meeting did not intend the content
8298 of the meeting to be publicly known. They explained that giving me a
8299 copy might cause Norway to not get access to similar information in
8300 the future and thus hurt the future foreign interests of Norway. They
8301 also explained that the Permanent Mission of Norway in Geneva was not
8302 the author of the document, they only got a copy of it, and because of
8303 this had not listed it in their mail journal.</p>
8304
8305 <p>Armed with this
8306 knowledge I asked the Ministry to reconsider and asked who was the
8307 author of the document, now realising that it was not same as the
8308 "sender" according to Ministry of Transport and Communications. The
8309 ministry upheld its rejection but told me the name of the author of
8310 the document. According to
8311 <a href="https://www.regjeringen.no/no/aktuelt/unga69_rapport1/id2001204/">a
8312 government report</a> the author was with the Permanent Mission of
8313 Norway in New York a bit more than a year later (2014-09-22), so I
8314 guessed that might be the office responsible for writing and sending
8315 the report initially and
8316 <a href="https://www.mimesbronn.no/request/mote_2012_i_pentagon_om_itu">asked
8317 them for a copy</a> but I was obviously wrong as I was told that the
8318 document was unknown to them and that the author did not work there
8319 when the document was written. Next, I asked the Permanent Mission of
8320 Norway in Geneva and the Foreign Ministry to reconsider and at least
8321 tell me who sent the document to Deputy Permanent Representative with
8322 the Permanent Mission of Norway in Geneva. The Foreign Ministry also
8323 upheld its rejection, but told me that the person sending the document
8324 to Permanent Mission of Norway in Geneva was the defence attaché with
8325 the Norwegian Embassy in Washington. I do not know if this is the
8326 same person as the author of the document.</p>
8327
8328 <p>If I understand the situation correctly, someone capable of
8329 inviting selected NATO nations to a meeting in Pentagon organised a
8330 meeting where someone representing the Norwegian defence attaché in
8331 Washington attended, and the account from this meeting is interpreted
8332 by the Ministry of Transport and Communications to expose Norways
8333 negotiating position, negotiating strategies and similar regarding the
8334 ITU negotiations on Internet Governance. It is truly amazing what can
8335 be derived from mere meta-data.</p>
8336
8337 <p>I wonder which NATO countries besides Norway attended this meeting?
8338 And what exactly was said and done at the meeting? Anyone know?</p>
8339
8340 </div>
8341 <div class="tags">
8342
8343
8344 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>.
8345
8346
8347 </div>
8348 </div>
8349 <div class="padding"></div>
8350
8351 <div class="entry">
8352 <div class="title">
8353 <a href="http://people.skolelinux.org/pere/blog/New_book___Fri_kultur__by__lessig__a_Norwegian_Bokm_l_translation_of__Free_Culture__from_2004.html">New book, "Fri kultur" by @lessig, a Norwegian Bokmål translation of "Free Culture" from 2004</a>
8354 </div>
8355 <div class="date">
8356 31st October 2015
8357 </div>
8358 <div class="body">
8359 <p>People keep asking me where to get the various forms of the book I
8360 published last week, the Norwegian Bokmål edition of Lawrence Lessigs
8361 book <a href="http://www.free-culture.cc/">Free Culture</a>. It was
8362 published on paper via lulu.com, and is also available in PDF, ePub
8363 and MOBI format. I currently sell the paper edition for self cost
8364 from lulu.com, but might extend the distribution to book stores like
8365 Amazon and Barnes & Noble later. This will double the price and force
8366 me to make a profit from selling the book. Anyway, here are links to
8367 get the book in different formats:</p>
8368
8369 <ul>
8370
8371 <li><a href="http://www.lulu.com/shop/lawrence-lessig/fri-kultur/paperback/product-22406445.html">Buy
8372 paper edition from lulu.com</a></li>
8373
8374 <li><a href="https://github.com/petterreinholdtsen/free-culture-lessig/raw/master/archive/freeculture.nb.pdf">Download
8375 PDF, size 7.9 MiB</a> (gratis/free)</li>
8376
8377 <li><a href="https://github.com/petterreinholdtsen/free-culture-lessig/raw/master/archive/freeculture.nb.epub">Download
8378 ePub, size 11 MiB</a> (gratis/free)</li>
8379
8380 <li><a href="https://github.com/petterreinholdtsen/free-culture-lessig/raw/master/archive/freeculture.nb.mobi">Download
8381 MOBI, size 3.8 MiB</a> (gratis/free)</li>
8382
8383 </ul>
8384
8385 <p>Note that the MOBI version have problems with the table of content,
8386 at least with the viewers I have been able to test. And the ePub file
8387 have several problems according to
8388 <a href="https://github.com/IDPF/epubcheck">epubcheck</a>, but seem
8389 to display fine in the viewers I have tested. All the files needed to
8390 create the book in various forms are available from
8391 <a href="https://github.com/petterreinholdtsen/free-culture-lessig">the
8392 github project page</a>.</p>
8393
8394 <p>The project got press coverage from the Norwegian IT news site
8395 digi.no. Check out the article
8396 "<a href="http://www.digi.no/juss_og_samfunn/2015/10/29/vil-apne-politikernes-oyne-for-creative-commons">Vil
8397 åpne politikernes øyne for Creative Commons</a>".</li>
8398
8399 <p>I've <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">blogged
8400 about the project</a> as it moved along. The blogs document the translation
8401 progress and insights I had along the way.</p>
8402
8403 </div>
8404 <div class="tags">
8405
8406
8407 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>.
8408
8409
8410 </div>
8411 </div>
8412 <div class="padding"></div>
8413
8414 <div class="entry">
8415 <div class="title">
8416 <a href="http://people.skolelinux.org/pere/blog/_Free_Culture__by__lessig___The_background_story_for_Creative_Commons___new_edition_available.html">"Free Culture" by @lessig - The background story for Creative Commons - new edition available</a>
8417 </div>
8418 <div class="date">
8419 23rd October 2015
8420 </div>
8421 <div class="body">
8422 <p><a href="http://www.lulu.com/shop/lawrence-lessig/free-culture/paperback/product-22402863.html">Click
8423 here to buy the book</a>.</p>
8424
8425 <p>In 2004, as the <a href="https://creativecommons.org/">Creative Commons
8426 movement</a> gained momentum, its creator Lawrence Lessig wrote the
8427 book <a href="https://en.wikipedia.org/wiki/Free_Culture_(book)">Free
8428 Culture</a> to explain the problems with increasing copyright
8429 regulation and suggest some solutions. I read the book back then and
8430 was very moved by it. Reading the book inspired me and changed the
8431 way I looked on copyright law, and I would love it if more people
8432 would read it too.</p>
8433
8434 <p>Because of this, I decided in the summer of 2012 to translate it to
8435 Norwegian Bokmål and publish it for those of my friends and family
8436 that prefer to read books in Norwegian. I translated the book using
8437 docbook and a gettext PO file, and a byproduct of this process is a
8438 new edition of the English original. I've been in touch with the
8439 author during by work, and he said it was fine with him if I also
8440 published an English version. So I decided to do so. Today, I made
8441 this edition
8442 <a href="http://www.lulu.com/shop/lawrence-lessig/free-culture/paperback/product-22402863.html">available
8443 for sale on Lulu.com</a>, for those interested in a paper book. This
8444 is the cover:
8445
8446 <p align="center"><a href="http://www.lulu.com/shop/lawrence-lessig/free-culture/paperback/product-22402863.html"><img align="center" src="http://people.skolelinux.org/pere/blog/images/2015-10-23-free-culture-english-published-cover.png"/></a></p>
8447
8448 <p>The Norwegian Bokmål version will be available for purchase in a
8449 few days. I also plan to publish a French version in a few weeks or
8450 months, depending on the amount of people with knowledge of French to
8451 join the translation project. So far there is only one active
8452 person, but the French book is almost completely translated but
8453 need some proof reading.</p>
8454
8455 <p>The book is also available in PDF, ePub and MOBI formats from
8456 <a href="https://github.com/petterreinholdtsen/free-culture-lessig">my
8457 github project page</a>. Note the ePub and MOBI versions have some
8458 formatting problems I believe is due to bugs in the docbook tool
8459 dbtoepub (Debian BTS issues
8460 <a href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=795842">#795842</a>
8461 and
8462 <a href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=796871">#796871</a>),
8463 but I have not taken the time to investigate. I recommend the PDF and
8464 ePub version for now, as they seem to show up fine in the viewers I
8465 have available.</p>
8466
8467 <p>After the translation to Norwegian Bokmål was complete, I was able
8468 to secure some sponsoring from
8469 <a href="http://www.nuugfoundation.no/">the NUUG Foundation</a> to
8470 print the book. This is the reason their logo is located on the back
8471 cover. I am very grateful for their contribution, and will use it to
8472 give a copy of the Norwegian edition to members of the Norwegian
8473 Parliament and other decision makers here in Norway.</p>
8474
8475 </div>
8476 <div class="tags">
8477
8478
8479 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>.
8480
8481
8482 </div>
8483 </div>
8484 <div class="padding"></div>
8485
8486 <div class="entry">
8487 <div class="title">
8488 <a href="http://people.skolelinux.org/pere/blog/Lawrence_Lessig_interviewed_Edward_Snowden_a_year_ago.html">Lawrence Lessig interviewed Edward Snowden a year ago</a>
8489 </div>
8490 <div class="date">
8491 19th October 2015
8492 </div>
8493 <div class="body">
8494 <p>Last year, <a href="https://lessig2016.us/">US president candidate
8495 in the Democratic Party</a> Lawrence interviewed Edward Snowden. The
8496 one hour interview was
8497 <a href="https://www.youtube.com/watch?v=o_Sr96TFQQE">published by
8498 Harvard Law School 2014-10-23 on Youtube</a>, and the meeting took
8499 place 2014-10-20.</p>
8500
8501 <p>The questions are very good, and there is lots of useful
8502 information to be learned and very interesting issues to think about
8503 being raised. Please check it out.</p>
8504
8505 <iframe width="560" height="315" src="https://www.youtube.com/embed/o_Sr96TFQQE" frameborder="0" allowfullscreen></iframe>
8506
8507 <p>I find it especially interesting to hear again that Snowden did try
8508 to bring up his reservations through the official channels without any
8509 luck. It is in sharp contrast to the answers made 2013-11-06 by the
8510 Norwegian prime minister Erna Solberg to the Norwegian Parliament,
8511 <a href="https://tale.holderdeord.no/speeches/s131106/68">claiming
8512 Snowden is no Whistle-Blower</a> because he should have taken up his
8513 concerns internally and using official channels. It make me sad
8514 that this is the political leadership we have here in Norway.</p>
8515
8516 </div>
8517 <div class="tags">
8518
8519
8520 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>.
8521
8522
8523 </div>
8524 </div>
8525 <div class="padding"></div>
8526
8527 <div class="entry">
8528 <div class="title">
8529 <a href="http://people.skolelinux.org/pere/blog/The_Story_of_Aaron_Swartz___Let_us_all_weep_.html">The Story of Aaron Swartz - Let us all weep!</a>
8530 </div>
8531 <div class="date">
8532 8th October 2015
8533 </div>
8534 <div class="body">
8535 <p>The movie "<a href="http://www.takepart.com/internets-own-boy">The
8536 Internet's Own Boy: The Story of Aaron Swartz</a>" is both inspiring
8537 and depressing at the same time. The work of Aaron Swartz has
8538 inspired me in my work, and I am grateful of all the improvements he
8539 was able to initiate or complete. I wish I am able to do as much good
8540 in my life as he did in his. Every minute of this 1:45 long movie is
8541 inspiring in documenting how much impact a single person can have on
8542 improving the society and this world. And it is depressing in
8543 documenting how the law enforcement of USA (and other countries) is
8544 corrupted to a point where they can push a bright kid to his death for
8545 downloading too many scientific articles. Aaron is dead. Let us all
8546 weep.</p>
8547
8548 <p>The movie is also available on
8549 <a href="https://www.youtube.com/watch?v=vXr-2hwTk58">Youtube</a>. I
8550 wish there were Norwegian subtitles available, so I could show it to
8551 my parents.</p>
8552
8553 </div>
8554 <div class="tags">
8555
8556
8557 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>.
8558
8559
8560 </div>
8561 </div>
8562 <div class="padding"></div>
8563
8564 <div class="entry">
8565 <div class="title">
8566 <a href="http://people.skolelinux.org/pere/blog/French_Docbook_PDF_EPUB_MOBI_edition_of_the_Free_Culture_book.html">French Docbook/PDF/EPUB/MOBI edition of the Free Culture book</a>
8567 </div>
8568 <div class="date">
8569 1st October 2015
8570 </div>
8571 <div class="body">
8572 <p>As I wrap up the Norwegian version of
8573 <a href="https://github.com/petterreinholdtsen/free-culture-lessig">Free
8574 Culture</a> book by Lawrence Lessig (still waiting for my final proof
8575 reading copy to arrive in the mail), my great
8576 <a href="http://dblatex.sourceforge.net/">dblatex</a> helper and
8577 developer of the dblatex docbook processor, Benoît Guillon, decided a
8578 to try to create a French version of the book. He started with the
8579 French translation available from the
8580 <a href="http://www.wikilivres.ca/wiki/Culture_libre">Wikilivres wiki
8581 pages</a>, and wrote a program to convert it into a PO file, allowing
8582 the translation to be integrated into the po4a based framework I use
8583 to create the Norwegian translation from the English edition. We meet
8584 on the <a href="irc://irc.freenode.net/%23dblatex">#dblatex IRC
8585 channel</a> to discuss the work. If you want to help create a French
8586 edition, check out
8587 <a href="https://github.com/marsgui/free-culture-lessig">his git
8588 repository</a> and join us on IRC. If the French edition look good,
8589 we might publish it as a paper book on lulu.com. A French version of
8590 the drawings and the cover need to be provided for this to happen.</p>
8591
8592 </div>
8593 <div class="tags">
8594
8595
8596 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>.
8597
8598
8599 </div>
8600 </div>
8601 <div class="padding"></div>
8602
8603 <div class="entry">
8604 <div class="title">
8605 <a href="http://people.skolelinux.org/pere/blog/The_life_and_death_of_a_laptop_battery.html">The life and death of a laptop battery</a>
8606 </div>
8607 <div class="date">
8608 24th September 2015
8609 </div>
8610 <div class="body">
8611 <p>When I get a new laptop, the battery life time at the start is OK.
8612 But this do not last. The last few laptops gave me a feeling that
8613 within a year, the life time is just a fraction of what it used to be,
8614 and it slowly become painful to use the laptop without power connected
8615 all the time. Because of this, when I got a new Thinkpad X230 laptop
8616 about two years ago, I decided to monitor its battery state to have
8617 more hard facts when the battery started to fail.</p>
8618
8619 <img src="http://people.skolelinux.org/pere/blog/images/2015-09-24-laptop-battery-graph.png"/>
8620
8621 <p>First I tried to find a sensible Debian package to record the
8622 battery status, assuming that this must be a problem already handled
8623 by someone else. I found
8624 <a href="https://tracker.debian.org/pkg/battery-stats">battery-stats</a>,
8625 which collects statistics from the battery, but it was completely
8626 broken. I sent a few suggestions to the maintainer, but decided to
8627 write my own collector as a shell script while I waited for feedback
8628 from him. Via
8629 <a href="http://www.ifweassume.com/2013/08/the-de-evolution-of-my-laptop-battery.html">a
8630 blog post about the battery development on a MacBook Air</a> I also
8631 discovered
8632 <a href="https://github.com/jradavenport/batlog.git">batlog</a>, not
8633 available in Debian.</p>
8634
8635 <p>I started my collector 2013-07-15, and it has been collecting
8636 battery stats ever since. Now my
8637 /var/log/hjemmenett-battery-status.log file contain around 115,000
8638 measurements, from the time the battery was working great until now,
8639 when it is unable to charge above 7% of original capacity. My
8640 collector shell script is quite simple and look like this:</p>
8641
8642 <pre>
8643 #!/bin/sh
8644 # Inspired by
8645 # http://www.ifweassume.com/2013/08/the-de-evolution-of-my-laptop-battery.html
8646 # See also
8647 # http://blog.sleeplessbeastie.eu/2013/01/02/debian-how-to-monitor-battery-capacity/
8648 logfile=/var/log/hjemmenett-battery-status.log
8649
8650 files="manufacturer model_name technology serial_number \
8651 energy_full energy_full_design energy_now cycle_count status"
8652
8653 if [ ! -e "$logfile" ] ; then
8654 (
8655 printf "timestamp,"
8656 for f in $files; do
8657 printf "%s," $f
8658 done
8659 echo
8660 ) > "$logfile"
8661 fi
8662
8663 log_battery() {
8664 # Print complete message in one echo call, to avoid race condition
8665 # when several log processes run in parallel.
8666 msg=$(printf "%s," $(date +%s); \
8667 for f in $files; do \
8668 printf "%s," $(cat $f); \
8669 done)
8670 echo "$msg"
8671 }
8672
8673 cd /sys/class/power_supply
8674
8675 for bat in BAT*; do
8676 (cd $bat && log_battery >> "$logfile")
8677 done
8678 </pre>
8679
8680 <p>The script is called when the power management system detect a
8681 change in the power status (power plug in or out), and when going into
8682 and out of hibernation and suspend. In addition, it collect a value
8683 every 10 minutes. This make it possible for me know when the battery
8684 is discharging, charging and how the maximum charge change over time.
8685 The code for the Debian package
8686 <a href="https://github.com/petterreinholdtsen/battery-status">is now
8687 available on github</a>.</p>
8688
8689 <p>The collected log file look like this:</p>
8690
8691 <pre>
8692 timestamp,manufacturer,model_name,technology,serial_number,energy_full,energy_full_design,energy_now,cycle_count,status,
8693 1376591133,LGC,45N1025,Li-ion,974,62800000,62160000,39050000,0,Discharging,
8694 [...]
8695 1443090528,LGC,45N1025,Li-ion,974,4900000,62160000,4900000,0,Full,
8696 1443090601,LGC,45N1025,Li-ion,974,4900000,62160000,4900000,0,Full,
8697 </pre>
8698
8699 <p>I wrote a small script to create a graph of the charge development
8700 over time. This graph depicted above show the slow death of my laptop
8701 battery.</p>
8702
8703 <p>But why is this happening? Why are my laptop batteries always
8704 dying in a year or two, while the batteries of space probes and
8705 satellites keep working year after year. If we are to believe
8706 <a href="http://batteryuniversity.com/learn/article/how_to_prolong_lithium_based_batteries">Battery
8707 University</a>, the cause is me charging the battery whenever I have a
8708 chance, and the fix is to not charge the Lithium-ion batteries to 100%
8709 all the time, but to stay below 90% of full charge most of the time.
8710 I've been told that the Tesla electric cars
8711 <a href="http://my.teslamotors.com/de_CH/forum/forums/battery-charge-limit">limit
8712 the charge of their batteries to 80%</a>, with the option to charge to
8713 100% when preparing for a longer trip (not that I would want a car
8714 like Tesla where rights to privacy is abandoned, but that is another
8715 story), which I guess is the option we should have for laptops on
8716 Linux too.</p>
8717
8718 <p>Is there a good and generic way with Linux to tell the battery to
8719 stop charging at 80%, unless requested to charge to 100% once in
8720 preparation for a longer trip? I found
8721 <a href="http://askubuntu.com/questions/34452/how-can-i-limit-battery-charging-to-80-capacity">one
8722 recipe on askubuntu for Ubuntu to limit charging on Thinkpad to
8723 80%</a>, but could not get it to work (kernel module refused to
8724 load).</p>
8725
8726 <p>I wonder why the battery capacity was reported to be more than 100%
8727 at the start. I also wonder why the "full capacity" increases some
8728 times, and if it is possible to repeat the process to get the battery
8729 back to design capacity. And I wonder if the discharge and charge
8730 speed change over time, or if this stay the same. I did not yet try
8731 to write a tool to calculate the derivative values of the battery
8732 level, but suspect some interesting insights might be learned from
8733 those.</p>
8734
8735 <p>Update 2015-09-24: I got a tip to install the packages
8736 acpi-call-dkms and tlp (unfortunately missing in Debian stable)
8737 packages instead of the tp-smapi-dkms package I had tried to use
8738 initially, and use 'tlp setcharge 40 80' to change when charging start
8739 and stop. I've done so now, but expect my existing battery is toast
8740 and need to be replaced. The proposal is unfortunately Thinkpad
8741 specific.</p>
8742
8743 </div>
8744 <div class="tags">
8745
8746
8747 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>.
8748
8749
8750 </div>
8751 </div>
8752 <div class="padding"></div>
8753
8754 <div class="entry">
8755 <div class="title">
8756 <a href="http://people.skolelinux.org/pere/blog/Book_cover_for_the_Free_Culture_book_finally_done.html">Book cover for the Free Culture book finally done</a>
8757 </div>
8758 <div class="date">
8759 3rd September 2015
8760 </div>
8761 <div class="body">
8762 <p>Creating a good looking book cover proved harder than I expected.
8763 I wanted to create a cover looking similar to the original cover of
8764 the
8765 <a href="https://github.com/petterreinholdtsen/free-culture-lessig">Free
8766 Culture</a> book we are translating to Norwegian, and I wanted it in
8767 vector format for high resolution printing. But my inkscape knowledge
8768 were not nearly good enough to pull that off.
8769
8770 <p>But thanks to the great inkscape community, I was able to wrap up
8771 the cover yesterday evening. I asked on the
8772 <a href="irc://irc.freenode.net/%23inkscape">#inkscape IRC channel</a>
8773 on Freenode for help and clues, and Marc Jeanmougin (Mc-) volunteered
8774 to try to recreate it based on the PDF of the cover from the HTML
8775 version. Not only did he create a
8776 <a href="https://marc.jeanmougin.fr/share/copy1.svg ">SVG document with
8777 the original and his vector version side by side</a>, he even provided
8778 an <a href="https://marc.jeanmougin.fr/share/out-1.ogv">instruction
8779 video</a> explaining how he did it</a>. But the instruction video is
8780 not easy to follow for an untrained inkscape user. The video is a
8781 recording on how he did it, and he is obviously very experienced as
8782 the menu selections are very quick and he mentioned on IRC that he did
8783 use some keyboard shortcuts that can't be seen on the video, but it
8784 give a good idea about the inkscape operations to use to create the
8785 stripes with the embossed copyright sign in the center.</p>
8786
8787 <p>I took his SVG file, copied the vector image and re-sized it to fit
8788 on the cover I was drawing. I am happy with the end result, and the
8789 current english version look like this:</p>
8790
8791 <img src="http://people.skolelinux.org/pere/blog/images/2015-09-03-free-culture-cover.png" width="70%" align="center"/>
8792
8793 <p>I am not quite sure about the text on the back, but guess it will
8794 do. I picked three quotes from the official site for the book, and
8795 hope it will work to trigger the interest of potential readers. The
8796 Norwegian cover will look the same, but with the texts and bar code
8797 replaced with the Norwegian version.</p>
8798
8799 <p>The book is very close to being ready for publication, and I expect
8800 to upload the final draft to Lulu in the next few days and order a
8801 final proof reading copy to verify that everything look like it should
8802 before allowing everyone to order their own copy of Free Culture, in
8803 English or Norwegian Bokmål. I'm waiting to give the the productive
8804 proof readers a chance to complete their work.</p>
8805
8806 </div>
8807 <div class="tags">
8808
8809
8810 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>.
8811
8812
8813 </div>
8814 </div>
8815 <div class="padding"></div>
8816
8817 <div class="entry">
8818 <div class="title">
8819 <a href="http://people.skolelinux.org/pere/blog/In_my_hand__a_pocket_book_edition_of_the_Norwegian_Free_Culture_book_.html">In my hand, a pocket book edition of the Norwegian Free Culture book!</a>
8820 </div>
8821 <div class="date">
8822 19th August 2015
8823 </div>
8824 <div class="body">
8825 <p>Today, finally, my first printed draft edition of the Norwegian
8826 translation of Free Culture I have been working on for the last few
8827 years arrived in the mail. I had to fake a cover to get the interior
8828 printed, and the exterior of the book look awful, but that is
8829 irrelevant at this point. I asked for a printed pocket book version
8830 to get an idea about the font sizes and paper format as well as how
8831 good the figures and images look in print, but also to test what the
8832 pocket book version would look like. After receiving the 500 page
8833 pocket book, it became obvious to me that that pocket book size is too
8834 small for this book. I believe the book is too thick, and several
8835 tables and figures do not look good in the size they get with that
8836 small page sizes. I believe I will go with the 5.5x8.5 inch size
8837 instead. A surprise discovery from the paper version was how bad the
8838 URLs look in print. They are very hard to read in the colophon page.
8839 The URLs are red in the PDF, but light gray on paper. I need to
8840 change the color of links somehow to look better. But there is a
8841 printed book in my hand, and it feels great. :)</p>
8842
8843 <p>Now I only need to fix the cover, wrap up the postscript with the
8844 store behind the book, and collect the last corrections from the proof
8845 readers before the book is ready for proper printing. Cover artists
8846 willing to work for free and create a Creative Commons licensed vector
8847 file looking similar to the original is most welcome, as my skills as
8848 a graphics designer are mostly missing.</p>
8849
8850 </div>
8851 <div class="tags">
8852
8853
8854 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>.
8855
8856
8857 </div>
8858 </div>
8859 <div class="padding"></div>
8860
8861 <div class="entry">
8862 <div class="title">
8863 <a href="http://people.skolelinux.org/pere/blog/First_paper_version_of_the_Norwegian_Free_Culture_book_heading_my_way.html">First paper version of the Norwegian Free Culture book heading my way</a>
8864 </div>
8865 <div class="date">
8866 9th August 2015
8867 </div>
8868 <div class="body">
8869 <p>Typesetting a book is harder than I hoped. As the translation is
8870 mostly done, and a volunteer proof reader was going to check the text
8871 on paper, it was time this summer to focus on formatting my translated
8872 <a href="http://www.docbook.org/">docbook</a> based version of the
8873 <a href="http://free-culture.cc/">Free Culture</a> book by Lawrence
8874 Lessig. I've been trying to get both docboox-xsl+fop and dblatex to
8875 give me a good looking PDF, but in the end I went with dblatex, because
8876 its Debian maintainer and upstream developer were responsive and very
8877 helpful in solving my formatting challenges.</p>
8878
8879 <p>Last night, I finally managed to create a PDF that no longer made
8880 <a href="http://www.lulu.com/">Lulu.com</a> complain after uploading,
8881 and I ordered a text version of the book on paper. It is lacking a
8882 proper book cover and is not tagged with the correct ISBN number, but
8883 should give me an idea what the finished book will look like.</p>
8884
8885 <p>Instead of using Lulu, I did consider printing the book using
8886 <a href="http://www.createspace.com/">CreateSpace</a>, but ended up
8887 using Lulu because it had smaller book size options (CreateSpace seem
8888 to lack pocket book with extended distribution). I looked for a
8889 similar service in Norway, but have not seen anything so far. Please
8890 let me know if I am missing out on something here.</p>
8891
8892 <p>But I still struggle to decide the book size. Should I go for
8893 pocket book (4.25x6.875 inches / 10.8x17.5 cm) with 556 pages, Digest
8894 (5.5x8.5 inches / 14x21.6 cm) with 323 pages or US Trade (6x8 inches /
8895 15.3x22.9 cm) with 280 pages? Fewer pager give a cheaper book, and a
8896 smaller book is easier to carry around. The test book I ordered was
8897 pocket book sized, to give me an idea how well that fit in my hand,
8898 but I suspect I will end up using a digest sized book in the end to
8899 bring the prize down further.</p>
8900
8901 <p>My biggest challenge at the moment is making nice cover art. My
8902 inkscape skills are not yet up to the task of replicating the original
8903 cover in SVG format. I also need to figure out what to write about
8904 the book on the back (will most likely use the same text as the
8905 description on web based book stores). I would love help with this,
8906 if you are willing to license the art source and final version using
8907 the same CC license as the book. My artistic skills are not really up
8908 to the task.</p>
8909
8910 <p>I plan to publish the book in both English and Norwegian and on
8911 paper, in PDF form as well as EPUB and MOBI format. The current
8912 status can as usual be found on
8913 <a href="https://github.com/petterreinholdtsen/free-culture-lessig">github</a>
8914 in the archive/ directory. So far I have spent all time on making the
8915 PDF version look good. Someone should probably do the same with the
8916 dbtoepub generated e-book. Help is definitely needed here, as I
8917 expect to run out of steem before I find time to improve the epub
8918 formatting.</p>
8919
8920 <p>Please let me know via github if you find typos in the book or
8921 discover translations that should be improved. The final proof
8922 reading is being done right now, and I expect to publish the finished
8923 result in a few months.</p>
8924
8925 </div>
8926 <div class="tags">
8927
8928
8929 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>.
8930
8931
8932 </div>
8933 </div>
8934 <div class="padding"></div>
8935
8936 <div class="entry">
8937 <div class="title">
8938 <a href="http://people.skolelinux.org/pere/blog/Typesetting_DocBook_footnotes_as_endnotes_with_dblatex.html">Typesetting DocBook footnotes as endnotes with dblatex</a>
8939 </div>
8940 <div class="date">
8941 16th July 2015
8942 </div>
8943 <div class="body">
8944 <p>I'm still working on the Norwegian version of the
8945 <a href="http://free-culture.cc/">Free Culture book by Lawrence
8946 Lessig</a>, and is now working on the final typesetting and layout.
8947 One of the features I want to get the structure similar to the
8948 original book is to typeset the footnotes as endnotes in the notes
8949 chapter. Based on the
8950 <a href="https://bugs.debian.org/685063">feedback from the Debian
8951 maintainer and the dblatex developer</a>, I came up with this recipe I
8952 would like to share with you. The proposal was to create a new LaTeX
8953 class file and add the LaTeX code there, but this is not always
8954 practical, when I want to be able to replace the class using a make
8955 file variable. So my proposal misuses the latex.begindocument XSL
8956 parameter value, to get a small fragment into the correct location in
8957 the generated LaTeX File.</p>
8958
8959 <p>First, decide where in the DocBook document to place the endnotes,
8960 and add this text there:</p>
8961
8962 <pre>
8963 &lt;?latex \theendnotes ?&gt;
8964 </pre>
8965
8966 <p>Next, create a xsl stylesheet file dblatex-endnotes.xsl to add the
8967 code needed to add the endnote instructions in the preamble of the
8968 generated LaTeX document, with content like this:</p>
8969
8970 <pre>
8971 &lt;?xml version='1.0'?&gt;
8972 &lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'&gt;
8973 &lt;xsl:param name="latex.begindocument"&gt;
8974 &lt;xsl:text&gt;
8975 \usepackage{endnotes}
8976 \let\footnote=\endnote
8977 \def\enoteheading{\mbox{}\par\vskip-\baselineskip }
8978 \begin{document}
8979 &lt;/xsl:text&gt;
8980 &lt;/xsl:param&gt;
8981 &lt;/xsl:stylesheet&gt;
8982 </pre>
8983
8984 <p>Finally, load this xsl file when running dblatex, for example like
8985 this:</p>
8986
8987 <pre>
8988 dblatex --xsl-user=dblatex-endnotes.xsl freeculture.nb.xml
8989 </pre>
8990
8991 <p>The end result can be seen on github, where
8992 <a href="https://github.com/petterreinholdtsen/free-culture-lessig">my
8993 book project</a> is located.</p>
8994
8995 </div>
8996 <div class="tags">
8997
8998
8999 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>.
9000
9001
9002 </div>
9003 </div>
9004 <div class="padding"></div>
9005
9006 <div class="entry">
9007 <div class="title">
9008 <a href="http://people.skolelinux.org/pere/blog/MPEG_LA_on__Internet_Broadcast_AVC_Video__licensing_and_non_private_use.html">MPEG LA on "Internet Broadcast AVC Video" licensing and non-private use</a>
9009 </div>
9010 <div class="date">
9011 7th July 2015
9012 </div>
9013 <div class="body">
9014 <p>After asking the Norwegian Broadcasting Company (NRK)
9015 <a href="http://people.skolelinux.org/pere/blog/Hva_gj_r_at_NRK_kan_distribuere_H_264_video_uten_patentavtale_med_MPEG_LA_.html">why
9016 they can broadcast and stream H.264 video without an agreement with
9017 the MPEG LA</a>, I was wiser, but still confused. So I asked MPEG LA
9018 if their understanding matched that of NRK. As far as I can tell, it
9019 does not.</p>
9020
9021 <p>I started by asking for more information about the various
9022 licensing classes and what exactly is covered by the "Internet
9023 Broadcast AVC Video" class that NRK pointed me at to explain why NRK
9024 did not need a license for streaming H.264 video:
9025
9026 <p><blockquote>
9027
9028 <p>According to
9029 <a href="http://www.mpegla.com/Lists/MPEG%20LA%20News%20List/Attachments/226/n-10-02-02.pdf">a
9030 MPEG LA press release dated 2010-02-02</a>, there is no charge when
9031 using MPEG AVC/H.264 according to the terms of "Internet Broadcast AVC
9032 Video". I am trying to understand exactly what the terms of "Internet
9033 Broadcast AVC Video" is, and wondered if you could help me. What
9034 exactly is covered by these terms, and what is not?</p>
9035
9036 <p>The only source of more information I have been able to find is a
9037 PDF named
9038 <a href="http://www.mpegla.com/main/programs/avc/Documents/avcweb.pdf">AVC
9039 Patent Portfolio License Briefing</a>, which states this about the
9040 fees:</p>
9041
9042 <ul>
9043 <li>Where End User pays for AVC Video
9044 <ul>
9045 <li>Subscription (not limited by title) – 100,000 or fewer
9046 subscribers/yr = no royalty; &gt; 100,000 to 250,000 subscribers/yr =
9047 $25,000; &gt;250,000 to 500,000 subscribers/yr = $50,000; &gt;500,000 to
9048 1M subscribers/yr = $75,000; &gt;1M subscribers/yr = $100,000</li>
9049
9050 <li>Title-by-Title - 12 minutes or less = no royalty; &gt;12 minutes in
9051 length = lower of (a) 2% or (b) $0.02 per title</li>
9052 </ul></li>
9053
9054 <li>Where remuneration is from other sources
9055 <ul>
9056 <li>Free Television - (a) one-time $2,500 per transmission encoder or
9057 (b) annual fee starting at $2,500 for &gt; 100,000 HH rising to
9058 maximum $10,000 for &gt;1,000,000 HH</li>
9059
9060 <li>Internet Broadcast AVC Video (not title-by-title, not subscription)
9061 – no royalty for life of the AVC Patent Portfolio License</li>
9062 </ul></li>
9063 </ul>
9064
9065 <p>Am I correct in assuming that the four categories listed is the
9066 categories used when selecting licensing terms, and that "Internet
9067 Broadcast AVC Video" is the category for things that do not fall into
9068 one of the other three categories? Can you point me to a good source
9069 explaining what is ment by "title-by-title" and "Free Television" in
9070 the license terms for AVC/H.264?</p>
9071
9072 <p>Will a web service providing H.264 encoded video content in a
9073 "video on demand" fashing similar to Youtube and Vimeo, where no
9074 subscription is required and no payment is required from end users to
9075 get access to the videos, fall under the terms of the "Internet
9076 Broadcast AVC Video", ie no royalty for life of the AVC Patent
9077 Portfolio license? Does it matter if some users are subscribed to get
9078 access to personalized services?</p>
9079
9080 <p>Note, this request and all answers will be published on the
9081 Internet.</p>
9082 </blockquote></p>
9083
9084 <p>The answer came quickly from Benjamin J. Myers, Licensing Associate
9085 with the MPEG LA:</p>
9086
9087 <p><blockquote>
9088 <p>Thank you for your message and for your interest in MPEG LA. We
9089 appreciate hearing from you and I will be happy to assist you.</p>
9090
9091 <p>As you are aware, MPEG LA offers our AVC Patent Portfolio License
9092 which provides coverage under patents that are essential for use of
9093 the AVC/H.264 Standard (MPEG-4 Part 10). Specifically, coverage is
9094 provided for end products and video content that make use of AVC/H.264
9095 technology. Accordingly, the party offering such end products and
9096 video to End Users concludes the AVC License and is responsible for
9097 paying the applicable royalties.</p>
9098
9099 <p>Regarding Internet Broadcast AVC Video, the AVC License generally
9100 defines such content to be video that is distributed to End Users over
9101 the Internet free-of-charge. Therefore, if a party offers a service
9102 which allows users to upload AVC/H.264 video to its website, and such
9103 AVC Video is delivered to End Users for free, then such video would
9104 receive coverage under the sublicense for Internet Broadcast AVC
9105 Video, which is not subject to any royalties for the life of the AVC
9106 License. This would also apply in the scenario where a user creates a
9107 free online account in order to receive a customized offering of free
9108 AVC Video content. In other words, as long as the End User is given
9109 access to or views AVC Video content at no cost to the End User, then
9110 no royalties would be payable under our AVC License.</p>
9111
9112 <p>On the other hand, if End Users pay for access to AVC Video for a
9113 specific period of time (e.g., one month, one year, etc.), then such
9114 video would constitute Subscription AVC Video. In cases where AVC
9115 Video is delivered to End Users on a pay-per-view basis, then such
9116 content would constitute Title-by-Title AVC Video. If a party offers
9117 Subscription or Title-by-Title AVC Video to End Users, then they would
9118 be responsible for paying the applicable royalties you noted below.</p>
9119
9120 <p>Finally, in the case where AVC Video is distributed for free
9121 through an "over-the-air, satellite and/or cable transmission", then
9122 such content would constitute Free Television AVC Video and would be
9123 subject to the applicable royalties.</p>
9124
9125 <p>For your reference, I have attached
9126 <a href="http://people.skolelinux.org/pere/blog/images/2015-07-07-mpegla.pdf">a
9127 .pdf copy of the AVC License</a>. You will find the relevant
9128 sublicense information regarding AVC Video in Sections 2.2 through
9129 2.5, and the corresponding royalties in Section 3.1.2 through 3.1.4.
9130 You will also find the definitions of Title-by-Title AVC Video,
9131 Subscription AVC Video, Free Television AVC Video, and Internet
9132 Broadcast AVC Video in Section 1 of the License. Please note that the
9133 electronic copy is provided for informational purposes only and cannot
9134 be used for execution.</p>
9135
9136 <p>I hope the above information is helpful. If you have additional
9137 questions or need further assistance with the AVC License, please feel
9138 free to contact me directly.</p>
9139 </blockquote></p>
9140
9141 <p>Having a fresh copy of the license text was useful, and knowing
9142 that the definition of Title-by-Title required payment per title made
9143 me aware that my earlier understanding of that phrase had been wrong.
9144 But I still had a few questions:</p>
9145
9146 <p><blockquote>
9147 <p>I have a small followup question. Would it be possible for me to get
9148 a license with MPEG LA even if there are no royalties to be paid? The
9149 reason I ask, is that some video related products have a copyright
9150 clause limiting their use without a license with MPEG LA. The clauses
9151 typically look similar to this:
9152
9153 <p><blockquote>
9154 This product is licensed under the AVC patent portfolio license for
9155 the personal and non-commercial use of a consumer to (a) encode
9156 video in compliance with the AVC standard ("AVC video") and/or (b)
9157 decode AVC video that was encoded by a consumer engaged in a
9158 personal and non-commercial activity and/or AVC video that was
9159 obtained from a video provider licensed to provide AVC video. No
9160 license is granted or shall be implied for any other use. additional
9161 information may be obtained from MPEG LA L.L.C.
9162 </blockquote></p>
9163
9164 <p>It is unclear to me if this clause mean that I need to enter into
9165 an agreement with MPEG LA to use the product in question, even if
9166 there are no royalties to be paid to MPEG LA. I suspect it will
9167 differ depending on the jurisdiction, and mine is Norway. What is
9168 MPEG LAs view on this?</p>
9169 </blockquote></p>
9170
9171 <p>According to the answer, MPEG LA believe those using such tools for
9172 non-personal or commercial use need a license with them:</p>
9173
9174 <p><blockquote>
9175
9176 <p>With regard to the Notice to Customers, I would like to begin by
9177 clarifying that the Notice from Section 7.1 of the AVC License
9178 reads:</p>
9179
9180 <p>THIS PRODUCT IS LICENSED UNDER THE AVC PATENT PORTFOLIO LICENSE FOR
9181 THE PERSONAL USE OF A CONSUMER OR OTHER USES IN WHICH IT DOES NOT
9182 RECEIVE REMUNERATION TO (i) ENCODE VIDEO IN COMPLIANCE WITH THE AVC
9183 STANDARD ("AVC VIDEO") AND/OR (ii) DECODE AVC VIDEO THAT WAS ENCODED
9184 BY A CONSUMER ENGAGED IN A PERSONAL ACTIVITY AND/OR WAS OBTAINED FROM
9185 A VIDEO PROVIDER LICENSED TO PROVIDE AVC VIDEO. NO LICENSE IS GRANTED
9186 OR SHALL BE IMPLIED FOR ANY OTHER USE. ADDITIONAL INFORMATION MAY BE
9187 OBTAINED FROM MPEG LA, L.L.C. SEE HTTP://WWW.MPEGLA.COM</p>
9188
9189 <p>The Notice to Customers is intended to inform End Users of the
9190 personal usage rights (for example, to watch video content) included
9191 with the product they purchased, and to encourage any party using the
9192 product for commercial purposes to contact MPEG LA in order to become
9193 licensed for such use (for example, when they use an AVC Product to
9194 deliver Title-by-Title, Subscription, Free Television or Internet
9195 Broadcast AVC Video to End Users, or to re-Sell a third party's AVC
9196 Product as their own branded AVC Product).</p>
9197
9198 <p>Therefore, if a party is to be licensed for its use of an AVC
9199 Product to Sell AVC Video on a Title-by-Title, Subscription, Free
9200 Television or Internet Broadcast basis, that party would need to
9201 conclude the AVC License, even in the case where no royalties were
9202 payable under the License. On the other hand, if that party (either a
9203 Consumer or business customer) simply uses an AVC Product for their
9204 own internal purposes and not for the commercial purposes referenced
9205 above, then such use would be included in the royalty paid for the AVC
9206 Products by the licensed supplier.</p>
9207
9208 <p>Finally, I note that our AVC License provides worldwide coverage in
9209 countries that have AVC Patent Portfolio Patents, including
9210 Norway.</p>
9211
9212 <p>I hope this clarification is helpful. If I may be of any further
9213 assistance, just let me know.</p>
9214 </blockquote></p>
9215
9216 <p>The mentioning of Norwegian patents made me a bit confused, so I
9217 asked for more information:</p>
9218
9219 <p><blockquote>
9220
9221 <p>But one minor question at the end. If I understand you correctly,
9222 you state in the quote above that there are patents in the AVC Patent
9223 Portfolio that are valid in Norway. This make me believe I read the
9224 list available from &lt;URL:
9225 <a href="http://www.mpegla.com/main/programs/AVC/Pages/PatentList.aspx">http://www.mpegla.com/main/programs/AVC/Pages/PatentList.aspx</a>
9226 &gt; incorrectly, as I believed the "NO" prefix in front of patents
9227 were Norwegian patents, and the only one I could find under Mitsubishi
9228 Electric Corporation expired in 2012. Which patents are you referring
9229 to that are relevant for Norway?</p>
9230
9231 </blockquote></p>
9232
9233 <p>Again, the quick answer explained how to read the list of patents
9234 in that list:</p>
9235
9236 <p><blockquote>
9237
9238 <p>Your understanding is correct that the last AVC Patent Portfolio
9239 Patent in Norway expired on 21 October 2012. Therefore, where AVC
9240 Video is both made and Sold in Norway after that date, then no
9241 royalties would be payable for such AVC Video under the AVC License.
9242 With that said, our AVC License provides historic coverage for AVC
9243 Products and AVC Video that may have been manufactured or Sold before
9244 the last Norwegian AVC patent expired. I would also like to clarify
9245 that coverage is provided for the country of manufacture and the
9246 country of Sale that has active AVC Patent Portfolio Patents.</p>
9247
9248 <p>Therefore, if a party offers AVC Products or AVC Video for Sale in
9249 a country with active AVC Patent Portfolio Patents (for example,
9250 Sweden, Denmark, Finland, etc.), then that party would still need
9251 coverage under the AVC License even if such products or video are
9252 initially made in a country without active AVC Patent Portfolio
9253 Patents (for example, Norway). Similarly, a party would need to
9254 conclude the AVC License if they make AVC Products or AVC Video in a
9255 country with active AVC Patent Portfolio Patents, but eventually Sell
9256 such AVC Products or AVC Video in a country without active AVC Patent
9257 Portfolio Patents.</p>
9258 </blockquote></p>
9259
9260 <p>As far as I understand it, MPEG LA believe anyone using Adobe
9261 Premiere and other video related software with a H.264 distribution
9262 license need a license agreement with MPEG LA to use such tools for
9263 anything non-private or commercial, while it is OK to set up a
9264 Youtube-like service as long as no-one pays to get access to the
9265 content. I still have no clear idea how this applies to Norway, where
9266 none of the patents MPEG LA is licensing are valid. Will the
9267 copyright terms take precedence or can those terms be ignored because
9268 the patents are not valid in Norway?</p>
9269
9270 </div>
9271 <div class="tags">
9272
9273
9274 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/h264">h264</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</a>.
9275
9276
9277 </div>
9278 </div>
9279 <div class="padding"></div>
9280
9281 <div class="entry">
9282 <div class="title">
9283 <a href="http://people.skolelinux.org/pere/blog/New_laptop___some_more_clues_and_ideas_based_on_feedback.html">New laptop - some more clues and ideas based on feedback</a>
9284 </div>
9285 <div class="date">
9286 5th July 2015
9287 </div>
9288 <div class="body">
9289 <p>Several people contacted me after my previous blog post about my
9290 need for a new laptop, and provided very useful feedback. I wish to
9291 thank every one of these. Several pointed me to the possibility of
9292 fixing my X230, and I am already in the process of getting Lenovo to
9293 do so thanks to the on site, next day support contract covering the
9294 machine. But the battery is almost useless (I expect to replace it
9295 with a non-official battery) and I do not expect the machine to live
9296 for many more years, so it is time to plan its replacement. If I did
9297 not have a support contract, it was suggested to find replacement parts
9298 using <a href="http://www.francecrans.com/">FrancEcrans</a>, but it
9299 might present a language barrier as I do not understand French.</p>
9300
9301 <p>One tip I got was to use the
9302 <a href="https://skinflint.co.uk/?cat=nb">Skinflint</a> web service to
9303 compare laptop models. It seem to have more models available than
9304 prisjakt.no. Another tip I got from someone I know have similar
9305 keyboard preferences was that the HP EliteBook 840 keyboard is not
9306 very good, and this matches my experience with earlier EliteBook
9307 keyboards I tested. Because of this, I will not consider it any further.
9308
9309 <p>When I wrote my blog post, I was not aware of Thinkpad X250, the
9310 newest Thinkpad X model. The keyboard reintroduces mouse buttons
9311 (which is missing from the X240), and is working fairly well with
9312 Debian Sid/Unstable according to
9313 <a href="http://www.corsac.net/X250/">Corsac.net</a>. The reports I
9314 got on the keyboard quality are not consistent. Some say the keyboard
9315 is good, others say it is ok, while others say it is not very good.
9316 Those with experience from X41 and and X60 agree that the X250
9317 keyboard is not as good as those trusty old laptops, and suggest I
9318 keep and fix my X230 instead of upgrading, or get a used X230 to
9319 replace it. I'm also told that the X250 lack leds for caps lock, disk
9320 activity and battery status, which is very convenient on my X230. I'm
9321 also told that the CPU fan is running very often, making it a bit
9322 noisy. In any case, the X250 do not work out of the box with Debian
9323 Stable/Jessie, one of my requirements.</p>
9324
9325 <p>I have also gotten a few vendor proposals, one was
9326 <a href="http://pro-star.com">Pro-Star</a>, another was
9327 <a href="http://shop.gluglug.org.uk/product/libreboot-x200/">Libreboot</a>.
9328 The latter look very attractive to me.</p>
9329
9330 <p>Again, thank you all for the very useful feedback. It help a lot
9331 as I keep looking for a replacement.</p>
9332
9333 <p>Update 2015-07-06: I was recommended to check out the
9334 <a href="">lapstore.de</a> web shop for used laptops. They got several
9335 different
9336 <a href="http://www.lapstore.de/f.php/shop/lapstore/f/411/lang/x/kw/Lenovo_ThinkPad_X_Serie/">old
9337 thinkpad X models</a>, and provide one year warranty.</p>
9338
9339 </div>
9340 <div class="tags">
9341
9342
9343 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>.
9344
9345
9346 </div>
9347 </div>
9348 <div class="padding"></div>
9349
9350 <div class="entry">
9351 <div class="title">
9352 <a href="http://people.skolelinux.org/pere/blog/Time_to_find_a_new_laptop__as_the_old_one_is_broken_after_only_two_years.html">Time to find a new laptop, as the old one is broken after only two years</a>
9353 </div>
9354 <div class="date">
9355 3rd July 2015
9356 </div>
9357 <div class="body">
9358 <p>My primary work horse laptop is failing, and will need a
9359 replacement soon. The left 5 cm of the screen on my Thinkpad X230
9360 started flickering yesterday, and I suspect the cause is a broken
9361 cable, as changing the angle of the screen some times get rid of the
9362 flickering.</p>
9363
9364 <p>My requirements have not really changed since I bought it, and is
9365 still as
9366 <a href="http://people.skolelinux.org/pere/blog/Thank_you_Thinkpad_X41__for_your_long_and_trustworthy_service.html">I
9367 described them in 2013</a>. The last time I bought a laptop, I had
9368 good help from
9369 <a href="http://www.prisjakt.no/category.php?k=353">prisjakt.no</a>
9370 where I could select at least a few of the requirements (mouse pin,
9371 wifi, weight) and go through the rest manually. Three button mouse
9372 and a good keyboard is not available as an option, and all the three
9373 laptop models proposed today (Thinkpad X240, HP EliteBook 820 G1 and
9374 G2) lack three mouse buttons). It is also unclear to me how good the
9375 keyboard on the HP EliteBooks are. I hope Lenovo have not messed up
9376 the keyboard, even if the quality and robustness in the X series have
9377 deteriorated since X41.</p>
9378
9379 <p>I wonder how I can find a sensible laptop when none of the options
9380 seem sensible to me? Are there better services around to search the
9381 set of available laptops for features? Please send me an email if you
9382 have suggestions.</p>
9383
9384 <p>Update 2015-07-23: I got a suggestion to check out the FSF
9385 <a href="http://www.fsf.org/resources/hw/endorsement/respects-your-freedom">list
9386 of endorsed hardware</a>, which is useful background information.</p>
9387
9388 </div>
9389 <div class="tags">
9390
9391
9392 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>.
9393
9394
9395 </div>
9396 </div>
9397 <div class="padding"></div>
9398
9399 <div class="entry">
9400 <div class="title">
9401 <a href="http://people.skolelinux.org/pere/blog/MakerCon_Nordic_videos_now_available_on_Frikanalen.html">MakerCon Nordic videos now available on Frikanalen</a>
9402 </div>
9403 <div class="date">
9404 2nd July 2015
9405 </div>
9406 <div class="body">
9407 <p>Last oktober I was involved on behalf of
9408 <a href="http://www.nuug.no/">NUUG</a> with recording the talks at
9409 <a href="http://www.makercon.no/">MakerCon Nordic</a>, a conference for
9410 the Maker movement. Since then it has been the plan to publish the
9411 recordings on <a href="http://www.frikanalen.no/">Frikanalen</a>, which
9412 finally happened the last few days. A few talks are missing because
9413 the speakers asked the organizers to not publish them, but most of the
9414 talks are available. The talks are being broadcasted on RiksTV
9415 channel 50 and using multicast on Uninett, as well as being available
9416 from the Frikanalen web site. The unedited recordings are
9417 <a href="https://www.youtube.com/user/MakerConNordic/">available on
9418 Youtube too</a>.</p>
9419
9420 <p>This is the list of talks available at the moment. Visit the
9421 <a href="http://beta.frikanalen.no/video/?q=makercon">Frikanalen video
9422 pages</a> to view them.</p>
9423
9424 <ul>
9425
9426 <li>Evolutionary algorithms as a design tool - from art
9427 to robotics (Kyrre Glette)</li>
9428
9429 <li>Make and break (Hans Gerhard Meier)</li>
9430
9431 <li>Making a one year school course for young makers
9432 (Olav Helland)</li>
9433
9434 <li>Innovation Inspiration - IPR Databases as a Source of
9435 Inspiration (Hege Langlo)</li>
9436
9437 <li>Making a toy for makers (Erik Torstensson)</li>
9438
9439 <li>How to make 3D printer electronics (Elias Bakken)</li>
9440
9441 <li>Hovering Clouds: Looking at online tool offerings for Product
9442 Design and 3D Printing (William Kempton)</li>
9443
9444 <li>Travelling maker stories (Øyvind Nydal Dahl)</li>
9445
9446 <li>Making the first Maker Faire in Sweden (Nils Olander)</li>
9447
9448 <li>Breaking the mold: Printing 1000’s of parts (Espen Sivertsen)</li>
9449
9450 <li>Ultimaker — and open source 3D printing (Erik de Bruijn)</li>
9451
9452 <li>Autodesk’s 3D Printing Platform: Sparking innovation (Hilde
9453 Sevens)</li>
9454
9455 <li>How Making is Changing the World – and How You Can Too!
9456 (Jennifer Turliuk)</li>
9457
9458 <li>Open-Source Adventuring: OpenROV, OpenExplorer and the Future of
9459 Connected Exploration (David Lang)</li>
9460
9461 <li>Making in Norway (Haakon Karlsen Jr., Graham Hayward and Jens
9462 Dyvik)</li>
9463
9464 <li>The Impact of the Maker Movement (Mike Senese)</li>
9465
9466 </ul>
9467
9468 <p>Part of the reason this took so long was that the scripts NUUG had
9469 to prepare a recording for publication were five years old and no
9470 longer worked with the current video processing tools (command line
9471 argument changes). In addition, we needed better audio normalization,
9472 which sent me on a detour to
9473 <a href="http://people.skolelinux.org/pere/blog/Measuring_and_adjusting_the_loudness_of_a_TV_channel_using_bs1770gain.html">package
9474 bs1770gain for Debian</a>. Now this is in place and it became a lot
9475 easier to publish NUUG videos on Frikanalen.</p>
9476
9477 </div>
9478 <div class="tags">
9479
9480
9481 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
9482
9483
9484 </div>
9485 </div>
9486 <div class="padding"></div>
9487
9488 <div class="entry">
9489 <div class="title">
9490 <a href="http://people.skolelinux.org/pere/blog/Graphing_the_Norwegian_company_ownership_structure.html">Graphing the Norwegian company ownership structure</a>
9491 </div>
9492 <div class="date">
9493 15th June 2015
9494 </div>
9495 <div class="body">
9496 <p>It is a bit work to figure out the ownership structure of companies
9497 in Norway. The information is publicly available, but one need to
9498 recursively look up ownership for all owners to figure out the complete
9499 ownership graph of a given set of companies. To save me the work in
9500 the future, I wrote a script to do this automatically, outputting the
9501 ownership structure using the Graphviz/dotty format. The data source
9502 is web scraping from <a href="http://www.proff.no/">Proff</a>, because
9503 I failed to find a useful source directly from the official keepers of
9504 the ownership data, <a href="http://www.brreg.no/">Brønnøysundsregistrene</a>.</p>
9505
9506 <p>To get an ownership graph for a set of companies, fetch
9507 <a href="https://github.com/petterreinholdtsen/brreg-norway-ownership-graph">the code from git</a> and run it using the organisation number. I'm
9508 using the Norwegian newspaper Dagbladet as an example here, as its
9509 ownership structure is very simple:</p>
9510
9511 <pre>
9512 % time ./bin/eierskap-dotty 958033540 > dagbladet.dot
9513
9514 real 0m2.841s
9515 user 0m0.184s
9516 sys 0m0.036s
9517 %
9518 </pre>
9519
9520 <p>The script accept several organisation numbers on the command line,
9521 allowing a cluster of companies to be graphed in the same image. The
9522 resulting dot file for the example above look like this. The edges
9523 are labeled with the ownership percentage, and the nodes uses the
9524 organisation number as their name and the name as the label:</p>
9525
9526 <pre>
9527 digraph ownership {
9528 rankdir = LR;
9529 "Aller Holding A/s" -> "910119877" [label="100%"]
9530 "910119877" -> "998689015" [label="100%"]
9531 "998689015" -> "958033540" [label="99%"]
9532 "974530600" -> "958033540" [label="1%"]
9533 "958033540" [label="AS DAGBLADET"]
9534 "998689015" [label="Berner Media Holding AS"]
9535 "974530600" [label="Dagbladets Stiftelse"]
9536 "910119877" [label="Aller Media AS"]
9537 }
9538 </pre>
9539
9540 <p>To view the ownership graph, run "<tt>dotty dagbladet.dot</tt>" or
9541 convert it to a PNG using "<tt>dot -T png dagbladet.dot >
9542 dagbladet.png</tt>". The result can be seen below:</p>
9543
9544 <img src="http://people.skolelinux.org/pere/blog/images/2015-06-15-ownership-graphs-norway-dagbladet.png" width="80%">
9545
9546 <p>Note that I suspect the "Aller Holding A/S" entry to be incorrect
9547 data in the official ownership register, as that name is not
9548 registered in the official company register for Norway. The ownership
9549 register is sensitive to typos and there seem to be no strict checking
9550 of the ownership links.</p>
9551
9552 <p>Let me know if you improve the script or find better data sources.
9553 The code is licensed according to GPL 2 or newer.</p>
9554
9555 <p>Update 2015-06-15: Since the initial post I've been told that
9556 "<a href="http://www.proff.dk/firma/carl-allers-etablissement-aktieselskab/københavn-v/hovedkontorer/13624518-3/">Aller
9557 Holding A/S</a>" is a Danish company, which explain why it did not
9558 have a Norwegian organisation number. I've also been told that there
9559 is a <a href="http://www.brreg.no/automatiske/webservices/">web
9560 services API available</a> from Brønnøysundsregistrene, for those
9561 willing to accept the terms or pay the price.</p>
9562
9563 </div>
9564 <div class="tags">
9565
9566
9567 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn</a>.
9568
9569
9570 </div>
9571 </div>
9572 <div class="padding"></div>
9573
9574 <div class="entry">
9575 <div class="title">
9576 <a href="http://people.skolelinux.org/pere/blog/Measuring_and_adjusting_the_loudness_of_a_TV_channel_using_bs1770gain.html">Measuring and adjusting the loudness of a TV channel using bs1770gain</a>
9577 </div>
9578 <div class="date">
9579 11th June 2015
9580 </div>
9581 <div class="body">
9582 <p>Television loudness is the source of frustration for viewers
9583 everywhere. Some channels are very load, others are less loud, and
9584 ads tend to shout very high to get the attention of the viewers, and
9585 the viewers do not like this. This fact is well known to the TV
9586 channels. See for example the BBC white paper
9587 "<a href="http://downloads.bbc.co.uk/rd/pubs/whp/whp-pdf-files/WHP202.pdf">Terminology
9588 for loudness and level dBTP, LU, and all that</a>" from 2011 for a
9589 summary of the problem domain. To better address the need for even
9590 loadness, the TV channels got together several years ago to agree on a
9591 new way to measure loudness in digital files as one step in
9592 standardizing loudness. From this came the ITU-R standard BS.1770,
9593 "<a href="http://www.itu.int/rec/R-REC-BS.1770/en">Algorithms to
9594 measure audio programme loudness and true-peak audio level</a>".</p>
9595
9596 <p>The ITU-R BS.1770 specification describe an algorithm to measure
9597 loadness in LUFS (Loudness Units, referenced to Full Scale). But
9598 having a way to measure is not enough. To get the same loudness
9599 across TV channels, one also need to decide which value to standardize
9600 on. For European TV channels, this was done in the EBU Recommondaton
9601 R128, "<a href="https://tech.ebu.ch/docs/r/r128.pdf">Loudness
9602 normalisation and permitted maximum level of audio signals</a>", which
9603 specifies a recommended level of -23 LUFS. In Norway, I have been
9604 told that NRK, TV2, MTG and SBS have decided among themselves to
9605 follow the R128 recommondation for playout from 2016-03-01.</p>
9606
9607 <p>There are free software available to measure and adjust the loudness
9608 level using the LUFS. In Debian, I am aware of a library named
9609 <a href="https://tracker.debian.org/pkg/libebur128">libebur128</a>
9610 able to measure the loudness and since yesterday morning a new binary
9611 named <a href="http://bs1770gain.sourceforge.net">bs1770gain</a>
9612 capable of both measuring and adjusting was uploaded and is waiting
9613 for NEW processing. I plan to maintain the latter in Debian under the
9614 <a href="https://qa.debian.org/developer.php?email=pkg-multimedia-maintainers%40lists.alioth.debian.org">Debian
9615 multimedia</a> umbrella.</p>
9616
9617 <p>The free software based TV channel I am involved in,
9618 <a href="http://www.frikanalen.no/">Frikanalen</a>, plan to follow the
9619 R128 recommondation ourself as soon as we can adjust the software to
9620 do so, and the bs1770gain tool seem like a good fit for that part of
9621 the puzzle to measure loudness on new video uploaded to Frikanalen.
9622 Personally, I plan to use bs1770gain to adjust the loudness of videos
9623 I upload to Frikanalen on behalf of <a href="http://www.nuug.no/">the
9624 NUUG member organisation</a>. The program seem to be able to measure
9625 the LUFS value of any media file handled by ffmpeg, but I've only
9626 successfully adjusted the LUFS value of WAV files. I suspect it
9627 should be able to adjust it for all the formats handled by ffmpeg.</p>
9628
9629 </div>
9630 <div class="tags">
9631
9632
9633 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
9634
9635
9636 </div>
9637 </div>
9638 <div class="padding"></div>
9639
9640 <div class="entry">
9641 <div class="title">
9642 <a href="http://people.skolelinux.org/pere/blog/Norwegian_citizens_now_required_by_law_to_give_their_fingerprint_to_the_police.html">Norwegian citizens now required by law to give their fingerprint to the police</a>
9643 </div>
9644 <div class="date">
9645 10th May 2015
9646 </div>
9647 <div class="body">
9648 <p>5 days ago, the Norwegian Parliament decided, unanimously, that all
9649 citizens of Norway, no matter if they are suspected of something
9650 criminal or not, are
9651 <a href="https://www.holderdeord.no/votes/1430838871e">required to
9652 give fingerprints to the police</a> (vote details from Holder de
9653 ord). The law make it sound like it will be optional, but in a few
9654 years there will be no option any more. The ID will be required to
9655 vote, to get a bank account, a bank card, to change address on the
9656 post office, to receive an electronic ID or to get a drivers license
9657 and many other tasks required to function in Norway. The banks plan
9658 to stop providing their own ID on the bank cards when this new
9659 national ID is introduced, and the national road authorities plan to
9660 change the drivers license to no longer be usable as identity cards.
9661 In effect, to function as a citizen in Norway a national ID card will
9662 be required, and to get it one need to provide the fingerprints to
9663 the police.</p>
9664
9665 <p>In addition to handing the fingerprint to the police (which
9666 promised to not make a copy of the fingerprint image at that point in
9667 time, but say nothing about doing it later), a picture of the
9668 fingerprint will be stored on the RFID chip, along with a picture of
9669 the face and other information about the person. Some of the
9670 information will be encrypted, but the encryption will be the same
9671 system as currently used in the passports. The codes to decrypt will
9672 be available to a lot of government offices and their suppliers around
9673 the globe, but for those that do not know anyone in those circles it
9674 is good to know that
9675 <a href="http://www.theguardian.com/technology/2006/nov/17/news.homeaffairs">the
9676 encryption is already broken</a>. And they
9677 <a href="http://www.networkworld.com/article/2215057/wireless/bad-guys-could-read-rfid-passports-at-217-feet--maybe-a-lot-more.html">can
9678 be read from 70 meters away</a>. This can be mitigated a bit by
9679 keeping it in a Faraday cage (metal box or metal wire container), but
9680 one will be required to take it out of there often enough to expose
9681 ones private and personal information to a lot of people that have no
9682 business getting access to that information.</p>
9683
9684 <p>The new Norwegian national IDs are a vehicle for identity theft,
9685 and I feel sorry for us all having politicians accepting such invasion
9686 of privacy without any objections. So are the Norwegian passports,
9687 but it has been possible to function in Norway without those so far.
9688 That option is going away with the passing of the new law. In this, I
9689 envy the Germans, because for them it is optional how much biometric
9690 information is stored in their national ID.</p>
9691
9692 <p>And if forced collection of fingerprints was not bad enough, the
9693 information collected in the national ID card register can be handed
9694 over to foreign intelligence services and police authorities, "when
9695 extradition is not considered disproportionate".</p>
9696
9697 <p>Update 2015-05-12: For those unable to believe that the Parliament
9698 really could make such decision, I wrote
9699 <a href="http://people.skolelinux.org/pere/blog/Blir_det_virkelig_krav_om_fingeravtrykk_i_nasjonale_ID_kort_.html">a
9700 summary of the sources I have</a> for concluding the way I do
9701 (Norwegian Only, as the sources are all in Norwegian).</p>
9702
9703 </div>
9704 <div class="tags">
9705
9706
9707 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>.
9708
9709
9710 </div>
9711 </div>
9712 <div class="padding"></div>
9713
9714 <div class="entry">
9715 <div class="title">
9716 <a href="http://people.skolelinux.org/pere/blog/What_would_it_cost_to_store_all_phone_calls_in_Norway_.html">What would it cost to store all phone calls in Norway?</a>
9717 </div>
9718 <div class="date">
9719 1st May 2015
9720 </div>
9721 <div class="body">
9722 <p>Many years ago, a friend of mine calculated how much it would cost
9723 to store the sound of all phone calls in Norway, and came up with the
9724 cost of around 20 million NOK (2.4 mill EUR) for all the calls in a
9725 year. I got curious and wondered what the same calculation would look
9726 like today. To do so one need an idea of how much data storage is
9727 needed for each minute of sound, how many minutes all the calls in
9728 Norway sums up to, and the cost of data storage.</p>
9729
9730 <p>The 2005 numbers are from
9731 <a href="http://www.digi.no/analyser/2005/10/04/vi-prater-stadig-mindre-i-roret">digi.no</a>,
9732 the 2012 numbers are from
9733 <a href="http://www.nkom.no/aktuelt/nyheter/fortsatt-vekst-i-det-norske-ekommarkedet">a
9734 NKOM report</a>, and I got the 2013 numbers after asking NKOM via
9735 email. I was told the numbers for 2014 will be presented May 20th,
9736 and decided not to wait for those, as I doubt they will be very
9737 different from the numbers from 2013.</p>
9738
9739 <p>The amount of data storage per minute sound depend on the wanted
9740 quality, and for phone calls it is generally believed that 8 Kbit/s is
9741 enough. See for example a
9742 <a href="http://www.cisco.com/c/en/us/support/docs/voice/voice-quality/7934-bwidth-consume.html#topic1">summary
9743 on voice quality from Cisco</a> for some alternatives. 8 Kbit/s is 60
9744 Kbytes/min, and this can be multiplied with the number of call minutes
9745 to get the storage requirements.</p>
9746
9747 <p>Storage prices varies a lot, depending on speed, backup strategies,
9748 availability requirements etc. But a simple way to calculate can be
9749 to use the price of a TiB-disk (around 1000 NOK / 120 EUR) and double
9750 it to take space, power and redundancy into account. It could be much
9751 higher with high speed and good redundancy requirements.</p>
9752
9753 <p>But back to the question, What would it cost to store all phone
9754 calls in Norway? Not much. Here is a small table showing the
9755 estimated cost, which is within the budget constraint of most medium
9756 and large organisations:</p>
9757
9758 <table border="1">
9759 <tr><th>Year</th><th>Call minutes</th><th>Size</th><th>Price in NOK / EUR</th></tr>
9760 <tr><td>2005</td><td align="right">24 000 000 000</td><td align="right">1.3 PiB</td><td align="right">3 mill / 358 000</td></tr>
9761 <tr><td>2012</td><td align="right">18 000 000 000</td><td align="right">1.0 PiB</td><td align="right">2.2 mill / 262 000</td></tr>
9762 <tr><td>2013</td><td align="right">17 000 000 000</td><td align="right">950 TiB</td><td align="right">2.1 mill / 250 000</td></tr>
9763 </table>
9764
9765 <p>This is the cost of buying the storage. Maintenance need to be
9766 taken into account too, but calculating that is left as an exercise
9767 for the reader. But it is obvious to me from those numbers that
9768 recording the sound of all phone calls in Norway is not going to be
9769 stopped because it is too expensive. I wonder if someone already is
9770 collecting the data?</p>
9771
9772 </div>
9773 <div class="tags">
9774
9775
9776 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>.
9777
9778
9779 </div>
9780 </div>
9781 <div class="padding"></div>
9782
9783 <div class="entry">
9784 <div class="title">
9785 <a href="http://people.skolelinux.org/pere/blog/First_Jessie_based_Debian_Edu_beta_release.html">First Jessie based Debian Edu beta release</a>
9786 </div>
9787 <div class="date">
9788 26th April 2015
9789 </div>
9790 <div class="body">
9791 <p>I am happy to report that the Debian Edu team sent out
9792 <a href="https://lists.debian.org/debian-edu-announce/2015/04/msg00000.html">this
9793 announcement today</a>:</p>
9794
9795 <pre>
9796 the Debian Edu / Skolelinux project is pleased to announce the first
9797 *beta* release of Debian Edu "Jessie" 8.0+edu0~b1, which for the first
9798 time is composed entirely of packages from the current Debian stable
9799 release, Debian 8 "Jessie".
9800
9801 (As most reading this will know, Debian "Jessie" hasn't actually been
9802 released by now. The release is still in progress but should finish
9803 later today ;)
9804
9805 We expect to make a final release of Debian Edu "Jessie" in the coming
9806 weeks, timed with the first point release of Debian Jessie. Upgrades
9807 from this beta release of Debian Edu Jessie to the final release will
9808 be possible and encouraged!
9809
9810 Please report feedback to debian-edu@lists.debian.org and/or submit
9811 bugs: http://wiki.debian.org/DebianEdu/HowTo/ReportBugs
9812
9813 Debian Edu - sometimes also known as "Skolelinux" - is a complete
9814 operating system for schools, universities and other
9815 organisations. Through its pre- prepared installation profiles
9816 administrators can install servers, workstations and laptops which
9817 will work in harmony on the school network. With Debian Edu, the
9818 teachers themselves or their technical support staff can roll out a
9819 complete multi-user, multi-machine study environment within hours or
9820 days.
9821
9822 Debian Edu is already in use at several hundred schools all over the
9823 world, particularly in Germany, Spain and Norway. Installations come
9824 with hundreds of applications pre-installed, plus the whole Debian
9825 archive of thousands of compatible packages within easy reach.
9826
9827 For those who want to give Debian Edu Jessie a try, download and
9828 installation instructions are available, including detailed
9829 instructions in the manual explaining the first steps, such as setting
9830 up a network or adding users. Please note that the password for the
9831 user your prompted for during installation must have a length of at
9832 least 5 characters!
9833
9834 == Where to download ==
9835
9836 A multi-architecture CD / usbstick image (649 MiB) for network booting
9837 can be downloaded at the following locations:
9838
9839 http://ftp.skolelinux.org/skolelinux-cd/debian-edu-8.0+edu0~b1-CD.iso
9840 rsync -avzP ftp.skolelinux.org::skolelinux-cd/debian-edu-8.0+edu0~b1-CD.iso .
9841
9842 The SHA1SUM of this image is: 54a524d16246cddd8d2cfd6ea52f2dd78c47ee0a
9843
9844 Alternatively an extended DVD / usbstick image (4.9 GiB) is also
9845 available, with more software included (saving additional download
9846 time):
9847
9848 http://ftp.skolelinux.org/skolelinux-cd/debian-edu-8.0+edu0~b1-USB.iso
9849 rsync -avzP ftp.skolelinux.org::skolelinux-cd/debian-edu-8.0+edu0~b1-USB.iso
9850
9851 The SHA1SUM of this image is: fb1f1504a490c077a48653898f9d6a461cb3c636
9852
9853 Sources are available from the Debian archive, see
9854 http://ftp.debian.org/debian-cd/8.0.0/source/ for some download
9855 options.
9856
9857 == Debian Edu Jessie manual in seven languages ==
9858
9859 Please see https://wiki.debian.org/DebianEdu/Documentation/Jessie/ for
9860 the English version of the Debian Edu jessie manual.
9861
9862 This manual has been fully translated to German, French, Italian,
9863 Danish, Dutch and Norwegian Bokmål. A partly translated version exists
9864 for Spanish. See http://maintainer.skolelinux.org/debian-edu-doc/ for
9865 online version of the translated manual.
9866
9867 More information about Debian 8 "Jessie" itself is provided in the
9868 release notes and the installation manual:
9869 - http://www.debian.org/releases/jessie/releasenotes
9870 - http://www.debian.org/releases/jessie/installmanual
9871
9872
9873 == Errata / known problems ==
9874
9875 It takes up to 15 minutes for a changed hostname to be updated via
9876 DHCP (#780461).
9877
9878 The hostname script fails to update LTSP server hostname (#783087).
9879
9880 Workaround: run update-hostname-from-ip on the client to update the
9881 hostname immediately.
9882
9883 Check https://wiki.debian.org/DebianEdu/Status/Jessie for a possibly
9884 more current and complete list.
9885
9886 == Some more details about Debian Edu 8.0+edu0~b1 Codename Jessie released 2015-04-25 ==
9887
9888 === Software updates ===
9889
9890 Everything which is new in Debian 8 Jessie, e.g.:
9891
9892 * Linux kernel 3.16.7-ctk9; for the i386 architecture, support for
9893 i486 processors has been dropped; oldest supported ones: i586 (like
9894 Intel Pentium and AMD K5).
9895
9896 * Desktop environments KDE Plasma Workspaces 4.11.13, GNOME 3.14,
9897 Xfce 4.12, LXDE 0.5.6
9898 * new optional desktop environment: MATE 1.8
9899 * KDE Plasma Workspaces is installed by default; to choose one of
9900 the others see the manual.
9901 * the browsers Iceweasel 31 ESR and Chromium 41
9902 * LibreOffice 4.3.3
9903 * GOsa 2.7.4
9904 * LTSP 5.5.4
9905 * CUPS print system 1.7.5
9906 * new boot framework: systemd
9907 * Educational toolbox GCompris 14.12
9908 * Music creator Rosegarden 14.02
9909 * Image editor Gimp 2.8.14
9910 * Virtual stargazer Stellarium 0.13.1
9911 * golearn 0.9
9912 * tuxpaint 0.9.22
9913 * New version of debian-installer from Debian Jessie.
9914 * Debian Jessie includes about 43000 packages available for installation.
9915 * More information about Debian 8 Jessie is provided in its release
9916 notes and the installation manual, see the link above.
9917
9918 === Installation changes ===
9919
9920 Installations done via PXE now also install firmware automatically
9921 for the hardware present.
9922
9923 === Fixed bugs ===
9924
9925 A number of bugs have been fixed in this release; the most noticeable
9926 from a user perspective:
9927
9928 * Inserting incorrect DNS information in Gosa will no longer break
9929 DNS completely, but instead stop DNS updates until the incorrect
9930 information is corrected (710362)
9931
9932 * shutdown-at-night now shuts the system down if gdm3 is used (775608).
9933
9934 === Sugar desktop removed ===
9935
9936 As the Sugar desktop was removed from Debian Jessie, it is also not
9937 available in Debian Edu jessie.
9938
9939
9940 == About Debian Edu / Skolelinux ==
9941
9942 Debian Edu, also known as Skolelinux, is a Linux distribution based on
9943 Debian providing an out-of-the box environment of a completely
9944 configured school network. Directly after installation a school server
9945 running all services needed for a school network is set up just
9946 waiting for users and machines being added via GOsa², a comfortable
9947 Web-UI. A netbooting environment is prepared using PXE, so after
9948 initial installation of the main server from CD or USB stick all other
9949 machines can be installed via the network. The provided school server
9950 provides LDAP database and Kerberos authentication service,
9951 centralized home directories, DHCP server, web proxy and many other
9952 services. The desktop contains more than 60 educational software
9953 packages and more are available from the Debian archive, and schools
9954 can choose between KDE, GNOME, LXDE, Xfce and MATE desktop
9955 environment.
9956
9957 == About Debian ==
9958
9959 The Debian Project was founded in 1993 by Ian Murdock to be a truly
9960 free community project. Since then the project has grown to be one of
9961 the largest and most influential open source projects. Thousands of
9962 volunteers from all over the world work together to create and
9963 maintain Debian software. Available in 70 languages, and supporting a
9964 huge range of computer types, Debian calls itself the universal
9965 operating system.
9966
9967 == Thanks ==
9968
9969 Thanks to everyone making Debian and Debian Edu / Skolelinux happen!
9970 You rock.
9971 </pre>
9972
9973 </div>
9974 <div class="tags">
9975
9976
9977 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
9978
9979
9980 </div>
9981 </div>
9982 <div class="padding"></div>
9983
9984 <div class="entry">
9985 <div class="title">
9986 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Shirish_Agarwal.html">Debian Edu interview: Shirish Agarwal</a>
9987 </div>
9988 <div class="date">
9989 15th April 2015
9990 </div>
9991 <div class="body">
9992 <p>It was a surprise to me to learn that project to create a complete
9993 computer system for schools I've involved in,
9994 <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a>, was
9995 being used in India. But apparently it is, and I managed to get an
9996 interview with one of the friends of the project there, Shirish
9997 Agarwal.</p>
9998
9999 <p><strong>Who are you, and how do you spend your days?</strong></p>
10000
10001 <p>My name is Shirish Agarwal. Based out of the educational and
10002 historical city of Pune, from the western state of Maharashtra, India.
10003 My bread comes from giving training, giving policy tips,
10004 installations on free software to mom and pop shops in different
10005 fields from Desktop publishing to retail shops as well as work with
10006 few software start-ups as well.</p>
10007
10008 <p><strong>How did you get in contact with the Skolelinux / Debian Edu
10009 project?</strong></p>
10010
10011 <p>It started innocently enough. I have been using Debian for a few
10012 years and in one local minidebconf / debutsav I was asked if there was
10013 anything for schools or education. I had worked / played with free
10014 educational softwares such as Gcompris and Stellarium for my many
10015 nieces and nephews so researched and found Debian Edu or Skolelinux as
10016 it was known then. Since then I have started using the various
10017 education meta-packages provided by the project.</p>
10018
10019 <p><strong>What do you see as the advantages of Skolelinux / Debian
10020 Edu?</strong></p>
10021
10022 <p>It's closest I have seen where a package full of educational
10023 software are packed, which are free and open (both literally and
10024 figuratively). Even if I take the simplest software which is
10025 gcompris, the number of activities therein are amazing. Another one of
10026 the softwares that I have liked for a long time is stellarium. Even
10027 pysycache is cool except for couple of issues I encountered
10028 <a href="https://bugs.debian.org/781841">#781841</a> and
10029 <a href="https://bugs.debian.org/781842">#781842</a>.</p>
10030
10031 <p>I prefer software installed on the system over web based solutions,
10032 as a web site can disappear any time but the software on disk has the
10033 possibility of a larger life span. Of course with both it's more a
10034 question if it has enough users who make it fun or sustainable or both
10035 for the developer per-se.</p>
10036
10037 <p><strong>What do you see as the disadvantages of Skolelinux / Debian
10038 Edu?</strong></p>
10039
10040 <p>I do see that the Debian Edu team seems to be short-handed and I
10041 think more efforts should be made to make it popular and ask and take
10042 help from people and the larger community wherever possible.</p>
10043
10044 <p>I don't see any disadvantage to use Skolelinux apart from the fact
10045 that most apps. are generic which is good or bad how you see it.
10046 However, saying that I do acknowledge the fact that the canvas is
10047 pretty big and there are lot of interesting ideas that could be done
10048 but for reasons not known not done or if done I don't know about them.
10049 Let me share some of the ideas (these are more upstream based but
10050 still) I have had for a long time :</p>
10051
10052 <p>1. Classical maths question of two trains in opposing directions
10053 each running @x kmph/mph at y distance, when they will meet and how
10054 far would each travel and similar questions like these.
10055
10056 <p>The computer is a fantastic system where questions like these can
10057 be drawn, animated and the methodology and answers teased out in
10058 interactive manner. While sites such as the
10059 <a href="http://mathforum.org/dr.math/faq/faq.two.trains.html">Ask
10060 Dr. Math FAQ on The Two Trains problem</a> (as an example or point of
10061 inspiration) can be used there is lot more that can be done. I dunno
10062 if there is a free software which does something like this. The idea
10063 being a blend of objects + animation + interaction which does
10064 this. The whole interaction could be gamified with points or sounds or
10065 colourful celebration whenever the user gets even part of the question
10066 or/and methodology right. That would help reinforce good behaviour.
10067 This understanding could be used to share/showcase everything from how
10068 the first wheel came to be, to evolution to how astronomy started,
10069 psychics and everything in-between.</p>
10070
10071 <p>One specific idea in the train part was having the Linux mascot on
10072 one train and the BSD or GNU mascot on the other train and they
10073 meeting somewhere in-between. Characters from blender movies could
10074 also be used.</p>
10075
10076 <p>2. Loads of crossword-puzzles with reference to subjects: We have
10077 enormous data sets in Wikipedia and Wikitionary. I don't think it
10078 should be a big job to design crossword puzzles. Using categories and
10079 sub-categories it should be doable to have Q&A single word answers
10080 from the existing data-sets. What would make it easy or hard could be
10081 the length of the word + existence of many or few vowels depending on
10082 the user's input.</p>
10083
10084 <p>3. Jigsaw puzzles - We already have a great software called
10085 palapeli with number of slicers making it pretty interesting. What
10086 needs to be done is to download large number of public domain and
10087 copyleft images, tease and use IPTC tags to categorise them into
10088 nature, history etc. and let it loose. This could turn to be really
10089 huge collection of images. One source could be taken from
10090 commons.wikimedia.org, others could be huge collection of royalty-free
10091 stock photos. Potential is immense.</p>
10092
10093 <p>Apart from this, free software suffers in two directions, we lag
10094 both in development (of using new features per-se) and maintenance a
10095 lot. This is more so in educational software as these applications
10096 need to be timely and the opportunity cost of missing deadlines is
10097 immense. If we are able to solve issues of funding for development and
10098 maintenance of such software I don't see any big difficulties. I know
10099 of few start-ups in and around India who would love to develop and
10100 maintain such software if funding issues could be solved.</p>
10101
10102 <p><strong>Which free software do you use daily?</strong></p>
10103
10104 <p>That would be huge list. Some of the softwares are obviously apt,
10105 aptitude, debdelta, leafpad, the shell of course (zsh nowadays),
10106 quassel for IRC. In games I use shisen-sho while card-games are evenly
10107 between kpat and Aiselriot. In desktops it's a tie between
10108 gnome-flashback and mate.</p>
10109
10110 <p><strong>Which strategy do you believe is the right one to use to
10111 get schools to use free software?</strong></p>
10112
10113 <p>I think it should first start with using specific FOSS apps. in
10114 whatever environment they are. If it's MS-Windows or Mac so be it.
10115 Once they are habitual with the apps. and there is buy-in from the
10116 school management then it could be installed anywhere. Most of the
10117 people now understand the concept of a repository because of the
10118 various online stores so it isn't hard to convince on that front.</p>
10119
10120 <p>What is harder is having enough people with technical skills and
10121 passion to service them. If you get buy-in from one or two teachers
10122 then ideas like above could also be asked to be done as a project as
10123 well.</p>
10124
10125 <p>I think where we fall short more than anything is in marketing. For
10126 instance, Debian has this whole range of fonts in its archive but
10127 there isn't even a page where all those different fonts in the La
10128 Ipsum format could be tried out for newcomers.</p>
10129
10130 <p>One of the issues faced constantly in installations is with updates
10131 and upgrades. People have this myth that each update and upgrade
10132 means the user interface will / has to change. I have seen this
10133 innumerable times. That perhaps is one of the reasons which browsers
10134 like Iceweasel / Firefox change user interfaces so much, not because
10135 it might be needed or be functional but because people believe that
10136 changed user interfaces are better. This, can easily be pointed with
10137 the user interfaces changed with almost every MS-Windows and Mac OS
10138 releases.</p>
10139
10140 <p>The problems with Debian Edu for deployment are many. The biggest
10141 is the huge gap between what is taught in schools and what Debian Edu
10142 is aimed at.
10143
10144 <p>Me and my friends did teach on week-ends in a government school for
10145 around 2 years, and
10146 <a href="https://flossexperiences.wordpress.com/2012/10/08/sharings/">gathered
10147 some experience</a> there. Some of the things we learnt/discovered
10148 there was :</p>
10149
10150 <ol>
10151
10152 <li>Most of the teachers are very territorial about their subjects
10153 and they do not want you to teach anything out of the
10154 portion/syllabus given.</li>
10155
10156 <li>They want any activity on the system in accordance to whatever
10157 is in the syllabus.</li>
10158
10159 <li>There are huge barriers both with the English language and at
10160 times with objects or whatever. An example, let's say in gcompris
10161 you have objects falling down and you have to name them and let's
10162 say the falling object is a hat or a fedora hat, this would not be
10163 as recognizable as say a
10164 <a href="https://en.wikipedia.org/wiki/Puneri_Pagadi">Puneri
10165 Pagdi</a> so there is need to inject local objects, words wherever
10166 possible. Especially for word-games there are so many hindi words
10167 which have become part of english vocabulary (for instance in
10168 parley), those could be made into a hinglish collection or
10169 something but that is something for upstream to do.</li>
10170
10171 </ol>
10172
10173 </div>
10174 <div class="tags">
10175
10176
10177 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju</a>.
10178
10179
10180 </div>
10181 </div>
10182 <div class="padding"></div>
10183
10184 <div class="entry">
10185 <div class="title">
10186 <a href="http://people.skolelinux.org/pere/blog/I_m_going_to_the_Open_Source_Developers__Conference_Nordic_2015_.html">I'm going to the Open Source Developers' Conference Nordic 2015!</a>
10187 </div>
10188 <div class="date">
10189 7th April 2015
10190 </div>
10191 <div class="body">
10192 <p>I am happy to let you all know that I'm going to the <a
10193 href="http://act.osdc.no/osdc2015no/">Open Source Developers'
10194 Conference Nordic 2015</a>!</p>
10195
10196 <p>It take place Friday 8th to Sunday 10th of May in Oslo next to
10197 where I work, and I finally got around to submitting
10198 <a href="http://act.osdc.no/osdc2015no/talk/6192">a talk proposal for
10199 it</a> (dead link for most people until the talk is accepted). As
10200 part of my involvement with the
10201 <a href="http://www.nuug.no/">Norwegian Unix User Group member
10202 association</a> I have been slightly involved in the planning of this
10203 conference for a while now, with a focus on organising a Civic Hacking
10204 Hackathon with our friends
10205 over at <a href="http://www.mysociety.org/">mySociety</a> and
10206 <a href="http://www.holderdeord.no/">Holder de ord</a>. This part is
10207 named the 'My Society' track in the program. There is still space for
10208 more talks and participants. I hope to see you there.</p>
10209
10210 <p>Check out <a href="http://act.osdc.no/osdc2015no/talks">the talks
10211 submitted and accepted so far</a>.</p>
10212
10213 </div>
10214 <div class="tags">
10215
10216
10217 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn</a>.
10218
10219
10220 </div>
10221 </div>
10222 <div class="padding"></div>
10223
10224 <div class="entry">
10225 <div class="title">
10226 <a href="http://people.skolelinux.org/pere/blog/Proof_reading_the_Norwegian_translation_of_Free_Culture_by_Lessig.html">Proof reading the Norwegian translation of Free Culture by Lessig</a>
10227 </div>
10228 <div class="date">
10229 4th April 2015
10230 </div>
10231 <div class="body">
10232 <p>During eastern I had some time to continue working on the Norwegian
10233 <a href="http://www.docbook.org/">docbook</a> version of the 2004 book
10234 <a href="http://free-culture.cc/">Free Culture</a> by Lawrence Lessig.
10235 At the moment I am proof reading the finished text, looking for typos,
10236 inconsistent wordings and sentences that do not flow as they should.
10237 I'm more than two thirds done with the text, and welcome others to
10238 check the text up to chapter 13. The current status is available on the
10239 <a href="https://github.com/petterreinholdtsen/free-culture-lessig">github</a>
10240 project pages. You can also check out the
10241 <a href="https://github.com/petterreinholdtsen/free-culture-lessig/blob/master/archive/freeculture.nb.pdf?raw=true">PDF</a>,
10242 <a href="https://github.com/petterreinholdtsen/free-culture-lessig/blob/master/archive/freeculture.nb.epub?raw=true">EPUB</a>
10243 and HTML version available in the
10244 <a href="https://github.com/petterreinholdtsen/free-culture-lessig/tree/master/archive">archive
10245 directory</a>.</p>
10246
10247 <p>Please report typos, bugs and improvements to the github project if
10248 you find any.</p>
10249
10250 </div>
10251 <div class="tags">
10252
10253
10254 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>.
10255
10256
10257 </div>
10258 </div>
10259 <div class="padding"></div>
10260
10261 <div class="entry">
10262 <div class="title">
10263 <a href="http://people.skolelinux.org/pere/blog/Frikanalen__Norwegian_TV_channel_for_technical_topics.html">Frikanalen, Norwegian TV channel for technical topics</a>
10264 </div>
10265 <div class="date">
10266 9th March 2015
10267 </div>
10268 <div class="body">
10269 <p>The <a href="http://www.nuug.no/">Norwegian Unix User Group</a>,
10270 where I am a member, and where people interested in free software,
10271 open standards and UNIX like operating systems like Linux and the BSDs
10272 come together, record our monthly technical presentations on video.
10273 The purpose is to document the talks and spread them to a wider
10274 audience. For this, the the Norwegian nationwide open channel
10275 <a href="http://www.frikanalen.no/">Frikanalen</a> is a useful venue.
10276 Since a few days ago, when I figured out the
10277 <a href="http://beta.frikanalen.no/api/">REST API</a> to program the
10278 <a href="http://beta.frikanalen.tv/guide/">channel time schedule</a>,
10279 the channel has been filled with NUUG talks, related recordings and
10280 some Creative Commons licensed TED talks (from archive.org). I fill
10281 all "leftover bits" on the channel with content from NUUG, which at
10282 the moment is almost 17 of 24 hours every day.</p>
10283
10284 <p>The list of NUUG videos
10285 <a href="http://beta.frikanalen.tv/organization/82">uploaded so far</a>
10286 include things like a
10287 <a href="http://beta.frikanalen.tv/video/625090">one hour talk by John
10288 Perry Barlow when he visited Oslo</a>, a presentation of
10289 <a href="http://beta.frikanalen.tv/video/624275">Haiku, the BeOS
10290 re-implementation</a>, the
10291 <a href="http://beta.frikanalen.tv/video/624493">history of FiksGataMi,
10292 the Norwegian version of FixMyStreet</a>, the good old
10293 <a href="http://beta.frikanalen.tv/video/623566">Warriors of the net
10294 video</A> and many others.</p>
10295
10296 <p>We have a large backlog of NUUG talks not yet uploaded to
10297 Frikanalen, and plan to upload every useful bit to the channel to
10298 spread the word there. I also hope to find useful recordings from the
10299 Chaos Computer Club and Debian conferences and spread them on the
10300 channel as well. But this require locating the videos and their meta
10301 information (title, description, license, etc), and preparing the
10302 recordings for broadcast, and I have not yet had the spare time to
10303 focus on this. Perhaps you want to help. Please join us on IRC,
10304 <a href="irc://irc.freenode.net/%23nuug">#nuug on irc.freenode.net</a>
10305 if you want to help make this happen.</p>
10306
10307 <p>But as I said, already the channel is already almost exclusively
10308 filled with technical topics, and if you want to learn something new
10309 today, check out the <a href="http://www.frikanalen.tv/se">Ogg Theora
10310 web stream</a> or use one of the other ways to get access to the
10311 channel. Unfortunately the Ogg Theora recoding for distribution still
10312 do not properly sync the video and sound. It is generated by recoding
10313 a internal MPEG transport stream with MPEG4 coded video (ie H.264) to
10314 Ogg Theora / Vorbis, and we have not been able to find a way that
10315 produces acceptable quality. Help needed, please get in touch if you
10316 know how to fix it using free software.</p>
10317
10318 </div>
10319 <div class="tags">
10320
10321
10322 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen</a>, <a href="http://people.skolelinux.org/pere/blog/tags/h264">h264</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
10323
10324
10325 </div>
10326 </div>
10327 <div class="padding"></div>
10328
10329 <div class="entry">
10330 <div class="title">
10331 <a href="http://people.skolelinux.org/pere/blog/The_Citizenfour_documentary_on_the_Snowden_confirmations_to_Norway.html">The Citizenfour documentary on the Snowden confirmations to Norway</a>
10332 </div>
10333 <div class="date">
10334 28th February 2015
10335 </div>
10336 <div class="body">
10337 <p>Today I was happy to learn that the documentary
10338 <a href="https://citizenfourfilm.com/">Citizenfour</a> by
10339 <a href="https://en.wikipedia.org/wiki/Laura_Poitras">Laura Poitras</a>
10340 finally will show up in Norway. According to the magazine
10341 <a href="http://montages.no/">Montages</a>, a deal has finally been
10342 made for
10343 <a href="http://montages.no/nyheter/snowden-dokumentaren-citizenfour-far-norsk-kinodistribusjon/">Cinema
10344 distribution in Norway</a> and the movie will have its premiere soon.
10345 This is great news. As part of my involvement with
10346 <a href="http://www.nuug.no/">the Norwegian Unix User Group</a>, me and
10347 a friend have
10348 <a href="http://www.nuug.no/news/Dokumentar_om_Snowdenbekreftelsene_til_Norge_.shtml">tried
10349 to get the movie to Norway</a> ourselves, but obviously
10350 <a href="http://www.nuug.no/news/Dokumentar_om_Snowdenbekreftelsene_endelig_til_Norge_.shtml">we
10351 were too late</a> and Tor Fosse beat us to it. I am happy he did, as
10352 the movie will make its way to the public and we do not have to make
10353 it happen ourselves.
10354 <a href="https://www.youtube.com/watch?v=XiGwAvd5mvM">The trailer</a>
10355 can be seen on youtube, if you are curious what kind of film this
10356 is.</p>
10357
10358 <p>The whistle blower Edward Snowden really deserve political asylum
10359 here in Norway, but I am afraid he would not be safe.</p>
10360
10361 </div>
10362 <div class="tags">
10363
10364
10365 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>.
10366
10367
10368 </div>
10369 </div>
10370 <div class="padding"></div>
10371
10372 <div class="entry">
10373 <div class="title">
10374 <a href="http://people.skolelinux.org/pere/blog/The_Norwegian_open_channel_Frikanalen___24x7_on_the_Internet.html">The Norwegian open channel Frikanalen - 24x7 on the Internet</a>
10375 </div>
10376 <div class="date">
10377 25th February 2015
10378 </div>
10379 <div class="body">
10380 <p>The Norwegian nationwide open channel
10381 <a href="http://www.frikanalen.no/">Frikanalen</a> is still going
10382 strong. It allow everyone to send the video they want on national
10383 television. It is a TV station administrated completely using a web
10384 browser, running only <ahref="https://github.com/Frikanalen">Free
10385 Software</a>, providing <ahref="http://beta.frikanalen.tv/api">a REST
10386 api</a> for administrators and members, and with distribution on the
10387 national DVB-T distribution network RiksTV. But only between 12:00
10388 and 17:30 Norwegian time. This has finally changed, after many years
10389 with limited distribution. A few weeks ago, we set up a Ogg Theora
10390 stream via icecast to allow everyone with Internet access to check out
10391 the channel the rest of the day. This is presented on
10392 <a href="http://www.frikanalen.tv/se">the Frikanalen web site now</a>. And
10393 since a few days ago, the channel is also available
10394 via <a href="https://www.uninett.no/iptv-tilgang">multicast on
10395 UNINETT</a>, available for those using IPTV TVs and set-top boxes in
10396 the Norwegian National Research and Education network.</p>
10397
10398 <p>If you want to see what is on the channel, point your media player
10399 to one of these sources. The first should work with most players and
10400 browsers, while as far as I know, the multicast UDP stream only work
10401 with VLC.</p>
10402
10403 <ul>
10404 <li><a href="http://video.nuug.no/frikanalen.ogv">http://video.nuug.no/frikanalen.ogv</a></li>
10405 <li>udp://@224.17.43.129:1234</li>
10406 </ul>
10407
10408 <p>The Ogg Theora / icecast stream is not working well, as the video
10409 and audio is slightly out of sync. We have not been able to figure
10410 out how to fix it. It is generated by recoding a internal MPEG
10411 transport stream with MPEG4 coded video (ie H.264) to Ogg Theora /
10412 Vorbis, and the result is less then stellar. If you have ideas how to
10413 fix it, please let us know on frikanalen (at) nuug.no. We currently
10414 use this with ffmpeg2theora 0.29:</p>
10415
10416 <blockquote><pre>
10417 ./ffmpeg2theora.linux &lt;OBE_gemini_URL.ts&gt; -F 25 -x 720 -y 405 \
10418 --deinterlace --inputfps 25 -c 1 -H 48000 --keyint 8 --buf-delay 100 \
10419 --nosync -V 700 -o - | oggfwd video.nuug.no 8000 &lt;pw&gt; /frikanalen.ogv
10420 </pre></blockquote>
10421
10422 <p>If you get the multicast UDP stream working, please let me know, as
10423 I am curious how far the multicast stream reach. It do not make it to
10424 my home network, nor any other commercially available network in
10425 Norway that I am aware of.</p>
10426
10427 </div>
10428 <div class="tags">
10429
10430
10431 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen</a>, <a href="http://people.skolelinux.org/pere/blog/tags/h264">h264</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
10432
10433
10434 </div>
10435 </div>
10436 <div class="padding"></div>
10437
10438 <div class="entry">
10439 <div class="title">
10440 <a href="http://people.skolelinux.org/pere/blog/Nude_body_scanner_now_present_on_Norwegian_airport.html">Nude body scanner now present on Norwegian airport</a>
10441 </div>
10442 <div class="date">
10443 10th February 2015
10444 </div>
10445 <div class="body">
10446 <p>Aftenposten, one of the largest newspapers in Norway, today report
10447 that
10448 <a href="http://www.aftenposten.no/reise/Slik-skannes-kroppen-din-i-fremtidens-sikkerhetskontroll-490666_1.snd">three
10449 of the nude body scanners now is put to use at Gardermoen</a>, the
10450 main airport in Norway. This way the travelers can have their body
10451 photographed without cloths when visiting Norway. Of course this
10452 horrible news is presented with a positive spin, stating that "now
10453 travelers can move past the security check point faster and more
10454 efficiently", but fail to mention that the machines in question take
10455 pictures of their nude bodies and store them internally in the
10456 computer, while only presenting sketch figure of the body to the
10457 public. The article is written in a way that leave the impression
10458 that the new machines do not take these nude pictures and only create
10459 the sketch figures. In reality the same nude pictures are still
10460 taken, but not presented to everyone. They are still available for
10461 the owners of the system and the people doing maintenance of the
10462 scanners, as long as they are taken and stored.</p>
10463
10464 <p>Wikipedia have a more on
10465 <a href="https://en.wikipedia.org/wiki/Full_body_scanner">Full body
10466 scanners</a>, including example images and a summary of the
10467 controversy about these scanners.</p>
10468
10469 <p>Personally I will decline to use these machines, as I believe strip
10470 searches of my body is a very intrusive attack on my privacy, and not
10471 something everyone should have to accept to travel.</p>
10472
10473 </div>
10474 <div class="tags">
10475
10476
10477 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>.
10478
10479
10480 </div>
10481 </div>
10482 <div class="padding"></div>
10483
10484 <div class="entry">
10485 <div class="title">
10486 <a href="http://people.skolelinux.org/pere/blog/Nagios_module_to_check_if_the_Frikanalen_video_stream_is_working.html">Nagios module to check if the Frikanalen video stream is working</a>
10487 </div>
10488 <div class="date">
10489 8th February 2015
10490 </div>
10491 <div class="body">
10492 <p>When running a TV station with both broadcast and web stream
10493 distribution, it is useful to know that the stream is working. As I
10494 am involved in the Norwegian open channel
10495 <a href="http://www.frikanalen.no/">Frikanalen</a> as part of my
10496 activity in the <a href="http://www.nuug.no/">NUUG member
10497 organisation</a>, I wrote a script to use mplayer to connect to a
10498 video stream, pick two images 35 seconds apart and compare them. If
10499 the images are missing or identical, something is probably wrong with
10500 the stream and an alarm should be triggered. The script is written as
10501 a Nagios plugin, allowing us to use Nagios to run the check regularly
10502 and sound the alarm when something is wrong. It is able to detect
10503 both a hanging and a broken video stream.</p>
10504
10505 <p>I just uploaded the code for the script into the
10506 <a href="https://github.com/Frikanalen/frikanalen/blob/master/nagios-plugin/check_video_stream_images">Frikanalen
10507 git repository</a> on github. If you run a TV station with web
10508 streaming, perhaps you can find it useful too.</p>
10509
10510 <p>Last year, the Frikanalen public TV station transformed into using
10511 only Linux based free software to administrate, schedule and
10512 distribute the TV content. The
10513 <a href="https://github.com/Frikanalen">source code for the entire TV
10514 station</a> is available from the Github project page. Everyone can
10515 use it to send their content on national TV, and we provide both a web
10516 GUI and <a href="http://beta.frikanalen.tv/api/">a web API</a> to
10517 <a href="http://beta.frikanalen.tv/login/?next=/members/video/">add</a>
10518 and <a href="http://beta.frikanalen.tv/members/plan/">schedule
10519 content</a>. And thanks to last weeks developer gathering and
10520 following activity, we now have the schedule
10521 <a href="http://beta.frikanalen.tv/xmltv/2015/01/01">available as
10522 XMLTV</a> too. Still a lot of work left to do, especially with the
10523 process to add videos and with the scheduling, so your contribution is
10524 most welcome. Perhaps you want to set up your own TV station?</p>
10525
10526 <p>Update 2015-02-25: Got a tip from Uninett about their
10527 <a href="https://scm.uninett.no/maalepaaler/qstream/">qstream
10528 monitoring system</a>, which gather connection time, jitter, packet
10529 loss and burst bandwidth usage. It look useful to check if UDP
10530 streams are working as they should.</p>
10531
10532 </div>
10533 <div class="tags">
10534
10535
10536 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
10537
10538
10539 </div>
10540 </div>
10541 <div class="padding"></div>
10542
10543 <div class="entry">
10544 <div class="title">
10545 <a href="http://people.skolelinux.org/pere/blog/Norwegian_Bokm_l_subtitles_for_the_FSF_video_User_Liberation.html">Norwegian Bokmål subtitles for the FSF video User Liberation</a>
10546 </div>
10547 <div class="date">
10548 12th January 2015
10549 </div>
10550 <div class="body">
10551 <p>A few days ago, the <a href="https://www.fsf.org/">Free Software
10552 Foundation</a> announced a new video
10553 <a href="https://www.fsf.org/blogs/community/user-liberation-watch-and-share-our-new-video">explaining
10554 Free software</a> in simple terms. The video named User Liberation is
10555 3 minutes long, and I recommend showing it to everyone you know as a
10556 way to explain what Free Software is all about. Unfortunately several
10557 of the people I know do not understand English and Spanish, so it did
10558 not make sense to show it to them.</p>
10559
10560 <p>But today I was told that
10561 <a href="https://www.fsf.org/blogs/community/user-liberation-watch-and-share-our-new-video">English
10562 subtitles were available</a> and set out to provide Norwegian Bokmål
10563 subtitles based on these. The result has been sent to FSF and made
10564 available in
10565 <a href="https://github.com/petterreinholdtsen/fsf-video-user-liberation-subtitles">a
10566 git repository</a> provided by Github. Please let me know if you find
10567 errors or have improvements to the subtitles.</p>
10568
10569 <p>Update 2015-02-03: Since I publised this post, FSF created a
10570 Libreplanet
10571 <a href="http://libreplanet.org/wiki/Group:FSF/User_Liberation_Video_Translation">project
10572 to track subtitles</A> for the video.</p>
10573
10574 </div>
10575 <div class="tags">
10576
10577
10578 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
10579
10580
10581 </div>
10582 </div>
10583 <div class="padding"></div>
10584
10585 <div class="entry">
10586 <div class="title">
10587 <a href="http://people.skolelinux.org/pere/blog/Updated_version_of_the_Norwegian_web_service_FiksGataMi.html">Updated version of the Norwegian web service FiksGataMi</a>
10588 </div>
10589 <div class="date">
10590 30th December 2014
10591 </div>
10592 <div class="body">
10593 <p>I am very happy that we in the
10594 <a href="http://www.nuug.no/">Norwegian Unix User group (NUUG)</a>,
10595 spearheaded by Marius Halden from NUUG and Matthew Somerville from
10596 <a href="http://www.mysociety.org/">mySociety</a>, finally managed to
10597 upgrade the code base for the Norwegian version of
10598 <a href="http://fixmystreet.org/">FixMyStreet</a>. This
10599 was the first major update since 2011. The refurbished
10600 <a href="http://www.fiksgatami.no/">FiksGataMi</a> is already live, and
10601 seem to hold up the pressure. The
10602 <a href="http://www.nuug.no/news/Pressemelding__FiksGataMi_i_oppdatert_og_mobilvennlig_klesdrakt.shtml">press
10603 release and announcement</a> went out this morning.</p>
10604
10605 <p>FixMyStreet is a web platform for allowing the citizens to easily
10606 report problems with public infrastructure to the responsible
10607 authorities. Think of it as a shared mail client with map support,
10608 allowing everyone to see what already was reported and comment on the
10609 reports in public.</p>
10610
10611 </div>
10612 <div class="tags">
10613
10614
10615 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
10616
10617
10618 </div>
10619 </div>
10620 <div class="padding"></div>
10621
10622 <div class="entry">
10623 <div class="title">
10624 <a href="http://people.skolelinux.org/pere/blog/Of_course_USA_loses_in_cyber_war___NSA_and_friends_made_sure_it_would_happen.html">Of course USA loses in cyber war - NSA and friends made sure it would happen</a>
10625 </div>
10626 <div class="date">
10627 19th December 2014
10628 </div>
10629 <div class="body">
10630 <p>So, Sony caved in
10631 (<a href="https://twitter.com/RobLowe/status/545338568512917504">according
10632 to Rob Lowe</a>) and demonstrated that America lost its first cyberwar
10633 (<a href="https://twitter.com/newtgingrich/status/545339074975109122">according
10634 to Newt Gingrich</a>). It should not surprise anyone, after the
10635 whistle blower Edward Snowden documented that the government of USA
10636 and their allies for many years have done their best to make sure the
10637 technology used by its citizens is filled with security holes allowing
10638 the secret services to spy on its own population. No one in their
10639 right minds could believe that the ability to snoop on the people all
10640 over the globe could only be used by the personnel authorized to do so
10641 by the president of the United States of America. If the capabilities
10642 are there, they will be used by friend and foe alike, and now they are
10643 being used to bring Sony on its knees.</p>
10644
10645 <p>I doubt it will a lesson learned, and expect USA to lose its next
10646 cyber war too, given how eager the western intelligence communities
10647 (and probably the non-western too, but it is less in the news) seem to
10648 be to continue its current dragnet surveillance practice.</p>
10649
10650 <p>There is a reason why China and others are trying to move away from
10651 Windows to Linux and other alternatives, and it is not to avoid
10652 sending its hard earned dollars to Cayman Islands (or whatever
10653 <a href="https://en.wikipedia.org/wiki/Tax_haven">tax haven</a>
10654 Microsoft is using these days to collect the majority of its
10655 income. :)</p>
10656
10657 </div>
10658 <div class="tags">
10659
10660
10661 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>.
10662
10663
10664 </div>
10665 </div>
10666 <div class="padding"></div>
10667
10668 <div class="entry">
10669 <div class="title">
10670 <a href="http://people.skolelinux.org/pere/blog/How_to_stay_with_sysvinit_in_Debian_Jessie.html">How to stay with sysvinit in Debian Jessie</a>
10671 </div>
10672 <div class="date">
10673 22nd November 2014
10674 </div>
10675 <div class="body">
10676 <p>By now, it is well known that Debian Jessie will not be using
10677 sysvinit as its boot system by default. But how can one keep using
10678 sysvinit in Jessie? It is fairly easy, and here are a few recipes,
10679 courtesy of
10680 <a href="http://www.vitavonni.de/blog/201410/2014102101-avoiding-systemd.html">Erich
10681 Schubert</a> and
10682 <a href="http://smcv.pseudorandom.co.uk/2014/still_universal/">Simon
10683 McVittie</a>.
10684
10685 <p>If you already are using Wheezy and want to upgrade to Jessie and
10686 keep sysvinit as your boot system, create a file
10687 <tt>/etc/apt/preferences.d/use-sysvinit</tt> with this content before
10688 you upgrade:</p>
10689
10690 <p><blockquote><pre>
10691 Package: systemd-sysv
10692 Pin: release o=Debian
10693 Pin-Priority: -1
10694 </pre></blockquote><p>
10695
10696 <p>This file content will tell apt and aptitude to not consider
10697 installing systemd-sysv as part of any installation and upgrade
10698 solution when resolving dependencies, and thus tell it to avoid
10699 systemd as a default boot system. The end result should be that the
10700 upgraded system keep using sysvinit.</p>
10701
10702 <p>If you are installing Jessie for the first time, there is no way to
10703 get sysvinit installed by default (debootstrap used by
10704 debian-installer have no option for this), but one can tell the
10705 installer to switch to sysvinit before the first boot. Either by
10706 using a kernel argument to the installer, or by adding a line to the
10707 preseed file used. First, the kernel command line argument:
10708
10709 <p><blockquote><pre>
10710 preseed/late_command="in-target apt-get install --purge -y sysvinit-core"
10711 </pre></blockquote><p>
10712
10713 <p>Next, the line to use in a preseed file:</p>
10714
10715 <p><blockquote><pre>
10716 d-i preseed/late_command string in-target apt-get install -y sysvinit-core
10717 </pre></blockquote><p>
10718
10719 <p>One can of course also do this after the first boot by installing
10720 the sysvinit-core package.</p>
10721
10722 <p>I recommend only using sysvinit if you really need it, as the
10723 sysvinit boot sequence in Debian have several hardware specific bugs
10724 on Linux caused by the fact that it is unpredictable when hardware
10725 devices show up during boot. But on the other hand, the new default
10726 boot system still have a few rough edges I hope will be fixed before
10727 Jessie is released.</p>
10728
10729 <p>Update 2014-11-26: Inspired by
10730 <ahref="https://www.mirbsd.org/permalinks/wlog-10-tg_e20141125-tg.htm#e20141125-tg_wlog-10-tg">a
10731 blog post by Torsten Glaser</a>, added --purge to the preseed
10732 line.</p>
10733
10734 </div>
10735 <div class="tags">
10736
10737
10738 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
10739
10740
10741 </div>
10742 </div>
10743 <div class="padding"></div>
10744
10745 <div class="entry">
10746 <div class="title">
10747 <a href="http://people.skolelinux.org/pere/blog/A_Debian_package_for_SMTP_via_Tor__aka_SMTorP__using_exim4.html">A Debian package for SMTP via Tor (aka SMTorP) using exim4</a>
10748 </div>
10749 <div class="date">
10750 10th November 2014
10751 </div>
10752 <div class="body">
10753 <p>The right to communicate with your friends and family in private,
10754 without anyone snooping, is a right every citicen have in a liberal
10755 democracy. But this right is under serious attack these days.</p>
10756
10757 <p>A while back it occurred to me that one way to make the dragnet
10758 surveillance conducted by NSA, GCHQ, FRA and others (and confirmed by
10759 the whisleblower Snowden) more expensive for Internet email,
10760 is to deliver all email using SMTP via Tor. Such SMTP option would be
10761 a nice addition to the FreedomBox project if we could send email
10762 between FreedomBox machines without leaking metadata about the emails
10763 to the people peeking on the wire. I
10764 <a href="http://lists.alioth.debian.org/pipermail/freedombox-discuss/2014-October/006493.html">proposed
10765 this on the FreedomBox project mailing list in October</a> and got a
10766 lot of useful feedback and suggestions. It also became obvious to me
10767 that this was not a novel idea, as the same idea was tested and
10768 documented by Johannes Berg as early as 2006, and both
10769 <a href="https://github.com/pagekite/Mailpile/wiki/SMTorP">the
10770 Mailpile</a> and <a href="http://dee.su/cables">the Cables</a> systems
10771 propose a similar method / protocol to pass emails between users.</p>
10772
10773 <p>To implement such system one need to set up a Tor hidden service
10774 providing the SMTP protocol on port 25, and use email addresses
10775 looking like username@hidden-service-name.onion. With such addresses
10776 the connections to port 25 on hidden-service-name.onion using Tor will
10777 go to the correct SMTP server. To do this, one need to configure the
10778 Tor daemon to provide the hidden service and the mail server to accept
10779 emails for this .onion domain. To learn more about Exim configuration
10780 in Debian and test the design provided by Johannes Berg in his FAQ, I
10781 set out yesterday to create a Debian package for making it trivial to
10782 set up such SMTP over Tor service based on Debian. Getting it to work
10783 were fairly easy, and
10784 <a href="https://github.com/petterreinholdtsen/exim4-smtorp">the
10785 source code for the Debian package</a> is available from github. I
10786 plan to move it into Debian if further testing prove this to be a
10787 useful approach.</p>
10788
10789 <p>If you want to test this, set up a blank Debian machine without any
10790 mail system installed (or run <tt>apt-get purge exim4-config</tt> to
10791 get rid of exim4). Install tor, clone the git repository mentioned
10792 above, build the deb and install it on the machine. Next, run
10793 <tt>/usr/lib/exim4-smtorp/setup-exim-hidden-service</tt> and follow
10794 the instructions to get the service up and running. Restart tor and
10795 exim when it is done, and test mail delivery using swaks like
10796 this:</p>
10797
10798 <p><blockquote><pre>
10799 torsocks swaks --server dutlqrrmjhtfa3vp.onion \
10800 --to fbx@dutlqrrmjhtfa3vp.onion
10801 </pre></blockquote></p>
10802
10803 <p>This will test the SMTP delivery using tor. Replace the email
10804 address with your own address to test your server. :)</p>
10805
10806 <p>The setup procedure is still to complex, and I hope it can be made
10807 easier and more automatic. Especially the tor setup need more work.
10808 Also, the package include a tor-smtp tool written in C, but its task
10809 should probably be rewritten in some script language to make the deb
10810 architecture independent. It would probably also make the code easier
10811 to review. The tor-smtp tool currently need to listen on a socket for
10812 exim to talk to it and is started using xinetd. It would be better if
10813 no daemon and no socket is needed. I suspect it is possible to get
10814 exim to run a command line tool for delivery instead of talking to a
10815 socket, and hope to figure out how in a future version of this
10816 system.</p>
10817
10818 <p>Until I wipe my test machine, I can be reached using the
10819 <tt>fbx@dutlqrrmjhtfa3vp.onion</tt> mail address, deliverable over
10820 SMTorP. :)</p>
10821
10822 </div>
10823 <div class="tags">
10824
10825
10826 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/freedombox">freedombox</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>.
10827
10828
10829 </div>
10830 </div>
10831 <div class="padding"></div>
10832
10833 <div class="entry">
10834 <div class="title">
10835 <a href="http://people.skolelinux.org/pere/blog/First_Jessie_based_Debian_Edu_released__alpha0_.html">First Jessie based Debian Edu released (alpha0)</a>
10836 </div>
10837 <div class="date">
10838 27th October 2014
10839 </div>
10840 <div class="body">
10841 <p>I am happy to report that I on behalf of the Debian Edu team just
10842 sent out
10843 <a href="https://lists.debian.org/debian-edu-announce/2014/10/msg00000.html">this
10844 announcement</a>:</p>
10845
10846 <pre>
10847 The Debian Edu Team is pleased to announce the release of Debian Edu
10848 Jessie 8.0+edu0~alpha0
10849
10850 Debian Edu is a complete operating system for schools. Through its
10851 various installation profiles you can install servers, workstations
10852 and laptops which will work together on the school network. With
10853 Debian Edu, the teachers themselves or their technical support can
10854 roll out a complete multi-user multi-machine study environment within
10855 hours or a few days. Debian Edu comes with hundreds of applications
10856 pre-installed, but you can always add more packages from Debian.
10857
10858 For those who want to give Debian Edu Jessie a try, download and
10859 installation instructions are available, including detailed
10860 instructions in the manual[1] explaining the first steps, such as
10861 setting up a network or adding users. Please note that the password
10862 for the user your prompted for during installation must have a length
10863 of at least 5 characters!
10864
10865 [1] &lt;URL: <a href="https://wiki.debian.org/DebianEdu/Documentation/Jessie">https://wiki.debian.org/DebianEdu/Documentation/Jessie</a> &gt;
10866
10867 Would you like to give your school's computer a longer life? Are you
10868 tired of sneaker administration, running from computer to computer
10869 reinstalling the operating system? Would you like to administrate all
10870 the computers in your school using only a couple of hours every week?
10871 Check out Debian Edu Jessie!
10872
10873 Skolelinux is used by at least two hundred schools all over the world,
10874 mostly in Germany and Norway.
10875
10876 About Debian Edu and Skolelinux
10877 ===============================
10878
10879 Debian Edu, also known as Skolelinux[2], is a Linux distribution based
10880 on Debian providing an out-of-the box environment of a completely
10881 configured school network. Immediately after installation a school
10882 server running all services needed for a school network is set up just
10883 waiting for users and machines being added via GOsa², a comfortable
10884 Web-UI. A netbooting environment is prepared using PXE, so after
10885 initial installation of the main server from CD or USB stick all other
10886 machines can be installed via the network. The provided school server
10887 provides LDAP database and Kerberos authentication service,
10888 centralized home directories, DHCP server, web proxy and many other
10889 services. The desktop contains more than 60 educational software
10890 packages[3] and more are available from the Debian archive, and
10891 schools can choose between KDE, Gnome, LXDE, Xfce and MATE desktop
10892 environment.
10893
10894 [2] &lt;URL: <a href="http://www.skolelinux.org/">http://www.skolelinux.org/</a> &gt;
10895 [3] &lt;URL: <a href="http://people.skolelinux.org/pere/blog/Educational_applications_included_in_Debian_Edu___Skolelinux__the_screenshot_collection____.html">http://people.skolelinux.org/pere/blog/Educational_applications_included_in_Debian_Edu___Skolelinux__the_screenshot_collection____.html</a> &gt;
10896
10897 Full release notes and manual
10898 =============================
10899
10900 Below the download URLs there is a list of some of the new features
10901 and bugfixes of Debian Edu 8.0+edu0~alpha0 Codename Jessie. The full
10902 list is part of the manual. (See the feature list in the manual[4] for
10903 the English version.) For some languages manual translations are
10904 available, see the manual translation overview[5].
10905
10906 [4] &lt;URL: <a href="https://wiki.debian.org/DebianEdu/Documentation/Jessie/Features">https://wiki.debian.org/DebianEdu/Documentation/Jessie/Features</a> &gt;
10907 [5] &lt;URL: <a href="http://maintainer.skolelinux.org/debian-edu-doc/">http://maintainer.skolelinux.org/debian-edu-doc/</a> &gt;
10908
10909 Where to get it
10910 ---------------
10911
10912 To download the multiarch netinstall CD release (624 MiB) you can use
10913
10914 * <a href="ftp://ftp.skolelinux.org/skolelinux-cd/debian-edu-8.0+edu0~alpha0-CD.iso">ftp://ftp.skolelinux.org/skolelinux-cd/debian-edu-8.0+edu0~alpha0-CD.iso</a>
10915 * <a href="http://ftp.skolelinux.org/skolelinux-cd/debian-edu-8.0+edu0~alpha0-CD.iso">http://ftp.skolelinux.org/skolelinux-cd/debian-edu-8.0+edu0~alpha0-CD.iso</a>
10916 * rsync -avzP ftp.skolelinux.org::skolelinux-cd/debian-edu-8.0+edu0~alpha0-CD.iso .
10917
10918 The SHA1SUM of this image is: 361188818e036ce67280a572f757de82ebfeb095
10919
10920 New features for Debian Edu 8.0+edu0~alpha0 Codename Jessie released 2014-10-27
10921 ===============================================================================
10922
10923
10924 Installation changes
10925 --------------------
10926
10927 * PXE installation now installs firmware automatically for the hardware present.
10928
10929 Software updates
10930 ----------------
10931
10932 Everything which is new in Debian Jessie 8.0, eg:
10933
10934 * Linux kernel 3.16.x
10935 * Desktop environments KDE "Plasma" 4.11.12, GNOME 3.14, Xfce 4.10,
10936 LXDE 0.5.6 and MATE 1.8 (KDE "Plasma" is installed by default; to
10937 choose one of the others see manual.)
10938 * the browsers Iceweasel 31 ESR and Chromium 38
10939 * !LibreOffice 4.3.3
10940 * GOsa 2.7.4
10941 * LTSP 5.5.4
10942 * CUPS print system 1.7.5
10943 * new boot framework: systemd
10944 * Educational toolbox GCompris 14.07
10945 * Music creator Rosegarden 14.02
10946 * Image editor Gimp 2.8.14
10947 * Virtual stargazer Stellarium 0.13.0
10948 * golearn 0.9
10949 * tuxpaint 0.9.22
10950 * New version of debian-installer from Debian Jessie.
10951 * Debian Jessie includes about 42000 packages available for
10952 installation.
10953 * More information about Debian Jessie 8.0 is provided in the release
10954 notes[6] and the installation manual[7].
10955
10956 [6] &lt;URL: <a href="http://www.debian.org/releases/jessie/releasenotes">http://www.debian.org/releases/jessie/releasenotes</a> &gt;
10957 [7] &lt;URL: <a href="http://www.debian.org/releases/jessie/installmanual">http://www.debian.org/releases/jessie/installmanual</a> &gt;
10958
10959 Fixed bugs
10960 ----------
10961
10962 * Inserting incorrect DNS information in Gosa will no longer break
10963 DNS completely, but instead stop DNS updates until the incorrect
10964 information is corrected (Debian bug #710362)
10965 * and many others.
10966
10967 Documentation and translation updates
10968 -------------------------------------
10969
10970 * The Debian Edu Jessie Manual is fully translated to German, French,
10971 Italian, Danish and Dutch. Partly translated versions exist for
10972 Norwegian Bokmal and Spanish.
10973
10974 Other changes
10975 -------------
10976
10977 * Due to new Squid settings, powering off or rebooting the main
10978 server takes more time.
10979 * To manage printers localhost:631 has to be used, currently www:631
10980 doesn't work.
10981
10982 Regressions / known problems
10983 ----------------------------
10984
10985 * Installing LTSP chroot fails with a bug related to eatmydata about
10986 exim4-config failing to run its postinst (see Debian bug #765694
10987 and Debian bug #762103).
10988 * Munin collection is not properly configured on clients (Debian bug
10989 #764594). The fix is available in a newer version of munin-node.
10990 * PXE setup for Main Server and Thin Client Server setup does not
10991 work when installing on a machine without direct Internet access.
10992 Will be fixed when Debian bug #766960 is fixed in Jessie.
10993
10994 See the status page[8] for the complete list.
10995
10996 [8] &lt;URL: <a href="https://wiki.debian.org/DebianEdu/Status/Jessie">https://wiki.debian.org/DebianEdu/Status/Jessie</a> &gt;
10997
10998 How to report bugs
10999 ------------------
11000
11001 &lt;URL: <a href="http://wiki.debian.org/DebianEdu/HowTo/ReportBugs">http://wiki.debian.org/DebianEdu/HowTo/ReportBugs</a> &gt;
11002
11003 About Debian
11004 ============
11005
11006 The Debian Project was founded in 1993 by Ian Murdock to be a truly
11007 free community project. Since then the project has grown to be one of
11008 the largest and most influential open source projects. Thousands of
11009 volunteers from all over the world work together to create and
11010 maintain Debian software. Available in 70 languages, and supporting a
11011 huge range of computer types, Debian calls itself the universal
11012 operating system.
11013
11014 Contact Information
11015 For further information, please visit the Debian web pages[9] or send
11016 mail to press@debian.org.
11017
11018 [9] &lt;URL: <a href="http://www.debian.org/">http://www.debian.org/</a> &gt;
11019 </pre>
11020
11021 </div>
11022 <div class="tags">
11023
11024
11025 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
11026
11027
11028 </div>
11029 </div>
11030 <div class="padding"></div>
11031
11032 <div class="entry">
11033 <div class="title">
11034 <a href="http://people.skolelinux.org/pere/blog/I_spent_last_weekend_recording_MakerCon_Nordic.html">I spent last weekend recording MakerCon Nordic</a>
11035 </div>
11036 <div class="date">
11037 23rd October 2014
11038 </div>
11039 <div class="body">
11040 <p>I spent last weekend at <a href="http://www.makercon.no/">Makercon
11041 Nordic</a>, a great conference and workshop for makers in Norway and
11042 the surrounding countries. I had volunteered on behalf of the
11043 Norwegian Unix Users Group (NUUG) to video record the talks, and we
11044 had a great and exhausting time recording the entire day, two days in
11045 a row. There were only two of us, Hans-Petter and me, and we used the
11046 regular video equipment for NUUG, with a
11047 <a href="http://dvswitch.alioth.debian.org/wiki/">dvswitch</a>, a
11048 camera and a VGA to DV convert box, and mixed video and slides
11049 live.</p>
11050
11051 <p>Hans-Petter did the post-processing, consisting of uploading the
11052 around 180 GiB of raw video to Youtube, and the result is
11053 <a href="https://www.youtube.com/user/MakerConNordic/">now becoming
11054 public</a> on the MakerConNordic account. The videos have the license
11055 NUUG always use on our recordings, which is
11056 <a href="http://creativecommons.org/licenses/by-sa/3.0/no/">Creative
11057 Commons Navngivelse-Del på samme vilkår 3.0 Norge</a>. Many great
11058 talks available. Check it out! :)</p>
11059
11060 </div>
11061 <div class="tags">
11062
11063
11064 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
11065
11066
11067 </div>
11068 </div>
11069 <div class="padding"></div>
11070
11071 <div class="entry">
11072 <div class="title">
11073 <a href="http://people.skolelinux.org/pere/blog/listadmin__the_quick_way_to_moderate_mailman_lists___nice_free_software.html">listadmin, the quick way to moderate mailman lists - nice free software</a>
11074 </div>
11075 <div class="date">
11076 22nd October 2014
11077 </div>
11078 <div class="body">
11079 <p>If you ever had to moderate a mailman list, like the ones on
11080 alioth.debian.org, you know the web interface is fairly slow to
11081 operate. First you visit one web page, enter the moderation password
11082 and get a new page shown with a list of all the messages to moderate
11083 and various options for each email address. This take a while for
11084 every list you moderate, and you need to do it regularly to do a good
11085 job as a list moderator. But there is a quick alternative,
11086 <a href="http://heim.ifi.uio.no/kjetilho/hacks/#listadmin">the
11087 listadmin program</a>. It allow you to check lists for new messages
11088 to moderate in a fraction of a second. Here is a test run on two
11089 lists I recently took over:</p>
11090
11091 <p><blockquote><pre>
11092 % time listadmin xiph
11093 fetching data for pkg-xiph-commits@lists.alioth.debian.org ... nothing in queue
11094 fetching data for pkg-xiph-maint@lists.alioth.debian.org ... nothing in queue
11095
11096 real 0m1.709s
11097 user 0m0.232s
11098 sys 0m0.012s
11099 %
11100 </pre></blockquote></p>
11101
11102 <p>In 1.7 seconds I had checked two mailing lists and confirmed that
11103 there are no message in the moderation queue. Every morning I
11104 currently moderate 68 mailman lists, and it normally take around two
11105 minutes. When I took over the two pkg-xiph lists above a few days
11106 ago, there were 400 emails waiting in the moderator queue. It took me
11107 less than 15 minutes to process them all using the listadmin
11108 program.</p>
11109
11110 <p>If you install
11111 <a href="https://tracker.debian.org/pkg/listadmin">the listadmin
11112 package</a> from Debian and create a file <tt>~/.listadmin.ini</tt>
11113 with content like this, the moderation task is a breeze:</p>
11114
11115 <p><blockquote><pre>
11116 username username@example.org
11117 spamlevel 23
11118 default discard
11119 discard_if_reason "Posting restricted to members only. Remove us from your mail list."
11120
11121 password secret
11122 adminurl https://{domain}/mailman/admindb/{list}
11123 mailman-list@lists.example.com
11124
11125 password hidden
11126 other-list@otherserver.example.org
11127 </pre></blockquote></p>
11128
11129 <p>There are other options to set as well. Check the manual page to
11130 learn the details.</p>
11131
11132 <p>If you are forced to moderate lists on a mailman installation where
11133 the SSL certificate is self signed or not properly signed by a
11134 generally accepted signing authority, you can set a environment
11135 variable when calling listadmin to disable SSL verification:</p>
11136
11137 <p><blockquote><pre>
11138 PERL_LWP_SSL_VERIFY_HOSTNAME=0 listadmin
11139 </pre></blockquote></p>
11140
11141 <p>If you want to moderate a subset of the lists you take care of, you
11142 can provide an argument to the listadmin script like I do in the
11143 initial screen dump (the xiph argument). Using an argument, only
11144 lists matching the argument string will be processed. This make it
11145 quick to accept messages if you notice the moderation request in your
11146 email.</p>
11147
11148 <p>Without the listadmin program, I would never be the moderator of 68
11149 mailing lists, as I simply do not have time to spend on that if the
11150 process was any slower. The listadmin program have saved me hours of
11151 time I could spend elsewhere over the years. It truly is nice free
11152 software.</p>
11153
11154 <p>As usual, if you use Bitcoin and want to show your support of my
11155 activities, please send Bitcoin donations to my address
11156 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
11157
11158 <p>Update 2014-10-27: Added missing 'username' statement in
11159 configuration example. Also, I've been told that the
11160 PERL_LWP_SSL_VERIFY_HOSTNAME=0 setting do not work for everyone. Not
11161 sure why.</p>
11162
11163 </div>
11164 <div class="tags">
11165
11166
11167 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/nice free software">nice free software</a>.
11168
11169
11170 </div>
11171 </div>
11172 <div class="padding"></div>
11173
11174 <div class="entry">
11175 <div class="title">
11176 <a href="http://people.skolelinux.org/pere/blog/Debian_Jessie__PXE_and_automatic_firmware_installation.html">Debian Jessie, PXE and automatic firmware installation</a>
11177 </div>
11178 <div class="date">
11179 17th October 2014
11180 </div>
11181 <div class="body">
11182 <p>When PXE installing laptops with Debian, I often run into the
11183 problem that the WiFi card require some firmware to work properly.
11184 And it has been a pain to fix this using preseeding in Debian.
11185 Normally something more is needed. But thanks to
11186 <a href="https://packages.qa.debian.org/i/isenkram.html">my isenkram
11187 package</a> and its recent tasksel extension, it has now become easy
11188 to do this using simple preseeding.</p>
11189
11190 <p>The isenkram-cli package provide tasksel tasks which will install
11191 firmware for the hardware found in the machine (actually, requested by
11192 the kernel modules for the hardware). (It can also install user space
11193 programs supporting the hardware detected, but that is not the focus
11194 of this story.)</p>
11195
11196 <p>To get this working in the default installation, two preeseding
11197 values are needed. First, the isenkram-cli package must be installed
11198 into the target chroot (aka the hard drive) before tasksel is executed
11199 in the pkgsel step of the debian-installer system. This is done by
11200 preseeding the base-installer/includes debconf value to include the
11201 isenkram-cli package. The package name is next passed to debootstrap
11202 for installation. With the isenkram-cli package in place, tasksel
11203 will automatically use the isenkram tasks to detect hardware specific
11204 packages for the machine being installed and install them, because
11205 isenkram-cli contain tasksel tasks.</p>
11206
11207 <p>Second, one need to enable the non-free APT repository, because
11208 most firmware unfortunately is non-free. This is done by preseeding
11209 the apt-mirror-setup step. This is unfortunate, but for a lot of
11210 hardware it is the only option in Debian.</p>
11211
11212 <p>The end result is two lines needed in your preseeding file to get
11213 firmware installed automatically by the installer:</p>
11214
11215 <p><blockquote><pre>
11216 base-installer base-installer/includes string isenkram-cli
11217 apt-mirror-setup apt-setup/non-free boolean true
11218 </pre></blockquote></p>
11219
11220 <p>The current version of isenkram-cli in testing/jessie will install
11221 both firmware and user space packages when using this method. It also
11222 do not work well, so use version 0.15 or later. Installing both
11223 firmware and user space packages might give you a bit more than you
11224 want, so I decided to split the tasksel task in two, one for firmware
11225 and one for user space programs. The firmware task is enabled by
11226 default, while the one for user space programs is not. This split is
11227 implemented in the package currently in unstable.</p>
11228
11229 <p>If you decide to give this a go, please let me know (via email) how
11230 this recipe work for you. :)</p>
11231
11232 <p>So, I bet you are wondering, how can this work. First and
11233 foremost, it work because tasksel is modular, and driven by whatever
11234 files it find in /usr/lib/tasksel/ and /usr/share/tasksel/. So the
11235 isenkram-cli package place two files for tasksel to find. First there
11236 is the task description file (/usr/share/tasksel/descs/isenkram.desc):</p>
11237
11238 <p><blockquote><pre>
11239 Task: isenkram-packages
11240 Section: hardware
11241 Description: Hardware specific packages (autodetected by isenkram)
11242 Based on the detected hardware various hardware specific packages are
11243 proposed.
11244 Test-new-install: show show
11245 Relevance: 8
11246 Packages: for-current-hardware
11247
11248 Task: isenkram-firmware
11249 Section: hardware
11250 Description: Hardware specific firmware packages (autodetected by isenkram)
11251 Based on the detected hardware various hardware specific firmware
11252 packages are proposed.
11253 Test-new-install: mark show
11254 Relevance: 8
11255 Packages: for-current-hardware-firmware
11256 </pre></blockquote></p>
11257
11258 <p>The key parts are Test-new-install which indicate how the task
11259 should be handled and the Packages line referencing to a script in
11260 /usr/lib/tasksel/packages/. The scripts use other scripts to get a
11261 list of packages to install. The for-current-hardware-firmware script
11262 look like this to list relevant firmware for the machine:
11263
11264 <p><blockquote><pre>
11265 #!/bin/sh
11266 #
11267 PATH=/usr/sbin:$PATH
11268 export PATH
11269 isenkram-autoinstall-firmware -l
11270 </pre></blockquote></p>
11271
11272 <p>With those two pieces in place, the firmware is installed by
11273 tasksel during the normal d-i run. :)</p>
11274
11275 <p>If you want to test what tasksel will install when isenkram-cli is
11276 installed, run <tt>DEBIAN_PRIORITY=critical tasksel --test
11277 --new-install</tt> to get the list of packages that tasksel would
11278 install.</p>
11279
11280 <p><a href="https://wiki.debian.org/DebianEdu/">Debian Edu</a> will be
11281 pilots in testing this feature, as isenkram is used there now to
11282 install firmware, replacing the earlier scripts.</p>
11283
11284 </div>
11285 <div class="tags">
11286
11287
11288 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>, <a href="http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin</a>.
11289
11290
11291 </div>
11292 </div>
11293 <div class="padding"></div>
11294
11295 <div class="entry">
11296 <div class="title">
11297 <a href="http://people.skolelinux.org/pere/blog/Ubuntu_used_to_show_the_bread_prizes_at_ICA_Storo.html">Ubuntu used to show the bread prizes at ICA Storo</a>
11298 </div>
11299 <div class="date">
11300 4th October 2014
11301 </div>
11302 <div class="body">
11303 <p>Today I came across an unexpected Ubuntu boot screen. Above the
11304 bread shelf on the ICA shop at Storo in Oslo, the grub menu of Ubuntu
11305 with Linux kernel 3.2.0-23 (ie probably version 12.04 LTS) was stuck
11306 on a screen normally showing the bread types and prizes:</p>
11307
11308 <p align="center"><img width="70%" src="http://people.skolelinux.org/pere/blog/images/2014-10-04-ubuntu-ica-storo-crop.jpeg"></p>
11309
11310 <p>If it had booted as it was supposed to, I would never had known
11311 about this hidden Linux installation. It is interesting what
11312 <a href="http://revealingerrors.com/">errors can reveal</a>.</p>
11313
11314 </div>
11315 <div class="tags">
11316
11317
11318 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>.
11319
11320
11321 </div>
11322 </div>
11323 <div class="padding"></div>
11324
11325 <div class="entry">
11326 <div class="title">
11327 <a href="http://people.skolelinux.org/pere/blog/New_lsdvd_release_version_0_17_is_ready.html">New lsdvd release version 0.17 is ready</a>
11328 </div>
11329 <div class="date">
11330 4th October 2014
11331 </div>
11332 <div class="body">
11333 <p>The <a href="https://sourceforge.net/p/lsdvd/">lsdvd project</a>
11334 got a new set of developers a few weeks ago, after the original
11335 developer decided to step down and pass the project to fresh blood.
11336 This project is now maintained by Petter Reinholdtsen and Steve
11337 Dibb.</p>
11338
11339 <p>I just wrapped up
11340 <a href="https://sourceforge.net/p/lsdvd/mailman/message/32896061/">a
11341 new lsdvd release</a>, available in git or from
11342 <a href="https://sourceforge.net/projects/lsdvd/files/lsdvd/">the
11343 download page</a>. This is the changelog dated 2014-10-03 for version
11344 0.17.</p>
11345
11346 <ul>
11347
11348 <li>Ignore 'phantom' audio, subtitle tracks</li>
11349 <li>Check for garbage in the program chains, which indicate that a track is
11350 non-existant, to work around additional copy protection</li>
11351 <li>Fix displaying content type for audio tracks, subtitles</li>
11352 <li>Fix pallete display of first entry</li>
11353 <li>Fix include orders</li>
11354 <li>Ignore read errors in titles that would not be displayed anyway</li>
11355 <li>Fix the chapter count</li>
11356 <li>Make sure the array size and the array limit used when initialising
11357 the palette size is the same.</li>
11358 <li>Fix array printing.</li>
11359 <li>Correct subsecond calculations.</li>
11360 <li>Add sector information to the output format.</li>
11361 <li>Clean up code to be closer to ANSI C and compile without warnings
11362 with more GCC compiler warnings.</li>
11363
11364 </ul>
11365
11366 <p>This change bring together patches for lsdvd in use in various
11367 Linux and Unix distributions, as well as patches submitted to the
11368 project the last nine years. Please check it out. :)</p>
11369
11370 </div>
11371 <div class="tags">
11372
11373
11374 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/lsdvd">lsdvd</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>.
11375
11376
11377 </div>
11378 </div>
11379 <div class="padding"></div>
11380
11381 <div class="entry">
11382 <div class="title">
11383 <a href="http://people.skolelinux.org/pere/blog/How_to_test_Debian_Edu_Jessie_despite_some_fatal_problems_with_the_installer.html">How to test Debian Edu Jessie despite some fatal problems with the installer</a>
11384 </div>
11385 <div class="date">
11386 26th September 2014
11387 </div>
11388 <div class="body">
11389 <p>The <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux
11390 project</a> provide a Linux solution for schools, including a
11391 powerful desktop with education software, a central server providing
11392 web pages, user database, user home directories, central login and PXE
11393 boot of both clients without disk and the installation to install Debian
11394 Edu on machines with disk (and a few other services perhaps to small
11395 to mention here). We in the Debian Edu team are currently working on
11396 the Jessie based version, trying to get everything in shape before the
11397 freeze, to avoid having to maintain our own package repository in the
11398 future. The
11399 <a href="https://wiki.debian.org/DebianEdu/Status/Jessie">current
11400 status</a> can be seen on the Debian wiki, and there is still heaps of
11401 work left. Some fatal problems block testing, breaking the installer,
11402 but it is possible to work around these to get anyway. Here is a
11403 recipe on how to get the installation limping along.</p>
11404
11405 <p>First, download the test ISO via
11406 <a href="ftp://ftp.skolelinux.no/cd-edu-testing-nolocal-netinst/debian-edu-amd64-i386-NETINST-1.iso">ftp</a>,
11407 <a href="http://ftp.skolelinux.no/cd-edu-testing-nolocal-netinst/debian-edu-amd64-i386-NETINST-1.iso">http</a>
11408 or rsync (use
11409 ftp.skolelinux.org::cd-edu-testing-nolocal-netinst/debian-edu-amd64-i386-NETINST-1.iso).
11410 The ISO build was broken on Tuesday, so we do not get a new ISO every
11411 12 hours or so, but thankfully the ISO we already got we are able to
11412 install with some tweaking.</p>
11413
11414 <p>When you get to the Debian Edu profile question, go to tty2
11415 (use Alt-Ctrl-F2), run</p>
11416
11417 <p><blockquote><pre>
11418 nano /usr/bin/edu-eatmydata-install
11419 </pre></blockquote></p>
11420
11421 <p>and add 'exit 0' as the second line, disabling the eatmydata
11422 optimization. Return to the installation, select the profile you want
11423 and continue. Without this change, exim4-config will fail to install
11424 due to a known bug in eatmydata.</p>
11425
11426 <p>When you get the grub question at the end, answer /dev/sda (or if
11427 this do not work, figure out what your correct value would be. All my
11428 test machines need /dev/sda, so I have no advice if it do not fit
11429 your need.</p>
11430
11431 <p>If you installed a profile including a graphical desktop, log in as
11432 root after the initial boot from hard drive, and install the
11433 education-desktop-XXX metapackage. XXX can be kde, gnome, lxde, xfce
11434 or mate. If you want several desktop options, install more than one
11435 metapackage. Once this is done, reboot and you should have a working
11436 graphical login screen. This workaround should no longer be needed
11437 once the education-tasks package version 1.801 enter testing in two
11438 days.</p>
11439
11440 <p>I believe the ISO build will start working on two days when the new
11441 tasksel package enter testing and Steve McIntyre get a chance to
11442 update the debian-cd git repository. The eatmydata, grub and desktop
11443 issues are already fixed in unstable and testing, and should show up
11444 on the ISO as soon as the ISO build start working again. Well the
11445 eatmydata optimization is really just disabled. The proper fix
11446 require an upload by the eatmydata maintainer applying the patch
11447 provided in bug <a href="https://bugs.debian.org/702711">#702711</a>.
11448 The rest have proper fixes in unstable.</p>
11449
11450 <p>I hope this get you going with the installation testing, as we are
11451 quickly running out of time trying to get our Jessie based
11452 installation ready before the distribution freeze in a month.</p>
11453
11454 </div>
11455 <div class="tags">
11456
11457
11458 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
11459
11460
11461 </div>
11462 </div>
11463 <div class="padding"></div>
11464
11465 <div class="entry">
11466 <div class="title">
11467 <a href="http://people.skolelinux.org/pere/blog/Suddenly_I_am_the_new_upstream_of_the_lsdvd_command_line_tool.html">Suddenly I am the new upstream of the lsdvd command line tool</a>
11468 </div>
11469 <div class="date">
11470 25th September 2014
11471 </div>
11472 <div class="body">
11473 <p>I use the <a href="https://sourceforge.net/p/lsdvd/">lsdvd tool</a>
11474 to handle my fairly large DVD collection. It is a nice command line
11475 tool to get details about a DVD, like title, tracks, track length,
11476 etc, in XML, Perl or human readable format. But lsdvd have not seen
11477 any new development since 2006 and had a few irritating bugs affecting
11478 its use with some DVDs. Upstream seemed to be dead, and in January I
11479 sent a small probe asking for a version control repository for the
11480 project, without any reply. But I use it regularly and would like to
11481 get <a href="https://packages.qa.debian.org/lsdvd">an updated version
11482 into Debian</a>. So two weeks ago I tried harder to get in touch with
11483 the project admin, and after getting a reply from him explaining that
11484 he was no longer interested in the project, I asked if I could take
11485 over. And yesterday, I became project admin.</p>
11486
11487 <p>I've been in touch with a Gentoo developer and the Debian
11488 maintainer interested in joining forces to maintain the upstream
11489 project, and I hope we can get a new release out fairly quickly,
11490 collecting the patches spread around on the internet into on place.
11491 I've added the relevant Debian patches to the freshly created git
11492 repository, and expect the Gentoo patches to make it too. If you got
11493 a DVD collection and care about command line tools, check out
11494 <a href="https://sourceforge.net/p/lsdvd/git/ci/master/tree/">the git source</a> and join
11495 <a href="https://sourceforge.net/p/lsdvd/mailman/">the project mailing
11496 list</a>. :)</p>
11497
11498 </div>
11499 <div class="tags">
11500
11501
11502 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/lsdvd">lsdvd</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>.
11503
11504
11505 </div>
11506 </div>
11507 <div class="padding"></div>
11508
11509 <div class="entry">
11510 <div class="title">
11511 <a href="http://people.skolelinux.org/pere/blog/Speeding_up_the_Debian_installer_using_eatmydata_and_dpkg_divert.html">Speeding up the Debian installer using eatmydata and dpkg-divert</a>
11512 </div>
11513 <div class="date">
11514 16th September 2014
11515 </div>
11516 <div class="body">
11517 <p>The <a href="https://www.debian.org/">Debian</a> installer could be
11518 a lot quicker. When we install more than 2000 packages in
11519 <a href="http://www.skolelinux.org/">Skolelinux / Debian Edu</a> using
11520 tasksel in the installer, unpacking the binary packages take forever.
11521 A part of the slow I/O issue was discussed in
11522 <a href="https://bugs.debian.org/613428">bug #613428</a> about too
11523 much file system sync-ing done by dpkg, which is the package
11524 responsible for unpacking the binary packages. Other parts (like code
11525 executed by postinst scripts) might also sync to disk during
11526 installation. All this sync-ing to disk do not really make sense to
11527 me. If the machine crash half-way through, I start over, I do not try
11528 to salvage the half installed system. So the failure sync-ing is
11529 supposed to protect against, hardware or system crash, is not really
11530 relevant while the installer is running.</p>
11531
11532 <p>A few days ago, I thought of a way to get rid of all the file
11533 system sync()-ing in a fairly non-intrusive way, without the need to
11534 change the code in several packages. The idea is not new, but I have
11535 not heard anyone propose the approach using dpkg-divert before. It
11536 depend on the small and clever package
11537 <a href="https://packages.qa.debian.org/eatmydata">eatmydata</a>, which
11538 uses LD_PRELOAD to replace the system functions for syncing data to
11539 disk with functions doing nothing, thus allowing programs to live
11540 dangerous while speeding up disk I/O significantly. Instead of
11541 modifying the implementation of dpkg, apt and tasksel (which are the
11542 packages responsible for selecting, fetching and installing packages),
11543 it occurred to me that we could just divert the programs away, replace
11544 them with a simple shell wrapper calling
11545 "eatmydata&nbsp;$program&nbsp;$@", to get the same effect.
11546 Two days ago I decided to test the idea, and wrapped up a simple
11547 implementation for the Debian Edu udeb.</p>
11548
11549 <p>The effect was stunning. In my first test it reduced the running
11550 time of the pkgsel step (installing tasks) from 64 to less than 44
11551 minutes (20 minutes shaved off the installation) on an old Dell
11552 Latitude D505 machine. I am not quite sure what the optimised time
11553 would have been, as I messed up the testing a bit, causing the debconf
11554 priority to get low enough for two questions to pop up during
11555 installation. As soon as I saw the questions I moved the installation
11556 along, but do not know how long the question were holding up the
11557 installation. I did some more measurements using Debian Edu Jessie,
11558 and got these results. The time measured is the time stamp in
11559 /var/log/syslog between the "pkgsel: starting tasksel" and the
11560 "pkgsel: finishing up" lines, if you want to do the same measurement
11561 yourself. In Debian Edu, the tasksel dialog do not show up, and the
11562 timing thus do not depend on how quickly the user handle the tasksel
11563 dialog.</p>
11564
11565 <p><table>
11566
11567 <tr>
11568 <th>Machine/setup</th>
11569 <th>Original tasksel</th>
11570 <th>Optimised tasksel</th>
11571 <th>Reduction</th>
11572 </tr>
11573
11574 <tr>
11575 <td>Latitude D505 Main+LTSP LXDE</td>
11576 <td>64 min (07:46-08:50)</td>
11577 <td><44 min (11:27-12:11)</td>
11578 <td>>20 min 18%</td>
11579 </tr>
11580
11581 <tr>
11582 <td>Latitude D505 Roaming LXDE</td>
11583 <td>57 min (08:48-09:45)</td>
11584 <td>34 min (07:43-08:17)</td>
11585 <td>23 min 40%</td>
11586 </tr>
11587
11588 <tr>
11589 <td>Latitude D505 Minimal</td>
11590 <td>22 min (10:37-10:59)</td>
11591 <td>11 min (11:16-11:27)</td>
11592 <td>11 min 50%</td>
11593 </tr>
11594
11595 <tr>
11596 <td>Thinkpad X200 Minimal</td>
11597 <td>6 min (08:19-08:25)</td>
11598 <td>4 min (08:04-08:08)</td>
11599 <td>2 min 33%</td>
11600 </tr>
11601
11602 <tr>
11603 <td>Thinkpad X200 Roaming KDE</td>
11604 <td>19 min (09:21-09:40)</td>
11605 <td>15 min (10:25-10:40)</td>
11606 <td>4 min 21%</td>
11607 </tr>
11608
11609 </table></p>
11610
11611 <p>The test is done using a netinst ISO on a USB stick, so some of the
11612 time is spent downloading packages. The connection to the Internet
11613 was 100Mbit/s during testing, so downloading should not be a
11614 significant factor in the measurement. Download typically took a few
11615 seconds to a few minutes, depending on the amount of packages being
11616 installed.</p>
11617
11618 <p>The speedup is implemented by using two hooks in
11619 <a href="https://www.debian.org/devel/debian-installer/">Debian
11620 Installer</a>, the pre-pkgsel.d hook to set up the diverts, and the
11621 finish-install.d hook to remove the divert at the end of the
11622 installation. I picked the pre-pkgsel.d hook instead of the
11623 post-base-installer.d hook because I test using an ISO without the
11624 eatmydata package included, and the post-base-installer.d hook in
11625 Debian Edu can only operate on packages included in the ISO. The
11626 negative effect of this is that I am unable to activate this
11627 optimization for the kernel installation step in d-i. If the code is
11628 moved to the post-base-installer.d hook, the speedup would be larger
11629 for the entire installation.</p>
11630
11631 <p>I've implemented this in the
11632 <a href="https://packages.qa.debian.org/debian-edu-install">debian-edu-install</a>
11633 git repository, and plan to provide the optimization as part of the
11634 Debian Edu installation. If you want to test this yourself, you can
11635 create two files in the installer (or in an udeb). One shell script
11636 need do go into /usr/lib/pre-pkgsel.d/, with content like this:</p>
11637
11638 <p><blockquote><pre>
11639 #!/bin/sh
11640 set -e
11641 . /usr/share/debconf/confmodule
11642 info() {
11643 logger -t my-pkgsel "info: $*"
11644 }
11645 error() {
11646 logger -t my-pkgsel "error: $*"
11647 }
11648 override_install() {
11649 apt-install eatmydata || true
11650 if [ -x /target/usr/bin/eatmydata ] ; then
11651 for bin in dpkg apt-get aptitude tasksel ; do
11652 file=/usr/bin/$bin
11653 # Test that the file exist and have not been diverted already.
11654 if [ -f /target$file ] ; then
11655 info "diverting $file using eatmydata"
11656 printf "#!/bin/sh\neatmydata $bin.distrib \"\$@\"\n" \
11657 > /target$file.edu
11658 chmod 755 /target$file.edu
11659 in-target dpkg-divert --package debian-edu-config \
11660 --rename --quiet --add $file
11661 ln -sf ./$bin.edu /target$file
11662 else
11663 error "unable to divert $file, as it is missing."
11664 fi
11665 done
11666 else
11667 error "unable to find /usr/bin/eatmydata after installing the eatmydata pacage"
11668 fi
11669 }
11670
11671 override_install
11672 </pre></blockquote></p>
11673
11674 <p>To clean up, another shell script should go into
11675 /usr/lib/finish-install.d/ with code like this:
11676
11677 <p><blockquote><pre>
11678 #! /bin/sh -e
11679 . /usr/share/debconf/confmodule
11680 error() {
11681 logger -t my-finish-install "error: $@"
11682 }
11683 remove_install_override() {
11684 for bin in dpkg apt-get aptitude tasksel ; do
11685 file=/usr/bin/$bin
11686 if [ -x /target$file.edu ] ; then
11687 rm /target$file
11688 in-target dpkg-divert --package debian-edu-config \
11689 --rename --quiet --remove $file
11690 rm /target$file.edu
11691 else
11692 error "Missing divert for $file."
11693 fi
11694 done
11695 sync # Flush file buffers before continuing
11696 }
11697
11698 remove_install_override
11699 </pre></blockquote></p>
11700
11701 <p>In Debian Edu, I placed both code fragments in a separate script
11702 edu-eatmydata-install and call it from the pre-pkgsel.d and
11703 finish-install.d scripts.</p>
11704
11705 <p>By now you might ask if this change should get into the normal
11706 Debian installer too? I suspect it should, but am not sure the
11707 current debian-installer coordinators find it useful enough. It also
11708 depend on the side effects of the change. I'm not aware of any, but I
11709 guess we will see if the change is safe after some more testing.
11710 Perhaps there is some package in Debian depending on sync() and
11711 fsync() having effect? Perhaps it should go into its own udeb, to
11712 allow those of us wanting to enable it to do so without affecting
11713 everyone.</p>
11714
11715 <p>Update 2014-09-24: Since a few days ago, enabling this optimization
11716 will break installation of all programs using gnutls because of
11717 <a href="https://bugs.debian.org/702711">bug #702711</a>. An updated
11718 eatmydata package in Debian will solve it.</p>
11719
11720 <p>Update 2014-10-17: The bug mentioned above is fixed in testing and
11721 the optimization work again. And I have discovered that the
11722 dpkg-divert trick is not really needed and implemented a slightly
11723 simpler approach as part of the debian-edu-install package. See
11724 tools/edu-eatmydata-install in the source package.</p>
11725
11726 <p>Update 2014-11-11: Unfortunately, a new
11727 <a href="http://bugs.debian.org/765738">bug #765738</a> in eatmydata only
11728 triggering on i386 made it into testing, and broke this installation
11729 optimization again. If <a href="http://bugs.debian.org/768893">unblock
11730 request 768893</a> is accepted, it should be working again.</p>
11731
11732 </div>
11733 <div class="tags">
11734
11735
11736 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
11737
11738
11739 </div>
11740 </div>
11741 <div class="padding"></div>
11742
11743 <div class="entry">
11744 <div class="title">
11745 <a href="http://people.skolelinux.org/pere/blog/Good_bye_subkeys_pgp_net__welcome_pool_sks_keyservers_net.html">Good bye subkeys.pgp.net, welcome pool.sks-keyservers.net</a>
11746 </div>
11747 <div class="date">
11748 10th September 2014
11749 </div>
11750 <div class="body">
11751 <p>Yesterday, I had the pleasure of attending a talk with the
11752 <a href="http://www.nuug.no/">Norwegian Unix User Group</a> about
11753 <a href="http://www.nuug.no/aktiviteter/20140909-sks-keyservers/">the
11754 OpenPGP keyserver pool sks-keyservers.net</a>, and was very happy to
11755 learn that there is a large set of publicly available key servers to
11756 use when looking for peoples public key. So far I have used
11757 subkeys.pgp.net, and some times wwwkeys.nl.pgp.net when the former
11758 were misbehaving, but those days are ended. The servers I have used
11759 up until yesterday have been slow and some times unavailable. I hope
11760 those problems are gone now.</p>
11761
11762 <p>Behind the round robin DNS entry of the
11763 <a href="https://sks-keyservers.net/">sks-keyservers.net</a> service
11764 there is a pool of more than 100 keyservers which are checked every
11765 day to ensure they are well connected and up to date. It must be
11766 better than what I have used so far. :)</p>
11767
11768 <p>Yesterdays speaker told me that the service is the default
11769 keyserver provided by the default configuration in GnuPG, but this do
11770 not seem to be used in Debian. Perhaps it should?</p>
11771
11772 <p>Anyway, I've updated my ~/.gnupg/options file to now include this
11773 line:</p>
11774
11775 <p><blockquote><pre>
11776 keyserver pool.sks-keyservers.net
11777 </pre></blockquote></p>
11778
11779 <p>With GnuPG version 2 one can also locate the keyserver using SRV
11780 entries in DNS. Just for fun, I did just that at work, so now every
11781 user of GnuPG at the University of Oslo should find a OpenGPG
11782 keyserver automatically should their need it:</p>
11783
11784 <p><blockquote><pre>
11785 % host -t srv _pgpkey-http._tcp.uio.no
11786 _pgpkey-http._tcp.uio.no has SRV record 0 100 11371 pool.sks-keyservers.net.
11787 %
11788 </pre></blockquote></p>
11789
11790 <p>Now if only
11791 <a href="http://ietfreport.isoc.org/idref/draft-shaw-openpgp-hkp/">the
11792 HKP lookup protocol</a> supported finding signature paths, I would be
11793 very happy. It can look up a given key or search for a user ID, but I
11794 normally do not want that, but to find a trust path from my key to
11795 another key. Given a user ID or key ID, I would like to find (and
11796 download) the keys representing a signature path from my key to the
11797 key in question, to be able to get a trust path between the two keys.
11798 This is as far as I can tell not possible today. Perhaps something
11799 for a future version of the protocol?</p>
11800
11801 </div>
11802 <div class="tags">
11803
11804
11805 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/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>.
11806
11807
11808 </div>
11809 </div>
11810 <div class="padding"></div>
11811
11812 <div class="entry">
11813 <div class="title">
11814 <a href="http://people.skolelinux.org/pere/blog/Do_you_need_an_agreement_with_MPEG_LA_to_publish_and_broadcast_H_264_video_in_Norway_.html">Do you need an agreement with MPEG-LA to publish and broadcast H.264 video in Norway?</a>
11815 </div>
11816 <div class="date">
11817 25th August 2014
11818 </div>
11819 <div class="body">
11820 <p>Two years later, I am still not sure if it is legal here in Norway
11821 to use or publish a video in H.264 or MPEG4 format edited by the
11822 commercially licensed video editors, without limiting the use to
11823 create "personal" or "non-commercial" videos or get a license
11824 agreement with <a href="http://www.mpegla.com">MPEG LA</a>. If one
11825 want to publish and broadcast video in a non-personal or commercial
11826 setting, it might be that those tools can not be used, or that video
11827 format can not be used, without breaking their copyright license. I
11828 am not sure.
11829 <a href="http://people.skolelinux.org/pere/blog/Trenger_en_avtale_med_MPEG_LA_for___publisere_og_kringkaste_H_264_video_.html">Back
11830 then</a>, I found that the copyright license terms for Adobe Premiere
11831 and Apple Final Cut Pro both specified that one could not use the
11832 program to produce anything else without a patent license from MPEG
11833 LA. The issue is not limited to those two products, though. Other
11834 much used products like those from Avid and Sorenson Media have terms
11835 of use are similar to those from Adobe and Apple. The complicating
11836 factor making me unsure if those terms have effect in Norway or not is
11837 that the patents in question are not valid in Norway, but copyright
11838 licenses are.</p>
11839
11840 <p>These are the terms for Avid Artist Suite, according to their
11841 <a href="http://www.avid.com/US/about-avid/legal-notices/legal-enduserlicense2">published
11842 end user</a>
11843 <a href="http://www.avid.com/static/resources/common/documents/corporate/LICENSE.pdf">license
11844 text</a> (converted to lower case text for easier reading):</p>
11845
11846 <p><blockquote>
11847 <p>18.2. MPEG-4. MPEG-4 technology may be included with the
11848 software. MPEG LA, L.L.C. requires this notice: </p>
11849
11850 <p>This product is licensed under the MPEG-4 visual patent portfolio
11851 license for the personal and non-commercial use of a consumer for (i)
11852 encoding video in compliance with the MPEG-4 visual standard (“MPEG-4
11853 video”) and/or (ii) decoding MPEG-4 video that was encoded by a
11854 consumer engaged in a personal and non-commercial activity and/or was
11855 obtained from a video provider licensed by MPEG LA to provide MPEG-4
11856 video. No license is granted or shall be implied for any other
11857 use. Additional information including that relating to promotional,
11858 internal and commercial uses and licensing may be obtained from MPEG
11859 LA, LLC. See http://www.mpegla.com. This product is licensed under
11860 the MPEG-4 systems patent portfolio license for encoding in compliance
11861 with the MPEG-4 systems standard, except that an additional license
11862 and payment of royalties are necessary for encoding in connection with
11863 (i) data stored or replicated in physical media which is paid for on a
11864 title by title basis and/or (ii) data which is paid for on a title by
11865 title basis and is transmitted to an end user for permanent storage
11866 and/or use, such additional license may be obtained from MPEG LA,
11867 LLC. See http://www.mpegla.com for additional details.</p>
11868
11869 <p>18.3. H.264/AVC. H.264/AVC technology may be included with the
11870 software. MPEG LA, L.L.C. requires this notice:</p>
11871
11872 <p>This product is licensed under the AVC patent portfolio license for
11873 the personal use of a consumer or other uses in which it does not
11874 receive remuneration to (i) encode video in compliance with the AVC
11875 standard (“AVC video”) and/or (ii) decode AVC video that was encoded
11876 by a consumer engaged in a personal activity and/or was obtained from
11877 a video provider licensed to provide AVC video. No license is granted
11878 or shall be implied for any other use. Additional information may be
11879 obtained from MPEG LA, L.L.C. See http://www.mpegla.com.</p>
11880 </blockquote></p>
11881
11882 <p>Note the requirement that the videos created can only be used for
11883 personal or non-commercial purposes.</p>
11884
11885 <p>The Sorenson Media software have
11886 <a href="http://www.sorensonmedia.com/terms/">similar terms</a>:</p>
11887
11888 <p><blockquote>
11889
11890 <p>With respect to a license from Sorenson pertaining to MPEG-4 Video
11891 Decoders and/or Encoders: Any such product is licensed under the
11892 MPEG-4 visual patent portfolio license for the personal and
11893 non-commercial use of a consumer for (i) encoding video in compliance
11894 with the MPEG-4 visual standard (“MPEG-4 video”) and/or (ii) decoding
11895 MPEG-4 video that was encoded by a consumer engaged in a personal and
11896 non-commercial activity and/or was obtained from a video provider
11897 licensed by MPEG LA to provide MPEG-4 video. No license is granted or
11898 shall be implied for any other use. Additional information including
11899 that relating to promotional, internal and commercial uses and
11900 licensing may be obtained from MPEG LA, LLC. See
11901 http://www.mpegla.com.</p>
11902
11903 <p>With respect to a license from Sorenson pertaining to MPEG-4
11904 Consumer Recorded Data Encoder, MPEG-4 Systems Internet Data Encoder,
11905 MPEG-4 Mobile Data Encoder, and/or MPEG-4 Unique Use Encoder: Any such
11906 product is licensed under the MPEG-4 systems patent portfolio license
11907 for encoding in compliance with the MPEG-4 systems standard, except
11908 that an additional license and payment of royalties are necessary for
11909 encoding in connection with (i) data stored or replicated in physical
11910 media which is paid for on a title by title basis and/or (ii) data
11911 which is paid for on a title by title basis and is transmitted to an
11912 end user for permanent storage and/or use. Such additional license may
11913 be obtained from MPEG LA, LLC. See http://www.mpegla.com for
11914 additional details.</p>
11915
11916 </blockquote></p>
11917
11918 <p>Some free software like
11919 <a href="https://handbrake.fr/">Handbrake</A> and
11920 <a href="http://ffmpeg.org/">FFMPEG</a> uses GPL/LGPL licenses and do
11921 not have any such terms included, so for those, there is no
11922 requirement to limit the use to personal and non-commercial.</p>
11923
11924 </div>
11925 <div class="tags">
11926
11927
11928 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/h264">h264</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</a>.
11929
11930
11931 </div>
11932 </div>
11933 <div class="padding"></div>
11934
11935 <div class="entry">
11936 <div class="title">
11937 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Bernd_Zeitzen.html">Debian Edu interview: Bernd Zeitzen</a>
11938 </div>
11939 <div class="date">
11940 31st July 2014
11941 </div>
11942 <div class="body">
11943 <p>The complete and free “out of the box” software solution for
11944 schools, <a href="http://www.skolelinux.org/">Debian Edu /
11945 Skolelinux</a>, is used quite a lot in Germany, and one of the people
11946 involved is Bernd Zeitzen, who show up on the project mailing lists
11947 from time to time with interesting questions and tips on how to adjust
11948 the setup. I managed to interview him this summer.</p>
11949
11950 <p><strong>Who are you, and how do you spend your days?</strong></p>
11951
11952 <p>My name is Bernd Zeitzen and I'm married with Hedda, a self
11953 employed physiotherapist. My former profession is tool maker, but I
11954 haven't worked for 30 years in this job. 30 years ago I started to
11955 support my wife and become her officeworker and a few years later the
11956 administrator for a small computer network, today based on Ubuntu
11957 Server (Samba, OpenVPN). For her daily work she has to use Windows
11958 Desktops because the software she needs to organize her business only
11959 works with Windows . :-(</p>
11960
11961 <p>In 1988 we started with one PC and DOS, then I learned to use
11962 Windows 98, 2000, XP, …, 8, Ubuntu, MacOSX. Today we are running a
11963 Linux server with 6 Windows clients and 10 persons (teacher of
11964 children with special needs, speech therapist, occupational therapist,
11965 psychologist and officeworkers) using our Samba shares via OpenVPN to
11966 work with the documentations of our patients.</p>
11967
11968 <p><strong>How did you get in contact with the Skolelinux / Debian Edu
11969 project?</strong></p>
11970
11971 <p>Two years ago a friend of mine asked me, if I want to get a job in
11972 his school (<a href="http://www.gymnasium-harsewinkel.de/">Gymnasium
11973 Harsewinkel</a>). They started with Skolelinux / Debian Edu and they
11974 were looking for people to give support to the teachers using the
11975 software and the network and teaching the pupils increasing their
11976 computer skills in optional lessons. I'm spending 4-6 hours a week
11977 with this job.</p>
11978
11979 <p><strong>What do you see as the advantages of Skolelinux / Debian
11980 Edu?</strong></p>
11981
11982 <p>The independence.</p>
11983
11984 <p>First: Every person is allowed to use, share and develop the
11985 software. Even if you are poor, you are allowed to use the software
11986 included in Skolelinux/Debian Edu and all the other Free Software.</p>
11987
11988 <p>Second: The software runs on old machines and this gives us the
11989 possibility to recycle computers, weeded out from offices. The
11990 servers and desktops are running for more than two years and they are
11991 working reliable. </p>
11992
11993 <p>We have two servers (one tjener and one terminal server), 45
11994 workstations in three classrooms and seven laptops as a mobile
11995 solution for all classrooms. These machines are all booting from the
11996 terminal server. In the moment we are installing 30 laptops as mobile
11997 workstations. Then the pupils have the possibility to work with these
11998 machines in their classrooms. Internet access is realized by a WLAN
11999 router, connected to the schools network. This is all done without a
12000 dedicated system administrator or a computer science teacher.</p>
12001
12002 <p><strong>What do you see as the disadvantages of Skolelinux / Debian
12003 Edu?</strong></p>
12004
12005 <p>Teachers and pupils are Windows users. &lt;Irony on&gt; And Linux
12006 isn't cool. It's software for freaks using the command line. &lt;Irony
12007 off&gt; They don't realize the stability of the system. </p>
12008
12009 <p><strong>Which free software do you use daily?</strong></p>
12010
12011 <p>Firefox, Thunderbird, LibreOffice, Ubuntu Server 12.04 (Samba,
12012 Apache, MySQL, Joomla!, … and Skolelinux / Debian Edu)</p>
12013
12014 <p><strong>Which strategy do you believe is the right one to use to
12015 get schools to use free software?</strong></p>
12016
12017 <p>In Germany we have the situation: every school is free to decide
12018 which software they want to use. This decision is influenced by
12019 teachers who learned to use Windows and MS Office. They buy a PC with
12020 Windows preinstalled and an additional testing version of MS
12021 Office. They don't know about the possibility to use Free Software
12022 instead. Another problem are the publisher of school books. They
12023 develop their software, added to the school books, for Windows.</p>
12024
12025 </div>
12026 <div class="tags">
12027
12028
12029 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju</a>.
12030
12031
12032 </div>
12033 </div>
12034 <div class="padding"></div>
12035
12036 <div class="entry">
12037 <div class="title">
12038 <a href="http://people.skolelinux.org/pere/blog/98_6_percent_done_with_the_Norwegian_draft_translation_of_Free_Culture.html">98.6 percent done with the Norwegian draft translation of Free Culture</a>
12039 </div>
12040 <div class="date">
12041 23rd July 2014
12042 </div>
12043 <div class="body">
12044 <p>This summer I finally had time to continue working on the Norwegian
12045 <a href="http://www.docbook.org/">docbook</a> version of the 2004 book
12046 <a href="http://free-culture.cc/">Free Culture</a> by Lawrence Lessig,
12047 to get a Norwegian text explaining the problems with todays copyright
12048 law. Yesterday, I finally completed translated the book text. There
12049 are still some foot/end notes left to translate, the colophon page
12050 need to be rewritten, and a few words and phrases still need to be
12051 translated, but the Norwegian text is ready for the first proof
12052 reading. :) More spell checking is needed, and several illustrations
12053 need to be cleaned up. The work stopped up because I had to give
12054 priority to other projects the last year, and the progress graph of
12055 the translation show this very well:</p>
12056
12057 <p><img width="80%" align="center" src="https://github.com/petterreinholdtsen/free-culture-lessig/raw/master/progress.png"></p>
12058
12059 <p>If you want to read the result, check out the
12060 <a href="https://github.com/petterreinholdtsen/free-culture-lessig">github</a>
12061 project pages and the
12062 <a href="https://github.com/petterreinholdtsen/free-culture-lessig/blob/master/archive/freeculture.nb.pdf?raw=true">PDF</a>,
12063 <a href="https://github.com/petterreinholdtsen/free-culture-lessig/blob/master/archive/freeculture.nb.epub?raw=true">EPUB</a>
12064 and HTML version available in the
12065 <a href="https://github.com/petterreinholdtsen/free-culture-lessig/tree/master/archive">archive
12066 directory</a>.</p>
12067
12068 <p>Please report typos, bugs and improvements to the github project if
12069 you find any.</p>
12070
12071 </div>
12072 <div class="tags">
12073
12074
12075 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>.
12076
12077
12078 </div>
12079 </div>
12080 <div class="padding"></div>
12081
12082 <div class="entry">
12083 <div class="title">
12084 <a href="http://people.skolelinux.org/pere/blog/From_English_wiki_to_translated_PDF_and_epub_via_Docbook.html">From English wiki to translated PDF and epub via Docbook</a>
12085 </div>
12086 <div class="date">
12087 17th June 2014
12088 </div>
12089 <div class="body">
12090 <p>The <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux
12091 project</a> provide an instruction manual for teachers, system
12092 administrators and other users that contain useful tips for setting up
12093 and maintaining a Debian Edu installation. This text is about how the
12094 text processing of this manual is handled in the project.</p>
12095
12096 <p>One goal of the project is to provide information in the native
12097 language of its users, and for this we need to handle translations.
12098 But we also want to make sure each language contain the same
12099 information, so for this we need a good way to keep the translations
12100 in sync. And we want it to be easy for our users to improve the
12101 documentation, avoiding the need to learn special formats or tools to
12102 contribute, and the obvious way to do this is to make it possible to
12103 edit the documentation using a web browser. We also want it to be
12104 easy for translators to keep the translation up to date, and give them
12105 help in figuring out what need to be translated. Here is the list of
12106 tools and the process we have found trying to reach all these
12107 goals.</p>
12108
12109 <p>We maintain the authoritative source of our manual in the
12110 <a href="https://wiki.debian.org/DebianEdu/Documentation/Wheezy/">Debian
12111 wiki</a>, as several wiki pages written in English. It consist of one
12112 front page with references to the different chapters, several pages
12113 for each chapter, and finally one "collection page" gluing all the
12114 chapters together into one large web page (aka
12115 <a href="https://wiki.debian.org/DebianEdu/Documentation/Wheezy/AllInOne">the
12116 AllInOne page</a>). The AllInOne page is the one used for further
12117 processing and translations. Thanks to the fact that the
12118 <a href="http://moinmo.in/">MoinMoin</a> installation on
12119 wiki.debian.org support exporting pages in
12120 <a href="http://www.docbook.org/">the Docbook format</a>, we can fetch
12121 the list of pages to export using the raw version of the AllInOne
12122 page, loop over each of them to generate a Docbook XML version of the
12123 manual. This process also download images and transform image
12124 references to use the locally downloaded images. The generated
12125 Docbook XML files are slightly broken, so some post-processing is done
12126 using the <tt>documentation/scripts/get_manual</tt> program, and the
12127 result is a nice Docbook XML file (debian-edu-wheezy-manual.xml) and
12128 a handfull of images. The XML file can now be used to generate PDF, HTML
12129 and epub versions of the English manual. This is the basic step of
12130 our process, making PDF (using dblatex), HTML (using xsltproc) and
12131 epub (using dbtoepub) version from Docbook XML, and the resulting files
12132 are placed in the debian-edu-doc-en binary package.</p>
12133
12134 <p>But English documentation is not enough for us. We want translated
12135 documentation too, and we want to make it easy for translators to
12136 track the English original. For this we use the
12137 <a href="http://packages.qa.debian.org/p/poxml.html">poxml</a> package,
12138 which allow us to transform the English Docbook XML file into a
12139 translation file (a .pot file), usable with the normal gettext based
12140 translation tools used by those translating free software. The pot
12141 file is used to create and maintain translation files (several .po
12142 files), which the translations update with the native language
12143 translations of all titles, paragraphs and blocks of text in the
12144 original. The next step is combining the original English Docbook XML
12145 and the translation file (say debian-edu-wheezy-manual.nb.po), to
12146 create a translated Docbook XML file (in this case
12147 debian-edu-wheezy-manual.nb.xml). This translated (or partly
12148 translated, if the translation is not complete) Docbook XML file can
12149 then be used like the original to create a PDF, HTML and epub version
12150 of the documentation.</p>
12151
12152 <p>The translators use different tools to edit the .po files. We
12153 recommend using
12154 <a href="http://www.kde.org/applications/development/lokalize/">lokalize</a>,
12155 while some use emacs and vi, others can use web based editors like
12156 <a href="http://pootle.translatehouse.org/">Poodle</a> or
12157 <a href="https://www.transifex.com/">Transifex</a>. All we care about
12158 is where the .po file end up, in our git repository. Updated
12159 translations can either be committed directly to git, or submitted as
12160 <a href="https://bugs.debian.org/src:debian-edu-doc">bug reports
12161 against the debian-edu-doc package</a>.</p>
12162
12163 <p>One challenge is images, which both might need to be translated (if
12164 they show translated user applications), and are needed in different
12165 formats when creating PDF and HTML versions (epub is a HTML version in
12166 this regard). For this we transform the original PNG images to the
12167 needed density and format during build, and have a way to provide
12168 translated images by storing translated versions in
12169 images/$LANGUAGECODE/. I am a bit unsure about the details here. The
12170 package maintainers know more.</p>
12171
12172 <p>If you wonder what the result look like, we provide
12173 <a href="http://maintainer.skolelinux.org/debian-edu-doc/">the content
12174 of the documentation packages on the web</a>. See for example the
12175 <a href="http://maintainer.skolelinux.org/debian-edu-doc/it/debian-edu-wheezy-manual.pdf">Italian
12176 PDF version</a> or the
12177 <a href="http://maintainer.skolelinux.org/debian-edu-doc/de/debian-edu-wheezy-manual.html">German
12178 HTML version</a>. We do not yet build the epub version by default,
12179 but perhaps it will be done in the future.</p>
12180
12181 <p>To learn more, check out
12182 <a href="http://packages.qa.debian.org/d/debian-edu-doc.html">the
12183 debian-edu-doc package</a>,
12184 <a href="https://wiki.debian.org/DebianEdu/Documentation/Wheezy/">the
12185 manual on the wiki</a> and
12186 <a href="https://wiki.debian.org/DebianEdu/Documentation/Wheezy/Translations">the
12187 translation instructions</a> in the manual.</p>
12188
12189 </div>
12190 <div class="tags">
12191
12192
12193 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
12194
12195
12196 </div>
12197 </div>
12198 <div class="padding"></div>
12199
12200 <div class="entry">
12201 <div class="title">
12202 <a href="http://people.skolelinux.org/pere/blog/Free_software_car_computer_solution_.html">Free software car computer solution?</a>
12203 </div>
12204 <div class="date">
12205 29th May 2014
12206 </div>
12207 <div class="body">
12208 <p>Dear lazyweb. I'm planning to set up a small Raspberry Pi computer
12209 in my car, connected to
12210 <a href="http://www.dx.com/p/400a-4-0-tft-lcd-digital-monitor-for-vehicle-parking-reverse-camera-1440x272-12v-dc-57776">a
12211 small screen</a> next to the rear mirror. I plan to hook it up with a
12212 GPS and a USB wifi card too. The idea is to get my own
12213 "<a href="http://en.wikipedia.org/wiki/Carputer">Carputer</a>". But I
12214 wonder if someone already created a good free software solution for
12215 such car computer.</p>
12216
12217 <p>This is my current wish list for such system:</p>
12218
12219 <ul>
12220
12221 <li>Work on Raspberry Pi.</li>
12222
12223 <li>Show current speed limit based on location, and warn if going too
12224 fast (for example using color codes yellow and red on the screen,
12225 or make a sound). This could be done either using either data from
12226 <a href="http://www.openstreetmap.org/">Openstreetmap</a> or OCR
12227 info gathered from a dashboard camera.</li>
12228
12229 <li>Track automatic toll road passes and their cost, show total spent
12230 and make it possible to calculate toll costs for planned
12231 route.</li>
12232
12233 <li>Collect GPX tracks for use with OpenStreetMap.</li>
12234
12235 <li>Automatically detect and use any wireless connection to connect
12236 to home server. Try IP over DNS
12237 (<a href="http://dev.kryo.se/iodine/">iodine</a>) or ICMP
12238 (<a href="http://code.gerade.org/hans/">Hans</a>) if direct
12239 connection do not work.</li>
12240
12241 <li>Set up mesh network to talk to other cars with the same system,
12242 or some standard car mesh protocol.</li>
12243
12244 <li>Warn when approaching speed cameras and speed camera ranges
12245 (speed calculated between two cameras).</li>
12246
12247 <li>Suport dashboard/front facing camera to discover speed limits and
12248 run OCR to track registration number of passing cars.</li>
12249
12250 </ul>
12251
12252 <p>If you know of any free software car computer system supporting
12253 some or all of these features, please let me know.</p>
12254
12255 </div>
12256 <div class="tags">
12257
12258
12259 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
12260
12261
12262 </div>
12263 </div>
12264 <div class="padding"></div>
12265
12266 <div class="entry">
12267 <div class="title">
12268 <a href="http://people.skolelinux.org/pere/blog/Half_the_Coverity_issues_in_Gnash_fixed_in_the_next_release.html">Half the Coverity issues in Gnash fixed in the next release</a>
12269 </div>
12270 <div class="date">
12271 29th April 2014
12272 </div>
12273 <div class="body">
12274 <p>I've been following <a href="http://www.getgnash.org/">the Gnash
12275 project</a> for quite a while now. It is a free software
12276 implementation of Adobe Flash, both a standalone player and a browser
12277 plugin. Gnash implement support for the AVM1 format (and not the
12278 newer AVM2 format - see
12279 <a href="http://lightspark.github.io/">Lightspark</a> for that one),
12280 allowing several flash based sites to work. Thanks to the friendly
12281 developers at Youtube, it also work with Youtube videos, because the
12282 Javascript code at Youtube detect Gnash and serve a AVM1 player to
12283 those users. :) Would be great if someone found time to implement AVM2
12284 support, but it has not happened yet. If you install both Lightspark
12285 and Gnash, Lightspark will invoke Gnash if it find a AVM1 flash file,
12286 so you can get both handled as free software. Unfortunately,
12287 Lightspark so far only implement a small subset of AVM2, and many
12288 sites do not work yet.</p>
12289
12290 <p>A few months ago, I started looking at
12291 <a href="http://scan.coverity.com/">Coverity</a>, the static source
12292 checker used to find heaps and heaps of bugs in free software (thanks
12293 to the donation of a scanning service to free software projects by the
12294 company developing this non-free code checker), and Gnash was one of
12295 the projects I decided to check out. Coverity is able to find lock
12296 errors, memory errors, dead code and more. A few days ago they even
12297 extended it to also be able to find the heartbleed bug in OpenSSL.
12298 There are heaps of checks being done on the instrumented code, and the
12299 amount of bogus warnings is quite low compared to the other static
12300 code checkers I have tested over the years.</p>
12301
12302 <p>Since a few weeks ago, I've been working with the other Gnash
12303 developers squashing bugs discovered by Coverity. I was quite happy
12304 today when I checked the current status and saw that of the 777 issues
12305 detected so far, 374 are marked as fixed. This make me confident that
12306 the next Gnash release will be more stable and more dependable than
12307 the previous one. Most of the reported issues were and are in the
12308 test suite, but it also found a few in the rest of the code.</p>
12309
12310 <p>If you want to help out, you find us on
12311 <a href="https://lists.gnu.org/mailman/listinfo/gnash-dev">the
12312 gnash-dev mailing list</a> and on
12313 <a href="irc://irc.freenode.net/#gnash">the #gnash channel on
12314 irc.freenode.net IRC server</a>.</p>
12315
12316 </div>
12317 <div class="tags">
12318
12319
12320 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</a>.
12321
12322
12323 </div>
12324 </div>
12325 <div class="padding"></div>
12326
12327 <div class="entry">
12328 <div class="title">
12329 <a href="http://people.skolelinux.org/pere/blog/Install_hardware_dependent_packages_using_tasksel__Isenkram_0_7_.html">Install hardware dependent packages using tasksel (Isenkram 0.7)</a>
12330 </div>
12331 <div class="date">
12332 23rd April 2014
12333 </div>
12334 <div class="body">
12335 <p>It would be nice if it was easier in Debian to get all the hardware
12336 related packages relevant for the computer installed automatically.
12337 So I implemented one, using
12338 <a href="http://packages.qa.debian.org/isenkram">my Isenkram
12339 package</a>. To use it, install the tasksel and isenkram packages and
12340 run tasksel as user root. You should be presented with a new option,
12341 "Hardware specific packages (autodetected by isenkram)". When you
12342 select it, tasksel will install the packages isenkram claim is fit for
12343 the current hardware, hot pluggable or not.<p>
12344
12345 <p>The implementation is in two files, one is the tasksel menu entry
12346 description, and the other is the script used to extract the list of
12347 packages to install. The first part is in
12348 <tt>/usr/share/tasksel/descs/isenkram.desc</tt> and look like
12349 this:</p>
12350
12351 <p><blockquote><pre>
12352 Task: isenkram
12353 Section: hardware
12354 Description: Hardware specific packages (autodetected by isenkram)
12355 Based on the detected hardware various hardware specific packages are
12356 proposed.
12357 Test-new-install: mark show
12358 Relevance: 8
12359 Packages: for-current-hardware
12360 </pre></blockquote></p>
12361
12362 <p>The second part is in
12363 <tt>/usr/lib/tasksel/packages/for-current-hardware</tt> and look like
12364 this:</p>
12365
12366 <p><blockquote><pre>
12367 #!/bin/sh
12368 #
12369 (
12370 isenkram-lookup
12371 isenkram-autoinstall-firmware -l
12372 ) | sort -u
12373 </pre></blockquote></p>
12374
12375 <p>All in all, a very short and simple implementation making it
12376 trivial to install the hardware dependent package we all may want to
12377 have installed on our machines. I've not been able to find a way to
12378 get tasksel to tell you exactly which packages it plan to install
12379 before doing the installation. So if you are curious or careful,
12380 check the output from the isenkram-* command line tools first.</p>
12381
12382 <p>The information about which packages are handling which hardware is
12383 fetched either from the isenkram package itself in
12384 /usr/share/isenkram/, from git.debian.org or from the APT package
12385 database (using the Modaliases header). The APT package database
12386 parsing have caused a nasty resource leak in the isenkram daemon (bugs
12387 <a href="http://bugs.debian.org/719837">#719837</a> and
12388 <a href="http://bugs.debian.org/730704">#730704</a>). The cause is in
12389 the python-apt code (bug
12390 <a href="http://bugs.debian.org/745487">#745487</a>), but using a
12391 workaround I was able to get rid of the file descriptor leak and
12392 reduce the memory leak from ~30 MiB per hardware detection down to
12393 around 2 MiB per hardware detection. It should make the desktop
12394 daemon a lot more useful. The fix is in version 0.7 uploaded to
12395 unstable today.</p>
12396
12397 <p>I believe the current way of mapping hardware to packages in
12398 Isenkram is is a good draft, but in the future I expect isenkram to
12399 use the AppStream data source for this. A proposal for getting proper
12400 AppStream support into Debian is floating around as
12401 <a href="https://wiki.debian.org/DEP-11">DEP-11</a>, and
12402 <a href="https://wiki.debian.org/SummerOfCode2014/Projects#SummerOfCode2014.2FProjects.2FAppStreamDEP11Implementation.AppStream.2FDEP-11_for_the_Debian_Archive">GSoC
12403 project</a> will take place this summer to improve the situation. I
12404 look forward to seeing the result, and welcome patches for isenkram to
12405 start using the information when it is ready.</p>
12406
12407 <p>If you want your package to map to some specific hardware, either
12408 add a "Xb-Modaliases" header to your control file like I did in
12409 <a href="http://packages.qa.debian.org/pymissile">the pymissile
12410 package</a> or submit a bug report with the details to the isenkram
12411 package. See also
12412 <a href="http://people.skolelinux.org/pere/blog/tags/isenkram/">all my
12413 blog posts tagged isenkram</a> for details on the notation. I expect
12414 the information will be migrated to AppStream eventually, but for the
12415 moment I got no better place to store it.</p>
12416
12417 </div>
12418 <div class="tags">
12419
12420
12421 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>.
12422
12423
12424 </div>
12425 </div>
12426 <div class="padding"></div>
12427
12428 <div class="entry">
12429 <div class="title">
12430 <a href="http://people.skolelinux.org/pere/blog/FreedomBox_milestone___all_packages_now_in_Debian_Sid.html">FreedomBox milestone - all packages now in Debian Sid</a>
12431 </div>
12432 <div class="date">
12433 15th April 2014
12434 </div>
12435 <div class="body">
12436 <p>The <a href="https://wiki.debian.org/FreedomBox">Freedombox
12437 project</a> is working on providing the software and hardware to make
12438 it easy for non-technical people to host their data and communication
12439 at home, and being able to communicate with their friends and family
12440 encrypted and away from prying eyes. It is still going strong, and
12441 today a major mile stone was reached.</p>
12442
12443 <p>Today, the last of the packages currently used by the project to
12444 created the system images were accepted into Debian Unstable. It was
12445 the freedombox-setup package, which is used to configure the images
12446 during build and on the first boot. Now all one need to get going is
12447 the build code from the freedom-maker git repository and packages from
12448 Debian. And once the freedombox-setup package enter testing, we can
12449 build everything directly from Debian. :)</p>
12450
12451 <p>Some key packages used by Freedombox are
12452 <a href="http://packages.qa.debian.org/freedombox-setup">freedombox-setup</a>,
12453 <a href="http://packages.qa.debian.org/plinth">plinth</a>,
12454 <a href="http://packages.qa.debian.org/pagekite">pagekite</a>,
12455 <a href="http://packages.qa.debian.org/tor">tor</a>,
12456 <a href="http://packages.qa.debian.org/privoxy">privoxy</a>,
12457 <a href="http://packages.qa.debian.org/owncloud">owncloud</a> and
12458 <a href="http://packages.qa.debian.org/dnsmasq">dnsmasq</a>. There
12459 are plans to integrate more packages into the setup. User
12460 documentation is maintained on the Debian wiki. Please
12461 <a href="https://wiki.debian.org/FreedomBox/Manual/Jessie">check out
12462 the manual</a> and help us improve it.</p>
12463
12464 <p>To test for yourself and create boot images with the FreedomBox
12465 setup, run this on a Debian machine using a user with sudo rights to
12466 become root:</p>
12467
12468 <p><pre>
12469 sudo apt-get install git vmdebootstrap mercurial python-docutils \
12470 mktorrent extlinux virtualbox qemu-user-static binfmt-support \
12471 u-boot-tools
12472 git clone http://anonscm.debian.org/git/freedombox/freedom-maker.git \
12473 freedom-maker
12474 make -C freedom-maker dreamplug-image raspberry-image virtualbox-image
12475 </pre></p>
12476
12477 <p>Root access is needed to run debootstrap and mount loopback
12478 devices. See the README in the freedom-maker git repo for more
12479 details on the build. If you do not want all three images, trim the
12480 make line. Note that the virtualbox-image target is not really
12481 virtualbox specific. It create a x86 image usable in kvm, qemu,
12482 vmware and any other x86 virtual machine environment. You might need
12483 the version of vmdebootstrap in Jessie to get the build working, as it
12484 include fixes for a race condition with kpartx.</p>
12485
12486 <p>If you instead want to install using a Debian CD and the preseed
12487 method, boot a Debian Wheezy ISO and use this boot argument to load
12488 the preseed values:</p>
12489
12490 <p><pre>
12491 url=<a href="http://www.reinholdtsen.name/freedombox/preseed-jessie.dat">http://www.reinholdtsen.name/freedombox/preseed-jessie.dat</a>
12492 </pre></p>
12493
12494 <p>I have not tested it myself the last few weeks, so I do not know if
12495 it still work.</p>
12496
12497 <p>If you wonder how to help, one task you could look at is using
12498 systemd as the boot system. It will become the default for Linux in
12499 Jessie, so we need to make sure it is usable on the Freedombox. I did
12500 a simple test a few weeks ago, and noticed dnsmasq failed to start
12501 during boot when using systemd. I suspect there are other problems
12502 too. :) To detect problems, there is a test suite included, which can
12503 be run from the plinth web interface.</p>
12504
12505 <p>Give it a go and let us know how it goes on the mailing list, and help
12506 us get the new release published. :) Please join us on
12507 <a href="irc://irc.debian.org:6667/%23freedombox">IRC (#freedombox on
12508 irc.debian.org)</a> and
12509 <a href="http://lists.alioth.debian.org/mailman/listinfo/freedombox-discuss">the
12510 mailing list</a> if you want to help make this vision come true.</p>
12511
12512 </div>
12513 <div class="tags">
12514
12515
12516 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/freedombox">freedombox</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</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>.
12517
12518
12519 </div>
12520 </div>
12521 <div class="padding"></div>
12522
12523 <div class="entry">
12524 <div class="title">
12525 <a href="http://people.skolelinux.org/pere/blog/S3QL__a_locally_mounted_cloud_file_system___nice_free_software.html">S3QL, a locally mounted cloud file system - nice free software</a>
12526 </div>
12527 <div class="date">
12528 9th April 2014
12529 </div>
12530 <div class="body">
12531 <p>For a while now, I have been looking for a sensible offsite backup
12532 solution for use at home. My requirements are simple, it must be
12533 cheap and locally encrypted (in other words, I keep the encryption
12534 keys, the storage provider do not have access to my private files).
12535 One idea me and my friends had many years ago, before the cloud
12536 storage providers showed up, was to use Google mail as storage,
12537 writing a Linux block device storing blocks as emails in the mail
12538 service provided by Google, and thus get heaps of free space. On top
12539 of this one can add encryption, RAID and volume management to have
12540 lots of (fairly slow, I admit that) cheap and encrypted storage. But
12541 I never found time to implement such system. But the last few weeks I
12542 have looked at a system called
12543 <a href="https://bitbucket.org/nikratio/s3ql/">S3QL</a>, a locally
12544 mounted network backed file system with the features I need.</p>
12545
12546 <p>S3QL is a fuse file system with a local cache and cloud storage,
12547 handling several different storage providers, any with Amazon S3,
12548 Google Drive or OpenStack API. There are heaps of such storage
12549 providers. S3QL can also use a local directory as storage, which
12550 combined with sshfs allow for file storage on any ssh server. S3QL
12551 include support for encryption, compression, de-duplication, snapshots
12552 and immutable file systems, allowing me to mount the remote storage as
12553 a local mount point, look at and use the files as if they were local,
12554 while the content is stored in the cloud as well. This allow me to
12555 have a backup that should survive fire. The file system can not be
12556 shared between several machines at the same time, as only one can
12557 mount it at the time, but any machine with the encryption key and
12558 access to the storage service can mount it if it is unmounted.</p>
12559
12560 <p>It is simple to use. I'm using it on Debian Wheezy, where the
12561 package is included already. So to get started, run <tt>apt-get
12562 install s3ql</tt>. Next, pick a storage provider. I ended up picking
12563 Greenqloud, after reading their nice recipe on
12564 <a href="https://greenqloud.zendesk.com/entries/44611757-How-To-Use-S3QL-to-mount-a-StorageQloud-bucket-on-Debian-Wheezy">how
12565 to use S3QL with their Amazon S3 service</a>, because I trust the laws
12566 in Iceland more than those in USA when it come to keeping my personal
12567 data safe and private, and thus would rather spend money on a company
12568 in Iceland. Another nice recipe is available from the article
12569 <a href="http://www.admin-magazine.com/HPC/Articles/HPC-Cloud-Storage">S3QL
12570 Filesystem for HPC Storage</a> by Jeff Layton in the HPC section of
12571 Admin magazine. When the provider is picked, figure out how to get
12572 the API key needed to connect to the storage API. With Greencloud,
12573 the key did not show up until I had added payment details to my
12574 account.</p>
12575
12576 <p>Armed with the API access details, it is time to create the file
12577 system. First, create a new bucket in the cloud. This bucket is the
12578 file system storage area. I picked a bucket name reflecting the
12579 machine that was going to store data there, but any name will do.
12580 I'll refer to it as <tt>bucket-name</tt> below. In addition, one need
12581 the API login and password, and a locally created password. Store it
12582 all in ~root/.s3ql/authinfo2 like this:
12583
12584 <p><blockquote><pre>
12585 [s3c]
12586 storage-url: s3c://s.greenqloud.com:443/bucket-name
12587 backend-login: API-login
12588 backend-password: API-password
12589 fs-passphrase: local-password
12590 </pre></blockquote></p>
12591
12592 <p>I create my local passphrase using <tt>pwget 50</tt> or similar,
12593 but any sensible way to create a fairly random password should do it.
12594 Armed with these details, it is now time to run mkfs, entering the API
12595 details and password to create it:</p>
12596
12597 <p><blockquote><pre>
12598 # mkdir -m 700 /var/lib/s3ql-cache
12599 # mkfs.s3ql --cachedir /var/lib/s3ql-cache --authfile /root/.s3ql/authinfo2 \
12600 --ssl s3c://s.greenqloud.com:443/bucket-name
12601 Enter backend login:
12602 Enter backend password:
12603 Before using S3QL, make sure to read the user's guide, especially
12604 the 'Important Rules to Avoid Loosing Data' section.
12605 Enter encryption password:
12606 Confirm encryption password:
12607 Generating random encryption key...
12608 Creating metadata tables...
12609 Dumping metadata...
12610 ..objects..
12611 ..blocks..
12612 ..inodes..
12613 ..inode_blocks..
12614 ..symlink_targets..
12615 ..names..
12616 ..contents..
12617 ..ext_attributes..
12618 Compressing and uploading metadata...
12619 Wrote 0.00 MB of compressed metadata.
12620 # </pre></blockquote></p>
12621
12622 <p>The next step is mounting the file system to make the storage available.
12623
12624 <p><blockquote><pre>
12625 # mount.s3ql --cachedir /var/lib/s3ql-cache --authfile /root/.s3ql/authinfo2 \
12626 --ssl --allow-root s3c://s.greenqloud.com:443/bucket-name /s3ql
12627 Using 4 upload threads.
12628 Downloading and decompressing metadata...
12629 Reading metadata...
12630 ..objects..
12631 ..blocks..
12632 ..inodes..
12633 ..inode_blocks..
12634 ..symlink_targets..
12635 ..names..
12636 ..contents..
12637 ..ext_attributes..
12638 Mounting filesystem...
12639 # df -h /s3ql
12640 Filesystem Size Used Avail Use% Mounted on
12641 s3c://s.greenqloud.com:443/bucket-name 1.0T 0 1.0T 0% /s3ql
12642 #
12643 </pre></blockquote></p>
12644
12645 <p>The file system is now ready for use. I use rsync to store my
12646 backups in it, and as the metadata used by rsync is downloaded at
12647 mount time, no network traffic (and storage cost) is triggered by
12648 running rsync. To unmount, one should not use the normal umount
12649 command, as this will not flush the cache to the cloud storage, but
12650 instead running the umount.s3ql command like this:
12651
12652 <p><blockquote><pre>
12653 # umount.s3ql /s3ql
12654 #
12655 </pre></blockquote></p>
12656
12657 <p>There is a fsck command available to check the file system and
12658 correct any problems detected. This can be used if the local server
12659 crashes while the file system is mounted, to reset the "already
12660 mounted" flag. This is what it look like when processing a working
12661 file system:</p>
12662
12663 <p><blockquote><pre>
12664 # fsck.s3ql --force --ssl s3c://s.greenqloud.com:443/bucket-name
12665 Using cached metadata.
12666 File system seems clean, checking anyway.
12667 Checking DB integrity...
12668 Creating temporary extra indices...
12669 Checking lost+found...
12670 Checking cached objects...
12671 Checking names (refcounts)...
12672 Checking contents (names)...
12673 Checking contents (inodes)...
12674 Checking contents (parent inodes)...
12675 Checking objects (reference counts)...
12676 Checking objects (backend)...
12677 ..processed 5000 objects so far..
12678 ..processed 10000 objects so far..
12679 ..processed 15000 objects so far..
12680 Checking objects (sizes)...
12681 Checking blocks (referenced objects)...
12682 Checking blocks (refcounts)...
12683 Checking inode-block mapping (blocks)...
12684 Checking inode-block mapping (inodes)...
12685 Checking inodes (refcounts)...
12686 Checking inodes (sizes)...
12687 Checking extended attributes (names)...
12688 Checking extended attributes (inodes)...
12689 Checking symlinks (inodes)...
12690 Checking directory reachability...
12691 Checking unix conventions...
12692 Checking referential integrity...
12693 Dropping temporary indices...
12694 Backing up old metadata...
12695 Dumping metadata...
12696 ..objects..
12697 ..blocks..
12698 ..inodes..
12699 ..inode_blocks..
12700 ..symlink_targets..
12701 ..names..
12702 ..contents..
12703 ..ext_attributes..
12704 Compressing and uploading metadata...
12705 Wrote 0.89 MB of compressed metadata.
12706 #
12707 </pre></blockquote></p>
12708
12709 <p>Thanks to the cache, working on files that fit in the cache is very
12710 quick, about the same speed as local file access. Uploading large
12711 amount of data is to me limited by the bandwidth out of and into my
12712 house. Uploading 685 MiB with a 100 MiB cache gave me 305 kiB/s,
12713 which is very close to my upload speed, and downloading the same
12714 Debian installation ISO gave me 610 kiB/s, close to my download speed.
12715 Both were measured using <tt>dd</tt>. So for me, the bottleneck is my
12716 network, not the file system code. I do not know what a good cache
12717 size would be, but suspect that the cache should e larger than your
12718 working set.</p>
12719
12720 <p>I mentioned that only one machine can mount the file system at the
12721 time. If another machine try, it is told that the file system is
12722 busy:</p>
12723
12724 <p><blockquote><pre>
12725 # mount.s3ql --cachedir /var/lib/s3ql-cache --authfile /root/.s3ql/authinfo2 \
12726 --ssl --allow-root s3c://s.greenqloud.com:443/bucket-name /s3ql
12727 Using 8 upload threads.
12728 Backend reports that fs is still mounted elsewhere, aborting.
12729 #
12730 </pre></blockquote></p>
12731
12732 <p>The file content is uploaded when the cache is full, while the
12733 metadata is uploaded once every 24 hour by default. To ensure the
12734 file system content is flushed to the cloud, one can either umount the
12735 file system, or ask S3QL to flush the cache and metadata using
12736 s3qlctrl:
12737
12738 <p><blockquote><pre>
12739 # s3qlctrl upload-meta /s3ql
12740 # s3qlctrl flushcache /s3ql
12741 #
12742 </pre></blockquote></p>
12743
12744 <p>If you are curious about how much space your data uses in the
12745 cloud, and how much compression and deduplication cut down on the
12746 storage usage, you can use s3qlstat on the mounted file system to get
12747 a report:</p>
12748
12749 <p><blockquote><pre>
12750 # s3qlstat /s3ql
12751 Directory entries: 9141
12752 Inodes: 9143
12753 Data blocks: 8851
12754 Total data size: 22049.38 MB
12755 After de-duplication: 21955.46 MB (99.57% of total)
12756 After compression: 21877.28 MB (99.22% of total, 99.64% of de-duplicated)
12757 Database size: 2.39 MB (uncompressed)
12758 (some values do not take into account not-yet-uploaded dirty blocks in cache)
12759 #
12760 </pre></blockquote></p>
12761
12762 <p>I mentioned earlier that there are several possible suppliers of
12763 storage. I did not try to locate them all, but am aware of at least
12764 <a href="https://www.greenqloud.com/">Greenqloud</a>,
12765 <a href="http://drive.google.com/">Google Drive</a>,
12766 <a href="http://aws.amazon.com/s3/">Amazon S3 web serivces</a>,
12767 <a href="http://www.rackspace.com/">Rackspace</a> and
12768 <a href="http://crowncloud.net/">Crowncloud</A>. The latter even
12769 accept payment in Bitcoin. Pick one that suit your need. Some of
12770 them provide several GiB of free storage, but the prize models are
12771 quite different and you will have to figure out what suits you
12772 best.</p>
12773
12774 <p>While researching this blog post, I had a look at research papers
12775 and posters discussing the S3QL file system. There are several, which
12776 told me that the file system is getting a critical check by the
12777 science community and increased my confidence in using it. One nice
12778 poster is titled
12779 "<a href="http://www.lanl.gov/orgs/adtsc/publications/science_highlights_2013/docs/pg68_69.pdf">An
12780 Innovative Parallel Cloud Storage System using OpenStack’s SwiftObject
12781 Store and Transformative Parallel I/O Approach</a>" by Hsing-Bung
12782 Chen, Benjamin McClelland, David Sherrill, Alfred Torrez, Parks Fields
12783 and Pamela Smith. Please have a look.</p>
12784
12785 <p>Given my problems with different file systems earlier, I decided to
12786 check out the mounted S3QL file system to see if it would be usable as
12787 a home directory (in other word, that it provided POSIX semantics when
12788 it come to locking and umask handling etc). Running
12789 <a href="http://people.skolelinux.org/pere/blog/Testing_if_a_file_system_can_be_used_for_home_directories___.html">my
12790 test code to check file system semantics</a>, I was happy to discover that
12791 no error was found. So the file system can be used for home
12792 directories, if one chooses to do so.</p>
12793
12794 <p>If you do not want a locally file system, and want something that
12795 work without the Linux fuse file system, I would like to mention the
12796 <a href="http://www.tarsnap.com/">Tarsnap service</a>, which also
12797 provide locally encrypted backup using a command line client. It have
12798 a nicer access control system, where one can split out read and write
12799 access, allowing some systems to write to the backup and others to
12800 only read from it.</p>
12801
12802 <p>As usual, if you use Bitcoin and want to show your support of my
12803 activities, please send Bitcoin donations to my address
12804 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
12805
12806 </div>
12807 <div class="tags">
12808
12809
12810 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/nice free software">nice free software</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>.
12811
12812
12813 </div>
12814 </div>
12815 <div class="padding"></div>
12816
12817 <div class="entry">
12818 <div class="title">
12819 <a href="http://people.skolelinux.org/pere/blog/ReactOS_Windows_clone___nice_free_software.html">ReactOS Windows clone - nice free software</a>
12820 </div>
12821 <div class="date">
12822 1st April 2014
12823 </div>
12824 <div class="body">
12825 <p>Microsoft have announced that Windows XP reaches its end of life
12826 2014-04-08, in 7 days. But there are heaps of machines still running
12827 Windows XP, and depending on Windows XP to run their applications, and
12828 upgrading will be expensive, both when it comes to money and when it
12829 comes to the amount of effort needed to migrate from Windows XP to a
12830 new operating system. Some obvious options (buy new a Windows
12831 machine, buy a MacOSX machine, install Linux on the existing machine)
12832 are already well known and covered elsewhere. Most of them involve
12833 leaving the user applications installed on Windows XP behind and
12834 trying out replacements or updated versions. In this blog post I want
12835 to mention one strange bird that allow people to keep the hardware and
12836 the existing Windows XP applications and run them on a free software
12837 operating system that is Windows XP compatible.</p>
12838
12839 <p><a href="http://www.reactos.org/">ReactOS</a> is a free software
12840 operating system (GNU GPL licensed) working on providing a operating
12841 system that is binary compatible with Windows, able to run windows
12842 programs directly and to use Windows drivers for hardware directly.
12843 The project goal is for Windows user to keep their existing machines,
12844 drivers and software, and gain the advantages from user a operating
12845 system without usage limitations caused by non-free licensing. It is
12846 a Windows clone running directly on the hardware, so quite different
12847 from the approach taken by <a href="http://www.winehq.org/">the Wine
12848 project</a>, which make it possible to run Windows binaries on
12849 Linux.</p>
12850
12851 <p>The ReactOS project share code with the Wine project, so most
12852 shared libraries available on Windows are already implemented already.
12853 There is also a software manager like the one we are used to on Linux,
12854 allowing the user to install free software applications with a simple
12855 click directly from the Internet. Check out the
12856 <a href="http://www.reactos.org/screenshots">screen shots on the
12857 project web site</a> for an idea what it look like (it looks just like
12858 Windows before metro).</p>
12859
12860 <p>I do not use ReactOS myself, preferring Linux and Unix like
12861 operating systems. I've tested it, and it work fine in a virt-manager
12862 virtual machine. The browser, minesweeper, notepad etc is working
12863 fine as far as I can tell. Unfortunately, my main test application
12864 is the software included on a CD with the Lego Mindstorms NXT, which
12865 seem to install just fine from CD but fail to leave any binaries on
12866 the disk after the installation. So no luck with that test software.
12867 No idea why, but hope someone else figure out and fix the problem.
12868 I've tried the ReactOS Live ISO on a physical machine, and it seemed
12869 to work just fine. If you like Windows and want to keep running your
12870 old Windows binaries, check it out by
12871 <a href="http://www.reactos.org/download">downloading</a> the
12872 installation CD, the live CD or the preinstalled virtual machine
12873 image.</p>
12874
12875 </div>
12876 <div class="tags">
12877
12878
12879 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software</a>, <a href="http://people.skolelinux.org/pere/blog/tags/reactos">reactos</a>.
12880
12881
12882 </div>
12883 </div>
12884 <div class="padding"></div>
12885
12886 <div class="entry">
12887 <div class="title">
12888 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Roger_Marsal.html">Debian Edu interview: Roger Marsal</a>
12889 </div>
12890 <div class="date">
12891 30th March 2014
12892 </div>
12893 <div class="body">
12894 <p><a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a>
12895 keep gaining new users. Some weeks ago, a person showed up on IRC,
12896 <a href="irc://irc.debian.org/#debian-edu">#debian-edu</a>, with a
12897 wish to contribute, and I managed to get a interview with this great
12898 contributor Roger Marsal to learn more about his background.</p>
12899
12900 <p><strong>Who are you, and how do you spend your days?</strong></p>
12901
12902 <p>My name is Roger Marsal, I'm 27 years old (1986 generation) and I
12903 live in Barcelona, Spain. I've got a strong business background and I
12904 work as a patrimony manager and as a real estate agent. Additionally,
12905 I've co-founded a British based tech company that is nowadays on the
12906 last development phase of a new social networking concept.</p>
12907
12908 <p>I'm a Linux enthusiast that started its journey with Ubuntu four years
12909 ago and have recently switched to Debian seeking rock solid stability
12910 and as a necessary step to gain expertise.</p>
12911
12912 <p>In a nutshell, I spend my days working and learning as much as I
12913 can to face both my job, entrepreneur project and feed my Linux
12914 hunger.</p>
12915
12916 <p><strong>How did you get in contact with the Skolelinux / Debian Edu
12917 project?</strong></p>
12918
12919 <p>I discovered the <a href="http://www.ltsp.org/">LTSP</a> advantages
12920 with "Ubuntu 12.04 alternate install" and after a year of use I
12921 started looking for an alternative. Even though I highly value and
12922 respect the Ubuntu project, I thought it was necessary for me to
12923 change to a more robust and stable alternative. As far as I was using
12924 Debian on my personal laptop I thought it would be fine to install
12925 Debian and configure an LTSP server myself. Surprised, I discovered
12926 that the Debian project also supported a kind of Edubuntu equivalent,
12927 and after having some pain I obtained a Debian Edu network up and
12928 running. I just loved it.</p>
12929
12930 <p><strong>What do you see as the advantages of Skolelinux / Debian
12931 Edu?</strong></p>
12932
12933 <p>I found a main advantage in that, once you know "the tips and
12934 tricks", a new installation just works out of the box. It's the most
12935 complete alternative I've found to create an LTSP network. All the
12936 other distributions seems to be made of plastic, Debian Edu seems to
12937 be made of steel.</p>
12938
12939 <p><strong>What do you see as the disadvantages of Skolelinux / Debian
12940 Edu?</strong></p>
12941
12942 <p>I found two main disadvantages.</p>
12943
12944 <p>I'm not an expert but I've got notions and I had to spent a considerable
12945 amount of time trying to bring up a standard network topology. I'm quite
12946 stubborn and I just worked until I did but I'm sure many people with few
12947 resources (not big schools, but academies for example) would have switched
12948 or dropped.</p>
12949
12950 <p>It's amazing how such a complex system like Debian Edu has achieved
12951 this out-of-the-box state. Even though tweaking without breaking gets
12952 more difficult, as more factors have to be considered. This can
12953 discourage many people too.</p>
12954
12955 <p><strong>Which free software do you use daily?</strong></p>
12956
12957 <p>I use Debian, Firefox, Okular, Inkscape, LibreOffice and
12958 Virtualbox.</p>
12959
12960
12961 <p><strong>Which strategy do you believe is the right one to use to
12962 get schools to use free software?</strong></p>
12963
12964 <p>I don't think there is a need for a particular strategy. The free
12965 attribute in both "freedom" and "no price" meanings is what will
12966 really bring free software to schools. In my experience I can think of
12967 the <a href="http://www.r-project.org/">"R" statistical language</a>; a
12968 few years a ago was an extremely nerd tool for university people.
12969 Today it's being increasingly used to teach statistics at many
12970 different level of studies. I believe free and open software will
12971 increasingly gain popularity, but I'm sure schools will be one of the
12972 first scenarios where this will happen.</p>
12973
12974 </div>
12975 <div class="tags">
12976
12977
12978 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju</a>.
12979
12980
12981 </div>
12982 </div>
12983 <div class="padding"></div>
12984
12985 <div class="entry">
12986 <div class="title">
12987 <a href="http://people.skolelinux.org/pere/blog/Public_Trusted_Timestamping_services_for_everyone.html">Public Trusted Timestamping services for everyone</a>
12988 </div>
12989 <div class="date">
12990 25th March 2014
12991 </div>
12992 <div class="body">
12993 <p>Did you ever need to store logs or other files in a way that would
12994 allow it to be used as evidence in court, and needed a way to
12995 demonstrate without reasonable doubt that the file had not been
12996 changed since it was created? Or, did you ever need to document that
12997 a given document was received at some point in time, like some
12998 archived document or the answer to an exam, and not changed after it
12999 was received? The problem in these settings is to remove the need to
13000 trust yourself and your computers, while still being able to prove
13001 that a file is the same as it was at some given time in the past.</p>
13002
13003 <p>A solution to these problems is to have a trusted third party
13004 "stamp" the document and verify that at some given time the document
13005 looked a given way. Such
13006 <a href="https://en.wikipedia.org/wiki/Notarius">notarius</a> service
13007 have been around for thousands of years, and its digital equivalent is
13008 called a
13009 <a href="http://en.wikipedia.org/wiki/Trusted_timestamping">trusted
13010 timestamping service</a>. <a href="http://www.ietf.org/">The Internet
13011 Engineering Task Force</a> standardised how such service could work a
13012 few years ago as <a href="http://tools.ietf.org/html/rfc3161">RFC
13013 3161</a>. The mechanism is simple. Create a hash of the file in
13014 question, send it to a trusted third party which add a time stamp to
13015 the hash and sign the result with its private key, and send back the
13016 signed hash + timestamp. Both email, FTP and HTTP can be used to
13017 request such signature, depending on what is provided by the service
13018 used. Anyone with the document and the signature can then verify that
13019 the document matches the signature by creating their own hash and
13020 checking the signature using the trusted third party public key.
13021 There are several commercial services around providing such
13022 timestamping. A quick search for
13023 "<a href="https://duckduckgo.com/?q=rfc+3161+service">rfc 3161
13024 service</a>" pointed me to at least
13025 <a href="https://www.digistamp.com/technical/how-a-digital-time-stamp-works/">DigiStamp</a>,
13026 <a href="http://www.quovadisglobal.co.uk/CertificateServices/SigningServices/TimeStamp.aspx">Quo
13027 Vadis</a>,
13028 <a href="https://www.globalsign.com/timestamp-service/">Global Sign</a>
13029 and <a href="http://www.globaltrustfinder.com/TSADefault.aspx">Global
13030 Trust Finder</a>. The system work as long as the private key of the
13031 trusted third party is not compromised.</p>
13032
13033 <p>But as far as I can tell, there are very few public trusted
13034 timestamp services available for everyone. I've been looking for one
13035 for a while now. But yesterday I found one over at
13036 <a href="https://www.pki.dfn.de/zeitstempeldienst/">Deutches
13037 Forschungsnetz</a> mentioned in
13038 <a href="http://www.d-mueller.de/blog/dealing-with-trusted-timestamps-in-php-rfc-3161/">a
13039 blog by David Müller</a>. I then found
13040 <a href="http://www.rz.uni-greifswald.de/support/dfn-pki-zertifikate/zeitstempeldienst.html">a
13041 good recipe on how to use the service</a> over at the University of
13042 Greifswald.</p>
13043
13044 <p><a href="http://www.openssl.org/">The OpenSSL library</a> contain
13045 both server and tools to use and set up your own signing service. See
13046 the ts(1SSL), tsget(1SSL) manual pages for more details. The
13047 following shell script demonstrate how to extract a signed timestamp
13048 for any file on the disk in a Debian environment:</p>
13049
13050 <p><blockquote><pre>
13051 #!/bin/sh
13052 set -e
13053 url="http://zeitstempel.dfn.de"
13054 caurl="https://pki.pca.dfn.de/global-services-ca/pub/cacert/chain.txt"
13055 reqfile=$(mktemp -t tmp.XXXXXXXXXX.tsq)
13056 resfile=$(mktemp -t tmp.XXXXXXXXXX.tsr)
13057 cafile=chain.txt
13058 if [ ! -f $cafile ] ; then
13059 wget -O $cafile "$caurl"
13060 fi
13061 openssl ts -query -data "$1" -cert | tee "$reqfile" \
13062 | /usr/lib/ssl/misc/tsget -h "$url" -o "$resfile"
13063 openssl ts -reply -in "$resfile" -text 1>&2
13064 openssl ts -verify -data "$1" -in "$resfile" -CAfile "$cafile" 1>&2
13065 base64 < "$resfile"
13066 rm "$reqfile" "$resfile"
13067 </pre></blockquote></p>
13068
13069 <p>The argument to the script is the file to timestamp, and the output
13070 is a base64 encoded version of the signature to STDOUT and details
13071 about the signature to STDERR. Note that due to
13072 <a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=742553">a bug
13073 in the tsget script</a>, you might need to modify the included script
13074 and remove the last line. Or just write your own HTTP uploader using
13075 curl. :) Now you too can prove and verify that files have not been
13076 changed.</p>
13077
13078 <p>But the Internet need more public trusted timestamp services.
13079 Perhaps something for <a href="http://www.uninett.no/">Uninett</a> or
13080 my work place the <a href="http://www.uio.no/">University of Oslo</a>
13081 to set up?</p>
13082
13083 </div>
13084 <div class="tags">
13085
13086
13087 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>.
13088
13089
13090 </div>
13091 </div>
13092 <div class="padding"></div>
13093
13094 <div class="entry">
13095 <div class="title">
13096 <a href="http://people.skolelinux.org/pere/blog/Video_DVD_reader_library___python_dvdvideo___nice_free_software.html">Video DVD reader library / python-dvdvideo - nice free software</a>
13097 </div>
13098 <div class="date">
13099 21st March 2014
13100 </div>
13101 <div class="body">
13102 <p>Keeping your DVD collection safe from scratches and curious
13103 children fingers while still having it available when you want to see a
13104 movie is not straight forward. My preferred method at the moment is
13105 to store a full copy of the ISO on a hard drive, and use VLC, Popcorn
13106 Hour or other useful players to view the resulting file. This way the
13107 subtitles and bonus material are still available and using the ISO is
13108 just like inserting the original DVD record in the DVD player.</p>
13109
13110 <p>Earlier I used dd for taking security copies, but it do not handle
13111 DVDs giving read errors (which are quite a few of them). I've also
13112 tried using
13113 <a href="http://people.skolelinux.org/pere/blog/Ripping_problematic_DVDs_using_dvdbackup_and_genisoimage.html">dvdbackup
13114 and genisoimage</a>, but these days I use the marvellous python library
13115 and program
13116 <a href="http://bblank.thinkmo.de/blog/new-software-python-dvdvideo">python-dvdvideo</a>
13117 written by Bastian Blank. It is
13118 <a href="http://packages.qa.debian.org/p/python-dvdvideo.html">in Debian
13119 already</a> and the binary package name is python3-dvdvideo. Instead
13120 of trying to read every block from the DVD, it parses the file
13121 structure and figure out which block on the DVD is actually in used,
13122 and only read those blocks from the DVD. This work surprisingly well,
13123 and I have been able to almost backup my entire DVD collection using
13124 this method.</p>
13125
13126 <p>So far, python-dvdvideo have failed on between 10 and
13127 20 DVDs, which is a small fraction of my collection. The most common
13128 problem is
13129 <a href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=720831">DVDs
13130 using UTF-16 instead of UTF-8 characters</a>, which according to
13131 Bastian is against the DVD specification (and seem to cause some
13132 players to fail too). A rarer problem is what seem to be inconsistent
13133 DVD structures, as the python library
13134 <a href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=723079">claim
13135 there is a overlap between objects</a>. An equally rare problem claim
13136 <a href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=741878">some
13137 value is out of range</a>. No idea what is going on there. I wish I
13138 knew enough about the DVD format to fix these, to ensure my movie
13139 collection will stay with me in the future.</p>
13140
13141 <p>So, if you need to keep your DVDs safe, back them up using
13142 python-dvdvideo. :)</p>
13143
13144 </div>
13145 <div class="tags">
13146
13147
13148 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
13149
13150
13151 </div>
13152 </div>
13153 <div class="padding"></div>
13154
13155 <div class="entry">
13156 <div class="title">
13157 <a href="http://people.skolelinux.org/pere/blog/Freedombox_on_Dreamplug__Raspberry_Pi_and_virtual_x86_machine.html">Freedombox on Dreamplug, Raspberry Pi and virtual x86 machine</a>
13158 </div>
13159 <div class="date">
13160 14th March 2014
13161 </div>
13162 <div class="body">
13163 <p>The <a href="https://wiki.debian.org/FreedomBox">Freedombox
13164 project</a> is working on providing the software and hardware for
13165 making it easy for non-technical people to host their data and
13166 communication at home, and being able to communicate with their
13167 friends and family encrypted and away from prying eyes. It has been
13168 going on for a while, and is slowly progressing towards a new test
13169 release (0.2).</p>
13170
13171 <p>And what day could be better than the Pi day to announce that the
13172 new version will provide "hard drive" / SD card / USB stick images for
13173 Dreamplug, Raspberry Pi and VirtualBox (or any other virtualization
13174 system), and can also be installed using a Debian installer preseed
13175 file. The Debian based Freedombox is now based on Debian Jessie,
13176 where most of the needed packages used are already present. Only one,
13177 the freedombox-setup package, is missing. To try to build your own
13178 boot image to test the current status, fetch the freedom-maker scripts
13179 and build using
13180 <a href="http://packages.qa.debian.org/vmdebootstrap">vmdebootstrap</a>
13181 with a user with sudo access to become root:
13182
13183 <pre>
13184 git clone http://anonscm.debian.org/git/freedombox/freedom-maker.git \
13185 freedom-maker
13186 sudo apt-get install git vmdebootstrap mercurial python-docutils \
13187 mktorrent extlinux virtualbox qemu-user-static binfmt-support \
13188 u-boot-tools
13189 make -C freedom-maker dreamplug-image raspberry-image virtualbox-image
13190 </pre>
13191
13192 <p>Root access is needed to run debootstrap and mount loopback
13193 devices. See the README for more details on the build. If you do not
13194 want all three images, trim the make line. But note that thanks to <a
13195 href="https://bugs.debian.org/741407">a race condition in
13196 vmdebootstrap</a>, the build might fail without the patch to the
13197 kpartx call.</p>
13198
13199 <p>If you instead want to install using a Debian CD and the preseed
13200 method, boot a Debian Wheezy ISO and use this boot argument to load
13201 the preseed values:</p>
13202
13203 <pre>
13204 url=<a href="http://www.reinholdtsen.name/freedombox/preseed-jessie.dat">http://www.reinholdtsen.name/freedombox/preseed-jessie.dat</a>
13205 </pre>
13206
13207 <p>But note that due to <a href="https://bugs.debian.org/740673">a
13208 recently introduced bug in apt in Jessie</a>, the installer will
13209 currently hang while setting up APT sources. Killing the
13210 '<tt>apt-cdrom ident</tt>' process when it hang a few times during the
13211 installation will get the installation going. This affect all
13212 installations in Jessie, and I expect it will be fixed soon.</p>
13213
13214 <p>Give it a go and let us know how it goes on the mailing list, and help
13215 us get the new release published. :) Please join us on
13216 <a href="irc://irc.debian.org:6667/%23freedombox">IRC (#freedombox on
13217 irc.debian.org)</a> and
13218 <a href="http://lists.alioth.debian.org/mailman/listinfo/freedombox-discuss">the
13219 mailing list</a> if you want to help make this vision come true.</p>
13220
13221 </div>
13222 <div class="tags">
13223
13224
13225 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/freedombox">freedombox</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</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>.
13226
13227
13228 </div>
13229 </div>
13230 <div class="padding"></div>
13231
13232 <div class="entry">
13233 <div class="title">
13234 <a href="http://people.skolelinux.org/pere/blog/How_to_add_extra_storage_servers_in_Debian_Edu___Skolelinux.html">How to add extra storage servers in Debian Edu / Skolelinux</a>
13235 </div>
13236 <div class="date">
13237 12th March 2014
13238 </div>
13239 <div class="body">
13240 <p>On larger sites, it is useful to use a dedicated storage server for
13241 storing user home directories and data. The design for handling this
13242 in <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a>, is
13243 to update the automount rules in LDAP and let the automount daemon on
13244 the clients take care of the rest. I was reminded about the need to
13245 document this better when one of the customers of
13246 <a href="http://www.slxdrift.no/">Skolelinux Drift AS</a>, where I am
13247 on the board of directors, asked about how to do this. The steps to
13248 get this working are the following:</p>
13249
13250 <p><ol>
13251
13252 <li>Add new storage server in DNS. I use nas-server.intern as the
13253 example host here.</li>
13254
13255 <li>Add automoun LDAP information about this server in LDAP, to allow
13256 all clients to automatically mount it on reqeust.</li>
13257
13258 <li>Add the relevant entries in tjener.intern:/etc/fstab, because
13259 tjener.intern do not use automount to avoid mounting loops.</li>
13260
13261 </ol></p>
13262
13263 <p>DNS entries are added in GOsa², and not described here. Follow the
13264 <a href="https://wiki.debian.org/DebianEdu/Documentation/Wheezy/GettingStarted">instructions
13265 in the manual</a> (Machine Management with GOsa² in section Getting
13266 started).</p>
13267
13268 <p>Ensure that the NFS export points on the server are exported to the
13269 relevant subnets or machines:</p>
13270
13271 <p><blockquote><pre>
13272 root@tjener:~# showmount -e nas-server
13273 Export list for nas-server:
13274 /storage 10.0.0.0/8
13275 root@tjener:~#
13276 </pre></blockquote></p>
13277
13278 <p>Here everything on the backbone network is granted access to the
13279 /storage export. With NFSv3 it is slightly better to limit it to
13280 netgroup membership or single IP addresses to have some limits on the
13281 NFS access.</p>
13282
13283 <p>The next step is to update LDAP. This can not be done using GOsa²,
13284 because it lack a module for automount. Instead, use ldapvi and add
13285 the required LDAP objects using an editor.</p>
13286
13287 <p><blockquote><pre>
13288 ldapvi --ldap-conf -ZD '(cn=admin)' -b ou=automount,dc=skole,dc=skolelinux,dc=no
13289 </pre></blockquote></p>
13290
13291 <p>When the editor show up, add the following LDAP objects at the
13292 bottom of the document. The "/&" part in the last LDAP object is a
13293 wild card matching everything the nas-server exports, removing the
13294 need to list individual mount points in LDAP.</p>
13295
13296 <p><blockquote><pre>
13297 add cn=nas-server,ou=auto.skole,ou=automount,dc=skole,dc=skolelinux,dc=no
13298 objectClass: automount
13299 cn: nas-server
13300 automountInformation: -fstype=autofs --timeout=60 ldap:ou=auto.nas-server,ou=automount,dc=skole,dc=skolelinux,dc=no
13301
13302 add ou=auto.nas-server,ou=automount,dc=skole,dc=skolelinux,dc=no
13303 objectClass: top
13304 objectClass: automountMap
13305 ou: auto.nas-server
13306
13307 add cn=/,ou=auto.nas-server,ou=automount,dc=skole,dc=skolelinux,dc=no
13308 objectClass: automount
13309 cn: /
13310 automountInformation: -fstype=nfs,tcp,rsize=32768,wsize=32768,rw,intr,hard,nodev,nosuid,noatime nas-server.intern:/&
13311 </pre></blockquote></p>
13312
13313 <p>The last step to remember is to mount the relevant mount points in
13314 tjener.intern by adding them to /etc/fstab, creating the mount
13315 directories using mkdir and running "mount -a" to mount them.</p>
13316
13317 <p>When this is done, your users should be able to access the files on
13318 the storage server directly by just visiting the
13319 /tjener/nas-server/storage/ directory using any application on any
13320 workstation, LTSP client or LTSP server.</p>
13321
13322 </div>
13323 <div class="tags">
13324
13325
13326 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap</a>.
13327
13328
13329 </div>
13330 </div>
13331 <div class="padding"></div>
13332
13333 <div class="entry">
13334 <div class="title">
13335 <a href="http://people.skolelinux.org/pere/blog/New_home_and_release_1_0_for_netgroup_and_innetgr__aka_ng_utils_.html">New home and release 1.0 for netgroup and innetgr (aka ng-utils)</a>
13336 </div>
13337 <div class="date">
13338 22nd February 2014
13339 </div>
13340 <div class="body">
13341 <p>Many years ago, I wrote a GPL licensed version of the netgroup and
13342 innetgr tools, because I needed them in
13343 <a href="http://www.skolelinux.org/">Skolelinux</a>. I called the project
13344 ng-utils, and it has served me well. I placed the project under the
13345 <a href="http://www.hungry.com/">Hungry Programmer</a> umbrella, and it was maintained in our CVS
13346 repository. But many years ago, the CVS repository was dropped (lost,
13347 not migrated to new hardware, not sure), and the project have lacked a
13348 proper home since then.</p>
13349
13350 <p>Last summer, I had a look at the package and made a new release
13351 fixing a irritating crash bug, but was unable to store the changes in
13352 a proper source control system. I applied for a project on
13353 <a href="https://alioth.debian.org/">Alioth</a>, but did not have time
13354 to follow up on it. Until today. :)</p>
13355
13356 <p>After many hours of cleaning and migration, the ng-utils project
13357 now have a new home, and a git repository with the highlight of the
13358 history of the project. I published all release tarballs and imported
13359 them into the git repository. As the project is really stable and not
13360 expected to gain new features any time soon, I decided to make a new
13361 release and call it 1.0. Visit the new project home on
13362 <a href="https://alioth.debian.org/projects/ng-utils/">https://alioth.debian.org/projects/ng-utils/</a>
13363 if you want to check it out. The new version is also uploaded into
13364 <a href="http://packages.qa.debian.org/n/ng-utils.html">Debian Unstable</a>.</p>
13365
13366 </div>
13367 <div class="tags">
13368
13369
13370 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>.
13371
13372
13373 </div>
13374 </div>
13375 <div class="padding"></div>
13376
13377 <div class="entry">
13378 <div class="title">
13379 <a href="http://people.skolelinux.org/pere/blog/Testing_sysvinit_from_experimental_in_Debian_Hurd.html">Testing sysvinit from experimental in Debian Hurd</a>
13380 </div>
13381 <div class="date">
13382 3rd February 2014
13383 </div>
13384 <div class="body">
13385 <p>A few days ago I decided to try to help the Hurd people to get
13386 their changes into sysvinit, to allow them to use the normal sysvinit
13387 boot system instead of their old one. This follow up on the
13388 <a href="https://teythoon.cryptobitch.de//categories/gsoc.html">great
13389 Google Summer of Code work</a> done last summer by Justus Winter to
13390 get Debian on Hurd working more like Debian on Linux. To get started,
13391 I downloaded a prebuilt hard disk image from
13392 <a href="http://ftp.debian-ports.org/debian-cd/hurd-i386/current/debian-hurd.img.tar.gz">http://ftp.debian-ports.org/debian-cd/hurd-i386/current/debian-hurd.img.tar.gz</a>,
13393 and started it using virt-manager.</p>
13394
13395 <p>The first think I had to do after logging in (root without any
13396 password) was to get the network operational. I followed
13397 <a href="https://www.debian.org/ports/hurd/hurd-install">the
13398 instructions on the Debian GNU/Hurd ports page</a> and ran these
13399 commands as root to get the machine to accept a IP address from the
13400 kvm internal DHCP server:</p>
13401
13402 <p><blockquote><pre>
13403 settrans -fgap /dev/netdde /hurd/netdde
13404 kill $(ps -ef|awk '/[p]finet/ { print $2}')
13405 kill $(ps -ef|awk '/[d]evnode/ { print $2}')
13406 dhclient /dev/eth0
13407 </pre></blockquote></p>
13408
13409 <p>After this, the machine had internet connectivity, and I could
13410 upgrade it and install the sysvinit packages from experimental and
13411 enable it as the default boot system in Hurd.</p>
13412
13413 <p>But before I did that, I set a password on the root user, as ssh is
13414 running on the machine it for ssh login to work a password need to be
13415 set. Also, note that a bug somewhere in openssh on Hurd block
13416 compression from working. Remember to turn that off on the client
13417 side.</p>
13418
13419 <p>Run these commands as root to upgrade and test the new sysvinit
13420 stuff:</p>
13421
13422 <p><blockquote><pre>
13423 cat > /etc/apt/sources.list.d/experimental.list &lt;&lt;EOF
13424 deb http://http.debian.net/debian/ experimental main
13425 EOF
13426 apt-get update
13427 apt-get dist-upgrade
13428 apt-get install -t experimental initscripts sysv-rc sysvinit \
13429 sysvinit-core sysvinit-utils
13430 update-alternatives --config runsystem
13431 </pre></blockquote></p>
13432
13433 <p>To reboot after switching boot system, you have to use
13434 <tt>reboot-hurd</tt> instead of just <tt>reboot</tt>, as there is not
13435 yet a sysvinit process able to receive the signals from the normal
13436 'reboot' command. After switching to sysvinit as the boot system,
13437 upgrading every package and rebooting, the network come up with DHCP
13438 after boot as it should, and the settrans/pkill hack mentioned at the
13439 start is no longer needed. But for some strange reason, there are no
13440 longer any login prompt in the virtual console, so I logged in using
13441 ssh instead.
13442
13443 <p>Note that there are some race conditions in Hurd making the boot
13444 fail some times. No idea what the cause is, but hope the Hurd porters
13445 figure it out. At least Justus said on IRC (#debian-hurd on
13446 irc.debian.org) that they are aware of the problem. A way to reduce
13447 the impact is to upgrade to the Hurd packages built by Justus by
13448 adding this repository to the machine:</p>
13449
13450 <p><blockquote><pre>
13451 cat > /etc/apt/sources.list.d/hurd-ci.list &lt;&lt;EOF
13452 deb http://darnassus.sceen.net/~teythoon/hurd-ci/ sid main
13453 EOF
13454 </pre></blockquote></p>
13455
13456 <p>At the moment the prebuilt virtual machine get some packages from
13457 http://ftp.debian-ports.org/debian, because some of the packages in
13458 unstable do not yet include the required patches that are lingering in
13459 BTS. This is the completely list of "unofficial" packages installed:</p>
13460
13461 <p><blockquote><pre>
13462 # aptitude search '?narrow(?version(CURRENT),?origin(Debian Ports))'
13463 i emacs - GNU Emacs editor (metapackage)
13464 i gdb - GNU Debugger
13465 i hurd-recommended - Miscellaneous translators
13466 i isc-dhcp-client - ISC DHCP client
13467 i isc-dhcp-common - common files used by all the isc-dhcp* packages
13468 i libc-bin - Embedded GNU C Library: Binaries
13469 i libc-dev-bin - Embedded GNU C Library: Development binaries
13470 i libc0.3 - Embedded GNU C Library: Shared libraries
13471 i A libc0.3-dbg - Embedded GNU C Library: detached debugging symbols
13472 i libc0.3-dev - Embedded GNU C Library: Development Libraries and Hea
13473 i multiarch-support - Transitional package to ensure multiarch compatibilit
13474 i A x11-common - X Window System (X.Org) infrastructure
13475 i xorg - X.Org X Window System
13476 i A xserver-xorg - X.Org X server
13477 i A xserver-xorg-input-all - X.Org X server -- input driver metapackage
13478 #
13479 </pre></blockquote></p>
13480
13481 <p>All in all, testing hurd has been an interesting experience. :)
13482 X.org did not work out of the box and I never took the time to follow
13483 the porters instructions to fix it. This time I was interested in the
13484 command line stuff.<p>
13485
13486 </div>
13487 <div class="tags">
13488
13489
13490 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
13491
13492
13493 </div>
13494 </div>
13495 <div class="padding"></div>
13496
13497 <div class="entry">
13498 <div class="title">
13499 <a href="http://people.skolelinux.org/pere/blog/A_fist_full_of_non_anonymous_Bitcoins.html">A fist full of non-anonymous Bitcoins</a>
13500 </div>
13501 <div class="date">
13502 29th January 2014
13503 </div>
13504 <div class="body">
13505 <p>Bitcoin is a incredible use of peer to peer communication and
13506 encryption, allowing direct and immediate money transfer without any
13507 central control. It is sometimes claimed to be ideal for illegal
13508 activity, which I believe is quite a long way from the truth. At least
13509 I would not conduct illegal money transfers using a system where the
13510 details of every transaction are kept forever. This point is
13511 investigated in
13512 <a href="https://www.usenix.org/publications/login">USENIX ;login:</a>
13513 from December 2013, in the article
13514 "<a href="https://www.usenix.org/system/files/login/articles/03_meiklejohn-online.pdf">A
13515 Fistful of Bitcoins - Characterizing Payments Among Men with No
13516 Names</a>" by Sarah Meiklejohn, Marjori Pomarole,Grant Jordan, Kirill
13517 Levchenko, Damon McCoy, Geoffrey M. Voelker, and Stefan Savage. They
13518 analyse the transaction log in the Bitcoin system, using it to find
13519 addresses belong to individuals and organisations and follow the flow
13520 of money from both Bitcoin theft and trades on Silk Road to where the
13521 money end up. This is how they wrap up their article:</p>
13522
13523 <p><blockquote>
13524 <p>"To demonstrate the usefulness of this type of analysis, we turned
13525 our attention to criminal activity. In the Bitcoin economy, criminal
13526 activity can appear in a number of forms, such as dealing drugs on
13527 Silk Road or simply stealing someone else’s bitcoins. We followed the
13528 flow of bitcoins out of Silk Road (in particular, from one notorious
13529 address) and from a number of highly publicized thefts to see whether
13530 we could track the bitcoins to known services. Although some of the
13531 thieves attempted to use sophisticated mixing techniques (or possibly
13532 mix services) to obscure the flow of bitcoins, for the most part
13533 tracking the bitcoins was quite straightforward, and we ultimately saw
13534 large quantities of bitcoins flow to a variety of exchanges directly
13535 from the point of theft (or the withdrawal from Silk Road).</p>
13536
13537 <p>As acknowledged above, following stolen bitcoins to the point at
13538 which they are deposited into an exchange does not in itself identify
13539 the thief; however, it does enable further de-anonymization in the
13540 case in which certain agencies can determine (through, for example,
13541 subpoena power) the real-world owner of the account into which the
13542 stolen bitcoins were deposited. Because such exchanges seem to serve
13543 as chokepoints into and out of the Bitcoin economy (i.e., there are
13544 few alternative ways to cash out), we conclude that using Bitcoin for
13545 money laundering or other illicit purposes does not (at least at
13546 present) seem to be particularly attractive."</p>
13547 </blockquote><p>
13548
13549 <p>These researches are not the first to analyse the Bitcoin
13550 transaction log. The 2011 paper
13551 "<a href="http://arxiv.org/abs/1107.4524">An Analysis of Anonymity in
13552 the Bitcoin System</A>" by Fergal Reid and Martin Harrigan is
13553 summarized like this:</p>
13554
13555 <p><blockquote>
13556 "Anonymity in Bitcoin, a peer-to-peer electronic currency system, is a
13557 complicated issue. Within the system, users are identified by
13558 public-keys only. An attacker wishing to de-anonymize its users will
13559 attempt to construct the one-to-many mapping between users and
13560 public-keys and associate information external to the system with the
13561 users. Bitcoin tries to prevent this attack by storing the mapping of
13562 a user to his or her public-keys on that user's node only and by
13563 allowing each user to generate as many public-keys as required. In
13564 this chapter we consider the topological structure of two networks
13565 derived from Bitcoin's public transaction history. We show that the
13566 two networks have a non-trivial topological structure, provide
13567 complementary views of the Bitcoin system and have implications for
13568 anonymity. We combine these structures with external information and
13569 techniques such as context discovery and flow analysis to investigate
13570 an alleged theft of Bitcoins, which, at the time of the theft, had a
13571 market value of approximately half a million U.S. dollars."
13572 </blockquote></p>
13573
13574 <p>I hope these references can help kill the urban myth that Bitcoin
13575 is anonymous. It isn't really a good fit for illegal activites. Use
13576 cash if you need to stay anonymous, at least until regular DNA
13577 sampling of notes and coins become the norm. :)</p>
13578
13579 <p>As usual, if you use Bitcoin and want to show your support of my
13580 activities, please send Bitcoin donations to my address
13581 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
13582
13583 </div>
13584 <div class="tags">
13585
13586
13587 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>, <a href="http://people.skolelinux.org/pere/blog/tags/usenix">usenix</a>.
13588
13589
13590 </div>
13591 </div>
13592 <div class="padding"></div>
13593
13594 <div class="entry">
13595 <div class="title">
13596 <a href="http://people.skolelinux.org/pere/blog/New_chrpath_release_0_16.html">New chrpath release 0.16</a>
13597 </div>
13598 <div class="date">
13599 14th January 2014
13600 </div>
13601 <div class="body">
13602 <p><a href="http://www.coverity.com/">Coverity</a> is a nice tool to
13603 find problems in C, C++ and Java code using static source code
13604 analysis. It can detect a lot of different problems, and is very
13605 useful to find memory and locking bugs in the error handling part of
13606 the source. The company behind it provide
13607 <a href="https://scan.coverity.com/">check of free software projects as
13608 a community service</a>, and many hundred free software projects are
13609 already checked. A few days ago I decided to have a closer look at
13610 the Coverity system, and discovered that the
13611 <a href="http://www.gnu.org/software/gnash/">gnash</a> and
13612 <a href="http://sourceforge.net/projects/ipmitool/">ipmitool</a>
13613 projects I am involved with was already registered. But these are
13614 fairly big, and I would also like to have a small and easy project to
13615 check, and decided to <a href="http://scan.coverity.com/projects/1179">request
13616 checking of the chrpath project</a>. It was
13617 added to the checker and discovered seven potential defects. Six of
13618 these were real, mostly resource "leak" when the program detected an
13619 error. Nothing serious, as the resources would be released a fraction
13620 of a second later when the program exited because of the error, but it
13621 is nice to do it right in case the source of the program some time in
13622 the future end up in a library. Having fixed all defects and added
13623 <a href="https://lists.alioth.debian.org/mailman/listinfo/chrpath-devel">a
13624 mailing list for the chrpath developers</a>, I decided it was time to
13625 publish a new release. These are the release notes:</p>
13626
13627 <p>New in 0.16 released 2014-01-14:</p>
13628
13629 <ul>
13630
13631 <li>Fixed all minor bugs discovered by Coverity.</li>
13632 <li>Updated config.sub and config.guess from the GNU project.</li>
13633 <li>Mention new project mailing list in the documentation.</li>
13634
13635 </ul>
13636
13637 <p>You can
13638 <a href="https://alioth.debian.org/frs/?group_id=31052">download the
13639 new version 0.16 from alioth</a>. Please let us know via the Alioth
13640 project if something is wrong with the new release. The test suite
13641 did not discover any old errors, so if you find a new one, please also
13642 include a test suite check.</p>
13643
13644 </div>
13645 <div class="tags">
13646
13647
13648 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/chrpath">chrpath</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
13649
13650
13651 </div>
13652 </div>
13653 <div class="padding"></div>
13654
13655 <div class="entry">
13656 <div class="title">
13657 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Dominik_George.html">Debian Edu interview: Dominik George</a>
13658 </div>
13659 <div class="date">
13660 25th December 2013
13661 </div>
13662 <div class="body">
13663 <p>The <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux
13664 project</a> consist of both newcomers and old timers, and this time I
13665 was able to get an interview with a newcomer in the project who showed
13666 up on the IRC channel a few weeks ago to let us know about his
13667 successful installation of Debian Edu Wheezy in his School. Say hello
13668 to <a href="https://www.ohloh.net/accounts/Natureshadow">Dominik
13669 George</a>.</p>
13670
13671 <!-- http://www.dominik-george.de/images/foto.jpg -->
13672
13673 <p><strong>Who are you, and how do you spend your days?</strong></p>
13674
13675 <p>I am a 23 year-old student from Germany who has spent half of his
13676 life with open source. In "real life", I am, as already mentioned, a
13677 student in the fields of Computer Science, Electrical Engineering,
13678 Information Technologies and Anglistics. Due to my (only partially
13679 voluntary) huge engagement in the open source world, these things are
13680 a bit vacant right now however.</p>
13681
13682 <p>I also have been working as a project teacher at a Gymasnium
13683 (public school) for various years now. I took up that work some time
13684 around 2005 when still attending that school myself and have continued
13685 it until today. I also had been running the (kind of very advanced)
13686 network of that school together with a team of very interested and
13687 talented students in the age of 11 to 15 years, who took the chance to
13688 learn a lot about open source and networking before I left the school
13689 to help building another school's informational education concept from
13690 scratch.</p>
13691
13692 <p>That said, one might see me as a kind of "glue" between school kids
13693 and the elderly of teachers as well as between the open source
13694 ecosystem and the (even more complex) educational ecosystem.</p>
13695
13696 <p>When I am not busy with open source or education, I like Geocaching
13697 and cycling.</p>
13698
13699 <p><strong>How did you get in contact with the Skolelinux / Debian Edu
13700 project?</strong></p>
13701
13702 <p>I think that happened some time around 2009 when I first attended
13703 <a href="http://www.froscon.org">FrOSCon</a> and visited the project
13704 booth. I think I wasn't too interested back then because I used to
13705 have an attitude of disliking software that does too much stuff on its
13706 own. Maybe I was too inexperienced to realise the upsides of an
13707 "out-of-the-box" solution ;).</p>
13708
13709 <p>The first time I actively talked to Skolelinux people was at
13710 <a href="http://www.openrheinruhr.de">OpenRheinRuhr</a> 2011 when the
13711 BiscuIT project, a home-grewn software used by my school for various
13712 really cool things from timetables and class contact lists to lunch
13713 ordering, student ID card printing and project elections first got to
13714 a stage where it could have been published. I asked the Skolelinux
13715 guys running the booth if the project were interested in it and gave a
13716 small demonstration, but there wasn't any real feedback and the guys
13717 seemed rather uninterested.</p>
13718
13719 <p>After I left the school where I developed the software, it got
13720 mostly lost, but I am now reimplementing it for my new school. I have
13721 reusability and compatibility in mind, and I hop there will be a new
13722 basis for contributing it to the Skolelinux project ;)!</p>
13723
13724 <p><strong>What do you see as the advantages of Skolelinux / Debian
13725 Edu?</strong></p>
13726
13727 <p>The most important advantage seems to be that it "just
13728 works". After overcoming some minor (but still very annoying) glitches
13729 in the installer, I got a fully functional, working school network,
13730 without the month-long hassle I experienced when setting all that up
13731 from scratch in earlier years. And above that, it rocked - I didn't
13732 have any real hardware at hand, because the school was just founded
13733 and has no money whatsoever, so I installed a combined server (main
13734 server, terminal services and workstation) in a VM on my personal
13735 notebook, bridging the LTSP network interface to the ethernet port,
13736 and then PXE-booted the Windows notebooks that were lying around from
13737 it. I could use 8 clients without any performance issues, by using a
13738 tiny little VM on a tiny little notebook. I think that's enough to say
13739 that it rocks!</p>
13740
13741 <p>Secondly, there are marketing reasons. Life's bad, and so no
13742 politician will ever permit a setup described as "Debian, an universal
13743 operating system, with some really cool educational tools" while they
13744 will be jsut fine with "Skolelinux, a single-purpose solution for your
13745 school network", even if both turn out to be the very same thing (yes,
13746 this is unfair towards the Skolelinux project, and must not be taken
13747 too seriously - you get the idea, anyway).</p>
13748
13749 <p><strong>What do you see as the disadvantages of Skolelinux / Debian
13750 Edu?</strong></p>
13751
13752 <p>I have not been involved with Skolelinux long enough to really
13753 answer this question in a fair way. Thus, please allow me to put it in
13754 other words: "What do you expect from Skolelinux to keep liking it?" I
13755 can list a few points about that:</p>
13756
13757 <ul>
13758
13759 <li>always strive to get all things integrated into Debian upstream
13760 <li>be open to discussion about changes and the like, even with newcomers
13761 <li>be helpful at being helpful ;)
13762
13763 </ul>
13764
13765 <p>I'm really sorry I cannot say much more about that :(!</p>
13766
13767 <p><strong>Which free software do you use daily?</strong></p>
13768
13769 <p>First of all, all software I use is free and open. I have abandoned
13770 all non-free software (except for firmware on my darned phone) this
13771 year.</p>
13772
13773 <p>I run Debian GNU/Linux on all PC systems I use. On that, I mostly
13774 run text tools. I use
13775 <a href="https://www.mirbsd.org/mksh.htm">mksh</a> as shell,
13776 <a href="https://www.mirbsd.org/jupp.htm">jupp</a> as very advanced
13777 text editor (I even got the developer to help me write a script/macro
13778 based full-featured student management software with the two),
13779 <a href="http://mcabber.com/">mcabber</a> for XMPP and
13780 <a href="http://www.irssi.org/">irssi</a> for IRC. For that overly
13781 coloured world called the WWW, I use
13782 <a href="https://www.mozilla.org/en-US/firefox/new/">Iceweasel
13783 (Firefox)</a>. Oh, and <a href="http://www.mutt.org/">mutt</a> for
13784 e-mail.</p>
13785
13786 <p>However, while I am personally aware of the fact that text tools
13787 are more efficient and powerful than anything else, I also use (or at
13788 least operate) some tools that are suitable to bring open source to
13789 kids. One of these things is <a href="http://jappix.org/">Jappix</a>,
13790 which I already introduced to some kids even before they got aware of
13791 Facebook, making them see for themselves that they do not need
13792 Facebook now ;).</p>
13793
13794 <p><strong>Which strategy do you believe is the right one to use to
13795 get schools to use free software?</strong></p>
13796
13797 <p>Well, that's a two-sided thing. One side is what I believe, and one
13798 side is what I have experienced.</p>
13799
13800 <p>I believe that the right strategy is showing them the benefits. But
13801 that won't work out as long as the acceptance of free alternatives
13802 grows globally. What I mean is that if all the kids are almost forced
13803 to use Windows, Facebook, Skype, you name it at home, they will not
13804 see why they would want to use alternatives at school. I have seen
13805 students take seat in front of a fully-functional, modern Debian
13806 desktop that could do anything their Windows at home could do, and
13807 they jsut refused to use it because "Linux sucks". It is something
13808 that makes the council of our city spend around 600000 € to buy
13809 software - not including hardware, mind you - for operating school
13810 networks, and for installing a system that, as has been proved, does
13811 not work. For those of you readers who are good at maths, have you
13812 already found out how many lives could have been saved with that money
13813 if we had instead used it to bring education to parts of the world
13814 that need it? I have, and found it to be nothing less dramatic than
13815 plain criminal.</p>
13816
13817 <p>That said, the only feasible way appears to be the bottom up
13818 method. We have to bring free software to kids and parents. I have
13819 founded an association named
13820 <a href="https://www.teckids.org">Teckids</a> here in Germany that does
13821 just that. We organise several events for kids and adolescents in the
13822 area of free and open source software, for example the
13823 <a href="http://kids.froscon.org">FrogLabs</a>, which share staff with
13824 Teckids and are the youth programme of
13825 <a href="http://www.froscon.org">the Free and Open Source Software
13826 Conference (FrOSCon)</a>. We do a lot more than most other conferences
13827 - this year, we first offered the FrogLabs as a holiday camp for kids
13828 aged 10 to 16. It was a huge success, with approx. 30 kids taking part
13829 and learning with and about free software through a whole weekend. All
13830 of us had a lot of fun, and the results were really exciting.</p>
13831
13832 <p>Apart from that, we are preparing a campaign that is supposed to bring
13833 the message of free alternatives to stuff kids use every day to them and
13834 their parents, e.g. the use of Jabber / Jappix instead of Facebook and
13835 Skype. To make that possible, we are planning to get together a team of
13836 clever kids who understand very well what their peers need and can bring
13837 it across to them. So we will have a peer-driven network of adolescents
13838 who teach each other and collect feedback from the community of minors.
13839 We then take that feedback and our own experience to work closely with
13840 open source projects, such as Skolelinux or Jappix, at improving their
13841 software in a way that makes it more and more attractive for the target
13842 group. At least I hope that we will have good cooperation with
13843 Skolelinux in the future ;)!</p>
13844
13845 <p>So in conclusion, what I believe is that, if it weren't for the world
13846 being so bad, it should be very clear to the political decision makers
13847 that the only way to go nowadays is free software for various reasons,
13848 but I have learnt that the only way that seems to work is bottom up.</p>
13849
13850 <!--
13851
13852 > * Who should be interviewed with this questions in the future?
13853
13854 That's probably the hardest question of them all, as I do not know the
13855 community. However, I would be willing to do the following:
13856
13857 <li>Run an interview with a German headteacher who is very open to
13858 free software, and also prefers it, but cannot really use it because
13859 of the decision makers above;
13860 <li>Run interviews with some kids, both with and without previous
13861 knowledge about free software
13862
13863 If that is wanted, just let me know ;).
13864
13865 -->
13866
13867 </div>
13868 <div class="tags">
13869
13870
13871 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju</a>.
13872
13873
13874 </div>
13875 </div>
13876 <div class="padding"></div>
13877
13878 <div class="entry">
13879 <div class="title">
13880 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Klaus_Knopper.html">Debian Edu interview: Klaus Knopper</a>
13881 </div>
13882 <div class="date">
13883 6th December 2013
13884 </div>
13885 <div class="body">
13886 <p>It has been a while since I managed to publish the last interview,
13887 but the <a href="http://www.skolelinux.org/">Debian Edu /
13888 Skolelinux</a> community is still going strong, and yesterday we even
13889 had a new school administrator show up on
13890 <a href="irc://irc.debian.org/#debian-edu">#debian-edu</a> to share
13891 his success story with installing Debian Edu at their school. This
13892 time I have been able to get some helpful comments from the creator of
13893 Knoppix, Klaus Knopper, who was involved in a Skolelinux project in
13894 Germany a few years ago.</p>
13895
13896 <p><strong>Who are you, and how do you spend your days?</strong></p>
13897
13898 <p>I am Klaus Knopper. I have a master degree in electrical
13899 engineering, and is currently professor in information management at
13900 the university of applied sciences Kaiserslautern / Germany and
13901 freelance Open Source software developer and consultant.</p>
13902
13903 <p>All of this is pretty much of the work I spend my days with. Apart
13904 from teaching, I'm also conducting some more or less experimental
13905 projects like the <a href="http://www.knoppix.org">Knoppix GNU/Linux live
13906 system</a> (Debian-based like Skolelinux),
13907 <a href="http://www.knopper.net/knoppix-adriane/index-en.html">ADRIANE</a>
13908 (a blind-friendly talking desktop system) and
13909 <a href="http://www.knopper.net/linbo/index-en.html">LINBO</a>
13910 (Linux-based network boot console, a fast remote install and repair
13911 system supporting various operating systems).</p>
13912
13913 <p><strong>How did you get in contact with the Skolelinux / Debian Edu
13914 project?</strong></p>
13915
13916 <p>The credit for this have to go to Kurt Gramlich, who is the German
13917 coordinator for Skolelinux. We were looking for an all-in-one open
13918 source community-supported distribution for schools, and Kurt
13919 introduced us to Skolelinux for this purpose.</p>
13920
13921 <p><strong>What do you see as the advantages of Skolelinux / Debian
13922 Edu?</strong></p>
13923
13924 <ul>
13925 <li>Quick installation,</li>
13926 <li>works (almost) out of the box,</li>
13927 <li>contains many useful software packages for teaching and learning,</li>
13928 <li>is a purely community-based distro and not controlled by a
13929 single company,</li>
13930 <li>has a large number of supporters and teachers who share their
13931 experience and problem solutions.</li>
13932 </ul>
13933
13934 <p><strong>What do you see as the disadvantages of Skolelinux / Debian
13935 Edu?</strong></p>
13936
13937 <ul>
13938 <li>Skolelinux is - as we had to learn - not easily upgradable to
13939 the next version. Opposed to its genuine Debian base, upgrading to
13940 a new version means a full new installation from scratch to get it
13941 working again reliably.
13942
13943 <li>Skolelinux is based on Debian/stable, and therefore always a
13944 little outdated in terms of program versions compared to Edubuntu or
13945 similar educational Linux distros, which rather use Debian/testing
13946 as their base.
13947
13948 <li>Skolelinux has some very self-opinionated and stubborn default
13949 configuration which in my opinion adds unnecessary complexity and is
13950 not always suitable for a schools needs, the preset network
13951 configuration is actually a core definition feature of Skolelinux
13952 and not easy to change, so schools sometimes have to change their
13953 network configuration to make it "Skolelinux-compatible".
13954
13955 <li>Some proposed extensions, which were made available as
13956 contribution, like secure examination mode and lecture material
13957 distribution and collection, were not accepted into the mainline
13958 Skolelinux development and are now not easy to maintain in the
13959 future because of Skolelinux somewhat undeterministic update
13960 schemes.</li>
13961
13962 <li>Skolelinux has only a very tiny number of base developers
13963 compared to Debian.</li>
13964
13965 </ul>
13966
13967 <p>For these reasons and experience from our project, I would now
13968 rather consider using plain Debian for schools next time, until
13969 Skolelinux is more closely integrated into Debian and becomes
13970 upgradeable without reinstallation.</p>
13971
13972 <p><strong>Which free software do you use daily?</strong></p>
13973
13974 <p>GNU/Linux with LXDE desktop, bash for interactive dialog and
13975 programming, texlive for documentation and correspondence,
13976 occasionally LibreOffice for document format conversion. Various
13977 programming languages for teaching.</p>
13978
13979 <p><strong>Which strategy do you believe is the right one to use to
13980 get schools to use free software?</strong></p>
13981
13982 <p>Strong arguments are</p>
13983
13984 <ul>
13985
13986 <li>Knowledge is free, and so should be methods and tools for
13987 teaching and learning.</li>
13988
13989 <li>Students can learn with and use the same software at school, at
13990 home, and at their working place without running into license or
13991 conversion problems.</li>
13992
13993 <li>Closed source or proprietary software hides knowledge rather
13994 than exposing it, and proprietary software vendors try to bind
13995 customers to certain products. But teachers need to teach
13996 science, not products.</li>
13997
13998 <li>If you have everything you for daily work as open source, what
13999 would you need proprietary software for?</li>
14000
14001 </ul>
14002
14003 </div>
14004 <div class="tags">
14005
14006
14007 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju</a>.
14008
14009
14010 </div>
14011 </div>
14012 <div class="padding"></div>
14013
14014 <div class="entry">
14015 <div class="title">
14016 <a href="http://people.skolelinux.org/pere/blog/Dugnadsnett_for_alle__a_wireless_community_network_in_Oslo__take_shape.html">Dugnadsnett for alle, a wireless community network in Oslo, take shape</a>
14017 </div>
14018 <div class="date">
14019 30th November 2013
14020 </div>
14021 <div class="body">
14022 <p>If you want the ability to electronically communicate directly with
14023 your neighbors and friends using a network controlled by your peers in
14024 stead of centrally controlled by a few corporations, or would like to
14025 experiment with interesting network technology, the
14026 <a href="http://www.dugnadsnett.no/">Dugnasnett for alle i Oslo</a>
14027 might be project for you. 39 mesh nodes are currently being planned,
14028 in the freshly started initiative from NUUG and Hackeriet to create a
14029 wireless community network. The work is inspired by
14030 <a href="http://freifunk.net/">Freifunk</a>,
14031 <a href="http://www.awmn.net/">Athens Wireless Metropolitan
14032 Network</a>, <a href="http://en.wikipedia.org/wiki/Roofnet">Roofnet</a>
14033 and other successful mesh networks around the globe. Two days ago we
14034 held a workshop to try to get people started on setting up their own
14035 mesh node, and there we decided to create a new mailing list
14036 <a href="http://lists.nuug.no/mailman/listinfo/dugnadsnett">dugnadsnett
14037 (at) nuug.no</a> and IRC channel
14038 <a href="irc://irc.freenode.net/#dugnadsnett.no">#dugnadsnett.no</a> to
14039 coordinate the work. See also the NUUG blog post
14040 <a href="http://www.nuug.no/news/E_postliste_og_IRC_kanal_for_Dugnadsnett_for_alle_i_Oslo.shtml">announcing
14041 the mailing list and IRC channel</a>.</p>
14042
14043 </div>
14044 <div class="tags">
14045
14046
14047 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
14048
14049
14050 </div>
14051 </div>
14052 <div class="padding"></div>
14053
14054 <div class="entry">
14055 <div class="title">
14056 <a href="http://people.skolelinux.org/pere/blog/New_chrpath_release_0_15.html">New chrpath release 0.15</a>
14057 </div>
14058 <div class="date">
14059 24th November 2013
14060 </div>
14061 <div class="body">
14062 <p>After many years break from the package and a vain hope that
14063 development would be continued by someone else, I finally pulled my
14064 acts together this morning and wrapped up a new release of chrpath,
14065 the command line tool to modify the rpath and runpath of already
14066 compiled ELF programs. The update was triggered by the persistence of
14067 Isha Vishnoi at IBM, which needed a new config.guess file to get
14068 support for the ppc64le architecture (powerpc 64-bit Little Endian) he
14069 is working on. I checked the
14070 <a href="http://packages.qa.debian.org/chrpath">Debian</a>,
14071 <a href="https://launchpad.net/ubuntu/+source/chrpath">Ubuntu</a> and
14072 <a href="https://admin.fedoraproject.org/pkgdb/acls/name/chrpath">Fedora</a>
14073 packages for interesting patches (failed to find the source from
14074 OpenSUSE and Mandriva packages), and found quite a few nice fixes.
14075 These are the release notes:</p>
14076
14077 <p>New in 0.15 released 2013-11-24:</p>
14078
14079 <ul>
14080
14081 <li>Updated config.sub and config.guess from the GNU project to work
14082 with newer architectures. Thanks to isha vishnoi for the heads
14083 up.</li>
14084
14085 <li>Updated README with current URLs.</li>
14086
14087 <li>Added byteswap fix found in Ubuntu, credited Jeremy Kerr and
14088 Matthias Klose.</li>
14089
14090 <li>Added missing help for -k|--keepgoing option, using patch by
14091 Petr Machata found in Fedora.</li>
14092
14093 <li>Rewrite removal of RPATH/RUNPATH to make sure the entry in
14094 .dynamic is a NULL terminated string. Based on patch found in
14095 Fedora credited Axel Thimm and Christian Krause.</li>
14096
14097 </ul>
14098
14099 <p>You can
14100 <a href="https://alioth.debian.org/frs/?group_id=31052">download the
14101 new version 0.15 from alioth</a>. Please let us know via the Alioth
14102 project if something is wrong with the new release. The test suite
14103 did not discover any old errors, so if you find a new one, please also
14104 include a testsuite check.</p>
14105
14106 </div>
14107 <div class="tags">
14108
14109
14110 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/chrpath">chrpath</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
14111
14112
14113 </div>
14114 </div>
14115 <div class="padding"></div>
14116
14117 <div class="entry">
14118 <div class="title">
14119 <a href="http://people.skolelinux.org/pere/blog/All_drones_should_be_radio_marked_with_what_they_do_and_who_they_belong_to.html">All drones should be radio marked with what they do and who they belong to</a>
14120 </div>
14121 <div class="date">
14122 21st November 2013
14123 </div>
14124 <div class="body">
14125 <p>Drones, flying robots, are getting more and more popular. The most
14126 know ones are the killer drones used by some government to murder
14127 people they do not like without giving them the chance of a fair
14128 trial, but the technology have many good uses too, from mapping and
14129 forest maintenance to photography and search and rescue. I am sure it
14130 is just a question of time before "bad drones" are in the hands of
14131 private enterprises and not only state criminals but petty criminals
14132 too. The drone technology is very useful and very dangerous. To have
14133 some control over the use of drones, I agree with Daniel Suarez in his
14134 TED talk
14135 "<a href="https://archive.org/details/DanielSuarez_2013G">The kill
14136 decision shouldn't belong to a robot</a>", where he suggested this
14137 little gem to keep the good while limiting the bad use of drones:</p>
14138
14139 <blockquote>
14140
14141 <p>Each robot and drone should have a cryptographically signed
14142 I.D. burned in at the factory that can be used to track its movement
14143 through public spaces. We have license plates on cars, tail numbers on
14144 aircraft. This is no different. And every citizen should be able to
14145 download an app that shows the population of drones and autonomous
14146 vehicles moving through public spaces around them, both right now and
14147 historically. And civic leaders should deploy sensors and civic drones
14148 to detect rogue drones, and instead of sending killer drones of their
14149 own up to shoot them down, they should notify humans to their
14150 presence. And in certain very high-security areas, perhaps civic
14151 drones would snare them and drag them off to a bomb disposal facility.</p>
14152
14153 <p>But notice, this is more an immune system than a weapons system. It
14154 would allow us to avail ourselves of the use of autonomous vehicles
14155 and drones while still preserving our open, civil society.</p>
14156
14157 </blockquote>
14158
14159 <p>The key is that <em>every citizen</em> should be able to read the
14160 radio beacons sent from the drones in the area, to be able to check
14161 both the government and others use of drones. For such control to be
14162 effective, everyone must be able to do it. What should such beacon
14163 contain? At least formal owner, purpose, contact information and GPS
14164 location. Probably also the origin and target position of the current
14165 flight. And perhaps some registration number to be able to look up
14166 the drone in a central database tracking their movement. Robots
14167 should not have privacy. It is people who need privacy.</p>
14168
14169 </div>
14170 <div class="tags">
14171
14172
14173 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/robot">robot</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>.
14174
14175
14176 </div>
14177 </div>
14178 <div class="padding"></div>
14179
14180 <div class="entry">
14181 <div class="title">
14182 <a href="http://people.skolelinux.org/pere/blog/Lets_make_a_wireless_community_network_in_Oslo_.html">Lets make a wireless community network in Oslo!</a>
14183 </div>
14184 <div class="date">
14185 13th November 2013
14186 </div>
14187 <div class="body">
14188 <p>Today NUUG and Hackeriet announced
14189 <a href="http://www.nuug.no/news/Bli_med___bygge_dugnadsnett_for_alle_i_Oslo.shtml">our
14190 plans to join forces and create a wireless community network in
14191 Oslo</a>. The workshop to help people get started will take place
14192 Thursday 2013-11-28, but we already are collecting the geolocation of
14193 people joining forces to make this happen. We have
14194 <a href="https://github.com/petterreinholdtsen/meshfx-node/blob/master/oslo-nodes.geojson">9
14195 locations plotted on the map</a>, but we will need more before we have
14196 a connected mesh spread across Oslo. If this sound interesting to
14197 you, please join us at the workshop. If you are too impatient to wait
14198 15 days, please join us on the IRC channel
14199 <a href="irc://irc.freenode.net/%23nuug">#nuug on irc.freenode.net</a>
14200 right away. :)</p>
14201
14202 </div>
14203 <div class="tags">
14204
14205
14206 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
14207
14208
14209 </div>
14210 </div>
14211 <div class="padding"></div>
14212
14213 <div class="entry">
14214 <div class="title">
14215 <a href="http://people.skolelinux.org/pere/blog/Running_TP_Link_MR3040_as_a_batman_adv_mesh_node_using_openwrt.html">Running TP-Link MR3040 as a batman-adv mesh node using openwrt</a>
14216 </div>
14217 <div class="date">
14218 10th November 2013
14219 </div>
14220 <div class="body">
14221 <p>Continuing my research into mesh networking, I was recommended to
14222 use TP-Link 3040 and 3600 access points as mesh nodes, and the pair I
14223 bought arrived on Friday. Here are my notes on how to set up the
14224 MR3040 as a mesh node using
14225 <a href="http://www.openwrt.org/">OpenWrt</a>.</p>
14226
14227 <p>I started by following the instructions on the OpenWRT wiki for
14228 <a href="http://wiki.openwrt.org/toh/tp-link/tl-mr3040">TL-MR3040</a>,
14229 and downloaded
14230 <a href="http://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-tl-mr3040-v2-squashfs-factory.bin">the
14231 recommended firmware image</a>
14232 (openwrt-ar71xx-generic-tl-mr3040-v2-squashfs-factory.bin) and
14233 uploaded it into the original web interface. The flashing went fine,
14234 and the machine was available via telnet on the ethernet port. After
14235 logging in and setting the root password, ssh was available and I
14236 could start to set it up as a batman-adv mesh node.</p>
14237
14238 <p>I started off by reading the instructions from
14239 <a href="http://wirelessafrica.meraka.org.za/wiki/index.php?title=Antoine's_Research">Wireless
14240 Africa</a>, which had quite a lot of useful information, but
14241 eventually I followed the recipe from the Open Mesh wiki for
14242 <a href="http://www.open-mesh.org/projects/batman-adv/wiki/Batman-adv-openwrt-config">using
14243 batman-adv on OpenWrt</a>. A small snag was the fact that the
14244 <tt>opkg install kmod-batman-adv</tt> command did not work as it
14245 should. The batman-adv kernel module would fail to load because its
14246 dependency crc16 was not already loaded. I
14247 <a href="https://dev.openwrt.org/ticket/14452">reported the bug</a> to
14248 the openwrt project and hope it will be fixed soon. But the problem
14249 only seem to affect initial testing of batman-adv, as configuration
14250 seem to work when booting from scratch.</p>
14251
14252 <p>The setup is done using files in /etc/config/. I did not bridge
14253 the Ethernet and mesh interfaces this time, to be able to hook up the
14254 box on my local network and log into it for configuration updates.
14255 The following files were changed and look like this after modifying
14256 them:</p>
14257
14258 <p><tt>/etc/config/network</tt></p>
14259
14260 <pre>
14261
14262 config interface 'loopback'
14263 option ifname 'lo'
14264 option proto 'static'
14265 option ipaddr '127.0.0.1'
14266 option netmask '255.0.0.0'
14267
14268 config globals 'globals'
14269 option ula_prefix 'fdbf:4c12:3fed::/48'
14270
14271 config interface 'lan'
14272 option ifname 'eth0'
14273 option type 'bridge'
14274 option proto 'dhcp'
14275 option ipaddr '192.168.1.1'
14276 option netmask '255.255.255.0'
14277 option hostname 'tl-mr3040'
14278 option ip6assign '60'
14279
14280 config interface 'mesh'
14281 option ifname 'adhoc0'
14282 option mtu '1528'
14283 option proto 'batadv'
14284 option mesh 'bat0'
14285 </pre>
14286
14287 <p><tt>/etc/config/wireless</tt></p>
14288 <pre>
14289
14290 config wifi-device 'radio0'
14291 option type 'mac80211'
14292 option channel '11'
14293 option hwmode '11ng'
14294 option path 'platform/ar933x_wmac'
14295 option htmode 'HT20'
14296 list ht_capab 'SHORT-GI-20'
14297 list ht_capab 'SHORT-GI-40'
14298 list ht_capab 'RX-STBC1'
14299 list ht_capab 'DSSS_CCK-40'
14300 option disabled '0'
14301
14302 config wifi-iface 'wmesh'
14303 option device 'radio0'
14304 option ifname 'adhoc0'
14305 option network 'mesh'
14306 option encryption 'none'
14307 option mode 'adhoc'
14308 option bssid '02:BA:00:00:00:01'
14309 option ssid 'meshfx@hackeriet'
14310 </pre>
14311 <p><tt>/etc/config/batman-adv</tt></p>
14312 <pre>
14313
14314 config 'mesh' 'bat0'
14315 option interfaces 'adhoc0'
14316 option 'aggregated_ogms'
14317 option 'ap_isolation'
14318 option 'bonding'
14319 option 'fragmentation'
14320 option 'gw_bandwidth'
14321 option 'gw_mode'
14322 option 'gw_sel_class'
14323 option 'log_level'
14324 option 'orig_interval'
14325 option 'vis_mode'
14326 option 'bridge_loop_avoidance'
14327 option 'distributed_arp_table'
14328 option 'network_coding'
14329 option 'hop_penalty'
14330
14331 # yet another batX instance
14332 # config 'mesh' 'bat5'
14333 # option 'interfaces' 'second_mesh'
14334 </pre>
14335
14336 <p>The mesh node is now operational. I have yet to test its range,
14337 but I hope it is good. I have not yet tested the TP-Link 3600 box
14338 still wrapped up in plastic.</p>
14339
14340 </div>
14341 <div class="tags">
14342
14343
14344 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
14345
14346
14347 </div>
14348 </div>
14349 <div class="padding"></div>
14350
14351 <div class="entry">
14352 <div class="title">
14353 <a href="http://people.skolelinux.org/pere/blog/Debian_init_d_boot_script_example_for_rsyslog.html">Debian init.d boot script example for rsyslog</a>
14354 </div>
14355 <div class="date">
14356 2nd November 2013
14357 </div>
14358 <div class="body">
14359 <p>If one of the points of switching to a new init system in Debian is
14360 <a href="http://thomas.goirand.fr/blog/?p=147">to get rid of huge
14361 init.d scripts</a>, I doubt we need to switch away from sysvinit and
14362 init.d scripts at all. Here is an example init.d script, ie a rewrite
14363 of /etc/init.d/rsyslog:</p>
14364
14365 <p><pre>
14366 #!/lib/init/init-d-script
14367 ### BEGIN INIT INFO
14368 # Provides: rsyslog
14369 # Required-Start: $remote_fs $time
14370 # Required-Stop: umountnfs $time
14371 # X-Stop-After: sendsigs
14372 # Default-Start: 2 3 4 5
14373 # Default-Stop: 0 1 6
14374 # Short-Description: enhanced syslogd
14375 # Description: Rsyslog is an enhanced multi-threaded syslogd.
14376 # It is quite compatible to stock sysklogd and can be
14377 # used as a drop-in replacement.
14378 ### END INIT INFO
14379 DESC="enhanced syslogd"
14380 DAEMON=/usr/sbin/rsyslogd
14381 </pre></p>
14382
14383 <p>Pretty minimalistic to me... For the record, the original sysv-rc
14384 script was 137 lines, and the above is just 15 lines, most of it meta
14385 info/comments.</p>
14386
14387 <p>How to do this, you ask? Well, one create a new script
14388 /lib/init/init-d-script looking something like this:
14389
14390 <p><pre>
14391 #!/bin/sh
14392
14393 # Define LSB log_* functions.
14394 # Depend on lsb-base (>= 3.2-14) to ensure that this file is present
14395 # and status_of_proc is working.
14396 . /lib/lsb/init-functions
14397
14398 #
14399 # Function that starts the daemon/service
14400
14401 #
14402 do_start()
14403 {
14404 # Return
14405 # 0 if daemon has been started
14406 # 1 if daemon was already running
14407 # 2 if daemon could not be started
14408 start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
14409 || return 1
14410 start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
14411 $DAEMON_ARGS \
14412 || return 2
14413 # Add code here, if necessary, that waits for the process to be ready
14414 # to handle requests from services started subsequently which depend
14415 # on this one. As a last resort, sleep for some time.
14416 }
14417
14418 #
14419 # Function that stops the daemon/service
14420 #
14421 do_stop()
14422 {
14423 # Return
14424 # 0 if daemon has been stopped
14425 # 1 if daemon was already stopped
14426 # 2 if daemon could not be stopped
14427 # other if a failure occurred
14428 start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
14429 RETVAL="$?"
14430 [ "$RETVAL" = 2 ] && return 2
14431 # Wait for children to finish too if this is a daemon that forks
14432 # and if the daemon is only ever run from this initscript.
14433 # If the above conditions are not satisfied then add some other code
14434 # that waits for the process to drop all resources that could be
14435 # needed by services started subsequently. A last resort is to
14436 # sleep for some time.
14437 start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
14438 [ "$?" = 2 ] && return 2
14439 # Many daemons don't delete their pidfiles when they exit.
14440 rm -f $PIDFILE
14441 return "$RETVAL"
14442 }
14443
14444 #
14445 # Function that sends a SIGHUP to the daemon/service
14446 #
14447 do_reload() {
14448 #
14449 # If the daemon can reload its configuration without
14450 # restarting (for example, when it is sent a SIGHUP),
14451 # then implement that here.
14452 #
14453 start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
14454 return 0
14455 }
14456
14457 SCRIPTNAME=$1
14458 scriptbasename="$(basename $1)"
14459 echo "SN: $scriptbasename"
14460 if [ "$scriptbasename" != "init-d-library" ] ; then
14461 script="$1"
14462 shift
14463 . $script
14464 else
14465 exit 0
14466 fi
14467
14468 NAME=$(basename $DAEMON)
14469 PIDFILE=/var/run/$NAME.pid
14470
14471 # Exit if the package is not installed
14472 #[ -x "$DAEMON" ] || exit 0
14473
14474 # Read configuration variable file if it is present
14475 [ -r /etc/default/$NAME ] && . /etc/default/$NAME
14476
14477 # Load the VERBOSE setting and other rcS variables
14478 . /lib/init/vars.sh
14479
14480 case "$1" in
14481 start)
14482 [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
14483 do_start
14484 case "$?" in
14485 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
14486 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
14487 esac
14488 ;;
14489 stop)
14490 [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
14491 do_stop
14492 case "$?" in
14493 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
14494 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
14495 esac
14496 ;;
14497 status)
14498 status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
14499 ;;
14500 #reload|force-reload)
14501 #
14502 # If do_reload() is not implemented then leave this commented out
14503 # and leave 'force-reload' as an alias for 'restart'.
14504 #
14505 #log_daemon_msg "Reloading $DESC" "$NAME"
14506 #do_reload
14507 #log_end_msg $?
14508 #;;
14509 restart|force-reload)
14510 #
14511 # If the "reload" option is implemented then remove the
14512 # 'force-reload' alias
14513 #
14514 log_daemon_msg "Restarting $DESC" "$NAME"
14515 do_stop
14516 case "$?" in
14517 0|1)
14518 do_start
14519 case "$?" in
14520 0) log_end_msg 0 ;;
14521 1) log_end_msg 1 ;; # Old process is still running
14522 *) log_end_msg 1 ;; # Failed to start
14523 esac
14524 ;;
14525 *)
14526 # Failed to stop
14527 log_end_msg 1
14528 ;;
14529 esac
14530 ;;
14531 *)
14532 echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
14533 exit 3
14534 ;;
14535 esac
14536
14537 :
14538 </pre></p>
14539
14540 <p>It is based on /etc/init.d/skeleton, and could be improved quite a
14541 lot. I did not really polish the approach, so it might not always
14542 work out of the box, but you get the idea. I did not try very hard to
14543 optimize it nor make it more robust either.</p>
14544
14545 <p>A better argument for switching init system in Debian than reducing
14546 the size of init scripts (which is a good thing to do anyway), is to
14547 get boot system that is able to handle the kernel events sensibly and
14548 robustly, and do not depend on the boot to run sequentially. The boot
14549 and the kernel have not behaved sequentially in years.</p>
14550
14551 </div>
14552 <div class="tags">
14553
14554
14555 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
14556
14557
14558 </div>
14559 </div>
14560 <div class="padding"></div>
14561
14562 <div class="entry">
14563 <div class="title">
14564 <a href="http://people.skolelinux.org/pere/blog/Browser_plugin_for_SPICE__spice_xpi__uploaded_to_Debian.html">Browser plugin for SPICE (spice-xpi) uploaded to Debian</a>
14565 </div>
14566 <div class="date">
14567 1st November 2013
14568 </div>
14569 <div class="body">
14570 <p><a href="http://www.spice-space.org/">The SPICE protocol</a> for
14571 remote display access is the preferred solution with oVirt and RedHat
14572 Enterprise Virtualization, and I was sad to discover the other day
14573 that the browser plugin needed to use these systems seamlessly was
14574 missing in Debian. The <a href="http://bugs.debian.org/668284">request
14575 for a package</a> was from 2012-04-10 with no progress since
14576 2013-04-01, so I decided to wrap up a package based on the great work
14577 from Cajus Pollmeier and put it in a collab-maint maintained git
14578 repository to get a package I could use. I would very much like
14579 others to help me maintain the package (or just take over, I do not
14580 mind), but as no-one had volunteered so far, I just uploaded it to
14581 NEW. I hope it will be available in Debian in a few days.</p>
14582
14583 <p>The source is now available from
14584 <a href="http://anonscm.debian.org/gitweb/?p=collab-maint/spice-xpi.git;a=summary">http://anonscm.debian.org/gitweb/?p=collab-maint/spice-xpi.git;a=summary</a>.</p>
14585
14586 </div>
14587 <div class="tags">
14588
14589
14590 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>.
14591
14592
14593 </div>
14594 </div>
14595 <div class="padding"></div>
14596
14597 <div class="entry">
14598 <div class="title">
14599 <a href="http://people.skolelinux.org/pere/blog/Teaching_vmdebootstrap_to_create_Raspberry_Pi_SD_card_images.html">Teaching vmdebootstrap to create Raspberry Pi SD card images</a>
14600 </div>
14601 <div class="date">
14602 27th October 2013
14603 </div>
14604 <div class="body">
14605 <p>The
14606 <a href="http://packages.qa.debian.org/v/vmdebootstrap.html">vmdebootstrap</a>
14607 program is a a very nice system to create virtual machine images. It
14608 create a image file, add a partition table, mount it and run
14609 debootstrap in the mounted directory to create a Debian system on a
14610 stick. Yesterday, I decided to try to teach it how to make images for
14611 <a href="https://wiki.debian.org/RaspberryPi">Raspberry Pi</a>, as part
14612 of a plan to simplify the build system for
14613 <a href="https://wiki.debian.org/FreedomBox">the FreedomBox
14614 project</a>. The FreedomBox project already uses vmdebootstrap for
14615 the virtualbox images, but its current build system made multistrap
14616 based system for Dreamplug images, and it is lacking support for
14617 Raspberry Pi.</p>
14618
14619 <p>Armed with the knowledge on how to build "foreign" (aka non-native
14620 architecture) chroots for Raspberry Pi, I dived into the vmdebootstrap
14621 code and adjusted it to be able to build armel images on my amd64
14622 Debian laptop. I ended up giving vmdebootstrap five new options,
14623 allowing me to replicate the image creation process I use to make
14624 <a href="http://people.skolelinux.org/pere/blog/A_Raspberry_Pi_based_batman_adv_Mesh_network_node.html">Debian
14625 Jessie based mesh node images for the Raspberry Pi</a>. First, the
14626 <tt>--foreign /path/to/binfm_handler</tt> option tell vmdebootstrap to
14627 call debootstrap with --foreign and to copy the handler into the
14628 generated chroot before running the second stage. This allow
14629 vmdebootstrap to create armel images on an amd64 host. Next I added
14630 two new options <tt>--bootsize size</tt> and <tt>--boottype
14631 fstype</tt> to teach it to create a separate /boot/ partition with the
14632 given file system type, allowing me to create an image with a vfat
14633 partition for the /boot/ stuff. I also added a <tt>--variant
14634 variant</tt> option to allow me to create smaller images without the
14635 Debian base system packages installed. Finally, I added an option
14636 <tt>--no-extlinux</tt> to tell vmdebootstrap to not install extlinux
14637 as a boot loader. It is not needed on the Raspberry Pi and probably
14638 most other non-x86 architectures. The changes were accepted by the
14639 upstream author of vmdebootstrap yesterday and today, and is now
14640 available from
14641 <a href="http://git.liw.fi/cgi-bin/cgit/cgit.cgi/vmdebootstrap/">the
14642 upstream project page</a>.</p>
14643
14644 <p>To use it to build a Raspberry Pi image using Debian Jessie, first
14645 create a small script (the customize script) to add the non-free
14646 binary blob needed to boot the Raspberry Pi and the APT source
14647 list:</p>
14648
14649 <p><pre>
14650 #!/bin/sh
14651 set -e # Exit on first error
14652 rootdir="$1"
14653 cd "$rootdir"
14654 cat &lt;&lt;EOF > etc/apt/sources.list
14655 deb http://http.debian.net/debian/ jessie main contrib non-free
14656 EOF
14657 # Install non-free binary blob needed to boot Raspberry Pi. This
14658 # install a kernel somewhere too.
14659 wget https://raw.github.com/Hexxeh/rpi-update/master/rpi-update \
14660 -O $rootdir/usr/bin/rpi-update
14661 chmod a+x $rootdir/usr/bin/rpi-update
14662 mkdir -p $rootdir/lib/modules
14663 touch $rootdir/boot/start.elf
14664 chroot $rootdir rpi-update
14665 </pre></p>
14666
14667 <p>Next, fetch the latest vmdebootstrap script and call it like this
14668 to build the image:</p>
14669
14670 <pre>
14671 sudo ./vmdebootstrap \
14672 --variant minbase \
14673 --arch armel \
14674 --distribution jessie \
14675 --mirror http://http.debian.net/debian \
14676 --image test.img \
14677 --size 600M \
14678 --bootsize 64M \
14679 --boottype vfat \
14680 --log-level debug \
14681 --verbose \
14682 --no-kernel \
14683 --no-extlinux \
14684 --root-password raspberry \
14685 --hostname raspberrypi \
14686 --foreign /usr/bin/qemu-arm-static \
14687 --customize `pwd`/customize \
14688 --package netbase \
14689 --package git-core \
14690 --package binutils \
14691 --package ca-certificates \
14692 --package wget \
14693 --package kmod
14694 </pre></p>
14695
14696 <p>The list of packages being installed are the ones needed by
14697 rpi-update to make the image bootable on the Raspberry Pi, with the
14698 exception of netbase, which is needed by debootstrap to find
14699 /etc/hosts with the minbase variant. I really wish there was a way to
14700 set up an Raspberry Pi using only packages in the Debian archive, but
14701 that is not possible as far as I know, because it boots from the GPU
14702 using a non-free binary blob.</p>
14703
14704 <p>The build host need debootstrap, kpartx and qemu-user-static and
14705 probably a few others installed. I have not checked the complete
14706 build dependency list.</p>
14707
14708 <p>The resulting image will not use the hardware floating point unit
14709 on the Raspberry PI, because the armel architecture in Debian is not
14710 optimized for that use. So the images created will be a bit slower
14711 than <a href="http://www.raspbian.org/">Raspbian</a> based images.</p>
14712
14713 </div>
14714 <div class="tags">
14715
14716
14717 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/freedombox">freedombox</a>, <a href="http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network</a>.
14718
14719
14720 </div>
14721 </div>
14722 <div class="padding"></div>
14723
14724 <div class="entry">
14725 <div class="title">
14726 <a href="http://people.skolelinux.org/pere/blog/A_Raspberry_Pi_based_batman_adv_Mesh_network_node.html">A Raspberry Pi based batman-adv Mesh network node</a>
14727 </div>
14728 <div class="date">
14729 21st October 2013
14730 </div>
14731 <div class="body">
14732 <p>The last few days I have been experimenting with
14733 <a href="http://www.open-mesh.org/projects/batman-adv/wiki">the
14734 batman-adv mesh technology</a>. I want to gain some experience to see
14735 if it will fit <a href="https://wiki.debian.org/FreedomBox">the
14736 Freedombox project</a>, and together with my neighbors try to build a
14737 mesh network around the park where I live. Batman-adv is a layer 2
14738 mesh system ("ethernet" in other words), where the mesh network appear
14739 as if all the mesh clients are connected to the same switch.</p>
14740
14741 <p>My hardware of choice was the Linksys WRT54GL routers I had lying
14742 around, but I've been unable to get them working with batman-adv. So
14743 instead, I started playing with a
14744 <a href="http://www.raspberrypi.org/">Raspberry Pi</a>, and tried to
14745 get it working as a mesh node. My idea is to use it to create a mesh
14746 node which function as a switch port, where everything connected to
14747 the Raspberry Pi ethernet plug is connected (bridged) to the mesh
14748 network. This allow me to hook a wifi base station like the Linksys
14749 WRT54GL to the mesh by plugging it into a Raspberry Pi, and allow
14750 non-mesh clients to hook up to the mesh. This in turn is useful for
14751 Android phones using <a href="http://servalproject.org/">the Serval
14752 Project</a> voip client, allowing every one around the playground to
14753 phone and message each other for free. The reason is that Android
14754 phones do not see ad-hoc wifi networks (they are filtered away from
14755 the GUI view), and can not join the mesh without being rooted. But if
14756 they are connected using a normal wifi base station, they can talk to
14757 every client on the local network.</p>
14758
14759 <p>To get this working, I've created a debian package
14760 <a href="https://github.com/petterreinholdtsen/meshfx-node">meshfx-node</a>
14761 and a script
14762 <a href="https://github.com/petterreinholdtsen/meshfx-node/blob/master/build-rpi-mesh-node">build-rpi-mesh-node</a>
14763 to create the Raspberry Pi boot image. I'm using Debian Jessie (and
14764 not Raspbian), to get more control over the packages available.
14765 Unfortunately a huge binary blob need to be inserted into the boot
14766 image to get it booting, but I'll ignore that for now. Also, as
14767 Debian lack support for the CPU features available in the Raspberry
14768 Pi, the system do not use the hardware floating point unit. I hope
14769 the routing performance isn't affected by the lack of hardware FPU
14770 support.</p>
14771
14772 <p>To create an image, run the following with a sudo enabled user
14773 after inserting the target SD card into the build machine:</p>
14774
14775 <p><pre>
14776 % wget -O build-rpi-mesh-node \
14777 https://raw.github.com/petterreinholdtsen/meshfx-node/master/build-rpi-mesh-node
14778 % sudo bash -x ./build-rpi-mesh-node > build.log 2>&1
14779 % dd if=/root/rpi/rpi_basic_jessie_$(date +%Y%m%d).img of=/dev/mmcblk0 bs=1M
14780 %
14781 </pre></p>
14782
14783 <p>Booting with the resulting SD card on a Raspberry PI with a USB
14784 wifi card inserted should give you a mesh node. At least it does for
14785 me with a the wifi card I am using. The default mesh settings are the
14786 ones used by the Oslo mesh project at Hackeriet, as I mentioned in
14787 <a href="http://people.skolelinux.org/pere/blog/Oslo_community_mesh_network___with_NUUG_and_Hackeriet_at_Hausmania.html">an
14788 earlier blog post about this mesh testing</a>.</p>
14789
14790 <p>The mesh node was not horribly expensive either. I bought
14791 everything over the counter in shops nearby. If I had ordered online
14792 from the lowest bidder, the price should be significantly lower:</p>
14793
14794 <p><table>
14795
14796 <tr><th>Supplier</th><th>Model</th><th>NOK</th></tr>
14797 <tr><td>Teknikkmagasinet</td><td>Raspberry Pi model B</td><td>349.90</td></tr>
14798 <tr><td>Teknikkmagasinet</td><td>Raspberry Pi type B case</td><td>99.90</td></tr>
14799 <tr><td>Lefdal</td><td>Jensen Air:Link 25150</td><td>295.-</td></tr>
14800 <tr><td>Clas Ohlson</td><td>Kingston 16 GB SD card</td><td>199.-</td></tr>
14801 <tr><td>Total cost</td><td></td><td>943.80</td></tr>
14802
14803 </table></p>
14804
14805 <p>Now my mesh network at home consist of one laptop in the basement
14806 connected to my production network, one Raspberry Pi node on the 1th
14807 floor that can be seen by my neighbor across the park, and one
14808 play-node I use to develop the image building script. And some times
14809 I hook up my work horse laptop to the mesh to test it. I look forward
14810 to figuring out what kind of latency the batman-adv setup will give,
14811 and how much packet loss we will experience around the park. :)</p>
14812
14813 </div>
14814 <div class="tags">
14815
14816
14817 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox</a>, <a href="http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
14818
14819
14820 </div>
14821 </div>
14822 <div class="padding"></div>
14823
14824 <div class="entry">
14825 <div class="title">
14826 <a href="http://people.skolelinux.org/pere/blog/Perl_library_to_control_the_Spykee_robot_moved_to_github.html">Perl library to control the Spykee robot moved to github</a>
14827 </div>
14828 <div class="date">
14829 19th October 2013
14830 </div>
14831 <div class="body">
14832 <p>Back in 2010, I created a Perl library to talk to
14833 <a href="http://en.wikipedia.org/wiki/Spykee">the Spykee robot</a>
14834 (with two belts, wifi, USB and Linux) and made it available from my
14835 web page. Today I concluded that it should move to a site that is
14836 easier to use to cooperate with others, and moved it to github. If
14837 you got a Spykee robot, you might want to check out
14838 <a href="https://github.com/petterreinholdtsen/libspykee-perl">the
14839 libspykee-perl github repository</a>.</p>
14840
14841 </div>
14842 <div class="tags">
14843
14844
14845 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/robot">robot</a>.
14846
14847
14848 </div>
14849 </div>
14850 <div class="padding"></div>
14851
14852 <div class="entry">
14853 <div class="title">
14854 <a href="http://people.skolelinux.org/pere/blog/Good_causes__Debian_Outreach_Program_for_Women__EFF_documenting_the_spying_and_Open_access_in_Norway.html">Good causes: Debian Outreach Program for Women, EFF documenting the spying and Open access in Norway</a>
14855 </div>
14856 <div class="date">
14857 15th October 2013
14858 </div>
14859 <div class="body">
14860 <p>The last few days I came across a few good causes that should get
14861 wider attention. I recommend signing and donating to each one of
14862 these. :)</p>
14863
14864 <p>Via <a href="http://www.debian.org/News/weekly/2013/18/">Debian
14865 Project News for 2013-10-14</a> I came across the Outreach Program for
14866 Women program which is a Google Summer of Code like initiative to get
14867 more women involved in free software. One debian sponsor has offered
14868 to match <a href="http://debian.ch/opw2013">any donation done to Debian
14869 earmarked</a> for this initiative. I donated a few minutes ago, and
14870 hope you will to. :)</p>
14871
14872 <p>And the Electronic Frontier Foundation just announced plans to
14873 create <a href="https://supporters.eff.org/donate/nsa-videos">video
14874 documentaries about the excessive spying</a> on every Internet user that
14875 take place these days, and their need to fund the work. I've already
14876 donated. Are you next?</p>
14877
14878 <p>For my Norwegian audience, the organisation Studentenes og
14879 Akademikernes Internasjonale Hjelpefond is collecting signatures for a
14880 statement under the heading
14881 <a href="http://saih.no/Bloggers_United/">Bloggers United for Open
14882 Access</a> for those of us asking for more focus on open access in the
14883 Norwegian government. So far 499 signatures. I hope you will sign it
14884 too.</p>
14885
14886 </div>
14887 <div class="tags">
14888
14889
14890 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/opphavsrett">opphavsrett</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>.
14891
14892
14893 </div>
14894 </div>
14895 <div class="padding"></div>
14896
14897 <div class="entry">
14898 <div class="title">
14899 <a href="http://people.skolelinux.org/pere/blog/Oslo_community_mesh_network___with_NUUG_and_Hackeriet_at_Hausmania.html">Oslo community mesh network - with NUUG and Hackeriet at Hausmania</a>
14900 </div>
14901 <div class="date">
14902 11th October 2013
14903 </div>
14904 <div class="body">
14905 <p>Wireless mesh networks are self organising and self healing
14906 networks that can be used to connect computers across small and large
14907 areas, depending on the radio technology used. Normal wifi equipment
14908 can be used to create home made radio networks, and there are several
14909 successful examples like
14910 <a href="http://www.freifunk.net/">Freifunk</a> and
14911 <a href="http://www.awmn.net/">Athens Wireless Metropolitan Network</a>
14912 (see
14913 <a href="http://en.wikipedia.org/wiki/List_of_wireless_community_networks_by_region#Greece">wikipedia
14914 for a large list</a>) around the globe. To give you an idea how it
14915 work, check out the nice overview of the Kiel Freifunk community which
14916 can be seen from their
14917 <a href="http://freifunk.in-kiel.de/ffmap/nodes.html">dynamically
14918 updated node graph and map</a>, where one can see how the mesh nodes
14919 automatically handle routing and recover from nodes disappearing.
14920 There is also a small community mesh network group in Oslo, Norway,
14921 and that is the main topic of this blog post.</p>
14922
14923 <p>I've wanted to check out mesh networks for a while now, and hoped
14924 to do it as part of my involvement with the <a
14925 href="http://www.nuug.no/">NUUG member organisation</a> community, and
14926 my recent involvement in
14927 <a href="https://wiki.debian.org/FreedomBox">the Freedombox project</a>
14928 finally lead me to give mesh networks some priority, as I suspect a
14929 Freedombox should use mesh networks to connect neighbours and family
14930 when possible, given that most communication between people are
14931 between those nearby (as shown for example by research on Facebook
14932 communication patterns). It also allow people to communicate without
14933 any central hub to tap into for those that want to listen in on the
14934 private communication of citizens, which have become more and more
14935 important over the years.</p>
14936
14937 <p>So far I have only been able to find one group of people in Oslo
14938 working on community mesh networks, over at the hack space
14939 <a href="http://hackeriet.no/">Hackeriet</a> at Husmania. They seem to
14940 have started with some Freifunk based effort using OLSR, called
14941 <a href="http://oslo.freifunk.net/index.php?title=Main_Page">the Oslo
14942 Freifunk project</a>, but that effort is now dead and the people
14943 behind it have moved on to a batman-adv based system called
14944 <a href="http://meshfx.org/trac">meshfx</a>. Unfortunately the wiki
14945 site for the Oslo Freifunk project is no longer possible to update to
14946 reflect this fact, so the old project page can't be updated to point to
14947 the new project. A while back, the people at Hackeriet invited people
14948 from the Freifunk community to Oslo to talk about mesh networks. I
14949 came across this video where Hans Jørgen Lysglimt interview the
14950 speakers about this talk (from
14951 <a href="https://www.youtube.com/watch?v=N2Kd7CLkhSY">youtube</a>):</p>
14952
14953 <p><iframe width="420" height="315" src="https://www.youtube.com/embed/N2Kd7CLkhSY" frameborder="0" allowfullscreen></iframe></p>
14954
14955 <p>I mentioned OLSR and batman-adv, which are mesh routing protocols.
14956 There are heaps of different protocols, and I am still struggling to
14957 figure out which one would be "best" for some definitions of best, but
14958 given that the community mesh group in Oslo is so small, I believe it
14959 is best to hook up with the existing one instead of trying to create a
14960 completely different setup, and thus I have decided to focus on
14961 batman-adv for now. It sure help me to know that the very cool
14962 <a href="http://www.servalproject.org/">Serval project in Australia</a>
14963 is using batman-adv as their meshing technology when it create a self
14964 organizing and self healing telephony system for disaster areas and
14965 less industrialized communities. Check out this cool video presenting
14966 that project (from
14967 <a href="https://www.youtube.com/watch?v=30qNfzJCQOA">youtube</a>):</p>
14968
14969 <p><iframe width="560" height="315" src="https://www.youtube.com/embed/30qNfzJCQOA" frameborder="0" allowfullscreen></iframe></p>
14970
14971 <p>According to the wikipedia page on
14972 <a href="http://en.wikipedia.org/wiki/Wireless_mesh_network">Wireless
14973 mesh network</a> there are around 70 competing schemes for routing
14974 packets across mesh networks, and OLSR, B.A.T.M.A.N. and
14975 B.A.T.M.A.N. advanced are protocols used by several free software
14976 based community mesh networks.</p>
14977
14978 <p>The batman-adv protocol is a bit special, as it provide layer 2
14979 (as in ethernet ) routing, allowing ipv4 and ipv6 to work on the same
14980 network. One way to think about it is that it provide a mesh based
14981 vlan you can bridge to or handle like any other vlan connected to your
14982 computer. The required drivers are already in the Linux kernel at
14983 least since Debian Wheezy, and it is fairly easy to set up. A
14984 <a href="http://www.open-mesh.org/projects/batman-adv/wiki/Quick-start-guide">good
14985 introduction</a> is available from the Open Mesh project. These are
14986 the key settings needed to join the Oslo meshfx network:</p>
14987
14988 <p><table>
14989 <tr><th>Setting</th><th>Value</th></tr>
14990 <tr><td>Protocol / kernel module</td><td>batman-adv</td></tr>
14991 <tr><td>ESSID</td><td>meshfx@hackeriet</td></tr>
14992 <td>Channel / Frequency</td><td>11 / 2462</td></tr>
14993 <td>Cell ID</td><td>02:BA:00:00:00:01</td>
14994 </table></p>
14995
14996 <p>The reason for setting ad-hoc wifi Cell ID is to work around bugs
14997 in firmware used in wifi card and wifi drivers. (See a nice post from
14998 VillageTelco about
14999 "<a href="http://tiebing.blogspot.no/2009/12/ad-hoc-cell-splitting-re-post-original.html">Information
15000 about cell-id splitting, stuck beacons, and failed IBSS merges!</a>
15001 for details.) When these settings are activated and you have some
15002 other mesh node nearby, your computer will be connected to the mesh
15003 network and can communicate with any mesh node that is connected to
15004 any of the nodes in your network of nodes. :)</p>
15005
15006 <p>My initial plan was to reuse my old Linksys WRT54GL as a mesh node,
15007 but that seem to be very hard, as I have not been able to locate a
15008 firmware supporting batman-adv. If anyone know how to use that old
15009 wifi access point with batman-adv these days, please let me know.</p>
15010
15011 <p>If you find this project interesting and want to join, please join
15012 us on IRC, either channel
15013 <a href="irc://irc.freenode.net/#oslohackerspace">#oslohackerspace</a>
15014 or <a href="irc://irc.freenode.net/#nuug">#nuug</a> on
15015 irc.freenode.net.</p>
15016
15017 <p>While investigating mesh networks in Oslo, I came across an old
15018 research paper from the university of Stavanger and Telenor Research
15019 and Innovation called
15020 <a href="http://folk.uio.no/paalee/publications/netrel-egeland-iswcs-2008.pdf">The
15021 reliability of wireless backhaul mesh networks</a> and elsewhere
15022 learned that Telenor have been experimenting with mesh networks at
15023 Grünerløkka in Oslo. So mesh networks are also interesting for
15024 commercial companies, even though Telenor discovered that it was hard
15025 to figure out a good business plan for mesh networking and as far as I
15026 know have closed down the experiment. Perhaps Telenor or others would
15027 be interested in a cooperation?</p>
15028
15029 <p><strong>Update 2013-10-12</strong>: I was just
15030 <a href="http://lists.alioth.debian.org/pipermail/freedombox-discuss/2013-October/005900.html">told
15031 by the Serval project developers</a> that they no longer use
15032 batman-adv (but are compatible with it), but their own crypto based
15033 mesh system.</p>
15034
15035 </div>
15036 <div class="tags">
15037
15038
15039 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox</a>, <a href="http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
15040
15041
15042 </div>
15043 </div>
15044 <div class="padding"></div>
15045
15046 <div class="entry">
15047 <div class="title">
15048 <a href="http://people.skolelinux.org/pere/blog/Skolelinux___Debian_Edu_7_1_install_and_overview_video_from_Marcelo_Salvador.html">Skolelinux / Debian Edu 7.1 install and overview video from Marcelo Salvador</a>
15049 </div>
15050 <div class="date">
15051 8th October 2013
15052 </div>
15053 <div class="body">
15054 <p>The other day I was pleased and surprised to discover that Marcelo
15055 Salvador had published a
15056 <a href="https://www.youtube.com/watch?v=w-GgpdqgLFc">video on
15057 Youtube</a> showing how to install the standalone Debian Edu /
15058 Skolelinux profile. This is the profile intended for use at home or
15059 on laptops that should not be integrated into the provided network
15060 services (no central home directory, no Kerberos / LDAP directory etc,
15061 in other word a single user machine). The result is 11 minutes long,
15062 and show some user applications (seem to be rather randomly picked).
15063 Missed a few of my favorites like celestia, planets and chromium
15064 showing the <a href="http://www.zygotebody.com/">Zygote Body 3D model
15065 of the human body</a>, but I guess he did not know about those or find
15066 other programs more interesting. :) And the video do not show the
15067 advantages I believe is one of the most valuable featuers in Debian
15068 Edu, its central school server making it possible to run hundreds of
15069 computers without hard drives by installing one central
15070 <a href="http://www.ltsp.org/">LTSP server</a>.</p>
15071
15072 <p>Anyway, check out the video, embedded below and linked to above:</p>
15073
15074 <iframe width="420" height="315" src="http://www.youtube.com/embed/w-GgpdqgLFc" frameborder="0" allowfullscreen></iframe>
15075
15076 <p>Are there other nice videos demonstrating Skolelinux? Please let
15077 me know. :)</p>
15078
15079 </div>
15080 <div class="tags">
15081
15082
15083 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</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>.
15084
15085
15086 </div>
15087 </div>
15088 <div class="padding"></div>
15089
15090 <div class="entry">
15091 <div class="title">
15092 <a href="http://people.skolelinux.org/pere/blog/Finally__Debian_Edu_Wheezy_is_released_today_.html">Finally, Debian Edu Wheezy is released today!</a>
15093 </div>
15094 <div class="date">
15095 29th September 2013
15096 </div>
15097 <div class="body">
15098 <p>A few hours ago, the announcement for the first stable release of
15099 Debian Edu Wheezy went out from the Debian publicity team. The
15100 complete announcement text can be found at
15101 <a href="http://www.debian.org/News/2013/20130928">the Debian News
15102 section</a>, translated to several languages. Please check it out.</p>
15103
15104 <p>There is one minor known problem that we will fix very soon. One
15105 can not install a amd64 Thin Client Server using PXE, as the /var/
15106 partition is too small. A workaround is to extend the partition (use
15107 lvresize + resize2fs in tty 2 while installing).</p>
15108
15109 </div>
15110 <div class="tags">
15111
15112
15113 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
15114
15115
15116 </div>
15117 </div>
15118 <div class="padding"></div>
15119
15120 <div class="entry">
15121 <div class="title">
15122 <a href="http://people.skolelinux.org/pere/blog/Videos_about_the_Freedombox_project___for_inspiration_and_learning.html">Videos about the Freedombox project - for inspiration and learning</a>
15123 </div>
15124 <div class="date">
15125 27th September 2013
15126 </div>
15127 <div class="body">
15128 <p>The <a href="http://www.freedomboxfoundation.org/">Freedombox
15129 project</a> have been going on for a while, and have presented the
15130 vision, ideas and solution several places. Here is a little
15131 collection of videos of talks and presentation of the project.</p>
15132
15133 <ul>
15134
15135 <li><a href="http://www.youtube.com/watch?v=ukvUz5taxvA">FreedomBox -
15136 2,5 minute marketing film</a> (Youtube)</li>
15137
15138 <li><a href="http://www.youtube.com/watch?v=SzW25QTVWsE">Eben Moglen
15139 discusses the Freedombox on CBS news 2011</a> (Youtube)</li>
15140
15141 <li><a href="http://www.youtube.com/watch?v=Ae8SZbxfE0g">Eben Moglen -
15142 Freedom in the Cloud - Software Freedom, Privacy and and Security for
15143 Web 2.0 and Cloud computing at ISOC-NY Public Meeting 2010</a>
15144 (Youtube)</li>
15145
15146 <li><a href="http://www.youtube.com/watch?v=vNaIji_3xBE">Fosdem 2011
15147 Keynote by Eben Moglen presenting the Freedombox</a> (Youtube)</li>
15148
15149 <li><a href="http://www.youtube.com/watch?v=9bDDUyJSQ9s">Presentation of
15150 the Freedombox by James Vasile at Elevate in Gratz 2011</a> (Youtube)</li>
15151
15152 <li><a href="http://www.youtube.com/watch?v=zQTmnk27g9s"> Freedombox -
15153 Discovery, Identity, and Trust by Nick Daly at Freedombox Hackfest New
15154 York City in 2012</a> (Youtube)</li>
15155
15156 <li><a href="http://www.youtube.com/watch?v=tkbSB4Ba7Ck">Introduction
15157 to the Freedombox at Freedombox Hackfest New York City in 2012</a>
15158 (Youtube)</li>
15159
15160 <li><a href="http://www.youtube.com/watch?v=z-P2Jaeg0aQ">Freedom, Out
15161 of the Box! by Bdale Garbee at linux.conf.au Ballarat, 2012</a> (Youtube) </li>
15162
15163 <li><a href="https://archive.fosdem.org/2013/schedule/event/freedombox/">Freedombox
15164 1.0 by Eben Moglen and Bdale Garbee at Fosdem 2013</a> (FOSDEM) </li>
15165
15166 <li><a href="http://www.youtube.com/watch?v=e1LpYX2zVYg">What is the
15167 FreedomBox today by Bdale Garbee at Debconf13 in Vaumarcus
15168 2013</a> (Youtube)</li>
15169
15170 </ul>
15171
15172 <p>A larger list is available from
15173 <a href="https://wiki.debian.org/FreedomBox/TalksAndPresentations">the
15174 Freedombox Wiki</a>.</p>
15175
15176 <p>On other news, I am happy to report that Freedombox based on Debian
15177 Jessie is coming along quite well, and soon both Owncloud and using
15178 Tor should be available for testers of the Freedombox solution. :) In
15179 a few weeks I hope everything needed to test it is included in Debian.
15180 The withsqlite package is already in Debian, and the plinth package is
15181 pending in NEW. The third and vital part of that puzzle is the
15182 metapackage/setup framework, which is still pending an upload. Join
15183 us on <a href="irc://irc.debian.org:6667/%23freedombox">IRC
15184 (#freedombox on irc.debian.org)</a> and
15185 <a href="http://lists.alioth.debian.org/mailman/listinfo/freedombox-discuss">the
15186 mailing list</a> if you want to help make this vision come true.</p>
15187
15188 </div>
15189 <div class="tags">
15190
15191
15192 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/freedombox">freedombox</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</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>.
15193
15194
15195 </div>
15196 </div>
15197 <div class="padding"></div>
15198
15199 <div class="entry">
15200 <div class="title">
15201 <a href="http://people.skolelinux.org/pere/blog/Third_and_probably_last_beta_release_of_Debian_Edu_Wheezy.html">Third and probably last beta release of Debian Edu Wheezy</a>
15202 </div>
15203 <div class="date">
15204 16th September 2013
15205 </div>
15206 <div class="body">
15207 <p>The third wheezy based beta release of Debian Edu was wrapped up
15208 today. This is the release announcement from Holger Levsen:</p>
15209
15210 <blockquote>
15211 <p>Hi,</p>
15212
15213 <p>it is my pleasure to announce the third beta release (beta 2 for
15214 short) of <a href="http://www.skolelinux.org/">Debian Edu /
15215 Skolelinux</a> based on Debian Wheezy!</p>
15216
15217 <p>Please test these images extensivly, if no new problems are found
15218 we plan to do this final Debian Edu Wheezy release this coming
15219 weekend. We are not aware of any major problems or blockers in beta2,
15220 if you find something, please notify us immediately!</p>
15221
15222 <p>(More about the remaining steps for the Edu Wheezy release in
15223 another mail to the edu list tonight or tomorrow...)</p>
15224
15225 <p>Noteworthy changes and software updates for Debian Edu 7.1+edu0~b2
15226 compared to beta1:</p>
15227
15228 <ul>
15229
15230 <li>The KDE proxy setup has been adjusted to use the provided wpad.dat. This
15231 also gets Chromium to use this proxy.</li>
15232 <li>Install kdepim-groupware with KDE desktops to make sure korganizer
15233 understand ical/dav sources.</li>
15234 <li>Increased default maximum size of /var/spool/squid and /skole/backup on the
15235 main server.</li>
15236 <li>A source DVD image containing all source packages is now available as well.</li>
15237 <li>Updates for chromium (29.0.1547.57-1~deb7u1), imagemagick
15238 (6.7.7.10-5+deb7u2), php5 (5.4.4-14+deb7u4), libmodplug
15239 (0.8.8.4-3+deb7u1+git20130828), tiff (4.0.2-6+deb7u2), linux-image
15240 (3.2.0-4-486_3.2.46-1+deb7u1).</li>
15241
15242 </ul>
15243
15244 <p>Where to get it:</p>
15245
15246 <p>To download the multiarch netinstall CD release you can use</p>
15247
15248 <ul>
15249 <li><a href="ftp://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b2-CD.iso">ftp://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b2-CD.iso</a></li>
15250 <li><a href="http://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b2-CD.iso">http://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b2-CD.iso</a></li>
15251 <li>rsync -avzP ftp.skolelinux.org::skolelinux-cd/wheezy/debian-edu-7.1+edu0~b2-CD.iso .</li>
15252 </ul>
15253
15254 <p>The SHA1SUM of this image is: 3a1c89f4666df80eebcd46c5bf5fedb866f9472f</p>
15255
15256 <p>To download the multiarch USB stick ISO release you can use
15257 <ul>
15258 <li><a href="ftp://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b2-USB.iso">ftp://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b2-USB.iso</a></li>
15259 <li><a href="http://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b2-USB.iso">http://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b2-USB.iso</a></li>
15260 <li>rsync -avzP ftp.skolelinux.org::skolelinux-cd/wheezy/debian-edu-7.1+edu0~b2-USB.iso .</li>
15261 </ul>
15262
15263 <p>The SHA1SUM of this image is: 702d1718548f401c74bfa6df9f032cc3ee16597e</p>
15264
15265 <p>The Source DVD image has the filename
15266 debian-edu-7.1+edu0~b2-source-DVD.iso and the SHA1SUM
15267 089eed8b3f962db47aae1f6a9685e9bb2fa30ca5 and is available the same way
15268 as the other isos.</p>
15269
15270 <p>How to report bugs</p>
15271
15272 <p>For information how to report bugs please see
15273 <br><a href="http://wiki.debian.org/DebianEdu/HowTo/ReportBugs">http://wiki.debian.org/DebianEdu/HowTo/ReportBugs</a></p>
15274
15275
15276 <p>About Debian Edu and Skolelinux</p>
15277
15278 <p>Debian Edu, also known as Skolelinux, is a Linux distribution based
15279 on Debian providing an out-of-the box environment of a completely
15280 configured school network. Immediately after installation a school
15281 server running all services needed for a school network is set up just
15282 waiting for users and machines being added via GOsa², a comfortable
15283 Web-UI. A netbooting environment is prepared using PXE, so after
15284 initial installation of the main server from CD or USB stick all other
15285 machines can be installed via the network. The provided school server
15286 provides LDAP database and Kerberos authentication service,
15287 centralized home directories, DHCP server, web proxy and many other
15288 services. The desktop contains more than 60 educational software
15289 packages and more are available from the Debian archive, and schools
15290 can choose between KDE, Gnome, LXDE and Xfce desktop environment.</p>
15291
15292 <p>This is the seventh test release based on Debian Wheezy. Basically
15293 this is an updated and slightly improved version compared to the
15294 Squeeze release.</p>
15295
15296 <p>Notes for upgrades from Alpha Prereleases</p>
15297
15298 <p>Alpha based installations should reinstall or downgrade the
15299 versions of gosa and libpam-mklocaluser to the ones used in this beta
15300 release. Both alpha and beta0 based installations should reinstall or
15301 deal with gosa.conf manually; there are two options: (1) Keep
15302 gosa.conf and edit this file as outlined on the mailing list. (2)
15303 Accept the new version of gosa.conf and replace both contained admin
15304 password placeholders with the password hashes found in the old one
15305 (backup copy!). In both cases all users need to change their password
15306 to make sure a password is set for CIFS access to their home
15307 directory.</p>
15308
15309
15310 <p>cheers,
15311 <br> Holger</p>
15312 </blockquote>
15313
15314 </div>
15315 <div class="tags">
15316
15317
15318 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
15319
15320
15321 </div>
15322 </div>
15323 <div class="padding"></div>
15324
15325 <div class="entry">
15326 <div class="title">
15327 <a href="http://people.skolelinux.org/pere/blog/Recipe_to_test_the_Freedombox_project_on_amd64_or_Raspberry_Pi.html">Recipe to test the Freedombox project on amd64 or Raspberry Pi</a>
15328 </div>
15329 <div class="date">
15330 10th September 2013
15331 </div>
15332 <div class="body">
15333 <p>I was introduced to the
15334 <a href="http://www.freedomboxfoundation.org/">Freedombox project</a>
15335 in 2010, when Eben Moglen presented his vision about serving the need
15336 of non-technical people to keep their personal information private and
15337 within the legal protection of their own homes. The idea is to give
15338 people back the power over their network and machines, and return
15339 Internet back to its intended peer-to-peer architecture. Instead of
15340 depending on a central service, the Freedombox will give everyone
15341 control over their own basic infrastructure.</p>
15342
15343 <p>I've intended to join the effort since then, but other tasks have
15344 taken priority. But this summers nasty news about the misuse of trust
15345 and privilege exercised by the "western" intelligence gathering
15346 communities increased my eagerness to contribute to a point where I
15347 actually started working on the project a while back.</p>
15348
15349 <p>The <a href="https://alioth.debian.org/projects/freedombox/">initial
15350 Debian initiative</a> based on the vision from Eben Moglen, is to
15351 create a simple and cheap Debian based appliance that anyone can hook
15352 up in their home and get access to secure and private services and
15353 communication. The initial deployment platform have been the
15354 <a href="http://www.globalscaletechnologies.com/t-dreamplugdetails.aspx">Dreamplug</a>,
15355 which is a piece of hardware I do not own. So to be able to test what
15356 the current Freedombox setup look like, I had to come up with a way to install
15357 it on some hardware I do have access to. I have rewritten the
15358 <a href="https://github.com/NickDaly/freedom-maker">freedom-maker</a>
15359 image build framework to use .deb packages instead of only copying
15360 setup into the boot images, and thanks to this rewrite I am able to
15361 set up any machine supported by Debian Wheezy as a Freedombox, using
15362 the previously mentioned deb (and a few support debs for packages
15363 missing in Debian).</p>
15364
15365 <p>The current Freedombox setup consist of a set of bootstrapping
15366 scripts
15367 (<a href="https://github.com/petterreinholdtsen/freedombox-setup">freedombox-setup</a>),
15368 and a administrative web interface
15369 (<a href="https://github.com/NickDaly/Plinth">plinth</a> + exmachina +
15370 withsqlite), as well as a privacy enhancing proxy based on
15371 <a href="http://packages.qa.debian.org/privoxy">privoxy</a>
15372 (freedombox-privoxy). There is also a web/javascript based XMPP
15373 client (<a href="http://packages.qa.debian.org/jwchat">jwchat</a>)
15374 trying (unsuccessfully so far) to talk to the XMPP server
15375 (<a href="http://packages.qa.debian.org/ejabberd">ejabberd</a>). The
15376 web interface is pluggable, and the goal is to use it to enable OpenID
15377 services, mesh network connectivity, use of TOR, etc, etc. Not much of
15378 this is really working yet, see
15379 <a href="https://github.com/NickDaly/freedombox-todos/blob/master/TODO">the
15380 project TODO</a> for links to GIT repositories. Most of the code is
15381 on github at the moment. The HTTP proxy is operational out of the
15382 box, and the admin web interface can be used to add/remove plinth
15383 users. I've not been able to do anything else with it so far, but
15384 know there are several branches spread around github and other places
15385 with lots of half baked features.</p>
15386
15387 <p>Anyway, if you want to have a look at the current state, the
15388 following recipes should work to give you a test machine to poke
15389 at.</p>
15390
15391 <p><strong>Debian Wheezy amd64</strong></p>
15392
15393 <ol>
15394
15395 <li>Fetch normal Debian Wheezy installation ISO.</li>
15396 <li>Boot from it, either as CD or USB stick.</li>
15397 <li><p>Press [tab] on the boot prompt and add this as a boot argument
15398 to the Debian installer:<p>
15399 <pre>url=<a href="http://www.reinholdtsen.name/freedombox/preseed-wheezy.dat">http://www.reinholdtsen.name/freedombox/preseed-wheezy.dat</a></pre></li>
15400
15401 <li>Answer the few language/region/password questions and pick disk to
15402 install on.</li>
15403
15404 <li>When the installation is finished and the machine have rebooted a
15405 few times, your Freedombox is ready for testing.</li>
15406
15407 </ol>
15408
15409 <p><strong>Raspberry Pi Raspbian</strong></p>
15410
15411 <ol>
15412
15413 <li>Fetch a Raspbian SD card image, create SD card.</li>
15414 <li>Boot from SD card, extend file system to fill the card completely.</li>
15415 <li><p>Log in and add this to /etc/sources.list:</p>
15416 <pre>
15417 deb <a href="http://www.reinholdtsen.name/freedombox/">http://www.reinholdtsen.name/freedombox</a> wheezy main
15418 </pre></li>
15419 <li><p>Run this as root:</p>
15420 <pre>
15421 wget -O - http://www.reinholdtsen.name/freedombox/BE1A583D.asc | \
15422 apt-key add -
15423 apt-get update
15424 apt-get install freedombox-setup
15425 /usr/lib/freedombox/setup
15426 </pre></li>
15427 <li>Reboot into your freshly created Freedombox.</li>
15428
15429 </ol>
15430
15431 <p>You can test it on other architectures too, but because the
15432 freedombox-privoxy package is binary, it will only work as intended on
15433 the architectures where I have had time to build the binary and put it
15434 in my APT repository. But do not let this stop you. It is only a
15435 short "<tt>apt-get source -b freedombox-privoxy</tt>" away. :)</p>
15436
15437 <p>Note that by default Freedombox is a DHCP server on the
15438 192.168.1.0/24 subnet, so if this is your subnet be careful and turn
15439 off the DHCP server by running "<tt>update-rc.d isc-dhcp-server
15440 disable</tt>" as root.</p>
15441
15442 <p>Please let me know if this works for you, or if you have any
15443 problems. We gather on the IRC channel
15444 <a href="irc://irc.debian.org:6667/%23freedombox">#freedombox</a> on
15445 irc.debian.org and the
15446 <a href="http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/freedombox-discuss">project
15447 mailing list</a>.</p>
15448
15449 <p>Once you get your freedombox operational, you can visit
15450 <tt>http://your-host-name:8001/</tt> to see the state of the plint
15451 welcome screen (dead end - do not be surprised if you are unable to
15452 get past it), and next visit <tt>http://your-host-name:8001/help/</tt>
15453 to look at the rest of plinth. The default user is 'admin' and the
15454 default password is 'secret'.</p>
15455
15456 </div>
15457 <div class="tags">
15458
15459
15460 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/freedombox">freedombox</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</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>.
15461
15462
15463 </div>
15464 </div>
15465 <div class="padding"></div>
15466
15467 <div class="entry">
15468 <div class="title">
15469 <a href="http://people.skolelinux.org/pere/blog/Second_beta_release__beta_1__of_Debian_Edu_Skolelinux_based_on_Debian_Wheezy.html">Second beta release (beta 1) of Debian Edu/Skolelinux based on Debian Wheezy</a>
15470 </div>
15471 <div class="date">
15472 22nd August 2013
15473 </div>
15474 <div class="body">
15475 <p>The second wheezy based beta release of Debian Edu was wrapped up
15476 today, slightly delayed because of some bugs in the initial Windows
15477 integration fixes . This is the release announcement:</p>
15478
15479 <p><strong>New features for Debian Edu 7.1+edu0~b1 released 2013-08-22</strong></p>
15480
15481 <p>These are the release notes for Debian Edu / Skolelinux
15482 7.1+edu0~b1, based on Debian with codename "Wheezy".</p>
15483
15484 <p><strong>About Debian Edu and Skolelinux</strong></p>
15485
15486 <p><a href="http://www.skolelinux.org/">Debian Edu, also known as
15487 Skolelinux</a>, is a Linux distribution based on Debian providing an
15488 out-of-the box environment of a completely configured school
15489 network. Immediately after installation a school server running all
15490 services needed for a school network is set up just waiting for users
15491 and machines being added via GOsa², a comfortable Web-UI. A netbooting
15492 environment is prepared using PXE, so after initial installation of
15493 the main server from CD or USB stick all other machines can be
15494 installed via the network. The provided school server provides LDAP
15495 database and Kerberos authentication service, centralized home
15496 directories, DHCP server, web proxy and many other services. The
15497 desktop contains
15498 <a href="http://people.skolelinux.org/pere/blog/Educational_applications_included_in_Debian_Edu___Skolelinux__the_screenshot_collection____.html">more
15499 than 60 educational software packages</a> and more are available from
15500 the Debian archive, and schools can choose between KDE, Gnome, LXDE
15501 and Xfce desktop environment.</p>
15502
15503 <p>This is the sixth test release based on Debian Wheezy. Basically this
15504 is an updated and slightly improved version compared to the Squeeze
15505 release.</p>
15506
15507 <p>ALERT: Alpha based installations should reinstall or downgrade the
15508 versions of gosa and libpam-mklocaluser to the ones used in this beta
15509 release. Both alpha and beta0 based installations should reinstall or
15510 deal with gosa.conf manually; there are two options: (1) Keep
15511 gosa.conf and edit this file as outlined
15512 <a href="http://lists.debian.org/debian-edu/2013/08/msg00127.html">on
15513 the mailing list</a>. (2) Accept the new version of gosa.conf and
15514 replace both contained admin password placeholders with the password
15515 hashes found in the old one (backup copy!). In both cases every user
15516 need to change their their password to make sure a password is set for
15517 CIFS access to their home directory.</p>
15518
15519 <p><strong>Software updates</strong></p>
15520
15521 <ul>
15522
15523 <li>Added ssh askpass packages to default installation, to ensure ssh
15524 work also without a attached tty.</li>
15525 <li>Add the command-not-found package to the default installation to
15526 make it easier to figure out where to find missing command line
15527 tools. Please note, that the command 'update-command-not-found'
15528 has to be run as root to actually make it useful (internet access
15529 required).</li>
15530
15531 </ul>
15532
15533 <p><strong>Other changes</strong></p>
15534
15535 <ul>
15536
15537 <li>Adjusted the USB stick ISO image build to include every tool
15538 needed for desktop=xfce installations.</li>
15539 <li>Adjust thin-client-server task to work when installing from USB
15540 stick ISO image.</li>
15541 <li>Made new grub artwork (changed png from indexed to RGB format).</li>
15542 <li>Minor cleanup in the CUPS setup.</li>
15543 <li>Make sure that bootstrapping of the Samba domain really happens
15544 during installation of the main server and adjust SID handling to
15545 cope with this.</li>
15546 <li>Make Samba passwords changeable (again) via GOsa².</li>
15547 <li>Fix generation of LM and NT password hashes via GOsa² to avoid
15548 empty password hashes.</li>
15549 <li>Adapted Samba machine domain joining to latest change in the
15550 smbldap-tools Perl package, fixing bugs blocking Windows machines
15551 from joining the Samba domain.</li>
15552
15553 </ul>
15554
15555 <p><strong>Known issues</strong></p>
15556
15557 <ul>
15558
15559 <li>KDE fails to understand the wpad.dat file provided, causing it to
15560 not use the http proxy as it should.</li>
15561 <li>Chromium also fails to use the proxy when using the KDE desktop
15562 (using the KDE configuration).</li>
15563
15564 </ul>
15565
15566 <p><strong>Where to get it</strong></p>
15567
15568 <p>To download the multiarch netinstall CD release you can use</p>
15569
15570 <ul>
15571
15572 <li><a href="ftp://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b1-CD.iso">ftp://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b1-CD.iso</a></li>
15573
15574 <li><a href="http://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b1-CD.iso">http://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b1-CD.iso</a></li>
15575
15576 <li>rsync -avzP ftp.skolelinux.org::skolelinux-cd/wheezy/debian-edu-7.1+edu0~b1-CD.iso .</li>
15577
15578 </ul>
15579
15580 <p>The MD5SUM of this image is: 1e357f80b55e703523f2254adde6d78b
15581 <br>The SHA1SUM of this image is: 7157f9be5fd27c7694d713c6ecfed61c3edda3b2</p>
15582
15583 <p>To download the multiarch USB stick ISO release you can use</p>
15584
15585 <ul>
15586
15587 <li><a href="ftp://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b1-USB.iso">ftp://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b1-USB.iso</a></li>
15588 <li><a href="http://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b1-USB.iso">http://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b1-USB.iso</a></li>
15589 <li>rsync -avzP ftp.skolelinux.org::skolelinux-cd/wheezy/debian-edu-7.1+edu0~b1-USB.iso .</li>
15590
15591 </ul>
15592
15593 <p>The MD5SUM of this image is: 7a8408ead59cf7e3cef25afb6e91590b
15594 <br>The SHA1SUM of this image is: f1817c031f02790d5edb3bfa0dcf8451088ad119</p>
15595
15596
15597 <p><strong>How to report bugs</strong></p>
15598
15599 <p><a href="http://wiki.debian.org/DebianEdu/HowTo/ReportBugs">http://wiki.debian.org/DebianEdu/HowTo/ReportBugs</a>
15600
15601 </div>
15602 <div class="tags">
15603
15604
15605 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
15606
15607
15608 </div>
15609 </div>
15610 <div class="padding"></div>
15611
15612 <div class="entry">
15613 <div class="title">
15614 <a href="http://people.skolelinux.org/pere/blog/Intel_180_SSD_disk_with_Lenovo_firmware_can_not_use_Intel_firmware.html">Intel 180 SSD disk with Lenovo firmware can not use Intel firmware</a>
15615 </div>
15616 <div class="date">
15617 18th August 2013
15618 </div>
15619 <div class="body">
15620 <p>Earlier, I reported about
15621 <a href="http://people.skolelinux.org/pere/blog/How_to_fix_a_Thinkpad_X230_with_a_broken_180_GB_SSD_disk.html">my
15622 problems using an Intel SSD 520 Series 180 GB disk</a>. Friday I was
15623 told by IBM that the original disk should be thrown away. And as
15624 there no longer was a problem if I bricked the firmware, I decided
15625 today to try to install Intel firmware to replace the Lenovo firmware
15626 currently on the disk.</p>
15627
15628 <p>I searched the Intel site for firmware, and found
15629 <a href="https://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&ProdId=3472&DwnldID=18363&ProductFamily=Solid-State+Drives+and+Caching&ProductLine=Intel%c2%ae+High+Performance+Solid-State+Drive&ProductProduct=Intel%c2%ae+SSD+520+Series+(180GB%2c+2.5in+SATA+6Gb%2fs%2c+25nm%2c+MLC)&lang=eng">issdfut_2.0.4.iso</a>
15630 (aka Intel SATA Solid-State Drive Firmware Update Tool) which
15631 according to the site should contain the latest firmware for SSD
15632 disks. I inserted the broken disk in one of my spare laptops and
15633 booted the ISO from a USB stick. The disk was recognized, but the
15634 program claimed the newest firmware already were installed and refused
15635 to insert any Intel firmware. So no change, and the disk is still
15636 unable to handle write load. :( I guess the only way to get them
15637 working would be if Lenovo releases new firmware. No idea how likely
15638 that is. Anyway, just blogging about this test for completeness. I
15639 got a working Samsung disk, and see no point in spending more time on
15640 the broken disks.</p>
15641
15642 </div>
15643 <div class="tags">
15644
15645
15646 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>.
15647
15648
15649 </div>
15650 </div>
15651 <div class="padding"></div>
15652
15653 <div class="entry">
15654 <div class="title">
15655 <a href="http://people.skolelinux.org/pere/blog/90_percent_done_with_the_Norwegian_draft_translation_of_Free_Culture.html">90 percent done with the Norwegian draft translation of Free Culture</a>
15656 </div>
15657 <div class="date">
15658 2nd August 2013
15659 </div>
15660 <div class="body">
15661 <p>It has been a while since my last update. Since last summer, I
15662 have worked on a Norwegian
15663 <a href="http://www.docbook.org/">docbook</a> version of the 2004 book
15664 <a href="http://free-culture.cc/">Free Culture</a> by Lawrence Lessig,
15665 to get a Norwegian text explaining the problems with the copyright
15666 law. Yesterday, I finally broken the 90% mark, when counting the
15667 number of strings to translate. Due to real life constraints, I have
15668 not had time to work on it since March, but when the summer broke out,
15669 I found time to work on it again. Still lots of work left, but the
15670 first draft is nearing completion. I created a graph to show the
15671 progress of the translation:</p>
15672
15673 <p><img width="80%" align="center" src="https://github.com/petterreinholdtsen/free-culture-lessig/raw/master/progress.png"></p>
15674
15675 <p>When the first draft is done, the translated text need to be
15676 proof read, and the remaining formatting problems with images and SVG
15677 drawings need to be fixed. There are probably also some index entries
15678 missing that need to be added. This can be done by comparing the
15679 index entries listed in the SiSU version of the book, or comparing the
15680 English docbook version with the paper version. Last, the colophon
15681 page with ISBN numbers etc need to be wrapped up before the release is
15682 done. I should also figure out how to get correct Norwegian sorting
15683 of the index pages. All docbook tools I have tried so far (xmlto,
15684 docbook-xsl, dblatex) get the order of symbols and the special
15685 Norwegian letters ÆØÅ wrong.</p>
15686
15687 <p>There is still need for translators and people with docbook
15688 knowledge, to be able to get a good looking book (I still struggle
15689 with dblatex, xmlto and docbook-xsl) as well as to do the draft
15690 translation and proof reading. And I would like the figures to be
15691 redrawn as SVGs to make it easy to translate them. Any SVG master
15692 around? There are also some legal terms that are unfamiliar to me.
15693 If you want to help, please get in touch with me, and check out the
15694 project files currently available from
15695 <a href="https://github.com/petterreinholdtsen/free-culture-lessig">github</a>.</p>
15696
15697 <p>If you are curious what the translated book currently look like,
15698 the updated
15699 <a href="https://github.com/petterreinholdtsen/free-culture-lessig/blob/master/archive/freeculture.nb.pdf?raw=true">PDF</a>
15700 and
15701 <a href="https://github.com/petterreinholdtsen/free-culture-lessig/blob/master/archive/freeculture.nb.epub?raw=true">EPUB</a>
15702 are published on github. The HTML version is published as well, but
15703 github hand it out with MIME type text/plain, confusing browsers, so I
15704 saw no point in linking to that version.</p>
15705
15706 </div>
15707 <div class="tags">
15708
15709
15710 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>.
15711
15712
15713 </div>
15714 </div>
15715 <div class="padding"></div>
15716
15717 <div class="entry">
15718 <div class="title">
15719 <a href="http://people.skolelinux.org/pere/blog/First_beta_release_of_Debian_Edu_Skolelinux_based_on_Debian_Wheezy.html">First beta release of Debian Edu/Skolelinux based on Debian Wheezy</a>
15720 </div>
15721 <div class="date">
15722 27th July 2013
15723 </div>
15724 <div class="body">
15725 <p>The first wheezy based beta release of Debian Edu was wrapped up
15726 today. This is the release announcement:</p>
15727
15728 <p><strong>New features for Debian Edu 7.1+edu0~b0 released
15729 2013-07-27</strong></p>
15730
15731 <p>These are the release notes for for Debian Edu / Skolelinux
15732 7.1+edu0~b0, based on Debian with codename "Wheezy".</p>
15733
15734 <p><strong>About Debian Edu and Skolelinux</strong></p>
15735
15736 <p><a href="http://www.skolelinux.org/">Debian Edu, also known as
15737 Skolelinux</a>, is a Linux distribution based on Debian providing an
15738 out-of-the box environment of a completely configured school
15739 network. Immediately after installation a school server running all
15740 services needed for a school network is set up just waiting for users
15741 and machines being added via GOsa², a comfortable Web-UI. A netbooting
15742 environment is prepared using PXE, so after initial installation of
15743 the main server from CD, DVD or USB stick all other machines can be
15744 installed via the network. The provided school server provides LDAP
15745 database and Kerberos authentication service, centralized home
15746 directories, DHCP server, web proxy and many other services. The
15747 desktop contains
15748 <a href="http://people.skolelinux.org/pere/blog/Educational_applications_included_in_Debian_Edu___Skolelinux__the_screenshot_collection____.html">more
15749 than 60 educational software packages</a> and more are available from
15750 the Debian archive, and schools can choose between KDE, Gnome, LXDE
15751 and Xfce desktop environment.</p>
15752
15753 <p>This is the fifth test release based on Debian Wheezy. Basically
15754 this is an updated and slightly improved version compared to the
15755 Squeeze release.</p>
15756
15757 <p>ALERT: Alpha based installations should reinstall or downgrade the
15758 versions of gosa and libpam-mklocaluser to the ones used in this beta
15759 release.</p>
15760
15761 <p><strong>Software updates</strong></p>
15762
15763 <ul>
15764
15765 <li>Switched roaming workstation profiles from wicd to network-manager
15766 for network configuration, as wicd didn't work any more.</li>
15767 <li>Changed version numbers of patched gosa and libpam-mklocaluser
15768 packages to make sure our locally patched versions will be replaced
15769 by the official packages when they are released from Debian. Those
15770 installing alpha version need to reinstall or manually downgrade gosa
15771 and libpam-mklocaluser.</li>
15772 <li>Added bluetooth tools to the default desktop (bluedevil, blueman).</li>
15773 <li>Added tools for sharing the desktop on KDE (krdc, krfb).</li>
15774 <li>Added valgrind to the default installation for easier debugging of
15775 crash bugs.</li>
15776
15777 </ul>
15778
15779 <p><strong>Other changes</strong></p>
15780
15781 <ul>
15782
15783 <li>Fixed artwork package to work with gnome, no longer break
15784 desktop=gnome installations.</li>
15785 <li>Adjusted installer to now work when forced to use a proxy with the
15786 netinst CD.</li>
15787 <li>Fixed code detecting and setting/loading hardware specific
15788 setup/firmware to work more robust out of the box.</li>
15789 <li>Adjusted Kerberos setup to detect realm and server settings at
15790 install time instead of dynamically at run time. This avoid a crash
15791 with krb5-auth-dialog on diskless workstations without a DNS name.</li>
15792 <li>Worked around misfeature in network-manager not calling the dhclient
15793 exit hooks, causing automatic proxy configuration and automatic host
15794 name setting at run time to work again.</li>
15795 <li>Fixed feature setting the default Iceweasel start page from URL
15796 fetched from LDAP, to allow schools to set the global default by
15797 updating the dc=skole,dc=skolelinux,dc=no LDAP object.</li>
15798 <li>Changed default host name on all networked machines to be unique
15799 (generated from MAC or reverse DNS) after boot.</li>
15800 <li>Adjusted partition sizes to make sure they are big enough.</li>
15801
15802 </ul>
15803
15804 <p><strong>Known issues</strong></p>
15805
15806 <ul>
15807
15808 <li>Grub is missing the new artwork.</li>
15809 <li>KDE fail to understand the wpad.dat file provided, causing it to
15810 not use the http proxy as it should.</li>
15811 <li>Chromium also fail to use the proxy.</li>
15812
15813 </ul>
15814
15815 <p><strong>Where to get it</strong></p>
15816
15817 <p>To download the multiarch netinstall CD release you can use</p>
15818
15819 <ul>
15820
15821 <li><a href="ftp://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b0-CD.iso">ftp://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b0-CD.iso</a></li>
15822
15823 <li><a href="http://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b0-CD.iso">http://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b0-CD.iso</a></li>
15824
15825 <li>rsync -avzP ftp.skolelinux.org::skolelinux-cd/wheezy/debian-edu-7.1+edu0~b0-CD.iso .</li>
15826
15827 </ul>
15828
15829 <p>The MD5SUM of this image is: 55d5de9765b6dccd5d9ec33cf1a07109
15830 <br>The SHA1SUM of this image is: 996a1d9517740e4d627d100de2d12b23dd545a3f</p>
15831
15832 <p>To download the multiarch USB stick ISO release you can use</p>
15833
15834 <ul>
15835
15836 <li><a href="ftp://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b0-USB.iso">ftp://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b0-USB.iso</a></li>
15837 <li><a href="http://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b0-USB.iso">http://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b0-USB.iso</a></li>
15838 <li>rsync -avzP ftp.skolelinux.org::skolelinux-cd/wheezy/debian-edu-7.1+edu0~b0-USB.iso .</li>
15839
15840 </ul>
15841
15842 <p>The MD5SUM of this image is: d8f0818c51a78d357de794066f289f69
15843 <br>The SHA1SUM of this image is: 49185ca354e8d0543240423746924f76a6cee733</p>
15844
15845
15846 <p><strong>How to report bugs</strong></p>
15847
15848 <p><a href="http://wiki.debian.org/DebianEdu/HowTo/ReportBugs">http://wiki.debian.org/DebianEdu/HowTo/ReportBugs</a>
15849
15850 </div>
15851 <div class="tags">
15852
15853
15854 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
15855
15856
15857 </div>
15858 </div>
15859 <div class="padding"></div>
15860
15861 <div class="entry">
15862 <div class="title">
15863 <a href="http://people.skolelinux.org/pere/blog/How_to_fix_a_Thinkpad_X230_with_a_broken_180_GB_SSD_disk.html">How to fix a Thinkpad X230 with a broken 180 GB SSD disk</a>
15864 </div>
15865 <div class="date">
15866 17th July 2013
15867 </div>
15868 <div class="body">
15869 <p>Today I switched to
15870 <a href="http://people.skolelinux.org/pere/blog/The_Thinkpad_is_dead__long_live_the_Thinkpad_X230_.html">my
15871 new laptop</a>. I've previously written about the problems I had with
15872 my new Thinkpad X230, which was delivered with an
15873 <a href="http://people.skolelinux.org/pere/blog/Intel_SSD_520_Series_180_GB_with_Lenovo_firmware_still_lock_up_from_sustained_writes.html">180
15874 GB Intel SSD disk with Lenovo firmware</a> that did not handle
15875 sustained writes. My hardware supplier have been very forthcoming in
15876 trying to find a solution, and after first trying with another
15877 identical 180 GB disks they decided to send me a 256 GB Samsung SSD
15878 disk instead to fix it once and for all. The Samsung disk survived
15879 the installation of Debian with encrypted disks (filling the disk with
15880 random data during installation killed the first two), and I thus
15881 decided to trust it with my data. I have installed it as a Debian Edu
15882 Wheezy roaming workstation hooked up with my Debian Edu Squeeze main
15883 server at home using Kerberos and LDAP, and will use it as my work
15884 station from now on.</p>
15885
15886 <p>As this is a solid state disk with no moving parts, I believe the
15887 Debian Wheezy default installation need to be tuned a bit to increase
15888 performance and increase life time of the disk. The Linux kernel and
15889 user space applications do not yet adjust automatically to such
15890 environment. To make it easier for my self, I created a draft Debian
15891 package <tt>ssd-setup</tt> to handle this tuning. The
15892 <a href="http://anonscm.debian.org/gitweb/?p=collab-maint/ssd-setup.git">source
15893 for the ssd-setup package</a> is available from collab-maint, and it
15894 is set up to adjust the setup of the machine by just installing the
15895 package. If there is any non-SSD disk in the machine, the package
15896 will refuse to install, as I did not try to write any logic to sort
15897 file systems in SSD and non-SSD file systems.</p>
15898
15899 <p>I consider the package a draft, as I am a bit unsure how to best
15900 set up Debian Wheezy with an SSD. It is adjusted to my use case,
15901 where I set up the machine with one large encrypted partition (in
15902 addition to /boot), put LVM on top of this and set up partitions on
15903 top of this again. See the README file in the package source for the
15904 references I used to pick the settings. At the moment these
15905 parameters are tuned:</p>
15906
15907 <ul>
15908
15909 <li>Set up cryptsetup to pass TRIM commands to the physical disk
15910 (adding discard to /etc/crypttab)</li>
15911
15912 <li>Set up LVM to pass on TRIM commands to the underlying device (in
15913 this case a cryptsetup partition) by changing issue_discards from
15914 0 to 1 in /etc/lvm/lvm.conf.</li>
15915
15916 <li>Set relatime as a file system option for ext3 and ext4 file
15917 systems.</li>
15918
15919 <li>Tell swap to use TRIM commands by adding 'discard' to
15920 /etc/fstab.</li>
15921
15922 <li>Change I/O scheduler from cfq to deadline using a udev rule.</li>
15923
15924 <li>Run fstrim on every ext3 and ext4 file system every night (from
15925 cron.daily).</li>
15926
15927 <li>Adjust sysctl values vm.swappiness to 1 and vm.vfs_cache_pressure
15928 to 50 to reduce the kernel eagerness to swap out processes.</li>
15929
15930 </ul>
15931
15932 <p>During installation, I cancelled the part where the installer fill
15933 the disk with random data, as this would kill the SSD performance for
15934 little gain. My goal with the encrypted file system is to ensure
15935 those stealing my laptop end up with a brick and not a working
15936 computer. I have no hope in keeping the really resourceful people
15937 from getting the data on the disk (see
15938 <a href="http://xkcd.com/538/">XKCD #538</a> for an explanation why).
15939 Thus I concluded that adding the discard option to crypttab is the
15940 right thing to do.</p>
15941
15942 <p>I considered using the noop I/O scheduler, as several recommended
15943 it for SSD, but others recommended deadline and a benchmark I found
15944 indicated that deadline might be better for interactive use.</p>
15945
15946 <p>I also considered using the 'discard' file system option for ext3
15947 and ext4, but read that it would give a performance hit ever time a
15948 file is removed, and thought it best to that that slowdown once a day
15949 instead of during my work.</p>
15950
15951 <p>My package do not set up tmpfs on /var/run, /var/lock and /tmp, as
15952 this is already done by Debian Edu.</p>
15953
15954 <p>I have not yet started on the user space tuning. I expect
15955 iceweasel need some tuning, and perhaps other applications too, but
15956 have not yet had time to investigate those parts.</p>
15957
15958 <p>The package should work on Ubuntu too, but I have not yet tested it
15959 there.</p>
15960
15961 <p>As for the answer to the question in the title of this blog post,
15962 as far as I know, the only solution I know about is to replace the
15963 disk. It might be possible to flash it with Intel firmware instead of
15964 the Lenovo firmware. But I have not tried and did not want to do so
15965 without approval from Lenovo as I wanted to keep the warranty on the
15966 disk until a solution was found and they wanted the broken disks
15967 back.</p>
15968
15969 </div>
15970 <div class="tags">
15971
15972
15973 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>.
15974
15975
15976 </div>
15977 </div>
15978 <div class="padding"></div>
15979
15980 <div class="entry">
15981 <div class="title">
15982 <a href="http://people.skolelinux.org/pere/blog/Intel_SSD_520_Series_180_GB_with_Lenovo_firmware_still_lock_up_from_sustained_writes.html">Intel SSD 520 Series 180 GB with Lenovo firmware still lock up from sustained writes</a>
15983 </div>
15984 <div class="date">
15985 10th July 2013
15986 </div>
15987 <div class="body">
15988 <p>A few days ago, I wrote about
15989 <a href="http://people.skolelinux.org/pere/blog/The_Thinkpad_is_dead__long_live_the_Thinkpad_X230_.html">the
15990 problems I experienced with my new X230 and its SSD disk</a>, which
15991 was dying during installation because it is unable to cope with
15992 sustained write. My supplier is in contact with
15993 <a href="http://www.lenovo.com/">Lenovo</a>, and they wanted to send a
15994 replacement disk to try to fix the problem. They decided to send an
15995 identical model, so my hopes for a permanent fix was slim.</p>
15996
15997 <p>Anyway, today I got the replacement disk and tried to install
15998 Debian Edu Wheezy with encrypted disk on it. The new disk have the
15999 same firmware version as the original. This time my hope raised
16000 slightly as the installation progressed, as the original disk used to
16001 die after 4-7% of the disk was written to, while this time it kept
16002 going past 10%, 20%, 40% and even past 50%. But around 60%, the disk
16003 died again and I was back on square one. I still do not have a new
16004 laptop with a disk I can trust. I can not live with a disk that might
16005 lock up when I download a new
16006 <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a> ISO or
16007 other large files. I look forward to hearing from my supplier with
16008 the next proposal from Lenovo.</p>
16009
16010 <p>The original disk is marked Intel SSD 520 Series 180 GB,
16011 11S0C38722Z1ZNME35X1TR, ISN: CVCV321407HB180EGN, SA: G57560302, FW:
16012 LF1i, 29MAY2013, PBA: G39779-300, LBA 351,651,888, LI P/N: 0C38722,
16013 Pb-free 2LI, LC P/N: 16-200366, WWN: 55CD2E40002756C4, Model:
16014 SSDSC2BW180A3L 2.5" 6Gb/s SATA SSD 180G 5V 1A, ASM P/N 0C38732, FRU
16015 P/N 45N8295, P0C38732.</p>
16016
16017 <p>The replacement disk is marked Intel SSD 520 Series 180 GB,
16018 11S0C38722Z1ZNDE34N0L0, ISN: CVCV315306RK180EGN, SA: G57560-302, FW:
16019 LF1i, 22APR2013, PBA: G39779-300, LBA 351,651,888, LI P/N: 0C38722,
16020 Pb-free 2LI, LC P/N: 16-200366, WWN: 55CD2E40000AB69E, Model:
16021 SSDSC2BW180A3L 2.5" 6Gb/s SATA SSD 180G 5V 1A, ASM P/N 0C38732, FRU
16022 P/N 45N8295, P0C38732.</p>
16023
16024 <p>The only difference is in the first number (serial number?), ISN,
16025 SA, date and WNPP values. Mentioning all the details here in case
16026 someone is able to use the information to find a way to identify the
16027 failing disk among working ones (if any such working disk actually
16028 exist).</p>
16029
16030 </div>
16031 <div class="tags">
16032
16033
16034 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>.
16035
16036
16037 </div>
16038 </div>
16039 <div class="padding"></div>
16040
16041 <div class="entry">
16042 <div class="title">
16043 <a href="http://people.skolelinux.org/pere/blog/July_13th__Debian_Ubuntu_BSP_and_Skolelinux_Debian_Edu_developer_gathering_in_Oslo.html">July 13th: Debian/Ubuntu BSP and Skolelinux/Debian Edu developer gathering in Oslo</a>
16044 </div>
16045 <div class="date">
16046 9th July 2013
16047 </div>
16048 <div class="body">
16049 <p>The upcoming Saturday, 2013-07-13, we are organising a combined
16050 Debian Edu developer gathering and Debian and Ubuntu bug squashing
16051 party in Oslo. It is organised by <a href="http://www.nuug.no/">the
16052 member assosiation NUUG</a> and
16053 <a href="http://www.skolelinux.org/">the Debian Edu / Skolelinux
16054 project</a> together with <a href="http://bitraf.no/">the hack space
16055 Bitraf</a>.</p>
16056
16057 <p>It starts 10:00 and continue until late evening. Everyone is
16058 welcome, and there is no fee to participate. There is on the other
16059 hand limited space, and only room for 30 people. Please put your name
16060 on <a href="http://wiki.debian.org/BSP/2013/07/13/no/Oslo">the event
16061 wiki page</a> if you plan to join us.</p>
16062
16063 </div>
16064 <div class="tags">
16065
16066
16067 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
16068
16069
16070 </div>
16071 </div>
16072 <div class="padding"></div>
16073
16074 <div class="entry">
16075 <div class="title">
16076 <a href="http://people.skolelinux.org/pere/blog/The_Thinkpad_is_dead__long_live_the_Thinkpad_X230_.html">The Thinkpad is dead, long live the Thinkpad X230?</a>
16077 </div>
16078 <div class="date">
16079 5th July 2013
16080 </div>
16081 <div class="body">
16082 <p>Half a year ago, I reported that I had to find a
16083 <a href="http://people.skolelinux.org/pere/blog/Thank_you_Thinkpad_X41__for_your_long_and_trustworthy_service.html">replacement
16084 for my trusty old Thinkpad X41</a>. Unfortunately I did not have much
16085 time to spend on it, and it took a while to find a model I believe
16086 will do the job, but two days ago the replacement finally arrived. I
16087 ended up picking a
16088 <a href="http://www.linlap.com/lenovo_thinkpad_x230">Thinkpad X230</a>
16089 with SSD disk (NZDAJMN). I first test installed Debian Edu Wheezy as
16090 a roaming workstation, and it seemed to work flawlessly. But my
16091 second installation with encrypted disk was not as successful. More
16092 on that below.</p>
16093
16094 <p>I had a hard time trying to track down a good laptop, as my most
16095 important requirements (robust and with a good keyboard) are never
16096 listed in the feature list. But I did get good help from the search
16097 feature at <a href="http://www.prisjakt.no/">Prisjakt</a>, which
16098 allowed me to limit the list of interesting laptops based on my other
16099 requirements. A bit surprising that SSD disk are not disks according
16100 to that search interface, so I had to drop specifying the number of
16101 disks from my search parameters. I also asked around among friends to
16102 get their impression on keyboards and robustness.</p>
16103
16104 <p>So the new laptop arrived, and it is quite a lot wider than the
16105 X41. I am not quite convinced about the keyboard, as it is
16106 significantly wider than my old keyboard, and I have to stretch my
16107 hand a lot more to reach the edges. But the key response is fairly
16108 good and the individual key shape is fairly easy to handle, so I hope
16109 I will get used to it. My old X40 was starting to fail, and I really
16110 needed a new laptop now. :)</p>
16111
16112 <p>Turning off the touch pad was simple. All it took was a quick
16113 visit to the BIOS during boot it disable it.</p>
16114
16115 <p>But there is a fatal problem with the laptop. The 180 GB SSD disk
16116 lock up during load. And this happen when installing Debian Wheezy
16117 with encrypted disk, while the disk is being filled with random data.
16118 I also tested to install Ubuntu Raring, and it happen there too if I
16119 reenable the code to fill the disk with random data (it is disabled by
16120 default in Ubuntu). And the bug with is already known. It was
16121 reported to Debian as <a href="http://bugs.debian.org/691427">BTS
16122 report #691427 2012-10-25</a> (journal commit I/O error on brand-new
16123 Thinkpad T430s ext4 on lvm on SSD). It is also reported to the Linux
16124 kernel developers as
16125 <a href="https://bugzilla.kernel.org/show_bug.cgi?id=51861">Kernel bugzilla
16126 report #51861 2012-12-20</a> (Intel SSD 520 stops working under load
16127 (SSDSC2BW180A3L in Lenovo ThinkPad T430s)). It is also reported on the
16128 Lenovo forums, both for
16129 <a href="http://forums.lenovo.com/t5/T400-T500-and-newer-T-series/T430s-Intel-SSD-520-180GB-issue/m-p/1070549">T430
16130 2012-11-10</a> and for
16131 <a href="http://forums.lenovo.com/t5/X-Series-ThinkPad-Laptops/x230-SATA-errors-with-180GB-Intel-520-SSD-under-heavy-write-load/m-p/1068147">X230
16132 03-20-2013</a>. The problem do not only affect installation. The
16133 reports state that the disk lock up during use if many writes are done
16134 on the disk, so it is much no use to work around the installation
16135 problem and end up with a computer that can lock up at any moment.
16136 There is even a
16137 <a href="https://git.efficios.com/?p=test-ssd.git">small C program
16138 available</a> that will lock up the hard drive after running a few
16139 minutes by writing to a file.</p>
16140
16141 <p>I've contacted my supplier and asked how to handle this, and after
16142 contacting PCHELP Norway (request 01D1FDP) which handle support
16143 requests for Lenovo, his first suggestion was to upgrade the disk
16144 firmware. Unfortunately there is no newer firmware available from
16145 Lenovo, as my disk already have the most recent one (version LF1i). I
16146 hope to hear more from him today and hope the problem can be
16147 fixed. :)</p>
16148
16149 </div>
16150 <div class="tags">
16151
16152
16153 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>.
16154
16155
16156 </div>
16157 </div>
16158 <div class="padding"></div>
16159
16160 <div class="entry">
16161 <div class="title">
16162 <a href="http://people.skolelinux.org/pere/blog/The_Thinkpad_is_dead__long_live_the_Thinkpad_X230.html">The Thinkpad is dead, long live the Thinkpad X230</a>
16163 </div>
16164 <div class="date">
16165 4th July 2013
16166 </div>
16167 <div class="body">
16168 <p>Half a year ago, I reported that I had to find a replacement for my
16169 trusty old Thinkpad X41. Unfortunately I did not have much time to
16170 spend on it, but today the replacement finally arrived. I ended up
16171 picking a <a href="http://www.linlap.com/lenovo_thinkpad_x230">Thinkpad
16172 X230</a> with SSD disk (NZDAJMN). I first test installed Debian Edu
16173 Wheezy as a roaming workstation, and it worked flawlessly. As I write
16174 this, it is installing what I hope will be a more final installation,
16175 with a encrypted hard drive to ensure any dope head stealing it end up
16176 with an expencive door stop.</p>
16177
16178 <p>I had a hard time trying to track down a good laptop, as my most
16179 important requirements (robust and with a good keyboard) are never
16180 listed in the feature list. But I did get good help from the search
16181 feature at <ahref="http://www.prisjakt.no/">Prisjakt</a>, which
16182 allowed me to limit the list of interesting laptops based on my other
16183 requirements. A bit surprising that SSD disk are not disks, so I had
16184 to drop number of disks from my search parameters.</p>
16185
16186 <p>I am not quite convinced about the keyboard, as it is significantly
16187 wider than my old keyboard, and I have to stretch my hand a lot more
16188 to reach the edges. But the key response is fairly good and the
16189 individual key shape is fairly easy to handle, so I hope I will get
16190 used to it. My old X40 was starting to fail, and I really needed a
16191 new laptop now. :)</p>
16192
16193 <p>I look forward to figuring out how to turn off the touch pad.</p>
16194
16195 </div>
16196 <div class="tags">
16197
16198
16199 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>.
16200
16201
16202 </div>
16203 </div>
16204 <div class="padding"></div>
16205
16206 <div class="entry">
16207 <div class="title">
16208 <a href="http://people.skolelinux.org/pere/blog/Fourth_alpha_release_of_Debian_Edu_Skolelinux_based_on_Debian_Wheezy.html">Fourth alpha release of Debian Edu/Skolelinux based on Debian Wheezy</a>
16209 </div>
16210 <div class="date">
16211 3rd July 2013
16212 </div>
16213 <div class="body">
16214 <p>The fourth wheezy based alpha release of Debian Edu was wrapped up
16215 today. This is the release announcement:</p>
16216
16217 <p><strong>New features for Debian Edu 7.1+edu0~alpha3 released
16218 2013-07-03</strong></p>
16219
16220 <p>These are the release notes for for Debian Edu / Skolelinux
16221 7.1+edu0~alpha3, based on Debian with codename "Wheezy".</p>
16222
16223 <p><strong>About Debian Edu and Skolelinux</strong></p>
16224
16225 <p><a href="http://www.skolelinux.org/">Debian Edu, also known as
16226 Skolelinux</a>, is a Linux distribution based on Debian providing an
16227 out-of-the box environment of a completely configured school
16228 network. Immediately after installation a school server running all
16229 services needed for a school network is set up just waiting for users
16230 and machines being added via GOsa², a comfortable Web-UI. A netbooting
16231 environment is prepared using PXE, so after initial installation of
16232 the main server from CD, DVD or USB stick all other machines can be
16233 installed via the network. The provided school server provides LDAP
16234 database and Kerberos authentication service, centralized home
16235 directories, DHCP server, web proxy and many other services. The
16236 desktop contains
16237 <a href="http://people.skolelinux.org/pere/blog/Educational_applications_included_in_Debian_Edu___Skolelinux__the_screenshot_collection____.html">more
16238 than 60 educational software packages</a> and more are available from
16239 the Debian archive, and schools can choose between KDE, Gnome, LXDE
16240 and Xfce desktop environment.</p>
16241
16242 <p>This is the fourth test release based on Debian Wheezy. Basically
16243 this is an updated and slightly improved version compared to the
16244 Squeeze release.</p>
16245
16246 <p><strong>Software updates</strong></p>
16247 <ul>
16248 <li>Dropped ispell dictionaries from our default installation.</li>
16249 <li>Dropped menu-xdg from the KDE desktop option, to drop the Debian
16250 submenu. It was not included with Gnome, LXDE or Xfce, so this
16251 brings KDE in line with the others.</li>
16252 <li>Dropped xdrawchem, xjig and xsok from our default installation as
16253 they don't have a desktop menu entry and thus won't show up in the
16254 menu now that menu-xdg was removed.</li>
16255 <li>Removed the killer system to kill left behind processes on
16256 multi-user machines, as it was no longer able to understand when a
16257 X display was in use and killed the processes of the active users
16258 too.</li>
16259 <li>Dropped the golearn (from goplay) package as the debtags in wheezy
16260 are too few to make the package useful.</li>
16261 </ul>
16262 <p><strong>Other changes</strong></p>
16263 <ul>
16264 <li>Updated artwork matching http://wiki.debian.org/DebianArt/Themes/Joy
16265 <li>Multi-arch i386/amd64 USB stick ISO available.</li>
16266 <li>Got rid of ispell/wordlist related debconf questions that showed
16267 up for some language options.</li>
16268 <li>Switched to using http.debian.net as APT source by default.</li>
16269 <li>Fixed proxy configuration on Main Server installations.</li>
16270 <li>Changed LTSP setup to ask dpkg to use force-unsafe-io the same way
16271 d-i is doing it.</li>
16272 <li>Made sure root and user passwords were not left behind in the
16273 debconf database after installation on Main Server installations.</li>
16274 <li>Made Roaming Workstation dynamic setup more robust and added draft
16275 script setup-ad-client to hook a Roaming Workstation up to a
16276 Active Directory server instead of a Debian Edu Main Server.</li>
16277 <li>Update system to install needed firmware packages during
16278 installation, to work properly in Wheezy.</li>
16279 <li>Update system to handle hardware quirks (debian-edu-hwsetup).</li>
16280 <li>Corrected PXE installation setup to properly pass selected desktop
16281 and keymap settings to PXE installation clients.</li>
16282 <li>LTSP diskless workstations use sshfs by default, allowing them to
16283 work without adding them to DNS and NIS netgroups for NFS access.</li>
16284 </ul>
16285 <p><strong>Known issues</strong></p>
16286 <ul>
16287 <li>No mass import of user account data in GOsa (ldif or csv)
16288 available yet (698840).</li>
16289 <li>Artwork not enabled for all desktops.</li>
16290 </ul>
16291 <p><strong>Where to get it</strong></p>
16292
16293 <p>To download the multiarch netinstall CD release you can use</p>
16294 <ul>
16295 <li><a href="ftp://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~a3-CD.iso">ftp://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~a3-CD.iso</a></li>
16296 <li><a href="http://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~a3-CD.iso">http://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~a3-CD.iso</a></li>
16297 <li>rsync -avzP ftp.skolelinux.org::skolelinux-cd/wheezy/debian-edu-7.1+edu0~a3-CD.iso .</li>
16298 </ul>
16299
16300 <p>The MD5SUM of this image is: 2b161a99d2a848c376d8d04e3854e30c
16301 <br>The SHA1SUM of this image is: 498922e9c508c0a7ee9dbe1dfe5bf830d779c3c8</p>
16302
16303 <p>To download the multiarch USB stick ISO release you can use</p>
16304 <ul>
16305 <li><a href="ftp://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~a3-USB.iso">ftp://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~a3-USB.iso</a></li>
16306 <li><a href="http://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~a3-USB.iso">http://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~a3-USB.iso</a></li>
16307 <li>rsync -avzP ftp.skolelinux.org::skolelinux-cd/wheezy/debian-edu-7.1+edu0~a3-USB.iso .</li>
16308 </ul>
16309
16310 <p>The MD5SUM of this image is: 25e808e403a4c15dbef1d13c37d572ac
16311 <br>The SHA1SUM of this image is: 15ecfc93eb6b4f453b7eb0bc04b6a279262d9721</p>
16312
16313 <p><strong>How to report bugs</strong></p>
16314
16315 <p><a href="http://wiki.debian.org/DebianEdu/HowTo/ReportBugs">http://wiki.debian.org/DebianEdu/HowTo/ReportBugs</a></p>
16316
16317 </div>
16318 <div class="tags">
16319
16320
16321 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
16322
16323
16324 </div>
16325 </div>
16326 <div class="padding"></div>
16327
16328 <div class="entry">
16329 <div class="title">
16330 <a href="http://people.skolelinux.org/pere/blog/Automatically_locate_and_install_required_firmware_packages_on_Debian__Isenkram_0_4_.html">Automatically locate and install required firmware packages on Debian (Isenkram 0.4)</a>
16331 </div>
16332 <div class="date">
16333 25th June 2013
16334 </div>
16335 <div class="body">
16336 <p>It annoys me when the computer fail to do automatically what it is
16337 perfectly capable of, and I have to do it manually to get things
16338 working. One such task is to find out what firmware packages are
16339 needed to get the hardware on my computer working. Most often this
16340 affect the wifi card, but some times it even affect the RAID
16341 controller or the ethernet card. Today I pushed version 0.4 of the
16342 <a href="http://packages.qa.debian.org/isenkram">Isenkram package</a>
16343 including a new script isenkram-autoinstall-firmware handling the
16344 process of asking all the loaded kernel modules what firmware files
16345 they want, find debian packages providing these files and install the
16346 debian packages. Here is a test run on my laptop:</p>
16347
16348 <p><pre>
16349 # isenkram-autoinstall-firmware
16350 info: kernel drivers requested extra firmware: ipw2200-bss.fw ipw2200-ibss.fw ipw2200-sniffer.fw
16351 info: fetching http://http.debian.net/debian/dists/squeeze/Contents-i386.gz
16352 info: locating packages with the requested firmware files
16353 info: Updating APT sources after adding non-free APT source
16354 info: trying to install firmware-ipw2x00
16355 firmware-ipw2x00
16356 firmware-ipw2x00
16357 Preconfiguring packages ...
16358 Selecting previously deselected package firmware-ipw2x00.
16359 (Reading database ... 259727 files and directories currently installed.)
16360 Unpacking firmware-ipw2x00 (from .../firmware-ipw2x00_0.28+squeeze1_all.deb) ...
16361 Setting up firmware-ipw2x00 (0.28+squeeze1) ...
16362 #
16363 </pre></p>
16364
16365 <p>When all the requested firmware is present, a simple message is
16366 printed instead:</p>
16367
16368 <p><pre>
16369 # isenkram-autoinstall-firmware
16370 info: did not find any firmware files requested by loaded kernel modules. exiting
16371 #
16372 </pre></p>
16373
16374 <p>It could use some polish, but it is already working well and saving
16375 me some time when setting up new machines. :)</p>
16376
16377 <p>So, how does it work? It look at the set of currently loaded
16378 kernel modules, and look up each one of them using modinfo, to find
16379 the firmware files listed in the module meta-information. Next, it
16380 download the Contents file from a nearby APT mirror, and search for
16381 the firmware files in this file to locate the package with the
16382 requested firmware file. If the package is in the non-free section, a
16383 non-free APT source is added and the package is installed using
16384 <tt>apt-get install</tt>. The end result is a slightly better working
16385 machine.</p>
16386
16387 <p>I hope someone find time to implement a more polished version of
16388 this script as part of the hw-detect debian-installer module, to
16389 finally fix <a href="http://bugs.debian.org/655507">BTS report
16390 #655507</a>. There really is no need to insert USB sticks with
16391 firmware during a PXE install when the packages already are available
16392 from the nearby Debian mirror.</p>
16393
16394 </div>
16395 <div class="tags">
16396
16397
16398 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>.
16399
16400
16401 </div>
16402 </div>
16403 <div class="padding"></div>
16404
16405 <div class="entry">
16406 <div class="title">
16407 <a href="http://people.skolelinux.org/pere/blog/The_value_of_a_good_distro_wide_test_suite___.html">The value of a good distro wide test suite...</a>
16408 </div>
16409 <div class="date">
16410 22nd June 2013
16411 </div>
16412 <div class="body">
16413 <p>In the <a href="http://www.skolelinux.org/">Debian Edu /
16414 Skolelinux</a> project, we include a post-installation test suite,
16415 which check that services are running, working, and return the
16416 expected results. It runs automatically just after the first boot on
16417 test installations (using test ISOs), but not on production
16418 installations (using non-test ISOs). It test that the LDAP service is
16419 operating, Kerberos is responding, DNS is replying, file systems are
16420 online resizable, etc, etc. And it check that the PXE service is
16421 configured, which is the topic of this post.</p>
16422
16423 <p>The last week I've fixed the DVD and USB stick ISOs for our Debian
16424 Edu Wheezy release. These ISOs are supposed to be able to install a
16425 complete system without any Internet connection, but for that to
16426 happen all the needed packages need to be on them. Thanks to our test
16427 suite, I discovered that we had forgotten to adjust our PXE setup to
16428 cope with the new names and paths used by the netboot d-i packages.
16429 When Internet connectivity was available, the installer fall back to
16430 using wget to fetch d-i boot images, but when offline it require
16431 working packages to get it working. And the packages changed name
16432 from debian-installer-6.0-netboot-$arch to
16433 debian-installer-7.0-netboot-$arch, we no longer pulled in the
16434 packages during installation. Without our test suite, I suspect we
16435 would never have discovered this before release. Now it is fixed
16436 right after we got the ISOs operational.</p>
16437
16438 <p>Another by-product of the test suite is that we can ask system
16439 administrators with problems getting Debian Edu to work, to run the
16440 test suite using <tt>/usr/sbin/debian-edu-test-install</tt> and see if
16441 any errors are detected. This usually pinpoint the subsystem causing
16442 the problem.</p>
16443
16444 <p>If you want to help us help kids learn how to share and create,
16445 please join us on
16446 <a href="irc://irc.debian.org/%23debian-edu">#debian-edu on
16447 irc.debian.org</a> and the
16448 <a href="http://lists.debian.org/debian-edu/">debian-edu@</a> mailing
16449 list.</p>
16450
16451 </div>
16452 <div class="tags">
16453
16454
16455 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
16456
16457
16458 </div>
16459 </div>
16460 <div class="padding"></div>
16461
16462 <div class="entry">
16463 <div class="title">
16464 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Victor_Ni_u.html">Debian Edu interview: Victor Nițu</a>
16465 </div>
16466 <div class="date">
16467 17th June 2013
16468 </div>
16469 <div class="body">
16470 <p>The <a href="http://www.skolelinux.org/">Debian Edu and
16471 Skolelinux</a> distribution have users and contributors all around the
16472 globe. And a while back, an enterprising young man showed up on
16473 <a href="irc://irc.debian.org/%23debian-edu">our IRC channel
16474 #debian-edu</a> and started asking questions about how Debian Edu
16475 worked. We answered as good as we could, and even convinced him to
16476 help us with translations. And today I managed to get an interview
16477 with him, to learn more about him.</p>
16478
16479 <p><strong>Who are you, and how do you spend your days?</strong></p>
16480
16481 <p>I'm a 25 year old free software enthusiast, living in Romania,
16482 which is also my country of origin. Back in 2009, at a New Year's Eve
16483 party, I had a very nice <strike>beer</strike> discussion with a
16484 friend, when we realized we have no organised Debian community in our
16485 country. A few days later, we put together the infrastructure for such
16486 community and even gathered a nice Debian-ish crowd. Since then, I
16487 began my quest as a free software hacker and activist and I am
16488 constantly trying to cover as much ground as possible on that
16489 field.</p>
16490
16491 <p>A few years ago I founded a small web development company, which
16492 provided me the flexible schedule I needed so much for my
16493 activities. For the last 13 months, I have been the Technical Director
16494 of <a href="http://ceata.org/">Fundația Ceata</a>, which is a free
16495 software activist organisation endorsed by the FSF and the FSFE, and
16496 the only one we have in our country.</p>
16497
16498 <p><strong>How did you get in contact with the Skolelinux / Debian Edu
16499 project?</strong></p>
16500
16501 <p>The idea of participating in the Debian Edu project was a surprise
16502 even to me, since I never used it before I began getting involved in
16503 it. This year I had a great opportunity to deliver a talk on
16504 educational software, and I knew immediately where to look. It was a
16505 love at first sight, since I was previously involved with some of the
16506 technologies the project incorporates, and I rapidly found a lot of
16507 ways to contribute.</p>
16508
16509 <p>My first contributions consisted in translating the installer and
16510 configuration dialogs, then I found some bugs to squash (I still
16511 haven't fixed them yet though), and I even got my eyes on some other
16512 areas where I can prove myself helpful. Since the appetite for free
16513 software in my country is pretty low, I'll be happy to be the first
16514 one around here advocating for the project's adoption in educational
16515 environments, and maybe even get my hands dirty in creating a flavour
16516 for our own needs. I am not used to make very advanced plannings, so
16517 from now on, time will tell what I'll be doing next, but I think I
16518 have a pretty consistent starting point.</p>
16519
16520 <p><strong>What do you see as the advantages of Skolelinux/Debian
16521 Edu?</strong></p>
16522
16523 <p>Not a long time ago, I was in the position of configuring and
16524 maintaining a LDAP server on some Debian derivative, and I must say it
16525 took me a while. A long time ago, I was maintaining a bigger
16526 Samba-powered infrastructure, and I must say I spent quite a lot of
16527 time on it. I have similar stories about many of the services included
16528 with Skolelinux, and the main advantage I see about it is the
16529 out-of-the box availability of them, making it quite competitive when
16530 it comes to managing a school's network, for example.</p>
16531
16532 <p>Of course, there is more to say about Skolelinux than the
16533 availability of the software included, its flexibility in various
16534 scenarios is something I can't wait to experiment "into the wild" (I
16535 only played with virtual machines so far). And I am sure there is a
16536 lot more I haven't discovered yet about it, being so new within the
16537 project.</p>
16538
16539 <p><strong>What do you see as the disadvantages of Skolelinux / Debian
16540 Edu?</strong></p>
16541
16542 <p>As usual, when it comes to Debian Blends, I see as the biggest
16543 disadvantage the lack of a numerous team dedicated to the
16544 project. Every day I see the same names in the changelogs, and I have
16545 a constantly fear of the bus factor in this story. I'd like to see
16546 Debian Edu advertised more as an entry point into the Debian
16547 ecosystem, especially amongst newcomers and students. IMHO there are a
16548 lot low-hanging fruits in terms of bug squashing, and enough
16549 opportunities to get the feeling of the Debian Project's dynamics. Not
16550 to mention it's a very fun blend to work on!</p>
16551
16552 <p>Derived from the previous statement, is the delay in catching up
16553 with the main Debian release and documentation. This is common though
16554 to all blends and derivatives, but it's an issue we can all work
16555 on.</p>
16556
16557 <p><strong>Which free software do you use daily?</strong></p>
16558
16559 <p>I can hardly imagine myself spending a day without Vim, since my
16560 daily routine covers writing code and hacking configuration files. I
16561 am a fan of the Awesome window manager (but I also like the
16562 Enlightenment project a lot!),
16563 <a href="http://www.claws-mail.org/‎">Claws Mail</a> due to its ease of
16564 use and very configurable behaviour. Recently I fell in love with
16565 <a href="https://launchpad.net/redshift">Redshift</a>, which helps me
16566 get through the night without headaches. Of course, there is much more
16567 stuff in this bag, but I'll need a blog on my own for doing this!</p>
16568
16569 <p><strong>Which strategy do you believe is the right one to use to
16570 get schools to use free software?</strong></p>
16571
16572 <p>Well, on this field, I cannot do much more than experiment right
16573 now. So, being far from having a recipe for success, I can only assume
16574 that:</p>
16575
16576 <ul>
16577
16578 <li>schools would like to get rid of proprietary software</li>
16579
16580 <li>students will love the openness of the system, and will want to
16581 experiment with it - maybe we need to harvest the native curiosity
16582 of teenagers more?</li>
16583
16584 <li>there is no "right one" when it comes to strategies, but it would
16585 be useful to have some success stories published somewhere, so
16586 other can get some inspiration from them (I know I'd promote
16587 them!)</li>
16588
16589 <li>more active promotion - talks, conferences, even small school
16590 lectures can do magical things if they encounter at least one
16591 person interested. Who knows who that person might be? ;-)</li>
16592
16593 </ul>
16594
16595 <p>I also see some problems in getting Skolelinux into schools; for
16596 example, in our country we have a great deal of corruption issues, so
16597 it might be hard(er) to fight against proprietary solutions. Also,
16598 people who relied on commercial software for all their lives, would be
16599 very hard to convert against their will.</p>
16600
16601 </div>
16602 <div class="tags">
16603
16604
16605 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju</a>.
16606
16607
16608 </div>
16609 </div>
16610 <div class="padding"></div>
16611
16612 <div class="entry">
16613 <div class="title">
16614 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Jonathan_Carter.html">Debian Edu interview: Jonathan Carter</a>
16615 </div>
16616 <div class="date">
16617 12th June 2013
16618 </div>
16619 <div class="body">
16620 <p>There is a certain cross-over between the
16621 <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux
16622 project</a> and <a href="http://www.edubuntu.org/">the Edubuntu
16623 project</a>, and for example the LTSP packages in Debian are a joint
16624 effort between the projects. One person with a foot in both camps is
16625 Jonathan Carter, which I am now happy to present to you.</p>
16626
16627 <p><strong>Who are you, and how do you spend your days?</strong></p>
16628
16629 <p>I'm a South-African free software geek who lives in Cape Town. My
16630 days vary quite a bit since I'm involved in too many things. As I'm
16631 getting older I'm learning how to focus a bit more :)</p>
16632
16633 <p>I'm also an Edubuntu contributor and I love when there are
16634 opportunities for the Edubuntu and Debian Edu projects to benefit from
16635 each other.</p>
16636
16637 <p><strong>How did you get in contact with the Skolelinux / Debian Edu
16638 project?</strong></p>
16639
16640 <p>I've been somewhat familiar with the project before, but I think my
16641 first direct exposure to the project was when I met Petter
16642 [Reinholdtsen] and Knut [Yrvin] at the Edubuntu summit in 2005 in
16643 London. They provided great feedback that helped the bootstrapping of
16644 Edubuntu. Back then Edubuntu (and even Ubuntu) was still very new and
16645 it was great getting input from people who have been around longer. I
16646 was also still very excitable and said yes to everything and to this
16647 day I have a big todo list backlog that I'm catching up with. I think
16648 over the years the relationship between Edubuntu and Debian-Edu has
16649 been gradually improving, although I think there's a lot that we could
16650 still improve on in terms of working together on packages. I'm sure
16651 we'll get there one day.</p>
16652
16653 <p><strong>What do you see as the advantages of Skolelinux / Debian
16654 Edu?</strong></p>
16655
16656 <p>Debian itself already has so many advantages. I could go on about
16657 it for pages, but in essence I love that it's a very honest project
16658 that puts its users first with no hidden agendas and also produces
16659 very high quality work.</p>
16660
16661 <p>I think the advantage of Debian Edu is that it makes many common
16662 set-up tasks simpler so that administrators can get up and running
16663 with a lot less effort and frustration. At the same time I think it
16664 helps to standardise installations in schools so that it's easier for
16665 community members and commercial suppliers to support.</p>
16666
16667 <p><strong>What do you see as the disadvantages of Skolelinux / Debian
16668 Edu?</strong></p>
16669
16670 <p>I had to re-type this one a few times because I'm trying to
16671 separate "disadvantages" from "areas that need improvement" (which is
16672 what I originally rambled on about)</p>
16673
16674 <p>The biggest disadvantage I can think of is lack of manpower. The
16675 project could do so much more if there were more good contributors. I
16676 think some of the problems are external too. Free software and free
16677 content in education is a no-brainer but it takes some time to catch
16678 on. When you've been working with the same proprietary eco-system for
16679 years and have gotten used to it, it can be hard to adjust to some
16680 concepts in the free software world. It would be nice if there were
16681 more Debian Edu consultants across the world. I'd love to be one
16682 myself but I'm already so over-committed that it's just not possible
16683 currently.</p>
16684
16685 <p>I think the best short-term solution to that large-scale problem is
16686 for schools to be pro-active and share their experiences and grow
16687 their skills in-house. I'm often saddened to see how much money
16688 educational institutions spend on 3rd party solutions that they don't
16689 have access to after the service has ended and they could've gotten so
16690 much more value otherwise by being more self-sustainable and
16691 autonomous.</p>
16692
16693 <p><strong>Which free software do you use daily?</strong></p>
16694
16695 <p>My main laptop dual-boots between Debian and Windows 7. I was
16696 Windows free for years but started dual-booting again last year for
16697 some games which help me focus and relax (Starcraft II in
16698 particular). Gaming support on Linux is improving in leaps and bounds
16699 so I suppose I'll soon be able to regain that disk space :)</p>
16700
16701 <p>Besides that I rely on Icedove, Chromium, Terminator, Byobu, irssi,
16702 git, Tomboy, KVM, VLC and LibreOffice. Recently I've been torn on
16703 which desktop environment I like and I'm taking some refuge in Xfce
16704 while I figure that out. I like tools that keep things simple. I enjoy
16705 Python and shell scripting. I went to an Arduino workshop recently and
16706 it was awesome seeing how easy and simple the IDE software was to get
16707 up and running in Debian compared to the users running Windows and OS
16708 X.</p>
16709
16710 <p>I also use mc which some people frown upon slightly. I got used to
16711 using Norton Commander in the early 90's and it stuck (I think the
16712 people who sneer at it is just jealous that they don't know how to use
16713 it :p)
16714
16715 <p><strong>Which strategy do you believe is the right one to use to
16716 get schools to use free software?</strong></p>
16717
16718 <p>I think trying to force it is unproductive. I also think that in
16719 many cases it's appropriate for schools to use non-free systems and I
16720 don't think that there's any particular moral or ethical problem with
16721 that.</p>
16722
16723 <p>I do think though that free software can already solve so so many
16724 problems in educational institutions and it's just a shame not taking
16725 advantage of that.</p>
16726
16727 <p>I also think that some curricula need serious review. For example,
16728 some areas of the world rely heavily on very specific versions of MS
16729 Office, teaching students to parrot menu items instead of learning the
16730 general concepts. I think that's very unproductive because firstly, MS
16731 Office's interface changes drastically every few years and on top of
16732 that it also locks in a generation to a product that might not be the
16733 best solution for them.</p>
16734
16735 <p>To answer your question, I believe that the right strategy is to
16736 educate and inform, giving someone the information they require to
16737 make a decision that would work for them.</p>
16738
16739 </div>
16740 <div class="tags">
16741
16742
16743 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju</a>.
16744
16745
16746 </div>
16747 </div>
16748 <div class="padding"></div>
16749
16750 <div class="entry">
16751 <div class="title">
16752 <a href="http://people.skolelinux.org/pere/blog/Fixing_the_Linux_black_screen_of_death_on_machines_with_Intel_HD_video.html">Fixing the Linux black screen of death on machines with Intel HD video</a>
16753 </div>
16754 <div class="date">
16755 11th June 2013
16756 </div>
16757 <div class="body">
16758 <p>When installing RedHat, Fedora, Debian and Ubuntu on some machines,
16759 the screen just turn black when Linux boot, either during installation
16760 or on first boot from the hard disk. I've seen it once in a while the
16761 last few years, but only recently understood the cause. I've seen it
16762 on HP laptops, and on my latest acquaintance the Packard Bell laptop.
16763 The reason seem to be in the wiring of some laptops. The system to
16764 control the screen background light is inverted, so when Linux try to
16765 turn the brightness fully on, it end up turning it off instead. I do
16766 not know which Linux drivers are affected, but this post is about the
16767 i915 driver used by the
16768 <a href="http://www.linlap.com/packard_bell_easynote_lv">Packard Bell
16769 EasyNote LV</a>, Thinkpad X40 and many other laptops.</p>
16770
16771 <p>The problem can be worked around two ways. Either by adding
16772 i915.invert_brightness=1 as a kernel option, or by adding a file in
16773 /etc/modprobe.d/ to tell modprobe to add the invert_brightness=1
16774 option when it load the i915 kernel module. On Debian and Ubuntu, it
16775 can be done by running these commands as root:</p>
16776
16777 <pre>
16778 echo options i915 invert_brightness=1 | tee /etc/modprobe.d/i915.conf
16779 update-initramfs -u -k all
16780 </pre>
16781
16782 <p>Since March 2012 there is
16783 <a href="http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=4dca20efb1a9c2efefc28ad2867e5d6c3f5e1955">a
16784 mechanism in the Linux kernel</a> to tell the i915 driver which
16785 hardware have this problem, and get the driver to invert the
16786 brightness setting automatically. To use it, one need to add a row in
16787 <a href="http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/gpu/drm/i915/intel_display.c">the
16788 intel_quirks array</a> in the driver source
16789 <tt>drivers/gpu/drm/i915/intel_display.c</tt> (look for "<tt>static
16790 struct intel_quirk intel_quirks</tt>"), specifying the PCI device
16791 number (vendor number 8086 is assumed) and subdevice vendor and device
16792 number.</p>
16793
16794 <p>My Packard Bell EasyNote LV got this output from <tt>lspci
16795 -vvnn</tt> for the video card in question:</p>
16796
16797 <p><pre>
16798 00:02.0 VGA compatible controller [0300]: Intel Corporation \
16799 3rd Gen Core processor Graphics Controller [8086:0156] \
16800 (rev 09) (prog-if 00 [VGA controller])
16801 Subsystem: Acer Incorporated [ALI] Device [1025:0688]
16802 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- \
16803 ParErr- Stepping- SE RR- FastB2B- DisINTx+
16804 Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- \
16805 <TAbort- <MAbort->SERR- <PERR- INTx-
16806 Latency: 0
16807 Interrupt: pin A routed to IRQ 42
16808 Region 0: Memory at c2000000 (64-bit, non-prefetchable) [size=4M]
16809 Region 2: Memory at b0000000 (64-bit, prefetchable) [size=256M]
16810 Region 4: I/O ports at 4000 [size=64]
16811 Expansion ROM at <unassigned> [disabled]
16812 Capabilities: <access denied>
16813 Kernel driver in use: i915
16814 </pre></p>
16815
16816 <p>The resulting intel_quirks entry would then look like this:</p>
16817
16818 <p><pre>
16819 struct intel_quirk intel_quirks[] = {
16820 ...
16821 /* Packard Bell EasyNote LV11HC needs invert brightness quirk */
16822 { 0x0156, 0x1025, 0x0688, quirk_invert_brightness },
16823 ...
16824 }
16825 </pre></p>
16826
16827 <p>According to the kernel module instructions (as seen using
16828 <tt>modinfo i915</tt>), information about hardware needing the
16829 invert_brightness flag should be sent to the
16830 <a href="http://lists.freedesktop.org/mailman/listinfo/dri-devel">dri-devel
16831 (at) lists.freedesktop.org</a> mailing list to reach the kernel
16832 developers. But my email about the laptop sent 2013-06-03 have not
16833 yet shown up in
16834 <a href="http://lists.freedesktop.org/archives/dri-devel/2013-June/thread.html">the
16835 web archive for the mailing list</a>, so I suspect they do not accept
16836 emails from non-subscribers. Because of this, I sent my patch also to
16837 the Debian bug tracking system instead as
16838 <a href="http://bugs.debian.org/710938">BTS report #710938</a>, to make
16839 sure the patch is not lost.</p>
16840
16841 <p>Unfortunately, it is not enough to fix the kernel to get Laptops
16842 with this problem working properly with Linux. If you use Gnome, your
16843 worries should be over at this point. But if you use KDE, there is
16844 something in KDE ignoring the invert_brightness setting and turning on
16845 the screen during login. I've reported it to Debian as
16846 <a href="http://bugs.debian.org/711237">BTS report #711237</a>, and
16847 have no idea yet how to figure out exactly what subsystem is doing
16848 this. Perhaps you can help? Perhaps you know what the Gnome
16849 developers did to handle this, and this can give a clue to the KDE
16850 developers? Or you know where in KDE the screen brightness is changed
16851 during login? If so, please update the BTS report (or get in touch if
16852 you do not know how to update BTS).</p>
16853
16854 <p>Update 2013-07-19: The correct fix for this machine seem to be
16855 acpi_backlight=vendor, to disable ACPI backlight support completely,
16856 as the ACPI information on the machine is trash and it is better to
16857 leave it to the intel video driver to control the screen
16858 backlight.</p>
16859
16860 </div>
16861 <div class="tags">
16862
16863
16864 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>.
16865
16866
16867 </div>
16868 </div>
16869 <div class="padding"></div>
16870
16871 <div class="entry">
16872 <div class="title">
16873 <a href="http://people.skolelinux.org/pere/blog/Third_alpha_release_of_Debian_Edu___Skolelinux_based_on_Debian_Wheezy.html">Third alpha release of Debian Edu / Skolelinux based on Debian Wheezy</a>
16874 </div>
16875 <div class="date">
16876 10th June 2013
16877 </div>
16878 <div class="body">
16879 <p>The third wheezy based alpha release of Debian Edu was wrapped up
16880 today. This is the release announcement:</p>
16881
16882 <p><strong>New features for Debian Edu 7.0.0 alpha2 released
16883 2013-06-10</strong></p>
16884
16885 <p>This is the release notes for for Debian Edu / Skolelinux 7.0.0 edu
16886 alpha2, based on Debian with codename "Wheezy".</p>
16887
16888 <p><strong>About Debian Edu and Skolelinux</strong></p>
16889
16890 <p><a href="http://www.skolelinux.org/">Debian Edu, also known as
16891 Skolelinux</a>, is a Linux distribution based on Debian providing an
16892 out-of-the box environment of a completely configured school
16893 network. Immediately after installation a school server running all
16894 services needed for a school network is set up just waiting for users
16895 and machines being added via GOsa², a comfortable Web-UI. A netbooting
16896 environment is prepared using PXE, so after initial installation of
16897 the main server from CD, DVD or USB stick all other machines can be
16898 installed via the network. The provided school server provides LDAP
16899 database and Kerberos authentication service, centralized home
16900 directories, DHCP server, web proxy and many other services. The
16901 desktop contains
16902 <a href="http://people.skolelinux.org/pere/blog/Educational_applications_included_in_Debian_Edu___Skolelinux__the_screenshot_collection____.html">more
16903 than 60 educational software packages</a> and more are available from
16904 the Debian archive, and schools can choose between KDE, Gnome, LXDE
16905 and Xfce desktop environment.</p>
16906
16907 <p>This is the third test release based on Debian Wheezy. Basically
16908 this is an updated and slightly improved version compared to the
16909 Squeeze release.</p>
16910
16911 <p><strong>Software updates</strong></p>
16912
16913 <ul>
16914
16915 <li>Iceweasel was updated from 10 to 17. (DSA 2699-1)
16916 <li>Updated libxv (DSA-2674), libxvmc (DSA-2675), libxfixes (DSA-2676), libxrender (DSA-2677), mesa (DSA-2678), xserver-xorg-video-openchrome (DSA-2679), libxt (DSA-2680), libxcursor (DSA-2681), libxext (DSA-2682), libxi (DSA-2683), libxrandr (DSA-2684), libxp (DSA-2685), libxcb (DSA-2686), libfs (DSA-2687), libxres (DSA-2688), libxtst (DSA-2689), libxxf86dga (DSA-2690), libxinerama (DSA-2691), libxxf86vm (DSA-2692), libx11 (DSA-2693), chromium-browser (DSA-2695), gnutls26 (DSA-2697), wireshark (DSA-2700), krb5 (DSA-2701), telepathy-gabble (DSA-2702) and subversion (DSA-2703).
16917 <li>Switched xrdp on thin client servers to use tightvncserver instead of xvnc4.
16918 <li>Now install software oscilloscope xoscope by default.
16919 <li>Now install music tools gtick, lingot and pianobooster by default.
16920
16921 </ul>
16922
16923 <p><strong>Other changes</strong></p>
16924
16925 <ul>
16926
16927 <li>The subnet-change script is now able to change all files needing a change on the main-server when changing the IP network used.
16928 <li>Updated translation of the installation.
16929 <li>New Romanian translation.
16930 <li>Fix security problem causing root and first user password to no longer show up in /var/cache/debconf/templates.dat.
16931 <li>Fix roaming workstation setup (Closed in libpam-mklocaluser/0.8, libpam-mklocaluser/0.8~deb7u1: #706753: libpam-mklocaluser: Fail to create local user during first login).
16932 <li>Made roaming workstation setup more robust in non-Debian Edu environments.
16933 <li>New script debian-edu-bless to transform a Debian installation to a Debian Edu profile.
16934 <li>Adjust Iceweasel setup to improve performance when $HOME is on NFS.
16935 <li>More testsuite tests.
16936 <li>Make automatic proxy configuration more robust.
16937 <li>Adjust GOsa² GUI configuration.
16938
16939 <li>Update thin client and diskless workstation setup to work with
16940 LTSP in Wheezy.</li>
16941
16942 <li>Diskless workstations now run out of the box -- no need to set
16943 them up with GOsa².</li>
16944
16945 <li>Update IMAP server setup. </li>
16946
16947 <li>Fix login into Skolelinux Backup Tool (Closed in
16948 slbackup-php/0.4.4-1: #700257: slbackup-php: Fails to submit correctly
16949 entered password). </li>
16950
16951 </ul>
16952
16953 <p><strong>Known issues</strong></p>
16954
16955 <ul>
16956
16957 <li>DVD binary and source images are not yet ready.</li>
16958
16959 <li>No mass import of user account data in GOsa (ldif or csv)
16960 available yet (Open in gosa/2.7.4-4: #698840: gosa-plugin-ldapmanager:
16961 missing import feature).</li>
16962
16963 <li>Missing artwork for the KDE desktop (and probably a few others). </li>
16964
16965 <li>KDE Debian submenu lacks icons (Closed: #502192: menu-xdg: invents
16966 own icon names instead of using existing). This will remain
16967 unfixed.</li>
16968
16969 </ul>
16970
16971 <p><strong>Where to get it</strong></p>
16972
16973 <p>To download the multiarch netinstall CD release you can use</p>
16974
16975 <ul>
16976
16977 <li><a href="ftp://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.0+edu0~a2-CD.iso">ftp://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.0+edu0~a2-CD.iso</a></li>
16978
16979 <li><a href="http://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.0+edu0~a2-CD.iso">http://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.0+edu0~a2-CD.iso</a></li>
16980
16981 <li>rsync -avzP ftp.skolelinux.org::skolelinux-cd/wheezy/debian-edu-7.0+edu0~a2-CD.iso .</li>
16982
16983 </ul>
16984
16985 <p>The MD5SUM of this image is: 27bbcace407743382f3c42c08dbe8178
16986 <br>The SHA1SUM of this image is: e35f7d7908566cd3075375b3721fa10ee420d419</p>
16987
16988 <p><strong>How to report bugs</strong></p>
16989
16990 <p><a href="http://wiki.debian.org/DebianEdu/HowTo/ReportBugs">http://wiki.debian.org/DebianEdu/HowTo/ReportBugs</a>
16991
16992 </div>
16993 <div class="tags">
16994
16995
16996 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
16997
16998
16999 </div>
17000 </div>
17001 <div class="padding"></div>
17002
17003 <div class="entry">
17004 <div class="title">
17005 <a href="http://people.skolelinux.org/pere/blog/Is_there_a_PHP_expert_in_the_building___Debian_Edu_need_help_.html">Is there a PHP expert in the building? Debian Edu need help!</a>
17006 </div>
17007 <div class="date">
17008 5th June 2013
17009 </div>
17010 <div class="body">
17011 <p>Here is a call for help from the Debian Edu / Skolelinux project.
17012 We have two problems blocking the release of the Wheezy version we
17013 hope to get released soon. The two problems require some with PHP
17014 skills, and we seem to lack anyone with both time and PHP skills in
17015 the project:
17016
17017 <ol>
17018
17019 <li>It is impossible to log into the slbackup web interface
17020 (slbackup-php) using the root user and password. This is
17021 <a href="http://bugs.debian.org/700257">BTS report #700257</a>.
17022 This used to work, but stopped working some time since Squeeze.
17023 Perhaps some obsolete PHP feature was used?</li>
17024
17025 <li>It is not possible to "mass import" user lists in Gosa, neither
17026 using ldif nor using CSV files. The feature was disabled after a
17027 major rewrite of Gosa, and need to be ported to the new system.
17028 This is <a href="http://bugs.debian.org/698840">BTS report
17029 #698840</a>.</li>
17030
17031 </ol>
17032
17033 <p>If you can help us, please join us on IRC
17034 (<a href="irc://irc.debian.org/%23debian-edu">#debian-edu on
17035 irc.debian.org</a>) and provide patches via the BTS.</p>
17036
17037 </div>
17038 <div class="tags">
17039
17040
17041 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
17042
17043
17044 </div>
17045 </div>
17046 <div class="padding"></div>
17047
17048 <div class="entry">
17049 <div class="title">
17050 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__C_dric_Boutillier.html">Debian Edu interview: Cédric Boutillier</a>
17051 </div>
17052 <div class="date">
17053 4th June 2013
17054 </div>
17055 <div class="body">
17056 <p>It has been a while since my last English
17057 <a href="http://www.skolelinux.org/">Debian Edu and Skolelinux</a>
17058 interview last November. But the developers and translators are still
17059 pulling along to get the Wheezy based release out the door, and this
17060 time I managed to get an interview from one of the French translators
17061 in the project, Cédric Boutillier.</p>
17062
17063 <p><strong>Who are you, and how do you spend your days?</strong></p>
17064
17065 <p>I am 34 year old. I live near Paris, France. I am an assistant
17066 professor in probability theory. I spend my daytime teaching
17067 mathematics at the university and doing fundamental research in
17068 probability in connexion with combinatorics and statistical physics.</p>
17069
17070 <p>I have been involved in the Debian project for a couple of years
17071 and became Debian Developer a few months ago. I am working on Ruby
17072 packaging, publicity and translation.</p>
17073
17074 <p><strong>How did you get in contact with the Skolelinux / Debian Edu
17075 project?</strong></p>
17076
17077 <p>I came to the Debian Edu project after a call for translation of
17078 <a href="http://wiki.debian.org/DebianEdu/Documentation/Manuals">the
17079 Debian Edu manual</a> for the release of Debian Edu Squeeze. Since
17080 then, I have been working on updating the French translation of the
17081 manual.
17082
17083 <p>I had the opportunity to make an installation of Debian Edu in a
17084 virtual machine when I was preparing localised version of some screen
17085 shots for the manual. I was amazed to see it worked out of the box and
17086 how comprehensive the list of software installed by default was.</p>
17087
17088 <p>What amazed me was the complete network infrastructure directly
17089 ready to use, which can and the nice administration interface provided
17090 by <a href="https://oss.gonicus.de/labs/gosa/">GOsa²</a>. What pleased
17091 me also was the fact that among the software installed by default,
17092 there were many "traditional" educative software to learn languages,
17093 to count, to program... but also software to develop creativity and
17094 artistic skills with music (<a href="http://ardour.org/">Ardour</a>,
17095 <a href="http://audacity.sourceforge.net/">Audacity</a>) and
17096 movies/animation (I was especially thinking of
17097 <a href="http://linuxstopmotion.sourceforge.net/">Stopmotion</a>).</p>
17098
17099 <p>I am following the development of Debian Edu and am hanging out on
17100 <a href="irc://irc.debian.org/%23debian-edu">#debian-edu</a>.
17101 Unfortunately, I don't much time to get more involved in this
17102 beautiful project.</p>
17103
17104 <p><strong>What do you see as the advantages of Skolelinux / Debian
17105 Edu?</strong></p>
17106
17107 <p>For me, the main advantages of Skolelinux/Debian Edu are its
17108 community of experts and its precise documentation, as well as the
17109 fact that it provides a solution ready to use.</p>
17110
17111 <p>I would add also the fact that it is based on the rock solid Debian
17112 distribution, which ensures stability and provides a huge collection
17113 of educational free software.</p>
17114
17115 <p><strong>What do you see as the disadvantages of Skolelinux / Debian
17116 Edu?</strong></p>
17117
17118 <p>Maybe the lack of manpower to do lobbying on the
17119 project. Sometimes, people who need to take decisions concerning IT do
17120 not have all the elements to evaluate properly free software
17121 solutions. The fact that support by a company may be difficult to find
17122 is probably a problem if the school does not have IT personnel.</p>
17123
17124 <p>One can find support from a company by looking at
17125 <a href="http://wiki.debian.org/DebianEdu/Help/ProfessionalHelp">the
17126 wiki dokumentation</a>, where some countries already have a number of
17127 companies providing support for Debian Edu, like Germany or
17128 Norway. This list is easy to find readily from the manual. However,
17129 for other countries, like France, the list is empty. I guess that
17130 consultants proposing support for Debian would be able to provide some
17131 support for Debian Edu as well.</p>
17132
17133 <p><strong>Which free software do you use daily?</strong></p>
17134
17135 <p>I am using the KDE Plasma Desktop. But the pieces of software I use
17136 most runs in a terminal: Mutt and OfflineIMAP for emails, latex for
17137 scientific documents, mpd for music. VIM is my editor of choice. I am
17138 also using the mathematical software
17139 <a href="http://www.scilab.org/en/scilab/about‎">Scilab</a> and
17140 <a href="http://www.sagemath.org/index.html‎">Sage</a> (built from
17141 source as not completely packaged for Debian, yet).
17142
17143 <p><strong>Do you have any suggestions for teachers interested in
17144 using the free software in Debian to teach mathematics and
17145 statistics?</strong></p>
17146
17147 <p>I do not have any "nice" recommendations for statistics. At our
17148 university, we use both <a href="http://www.r-project.org/‎">R</a> and
17149 Scilab to teach statistics and probabilistic simulations. For
17150 geometry, there are nice programs:</p>
17151
17152 <ul>
17153
17154 <li><a href="http://www.drgeo.eu/">drgeo</a> and
17155 <a href="http://edu.kde.org/applications/all/kig‎">kig</a> to do
17156 constructions in planar geometry
17157
17158 <li><a href="http://www.geom.uiuc.edu/software/download/kali.html">kali</a>
17159 to discover symmetry groups (the so-called wallpapers and frieze
17160 groups), although the interface looks a bit old.</li>
17161
17162 </ul>
17163
17164 <p>I like also
17165 <a href="http://edu.kde.org/applications/all/cantor">cantor</a>, which
17166 provides a uniform interface to SciLab, Sage,
17167 <a href="http://directory.fsf.org/wiki/Octave‎">Octave</a>, etc...</p>
17168
17169 <p><strong>Which strategy do you believe is the right one to use to
17170 get schools to use free software?</strong></p>
17171
17172 <p>My suggestions would be to</p>
17173
17174 <ul>
17175
17176 <li>advertise the reduction of costs when free software is used.</li>
17177
17178 <li>communicate about the quality of free software projects, using
17179 well known examples like Firefox, ThunderBird and
17180 OpenOffice.org/LibreOffice.</li>
17181
17182 <li>advertise the living and strong community around the project.</li>
17183
17184 <li>show that it is not more difficult to use than any other
17185 system.</li>
17186
17187 </ul>
17188
17189 </div>
17190 <div class="tags">
17191
17192
17193 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju</a>.
17194
17195
17196 </div>
17197 </div>
17198 <div class="padding"></div>
17199
17200 <div class="entry">
17201 <div class="title">
17202 <a href="http://people.skolelinux.org/pere/blog/Educational_applications_included_in_Debian_Edu___Skolelinux__the_screenshot_collection____.html">Educational applications included in Debian Edu / Skolelinux (the screenshot collection :-)</a>
17203 </div>
17204 <div class="date">
17205 1st June 2013
17206 </div>
17207 <div class="body">
17208 <p>Included in <a href="http://www.skolelinux.org/">Debian Edu /
17209 Skolelinux</a>, there are quite a lot of educational software.
17210 Created to help teachers teach, and pupils learn. We have tried to
17211 tag them all using debtags use::learning and role::program, and using
17212 the debtags I was happy to be able to create a collage of the
17213 educational software packages installed by default, sorted by the
17214 debtag field. Here it is. Click on a image to learn more about the
17215 program.</p>
17216
17217 <!-- for f in $(debtags tagcat|grep field::|awk '{print $2}'); do echo; echo "<p><strong>$f</strong></p>"; echo "<p>"; ( for p in $(debtags search --names "use::learning && interface::x11 && role::program && $f"); do img="<img src='http://screenshots.debian.net/thumbnail/$p' alt='$p'>"; if dpkg -s $p > /dev/null 2>&1; then echo "<a href='http://packages.qa.debian.org/$p'>$img</a>"; fi; done; ) | LANG=C sort; echo "</p>"; done -->
17218
17219 <p><strong>field::arts</strong></p>
17220 <p>
17221 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=audacity'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/audacity.png' alt='audacity'></a>
17222 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=childsplay'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/childsplay.png' alt='childsplay'></a>
17223 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=denemo'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/denemo.png' alt='denemo'></a>
17224 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=freebirth'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/freebirth.png' alt='freebirth'></a>
17225 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=gcompris'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/gcompris.png' alt='gcompris'></a>
17226 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=gimp'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/gimp.png' alt='gimp'></a>
17227 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=hydrogen'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/hydrogen.png' alt='hydrogen'></a>
17228 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=lilypond'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/lilypond.png' alt='lilypond'></a>
17229 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=lmms'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/lmms.png' alt='lmms'></a>
17230 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=rosegarden'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/rosegarden.png' alt='rosegarden'></a>
17231 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=scribus'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/scribus.png' alt='scribus'></a>
17232 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=solfege'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/solfege.png' alt='solfege'></a>
17233 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=stopmotion'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/stopmotion.png' alt='stopmotion'></a>
17234 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=tuxpaint'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/tuxpaint.png' alt='tuxpaint'></a>
17235 </p>
17236
17237 <p><strong>field::astronomy</strong></p>
17238 <p>
17239 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=celestia-gnome'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/celestia-gnome.png' alt='celestia-gnome'></a>
17240 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=gpredict'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/gpredict.png' alt='gpredict'></a>
17241 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=kstars'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/kstars.png' alt='kstars'></a>
17242 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=planets'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/planets.png' alt='planets'></a>
17243 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=stellarium'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/stellarium.png' alt='stellarium'></a>
17244 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=xplanet'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/xplanet.png' alt='xplanet'></a>
17245 </p>
17246
17247 <p><strong>field::biology:structural</strong></p>
17248 <p>
17249 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=pymol'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/pymol.png' alt='pymol'></a>
17250 </p>
17251
17252 <p><strong>field::chemistry</strong></p>
17253 <p>
17254 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=atomix'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/atomix.png' alt='atomix'></a>
17255 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=chemtool'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/chemtool.png' alt='chemtool'></a>
17256 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=easychem'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/easychem.png' alt='easychem'></a>
17257 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=gchempaint'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/gchempaint.png' alt='gchempaint'></a>
17258 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=gdis'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/gdis.png' alt='gdis'></a>
17259 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=ghemical'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/ghemical.png' alt='ghemical'></a>
17260 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=gperiodic'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/gperiodic.png' alt='gperiodic'></a>
17261 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=kalzium'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/kalzium.png' alt='kalzium'></a>
17262 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=pymol'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/pymol.png' alt='pymol'></a>
17263 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=viewmol'>[viewmol]</a>
17264 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=xdrawchem'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/xdrawchem.png' alt='xdrawchem'></a>
17265 </p>
17266
17267 <p><strong>field::electronics</strong></p>
17268 <p>
17269 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=gcompris'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/gcompris.png' alt='gcompris'></a>
17270 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=gpsim'>[gpsim]</a>
17271 </p>
17272
17273 <p><strong>field::geography</strong></p>
17274 <p>
17275 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=kgeography'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/kgeography.png' alt='kgeography'></a>
17276 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=marble'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/marble.png' alt='marble'></a>
17277 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=xplanet'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/xplanet.png' alt='xplanet'></a>
17278 </p>
17279
17280 <p><strong>field::linguistics</strong></p>
17281 <p>
17282 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=gcompris'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/gcompris.png' alt='gcompris'></a>
17283 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=kanagram'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/kanagram.png' alt='kanagram'></a>
17284 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=khangman'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/khangman.png' alt='khangman'></a>
17285 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=klettres'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/klettres.png' alt='klettres'></a>
17286 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=parley'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/parley.png' alt='parley'></a>
17287 </p>
17288
17289 <p><strong>field::mathematics</strong></p>
17290 <p>
17291 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=childsplay'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/childsplay.png' alt='childsplay'></a>
17292 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=drgeo'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/drgeo.png' alt='drgeo'></a>
17293 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=gcompris'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/gcompris.png' alt='gcompris'></a>
17294 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=geogebra'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/geogebra.png' alt='geogebra'></a>
17295 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=geomview'>[geomview]</a>
17296 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=grace'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/grace.png' alt='grace'></a>
17297 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=graphmonkey'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/graphmonkey.png' alt='graphmonkey'></a>
17298 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=graphthing'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/graphthing.png' alt='graphthing'></a>
17299 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=kalgebra'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/kalgebra.png' alt='kalgebra'></a>
17300 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=kbruch'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/kbruch.png' alt='kbruch'></a>
17301 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=kig'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/kig.png' alt='kig'></a>
17302 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=kmplot'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/kmplot.png' alt='kmplot'></a>
17303 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=mathwar'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/mathwar.png' alt='mathwar'></a>
17304 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=rocs'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/rocs.png' alt='rocs'></a>
17305 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=scratch'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/scratch.png' alt='scratch'></a>
17306 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=tuxmath'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/tuxmath.png' alt='tuxmath'></a>
17307 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=xabacus'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/xabacus.png' alt='xabacus'></a>
17308 </p>
17309
17310 <p><strong>field::physics</strong></p>
17311 <p>
17312 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=gcompris'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/gcompris.png' alt='gcompris'></a>
17313 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=step'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/step.png' alt='step'></a>
17314 </p>
17315
17316 <p><strong>field::TODO</strong></p>
17317 <p>
17318 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=blinken'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/blinken.png' alt='blinken'></a>
17319 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=cgoban'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/cgoban.png' alt='cgoban'></a>
17320 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=childsplay'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/childsplay.png' alt='childsplay'></a>
17321 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=gcompris'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/gcompris.png' alt='gcompris'></a>
17322 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=gnuchess'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/gnuchess.png' alt='gnuchess'></a>
17323 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=gnugo'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/gnugo.png' alt='gnugo'></a>
17324 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=gtans'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/gtans.png' alt='gtans'></a>
17325 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=ktouch'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/ktouch.png' alt='ktouch'></a>
17326 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=librecad'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/librecad.png' alt='librecad'></a>
17327 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=scratch'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/scratch.png' alt='scratch'></a>
17328 </p>
17329
17330 <p>In total, 61 applications. 3 of them lacked screen shots on
17331 <a href="http://screenshot.debian.net">screenshot.debian.net</a>. If
17332 you know of some packages we should install by default, please let us
17333 know on <a href="irc://irc.debian.org/%23debian-edu">IRC, #debian-edu
17334 on irc.debian.org</a>, or our
17335 <a href="http://lists.debian.org/debian-edu/">mailing list
17336 debian-edu@</a>.</p>
17337
17338 </div>
17339 <div class="tags">
17340
17341
17342 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
17343
17344
17345 </div>
17346 </div>
17347 <div class="padding"></div>
17348
17349 <div class="entry">
17350 <div class="title">
17351 <a href="http://people.skolelinux.org/pere/blog/How_to_install_Linux_on_a_Packard_Bell_Easynote_LV_preinstalled_with_Windows_8.html">How to install Linux on a Packard Bell Easynote LV preinstalled with Windows 8</a>
17352 </div>
17353 <div class="date">
17354 27th May 2013
17355 </div>
17356 <div class="body">
17357 <p>Two days ago, I asked
17358 <a href="http://people.skolelinux.org/pere/blog/How_can_I_install_Linux_on_a_Packard_Bell_Easynote_LV_preinstalled_with_Windows_8_.html">how
17359 I could install Linux on a Packard Bell EasyNote LV computer
17360 preinstalled with Windows 8</a>. I found a solution, but am horrified
17361 with the obstacles put in the way of Linux users on a laptop with UEFI
17362 and Windows 8.</p>
17363
17364 <p>I never found out if the cause of my problems were the use of UEFI
17365 secure booting or fast boot. I suspect fast boot was the problem,
17366 causing the firmware to boot directly from HD without considering any
17367 key presses and alternative devices, but do not know UEFI settings
17368 enough to tell.</p>
17369
17370 <p>There is no way to install Linux on the machine in question without
17371 opening the box and disconnecting the hard drive! This is as far as I
17372 can tell, the only way to get access to the firmware setup menu
17373 without accepting the Windows 8 license agreement. I am told (and
17374 found description on how to) that it is possible to configure the
17375 firmware setup once booted into Windows 8. But as I believe the terms
17376 of that agreement are completely unacceptable, accepting the license
17377 was never an alternative. I do not enter agreements I do not intend
17378 to follow.</p>
17379
17380 <p>I feared I had to return the laptops and ask for a refund, and
17381 waste many hours on this, but luckily there was a way to get it to
17382 work. But I would not recommend it to anyone planning to run Linux on
17383 it, and I have become sceptical to Windows 8 certified laptops. Is
17384 this the way Linux will be forced out of the market place, by making
17385 it close to impossible for "normal" users to install Linux without
17386 accepting the Microsoft Windows license terms? Or at least not
17387 without risking to loose the warranty?</p>
17388
17389 <p>I've updated the
17390 <a href="http://www.linlap.com/packard_bell_easynote_lv">Linux Laptop
17391 wiki page for Packard Bell EasyNote LV</a>, to ensure the next person
17392 do not have to struggle as much as I did to get Linux into the
17393 machine.</p>
17394
17395 <p>Thanks to Bob Rosbag, Florian Weimer, Philipp Kern, Ben Hutching,
17396 Michael Tokarev and others for feedback and ideas.</p>
17397
17398 </div>
17399 <div class="tags">
17400
17401
17402 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>.
17403
17404
17405 </div>
17406 </div>
17407 <div class="padding"></div>
17408
17409 <div class="entry">
17410 <div class="title">
17411 <a href="http://people.skolelinux.org/pere/blog/How_can_I_install_Linux_on_a_Packard_Bell_Easynote_LV_preinstalled_with_Windows_8_.html">How can I install Linux on a Packard Bell Easynote LV preinstalled with Windows 8?</a>
17412 </div>
17413 <div class="date">
17414 25th May 2013
17415 </div>
17416 <div class="body">
17417 <p>I've run into quite a problem the last few days. I bought three
17418 new laptops for my parents and a few others. I bought Packard Bell
17419 Easynote LV to run Kubuntu on and use as their home computer. But I
17420 am completely unable to figure out how to install Linux on it. The
17421 computer is preinstalled with Windows 8, and I suspect it uses UEFI
17422 instead of a BIOS to boot.</p>
17423
17424 <p>The problem is that I am unable to get it to PXE boot, and unable
17425 to get it to boot the Linux installer from my USB stick. I have yet
17426 to try the DVD install, and still hope it will work. when I turn on
17427 the computer, there is no information on what buttons to press to get
17428 the normal boot menu. I expect to get some boot menu to select PXE or
17429 USB stick booting. When booting, it first ask for the language to
17430 use, then for some regional settings, and finally if I will accept the
17431 Windows 8 terms of use. As these terms are completely unacceptable to
17432 me, I have no other choice but to turn off the computer and try again
17433 to get it to boot the Linux installer.</p>
17434
17435 <p>I have gathered my findings so far on a Linlap page about the
17436 <a href="http://www.linlap.com/packard_bell_easynote_lv">Packard Bell
17437 EasyNote LV</a> model. If you have any idea how to get Linux
17438 installed on this machine, please get in touch or update that wiki
17439 page. If I can't find a way to install Linux, I will have to return
17440 the laptop to the seller and find another machine for my parents.</p>
17441
17442 <p>I wonder, is this the way Linux will be forced out of the market
17443 using UEFI and "secure boot" by making it impossible to install Linux
17444 on new Laptops?</p>
17445
17446 </div>
17447 <div class="tags">
17448
17449
17450 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>.
17451
17452
17453 </div>
17454 </div>
17455 <div class="padding"></div>
17456
17457 <div class="entry">
17458 <div class="title">
17459 <a href="http://people.skolelinux.org/pere/blog/How_to_transform_a_Debian_based_system_to_a_Debian_Edu_installation.html">How to transform a Debian based system to a Debian Edu installation</a>
17460 </div>
17461 <div class="date">
17462 17th May 2013
17463 </div>
17464 <div class="body">
17465 <p><a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a> is
17466 an operating system based on Debian intended for use in schools. It
17467 contain a turn-key solution for the computer network provided to
17468 pupils in the primary schools. It provide both the central server,
17469 network boot servers and desktop environments with heaps of
17470 educational software. The project was founded almost 12 years ago,
17471 2001-07-02. If you want to support the project, which is in need for
17472 cash to fund developer gatherings and other project related activity,
17473 <a href="http://www.linuxiskolen.no/slxdebianlabs/donations.html">please
17474 donate some money</a>.
17475
17476 <p>A topic that come up again and again on the Debian Edu mailing
17477 lists and elsewhere, is the question on how to transform a Debian or
17478 Ubuntu installation into a Debian Edu installation. It isn't very
17479 hard, and last week I wrote a script to replicate the steps done by
17480 the Debian Edu installer.</p>
17481
17482 <p>The script,
17483 <a href="http://anonscm.debian.org/viewvc/debian-edu/branches/wheezy/debian-edu-config/share/debian-edu-config/tools/debian-edu-bless?view=markup">debian-edu-bless<a/>
17484 in the debian-edu-config package, will go through these six steps and
17485 transform an existing Debian Wheezy or Ubuntu (untested) installation
17486 into a Debian Edu Workstation:</p>
17487
17488 <ol>
17489
17490 <li>Add skolelinux related APT sources.</li>
17491 <li>Create /etc/debian-edu/config with the wanted configuration.</li>
17492 <li>Install debian-edu-install to load preseeding values and pull in
17493 our configuration.</li>
17494 <li>Preseed debconf database with profile setup in
17495 /etc/debian-edu/config, and run tasksel to install packages
17496 according to the profile specified in the config above,
17497 overriding some of the Debian automation machinery.</li>
17498 <li>Run debian-edu-cfengine-D installation to configure everything
17499 that could not be done using preseeding.</li>
17500 <li>Ask for a reboot to enable all the configuration changes.</li>
17501
17502 </ol>
17503
17504 <p>There are some steps in the Debian Edu installation that can not be
17505 replicated like this. Disk partitioning and LVM setup, for example.
17506 So this script just assume there is enough disk space to install all
17507 the needed packages.</p>
17508
17509 <p>The script was created to help a Debian Edu student working on
17510 setting up <a href="http://www.raspberrypi.org">Raspberry Pi</a> as a
17511 Debian Edu client, and using it he can take the existing
17512 <a href="http://www.raspbian.org/FrontPage‎">Raspbian</a> installation and
17513 transform it into a fully functioning Debian Edu Workstation (or
17514 Roaming Workstation, or whatever :).</p>
17515
17516 <p>The default setting in the script is to create a KDE Workstation.
17517 If a LXDE based Roaming workstation is wanted instead, modify the
17518 PROFILE and DESKTOP values at the top to look like this instead:</p>
17519
17520 <p><pre>
17521 PROFILE="Roaming-Workstation"
17522 DESKTOP="lxde"
17523 </pre></p>
17524
17525 <p>The script could even become useful to set up Debian Edu servers in
17526 the cloud, by starting with a virtual Debian installation at some
17527 virtual hosting service and setting up all the services on first
17528 boot.</p>
17529
17530 </div>
17531 <div class="tags">
17532
17533
17534 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
17535
17536
17537 </div>
17538 </div>
17539 <div class="padding"></div>
17540
17541 <div class="entry">
17542 <div class="title">
17543 <a href="http://people.skolelinux.org/pere/blog/Second_alpha_release_of_Debian_Edu___Skolelinux_based_on_Debian_Wheezy.html">Second alpha release of Debian Edu / Skolelinux based on Debian Wheezy</a>
17544 </div>
17545 <div class="date">
17546 14th May 2013
17547 </div>
17548 <div class="body">
17549 <p>The <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux
17550 project</a> is making great progress and made its second Wheezy based
17551 release today. This is the release announcement:</p>
17552
17553 <p><strong>New features for Debian Edu 7.0.0 alpha1 released
17554 2013-05-14</strong></p>
17555
17556 <p>This is the release notes for for Debian Edu / Skolelinux 7.0.0 edu
17557 alpha1, based on <a href="http://www.debian.org">Debian</a> with
17558 codename "Wheezy".</p>
17559
17560 <p><strong>About Debian Edu and Skolelinux</strong></p>
17561
17562 <p>Debian Edu, also known as Skolelinux, is a Linux distribution based
17563 on Debian providing an out-of-the box environment of a completely
17564 configured school network. Immediatly after installation a school
17565 server running all services needed for a school network is set up just
17566 waiting for users and machines being added via GOsa², a comfortable
17567 Web-UI. A netbooting environment is prepared using PXE, so after
17568 initial installation of the main server from CD, DVD or USB stick all
17569 other machines can be installed via the network.</p>
17570
17571 <p>This is the first test release based on Wheezy (which currently is
17572 not released yet). Basically this is an updated and slightly improved
17573 version compared to the Squeeze release.</p>
17574
17575 <p><strong>Software updates</strong></p>
17576 <ul>
17577 <li>Install freemind (0.9.0) by default, and stop installing vym by
17578 default.</li>
17579 <li>Install chromium (26.0.1410.43) by default.</li>
17580 <li>Install goplay (0.5-1.1) to make golearn available by default.</li>
17581 <li>Updated support for Japanese input methods, now based on
17582 ibus-anthy.</li>
17583 </ul>
17584
17585 <p><strong>Other changes</strong></p>
17586 <ul>
17587
17588 <li>Switched default file system from ext3 to ext4 for speed and
17589 reliability improvements.</li>
17590 <li>Got rid of unwanted winbind daemon and PAM setup activated because
17591 of <a href="http://bugs.debian.org/706434">706434</a>.</li>
17592 <li>Extended and improved the testsuite tests to detect more possible
17593 problems.</li>
17594 <li>Corrected proxy handling to not set http_proxy to a bogus
17595 direct:// URL.</li>
17596 <li>Corrected proxy setup for diskless workstations.</li>
17597 <li>Corrected PXE setup to use our updated udebs during installation.</li>
17598 <li>Made installation handling of low entropy level more robust.</li>
17599 <li>Create larger partitions for Roaming workstations and Thin client
17600 servers, to make room for all the software installed.</li>
17601 <li>Fix bug in Roaming workstation PAM setup, making it impossible to
17602 log in (<a href="http://bugs.debian.org/706753">706753</a>).</li>
17603 </ul>
17604
17605 <p><strong>Known issues</strong></p>
17606 <ul>
17607
17608 <li>IP resolution for the local hostname give useless IPv6 address
17609 (<a href="http://bugs.debian.org/705900">705900</a>). Only install
17610 libnss-myhostname on roaming workstations until it is fixed.</li>
17611 <li>DVD images are not yet ready.</li>
17612 <li>No mass import of user account data in GOsa (ldif or csv)
17613 available yet (<a href="http://bugs.debian.org/698840">698840</a>).</li>
17614 <li>Missing artwork for the KDE desktop (and probably a few others).</li>
17615 <li>KDE Debian submenu lacks icons.</li>
17616 <li>LXDE menu lacks entry for changing GOsa password
17617 (website). Installing gosa-desktop will be an option.</li>
17618 <li>Backup configuration via web interface is impossible due to
17619 password submission problem
17620 (<a href="http://bugs.debian.org/700257">700257</a>).</li>
17621
17622 </ul>
17623
17624 <p><strong>Where to get it</strong></p>
17625
17626 <p>To download the multiarch netinstall CD release you can use</p>
17627 <ul>
17628
17629 <li><a href="ftp://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu~7.0+edu0~a1-CD.iso">ftp://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu~7.0+edu0~a1-CD.iso</a></li>
17630 <li><a href="http://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu~7.0+edu0~a1-CD.iso">http://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu~7.0+edu0~a1-CD.iso</a></li>
17631 <li>rsync -avzP ftp.skolelinux.org::skolelinux-cd/wheezy/debian-edu~7.0+edu0~a1-CD.iso debian-edu~7.0+edu0~a1-CD.iso</li>
17632
17633 </ul>
17634
17635 <p>The MD5SUM of this image is: 685ed76c1aa8e44b12d3fde21faf450b</p>
17636
17637 <p>The SHA1SUM of this image is: 6c874de157024da13e115bab29c068080a11ec4c</p>
17638
17639 <p><strong>How to report bugs</strong></p>
17640
17641 <p><a href="http://wiki.debian.org/DebianEdu/HowTo/ReportBugs">http://wiki.debian.org/DebianEdu/HowTo/ReportBugs</a></p>
17642
17643 </div>
17644 <div class="tags">
17645
17646
17647 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
17648
17649
17650 </div>
17651 </div>
17652 <div class="padding"></div>
17653
17654 <div class="entry">
17655 <div class="title">
17656 <a href="http://people.skolelinux.org/pere/blog/Debian__the_Linux_distribution_of_choice_for_LEGO_designers_.html">Debian, the Linux distribution of choice for LEGO designers?</a>
17657 </div>
17658 <div class="date">
17659 11th May 2013
17660 </div>
17661 <div class="body">
17662 <P>In January,
17663 <a href="http://people.skolelinux.org/pere/blog/New_IRC_channel_for_LEGO_designers_using_Debian.html">I
17664 announced a</a> new <a href="irc://irc.debian.org/%23debian-lego">IRC
17665 channel #debian-lego</a>, for those of us in the Debian and Linux
17666 community interested in <a href="http://www.lego.com/">LEGO</a>, the
17667 marvellous construction system from Denmark. We also created
17668 <a href="http://wiki.debian.org/LegoDesigners">a wiki page</a> to have
17669 a place to take notes and write down our plans and hopes. And several
17670 people showed up to help. I was very happy to see the effect of my
17671 call. Since the small start, we have a debtags tag
17672 <a href="http://debtags.debian.net/search/bytag?wl=hardware::hobby:lego">hardware::hobby:lego</a>
17673 tag for LEGO related packages, and now count 10 packages related to
17674 LEGO and <a href="http://mindstorms.lego.com/">Mindstorms</a>:</p>
17675
17676 <p><table>
17677 <tr><td><a href="http://packages.qa.debian.org/brickos">brickos</a></td><td>alternative OS for LEGO Mindstorms RCX. Supports development in C/C++</td></tr>
17678 <tr><td><a href="http://packages.qa.debian.org/leocad">leocad</a></td><td>virtual brick CAD software</td></tr>
17679 <tr><td><a href="http://packages.qa.debian.org/libnxt">libnxt</a></td><td>utility library for talking to the LEGO Mindstorms NX</td></tr>
17680 <tr><td><a href="http://packages.qa.debian.org/lnpd">lnpd</a></td><td>daemon for LNP communication with BrickOS</td></tr>
17681 <tr><td><a href="http://packages.qa.debian.org/nbc">nbc</a></td><td>compiler for LEGO Mindstorms NXT bricks</td></tr>
17682 <tr><td><a href="http://packages.qa.debian.org/nqc">nqc</a></td><td>Not Quite C compiler for LEGO Mindstorms RCX</td></tr>
17683 <tr><td><a href="http://packages.qa.debian.org/python-nxt">python-nxt</a></td><td>python driver/interface/wrapper for the Lego Mindstorms NXT robot</td></tr>
17684 <tr><td><a href="http://packages.qa.debian.org/python-nxt-filer">python-nxt-filer</a></td><td>simple GUI to manage files on a LEGO Mindstorms NXT</td></tr>
17685 <tr><td><a href="http://packages.qa.debian.org/scratch">scratch</a></td><td>easy to use programming environment for ages 8 and up</td></tr>
17686 <tr><td><a href="http://packages.qa.debian.org/t2n">t2n</a></td><td>simple command-line tool for Lego NXT</td></tr>
17687 </table></p>
17688
17689 <p>Some of these are available in Wheezy, and all but one are
17690 currently available in Jessie/testing. leocad is so far only
17691 available in experimental.</p>
17692
17693 <p>If you care about LEGO in Debian, please join us on IRC and help
17694 adding the rest of the great free software tools available on Linux
17695 for LEGO designers.</p>
17696
17697 </div>
17698 <div class="tags">
17699
17700
17701 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/lego">lego</a>, <a href="http://people.skolelinux.org/pere/blog/tags/robot">robot</a>.
17702
17703
17704 </div>
17705 </div>
17706 <div class="padding"></div>
17707
17708 <div class="entry">
17709 <div class="title">
17710 <a href="http://people.skolelinux.org/pere/blog/Debian_Wheezy_is_out___and_Debian_Edu___Skolelinux_should_soon_follow___newinwheezy.html">Debian Wheezy is out - and Debian Edu / Skolelinux should soon follow! #newinwheezy</a>
17711 </div>
17712 <div class="date">
17713 5th May 2013
17714 </div>
17715 <div class="body">
17716 <p>When I woke up this morning, I was very happy to see that the
17717 <a href="http://www.debian.org/News/2013/20130504">release announcement
17718 for Debian Wheezy</a> was waiting in my mail box. This is a great
17719 Debian release, and I expect to move my machines at home over to it fairly
17720 soon.</p>
17721
17722 <p>The new debian release contain heaps of new stuff, and one program
17723 in particular make me very happy to see included. The
17724 <a href="http://scratch.mit.edu/">Scratch</a> program, made famous by
17725 the <a href="http://www.code.org/">Teach kids code</a> movement, is
17726 included for the first time. Alongside similar programs like
17727 <a href="http://edu.kde.org/kturtle/">kturtle</a> and
17728 <a href="http://wiki.sugarlabs.org/go/Activities/Turtle_Art">turtleart</a>,
17729 it allow for visual programming where syntax errors can not happen,
17730 and a friendly programming environment for learning to control the
17731 computer. Scratch will also be included in the next release of Debian
17732 Edu.</a>
17733
17734 <p>And now that Wheezy is wrapped up, we can wrap up the next Debian
17735 Edu/Skolelinux release too. The
17736 <a href="http://lists.debian.org/debian-edu/2013/04/msg00132.html">first
17737 alpha release</a> went out last week, and the next should soon
17738 follow.<p>
17739
17740 </div>
17741 <div class="tags">
17742
17743
17744 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
17745
17746
17747 </div>
17748 </div>
17749 <div class="padding"></div>
17750
17751 <div class="entry">
17752 <div class="title">
17753 <a href="http://people.skolelinux.org/pere/blog/First_alpha_release_of_Debian_Edu___Skolelinux_based_on_Debian_Wheezy.html">First alpha release of Debian Edu / Skolelinux based on Debian Wheezy</a>
17754 </div>
17755 <div class="date">
17756 26th April 2013
17757 </div>
17758 <div class="body">
17759 <p>The Debian Edu / Skolelinux project is still going strong and made
17760 its first Wheezy based release today. This is the release
17761 announcement:</p>
17762
17763 <p><strong>New features for Debian Edu ~7.0.0 alpha0 released
17764 2013-04-26</strong></p>
17765
17766 <p>This is the release notes for for Debian Edu / Skolelinux ~7.0.0
17767 edu alpha0, based on Debian with codename "Wheezy".</p>
17768
17769 <p><strong>About Debian Edu and Skolelinux</strong></p>
17770
17771 <p><a href="http://www.skolelinux.org/">Debian Edu, also known as
17772 Skolelinux</a>, is a Linux distribution based on Debian providing an
17773 out-of-the box environment of a completely configured school
17774 network. Immediatly after installation a school server running all
17775 services needed for a school network is set up just waiting for users
17776 and machines being added via GOsa², a comfortable Web-UI. A netbooting
17777 environment is prepared using PXE, so after initial installation of
17778 the main server from CD, DVD or USB stick all other machines can be
17779 installed via the network.</p>
17780
17781 <p>This is the first test release based on Wheezy (which currently is
17782 not released yet). Basically this is an updated and slightly improved
17783 version compared to the Squeeze release.</p>
17784
17785 <p><strong>Software updates</strong></p>
17786
17787 <ul>
17788 <li>Everything which is new in Debian Wheezy, eg:
17789 <ul>
17790 <li>Linux kernel 3.2.x</li>
17791 <li>Desktop environments KDE "Plasma" 4.8.4, GNOME 3.4, and LXDE 4
17792 (KDE is installed by default; to choose GNOME or LXDE: see
17793 manual.)</li>
17794 <li>Web browser Iceweasel 10 ESR</li>
17795 <li>LibreOffice 3.5.4</li>
17796 <li>LTSP 5.4.2</li>
17797 <li>GOsa 2.7.4</li>
17798 <li>CUPS print system 1.5.3</li>
17799 <li>Educational toolbox GCompris 12.01</li>
17800 <li>Music creator Rosegarden 12.04</li>
17801 <li>Image editor Gimp 2.8.2</li>
17802 <li>Virtual universe Celestia 1.6.1</li>
17803 <li>Virtual stargazer Stellarium 0.11.3</li>
17804 <li>Scratch visual programming environment 1.4.0.6</li>
17805 <li>New version of debian-installer from Debian Wheezy, see
17806 <a href="http://www.debian.org/releases/wheezy/installmanual">installation
17807 manual</a> for more details.</li>
17808 <li>Debian Wheezy includes about 37000 packages available for
17809 installation.</li>
17810 <li>More information about Debian Wheezy 7.0 is provided in the
17811 <a href="http://www.debian.org/releases/wheezy/releasenotes">release notes</a> and the <a href="http://www.debian.org/releases/wheezy/installmanual">installation manual</a>.</li>
17812 </ul></li>
17813 </ul>
17814
17815 <p><strong>Documentation</strong></p>
17816 <ul>
17817 <li>The (<a href="http://wiki.debian.org/DebianEdu/Documentation/Wheezy">English</a>) Debian Edu Wheezy Manual is fully translated to
17818 German, French, Italian and Danish. Partly translated versions exist
17819 for Norwegian Bokmal and Spanish.</li>
17820 </ul>
17821
17822 <p><Strong>LDAP related changes</strong></p>
17823 <ul>
17824 <li>Slight changes to some objects and acls to have more types to
17825 choose from when adding systems in GOsa. Now systems can be of type
17826 server, workstation, printer, terminal or netdevice.</li>
17827 </ul>
17828
17829 <p><strong>Other changes</strong></p>
17830 <ul>
17831 <li>LTSP clients start as diskless workstation / thin client can be
17832 configured via command line argument -- or individually adding an
17833 entry in lts.conf or LDAP.<li>
17834 <li>GOsa gui: Now some options that seemed to be available, but are non
17835 functional, are greyed out (or are not clickable). Some tabs are
17836 completely hidden to the end user, others even to the GOsa admin.</li>
17837 </ul>
17838
17839 <p><strong>Regressions</strong></p>
17840 <ul>
17841 <li>No mass import of user account data in GOsa (ldif or csv) available
17842 yet.</li>
17843 </ul>
17844
17845 <p><strong>No updated artwork</strong></p>
17846
17847 <ul>
17848 <li>Updated artwork which is visible during installation, in the login
17849 screen and as desktop wallpaper is still missing or the same as we
17850 had for our Squeeze based release.</li>
17851 </ul>
17852
17853 <p><strong>Where to get it</strong></p>
17854
17855 To download the multiarch netinstall CD release you can use
17856 <ul>
17857 <li><a href="ftp://ftp.skolelinux.org/skolelinux-cd/wheezy/">ftp://ftp.skolelinux.org/skolelinux-cd/wheezy/</a></li>
17858 <li><a href="http://ftp.skolelinux.org/skolelinux-cd/wheezy/">http://ftp.skolelinux.org/skolelinux-cd/wheezy/</a></li>
17859 <li>rsync -avzP ftp.skolelinux.org::skolelinux-cd/wheezy/</li>
17860 </ul>
17861
17862 <p>The MD5SUM of this image is: c5e773ddafdaa4f48c409c682f598b6c</p>
17863
17864 <p>The SHA1SUM of this image is: 25934fabb9b7d20235499a0a51f08ce6c54215f2</p>
17865
17866 <p><strong>How to report bugs</strong></p>
17867
17868 <p><a href="http://wiki.debian.org/DebianEdu/HowTo/ReportBugs">http://wiki.debian.org/DebianEdu/HowTo/ReportBugs</a></p>
17869
17870 </div>
17871 <div class="tags">
17872
17873
17874 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
17875
17876
17877 </div>
17878 </div>
17879 <div class="padding"></div>
17880
17881 <div class="entry">
17882 <div class="title">
17883 <a href="http://people.skolelinux.org/pere/blog/First_Debian_Edu___Skolelinux_developer_gathering_in_2013_take_place_in_Trondheim.html">First Debian Edu / Skolelinux developer gathering in 2013 take place in Trondheim</a>
17884 </div>
17885 <div class="date">
17886 16th April 2013
17887 </div>
17888 <div class="body">
17889 <p>This years first <a href="http://www.skolelinux.org/">Skolelinux /
17890 Debian Edu</a> developer gathering take place the coming weekend in Trondheim.
17891 Details about the gathering can be found
17892 <a href="http://www.friprogramvareiskolen.no/Gathering/2013-04-19-21-Trondheim">on
17893 the FRiSK wiki</a>. The dates are 19-21th of April 2013, and online
17894 participation for those unable to make it in person is very welcome,
17895 and I plan to participate online myself as I could not leave Oslo this
17896 weekend.</p>
17897
17898 <p>The focus of the gathering is to work on the web pages and project
17899 infrastructure, and to continue the work on the Wheezy based Debian
17900 Edu release.</p>
17901
17902 <p>See you on <a href="irc://irc.debian.org/%23debian-edu">IRC, #debian-edu on irc.debian.org,</a> then?</p>
17903
17904 </div>
17905 <div class="tags">
17906
17907
17908 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
17909
17910
17911 </div>
17912 </div>
17913 <div class="padding"></div>
17914
17915 <div class="entry">
17916 <div class="title">
17917 <a href="http://people.skolelinux.org/pere/blog/Isenkram_0_2_finally_in_the_Debian_archive.html">Isenkram 0.2 finally in the Debian archive</a>
17918 </div>
17919 <div class="date">
17920 3rd April 2013
17921 </div>
17922 <div class="body">
17923 <p>Today the <a href="http://packages.qa.debian.org/isenkram">Isenkram
17924 package</a> finally made it into the archive, after lingering in NEW
17925 for many months. I uploaded it to the Debian experimental suite
17926 2013-01-27, and today it was accepted into the archive.</p>
17927
17928 <p>Isenkram is a system for suggesting to users what packages to
17929 install to work with a pluggable hardware device. The suggestion pop
17930 up when the device is plugged in. For example if a Lego Mindstorm NXT
17931 is inserted, it will suggest to install the program needed to program
17932 the NXT controller. Give it a go, and report bugs and suggestions to
17933 BTS. :)</p>
17934
17935 </div>
17936 <div class="tags">
17937
17938
17939 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>.
17940
17941
17942 </div>
17943 </div>
17944 <div class="padding"></div>
17945
17946 <div class="entry">
17947 <div class="title">
17948 <a href="http://people.skolelinux.org/pere/blog/Change_the_font__save_the_world__and_save_some_money_in_the_process_.html">Change the font, save the world (and save some money in the process)</a>
17949 </div>
17950 <div class="date">
17951 26th March 2013
17952 </div>
17953 <div class="body">
17954 <p>Would you like to help the environment and save money at the same
17955 time, without much sacrifice? A small step could be to change the
17956 font you use when printing.</p>
17957
17958 <p>Three years ago,
17959 <a href="http://arstechnica.com/business/2010/04/last-year-printer-comparison-website/">Ars
17960 Technica</a> reported how the University of Wisconsin-Green Bay
17961 changed their default front from
17962 <a href="http://en.wikipedia.org/wiki/Arial">Arial</a> to
17963 <a href="http://en.wikipedia.org/wiki/Century_Gothic">Century
17964 Gothic</a> to save money. The Century Gothic font uses 30% less toner
17965 than Arial to print the same text. In other word, you could cut your
17966 toner costs by 30% (or actually, increase your toner supply life time
17967 by more than 30%), by simply changing the default font used in your
17968 prints.</p>
17969
17970 <p>But it is not quite obvious how much one will save by switching.
17971 The University of Wisconsin-Green Bay said it used $100,000 per year
17972 on ink and toner cartridges, according to
17973 <a href="http://www.twincities.com/ci_14833097">a report from
17974 TwinCities.com</a>, and expected to save between $5,000 and $10,000
17975 per year by asking staff and students to use a different font. Not
17976 all PDFs and documents are created internally, and those from external
17977 sources will most likely still use a different font. Also, the
17978 Century Gothic font is slightly wider than Arial, and thus might use
17979 more sheets of paper to print the same text, so the total saving
17980 depend on the documents printed.</p>
17981
17982 <p>But it is definitely something to consider, if you want to reduce
17983 the amount of trash, decrease the amount of toner used in the world,
17984 and save some money in the process.</p>
17985
17986 <p>Update 2013-04-10: If you want to know how much ink/toner could be
17987 saved when switching between fonts, Inkfarm got a
17988 <a href="http://www.inkfarm.com/What-the-Font">service to calculate the
17989 difference between font pairs</a>. They also
17990 <a href="http://www.inkfarm.com/Recommended-Ink-Saving-Fonts---">recommend
17991 which fonts to use</a> to save ink. Check it out. :) While updating
17992 this blog post, I also came across a blog post from InkCloners,
17993 <a href="http://inkcloners.com/blog/ink-cartridges/change-fonts-to-save-ink-costs/">listing
17994 the fonts they recommend</a>, with Centory Gothic at the top.</p>
17995
17996 </div>
17997 <div class="tags">
17998
17999
18000 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
18001
18002
18003 </div>
18004 </div>
18005 <div class="padding"></div>
18006
18007 <div class="entry">
18008 <div class="title">
18009 <a href="http://people.skolelinux.org/pere/blog/Typesetting_a_short_story_using_docbook_for_PDF__HTML_and_EPUB.html">Typesetting a short story using docbook for PDF, HTML and EPUB</a>
18010 </div>
18011 <div class="date">
18012 24th March 2013
18013 </div>
18014 <div class="body">
18015 <p>A few days ago, during a discussion in
18016 <a href="http://www.efn.no/">EFN</a> about interesting books to read
18017 about copyright and the data retention directive, a suggestion to read
18018 the 1968 short story Kodémus by
18019 <a href="http://web2.gyldendal.no/toraage/">Tore Åge Bringsværd</a>
18020 came up. The text was only available in old paper books, and thus not
18021 easily available for current and future generations. Some of the
18022 people participating in the discussion contacted the author, and
18023 reported back 2013-03-19 that the author was OK with releasing the
18024 short story using a <a href="http://www.creativecommons.org/">Creative
18025 Commons</a> license. The text was quickly scanned and OCR-ed, and we
18026 were ready to start on the editing and typesetting.</p>
18027
18028 <p>As I already had some experience formatting text in my project to
18029 provide a Norwegian version of the Free Culture book by Lawrence
18030 Lessig, I chipped in and set up a
18031 <a href="http://www.docbook.org/">DocBook</a> processing framework to
18032 generate PDF, HTML and EPUB version of the short story. The tools to
18033 transform DocBook to different formats are already in my Linux
18034 distribution of choice, <a href="http://www.debian.org/">Debian</a>, so
18035 all I had to do was to use the
18036 <a href="http://dblatex.sourceforge.net/">dblatex</a>,
18037 <a href="http://docbook.sourceforge.net/release/xsl/current/epub/README">dbtoepub</a>
18038 and <a href="https://fedorahosted.org/xmlto/">xmlto</a> tools to do the
18039 conversion. After a few days, we decided to replace dblatex with
18040 xsltproc/fop (aka
18041 <a href="http://wiki.docbook.org/DocBookXslStylesheets">docbook-xsl</a>),
18042 to get the copyright information to show up in the PDF and to get a
18043 nicer &lt;variablelist&gt; typesetting, but that is just a minor
18044 technical detail.</p>
18045
18046 <p>There were a few challenges, of course. We want to typeset the
18047 short story to look like the original, and that require fairly good
18048 control over the layout. The original short story have three
18049 parts/scenes separated by a single horizontally centred star (*), and
18050 the paragraphs do not contain only flowing text, but dialogs and text
18051 that started on a new line in the middle of the paragraph.</p>
18052
18053 <p>I initially solved the first challenge by using a paragraph with a
18054 single star in it, ie &lt;para&gt;*&lt;/para&gt;, but it made sure a
18055 placeholder indicated where the scene shifted. This did not look too
18056 good without the centring. The next approach was to create a new
18057 preprocessor directive &lt;?newscene?&gt;, mapping to "&lt;hr/&gt;"
18058 for HTML and "&lt;fo:block text-align="center"&gt;&lt;fo:leader
18059 leader-pattern="rule" rule-thickness="0.5pt"/&gt;&lt;/fo:block&gt;"
18060 for FO/PDF output (did not try to implement this in dblatex, as we had
18061 switched at this time). The HTML XSL file looked like this:</p>
18062
18063 <p><blockquote><pre>
18064 &lt;?xml version='1.0'?&gt;
18065 &lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'&gt;
18066 &lt;xsl:template match="processing-instruction('newscene')"&gt;
18067 &lt;hr/&gt;
18068 &lt;/xsl:template&gt;
18069 &lt;/xsl:stylesheet&gt;
18070 </pre></blockquote></p>
18071
18072 <p>And the FO/PDF XSL file looked like this:</p>
18073
18074 <p><blockquote><pre>
18075 &lt;?xml version='1.0'?&gt;
18076 &lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'&gt;
18077 &lt;xsl:template match="processing-instruction('newscene')"&gt;
18078 &lt;fo:block text-align="center"&gt;
18079 &lt;fo:leader leader-pattern="rule" rule-thickness="0.5pt"/&gt;
18080 &lt;/fo:block&gt;
18081 &lt;/xsl:template&gt;
18082 &lt;/xsl:stylesheet&gt;
18083 </pre></blockquote></p>
18084
18085 <p>Finally, I came across the &lt;bridgehead&gt; tag, which seem to be
18086 a good fit for the task at hand, and I replaced &lt;?newscene?&gt;
18087 with &lt;bridgehead&gt;*&lt;/bridgehead&gt;. It isn't centred, but we
18088 can fix it with some XSL rule if the current visual layout isn't
18089 enough.</p>
18090
18091 <p>I did not find a good DocBook compliant way to solve the
18092 linebreak/paragraph challenge, so I ended up creating a new processor
18093 directive &lt;?linebreak?&gt;, mapping to &lt;br/&gt; in HTML, and
18094 &lt;fo:block/&gt; in FO/PDF. I suspect there are better ways to do
18095 this, and welcome ideas and patches on github. The HTML XSL file now
18096 look like this:</p>
18097
18098 <p><blockquote><pre>
18099 &lt;?xml version='1.0'?&gt;
18100 &lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'&gt;
18101 &lt;xsl:template match="processing-instruction('linebreak)"&gt;
18102 &lt;br/&gt;
18103 &lt;/xsl:template&gt;
18104 &lt;/xsl:stylesheet&gt;
18105 </pre></blockquote></p>
18106
18107 <p>And the FO/PDF XSL file looked like this:</p>
18108
18109 <p><blockquote><pre>
18110 &lt;?xml version='1.0'?&gt;
18111 &lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'
18112 xmlns:fo="http://www.w3.org/1999/XSL/Format"&gt;
18113 &lt;xsl:template match="processing-instruction('linebreak)"&gt;
18114 &lt;fo:block/&gt;
18115 &lt;/xsl:template&gt;
18116 &lt;/xsl:stylesheet&gt;
18117 </pre></blockquote></p>
18118
18119 <p>One unsolved challenge is our wish to expose different ISBN numbers
18120 per publication format, while keeping all of them in some conditional
18121 structure in the DocBook source. No idea how to do this, so we ended
18122 up listing all the ISBN numbers next to their format in the colophon
18123 page.</p>
18124
18125 <p>If you want to check out the finished result, check out the
18126 <a href="https://github.com/sickel/kodemus">source repository at
18127 github</a>
18128 (<a href="https://github.com/EFN/kodemus">future/new/official
18129 repository</a>). We expect it to be ready and announced in a few
18130 days.</p>
18131
18132 </div>
18133 <div class="tags">
18134
18135
18136 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>.
18137
18138
18139 </div>
18140 </div>
18141 <div class="padding"></div>
18142
18143 <div class="entry">
18144 <div class="title">
18145 <a href="http://people.skolelinux.org/pere/blog/Skolelinux_6_got_a_video_review_from_Pcwizz.html">Skolelinux 6 got a video review from Pcwizz</a>
18146 </div>
18147 <div class="date">
18148 17th March 2013
18149 </div>
18150 <div class="body">
18151 <p>Via
18152 <a href="https://twitter.com/pcwizz/status/313044373262716930">twitter</a>
18153 I just discovered that <a href="http://pcwizz.net/">Pcwizz</a> have
18154 done a <a href="http://www.youtube.com/watch?v=wPzTZ61Pcuc">video
18155 review</a> on Youtube of <a href="http://www.skolelinux.org/">Skolelinux
18156 / Debian Edu</a> version 6. He installed the standalone profile and
18157 the video show a walk-through of of the menu content, demonstration of
18158 a few programs and his view of our distribution.</p>
18159
18160 <p>There is also some really nice quotes (transcribed by me, might
18161 have heard wrong). While looking thought the Graphics menu:</p>
18162
18163 <blockquote>
18164 "Basically everything you ever need in a school environment."
18165 </blockquote>
18166
18167 <p>And as a general evaluation of the entire distribution:</p>
18168
18169 <blockquote>
18170 "So, yeah, a bit bloated. It kept all the Debian stuff in there, just
18171 to keep it nice and GNU. So, I do not want to go on about it, but
18172 lets give it 7 out of 10. I am not going to use it. That is because
18173 I am not deploying a school network. There may be some mythical
18174 feature to help you deploy Skolelinux on a school network."
18175 </blockquote>
18176
18177 <p>To bad he did not test the server profile, and discovered the PXE
18178 installation option. It make it possible to install only the main
18179 server from CD, and the rest of the machines via the net, and might be
18180 considered the mythical feature he talk about. :)</p>
18181
18182 <p>While looking through the menus, there is also this funny comment
18183 about the part of the K menu generated from the Debian menu subsystem:
18184
18185 <blockquote>
18186 "[The K menu] have a special Debian section for software that no-one
18187 is going to look at, because it contain lots of junky stuff that you
18188 actually don't need in the education distribution, but have just been
18189 included because it isn't stripped out for some reason."
18190 </blockquote>
18191
18192 <p>I guess it is yet another argument for merging the Debian menu and
18193 Gnome/KDE desktop menu entries into
18194 <a href="http://wiki.debian.org/Proposals/DebianMenuUsingDesktopEntries">one
18195 consistent menu system</a> instead of two incomplete and partly
18196 inconsistent menu systems.</p>
18197
18198 <p>The entire video is available below for those accepting iframe
18199 embedding:</p>
18200
18201 <iframe width="560" height="315" src="http://www.youtube.com/embed/wPzTZ61Pcuc" frameborder="0" allowfullscreen></iframe>
18202
18203 </div>
18204 <div class="tags">
18205
18206
18207 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</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>.
18208
18209
18210 </div>
18211 </div>
18212 <div class="padding"></div>
18213
18214 <div class="entry">
18215 <div class="title">
18216 <a href="http://people.skolelinux.org/pere/blog/First_Skolelinux___Debian_Edu_Squeeze_update_released.html">First Skolelinux / Debian Edu Squeeze update released</a>
18217 </div>
18218 <div class="date">
18219 8th March 2013
18220 </div>
18221 <div class="body">
18222 <p>Last Sunday, 2013-03-03,, Holger Levsen announced the first update
18223 of <a href="http://www.skolelinux.org/">Skolelinux / Debian Edu</a>
18224 based on Debian Squeeze. This is the first update since
18225 <a href="http://lists.debian.org/debian-edu-announce/2012/03/msg00001.html">the
18226 initial release 2012-03-11</a>. This is the
18227 <a href="http://lists.debian.org/debian-edu-announce/2013/03/msg00000.html">release
18228 announcement email from Holger</a>:</p>
18229
18230 <blockquote><p>Hi,</p>
18231
18232 <p>it's my pleasure to announce the immediate availability of Debian
18233 Edu 6.0.7+r1 ("Debian Edu Squeeze").</p>
18234
18235 <p>Debian Edu 6.0.7+r1 is an incremental update to Debian Edu
18236 6.0.4+r0, containing all the changes between Debian 6.0.4 and 6.0.7 as
18237 well Debian Edu specific bugfixes and enhancements. See below (in this
18238 mail) for the full list of (edu) changes. Please see
18239 <a href="http://www.debian.org/News/2012/20120311">http://www.debian.org/News/2012/20120311</a>
18240 for more information on "Debian Edu Squeeze".</p>
18241
18242 <p>Images are available for download at
18243 <a href="http://ftp.skolelinux.org/skolelinux-cd/">http://ftp.skolelinux.org/skolelinux-cd/</a></p>
18244
18245 <p>md5sums:
18246 <br>1fe79eb4f0f9ae1c58fc318e26cc1e2e debian-edu-6.0.7+r1-CD.iso
18247 <br>a6ddd924a8bd9a1b5ca122e8fe1c34ec debian-edu-6.0.7+r1-DVD.iso
18248 <br>ac6c72cd7925ccec51bfbf58e2a7c69c debian-edu-6.0.7+r1-source-DVD.iso</p>
18249
18250 <p>sha1sums:
18251 <br>a4b58233b672a99c7df8dc24fb6de3327654a5c3 debian-edu-6.0.7+r1-CD.iso
18252 <br>9b524915e0ff2aa793f13d93123e5bd2bab2dbaa debian-edu-6.0.7+r1-DVD.iso
18253 <br>43997614893fc5e9e59ad6ce066b05d07fd836fa debian-edu-6.0.7+r1-source-DVD.iso</p>
18254
18255 <p>These images are suitable for amd64+i386.</p>
18256
18257 <p>Changes for Debian Edu 6.0.7+r1 Codename "Squeeze", released
18258 2013-03-03:</p>
18259
18260 <ul>
18261 <li>sitesummary was updated from 0.1.3 to 0.1.8
18262 <ul>
18263 <li>Make Nagios configuration more robust and efficient</li>
18264 <li>Comply with 3.X kernel</li>
18265 </ul></li>
18266 <li>debian-edu-doc from 1.4~20120310~6.0.4+r0 to 1.4~20130228~6.0.7+r1
18267 <ul>
18268 <li>Minor updates from the wiki</li>
18269 <li>Danish translation now complete</li>
18270 </ul></li>
18271 <li>debian-edu-config from 1.453 to 1.455
18272 <ul>
18273 <li>Fix /etc/hosts for LTSP diskless workstations. Closes: #699880</li>
18274 <li>Make ltsp_local_mount script work for multiple devices.</li>
18275 <li>Correct Kerberos user policy: don't expire password after 2 days.
18276 Closes: #664596</li>
18277 <li>Handle '#' characters in the root or first users password.
18278 Closes: #664976</li>
18279 <li>Fixes for gosa-sync:
18280 <ul>
18281 <li>Don't fail if password contains "</li>
18282 <li>Don't disclose new password string in syslog</li>
18283 </ul></li>
18284 <li>Fixes for gosa-create:
18285 <ul>
18286 <li>Invalidate libnss cache before applying changes</li>
18287 <li>Multiple failures during mass user import into GOsa²</li>
18288 <li>gosa-netgroups plugin: don't erase entries of attribute type
18289 "memberNisNetgroup". Closes: #687256</li>
18290 <li>First user now uses the same Kerberos policy as all other users</li>
18291 </ul></li>
18292 <li>Add Danish web page</li>
18293 </ul>
18294 <li>debian-edu-install from 1.528 to 1.530
18295 <ul>
18296 <li>Improve preseeding support and documentation</li>
18297 </ul></li>
18298 </ul>
18299
18300 <p>End-user documentation in English is available at
18301 <a href="http://wiki.debian.org/DebianEdu/Documentation/Squeeze/">http://wiki.debian.org/DebianEdu/Documentation/Squeeze/</a>
18302 - translations to French, Italian, Danish and German are available in
18303 the debian-edu-doc package. (Other languages could use your help!)</p>
18304
18305 <p>If you want to contribute to Debian Edu, please join our
18306 mailinglist
18307 <a href="http://lists.debian.org/debian-edu/">debian-edu@lists.debian.org</a>!
18308 </p></blockquote>
18309
18310 <p>I am very happy to see the fruits of a year of hard work. :)</p>
18311
18312 </div>
18313 <div class="tags">
18314
18315
18316 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
18317
18318
18319 </div>
18320 </div>
18321 <div class="padding"></div>
18322
18323 <div class="entry">
18324 <div class="title">
18325 <a href="http://people.skolelinux.org/pere/blog/Frikanalen___Complete_TV_station_organised_using_the_web.html">Frikanalen - Complete TV station organised using the web</a>
18326 </div>
18327 <div class="date">
18328 3rd March 2013
18329 </div>
18330 <div class="body">
18331 <p>Do you want to set up your own TV station, schedule videos and
18332 broadcast them on the air? Using free software? With video on demand
18333 support using
18334 <a href="http://www.digistan.org/open-standard:definition">free and
18335 open standards</a>? Included a web based video stream as well? And
18336 administrate it all in your web browser from anywhere in the world? A
18337 few years now the Norwegian public access TV-channel
18338 <a href="http://www.frikanalen.no/">Frikanalen</a> have been building a
18339 system to do just this. The source code for the solution is licensed
18340 using the GNU LGPL, and
18341 <a href="http://github.com/Frikanalen">available from github</a>.</p>
18342
18343 <p>The idea is simple. You upload a video file over the web, and
18344 attach meta information to the file. You select a time slot in the
18345 program schedule, and when the time come it is played on the air and
18346 in the web stream. It is also made available in a video on demand
18347 solution for anyone to see it also outside its scheduled time. All
18348 you need to run a TV station - using your web browser.</p>
18349
18350 <p>There are several parts to this web based solution. I'll mention
18351 the three most important ones. The first part is the database of
18352 videos and the schedule. This is written in Django and include a REST
18353 API. The current database is SQLite, but the plan is to migrate it to
18354 PostgreSQL. At the moment this system can be tested on
18355 <a href="http://beta.frikanalen.tv/">beta.frikanalen.tv</a>. The
18356 second part is the video playout, taking the schedule information from
18357 the database and providing a video stream to broadcast. This is done
18358 using <a href="http://www.casparcg.com/">CasparCG from SVT</a> and
18359 <a href="http://www.mltframework.org/">Media Lovin' Toolkit</a>. Video
18360 signal distribution is handled using
18361 <a href="http://www.ob-encoder.com/">Open Broadcast Encoder</a>. The
18362 third part is the converter, handling the transformation of uploaded
18363 video files to a format useful for broadcasting, streaming and video
18364 on demand. It is still very much work in progress, so it is not yet
18365 decided what it will end up using. Note that the source of the latter
18366 two parts are not yet pushed to github. The lead author want to clean
18367 them up a bit more first.</p>
18368
18369 <p>The development is coordinated on the
18370 <a href="irc://irc.freenode.net/%23frikanalen">#frikanalen IRC
18371 channel</a> (irc.freenode.net), and discussed on
18372 <a href="http://lists.nuug.no/mailman/listinfo/frikanalen">the
18373 frikanalen mailing list</a>. The lead developer is Benjamin Bruheim
18374 (phed on IRC). Anyone is welcome to participate in the
18375 development.</p>
18376
18377 </div>
18378 <div class="tags">
18379
18380
18381 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
18382
18383
18384 </div>
18385 </div>
18386 <div class="padding"></div>
18387
18388 <div class="entry">
18389 <div class="title">
18390 <a href="http://people.skolelinux.org/pere/blog/Dr__Richard_Stallman__founder_of_Free_Software_Foundation__give_a_talk_in_Oslo_March_1st_2013.html">Dr. Richard Stallman, founder of Free Software Foundation, give a talk in Oslo March 1st 2013</a>
18391 </div>
18392 <div class="date">
18393 27th February 2013
18394 </div>
18395 <div class="body">
18396 <p>Dr. <a href="http://www.stallman.org/">Richard Stallman</a>,
18397 founder of <a href="http://www.fsf.org/">Free Software Foundation</a>,
18398 is giving <a href="http://www.nuug.no/aktiviteter/20130301-rms/">a
18399 talk in Oslo March 1st 2013 17:00 to 19:00</a>. The event is public
18400 and organised by <a href="">Norwegian Unix Users Group (NUUG)</a>
18401 (where I am the chair of the board) and
18402 <a href="http://www.friprog.no/">The Norwegian Open Source Competence
18403 Center</a>. The title of the talk is «The Free Software Movement and
18404 GNU», with this description:
18405
18406 <p><blockquote>
18407 The Free Software Movement campaigns for computer users' freedom to
18408 cooperate and control their own computing. The Free Software Movement
18409 developed the GNU operating system, typically used together with the
18410 kernel Linux, specifically to make these freedoms possible.
18411 </blockquote></p>
18412
18413 <p>The meeting is open for everyone. Due to space limitations, the
18414 doors opens for NUUG members at 16:15, and everyone else at 16:45. I
18415 am really curious how many will show up. See
18416 <a href="http://www.nuug.no/aktiviteter/20130301-rms/">the event
18417 page</a> for the location details.</p>
18418
18419 </div>
18420 <div class="tags">
18421
18422
18423 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>.
18424
18425
18426 </div>
18427 </div>
18428 <div class="padding"></div>
18429
18430 <div class="entry">
18431 <div class="title">
18432 <a href="http://people.skolelinux.org/pere/blog/Frikart___Free_Garmin_maps_for_European_countries_based_on_OpenStreetmap.html">Frikart - Free Garmin maps for European countries based on OpenStreetmap</a>
18433 </div>
18434 <div class="date">
18435 15th February 2013
18436 </div>
18437 <div class="body">
18438 <p>If you, like me, want an updated a map for your Garmin GPS, there is
18439 now a great source of free maps available from
18440 <a href="http://www.frikart.no/garmin/index.html">Frikart</a>. To
18441 download a map, just click on the country you are interested in, and
18442 download the map type you want. There are 8 different maps available,
18443 using different colours and data selection. Pick one of Roadmap, Topo
18444 Summer, Topo Winter, Roadmap II, Topo Summer II, Topo Winter II,
18445 "Trails - overlay map" and "Cross country - overlay map" (see the web
18446 page for descriptions).</p>
18447
18448 <p>The maps are updated weekly, so if you find something wrong in the
18449 map you can just edit the
18450 <a href="http://www.openstreetmap.org/">OpenStreetmap</a> map source
18451 (anyone can contribute) and fetch a fixed map a week later. :)</p>
18452
18453 </div>
18454 <div class="tags">
18455
18456
18457 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/kart">kart</a>.
18458
18459
18460 </div>
18461 </div>
18462 <div class="padding"></div>
18463
18464 <div class="entry">
18465 <div class="title">
18466 <a href="http://people.skolelinux.org/pere/blog/_Electronic__paper_invoices___using_vCard_in_a_QR_code.html">"Electronic" paper invoices - using vCard in a QR code</a>
18467 </div>
18468 <div class="date">
18469 12th February 2013
18470 </div>
18471 <div class="body">
18472 <p>Here in Norway, electronic invoices are spreading, and the
18473 <a href="http://www.anskaffelser.no/e-handel/faktura">solution promoted
18474 by the Norwegian government</a> require that invoices are sent through
18475 one of the approved facilitators, and it is not possible to send
18476 electronic invoices without an agreement with one of these
18477 facilitators. This seem like a needless limitation to be able to
18478 transfer invoice information between buyers and sellers. My preferred
18479 solution would be to just transfer the invoice information directly
18480 between seller and buyer, for example using SMTP, or some HTTP based
18481 protocol like REST or SOAP. But this might also be overkill, as the
18482 "electronic" information can be transferred using paper invoices too,
18483 using a simple bar code. My bar code encoding of choice would be QR
18484 codes, as this encoding can be read by any smart phone out there. The
18485 content of the code could be anything, but I would go with
18486 <a href="http://en.wikipedia.org/wiki/VCard">the vCard format</a>, as
18487 it too is supported by a lot of computer equipment these days.</p>
18488
18489 <p>The vCard format support extentions, and the invoice specific
18490 information can be included using such extentions. For example an
18491 invoice from SLX Debian Labs (picked because we
18492 <a href="http://www.linuxiskolen.no/slxdebianlabs/donations.html">ask
18493 for donations to the Debian Edu project</a> and thus have bank account
18494 information publicly available) for NOK 1000.00 could have these extra
18495 fields:</p>
18496
18497 <p><pre>
18498 X-INVOICE-NUMBER:1
18499 X-INVOICE-AMOUNT:NOK1000.00
18500 X-INVOICE-KID:123412341234
18501 X-INVOICE-MSG:Donation to Debian Edu
18502 X-BANK-ACCOUNT-NUMBER:16040884339
18503 X-BANK-IBAN-NUMBER:NO8516040884339
18504 X-BANK-SWIFT-NUMBER:DNBANOKKXXX
18505 </pre></p>
18506
18507 <p>The X-BANK-ACCOUNT-NUMBER field was proposed in a stackoverflow
18508 answer regarding
18509 <a href="http://stackoverflow.com/questions/10045664/storing-bank-account-in-vcard-file">how
18510 to put bank account information into a vCard</a>. For payments in
18511 Norway, either X-INVOICE-KID (payment ID) or X-INVOICE-MSG could be
18512 used to pass on information to the seller when paying the invoice.</p>
18513
18514 <p>The complete vCard could look like this:</p>
18515
18516 <p><pre>
18517 BEGIN:VCARD
18518 VERSION:2.1
18519 ORG:SLX Debian Labs Foundation
18520 ADR;WORK:;;Gunnar Schjelderups vei 29D;OSLO;;0485;Norway
18521 URL;WORK:http://www.linuxiskolen.no/slxdebianlabs/
18522 EMAIL;PREF;INTERNET:sdl-styret@rt.nuug.no
18523 REV:20130212T095000Z
18524 X-INVOICE-NUMBER:1
18525 X-INVOICE-AMOUNT:NOK1000.00
18526 X-INVOICE-MSG:Donation to Debian Edu
18527 X-BANK-ACCOUNT-NUMBER:16040884339
18528 X-BANK-IBAN-NUMBER:NO8516040884339
18529 X-BANK-SWIFT-NUMBER:DNBANOKKXXX
18530 END:VCARD
18531 </pre></p>
18532
18533 <p>The resulting QR code created using
18534 <a href="http://fukuchi.org/works/qrencode/">qrencode</a> would look
18535 like this, and should be readable (and thus checkable) by any smart
18536 phone, or for example the <a href="http://zbar.sourceforge.net/">zbar
18537 bar code reader</a> and feed right into the approval and accounting
18538 system.</p>
18539
18540 <p><img src="http://people.skolelinux.org/pere/blog/images/2013-02-12-qr-invoice.png"></p>
18541
18542 <p>The extension fields will most likely not show up in any normal
18543 vCard reader, so those parts would have to go directly into a system
18544 handling invoices. I am a bit unsure how vCards without name parts
18545 are handled, but a simple test indicate that this work just fine.</p>
18546
18547 <p><strong>Update 2013-02-12 11:30</strong>: Added KID to the proposal
18548 based on feedback from Sturle Sunde.</p>
18549
18550 </div>
18551 <div class="tags">
18552
18553
18554 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>.
18555
18556
18557 </div>
18558 </div>
18559 <div class="padding"></div>
18560
18561 <div class="entry">
18562 <div class="title">
18563 <a href="http://people.skolelinux.org/pere/blog/Sleep_until_morning___home_automation_for_the_kids.html">Sleep until morning - home automation for the kids</a>
18564 </div>
18565 <div class="date">
18566 10th February 2013
18567 </div>
18568 <div class="body">
18569 <p><img align="left" style="margin-right:25px;" src="http://people.skolelinux.org/pere/blog/images/2013-02-10-morning-light.jpeg"></p>
18570
18571 <p>With kids in the house, one challenge is getting them to sleep
18572 during the night and wake up when it is morning. I mean, when I
18573 believe it is morning, and not two hours earlier. In our household we
18574 have decided that 07:00 is the turning point, but getting the kids to
18575 sleep until 07:00 is a small challenge every day. They have adapted
18576 quite well, and rarely wake up at 05:00 any more, but some times wake
18577 up at times like 05:50, 06:15, 06:30 or 06:45, and it is hard to put
18578 the awake one to bed again without disturbing and waking the rest.
18579 And I understand perfectly well that they fail to sleep until 07:00
18580 some times, as there is no way for them to know if it is before or
18581 after the magic moment without coming and asking us parents.</p>
18582
18583 <p>But yesterday I came up with a method to solve this problem. It
18584 involve home automation. A few years ago I bought a
18585 <a href="http://www.telldus.se/products/tellstick">Tellstick</a> and RF
18586 switches at the local <a href="http://www.clasohlson.com/">Clas
18587 Ohlson</a> shop, allowing me to control lights and other electrical
18588 gadgets using my Linux server. When I moved from the old flat to a
18589 small house, I put away all this equipment as most of the lighting in
18590 the house was not using wall sockets and thus not easy to connect to
18591 the gadgets I had. But recently I bought a
18592 <a href="http://www.telldus.se/products/tellstick_net">Tellstick
18593 Net</a> to be able to read sensor input as well as control power
18594 sockets. I want to control ovens in the basement to avoid the pipes
18595 to freeze, and monitor the humidity to detect flooding. The default
18596 setup for Tellstick Net is to be controlled by the vendor web service,
18597 which to me is a security problem, but it is also possible to build
18598 ones own
18599 <a href="http://developer.telldus.com/blog/2012/03/02/help-us-develop-local-access-using-tellstick-net-build-your-own-firmware">firmware
18600 with local access</A> instead of being controlled by a Swedish
18601 company, thanks to the release of the GPL licensed firmware source
18602 code. I plan to get that running before I let it control anything
18603 important. But while working on this, one idea to make it easier for
18604 the kids came to me yesterday. We can set up a night light controlled
18605 by the computer, and turn it automatically on at 07:00. The kids can
18606 then check the light in the morning to know if they are supposed to
18607 get up or not. They joined me in setting everything up, and I
18608 repeated the concept several times before bed times to make sure they
18609 remembered to check the light before getting up in the morning.</p>
18610
18611 <p>We tested it this morning, and all the kids stayed in bed until
18612 after 07:00, and every one of them commented on the fact that the
18613 "morning light" was turned on and signalled that the morning had
18614 arrived. So this look like a success, and I am excited to see how
18615 this develops the next few days. :) I really hope this can allow us
18616 all to sleep a bit longer in the morning.</p>
18617
18618 <p>A nice advantage of this setup is that we can remote control when
18619 to tell the kids to get up. We do not have to wait until 07:00, and
18620 can also delay it if we want to.</p>
18621
18622 </div>
18623 <div class="tags">
18624
18625
18626 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
18627
18628
18629 </div>
18630 </div>
18631 <div class="padding"></div>
18632
18633 <div class="entry">
18634 <div class="title">
18635 <a href="http://people.skolelinux.org/pere/blog/Bitcoin_GUI_now_available_from_Debian_unstable__and_Ubuntu_raring_.html">Bitcoin GUI now available from Debian/unstable (and Ubuntu/raring)</a>
18636 </div>
18637 <div class="date">
18638 2nd February 2013
18639 </div>
18640 <div class="body">
18641 <p>My
18642 <a href="http://people.skolelinux.org/pere/blog/How_to_backport_bitcoin_qt_version_0_7_2_2_to_Debian_Squeeze.html">last
18643 bitcoin related blog post</a> mentioned that the new
18644 <a href="http://packages.qa.debian.org/bitcoin">bitcoin package</a> for
18645 Debian was waiting in NEW. It was accepted by the Debian ftp-masters
18646 2013-01-19, and have been available in unstable since then. It was
18647 automatically copied to Ubuntu, and is available in their Raring
18648 version too.</p>
18649
18650 <p>But there is a strange problem with the build that block this new
18651 version from being available on the i386 and kfreebsd-i386
18652 architectures. For some strange reason, the autobuilders in Debian
18653 for these architectures fail to run the test suite on these
18654 architectures (<a href="http://bugs.debian.org/672524">BTS #672524</a>).
18655 We are so far unable to reproduce it when building it manually, and
18656 no-one have been able to propose a fix. If you got an idea what is
18657 failing, please let us know via the BTS.</p>
18658
18659 <p>One feature that is annoying me with of the bitcoin client, because
18660 I often run low on disk space, is the fact that the client will exit
18661 if it run short on space (<a href="http://bugs.debian.org/696715">BTS
18662 #696715</a>). So make sure you have enough disk space when you run
18663 it. :)</p>
18664
18665 <p>As usual, if you use bitcoin and want to show your support of my
18666 activities, please send Bitcoin donations to my address
18667 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
18668
18669 </div>
18670 <div class="tags">
18671
18672
18673 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
18674
18675
18676 </div>
18677 </div>
18678 <div class="padding"></div>
18679
18680 <div class="entry">
18681 <div class="title">
18682 <a href="http://people.skolelinux.org/pere/blog/Welcome_to_the_world__Isenkram_.html">Welcome to the world, Isenkram!</a>
18683 </div>
18684 <div class="date">
18685 22nd January 2013
18686 </div>
18687 <div class="body">
18688 <p>Yesterday, I
18689 <a href="http://people.skolelinux.org/pere/blog/First_prototype_ready_making_hardware_easier_to_use_in_Debian.html">asked
18690 for testers</a> for my prototype for making Debian better at handling
18691 pluggable hardware devices, which I
18692 <a href="http://people.skolelinux.org/pere/blog/Lets_make_hardware_dongles_easier_to_use_in_Debian.html">set
18693 out to create</a> earlier this month. Several valuable testers showed
18694 up, and caused me to really want to to open up the development to more
18695 people. But before I did this, I want to come up with a sensible name
18696 for this project. Today I finally decided on a new name, and I have
18697 renamed the project from hw-support-handler to this new name. In the
18698 process, I moved the source to git and made it available as a
18699 <a href="http://anonscm.debian.org/gitweb/?p=collab-maint/isenkram.git">collab-maint</a>
18700 repository in Debian. The new name? It is <strong>Isenkram</strong>.
18701 To fetch and build the latest version of the source, use</p>
18702
18703 <pre>
18704 git clone http://anonscm.debian.org/git/collab-maint/isenkram.git
18705 cd isenkram && git-buildpackage -us -uc
18706 </pre>
18707
18708 <p>I have not yet adjusted all files to use the new name yet. If you
18709 want to hack on the source or improve the package, please go ahead.
18710 But please talk to me first on IRC or via email before you do major
18711 changes, to make sure we do not step on each others toes. :)</p>
18712
18713 <p>If you wonder what 'isenkram' is, it is a Norwegian word for iron
18714 stuff, typically meaning tools, nails, screws, etc. Typical hardware
18715 stuff, in other words. I've been told it is the Norwegian variant of
18716 the German word eisenkram, for those that are familiar with that
18717 word.</p>
18718
18719 <p><strong>Update 2013-01-26</strong>: Added -us -us to build
18720 instructions, to avoid confusing people with an error from the signing
18721 process.</p>
18722
18723 <p><strong>Update 2013-01-27</strong>: Switch to HTTP URL for the git
18724 clone argument to avoid the need for authentication.</p>
18725
18726 </div>
18727 <div class="tags">
18728
18729
18730 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>.
18731
18732
18733 </div>
18734 </div>
18735 <div class="padding"></div>
18736
18737 <div class="entry">
18738 <div class="title">
18739 <a href="http://people.skolelinux.org/pere/blog/First_prototype_ready_making_hardware_easier_to_use_in_Debian.html">First prototype ready making hardware easier to use in Debian</a>
18740 </div>
18741 <div class="date">
18742 21st January 2013
18743 </div>
18744 <div class="body">
18745 <p>Early this month I set out to try to
18746 <a href="http://people.skolelinux.org/pere/blog/Lets_make_hardware_dongles_easier_to_use_in_Debian.html">improve
18747 the Debian support for pluggable hardware devices</a>. Now my
18748 prototype is working, and it is ready for a larger audience. To test
18749 it, fetch the
18750 <a href="http://anonscm.debian.org/viewvc/debian-edu/trunk/src/hw-support-handler/">source
18751 from the Debian Edu subversion repository</a>, build and install the
18752 package. You might have to log out and in again activate the
18753 autostart script.</p>
18754
18755 <p>The design is simple:</p>
18756
18757 <ul>
18758
18759 <li>Add desktop entry in /usr/share/autostart/ causing a program
18760 hw-support-handlerd to start when the user log in.</li>
18761
18762 <li>This program listen for kernel events about new hardware (directly
18763 from the kernel like udev does), not using HAL dbus events as I
18764 initially did.</li>
18765
18766 <li>When new hardware is inserted, look up the hardware modalias in
18767 the APT database, a database
18768 <a href="http://anonscm.debian.org/viewvc/debian-edu/trunk/src/hw-support-handler/modaliases?view=markup">available
18769 via HTTP</a> and a database available as part of the package.</li>
18770
18771 <li>If a package is mapped to the hardware in question, the package
18772 isn't installed yet and this is the first time the hardware was
18773 plugged in, show a desktop notification suggesting to install the
18774 package or packages.</li>
18775
18776 <li>If the user click on the 'install package now' button, ask
18777 aptdaemon via the PackageKit API to install the requrired package.</li>
18778
18779 <li>aptdaemon ask for root password or sudo password, and install the
18780 package while showing progress information in a window.</li>
18781
18782 </ul>
18783
18784 <p>I still need to come up with a better name for the system. Here
18785 are some screen shots showing the prototype in action. First the
18786 notification, then the password request, and finally the request to
18787 approve all the dependencies. Sorry for the Norwegian Bokmål GUI.</p>
18788
18789 <p><img src="http://people.skolelinux.org/pere/blog/images/2013-01-21-hw-support-1-notification.png">
18790 <br><img src="http://people.skolelinux.org/pere/blog/images/2013-01-21-hw-support-2-password.png">
18791 <br><img src="http://people.skolelinux.org/pere/blog/images/2013-01-21-hw-support-3-dependencies.png">
18792 <br><img src="http://people.skolelinux.org/pere/blog/images/2013-01-21-hw-support-4-installing.png">
18793 <br><img src="http://people.skolelinux.org/pere/blog/images/2013-01-21-hw-support-5-installing-details.png" width="70%"></p>
18794
18795 <p>The prototype still need to be improved with longer timeouts, but
18796 is already useful. The database of hardware to package mappings also
18797 need more work. It is currently compatible with the Ubuntu way of
18798 storing such information in the package control file, but could be
18799 changed to use other formats instead or in addition to the current
18800 method. I've dropped the use of discover for this mapping, as the
18801 modalias approach is more flexible and easier to use on Linux as long
18802 as the Linux kernel expose its modalias strings directly.</p>
18803
18804 <p><strong>Update 2013-01-21 16:50</strong>: Due to popular demand,
18805 here is the command required to check out and build the source: Use
18806 '<tt>svn checkout
18807 svn://svn.debian.org/debian-edu/trunk/src/hw-support-handler/; cd
18808 hw-support-handler; debuild</tt>'. If you lack debuild, install the
18809 devscripts package.</p>
18810
18811 <p><strong>Update 2013-01-23 12:00</strong>: The project is now
18812 renamed to Isenkram and the source moved from the Debian Edu
18813 subversion repository to a Debian collab-maint git repository. See
18814 <a href="http://people.skolelinux.org/pere/blog/Welcome_to_the_world__Isenkram_.html">build
18815 instructions</a> for details.</p>
18816
18817 </div>
18818 <div class="tags">
18819
18820
18821 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>.
18822
18823
18824 </div>
18825 </div>
18826 <div class="padding"></div>
18827
18828 <div class="entry">
18829 <div class="title">
18830 <a href="http://people.skolelinux.org/pere/blog/Thank_you_Thinkpad_X41__for_your_long_and_trustworthy_service.html">Thank you Thinkpad X41, for your long and trustworthy service</a>
18831 </div>
18832 <div class="date">
18833 19th January 2013
18834 </div>
18835 <div class="body">
18836 <p>This Christmas my trusty old laptop died. It died quietly and
18837 suddenly in bed. With a quiet whimper, it went completely quiet and
18838 black. The power button was no longer able to turn it on. It was a
18839 IBM Thinkpad X41, and the best laptop I ever had. Better than both
18840 Thinkpads X30, X31, X40, X60, X61 and X61S. Far better than the
18841 Compaq I had before that. Now I need to find a replacement. To keep
18842 going during Christmas, I moved the one year old SSD disk to my old
18843 X40 where it fitted (only one I had left that could use it), but it is
18844 not a durable solution.
18845
18846 <p>My laptop needs are fairly modest. This is my wishlist from when I
18847 got a new one more than 10 years ago. It still holds true.:)</p>
18848
18849 <ul>
18850
18851 <li>Lightweight (around 1 kg) and small volume (preferably smaller
18852 than A4).</li>
18853 <li>Robust, it will be in my backpack every day.</li>
18854 <li>Three button mouse and a mouse pin instead of touch pad.</li>
18855 <li>Long battery life time. Preferable a week.</li>
18856 <li>Internal WIFI network card.</li>
18857 <li>Internal Twisted Pair network card.</li>
18858 <li>Some USB slots (2-3 is plenty)</li>
18859 <li>Good keyboard - similar to the Thinkpad.</li>
18860 <li>Video resolution at least 1024x768, with size around 12" (A4 paper
18861 size).</li>
18862 <li>Hardware supported by Debian Stable, ie the default kernel and
18863 X.org packages.</li>
18864 <li>Quiet, preferably fan free (or at least not using the fan most of
18865 the time).
18866
18867 </ul>
18868
18869 <p>You will notice that there are no RAM and CPU requirements in the
18870 list. The reason is simply that the specifications on laptops the
18871 last 10-15 years have been sufficient for my needs, and I have to look
18872 at other features to choose my laptop. But are there still made as
18873 robust laptops as my X41? The Thinkpad X60/X61 proved to be less
18874 robust, and Thinkpads seem to be heading in the wrong direction since
18875 Lenovo took over. But I've been told that X220 and X1 Carbon might
18876 still be useful.</p>
18877
18878 <p>Perhaps I should rethink my needs, and look for a pad with an
18879 external keyboard? I'll have to check the
18880 <a href="http://www.linux-laptop.net/">Linux Laptops site</a> for
18881 well-supported laptops, or perhaps just buy one preinstalled from one
18882 of the vendors listed on the <a href="http://linuxpreloaded.com/">Linux
18883 Pre-loaded site</a>.</p>
18884
18885 </div>
18886 <div class="tags">
18887
18888
18889 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>.
18890
18891
18892 </div>
18893 </div>
18894 <div class="padding"></div>
18895
18896 <div class="entry">
18897 <div class="title">
18898 <a href="http://people.skolelinux.org/pere/blog/How_to_find_a_browser_plugin_supporting_a_given_MIME_type.html">How to find a browser plugin supporting a given MIME type</a>
18899 </div>
18900 <div class="date">
18901 18th January 2013
18902 </div>
18903 <div class="body">
18904 <p>Some times I try to figure out which Iceweasel browser plugin to
18905 install to get support for a given MIME type. Thanks to
18906 <a href="https://wiki.ubuntu.com/MozillaTeam/Plugins">specifications
18907 done by Ubuntu</a> and Mozilla, it is possible to do this in Debian.
18908 Unfortunately, not very many packages provide the needed meta
18909 information, Anyway, here is a small script to look up all browser
18910 plugin packages announcing ther MIME support using this specification:</p>
18911
18912 <pre>
18913 #!/usr/bin/python
18914 import sys
18915 import apt
18916 def pkgs_handling_mimetype(mimetype):
18917 cache = apt.Cache()
18918 cache.open(None)
18919 thepkgs = []
18920 for pkg in cache:
18921 version = pkg.candidate
18922 if version is None:
18923 version = pkg.installed
18924 if version is None:
18925 continue
18926 record = version.record
18927 if not record.has_key('Npp-MimeType'):
18928 continue
18929 mime_types = record['Npp-MimeType'].split(',')
18930 for t in mime_types:
18931 t = t.rstrip().strip()
18932 if t == mimetype:
18933 thepkgs.append(pkg.name)
18934 return thepkgs
18935 mimetype = "audio/ogg"
18936 if 1 < len(sys.argv):
18937 mimetype = sys.argv[1]
18938 print "Browser plugin packages supporting %s:" % mimetype
18939 for pkg in pkgs_handling_mimetype(mimetype):
18940 print " %s" %pkg
18941 </pre>
18942
18943 <p>It can be used like this to look up a given MIME type:</p>
18944
18945 <pre>
18946 % ./apt-find-browserplug-for-mimetype
18947 Browser plugin packages supporting audio/ogg:
18948 gecko-mediaplayer
18949 % ./apt-find-browserplug-for-mimetype application/x-shockwave-flash
18950 Browser plugin packages supporting application/x-shockwave-flash:
18951 browser-plugin-gnash
18952 %
18953 </pre>
18954
18955 <p>In Ubuntu this mechanism is combined with support in the browser
18956 itself to query for plugins and propose to install the needed
18957 packages. It would be great if Debian supported such feature too. Is
18958 anyone working on adding it?</p>
18959
18960 <p><strong>Update 2013-01-18 14:20</strong>: The Debian BTS
18961 request for icweasel support for this feature is
18962 <a href="http://bugs.debian.org/484010">#484010</a> from 2008 (and
18963 <a href="http://bugs.debian.org/698426">#698426</a> from today). Lack
18964 of manpower and wish for a different design is the reason thus feature
18965 is not yet in iceweasel from Debian.</p>
18966
18967 </div>
18968 <div class="tags">
18969
18970
18971 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>.
18972
18973
18974 </div>
18975 </div>
18976 <div class="padding"></div>
18977
18978 <div class="entry">
18979 <div class="title">
18980 <a href="http://people.skolelinux.org/pere/blog/What_is_the_most_supported_MIME_type_in_Debian_.html">What is the most supported MIME type in Debian?</a>
18981 </div>
18982 <div class="date">
18983 16th January 2013
18984 </div>
18985 <div class="body">
18986 <p>The <a href="http://wiki.debian.org/AppStreamDebianProposal">DEP-11
18987 proposal to add AppStream information to the Debian archive</a>, is a
18988 proposal to make it possible for a Desktop application to propose to
18989 the user some package to install to gain support for a given MIME
18990 type, font, library etc. that is currently missing. With such
18991 mechanism in place, it would be possible for the desktop to
18992 automatically propose and install leocad if some LDraw file is
18993 downloaded by the browser.</p>
18994
18995 <p>To get some idea about the current content of the archive, I decided
18996 to write a simple program to extract all .desktop files from the
18997 Debian archive and look up the claimed MIME support there. The result
18998 can be found on the
18999 <a href="http://ftp.skolelinux.org/pub/AppStreamTest">Skolelinux FTP
19000 site</a>. Using the collected information, it become possible to
19001 answer the question in the title. Here are the 20 most supported MIME
19002 types in Debian stable (Squeeze), testing (Wheezy) and unstable (Sid).
19003 The complete list is available from the link above.</p>
19004
19005 <p><strong>Debian Stable:</strong></p>
19006
19007 <pre>
19008 count MIME type
19009 ----- -----------------------
19010 32 text/plain
19011 30 audio/mpeg
19012 29 image/png
19013 28 image/jpeg
19014 27 application/ogg
19015 26 audio/x-mp3
19016 25 image/tiff
19017 25 image/gif
19018 22 image/bmp
19019 22 audio/x-wav
19020 20 audio/x-flac
19021 19 audio/x-mpegurl
19022 18 video/x-ms-asf
19023 18 audio/x-musepack
19024 18 audio/x-mpeg
19025 18 application/x-ogg
19026 17 video/mpeg
19027 17 audio/x-scpls
19028 17 audio/ogg
19029 16 video/x-ms-wmv
19030 </pre>
19031
19032 <p><strong>Debian Testing:</strong></p>
19033
19034 <pre>
19035 count MIME type
19036 ----- -----------------------
19037 33 text/plain
19038 32 image/png
19039 32 image/jpeg
19040 29 audio/mpeg
19041 27 image/gif
19042 26 image/tiff
19043 26 application/ogg
19044 25 audio/x-mp3
19045 22 image/bmp
19046 21 audio/x-wav
19047 19 audio/x-mpegurl
19048 19 audio/x-mpeg
19049 18 video/mpeg
19050 18 audio/x-scpls
19051 18 audio/x-flac
19052 18 application/x-ogg
19053 17 video/x-ms-asf
19054 17 text/html
19055 17 audio/x-musepack
19056 16 image/x-xbitmap
19057 </pre>
19058
19059 <p><strong>Debian Unstable:</strong></p>
19060
19061 <pre>
19062 count MIME type
19063 ----- -----------------------
19064 31 text/plain
19065 31 image/png
19066 31 image/jpeg
19067 29 audio/mpeg
19068 28 application/ogg
19069 27 image/gif
19070 26 image/tiff
19071 26 audio/x-mp3
19072 23 audio/x-wav
19073 22 image/bmp
19074 21 audio/x-flac
19075 20 audio/x-mpegurl
19076 19 audio/x-mpeg
19077 18 video/x-ms-asf
19078 18 video/mpeg
19079 18 audio/x-scpls
19080 18 application/x-ogg
19081 17 audio/x-musepack
19082 16 video/x-ms-wmv
19083 16 video/x-msvideo
19084 </pre>
19085
19086 <p>I am told that PackageKit can provide an API to access the kind of
19087 information mentioned in DEP-11. I have not yet had time to look at
19088 it, but hope the PackageKit people in Debian are on top of these
19089 issues.</p>
19090
19091 <p><strong>Update 2013-01-16 13:35</strong>: Updated numbers after
19092 discovering a typo in my script.</p>
19093
19094 </div>
19095 <div class="tags">
19096
19097
19098 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>.
19099
19100
19101 </div>
19102 </div>
19103 <div class="padding"></div>
19104
19105 <div class="entry">
19106 <div class="title">
19107 <a href="http://people.skolelinux.org/pere/blog/Using_modalias_info_to_find_packages_handling_my_hardware.html">Using modalias info to find packages handling my hardware</a>
19108 </div>
19109 <div class="date">
19110 15th January 2013
19111 </div>
19112 <div class="body">
19113 <p>Yesterday, I wrote about the
19114 <a href="http://people.skolelinux.org/pere/blog/Modalias_strings___a_practical_way_to_map__stuff__to_hardware.html">modalias
19115 values provided by the Linux kernel</a> following my hope for
19116 <a href="http://people.skolelinux.org/pere/blog/Lets_make_hardware_dongles_easier_to_use_in_Debian.html">better
19117 dongle support in Debian</a>. Using this knowledge, I have tested how
19118 modalias values attached to package names can be used to map packages
19119 to hardware. This allow the system to look up and suggest relevant
19120 packages when I plug in some new hardware into my machine, and replace
19121 discover and discover-data as the database used to map hardware to
19122 packages.</p>
19123
19124 <p>I create a modaliases file with entries like the following,
19125 containing package name, kernel module name (if relevant, otherwise
19126 the package name) and globs matching the relevant hardware
19127 modalias.</p>
19128
19129 <p><blockquote>
19130 Package: package-name
19131 <br>Modaliases: module(modaliasglob, modaliasglob, modaliasglob)</p>
19132 </blockquote></p>
19133
19134 <p>It is fairly trivial to write code to find the relevant packages
19135 for a given modalias value using this file.</p>
19136
19137 <p>An entry like this would suggest the video and picture application
19138 cheese for many USB web cameras (interface bus class 0E01):</p>
19139
19140 <p><blockquote>
19141 Package: cheese
19142 <br>Modaliases: cheese(usb:v*p*d*dc*dsc*dp*ic0Eisc01ip*)</p>
19143 </blockquote></p>
19144
19145 <p>An entry like this would suggest the pcmciautils package when a
19146 CardBus bridge (bus class 0607) PCI device is present:</p>
19147
19148 <p><blockquote>
19149 Package: pcmciautils
19150 <br>Modaliases: pcmciautils(pci:v*d*sv*sd*bc06sc07i*)
19151 </blockquote></p>
19152
19153 <p>An entry like this would suggest the package colorhug-client when
19154 plugging in a ColorHug with USB IDs 04D8:F8DA:</p>
19155
19156 <p><blockquote>
19157 Package: colorhug-client
19158 <br>Modaliases: colorhug-client(usb:v04D8pF8DAd*)</p>
19159 </blockquote></p>
19160
19161 <p>I believe the format is compatible with the format of the Packages
19162 file in the Debian archive. Ubuntu already uses their Packages file
19163 to store their mappings from packages to hardware.</p>
19164
19165 <p>By adding a XB-Modaliases: header in debian/control, any .deb can
19166 announce the hardware it support in a way my prototype understand.
19167 This allow those publishing packages in an APT source outside the
19168 Debian archive as well as those backporting packages to make sure the
19169 hardware mapping are included in the package meta information. I've
19170 tested such header in the pymissile package, and its modalias mapping
19171 is working as it should with my prototype. It even made it to Ubuntu
19172 Raring.</p>
19173
19174 <p>To test if it was possible to look up supported hardware using only
19175 the shell tools available in the Debian installer, I wrote a shell
19176 implementation of the lookup code. The idea is to create files for
19177 each modalias and let the shell do the matching. Please check out and
19178 try the
19179 <a href="http://anonscm.debian.org/viewvc/debian-edu/trunk/src/hw-support-handler/hw-support-lookup?view=co">hw-support-lookup</a>
19180 shell script. It run without any extra dependencies and fetch the
19181 hardware mappings from the Debian archive and the subversion
19182 repository where I currently work on my prototype.</p>
19183
19184 <p>When I use it on a machine with a yubikey inserted, it suggest to
19185 install yubikey-personalization:</p>
19186
19187 <p><blockquote>
19188 % ./hw-support-lookup
19189 <br>yubikey-personalization
19190 <br>%
19191 </blockquote></p>
19192
19193 <p>When I run it on my Thinkpad X40 with a PCMCIA/CardBus slot, it
19194 propose to install the pcmciautils package:</p>
19195
19196 <p><blockquote>
19197 % ./hw-support-lookup
19198 <br>pcmciautils
19199 <br>%
19200 </blockquote></p>
19201
19202 <p>If you know of any hardware-package mapping that should be added to
19203 <a href="http://anonscm.debian.org/viewvc/debian-edu/trunk/src/hw-support-handler/modaliases?view=co">my
19204 database</a>, please tell me about it.</p>
19205
19206 <p>It could be possible to generate several of the mappings between
19207 packages and hardware. One source would be to look at packages with
19208 kernel modules, ie packages with *.ko files in /lib/modules/, and
19209 extract their modalias information. Another would be to look at
19210 packages with udev rules, ie packages with files in
19211 /lib/udev/rules.d/, and extract their vendor/model information to
19212 generate a modalias matching rule. I have not tested any of these to
19213 see if it work.</p>
19214
19215 <p>If you want to help implementing a system to let us propose what
19216 packages to install when new hardware is plugged into a Debian
19217 machine, please send me an email or talk to me on
19218 <a href="irc://irc.debian.org/%23debian-devel">#debian-devel</a>.</p>
19219
19220 </div>
19221 <div class="tags">
19222
19223
19224 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>.
19225
19226
19227 </div>
19228 </div>
19229 <div class="padding"></div>
19230
19231 <div class="entry">
19232 <div class="title">
19233 <a href="http://people.skolelinux.org/pere/blog/Modalias_strings___a_practical_way_to_map__stuff__to_hardware.html">Modalias strings - a practical way to map "stuff" to hardware</a>
19234 </div>
19235 <div class="date">
19236 14th January 2013
19237 </div>
19238 <div class="body">
19239 <p>While looking into how to look up Debian packages based on hardware
19240 information, to find the packages that support a given piece of
19241 hardware, I refreshed my memory regarding modalias values, and decided
19242 to document the details. Here are my findings so far, also available
19243 in
19244 <a href="http://anonscm.debian.org/viewvc/debian-edu/trunk/src/hw-support-handler/">the
19245 Debian Edu subversion repository</a>:
19246
19247 <p><strong>Modalias decoded</strong></p>
19248
19249 <p>This document try to explain what the different types of modalias
19250 values stands for. It is in part based on information from
19251 &lt;URL: <a href="https://wiki.archlinux.org/index.php/Modalias">https://wiki.archlinux.org/index.php/Modalias</a> &gt;,
19252 &lt;URL: <a href="http://unix.stackexchange.com/questions/26132/how-to-assign-usb-driver-to-device">http://unix.stackexchange.com/questions/26132/how-to-assign-usb-driver-to-device</a> &gt;,
19253 &lt;URL: <a href="http://code.metager.de/source/history/linux/stable/scripts/mod/file2alias.c">http://code.metager.de/source/history/linux/stable/scripts/mod/file2alias.c</a> &gt; and
19254 &lt;URL: <a href="http://cvs.savannah.gnu.org/viewvc/dmidecode/dmidecode.c?root=dmidecode&view=markup">http://cvs.savannah.gnu.org/viewvc/dmidecode/dmidecode.c?root=dmidecode&view=markup</a> &gt;.
19255
19256 <p>The modalias entries for a given Linux machine can be found using
19257 this shell script:</p>
19258
19259 <pre>
19260 find /sys -name modalias -print0 | xargs -0 cat | sort -u
19261 </pre>
19262
19263 <p>The supported modalias globs for a given kernel module can be found
19264 using modinfo:</p>
19265
19266 <pre>
19267 % /sbin/modinfo psmouse | grep alias:
19268 alias: serio:ty05pr*id*ex*
19269 alias: serio:ty01pr*id*ex*
19270 %
19271 </pre>
19272
19273 <p><strong>PCI subtype</strong></p>
19274
19275 <p>A typical PCI entry can look like this. This is an Intel Host
19276 Bridge memory controller:</p>
19277
19278 <p><blockquote>
19279 pci:v00008086d00002770sv00001028sd000001ADbc06sc00i00
19280 </blockquote></p>
19281
19282 <p>This represent these values:</p>
19283
19284 <pre>
19285 v 00008086 (vendor)
19286 d 00002770 (device)
19287 sv 00001028 (subvendor)
19288 sd 000001AD (subdevice)
19289 bc 06 (bus class)
19290 sc 00 (bus subclass)
19291 i 00 (interface)
19292 </pre>
19293
19294 <p>The vendor/device values are the same values outputted from 'lspci
19295 -n' as 8086:2770. The bus class/subclass is also shown by lspci as
19296 0600. The 0600 class is a host bridge. Other useful bus values are
19297 0300 (VGA compatible card) and 0200 (Ethernet controller).</p>
19298
19299 <p>Not sure how to figure out the interface value, nor what it
19300 means.</p>
19301
19302 <p><strong>USB subtype</strong></p>
19303
19304 <p>Some typical USB entries can look like this. This is an internal
19305 USB hub in a laptop:</p>
19306
19307 <p><blockquote>
19308 usb:v1D6Bp0001d0206dc09dsc00dp00ic09isc00ip00
19309 </blockquote></p>
19310
19311 <p>Here is the values included in this alias:</p>
19312
19313 <pre>
19314 v 1D6B (device vendor)
19315 p 0001 (device product)
19316 d 0206 (bcddevice)
19317 dc 09 (device class)
19318 dsc 00 (device subclass)
19319 dp 00 (device protocol)
19320 ic 09 (interface class)
19321 isc 00 (interface subclass)
19322 ip 00 (interface protocol)
19323 </pre>
19324
19325 <p>The 0900 device class/subclass means hub. Some times the relevant
19326 class is in the interface class section. For a simple USB web camera,
19327 these alias entries show up:</p>
19328
19329 <p><blockquote>
19330 usb:v0AC8p3420d5000dcEFdsc02dp01ic01isc01ip00
19331 <br>usb:v0AC8p3420d5000dcEFdsc02dp01ic01isc02ip00
19332 <br>usb:v0AC8p3420d5000dcEFdsc02dp01ic0Eisc01ip00
19333 <br>usb:v0AC8p3420d5000dcEFdsc02dp01ic0Eisc02ip00
19334 </blockquote></p>
19335
19336 <p>Interface class 0E01 is video control, 0E02 is video streaming (aka
19337 camera), 0101 is audio control device and 0102 is audio streaming (aka
19338 microphone). Thus this is a camera with microphone included.</p>
19339
19340 <p><strong>ACPI subtype</strong></p>
19341
19342 <p>The ACPI type is used for several non-PCI/USB stuff. This is an IR
19343 receiver in a Thinkpad X40:</p>
19344
19345 <p><blockquote>
19346 acpi:IBM0071:PNP0511:
19347 </blockquote></p>
19348
19349 <p>The values between the colons are IDs.</p>
19350
19351 <p><strong>DMI subtype</strong></p>
19352
19353 <p>The DMI table contain lots of information about the computer case
19354 and model. This is an entry for a IBM Thinkpad X40, fetched from
19355 /sys/devices/virtual/dmi/id/modalias:</p>
19356
19357 <p><blockquote>
19358 dmi:bvnIBM:bvr1UETB6WW(1.66):bd06/15/2005:svnIBM:pn2371H4G:pvrThinkPadX40:rvnIBM:rn2371H4G:rvrNotAvailable:cvnIBM:ct10:cvrNotAvailable:
19359 </blockquote></p>
19360
19361 <p>The values present are</p>
19362
19363 <pre>
19364 bvn IBM (BIOS vendor)
19365 bvr 1UETB6WW(1.66) (BIOS version)
19366 bd 06/15/2005 (BIOS date)
19367 svn IBM (system vendor)
19368 pn 2371H4G (product name)
19369 pvr ThinkPadX40 (product version)
19370 rvn IBM (board vendor)
19371 rn 2371H4G (board name)
19372 rvr NotAvailable (board version)
19373 cvn IBM (chassis vendor)
19374 ct 10 (chassis type)
19375 cvr NotAvailable (chassis version)
19376 </pre>
19377
19378 <p>The chassis type 10 is Notebook. Other interesting values can be
19379 found in the dmidecode source:</p>
19380
19381 <pre>
19382 3 Desktop
19383 4 Low Profile Desktop
19384 5 Pizza Box
19385 6 Mini Tower
19386 7 Tower
19387 8 Portable
19388 9 Laptop
19389 10 Notebook
19390 11 Hand Held
19391 12 Docking Station
19392 13 All In One
19393 14 Sub Notebook
19394 15 Space-saving
19395 16 Lunch Box
19396 17 Main Server Chassis
19397 18 Expansion Chassis
19398 19 Sub Chassis
19399 20 Bus Expansion Chassis
19400 21 Peripheral Chassis
19401 22 RAID Chassis
19402 23 Rack Mount Chassis
19403 24 Sealed-case PC
19404 25 Multi-system
19405 26 CompactPCI
19406 27 AdvancedTCA
19407 28 Blade
19408 29 Blade Enclosing
19409 </pre>
19410
19411 <p>The chassis type values are not always accurately set in the DMI
19412 table. For example my home server is a tower, but the DMI modalias
19413 claim it is a desktop.</p>
19414
19415 <p><strong>SerIO subtype</strong></p>
19416
19417 <p>This type is used for PS/2 mouse plugs. One example is from my
19418 test machine:</p>
19419
19420 <p><blockquote>
19421 serio:ty01pr00id00ex00
19422 </blockquote></p>
19423
19424 <p>The values present are</p>
19425
19426 <pre>
19427 ty 01 (type)
19428 pr 00 (prototype)
19429 id 00 (id)
19430 ex 00 (extra)
19431 </pre>
19432
19433 <p>This type is supported by the psmouse driver. I am not sure what
19434 the valid values are.</p>
19435
19436 <p><strong>Other subtypes</strong></p>
19437
19438 <p>There are heaps of other modalias subtypes according to
19439 file2alias.c. There is the rest of the list from that source: amba,
19440 ap, bcma, ccw, css, eisa, hid, i2c, ieee1394, input, ipack, isapnp,
19441 mdio, of, parisc, pcmcia, platform, scsi, sdio, spi, ssb, vio, virtio,
19442 vmbus, x86cpu and zorro. I did not spend time documenting all of
19443 these, as they do not seem relevant for my intended use with mapping
19444 hardware to packages when new stuff is inserted during run time.</p>
19445
19446 <p><strong>Looking up kernel modules using modalias values</strong></p>
19447
19448 <p>To check which kernel modules provide support for a given modalias,
19449 one can use the following shell script:</p>
19450
19451 <pre>
19452 for id in $(find /sys -name modalias -print0 | xargs -0 cat | sort -u); do \
19453 echo "$id" ; \
19454 /sbin/modprobe --show-depends "$id"|sed 's/^/ /' ; \
19455 done
19456 </pre>
19457
19458 <p>The output can look like this (only the first few entries as the
19459 list is very long on my test machine):</p>
19460
19461 <pre>
19462 acpi:ACPI0003:
19463 insmod /lib/modules/2.6.32-5-686/kernel/drivers/acpi/ac.ko
19464 acpi:device:
19465 FATAL: Module acpi:device: not found.
19466 acpi:IBM0068:
19467 insmod /lib/modules/2.6.32-5-686/kernel/drivers/char/nvram.ko
19468 insmod /lib/modules/2.6.32-5-686/kernel/drivers/leds/led-class.ko
19469 insmod /lib/modules/2.6.32-5-686/kernel/net/rfkill/rfkill.ko
19470 insmod /lib/modules/2.6.32-5-686/kernel/drivers/platform/x86/thinkpad_acpi.ko
19471 acpi:IBM0071:PNP0511:
19472 insmod /lib/modules/2.6.32-5-686/kernel/lib/crc-ccitt.ko
19473 insmod /lib/modules/2.6.32-5-686/kernel/net/irda/irda.ko
19474 insmod /lib/modules/2.6.32-5-686/kernel/drivers/net/irda/nsc-ircc.ko
19475 [...]
19476 </pre>
19477
19478 <p>If you want to help implementing a system to let us propose what
19479 packages to install when new hardware is plugged into a Debian
19480 machine, please send me an email or talk to me on
19481 <a href="irc://irc.debian.org/%23debian-devel">#debian-devel</a>.</p>
19482
19483 <p><strong>Update 2013-01-15:</strong> Rewrite "cat $(find ...)" to
19484 "find ... -print0 | xargs -0 cat" to make sure it handle directories
19485 in /sys/ with space in them.</p>
19486
19487 </div>
19488 <div class="tags">
19489
19490
19491 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>.
19492
19493
19494 </div>
19495 </div>
19496 <div class="padding"></div>
19497
19498 <div class="entry">
19499 <div class="title">
19500 <a href="http://people.skolelinux.org/pere/blog/Moved_the_pymissile_Debian_packaging_to_collab_maint.html">Moved the pymissile Debian packaging to collab-maint</a>
19501 </div>
19502 <div class="date">
19503 10th January 2013
19504 </div>
19505 <div class="body">
19506 <p>As part of my investigation on how to improve the support in Debian
19507 for hardware dongles, I dug up my old Mark and Spencer USB Rocket
19508 Launcher and updated the Debian package
19509 <a href="http://packages.qa.debian.org/pymissile">pymissile</a> to make
19510 sure udev will fix the device permissions when it is plugged in. I
19511 also added a "Modaliases" header to test it in the Debian archive and
19512 hopefully make the package be proposed by jockey in Ubuntu when a user
19513 plug in his rocket launcher. In the process I moved the source to a
19514 git repository under collab-maint, to make it easier for any DD to
19515 contribute. <a href="http://code.google.com/p/pymissile/">Upstream</a>
19516 is not very active, but the software still work for me even after five
19517 years of relative silence. The new git repository is not listed in
19518 the uploaded package yet, because I want to test the other changes a
19519 bit more before I upload the new version. If you want to check out
19520 the new version with a .desktop file included, visit the
19521 <a href="http://anonscm.debian.org/gitweb/?p=collab-maint/pymissile.git">gitweb
19522 view</a> or use "<tt>git clone
19523 git://anonscm.debian.org/collab-maint/pymissile.git</tt>".</p>
19524
19525 </div>
19526 <div class="tags">
19527
19528
19529 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>, <a href="http://people.skolelinux.org/pere/blog/tags/robot">robot</a>.
19530
19531
19532 </div>
19533 </div>
19534 <div class="padding"></div>
19535
19536 <div class="entry">
19537 <div class="title">
19538 <a href="http://people.skolelinux.org/pere/blog/Lets_make_hardware_dongles_easier_to_use_in_Debian.html">Lets make hardware dongles easier to use in Debian</a>
19539 </div>
19540 <div class="date">
19541 9th January 2013
19542 </div>
19543 <div class="body">
19544 <p>One thing that annoys me with Debian and Linux distributions in
19545 general, is that there is a great package management system with the
19546 ability to automatically install software packages by downloading them
19547 from the distribution mirrors, but no way to get it to automatically
19548 install the packages I need to use the hardware I plug into my
19549 machine. Even if the package to use it is easily available from the
19550 Linux distribution. When I plug in a LEGO Mindstorms NXT, it could
19551 suggest to automatically install the python-nxt, nbc and t2n packages
19552 I need to talk to it. When I plug in a Yubikey, it could propose the
19553 yubikey-personalization package. The information required to do this
19554 is available, but no-one have pulled all the pieces together.</p>
19555
19556 <p>Some years ago, I proposed to
19557 <a href="http://lists.debian.org/debian-devel/2010/05/msg01206.html">use
19558 the discover subsystem to implement this</a>. The idea is fairly
19559 simple:
19560
19561 <ul>
19562
19563 <li>Add a desktop entry in /usr/share/autostart/ pointing to a program
19564 starting when a user log in.</li>
19565
19566 <li>Set this program up to listen for kernel events emitted when new
19567 hardware is inserted into the computer.</li>
19568
19569 <li>When new hardware is inserted, look up the hardware ID in a
19570 database mapping to packages, and take note of any non-installed
19571 packages.</li>
19572
19573 <li>Show a message to the user proposing to install the discovered
19574 package, and make it easy to install it.</li>
19575
19576 </ul>
19577
19578 <p>I am not sure what the best way to implement this is, but my
19579 initial idea was to use dbus events to discover new hardware, the
19580 discover database to find packages and
19581 <a href="http://www.packagekit.org/">PackageKit</a> to install
19582 packages.</p>
19583
19584 <p>Yesterday, I found time to try to implement this idea, and the
19585 draft package is now checked into
19586 <a href="http://anonscm.debian.org/viewvc/debian-edu/trunk/src/hw-support-handler/">the
19587 Debian Edu subversion repository</a>. In the process, I updated the
19588 <a href="http://packages.qa.debian.org/d/discover-data.html">discover-data</a>
19589 package to map the USB ids of LEGO Mindstorms and Yubikey devices to
19590 the relevant packages in Debian, and uploaded a new version
19591 2.2013.01.09 to unstable. I also discovered that the current
19592 <a href="http://packages.qa.debian.org/d/discover.html">discover</a>
19593 package in Debian no longer discovered any USB devices, because
19594 /proc/bus/usb/devices is no longer present. I ported it to use
19595 libusb as a fall back option to get it working. The fixed package
19596 version 2.1.2-6 is now in experimental (didn't upload it to unstable
19597 because of the freeze).</p>
19598
19599 <p>With this prototype in place, I can insert my Yubikey, and get this
19600 desktop notification to show up (only once, the first time it is
19601 inserted):</p>
19602
19603 <p align="center"><img src="http://people.skolelinux.org/pere/blog/images/2013-01-09-hw-autoinstall.png"></p>
19604
19605 <p>For this prototype to be really useful, some way to automatically
19606 install the proposed packages by pressing the "Please install
19607 program(s)" button should to be implemented.</p>
19608
19609 <p>If this idea seem useful to you, and you want to help make it
19610 happen, please help me update the discover-data database with mappings
19611 from hardware to Debian packages. Check if 'discover-pkginstall -l'
19612 list the package you would like to have installed when a given
19613 hardware device is inserted into your computer, and report bugs using
19614 reportbug if it isn't. Or, if you know of a better way to provide
19615 such mapping, please let me know.</p>
19616
19617 <p>This prototype need more work, and there are several questions that
19618 should be considered before it is ready for production use. Is dbus
19619 the correct way to detect new hardware? At the moment I look for HAL
19620 dbus events on the system bus, because that is the events I could see
19621 on my Debian Squeeze KDE desktop. Are there better events to use?
19622 How should the user be notified? Is the desktop notification
19623 mechanism the best option, or should the background daemon raise a
19624 popup instead? How should packages be installed? When should they
19625 not be installed?</p>
19626
19627 <p>If you want to help getting such feature implemented in Debian,
19628 please send me an email. :)</p>
19629
19630 </div>
19631 <div class="tags">
19632
19633
19634 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>.
19635
19636
19637 </div>
19638 </div>
19639 <div class="padding"></div>
19640
19641 <div class="entry">
19642 <div class="title">
19643 <a href="http://people.skolelinux.org/pere/blog/New_IRC_channel_for_LEGO_designers_using_Debian.html">New IRC channel for LEGO designers using Debian</a>
19644 </div>
19645 <div class="date">
19646 2nd January 2013
19647 </div>
19648 <div class="body">
19649 <p>During Christmas, I have worked a bit on the Debian support for
19650 <a href="http://mindstorms.lego.com/en-us/Default.aspx">LEGO Mindstorm
19651 NXT</a>. My son and I have played a bit with my NXT set, and I
19652 discovered I had to build all the tools myself because none were
19653 already in Debian Squeeze. If Debian support for LEGO is something
19654 you care about, please join me on the IRC channel
19655 <a href="irc://irc.debian.org/%23debian-lego">#debian-lego</a> (server
19656 irc.debian.org). There is a lot that could be done to improve the
19657 Debian support for LEGO designers. For example both CAD software
19658 and Mindstorm compilers are missing. :)</p>
19659
19660 <p>Update 2012-01-03: A
19661 <a href="http://wiki.debian.org/LegoDesigners">project page</a>
19662 including links to Lego related packages is now available.</p>
19663
19664 </div>
19665 <div class="tags">
19666
19667
19668 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/lego">lego</a>, <a href="http://people.skolelinux.org/pere/blog/tags/robot">robot</a>.
19669
19670
19671 </div>
19672 </div>
19673 <div class="padding"></div>
19674
19675 <div class="entry">
19676 <div class="title">
19677 <a href="http://people.skolelinux.org/pere/blog/A_Christmas_present_for_Skolelinux___Debian_Edu.html">A Christmas present for Skolelinux / Debian Edu</a>
19678 </div>
19679 <div class="date">
19680 28th December 2012
19681 </div>
19682 <div class="body">
19683 <p>I was happy to discover a few days ago that the
19684 <a href="http://www.skolelinux.org/">Skolelinux / Debian Edu</a>
19685 project also this year received a Christmas present from Another
19686 Agency in Trondheim. NOK 1000,- showed up on our donation account
19687 December 24th. I want to express our thanks for this very welcome
19688 present. As the Debian Edu / Skolelinux project is very short on
19689 funding these days, and thus lack the money to do regular developer
19690 gatherings, this donation was most welcome. One developer gathering
19691 cost around NOK 15&nbsp;000,-, so we need quite a lot more to keep the
19692 development pace we want. Thus, I hope their example this year is
19693 followed by many others. :)</p>
19694
19695 <p>The public list of donors can be found on
19696 <a href="http://www.linuxiskolen.no/slxdebianlabs/donations.html">the
19697 donation page</a> for the project, which also contain instructions if
19698 you want to donate to the project.</p>
19699
19700 </div>
19701 <div class="tags">
19702
19703
19704 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
19705
19706
19707 </div>
19708 </div>
19709 <div class="padding"></div>
19710
19711 <div class="entry">
19712 <div class="title">
19713 <a href="http://people.skolelinux.org/pere/blog/How_to_backport_bitcoin_qt_version_0_7_2_2_to_Debian_Squeeze.html">How to backport bitcoin-qt version 0.7.2-2 to Debian Squeeze</a>
19714 </div>
19715 <div class="date">
19716 25th December 2012
19717 </div>
19718 <div class="body">
19719 <p>Let me start by wishing you all marry Christmas and a happy new
19720 year! I hope next year will prove to be a good year.</p>
19721
19722 <p><a href="http://www.bitcoin.org/">Bitcoin</a>, the digital
19723 decentralised "currency" that allow people to transfer bitcoins
19724 between each other with minimal overhead, is a very interesting
19725 experiment. And as I wrote a few days ago, the bitcoin situation in
19726 <a href="http://www.debian.org/">Debian</a> is about to improve a bit.
19727 The <a href="http://packages.qa.debian.org/bitcoin">new debian source
19728 package</a> (version 0.7.2-2) was uploaded yesterday, and is waiting
19729 in <a href="http://ftp-master.debian.org/new.html">the NEW queue</A>
19730 for one of the ftpmasters to approve the new bitcoin-qt package
19731 name.</p>
19732
19733 <p>And thanks to the great work of Jonas and the rest of the bitcoin
19734 team in Debian, you can easily test the package in Debian Squeeze
19735 using the following steps to get a set of working packages:</p>
19736
19737 <blockquote><pre>
19738 git clone git://git.debian.org/git/collab-maint/bitcoin
19739 cd bitcoin
19740 DEB_MAINTAINER_MODE=1 DEB_BUILD_OPTIONS=noupnp fakeroot debian/rules clean
19741 DEB_BUILD_OPTIONS=noupnp git-buildpackage --git-ignore-new
19742 </pre></blockquote>
19743
19744 <p>You might have to install some build dependencies as well. The
19745 list of commands should give you two packages, bitcoind and
19746 bitcoin-qt, ready for use in a Squeeze environment. Note that the
19747 client will download the complete set of bitcoin "blocks", which need
19748 around 5.6 GiB of data on my machine at the moment. Make sure your
19749 ~/.bitcoin/ directory have lots of spare room if you want to download
19750 all the blocks. The client will warn if the disk is getting full, so
19751 there is not really a problem if you got too little room, but you will
19752 not be able to get all the features out of the client.</p>
19753
19754 <p>As usual, if you use bitcoin and want to show your support of my
19755 activities, please send Bitcoin donations to my address
19756 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
19757
19758 </div>
19759 <div class="tags">
19760
19761
19762 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
19763
19764
19765 </div>
19766 </div>
19767 <div class="padding"></div>
19768
19769 <div class="entry">
19770 <div class="title">
19771 <a href="http://people.skolelinux.org/pere/blog/A_word_on_bitcoin_support_in_Debian.html">A word on bitcoin support in Debian</a>
19772 </div>
19773 <div class="date">
19774 21st December 2012
19775 </div>
19776 <div class="body">
19777 <p>It has been a while since I wrote about
19778 <a href="http://www.bitcoin.org/">bitcoin</a>, the decentralised
19779 peer-to-peer based crypto-currency, and the reason is simply that I
19780 have been busy elsewhere. But two days ago, I started looking at the
19781 state of <a href="http://packages.qa.debian.org/bitcoin">bitcoin in
19782 Debian</a> again to try to recover my old bitcoin wallet. The package
19783 is now maintained by a
19784 <a href="https://alioth.debian.org/projects/pkg-bitcoin/">team of
19785 people</a>, and the grunt work had already been done by this team. We
19786 owe a huge thank you to all these team members. :)
19787 But I was sad to discover that the bitcoin client is missing in
19788 Wheezy. It is only available in Sid (and an outdated client from
19789 backports). The client had several RC bugs registered in BTS blocking
19790 it from entering testing. To try to help the team and improve the
19791 situation, I spent some time providing patches and triaging the bug
19792 reports. I also had a look at the bitcoin package available from Matt
19793 Corallo in a
19794 <a href="https://launchpad.net/~bitcoin/+archive/bitcoin">PPA for
19795 Ubuntu</a>, and moved the useful pieces from that version into the
19796 Debian package.</p>
19797
19798 <p>After checking with the main package maintainer Jonas Smedegaard on
19799 IRC, I pushed several patches into the collab-maint git repository to
19800 improve the package. It now contains fixes for the RC issues (not from
19801 me, but fixed by Scott Howard), build rules for a Qt GUI client
19802 package, konqueror support for the bitcoin: URI and bash completion
19803 setup. As I work on Debian Squeeze, I also created
19804 <a href="http://lists.alioth.debian.org/pipermail/pkg-bitcoin-devel/Week-of-Mon-20121217/000041.html">a
19805 patch to backport</a> the latest version. Jonas is going to look at
19806 it and try to integrate it into the git repository before uploading a
19807 new version to unstable.
19808
19809 <p>I would very much like bitcoin to succeed, to get rid of the
19810 centralized control currently exercised in the monetary system. I
19811 find it completely unacceptable that the USA government is collecting
19812 transaction data for almost all international money transfers (most are done in USD and transaction logs shipped to the spooks), and
19813 that the major credit card companies can block legal money
19814 transactions to Wikileaks. But for bitcoin to succeed, more people
19815 need to use bitcoins, and more people need to accept bitcoins when
19816 they sell products and services. Improving the bitcoin support in
19817 Debian is a small step in the right direction, but not enough.
19818 Unfortunately the user experience when browsing the web and wanting to
19819 pay with bitcoin is still not very good. The bitcoin: URI is a step
19820 in the right direction, but need to work in most or every browser in
19821 use. Also the bitcoin-qt client is too heavy to fire up to do a
19822 quick transaction. I believe there are other clients available, but
19823 have not tested them.</p>
19824
19825 <p>My
19826 <a href="http://people.skolelinux.org/pere/blog/Now_accepting_bitcoins___anonymous_and_distributed_p2p_crypto_money.html">experiment
19827 with bitcoins</a> showed that at least some of my readers use bitcoin.
19828 I received 20.15 BTC so far on the address I provided in my blog two
19829 years ago, as can be
19830 <a href="http://blockexplorer.com/address/15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">seen
19831 on the blockexplorer service</a>. Thank you everyone for your
19832 donation. The blockexplorer service demonstrates quite well that
19833 bitcoin is not quite anonymous and untracked. :) I wonder if the
19834 number of users have gone up since then. If you use bitcoin and want
19835 to show your support of my activity, please send Bitcoin donations to
19836 the same address as last time,
19837 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
19838
19839 </div>
19840 <div class="tags">
19841
19842
19843 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
19844
19845
19846 </div>
19847 </div>
19848 <div class="padding"></div>
19849
19850 <div class="entry">
19851 <div class="title">
19852 <a href="http://people.skolelinux.org/pere/blog/Ledger___double_entry_accounting_using_text_based_storage_format.html">Ledger - double-entry accounting using text based storage format</a>
19853 </div>
19854 <div class="date">
19855 18th December 2012
19856 </div>
19857 <div class="body">
19858 <p>A few days ago I came across
19859 <a href="http://joeyh.name/blog/entry/hledger/">a blog post from Joey
19860 Hess</a> describing <a href="http://ledger-cli.org/">ledger</a> and
19861 hledger, a text based system for double-entry accounting. I found it
19862 interesting, as I am involved with several organizations where
19863 accounting is an issue, and I have not really become too friendly with
19864 the different web based systems we use. I find it hard to find what I
19865 look for in the menus and even harder try to get sensible data out of
19866 the systems. Ledger seem different. The accounting data is kept in
19867 text files that can be stored in a version control system, and there
19868
19869 are at least <a href="https://github.com/ledger/ledger/wiki/Ports">five
19870 different implementations</a> able to read the format. An example
19871 entry look like this, and is simple enough that it will be trivial to
19872 generate entries based on CVS files fetched from the bank:</p>
19873
19874 <blockquote><pre>
19875 2004-05-27 Book Store
19876 Expenses:Books $20.00
19877 Liabilities:Visa
19878 </pre></blockquote>
19879
19880 <p>The concept seemed interesting enough for me to check it out and
19881 look for others using it. I found blog posts from
19882 <a href="http://blog.spang.cc/posts/hledger_rocks_my_world/">Christine
19883 Spang</a>,
19884 <a href="http://bugsplat.info/2010-05-23-keeping-finances-with-ledger.html">Pete
19885 Keen</a>,
19886 <a href="http://blog.andrewcantino.com/blog/2010/11/06/command-line-accounting-with-ledger-and-reckon/">Andrew
19887 Cantino</a> and
19888 <a href="http://blog.iphoting.com/blog/2012/11/29/command-line-double-entry-accounting/">Ronald
19889 Ip</a> describing how they use it, as well as a post from
19890 <a href="https://groups.google.com/forum/?fromgroups=#!topic/ledger-cli/r0oWjwbQ9Bo">Bradley
19891 M. Kuhn</a> at the Software Freedom Conservancy. All seemed like good
19892 recommendations fitting my need.</p>
19893
19894 <p>The <a href="http://packages.qa.debian.org/l/ledger.html">ledger</a>
19895 package is available in Debian Squeeze, while the
19896 <a href="http://packages.qa.debian.org/h/haskell-hledger.html">hledger</a>
19897 package only is available in Debian Sid. As I use Squeeze, ledger
19898 seemed the best choice to get started.</p>
19899
19900 <p>To get some real data to test on, I wrote a
19901 <a href="http://www.nuug.no/tools/lodo2ledger">web scraper</a> for
19902 <a href="http://www.lodo.no/">LODO</a>, the accounting system used by
19903 the <a href="http://www.nuug.no/">NUUG</a> association, and started to
19904 play with the data set. I'm not really deeply into accounting, but I
19905 am able to get a simple balance and accounting status for example
19906 using the "<tt>ledger balance</tt>" command. But I will have to
19907 gather more experience before I know if the ledger way is a good fit
19908 for the organisations I am involved in.</p>
19909
19910 </div>
19911 <div class="tags">
19912
19913
19914 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
19915
19916
19917 </div>
19918 </div>
19919 <div class="padding"></div>
19920
19921 <div class="entry">
19922 <div class="title">
19923 <a href="http://people.skolelinux.org/pere/blog/Scripting_the_Cerebrum_bofhd_user_administration_system_using_XML_RPC.html">Scripting the Cerebrum/bofhd user administration system using XML-RPC</a>
19924 </div>
19925 <div class="date">
19926 6th December 2012
19927 </div>
19928 <div class="body">
19929 <p>Where I work at the <a href="http://www.uio.no/">University of
19930 Oslo</a>, we use the
19931 <a href="http://sourceforge.net/projects/cerebrum/">Cerebrum user
19932 administration system</a> to maintain users, groups, DNS, DHCP, etc.
19933 I've known since the system was written that the server is providing
19934 an <a href="http://en.wikipedia.org/wiki/XML-RPC">XML-RPC</a> API, but
19935 I have never spent time to try to figure out how to use it, as we
19936 always use the bofh command line client at work. Until today. I want
19937 to script the updating of DNS and DHCP to make it easier to set up
19938 virtual machines. Here are a few notes on how to use it with
19939 Python.</p>
19940
19941 <p>I started by looking at the source of the Java
19942 <a href="http://cerebrum.svn.sourceforge.net/viewvc/cerebrum/trunk/cerebrum/clients/jbofh/">bofh
19943 client</a>, to figure out how it connected to the API server. I also
19944 googled for python examples on how to use XML-RPC, and found
19945 <a href="http://tldp.org/HOWTO/XML-RPC-HOWTO/xmlrpc-howto-python.html">a
19946 simple example in</a> the XML-RPC howto.</p>
19947
19948 <p>This simple example code show how to connect, get the list of
19949 commands (as a JSON dump), and how to get the information about the
19950 user currently logged in:</p>
19951
19952 <blockquote><pre>
19953 #!/usr/bin/env python
19954 import getpass
19955 import xmlrpclib
19956 server_url = 'https://cerebrum-uio.uio.no:8000';
19957 username = getpass.getuser()
19958 password = getpass.getpass()
19959 server = xmlrpclib.Server(server_url);
19960 #print server.get_commands(sessionid)
19961 sessionid = server.login(username, password)
19962 print server.run_command(sessionid, "user_info", username)
19963 result = server.logout(sessionid)
19964 print result
19965 </pre></blockquote>
19966
19967 <p>Armed with this knowledge I can now move forward and script the DNS
19968 and DHCP updates I wanted to do.</p>
19969
19970 </div>
19971 <div class="tags">
19972
19973
19974 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin</a>.
19975
19976
19977 </div>
19978 </div>
19979 <div class="padding"></div>
19980
19981 <div class="entry">
19982 <div class="title">
19983 <a href="http://people.skolelinux.org/pere/blog/Why_isn_t_the_value_of_copyright_taxed_.html">Why isn't the value of copyright taxed?</a>
19984 </div>
19985 <div class="date">
19986 17th November 2012
19987 </div>
19988 <div class="body">
19989 <p>While working on a
19990 <a href="https://github.com/petterreinholdtsen/free-culture-lessig">Norwegian
19991 translation of the Free Culture by Lawrence Lessig</a> (76% done),
19992 which cover the problems with todays copyright law and how it stifles
19993 creativity, one idea occurred to me. The idea is to get the tax
19994 office to help make more works enter the public domain and also help
19995 make it easier to clear rights for using copyrighted works.</p>
19996
19997 <p>I mentioned this idea briefly during Yesterdays
19998 <a href="http://www.farmann.no/2012/11/14/john-perry-barlow-in-oslo-friday-nov-16
19999 -15-30-19-00/">presentation
20000 by John Perry Barlow</a>, and concluded that it was best to put it
20001 in writing for a wider audience. The idea is not really based on the
20002 argument that copyrighted works are "intellectual property", as the
20003 core requirement is that copyrighted work have value for the copyright
20004 holder and the tax office like to collect their share from any value
20005 controlled by the citizens in a country. I'm sharing the idea here to
20006 let others consider it and perhaps shoot it down with a fresh set of
20007 arguments.</p>
20008
20009 <p>Most valuables are taxed by the government. At least here in
20010 Norway, the amount of money you have, the value of our land property,
20011 the value of your house, the value of your car, the value of our
20012 stocks and other valuables are all added together. If the tax value
20013 of these values exceed your debt, you have to pay the tax office some
20014 taxes for these values. And copyrighted work have value. It have
20015 value for the rights holder, who can earn money selling access to the
20016 work. But it is not included in the tax calculations? Why not?</p>
20017
20018 <p>If the government want to tax copyrighted works, it would want to
20019 maintain a database of all the copyrighted works and who are the
20020 rights holders for a given works, to be able to associate the works
20021 value to the right citizen or company for tax purposes. If such
20022 database exist, it will become a lot easier to find out who to talk to
20023 for clearing permissions to use a copyrighted work, which is a very
20024 hard operation with todays copyright law. To ensure that copyright
20025 holders keep the database up-to-date, it would have to become a
20026 requirement to be able to collect money for granting access to
20027 copyrighted works that the work is listed in the database with the
20028 correct right holder.</p>
20029
20030 <p>If copyright causes copyright holders to have to pay more taxes,
20031 they will have a small incentive to "disown" their copyright, and let
20032 the work enter the public domain. For works with several right holders
20033 one of the right holders could state (and get it registered in the
20034 database) that she do not need to be consulted when clearing rights to
20035 use the work in question and thus will not get any income from that
20036 work. Stating this would have to be impossible to revert and stop the
20037 tax office from adding the value of that work to the given citizens
20038 tax calculation. I assume the copyright law would stay the same,
20039 allowing creators to pick a license of their choosing, and also
20040 allowing them to put their work directly in the public domain. The
20041 existence of such database will make it even easier to clear rights,
20042 and if the right holders listed in the database is taxed, this system
20043 would increase the amount of works that enter the public domain.</p>
20044
20045 <p>The effect would be that the tax office help to make it easier to
20046 get rights to use the works that have not yet entered the public
20047 domain and help to get more work into the public domain.</p>
20048
20049 <p>Why have such taxing not happened yet? I am sure the tax office
20050 would like to tax copyrighted work values if they could.</p>
20051
20052 </div>
20053 <div class="tags">
20054
20055
20056 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>, <a href="http://people.skolelinux.org/pere/blog/tags/verkidetfri">verkidetfri</a>.
20057
20058
20059 </div>
20060 </div>
20061 <div class="padding"></div>
20062
20063 <div class="entry">
20064 <div class="title">
20065 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Angela_Fu_.html">Debian Edu interview: Angela Fuß</a>
20066 </div>
20067 <div class="date">
20068 14th November 2012
20069 </div>
20070 <div class="body">
20071 <p>Here is another interview with one of the people in the <a
20072 href="http://www.skolelinux.org/">Debian Edu and Skolelinux</a>
20073 community. I am running short on people willing to be interviewed, so
20074 if you know about someone I should interview, Please send me an email.
20075 After asking for many months, I finally managed to lure another one of
20076 the people behind the German
20077 "<a href="http://wiki.it-zukunft-schule.de/">IT-Zukunft Schule</a>"
20078 project out from maternity leave to conduct an interview. Give a warm
20079 welcome to Angela Fuß. :)</p>
20080
20081 <p><strong>Who are you, and how do you spend your days?</strong></p>
20082
20083 <p>I am a 39-year-old woman living in the very north of Germany near
20084 Denmark. I live in a patchwork family with "my man" Mike Gabriel, my
20085 two daughters, Mikes daughter and Mikes and my rather newborn son.
20086
20087 <p>At the moment - because of our little baby - I am spending most of
20088 the day by being a caring and organising mom for all the kids.
20089 Besides that I am really involved into and occupied with several inner
20090 growth processes: New born souls always bring the whole familiar
20091 system into movement and that needs time and focus ;-). We are also
20092 in the middle of buying a house and moving to it.</p>
20093
20094 <p>In 2013 I will work again in my job in a German foundation for
20095 nature conservation. I am doing public relation work there. Besides
20096 that - and that is the connection to Skolelinux / Debian Edu - I am
20097 working in our own school project "IT-Zukunft Schule" in North
20098 Germany. I am responsible for the quality assurance, the customer
20099 relationship management and the communication processes in the
20100 project.</p>
20101
20102 <p>Since 2001 I constantly have been training myself in communication
20103 and leadership. Besides that I am a forester, a landscaping gardener
20104 and a yoga teacher.</p>
20105
20106 <p><strong>How did you get in contact with the Skolelinux / Debian Edu
20107 project?</strong></p>
20108
20109 <p>I fell in love with Mike ;-).</p>
20110
20111 <p>Very soon after getting to know him I was completely enrolled into
20112 Free Software. At this time Mike did IT-services for one newly
20113 founded school in Kiel. Other schools in Kiel needed concepts for
20114 their IT environment. Often when Mike came home from working at the
20115 newly founded school I found myself listening to his complaints about
20116 several points where the communication with the schools head or the
20117 teachers did not work. So we were clear that he would not work for
20118 one more school if we did not set up a structure for communication
20119 between him, the schools head, the teachers, the students and the
20120 parents.</p>
20121
20122 <p>Together with our friend and hardware supplier Andreas Buchholz we
20123 started to get an overview of free software solutions suitable for
20124 schools. One day before Christmas 2010 Mike and I had a date with Kurt
20125 Gramlich in Gütersloh. As Kurt and I are really interested in building
20126 networks of people and in being in communication we dived into
20127 Skolelinux and brought it to the first grammar schools in Northern
20128 Germany.</p>
20129
20130 <p>For information about our school project you can read
20131 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Mike_Gabriel.html">the
20132 interview with Mike Gabriel</a>.</p>
20133
20134 <p><strong>What do you see as the advantages of Skolelinux / Debian
20135 Edu?</strong></p>
20136
20137 <p>First I have to say: I cannot answer this question technically. My
20138 answer comes rather from a social point of view.</p>
20139
20140 <p>The biggest advantage of Skolelinux / Debian Edu I see is the large
20141 and strong international community of Debian Developers in the
20142 background which is very alive and connected over mailinglists, blogs
20143 and meetings. My constant feeling for the Debian Community is: If
20144 something does not work they will somehow fix it. All is well
20145 ;-). This is of course a user experience. What I also get as a big
20146 advantage of Skolelinux / Debian Edu is that everybody who uses it and
20147 works with it can also contribute to it - that includes students,
20148 teachers, parents...</p>
20149
20150 <p><strong>What do you see as the disadvantages of Skolelinux / Debian
20151 Edu?</strong></p>
20152
20153 <p>I will answer this question relating to the internal structure of
20154 Skolelinux / Debian Edu.</p>
20155
20156 <p>What I see as a major disadvantage is that there is a gap between
20157 the group of developers for Debian Edu and the people who make the
20158 marketing, that means the people that bring Skolelinux to the
20159 schools. There is a lack of communication between these two groups and
20160 I think that does not really work for Skolelinux / Debian Edu.</p>
20161
20162 <p>Further I appreciate that Skolelinux / Debian Edu is known as a
20163 do-ocracy. Nevertheless I keep asking myself if at some points a
20164 democracy or some kind of hierarchical project structure would be good
20165 and helpful. I am also missing some kind of contact between the
20166 Skolelinux / Debian Edu communities in Europe or on an international
20167 level. I think it would be good if there was more sharing between the
20168 different countries using Skolelinux / Debian Edu.</p>
20169
20170 <p><strong>Which free software do you use daily?</strong></p>
20171
20172 <p>On my laptop I am still using an Ubuntu 10.04 with a Gnome Desktop
20173 on. As applications I use Openoffice.org, Gedit, Firefox, Pidgin,
20174 LaTeX and GnuCash. For mails I am using Horde. And I am really fond of
20175 my N900 running with Maemo.</p>
20176
20177 <p><strong>Which strategy do you believe is the right one to use to
20178 get schools to use free software?</strong></p>
20179
20180 <p>I am really convinced that in our school project "IT-Zukunft
20181 Schule" we have developed (and keep developing) a great way to get
20182 schools to use Free Software. We have written a detailed concept for
20183 that so I cannot explain the whole thing here. But in a nutshell the
20184 strategy has three crucial pillars:</p>
20185
20186 <ul>
20187
20188 <li>We really take time to get what sort of stories, questions and
20189 concerns the schools head and the teachers have about using different
20190 kinds of IT and we take time to enrol them into Free Software.</li>
20191
20192 <li>Our solution for schools is never just technical. In the centre
20193 are always the people who are going to use the software. From the very
20194 beginning of the planning for a school, we tell the schools head that
20195 they are paying us not only for a technical solution for their school,
20196 they also pay us for leading all the communication processes
20197 needed. If they do not want that, we are not working with them because
20198 we cannot give a guarantee for the quality of our work then.</li>
20199
20200 <li>Another focus lies in the training of teachers and students in
20201 co-administrating the IT-System at their school. They start getting in
20202 contact with the Skolelinux / Debian Edu community and they get the
20203 offer to become more and more independent from us.</li>
20204
20205 </ul>
20206
20207 </div>
20208 <div class="tags">
20209
20210
20211 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju</a>.
20212
20213
20214 </div>
20215 </div>
20216 <div class="padding"></div>
20217
20218 <div class="entry">
20219 <div class="title">
20220 <a href="http://people.skolelinux.org/pere/blog/The_European_Central_Bank__ECB__take_a_look_at_bitcoin.html">The European Central Bank (ECB) take a look at bitcoin</a>
20221 </div>
20222 <div class="date">
20223 4th November 2012
20224 </div>
20225 <div class="body">
20226 <p>Slashdot just ran a story about the European Central Bank (ECB)
20227 <a href="http://www.ecb.europa.eu/pub/pdf/other/virtualcurrencyschemes201210en.pdf">releasing
20228 a report (PDF)</a> about virtual currencies and
20229 <a href="http://www.bitcoin.org/">bitcoin</a>. It is interesting to
20230 see how a member of the bitcoin community
20231 <a href="http://blog.bitinstant.com/blog/2012/10/30/the-ecb-report-on-bitcoin-and-virtual-currencies.html">receive
20232 the report</a>. As for the future, I suspect the central banks and
20233 the governments will outlaw bitcoin if it gain any popularity, to avoid
20234 competition. My thoughts go to the
20235 <a href="http://en.wikipedia.org/wiki/Wörgl">Wörgl experiment</a> with
20236 negative inflation on cash which was such a success that it was
20237 terminated by the Austrian National Bank in 1933. A successful
20238 alternative would be a threat to the current money system and gain
20239 powerful forces to work against it.</p>
20240
20241 <p>While checking out the current status of bitcoin, I also discovered
20242 that the community already seem to have
20243 <a href="http://www.theverge.com/2012/8/27/3271637/bitcoin-savings-trust-pyramid-scheme-shuts-down">experienced
20244 its first pyramid game / Ponzi scheme</a>. Not very surprising, given
20245 how members of "small" communities tend to trust each other. I guess
20246 enterprising crocks will try again and again, as they do anywhere
20247 wealth is available.</p>
20248
20249 </div>
20250 <div class="tags">
20251
20252
20253 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>.
20254
20255
20256 </div>
20257 </div>
20258 <div class="padding"></div>
20259
20260 <div class="entry">
20261 <div class="title">
20262 <a href="http://people.skolelinux.org/pere/blog/12_years_of_outages___summarised_by_Stuart_Kendrick.html">12 years of outages - summarised by Stuart Kendrick</a>
20263 </div>
20264 <div class="date">
20265 26th October 2012
20266 </div>
20267 <div class="body">
20268 <p>I work at the <a href="http://www.uio.no/">University of Oslo</a>
20269 looking after the computers, mostly on the unix side, but in general
20270 all over the place. I am also a member (and currently leader) of
20271 <a href="http://www.nuug.no/">the NUUG association</a>, which in turn
20272 make me a member of <a href="http://www.usenix.org/">USENIX</a>. NUUG
20273 is an member organisation for us in Norway interested in free
20274 software, open standards and unix like operating systems, and USENIX
20275 is a US based member organisation with similar targets. And thanks to
20276 these memberships, I get all issues of the great USENIX magazine
20277 <a href="https://www.usenix.org/publications/login">;login:</a> in the
20278 mail several times a year. The magazine is great, and I read most of
20279 it every time.</p>
20280
20281 <p>In the last issue of the USENIX magazine ;login:, there is an
20282 article by <a href="http://www.skendric.com/">Stuart Kendrick</a> from
20283 Fred Hutchinson Cancer Research Center titled
20284 "<a href="https://www.usenix.org/publications/login/october-2012-volume-37-number-5/what-takes-us-down">What
20285 Takes Us Down</a>" (longer version also
20286 <a href="http://www.skendric.com/problem/incident-analysis/2012-06-30/What-Takes-Us-Down.pdf">available
20287 from his own site</a>), where he report what he found when he
20288 processed the outage reports (both planned and unplanned) from the
20289 last twelve years and classified them according to cause, time of day,
20290 etc etc. The article is a good read to get some empirical data on
20291 what kind of problems affect a data centre, but what really inspired
20292 me was the kind of reporting they had put in place since 2000.<p>
20293
20294 <p>The centre set up a mailing list, and started to send fairly
20295 standardised messages to this list when a outage was planned or when
20296 it already occurred, to announce the plan and get feedback on the
20297 assumtions on scope and user impact. Here is the two example from the
20298 article: First the unplanned outage:
20299
20300 <blockquote><pre>
20301 Subject: Exchange 2003 Cluster Issues
20302 Severity: Critical (Unplanned)
20303 Start: Monday, May 7, 2012, 11:58
20304 End: Monday, May 7, 2012, 12:38
20305 Duration: 40 minutes
20306 Scope: Exchange 2003
20307 Description: The HTTPS service on the Exchange cluster crashed, triggering
20308 a cluster failover.
20309
20310 User Impact: During this period, all Exchange users were unable to
20311 access e-mail. Zimbra users were unaffected.
20312 Technician: [xxx]
20313 </pre></blockquote>
20314
20315 Next the planned outage:
20316
20317 <blockquote><pre>
20318 Subject: H Building Switch Upgrades
20319 Severity: Major (Planned)
20320 Start: Saturday, June 16, 2012, 06:00
20321 End: Saturday, June 16, 2012, 16:00
20322 Duration: 10 hours
20323 Scope: H2 Transport
20324 Description: Currently, Catalyst 4006s provide 10/100 Ethernet to end-
20325 stations. We will replace these with newer Catalyst
20326 4510s.
20327 User Impact: All users on H2 will be isolated from the network during
20328 this work. Afterward, they will have gigabit
20329 connectivity.
20330 Technician: [xxx]
20331 </pre></blockquote>
20332
20333 <p>He notes in his article that the date formats and other fields have
20334 been a bit too free form to make it easy to automatically process them
20335 into a database for further analysis, and I would have used ISO 8601
20336 dates myself to make it easier to process (in other words I would ask
20337 people to write '2012-06-16 06:00 +0000' instead of the start time
20338 format listed above). There are also other issues with the format
20339 that could be improved, read the article for the details.</p>
20340
20341 <p>I find the idea of standardising outage messages seem to be such a
20342 good idea that I would like to get it implemented here at the
20343 university too. We do register
20344 <a href="http://www.uio.no/tjenester/it/aktuelt/planlagte-tjenesteavbrudd/">planned
20345 changes and outages in a calendar</a>, and report the to a mailing
20346 list, but we do not do so in a structured format and there is not a
20347 report to the same location for unplanned outages. Perhaps something
20348 for other sites to consider too?</p>
20349
20350 </div>
20351 <div class="tags">
20352
20353
20354 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>, <a href="http://people.skolelinux.org/pere/blog/tags/usenix">usenix</a>.
20355
20356
20357 </div>
20358 </div>
20359 <div class="padding"></div>
20360
20361 <div class="entry">
20362 <div class="title">
20363 <a href="http://people.skolelinux.org/pere/blog/Amazon_steal_books_from_customer_and_throw_out_her_out_without_any_explanation.html">Amazon steal books from customer and throw out her out without any explanation</a>
20364 </div>
20365 <div class="date">
20366 22nd October 2012
20367 </div>
20368 <div class="body">
20369 <p>A blog post from Martin Bekkelund today tell the story of
20370 <a href="http://www.bekkelund.net/2012/10/22/outlawed-by-amazon-drm/">how
20371 Amazon erased the books from a customer's kindle, locked the account
20372 and refuse to tell the customer why</a>. If a real book store did
20373 this to a customer, it would be called breaking into private property
20374 and theft. The story has spread around the net today. A bit more
20375 background information is available in Norwegian from
20376 <a href="http://www.digi.no/904658/hun-ble-kastet-ut-av-amazon">digi.no</a>.
20377 It is no surprise that digital restriction mechanisms (DRM) are used
20378 this way, as it has been warned about such abuse since DRM was
20379 introduced many years back. And Amazon proved in 2009 that it was
20380 willing to
20381 <a href="http://boingboing.net/2009/07/20/amazons-orwellian-de.html">
20382 break into customers equipment and remove the books</a> people had
20383 bought, when it removed the book 1984 by George Orwell from all the
20384 customers who had bought it. From the official comments, it even
20385 sounded like
20386 <a href="http://www.nytimes.com/2009/07/18/technology/companies/18amazon.html">Amazon
20387 would never do that again</a>. And here we are, three years
20388 later.</p>
20389
20390 <p>And thought this action is
20391 <a href="http://www.itavisen.no/904648/forbrukerraadet-helt-haarreisende">against
20392 Norwegian regulations and law</a>, it is according to the terms of use
20393 as written by Amazon, and it is hard to hold Amazon accountable to
20394 Norwegian laws. It is just yet another example of unacceptable terms
20395 of use on the web, and how they are used to remove customer
20396 rights.</p>
20397
20398 <p>Luckily for electronic books, there are alternatives without
20399 unacceptable terms. For example
20400 <a href="http://www.gutenberg.org/">Project Gutenberg</a> (about 40,000
20401 books), <a href="http://runeberg.org/">Project Runenberg</a> (1,652
20402 books) and <a href="http://www.archive.org/details/texts">The Internet
20403 Archive</a> (3,641,797 books) have heaps of books without DRM, which
20404 can read by anyone and shared with anyone.</p>
20405
20406 <p>Update 2012-10-23: This story broke in the morning on Monday. In
20407 the evening after the story had spread all across the Internet, Amazon
20408 restored the account of the user, as reported by
20409 <a href="http://www.digi.no/904675/helomvending-fra-amazon">digi.no</a>
20410 and <a href="http://nrk.no/kultur-og-underholdning/1.8368487">NRK</a>.
20411 Apparently public pressure work. The story from Martin have seen
20412 several twitter messages per minute the last 24 hours, which is quite
20413 a lot, and is still drawing a lot of attention. But even when the
20414 account is restored, the fundamental problem still exist. I recommend
20415 reading two opinions from
20416 <a href="http://blogs.computerworlduk.com/simon-says/2012/10/rights-you-have-no-right-to-your-ebooks/index.htm">Simon
20417 Phipps</a> and
20418 <a href="http://blogs.computerworlduk.com/open-enterprise/2012/10/is-amazon-playing-fair/index.htm">Glen
20419 Moody</a> if you want to learn more about the fundamentals and more
20420 details about the original story.</p>
20421
20422 </div>
20423 <div class="tags">
20424
20425
20426 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>.
20427
20428
20429 </div>
20430 </div>
20431 <div class="padding"></div>
20432
20433 <div class="entry">
20434 <div class="title">
20435 <a href="http://people.skolelinux.org/pere/blog/The_fight_for_freedom_and_privacy.html">The fight for freedom and privacy</a>
20436 </div>
20437 <div class="date">
20438 18th October 2012
20439 </div>
20440 <div class="body">
20441 <p>Civil liberties and privacy in the western world are going down the
20442 drain, and it is hard to fight against it. I try to do my best, but
20443 time is limited. I hope you do your best too. A few years ago I came
20444 across a marvellous drawing by
20445 <a href="http://www.claybennett.com/about.html">Clay Bennett</a>
20446 visualising some of what is going on.
20447
20448 <p><a href="http://www.claybennett.com/pages/security_fence.html">
20449 <img src="http://www.claybennett.com/images/archivetoons/security_fence.jpg"></a></p>
20450
20451 <blockquote>
20452 «They who can give up essential liberty to obtain a little temporary
20453 safety, deserve neither liberty nor safety.» - Benjamin Franklin
20454 </blockquote>
20455
20456 <p>Do you feel safe at the airport? I do not. Do you feel safe when
20457 you see a surveillance camera? I do not. Do you feel safe when you
20458 leave electronic traces of your behaviour and opinions? I do not. I
20459 just remember <a href="http://en.wikipedia.org/wiki/Panopticon">the
20460 Panopticon</a>, and can not help to think that we are slowly
20461 transforming our society to a huge Panopticon on our own.</p>
20462
20463 </div>
20464 <div class="tags">
20465
20466
20467 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>.
20468
20469
20470 </div>
20471 </div>
20472 <div class="padding"></div>
20473
20474 <div class="entry">
20475 <div class="title">
20476 <a href="http://people.skolelinux.org/pere/blog/ColonHelp_produser_sue_WordPress_to_silence_critic.html">ColonHelp produser sue WordPress to silence critic</a>
20477 </div>
20478 <div class="date">
20479 12th October 2012
20480 </div>
20481 <div class="body">
20482 <p>Thanks to a blog post by
20483 <a href="http://ramblingfoo.blogspot.no/2012/10/a-shitstorm-is-comming.html">Eddy
20484 Petrișor</a>, I became aware of yet another "alternative medicine"
20485 company using legal intimidation tactics to scare off critics.
20486 According to the originating blog post about the detox "cure"
20487 <a href="http://insulaindoielii.wordpress.com/2012/10/11/colon-help-sues-wordpress/">ColonHelp
20488 and its producers Zenyth Pharmaceuticals actions</a>, the producer
20489 sues Wordpress to get rid of the critical information. To check if
20490 the story was for real, I contacted Automattic, the company behind
20491 wordpress.com, and they reply was "We can confirm that Zenyth is
20492 seeking a court order against WordPress / Automattic. However, we
20493 don't believe the Terms of Service have been violated in this
20494 matter".</p>
20495
20496 <p>The story seem to be simply that a blogger checked the scientific
20497 foundation for a popular health product in Rumania, ColonHelp, and
20498 reported that there was no reason at all to believe it improved the
20499 health of its users. This caused the company behind the product,
20500 Zenyth Pharmaceuticals, to use legal intimidation to try to silence
20501 the critic, instead of presenting its views and scientific foundation
20502 to argue its side.</p>
20503
20504 <p>This is the usual story, and the Zenyth Pharmaceuticals company
20505 deserve everyone to know how it failed to act properly. Lets hope the
20506 <a href="http://en.wikipedia.org/wiki/Streisand_effect">Streisand
20507 effect</a> can make it rethink its strategy.</p>
20508
20509 <p>What is the harm, you might think. I suggest you take a look at
20510 <a href="http://www.whatstheharm.net/detoxification.html">a list of
20511 victims of detoxification</a>.</p>
20512
20513 </div>
20514 <div class="tags">
20515
20516
20517 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis</a>.
20518
20519
20520 </div>
20521 </div>
20522 <div class="padding"></div>
20523
20524 <div class="entry">
20525 <div class="title">
20526 <a href="http://people.skolelinux.org/pere/blog/Why_is_your_local_library_collecting_the__wrong__computer_books_.html">Why is your local library collecting the "wrong" computer books?</a>
20527 </div>
20528 <div class="date">
20529 3rd October 2012
20530 </div>
20531 <div class="body">
20532 <p>I just read the blog post from Tim Retout
20533 <a href="http://retout.co.uk/blog/2012/10/02/the-library-challenge">about
20534 the computer science book collection available in his local
20535 library</a>, and just wanted to share my comment on his theory about
20536 computer books becoming obsolete so soon. That is part of the reason
20537 why the selection is so sad in almost any local library (it is in mine
20538 too), but I believe the major contributing factor is that the people
20539 buying books to the library have no way to know a good and future
20540 computer classic from trash. And they need to know which one will
20541 become a classic in the future, as they would normally buy one of the
20542 recently published books.</p>
20543
20544 <p>During my university years, I worked for a while at the university
20545 library, and even there the person in charge of buying computer
20546 related books (and in fact any natural science related book), did not
20547 know enough about computers to make a good educated guess. Once, just
20548 before Christmas, they had some leftover money on the book budget and
20549 I was asked if I could pick out a lot of computer books in the
20550 university book store, for the library to buy for their collection. I
20551 had a great time picking all the books I dreamt of buying and reading,
20552 and the books I knew were classics (like most of the
20553 <a href="http://en.wikipedia.org/wiki/W._Richard_Stevens">Stevens
20554 collection</a>). I picked several of the generic O'Reilly books (ie
20555 documenting protocols, formats and systems, not specific versions of
20556 products) and stayed away from the 'teach yourself X in N days' class.
20557 I had a great time, and probably picked out more than a hundred books
20558 for the library that evening.</p>
20559
20560 <p>The sad fact is that there is no way a overworked librarian is
20561 going to know that for example
20562 <a href="http://en.wikipedia.org/wiki/The_Practice_of_Programming">The
20563 Practice of Programming</a> is a must-have in any computer library,
20564 and they will most of the time end up picking the wrong books to buy.
20565 Perhaps you can help your local library make better choices by giving
20566 the suggestions for books to get? I know they would love to hear from
20567 you, even if their budget might block them from getting your favourite
20568 book right away.</p>
20569
20570 </div>
20571 <div class="tags">
20572
20573
20574 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
20575
20576
20577 </div>
20578 </div>
20579 <div class="padding"></div>
20580
20581 <div class="entry">
20582 <div class="title">
20583 <a href="http://people.skolelinux.org/pere/blog/Seventy_percent_done_with_Norwegian_docbook_version_of_Free_Culture.html">Seventy percent done with Norwegian docbook version of Free Culture</a>
20584 </div>
20585 <div class="date">
20586 23rd September 2012
20587 </div>
20588 <div class="body">
20589 <p>Since this summer, I have worked in my spare time on a Norwegian <a
20590 href="http://www.docbook.org/">docbook</a> version of the 2004 book <a
20591 href="http://free-culture.cc/">Free Culture</a> by Lawrence Lessig.
20592 The reason is that this book is a great primer on what problems exist
20593 in the current copyright laws, and I want it to be available also for
20594 those that are reluctant do read an English book.
20595
20596 When I started, I
20597 <a href="http://people.skolelinux.org/pere/blog/Dugnad_for___sende_norsk_versjon_av_Free_Culture_til_stortingets_representanter_.html">called
20598 for volunteers</a> to help me, but too few have volunteered so far,
20599 and progress is a bit slow. Anyway, today I broken the 70 percent
20600 mark for the first rough translation. At the moment, less than 700
20601 strings (paragraphs, index terms, titles) are left to translate. With
20602 my current progress of 10-20 strings per day, it will take a while to
20603 complete the translation. This graph show the updated progress:</p>
20604
20605 <img width="80%" align="center" src="https://github.com/petterreinholdtsen/free-culture-lessig/raw/master/progress.png">
20606
20607 <p>Progress have slowed down lately due to family and work
20608 commitments. If you want to help, please get in touch, and check out
20609 the project files currently available from
20610 <a href="https://github.com/petterreinholdtsen/free-culture-lessig">github</a>.</p>
20611
20612 <p>If you are curious what the translated book currently look like,
20613 the updated
20614 <a href="https://github.com/petterreinholdtsen/free-culture-lessig/blob/master/archive/freeculture.nb.pdf?raw=true">PDF</a>
20615 and
20616 <a href="https://github.com/petterreinholdtsen/free-culture-lessig/blob/master/archive/freeculture.nb.epub?raw=true">EPUB</a>
20617 are published on github. The HTML version is published as well, but
20618 github hand it out with MIME type text/plain, confusing browsers, so I
20619 saw no point in linking to that version.</p>
20620
20621 </div>
20622 <div class="tags">
20623
20624
20625 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>.
20626
20627
20628 </div>
20629 </div>
20630 <div class="padding"></div>
20631
20632 <div class="entry">
20633 <div class="title">
20634 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Giorgio_Pioda.html">Debian Edu interview: Giorgio Pioda</a>
20635 </div>
20636 <div class="date">
20637 17th September 2012
20638 </div>
20639 <div class="body">
20640 <p>After a long break in my row of interviews with people in the
20641 <a href="http://www.skolelinux.org/">Debian Edu and Skolelinux</a>
20642 community, I finally found time to wrap up another. This time it is
20643 Giorgio Pioda, which showed up on the mailing list at the start of
20644 this year, asking questions and inspiring us to improve the first time
20645 administrators experience with Skolelinux. :) The interview was
20646 conduced in May, but I only found time to publish it now.</p>
20647
20648 <p><strong>Who are you, and how do you spend your days?</strong></p>
20649
20650 <p>I have a PhD in chemistry but since several years I work as teacher
20651 in secondary (15-18 year old students) and tertiary (a kind of "light"
20652 university) schools. Five years ago I started to manage a Learning
20653 Management Service server and slowly I got more and more involved with
20654 IT. 3 years ago the graduating schools moved completely to Linux and I
20655 got the head of the IT for this. The experience collected in chemistry
20656 labs computers (for example NMR analysis of protein folding) and in
20657 the IT-courses during university where sufficient to start. Self
20658 training is anyway very important</p>
20659
20660 <p>I live in the Italian speaking part of Switzerland, and the
20661 <a href="http://www.spse.ch/">SPSE school</a> (secondary) is a very
20662 special sport school for young people who try to became sport pro (for
20663 all sports, we have dozens of disciplines represented) and we are
20664 recognised by the Olympic Swiss Organisation.
20665
20666 <p><strong>How did you get in contact with the Skolelinux/Debian Edu
20667 project?</strong></p>
20668
20669 <p>Looking for Linux / Primary Domain Controller (PDC) I found it
20670 already several years ago. But since the system was still not
20671 Kerberized and since our schools relies strongly on laptops I didn't
20672 use it. I plan to introduce it in the next future, probably for the
20673 next school year, since the squeeze release solved this security
20674 hole.</p>
20675
20676 <p><strong>What do you see as the advantages of Skolelinux/Debian
20677 Edu?</strong></p>
20678
20679 <p>Many. First of all there is a strong and living community that is
20680 very generous for help and hints. Chat help is crucial, together with
20681 the mailing list. Second. With Skolelinux you get an already well
20682 engineered platform and you don't have to start to build up your PDC
20683 and your clients from GNU/scratch; I've already done this once and I
20684 can tell it, it is hard. Third, since Skolelinux is a standard
20685 platform, it is way easier to educate other IT people and even if the
20686 head IT is sick another one could pick up the task without too much
20687 hassle.</p>
20688
20689 <p><strong>What do you see as the disadvantages of Skolelinux/Debian
20690 Edu?</strong></p>
20691
20692 <p>The only real problem I see is that it is a little too less
20693 flexible at client level. Debian stable is rocky and desirable, but
20694 there are many reasons that force for another choice. For example the
20695 need of new drivers for new PC, or the need for a specific OS for some
20696 devices that have specific software packages for another specific
20697 distribution (I have such a case for whiteboards that have only
20698 Ubuntu packages). Thus, I prepared compatibility packages educlient
20699 and eduroaming, hoping not to use them ;-)</p>
20700
20701 <p><strong>Which free software do you use daily?</strong></p>
20702
20703 <p>I have a Debian Stable PDC at school (Kerberos, NIS, NFS) with
20704 mixed Debian and Ubuntu clients. If you think that this triad
20705 combination is exotic... well I discovered right yesterday that
20706 <a href="http://moo.nac.uci.edu/~hjm/Perceus-Report.html">Perceus</a>
20707 has the same...</p>
20708
20709 <p>For myself I run Debian wheezy/sid, but this combination is good
20710 only I you have enough competence to fix stuff for yourself, if
20711 something breaks. Daily I use texmacs, gnumeric, a little bit of R
20712 statistics, kmplot, and less frequently OpenOffice.org.</p>
20713
20714 <p><strong>Which strategy do you believe is the right one to use to
20715 get schools to use free software?</strong></p>
20716
20717 <P>I think that the only real argument that school managers "hear" is
20718 cost reduction. They don't give too much weight on quality, stability,
20719 just because they are normally not open to change.</p>
20720
20721 <p>Students adapts very quickly to GNU/Linux (and for them being able
20722 to switch between different OS is a plus value); teachers and managers
20723 don't.</p>
20724
20725 <p>We decided to move to Linux because students at our school have own
20726 laptop and we have the responsibility to keep the laptop ready to use;
20727 we were really unsatisfied with Microsoft since every Monday we had 20
20728 machine to fix for viral infections... With Linux this has been
20729 reduced to zero, since people installs almost only from official
20730 repositories. I think that our special needs brought us to Linux.
20731 Those who don't have such needs will hardly move to Linux.</p>
20732
20733 </div>
20734 <div class="tags">
20735
20736
20737 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju</a>.
20738
20739
20740 </div>
20741 </div>
20742 <div class="padding"></div>
20743
20744 <div class="entry">
20745 <div class="title">
20746 <a href="http://people.skolelinux.org/pere/blog/IETF_activity_to_standardise_video_codec.html">IETF activity to standardise video codec</a>
20747 </div>
20748 <div class="date">
20749 15th September 2012
20750 </div>
20751 <div class="body">
20752 <p>After the
20753 <a href="http://people.skolelinux.org/pere/blog/IETF_standardize_its_first_multimedia_codec__Opus.html">Opus
20754 codec made</a> it into <a href="http://www.ietf.org/">IETF</a> as
20755 <a href="http://tools.ietf.org/html/rfc6716">RFC 6716</a>, I had a look
20756 to see if there is any activity in IETF to standardise a video codec
20757 too, and I was happy to discover that there is some activity in this
20758 area. A non-"working group" mailing list
20759 <a href="https://www.ietf.org/mailman/listinfo/video-codec">video-codec</a>
20760 was
20761 <a href="http://ietf.10.n7.nabble.com/New-Non-WG-Mailing-List-video-codec-Video-codec-BoF-discussion-list-td119548.html">created 2012-08-20</a>. It is intended to discuss the topic and if a
20762 formal working group should be formed.</p>
20763
20764 <p>I look forward to see how this plays out. There is already
20765 <a href="http://www.ietf.org/mail-archive/web/video-codec/current/msg00003.html">an
20766 email from someone</a> in the MPEG group at ISO asking people to
20767 participate in the ISO group. Given how ISO failed with OOXML and given
20768 that it so far (as far as I can remember) only have produced
20769 multimedia formats requiring royalty payments, I suspect
20770 joining the ISO group would be a complete waste of time, but I am not
20771 involved in any codec work and my opinion will not matter much.</p>
20772
20773 <p>If one of my readers is involved with codec work, I hope she will
20774 join this work to standardise a royalty free video codec within
20775 IETF.</p>
20776
20777 </div>
20778 <div class="tags">
20779
20780
20781 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
20782
20783
20784 </div>
20785 </div>
20786 <div class="padding"></div>
20787
20788 <div class="entry">
20789 <div class="title">
20790 <a href="http://people.skolelinux.org/pere/blog/IETF_standardize_its_first_multimedia_codec__Opus.html">IETF standardize its first multimedia codec: Opus</a>
20791 </div>
20792 <div class="date">
20793 12th September 2012
20794 </div>
20795 <div class="body">
20796 <p>Yesterday, <a href="http://www.ietf.org/">IETF</a> announced the
20797 publication of of
20798 <a href="http://tools.ietf.org/html/rfc6716">RFC 6716, the Definition
20799 of the Opus Audio Codec</a>, a low latency, variable bandwidth, codec
20800 intended for both VoIP, film and music. This is the first time, as
20801 far as I know, that IETF have standardized a multimedia codec. In
20802 <a href="http://tools.ietf.org/html/rfc3533">RFC 3533</a>, IETF
20803 standardized the OGG container format, and it has proven to be a great
20804 royalty free container for audio, video and movies. I hope IETF will
20805 continue to standardize more royalty free codeces, after ISO and MPEG
20806 have proven incapable of securing everyone equal rights to publish
20807 multimedia content on the Internet.</p>
20808
20809 <p>IETF require two interoperating independent implementations to
20810 ratify a standard, and have so far ensured to only standardize royalty
20811 free specifications. Both are key factors to allow everyone (rich and
20812 poor), to compete on equal terms on the Internet.</p>
20813
20814 <p>Visit the <a href="http://opus-codec.org/">Opus project page</a> if
20815 you want to learn more about the solution.</p>
20816
20817 </div>
20818 <div class="tags">
20819
20820
20821 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
20822
20823
20824 </div>
20825 </div>
20826 <div class="padding"></div>
20827
20828 <div class="entry">
20829 <div class="title">
20830 <a href="http://people.skolelinux.org/pere/blog/Git_repository_for_song_book_for_Computer_Scientists.html">Git repository for song book for Computer Scientists</a>
20831 </div>
20832 <div class="date">
20833 7th September 2012
20834 </div>
20835 <div class="body">
20836 <p>As I
20837 <a href="http://people.skolelinux.org/pere/blog/Song_book_for_Computer_Scientists.html">mentioned
20838 this summer</a>, I have created a Computer Science song book a few
20839 years ago, and today I finally found time to create a public
20840 <a href="https://gitorious.org/pere-cs-songbook/pere-cs-songbook">Gitorious
20841 repository for the project</a>.</p>
20842
20843 <p>If you want to help out, please clone the source and submit patches
20844 to the HTML version. To generate the PDF and PostScript version,
20845 please use prince XML, or let me know about a useful free software
20846 processor capable of creating a good looking PDF from the HTML.</p>
20847
20848 <p>Want to sing? You can still find the song book in HTML, PDF and
20849 PostScript formats at
20850 <a href="http://www.hungry.com/~pere/cs-songbook/">Petter's Computer
20851 Science Songbook</a>.</p>
20852
20853 </div>
20854 <div class="tags">
20855
20856
20857 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/multimedia">multimedia</a>.
20858
20859
20860 </div>
20861 </div>
20862 <div class="padding"></div>
20863
20864 <div class="entry">
20865 <div class="title">
20866 <a href="http://people.skolelinux.org/pere/blog/Free_software_forced_Microsoft_to_open_Office__and_don_t_forget_Officeshots_.html">Free software forced Microsoft to open Office (and don't forget Officeshots)</a>
20867 </div>
20868 <div class="date">
20869 23rd August 2012
20870 </div>
20871 <div class="body">
20872 <p>I came across a great comment from Simon Phipps today, about how
20873 <a href="http://www.infoworld.com/d/open-source-software/how-microsoft-was-forced-open-office-200233">Microsoft
20874 have been forced to open Office</a>, and it made me remember and
20875 revisit the great site
20876 <a href="http://www.officeshots.org/">officeshots</a> which allow you
20877 to check out how different programs present the ODF file format. I
20878 recommend both to those of my readers interested in ODF. :)</p>
20879
20880 </div>
20881 <div class="tags">
20882
20883
20884 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>.
20885
20886
20887 </div>
20888 </div>
20889 <div class="padding"></div>
20890
20891 <div class="entry">
20892 <div class="title">
20893 <a href="http://people.skolelinux.org/pere/blog/Half_way_there_with_translated_docbook_version_of_Free_Culture.html">Half way there with translated docbook version of Free Culture</a>
20894 </div>
20895 <div class="date">
20896 17th August 2012
20897 </div>
20898 <div class="body">
20899 <p>In my spare time, I currently work on a Norwegian
20900 <a href="http://www.docbook.org/">docbook</a> version of the 2004 book
20901 <a href="http://free-culture.cc/">Free Culture</a> by Lawrence Lessig,
20902 to get a Norwegian text explaining the problems with the copyright law
20903 I can give to my parents and others that are reluctant to read an
20904 English book. It is a marvellous set of examples on how the ever
20905 expanding copyright regulations hurt culture and society. When the
20906 translation is done, I hope to find funding to print and ship a copy
20907 to all the members of the Norwegian parliament, before they sit down
20908 to debate the latest revisions to the Norwegian copyright law. This
20909 summer I
20910 <a href="http://people.skolelinux.org/pere/blog/Dugnad_for___sende_norsk_versjon_av_Free_Culture_til_stortingets_representanter_.html">called
20911 for volunteers</a> to help me, and I have been able to secure the
20912 valuable contribution from at least one other Norwegian.</p>
20913
20914 <p>Two days ago, we finally broke the 50% mark. Then more than 50% of
20915 the number of strings to translate (normally paragraphs, but also
20916 titles and index entries are also counted). All parts from the
20917 beginning up to and including chapter four is translated. So is
20918 chapters six, seven and the conclusion. I created a graph to show the
20919 progress:</p>
20920
20921 <img width="80%" align="center" src="https://github.com/petterreinholdtsen/free-culture-lessig/raw/master/progress.png">
20922
20923 <p>The number of strings to translate increase as I insert the index
20924 entries into the docbook. They were missing with the docbook version
20925 I initially started with. There are still quite a few index entries
20926 missing, but everyone starting with A, B, O, Z and Y are done. I
20927 currently focus on completing the index entries, to get a complete
20928 english version of the docbook source.</p>
20929
20930 <p>There is still need for translators and people with docbook
20931 knowledge, to be able to get a good looking book (I still struggle
20932 with dblatex, xmlto and docbook-xsl) as well as to do the draft
20933 translation and proof reading. And I would like the figures to be
20934 redrawn as SVGs to make it easy to translate them. Any SVG master
20935 around? I am sure there are some legal terms that are unfamiliar to
20936 me. If you want to help, please get in touch, and check out the
20937 project files currently available from <a
20938 href="https://github.com/petterreinholdtsen/free-culture-lessig">github</a>.</p>
20939
20940 <p>If you are curious what the translated book currently look like,
20941 the updated
20942 <a href="https://github.com/petterreinholdtsen/free-culture-lessig/blob/master/archive/freeculture.nb.pdf?raw=true">PDF</a>
20943 and
20944 <a href="https://github.com/petterreinholdtsen/free-culture-lessig/blob/master/archive/freeculture.nb.epub?raw=true">EPUB</a>
20945 are published on github. The HTML version is published as well, but
20946 github hand it out with MIME type text/plain, confusing browsers, so I
20947 saw no point in linking to that version.</p>
20948
20949 </div>
20950 <div class="tags">
20951
20952
20953 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>.
20954
20955
20956 </div>
20957 </div>
20958 <div class="padding"></div>
20959
20960 <div class="entry">
20961 <div class="title">
20962 <a href="http://people.skolelinux.org/pere/blog/Notes_on_language_codes_for_Norwegian_docbook_processing___.html">Notes on language codes for Norwegian docbook processing...</a>
20963 </div>
20964 <div class="date">
20965 10th August 2012
20966 </div>
20967 <div class="body">
20968 <p>In <a href="http://www.docbook.org/">docbook</a> one can specify
20969 the language used at the top, and the processing pipeline will use
20970 this information to pick the correct translations for 'chapter', 'see
20971 also', 'index' etc. And for most languages used with docbook, I guess
20972 this work just fine. For example a German user can start the document
20973 with &lt;book lang="de"&gt;, and the document will show up with the
20974 correct content with any of the docbook processors. This is not the
20975 case for the language
20976 <a href="http://people.skolelinux.org/pere/blog/Free_Culture_in_Norwegian___5_chapters_done__74_percent_left_to_do.html">I
20977 am working with at the moment</a>, Norwegian Bokmål.</p>
20978
20979 <p>For a while, I was confused about which language code to use,
20980 because I was unable to find any language code that would work across
20981 all tools. I am currently testing dblatex, xmlto, docbook-xsl, and
20982 dbtoepub, and they do not handle Norwegian Bokmål the same way. Some
20983 of them do not handle it at all.</p>
20984
20985 <p>A bit of background information is probably needed to understand
20986 this mess. Norwegian is not one, but two written variants. The
20987 variants are Norwegian Nynorsk and Norwegian Bokmål. There are three
20988 two letter language codes associated with these languages, Norwegian
20989 is 'no', Norwegian Nynorsk is 'nn' and Norwegian Bokmål is 'nb'.
20990 Historically the 'no' language code was used for Norwegian Bokmål, but
20991 many years ago this was found to be å bad idea, and the recommendation
20992 is to use the most specific language code instead, to avoid confusion.
20993 In the transition period it is a good idea to make sure 'no' was an
20994 alias for 'nb'.</p>
20995
20996 <p>Back to docbook processing tools in Debian. The dblatex tool only
20997 understand 'nn'. There are translations for 'no', but not 'nb' (BTS
20998 <a href="http://bugs.debian.org/684391">#684391</a>), but due to a bug
20999 (BTS <a href="http://bugs.debian.org/682936">#682936</a>) the 'no'
21000 language code is not recognised. The docbook-xsl tool chain only
21001 recognise 'nn' and 'nb', but not 'no'. The xmlto tool only recognise
21002 'nn' and 'nb', but not 'no'. The end result that there is no language
21003 code I can use to get the docbook file working with all of these tools
21004 at the same time. :(</p>
21005
21006 <p>The correct solution is to use &lt;book lang="nb"&gt;, but it will
21007 take time before that will work with all the free software docbook
21008 processors. :(</p>
21009
21010 <p>Oh, the joy of well integrated tools. :/</p>
21011
21012 </div>
21013 <div class="tags">
21014
21015
21016 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>.
21017
21018
21019 </div>
21020 </div>
21021 <div class="padding"></div>
21022
21023 <div class="entry">
21024 <div class="title">
21025 <a href="http://people.skolelinux.org/pere/blog/Best_way_to_create_a_docbook_book_.html">Best way to create a docbook book?</a>
21026 </div>
21027 <div class="date">
21028 31st July 2012
21029 </div>
21030 <div class="body">
21031 <p>I tried to send this text to the
21032 <a href="https://lists.oasis-open.org/archives/docbook-apps/">docbook-apps
21033 mailing list at lists.oasis-open.org</a>, but it only accept messages
21034 from subscribers and rejected my post, and I completely lack the
21035 bandwidth required to subscribe to another mailing list, so instead I
21036 try to post my message here and hope my blog readers can help me
21037 out.</p>
21038
21039 <p>I am quite new to docbook processing, and am climbing a steep
21040 learning curve at the moment.</p>
21041
21042 <p>To give you some background, I am working on a Norwegian
21043 translation of the book Free Culture by Lawrence Lessig, and I use
21044 docbook to handle the process. The files to build the book are
21045 available from
21046 <a href="https://github.com/petterreinholdtsen/free-culture-lessig">github</a>.
21047 The book got around 400 pages with parts, images, footnotes, tables,
21048 index entries etc, which has proven to be a challenge for the free
21049 software docbook processors. My build platform is Debian GNU/Linux
21050 Squeeze.</p>
21051
21052 <p>I want to build PDF, EPUB and HTML version of the book, and have
21053 tried different tool chains to do the conversion from docbook to these
21054 formats. I am currently focusing on the PDF version, and have a few
21055 problems.</p>
21056
21057 <ul>
21058
21059 <li>Using dblatex, the &lt;part&gt; handling is not the way I want to,
21060 as &lt;/part&gt; do not really end the &lt;part&gt;. (See
21061 <a href="http://bugs.debian.org/683166">BTS report #683166</a>), the
21062 xetex backend (needed to process UTF-8) give incorrect hyphens in
21063 index references spanning several pages (See
21064 <a href="http://bugs.debian.org/682901">BTS report #682901</a>), and
21065 I am unable to get the norwegian template texts (See
21066 <a href="http://bugs.debian.org/682936">BTS report #682936</a>).</li>
21067
21068 <li>Using straight xmlto fail with some latex error (See
21069 <a href="http://bugs.debian.org/683163">BTS report
21070 #683163</a>).</li>
21071
21072 <li>Using xmlto with the fop backend fail to handle images (do not
21073 show up in the PDF), fail to handle a long footnote (overlap
21074 footnote and text body, see
21075 <a href="http://bugs.debian.org/683197">BTS report #683197</a>), and
21076 fail to create a correct index (some lack page ref, and the page
21077 refs listed are not right).</li>
21078
21079 <li>Using xmlto with the dblatex backend behave like dblatex.</li>
21080
21081 <li>Using docbook-xls with xsltproc + fop have the same footnote and
21082 index problems the xmlto + fop processing.</li>
21083
21084 </ul>
21085
21086 <p>So I wonder, what would be the best way to create the PDF version
21087 of this book? Are some of the bugs found above solved in new or
21088 experimental versions of some docbook tool chain?</p>
21089
21090 <p>What about HTML and EPUB versions?</p>
21091
21092 </div>
21093 <div class="tags">
21094
21095
21096 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>.
21097
21098
21099 </div>
21100 </div>
21101 <div class="padding"></div>
21102
21103 <div class="entry">
21104 <div class="title">
21105 <a href="http://people.skolelinux.org/pere/blog/Free_Culture_in_Norwegian___5_chapters_done__74_percent_left_to_do.html">Free Culture in Norwegian - 5 chapters done, 74 percent left to do</a>
21106 </div>
21107 <div class="date">
21108 21st July 2012
21109 </div>
21110 <div class="body">
21111 <p>I reported earlier that I am working on
21112 <a href="http://people.skolelinux.org/pere/blog/Dugnad_for___sende_norsk_versjon_av_Free_Culture_til_stortingets_representanter_.html">a
21113 norwegian version</a> of the book
21114 <a href="http://free-culture.cc/">Free Culture</a> by Lawrence Lessig.
21115 Progress is good, and yesterday I got a major contribution from Anders
21116 Hagen Jarmund completing chapter six. The source files as well as a
21117 PDF and EPUB version of this book are available from
21118 <a href="https://github.com/petterreinholdtsen/free-culture-lessig">github</a>.</p>
21119
21120 <p>I am happy to report that the draft for the first two chapters
21121 (preface, introduction) is complete, and three other chapters are also
21122 completely translated. This completes 26 percent of the number of
21123 strings (equivalent to paragraphs) in the book, and there is thus 74
21124 percent left to translate. A graph of the progress is present at the
21125 bottom of the github project page. There is still room for more
21126 contributors. Get in touch or send github pull requests with fixes if
21127 you got time and are willing to help make this book make it to
21128 print. :)</p>
21129
21130 <p>The book translation framework could also be a good basis for other
21131 translations, if you want the book to be available in your
21132 language.</p>
21133
21134 </div>
21135 <div class="tags">
21136
21137
21138 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>.
21139
21140
21141 </div>
21142 </div>
21143 <div class="padding"></div>
21144
21145 <div class="entry">
21146 <div class="title">
21147 <a href="http://people.skolelinux.org/pere/blog/Call_for_help_from_docbook_expert_to_tag_Free_Culture_by_Lawrence_Lessig.html">Call for help from docbook expert to tag Free Culture by Lawrence Lessig</a>
21148 </div>
21149 <div class="date">
21150 16th July 2012
21151 </div>
21152 <div class="body">
21153 <p>I am currently working on a
21154 <a href="http://people.skolelinux.org/pere/blog/Dugnad_for___sende_norsk_versjon_av_Free_Culture_til_stortingets_representanter_.html">project
21155 to translate</a> the book
21156 <a href="http://free-culture.cc/">Free Culture</a> by Lawrence Lessig
21157 to Norwegian. And the source we base our translation on is the
21158 <a href="http://en.wikipedia.org/wiki/DocBook">docbook</a> version, to
21159 allow us to use po4a and .po files to handle the translation, and for
21160 this to work well the docbook source document need to be properly
21161 tagged. The source files of this project is available from
21162 <a href="https://github.com/petterreinholdtsen/free-culture-lessig">github</a>.</p>
21163
21164 <p>The problem is that the docbook source have flaws, and we have
21165 no-one involved in the project that is a docbook expert. Is there a
21166 docbook expert somewhere that is interested in helping us create a
21167 well tagged docbook version of the book, and adjust our build process
21168 for the PDF, EPUB and HTML version of the book? This will provide a
21169 well tagged English version (our source document), and make it a lot
21170 easier for us to create a good Norwegian version. If you can and want
21171 to help, please get in touch with me or fork the github project and
21172 send pull requests with fixes. :)</p>
21173
21174 </div>
21175 <div class="tags">
21176
21177
21178 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>.
21179
21180
21181 </div>
21182 </div>
21183 <div class="padding"></div>
21184
21185 <div class="entry">
21186 <div class="title">
21187 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__George_Bredberg.html">Debian Edu interview: George Bredberg</a>
21188 </div>
21189 <div class="date">
21190 9th July 2012
21191 </div>
21192 <div class="body">
21193 <p>The <a href="http://www.skolelinux.org/">Debian Edu /
21194 Skolelinux</a> project have users all over the globe, but until
21195 recently we have not known about any users in Norway's neighbour
21196 country Sweden. This changed when George Bredberg showed up in March
21197 this year on the mailing list, asking interesting questions about how
21198 to adjust and scale the just released
21199 <a href="http://www.debian.org/News/2012/20120311.html">Debian Edu
21200 Wheezy</a> setup to his liking. He granted me an interview, and I am
21201 happy to share his answers with you here.</p>
21202
21203 <p><strong>Who are you, and how do you spend your days?</strong></p>
21204
21205 <p>I'm a 44 year old country guy that have been working 12 years at
21206 the same school as 50% IT-manager and 50% Teacher. My educational
21207 background is fil.kand in history and religious beliefs, an exam as a
21208 "folkhighschool" teacher, that is, for teaching grownups. In
21209 Norwegian I believe it's called "Vuxenupplaring". I also have a master
21210 in "Technology and social change". So I'm not really a tech guy, I
21211 just like to study how humans and technology interact and that is my
21212 perspective when working with IT.</p>
21213
21214 <p><strong>How did you get in contact with the Skolelinux/Debian Edu
21215 project?</strong></p>
21216
21217 I have followed the Skolelinux project for quite some time by
21218 now. Earlier I tested out the K12-LTSP project, which we used for some
21219 time, but I really like the idea of having a distribution aimed to be
21220 a complete solution for schools with necessary tools integrated. When
21221 K12-LTSP abandoned that idea some years ago, I started to look more
21222 seriously into Skolelinux instead.
21223
21224 <p><strong>What do you see as the advantages of Skolelinux/Debian
21225 Edu?</strong></p>
21226
21227 The big point of Skolelinux to me is that it is a complete
21228 distribution, ready to install. It has LDAP-support, MS Windows
21229 integration tools and so forth already configured, saving an
21230 administrator a lot of time and headache. We were using another Linux
21231 based thin-client system called Thinlinc, that has served us very
21232 well. But that Skolelinux is based on VNC and LTSP, to me, is better
21233 when it comes to the kind of multimedia used in schools. That is
21234 showing videos from Youtube or educational TV. It is also easier to
21235 mix thin clients with workstations, since the user settings will be the
21236 same. In our VNC-based solution you had to "beat around the bush" by
21237 setting up a second, hidden, home-directory for user settings for the
21238 workstations, because they will be different from the ones used on the
21239 thin clients. Skolelinux support for diskless workstations are very
21240 convenient since a school today often need to use a class room
21241 projector showing videos in full screen. That is easily done with a
21242 small integrated media computer running as a diskless workstation. You
21243 have only two installs to update and configure. One for the thin
21244 clients and one for the workstations. Also saving a lot of time. Our
21245 old system was also based on Redhat and CentOS. They are both very
21246 nice distributions, but they are sometimes painfully slow when it
21247 comes to updating multimedia support and multimedia programs (even
21248 such as Gimp), leaving us with a bit "oldish" applications. Debian is
21249 quicker to update.
21250
21251 <p><strong>What do you see as the disadvantages of Skolelinux/Debian
21252 Edu?</strong></p>
21253
21254 <p>Debian is a bit too quick when it comes to updating. As an example
21255 we use old HP terminals as thinclients, and two times already this
21256 year (2012) the updates you get from the repositories has stopped
21257 sound from working with them. It's a kernel/ALSA issue. So you have
21258 to be more careful properly testing the updates before you run them in
21259 a production environment. This has never happened with CentOS.</p>
21260
21261 <p>I also would like to be able to set my own domain-settings at
21262 install time. In Skolelinux they are kind of hard coded into the
21263 distribution, when it comes to LDAP and at least samba integration.
21264 That is more a cosmetic/translation issue, and not a real problem.
21265 Running MS Windows applications within the Skolelinux environment needs
21266 to be better supported. That is, running them seamlessly via RDP, and
21267 support for single-sign on. That will make the transition to free
21268 software easier, because you can keep the applications you really
21269 need. No support will make it impossible if you work in a school where
21270 some applications can't be open source. As for us we really need to
21271 run Adobe InDesign in our journalist classes. We run a journalist
21272 education, and is one of the very few non university ones that is ok:d
21273 by Svenska journalistförbundet (Swedish journalist association). Our
21274 education gives the pupils the right of membership there, once they
21275 are done. This is important if you want to get a job.</p>
21276
21277 <p>Adobe InDesign is the program most commonly used in newspapers and
21278 magazines. We used Quark Express before, but they seem to loose there
21279 market to Adobe. The only "equivalent" to InDesign in the opensource
21280 world is Scribus, and its not advanced enough. At least not according
21281 to the teacher. I think it would be possible to use it, because they
21282 are not supposed to learn a program, they are supposed to learn how to
21283 edit and compile a newspaper. But politically at our school we are not
21284 there yet. And Scribus lacks a lot of things you find i InDesign.</p>
21285
21286 <p>We used even a windows program for sound editing when it comes to
21287 the radio-journalist part. The year to come we are going to try
21288 Audacity. That software has the same kind of limitations compared to
21289 Adobe Audition, but that teacher is a bit more open minded. We have
21290 tried Ardour also, but that instead is more like a music studio
21291 program, not intended for the kind of editing taking place in a radio
21292 studio. Its way to complex and the GUI is to scattered when you only
21293 want to cut, make pass-overs, add extra channels and normalise. Those
21294 things you can do in Audacity, but its not as easy as in Audition. You
21295 have to do more things manually with envelopes, and that is a bit old
21296 fashion and timewasting. Its also harder to cut and move sound from
21297 one channel to another, which is a thing that you do frequently
21298 because you often find yourself needing to rearrange parts of the
21299 sound file.</p>
21300
21301 <p>So, I am not sure we will succeed in replacing even Audition, but we
21302 will try. The problem is the students have certain expectations when
21303 they start an education towards a profession. So the programs has to
21304 look and feel professional. Good thing with radio, there are many
21305 programs out there, that radio studios use, so its not as standardised
21306 as Newspaper editing. That means, it does not really matter what
21307 program they learn, because once they start working they still have to
21308 learn the program the studio uses, so instead focus has to be to learn
21309 the editing part without to much focus on a specific software.</p>
21310
21311 <p><strong>Which free software do you use daily?</strong></p>
21312
21313 <p>Myself I'm running Linux Mint, or Ubuntu these days. I use almost
21314 only open source software, and preferably Linux based. When it comes
21315 to most used applications its OpenOffice, and Firefox (of course ;)
21316 )</p>
21317
21318 <p><strong>Which strategy do you believe is the right one to use to
21319 get schools to use free software?</strong></p>
21320
21321 <p>To get schools to use free software there has to be good open
21322 source software that are windows based, to ease the transition. But
21323 it's also very important that the multimedia support is working
21324 flawlessly. The problems with Youtube, Twitter, Facebook and whatever
21325 will create problems when it comes to both teachers and
21326 students. Economy are also important for schools, so using thin
21327 clients, as long as they have good multimedia support, is a very good
21328 idea. It's also important that the open source software works even for
21329 the administration. It's hard to convince the teachers to stick with
21330 open source, if the principal has to run Windows. It also creates a
21331 problem if some classes has to use Windows for there tasks, since that
21332 will create a difference in "status" between classes, so a good
21333 support for running windows applications via the thin client (Linux)
21334 desktop is essential. At least at our school, where we have mixed
21335 level of educations, from high-school to journalist-school.</p>
21336
21337 <p>Update 2012-07-09 08:30: Paul Wise tipped me on IRC about three
21338 useful sources related to Free Software for radio stations: the LWN
21339 article <a href="https://lwn.net/Articles/481607/">Radio station
21340 management with Airtime</a>,
21341 <a href="http://www.sourcefabric.org/en/airtime/">Airtime</a> which
21342 claim to be a Free open source radio automation software and
21343 <a href="http://www.rivendellaudio.org/">Rivendell</a> which claim to
21344 be complete radio broadcast automation solution. All of them seem
21345 useful to the aspiring radio producer.</p>
21346
21347 </div>
21348 <div class="tags">
21349
21350
21351 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju</a>.
21352
21353
21354 </div>
21355 </div>
21356 <div class="padding"></div>
21357
21358 <div class="entry">
21359 <div class="title">
21360 <a href="http://people.skolelinux.org/pere/blog/Why_do_schools_waste_money_on_IT_.html">Why do schools waste money on IT?</a>
21361 </div>
21362 <div class="date">
21363 8th July 2012
21364 </div>
21365 <div class="body">
21366 <p>In the Debian Edu / Skolelinux project, we have realised that one
21367 of the major blockers for the project success is the purchasing skills
21368 in schools and municipalities. We provide what the happy users of
21369 Debian Edu / Skolelinux say they need and to a lower cost than the
21370 alternatives, and yet so few schools decide to use our solution. I
21371 was pleased to discover the same observation done by mySociety and Tom
21372 Steinberg in his blog post
21373 "<a href="http://www.mysociety.org/2012/06/19/can-you-recognize-the-million-pound-chair/">Can
21374 you recognize the million pound chair?</a>". Read it and weep for the
21375 spending of your tax money.</p>
21376
21377 <p>Of course there are other factors involved as well, like our
21378 projects bad marketing skills and the Linux community fragmentation
21379 causing worry with the people on the outside, so we as a project need
21380 to keep working hard to gain users, but it is a up-hill battle when
21381 public decision makers are unable to understand computer system
21382 purchases.</p>
21383
21384 </div>
21385 <div class="tags">
21386
21387
21388 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
21389
21390
21391 </div>
21392 </div>
21393 <div class="padding"></div>
21394
21395 <div class="entry">
21396 <div class="title">
21397 <a href="http://people.skolelinux.org/pere/blog/Free_Timetabling_Software___nice_free_software.html">Free Timetabling Software - nice free software</a>
21398 </div>
21399 <div class="date">
21400 7th July 2012
21401 </div>
21402 <div class="body">
21403 <p>Included in <a href="http://www.skolelinux.org/">Debian Edu /
21404 Skolelinux</a> is a large collection of end user and school specific
21405 software. It is one of the packages not installed by default but
21406 provided in the Debian archive for schools to install if they want to,
21407 is a system to automatically plan the school time table using
21408 information about available teachers, classes and rooms, combined with
21409 the list of required courses and how many hours each topic should
21410 receive. The software is
21411
21412 <a href="http://lalescu.ro/liviu/fet/">named FET</a>, and it provide a
21413 graphical user interface to input the required information, save the
21414 result in a fairly simple XML format, and generate time tables for
21415 both teachers and students. It is available both for
21416 <a href="http://lalescu.ro/liviu/fet/download.html">Linux, MacOSX and
21417 Windows</a>.</p>
21418
21419 <p>This is <a href="http://lalescu.ro/liviu/fet/features.html">the
21420 feature list</a>, liftet from the project web site:</p>
21421
21422 <p><ul>
21423
21424 <li>FET is free software, licensed under the GNU GPL v2 or later.
21425 You can freely use, copy, modify and redistribute it </li>
21426
21427 <li>Localized to en_US (US English, default), ar (Arabic), ca
21428 (Catalan), da (Danish), de (German), el (Greek), es (Spanish), fa
21429 (Persian), fr (French), gl (Galician), he (Hebrew), hu
21430 (Hungarian), id (Indonesian), it (Italian), lt (Lithuanian), mk
21431 (Macedonian), ms (Malay), nl (Dutch), pl (Polish), pt_BR
21432 (Brazilian Portuguese), ro (Romanian), ru (Russian), si (Sinhala),
21433 sk (Slovak), sr (Serbian), tr (Turkish), uk (Ukrainian), uz
21434 (Uzbek) and vi (Vietnamese) (incompletely for some languages)
21435 </li>
21436
21437 <li>Fully automatic generation algorithm, allowing also
21438 semi-automatic or manual allocation</li>
21439
21440 <li>Platform independent implementation, allowing running on
21441 GNU/Linux, Windows, Mac and any system that Qt supports </li>
21442
21443 <li>Flexible modular XML format for the input file, allowing editing
21444 with an XML editor or by hand (besides FET interface)</li>
21445
21446 <li>Import/export from CSV format</li>
21447
21448 <li>The resulted timetables are exported into HTML, XML and CSV
21449 formats </li>
21450
21451 <li>Flexible students structure, organized into sets: years, groups
21452 and subgroups. FET allows overlapping years and groups and
21453 non-overlapping subgroups. You can even define individual students
21454 (as separate sets)</li>
21455
21456 <li>Each constraint has a weight percentage, from 0.0% to 100.0%
21457 (but some special constraints are allowed to have only 100% weight
21458 percentage)</li>
21459
21460 <li>Limits for the algorithm (all these limits can be increased on
21461 demand, as a custom version, because this would require a bit more
21462 memory):
21463 <ul>
21464 <li>Maximum total number of hours (periods) per day: 60</li>
21465 <li>Maximum number of working days per week: 35</li>
21466 <li>Maximum total number of teachers: 6000</li>
21467 <li>Maximum total number of sets of students: 30000</li>
21468 <li>Maximum total number of subjects: 6000</li>
21469 <li>Virtually unlimited number of activity tags</li>
21470 <li>Maximum number of activities: 30000</li>
21471 <li>Maximum number of rooms: 6000</li>
21472 <li>Maximum number of buildings: 6000</li>
21473 <li>Possibility of adding multiple teachers and
21474 students sets for each activity. (it is possible
21475 also to have no teachers or no students sets for an
21476 activity)</li>
21477 <li>Virtually unlimited number of time constraints</li>
21478 <li>Virtually unlimited number of space constraints</li>
21479 </ul></li>
21480
21481 <li>A large and flexible palette of time constraints:
21482 <ul>
21483 <li>Break periods</li>
21484 <li>For teacher(s):
21485 <ul>
21486 <li>Not available periods</li>
21487 <li>Max/min days per week</li>
21488 <li>Max gaps per day/week</li>
21489 <li>Max hours daily/continuously</li>
21490 <li>Min hours daily</li>
21491 <li>Max hours daily/continuously with an activity tag</li>
21492
21493 <li>Respect working in an hourly interval a max number of
21494 days per week</li>
21495 </ul></li>
21496 <li>For students (sets):
21497 <ul>
21498 <li>Not available periods</li>
21499 <li>Begins early (specify max allowed beginnings at second hour)</li>
21500 <li>Max gaps per day/week</li>
21501 <li>Max hours daily/continuously</li>
21502 <li>Min hours daily</li>
21503 <li>Max hours daily/continuously with an activity tag</li>
21504
21505 <li>Respect working in an hourly interval a max number of
21506 days per week</li>
21507 </ul></li>
21508 <li>For an activity or a set of activities/subactivities:
21509 <ul>
21510 <li>A single preferred starting time</li>
21511 <li>A set of preferred starting times</li>
21512 <li>A set of preferred time slots</li>
21513 <li>Min/max days between them</li>
21514 <li>End(s) students day</li>
21515 <li>Same starting time/day/hour</li>
21516 <li>Occupy max time slots from selection (a complex and
21517 flexible constraint, useful in many situations)</li>
21518 <li>Consecutive, ordered, grouped (for 2 or 3 (sub)activities)</li>
21519 <li>Not overlapping</li>
21520 <li>Max simultaneous in selected time slots</li>
21521 <li>Min gaps between a set of (sub)activities</li>
21522 </ul></li>
21523 </ul></li>
21524
21525 <li>A large and flexible palette of space constraints:
21526 <ul>
21527 <li>Room not available periods</li>
21528 <li>For teacher(s):
21529 <ul>
21530 <li>Home room(s)</li>
21531 <li>Max building changes per day/week</li>
21532 <li>Min gaps between building changes</li>
21533 </ul>
21534 </li>
21535
21536 <li>For students (sets):
21537 <ul>
21538 <li>Home room(s)</li>
21539 <li>Max building changes per day/week</li>
21540 <li>Min gaps between building changes</li>
21541 </ul>
21542 </li>
21543 <li>Preferred room(s):
21544 <ul>
21545 <li>For a subject</li>
21546 <li>For an activity tag</li>
21547 <li>For a subject and an activity tag</li>
21548 <li>Individually for a (sub)activity</li>
21549 </ul>
21550 </li>
21551
21552 <li>For a set of activities:
21553 <ul>
21554 <li>Occupy a maximum number of different rooms</li>
21555 </ul>
21556 </li>
21557 </ul>
21558 </li>
21559 </ul></p>
21560
21561 <p>I have not used it myself, as I am not involved in time table
21562 planning at a school, but it seem to work fine when I test it. If you
21563 need to set up your schools time table, and is tired of doing it
21564 manually, check it out.
21565
21566 A quick summary on how to use it can be found in
21567 <a href="http://marvelsoft.co.in/wp/2012/03/generate-timetable-for-state-cbse-icse-igcse-schools-free/">a
21568 blog post from MarvelSoft</a>. If you find FET useful, please provide
21569 a recipe for the Debian Edu project in the
21570 <a href="http://wiki.debian.org/DebianEdu#Howtos">Debian Edu HowTo
21571 section</a>.</p>
21572
21573 </div>
21574 <div class="tags">
21575
21576
21577 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software</a>.
21578
21579
21580 </div>
21581 </div>
21582 <div class="padding"></div>
21583
21584 <div class="entry">
21585 <div class="title">
21586 <a href="http://people.skolelinux.org/pere/blog/Can_Zimbra_be_told_to_send_autoreplies_to_the_From__address_.html">Can Zimbra be told to send autoreplies to the From: address?</a>
21587 </div>
21588 <div class="date">
21589 3rd July 2012
21590 </div>
21591 <div class="body">
21592 <p>In the NUUG <a href="http://www.fiksgatami.no/">FiksGataMi</a>
21593 project (Norwegian version of
21594 <a href="http://www.fixmystreet.com/">FixMyStreet</a> from
21595 <a href="http://www.mysociety.org/">mySociety</a>), we have discovered
21596 a problem with the municipalities using
21597 <a href="http://www.zimbra.com/">Zimbra</a>. When FiksGataMi send a
21598 problem report to the government, the email From: address is set to
21599 the address of the person reporting the problem, while envelope sender
21600 is set to the FiksGataMi contact address. The intention is to make
21601 sure the municipality send any replies to the person reporting the
21602 problem, while any email delivery problems are sent to us in NUUG.
21603 This work well in most cases, but not for Karmøy municipality using
21604 Zimbra. Karmøy is using the vacation message function in Zimbra to
21605 send an automatic reply to report that the message has been received,
21606 and this message is sent to the envelope sender and not the address in
21607 the From: header.</p>
21608
21609 <p>This causes the automatic message from Karmøy to go to NUUGs
21610 request-tracker instance instead of to the person reporting the
21611 problem. We can not really change the envelope sender address, as
21612 this would make it impossible for us to discover when there are
21613 problems with the MTAs receiving problem reports. We have been in
21614 contact with the people at Karmøy municipality, and they are willing
21615 to adjust Zimbra if something can be changed there to get a better
21616 behaviour.</p>
21617
21618 <p>The default behaviour of Zimbra is as far as I can tell according
21619 to the specification in RFC 3834, which recommend that vacation
21620 messages are sent to the envelope sender and not to the From: address.
21621 But I wonder if it is possible to adjust or configure Zimbra to behave
21622 differently. Anyone know? Please let us know at
21623 <a href="http://lists.nuug.no/mailman/listinfo/fiksgatami">fiksgatami
21624 (at) nuug.no</a>.</p>
21625
21626 </div>
21627 <div class="tags">
21628
21629
21630 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
21631
21632
21633 </div>
21634 </div>
21635 <div class="padding"></div>
21636
21637 <div class="entry">
21638 <div class="title">
21639 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Jos__Luis_Redrejo_Rodr_guez.html">Debian Edu interview: José Luis Redrejo Rodríguez</a>
21640 </div>
21641 <div class="date">
21642 26th June 2012
21643 </div>
21644 <div class="body">
21645 <p>I've been too busy at home, but finally I found time to wrap up
21646 another interview with the people behind
21647 <a href="http://www.skolelinux.org/">Debian Edu and Skolelinux</a>.
21648 This time we get to know José Luis Redrejo Rodríguez, one of our great
21649 helpers from Spain. His effort was the reason we added support for
21650 several desktop types (KDE, Gnome and most recently LXDE) in Debian
21651 Edu, and have all of these available in the recently published
21652 <a href="http://www.debian.org/News/2012/20120311.html">Debian Edu
21653 Squeeze</a> version.</p>
21654
21655 <p><strong>Who are you, and how do you spend your days?</strong></p>
21656
21657 <p>I'm a father, teacher and engineer who is working for the Education
21658 ministry of the Region of Extremadura (Spain) in the implementation of
21659 ICT in schools</p>
21660
21661 <p><strong>How did you get in contact with the Skolelinux/Debian Edu
21662 project?</strong></p>
21663
21664 <p>At 2006, I verified that both, we in Extremadura and Skolelinux
21665 project, had been working in parallel for some years, doing very
21666 similar things, using very similar tools and with similar targets, so
21667 I decided it was time to join forces as much as possible.</p>
21668
21669 <p><strong>What do you see as the advantages of Skolelinux/Debian
21670 Edu?</strong></p>
21671
21672 <p>A community of highly skilled experts working together, with a
21673 really open schema of collaboration and work. I really love the
21674 concepts of Do-ocracy and Merit-ocracy and the way these concepts are
21675 been used everyday inside Debian Edu.</p>
21676
21677 <p><strong>What do you see as the disadvantages of Skolelinux/Debian
21678 Edu?</strong></p>
21679
21680 <p>Sometimes the differences in the implementations, laws or
21681 economical and technical resources in the different countries don't
21682 allow us to agree in the same solution for all of us, and several
21683 approaches are needed, what is a waste of effort. Also, there is a
21684 lack of more man power to be able to follow the fast evolution of the
21685 technologies in school.</p>
21686
21687 <p><strong>Which free software do you use daily?</strong></p>
21688
21689 <p>Debian, of course, and due to my kind of job I am most of my time
21690 between Iceweasel, <a href="http://www.geany.org/">Geany</a> and
21691 <a href="http://www.ohloh.net/p/gnome-terminator">Terminator</a>.</p>
21692
21693 <p><strong>Which strategy do you believe is the right one to use to
21694 get schools to use free software?</strong></p>
21695
21696 <p>I think there is not a single strategy because there are very
21697 different scenarios: schools with mixed proprietary and free
21698 environments, schools using only workstations, other schools using
21699 laptops, netbooks, tablets, interactive white-boards, etc.</p>
21700
21701 <p>Also the range of ages of the students is very broad and you can
21702 not use the same solutions for primary schools and secondary or even
21703 universities. So different strategies are needed.</p>
21704
21705 <p>But, looking at these differences, and looking back to the things
21706 we've done and implemented, and the places were we have spent most of
21707 our forces, I think we should focus as much as possible in free
21708 multi-platform environments, using only standards tools, and moving
21709 more and more to Internet or network solutions that could be deployed
21710 using wireless. I think we'll see more and more personal devices in
21711 the schools, devices the students and teachers will take home with
21712 them, so the solutions must be able to be taken at home and continue
21713 working there.</p>
21714
21715 </div>
21716 <div class="tags">
21717
21718
21719 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju</a>.
21720
21721
21722 </div>
21723 </div>
21724 <div class="padding"></div>
21725
21726 <div class="entry">
21727 <div class="title">
21728 <a href="http://people.skolelinux.org/pere/blog/Song_book_for_Computer_Scientists.html">Song book for Computer Scientists</a>
21729 </div>
21730 <div class="date">
21731 24th June 2012
21732 </div>
21733 <div class="body">
21734 <p>Many years ago, while studying Computer Science at the
21735 <a href="http://www.uit.no/">University of Tromsø</a>, I started
21736 collecting computer related songs for use at parties. The original
21737 version was written in LaTeX, but a few years ago I got help from
21738 Håkon W. Lie, one of the inventors of W3C CSS, to convert it to HTML
21739 while keeping the ability to create a nice book in PDF format. I have
21740 not had time to maintain the book for a while now, and guess I should
21741 put it up on some public version control repository where others can
21742 help me extend and update the book. If anyone is volunteering to help
21743 me with this, send me an email. Also let me know if there are songs
21744 missing in my book.</p>
21745
21746 <p>I have not mentioned the book on my blog so far, and it occured to
21747 me today that I really should let all my readers share the joys of
21748 singing out load about programming, computers and computer networks.
21749 Especially now that <a href="http://debconf12.debconf.org/">Debconf
21750 12</a> is about to start (and I am not going). Want to sing? Check
21751 out <a href="http://www.hungry.com/~pere/cs-songbook/">Petter's
21752 Computer Science Songbook</a>.
21753
21754 </div>
21755 <div class="tags">
21756
21757
21758 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/multimedia">multimedia</a>.
21759
21760
21761 </div>
21762 </div>
21763 <div class="padding"></div>
21764
21765 <div class="entry">
21766 <div class="title">
21767 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu___some_ideas_for_the_future_versions.html">Debian Edu - some ideas for the future versions</a>
21768 </div>
21769 <div class="date">
21770 11th June 2012
21771 </div>
21772 <div class="body">
21773 <p>During my work on
21774 <a href="http://www.debian.org/News/2012/20120311.nb.html">Debian Edu
21775 based on Squeeze</a>, I came across some issues that should be
21776 addressed in the Wheezy release. I finally found time to wrap up my
21777 notes and provide quick summary of what I found, with a bit
21778 explanation.</p>
21779
21780 <p><ul>
21781
21782 <li>We need to rewrite our package installation framework, as tasksel
21783 changed from using tasksel tasks to using meta packages (aka packages
21784 with dependencies like our education-* packages), and our installation
21785 system depend on tasksel tasks in
21786 /usr/share/tasksel/debian-edu-tasks.desc for package
21787 installation.</li>
21788
21789 <li>Enable Kerberos login for more services. Now with the Kerberos
21790 foundation in place, we should use it to get single sign on with more
21791 services, and avoiding unneeded password / login questions. We should
21792 at least try to enable it for these services:
21793 <ul>
21794
21795 <li>CUPS for admins to add/configure printers and users when using
21796 quotas.</li>
21797 <li>Nagios for admins checking the system status.</li>
21798 <li>GOsa for admins updating LDAP and users changing their passwords.</li>
21799 <li>LDAP for admins updating LDAP.</li>
21800 <li>Squid for users when exam mode / filtering is active.</li>
21801 <li>ssh for admins and users to save a password prompt.</li>
21802
21803 </ul></li>
21804
21805 <li>When we move GOsa to use Kerberos instead of LDAP bind to
21806 authenticate users, we should try to block or at least limit access to
21807 use LDAP bind for authentication, to ensure Kerberos is used when it
21808 is intended, and nothing fall back to using the less safe LDAP bind</li>
21809
21810 <li>Merge debian-edu-config and debian-edu-install. The split made
21811 sense when d-e-install did a lot more, but these days it is just an
21812 inconvenience when we update the debconf preseeding values.</li>
21813
21814 <li>Fix partman-auto to allow us to abort the installation before
21815 touching the disk if the disk is too small. This is
21816 <a href="http://bugs.debian.org/653305">BTS report #653305</a> and the
21817 d-i developers are fine with the patch and someone just need to apply
21818 it and upload. After this is done we need to adjust
21819 debian-edu-install to use this new hook.</li>
21820
21821 <li>Adjust to new LTSP framework (boot time config instead of install
21822 time config). LTSP changed its design, and our hooks to install
21823 packages and update the configuration is most likely not going to work
21824 in Wheezy.
21825
21826 <li>Consider switching to NBD instead of NFS for LTSP root, to allow
21827 the Kernel to cache files in its normal file cache, possibly speeding
21828 up KDE login on slow networks.</li>
21829
21830 <li>Make it possible to create expired user passwords that need to
21831 change on first login. This is useful when handing out password on
21832 paper, to make sure only the user know the password. This require
21833 fixes to the PAM handling of kdm and gdm.</li>
21834
21835 <li>Make GUI for adding new machines automatically from sitesummary.
21836 The current command line script is not very friendly to people most
21837 familiar with GUIs. This should probably be integrated into GOsa to
21838 have it available where the admin will be looking for it..</li>
21839
21840 <li>We should find way for Nagios to check that the DHCP service
21841 actually is working (as in handling out IP addresses). None of the
21842 Nagios checks I have found so far have been working for me.</li>
21843
21844 <li>We should switch from libpam-nss-ldapd to sssd for all profiles
21845 using LDAP, and not only on for roaming workstations, to have less
21846 packages to configure and consistent setup across all profiles.</li>
21847
21848 <li>We should configure Kerberos to update LDAP and Samba password
21849 when changing password using the Kerberos protocol. The hook was
21850 requested in <a href="http://bugs.debian.org/588968">BTS report
21851 #588968</a> and is now available in Wheezy. We might need to write a
21852 MIT Kerberos plugin in C to get this.</li>
21853
21854 <li>We should clean up the set of applications installed by default.
21855 <ul>
21856
21857 <li>reduce the number of chemistry visualisers</li>
21858 <li>consider dropping xpaint</li>
21859 <li>and probably more?</li>
21860 </ul></li>
21861
21862 <li>Some hardware need external firmware to work properly. This is
21863 mostly the case for WiFi network cards, but there are some other
21864 examples too. For popular laptops to work out of the box, such
21865 firmware need to be installed from non-free, and we should provide
21866 some GUI to do this. Ubuntu already have this implemented, and we
21867 could consider using their packages. At the moment we have some
21868 command line script to do this (one for the running system, another
21869 for the LTSP chroot).</li>
21870
21871
21872 <li>In Squeeze, we provide KDE, Gnome and LXDE as desktop options. We
21873 should extend the list to Xfce and Sugar, and preferably find a way to
21874 install several and allow the admin or the user to select which one to
21875 use.</li>
21876
21877 <li>The golearn tool from the goplay package make it easy to check out
21878 interesting educational packages. We should work on the package
21879 tagging in Debian to ensure it represent all the useful educational
21880 packages, and extend the tool to allow it to use packagekit to install
21881 new applications with a simple mouse click.</li>
21882
21883 <li>The Squeeze version got half a exam solution already in place,
21884 with the introduction of iptable based network blocking, but for it to
21885 be a complete exam solution the Squid proxy need to enable
21886 filtering/blocking as well when the exam mode is enabled. We should
21887 implement a way to easily enable this for the schools that want it,
21888 instead of the "it is documented" method of today.</li>
21889
21890 <li>A feature used in several schools is the ability for a teacher to
21891 "take over" the desktop of individual or all computers in the room.
21892 There are at least three implementations,
21893 <a href="italc.sourceforge.net/">italc</a>,
21894 <a href="http://www.itais.net/help/en/">controlaula</a> og
21895 <a href="http://www.epoptes.org/">epoptes</a> and we should pick one of
21896 them and make it trivial to set it up in a school. The challenges is
21897 how to distribute crypto keys and how to group computers in one room
21898 and how to set up which machine/user can control the machines in a
21899 given room.</li>
21900
21901 <li>Tablets and surf boards are getting more and more popular, and we
21902 should look into providing a good solution for integrating these into
21903 the Debian Edu network. Not quite sure how. Perhaps we should
21904 provide a installation profile with better touch screen support for
21905 them, or add some sync services to allow them to exchange
21906 configuration and data with the central server. This should be
21907 investigated.</li>
21908
21909 </ul></p>
21910
21911 <p>I guess we will discover more as we continue to work on the Wheezy
21912 version.</p>
21913
21914 </div>
21915 <div class="tags">
21916
21917
21918 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
21919
21920
21921 </div>
21922 </div>
21923 <div class="padding"></div>
21924
21925 <div class="entry">
21926 <div class="title">
21927 <a href="http://people.skolelinux.org/pere/blog/TV_with_face_recognition__for_improved_viewer_experience.html">TV with face recognition, for improved viewer experience</a>
21928 </div>
21929 <div class="date">
21930 9th June 2012
21931 </div>
21932 <div class="body">
21933 <p>Slashdot got a story about Intel planning a
21934 <a href="http://entertainment.slashdot.org/story/12/06/09/0012247/intel-to-launch-tv-service-with-facial-recognition-by-end-of-the-year">TV
21935 with face recognition</a> to recognise the viewer, and it occurred to
21936 me that it would be more interesting to turn it around, and do face
21937 recognition on the TV image itself. It could let the viewer know who
21938 is present on the screen, and perhaps look up their credibility,
21939 company affiliation, previous appearances etc for the viewer to better
21940 evaluate what is being said and done. That would be a feature I would
21941 be willing to pay for.</p>
21942
21943 <p>I would not be willing to pay for a TV that point a camera on my
21944 household, like the big brother feature apparently proposed by Intel.
21945 It is the telescreen idea fetched straight out of the book
21946 <a href="http://gutenberg.net.au/ebooks01/0100021.txt">1984 by George
21947 Orwell</a>.</p>
21948
21949 </div>
21950 <div class="tags">
21951
21952
21953 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>.
21954
21955
21956 </div>
21957 </div>
21958 <div class="padding"></div>
21959
21960 <div class="entry">
21961 <div class="title">
21962 <a href="http://people.skolelinux.org/pere/blog/Web_service_to_look_up_HP_and_Dell_computer_hardware_support_status.html">Web service to look up HP and Dell computer hardware support status</a>
21963 </div>
21964 <div class="date">
21965 6th June 2012
21966 </div>
21967 <div class="body">
21968 <p>A few days ago
21969 <a href="http://people.skolelinux.org/pere/blog/SOAP_based_webservice_from_Dell_to_check_server_support_status.html">I
21970 reported how to get</a> the support status out of Dell using an
21971 unofficial and undocumented SOAP API, which I since have found out was
21972 <a href="http://lists.us.dell.com/pipermail/linux-poweredge/2012-February/045959.html">discovered
21973 by Daniel De Marco in february</a>. Combined with my web scraping
21974 code for HP, Dell and IBM
21975 <a href="http://people.skolelinux.org/pere/blog/Checking_server_hardware_support_status_for_Dell__HP_and_IBM_servers.html">from
21976 2009</a>, I got inspired and wrote
21977 <a href="https://views.scraperwiki.com/run/computer-hardware-support-status/">a
21978 web service</a> based on Scraperwiki to make it easy to look up the
21979 support status and get a machine readable result back.</p>
21980
21981 <p>This is what it look like at the moment when asking for the JSON
21982 output:
21983
21984 <blockquote><pre>
21985 % GET <a href="https://views.scraperwiki.com/run/computer-hardware-support-status/?format=json&vendor=Dell&servicetag=2v1xwn1">https://views.scraperwiki.com/run/computer-hardware-support-status/?format=json&vendor=Dell&servicetag=2v1xwn1</a>
21986 supportstatus({"servicetag": "2v1xwn1", "warrantyend": "2013-11-24", "shipped": "2010-11-24", "scrapestamputc": "2012-06-06T20:26:56.965847", "scrapedurl": "http://143.166.84.118/services/assetservice.asmx?WSDL", "vendor": "Dell", "productid": ""})
21987 %
21988 </pre></blockquote>
21989
21990 <p>It currently support Dell and HP, and I am hoping for help to add
21991 support for other vendors. The python source is available on
21992 Scraperwiki and I welcome help with adding more features.</p>
21993
21994 </div>
21995 <div class="tags">
21996
21997
21998 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
21999
22000
22001 </div>
22002 </div>
22003 <div class="padding"></div>
22004
22005 <div class="entry">
22006 <div class="title">
22007 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Mike_Gabriel.html">Debian Edu interview: Mike Gabriel</a>
22008 </div>
22009 <div class="date">
22010 2nd June 2012
22011 </div>
22012 <div class="body">
22013 <p>Back in 2010, Mike Gabriel showed up on the
22014 <a href="http://www.skolelinux.org/">Debian Edu and Skolelinux</a>
22015 mailing list. He quickly proved to be a valuable developer, and
22016 thanks to his tireless effort we now have Kerberos integrated into the
22017 <a href="http://www.debian.org/News/2012/20120311.html">Debian Edu
22018 Squeeze</a> version.</p>
22019
22020 <p><strong>Who are you, and how do you spend your days?</strong></p>
22021
22022 <p>My name is Mike Gabriel, I am 38 years old and live near Kiel,
22023 Schleswig-Holstein, Germany. I live together with a wonderful partner
22024 (Angela Fuß) and two own children and two bonus children (contributed
22025 by Angela).</p>
22026
22027 <p>During the day I am part-time employed as a system administrator
22028 and part-time working as an IT consultant. The consultancy work
22029 touches free software topics wherever and whenever possible. During
22030 the nights I am a free software developer. In the gaps I also train in
22031 becoming an osteopath.</p>
22032
22033 <p>Starting in 2010 we (Andreas Buchholz, Angela Fuß, Mike Gabriel)
22034 have set up a free software project in the area of Kiel that aims at
22035 introducing free software into schools. The project's name is
22036 "IT-Zukunft Schule" (IT future for schools). The project links IT
22037 skills with communication skills.</p>
22038
22039 <p><strong>How did you get in contact with the Skolelinux/Debian Edu
22040 project?</strong></p>
22041
22042 <p>While preparing our own customised Linux distribution for
22043 "IT-Zukunft Schule" we were repeatedly asked if we really wanted to
22044 reinvent the wheel. What schools really need is already available,
22045 people said. From this impulse we started evaluating other Linux
22046 distributions that target being used for school networks.</p>
22047
22048 <p>At the end we short-listed two approaches and compared them: a
22049 commercial Linux distribution developed by a company in Bremen,
22050 Germany, and Skolelinux / Debian Edu. Between 12/2010 and 03/2011 we
22051 went to several events and met people being responsible for marketing
22052 and development of either of the distributions. Skolelinux / Debian
22053 Edu was by far much more convincing compared to the other product that
22054 got short-listed beforehand--across the full spectrum. What was most
22055 attractive for me personally: the perspective of collaboration within
22056 the developmental branch of the Debian Edu project itself.</p>
22057
22058 <p>In parallel with this, we talked to many local and not-so-local
22059 people. People teaching at schools, headmasters, politicians, data
22060 protection experts, other IT professionals.</p>
22061
22062 <p>We came to two conclusions:</p>
22063
22064 <p>First, a technical conclusion: What schools need is available in
22065 bits and pieces here and there, and none of the solutions really fit
22066 by 100%. Any school we have seen has a very individual IT setup
22067 whereas most of each school's requirements could mapped by a standard
22068 IT solution. The requirement to this IT solution is flexibility and
22069 customisability, so that individual adaptations here and there are
22070 possible. In terms of re-distributing and rolling out such a
22071 standardised IT system for schools (a system that is still to some
22072 degree customisable) there is still a lot of work to do here
22073 locally. Debian Edu / Skolelinux has been our choice as the starting
22074 point.</p>
22075
22076 <p>Second, a holistic conclusion: What schools need does not exist at
22077 all (or we missed it so far). There are several technical solutions
22078 for handling IT at schools that tend to make a good impression. What
22079 has been missing completely here in Germany, though, is the enrolment
22080 of people into using IT and teaching with IT. "IT-Zukunft Schule"
22081 tries to provide an approach for this.</p>
22082
22083 <p>Only some schools have some sort of a media concept which explains,
22084 defines and gives guidance on how to use IT in class. Most schools in
22085 Northern Germany do not have an IT service provider, the school's IT
22086 equipment is managed by one or (if the school is lucky) two (admin)
22087 teachers, most of the workload these admin teachers get done in there
22088 spare time.</p>
22089
22090 <p>We were surprised that only a very few admin teachers were
22091 networked with colleagues from other schools. Basically, every school
22092 here around has its individual approach of providing IT equipment to
22093 teachers and students and the exchange of ideas has been quasi
22094 non-existent until 2010/2011.</p>
22095
22096 <p>Quite some (non-admin) teachers try to avoid using IT technology in
22097 class as a learning medium completely. Several reasons for this
22098 avoidance do exist.</p>
22099
22100 <p>We discovered that no-one has ever taken a closer look at this
22101 social part of IT management in schools, so far. On our quest journey
22102 for a technical IT solution for schools, we discussed this issue with
22103 several teachers, headmasters, politicians, other IT professionals and
22104 they all confirmed: a holistic approach of considering IT management
22105 at schools, an approach that includes the people in place, will be new
22106 and probably a gain for all.</p>
22107
22108 <p><strong>What do you see as the advantages of Skolelinux/Debian
22109 Edu?</strong></p>
22110
22111 <p>There is a list of advantages: international context, openness to
22112 any kind of contributions, do-ocracy policy, the closeness to Debian,
22113 the different installation scenarios possible (from stand-alone
22114 workstation to complex multi-server sites), the transparency within
22115 project communication, honest communication within the group of
22116 developers, etc.</p>
22117
22118 <p><strong>What do you see as the disadvantages of Skolelinux/Debian
22119 Edu?</strong></p>
22120
22121 <p>Every coin has two sides:</p>
22122
22123 <p>Technically: <a href="http://bugs.debian.org/311188">BTS issue
22124 #311188</a>, tricky upgradability of a Debian Edu main server, network
22125 client installations on top of a plain vanilla Debian installation
22126 should become possible sometime in the near future, one could think
22127 about splitting the very complex package debian-edu-config into
22128 several portions (to make it easier for new developers to
22129 contribute).</p>
22130
22131 <p>Another issue I see is that we (as Debian Edu developers) should
22132 find out more about the network of people who do the marketing for
22133 Debian Edu / Skolelinux. There is a very active group in Germany
22134 promoting Skolelinux on the bigger Linux Days within Germany. Are
22135 there other groups like that in other countries? How can we bring
22136 these marketing people together (marketing group A with group B and
22137 all of them with the group of Debian Edu developers)? During the last
22138 meeting of the German Skolelinux group, I got the impression of people
22139 there being rather disconnected from the development department of
22140 Debian Edu / Skolelinux.</p>
22141
22142 <p><strong>Which free software do you use daily?</strong></p>
22143
22144 <p>For my daily business, I do not use commercial software at all.</p>
22145
22146 <p>For normal stuff I use Iceweasel/Firefox, Libreoffice.org. For
22147 serious text writing I prefer LaTeX. I use gimp, inkscape, scribus for
22148 more artistic tasks. I run virtual machines in KVM and Virtualbox.</p>
22149
22150 <p>I am one of the upstream developers of X2Go. In 2010 I started the
22151 development of a Python based X2Go Client, called PyHoca-GUI.
22152 PyHoca-GUI has brought forth a Python X2Go Client API that currently
22153 is being integrated in Ubuntu's software center.</p>
22154
22155 <p>For communications I have my own Kolab server running using Horde
22156 as web-based groupware client. For IRC I love to use irssi, for Jabber
22157 I have several clients that I use, mostly pidgin, though. I am also
22158 the Debian maintainer of Coccinella, a Jabber-based interactive
22159 whiteboard.</p>
22160
22161 <p>My favourite terminal emulator is KDE's Yakuake.</p>
22162
22163 <p><strong>Which strategy do you believe is the right one to use to
22164 get schools to use free software?</strong></p>
22165
22166 <p>Communicate, communicate, communicate. Enrol people, enrol people,
22167 enrol people.</p>
22168
22169 </div>
22170 <div class="tags">
22171
22172
22173 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju</a>.
22174
22175
22176 </div>
22177 </div>
22178 <div class="padding"></div>
22179
22180 <div class="entry">
22181 <div class="title">
22182 <a href="http://people.skolelinux.org/pere/blog/SOAP_based_webservice_from_Dell_to_check_server_support_status.html">SOAP based webservice from Dell to check server support status</a>
22183 </div>
22184 <div class="date">
22185 1st June 2012
22186 </div>
22187 <div class="body">
22188 <p>A few years ago I wrote
22189 <a href="http://people.skolelinux.org/pere/blog/Checking_server_hardware_support_status_for_Dell__HP_and_IBM_servers.html">how
22190 to extract support status</a> for your Dell and HP servers. Recently
22191 I have learned from colleges here at the
22192 <a href="http://www.uio.no/">University of Oslo</a> that Dell have
22193 made this even easier, by providing a SOAP based web service. Given
22194 the service tag, one can now query the Dell servers and get machine
22195 readable information about the support status. This perl code
22196 demonstrate how to do it:</p>
22197
22198 <p><pre>
22199 use strict;
22200 use warnings;
22201 use SOAP::Lite;
22202 use Data::Dumper;
22203 my $GUID = '11111111-1111-1111-1111-111111111111';
22204 my $App = 'test';
22205 my $servicetag = $ARGV[0] or die "Please supply a servicetag. $!\n";
22206 my ($deal, $latest, @dates);
22207 my $s = SOAP::Lite
22208 -> uri('http://support.dell.com/WebServices/')
22209 -> on_action( sub { join '', @_ } )
22210 -> proxy('http://xserv.dell.com/services/assetservice.asmx')
22211 ;
22212 my $a = $s->GetAssetInformation(
22213 SOAP::Data->name('guid')->value($GUID)->type(''),
22214 SOAP::Data->name('applicationName')->value($App)->type(''),
22215 SOAP::Data->name('serviceTags')->value($servicetag)->type(''),
22216 );
22217 print Dumper($a -> result) ;
22218 </pre></p>
22219
22220 <p>The output can look like this:</p>
22221
22222 <p><pre>
22223 $VAR1 = {
22224 'Asset' => {
22225 'Entitlements' => {
22226 'EntitlementData' => [
22227 {
22228 'EntitlementType' => 'Expired',
22229 'EndDate' => '2009-07-29T00:00:00',
22230 'Provider' => '',
22231 'StartDate' => '2006-07-29T00:00:00',
22232 'DaysLeft' => '0'
22233 },
22234 {
22235 'EntitlementType' => 'Expired',
22236 'EndDate' => '2009-07-29T00:00:00',
22237 'Provider' => '',
22238 'StartDate' => '2006-07-29T00:00:00',
22239 'DaysLeft' => '0'
22240 },
22241 {
22242 'EntitlementType' => 'Expired',
22243 'EndDate' => '2007-07-29T00:00:00',
22244 'Provider' => '',
22245 'StartDate' => '2006-07-29T00:00:00',
22246 'DaysLeft' => '0'
22247 }
22248 ]
22249 },
22250 'AssetHeaderData' => {
22251 'SystemModel' => 'GX620',
22252 'ServiceTag' => '8DSGD2J',
22253 'SystemShipDate' => '2006-07-29T19:00:00-05:00',
22254 'Buid' => '2323',
22255 'Region' => 'Europe',
22256 'SystemID' => 'PLX_GX620',
22257 'SystemType' => 'OptiPlex'
22258 }
22259 }
22260 };
22261 </pre></p>
22262
22263 <p>I have not been able to find any documentation from Dell about this
22264 service outside the
22265 <a href="http://xserv.dell.com/services/assetservice.asmx?op=GetAssetInformation">inline
22266 documentation</a>, and according to
22267 <a href="http://iboyd.net/index.php/2012/02/14/updated-dell-warranty-information-script/">one
22268 comment</a> it can have stability issues, but it is a lot better than
22269 scraping HTML pages. :)</p>
22270
22271 <p>Wonder if HP and other server vendors have a similar service. If
22272 you know of one, drop me an email. :)</p>
22273
22274 </div>
22275 <div class="tags">
22276
22277
22278 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
22279
22280
22281 </div>
22282 </div>
22283 <div class="padding"></div>
22284
22285 <div class="entry">
22286 <div class="title">
22287 <a href="http://people.skolelinux.org/pere/blog/First_monitor_calibration_using_ColorHug.html">First monitor calibration using ColorHug</a>
22288 </div>
22289 <div class="date">
22290 31st May 2012
22291 </div>
22292 <div class="body">
22293 <p>A few days ago my color calibration gadget
22294 <a href="http://www.hughski.com/index.html">ColorHug</a> arrived in the
22295 mail, and I've had a few days to test it. As all my machines are
22296 running Debian Squeeze, where
22297 <a href="http://packages.qa.debian.org/c/colorhug-client.html">the
22298 calibration software</a> is missing (it is present in Wheezy and Sid),
22299 I ran the calibration using the Fedora based live CD. This worked
22300 just fine. So far I have only done the quick calibration. It was
22301 slow enough for me, so I will leave the more extensive calibration for
22302 another day.</p>
22303
22304 <p>After calibration, I get a
22305 <a href="http://en.wikipedia.org/wiki/ICC_profile">ICC color
22306 profile</a> file that can be passed to programs understanding such
22307 tools. KDE do not seem to understand it out of the box, so I searched
22308 for command line tools to use to load the color profile into X.
22309 xcalib was the first one I found, and it seem to work fine for single
22310 monitor setups. But for my video player, a laptop with a flat screen
22311 attached, it was unable to load the color profile for the correct
22312 monitor. After searching a bit, I
22313 <a href="http://ubuntuforums.org/showthread.php?t=1347896">discovered</a>
22314 that the dispwin tool from the argyll package would do what I wanted,
22315 and a simple</p>
22316
22317 <p><pre>
22318 dispwin -d 1 profile.icc
22319 </pre></p>
22320
22321 <p>later I had the color profile loaded for the correct monitor. The
22322 result was a bit more pink than I expected. I guess I picked the
22323 wrong monitor type for the "led" monitor I got, but the result is good
22324 enough for now.</p>
22325
22326 </div>
22327 <div class="tags">
22328
22329
22330 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
22331
22332
22333 </div>
22334 </div>
22335 <div class="padding"></div>
22336
22337 <div class="entry">
22338 <div class="title">
22339 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Ralf_Gesellensetter.html">Debian Edu interview: Ralf Gesellensetter</a>
22340 </div>
22341 <div class="date">
22342 27th May 2012
22343 </div>
22344 <div class="body">
22345 <p>In 2003, a German teacher showed up on the
22346 <a href="http://www.skolelinux.org/">Debian Edu and Skolelinux</a>
22347 mailing list with interesting problems and reports proving he setting
22348 up Linux for a (for us at the time) lot of pupils. His name was Ralf
22349 Gesellensetter, and he has been an important tester and contributor
22350 since then, helping to make sure the
22351 <a href="http://www.debian.org/News/2012/20120311.html">Debian Edu
22352 Squeeze</a> release became as good as it is..</p>
22353
22354 <p><strong>Who are you, and how do you spend your days?</strong></p>
22355
22356 <p>I am a teacher from Germany, and my subjects are Geography,
22357 Mathematics, and Computer Science ("Informatik"). During the past 12
22358 years (since 2000), I have been working for a comprehensive (and soon,
22359 also inclusive) school leading to all kind of general levels, such as
22360 O- or A-level ("Abitur"). For quite as long, I've been taking care of
22361 our computer network.</p>
22362
22363 <p>Now, in my early 40s, I enjoy the privilege of spending a lot of my
22364 spare time together with my wife, our son (3 years) and our daughter
22365 (4 months).</p>
22366
22367 <p><strong>How did you get in contact with the Skolelinux/Debian Edu
22368 project?</strong></p>
22369
22370 <p>We had tried different Linux based school servers, when members of
22371 my local Linux User Group (LUG OWL) detected Skolelinux. I remember
22372 very well, being part of a party celebrating the Linux New Media Award
22373 ("Best Newcomer Distribution", also nominated: Ubuntu) that was given
22374 to Skolelinux at Linux World Exposition in Frankfurt, 2005 (IIRC). Few
22375 months later, I had the chance to join a developer meeting in Ulsrud
22376 (Oslo) and to hand out the award to Knut Yrvin and others. For more
22377 than 7 years, Skolelinux is part of our schools infrastructure, namely
22378 our main server (tjener), one LTSP (today without thin clients), and
22379 approximately 50 work stations. Most of these have the option to boot a
22380 locally installed Skolelinux image. As a consequence, I joined quite
22381 a few events dealing with free software or Linux, and met many Debian
22382 (Edu) developers. All of them seemed quite nice and competent to me,
22383 one more reason to stick to Skolelinux.</p>
22384
22385 <p><strong>What do you see as the advantages of Skolelinux/Debian
22386 Edu?</strong></p>
22387
22388 <p>Debian driven, you are given all the advantages of a community
22389 project including well maintained updates. Once, you are familiar with
22390 the network layout, you can easily roll out an entire educational
22391 computer infrastructure, from just one installation media. As only
22392 free software (FOSS) is used, that supports even elderly hardware,
22393 up-sizing your IT equipment is only limited by space (i.e. available
22394 labs). Especially if you run a LTSP thin client server, your
22395 administration costs tend towards zero.</p>
22396
22397 <p><strong>What do you see as the disadvantages of Skolelinux/Debian
22398 Edu?</strong></p>
22399
22400 <p>While Debian's stability has loads of advantages for servers, this
22401 might be different in some cases for clients: Schools with unlimited
22402 budget might buy new hardware with components that are not yet
22403 supported by Debian stable, or wish to use more recent versions of
22404 office packages or desktop environments. These schools have the
22405 option to run Debian testing or other distributions - if they have the
22406 capacity to do so. Another issue is that Debian release cycles
22407 include a wide range of changes; therefor a high percentage of human
22408 power seems to be absorbed by just keeping the features of Skolelinux
22409 within the new setting of the version to come. During this process,
22410 the cogs of Debian Edu are getting more and more professional,
22411 i.e. harder to understand for novices.</p>
22412
22413 <p><strong>Which free software do you use daily?</strong></p>
22414
22415 <p>LibreOffice, Wikipedia, Openstreetmap, Iceweasel (Mozilla Firefox),
22416 KMail, Gimp, Inkscape - and of course the Linux Kernel (not only on
22417 PC, Laptop, Mobile, but also our SAT receiver)</p>
22418
22419 <p><strong>Which strategy do you believe is the right one to use to
22420 get schools to use free software?</strong></p>
22421
22422 <p><ol>
22423
22424 <li>Support computer science as regular subject in schools to make
22425 people really "own" their hardware, to make them understand the
22426 difference between proprietary software products, and free software
22427 developing.</li>
22428
22429 <li>Make budget baskets corresponding: In Germany's public schools
22430 there are more or less fixed budgets for IT equipment (including
22431 licenses), so schools won't benefit from any savings here. This
22432 privilege is left to private schools which have consequently a large
22433 share among German Skolelinux schools.</li>
22434
22435 <li>Get free software in the seminars where would-be teachers are
22436 trained. In many cases, teachers' software customs are respected by
22437 decision makers rather than the expertise of any IT experts.</li>
22438
22439 <li>Don't limit ourself to free software run natively. Everybody uses
22440 free software or free licenses (for instance Wikipedia), and this
22441 general concept should get expanded to free educational content to be
22442 shared world wide (school books e.g.).</li>
22443
22444 <li>Make clear where ever you can that the market share of free (libre)
22445 office suites is much above 20 p.c. today, and that you pupils don't
22446 need to know the "ribbon menu" in order to get employed.</li>
22447
22448 <li>Talk about the difference between freeware and free software.</li>
22449
22450 <li>Spread free software, or even collections of portable free apps
22451 for USB pen drives. Endorse students to get a legal copy of
22452 Libreoffice rather than accepting them to use illegal serials. And
22453 keep sending documents in ODF formats.</li>
22454
22455 </ol></p>
22456
22457 </div>
22458 <div class="tags">
22459
22460
22461 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju</a>.
22462
22463
22464 </div>
22465 </div>
22466 <div class="padding"></div>
22467
22468 <div class="entry">
22469 <div class="title">
22470 <a href="http://people.skolelinux.org/pere/blog/The_cost_of_ODF_and_OOXML.html">The cost of ODF and OOXML</a>
22471 </div>
22472 <div class="date">
22473 26th May 2012
22474 </div>
22475 <div class="body">
22476 <p>I just come across a blog post from Glyn Moody reporting the
22477 claimed cost from Microsoft on requiring ODF to be used by the UK
22478 government. I just sent him an email to let him know that his
22479 assumption are most likely wrong. Sharing it here in case some of my
22480 blog readers have seem the same numbers float around in the UK.</p>
22481
22482 <p><blockquote> <p>Hi. I just noted your
22483 <a href="http://blogs.computerworlduk.com/open-enterprise/2012/04/does-microsoft-office-lock-in-cost-the-uk-government-500-million/index.htm">http://blogs.computerworlduk.com/open-enterprise/2012/04/does-microsoft-office-lock-in-cost-the-uk-government-500-million/index.htm</a>
22484 comment:</p>
22485
22486 <p><blockquote>"They're all in Danish, not unreasonably, but even
22487 with the help of Google Translate I can't find any figures about the
22488 savings of "moving to a flexible two standard" as claimed by the
22489 Microsoft email. But I assume it is backed up somewhere, so let's take
22490 it, and the £500 million figure for the UK, on trust."
22491 </blockquote></p>
22492
22493 <p>I can tell you that the Danish reports are inflated. I believe it is
22494 the same reports that were used in the Norwegian debate around 2007,
22495 and Gisle Hannemyr (a well known IT commentator in Norway) had a look
22496 at the content. In short, the reason it is claimed that using ODF
22497 will be so costly, is based on the assumption that this mean every
22498 existing document need to be converted from one of the MS Office
22499 formats to ODF, transferred to the receiver, and converted back from
22500 ODF to one of the MS Office formats, and that the conversion will cost
22501 10 minutes of work time for both the sender and the receiver. In
22502 reality the sender would have a tool capable of saving to ODF, and the
22503 receiver would have a tool capable of reading it, and the time spent
22504 would at most be a few seconds for saving and loading, not 20 minutes
22505 of wasted effort.</p>
22506
22507 <p>Microsoft claimed all these costs were saved by allowing people to
22508 transfer the original files from MS Office instead of spending 10
22509 minutes converting to ODF. :)</p>
22510
22511 <p>See
22512 <a href="http://hannemyr.com/no/ms12_vl02.php">http://hannemyr.com/no/ms12_vl02.php</a>
22513 and
22514 <a href="http://hannemyr.com/no/ms12.php">http://hannemyr.com/no/ms12.php</a>
22515 for background information. Norwegian only, sorry. :)</p>
22516 </blockquote></p>
22517
22518 </div>
22519 <div class="tags">
22520
22521
22522 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>.
22523
22524
22525 </div>
22526 </div>
22527 <div class="padding"></div>
22528
22529 <div class="entry">
22530 <div class="title">
22531 <a href="http://people.skolelinux.org/pere/blog/ColorHug___USB_and_free_software_based_screen_color_calibration.html">ColorHug - USB and free software based screen color calibration</a>
22532 </div>
22533 <div class="date">
22534 18th May 2012
22535 </div>
22536 <div class="body">
22537 <p>In january, I
22538 <a href="http://blog.cihar.com/archives/2012/01/17/colorhug-has-arrived/">discovered
22539 the ColorHug</a>, a USB dongle from
22540 <a href="http://www.hughski.com/index.html">Hughski</a> to calibrate
22541 the color on a computer screen. The software required is
22542 <a href="http://packages.qa.debian.org/c/colorhug-client.html">included
22543 in Debian</a>, and I decided back then to preorder from the next
22544 batch. Yesterday I finally heard back from them, and got the
22545 opportunity to order. Today I ordered mine, and eagerly await the
22546 delivery. I hope it arrive next week, as I got a confirmation that it
22547 should go in the mail on monday. :)</p>
22548
22549 <p>If you want to ensure the colors on the screen match the intended
22550 colors, I suggest you check out this cheap tool with free software
22551 drivers. :)</p>
22552
22553 </div>
22554 <div class="tags">
22555
22556
22557 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
22558
22559
22560 </div>
22561 </div>
22562 <div class="padding"></div>
22563
22564 <div class="entry">
22565 <div class="title">
22566 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__J_rgen_Leibner.html">Debian Edu interview: Jürgen Leibner</a>
22567 </div>
22568 <div class="date">
22569 13th May 2012
22570 </div>
22571 <div class="body">
22572 <p>It has been a few busy weeks for me, but I am finally back to
22573 publish another interview with the people behind
22574 <a href="http://www.skolelinux.org/">Debian Edu and Skolelinux</a>.
22575 This time it is one of our German developers, who have helped out over the
22576 years to make sure both a lot of major but also a lot of the minor
22577 details get right before release.
22578
22579 <p><strong>Who are you, and how do you spend your days?</strong></p>
22580
22581 <p>My name is Jürgen Leibner, I'm 49 years old and living in
22582 Bielefeld, a town in northern Germany. I worked nearly 20 years as
22583 certified engineer in the department for plant design and layout of an
22584 international company for machinery and equipment. Since 2011 I'm a
22585 certified technical writer (tekom e.V.) and doing technical
22586 documentations for a steam turbine manufacturer. From April this year
22587 I will manage the department of technical documentation at a
22588 manufacturer of automation and assembly line engineering.</p>
22589
22590 <p>My first contact with linux was around 1993. Since that time I used
22591 it at work and at home repeatedly but not exclusively as I do now at
22592 home since 2006.</p>
22593
22594 <p><strong>How did you get in contact with the Skolelinux/Debian Edu
22595 project?</strong></p>
22596
22597 <p>Once a day in the early year of 2001 when I wanted to fetch my
22598 daughter from primary school, there was a teacher sitting in the
22599 middle of 20 old computers trying to boot them and he failed. I helped
22600 him to get them booting. That was seen by the school director and she
22601 asked me if I would like to manage that the school gets all that old
22602 computers in use. I answered: "Yes".</p>
22603
22604 <p>Some weeks later every of the 10 classrooms had one computer
22605 running Windows98. I began to collect old computers and equipment as
22606 gifts and installed the first computer room with a peer-to-peer
22607 network. I did my work at school without being payed in my spare time
22608 and with a lot of fun. About one year later the school was connected
22609 to Internet and a local area network was installed in the school
22610 building. That was the time to have a server and I knew it must be a
22611 Linux server to be able to fulfil all the wishes of the teachers and
22612 being able to do this in a transparent and economic way, without extra
22613 costs for things like licence and software. So I searched for a
22614 school server system running under Linux and I found a couple of
22615 people nearby who founded 'skolelinux.de'. It was the Skolelinux
22616 prerelease 32 I first tried out for being used at the school. I
22617 managed the IT of that school until the municipal authority took over
22618 the IT management and centralised the services for all schools in
22619 Bielefeld in December of 2006.</p>
22620
22621 <p><strong>What do you see as the advantages of Skolelinux/Debian
22622 Edu?</strong></p>
22623
22624 <p>When I'm looking back to the beginning, there were other advantages
22625 for me as today.</p>
22626
22627 <p>In the past there were advantages like:</p>
22628
22629 <p><ul>
22630
22631 <li>I don't need to buy it so it generates no costs to the school as
22632 they had little money to spent for computers and software.</li>
22633
22634 <li>It has a licence which grands all rights to use it without
22635 cost.</li>
22636
22637 <li>It was more able to fit all requirements of a server system for
22638 schools than a Microsoft server system, even if there are only Windows
22639 clients because of it's preconfigured overall concept of being a
22640 infrastructure solution and community for schools, not only a
22641 server</li>
22642
22643 <li>I was able to configure the server to the needs of the
22644 school.</li>
22645
22646 </ul></p>
22647
22648 <p>Today some of the advantages has been lost, changed or new ones
22649 came up in this way:</p>
22650
22651 <p><ul>
22652
22653 <li>Most schools here do have money to buy hardware and software
22654 now.</li>
22655
22656 <li>They are today mostly managed from central IT departments which
22657 have own concepts which often do not fit to Debian Edu concepts
22658 because they are to close to Microsoft ideology.</li>
22659
22660 <li>With the Squeeze version of Debian Edu which now uses GOsa² for
22661 management I feel more able to manage the daily tasks than with the
22662 interfaces used in the past.</li>
22663
22664 <li>It is more modular than in the past and fits even better to the
22665 different needs.</li>
22666
22667 <li>The documentation is usable and gets better every day.</li>
22668
22669 <li>More people than ever before are using Debian Edu all over the
22670 world and so the community, which is an very important part I think,
22671 is sharing knowledge and minds.</li>
22672
22673 <li>Most, maybe all, of the technical requirements for schools are
22674 solved today by Debian Edu. </li>
22675
22676 </ul></p>
22677
22678 <p><strong>What do you see as the disadvantages of Skolelinux/Debian
22679 Edu?</strong></p>
22680
22681 <p><ul>
22682
22683 <li>There are too few IT companies able to integrate Debian Edu into
22684 their product portfolio for serving schools with concepts or even
22685 whole municipality areas.</li>
22686
22687 <li>Debian Edu has beside other free and open software projects not
22688 enough lobbyists which promote free and open software to
22689 politicians.</li>
22690
22691 <li>Technically there are no disadvantages I'm aware of.</li>
22692
22693 </ul></p>
22694
22695 <p><strong>Which free software do you use daily?</strong></p>
22696
22697 <p>I use Debian stable on my home server and on my little desktop
22698 computer. On my laptop I use Debian testing/sid. The applications I
22699 use on my laptop and my desktop are Open/Libre-office, Iceweasel,
22700 KMail, DigiKam, Amarok, Dolphin, okular and all the other programs I
22701 need from the KDE environment. On console I use newsbeuter, mutt,
22702 screen, irssi and all the other famous and useful tools.</p>
22703
22704 <p>My home server provides mail services with exim, dovecot, roundcube
22705 and mutt over ssh on the console, file services with samba, NFS,
22706 rsync, web services with apache, moinmoin-wiki, multimedia services
22707 with gallery2 and mediatomb and database services with MySQL for me
22708 and the whole family. I probably forgot something.</p>
22709
22710 <p><strong>Which strategy do you believe is the right one to use to
22711 get schools to use free software?</strong></p>
22712
22713 <p>I believe, we should provide concepts for IT companies to integrate
22714 Debian Edu into their product portfolio with use cases for different
22715 countries and areas all over the world.</p>
22716
22717 </div>
22718 <div class="tags">
22719
22720
22721 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju</a>.
22722
22723
22724 </div>
22725 </div>
22726 <div class="padding"></div>
22727
22728 <div class="entry">
22729 <div class="title">
22730 <a href="http://people.skolelinux.org/pere/blog/Cutting_it_short___and_picking_the_right_tool_for_the_job.html">Cutting it short - and picking the right tool for the job</a>
22731 </div>
22732 <div class="date">
22733 30th April 2012
22734 </div>
22735 <div class="body">
22736 <p><!-- IMG_5869.JPG -->
22737 <img src="http://people.skolelinux.org/pere/blog/images/panasonic-er-1611.jpeg"></p>
22738
22739 <p>I normally cut my hair short, and my tool of choice has been a
22740 common hair/beard cutter, bought in a electrical shop here in Norway.
22741 But the last ones have not really been up to the task. My last
22742 cutter, some model from Braun, could only cut a few of my hairs at the
22743 time, and cutting my head took forever. And the one before that did
22744 not work very well either. We have looked for something better for a
22745 while, but it was not until I ended up visiting a hairdresser that we
22746 discovered that there are indeed better tools available. But these
22747 are not marketed and sold to "regular consumers". The hair saloons
22748 can get them through their suppliers, but their suppliers only sell
22749 companies. The models they sell, are very different from the ones
22750 available from Elkjøp and Lefdal. The main difference is their
22751 efficiency. It would cut my hair in 5 minutes, instead of the 30-40
22752 minutes required by my impotent Braun. The hairdresser I visited had
22753 a Panasonic ER160, which unfortunately is no longer available from the
22754 producer. But I found it had a successor, the Panasonic ER1611.</p>
22755
22756 <p>The next step was to find somewhere to buy it. This was not
22757 straight forward. The list of suppliers I got from the hairdresser
22758 did not want to sell anything to me. But searching for the model on
22759 the web we found a supplier in Norway willing to sell it to us for
22760 around NOK 4000,-. This was a bit much. We kept searching and
22761 finally found a Danish supplier
22762 <a href="http://nicehair.dk/panasonic-er-1611-professionel-hartrimmer.html">selling
22763 it for around NOK 1800,-</a>. We ordered one, and it arrived a few
22764 days ago.</p>
22765
22766 <p>The instructions said it had to charge for 8 hours when we started
22767 to use it, so we left it charging over night. Normally it will only
22768 need one hour to charge. The following evening we successfully tested
22769 it, and I can warmly recommend it to anyone looking for a real hair
22770 cutter. The ones we have used until now have been hair cutter
22771 toys.</p>
22772
22773 </div>
22774 <div class="tags">
22775
22776
22777 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
22778
22779
22780 </div>
22781 </div>
22782 <div class="padding"></div>
22783
22784 <div class="entry">
22785 <div class="title">
22786 <a href="http://people.skolelinux.org/pere/blog/HTC_One_X___Your_video___What_do_you_mean_.html">HTC One X - Your video? What do you mean?</a>
22787 </div>
22788 <div class="date">
22789 26th April 2012
22790 </div>
22791 <div class="body">
22792 <p>In <a href="http://www.idg.no/computerworld/article243690.ece">an
22793 article today</a> published by Computerworld Norway, the photographer
22794 <a href="http://www.urke.com/eirik/">Eirik Helland Urke</a> reports
22795 that the video editor application included with
22796 <a href="http://www.htc.com/www/smartphones/htc-one-x/#specs">HTC One
22797 X</a> have some quite surprising terms of use. The article is mostly
22798 based on the twitter message from mister Urke, stating:
22799
22800 <p><blockquote>
22801 "<a href="http://twitter.com/urke/status/194062269724897280">Drøy
22802 brukeravtale: HTC kan bruke MINE redigerte videoer kommersielt. Selv
22803 kan jeg KUN bruke dem privat.</a>"
22804 </blockquote></p>
22805
22806 <p>I quickly translated it to this English message:</p>
22807
22808 <p><blockquote>
22809 "Arrogant user agreement: HTC can use MY edited videos
22810 commercially. Although I can ONLY use them privately."
22811 </blockquote></p>
22812
22813 <p>I've been unable to find the text of the license term myself, but
22814 suspect it is a variation of the MPEG-LA terms I
22815 <a href="http://people.skolelinux.org/pere/blog/Terms_of_use_for_video_produced_by_a_Canon_IXUS_130_digital_camera.html">discovered
22816 with my Canon IXUS 130</a>. The HTC One X specification specifies that
22817 the recording format of the phone is .amr for audio and .mp3 for
22818 video. AMR is
22819 <a href="http://en.wikipedia.org/wiki/Adaptive_Multi-Rate_audio_codec#Licensing_and_patent_issues">Adaptive
22820 Multi-Rate audio codec</a> with patents which according to the
22821 Wikipedia article require an license agreement with
22822 <a href="http://www.voiceage.com/">VoiceAge</a>. MP4 is
22823 <a href="http://en.wikipedia.org/wiki/H.264/MPEG-4_AVC#Patent_licensing">MPEG4 with
22824 H.264</a>, which according to Wikipedia require a licence agreement
22825 with <a href="http://www.mpegla.com/">MPEG-LA</a>.</p>
22826
22827 <p>I know why I prefer
22828 <a href="http://www.digistan.org/open-standard:definition">free and open
22829 standards</a> also for video.</p>
22830
22831 </div>
22832 <div class="tags">
22833
22834
22835 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/h264">h264</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</a>.
22836
22837
22838 </div>
22839 </div>
22840 <div class="padding"></div>
22841
22842 <div class="entry">
22843 <div class="title">
22844 <a href="http://people.skolelinux.org/pere/blog/RAND_terms___non_reasonable_and_discriminatory.html">RAND terms - non-reasonable and discriminatory</a>
22845 </div>
22846 <div class="date">
22847 19th April 2012
22848 </div>
22849 <div class="body">
22850 <p>Here in Norway, the
22851 <a href="http://www.regjeringen.no/nb/dep/fad.html?id=339"> Ministry of
22852 Government Administration, Reform and Church Affairs</a> is behind
22853 a <a href="http://standard.difi.no/forvaltningsstandarder">directory of
22854 standards</a> that are recommended or mandatory for use by the
22855 government. When the directory was created, the people behind it made
22856 an effort to ensure that everyone would be able to implement the
22857 standards and compete on equal terms to supply software and solutions
22858 to the government. Free software and non-free software could compete
22859 on the same level.</p>
22860
22861 <p>But recently, some standards with RAND
22862 (<a href="http://en.wikipedia.org/wiki/Reasonable_and_non-discriminatory_licensing">Reasonable
22863 And Non-Discriminatory</a>) terms have made their way into the
22864 directory. And while this might not sound too bad, the fact is that
22865 standard specifications with RAND terms often block free software from
22866 implementing them. The reasonable part of RAND mean that the cost per
22867 user/unit is low,and the non-discriminatory part mean that everyone
22868 willing to pay will get a license. Both sound great in theory. In
22869 practice, to get such license one need to be able to count users, and
22870 be able to pay a small amount of money per unit or user. By
22871 definition, users of free software do not need to register their use.
22872 So counting users or units is not possible for free software projects.
22873 And given that people will use the software without handing any money
22874 to the author, it is not really economically possible for a free
22875 software author to pay a small amount of money to license the rights
22876 to implement a standard when the income available is zero. The result
22877 in these situations is that free software are locked out from
22878 implementing standards with RAND terms.</p>
22879
22880 <p>Because of this, when I see someone claiming the terms of a
22881 standard is reasonable and non-discriminatory, all I can think of is
22882 how this really is non-reasonable and discriminatory. Because free
22883 software developers are working in a global market, it does not really
22884 help to know that software patents are not supposed to be enforceable
22885 in Norway. The patent regimes in other countries affect us even here.
22886 I really hope the people behind the standard directory will pay more
22887 attention to these issues in the future.</p>
22888
22889 <p>You can find more on the issues with RAND, FRAND and RAND-Z terms
22890 from Simon Phipps
22891 (<a href="http://blogs.computerworlduk.com/simon-says/2010/11/rand-not-so-reasonable/">RAND:
22892 Not So Reasonable?</a>).</p>
22893
22894 <p>Update 2012-04-21: Just came across a
22895 <a href="http://blogs.computerworlduk.com/open-enterprise/2012/04/of-microsoft-netscape-patents-and-open-standards/index.htm">blog
22896 post from Glyn Moody</a> over at Computer World UK warning about the
22897 same issue, and urging people to speak out to the UK government. I
22898 can only urge Norwegian users to do the same for
22899 <a href="http://www.standard.difi.no/hoyring/hoyring-om-nye-anbefalte-it-standarder">the
22900 hearing taking place at the moment</a> (respond before 2012-04-27).
22901 It proposes to require video conferencing standards including
22902 specifications with RAND terms.</p>
22903
22904 </div>
22905 <div class="tags">
22906
22907
22908 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
22909
22910
22911 </div>
22912 </div>
22913 <div class="padding"></div>
22914
22915 <div class="entry">
22916 <div class="title">
22917 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Andreas_Mundt.html">Debian Edu interview: Andreas Mundt</a>
22918 </div>
22919 <div class="date">
22920 15th April 2012
22921 </div>
22922 <div class="body">
22923 <p>Behind <a href="http://www.skolelinux.org/">Debian Edu and
22924 Skolelinux</a> there are a lot of people doing the hard work of
22925 setting together all the pieces. This time I present to you Andreas
22926 Mundt, who have been part of the technical development team several
22927 years. He was also a key contributor in getting GOsa and Kerberos set
22928 up in the recently released
22929 <a href="http://wiki.debian.org/DebianEdu/Documentation/Squeeze">Debian
22930 Edu Squeeze</a> version.</p>
22931
22932 <p><strong>Who are you, and how do you spend your days?</strong></p>
22933
22934 <p>My name is Andreas Mundt, I grew up in south Germany. After
22935 studying Physics I spent several years at university doing research in
22936 Quantum Optics. After that I worked some years in an optics company.
22937 Finally I decided to turn over a new leaf in my life and started
22938 teaching 10 to 19 years old kids at school. I teach math, physics,
22939 information technology and science/technology.</p>
22940
22941 <p><strong>How did you get in contact with the Skolelinux/Debian Edu
22942 project?</strong></p>
22943
22944 <p>Already before I switched to teaching, I followed the Debian Edu
22945 project because of my interest in education and Debian. Within the
22946 qualification/training period for the teaching, I started
22947 contributing.</p>
22948
22949 <p><strong>What do you see as the advantages of Skolelinux/Debian
22950 Edu?</strong></p>
22951
22952 <p>The advantages of Debian Edu are the well known name, the
22953 out-of-the-box philosophy and of course the great free software of the
22954 Debian Project!</p>
22955
22956 <p><strong>What do you see as the disadvantages of Skolelinux/Debian
22957 Edu?</strong></p>
22958
22959 <p>As every coin has two sides, the out-of-the-box philosophy has its
22960 downside, too. In my opinion, it is hard to modify and tweak the
22961 setup, if you need or want that. Further more, it is not easily
22962 possible to upgrade the system to a new release. It takes much too
22963 long after a Debian release to prepare the -Edu release, perhaps
22964 because the number of developers working on the core of the code is
22965 rather small and often busy elsewhere.</p>
22966
22967 <p>The <a href="http://wiki.debian.org/DebianLAN">Debian LAN</a>
22968 project might fill the use case of a more flexible system.</p>
22969
22970 <p><strong>Which free software do you use daily?</strong></p>
22971
22972 <p>I am only using non-free software if I am forced to and run Debian
22973 on all my machines. For documents I prefer LaTeX and PGF/TikZ, then
22974 mutt and iceweasel for email respectively web browsing. At school I
22975 have Arduino and Fritzing in use for a micro controller project.</p>
22976
22977 <p><strong>Which strategy do you believe is the right one to use to
22978 get schools to use free software?</strong></p>
22979
22980 <p>One of the major problems is the vendor lock-in from top to bottom:
22981 Especially in combination with ignorant government employees and
22982 politicians, this works out great for the "market-leader". The school
22983 administration here in Baden-Wuerttemberg is occupied by that vendor.
22984 Documents have to be prepared in non-free, proprietary formats. Even
22985 free browsers do not work for the school administration. Publishers
22986 of school books provide software only for proprietary platforms.</p>
22987
22988 <p>To change this, political work is very important. Parts of the
22989 political spectrum have become aware of the problem in the last years.
22990 However it takes quite some time and courageous politicians to 'free'
22991 the system. There is currently some discussion about "Open Data" and
22992 "Free/Open Standards". I am not sure if all the involved parties have
22993 a clue about the potential of these ideas, and probably only a
22994 fraction takes them seriously. However it might slowly make free
22995 software and the philosophy behind it more known and popular.</p>
22996
22997 </div>
22998 <div class="tags">
22999
23000
23001 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju</a>.
23002
23003
23004 </div>
23005 </div>
23006 <div class="padding"></div>
23007
23008 <div class="entry">
23009 <div class="title">
23010 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Justin_B__Rye.html">Debian Edu interview: Justin B. Rye</a>
23011 </div>
23012 <div class="date">
23013 8th April 2012
23014 </div>
23015 <div class="body">
23016 <p>It take all kind of contributions to create a Linux distribution
23017 like <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a>,
23018 and this time I lend the ear to Justin B. Rye, who is listed as a big
23019 contributor to the
23020 <a href="http://wiki.debian.org/DebianEdu/Documentation/Squeeze">Debian
23021 Edu Squeeze release manual</a>.
23022
23023 <p><strong>Who are you, and how do you spend your days?</strong></p>
23024
23025 <p>I'm a 44-year-old linguistics graduate living in Edinburgh who has
23026 occasionally been employed as a sysadmin.</p>
23027
23028 <p><strong>How did you get in contact with the Skolelinux/Debian Edu
23029 project?</strong></p>
23030
23031 <p>I'm neither a developer nor a Skolelinux/Debian Edu user! The only
23032 reason my name's in the credits for the documentation is that I hang
23033 around on debian-l10n-english waiting for people to mention things
23034 they'd like a native English speaker to proofread... So I did a sweep
23035 through the wiki for typos and Norglish and inconsistent spellings of
23036 "localisation".</p>
23037
23038 <p><strong>What do you see as the advantages of Skolelinux/Debian
23039 Edu?</strong></p>
23040
23041 <p><strong>What do you see as the disadvantages of Skolelinux/Debian
23042 Edu?</strong></p>
23043
23044 <p>These questions are too hard for me - I don't use it! In fact I
23045 had hardly any contact with I.T. until long after I'd got out of the
23046 education system.</p>
23047
23048 <p>I can tell you the advantages of Debian for me though: it soaks up
23049 as much of my free time as I want and no more, and lets me do
23050 everything I want a computer for without ever forcing me to spend
23051 money on the latest hardware.</p>
23052
23053 <p><strong>Which free software do you use daily?</strong></p>
23054
23055 <p>I've been using Debian since Rex; popularity-contest says the
23056 software that I use most is xinit, xterm, and xulrunner (in other
23057 words, I use a distinctly retro sort of desktop).</p>
23058
23059 <p><strong>Which strategy do you believe is the right one to use to
23060 get schools to use free software?</strong></p>
23061
23062 <p>Well, I don't know. I suppose I'd be inclined to try reasoning
23063 with the people who make the decisions, but obviously if that worked
23064 you would hardly need a strategy.</p>
23065
23066 </div>
23067 <div class="tags">
23068
23069
23070 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju</a>.
23071
23072
23073 </div>
23074 </div>
23075 <div class="padding"></div>
23076
23077 <div class="entry">
23078 <div class="title">
23079 <a href="http://people.skolelinux.org/pere/blog/Why_the_KDE_menu_is_slow_when__usr__is_NFS_mounted___and_a_workaround.html">Why the KDE menu is slow when /usr/ is NFS mounted - and a workaround</a>
23080 </div>
23081 <div class="date">
23082 6th April 2012
23083 </div>
23084 <div class="body">
23085 <p>Recently I have spent time with
23086 <a href="http://www.slxdrift.no/">Skolelinux Drift AS</a> on speeding
23087 up a <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a>
23088 Lenny installation using LTSP diskless workstations, and in the
23089 process I discovered something very surprising. The reason the KDE
23090 menu was responding slow when using it for the first time, was mostly
23091 due to the way KDE find application icons. I discovered that showing
23092 the Multimedia menu would cause more than 20 000 IP packages to be
23093 passed between the LTSP client and the NFS server. Most of these were
23094
23095 NFS LOOKUP calls, resulting in a NFS3ERR_NOENT response. Because the
23096 ping times between the client and the server were in the range 2-20
23097 ms, the menus would be very slow. Looking at the strace of kicker in
23098 Lenny (or plasma-desktop i Squeeze - same problem there), I see that
23099 the source of these NFS calls are access(2) system calls for
23100 non-existing files. KDE can do hundreds of access(2) calls to find
23101 one icon file. In my example, just finding the mplayer icon required
23102 around 230 access(2) calls.</p>
23103
23104 <p>The KDE code seem to search for icons using a list of icon
23105 directories, and the list of possible directories is large. In
23106 (almost) each directory, it look for files ending in .png, .svgz, .svg
23107 and .xpm. The result is a very slow KDE menu when /usr/ is NFS
23108 mounted. Showing a single sub menu may result in thousands of NFS
23109 requests. I am not the first one to discover this. I found a
23110 <a href="https://bugs.kde.org/show_bug.cgi?id=211416">KDE bug report
23111 from 2009</a> about this problem, and it is still unsolved.</p>
23112
23113 <p>My solution to speed up the KDE menu was to create a package
23114 kde-icon-cache that upon installation will look at all .desktop files
23115 used to generate the KDE menu, find their icons, search the icon paths
23116 for the file that KDE will end up finding at run time, and copying the
23117 icon file to /var/lib/kde-icon-cache/. Finally, I add symlinks to
23118 these icon files in one of the first directories where KDE will look
23119 for them. This cut down the number of file accesses required to find
23120 one icon from several hundred to less than 5, and make the KDE menu
23121 almost instantaneous. I'm not quite sure where to make the package
23122 publicly available, so for now it is only available on request.</p>
23123
23124 <p>The bug report mention that this do not only affect the KDE menu
23125 and icon handling, but also the login process. Not quite sure how to
23126 speed up that part without replacing NFS with for example NBD, and
23127 that is not really an option at the moment.</p>
23128
23129 <p>If you got feedback on this issue, please let us know on debian-edu
23130 (at) lists.debian.org.</p>
23131
23132 <p>Update 2015-08-04: The
23133 <a href="http://anonscm.debian.org/cgit/debian-edu/upstream/kde-icon-cache.git/">source
23134 of the scripts and associated Debian package</a> is available from the
23135 Debian Edu github repository.</p>
23136
23137 </div>
23138 <div class="tags">
23139
23140
23141 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
23142
23143
23144 </div>
23145 </div>
23146 <div class="padding"></div>
23147
23148 <div class="entry">
23149 <div class="title">
23150 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_in_the_Linux_Weekly_News.html">Debian Edu in the Linux Weekly News</a>
23151 </div>
23152 <div class="date">
23153 5th April 2012
23154 </div>
23155 <div class="body">
23156 <p>About two weeks ago, I was interviewed via email about
23157 <a href="http://www.skolelinux.org/">Debian Edu and Skolelinux</a> by
23158 Bruce Byfield in Linux Weekly News. The result was made public for
23159 non-subscribers today. I am pleased to see liked our Linux solution
23160 for schools. Check out his article
23161 <a href="https://lwn.net/Articles/488805/">Debian Edu/Skolelinux: A
23162 distribution for education</a> if you want to learn more.</p>
23163
23164 </div>
23165 <div class="tags">
23166
23167
23168 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
23169
23170
23171 </div>
23172 </div>
23173 <div class="padding"></div>
23174
23175 <div class="entry">
23176 <div class="title">
23177 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Wolfgang_Schweer.html">Debian Edu interview: Wolfgang Schweer</a>
23178 </div>
23179 <div class="date">
23180 1st April 2012
23181 </div>
23182 <div class="body">
23183 <p>Germany is a core area for the
23184 <a href="http://www.skolelinux.org/">Debian Edu and Skolelinux</a>
23185 user community, and this time I managed to get hold of Wolfgang
23186 Schweer, a valuable contributor to the project from Germany.
23187
23188 <p><strong>Who are you, and how do you spend your days?</strong></p>
23189
23190 <p>I've studied Mathematics at the university 'Ruhr-Universität' in
23191 Bochum, Germany. Since 1981 I'm working as a teacher at the school
23192 "<a href="http://www.westfalenkolleg-dortmund.de/">Westfalen-Kolleg
23193 Dortmund</a>", a second chance school. Here, young adults is given
23194 the opportunity to get further education in order to do the school
23195 examination 'Abitur', which will allow to study at a university. This
23196 second chance is of value for those who want a better job perspective
23197 or failed to get a higher school examination being teens.</p>
23198
23199 <p>Besides teaching I was involved in developing online courses for a
23200 blended learning project called 'abitur-online.nrw' and in some other
23201 information technology related projects. For about ten years I've been
23202 teacher and coordinator for the 'abitur-online' project at my
23203 school. Being now in my early sixties, I've decided to leave school at
23204 the end of April this year.</p>
23205
23206 <p><strong>How did you get in contact with the Skolelinux/Debian Edu
23207 project?</strong></p>
23208
23209 <p>The first information about Skolelinux must have come to my
23210 attention years ago and somehow related to LTSP (Linux Terminal Server
23211 Project). At school, we had set up a network at the beginning of 1997
23212 using Suse Linux on the desktop, replacing a Novell network. Since
23213 2002, we used old machines from the city council of Dortmund as thin
23214 clients (LTSP, later Ubuntu/Lessdisks) cause new hardware was out of
23215 reach. At home I'm using Debian since years and - subscribed to the
23216 Debian news letter - heard from time to time about Skolelinux. About
23217 two years ago I proposed to replace the (somehow undocumented and only
23218 known to me) system at school by a well known Debian based system:
23219 Skolelinux.</p>
23220
23221 <p>Students and teachers appreciated the new system because of a
23222 better look and feel and an enhanced access to local media on thin
23223 clients. The possibility to alter and/or reset passwords using a GUI
23224 was welcomed, too. Being able to do administrative tasks using a GUI
23225 and to easily set up workstations using PXE was of very high value for
23226 the admin teachers.</p>
23227
23228 <p><strong>What do you see as the advantages of Skolelinux/Debian
23229 Edu?</strong></p>
23230
23231 <p>It's open source, easy to set up, stable and flexible due to it's
23232 Debian base. It integrates LTSP out-of-the-box. And it is documented!
23233 So it was a perfect choice.</p>
23234
23235 <p>Being open source, there are no license problems and so it's
23236 possible to point teachers and students to programs like
23237 OpenOffice.org, ViewYourMind (mind mapping) and The Gimp. It's of
23238 high value to be able to adapt parts of the system to special needs of
23239 a school and to choose where to get support for this.</p>
23240
23241 <p><strong>What do you see as the disadvantages of Skolelinux/Debian
23242 Edu?</strong></p>
23243
23244 <p>Nothing yet.</p>
23245
23246 <p><strong>Which free software do you use daily?</strong></p>
23247
23248 <p>At home (Debian Sid with Gnome Desktop): Iceweasel, LibreOffice,
23249 Mutt, Gedit, Document Viewer, Midnight Commander, flpsed (PDF
23250 Annotator). At school (Skolelinux Lenny): Iceweasel, Gedit,
23251 LibreOffice.</p>
23252
23253 <p><strong>Which strategy do you believe is the right one to use to
23254 get schools to use free software?</strong></p>
23255
23256 <p>Some time ago I thought it was enough to tell people about it. But
23257 that doesn't seem to work quite well. Now I concentrate on those more
23258 interested and hope to get multiplicators that way.</p>
23259
23260 </div>
23261 <div class="tags">
23262
23263
23264 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju</a>.
23265
23266
23267 </div>
23268 </div>
23269 <div class="padding"></div>
23270
23271 <div class="entry">
23272 <div class="title">
23273 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_screencast__Checking_email_with_kmail_using_Kerberos_authentication.html">Debian Edu screencast: Checking email with kmail using Kerberos authentication</a>
23274 </div>
23275 <div class="date">
23276 25th March 2012
23277 </div>
23278 <div class="body">
23279 <!-- Video HTML based on http://www.diveintohtml5.net/video.html -->
23280
23281 <p>The same Debian Edu developer that did the last screen cast I
23282 published, Wolfgang Schweer, has created a new screen cast showing how
23283 to set up Kmail in Debian Edu Squeze to authenticate using Kerberos,
23284 allowing users to check their local email account without providing
23285 any password. The video is embedded here in quarter size,
23286 and also available from <a href="https://vimeo.com/38601767">vimeo</a>
23287 and download as a
23288 <a href="http://ftp.skolelinux.org/skolelinux/press/screencasts/2012-03-14-Debian-Edu_Configure_Kmail_for_internal_usage.ogv">Ogg
23289 Theora</a> file. Check it out below.</p>
23290
23291 <p><video id="kmail-kerberos-movie" width="256" height="184" preload controls>
23292 <source src="http://ftp.skolelinux.org/skolelinux/press/screencasts/2012-03-14-Debian-Edu_Configure_Kmail_for_internal_usage.ogv" type='video/ogg; codecs="theora, vorbis"' />
23293 <p>Download video as
23294 <a href="http://ftp.skolelinux.org/skolelinux/press/screencasts/2012-03-14-Debian-Edu_Configure_Kmail_for_internal_usage.ogv">Ogg</a>.</p>
23295 </video></p>
23296
23297 </div>
23298 <div class="tags">
23299
23300
23301 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
23302
23303
23304 </div>
23305 </div>
23306 <div class="padding"></div>
23307
23308 <div class="entry">
23309 <div class="title">
23310 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__John_Ingleby.html">Debian Edu interview: John Ingleby</a>
23311 </div>
23312 <div class="date">
23313 19th March 2012
23314 </div>
23315 <div class="body">
23316 <p><a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a>
23317 users are spread all across the globe. The second inteview after
23318 <a href="http://lists.debian.org/debian-edu-announce/2012/03/msg00001.html">the
23319 Squeeze release</a> was publised is with John Ingleby, a teacher and
23320 long time Linux user in United Kingdom.</p>
23321
23322 <p><strong>Who are you, and how do you spend your days?</strong></p>
23323
23324 <p>I teach ICT part time at the Rudolf Steiner School in Kings
23325 Langley, near London, UK. Previously I worked as a technical
23326 author/trainer while my children attended the school, and I also
23327 contributed to the Schoolforge UK community with the aim of
23328 encouraging UK schools to adopt free/open source software. Five or six
23329 years ago we had about 50 schools interested in some way, but we
23330 weren't able to convert many of them into sustainable
23331 installations.</p>
23332
23333 <p><strong>How did you get in contact with the Skolelinux/Debian Edu
23334 project?</strong></p>
23335
23336 <p>Skolelinux had two representatives at an early Edubuntu meeting in
23337 London which I attended. However at that time our school network had
23338 just been installed using CentOS, LTSP 4 and GNOME. When LTSP 5 came
23339 along we switched to Edubuntu thin client servers so now we have a
23340 mixed environment which includes Windows PCs and student laptops, as
23341 well as their MacBooks and iPads. However, the proprietary systems
23342 have always been rather problematic, and we never built a GUI for the
23343 LDAP server, so when I discovered Skolelinux is configured for all
23344 these things we decided to try it.</p>
23345
23346 <p><strong>What do you see as the advantages of Skolelinux/Debian
23347 Edu?</strong></p>
23348
23349 <p>By far the biggest advantage is the Debian Edu community. Apart
23350 from that I have always believed in the same "sustainable computing"
23351 goals that Skolelinux is built on: installing Linux on computers which
23352 would otherwise be thrown away, to provide a reliable, secure and
23353 low-cost IT environment for schools. From my own experience I know
23354 that a part-time person can teach and manage a network of about 25
23355 Linux computers, but it would take much more of my time if we had
23356 proprietary software everywhere.</p>
23357
23358 <p><strong>What do you see as the disadvantages of Skolelinux/Debian
23359 Edu?</strong></p>
23360
23361 <p>As a newcomer I'm just finding out who's who in the community and
23362 how you're organised, and what your procedures are for dealing with
23363 various things such as editing manual pages and so-on. The only
23364 English language mailing list seems to be for developers as well as
23365 users, so my inbox needs heavy pruning each day!</p>
23366
23367 <p><strong>Which free software do you use daily?</strong></p>
23368
23369 <p>Besides the software already mentioned at school we use Samba,
23370 OpenLDAP, CUPS, Nagios and Dansguardian for the network, and on the
23371 desktops we have LibreOffice, Firefox, GIMP and Inkscape. At home I
23372 use Ubuntu and an Android 4 eePad Transformer (but I'm not sure if
23373 that counts...)</p>
23374
23375 <p><strong>Which strategy do you believe is the right one to use to
23376 get schools to use free software?</strong></p>
23377
23378 <p>That's a tough question! For very many years UK schools installed
23379 and taught only proprietary software, so that at the highest levels
23380 the notion of "computer" means simply "proprietary office
23381 applications". However, schools today are experiencing budget
23382 constraints, and many are having to think hard about upgrading Windows
23383 XP. At the same time, we have students showing teachers how to use
23384 iPads, MacBooks and Android, so the choice of operating system is no
23385 longer quite so automatic. What is more, our government at last
23386 realised that we need people with programming skills, so they're
23387 putting coding back in the curriculum! And it's encouraging that the
23388 first 10,000 Raspberry Pi units sold out in 2 hours.</p>
23389
23390 <p>I don't really know what strategy is going to get UK schools to use
23391 free software, but building an active community of Skolelinux/Debian
23392 Edu users in this country has to be part of it.</p>
23393
23394 </div>
23395 <div class="tags">
23396
23397
23398 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju</a>.
23399
23400
23401 </div>
23402 </div>
23403 <div class="padding"></div>
23404
23405 <div class="entry">
23406 <div class="title">
23407 <a href="http://people.skolelinux.org/pere/blog/Writing_and_translating_documentation_in_Debian_Edu.html">Writing and translating documentation in Debian Edu</a>
23408 </div>
23409 <div class="date">
23410 16th March 2012
23411 </div>
23412 <div class="body">
23413 <p>Documentation in Debian Edu is provided in several languages, and
23414 it is important to make it both easy to contribute and to keep the
23415 translated versions in sync. To do this we have come up with what we
23416 believe is a very efficient work flow.</p>
23417
23418 <ol>
23419
23420 <li>The documentation is written in a
23421 <a href="http://moinmo.in">moinmoin wiki</a> (see for example
23422 <a href="http://wiki.debian.org/DebianEdu/Documentation/Squeeze">the
23423 Squeeze release manual</a>) with support for exporting the content as
23424 docbook XML.</li>
23425
23426 <li>This docbook document is given to po4a to extract a gettext style
23427 .pot file with the content, which in turn is used to create .po files
23428 with the translated text.</li>
23429
23430 <li>The .po files are given to translators, and they can always tell
23431 which part of the original wiki document is new or changed. They can
23432 use their normal translation tools like lokalize or poedit to write
23433 the translation. There is even a system in place to handle translated
23434 images.</li>
23435
23436 <li>The translated .po files are combined with the original docbook
23437 XML document using po4a to create a translated docbook document.</li>
23438
23439 <li>The final step is to use all the generated docbook files and
23440 create PDF and HTML version of the original and translated documents.</li>
23441
23442 </ol>
23443
23444 <p>This setup work very well, but have a few issues. The biggest
23445 issue is that <a href="http://moinmo.in/DocBook">the docbook support
23446 we use in moinmoin</a> is not actively maintained. The docbook
23447 support is also buggy, and our build system contain workarounds to
23448 make sure the generated docbook is usable despite these bugs.</p>
23449
23450 <p>If you want to have a look at our setup, it is all there in the
23451 <a href="http://packages.qa.debian.org/debian-edu-doc">debian-edu-doc
23452 package</a>.</p>
23453
23454 </div>
23455 <div class="tags">
23456
23457
23458 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
23459
23460
23461 </div>
23462 </div>
23463 <div class="padding"></div>
23464
23465 <div class="entry">
23466 <div class="title">
23467 <a href="http://people.skolelinux.org/pere/blog/Skolelinux___Debian_Edu_Squeeze_is_out_.html">Skolelinux / Debian Edu Squeeze is out!</a>
23468 </div>
23469 <div class="date">
23470 11th March 2012
23471 </div>
23472 <div class="body">
23473 <p>This weekend we finally published the first stable release of
23474 <a href="http://www.skolelinux.org/">Skolelinux / Debian Edu</a> based
23475 on Debian/Squeeze. The full announcement is
23476 <a href="http://lists.debian.org/debian-edu-announce/2012/03/msg00001.html">available</a>
23477 from the project announcement list. Now is a good time to test if it
23478 you have not done so already.</p>
23479
23480 <p>I plan to present the new version at
23481 <a href="http://www.nuug.no/aktiviteter/20120313-skolelinux/">a NUUG
23482 meeting</a> on tuesday. I look forward to seeing you there if you are
23483 in Oslo, Norway.</p>
23484
23485 </div>
23486 <div class="tags">
23487
23488
23489 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
23490
23491
23492 </div>
23493 </div>
23494 <div class="padding"></div>
23495
23496 <div class="entry">
23497 <div class="title">
23498 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Nigel_Barker.html">Debian Edu interview: Nigel Barker</a>
23499 </div>
23500 <div class="date">
23501 9th March 2012
23502 </div>
23503 <div class="body">
23504 <p>Inspired by <a href="http://raphaelhertzog.com/tag/interview/">the
23505 interview series</a> conducted by Raphael, I started a Norwegian
23506 interview series with people involved in the Debian Edu / Skolelinux
23507 community. This was so popular that I believe it is time to move to a
23508 more international audience.</p>
23509
23510 <p>While <a href="http://www.skolelinux.org/">Debian Edu and
23511 Skolelinux</a> originated in France and Norway, and have most users in
23512 Europe, there are users all around the globe. One of those far away
23513 from me is Nigel Barker, a long time Debian Edu system administrator
23514 and contributor. It is thanks to him that Debian Edu is adjusted to
23515 work out of the box in Japan. I got him to answer a few questions,
23516 and am happy to share the response with you. :)
23517
23518
23519 <p><strong>Who are you, and how do you spend your days?</strong></p>
23520
23521 <p>My name is Nigel Barker, and I am British. I am married to Yumiko,
23522 and we have three lovely children, aged 15, 14 and 4(!) I am the IT
23523 Coordinator at Hiroshima International School, Japan. I am also a
23524 teacher, and in fact I spend most of my day teaching Mathematics,
23525 Science, IT, and Chemistry. I was originally a Chemistry teacher, but
23526 I have always had an interest in computers. Another teacher teaches
23527 primary school IT, but apart from that I am the only computer person,
23528 so that means I am the network manager, technician and webmaster,
23529 also, and I help people with their computer problems. I teach python
23530 to beginners in an after-school club. I am way too busy, so I really
23531 appreciate the simplicity of Skolelinux.</p>
23532
23533 <p><strong>How did you get in contact with the Skolelinux/Debian Edu
23534 project?</strong></p>
23535
23536 <p>In around 2004 or 5 I discovered the ltsp project, and set up a
23537 server in the IT lab. I wanted some way to connect it to our central
23538 samba server, which I was also quite poor at configuring. I discovered
23539 Edubuntu when it came out, but it didn't really improve my setup. I
23540 did various desperate searches for things like "school Linux server"
23541 and ended up in a document called "Drift" something or other. Reading
23542 there it became clear that Skolelinux was going to solve all my
23543 problems in one go. I was very excited, but apprehensive, because my
23544 previous attempts to install Debian had ended in failure (I used
23545 Mandrake for everything - ltsp, samba, apache, mail, ns...). I
23546 downloaded a beta version, had some problems, so subscribed to the
23547 Debian Edu list for help. I have remained subscribed ever since, and
23548 my school has run a Skolelinux network since Sarge.</p>
23549
23550 <p><strong>What do you see as the advantages of Skolelinux/Debian
23551 Edu?</strong></p>
23552
23553 <p>For me the integrated setup. This is not just the server, or the
23554 workstation, or the ltsp. Its all of them, and its all configured
23555 ready to go. I read somewhere in the early documentation that it is
23556 designed to be setup and managed by the Maths or Science teacher, who
23557 doesn't necessarily know much about computers, in a small Norwegian
23558 school. That describes me perfectly if you replace Norway with
23559 Japan.</p>
23560
23561 <p><strong>What do you see as the disadvantages of Skolelinux/Debian
23562 Edu?</strong></p>
23563
23564 <p>The desktop is fairly plain. If you compare it with Edubuntu, who
23565 have fun themes for children, or with distributions such as Mint, who
23566 make the desktop beautiful. They create a good impression on people
23567 who don't need to understand how to use any of it, but who might be
23568 important to the school. School administrators or directors, for
23569 instance, or parents. Even kids. Debian itself usually has ugly
23570 default theme settings. It was my dream a few years back that some
23571 kind of integration would allow Edubuntu to do the desktop stuff and
23572 Debian Edu the servers, but now I realise how impossible that is. A
23573 second disadvantage is that if something goes wrong, or you need to
23574 customise something, then suddenly the level of expertise required
23575 multiplies. For example, backup wasn't working properly in Lenny. It
23576 took me ages to learn how to set up my own server to do rsync backups.
23577 I am afraid of anything to do with ldap, but perhaps Gosa will
23578 help.</p>
23579
23580 <p><strong>Which free software do you use daily?</strong></p>
23581
23582 <p>Nowadays I only use Debian on my personal computers. I have one for
23583 studio work (I play guitar and write songs), running AV Linux
23584 (customised Debian) a netbook running Squeeze, and a bigger laptop
23585 still running Skolelinux Lenny workstation. I have a Tjener in my
23586 house, that's very useful for the family photos and music. At school
23587 the students only use Skolelinux. (Some teachers and the office still
23588 have windows). So that means we only use free software all day every
23589 day. Open office, The GIMP, Firefox/Iceweasel, VLC and Audacity are
23590 installed on every computer in school, irrespective of OS. We also
23591 have Koha on Debian for the library, and Apache, Moodle, b2evolution
23592 and Etomite on Debian for the www. The firewall is Untangle.</p>
23593
23594 <p><strong>Which strategy do you believe is the right one to use to
23595 get schools to use free software?</strong></p>
23596
23597 <p>Current trends are in our favour. Open source is big in industry,
23598 and ordinary people have heard of it. The spread of Android and the
23599 popularity of Apple have helped to weaken the impression that you have
23600 to have Microsoft on everything. People complain to me much less about
23601 file formats and Word than they did 5 years ago. The Edu aspect is
23602 also a selling point. This is all customised for schools. Where is the
23603 Windows-edu, or the Mac-edu? But of course the main attraction is
23604 budget.The trick is to convince people that the quality is not
23605 compromised when you stop paying and use free software instead. That
23606 is one reason why I say the desktop experience is a weakness. People
23607 are not impressed when their USB drive doesn't work, or their browser
23608 doesn't play flash, for example.</p>
23609
23610 </div>
23611 <div class="tags">
23612
23613
23614 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju</a>.
23615
23616
23617 </div>
23618 </div>
23619 <div class="padding"></div>
23620
23621 <div class="entry">
23622 <div class="title">
23623 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_screencast__Mass_creation_of_user_accounts_in_Squeeze.html">Debian Edu screencast: Mass creation of user accounts in Squeeze</a>
23624 </div>
23625 <div class="date">
23626 7th March 2012
23627 </div>
23628 <div class="body">
23629 <!-- Video HTML based on http://www.diveintohtml5.net/video.html -->
23630
23631 <p>One of the Debian Edu developers, Wolfgang Schweer, just created a
23632 screen cast documenting how to create a lot of new users in LDAP on
23633 Debian Edu Squeeze. The video is embedded here in quarter size, and
23634 also available from <a href="http://vimeo.com/37675399">vimeo</a> and
23635 download as a
23636 <a href="http://ftp.skolelinux.org/skolelinux/press/screencasts/2012-02-29-debian_edu_mass_create_user_accounts.ogv">Ogg
23637 Theora</a> file. Check it out below.</p>
23638
23639 <p><video id="gosa-mass-user-create-movie" width="256" height="184" preload controls>
23640 <source src="http://ftp.skolelinux.org/skolelinux/press/screencasts/2012-02-29-debian_edu_mass_create_user_accounts.ogv" type='video/ogg; codecs="theora, vorbis"' />
23641 <p>Download video as
23642 <a href="http://ftp.skolelinux.org/skolelinux/press/screencasts/2012-02-29-debian_edu_mass_create_user_accounts.ogv">Ogg</a>.</p>
23643 </video></p>
23644
23645 </div>
23646 <div class="tags">
23647
23648
23649 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
23650
23651
23652 </div>
23653 </div>
23654 <div class="padding"></div>
23655
23656 <div class="entry">
23657 <div class="title">
23658 <a href="http://people.skolelinux.org/pere/blog/Third_release_candidate_of_Debian_Edu___Skolelinux_based_on_Squeeze.html">Third release candidate of Debian Edu / Skolelinux based on Squeeze</a>
23659 </div>
23660 <div class="date">
23661 4th March 2012
23662 </div>
23663 <div class="body">
23664 <p>This weekend we wrapped up and published the third release
23665 candidate for <a href="http://www.skolelinux.org/">Debian Edu /
23666 Skolelinux</a> based on Squeeze. The full announcement is
23667 <a href="http://lists.debian.org/debian-edu-announce/2012/03/msg00000.html">available</a>
23668 from the project announcement list. Check it out if you
23669 need a software solution for your school.</p>
23670
23671 </div>
23672 <div class="tags">
23673
23674
23675 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
23676
23677
23678 </div>
23679 </div>
23680 <div class="padding"></div>
23681
23682 <div class="entry">
23683 <div class="title">
23684 <a href="http://people.skolelinux.org/pere/blog/Stopmotion_for_making_stop_motion_animations_on_Linux___reloaded.html">Stopmotion for making stop motion animations on Linux - reloaded</a>
23685 </div>
23686 <div class="date">
23687 3rd March 2012
23688 </div>
23689 <div class="body">
23690 <p>Many years ago, the <a href="http://www.skolelinux.org/">Skolelinux
23691 / Debian Edu project</a> initiated a student project to create a tool
23692 for making stop motion movies. The proposal came from a teacher
23693 needing such tool on Skolelinux. The project, called "stopmotion",
23694 was manned by two extraordinary students and won a school award and a
23695 national aware with this great project. The project was initiated and
23696 mentored by Herman Robak, and manned by the students Bjørn Erik Nilsen
23697 and Fredrik Berg Kjølstad. They got in touch with people at Aardman
23698 Animation studio and received feedback on how professionals would like
23699 such stopmotion tool to work, and the end result was and is used by
23700 animators around the globe. But as is usual after studying, both got
23701 jobs and went elsewhere, and did not have time to properly tend to the
23702 project, and it has been lingering for a few years now. Until last
23703 year...</p>
23704
23705 <p>Last year some of the users got together with Herman, and moved the
23706 project to Sourceforge and in effect restarted the project under a new
23707 name,
23708 <a href="http://sourceforge.net/projects/linuxstopmotion/">linuxstopmotion</a>.
23709 The name change was done to make it possible to find the project using
23710 Internet search engines (try to search for 'stopmotion' to see what I
23711 mean). I've been following
23712 <a href="https://lists.sourceforge.net/lists/listinfo/linuxstopmotion-community">the
23713 mailing list</a> and the improvement already in place and planned for
23714 the future is encouraging. If you want to make stop motion movies.
23715 Check it out. :)</p>
23716
23717 </div>
23718 <div class="tags">
23719
23720
23721 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</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>.
23722
23723
23724 </div>
23725 </div>
23726 <div class="padding"></div>
23727
23728 <div class="entry">
23729 <div class="title">
23730 <a href="http://people.skolelinux.org/pere/blog/Second_release_candidate_of_Debian_Edu___Skolelinux_based_on_Squeeze.html">Second release candidate of Debian Edu / Skolelinux based on Squeeze</a>
23731 </div>
23732 <div class="date">
23733 27th February 2012
23734 </div>
23735 <div class="body">
23736 <p>This weekend we wrapped up and published the second release
23737 candidate for <a href="http://www.skolelinux.org/">Debian Edu /
23738 Skolelinux</a> based on Squeeze. The full announcement did for some
23739 reason not make it the project announcement list, but is
23740 <a href="http://lists.debian.org/debian-devel-announce/2012/02/msg00015.html">available</a>
23741 from the Debian development announcement list. Check it out if you
23742 need a software solution for your school.</p>
23743
23744 </div>
23745 <div class="tags">
23746
23747
23748 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
23749
23750
23751 </div>
23752 </div>
23753 <div class="padding"></div>
23754
23755 <div class="entry">
23756 <div class="title">
23757 <a href="http://people.skolelinux.org/pere/blog/First_release_candidate_of_Debian_Edu___Skolelinux_based_on_Squeeze.html">First release candidate of Debian Edu / Skolelinux based on Squeeze</a>
23758 </div>
23759 <div class="date">
23760 19th February 2012
23761 </div>
23762 <div class="body">
23763 <p>One week delayed due to DVD build problems, we managed today to
23764 wrap up and publish the first release candidate for
23765 <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a> based
23766 on Squeeze. The full announcement is
23767 <a href="http://lists.debian.org/debian-edu-announce/2012/02/msg00001.html">available</a>
23768 on the project announcement list. Check it out if you need a software
23769 solution for your school.</p>
23770
23771 </div>
23772 <div class="tags">
23773
23774
23775 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
23776
23777
23778 </div>
23779 </div>
23780 <div class="padding"></div>
23781
23782 <div class="entry">
23783 <div class="title">
23784 <a href="http://people.skolelinux.org/pere/blog/How_to_figure_out_which_RAID_disk_to_replace_when_it_fail.html">How to figure out which RAID disk to replace when it fail</a>
23785 </div>
23786 <div class="date">
23787 14th February 2012
23788 </div>
23789 <div class="body">
23790 <p>Once in a while my home server have disk problems. Thanks to Linux
23791 Software RAID, I have not lost data yet (but
23792 <a href="http://comments.gmane.org/gmane.linux.raid/34532">I was
23793 close</a> this summer :). But once a disk is starting to behave
23794 funny, a practical problem present itself. How to get from the Linux
23795 device name (like /dev/sdd) to something that can be used to identify
23796 the disk when the computer is turned off? In my case I have SATA
23797 disks with a unique ID printed on the label. All I need is a way to
23798 figure out how to query the disk to get the ID out.</p>
23799
23800 <p>After fumbling a bit, I
23801 <a href="http://www.cyberciti.biz/faq/linux-getting-scsi-ide-harddisk-information/">found
23802 that hdparm -I</a> will report the disk serial number, which is
23803 printed on the disk label. The following (almost) one-liner can be
23804 used to look up the ID of all the failed disks:</p>
23805
23806 <blockquote><pre>
23807 for d in $(cat /proc/mdstat |grep '(F)'|tr ' ' "\n"|grep '(F)'|cut -d\[ -f1|sort -u);
23808 do
23809 printf "Failed disk $d: "
23810 hdparm -I /dev/$d |grep 'Serial Num'
23811 done
23812 </blockquote></pre>
23813
23814 <p>Putting it here to make sure I do not have to search for it the
23815 next time, and in case other find it useful.</p>
23816
23817 <p>At the moment I have two failing disk. :(</p>
23818
23819 <blockquote><pre>
23820 Failed disk sdd1: Serial Number: WD-WCASJ1860823
23821 Failed disk sdd2: Serial Number: WD-WCASJ1860823
23822 Failed disk sde2: Serial Number: WD-WCASJ1840589
23823 </blockquote></pre>
23824
23825 <p>The last time I had failing disks, I added the serial number on
23826 labels I printed and stuck on the short sides of each disk, to be able
23827 to figure out which disk to take out of the box without having to
23828 remove each disk to look at the physical vendor label. The vendor
23829 label is at the top of the disk, which is hidden when the disks are
23830 mounted inside my box.</p>
23831
23832 <p>I really wish the check_linux_raid Nagios plugin for checking Linux
23833 Software RAID in the
23834 <a href="http://packages.qa.debian.org/n/nagios-plugins.html">nagios-plugins-standard</a>
23835 debian package would look up this value automatically, as it would
23836 make the plugin a lot more useful when my disks fail. At the moment
23837 it only report a failure when there are no more spares left (it really
23838 should warn as soon as a disk is failing), and it do not tell me which
23839 disk(s) is failing when the RAID is running short on disks.</p>
23840
23841 </div>
23842 <div class="tags">
23843
23844
23845 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/raid">raid</a>.
23846
23847
23848 </div>
23849 </div>
23850 <div class="padding"></div>
23851
23852 <div class="entry">
23853 <div class="title">
23854 <a href="http://people.skolelinux.org/pere/blog/Automatic_proxy_configuration_with_Debian_Edu___Skolelinux.html">Automatic proxy configuration with Debian Edu / Skolelinux</a>
23855 </div>
23856 <div class="date">
23857 13th February 2012
23858 </div>
23859 <div class="body">
23860 <p>New in the Squeeze version of
23861 <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a> is the
23862 ability for clients to automatically configure their proxy settings
23863 based on their environment. We want all systems on the client to use
23864 the WPAD based proxy definition fetched from <tt>http://wpad/wpad.dat</tt>, to
23865 allow sites to control the proxy setting from a central place and make
23866 sure clients do not have hard coded proxy settings. The schools can
23867 change the global proxy setting by editing
23868 <tt>tjener:/etc/debian-edu/www/wpad.dat</tt> and the change propagate
23869 to all Debian Edu clients in the network.</p>
23870
23871 <p>The problem is that some systems do not understand the WPAD system.
23872 In other words, how do one get from a WPAD file like this (this is a
23873 simple one, they can run arbitrary code):</p>
23874
23875 <blockquote><pre>
23876 function FindProxyForURL(url, host)
23877 {
23878 if (!isResolvable(host) ||
23879 isPlainHostName(host) ||
23880 dnsDomainIs(host, ".intern"))
23881 return "DIRECT";
23882 else
23883 return "PROXY webcache:3128; DIRECT";
23884 }
23885 </pre></blockquote>
23886
23887 <p>to a proxy setting in the process environment looking like this:</p>
23888
23889 <blockquote><pre>
23890 http_proxy=http://webcache:3128/
23891 ftp_proxy=http://webcache:3128/
23892 </pre></blockquote>
23893
23894 <p>To do this conversion I developed a perl script that will execute
23895 the javascript fragment in the WPAD file and return the proxy that
23896 would be used for
23897 <tt><a href="http://www.debian.org/">http://www.debian.org/</a></tt>,
23898 and insert this extracted proxy URL in <tt>/etc/environment</tt> and
23899 <tt>/etc/apt/apt.conf</tt>. The perl script wpad-extract work just
23900 fine in Squeeze, but in Wheezy the library it need to run the
23901 javascript code is <a href="http://bugs.debian.org/631045">no longer
23902 able to build</a> because the C library it depended on is now a C++
23903 library. I hope someone find a solution to that problem before Wheezy
23904 is frozen. An alternative would be for us to rewrite wpad-extract to
23905 use some other javascript library currently working in Wheezy, but no
23906 known alternative is known at the moment.</p>
23907
23908 <p>This automatic proxy system allow the roaming workstation (aka
23909 laptop) setup in Debian Edu/Squeeze to use the proxy when the laptop
23910 is connected to the backbone network in a Debian Edu setup, and to
23911 automatically use any proxy present and announced using the WPAD
23912 feature when it is connected to other networks. And if no proxy is
23913 announced, direct connections will be used instead.</p>
23914
23915 <p>Silently using a proxy announced on the network might be a privacy
23916 or security problem. But those controlling DHCP and DNS on a network
23917 could just as easily set up a transparent proxy, and force all HTTP
23918 and FTP connections to use a proxy anyway, so I consider that
23919 distinction to be academic. If you are afraid of using the wrong
23920 proxy, you should avoid connecting to the network in question in the
23921 first place. In Debian Edu, the proxy setup is updated using dhcp and
23922 ifupdown hooks, to make sure the configuration is updated every time
23923 the network setup changes.</p>
23924
23925 <p>The WPAD system is documented in a
23926 <a href="http://tools.ietf.org/html/draft-ietf-wrec-wpad-01">IETF
23927 draft</a> and a
23928 <a href="http://en.wikipedia.org/wiki/Web_Proxy_Autodiscovery_Protocol">Wikipedia
23929 page</a> for those that want to learn more.</p>
23930
23931 </div>
23932 <div class="tags">
23933
23934
23935 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
23936
23937
23938 </div>
23939 </div>
23940 <div class="padding"></div>
23941
23942 <div class="entry">
23943 <div class="title">
23944 <a href="http://people.skolelinux.org/pere/blog/Saving_power_with_Debian_Edu___Skolelinux_using_shutdown_at_night.html">Saving power with Debian Edu / Skolelinux using shutdown-at-night</a>
23945 </div>
23946 <div class="date">
23947 5th February 2012
23948 </div>
23949 <div class="body">
23950 <p>Since the Lenny version of
23951 <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a>, a
23952 feature to save power have been included. It is as simple as it is
23953 practical: Shut down unused clients at night, and turn them on again
23954 in the morning. This is done using the
23955 <a href="http://packages.qa.debian.org/s/shutdown-at-night.html">shutdown-at-night</a> Debian package.</p>
23956
23957 <p>To enable this feature on a client, the machine need to be added to
23958 the netgroup shutdown-at-night-hosts. For Debian Edu, this is done in
23959 LDAP, and once this is in place, the machine in question will check
23960 every hour from 16:00 until 06:00 to see if the machine is unused, and
23961 shut it down if it is. If the hardware in question is supported by
23962 the
23963 <a href="http://packages.qa.debian.org/n/nvram-wakeup.html">nvram-wakeup</a>
23964 package, the BIOS is told to turn the machine back on around 07:00 +-
23965 10 minutes. If this isn't working, one can configure wake-on-lan to
23966 try to turn on the client. The wake-on-lan option is only documented
23967 and not enabled by default in Debian Edu.</p>
23968
23969 <p>It is important to not turn all machines on at once, as this can
23970 blow a fuse if several computers are connected to the same fuse like
23971 the common setup for a classroom. The nvram-wakeup method only work
23972 for machines with a functioning hardware/BIOS clock. I've seen old
23973 machines where the BIOS battery were dead and the hardware clock were
23974 starting from 0 (or was it 1990?) every boot. If you have one of
23975 those, you have to turn on the computer manually.</p>
23976
23977 <p>The shutdown-at-night package is completely self contained, and can
23978 also be used outside the Debian Edu environment. For those without a
23979 central LDAP server with netgroups, one can instead touch the file
23980 <tt>/etc/shutdown-at-night/shutdown-at-night</tt> to enable it.
23981 Perhaps you too can use it to save some power?</p>
23982
23983 </div>
23984 <div class="tags">
23985
23986
23987 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
23988
23989
23990 </div>
23991 </div>
23992 <div class="padding"></div>
23993
23994 <div class="entry">
23995 <div class="title">
23996 <a href="http://people.skolelinux.org/pere/blog/Third_beta_version_of_Debian_Edu___Skolelinux_based_on_Squeeze.html">Third beta version of Debian Edu / Skolelinux based on Squeeze</a>
23997 </div>
23998 <div class="date">
23999 4th February 2012
24000 </div>
24001 <div class="body">
24002 <p>I am happy to announce that finally we managed today to wrap up and
24003 publish the third beta version of
24004 <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a> based
24005 on Squeeze. If you want to test a LDAP backed Kerberos server with
24006 out of the box PXE configuration for running diskless machines and
24007 installing new machines, check it out. If you need a software
24008 solution for your school, check it out too. The full announcement is
24009 <a href="http://lists.debian.org/debian-edu-announce/2012/02/msg00000.html">available</a>
24010 on the project announcement list.</p>
24011
24012 <p>I am very happy to report these changes and improvements since
24013 beta2 (there are more, see announcement for full list):</p>
24014
24015 <ul>
24016
24017 <li>It is now possible to change the pre-configured IP subnet from
24018 10.0.0.0/8 to something else by using the subnet-change tool after
24019 the installation.</li>
24020
24021 <li>Too full partitions are now automatically extended on the Main
24022 Server, based on the rules specified in /etc/fsautoresizetab.</li>
24023
24024 <li>The CUPS queues are now automatically flushed every night, and all
24025 disabled queues are restarted every hour. This should cut down on
24026 the amount of manual administration needed for printers.</li>
24027
24028 <li>The set of initial users have been changed. Now a personal user
24029 for the local system administrator is created during installation
24030 instead of the previously created localadmin and super-admin users,
24031 and this user is granted administrative privileges using group
24032 membership. This reduces the number of passwords one need to keep
24033 up to date on the system.</li>
24034
24035 </ul>
24036
24037 <p>The new main server seem to work so well that I am testing it as my
24038 private DNS/LDAP/Kerberos/PXE/LTSP server at home. I will use it look
24039 for issues we could fix to polish Debian Edu even further before the
24040 final Squeeze release is published.</p>
24041
24042 <p>Next weekend the project organise a
24043 <a href="http://lists.debian.org/debian-edu-announce/2012/01/msg00001.html">developer
24044 gathering</a> in Oslo. We will continue the work on the Squeeze
24045 version, and start initial planning for the Wheezy version. Perhaps I
24046 will see you there?</p>
24047
24048 </div>
24049 <div class="tags">
24050
24051
24052 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
24053
24054
24055 </div>
24056 </div>
24057 <div class="padding"></div>
24058
24059 <div class="entry">
24060 <div class="title">
24061 <a href="http://people.skolelinux.org/pere/blog/Handling_non_free_firmware_in_Debian_Edu_Squeeze.html">Handling non-free firmware in Debian Edu/Squeeze</a>
24062 </div>
24063 <div class="date">
24064 27th January 2012
24065 </div>
24066 <div class="body">
24067 <p>With some computer hardware, one need non-free firmware blobs.
24068 This is the sad fact of todays computers. In the next version of
24069 <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a> based
24070 on Squeeze, we provide several scripts and modifications to make
24071 firmware blobs easier to handle. The common use case I run into is a
24072 laptop with a wireless network card requiring non-free firmware to
24073 work, but there are other use cases as well.</p>
24074
24075 <p>First and foremost, Debian Edu provide ISO images for DVD and CD
24076 with all firmware packages in the Debian sections main and non-free
24077 included, to ensure debian-installer find and can install all of them
24078 during installation. This take care firmware for network devices used
24079 by the installer when installing from from local media. But for
24080 example multimedia devices are not activated in the installer and are
24081 not taken care of by this.</p>
24082
24083 <p>For non-network devices, we provide the script
24084 <tt>/usr/share/debian-edu-config/tools/auto-addfirmware</tt> which
24085 search through the <tt>dmesg</tt> output for drivers requesting extra
24086 firmware. The firmware file name is looked up in the Contents-ARCH.gz
24087 file available in the package repository, and the packages providing
24088 the requested firmware file(s) is installed. I have proposed to do
24089 something similar in debian-installer (BTS report
24090 <a href="http://bugs.debian.org/655507">#655507</a>), to allow PXE
24091 installs of Debian to handle firmware installation better. Run the
24092 script as root from the command line to fetch and install the needed
24093 firmware packages.</p>
24094
24095 <p>Debian Edu provide PXE installation of Debian out of the box, and
24096 because some machines need firmware to get their network cards
24097 working, the installation initrd some times need extra firmware
24098 included to be able to install at all. To fill the PXE installation
24099 initrd with extra firmware, the
24100 <tt>/usr/share/debian-edu-config/tools/pxe-addfirmware</tt> script is
24101 provided. Again, just run it as root on the command line to fill the
24102 PXE initrd with firmware packages.</p>
24103
24104 <p>Last, some LTSP clients might also need firmware to get their
24105 network cards working. For this,
24106 <tt>/usr/share/debian-edu-config/tools/ltsp-addfirmware</tt> is
24107 provided to update the LTSP initrd with firmware blobs. It is used
24108 the same way as the other firmware related tools.</p>
24109
24110 <p>At the moment, we do not run any of these during installation. We
24111 do not know if this is acceptable for the local administrator to use
24112 non-free software, and it is their choice.</p>
24113
24114 <p>We plan to release beta3 this weekend. You might want to give it a
24115 try.</p>
24116
24117 </div>
24118 <div class="tags">
24119
24120
24121 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
24122
24123
24124 </div>
24125 </div>
24126 <div class="padding"></div>
24127
24128 <div class="entry">
24129 <div class="title">
24130 <a href="http://people.skolelinux.org/pere/blog/Setting_up_a_new_school_with_Debian_Edu_Squeeze.html">Setting up a new school with Debian Edu/Squeeze</a>
24131 </div>
24132 <div class="date">
24133 25th January 2012
24134 </div>
24135 <div class="body">
24136 <p>The next version of <a href="http://www.skolelinux.org/">Debian Edu
24137 / Skolelinux</a> will include a new tool
24138 <tt>sitesummary2ldapdhcp</tt>, which can be used to quickly set up all
24139 the computers in a school without much manual labour. Here is a short
24140 summary on how to use it to set up a new school.</p>
24141
24142 <p>First, install a combined Main Server and Thin Client Server as the
24143 central server in the network. Next, PXE boot all the client machines
24144 as thin clients and wait 5 minutes after the last client booted to
24145 allow the clients to report their existence to the central server. When
24146 this is done, log on to the central server and run
24147 <tt>sitesummary2ldapdhcp -a</tt> in the <tt>konsole</tt> to use the
24148 collected information to generate system objects in LDAP. The output
24149 will look similar to this:</p>
24150
24151 <p><blockquote><pre>
24152 % sitesummary2ldapdhcp -a
24153 info: Updating machine tjener.intern [10.0.2.2] id ether-00:01:02:03:04:05.
24154 info: Create GOsa machine for auto-mac-00-01-02-03-04-06 [10.0.16.20] id ether-00:01:02:03:04:06.
24155
24156 Enter password if you want to activate these changes, and ^c to abort.
24157
24158 Connecting to LDAP as cn=admin,ou=ldap-access,dc=skole,dc=skolelinux,dc=no
24159 enter password: *******
24160 %
24161 </pre></blockquote></p>
24162
24163 <p>After providing the LDAP administrative password (the same as the
24164 root password set during installation), the LDAP database will be
24165 populated with system objects for each PXE booted machine with
24166 automatically generated names. The final step to set up the school is
24167 then to log into <a href="https://oss.gonicus.de/labs/gosa/">GOsa</a>,
24168 the web based user, group and system administration system to change
24169 system names, add systems to the correct host groups and finally
24170 enable DHCP and DNS for the systems. All clients that should be used
24171 as diskless workstations should be added to the workstation-hosts
24172 group. After this is done, all computers can be booted again via PXE
24173 and get their assigned names and group based configuration
24174 automatically.</p>
24175
24176 <p>We plan to release beta3 with the updated version of this feature
24177 enabled this weekend. You might want to give it a try.</p>
24178
24179 <p>Update 2012-01-28: When calling sitesummary2ldapdhcp to add new
24180 hosts, one need to add the option -a. I forgot to mention this in my
24181 original text, and have added it to the text now.</p>
24182
24183 </div>
24184 <div class="tags">
24185
24186
24187 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary</a>.
24188
24189
24190 </div>
24191 </div>
24192 <div class="padding"></div>
24193
24194 <div class="entry">
24195 <div class="title">
24196 <a href="http://people.skolelinux.org/pere/blog/Changing_the_default_Iceweasel_start_page_in_Debian_Edu_Squeeze.html">Changing the default Iceweasel start page in Debian Edu/Squeeze</a>
24197 </div>
24198 <div class="date">
24199 10th January 2012
24200 </div>
24201 <div class="body">
24202 <p>In the Squeeze version of
24203 <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a> soon
24204 to be released, users of the system will get their default browser
24205 start page set from LDAP, allowing the system administrator to point
24206 all users to the school web page by updating one setting in LDAP. In
24207 addition to setting the default start page when a machine boots, users
24208 are shown the same page as a welcome page when they log in for the
24209 first time.</p>
24210
24211 <p>The LDAP object dc=skole,dc=skolelinux,dc=no have an attribute
24212 labeledURI with "http://www/ LDAP for Debian Edu/Skolelinux" as the
24213 default content. By changing this value to another URL, all users get
24214 to see the page behind this new URL.</p>
24215
24216 <p>An easy way to update it is by using the ldapvi tool. It can be
24217 called as "<tt>ldapvi -ZD '(cn=admin)'</tt>' to update LDAP with the
24218 new setting.</p>
24219
24220 <p>We have written the code to adjust the default start page and show
24221 the welcome page, and I wonder if there is an easier way to do this
24222 from within Iceweasel instead.</p>
24223
24224 </div>
24225 <div class="tags">
24226
24227
24228 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</a>.
24229
24230
24231 </div>
24232 </div>
24233 <div class="padding"></div>
24234
24235 <div class="entry">
24236 <div class="title">
24237 <a href="http://people.skolelinux.org/pere/blog/Second_beta_version_of_Debian_Edu___Skolelinux_based_on_Squeeze.html">Second beta version of Debian Edu / Skolelinux based on Squeeze</a>
24238 </div>
24239 <div class="date">
24240 7th January 2012
24241 </div>
24242 <div class="body">
24243 <p>I am happy to announce that today we managed to wrap up and publish
24244 the second beta version of
24245 <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a>. If
24246 you want to test a LDAP backed Kerberos server with out of the box PXE
24247 configuration for running diskless machines and installing new
24248 machines, check it out. If you need a software solution for your
24249 school, check it out too. The full announcement is
24250 <a href="http://lists.debian.org/debian-edu-announce/2012/01/msg00000.html">available</a>
24251 on the project announcement list.</p>
24252
24253 </div>
24254 <div class="tags">
24255
24256
24257 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
24258
24259
24260 </div>
24261 </div>
24262 <div class="padding"></div>
24263
24264 <div class="entry">
24265 <div class="title">
24266 <a href="http://people.skolelinux.org/pere/blog/Fixing_an_hanging_debian_installer_for_Debian_Edu.html">Fixing an hanging debian installer for Debian Edu</a>
24267 </div>
24268 <div class="date">
24269 3rd January 2012
24270 </div>
24271 <div class="body">
24272 <p>During christmas, I have been working getting the next version of
24273 <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a> ready
24274 for release. The initial problem I looked at was particularly
24275 interesting.</p>
24276
24277 <P>The installer would hang at the end when it was doing it
24278 post-installation configuration, and whatevery I did to try to find
24279 the cause and fix it always worked while I tested it, but never when I
24280 integrated it into the installer and ran the installation from
24281 scratch. I would try to restart processes, close file descriptors,
24282 remove or create files, and the installer would always unblock and
24283 wrap up its tasks.</p>
24284
24285 <p>Eventually the cause was found. The kernel was simply running out
24286 of entropy, causing the Kerberos setup to hang waiting for more.
24287 Pressing keys was adding entropy to the kernel, and thus all my tries
24288 to fix the problem worked not because what I was typing to fix it, but
24289 because I was typing.</P>
24290
24291 <p>The fix I implemented was to add a background process looking at
24292 the level of entropy in the kernel (by checking
24293 /proc/sys/kernel/random/entropy_avail), and if it was too small, the
24294 installer will flush the kernel file buffers and do 'find /' to
24295 generate some disk IO. Disk IO generate entropy in the kernel, and is
24296 one of the few things that can be initated from within the system to
24297 generate entropy.</p>
24298
24299 <p>The fix is in
24300 <a href="http://wiki.debian.org/DebianEdu/Documentation/Squeeze/Installation">beta1
24301 of the Debian Edu/Squeeze</a> version, and we
24302 <a href="http://wiki.debian.org/DebianEdu">welcome more testers and
24303 developers</a>. We plan to release beta2 this weekend.</p>
24304
24305 </div>
24306 <div class="tags">
24307
24308
24309 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
24310
24311
24312 </div>
24313 </div>
24314 <div class="padding"></div>
24315
24316 <div class="entry">
24317 <div class="title">
24318 <a href="http://people.skolelinux.org/pere/blog/Automatically_upgrading_server_firmware_on_Dell_PowerEdge.html">Automatically upgrading server firmware on Dell PowerEdge</a>
24319 </div>
24320 <div class="date">
24321 21st November 2011
24322 </div>
24323 <div class="body">
24324 <p>At work we have heaps of servers. I believe the total count is
24325 around 1000 at the moment. To be able to get help from the vendors
24326 when something go wrong, we want to keep the firmware on the servers
24327 up to date. If the firmware isn't the latest and greatest, the
24328 vendors typically refuse to start debugging any problems until the
24329 firmware is upgraded. So before every reboot, we want to upgrade the
24330 firmware, and we would really like everyone handling servers at the
24331 university to do this themselves when they plan to reboot a machine.
24332 For that to happen we at the unix server admin group need to provide
24333 the tools to do so.</p>
24334
24335 <p>To make firmware upgrading easier, I am working on a script to
24336 fetch and install the latest firmware for the servers we got. Most of
24337 our hardware are from Dell and HP, so I have focused on these servers
24338 so far. This blog post is about the Dell part.</P>
24339
24340 <p>On the Dell FTP site I was lucky enough to find
24341 <a href="ftp://ftp.us.dell.com/catalog/Catalog.xml.gz">an XML file</a>
24342 with firmware information for all 11th generation servers, listing
24343 which firmware should be used on a given model and where on the FTP
24344 site I can find it. Using a simple perl XML parser I can then
24345 download the shell scripts Dell provides to do firmware upgrades from
24346 within Linux and reboot when all the firmware is primed and ready to
24347 be activated on the first reboot.</p>
24348
24349 <p>This is the Dell related fragment of the perl code I am working on.
24350 Are there anyone working on similar tools for firmware upgrading all
24351 servers at a site? Please get in touch and lets share resources.</p>
24352
24353 <p><pre>
24354 #!/usr/bin/perl
24355 use strict;
24356 use warnings;
24357 use File::Temp qw(tempdir);
24358 BEGIN {
24359 # Install needed RHEL packages if missing
24360 my %rhelmodules = (
24361 'XML::Simple' => 'perl-XML-Simple',
24362 );
24363 for my $module (keys %rhelmodules) {
24364 eval "use $module;";
24365 if ($@) {
24366 my $pkg = $rhelmodules{$module};
24367 system("yum install -y $pkg");
24368 eval "use $module;";
24369 }
24370 }
24371 }
24372 my $errorsto = 'pere@hungry.com';
24373
24374 upgrade_dell();
24375
24376 exit 0;
24377
24378 sub run_firmware_script {
24379 my ($opts, $script) = @_;
24380 unless ($script) {
24381 print STDERR "fail: missing script name\n";
24382 exit 1
24383 }
24384 print STDERR "Running $script\n\n";
24385
24386 if (0 == system("sh $script $opts")) { # FIXME correct exit code handling
24387 print STDERR "success: firmware script ran succcessfully\n";
24388 } else {
24389 print STDERR "fail: firmware script returned error\n";
24390 }
24391 }
24392
24393 sub run_firmware_scripts {
24394 my ($opts, @dirs) = @_;
24395 # Run firmware packages
24396 for my $dir (@dirs) {
24397 print STDERR "info: Running scripts in $dir\n";
24398 opendir(my $dh, $dir) or die "Unable to open directory $dir: $!";
24399 while (my $s = readdir $dh) {
24400 next if $s =~ m/^\.\.?/;
24401 run_firmware_script($opts, "$dir/$s");
24402 }
24403 closedir $dh;
24404 }
24405 }
24406
24407 sub download {
24408 my $url = shift;
24409 print STDERR "info: Downloading $url\n";
24410 system("wget --quiet \"$url\"");
24411 }
24412
24413 sub upgrade_dell {
24414 my @dirs;
24415 my $product = `dmidecode -s system-product-name`;
24416 chomp $product;
24417
24418 if ($product =~ m/PowerEdge/) {
24419
24420 # on RHEL, these pacakges are needed by the firwmare upgrade scripts
24421 system('yum install -y compat-libstdc++-33.i686 libstdc++.i686 libxml2.i686 procmail');
24422
24423 my $tmpdir = tempdir(
24424 CLEANUP => 1
24425 );
24426 chdir($tmpdir);
24427 fetch_dell_fw('catalog/Catalog.xml.gz');
24428 system('gunzip Catalog.xml.gz');
24429 my @paths = fetch_dell_fw_list('Catalog.xml');
24430 # -q is quiet, disabling interactivity and reducing console output
24431 my $fwopts = "-q";
24432 if (@paths) {
24433 for my $url (@paths) {
24434 fetch_dell_fw($url);
24435 }
24436 run_firmware_scripts($fwopts, $tmpdir);
24437 } else {
24438 print STDERR "error: Unsupported Dell model '$product'.\n";
24439 print STDERR "error: Please report to $errorsto.\n";
24440 }
24441 chdir('/');
24442 } else {
24443 print STDERR "error: Unsupported Dell model '$product'.\n";
24444 print STDERR "error: Please report to $errorsto.\n";
24445 }
24446 }
24447
24448 sub fetch_dell_fw {
24449 my $path = shift;
24450 my $url = "ftp://ftp.us.dell.com/$path";
24451 download($url);
24452 }
24453
24454 # Using ftp://ftp.us.dell.com/catalog/Catalog.xml.gz, figure out which
24455 # firmware packages to download from Dell. Only work for Linux
24456 # machines and 11th generation Dell servers.
24457 sub fetch_dell_fw_list {
24458 my $filename = shift;
24459
24460 my $product = `dmidecode -s system-product-name`;
24461 chomp $product;
24462 my ($mybrand, $mymodel) = split(/\s+/, $product);
24463
24464 print STDERR "Finding firmware bundles for $mybrand $mymodel\n";
24465
24466 my $xml = XMLin($filename);
24467 my @paths;
24468 for my $bundle (@{$xml->{SoftwareBundle}}) {
24469 my $brand = $bundle->{TargetSystems}->{Brand}->{Display}->{content};
24470 my $model = $bundle->{TargetSystems}->{Brand}->{Model}->{Display}->{content};
24471 my $oscode;
24472 if ("ARRAY" eq ref $bundle->{TargetOSes}->{OperatingSystem}) {
24473 $oscode = $bundle->{TargetOSes}->{OperatingSystem}[0]->{osCode};
24474 } else {
24475 $oscode = $bundle->{TargetOSes}->{OperatingSystem}->{osCode};
24476 }
24477 if ($mybrand eq $brand && $mymodel eq $model && "LIN" eq $oscode)
24478 {
24479 @paths = map { $_->{path} } @{$bundle->{Contents}->{Package}};
24480 }
24481 }
24482 for my $component (@{$xml->{SoftwareComponent}}) {
24483 my $componenttype = $component->{ComponentType}->{value};
24484
24485 # Drop application packages, only firmware and BIOS
24486 next if 'APAC' eq $componenttype;
24487
24488 my $cpath = $component->{path};
24489 for my $path (@paths) {
24490 if ($cpath =~ m%/$path$%) {
24491 push(@paths, $cpath);
24492 }
24493 }
24494 }
24495 return @paths;
24496 }
24497 </pre>
24498
24499 <p>The code is only tested on RedHat Enterprise Linux, but I suspect
24500 it could work on other platforms with some tweaking. Anyone know a
24501 index like Catalog.xml is available from HP for HP servers? At the
24502 moment I maintain a similar list manually and it is quickly getting
24503 outdated.</p>
24504
24505 </div>
24506 <div class="tags">
24507
24508
24509 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>.
24510
24511
24512 </div>
24513 </div>
24514 <div class="padding"></div>
24515
24516 <div class="entry">
24517 <div class="title">
24518 <a href="http://people.skolelinux.org/pere/blog/Free_e_book_kiosk_for_the_public_libraries_.html">Free e-book kiosk for the public libraries?</a>
24519 </div>
24520 <div class="date">
24521 7th October 2011
24522 </div>
24523 <div class="body">
24524 <p>Here in Norway the public libraries are debating with the
24525 publishing houses how to handle electronic books. Surprisingly, the
24526 libraries seem to be willing to accept digital restriction mechanisms
24527 (DRM) on books and renting e-books with artificial scarcity from the
24528 publishing houses. Time limited renting (2-3 years) is one proposed
24529 model, and only allowing X borrowers for each book is another.
24530 Personally I find it amazing that libraries are even considering such
24531 models.</p>
24532
24533 <p>Anyway, while reading <a href="http://boklaben.no/?p=220">part of
24534 this debate</a>, it occurred to me that someone should present a more
24535 sensible approach to the libraries, to allow its borrowers to get used
24536 to a better model. The idea is simple:</p>
24537
24538 <p>Create a computer system for the libraries, either in the form of a
24539 Live DVD or a installable distribution, that provide a simple kiosk
24540 solution to hand out free e-books. As a start, the books distributed
24541 by <a href="http://www.gutenberg.org/">Project Gutenberg</a> (about
24542 36,000 books), <a href="http://runeberg.org/">Project Runenberg</a>
24543 (1149 books) and <a href="http://www.archive.org/details/texts">The
24544 Internet Archive</a> (3,033,748 books) could be included, but any book
24545 where the copyright has expired or with a free licence could be
24546 distributed.</p>
24547
24548 <p>The computer system would make it easy to:</p>
24549
24550 <ul>
24551
24552 <li>Copy e-books into a USB stick, reading tablets, cell phones and
24553 other relevant equipment.</li>
24554
24555 <li>Show the books for reading on the the screen in the library.</li>
24556
24557 </ul>
24558
24559 <p>In addition to such kiosk solution, there should probably be a web
24560 site as well to allow people easy access to these books without
24561 visiting the library. The site would be the distribution point for
24562 the kiosk systems, which would connect regularly to fetch any new
24563 books available.</p>
24564
24565 <p>Are there anyone working on a system like this? I guess it would
24566 fit any library in the world, and not just the Norwegian public
24567 libraries. :)</p>
24568
24569 </div>
24570 <div class="tags">
24571
24572
24573 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>.
24574
24575
24576 </div>
24577 </div>
24578 <div class="padding"></div>
24579
24580 <div class="entry">
24581 <div class="title">
24582 <a href="http://people.skolelinux.org/pere/blog/Ripping_problematic_DVDs_using_dvdbackup_and_genisoimage.html">Ripping problematic DVDs using dvdbackup and genisoimage</a>
24583 </div>
24584 <div class="date">
24585 17th September 2011
24586 </div>
24587 <div class="body">
24588 <p>For convenience, I want to store copies of all my DVDs on my file
24589 server. It allow me to save shelf space flat while still having my
24590 movie collection easily available. It also make it possible to let
24591 the kids see their favourite DVDs without wearing the physical copies
24592 down. I prefer to store the DVDs as ISOs to keep the DVD menu and
24593 subtitle options intact. It also ensure that the entire film is one
24594 file on the disk. As this is for personal use, the ripping is
24595 perfectly legal here in Norway.</p>
24596
24597 <p>Normally I rip the DVDs using dd like this:</p>
24598
24599 <blockquote><pre>
24600 #!/bin/sh
24601 # apt-get install lsdvd
24602 title=$(lsdvd 2>/dev/null|awk '/Disc Title: / {print $3}')
24603 dd if=/dev/dvd of=/storage/dvds/$title.iso bs=1M
24604 </pre></blockquote>
24605
24606 <p>But some DVDs give a input/output error when I read it, and I have
24607 been looking for a better alternative. I have no idea why this I/O
24608 error occur, but suspect my DVD drive, the Linux kernel driver or
24609 something fishy with the DVDs in question. Or perhaps all three.</p>
24610
24611 <p>Anyway, I believe I found a solution today using dvdbackup and
24612 genisoimage. This script gave me a working ISO for a problematic
24613 movie by first extracting the DVD file system and then re-packing it
24614 back as an ISO.
24615
24616 <blockquote><pre>
24617 #!/bin/sh
24618 # apt-get install lsdvd dvdbackup genisoimage
24619 set -e
24620 tmpdir=/storage/dvds/
24621 title=$(lsdvd 2>/dev/null|awk '/Disc Title: / {print $3}')
24622 dvdbackup -i /dev/dvd -M -o $tmpdir -n$title
24623 genisoimage -dvd-video -o $tmpdir/$title.iso $tmpdir/$title
24624 rm -rf $tmpdir/$title
24625 </pre></blockquote>
24626
24627 <p>Anyone know of a better way available in Debian/Squeeze?</p>
24628
24629 <p>Update 2011-09-18: I got a tip from Konstantin Khomoutov about the
24630 readom program from the wodim package. It is specially written to
24631 read optical media, and is called like this: <tt>readom dev=/dev/dvd
24632 f=image.iso</tt>. It got 6 GB along with the problematic Cars DVD
24633 before it failed, and failed right away with a Timmy Time DVD.</p>
24634
24635 <p>Next, I got a tip from Bastian Blank about
24636 <a href="http://bblank.thinkmo.de/blog/new-software-python-dvdvideo">his
24637 program python-dvdvideo</a>, which seem to be just what I am looking
24638 for. Tested it with my problematic Timmy Time DVD, and it succeeded
24639 creating a ISO image. The git source built and installed just fine in
24640 Squeeze, so I guess this will be my tool of choice in the future.</p>
24641
24642 </div>
24643 <div class="tags">
24644
24645
24646 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
24647
24648
24649 </div>
24650 </div>
24651 <div class="padding"></div>
24652
24653 <div class="entry">
24654 <div class="title">
24655 <a href="http://people.skolelinux.org/pere/blog/How_is_booting_into_runlevel_1_different_from_single_user_boots_.html">How is booting into runlevel 1 different from single user boots?</a>
24656 </div>
24657 <div class="date">
24658 4th August 2011
24659 </div>
24660 <div class="body">
24661 <p>Wouter Verhelst have some
24662 <a href="http://grep.be/blog/en/retorts/pere_kubuntu_boot">interesting
24663 comments and opinions</a> on my blog post on
24664 <a href="http://people.skolelinux.org/pere/blog/What_should_start_from__etc_rcS_d__in_Debian____almost_nothing.html">the
24665 need to clean up /etc/rcS.d/ in Debian</a> and my blog post about
24666 <a href="http://people.skolelinux.org/pere/blog/What_is_missing_in_the_Debian_desktop__or_why_my_parents_use_Kubuntu.html">the
24667 default KDE desktop in Debian</a>. I only have time to address one
24668 small piece of his comment now, and though it best to address the
24669 misunderstanding he bring forward:</p>
24670
24671 <p><blockquote>
24672 Currently, a system admin has four options: [...] boot to a
24673 single-user system (by adding 'single' to the kernel command line;
24674 this runs rcS and rc1 scripts)
24675 </blockquote></p>
24676
24677 <p>This make me believe Wouter believe booting into single user mode
24678 and booting into runlevel 1 is the same. I am not surprised he
24679 believe this, because it would make sense and is a quite sensible
24680 thing to believe. But because the boot in Debian is slightly broken,
24681 runlevel 1 do not work properly and it isn't the same as single user
24682 mode. I'll try to explain what is actually happing, but it is a bit
24683 hard to explain.</p>
24684
24685 <p>Single user mode is defined like this in /etc/inittab:
24686 "<tt>~~:S:wait:/sbin/sulogin</tt>". This means the only thing that is
24687 executed in single user mode is sulogin. Single user mode is a boot
24688 state "between" the runlevels, and when booting into single user mode,
24689 only the scripts in /etc/rcS.d/ are executed before the init process
24690 enters the single user state. When switching to runlevel 1, the state
24691 is in fact not ending in runlevel 1, but it passes through runlevel 1
24692 and end up in the single user mode (see /etc/rc1.d/S03single, which
24693 runs "init -t1 S" to switch to single user mode at the end of runlevel
24694 1. It is confusing that the 'S' (single user) init mode is not the
24695 mode enabled by /etc/rcS.d/ (which is more like the initial boot
24696 mode).</p>
24697
24698 <p>This summary might make it clearer. When booting for the first
24699 time into single user mode, the following commands are executed:
24700 "<tt>/etc/init.d/rc S; /sbin/sulogin</tt>". When booting into
24701 runlevel 1, the following commands are executed: "<tt>/etc/init.d/rc
24702 S; /etc/init.d/rc 1; /sbin/sulogin</tt>". A problem show up when
24703 trying to continue after visiting single user mode. Not all services
24704 are started again as they should, causing the machine to end up in an
24705 unpredicatble state. This is why Debian admins recommend rebooting
24706 after visiting single user mode.</p>
24707
24708 <p>A similar problem with runlevel 1 is caused by the amount of
24709 scripts executed from /etc/rcS.d/. When switching from say runlevel 2
24710 to runlevel 1, the services started from /etc/rcS.d/ are not properly
24711 stopped when passing through the scripts in /etc/rc1.d/, and not
24712 started again when switching away from runlevel 1 to the runlevels
24713 2-5. I believe the problem is best fixed by moving all the scripts
24714 out of /etc/rcS.d/ that are not <strong>required</strong> to get a
24715 functioning single user mode during boot.</p>
24716
24717 <p>I have spent several years investigating the Debian boot system,
24718 and discovered this problem a few years ago. I suspect it originates
24719 from when sysvinit was introduced into Debian, a long time ago.</p>
24720
24721 </div>
24722 <div class="tags">
24723
24724
24725 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
24726
24727
24728 </div>
24729 </div>
24730 <div class="padding"></div>
24731
24732 <div class="entry">
24733 <div class="title">
24734 <a href="http://people.skolelinux.org/pere/blog/What_should_start_from__etc_rcS_d__in_Debian____almost_nothing.html">What should start from /etc/rcS.d/ in Debian? - almost nothing</a>
24735 </div>
24736 <div class="date">
24737 30th July 2011
24738 </div>
24739 <div class="body">
24740 <p>In the Debian boot system, several packages include scripts that
24741 are started from /etc/rcS.d/. In fact, there is a bite more of them
24742 than make sense, and this causes a few problems. What kind of
24743 problems, you might ask. There are at least two problems. The first
24744 is that it is not possible to recover a machine after switching to
24745 runlevel 1. One need to actually reboot to get the machine back to
24746 the expected state. The other is that single user boot will sometimes
24747 run into problems because some of the subsystems are activated before
24748 the root login is presented, causing problems when trying to recover a
24749 machine from a problem in that subsystem. A minor additional point is
24750 that moving more scripts out of rcS.d/ and into the other rc#.d/
24751 directories will increase the amount of scripts that can run in
24752 parallel during boot, and thus decrease the boot time.</p>
24753
24754 <p>So, which scripts should start from rcS.d/. In short, only the
24755 scripts that _have_ to execute before the root login prompt is
24756 presented during a single user boot should go there. Everything else
24757 should go into the numeric runlevels. This means things like
24758 lm-sensors, fuse and x11-common should not run from rcS.d, but from
24759 the numeric runlevels. Today in Debian, there are around 115 init.d
24760 scripts that are started from rcS.d/, and most of them should be moved
24761 out. Do your package have one of them? Please help us make single
24762 user and runlevel 1 better by moving it.</p>
24763
24764 <p>Scripts setting up the screen, keyboard, system partitions
24765 etc. should still be started from rcS.d/, but there is for example no
24766 need to have the network enabled before the single user login prompt
24767 is presented.</p>
24768
24769 <p>As always, things are not so easy to fix as they sound. To keep
24770 Debian systems working while scripts migrate and during upgrades, the
24771 scripts need to be moved from rcS.d/ to rc2.d/ in reverse dependency
24772 order, ie the scripts that nothing in rcS.d/ depend on can be moved,
24773 and the next ones can only be moved when their dependencies have been
24774 moved first. This migration must be done sequentially while we ensure
24775 that the package system upgrade packages in the right order to keep
24776 the system state correct. This will require some coordination when it
24777 comes to network related packages, but most of the packages with
24778 scripts that should migrate do not have anything in rcS.d/ depending
24779 on them. Some packages have already been updated, like the sudo
24780 package, while others are still left to do. I wish I had time to work
24781 on this myself, but real live constrains make it unlikely that I will
24782 find time to push this forward.</p>
24783
24784 </div>
24785 <div class="tags">
24786
24787
24788 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
24789
24790
24791 </div>
24792 </div>
24793 <div class="padding"></div>
24794
24795 <div class="entry">
24796 <div class="title">
24797 <a href="http://people.skolelinux.org/pere/blog/What_is_missing_in_the_Debian_desktop__or_why_my_parents_use_Kubuntu.html">What is missing in the Debian desktop, or why my parents use Kubuntu</a>
24798 </div>
24799 <div class="date">
24800 29th July 2011
24801 </div>
24802 <div class="body">
24803 <p>While at Debconf11, I have several times during discussions
24804 mentioned the issues I believe should be improved in Debian for its
24805 desktop to be useful for more people. The use case for this is my
24806 parents, which are currently running Kubuntu which solve the
24807 issues.</p>
24808
24809 <p>I suspect these four missing features are not very hard to
24810 implement. After all, they are present in Ubuntu, so if we wanted to
24811 do this in Debian we would have a source.</p>
24812
24813 <ol>
24814
24815 <li><strong>Simple GUI based upgrade of packages.</strong> When there
24816 are new packages available for upgrades, a icon in the KDE status bar
24817 indicate this, and clicking on it will activate the simple upgrade
24818 tool to handle it. I have no problem guiding both of my parents
24819 through the process over the phone. If a kernel reboot is required,
24820 this too is indicated by the status bars and the upgrade tool. Last
24821 time I checked, nothing with the same features was working in KDE in
24822 Debian.</li>
24823
24824 <li><strong>Simple handling of missing Firefox browser
24825 plugins.</strong> When the browser encounter a MIME type it do not
24826 currently have a handler for, it will ask the user if the system
24827 should search for a package that would add support for this MIME type,
24828 and if the user say yes, the APT sources will be searched for packages
24829 advertising the MIME type in their control file (visible in the
24830 Packages file in the APT archive). If one or more packages are found,
24831 it is a simple click of the mouse to add support for the missing mime
24832 type. If the package require the user to accept some non-free
24833 license, this is explained to the user. The entire process make it
24834 more clear to the user why something do not work in the browser, and
24835 make the chances higher for the user to blame the web page authors and
24836 not the browser for any missing features.</li>
24837
24838 <li><strong>Simple handling of missing multimedia codec/format
24839 handlers.</strong> When the media players encounter a format or codec
24840 it is not supporting, a dialog pop up asking the user if the system
24841 should search for a package that would add support for it. This
24842 happen with things like MP3, Windows Media or H.264. The selection
24843 and installation procedure is very similar to the Firefox browser
24844 plugin handling. This is as far as I know implemented using a
24845 gstreamer hook. The end result is that the user easily get access to
24846 the codecs that are present from the APT archives available, while
24847 explaining more on why a given format is unsupported by Ubuntu.</li>
24848
24849 <li><strong>Better browser handling of some MIME types.</strong> When
24850 displaying a text/plain file in my Debian browser, it will propose to
24851 start emacs to show it. If I remember correctly, when doing the same
24852 in Kunbutu it show the file as a text file in the browser. At least I
24853 know Opera will show text files within the browser. I much prefer the
24854 latter behaviour.</li>
24855
24856 </ol>
24857
24858 <p>There are other nice features as well, like the simplified suite
24859 upgrader, but given that I am the one mostly doing the dist-upgrade,
24860 it do not matter much.</p>
24861
24862 <p>I really hope we could get these features in place for the next
24863 Debian release. It would require the coordinated effort of several
24864 maintainers, but would make the end user experience a lot better.</p>
24865
24866 </div>
24867 <div class="tags">
24868
24869
24870 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/h264">h264</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</a>.
24871
24872
24873 </div>
24874 </div>
24875 <div class="padding"></div>
24876
24877 <div class="entry">
24878 <div class="title">
24879 <a href="http://people.skolelinux.org/pere/blog/Perl_modules_used_by_FixMyStreet_which_are_missing_in_Debian_Squeeze.html">Perl modules used by FixMyStreet which are missing in Debian/Squeeze</a>
24880 </div>
24881 <div class="date">
24882 26th July 2011
24883 </div>
24884 <div class="body">
24885 <p>The Norwegian <a href="http://www.fiksgatami.no/">FiksGataMi</A>
24886 site is build on Debian/Squeeze, and this platform was chosen because
24887 I am most familiar with Debian (being a Debian Developer for around 10
24888 years) because it is the latest stable Debian release which should get
24889 security support for a few years.</p>
24890
24891 <p>The web service is written in Perl, and depend on some perl modules
24892 that are missing in Debian at the moment. It would be great if these
24893 modules were added to the Debian archive, allowing anyone to set up
24894 their own <a href="http://www.fixmystreet.com">FixMyStreet</a> clone
24895 in their own country using only Debian packages. The list of modules
24896 missing in Debian/Squeeze isn't very long, and I hope the perl group
24897 will find time to package the 12 modules Catalyst::Plugin::SmartURI,
24898 Catalyst::Plugin::Unicode::Encoding, Catalyst::View::TT, Devel::Hide,
24899 Sort::Key, Statistics::Distributions, Template::Plugin::Comma,
24900 Template::Plugin::DateTime::Format, Term::Size::Any, Term::Size::Perl,
24901 URI::SmartURI and Web::Scraper to make the maintenance of FixMyStreet
24902 easier in the future.</p>
24903
24904 <p>Thanks to the great tools in Debian, getting the missing modules
24905 installed on my server was a simple call to 'cpan2deb Module::Name'
24906 and 'dpkg -i' to install the resulting package. But this leave me
24907 with the responsibility of tracking security problems, which I really
24908 do not have time for.</p>
24909
24910 </div>
24911 <div class="tags">
24912
24913
24914 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/fiksgatami">fiksgatami</a>.
24915
24916
24917 </div>
24918 </div>
24919 <div class="padding"></div>
24920
24921 <div class="entry">
24922 <div class="title">
24923 <a href="http://people.skolelinux.org/pere/blog/Free_Software_vs__proprietary_softare___.html">Free Software vs. proprietary softare...</a>
24924 </div>
24925 <div class="date">
24926 20th June 2011
24927 </div>
24928 <div class="body">
24929 <p>Reading
24930 <a href="http://blog.thingiverse.com/2011/06/20/open-source-vs-closed-source-eulas/">the
24931 thingiverse blog</a>, I came across two highlights of interesting
24932 parts of the
24933 <a href="http://wiki.blender.org/index.php/Autodesk_EULA">Autodesk</a>
24934 and
24935 <a href="http://blog.makezine.com/archive/2011/06/things-you-cant-do-with-the-microsoft-kinect-sdk.html">Microsoft
24936 Kinect</a> End User License Agreements (EULAs), which illustrates
24937 quite well why I stay away from software with EULAs. Whenever I take
24938 the time to read their content, the terms are simply unacceptable.</p>
24939
24940 </div>
24941 <div class="tags">
24942
24943
24944 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>.
24945
24946
24947 </div>
24948 </div>
24949 <div class="padding"></div>
24950
24951 <div class="entry">
24952 <div class="title">
24953 <a href="http://people.skolelinux.org/pere/blog/Experimental_Open311_API_for_the_mySociety_fixmystreet_system.html">Experimental Open311 API for the mySociety fixmystreet system</a>
24954 </div>
24955 <div class="date">
24956 30th April 2011
24957 </div>
24958 <div class="body">
24959 <p>Today, the first draft implementation of an
24960 <a href="http://www.open311.org/">Open311 API</a> for the Norwegian
24961 service <a href="http://www.fiksgatami.no/">FiksGataMi</a> started to
24962 work. It is only available on the developer server for now, and I
24963 have not tested it using any existing Open311 client (I lack the
24964 platforms needed to run the clients I have found so far), but it is
24965 able to query the database and extract a list of open and closed
24966 requests within a given category and reported to a given municipality.
24967 I believe that is a good start to create a useful service for those
24968 that want to do data mining on the requests submitted so far.</p>
24969
24970 <p>Where is it? Visit
24971 <a href="http://fiksgatami-dev.nuug.no/open311.cgi/v2/">http://fiksgatami-dev.nuug.no/open311.cgi/v2/</a>
24972 to have a look. Please send feedback to the
24973 <a href="http://lists.nuug.no/mailman/listinfo/fiksgatami">fiksgatami
24974 (at) nuug.no</a> mailing list.</p>
24975
24976 </div>
24977 <div class="tags">
24978
24979
24980 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami</a>, <a href="http://people.skolelinux.org/pere/blog/tags/open311">open311</a>.
24981
24982
24983 </div>
24984 </div>
24985 <div class="padding"></div>
24986
24987 <div class="entry">
24988 <div class="title">
24989 <a href="http://people.skolelinux.org/pere/blog/Initial_notes_on_adding_Open311_server_API_on_FixMyStreet.html">Initial notes on adding Open311 server API on FixMyStreet</a>
24990 </div>
24991 <div class="date">
24992 29th April 2011
24993 </div>
24994 <div class="body">
24995 <p>The last few days I have spent some time trying to add support for
24996 the <a href="http://www.open311.org/">Open311 API</a> in the
24997 <a href="http://www.fiksgatami.no/">Norwegian FixMyStreet service</a>.
24998 Earlier I believed Open311 would be a useful API to use to submit
24999 reports to the municipalities, but when I noticed that the
25000 <a href="http://fixmystreet.org.nz/">New Zealand version</a> of
25001 FixMyStreet had implemented Open311 on the server side, it occurred to
25002 me that this was a nice way to allow the public, press and
25003 municipalities to do data mining directly in the FixMyStreet service.
25004 Thus I went to work implementing the Open311 specification for
25005 FixMyStreet. The implementation is not yet ready, but I am starting
25006 to get a draft limping along. In the process, I have discovered a few
25007 issues with the Open311 specification.</p>
25008
25009 <p>One obvious missing feature is the lack of natural language
25010 handling in the specification. The specification seem to assume all
25011 reports will be written in English, and do not provide a way for the
25012 receiving end to specify which languages are understood there. To be
25013 able to use the same client and submit to several Open311 receivers,
25014 it would be useful to know which language to use when writing reports.
25015 I believe the specification should be extended to allow the receivers
25016 of problem reports to specify which language they accept, and the
25017 submitter to specify which language the report is written in.
25018 Language of a text can also be automatically guessed using statistical
25019 methods, but for multi-lingual persons like myself, it is useful to
25020 know which language to use when writing a problem report. I suspect
25021 some lang=nb,nn kind of attribute would solve it.</p>
25022
25023 <p>A key part of the Open311 API is the list of services provided,
25024 which is similar to the categories used by FixMyStreet. One issue I
25025 run into is the need to specify both name and unique identifier for
25026 each category. The specification do not state that the identifier
25027 should be numeric, but all example implementations have used numbers
25028 here. In FixMyStreet, there is no number associated with each
25029 category. As the specification do not forbid it, I will use the name
25030 as the unique identifier for now and see how open311 clients handle
25031 it.</p>
25032
25033 <p>The report format in open311 and the report format in FixMyStreet
25034 differ in a key part. FixMyStreet have a title and a description,
25035 while Open311 only have a description and lack the title. I'm not
25036 quite sure how to best handle this yet. When asking for a FixMyStreet
25037 report in Open311 format, I just merge title an description into the
25038 open311 description, but this is not going to work if the open311 API
25039 should be used for submitting new reports to FixMyStreet.</p>
25040
25041 <p>The search feature in Open311 is missing a way to ask for problems
25042 near a geographic location. I believe this is important if one is to
25043 use Open311 as the query language for mobile units. The specification
25044 should be extended to handle this, probably using some new lat=, lon=
25045 and range= options.</p>
25046
25047 <p>The final challenge I see is that the FixMyStreet code handle
25048 several administrations in one interface, while the Open311 API seem
25049 to assume only one administration. For FixMyStreet, this mean a
25050 report can be sent to several administrations, and the categories
25051 available depend on the location of the problem. Not quite sure how
25052 to best handle this. I've noticed
25053 <a href="http://seeclickfix.com/open311/">SeeClickFix</a> added
25054 latitude and longitude options to the services request, but it do not
25055 solve the problem of what to return when no location is specified.
25056 Will have to investigate this a bit more.</p>
25057
25058 <p>My distaste for web forums have kept me from bringing these issues
25059 up with the open311 developer group. I really wish they had a email
25060 list available via <a href="http://www.gmane.org/">Gmane</a> to use for
25061 discussions instead of only
25062 <a href="http://lists.open311.org/groups/discuss">a forum<a/>. Oh,
25063 well. That will probably resolve itself, one way or another. I've
25064 also tried visiting the IRC channel #open311 on FreeNode, but no-one
25065 seem to reply to my questions there. This make me wonder if I just
25066 fail to understand how the open311 community work. It sure do not
25067 work like the free software project communities I am used to.</p>
25068
25069 </div>
25070 <div class="tags">
25071
25072
25073 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami</a>, <a href="http://people.skolelinux.org/pere/blog/tags/open311">open311</a>.
25074
25075
25076 </div>
25077 </div>
25078 <div class="padding"></div>
25079
25080 <div class="entry">
25081 <div class="title">
25082 <a href="http://people.skolelinux.org/pere/blog/Gnash_enteres_Google_Summer_of_Code_2011.html">Gnash enteres Google Summer of Code 2011</a>
25083 </div>
25084 <div class="date">
25085 6th April 2011
25086 </div>
25087 <div class="body">
25088 <p><a href="http://www.getgnash.org/">The Gnash project</a> is still
25089 the most promising solution for a Free Software Flash implementation.
25090 A few days ago the project
25091 <a href="http://lists.gnu.org/archive/html/gnash-dev/2011-04/msg00011.html">announced</a>
25092 that it will participate in Google Summer of Code. I hope many
25093 students apply, and that some of them succeed in getting AVM2 support
25094 into Gnash.</p>
25095
25096 </div>
25097 <div class="tags">
25098
25099
25100 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</a>.
25101
25102
25103 </div>
25104 </div>
25105 <div class="padding"></div>
25106
25107 <div class="entry">
25108 <div class="title">
25109 <a href="http://people.skolelinux.org/pere/blog/A_Norwegian_FixMyStreet_have_kept_me_busy_the_last_few_weeks.html">A Norwegian FixMyStreet have kept me busy the last few weeks</a>
25110 </div>
25111 <div class="date">
25112 3rd April 2011
25113 </div>
25114 <div class="body">
25115 <p>Here is a small update for my English readers. Most of my blog
25116 posts have been in Norwegian the last few weeks, so here is a short
25117 update in English.</p>
25118
25119 <p>The kids still keep me too busy to get much free software work
25120 done, but I did manage to organise a project to get a Norwegian port
25121 of the British service
25122 <a href="http://www.fixmystreet.com/">FixMyStreet</a> up and running,
25123 and it has been running for a month now. The entire project has been
25124 organised by me and two others. Around Christmas we gathered sponsors
25125 to fund the development work. In January I drafted a contract with
25126 <a href="http://www.mysociety.org/">mySociety</a> on what to develop,
25127 and in February the development took place. Most of it involved
25128 converting the source to use GPS coordinates instead of British
25129 easting/northing, and the resulting code should be a lot easier to get
25130 running in any country by now. The Norwegian
25131 <a href="http://www.fiksgatami.no/">FiksGataMi</a> is using
25132 <a href="http://www.openstreetmap.org/">OpenStreetmap</a> as the map
25133 source and the source for administrative borders in Norway, and
25134 support for this had to be added/fixed.</p>
25135
25136 <p>The Norwegian version went live March 3th, and we spent the weekend
25137 polishing the system before we announced it March 7th. The system is
25138 running on a KVM instance of Debian/Squeeze, and has seen almost 3000
25139 problem reports in a few weeks. Soon we hope to announce the Android
25140 and iPhone versions making it even easier to report problems with the
25141 public infrastructure.</p>
25142
25143 <p>Perhaps something to consider for those of you in countries without
25144 such service?</p>
25145
25146 </div>
25147 <div class="tags">
25148
25149
25150 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/fiksgatami">fiksgatami</a>, <a href="http://people.skolelinux.org/pere/blog/tags/kart">kart</a>.
25151
25152
25153 </div>
25154 </div>
25155 <div class="padding"></div>
25156
25157 <div class="entry">
25158 <div class="title">
25159 <a href="http://people.skolelinux.org/pere/blog/Using_NVD_and_CPE_to_track_CVEs_in_locally_maintained_software.html">Using NVD and CPE to track CVEs in locally maintained software</a>
25160 </div>
25161 <div class="date">
25162 28th January 2011
25163 </div>
25164 <div class="body">
25165 <p>The last few days I have looked at ways to track open security
25166 issues here at my work with the University of Oslo. My idea is that
25167 it should be possible to use the information about security issues
25168 available on the Internet, and check our locally
25169 maintained/distributed software against this information. It should
25170 allow us to verify that no known security issues are forgotten. The
25171 CVE database listing vulnerabilities seem like a great central point,
25172 and by using the package lists from Debian mapped to CVEs provided by
25173 the testing security team, I believed it should be possible to figure
25174 out which security holes were present in our free software
25175 collection.</p>
25176
25177 <p>After reading up on the topic, it became obvious that the first
25178 building block is to be able to name software packages in a unique and
25179 consistent way across data sources. I considered several ways to do
25180 this, for example coming up with my own naming scheme like using URLs
25181 to project home pages or URLs to the Freshmeat entries, or using some
25182 existing naming scheme. And it seem like I am not the first one to
25183 come across this problem, as MITRE already proposed and implemented a
25184 solution. Enter the <a href="http://cpe.mitre.org/index.html">Common
25185 Platform Enumeration</a> dictionary, a vocabulary for referring to
25186 software, hardware and other platform components. The CPE ids are
25187 mapped to CVEs in the <a href="http://web.nvd.nist.gov/">National
25188 Vulnerability Database</a>, allowing me to look up know security
25189 issues for any CPE name. With this in place, all I need to do is to
25190 locate the CPE id for the software packages we use at the university.
25191 This is fairly trivial (I google for 'cve cpe $package' and check the
25192 NVD entry if a CVE for the package exist).</p>
25193
25194 <p>To give you an example. The GNU gzip source package have the CPE
25195 name cpe:/a:gnu:gzip. If the old version 1.3.3 was the package to
25196 check out, one could look up
25197 <a href="http://web.nvd.nist.gov/view/vuln/search?cpe=cpe%3A%2Fa%3Agnu%3Agzip:1.3.3">cpe:/a:gnu:gzip:1.3.3
25198 in NVD</a> and get a list of 6 security holes with public CVE entries.
25199 The most recent one is
25200 <a href="http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2010-0001">CVE-2010-0001</a>,
25201 and at the bottom of the NVD page for this vulnerability the complete
25202 list of affected versions is provided.</p>
25203
25204 <p>The NVD database of CVEs is also available as a XML dump, allowing
25205 for offline processing of issues. Using this dump, I've written a
25206 small script taking a list of CPEs as input and list all CVEs
25207 affecting the packages represented by these CPEs. One give it CPEs
25208 with version numbers as specified above and get a list of open
25209 security issues out.</p>
25210
25211 <p>Of course for this approach to be useful, the quality of the NVD
25212 information need to be high. For that to happen, I believe as many as
25213 possible need to use and contribute to the NVD database. I notice
25214 RHEL is providing
25215 <a href="https://www.redhat.com/security/data/metrics/rhsamapcpe.txt">a
25216 map from CVE to CPE</a>, indicating that they are using the CPE
25217 information. I'm not aware of Debian and Ubuntu doing the same.</p>
25218
25219 <p>To get an idea about the quality for free software, I spent some
25220 time making it possible to compare the CVE database from Debian with
25221 the CVE database in NVD. The result look fairly good, but there are
25222 some inconsistencies in NVD (same software package having several
25223 CPEs), and some inaccuracies (NVD not mentioning buggy packages that
25224 Debian believe are affected by a CVE). Hope to find time to improve
25225 the quality of NVD, but that require being able to get in touch with
25226 someone maintaining it. So far my three emails with questions and
25227 corrections have not seen any reply, but I hope contact can be
25228 established soon.</p>
25229
25230 <p>An interesting application for CPEs is cross platform package
25231 mapping. It would be useful to know which packages in for example
25232 RHEL, OpenSuSe and Mandriva are missing from Debian and Ubuntu, and
25233 this would be trivial if all linux distributions provided CPE entries
25234 for their packages.</p>
25235
25236 </div>
25237 <div class="tags">
25238
25239
25240 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/sikkerhet">sikkerhet</a>.
25241
25242
25243 </div>
25244 </div>
25245 <div class="padding"></div>
25246
25247 <div class="entry">
25248 <div class="title">
25249 <a href="http://people.skolelinux.org/pere/blog/Which_module_is_loaded_for_a_given_PCI_and_USB_device_.html">Which module is loaded for a given PCI and USB device?</a>
25250 </div>
25251 <div class="date">
25252 23rd January 2011
25253 </div>
25254 <div class="body">
25255 <p>In the
25256 <a href="http://packages.qa.debian.org/discover-data">discover-data</a>
25257 package in Debian, there is a script to report useful information
25258 about the running hardware for use when people report missing
25259 information. One part of this script that I find very useful when
25260 debugging hardware problems, is the part mapping loaded kernel module
25261 to the PCI device it claims. It allow me to quickly see if the kernel
25262 module I expect is driving the hardware I am struggling with. To see
25263 the output, make sure discover-data is installed and run
25264 <tt>/usr/share/bug/discover-data 3>&1</tt>. The relevant output on
25265 one of my machines like this:</p>
25266
25267 <pre>
25268 loaded modules:
25269 10de:03eb i2c_nforce2
25270 10de:03f1 ohci_hcd
25271 10de:03f2 ehci_hcd
25272 10de:03f0 snd_hda_intel
25273 10de:03ec pata_amd
25274 10de:03f6 sata_nv
25275 1022:1103 k8temp
25276 109e:036e bttv
25277 109e:0878 snd_bt87x
25278 11ab:4364 sky2
25279 </pre>
25280
25281 <p>The code in question look like this, slightly modified for
25282 readability and to drop the output to file descriptor 3:</p>
25283
25284 <pre>
25285 if [ -d /sys/bus/pci/devices/ ] ; then
25286 echo loaded pci modules:
25287 (
25288 cd /sys/bus/pci/devices/
25289 for address in * ; do
25290 if [ -d "$address/driver/module" ] ; then
25291 module=`cd $address/driver/module ; pwd -P | xargs basename`
25292 if grep -q "^$module " /proc/modules ; then
25293 address=$(echo $address |sed s/0000://)
25294 id=`lspci -n -s $address | tail -n 1 | awk '{print $3}'`
25295 echo "$id $module"
25296 fi
25297 fi
25298 done
25299 )
25300 echo
25301 fi
25302 </pre>
25303
25304 <p>Similar code could be used to extract USB device module
25305 mappings:</p>
25306
25307 <pre>
25308 if [ -d /sys/bus/usb/devices/ ] ; then
25309 echo loaded usb modules:
25310 (
25311 cd /sys/bus/usb/devices/
25312 for address in * ; do
25313 if [ -d "$address/driver/module" ] ; then
25314 module=`cd $address/driver/module ; pwd -P | xargs basename`
25315 if grep -q "^$module " /proc/modules ; then
25316 address=$(echo $address |sed s/0000://)
25317 id=$(lsusb -s $address | tail -n 1 | awk '{print $6}')
25318 if [ "$id" ] ; then
25319 echo "$id $module"
25320 fi
25321 fi
25322 fi
25323 done
25324 )
25325 echo
25326 fi
25327 </pre>
25328
25329 <p>This might perhaps be something to include in other tools as
25330 well.</p>
25331
25332 </div>
25333 <div class="tags">
25334
25335
25336 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>.
25337
25338
25339 </div>
25340 </div>
25341 <div class="padding"></div>
25342
25343 <div class="entry">
25344 <div class="title">
25345 <a href="http://people.skolelinux.org/pere/blog/The_video_format_most_supported_in_web_browsers_.html">The video format most supported in web browsers?</a>
25346 </div>
25347 <div class="date">
25348 16th January 2011
25349 </div>
25350 <div class="body">
25351 <p>The video format struggle on the web continues, and the three
25352 contenders seem to be Ogg Theora, H.264 and WebM. Most video sites
25353 seem to use H.264, while others use Ogg Theora. Interestingly enough,
25354 the comments I see give me the feeling that a lot of people believe
25355 H.264 is the most supported video format in browsers, but according to
25356 the Wikipedia article on
25357 <a href="http://en.wikipedia.org/wiki/HTML5_video">HTML5 video</a>,
25358 this is not true. Check out the nice table of supprted formats in
25359 different browsers there. The format supported by most browsers is
25360 Ogg Theora, supported by released versions of Mozilla Firefox, Google
25361 Chrome, Chromium, Opera, Konqueror, Epiphany, Origyn Web Browser and
25362 BOLT browser, while not supported by Internet Explorer nor Safari.
25363 The runner up is WebM supported by released versions of Google Chrome
25364 Chromium Opera and Origyn Web Browser, and test versions of Mozilla
25365 Firefox. H.264 is supported by released versions of Safari, Origyn
25366 Web Browser and BOLT browser, and the test version of Internet
25367 Explorer. Those wanting Ogg Theora support in Internet Explorer and
25368 Safari can install plugins to get it.</p>
25369
25370 <p>To me, the simple conclusion from this is that to reach most users
25371 without any extra software installed, one uses Ogg Theora with the
25372 HTML5 video tag. Of course to reach all those without a browser
25373 handling HTML5, one need fallback mechanisms. In
25374 <a href="http://www.nuug.no/">NUUG</a>, we provide first fallback to a
25375 plugin capable of playing MPEG1 video, and those without such support
25376 we have a second fallback to the Cortado java applet playing Ogg
25377 Theora. This seem to work quite well, as can be seen in an <a
25378 href="http://www.nuug.no/aktiviteter/20110111-semantic-web/">example
25379 from last week</a>.</p>
25380
25381 <p>The reason Ogg Theora is the most supported format, and H.264 is
25382 the least supported is simple. Implementing and using H.264
25383 require royalty payment to MPEG-LA, and the terms of use from MPEG-LA
25384 are incompatible with free software licensing. If you believed H.264
25385 was without royalties and license terms, check out
25386 "<a href="http://webmink.com/essays/h-264/">H.264 – Not The Kind Of
25387 Free That Matters</a>" by Simon Phipps.</p>
25388
25389 <p>A incomplete list of sites providing video in Ogg Theora is
25390 available from
25391 <a href="http://wiki.xiph.org/index.php/List_of_Theora_videos">the
25392 Xiph.org wiki</a>, if you want to have a look. I'm not aware of a
25393 similar list for WebM nor H.264.</p>
25394
25395 <p>Update 2011-01-16 09:40: A question from Tollef on IRC made me
25396 realise that I failed to make it clear enough this text is about the
25397 &lt;video&gt; tag support in browsers and not the video support
25398 provided by external plugins like the Flash plugins.</p>
25399
25400 </div>
25401 <div class="tags">
25402
25403
25404 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/h264">h264</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
25405
25406
25407 </div>
25408 </div>
25409 <div class="padding"></div>
25410
25411 <div class="entry">
25412 <div class="title">
25413 <a href="http://people.skolelinux.org/pere/blog/Chrome_plan_to_drop_H_264_support_for_HTML5__lt_video_gt_.html">Chrome plan to drop H.264 support for HTML5 &lt;video&gt;</a>
25414 </div>
25415 <div class="date">
25416 12th January 2011
25417 </div>
25418 <div class="body">
25419 <p>Today I discovered
25420 <a href="http://www.digi.no/860070/google-dropper-h264-stotten-i-chrome">via
25421 digi.no</a> that the Chrome developers, in a surprising announcement,
25422 <a href="http://blog.chromium.org/2011/01/html-video-codec-support-in-chrome.html">yesterday
25423 announced</a> plans to drop H.264 support for HTML5 &lt;video&gt; in
25424 the browser. The argument used is that H.264 is not a "completely
25425 open" codec technology. If you believe H.264 was free for everyone
25426 to use, I recommend having a look at the essay
25427 "<a href="http://webmink.com/essays/h-264/">H.264 – Not The Kind Of
25428 Free That Matters</a>". It is not free of cost for creators of video
25429 tools, nor those of us that want to publish on the Internet, and the
25430 terms provided by MPEG-LA excludes free software projects from
25431 licensing the patents needed for H.264. Some background information
25432 on the Google announcement is available from
25433 <a href="http://www.osnews.com/story/24243/Google_To_Drop_H264_Support_from_Chrome">OSnews</a>.
25434 A good read. :)</p>
25435
25436 <p>Personally, I believe it is great that Google is taking a stand to
25437 promote equal terms for everyone when it comes to video publishing on
25438 the Internet. This can only be done by publishing using free and open
25439 standards, which is only possible if the web browsers provide support
25440 for these free and open standards. At the moment there seem to be two
25441 camps in the web browser world when it come to video support. Some
25442 browsers support H.264, and others support
25443 <a href="http://www.theora.org/">Ogg Theora</a> and
25444 <a href="http://www.webmproject.org/">WebM</a>
25445 (<a href="http://www.diracvideo.org/">Dirac</a> is not really an option
25446 yet), forcing those of us that want to publish video on the Internet
25447 and which can not accept the terms of use presented by MPEG-LA for
25448 H.264 to not reach all potential viewers.
25449 Wikipedia keep <a href="http://en.wikipedia.org/wiki/HTML5_video">an
25450 updated summary</a> of the current browser support.</p>
25451
25452 <p>Not surprising, several people would prefer Google to keep
25453 promoting H.264, and John Gruber
25454 <a href="http://daringfireball.net/2011/01/simple_questions">presents
25455 the mind set</a> of these people quite well. His rhetorical questions
25456 provoked a reply from Thom Holwerda with another set of questions
25457 <a href="http://www.osnews.com/story/24245/10_Questions_for_John_Gruber_Regarding_H_264_WebM">presenting
25458 the issues with H.264</a>. Both are worth a read.</p>
25459
25460 <p>Some argue that if Google is dropping H.264 because it isn't free,
25461 they should also drop support for the Adobe Flash plugin. This
25462 argument was covered by Simon Phipps in
25463 <a href="http://blogs.computerworlduk.com/simon-says/2011/01/google-and-h264---far-from-hypocritical/index.htm">todays
25464 blog post</a>, which I find to put the issue in context. To me it
25465 make perfect sense to drop native H.264 support for HTML5 in the
25466 browser while still allowing plugins.</p>
25467
25468 <p>I suspect the reason this announcement make so many people protest,
25469 is that all the users and promoters of H.264 suddenly get an uneasy
25470 feeling that they might be backing the wrong horse. A lot of TV
25471 broadcasters have been moving to H.264 the last few years, and a lot
25472 of money has been invested in hardware based on the belief that they
25473 could use the same video format for both broadcasting and web
25474 publishing. Suddenly this belief is shaken.</p>
25475
25476 <p>An interesting question is why Google is doing this. While the
25477 presented argument might be true enough, I believe Google would only
25478 present the argument if the change make sense from a business
25479 perspective. One reason might be that they are currently negotiating
25480 with MPEG-LA over royalties or usage terms, and giving MPEG-LA the
25481 feeling that dropping H.264 completely from Chroome, Youtube and
25482 Google Video would improve the negotiation position of Google.
25483 Another reason might be that Google want to save money by not having
25484 to pay the video tax to MPEG-LA at all, and thus want to move to a
25485 video format not requiring royalties at all. A third reason might be
25486 that the Chrome development team simply want to avoid the
25487 Chrome/Chromium split to get more help with the development of Chrome.
25488 I guess time will tell.</p>
25489
25490 <p>Update 2011-01-15: The Google Chrome team provided
25491 <a href="http://blog.chromium.org/2011/01/more-about-chrome-html-video-codec.html">more
25492 background and information on the move</a> it a blog post yesterday.</p>
25493
25494 </div>
25495 <div class="tags">
25496
25497
25498 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/h264">h264</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
25499
25500
25501 </div>
25502 </div>
25503 <div class="padding"></div>
25504
25505 <div class="entry">
25506 <div class="title">
25507 <a href="http://people.skolelinux.org/pere/blog/What_standards_are_Free_and_Open_as_defined_by_Digistan_.html">What standards are Free and Open as defined by Digistan?</a>
25508 </div>
25509 <div class="date">
25510 30th December 2010
25511 </div>
25512 <div class="body">
25513 <p>After trying to
25514 <a href="http://people.skolelinux.org/pere/blog/Is_Ogg_Theora_a_free_and_open_standard_.html">compare
25515 Ogg Theora</a> to
25516 <a href="http://www.digistan.org/open-standard:definition">the Digistan
25517 definition</a> of a free and open standard, I concluded that this need
25518 to be done for more standards and started on a framework for doing
25519 this. As a start, I want to get the status for all the standards in
25520 the Norwegian reference directory, which include UTF-8, HTML, PDF, ODF,
25521 JPEG, PNG, SVG and others. But to be able to complete this in a
25522 reasonable time frame, I will need help.</p>
25523
25524 <p>If you want to help out with this work, please visit
25525 <a href="http://wiki.nuug.no/grupper/standard/digistan-analyse">the
25526 wiki pages I have set up for this</a>, and let me know that you want
25527 to help out. The IRC channel #nuug on irc.freenode.net is a good
25528 place to coordinate this for now, as it is the IRC channel for the
25529 NUUG association where I have created the framework (I am the leader
25530 of the Norwegian Unix User Group).</p>
25531
25532 <p>The framework is still forming, and a lot is left to do. Do not be
25533 scared by the sketchy form of the current pages. :)</p>
25534
25535 </div>
25536 <div class="tags">
25537
25538
25539 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>.
25540
25541
25542 </div>
25543 </div>
25544 <div class="padding"></div>
25545
25546 <div class="entry">
25547 <div class="title">
25548 <a href="http://people.skolelinux.org/pere/blog/The_many_definitions_of_a_open_standard.html">The many definitions of a open standard</a>
25549 </div>
25550 <div class="date">
25551 27th December 2010
25552 </div>
25553 <div class="body">
25554 <p>One of the reasons I like the Digistan definition of
25555 "<a href="http://www.digistan.org/open-standard:definition">Free and
25556 Open Standard</a>" is that this is a new term, and thus the meaning of
25557 the term has been decided by Digistan. The term "Open Standard" has
25558 become so misunderstood that it is no longer very useful when talking
25559 about standards. One end up discussing which definition is the best
25560 one and with such frame the only one gaining are the proponents of
25561 de-facto standards and proprietary solutions.</p>
25562
25563 <p>But to give us an idea about the diversity of definitions of open
25564 standards, here are a few that I know about. This list is not
25565 complete, but can be a starting point for those that want to do a
25566 complete survey. More definitions are available on the
25567 <a href="http://en.wikipedia.org/wiki/Open_standard">wikipedia
25568 page</a>.</p>
25569
25570 <p>First off is my favourite, the definition from the European
25571 Interoperability Framework version 1.0. Really sad to notice that BSA
25572 and others has succeeded in getting it removed from version 2.0 of the
25573 framework by stacking the committee drafting the new version with
25574 their own people. Anyway, the definition is still available and it
25575 include the key properties needed to make sure everyone can use a
25576 specification on equal terms.</p>
25577
25578 <blockquote>
25579
25580 <p>The following are the minimal characteristics that a specification
25581 and its attendant documents must have in order to be considered an
25582 open standard:</p>
25583
25584 <ul>
25585
25586 <li>The standard is adopted and will be maintained by a not-for-profit
25587 organisation, and its ongoing development occurs on the basis of an
25588 open decision-making procedure available to all interested parties
25589 (consensus or majority decision etc.).</li>
25590
25591 <li>The standard has been published and the standard specification
25592 document is available either freely or at a nominal charge. It must be
25593 permissible to all to copy, distribute and use it for no fee or at a
25594 nominal fee.</li>
25595
25596 <li>The intellectual property - i.e. patents possibly present - of
25597 (parts of) the standard is made irrevocably available on a royalty-
25598 free basis.</li>
25599
25600 <li>There are no constraints on the re-use of the standard.</li>
25601
25602 </ul>
25603 </blockquote>
25604
25605 <p>Another one originates from my friends over at
25606 <a href="http://www.dkuug.dk/">DKUUG</a>, who coined and gathered
25607 support for <a href="http://www.aaben-standard.dk/">this
25608 definition</a> in 2004. It even made it into the Danish parlament as
25609 <a href="http://www.ft.dk/dokumenter/tingdok.aspx?/samling/20051/beslutningsforslag/B103/som_fremsat.htm">their
25610 definition of a open standard</a>. Another from a different part of
25611 the Danish government is available from the wikipedia page.</p>
25612
25613 <blockquote>
25614
25615 <p>En åben standard opfylder følgende krav:</p>
25616
25617 <ol>
25618
25619 <li>Veldokumenteret med den fuldstændige specifikation offentligt
25620 tilgængelig.</li>
25621
25622 <li>Frit implementerbar uden økonomiske, politiske eller juridiske
25623 begrænsninger på implementation og anvendelse.</li>
25624
25625 <li>Standardiseret og vedligeholdt i et åbent forum (en såkaldt
25626 "standardiseringsorganisation") via en åben proces.</li>
25627
25628 </ol>
25629
25630 </blockquote>
25631
25632 <p>Then there is <a href="http://www.fsfe.org/projects/os/def.html">the
25633 definition</a> from Free Software Foundation Europe.</p>
25634
25635 <blockquote>
25636
25637 <p>An Open Standard refers to a format or protocol that is</p>
25638
25639 <ol>
25640
25641 <li>subject to full public assessment and use without constraints in a
25642 manner equally available to all parties;</li>
25643
25644 <li>without any components or extensions that have dependencies on
25645 formats or protocols that do not meet the definition of an Open
25646 Standard themselves;</li>
25647
25648 <li>free from legal or technical clauses that limit its utilisation by
25649 any party or in any business model;</li>
25650
25651 <li>managed and further developed independently of any single vendor
25652 in a process open to the equal participation of competitors and third
25653 parties;</li>
25654
25655 <li>available in multiple complete implementations by competing
25656 vendors, or as a complete implementation equally available to all
25657 parties.</li>
25658
25659 </ol>
25660
25661 </blockquote>
25662
25663 <p>A long time ago, SUN Microsystems, now bought by Oracle, created
25664 its
25665 <a href="http://blogs.sun.com/dennisding/resource/Open%20Standard%20Definition.pdf">Open
25666 Standards Checklist</a> with a fairly detailed description.</p>
25667
25668 <blockquote>
25669 <p>Creation and Management of an Open Standard
25670
25671 <ul>
25672
25673 <li>Its development and management process must be collaborative and
25674 democratic:
25675
25676 <ul>
25677
25678 <li>Participation must be accessible to all those who wish to
25679 participate and can meet fair and reasonable criteria
25680 imposed by the organization under which it is developed
25681 and managed.</li>
25682
25683 <li>The processes must be documented and, through a known
25684 method, can be changed through input from all
25685 participants.</li>
25686
25687 <li>The process must be based on formal and binding commitments for
25688 the disclosure and licensing of intellectual property rights.</li>
25689
25690 <li>Development and management should strive for consensus,
25691 and an appeals process must be clearly outlined.</li>
25692
25693 <li>The standard specification must be open to extensive
25694 public review at least once in its life-cycle, with
25695 comments duly discussed and acted upon, if required.</li>
25696
25697 </ul>
25698
25699 </li>
25700
25701 </ul>
25702
25703 <p>Use and Licensing of an Open Standard</p>
25704 <ul>
25705
25706 <li>The standard must describe an interface, not an implementation,
25707 and the industry must be capable of creating multiple, competing
25708 implementations to the interface described in the standard without
25709 undue or restrictive constraints. Interfaces include APIs,
25710 protocols, schemas, data formats and their encoding.</li>
25711
25712 <li> The standard must not contain any proprietary "hooks" that create
25713 a technical or economic barriers</li>
25714
25715 <li>Faithful implementations of the standard must
25716 interoperate. Interoperability means the ability of a computer
25717 program to communicate and exchange information with other computer
25718 programs and mutually to use the information which has been
25719 exchanged. This includes the ability to use, convert, or exchange
25720 file formats, protocols, schemas, interface information or
25721 conventions, so as to permit the computer program to work with other
25722 computer programs and users in all the ways in which they are
25723 intended to function.</li>
25724
25725 <li>It must be permissible for anyone to copy, distribute and read the
25726 standard for a nominal fee, or even no fee. If there is a fee, it
25727 must be low enough to not preclude widespread use.</li>
25728
25729 <li>It must be possible for anyone to obtain free (no royalties or
25730 fees; also known as "royalty free"), worldwide, non-exclusive and
25731 perpetual licenses to all essential patent claims to make, use and
25732 sell products based on the standard. The only exceptions are
25733 terminations per the reciprocity and defensive suspension terms
25734 outlined below. Essential patent claims include pending, unpublished
25735 patents, published patents, and patent applications. The license is
25736 only for the exact scope of the standard in question.
25737
25738 <ul>
25739
25740 <li> May be conditioned only on reciprocal licenses to any of
25741 licensees' patent claims essential to practice that standard
25742 (also known as a reciprocity clause)</li>
25743
25744 <li> May be terminated as to any licensee who sues the licensor
25745 or any other licensee for infringement of patent claims
25746 essential to practice that standard (also known as a
25747 "defensive suspension" clause)</li>
25748
25749 <li> The same licensing terms are available to every potential
25750 licensor</li>
25751
25752 </ul>
25753 </li>
25754
25755 <li>The licensing terms of an open standards must not preclude
25756 implementations of that standard under open source licensing terms
25757 or restricted licensing terms</li>
25758
25759 </ul>
25760
25761 </blockquote>
25762
25763 <p>It is said that one of the nice things about standards is that
25764 there are so many of them. As you can see, the same holds true for
25765 open standard definitions. Most of the definitions have a lot in
25766 common, and it is not really controversial what properties a open
25767 standard should have, but the diversity of definitions have made it
25768 possible for those that want to avoid a level marked field and real
25769 competition to downplay the significance of open standards. I hope we
25770 can turn this tide by focusing on the advantages of Free and Open
25771 Standards.</p>
25772
25773 </div>
25774 <div class="tags">
25775
25776
25777 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>.
25778
25779
25780 </div>
25781 </div>
25782 <div class="padding"></div>
25783
25784 <div class="entry">
25785 <div class="title">
25786 <a href="http://people.skolelinux.org/pere/blog/Is_Ogg_Theora_a_free_and_open_standard_.html">Is Ogg Theora a free and open standard?</a>
25787 </div>
25788 <div class="date">
25789 25th December 2010
25790 </div>
25791 <div class="body">
25792 <p><a href="http://www.digistan.org/open-standard:definition">The
25793 Digistan definition</a> of a free and open standard reads like this:</p>
25794
25795 <blockquote>
25796
25797 <p>The Digital Standards Organization defines free and open standard
25798 as follows:</p>
25799
25800 <ol>
25801
25802 <li>A free and open standard is immune to vendor capture at all stages
25803 in its life-cycle. Immunity from vendor capture makes it possible to
25804 freely use, improve upon, trust, and extend a standard over time.</li>
25805
25806 <li>The standard is adopted and will be maintained by a not-for-profit
25807 organisation, and its ongoing development occurs on the basis of an
25808 open decision-making procedure available to all interested
25809 parties.</li>
25810
25811 <li>The standard has been published and the standard specification
25812 document is available freely. It must be permissible to all to copy,
25813 distribute, and use it freely.</li>
25814
25815 <li>The patents possibly present on (parts of) the standard are made
25816 irrevocably available on a royalty-free basis.</li>
25817
25818 <li>There are no constraints on the re-use of the standard.</li>
25819
25820 </ol>
25821
25822 <p>The economic outcome of a free and open standard, which can be
25823 measured, is that it enables perfect competition between suppliers of
25824 products based on the standard.</p>
25825 </blockquote>
25826
25827 <p>For a while now I have tried to figure out of Ogg Theora is a free
25828 and open standard according to this definition. Here is a short
25829 writeup of what I have been able to gather so far. I brought up the
25830 topic on the Xiph advocacy mailing list
25831 <a href="http://lists.xiph.org/pipermail/advocacy/2009-July/001632.html">in
25832 July 2009</a>, for those that want to see some background information.
25833 According to Ivo Emanuel Gonçalves and Monty Montgomery on that list
25834 the Ogg Theora specification fulfils the Digistan definition.</p>
25835
25836 <p><strong>Free from vendor capture?</strong></p>
25837
25838 <p>As far as I can see, there is no single vendor that can control the
25839 Ogg Theora specification. It can be argued that the
25840 <a href="http://www.xiph.org/">Xiph foundation</A> is such vendor, but
25841 given that it is a non-profit foundation with the expressed goal
25842 making free and open protocols and standards available, it is not
25843 obvious that this is a real risk. One issue with the Xiph
25844 foundation is that its inner working (as in board member list, or who
25845 control the foundation) are not easily available on the web. I've
25846 been unable to find out who is in the foundation board, and have not
25847 seen any accounting information documenting how money is handled nor
25848 where is is spent in the foundation. It is thus not obvious for an
25849 external observer who control The Xiph foundation, and for all I know
25850 it is possible for a single vendor to take control over the
25851 specification. But it seem unlikely.</p>
25852
25853 <p><strong>Maintained by open not-for-profit organisation?</strong></p>
25854
25855 <p>Assuming that the Xiph foundation is the organisation its web pages
25856 claim it to be, this point is fulfilled. If Xiph foundation is
25857 controlled by a single vendor, it isn't, but I have not found any
25858 documentation indicating this.</p>
25859
25860 <p>According to
25861 <a href="http://media.hiof.no/diverse/fad/rapport_4.pdf">a report</a>
25862 prepared by Audun Vaaler og Børre Ludvigsen for the Norwegian
25863 government, the Xiph foundation is a non-commercial organisation and
25864 the development process is open, transparent and non-Discrimatory.
25865 Until proven otherwise, I believe it make most sense to believe the
25866 report is correct.</p>
25867
25868 <p><strong>Specification freely available?</strong></p>
25869
25870 <p>The specification for the <a href="http://www.xiph.org/ogg/doc/">Ogg
25871 container format</a> and both the
25872 <a href="http://www.xiph.org/vorbis/doc/">Vorbis</a> and
25873 <a href="http://theora.org/doc/">Theora</a> codeces are available on
25874 the web. This are the terms in the Vorbis and Theora specification:
25875
25876 <blockquote>
25877
25878 Anyone may freely use and distribute the Ogg and [Vorbis/Theora]
25879 specifications, whether in private, public, or corporate
25880 capacity. However, the Xiph.Org Foundation and the Ogg project reserve
25881 the right to set the Ogg [Vorbis/Theora] specification and certify
25882 specification compliance.
25883
25884 </blockquote>
25885
25886 <p>The Ogg container format is specified in IETF
25887 <a href="http://www.xiph.org/ogg/doc/rfc3533.txt">RFC 3533</a>, and
25888 this is the term:<p>
25889
25890 <blockquote>
25891
25892 <p>This document and translations of it may be copied and furnished to
25893 others, and derivative works that comment on or otherwise explain it
25894 or assist in its implementation may be prepared, copied, published and
25895 distributed, in whole or in part, without restriction of any kind,
25896 provided that the above copyright notice and this paragraph are
25897 included on all such copies and derivative works. However, this
25898 document itself may not be modified in any way, such as by removing
25899 the copyright notice or references to the Internet Society or other
25900 Internet organizations, except as needed for the purpose of developing
25901 Internet standards in which case the procedures for copyrights defined
25902 in the Internet Standards process must be followed, or as required to
25903 translate it into languages other than English.</p>
25904
25905 <p>The limited permissions granted above are perpetual and will not be
25906 revoked by the Internet Society or its successors or assigns.</p>
25907 </blockquote>
25908
25909 <p>All these terms seem to allow unlimited distribution and use, an
25910 this term seem to be fulfilled. There might be a problem with the
25911 missing permission to distribute modified versions of the text, and
25912 thus reuse it in other specifications. Not quite sure if that is a
25913 requirement for the Digistan definition.</p>
25914
25915 <p><strong>Royalty-free?</strong></p>
25916
25917 <p>There are no known patent claims requiring royalties for the Ogg
25918 Theora format.
25919 <a href="http://www.streamingmedia.com/Articles/ReadArticle.aspx?ArticleID=65782">MPEG-LA</a>
25920 and
25921 <a href="http://yro.slashdot.org/story/10/04/30/237238/Steve-Jobs-Hints-At-Theora-Lawsuit">Steve
25922 Jobs</a> in Apple claim to know about some patent claims (submarine
25923 patents) against the Theora format, but no-one else seem to believe
25924 them. Both Opera Software and the Mozilla Foundation have looked into
25925 this and decided to implement Ogg Theora support in their browsers
25926 without paying any royalties. For now the claims from MPEG-LA and
25927 Steve Jobs seem more like FUD to scare people to use the H.264 codec
25928 than any real problem with Ogg Theora.</p>
25929
25930 <p><strong>No constraints on re-use?</strong></p>
25931
25932 <p>I am not aware of any constraints on re-use.</p>
25933
25934 <p><strong>Conclusion</strong></p>
25935
25936 <p>3 of 5 requirements seem obviously fulfilled, and the remaining 2
25937 depend on the governing structure of the Xiph foundation. Given the
25938 background report used by the Norwegian government, I believe it is
25939 safe to assume the last two requirements are fulfilled too, but it
25940 would be nice if the Xiph foundation web site made it easier to verify
25941 this.</p>
25942
25943 <p>It would be nice to see other analysis of other specifications to
25944 see if they are free and open standards.</p>
25945
25946 </div>
25947 <div class="tags">
25948
25949
25950 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/h264">h264</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
25951
25952
25953 </div>
25954 </div>
25955 <div class="padding"></div>
25956
25957 <div class="entry">
25958 <div class="title">
25959 <a href="http://people.skolelinux.org/pere/blog/The_reply_from_Edgar_Villanueva_to_Microsoft_in_Peru.html">The reply from Edgar Villanueva to Microsoft in Peru</a>
25960 </div>
25961 <div class="date">
25962 25th December 2010
25963 </div>
25964 <div class="body">
25965 <p>A few days ago
25966 <a href="http://www.idg.no/computerworld/article189879.ece">an
25967 article</a> in the Norwegian Computerworld magazine about how version
25968 2.0 of
25969 <a href="http://en.wikipedia.org/wiki/European_Interoperability_Framework">European
25970 Interoperability Framework</a> has been successfully lobbied by the
25971 proprietary software industry to remove the focus on free software.
25972 Nothing very surprising there, given
25973 <a href="http://news.slashdot.org/story/10/03/29/2115235/Open-Source-Open-Standards-Under-Attack-In-Europe">earlier
25974 reports</a> on how Microsoft and others have stacked the committees in
25975 this work. But I find this very sad. The definition of
25976 <a href="http://www.nuug.no/dokumenter/standard-presse-def-200506.txt">an
25977 open standard from version 1</a> was very good, and something I
25978 believe should be used also in the future, alongside
25979 <a href="http://www.digistan.org/open-standard:definition">the
25980 definition from Digistan</A>. Version 2 have removed the open
25981 standard definition from its content.</p>
25982
25983 <p>Anyway, the news reminded me of the great reply sent by Dr. Edgar
25984 Villanueva, congressman in Peru at the time, to Microsoft as a reply
25985 to Microsofts attack on his proposal regarding the use of free software
25986 in the public sector in Peru. As the text was not available from a
25987 few of the URLs where it used to be available, I copy it here from
25988 <a href="http://gnuwin.epfl.ch/articles/en/reponseperou/villanueva_to_ms.html">my
25989 source</a> to ensure it is available also in the future. Some
25990 background information about that story is available in
25991 <a href="http://www.linuxjournal.com/article/6099">an article</a> from
25992 Linux Journal in 2002.</p>
25993
25994 <blockquote>
25995 <p>Lima, 8th of April, 2002<br>
25996 To: Señor JUAN ALBERTO GONZÁLEZ<br>
25997 General Manager of Microsoft Perú</p>
25998
25999 <p>Dear Sir:</p>
26000
26001 <p>First of all, I thank you for your letter of March 25, 2002 in which you state the official position of Microsoft relative to Bill Number 1609, Free Software in Public Administration, which is indubitably inspired by the desire for Peru to find a suitable place in the global technological context. In the same spirit, and convinced that we will find the best solutions through an exchange of clear and open ideas, I will take this opportunity to reply to the commentaries included in your letter.</p>
26002
26003 <p>While acknowledging that opinions such as yours constitute a significant contribution, it would have been even more worthwhile for me if, rather than formulating objections of a general nature (which we will analyze in detail later) you had gathered solid arguments for the advantages that proprietary software could bring to the Peruvian State, and to its citizens in general, since this would have allowed a more enlightening exchange in respect of each of our positions.</p>
26004
26005 <p>With the aim of creating an orderly debate, we will assume that what you call "open source software" is what the Bill defines as "free software", since there exists software for which the source code is distributed together with the program, but which does not fall within the definition established by the Bill; and that what you call "commercial software" is what the Bill defines as "proprietary" or "unfree", given that there exists free software which is sold in the market for a price like any other good or service.</p>
26006
26007 <p>It is also necessary to make it clear that the aim of the Bill we are discussing is not directly related to the amount of direct savings that can by made by using free software in state institutions. That is in any case a marginal aggregate value, but in no way is it the chief focus of the Bill. The basic principles which inspire the Bill are linked to the basic guarantees of a state of law, such as:</p>
26008
26009 <p>
26010 <ul>
26011 <li>Free access to public information by the citizen. </li>
26012 <li>Permanence of public data. </li>
26013 <li>Security of the State and citizens.</li>
26014 </ul>
26015 </p>
26016
26017 <p>To guarantee the free access of citizens to public information, it is indispensable that the encoding of data is not tied to a single provider. The use of standard and open formats gives a guarantee of this free access, if necessary through the creation of compatible free software.</p>
26018
26019 <p>To guarantee the permanence of public data, it is necessary that the usability and maintenance of the software does not depend on the goodwill of the suppliers, or on the monopoly conditions imposed by them. For this reason the State needs systems the development of which can be guaranteed due to the availability of the source code.</p>
26020
26021 <p>To guarantee national security or the security of the State, it is indispensable to be able to rely on systems without elements which allow control from a distance or the undesired transmission of information to third parties. Systems with source code freely accessible to the public are required to allow their inspection by the State itself, by the citizens, and by a large number of independent experts throughout the world. Our proposal brings further security, since the knowledge of the source code will eliminate the growing number of programs with *spy code*. </p>
26022
26023 <p>In the same way, our proposal strengthens the security of the citizens, both in their role as legitimate owners of information managed by the state, and in their role as consumers. In this second case, by allowing the growth of a widespread availability of free software not containing *spy code* able to put at risk privacy and individual freedoms.</p>
26024
26025 <p>In this sense, the Bill is limited to establishing the conditions under which the state bodies will obtain software in the future, that is, in a way compatible with these basic principles.</p>
26026
26027
26028 <p>From reading the Bill it will be clear that once passed:<br>
26029 <li>the law does not forbid the production of proprietary software</li>
26030 <li>the law does not forbid the sale of proprietary software</li>
26031 <li>the law does not specify which concrete software to use</li>
26032 <li>the law does not dictate the supplier from whom software will be bought</li>
26033 <li>the law does not limit the terms under which a software product can be licensed.</li>
26034
26035 </p>
26036
26037 <p>What the Bill does express clearly, is that, for software to be acceptable for the state it is not enough that it is technically capable of fulfilling a task, but that further the contractual conditions must satisfy a series of requirements regarding the license, without which the State cannot guarantee the citizen adequate processing of his data, watching over its integrity, confidentiality, and accessibility throughout time, as these are very critical aspects for its normal functioning.</p>
26038
26039 <p>We agree, Mr. Gonzalez, that information and communication technology have a significant impact on the quality of life of the citizens (whether it be positive or negative). We surely also agree that the basic values I have pointed out above are fundamental in a democratic state like Peru. So we are very interested to know of any other way of guaranteeing these principles, other than through the use of free software in the terms defined by the Bill.</p>
26040
26041 <p>As for the observations you have made, we will now go on to analyze them in detail:</p>
26042
26043 <p>Firstly, you point out that: "1. The bill makes it compulsory for all public bodies to use only free software, that is to say open source software, which breaches the principles of equality before the law, that of non-discrimination and the right of free private enterprise, freedom of industry and of contract, protected by the constitution."</p>
26044
26045 <p>This understanding is in error. The Bill in no way affects the rights you list; it limits itself entirely to establishing conditions for the use of software on the part of state institutions, without in any way meddling in private sector transactions. It is a well established principle that the State does not enjoy the wide spectrum of contractual freedom of the private sector, as it is limited in its actions precisely by the requirement for transparency of public acts; and in this sense, the preservation of the greater common interest must prevail when legislating on the matter.</p>
26046
26047 <p>The Bill protects equality under the law, since no natural or legal person is excluded from the right of offering these goods to the State under the conditions defined in the Bill and without more limitations than those established by the Law of State Contracts and Purchasing (T.U.O. by Supreme Decree No. 012-2001-PCM).</p>
26048
26049 <p>The Bill does not introduce any discrimination whatever, since it only establishes *how* the goods have to be provided (which is a state power) and not *who* has to provide them (which would effectively be discriminatory, if restrictions based on national origin, race religion, ideology, sexual preference etc. were imposed). On the contrary, the Bill is decidedly antidiscriminatory. This is so because by defining with no room for doubt the conditions for the provision of software, it prevents state bodies from using software which has a license including discriminatory conditions.</p>
26050
26051 <p>It should be obvious from the preceding two paragraphs that the Bill does not harm free private enterprise, since the latter can always choose under what conditions it will produce software; some of these will be acceptable to the State, and others will not be since they contradict the guarantee of the basic principles listed above. This free initiative is of course compatible with the freedom of industry and freedom of contract (in the limited form in which the State can exercise the latter). Any private subject can produce software under the conditions which the State requires, or can refrain from doing so. Nobody is forced to adopt a model of production, but if they wish to provide software to the State, they must provide the mechanisms which guarantee the basic principles, and which are those described in the Bill.</p>
26052
26053 <p>By way of an example: nothing in the text of the Bill would prevent your company offering the State bodies an office "suite", under the conditions defined in the Bill and setting the price that you consider satisfactory. If you did not, it would not be due to restrictions imposed by the law, but to business decisions relative to the method of commercializing your products, decisions with which the State is not involved.</p>
26054
26055 <p>To continue; you note that:" 2. The bill, by making the use of open source software compulsory, would establish discriminatory and non competitive practices in the contracting and purchasing by public bodies..."</p>
26056
26057 <p>This statement is just a reiteration of the previous one, and so the response can be found above. However, let us concern ourselves for a moment with your comment regarding "non-competitive ... practices."</p>
26058
26059 <p>Of course, in defining any kind of purchase, the buyer sets conditions which relate to the proposed use of the good or service. From the start, this excludes certain manufacturers from the possibility of competing, but does not exclude them "a priori", but rather based on a series of principles determined by the autonomous will of the purchaser, and so the process takes place in conformance with the law. And in the Bill it is established that *no one* is excluded from competing as far as he guarantees the fulfillment of the basic principles.</p>
26060
26061 <p>Furthermore, the Bill *stimulates* competition, since it tends to generate a supply of software with better conditions of usability, and to better existing work, in a model of continuous improvement.</p>
26062
26063 <p>On the other hand, the central aspect of competivity is the chance to provide better choices to the consumer. Now, it is impossible to ignore the fact that marketing does not play a neutral role when the product is offered on the market (since accepting the opposite would lead one to suppose that firms' expenses in marketing lack any sense), and that therefore a significant expense under this heading can influence the decisions of the purchaser. This influence of marketing is in large measure reduced by the bill that we are backing, since the choice within the framework proposed is based on the *technical merits* of the product and not on the effort put into commercialization by the producer; in this sense, competitiveness is increased, since the smallest software producer can compete on equal terms with the most powerful corporations.</p>
26064
26065 <p>It is necessary to stress that there is no position more anti-competitive than that of the big software producers, which frequently abuse their dominant position, since in innumerable cases they propose as a solution to problems raised by users: "update your software to the new version" (at the user's expense, naturally); furthermore, it is common to find arbitrary cessation of technical help for products, which, in the provider's judgment alone, are "old"; and so, to receive any kind of technical assistance, the user finds himself forced to migrate to new versions (with non-trivial costs, especially as changes in hardware platform are often involved). And as the whole infrastructure is based on proprietary data formats, the user stays "trapped" in the need to continue using products from the same supplier, or to make the huge effort to change to another environment (probably also proprietary).</p>
26066
26067 <p>You add: "3. So, by compelling the State to favor a business model based entirely on open source, the bill would only discourage the local and international manufacturing companies, which are the ones which really undertake important expenditures, create a significant number of direct and indirect jobs, as well as contributing to the GNP, as opposed to a model of open source software which tends to have an ever weaker economic impact, since it mainly creates jobs in the service sector."</p>
26068
26069 <p>I do not agree with your statement. Partly because of what you yourself point out in paragraph 6 of your letter, regarding the relative weight of services in the context of software use. This contradiction alone would invalidate your position. The service model, adopted by a large number of companies in the software industry, is much larger in economic terms, and with a tendency to increase, than the licensing of programs.</p>
26070
26071 <p>On the other hand, the private sector of the economy has the widest possible freedom to choose the economic model which best suits its interests, even if this freedom of choice is often obscured subliminally by the disproportionate expenditure on marketing by the producers of proprietary software.</p>
26072
26073 <p>In addition, a reading of your opinion would lead to the conclusion that the State market is crucial and essential for the proprietary software industry, to such a point that the choice made by the State in this bill would completely eliminate the market for these firms. If that is true, we can deduce that the State must be subsidizing the proprietary software industry. In the unlikely event that this were true, the State would have the right to apply the subsidies in the area it considered of greatest social value; it is undeniable, in this improbable hypothesis, that if the State decided to subsidize software, it would have to do so choosing the free over the proprietary, considering its social effect and the rational use of taxpayers money.</p>
26074
26075 <p>In respect of the jobs generated by proprietary software in countries like ours, these mainly concern technical tasks of little aggregate value; at the local level, the technicians who provide support for proprietary software produced by transnational companies do not have the possibility of fixing bugs, not necessarily for lack of technical capability or of talent, but because they do not have access to the source code to fix it. With free software one creates more technically qualified employment and a framework of free competence where success is only tied to the ability to offer good technical support and quality of service, one stimulates the market, and one increases the shared fund of knowledge, opening up alternatives to generate services of greater total value and a higher quality level, to the benefit of all involved: producers, service organizations, and consumers.</p>
26076
26077 <p>It is a common phenomenon in developing countries that local software industries obtain the majority of their takings in the service sector, or in the creation of "ad hoc" software. Therefore, any negative impact that the application of the Bill might have in this sector will be more than compensated by a growth in demand for services (as long as these are carried out to high quality standards). If the transnational software companies decide not to compete under these new rules of the game, it is likely that they will undergo some decrease in takings in terms of payment for licenses; however, considering that these firms continue to allege that much of the software used by the State has been illegally copied, one can see that the impact will not be very serious. Certainly, in any case their fortune will be determined by market laws, changes in which cannot be avoided; many firms traditionally associated with proprietary software have already set out on the road (supported by copious expense) of providing services associated with free software, which shows that the models are not mutually exclusive.</p>
26078
26079 <p>With this bill the State is deciding that it needs to preserve certain fundamental values. And it is deciding this based on its sovereign power, without affecting any of the constitutional guarantees. If these values could be guaranteed without having to choose a particular economic model, the effects of the law would be even more beneficial. In any case, it should be clear that the State does not choose an economic model; if it happens that there only exists one economic model capable of providing software which provides the basic guarantee of these principles, this is because of historical circumstances, not because of an arbitrary choice of a given model.</p>
26080
26081 <p>Your letter continues: "4. The bill imposes the use of open source software without considering the dangers that this can bring from the point of view of security, guarantee, and possible violation of the intellectual property rights of third parties."</p>
26082
26083 <p>Alluding in an abstract way to "the dangers this can bring", without specifically mentioning a single one of these supposed dangers, shows at the least some lack of knowledge of the topic. So, allow me to enlighten you on these points.</p>
26084
26085 <p>On security:</p>
26086
26087 <p>National security has already been mentioned in general terms in the initial discussion of the basic principles of the bill. In more specific terms, relative to the security of the software itself, it is well known that all software (whether proprietary or free) contains errors or "bugs" (in programmers' slang). But it is also well known that the bugs in free software are fewer, and are fixed much more quickly, than in proprietary software. It is not in vain that numerous public bodies responsible for the IT security of state systems in developed countries require the use of free software for the same conditions of security and efficiency.</p>
26088
26089 <p>What is impossible to prove is that proprietary software is more secure than free, without the public and open inspection of the scientific community and users in general. This demonstration is impossible because the model of proprietary software itself prevents this analysis, so that any guarantee of security is based only on promises of good intentions (biased, by any reckoning) made by the producer itself, or its contractors.</p>
26090
26091 <p>It should be remembered that in many cases, the licensing conditions include Non-Disclosure clauses which prevent the user from publicly revealing security flaws found in the licensed proprietary product.</p>
26092
26093 <p>In respect of the guarantee:</p>
26094
26095 <p>As you know perfectly well, or could find out by reading the "End User License Agreement" of the products you license, in the great majority of cases the guarantees are limited to replacement of the storage medium in case of defects, but in no case is compensation given for direct or indirect damages, loss of profits, etc... If as a result of a security bug in one of your products, not fixed in time by yourselves, an attacker managed to compromise crucial State systems, what guarantees, reparations and compensation would your company make in accordance with your licensing conditions? The guarantees of proprietary software, inasmuch as programs are delivered ``AS IS'', that is, in the state in which they are, with no additional responsibility of the provider in respect of function, in no way differ from those normal with free software.</p>
26096
26097 <p>On Intellectual Property:</p>
26098
26099 <p>Questions of intellectual property fall outside the scope of this bill, since they are covered by specific other laws. The model of free software in no way implies ignorance of these laws, and in fact the great majority of free software is covered by copyright. In reality, the inclusion of this question in your observations shows your confusion in respect of the legal framework in which free software is developed. The inclusion of the intellectual property of others in works claimed as one's own is not a practice that has been noted in the free software community; whereas, unfortunately, it has been in the area of proprietary software. As an example, the condemnation by the Commercial Court of Nanterre, France, on 27th September 2001 of Microsoft Corp. to a penalty of 3 million francs in damages and interest, for violation of intellectual property (piracy, to use the unfortunate term that your firm commonly uses in its publicity).</p>
26100
26101 <p>You go on to say that: "The bill uses the concept of open source software incorrectly, since it does not necessarily imply that the software is free or of zero cost, and so arrives at mistaken conclusions regarding State savings, with no cost-benefit analysis to validate its position."</p>
26102
26103 <p>This observation is wrong; in principle, freedom and lack of cost are orthogonal concepts: there is software which is proprietary and charged for (for example, MS Office), software which is proprietary and free of charge (MS Internet Explorer), software which is free and charged for (Red Hat, SuSE etc GNU/Linux distributions), software which is free and not charged for (Apache, Open Office, Mozilla), and even software which can be licensed in a range of combinations (MySQL).</p>
26104
26105 <p>Certainly free software is not necessarily free of charge. And the text of the bill does not state that it has to be so, as you will have noted after reading it. The definitions included in the Bill state clearly *what* should be considered free software, at no point referring to freedom from charges. Although the possibility of savings in payments for proprietary software licenses are mentioned, the foundations of the bill clearly refer to the fundamental guarantees to be preserved and to the stimulus to local technological development. Given that a democratic State must support these principles, it has no other choice than to use software with publicly available source code, and to exchange information only in standard formats.</p>
26106
26107 <p>If the State does not use software with these characteristics, it will be weakening basic republican principles. Luckily, free software also implies lower total costs; however, even given the hypothesis (easily disproved) that it was more expensive than proprietary software, the simple existence of an effective free software tool for a particular IT function would oblige the State to use it; not by command of this Bill, but because of the basic principles we enumerated at the start, and which arise from the very essence of the lawful democratic State.</p>
26108
26109 <p>You continue: "6. It is wrong to think that Open Source Software is free of charge. Research by the Gartner Group (an important investigator of the technological market recognized at world level) has shown that the cost of purchase of software (operating system and applications) is only 8% of the total cost which firms and institutions take on for a rational and truly beneficial use of the technology. The other 92% consists of: installation costs, enabling, support, maintenance, administration, and down-time."</p>
26110
26111 <p>This argument repeats that already given in paragraph 5 and partly contradicts paragraph 3. For the sake of brevity we refer to the comments on those paragraphs. However, allow me to point out that your conclusion is logically false: even if according to Gartner Group the cost of software is on average only 8% of the total cost of use, this does not in any way deny the existence of software which is free of charge, that is, with a licensing cost of zero.</p>
26112
26113 <p>In addition, in this paragraph you correctly point out that the service components and losses due to down-time make up the largest part of the total cost of software use, which, as you will note, contradicts your statement regarding the small value of services suggested in paragraph 3. Now the use of free software contributes significantly to reduce the remaining life-cycle costs. This reduction in the costs of installation, support etc. can be noted in several areas: in the first place, the competitive service model of free software, support and maintenance for which can be freely contracted out to a range of suppliers competing on the grounds of quality and low cost. This is true for installation, enabling, and support, and in large part for maintenance. In the second place, due to the reproductive characteristics of the model, maintenance carried out for an application is easily replicable, without incurring large costs (that is, without paying more than once for the same thing) since modifications, if one wishes, can be incorporated in the common fund of knowledge. Thirdly, the huge costs caused by non-functioning software ("blue screens of death", malicious code such as virus, worms, and trojans, exceptions, general protection faults and other well-known problems) are reduced considerably by using more stable software; and it is well known that one of the most notable virtues of free software is its stability.</p>
26114
26115 <p>You further state that: "7. One of the arguments behind the bill is the supposed freedom from costs of open-source software, compared with the costs of commercial software, without taking into account the fact that there exist types of volume licensing which can be highly advantageous for the State, as has happened in other countries."</p>
26116
26117 <p>I have already pointed out that what is in question is not the cost of the software but the principles of freedom of information, accessibility, and security. These arguments have been covered extensively in the preceding paragraphs to which I would refer you.</p>
26118
26119 <p>On the other hand, there certainly exist types of volume licensing (although unfortunately proprietary software does not satisfy the basic principles). But as you correctly pointed out in the immediately preceding paragraph of your letter, they only manage to reduce the impact of a component which makes up no more than 8% of the total.</p>
26120
26121 <p>You continue: "8. In addition, the alternative adopted by the bill (I) is clearly more expensive, due to the high costs of software migration, and (II) puts at risk compatibility and interoperability of the IT platforms within the State, and between the State and the private sector, given the hundreds of versions of open source software on the market."</p>
26122
26123 <p>Let us analyze your statement in two parts. Your first argument, that migration implies high costs, is in reality an argument in favor of the Bill. Because the more time goes by, the more difficult migration to another technology will become; and at the same time, the security risks associated with proprietary software will continue to increase. In this way, the use of proprietary systems and formats will make the State ever more dependent on specific suppliers. Once a policy of using free software has been established (which certainly, does imply some cost) then on the contrary migration from one system to another becomes very simple, since all data is stored in open formats. On the other hand, migration to an open software context implies no more costs than migration between two different proprietary software contexts, which invalidates your argument completely.</p>
26124
26125 <p>The second argument refers to "problems in interoperability of the IT platforms within the State, and between the State and the private sector" This statement implies a certain lack of knowledge of the way in which free software is built, which does not maximize the dependence of the user on a particular platform, as normally happens in the realm of proprietary software. Even when there are multiple free software distributions, and numerous programs which can be used for the same function, interoperability is guaranteed as much by the use of standard formats, as required by the bill, as by the possibility of creating interoperable software given the availability of the source code.</p>
26126
26127 <p>You then say that: "9. The majority of open source code does not offer adequate levels of service nor the guarantee from recognized manufacturers of high productivity on the part of the users, which has led various public organizations to retract their decision to go with an open source software solution and to use commercial software in its place."</p>
26128
26129 <p>This observation is without foundation. In respect of the guarantee, your argument was rebutted in the response to paragraph 4. In respect of support services, it is possible to use free software without them (just as also happens with proprietary software), but anyone who does need them can obtain support separately, whether from local firms or from international corporations, again just as in the case of proprietary software.</p>
26130
26131 <p>On the other hand, it would contribute greatly to our analysis if you could inform us about free software projects *established* in public bodies which have already been abandoned in favor of proprietary software. We know of a good number of cases where the opposite has taken place, but not know of any where what you describe has taken place.</p>
26132
26133 <p>You continue by observing that: "10. The bill discourages the creativity of the Peruvian software industry, which invoices 40 million US$/year, exports 4 million US$ (10th in ranking among non-traditional exports, more than handicrafts) and is a source of highly qualified employment. With a law that encourages the use of open source, software programmers lose their intellectual property rights and their main source of payment."</p>
26134
26135 <p>It is clear enough that nobody is forced to commercialize their code as free software. The only thing to take into account is that if it is not free software, it cannot be sold to the public sector. This is not in any case the main market for the national software industry. We covered some questions referring to the influence of the Bill on the generation of employment which would be both highly technically qualified and in better conditions for competition above, so it seems unnecessary to insist on this point.</p>
26136
26137 <p>What follows in your statement is incorrect. On the one hand, no author of free software loses his intellectual property rights, unless he expressly wishes to place his work in the public domain. The free software movement has always been very respectful of intellectual property, and has generated widespread public recognition of its authors. Names like those of Richard Stallman, Linus Torvalds, Guido van Rossum, Larry Wall, Miguel de Icaza, Andrew Tridgell, Theo de Raadt, Andrea Arcangeli, Bruce Perens, Darren Reed, Alan Cox, Eric Raymond, and many others, are recognized world-wide for their contributions to the development of software that is used today by millions of people throughout the world. On the other hand, to say that the rewards for authors rights make up the main source of payment of Peruvian programmers is in any case a guess, in particular since there is no proof to this effect, nor a demonstration of how the use of free software by the State would influence these payments.</p>
26138
26139 <p>You go on to say that: "11. Open source software, since it can be distributed without charge, does not allow the generation of income for its developers through exports. In this way, the multiplier effect of the sale of software to other countries is weakened, and so in turn is the growth of the industry, while Government rules ought on the contrary to stimulate local industry."</p>
26140
26141 <p>This statement shows once again complete ignorance of the mechanisms of and market for free software. It tries to claim that the market of sale of non- exclusive rights for use (sale of licenses) is the only possible one for the software industry, when you yourself pointed out several paragraphs above that it is not even the most important one. The incentives that the bill offers for the growth of a supply of better qualified professionals, together with the increase in experience that working on a large scale with free software within the State will bring for Peruvian technicians, will place them in a highly competitive position to offer their services abroad.</p>
26142
26143 <p>You then state that: "12. In the Forum, the use of open source software in education was discussed, without mentioning the complete collapse of this initiative in a country like Mexico, where precisely the State employees who founded the project now state that open source software did not make it possible to offer a learning experience to pupils in the schools, did not take into account the capability at a national level to give adequate support to the platform, and that the software did not and does not allow for the levels of platform integration that now exist in schools."</p>
26144
26145 <p>In fact Mexico has gone into reverse with the Red Escolar (Schools Network) project. This is due precisely to the fact that the driving forces behind the Mexican project used license costs as their main argument, instead of the other reasons specified in our project, which are far more essential. Because of this conceptual mistake, and as a result of the lack of effective support from the SEP (Secretary of State for Public Education), the assumption was made that to implant free software in schools it would be enough to drop their software budget and send them a CD ROM with Gnu/Linux instead. Of course this failed, and it couldn't have been otherwise, just as school laboratories fail when they use proprietary software and have no budget for implementation and maintenance. That's exactly why our bill is not limited to making the use of free software mandatory, but recognizes the need to create a viable migration plan, in which the State undertakes the technical transition in an orderly way in order to then enjoy the advantages of free software.</p>
26146
26147 <p>You end with a rhetorical question: "13. If open source software satisfies all the requirements of State bodies, why do you need a law to adopt it? Shouldn't it be the market which decides freely which products give most benefits or value?"</p>
26148
26149 <p>We agree that in the private sector of the economy, it must be the market that decides which products to use, and no state interference is permissible there. However, in the case of the public sector, the reasoning is not the same: as we have already established, the state archives, handles, and transmits information which does not belong to it, but which is entrusted to it by citizens, who have no alternative under the rule of law. As a counterpart to this legal requirement, the State must take extreme measures to safeguard the integrity, confidentiality, and accessibility of this information. The use of proprietary software raises serious doubts as to whether these requirements can be fulfilled, lacks conclusive evidence in this respect, and so is not suitable for use in the public sector.</p>
26150
26151 <p>The need for a law is based, firstly, on the realization of the fundamental principles listed above in the specific area of software; secondly, on the fact that the State is not an ideal homogeneous entity, but made up of multiple bodies with varying degrees of autonomy in decision making. Given that it is inappropriate to use proprietary software, the fact of establishing these rules in law will prevent the personal discretion of any state employee from putting at risk the information which belongs to citizens. And above all, because it constitutes an up-to-date reaffirmation in relation to the means of management and communication of information used today, it is based on the republican principle of openness to the public.</p>
26152
26153 <p>In conformance with this universally accepted principle, the citizen has the right to know all information held by the State and not covered by well- founded declarations of secrecy based on law. Now, software deals with information and is itself information. Information in a special form, capable of being interpreted by a machine in order to execute actions, but crucial information all the same because the citizen has a legitimate right to know, for example, how his vote is computed or his taxes calculated. And for that he must have free access to the source code and be able to prove to his satisfaction the programs used for electoral computations or calculation of his taxes.</p>
26154
26155 <p>I wish you the greatest respect, and would like to repeat that my office will always be open for you to expound your point of view to whatever level of detail you consider suitable.</p>
26156
26157 <p>Cordially,<br>
26158 DR. EDGAR DAVID VILLANUEVA NUÑEZ<br>
26159 Congressman of the Republic of Perú.</p>
26160 </blockquote>
26161
26162 </div>
26163 <div class="tags">
26164
26165
26166 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>.
26167
26168
26169 </div>
26170 </div>
26171 <div class="padding"></div>
26172
26173 <div class="entry">
26174 <div class="title">
26175 <a href="http://people.skolelinux.org/pere/blog/Officeshots_still_going_strong.html">Officeshots still going strong</a>
26176 </div>
26177 <div class="date">
26178 25th December 2010
26179 </div>
26180 <div class="body">
26181 <p>Half a year ago I
26182 <a href="http://people.skolelinux.org/pere/blog/Officeshots_taking_shape.html">wrote
26183 a bit</a> about <a href="http://www.officeshots.org/">OfficeShots</a>,
26184 a web service to allow anyone to test how ODF documents are handled by
26185 the different programs reading and writing the ODF format.</p>
26186
26187 <p>I just had a look at the service, and it seem to be going strong.
26188 Very interesting to see the results reported in the gallery, how
26189 different Office implementations handle different ODF features. Sad
26190 to see that KOffice was not doing it very well, and happy to see that
26191 LibreOffice has been tested already (but sadly not listed as a option
26192 for OfficeShots users yet). I am glad to see that the ODF community
26193 got such a great test tool available.</p>
26194
26195 </div>
26196 <div class="tags">
26197
26198
26199 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>.
26200
26201
26202 </div>
26203 </div>
26204 <div class="padding"></div>
26205
26206 <div class="entry">
26207 <div class="title">
26208 <a href="http://people.skolelinux.org/pere/blog/How_to_test_if_a_laptop_is_working_with_Linux.html">How to test if a laptop is working with Linux</a>
26209 </div>
26210 <div class="date">
26211 22nd December 2010
26212 </div>
26213 <div class="body">
26214 <p>The last few days I have spent at work here at the <a
26215 href="http://www.uio.no/">University of Oslo</a> testing if the new
26216 batch of computers will work with Linux. Every year for the last few
26217 years the university have organised shared bid of a few thousand
26218 computers, and this year HP won the bid. Two different desktops and
26219 five different laptops are on the list this year. We in the UNIX
26220 group want to know which one of these computers work well with RHEL
26221 and Ubuntu, the two Linux distributions we currently handle at the
26222 university.</p>
26223
26224 <p>My test method is simple, and I share it here to get feedback and
26225 perhaps inspire others to test hardware as well. To test, I PXE
26226 install the OS version of choice, and log in as my normal user and run
26227 a few applications and plug in selected pieces of hardware. When
26228 something fail, I make a note about this in the test matrix and move
26229 on. If I have some spare time I try to report the bug to the OS
26230 vendor, but as I only have the machines for a short time, I rarely
26231 have the time to do this for all the problems I find.</p>
26232
26233 <p>Anyway, to get to the point of this post. Here is the simple tests
26234 I perform on a new model.</p>
26235
26236 <ul>
26237
26238 <li>Is PXE installation working? I'm testing with RHEL6, Ubuntu Lucid
26239 and Ubuntu Maverik at the moment. If I feel like it, I also test with
26240 RHEL5 and Debian Edu/Squeeze.</li>
26241
26242 <li>Is X.org working? If the graphical login screen show up after
26243 installation, X.org is working.</li>
26244
26245 <li>Is hardware accelerated OpenGL working? Running glxgears (in
26246 package mesa-utils on Ubuntu) and writing down the frames per second
26247 reported by the program.</li>
26248
26249 <li>Is sound working? With Gnome and KDE, a sound is played when
26250 logging in, and if I can hear this the test is successful. If there
26251 are several audio exits on the machine, I try them all and check if
26252 the Gnome/KDE audio mixer can control where to send the sound. I
26253 normally test this by playing
26254 <a href="http://www.nuug.no/aktiviteter/20101012-chef/ ">a HTML5
26255 video</a> in Firefox/Iceweasel.</li>
26256
26257 <li>Is the USB subsystem working? I test this by plugging in a USB
26258 memory stick and see if Gnome/KDE notices this.</li>
26259
26260 <li>Is the CD/DVD player working? I test this by inserting any CD/DVD
26261 I have lying around, and see if Gnome/KDE notices this.</li>
26262
26263 <li>Is any built in camera working? Test using cheese, and see if a
26264 picture from the v4l device show up.</li>
26265
26266 <li>Is bluetooth working? Use the Gnome/KDE browsing tool to see if
26267 any bluetooth devices are discovered. In my office, I normally see a
26268 few.</li>
26269
26270 <li>For laptops, is the SD or Compaq Flash reader working. I have
26271 memory modules lying around, and stick them in and see if Gnome/KDE
26272 notice this.</li>
26273
26274 <li>For laptops, is suspend/hibernate working? I'm testing if the
26275 special button work, and if the laptop continue to work after
26276 resume.</li>
26277
26278 <li>For laptops, is the extra buttons working, like audio level,
26279 adjusting background light, switching on/off external video output,
26280 switching on/off wifi, bluetooth, etc? The set of buttons differ from
26281 laptop to laptop, so I just write down which are working and which are
26282 not.</li>
26283
26284 <li>Some laptops have smart card readers, finger print readers,
26285 acceleration sensors etc. I rarely test these, as I do not know how
26286 to quickly test if they are working or not, so I only document their
26287 existence.</li>
26288
26289 </ul>
26290
26291 <p>By now I suspect you are really curious what the test results are
26292 for the HP machines I am testing. I'm not done yet, so I will report
26293 the test results later. For now I can report that HP 8100 Elite work
26294 fine, and hibernation fail with HP EliteBook 8440p on Ubuntu Lucid,
26295 and audio fail on RHEL6. Ubuntu Maverik worked with 8440p. As you
26296 can see, I have most machines left to test. One interesting
26297 observation is that Ubuntu Lucid has almost twice the frame rate than
26298 RHEL6 with glxgears. No idea why.</p>
26299
26300 </div>
26301 <div class="tags">
26302
26303
26304 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
26305
26306
26307 </div>
26308 </div>
26309 <div class="padding"></div>
26310
26311 <div class="entry">
26312 <div class="title">
26313 <a href="http://people.skolelinux.org/pere/blog/Some_thoughts_on_BitCoins.html">Some thoughts on BitCoins</a>
26314 </div>
26315 <div class="date">
26316 11th December 2010
26317 </div>
26318 <div class="body">
26319 <p>As I continue to explore
26320 <a href="http://www.bitcoin.org/">BitCoin</a>, I've starting to wonder
26321 what properties the system have, and how it will be affected by laws
26322 and regulations here in Norway. Here are some random notes.</p>
26323
26324 <p>One interesting thing to note is that since the transactions are
26325 verified using a peer to peer network, all details about a transaction
26326 is known to everyone. This means that if a BitCoin address has been
26327 published like I did with mine in my initial post about BitCoin, it is
26328 possible for everyone to see how many BitCoins have been transfered to
26329 that address. There is even a web service to look at the details for
26330 all transactions. There I can see that my address
26331 <a href="http://blockexplorer.com/address/15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a>
26332 have received 16.06 Bitcoin, the
26333 <a href="http://blockexplorer.com/address/1LfdGnGuWkpSJgbQySxxCWhv8MHqvwst3">1LfdGnGuWkpSJgbQySxxCWhv8MHqvwst3</a>
26334 address of Simon Phipps have received 181.97 BitCoin and the address
26335 <a href="http://blockexplorer.com/address/1MCwBbhNGp5hRm5rC1Aims2YFRe2SXPYKt">1MCwBbhNGp5hRm5rC1Aims2YFRe2SXPYKt</A>
26336 of EFF have received 2447.38 BitCoins so far. Thank you to each and
26337 every one of you that donated bitcoins to support my activity. The
26338 fact that anyone can see how much money was transfered to a given
26339 address make it more obvious why the BitCoin community recommend to
26340 generate and hand out a new address for each transaction. I'm told
26341 there is no way to track which addresses belong to a given person or
26342 organisation without the person or organisation revealing it
26343 themselves, as Simon, EFF and I have done.</p>
26344
26345 <p>In Norway, and in most other countries, there are laws and
26346 regulations limiting how much money one can transfer across the border
26347 without declaring it. There are money laundering, tax and accounting
26348 laws and regulations I would expect to apply to the use of BitCoin.
26349 If the Skolelinux foundation
26350 (<a href="http://linuxiskolen.no/slxdebianlabs/donations.html">SLX
26351 Debian Labs</a>) were to accept donations in BitCoin in addition to
26352 normal bank transfers like EFF is doing, how should this be accounted?
26353 Given that it is impossible to know if money can cross the border or
26354 not, should everything or nothing be declared? What exchange rate
26355 should be used when calculating taxes? Would receivers have to pay
26356 income tax if the foundation were to pay Skolelinux contributors in
26357 BitCoin? I have no idea, but it would be interesting to know.</p>
26358
26359 <p>For a currency to be useful and successful, it must be trusted and
26360 accepted by a lot of users. It must be possible to get easy access to
26361 the currency (as a wage or using currency exchanges), and it must be
26362 easy to spend it. At the moment BitCoin seem fairly easy to get
26363 access to, but there are very few places to spend it. I am not really
26364 a regular user of any of the vendor types currently accepting BitCoin,
26365 so I wonder when my kind of shop would start accepting BitCoins. I
26366 would like to buy electronics, travels and subway tickets, not herbs
26367 and books. :) The currency is young, and this will improve over time
26368 if it become popular, but I suspect regular banks will start to lobby
26369 to get BitCoin declared illegal if it become popular. I'm sure they
26370 will claim it is helping fund terrorism and money laundering (which
26371 probably would be true, as is any currency in existence), but I
26372 believe the problems should be solved elsewhere and not by blaming
26373 currencies.</p>
26374
26375 <p>The process of creating new BitCoins is called mining, and it is
26376 CPU intensive process that depend on a bit of luck as well (as one is
26377 competing against all the other miners currently spending CPU cycles
26378 to see which one get the next lump of cash). The "winner" get 50
26379 BitCoin when this happen. Yesterday I came across the obvious way to
26380 join forces to increase ones changes of getting at least some coins,
26381 by coordinating the work on mining BitCoins across several machines
26382 and people, and sharing the result if one is lucky and get the 50
26383 BitCoins. Check out
26384 <a href="http://www.bluishcoder.co.nz/bitcoin-pool/">BitCoin Pool</a>
26385 if this sounds interesting. I have not had time to try to set up a
26386 machine to participate there yet, but have seen that running on ones
26387 own for a few days have not yield any BitCoins througth mining
26388 yet.</p>
26389
26390 <p>Update 2010-12-15: Found an <a
26391 href="http://inertia.posterous.com/reply-to-the-underground-economist-why-bitcoi">interesting
26392 criticism</a> of bitcoin. Not quite sure how valid it is, but thought
26393 it was interesting to read. The arguments presented seem to be
26394 equally valid for gold, which was used as a currency for many years.</p>
26395
26396 </div>
26397 <div class="tags">
26398
26399
26400 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin</a>, <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/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>.
26401
26402
26403 </div>
26404 </div>
26405 <div class="padding"></div>
26406
26407 <div class="entry">
26408 <div class="title">
26409 <a href="http://people.skolelinux.org/pere/blog/Now_accepting_bitcoins___anonymous_and_distributed_p2p_crypto_money.html">Now accepting bitcoins - anonymous and distributed p2p crypto-money</a>
26410 </div>
26411 <div class="date">
26412 10th December 2010
26413 </div>
26414 <div class="body">
26415 <p>With this weeks lawless
26416 <a href="http://www.salon.com/news/opinion/glenn_greenwald/2010/12/06/wikileaks/index.html">governmental
26417 attacks</a> on Wikileak and
26418 <a href="http://www.salon.com/technology/dan_gillmor/2010/12/06/war_on_speech">free
26419 speech</a>, it has become obvious that PayPal, visa and mastercard can
26420 not be trusted to handle money transactions.
26421 A blog post from
26422 <a href="http://webmink.com/2010/12/06/now-accepting-bitcoin/">Simon
26423 Phipps on bitcoin</a> reminded me about a project that a friend of
26424 mine mentioned earlier. I decided to follow Simon's example, and get
26425 involved with <a href="http://www.bitcoin.org/">BitCoin</a>. I got
26426 some help from my friend to get it all running, and he even handed me
26427 some bitcoins to get started. I even donated a few bitcoins to Simon
26428 for helping me remember BitCoin.</p>
26429
26430 <p>So, what is bitcoins, you probably wonder? It is a digital
26431 crypto-currency, decentralised and handled using peer-to-peer
26432 networks. It allows anonymous transactions and prohibits central
26433 control over the transactions, making it impossible for governments
26434 and companies alike to block donations and other transactions. The
26435 source is free software, and while the key dependency wxWidgets 2.9
26436 for the graphical user interface is missing in Debian, the command
26437 line client builds just fine. Hopefully Jonas
26438 <a href="http://bugs.debian.org/578157">will get the package into
26439 Debian</a> soon.</p>
26440
26441 <p>Bitcoins can be converted to other currencies, like USD and EUR.
26442 There are <a href="http://www.bitcoin.org/trade">companies accepting
26443 bitcoins</a> when selling services and goods, and there are even
26444 currency "stock" markets where the exchange rate is decided. There
26445 are not many users so far, but the concept seems promising. If you
26446 want to get started and lack a friend with any bitcoins to spare,
26447 you can even get
26448 <a href="https://freebitcoins.appspot.com/">some for free</a> (0.05
26449 bitcoin at the time of writing). Use
26450 <a href="http://www.bitcoinwatch.com/">BitcoinWatch</a> to keep an eye
26451 on the current exchange rates.</p>
26452
26453 <p>As an experiment, I have decided to set up bitcoind on one of my
26454 machines. If you want to support my activity, please send Bitcoin
26455 donations to the address
26456 <b>15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</b>. Thank you!</p>
26457
26458 </div>
26459 <div class="tags">
26460
26461
26462 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin</a>, <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/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>.
26463
26464
26465 </div>
26466 </div>
26467 <div class="padding"></div>
26468
26469 <div class="entry">
26470 <div class="title">
26471 <a href="http://people.skolelinux.org/pere/blog/Student_group_continue_the_work_on_my_Reprap_3D_printer.html">Student group continue the work on my Reprap 3D printer</a>
26472 </div>
26473 <div class="date">
26474 9th December 2010
26475 </div>
26476 <div class="body">
26477 <p>A few days ago, I was introduces to some students in the robot
26478 student assosiation <a href="http://www.robotica.no/">Robotica
26479 Osloensis</a> at the University of Oslo where I work, who planned to
26480 get their own 3D printer. They wanted to learn from me based on my
26481 work in the area. After having a short lunch meeting with them, I
26482 offered them to borrow my reprap kit, as I never had time to complete
26483 the build and this seem unlike to change any time soon. I look
26484 forward to see how this goes. This monday their volunteer driver
26485 picked up my kit and drove it to their lab, and tomorrow I am told the
26486 last exam is over so they can start work on getting the 3D printer
26487 operational.</p>
26488
26489 <p>The robotic group have already build several robots on their own,
26490 and seem capable of getting the reprap operational. I really look
26491 forward to being able to print all the cool 3D designs published on
26492 <a href="http://www.thingiverse.com/">Thingiverse</a>. I even got
26493 some 3D scans I got made during Dagen@IFI when one of the groups at
26494 the computer science department at the university demonstrated their
26495 very cool 3D scanner.</p>
26496
26497 </div>
26498 <div class="tags">
26499
26500
26501 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/reprap">reprap</a>.
26502
26503
26504 </div>
26505 </div>
26506 <div class="padding"></div>
26507
26508 <div class="entry">
26509 <div class="title">
26510 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_development_gathering_and_General_Assembly_for_FRiSK.html">Debian Edu development gathering and General Assembly for FRiSK</a>
26511 </div>
26512 <div class="date">
26513 29th November 2010
26514 </div>
26515 <div class="body">
26516 <p>On friday, the first Debian Edu / Skolelinux
26517 <a href="http://www.friprogramvareiskolen.no/Gathering/2010-12-03-05-Oslo">development
26518 gathering</a> in a long time take place here in Oslo, Norway. I
26519 really look forward to seeing all the good people working on the
26520 Squeeze release. The gathering is open for everyone interested in
26521 learning more about Debian Edu / Skolelinux.</p>
26522
26523 <p>On Saturday, the Norwegian member organization taking care of
26524 organizing these development gatherings, Fri Programvare i Skolen,
26525 will hold its
26526 <a href="http://friprogramvareiskolen.no/Genfors/2010">General Assembly
26527 for 2010</a>. Membership is open for all, and currently there are 388
26528 people registered as members. Last year 32 members cast their vote in
26529 the memberdb based election system. I hope more people find time to
26530 vote this year.</p>
26531
26532 </div>
26533 <div class="tags">
26534
26535
26536 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
26537
26538
26539 </div>
26540 </div>
26541 <div class="padding"></div>
26542
26543 <div class="entry">
26544 <div class="title">
26545 <a href="http://people.skolelinux.org/pere/blog/Why_isn_t_Debian_Edu_using_VLC_.html">Why isn't Debian Edu using VLC?</a>
26546 </div>
26547 <div class="date">
26548 27th November 2010
26549 </div>
26550 <div class="body">
26551 <p>In the latest issue of Linux Journal, the readers choices were
26552 presented, and the winner among the multimedia player were VLC.
26553 Personally, I like VLC, and it is my player of choice when I first try
26554 to play a video file or stream. Only if VLC fail will I drag out
26555 gmplayer to see if it can do better. The reason is mostly the failure
26556 model and trust. When VLC fail, it normally pop up a error message
26557 reporting the problem. When mplayer fail, it normally segfault or
26558 just hangs. The latter failure mode drain my trust in the program.<p>
26559
26560 <p>But even if VLC is my player of choice, we have choosen to use
26561 mplayer in <a href="http://www.skolelinux.org/">Debian
26562 Edu/Skolelinux</a>. The reason is simple. We need a good browser
26563 plugin to play web videos seamlessly, and the VLC browser plugin is
26564 not very good. For example, it lack in-line control buttons, so there
26565 is no way for the user to pause the video. Also, when I
26566 <a href="http://wiki.debian.org/DebianEdu/BrowserMultimedia">last
26567 tested the browser plugins</a> available in Debian, the VLC plugin
26568 failed on several video pages where mplayer based plugins worked. If
26569 the browser plugin for VLC was as good as the gecko-mediaplayer
26570 package (which uses mplayer), we would switch.</P>
26571
26572 <p>While VLC is a good player, its user interface is slightly
26573 annoying. The most annoying feature is its inconsistent use of
26574 keyboard shortcuts. When the player is in full screen mode, its
26575 shortcuts are different from when it is playing the video in a window.
26576 For example, space only work as pause when in full screen mode. I
26577 wish it had consisten shortcuts and that space also would work when in
26578 window mode. Another nice shortcut in gmplayer is [enter] to restart
26579 the current video. It is very nice when playing short videos from the
26580 web and want to restart it when new people arrive to have a look at
26581 what is going on.</p>
26582
26583 </div>
26584 <div class="tags">
26585
26586
26587 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</a>.
26588
26589
26590 </div>
26591 </div>
26592 <div class="padding"></div>
26593
26594 <div class="entry">
26595 <div class="title">
26596 <a href="http://people.skolelinux.org/pere/blog/Lenny__Squeeze_upgrades_of_the_Gnome_and_KDE_desktop__now_with_apt_get_autoremove.html">Lenny->Squeeze upgrades of the Gnome and KDE desktop, now with apt-get autoremove</a>
26597 </div>
26598 <div class="date">
26599 22nd November 2010
26600 </div>
26601 <div class="body">
26602 <p>Michael Biebl suggested to me on IRC, that I changed my automated
26603 upgrade testing of the
26604 <a href="http://people.skolelinux.org/~pere/debian-upgrade-testing/">Lenny
26605 Gnome and KDE Desktop</a> to do <tt>apt-get autoremove</tt> when using apt-get.
26606 This seem like a very good idea, so I adjusted by test scripts and
26607 can now present the updated result from today:</p>
26608
26609 <p>This is for Gnome:</p>
26610
26611 <p>Installed using apt-get, missing with aptitude</p>
26612
26613 <blockquote><p>
26614 apache2.2-bin
26615 aptdaemon
26616 baobab
26617 binfmt-support
26618 browser-plugin-gnash
26619 cheese-common
26620 cli-common
26621 cups-pk-helper
26622 dmz-cursor-theme
26623 empathy
26624 empathy-common
26625 freedesktop-sound-theme
26626 freeglut3
26627 gconf-defaults-service
26628 gdm-themes
26629 gedit-plugins
26630 geoclue
26631 geoclue-hostip
26632 geoclue-localnet
26633 geoclue-manual
26634 geoclue-yahoo
26635 gnash
26636 gnash-common
26637 gnome
26638 gnome-backgrounds
26639 gnome-cards-data
26640 gnome-codec-install
26641 gnome-core
26642 gnome-desktop-environment
26643 gnome-disk-utility
26644 gnome-screenshot
26645 gnome-search-tool
26646 gnome-session-canberra
26647 gnome-system-log
26648 gnome-themes-extras
26649 gnome-themes-more
26650 gnome-user-share
26651 gstreamer0.10-fluendo-mp3
26652 gstreamer0.10-tools
26653 gtk2-engines
26654 gtk2-engines-pixbuf
26655 gtk2-engines-smooth
26656 hamster-applet
26657 libapache2-mod-dnssd
26658 libapr1
26659 libaprutil1
26660 libaprutil1-dbd-sqlite3
26661 libaprutil1-ldap
26662 libart2.0-cil
26663 libboost-date-time1.42.0
26664 libboost-python1.42.0
26665 libboost-thread1.42.0
26666 libchamplain-0.4-0
26667 libchamplain-gtk-0.4-0
26668 libcheese-gtk18
26669 libclutter-gtk-0.10-0
26670 libcryptui0
26671 libdiscid0
26672 libelf1
26673 libepc-1.0-2
26674 libepc-common
26675 libepc-ui-1.0-2
26676 libfreerdp-plugins-standard
26677 libfreerdp0
26678 libgconf2.0-cil
26679 libgdata-common
26680 libgdata7
26681 libgdu-gtk0
26682 libgee2
26683 libgeoclue0
26684 libgexiv2-0
26685 libgif4
26686 libglade2.0-cil
26687 libglib2.0-cil
26688 libgmime2.4-cil
26689 libgnome-vfs2.0-cil
26690 libgnome2.24-cil
26691 libgnomepanel2.24-cil
26692 libgpod-common
26693 libgpod4
26694 libgtk2.0-cil
26695 libgtkglext1
26696 libgtksourceview2.0-common
26697 libmono-addins-gui0.2-cil
26698 libmono-addins0.2-cil
26699 libmono-cairo2.0-cil
26700 libmono-corlib2.0-cil
26701 libmono-i18n-west2.0-cil
26702 libmono-posix2.0-cil
26703 libmono-security2.0-cil
26704 libmono-sharpzip2.84-cil
26705 libmono-system2.0-cil
26706 libmtp8
26707 libmusicbrainz3-6
26708 libndesk-dbus-glib1.0-cil
26709 libndesk-dbus1.0-cil
26710 libopal3.6.8
26711 libpolkit-gtk-1-0
26712 libpt2.6.7
26713 libpython2.6
26714 librpm1
26715 librpmio1
26716 libsdl1.2debian
26717 libsrtp0
26718 libssh-4
26719 libtelepathy-farsight0
26720 libtelepathy-glib0
26721 libtidy-0.99-0
26722 media-player-info
26723 mesa-utils
26724 mono-2.0-gac
26725 mono-gac
26726 mono-runtime
26727 nautilus-sendto
26728 nautilus-sendto-empathy
26729 p7zip-full
26730 pkg-config
26731 python-aptdaemon
26732 python-aptdaemon-gtk
26733 python-axiom
26734 python-beautifulsoup
26735 python-bugbuddy
26736 python-clientform
26737 python-coherence
26738 python-configobj
26739 python-crypto
26740 python-cupshelpers
26741 python-elementtree
26742 python-epsilon
26743 python-evolution
26744 python-feedparser
26745 python-gdata
26746 python-gdbm
26747 python-gst0.10
26748 python-gtkglext1
26749 python-gtksourceview2
26750 python-httplib2
26751 python-louie
26752 python-mako
26753 python-markupsafe
26754 python-mechanize
26755 python-nevow
26756 python-notify
26757 python-opengl
26758 python-openssl
26759 python-pam
26760 python-pkg-resources
26761 python-pyasn1
26762 python-pysqlite2
26763 python-rdflib
26764 python-serial
26765 python-tagpy
26766 python-twisted-bin
26767 python-twisted-conch
26768 python-twisted-core
26769 python-twisted-web
26770 python-utidylib
26771 python-webkit
26772 python-xdg
26773 python-zope.interface
26774 remmina
26775 remmina-plugin-data
26776 remmina-plugin-rdp
26777 remmina-plugin-vnc
26778 rhythmbox-plugin-cdrecorder
26779 rhythmbox-plugins
26780 rpm-common
26781 rpm2cpio
26782 seahorse-plugins
26783 shotwell
26784 software-center
26785 system-config-printer-udev
26786 telepathy-gabble
26787 telepathy-mission-control-5
26788 telepathy-salut
26789 tomboy
26790 totem
26791 totem-coherence
26792 totem-mozilla
26793 totem-plugins
26794 transmission-common
26795 xdg-user-dirs
26796 xdg-user-dirs-gtk
26797 xserver-xephyr
26798 </p></blockquote>
26799
26800 <p>Installed using apt-get, removed with aptitude</p>
26801
26802 <blockquote><p>
26803 cheese
26804 ekiga
26805 eog
26806 epiphany-extensions
26807 evolution-exchange
26808 fast-user-switch-applet
26809 file-roller
26810 gcalctool
26811 gconf-editor
26812 gdm
26813 gedit
26814 gedit-common
26815 gnome-games
26816 gnome-games-data
26817 gnome-nettool
26818 gnome-system-tools
26819 gnome-themes
26820 gnuchess
26821 gucharmap
26822 guile-1.8-libs
26823 libavahi-ui0
26824 libdmx1
26825 libgalago3
26826 libgtk-vnc-1.0-0
26827 libgtksourceview2.0-0
26828 liblircclient0
26829 libsdl1.2debian-alsa
26830 libspeexdsp1
26831 libsvga1
26832 rhythmbox
26833 seahorse
26834 sound-juicer
26835 system-config-printer
26836 totem-common
26837 transmission-gtk
26838 vinagre
26839 vino
26840 </p></blockquote>
26841
26842 <p>Installed using aptitude, missing with apt-get</p>
26843
26844 <blockquote><p>
26845 gstreamer0.10-gnomevfs
26846 </p></blockquote>
26847
26848 <p>Installed using aptitude, removed with apt-get</p>
26849
26850 <blockquote><p>
26851 [nothing]
26852 </p></blockquote>
26853
26854 <p>This is for KDE:</p>
26855
26856 <p>Installed using apt-get, missing with aptitude</p>
26857
26858 <blockquote><p>
26859 ksmserver
26860 </p></blockquote>
26861
26862 <p>Installed using apt-get, removed with aptitude</p>
26863
26864 <blockquote><p>
26865 kwin
26866 network-manager-kde
26867 </p></blockquote>
26868
26869 <p>Installed using aptitude, missing with apt-get</p>
26870
26871 <blockquote><p>
26872 arts
26873 dolphin
26874 freespacenotifier
26875 google-gadgets-gst
26876 google-gadgets-xul
26877 kappfinder
26878 kcalc
26879 kcharselect
26880 kde-core
26881 kde-plasma-desktop
26882 kde-standard
26883 kde-window-manager
26884 kdeartwork
26885 kdeartwork-emoticons
26886 kdeartwork-style
26887 kdeartwork-theme-icon
26888 kdebase
26889 kdebase-apps
26890 kdebase-workspace
26891 kdebase-workspace-bin
26892 kdebase-workspace-data
26893 kdeeject
26894 kdelibs
26895 kdeplasma-addons
26896 kdeutils
26897 kdewallpapers
26898 kdf
26899 kfloppy
26900 kgpg
26901 khelpcenter4
26902 kinfocenter
26903 konq-plugins-l10n
26904 konqueror-nsplugins
26905 kscreensaver
26906 kscreensaver-xsavers
26907 ktimer
26908 kwrite
26909 libgle3
26910 libkde4-ruby1.8
26911 libkonq5
26912 libkonq5-templates
26913 libnetpbm10
26914 libplasma-ruby
26915 libplasma-ruby1.8
26916 libqt4-ruby1.8
26917 marble-data
26918 marble-plugins
26919 netpbm
26920 nuvola-icon-theme
26921 plasma-dataengines-workspace
26922 plasma-desktop
26923 plasma-desktopthemes-artwork
26924 plasma-runners-addons
26925 plasma-scriptengine-googlegadgets
26926 plasma-scriptengine-python
26927 plasma-scriptengine-qedje
26928 plasma-scriptengine-ruby
26929 plasma-scriptengine-webkit
26930 plasma-scriptengines
26931 plasma-wallpapers-addons
26932 plasma-widget-folderview
26933 plasma-widget-networkmanagement
26934 ruby
26935 sweeper
26936 update-notifier-kde
26937 xscreensaver-data-extra
26938 xscreensaver-gl
26939 xscreensaver-gl-extra
26940 xscreensaver-screensaver-bsod
26941 </p></blockquote>
26942
26943 <p>Installed using aptitude, removed with apt-get</p>
26944
26945 <blockquote><p>
26946 ark
26947 google-gadgets-common
26948 google-gadgets-qt
26949 htdig
26950 kate
26951 kdebase-bin
26952 kdebase-data
26953 kdepasswd
26954 kfind
26955 klipper
26956 konq-plugins
26957 konqueror
26958 ksysguard
26959 ksysguardd
26960 libarchive1
26961 libcln6
26962 libeet1
26963 libeina-svn-06
26964 libggadget-1.0-0b
26965 libggadget-qt-1.0-0b
26966 libgps19
26967 libkdecorations4
26968 libkephal4
26969 libkonq4
26970 libkonqsidebarplugin4a
26971 libkscreensaver5
26972 libksgrd4
26973 libksignalplotter4
26974 libkunitconversion4
26975 libkwineffects1a
26976 libmarblewidget4
26977 libntrack-qt4-1
26978 libntrack0
26979 libplasma-geolocation-interface4
26980 libplasmaclock4a
26981 libplasmagenericshell4
26982 libprocesscore4a
26983 libprocessui4a
26984 libqalculate5
26985 libqedje0a
26986 libqtruby4shared2
26987 libqzion0a
26988 libruby1.8
26989 libscim8c2a
26990 libsmokekdecore4-3
26991 libsmokekdeui4-3
26992 libsmokekfile3
26993 libsmokekhtml3
26994 libsmokekio3
26995 libsmokeknewstuff2-3
26996 libsmokeknewstuff3-3
26997 libsmokekparts3
26998 libsmokektexteditor3
26999 libsmokekutils3
27000 libsmokenepomuk3
27001 libsmokephonon3
27002 libsmokeplasma3
27003 libsmokeqtcore4-3
27004 libsmokeqtdbus4-3
27005 libsmokeqtgui4-3
27006 libsmokeqtnetwork4-3
27007 libsmokeqtopengl4-3
27008 libsmokeqtscript4-3
27009 libsmokeqtsql4-3
27010 libsmokeqtsvg4-3
27011 libsmokeqttest4-3
27012 libsmokeqtuitools4-3
27013 libsmokeqtwebkit4-3
27014 libsmokeqtxml4-3
27015 libsmokesolid3
27016 libsmokesoprano3
27017 libtaskmanager4a
27018 libtidy-0.99-0
27019 libweather-ion4a
27020 libxklavier16
27021 libxxf86misc1
27022 okteta
27023 oxygencursors
27024 plasma-dataengines-addons
27025 plasma-scriptengine-superkaramba
27026 plasma-widget-lancelot
27027 plasma-widgets-addons
27028 plasma-widgets-workspace
27029 polkit-kde-1
27030 ruby1.8
27031 systemsettings
27032 update-notifier-common
27033 </p></blockquote>
27034
27035 <p>Running apt-get autoremove made the results using apt-get and
27036 aptitude a bit more similar, but there are still quite a lott of
27037 differences. I have no idea what packages should be installed after
27038 the upgrade, but hope those that do can have a look.</p>
27039
27040 </div>
27041 <div class="tags">
27042
27043
27044 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
27045
27046
27047 </div>
27048 </div>
27049 <div class="padding"></div>
27050
27051 <div class="entry">
27052 <div class="title">
27053 <a href="http://people.skolelinux.org/pere/blog/Migrating_Xen_virtual_machines_using_LVM_to_KVM_using_disk_images.html">Migrating Xen virtual machines using LVM to KVM using disk images</a>
27054 </div>
27055 <div class="date">
27056 22nd November 2010
27057 </div>
27058 <div class="body">
27059 <p>Most of the computers in use by the
27060 <a href="http://www.skolelinux.org/">Debian Edu/Skolelinux project</a>
27061 are virtual machines. And they have been Xen machines running on a
27062 fairly old IBM eserver xseries 345 machine, and we wanted to migrate
27063 them to KVM on a newer Dell PowerEdge 2950 host machine. This was a
27064 bit harder that it could have been, because we set up the Xen virtual
27065 machines to get the virtual partitions from LVM, which as far as I
27066 know is not supported by KVM. So to migrate, we had to convert
27067 several LVM logical volumes to partitions on a virtual disk file.</p>
27068
27069 <p>I found
27070 <a href="http://searchnetworking.techtarget.com.au/articles/35011-Six-steps-for-migrating-Xen-virtual-machines-to-KVM">a
27071 nice recipe</a> to do this, and wrote the following script to do the
27072 migration. It uses qemu-img from the qemu package to make the disk
27073 image, parted to partition it, losetup and kpartx to present the disk
27074 image partions as devices, and dd to copy the data. I NFS mounted the
27075 new servers storage area on the old server to do the migration.</p>
27076
27077 <pre>
27078 #!/bin/sh
27079
27080 # Based on
27081 # http://searchnetworking.techtarget.com.au/articles/35011-Six-steps-for-migrating-Xen-virtual-machines-to-KVM
27082
27083 set -e
27084 set -x
27085
27086 if [ -z "$1" ] ; then
27087 echo "Usage: $0 &lt;hostname&gt;"
27088 exit 1
27089 else
27090 host="$1"
27091 fi
27092
27093 if [ ! -e /dev/vg_data/$host-disk ] ; then
27094 echo "error: unable to find LVM volume for $host"
27095 exit 1
27096 fi
27097
27098 # Partitions need to be a bit bigger than the LVM LVs. not sure why.
27099 disksize=$( lvs --units m | grep $host-disk | awk '{sum = sum + $4} END { print int(sum * 1.05) }')
27100 swapsize=$( lvs --units m | grep $host-swap | awk '{sum = sum + $4} END { print int(sum * 1.05) }')
27101 totalsize=$(( ( $disksize + $swapsize ) ))
27102
27103 img=$host.img
27104 #dd if=/dev/zero of=$img bs=1M count=$(( $disksize + $swapsize ))
27105 qemu-img create $img ${totalsize}MMaking room on the Debian Edu/Sqeeze DVD
27106
27107 parted $img mklabel msdos
27108 parted $img mkpart primary linux-swap 0 $disksize
27109 parted $img mkpart primary ext2 $disksize $totalsize
27110 parted $img set 1 boot on
27111
27112 modprobe dm-mod
27113 losetup /dev/loop0 $img
27114 kpartx -a /dev/loop0
27115
27116 dd if=/dev/vg_data/$host-disk of=/dev/mapper/loop0p1 bs=1M
27117 fsck.ext3 -f /dev/mapper/loop0p1 || true
27118 mkswap /dev/mapper/loop0p2
27119
27120 kpartx -d /dev/loop0
27121 losetup -d /dev/loop0
27122 </pre>
27123
27124 <p>The script is perhaps so simple that it is not copyrightable, but
27125 if it is, it is licenced using GPL v2 or later at your discretion.</p>
27126
27127 <p>After doing this, I booted a Debian CD in rescue mode in KVM with
27128 the new disk image attached, installed grub-pc and linux-image-686 and
27129 set up grub to boot from the disk image. After this, the KVM machines
27130 seem to work just fine.</p>
27131
27132 </div>
27133 <div class="tags">
27134
27135
27136 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
27137
27138
27139 </div>
27140 </div>
27141 <div class="padding"></div>
27142
27143 <div class="entry">
27144 <div class="title">
27145 <a href="http://people.skolelinux.org/pere/blog/Lenny__Squeeze_upgrades__apt_vs_aptitude_with_the_Gnome_and_KDE_desktop.html">Lenny->Squeeze upgrades, apt vs aptitude with the Gnome and KDE desktop</a>
27146 </div>
27147 <div class="date">
27148 20th November 2010
27149 </div>
27150 <div class="body">
27151 <p>I'm still running upgrade testing of the
27152 <a href="http://people.skolelinux.org/~pere/debian-upgrade-testing/">Lenny
27153 Gnome and KDE Desktop</a>, but have not had time to spend on reporting the
27154 status. Here is a short update based on a test I ran 20101118.</p>
27155
27156 <p>I still do not know what a correct migration should look like, so I
27157 report any differences between apt and aptitude and hope someone else
27158 can see if anything should be changed.</p>
27159
27160 <p>This is for Gnome:</p>
27161
27162 <p>Installed using apt-get, missing with aptitude</p>
27163
27164 <blockquote><p>
27165 apache2.2-bin aptdaemon at-spi baobab binfmt-support
27166 browser-plugin-gnash cheese-common cli-common cpp-4.3 cups-pk-helper
27167 dmz-cursor-theme empathy empathy-common finger
27168 freedesktop-sound-theme freeglut3 gconf-defaults-service gdm-themes
27169 gedit-plugins geoclue geoclue-hostip geoclue-localnet geoclue-manual
27170 geoclue-yahoo gnash gnash-common gnome gnome-backgrounds
27171 gnome-cards-data gnome-codec-install gnome-core
27172 gnome-desktop-environment gnome-disk-utility gnome-screenshot
27173 gnome-search-tool gnome-session-canberra gnome-spell
27174 gnome-system-log gnome-themes-extras gnome-themes-more
27175 gnome-user-share gs-common gstreamer0.10-fluendo-mp3
27176 gstreamer0.10-tools gtk2-engines gtk2-engines-pixbuf
27177 gtk2-engines-smooth hal-info hamster-applet libapache2-mod-dnssd
27178 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap
27179 libart2.0-cil libatspi1.0-0 libboost-date-time1.42.0
27180 libboost-python1.42.0 libboost-thread1.42.0 libchamplain-0.4-0
27181 libchamplain-gtk-0.4-0 libcheese-gtk18 libclutter-gtk-0.10-0
27182 libcryptui0 libcupsys2 libdiscid0 libeel2-data libelf1 libepc-1.0-2
27183 libepc-common libepc-ui-1.0-2 libfreerdp-plugins-standard
27184 libfreerdp0 libgail-common libgconf2.0-cil libgdata-common libgdata7
27185 libgdl-1-common libgdu-gtk0 libgee2 libgeoclue0 libgexiv2-0 libgif4
27186 libglade2.0-cil libglib2.0-cil libgmime2.4-cil libgnome-vfs2.0-cil
27187 libgnome2.24-cil libgnomepanel2.24-cil libgnomeprint2.2-data
27188 libgnomeprintui2.2-common libgnomevfs2-bin libgpod-common libgpod4
27189 libgtk2.0-cil libgtkglext1 libgtksourceview-common
27190 libgtksourceview2.0-common libmono-addins-gui0.2-cil
27191 libmono-addins0.2-cil libmono-cairo2.0-cil libmono-corlib2.0-cil
27192 libmono-i18n-west2.0-cil libmono-posix2.0-cil
27193 libmono-security2.0-cil libmono-sharpzip2.84-cil
27194 libmono-system2.0-cil libmtp8 libmusicbrainz3-6
27195 libndesk-dbus-glib1.0-cil libndesk-dbus1.0-cil libopal3.6.8
27196 libpolkit-gtk-1-0 libpt-1.10.10-plugins-alsa
27197 libpt-1.10.10-plugins-v4l libpt2.6.7 libpython2.6 librpm1 librpmio1
27198 libsdl1.2debian libservlet2.4-java libsrtp0 libssh-4
27199 libtelepathy-farsight0 libtelepathy-glib0 libtidy-0.99-0
27200 libxalan2-java libxerces2-java media-player-info mesa-utils
27201 mono-2.0-gac mono-gac mono-runtime nautilus-sendto
27202 nautilus-sendto-empathy openoffice.org-writer2latex
27203 openssl-blacklist p7zip p7zip-full pkg-config python-4suite-xml
27204 python-aptdaemon python-aptdaemon-gtk python-axiom
27205 python-beautifulsoup python-bugbuddy python-clientform
27206 python-coherence python-configobj python-crypto python-cupshelpers
27207 python-cupsutils python-eggtrayicon python-elementtree
27208 python-epsilon python-evolution python-feedparser python-gdata
27209 python-gdbm python-gst0.10 python-gtkglext1 python-gtkmozembed
27210 python-gtksourceview2 python-httplib2 python-louie python-mako
27211 python-markupsafe python-mechanize python-nevow python-notify
27212 python-opengl python-openssl python-pam python-pkg-resources
27213 python-pyasn1 python-pysqlite2 python-rdflib python-serial
27214 python-tagpy python-twisted-bin python-twisted-conch
27215 python-twisted-core python-twisted-web python-utidylib python-webkit
27216 python-xdg python-zope.interface remmina remmina-plugin-data
27217 remmina-plugin-rdp remmina-plugin-vnc rhythmbox-plugin-cdrecorder
27218 rhythmbox-plugins rpm-common rpm2cpio seahorse-plugins shotwell
27219 software-center svgalibg1 system-config-printer-udev
27220 telepathy-gabble telepathy-mission-control-5 telepathy-salut tomboy
27221 totem totem-coherence totem-mozilla totem-plugins
27222 transmission-common xdg-user-dirs xdg-user-dirs-gtk xserver-xephyr
27223 zip
27224 </p></blockquote>
27225
27226 Installed using apt-get, removed with aptitude
27227
27228 <blockquote><p>
27229 arj bluez-utils cheese dhcdbd djvulibre-desktop ekiga eog
27230 epiphany-extensions epiphany-gecko evolution-exchange
27231 fast-user-switch-applet file-roller gcalctool gconf-editor gdm gedit
27232 gedit-common gnome-app-install gnome-games gnome-games-data
27233 gnome-nettool gnome-system-tools gnome-themes gnome-utils
27234 gnome-vfs-obexftp gnome-volume-manager gnuchess gucharmap
27235 guile-1.8-libs hal libavahi-compat-libdnssd1 libavahi-core5
27236 libavahi-ui0 libbind9-50 libbluetooth2 libcamel1.2-11 libcdio7
27237 libcucul0 libcurl3 libdirectfb-1.0-0 libdmx1 libdvdread3
27238 libedata-cal1.2-6 libedataserver1.2-9 libeel2-2.20 libepc-1.0-1
27239 libepc-ui-1.0-1 libexchange-storage1.2-3 libfaad0 libgadu3
27240 libgalago3 libgd2-noxpm libgda3-3 libgda3-common libggz2 libggzcore9
27241 libggzmod4 libgksu1.2-0 libgksuui1.0-1 libgmyth0 libgnome-desktop-2
27242 libgnome-pilot2 libgnomecups1.0-1 libgnomeprint2.2-0
27243 libgnomeprintui2.2-0 libgpod3 libgraphviz4 libgtk-vnc-1.0-0
27244 libgtkhtml2-0 libgtksourceview1.0-0 libgtksourceview2.0-0
27245 libgucharmap6 libhesiod0 libicu38 libisccc50 libisccfg50 libiw29
27246 libjaxp1.3-java-gcj libkpathsea4 liblircclient0 libltdl3 liblwres50
27247 libmagick++10 libmagick10 libmalaga7 libmozjs1d libmpfr1ldbl libmtp7
27248 libmysqlclient15off libnautilus-burn4 libneon27 libnm-glib0
27249 libnm-util0 libopal-2.2 libosp5 libparted1.8-10 libpisock9
27250 libpisync1 libpoppler-glib3 libpoppler3 libpt-1.10.10 libraw1394-8
27251 libsdl1.2debian-alsa libsensors3 libsexy2 libsmbios2 libsoup2.2-8
27252 libspeexdsp1 libssh2-1 libsuitesparse-3.1.0 libsvga1
27253 libswfdec-0.6-90 libtalloc1 libtotem-plparser10 libtrackerclient0
27254 libvoikko1 libxalan2-java-gcj libxerces2-java-gcj libxklavier12
27255 libxtrap6 libxxf86misc1 libzephyr3 mysql-common rhythmbox seahorse
27256 sound-juicer swfdec-gnome system-config-printer totem-common
27257 totem-gstreamer transmission-gtk vinagre vino w3c-dtd-xhtml wodim
27258 </p></blockquote>
27259
27260 <p>Installed using aptitude, missing with apt-get</p>
27261
27262 <blockquote><p>
27263 gstreamer0.10-gnomevfs
27264 </p></blockquote>
27265
27266 <p>Installed using aptitude, removed with apt-get</p>
27267
27268 <blockquote><p>
27269 [nothing]
27270 </p></blockquote>
27271
27272 <p>This is for KDE:</p>
27273
27274 <p>Installed using apt-get, missing with aptitude</p>
27275
27276 <blockquote><p>
27277 autopoint bomber bovo cantor cantor-backend-kalgebra cpp-4.3 dcoprss
27278 edict espeak espeak-data eyesapplet fifteenapplet finger gettext
27279 ghostscript-x git gnome-audio gnugo granatier gs-common
27280 gstreamer0.10-pulseaudio indi kaddressbook-plugins kalgebra
27281 kalzium-data kanjidic kapman kate-plugins kblocks kbreakout kbstate
27282 kde-icons-mono kdeaccessibility kdeaddons-kfile-plugins
27283 kdeadmin-kfile-plugins kdeartwork-misc kdeartwork-theme-window
27284 kdeedu kdeedu-data kdeedu-kvtml-data kdegames kdegames-card-data
27285 kdegames-mahjongg-data kdegraphics-kfile-plugins kdelirc
27286 kdemultimedia-kfile-plugins kdenetwork-kfile-plugins
27287 kdepim-kfile-plugins kdepim-kio-plugins kdessh kdetoys kdewebdev
27288 kdiamond kdnssd kfilereplace kfourinline kgeography-data kigo
27289 killbots kiriki klettres-data kmoon kmrml knewsticker-scripts
27290 kollision kpf krosspython ksirk ksmserver ksquares kstars-data
27291 ksudoku kubrick kweather libasound2-plugins libboost-python1.42.0
27292 libcfitsio3 libconvert-binhex-perl libcrypt-ssleay-perl libdb4.6++
27293 libdjvulibre-text libdotconf1.0 liberror-perl libespeak1
27294 libfinance-quote-perl libgail-common libgsl0ldbl libhtml-parser-perl
27295 libhtml-tableextract-perl libhtml-tagset-perl libhtml-tree-perl
27296 libio-stringy-perl libkdeedu4 libkdegames5 libkiten4 libkpathsea5
27297 libkrossui4 libmailtools-perl libmime-tools-perl
27298 libnews-nntpclient-perl libopenbabel3 libportaudio2 libpulse-browse0
27299 libservlet2.4-java libspeechd2 libtiff-tools libtimedate-perl
27300 libunistring0 liburi-perl libwww-perl libxalan2-java libxerces2-java
27301 lirc luatex marble networkstatus noatun-plugins
27302 openoffice.org-writer2latex palapeli palapeli-data parley
27303 parley-data poster psutils pulseaudio pulseaudio-esound-compat
27304 pulseaudio-module-x11 pulseaudio-utils quanta-data rocs rsync
27305 speech-dispatcher step svgalibg1 texlive-binaries texlive-luatex
27306 ttf-sazanami-gothic
27307 </p></blockquote>
27308
27309 <p>Installed using apt-get, removed with aptitude</p>
27310
27311 <blockquote><p>
27312 amor artsbuilder atlantik atlantikdesigner blinken bluez-utils cvs
27313 dhcdbd djvulibre-desktop imlib-base imlib11 kalzium kanagram kandy
27314 kasteroids katomic kbackgammon kbattleship kblackbox kbounce kbruch
27315 kcron kdat kdemultimedia-kappfinder-data kdeprint kdict kdvi kedit
27316 keduca kenolaba kfax kfaxview kfouleggs kgeography kghostview
27317 kgoldrunner khangman khexedit kiconedit kig kimagemapeditor
27318 kitchensync kiten kjumpingcube klatin klettres klickety klines
27319 klinkstatus kmag kmahjongg kmailcvt kmenuedit kmid kmilo kmines
27320 kmousetool kmouth kmplot knetwalk kodo kolf kommander konquest kooka
27321 kpager kpat kpdf kpercentage kpilot kpoker kpovmodeler krec
27322 kregexpeditor kreversi ksame ksayit kshisen ksig ksim ksirc ksirtet
27323 ksmiletris ksnake ksokoban kspaceduel kstars ksvg ksysv kteatime
27324 ktip ktnef ktouch ktron kttsd ktuberling kturtle ktux kuickshow
27325 kverbos kview kviewshell kvoctrain kwifimanager kwin kwin4 kwordquiz
27326 kworldclock kxsldbg libakode2 libarts1-akode libarts1-audiofile
27327 libarts1-mpeglib libarts1-xine libavahi-compat-libdnssd1
27328 libavahi-core5 libavc1394-0 libbind9-50 libbluetooth2
27329 libboost-python1.34.1 libcucul0 libcurl3 libcvsservice0
27330 libdirectfb-1.0-0 libdjvulibre21 libdvdread3 libfaad0 libfreebob0
27331 libgd2-noxpm libgraphviz4 libgsmme1c2a libgtkhtml2-0 libicu38
27332 libiec61883-0 libindex0 libisccc50 libisccfg50 libiw29
27333 libjaxp1.3-java-gcj libk3b3 libkcal2b libkcddb1 libkdeedu3
27334 libkdegames1 libkdepim1a libkgantt0 libkleopatra1 libkmime2
27335 libkpathsea4 libkpimexchange1 libkpimidentities1 libkscan1
27336 libksieve0 libktnef1 liblockdev1 libltdl3 liblwres50 libmagick10
27337 libmimelib1c2a libmodplug0c2 libmozjs1d libmpcdec3 libmpfr1ldbl
27338 libneon27 libnm-util0 libopensync0 libpisock9 libpoppler-glib3
27339 libpoppler-qt2 libpoppler3 libraw1394-8 librss1 libsensors3
27340 libsmbios2 libssh2-1 libsuitesparse-3.1.0 libswfdec-0.6-90
27341 libtalloc1 libxalan2-java-gcj libxerces2-java-gcj libxtrap6 lskat
27342 mpeglib network-manager-kde noatun pmount tex-common texlive-base
27343 texlive-common texlive-doc-base texlive-fonts-recommended tidy
27344 ttf-dustin ttf-kochi-gothic ttf-sjfonts
27345 </p></blockquote>
27346
27347 <p>Installed using aptitude, missing with apt-get</p>
27348
27349 <blockquote><p>
27350 dolphin kde-core kde-plasma-desktop kde-standard kde-window-manager
27351 kdeartwork kdebase kdebase-apps kdebase-workspace
27352 kdebase-workspace-bin kdebase-workspace-data kdeutils kscreensaver
27353 kscreensaver-xsavers libgle3 libkonq5 libkonq5-templates libnetpbm10
27354 netpbm plasma-widget-folderview plasma-widget-networkmanagement
27355 xscreensaver-data-extra xscreensaver-gl xscreensaver-gl-extra
27356 xscreensaver-screensaver-bsod
27357 </p></blockquote>
27358
27359 <p>Installed using aptitude, removed with apt-get</p>
27360
27361 <blockquote><p>
27362 kdebase-bin konq-plugins konqueror
27363 </p></blockquote>
27364
27365 </div>
27366 <div class="tags">
27367
27368
27369 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
27370
27371
27372 </div>
27373 </div>
27374 <div class="padding"></div>
27375
27376 <div class="entry">
27377 <div class="title">
27378 <a href="http://people.skolelinux.org/pere/blog/Gnash_buildbot_slave_and_Debian_kfreebsd.html">Gnash buildbot slave and Debian kfreebsd</a>
27379 </div>
27380 <div class="date">
27381 20th November 2010
27382 </div>
27383 <div class="body">
27384 <p>Answering
27385 <a href="http://www.listware.net/201011/gnash-dev/67431-gnash-dev-buildbot-looking-for-slaves.html">the
27386 call from the Gnash project</a> for
27387 <a href="http://www.gnashdev.org:8010">buildbot</a> slaves to test the
27388 current source, I have set up a virtual KVM machine on the Debian
27389 Edu/Skolelinux virtualization host to test the git source on
27390 Debian/Squeeze. I hope this can help the developers in getting new
27391 releases out more often.</p>
27392
27393 <p>As the developers want less main-stream build platforms tested to,
27394 I have considered setting up a <a
27395 href="http://www.debian.org/ports/kfreebsd-gnu/">Debian/kfreebsd</a>
27396 machine as well. I have also considered using the kfreebsd
27397 architecture in Debian as a file server in NUUG to get access to the 5
27398 TB zfs volume we currently use to store DV video. Because of this, I
27399 finally got around to do a test installation of Debian/Squeeze with
27400 kfreebsd. Installation went fairly smooth, thought I noticed some
27401 visual glitches in the cdebconf dialogs (black cursor left on the
27402 screen at random locations). Have not gotten very far with the
27403 testing. Noticed cfdisk did not work, but fdisk did so it was not a
27404 fatal problem. Have to spend some more time on it to see if it is
27405 useful as a file server for NUUG. Will try to find time to set up a
27406 gnash buildbot slave on the Debian Edu/Skolelinux this weekend.</p>
27407
27408 </div>
27409 <div class="tags">
27410
27411
27412 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
27413
27414
27415 </div>
27416 </div>
27417 <div class="padding"></div>
27418
27419 <div class="entry">
27420 <div class="title">
27421 <a href="http://people.skolelinux.org/pere/blog/Debian_in_3D.html">Debian in 3D</a>
27422 </div>
27423 <div class="date">
27424 9th November 2010
27425 </div>
27426 <div class="body">
27427 <p><img src="http://thingiverse-production.s3.amazonaws.com/renders/23/e0/c4/f9/2b/debswagtdose_preview_medium.jpg"></p>
27428
27429 <p>3D printing is just great. I just came across this Debian logo in
27430 3D linked in from
27431 <a href="http://blog.thingiverse.com/2010/11/09/participatory-branding/">the
27432 thingiverse blog</a>.</p>
27433
27434 </div>
27435 <div class="tags">
27436
27437
27438 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
27439
27440
27441 </div>
27442 </div>
27443 <div class="padding"></div>
27444
27445 <div class="entry">
27446 <div class="title">
27447 <a href="http://people.skolelinux.org/pere/blog/Making_room_on_the_Debian_Edu_Sqeeze_DVD.html">Making room on the Debian Edu/Sqeeze DVD</a>
27448 </div>
27449 <div class="date">
27450 7th November 2010
27451 </div>
27452 <div class="body">
27453 <p>Prioritising packages for the Debian Edu /
27454 <a href="http://www.skolelinux.org/">Skolelinux</a> DVD, which is
27455 supposed provide a school with all the services and user applications
27456 needed on the pupils computer network has always been hard. Even
27457 schools without Internet connections should be able to get Debian Edu
27458 working using this DVD.</p>
27459
27460 <p>The job became a lot harder when apt and aptitude started
27461 installing recommended packages by default. We want the same set of
27462 packages to be installed when using the DVD and the netinst CD, and
27463 that means all recommended packages need to be on the DVD. I created
27464 a patch for debian-cd in <a href="http://bugs.debian.org/601203">BTS
27465 report #601203</a> to do this, and since this change was applied to
27466 the Debian Edu DVD build, we have been seriously short on space.</p>
27467
27468 <p>A few days ago we decided to drop blender, wxmaxima and kicad from
27469 the default installation to save space on the DVD, believing that
27470 those needing these applications are few and can get them from the
27471 Debian archive.</p>
27472
27473 <p>Yesterday, I had a look what source packages to see which packages
27474 were using most space. A few large packages are well know;
27475 openoffice.org, openclipart and fluid-soundfont. But I also
27476 discovered that lilypond used 106 MiB and fglrx-driver used 53 MiB.
27477 The lilypond package is pulled in as a dependency for rosegarden, and
27478 when looking a bit closer I discovered that 99 MiB of the 106 MiB were
27479 the documentation package, which is recommended by the binary package.
27480 I decided to drop this documentation package from our DVD, as most of
27481 our users will use the GUI front-ends and do not need the lilypond
27482 documentation. Similarly, I dropped the non-free fglrx-driver package
27483 which might be installed by d-i when its hardware is detected, as the
27484 free X driver should work.</p>
27485
27486 <p>With this change, we finally got space for the LXDE and Gnome
27487 desktop packages as well as the language specific packages making the
27488 DVD more useful again.</p>
27489
27490 </div>
27491 <div class="tags">
27492
27493
27494 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
27495
27496
27497 </div>
27498 </div>
27499 <div class="padding"></div>
27500
27501 <div class="entry">
27502 <div class="title">
27503 <a href="http://people.skolelinux.org/pere/blog/Software_updates_2010_10_24.html">Software updates 2010-10-24</a>
27504 </div>
27505 <div class="date">
27506 24th October 2010
27507 </div>
27508 <div class="body">
27509 <p>Some updates.</p>
27510
27511 <p>My <a href="http://pledgebank.com/gnash-avm2">gnash pledge</a> to
27512 raise money for the project is going well. The lower limit of 10
27513 signers was reached in 24 hours, and so far 13 people have signed it.
27514 More signers and more funding is most welcome, and I am really curious
27515 how far we can get before the time limit of December 24 is reached.
27516 :)</p>
27517
27518 <p>On the #gnash IRC channel on irc.freenode.net, I was just tipped
27519 about what appear to be a great code coverage tool capable of
27520 generating code coverage stats without any changes to the source code.
27521 It is called
27522 <a href="http://simonkagstrom.github.com/kcov/index.html">kcov</a>,
27523 and can be used using <tt>kcov &lt;directory&gt; &lt;binary&gt;</tt>.
27524 It is missing in Debian, but the git source built just fine in Squeeze
27525 after I installed libelf-dev, libdwarf-dev, pkg-config and
27526 libglib2.0-dev. Failed to build in Lenny, but suspect that is
27527 solvable. I hope kcov make it into Debian soon.</p>
27528
27529 <p>Finally found time to wrap up the release notes for <a
27530 href="http://lists.debian.org/debian-edu-announce/2010/10/msg00002.html">a
27531 new alpha release of Debian Edu</a>, and just published the second
27532 alpha test release of the Squeeze based Debian Edu /
27533 <a href="http://www.skolelinux.org/">Skolelinux</a>
27534 release. Give it a try if you need a complete linux solution for your
27535 school, including central infrastructure server, workstations, thin
27536 client servers and diskless workstations. A nice touch added
27537 yesterday is RDP support on the thin client servers, for windows
27538 clients to get a Linux desktop on request.</p>
27539
27540 </div>
27541 <div class="tags">
27542
27543
27544 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>.
27545
27546
27547 </div>
27548 </div>
27549 <div class="padding"></div>
27550
27551 <div class="entry">
27552 <div class="title">
27553 <a href="http://people.skolelinux.org/pere/blog/Pledge_for_funding_to_the_Gnash_project_to_get_AVM2_support.html">Pledge for funding to the Gnash project to get AVM2 support</a>
27554 </div>
27555 <div class="date">
27556 19th October 2010
27557 </div>
27558 <div class="body">
27559 <p><a href="http://www.getgnash.org/">The Gnash project</a> is the
27560 most promising solution for a Free Software Flash implementation. It
27561 has done great so far, but there is still far to go, and recently its
27562 funding has dried up. I believe AVM2 support in Gnash is vital to the
27563 continued progress of the project, as more and more sites show up with
27564 AVM2 flash files.</p>
27565
27566 <p>To try to get funding for developing such support, I have started
27567 <a href="http://www.pledgebank.com/gnash-avm2">a pledge</a> with the
27568 following text:</P>
27569
27570 <p><blockquote>
27571
27572 <p>"I will pay 100$ to the Gnash project to develop AVM2 support but
27573 only if 10 other people will do the same."</p>
27574
27575 <p>- Petter Reinholdtsen, free software developer</p>
27576
27577 <p>Deadline to sign up by: 24th December 2010</p>
27578
27579 <p>The Gnash project need to get support for the new Flash file
27580 format AVM2 to work with a lot of sites using Flash on the
27581 web. Gnash already work with a lot of Flash sites using the old AVM1
27582 format, but more and more sites are using the AVM2 format these
27583 days. The project web page is available from
27584 http://www.getgnash.org/ . Gnash is a free software implementation
27585 of Adobe Flash, allowing those of us that do not accept the terms of
27586 the Adobe Flash license to get access to Flash sites.</p>
27587
27588 <p>The project need funding to get developers to put aside enough
27589 time to develop the AVM2 support, and this pledge is my way to try
27590 to get this to happen.</p>
27591
27592 <p>The project accept donations via the OpenMediaNow foundation,
27593 <a href="http://www.openmedianow.org/?q=node/32">http://www.openmedianow.org/?q=node/32</a> .</p>
27594
27595 </blockquote></p>
27596
27597 <p>I hope you will support this effort too. I hope more than 10
27598 people will participate to make this happen. The more money the
27599 project gets, the more features it can develop using these funds.
27600 :)</p>
27601
27602 </div>
27603 <div class="tags">
27604
27605
27606 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</a>.
27607
27608
27609 </div>
27610 </div>
27611 <div class="padding"></div>
27612
27613 <div class="entry">
27614 <div class="title">
27615 <a href="http://people.skolelinux.org/pere/blog/First_version_of_a_Perl_library_to_control_the_Spykee_robot.html">First version of a Perl library to control the Spykee robot</a>
27616 </div>
27617 <div class="date">
27618 9th October 2010
27619 </div>
27620 <div class="body">
27621 <p>This summer I got the chance to buy cheap Spykee robots, and since
27622 then I have worked on getting Linux software in place to control them.
27623 The firmware for the robot is available from the producer, and using
27624 that source it was trivial to figure out the protocol specification.
27625 I've started on a perl library to control it, and made some demo
27626 programs using this perl library to allow one to control the
27627 robots.</p>
27628
27629 <p>The library is quite functional already, and capable of controlling
27630 the driving, fetching video, uploading MP3s and play them. There are
27631 a few less important features too.</p>
27632
27633 <p>Since a few weeks ago, I ran out of time to spend on this project,
27634 but I never got around to releasing the current source. I decided
27635 today that it was time to do something about it, and uploaded the
27636 source to my Debian package store at people.skolelinux.org.</p>
27637
27638 <p>Because it was simpler for me, I made a Debian package and
27639 published the source and deb. If you got a spykee robot, grab the
27640 source or binary package:</p>
27641
27642 <p><ul>
27643 <li><a href="http://people.skolelinux.org/~pere/debian/packages/lenny/libspykee-perl_0.0.20101009-1.tar.gz">libspykee-perl_0.0.20101009-1.tar.gz</a></li>
27644 <li><a href="http://people.skolelinux.org/~pere/debian/packages/lenny/libspykee-perl_0.0.20101009-1.dsc">libspykee-perl_0.0.20101009-1.dsc</a></li>
27645 <li><a href="http://people.skolelinux.org/~pere/debian/packages/lenny/libspykee-perl_0.0.20101009-1_all.deb">libspykee-perl_0.0.20101009-1_all.deb</a></li>
27646 </ul></p>
27647
27648 <p>If you are interested in helping out with developing this library,
27649 please let me know.</p>
27650
27651 </div>
27652 <div class="tags">
27653
27654
27655 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/robot">robot</a>.
27656
27657
27658 </div>
27659 </div>
27660 <div class="padding"></div>
27661
27662 <div class="entry">
27663 <div class="title">
27664 <a href="http://people.skolelinux.org/pere/blog/Links_for_2010_10_03.html">Links for 2010-10-03</a>
27665 </div>
27666 <div class="date">
27667 3rd October 2010
27668 </div>
27669 <div class="body">
27670 <p><ul>
27671
27672 <li><a href="http://arstechnica.com/business/news/2010/09/there-is-no-plan-b-why-the-ipv4-to-ipv6-transition-will-be-ugly.ars">There
27673 is no Plan B: why the IPv4-to-IPv6 transition will be ugly</a></li>
27674
27675 <li>Scanner looking under clothes
27676 <a href="http://www.dagbladet.no/2010/10/03/nyheter/utenriks/reise/overvakingskamera/flyplasser/13667192/">has
27677 already been misused at Heathrow</a>.</li>
27678
27679 <li><a href="http://wiki.softwarelivre.org/Landell">Landell
27680 Webcasting</a> - interesting alternative for
27681 <ahref="http://dvswitch.alioth.debian.org/wiki/">DVSwitch</a> with
27682 simple setup.
27683
27684 </ul></p>
27685
27686 </div>
27687 <div class="tags">
27688
27689
27690 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/lenker">lenker</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
27691
27692
27693 </div>
27694 </div>
27695 <div class="padding"></div>
27696
27697 <div class="entry">
27698 <div class="title">
27699 <a href="http://people.skolelinux.org/pere/blog/Terms_of_use_for_video_produced_by_a_Canon_IXUS_130_digital_camera.html">Terms of use for video produced by a Canon IXUS 130 digital camera</a>
27700 </div>
27701 <div class="date">
27702 9th September 2010
27703 </div>
27704 <div class="body">
27705 <p>A few days ago I had the mixed pleasure of bying a new digital
27706 camera, a Canon IXUS 130. It was instructive and very disturbing to
27707 be able to verify that also this camera producer have the nerve to
27708 specify how I can or can not use the videos produced with the camera.
27709 Even thought I was aware of the issue, the options with new cameras
27710 are limited and I ended up bying the camera anyway. What is the
27711 problem, you might ask? It is software patents, MPEG-4, H.264 and the
27712 MPEG-LA that is the problem, and our right to record our experiences
27713 without asking for permissions that is at risk.
27714
27715 <p>On page 27 of the Danish instruction manual, this section is
27716 written:</p>
27717
27718 <blockquote>
27719 <p>This product is licensed under AT&T patents for the MPEG-4 standard
27720 and may be used for encoding MPEG-4 compliant video and/or decoding
27721 MPEG-4 compliant video that was encoded only (1) for a personal and
27722 non-commercial purpose or (2) by a video provider licensed under the
27723 AT&T patents to provide MPEG-4 compliant video.</p>
27724
27725 <p>No license is granted or implied for any other use for MPEG-4
27726 standard.</p>
27727 </blockquote>
27728
27729 <p>In short, the camera producer have chosen to use technology
27730 (MPEG-4/H.264) that is only provided if I used it for personal and
27731 non-commercial purposes, or ask for permission from the organisations
27732 holding the knowledge monopoly (patent) for technology used.</p>
27733
27734 <p>This issue has been brewing for a while, and I recommend you to
27735 read
27736 "<a href="http://www.osnews.com/story/23236/Why_Our_Civilization_s_Video_Art_and_Culture_is_Threatened_by_the_MPEG-LA">Why
27737 Our Civilization's Video Art and Culture is Threatened by the
27738 MPEG-LA</a>" by Eugenia Loli-Queru and
27739 "<a href="http://webmink.com/2010/09/03/h-264-and-foss/">H.264 Is Not
27740 The Sort Of Free That Matters</a>" by Simon Phipps to learn more about
27741 the issue. The solution is to support the
27742 <a href="http://www.digistan.org/open-standard:definition">free and
27743 open standards</a> for video, like <a href="http://www.theora.org/">Ogg
27744 Theora</a>, and avoid MPEG-4 and H.264 if you can.</p>
27745
27746 </div>
27747 <div class="tags">
27748
27749
27750 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling</a>, <a href="http://people.skolelinux.org/pere/blog/tags/h264">h264</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</a>.
27751
27752
27753 </div>
27754 </div>
27755 <div class="padding"></div>
27756
27757 <div class="entry">
27758 <div class="title">
27759 <a href="http://people.skolelinux.org/pere/blog/Some_notes_on_Flash_in_Debian_and_Debian_Edu.html">Some notes on Flash in Debian and Debian Edu</a>
27760 </div>
27761 <div class="date">
27762 4th September 2010
27763 </div>
27764 <div class="body">
27765 <p>In the <a href="http://popcon.debian.org/unknown/by_vote">Debian
27766 popularity-contest numbers</a>, the adobe-flashplugin package the
27767 second most popular used package that is missing in Debian. The sixth
27768 most popular is flashplayer-mozilla. This is a clear indication that
27769 working flash is important for Debian users. Around 10 percent of the
27770 users submitting data to popcon.debian.org have this package
27771 installed.</p>
27772
27773 <p>In the report written by Lars Risan in August 2008
27774 («<a href="http://wiki.skolelinux.no/Dokumentasjon/Rapporter?action=AttachFile&do=view&target=Skolelinux_i_bruk_rapport_1.0.pdf">Skolelinux
27775 i bruk – Rapport for Hurum kommune, Universitetet i Agder og
27776 stiftelsen SLX Debian Labs</a>»), one of the most important problems
27777 schools experienced with <a href="http://www.skolelinux.org/">Debian
27778 Edu/Skolelinux</a> was the lack of working Flash. A lot of educational
27779 web sites require Flash to work, and lacking working Flash support in
27780 the web browser and the problems with installing it was perceived as a
27781 good reason to stay with Windows.</p>
27782
27783 <p>I once saw a funny and sad comment in a web forum, where Linux was
27784 said to be the retarded cousin that did not really understand
27785 everything you told him but could work fairly well. This was a
27786 comment regarding the problems Linux have with proprietary formats and
27787 non-standard web pages, and is sad because it exposes a fairly common
27788 understanding of whose fault it is if web pages that only work in for
27789 example Internet Explorer 6 fail to work on Firefox, and funny because
27790 it explain very well how annoying it is for users when Linux
27791 distributions do not work with the documents they receive or the web
27792 pages they want to visit.</p>
27793
27794 <p>This is part of the reason why I believe it is important for Debian
27795 and Debian Edu to have a well working Flash implementation in the
27796 distribution, to get at least popular sites as Youtube and Google
27797 Video to working out of the box. For Squeeze, Debian have the chance
27798 to include the latest version of Gnash that will make this happen, as
27799 the new release 0.8.8 was published a few weeks ago and is resting in
27800 unstable. The new version work with more sites that version 0.8.7.
27801 The Gnash maintainers have asked for a freeze exception, but the
27802 release team have not had time to reply to it yet. I hope they agree
27803 with me that Flash is important for the Debian desktop users, and thus
27804 accept the new package into Squeeze.</p>
27805
27806 </div>
27807 <div class="tags">
27808
27809
27810 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</a>.
27811
27812
27813 </div>
27814 </div>
27815 <div class="padding"></div>
27816
27817 <div class="entry">
27818 <div class="title">
27819 <a href="http://people.skolelinux.org/pere/blog/My_first_perl_GUI_application___controlling_a_Spykee_robot.html">My first perl GUI application - controlling a Spykee robot</a>
27820 </div>
27821 <div class="date">
27822 1st September 2010
27823 </div>
27824 <div class="body">
27825 <p>This evening I made my first Perl GUI application. The last few
27826 days I have worked on a Perl module for controlling my recently
27827 aquired Spykee robots, and the module is now getting complete enought
27828 that it is possible to use it to control the robot driving at least.
27829 It was now time to figure out how to use it to create some GUI to
27830 allow me to drive the robot around. I picked PerlQt as I have had
27831 positive experiences with the Qt API before, and spent a few minutes
27832 browsing the web for examples. Using Qt Designer seemed like a short
27833 cut, so I ended up writing the perl GUI using Qt Designer and
27834 compiling it into a perl program using the puic program from
27835 libqt-perl. Nothing fancy yet, but it got buttons to connect and
27836 drive around.</p>
27837
27838 <p>The perl module I have written provide a object oriented API for
27839 controlling the robot. Here is an small example on how to use it:</p>
27840
27841 <p><pre>
27842 use Spykee;
27843 Spykee::discover(sub {$robot{$_[0]} = $_[1]});
27844 my $host = (keys %robot)[0];
27845 my $spykee = Spykee->new();
27846 $spykee->contact($host, "admin", "admin");
27847 $spykee->left();
27848 sleep 2;
27849 $spykee->right();
27850 sleep 2;
27851 $spykee->forward();
27852 sleep 2;
27853 $spykee->back();
27854 sleep 2;
27855 $spykee->stop();
27856 </pre></p>
27857
27858 <p>Thanks to the release of the source of the robot firmware, I could
27859 peek into the implementation at the other end to figure out how to
27860 implement the protocol used by the robot. I've implemented several of
27861 the commands the robot understand, but is still missing the camera
27862 support to make it possible to control the robot from remote. First I
27863 want to implement support for uploading new firmware and configuring
27864 the wireless network, to make it possible to bootstrap a Spykee robot
27865 without the producers Windows and MacOSX software (I only have Linux,
27866 so I had to ask a friend to come over to get the robot testing
27867 going. :).</p>
27868
27869 <p>Will release the source to the public soon, but need to figure out
27870 where to make it available first. I will add a link to
27871 <a href="http://wiki.nuug.no/grupper/robot/">the NUUG wiki</a> for
27872 those that want to check back later to find it.</p>
27873
27874 </div>
27875 <div class="tags">
27876
27877
27878 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/robot">robot</a>.
27879
27880
27881 </div>
27882 </div>
27883 <div class="padding"></div>
27884
27885 <div class="entry">
27886 <div class="title">
27887 <a href="http://people.skolelinux.org/pere/blog/Broken_hard_link_handling_with_sshfs.html">Broken hard link handling with sshfs</a>
27888 </div>
27889 <div class="date">
27890 30th August 2010
27891 </div>
27892 <div class="body">
27893 <p>Just got an email from Tobias Gruetzmacher as a followup on my
27894 <a href="http://people.skolelinux.org/pere/blog/Broken_umask_handling_with_sshfs.html">previous
27895 post about sshfs</a>. He reported another problem with sshfs. It
27896 fail to handle hard links properly. A simple way to spot this is to
27897 look at the . and .. entries in the directory tree. These should have
27898 a link count >1, but on sshfs the count is 1. I just tested to see
27899 what happen when trying to hardlink, and this fail as well:</p>
27900
27901 <pre>
27902 % ln foo bar
27903 ln: creating hard link `bar' => `foo': Function not implemented
27904 %
27905 </pre>
27906
27907 <p>I have not yet found time to implement a test for this in my file
27908 system test code, but believe having working hard links is useful to
27909 avoid surprised unix programs. Not as useful as working file locking
27910 and symlinks, which are required to get a working desktop, but useful
27911 nevertheless. :)</p>
27912
27913 <p>The latest version of the file system test code is available via
27914 git from
27915 <a href="http://github.com/gebi/fs-test">http://github.com/gebi/fs-test</a></p>
27916
27917 </div>
27918 <div class="tags">
27919
27920
27921 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
27922
27923
27924 </div>
27925 </div>
27926 <div class="padding"></div>
27927
27928 <div class="entry">
27929 <div class="title">
27930 <a href="http://people.skolelinux.org/pere/blog/Broken_umask_handling_with_sshfs.html">Broken umask handling with sshfs</a>
27931 </div>
27932 <div class="date">
27933 26th August 2010
27934 </div>
27935 <div class="body">
27936 <p>My file system sematics program
27937 <a href="http://people.skolelinux.org/pere/blog/Testing_if_a_file_system_can_be_used_for_home_directories___.html">presented
27938 a few days ago</a> is very useful to verify that a file system can
27939 work as a unix home directory,and today I had to extend it a bit. I'm
27940 looking into alternatives for home directory access here at the
27941 University of Oslo, and one of the options is sshfs. My friend
27942 Finn-Arne mentioned a while back that they had used sshfs with Debian
27943 Edu, but stopped because of problems. I asked today what the problems
27944 where, and he mentioned that sshfs failed to handle umask properly.
27945 Trying to detect the problem I wrote this addition to my fs testing
27946 script:</p>
27947
27948 <pre>
27949 mode_t touch_get_mode(const char *name, mode_t mode) {
27950 mode_t retval = 0;
27951 int fd = open(name, O_RDWR|O_CREAT|O_LARGEFILE, mode);
27952 if (-1 != fd) {
27953 unlink(name);
27954 struct stat statbuf;
27955 if (-1 != fstat(fd, &statbuf)) {
27956 retval = statbuf.st_mode & 0x1ff;
27957 }
27958 close(fd);
27959 }
27960 return retval;
27961 }
27962
27963 /* Try to detect problem discovered using sshfs */
27964 int test_umask(void) {
27965 printf("info: testing umask effect on file creation\n");
27966
27967 mode_t orig_umask = umask(000);
27968 mode_t newmode;
27969 if (0666 != (newmode = touch_get_mode("foobar", 0666))) {
27970 printf(" error: Wrong file mode %o when creating using mode 666 and umask 000\n",
27971 newmode);
27972 }
27973 umask(007);
27974 if (0660 != (newmode = touch_get_mode("foobar", 0666))) {
27975 printf(" error: Wrong file mode %o when creating using mode 666 and umask 007\n",
27976 newmode);
27977 }
27978
27979 umask (orig_umask);
27980 return 0;
27981 }
27982
27983 int main(int argc, char **argv) {
27984 [...]
27985 test_umask();
27986 return 0;
27987 }
27988 </pre>
27989
27990 <p>Sure enough. On NFS to a netapp, I get this result:</p>
27991
27992 <pre>
27993 Testing POSIX/Unix sematics on file system
27994 info: testing symlink creation
27995 info: testing subdirectory creation
27996 info: testing fcntl locking
27997 Read-locking 1 byte from 1073741824
27998 Read-locking 510 byte from 1073741826
27999 Unlocking 1 byte from 1073741824
28000 Write-locking 1 byte from 1073741824
28001 Write-locking 510 byte from 1073741826
28002 Unlocking 2 byte from 1073741824
28003 info: testing umask effect on file creation
28004 </pre>
28005
28006 <p>When mounting the same directory using sshfs, I get this
28007 result:</p>
28008
28009 <pre>
28010 Testing POSIX/Unix sematics on file system
28011 info: testing symlink creation
28012 info: testing subdirectory creation
28013 info: testing fcntl locking
28014 Read-locking 1 byte from 1073741824
28015 Read-locking 510 byte from 1073741826
28016 Unlocking 1 byte from 1073741824
28017 Write-locking 1 byte from 1073741824
28018 Write-locking 510 byte from 1073741826
28019 Unlocking 2 byte from 1073741824
28020 info: testing umask effect on file creation
28021 error: Wrong file mode 644 when creating using mode 666 and umask 000
28022 error: Wrong file mode 640 when creating using mode 666 and umask 007
28023 </pre>
28024
28025 <p>So, I can conclude that sshfs is better than smb to a Netapp or a
28026 Windows server, but not good enough to be used as a home
28027 directory.</p>
28028
28029 <p>Update 2010-08-26: Reported the issue in
28030 <a href="http://bugs.debian.org/594498">BTS report #594498</a></p>
28031
28032 <p>Update 2010-08-27: Michael Gebetsroither report that he found the
28033 script so useful that he created a GIT repository and stored it in
28034 <a href="http://github.com/gebi/fs-test">http://github.com/gebi/fs-test</a>.</p>
28035
28036 </div>
28037 <div class="tags">
28038
28039
28040 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
28041
28042
28043 </div>
28044 </div>
28045 <div class="padding"></div>
28046
28047 <div class="entry">
28048 <div class="title">
28049 <a href="http://people.skolelinux.org/pere/blog/Rob_Weir__How_to_Crush_Dissent.html">Rob Weir: How to Crush Dissent</a>
28050 </div>
28051 <div class="date">
28052 15th August 2010
28053 </div>
28054 <div class="body">
28055 <p>I found the notes from Rob Weir on
28056 <a href="http://feedproxy.google.com/~r/robweir/antic-atom/~3/VGb23-kta8c/how-to-crush-dissent.html">how
28057 to crush dissent</a> matching my own thoughts on the matter quite
28058 well. Highly recommended for those wondering which road our society
28059 should go down. In my view we have been heading the wrong way for a
28060 long time.</p>
28061
28062 </div>
28063 <div class="tags">
28064
28065
28066 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/lenker">lenker</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/sikkerhet">sikkerhet</a>.
28067
28068
28069 </div>
28070 </div>
28071 <div class="padding"></div>
28072
28073 <div class="entry">
28074 <div class="title">
28075 <a href="http://people.skolelinux.org/pere/blog/No_hardcoded_config_on_Debian_Edu_clients.html">No hardcoded config on Debian Edu clients</a>
28076 </div>
28077 <div class="date">
28078 9th August 2010
28079 </div>
28080 <div class="body">
28081 <p>As reported earlier, the last few days I have looked at how Debian
28082 Edu clients are configured, and tried to get rid of all hardcoded
28083 configuration settings on the clients. I believe the work to be
28084 mostly done, and the clients seem to work just fine with dynamically
28085 generated configuration.</p>
28086
28087 <p>What is the point, you might ask? The point is to allow a Debian
28088 Edu desktop to integrate into an existing network infrastructure
28089 without any manual configuration.</p>
28090
28091 <p>This is what happens when installing a Debian Edu client here at
28092 the University of Oslo using PXE. With the PXE installation, I am
28093 asked for language (Norwegian Bokmål), locality (Norway) and keyboard
28094 layout (no-latin1), Debian Edu profile (Roaming Workstation), if I
28095 accept to reformat the hard drive (yes), if I want to submit info to
28096 popcon.debian.org (no) and root password (secret). After answering
28097 these questions, the installer goes ahead and does its thing, and
28098 after around 50 minutes it is done. I press enter to finish the
28099 installation, and the machine reboots into KDE. When the machine is
28100 ready and kdm asks for login information, I enter my university
28101 username and password, am told by kdm that a local home directory has
28102 been created and that I must log in again, and finally log in with the
28103 same username and password to the KDE 4.4 desktop. At no point during
28104 this process did it ask for university specific settings, and all the
28105 required configuration was dynamically detected using information
28106 fetched via DHCP and DNS. The roaming workstation is now ready for
28107 use.</p>
28108
28109 <p>How was this done, you might wonder? First of all, here is the
28110 list of things that need to be configured on the client to get it
28111 working properly out of the box:</p>
28112
28113 <ul>
28114 <li>IP address/netmask and DNS server.</li>
28115 <li>Web proxy URL.</li>
28116 <li>LDAP server for NSS directory information (user, group, etc).</li>
28117 <li>Kerberos server for PAM password checking.</li>
28118 <li>SMB mount point to access the network home directory. (*)</li>
28119 <li>Central syslog server to send syslog messages to. (*)</li>
28120 <li>Sitesummary collector URL to submit info to central server. (*)</li>
28121 </ul>
28122
28123 <p>(Hm, did I forget anything? Let me knew if I did.)</p>
28124
28125 <p>The points marked (*) are not required to be able to use the
28126 machine, but needed to provide central storage and allowing system
28127 administrators to track their machines. Since yesterday, everything
28128 but the sitesummary collector URL is dynamically discovered at boot
28129 and installation time in the svn version of Debian Edu.</p>
28130
28131 <p>The IP and DNS setup is fetched during boot using DHCP as usual.
28132 When a DHCP update arrives, the proxy setup is updated by looking for
28133 http://wpat/wpad.dat and using the content of this WPAD file to
28134 configure the http and ftp proxy in /etc/environment and
28135 /etc/apt/apt.conf. I decided to update the proxy setup using a DHCP
28136 hook to ensure that the client stops using the Debian Edu proxy when
28137 it is moved outside the Debian Edu network, and instead uses any local
28138 proxy present on the new network when it moves around.</p>
28139
28140 <p>The DNS names of the LDAP, Kerberos and syslog server and related
28141 configuration are generated using DNS information at boot. First the
28142 installer looks for a host named ldap in the current DNS domain. If
28143 not found, it looks for _ldap._tcp SRV records in DNS instead. If an
28144 LDAP server is found, its root DSE entry is requested and the
28145 attributes namingContexts and defaultNamingContext are used to
28146 determine which LDAP base to use for NSS. If there are several
28147 namingContexts attibutes and the defaultNamingContext is present, that
28148 LDAP subtree is used as the base. If defaultNamingContext is missing,
28149 the subtrees listed as namingContexts are searched in sequence for any
28150 object with class posixAccount or posixGroup, and the first one with
28151 such an object is used as the LDAP base. For Kerberos, a similar
28152 search is done by first looking for a host named kerberos, and then
28153 for the _kerberos._tcp SRV record. I've been unable to find a way to
28154 look up the Kerberos realm, so for this the upper case string of the
28155 current DNS domain is used.</p>
28156
28157 <p>For the syslog server, the hosts syslog and loghost are searched
28158 for, and the _syslog._udp SRV record is consulted if no such host is
28159 found. This algorithm works for both Debian Edu and the University of
28160 Oslo. A similar strategy would work for locating the sitesummary
28161 server, but have not been implemented yet. I decided to fetch and
28162 save these settings during installation, to make sure moving to a
28163 different network does not change the set of users being allowed to
28164 log in nor the passwords required to log in. Usernames and passwords
28165 will be cached by sssd when the user logs in on the Debian Edu
28166 network, and will not change as the laptop move around. For a
28167 non-roaming machine, there is no caching, but given that it is
28168 supposed to stay in place it should not matter much. Perhaps we
28169 should switch those to use sssd too?</p>
28170
28171 <p>The user's SMB mount point for the network home directory is
28172 located when the user logs in for the first time. The LDAP server is
28173 consulted to look for the user's LDAP object and the sambaHomePath
28174 attribute is used if found. If it isn't found, the home directory
28175 path fetched from NSS is used instead. Assuming the path is of the
28176 form /site/server/directory/username, the second part is looked up in
28177 DNS and used to generate a SMB URL of the form
28178 smb://server.domain/username. This algorithm works for both Debian
28179 edu and the University of Oslo. Perhaps there are better attributes
28180 to use or a better algorithm that works for more sites, but this will
28181 do for now. :)</p>
28182
28183 <p>This work should make it easier to integrate the Debian Edu clients
28184 into any LDAP/Kerberos infrastructure, and make the current setup even
28185 more flexible than before. I suspect it will also work for thin
28186 client servers, allowing one to easily set up LTSP and hook it into a
28187 existing network infrastructure, but I have not had time to test this
28188 yet.</p>
28189
28190 <p>If you want to help out with implementing these things for Debian
28191 Edu, please contact us on debian-edu@lists.debian.org.</p>
28192
28193 <p>Update 2010-08-09: Simon Farnsworth gave me a heads-up on how to
28194 detect Kerberos realm from DNS, by looking for _kerberos TXT entries
28195 before falling back to the upper case DNS domain name. Will have to
28196 implement it for Debian Edu. :)</p>
28197
28198 </div>
28199 <div class="tags">
28200
28201
28202 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
28203
28204
28205 </div>
28206 </div>
28207 <div class="padding"></div>
28208
28209 <div class="entry">
28210 <div class="title">
28211 <a href="http://people.skolelinux.org/pere/blog/Testing_if_a_file_system_can_be_used_for_home_directories___.html">Testing if a file system can be used for home directories...</a>
28212 </div>
28213 <div class="date">
28214 8th August 2010
28215 </div>
28216 <div class="body">
28217 <p>A few years ago, I was involved in a project planning to use
28218 Windows file servers as home directory servers for Debian
28219 Edu/Skolelinux machines. This was thought to be no problem, as the
28220 access would be through the SMB network file system protocol, and we
28221 knew other sites used SMB with unix and samba as the file server to
28222 mount home directories without any problems. But, after months of
28223 struggling, we had to conclude that our goal was impossible.</p>
28224
28225 <p>The reason is simply that while SMB can be used for home
28226 directories when the file server is Samba running on Unix, this only
28227 work because of Samba have some extensions and the fact that the
28228 underlying file system is a unix file system. When using a Windows
28229 file server, the underlying file system do not have POSIX semantics,
28230 and several programs will fail if the users home directory where they
28231 want to store their configuration lack POSIX semantics.</p>
28232
28233 <p>As part of this work, I wrote a small C program I want to share
28234 with you all, to replicate a few of the problematic applications (like
28235 OpenOffice.org and GCompris) and see if the file system was working as
28236 it should. If you find yourself in spooky file system land, it might
28237 help you find your way out again. This is the fs-test.c source:</p>
28238
28239 <pre>
28240 /*
28241 * Some tests to check the file system sematics. Used to verify that
28242 * CIFS from a windows server do not work properly as a linux home
28243 * directory.
28244 * License: GPL v2 or later
28245 *
28246 * needs libsqlite3-dev and build-essential installed
28247 * compile with: gcc -Wall -lsqlite3 -DTEST_SQLITE fs-test.c -o fs-test
28248 */
28249
28250 #define _FILE_OFFSET_BITS 64
28251 #define _LARGEFILE_SOURCE 1
28252 #define _LARGEFILE64_SOURCE 1
28253
28254 #define _GNU_SOURCE /* for asprintf() */
28255
28256 #include &lt;errno.h>
28257 #include &lt;fcntl.h>
28258 #include &lt;stdio.h>
28259 #include &lt;string.h>
28260 #include &lt;stdlib.h>
28261 #include &lt;sys/file.h>
28262 #include &lt;sys/stat.h>
28263 #include &lt;sys/types.h>
28264 #include &lt;unistd.h>
28265
28266 #ifdef TEST_SQLITE
28267 /*
28268 * Test sqlite open, as done by gcompris require the libsqlite3-dev
28269 * package and linking with -lsqlite3. A more low level test is
28270 * below.
28271 * See also &lt;URL: http://www.sqlite.org./faq.html#q5 >.
28272 */
28273 #include &lt;sqlite3.h>
28274 #define CREATE_TABLE_USERS \
28275 "CREATE TABLE users (user_id INT UNIQUE, login TEXT, lastname TEXT, firstname TEXT, birthdate TEXT, class_id INT ); "
28276 int test_sqlite_open(void) {
28277 char *zErrMsg;
28278 char *name = "testsqlite.db";
28279 sqlite3 *db=NULL;
28280 unlink(name);
28281 int rc = sqlite3_open(name, &db);
28282 if( rc ){
28283 printf("error: sqlite open of %s failed: %s\n", name, sqlite3_errmsg(db));
28284 sqlite3_close(db);
28285 return -1;
28286 }
28287
28288 /* create tables */
28289 rc = sqlite3_exec(db,CREATE_TABLE_USERS, NULL, 0, &zErrMsg);
28290 if( rc != SQLITE_OK ){
28291 printf("error: sqlite table create failed: %s\n", zErrMsg);
28292 sqlite3_close(db);
28293 return -1;
28294 }
28295 printf("info: sqlite worked\n");
28296 sqlite3_close(db);
28297 return 0;
28298 }
28299 #endif /* TEST_SQLITE */
28300
28301 /*
28302 * Demonstrate locking issue found in gcompris using sqlite3. This
28303 * work with ext3, but not with cifs server on Windows 2003. This is
28304 * done in the sqlite3 library.
28305 * See also
28306 * &lt;URL:http://www.cygwin.com/ml/cygwin/2001-08/msg00854.html> and the
28307 * POSIX specification
28308 * &lt;URL:http://www.opengroup.org/onlinepubs/009695399/functions/fcntl.html>.
28309 */
28310 int test_gcompris_locking(void) {
28311 struct flock fl;
28312 char *name = "testsqlite.db";
28313 unlink(name);
28314 int fd = open(name, O_RDWR|O_CREAT|O_LARGEFILE, 0644);
28315 printf("info: testing fcntl locking\n");
28316
28317 fl.l_whence = SEEK_SET;
28318 fl.l_pid = getpid();
28319 printf(" Read-locking 1 byte from 1073741824");
28320 fl.l_start = 1073741824;
28321 fl.l_len = 1;
28322 fl.l_type = F_RDLCK;
28323 if (0 != fcntl(fd, F_SETLK, &fl) ) printf(" - error!\n"); else printf("\n");
28324
28325 printf(" Read-locking 510 byte from 1073741826");
28326 fl.l_start = 1073741826;
28327 fl.l_len = 510;
28328 fl.l_type = F_RDLCK;
28329 if (0 != fcntl(fd, F_SETLK, &fl) ) printf(" - error!\n"); else printf("\n");
28330
28331 printf(" Unlocking 1 byte from 1073741824");
28332 fl.l_start = 1073741824;
28333 fl.l_len = 1;
28334 fl.l_type = F_UNLCK;
28335 if (0 != fcntl(fd, F_SETLK, &fl) ) printf(" - error!\n"); else printf("\n");
28336
28337 printf(" Write-locking 1 byte from 1073741824");
28338 fl.l_start = 1073741824;
28339 fl.l_len = 1;
28340 fl.l_type = F_WRLCK;
28341 if (0 != fcntl(fd, F_SETLK, &fl) ) printf(" - error!\n"); else printf("\n");
28342
28343 printf(" Write-locking 510 byte from 1073741826");
28344 fl.l_start = 1073741826;
28345 fl.l_len = 510;
28346 if (0 != fcntl(fd, F_SETLK, &fl) ) printf(" - error!\n"); else printf("\n");
28347
28348 printf(" Unlocking 2 byte from 1073741824");
28349 fl.l_start = 1073741824;
28350 fl.l_len = 2;
28351 fl.l_type = F_UNLCK;
28352 if (0 != fcntl(fd, F_SETLK, &fl) ) printf(" - error!\n"); else printf("\n");
28353
28354 close(fd);
28355 return 0;
28356 }
28357
28358 /*
28359 * Test if permissions of freshly created directories allow entries
28360 * below them. This was a problem with OpenOffice.org and gcompris.
28361 * Mounting with option 'sync' seem to solve this problem while
28362 * slowing down file operations.
28363 */
28364 int test_subdirectory_creation(void) {
28365 #define LEVELS 5
28366 char *path = strdup("test");
28367 char *dirs[LEVELS];
28368 int level;
28369 printf("info: testing subdirectory creation\n");
28370 for (level = 0; level &lt; LEVELS; level++) {
28371 char *newpath = NULL;
28372 if (-1 == mkdir(path, 0777)) {
28373 printf(" error: Unable to create directory '%s': %s\n",
28374 path, strerror(errno));
28375 break;
28376 }
28377 asprintf(&newpath, "%s/%s", path, "test");
28378 free(path);
28379 path = newpath;
28380 }
28381 return 0;
28382 }
28383
28384 /*
28385 * Test if symlinks can be created. This was a problem detected with
28386 * KDE.
28387 */
28388 int test_symlinks(void) {
28389 printf("info: testing symlink creation\n");
28390 unlink("symlink");
28391 if (-1 == symlink("file", "symlink"))
28392 printf(" error: Unable to create symlink\n");
28393 return 0;
28394 }
28395
28396 int main(int argc, char **argv) {
28397 printf("Testing POSIX/Unix sematics on file system\n");
28398 test_symlinks();
28399 test_subdirectory_creation();
28400 #ifdef TEST_SQLITE
28401 test_sqlite_open();
28402 #endif /* TEST_SQLITE */
28403 test_gcompris_locking();
28404 return 0;
28405 }
28406 </pre>
28407
28408 <p>When everything is working, it should print something like
28409 this:</p>
28410
28411 <pre>
28412 Testing POSIX/Unix sematics on file system
28413 info: testing symlink creation
28414 info: testing subdirectory creation
28415 info: sqlite worked
28416 info: testing fcntl locking
28417 Read-locking 1 byte from 1073741824
28418 Read-locking 510 byte from 1073741826
28419 Unlocking 1 byte from 1073741824
28420 Write-locking 1 byte from 1073741824
28421 Write-locking 510 byte from 1073741826
28422 Unlocking 2 byte from 1073741824
28423 </pre>
28424
28425 <p>I do not remember the exact details of the problems we saw, but one
28426 of them was with locking, where if I remember correctly, POSIX allow a
28427 read-only lock to be upgraded to a read-write lock without unlocking
28428 the read-only lock (while Windows do not). Another was a bug in the
28429 CIFS/SMB client implementation in the Linux kernel where directory
28430 meta information would be wrong for a fraction of a second, making
28431 OpenOffice.org fail to create its deep directory tree because it was
28432 not allowed to create files in its freshly created directory.</p>
28433
28434 <p>Anyway, here is a nice tool for your tool box, might you never need
28435 it. :)</p>
28436
28437 <p>Update 2010-08-27: Michael Gebetsroither report that he found the
28438 script so useful that he created a GIT repository and stored it in
28439 <a href="http://github.com/gebi/fs-test">http://github.com/gebi/fs-test</a>.</p>
28440
28441 </div>
28442 <div class="tags">
28443
28444
28445 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
28446
28447
28448 </div>
28449 </div>
28450 <div class="padding"></div>
28451
28452 <div class="entry">
28453 <div class="title">
28454 <a href="http://people.skolelinux.org/pere/blog/Autodetecting_Client_setup_for_roaming_workstations_in_Debian_Edu.html">Autodetecting Client setup for roaming workstations in Debian Edu</a>
28455 </div>
28456 <div class="date">
28457 7th August 2010
28458 </div>
28459 <div class="body">
28460 <p>A few days ago, I
28461 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_roaming_workstation___at_the_university_of_Oslo.html">tried
28462 to install</a> a Roaming workation profile from Debian Edu/Squeeze
28463 while on the university network here at the University of Oslo, and
28464 noticed how much had to change to get it operational using the
28465 university infrastructure. It was fairly easy, but it occured to me
28466 that Debian Edu would improve a lot if I could get the client to
28467 connect without any changes at all, and thus let the client configure
28468 itself during installation and first boot to use the infrastructure
28469 around it. Now I am a huge step further along that road.</p>
28470
28471 <p>With our current squeeze-test packages, I can select the roaming
28472 workstation profile and get a working laptop connecting to the
28473 university LDAP server for user and group and our active directory
28474 servers for Kerberos authentication. All this without any
28475 configuration at all during installation. My users home directory got
28476 a bookmark in the KDE menu to mount it via SMB, with the correct URL.
28477 In short, openldap and sssd is correctly configured. In addition to
28478 this, the client look for http://wpad/wpad.dat to configure a web
28479 proxy, and when it fail to find it no proxy settings are stored in
28480 /etc/environment and /etc/apt/apt.conf. Iceweasel and KDE is
28481 configured to look for the same wpad configuration and also do not use
28482 a proxy when at the university network. If the machine is moved to a
28483 network with such wpad setup, it would automatically use it when DHCP
28484 gave it a IP address.</p>
28485
28486 <p>The LDAP server is located using DNS, by first looking for the DNS
28487 entry ldap.$domain. If this do not exist, it look for the
28488 _ldap._tcp.$domain SRV records and use the first one as the LDAP
28489 server. Next, it connects to the LDAP server and search all
28490 namingContexts entries for posixAccount or posixGroup objects, and
28491 pick the first one as the LDAP base. For Kerberos, a similar
28492 algorithm is used to locate the LDAP server, and the realm is the
28493 uppercase version of $domain.</p>
28494
28495 <p>So, what is not working, you might ask. SMB mounting my home
28496 directory do not work. No idea why, but suspected the incorrect
28497 Kerberos settings in /etc/krb5.conf and /etc/samba/smb.conf might be
28498 the cause. These are not properly configured during installation, and
28499 had to be hand-edited to get the correct Kerberos realm and server,
28500 but SMB mounting still do not work. :(</p>
28501
28502 <p>With this automatic configuration in place, I expect a Debian Edu
28503 roaming profile installation would be able to automatically detect and
28504 connect to any site using LDAP and Kerberos for NSS directory and PAM
28505 authentication. It should also work out of the box in a Active
28506 Directory environment providing posixAccount and posixGroup objects
28507 with UID and GID values.</p>
28508
28509 <p>If you want to help out with implementing these things for Debian
28510 Edu, please contact us on debian-edu@lists.debian.org.</p>
28511
28512 </div>
28513 <div class="tags">
28514
28515
28516 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
28517
28518
28519 </div>
28520 </div>
28521 <div class="padding"></div>
28522
28523 <div class="entry">
28524 <div class="title">
28525 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_roaming_workstation___at_the_university_of_Oslo.html">Debian Edu roaming workstation - at the university of Oslo</a>
28526 </div>
28527 <div class="date">
28528 3rd August 2010
28529 </div>
28530 <div class="body">
28531 <p>The new roaming workstation profile in Debian Edu/Squeeze is fairly
28532 similar to the laptop setup am I working on using Ubuntu for the
28533 University of Oslo, and just for the heck of it, I tested today how
28534 hard it would be to integrate that profile into the university
28535 infrastructure. In this case, it is the university LDAP server,
28536 Active Directory Kerberos server and SMB mounting from the Netapp file
28537 servers.</p>
28538
28539 <p>I was pleasantly surprised that the only three files needed to be
28540 changed (/etc/sssd/sssd.conf, /etc/ldap.conf and
28541 /etc/mklocaluser.d/20-debian-edu-config) and one file had to be added
28542 (/usr/share/perl5/Debian/Edu_Local.pm), to get the client working.
28543 Most of the changes were to get the client to use the university LDAP
28544 for NSS and Kerberos server for PAM, but one was to change a hard
28545 coded DNS domain name in the mklocaluser hook from .intern to
28546 .uio.no.</p>
28547
28548 <p>This testing was so encouraging, that I went ahead and adjusted the
28549 Debian Edu scripts and setup in subversion to centralise the roaming
28550 workstation setup a bit more and avoid the hardcoded DNS domain name,
28551 so that when I test this tomorrow, I expect to get away with modifying
28552 only /etc/sssd/sssd.conf and /etc/ldap.conf to get it to use the
28553 university servers.</p>
28554
28555 <p>My goal is to get the clients to have no hardcoded settings and
28556 fetch all their initial setup during installation and first boot, to
28557 allow them to be inserted also into environments where the default
28558 setup in Debian Edu has been changed or as with the university, where
28559 the environment is different but provides the protocols Debian Edu
28560 uses.</p>
28561
28562 </div>
28563 <div class="tags">
28564
28565
28566 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
28567
28568
28569 </div>
28570 </div>
28571 <div class="padding"></div>
28572
28573 <div class="entry">
28574 <div class="title">
28575 <a href="http://people.skolelinux.org/pere/blog/Circular_package_dependencies_harms_apt_recovery.html">Circular package dependencies harms apt recovery</a>
28576 </div>
28577 <div class="date">
28578 27th July 2010
28579 </div>
28580 <div class="body">
28581 <p>I discovered this while doing
28582 <a href="http://people.skolelinux.org/pere/blog/Automatic_upgrade_testing_from_Lenny_to_Squeeze.html">automated
28583 testing of upgrades from Debian Lenny to Squeeze</a>. A few packages
28584 in Debian still got circular dependencies, and it is often claimed
28585 that apt and aptitude should be able to handle this just fine, but
28586 some times these dependency loops causes apt to fail.</p>
28587
28588 <p>An example is from todays
28589 <a href="http://people.skolelinux.org/~pere/debian-upgrade-testing//test-20100727-lenny-squeeze-kde-aptitude.txt">upgrade
28590 of KDE using aptitude</a>. In it, a bug in kdebase-workspace-data
28591 causes perl-modules to fail to upgrade. The cause is simple. If a
28592 package fail to unpack, then only part of packages with the circular
28593 dependency might end up being unpacked when unpacking aborts, and the
28594 ones already unpacked will fail to configure in the recovery phase
28595 because its dependencies are unavailable.</p>
28596
28597 <p>In this log, the problem manifest itself with this error:</p>
28598
28599 <blockquote><pre>
28600 dpkg: dependency problems prevent configuration of perl-modules:
28601 perl-modules depends on perl (>= 5.10.1-1); however:
28602 Version of perl on system is 5.10.0-19lenny2.
28603 dpkg: error processing perl-modules (--configure):
28604 dependency problems - leaving unconfigured
28605 </pre></blockquote>
28606
28607 <p>The perl/perl-modules circular dependency is already
28608 <a href="http://bugs.debian.org/527917">reported as a bug</a>, and will
28609 hopefully be solved as soon as possible, but it is not the only one,
28610 and each one of these loops in the dependency tree can cause similar
28611 failures. Of course, they only occur when there are bugs in other
28612 packages causing the unpacking to fail, but it is rather nasty when
28613 the failure of one package causes the problem to become worse because
28614 of dependency loops.</p>
28615
28616 <p>Thanks to
28617 <a href="http://lists.debian.org/debian-devel/2010/06/msg00116.html">the
28618 tireless effort by Bill Allombert</a>, the number of circular
28619 dependencies
28620 <a href="http://debian.semistable.com/debgraph.out.html">left in Debian
28621 is dropping</a>, and perhaps it will reach zero one day. :)</p>
28622
28623 <p>Todays testing also exposed a bug in
28624 <a href="http://bugs.debian.org/590605">update-notifier</a> and
28625 <a href="http://bugs.debian.org/590604">different behaviour</a> between
28626 apt-get and aptitude, the latter possibly caused by some circular
28627 dependency. Reported both to BTS to try to get someone to look at
28628 it.</p>
28629
28630 </div>
28631 <div class="tags">
28632
28633
28634 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/nuug">nuug</a>.
28635
28636
28637 </div>
28638 </div>
28639 <div class="padding"></div>
28640
28641 <div class="entry">
28642 <div class="title">
28643 <a href="http://people.skolelinux.org/pere/blog/First_Debian_Edu_test_release__alpha0__based_on_Squeeze_is_released.html">First Debian Edu test release (alpha0) based on Squeeze is released</a>
28644 </div>
28645 <div class="date">
28646 27th July 2010
28647 </div>
28648 <div class="body">
28649 <p>I just posted this announcement culminating several months of work
28650 with the next Debian Edu release. Not nearly done, but one major step
28651 completed.</p>
28652
28653 <blockquote>
28654 <p>This is the first test release based on Squeeze. The focus of this
28655 release is to test the user application selection. To have a look,
28656 install the standalone profile and let the developers know if the set
28657 of installed packages i.e. applications should be modified. If some
28658 user application is missing, or if there are some applications that no
28659 longer make sense to be included in Debian Edu, please let us know.
28660 Also, if a useful application is missing the translation for your
28661 language of choice, please let us know too.</p>
28662
28663 <p>In addition, feedback and help to polish the desktop (menus,
28664 artwork, starters, etc.) is appreciated. We would like to ship a nice
28665 and handy KDE4 desktop targeted for schools out of the box.</p>
28666
28667 <p>The other profiles should be installable, but there is a lot more
28668 work left to be done before they are ready, so do not expect to
28669 much.</p>
28670
28671 <p>Changes compared to the lenny based version</p>
28672
28673 <ul>
28674 <li>Everything from Debian Squeeze
28675 <ul>
28676 <li>Desktop environment KDE 4.4 => the new KDE desktop in
28677 combination with some new artwork
28678 <li>Web browser Iceweasel 3.5
28679 <li>OpenOffice.org 3.2
28680 <li>Educational toolbox GCompris 9.3
28681 <li>Music creator Rosegarden 10.04.2
28682 <li>Image editor Gimp 2.6.10
28683 <li>Virtual universe Celestia 1.6.0
28684 <li>Virtual stargazer Stellarium 0.10.4
28685 <li>3D modeler Blender 2.49.2 (new application)
28686 <li>Video editor Kdenlive 0.7.7 (new application)
28687 </ul></li>
28688 <li>Now using Kerberos for password checking (migration not finished).
28689 Enabled for:
28690 <ul>
28691 <li>PAM
28692 <li>LDAP
28693 <li>IMAP
28694 <li>SMTP (sender verification)
28695 </ul>
28696 </li>
28697 <li>New experimental roaming workstation profile for laptops.</li>
28698 <li>Show welcome page to users when they first log in. The URL is
28699 fetched from LDAP.</li>
28700 <li>New LXDE desktop option, in addition to KDE (default) and Gnome.</li>
28701 <li>General cleanup (not finished)</li>
28702 </ul>
28703 <p>The following features are not working as they should</p>
28704
28705 <ul>
28706 <li>No web based administration tool for creating users and groups. The
28707 scripts ldap-createuser-krb and ldap-add-user-to-group can be used
28708 for testing.</li>
28709 <li>DVD installs are missing debian-installer images for the PXE boot,
28710 and do not set up the PXE menu on eth0 because of this. LTSP
28711 clients should still boot from eth1 on thin client servers.</li>
28712 <li>The restructured KDE menu is not implemented.</li>
28713 <li>The LDAP server setup need to be reviewed for security.</li>
28714 <li>The LDAP directory structure need to be reworked.</li>
28715 <li>Different sets of packages are installed when using the DVD and the
28716 netinst CD. More packages are installed using the netinst CD.</li>
28717 <li>The jackd package fail to install. This is believed to be caused by
28718 some ongoing transition, and hopefully should be solved soon. The
28719 jackd1 package can be installed manually for those that need it.</li>
28720 <li>Some packages lack translations. See
28721 http://wiki.debian.org/DebianEdu/Status/Squeeze for updated status,
28722 and help out with translations.</li>
28723 </ul>
28724
28725 <p>To download this multiarch netinstall release you can use</p>
28726
28727 <ul>
28728 <li><a href="ftp://ftp.skolelinux.org/skolelinux-cd/squeeze-alpha/debian-edu-6.0.0+edua0-CD.iso">ftp://ftp.skolelinux.org/skolelinux-cd/squeeze-alpha/debian-edu-6.0.0+edua0-CD.iso</a></li>
28729 <li><a href="http://ftp.skolelinux.org/skolelinux-cd/squeeze-alpha/debian-edu-6.0.0+edua0-CD.iso">http://ftp.skolelinux.org/skolelinux-cd/squeeze-alpha/debian-edu-6.0.0+edua0-CD.iso</a></li>
28730 <li>rsync -avzP ftp.skolelinux.org::skolelinux-cd/squeeze-alpha/debian-edu-6.0.0+edua0-CD.iso</li>
28731 </ul>
28732 <p>To download this multiarch dvd release you can use</p>
28733
28734 <ul>
28735 <li><a href="ftp://ftp.skolelinux.org/skolelinux-cd/squeeze-alpha/debian-edu-6.0.0+edua0-DVD.iso">ftp://ftp.skolelinux.org/skolelinux-cd/squeeze-alpha/debian-edu-6.0.0+edua0-DVD.iso</a></li>
28736 <li><a href="http://ftp.skolelinux.org/skolelinux-cd/squeeze-alpha/debian-edu-6.0.0+edua0-DVD.iso">http://ftp.skolelinux.org/skolelinux-cd/squeeze-alpha/debian-edu-6.0.0+edua0-DVD.iso</a></li>
28737 <li>rsync -avzP ftp.skolelinux.org::skolelinux-cd/squeeze-alpha/debian-edu-6.0.0+edua0-DVD.iso</li>
28738 </ul>
28739
28740 <p>There is no source DVD available yet. It will be prepared when we
28741 get closer to the final release.</p>
28742
28743 <p>The MD5SUM of these images are</p>
28744
28745 <ul>
28746 <li>3dbf45d59f42a53518b6e3c9ec3b5eb6 debian-edu-6.0.0+edua0-CD.iso</li>
28747 <li>22f2cbfce281d1c6e478be452638675d debian-edu-6.0.0+edua0-DVD.iso</li>
28748 </ul>
28749
28750 <p>The SHA1SUM of these images are</p>
28751 <ul>
28752 <li>c53d1b69b40cf37cd27aefaf33f6f6a3821bedf0 debian-edu-6.0.0+edua0-CD.iso</li>
28753 <li>2ec29d7db676d59d32197b05c277ffe16348376c debian-edu-6.0.0+edua0-DVD.iso</li>
28754 </ul>
28755 <p>How to report bugs:
28756 http://wiki.debian.org/DebianEdu/HowTo/ReportBugsInBugzilla</p>
28757
28758 <p>Please direct replies to debian-edu@lists.debian.org</p>
28759 </blockquote>
28760
28761 </div>
28762 <div class="tags">
28763
28764
28765 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
28766
28767
28768 </div>
28769 </div>
28770 <div class="padding"></div>
28771
28772 <div class="entry">
28773 <div class="title">
28774 <a href="http://people.skolelinux.org/pere/blog/One_step_closer_to_single_signon_in_Debian_Edu.html">One step closer to single signon in Debian Edu</a>
28775 </div>
28776 <div class="date">
28777 25th July 2010
28778 </div>
28779 <div class="body">
28780 <p>The last few months me and the other Debian Edu developers have
28781 been working hard to get the Debian/Squeeze based version of Debian
28782 Edu/Skolelinux into shape. This future version will use Kerberos for
28783 authentication, and services are slowly migrated to single signon,
28784 getting rid of password questions one at the time.</p>
28785
28786 <p>It will also feature a roaming workstation profile with local home
28787 directory, for laptops that are only some times on the Skolelinux
28788 network, and for this profile a shortcut is created in Gnome and KDE
28789 to gain access to the users home directory on the file server. This
28790 shortcut uses SMB at the moment, and yesterday I had time to test if
28791 SMB mounting had started working in KDE after we added the cifs-utils
28792 package. I was pleasantly surprised how well it worked.</p>
28793
28794 <p>Thanks to the recent changes to our samba configuration to get it
28795 to use Kerberos for authentication, there were no question about user
28796 password when mounting the SMB volume. A simple click on the shortcut
28797 in the KDE menu, and a window with the home directory popped
28798 up. :)</p>
28799
28800 <p>One step closer to a single signon solution out of the box in
28801 Debian Edu. We already had PAM, LDAP, IMAP and SMTP in place, and now
28802 also Samba. Next step is Cups and hopefully also NFS.</p>
28803
28804 <p>We had planned a alpha0 release of Debian Edu for today, but thanks
28805 to the autobuilder administrators for some architectures being slow to
28806 sign packages, we are still missing the fixed LTSP package we need for
28807 the release. It was uploaded three days ago with urgency=high, and if
28808 it had entered testing yesterday we would have been able to test it in
28809 time for a alpha0 release today. As the binaries for ia64 and powerpc
28810 still not uploaded to the Debian archive, we need to delay the alpha
28811 release another day.</p>
28812
28813 <p>If you want to help out with implementing Kerberos for Debian Edu,
28814 please contact us on debian-edu@lists.debian.org.</p>
28815
28816 </div>
28817 <div class="tags">
28818
28819
28820 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>.
28821
28822
28823 </div>
28824 </div>
28825 <div class="padding"></div>
28826
28827 <div class="entry">
28828 <div class="title">
28829 <a href="http://people.skolelinux.org/pere/blog/OpenStreetmap_one_step_closer_to_having_routing_on_its_front_page.html">OpenStreetmap one step closer to having routing on its front page</a>
28830 </div>
28831 <div class="date">
28832 18th July 2010
28833 </div>
28834 <div class="body">
28835 <p>Thanks to
28836 <a href="http://feedproxy.google.com/~r/Opengeodata/~3/wUTCzDZk3lc/project-of-the-week-which-way-home">todays
28837 opengeodata blog entry</a>, I just discovered that the
28838 OpenStreetmap.org site have gotten
28839 <a href="http://nroets.dev.openstreetmap.org/demo/index.html?layers=B000FTFTT">support
28840 for calculating routes</a>. The support is still experimental and
28841 only available from the development server, until more experience is
28842 gathered on the user interface and any scalability issues.</p>
28843
28844 <p>Earlier, the routing I knew about using the OpenStreetmap.org data
28845 was provided by <a href="http://maps.cloudmade.com/">Cloudmade</a>,
28846 but having it on the main page is required to make everyone aware of
28847 the issue. I've had people reject Openstreetmap.org as a viable
28848 alternative for them because the front page lacked routing support,
28849 and I hope their needs will be catered for when routing show up on the
28850 www.openstreetmap.org front page.</p>
28851
28852 </div>
28853 <div class="tags">
28854
28855
28856 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/kart">kart</a>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</a>.
28857
28858
28859 </div>
28860 </div>
28861 <div class="padding"></div>
28862
28863 <div class="entry">
28864 <div class="title">
28865 <a href="http://people.skolelinux.org/pere/blog/What_are_they_searching_for___PowerDNS_and_ISC_DHCP_in_LDAP.html">What are they searching for - PowerDNS and ISC DHCP in LDAP</a>
28866 </div>
28867 <div class="date">
28868 17th July 2010
28869 </div>
28870 <div class="body">
28871 <p>This is a
28872 <a href="http://people.skolelinux.org/pere/blog/Time_for_new__LDAP_schemas_replacing_RFC_2307_.html">followup</a>
28873 on my
28874 <a href="http://people.skolelinux.org/pere/blog/Idea_for_a_change_to_LDAP_schemas_allowing_DNS_and_DHCP_info_to_be_combined_into_one_object.html">previous
28875 work</a> on
28876 <a href="http://people.skolelinux.org/pere/blog/Combining_PowerDNS_and_ISC_DHCP_LDAP_objects.html">merging
28877 all</a> the computer related LDAP objects in Debian Edu.</p>
28878
28879 <p>As a step to try to see if it possible to merge the DNS and DHCP
28880 LDAP objects, I have had a look at how the packages pdns-backend-ldap
28881 and dhcp3-server-ldap in Debian use the LDAP server. The two
28882 implementations are quite different in how they use LDAP.</p>
28883
28884 To get this information, I started slapd with debugging enabled and
28885 dumped the debug output to a file to get the LDAP searches performed
28886 on a Debian Edu main-server. Here is a summary.
28887
28888 <p><strong>powerdns</strong></p>
28889
28890 <a href="http://www.linuxnetworks.de/doc/index.php/PowerDNS_LDAP_Backend">Clues
28891 on how to</a> set up PowerDNS to use a LDAP backend is available on
28892 the web.
28893
28894 <p>PowerDNS have two modes of operation using LDAP as its backend.
28895 One "strict" mode where the forward and reverse DNS lookups are done
28896 using the same LDAP objects, and a "tree" mode where the forward and
28897 reverse entries are in two different subtrees in LDAP with a structure
28898 based on the DNS names, as in tjener.intern and
28899 2.2.0.10.in-addr.arpa.</p>
28900
28901 <p>In tree mode, the server is set up to use a LDAP subtree as its
28902 base, and uses a "base" scoped search for the DNS name by adding
28903 "dc=tjener,dc=intern," to the base with a filter for
28904 "(associateddomain=tjener.intern)" for the forward entry and
28905 "dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa," with a filter for
28906 "(associateddomain=2.2.0.10.in-addr.arpa)" for the reverse entry. For
28907 forward entries, it is looking for attributes named dnsttl, arecord,
28908 nsrecord, cnamerecord, soarecord, ptrrecord, hinforecord, mxrecord,
28909 txtrecord, rprecord, afsdbrecord, keyrecord, aaaarecord, locrecord,
28910 srvrecord, naptrrecord, kxrecord, certrecord, dsrecord, sshfprecord,
28911 ipseckeyrecord, rrsigrecord, nsecrecord, dnskeyrecord, dhcidrecord,
28912 spfrecord and modifytimestamp. For reverse entries it is looking for
28913 the attributes dnsttl, arecord, nsrecord, cnamerecord, soarecord,
28914 ptrrecord, hinforecord, mxrecord, txtrecord, rprecord, aaaarecord,
28915 locrecord, srvrecord, naptrrecord and modifytimestamp. The equivalent
28916 ldapsearch commands could look like this:</p>
28917
28918 <blockquote><pre>
28919 ldapsearch -h ldap \
28920 -b dc=tjener,dc=intern,ou=hosts,dc=skole,dc=skolelinux,dc=no \
28921 -s base -x '(associateddomain=tjener.intern)' dNSTTL aRecord nSRecord \
28922 cNAMERecord sOARecord pTRRecord hInfoRecord mXRecord tXTRecord \
28923 rPRecord aFSDBRecord KeyRecord aAAARecord lOCRecord sRVRecord \
28924 nAPTRRecord kXRecord certRecord dSRecord sSHFPRecord iPSecKeyRecord \
28925 rRSIGRecord nSECRecord dNSKeyRecord dHCIDRecord sPFRecord modifyTimestamp
28926
28927 ldapsearch -h ldap \
28928 -b dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa,ou=hosts,dc=skole,dc=skolelinux,dc=no \
28929 -s base -x '(associateddomain=2.2.0.10.in-addr.arpa)'
28930 dnsttl, arecord, nsrecord, cnamerecord soarecord ptrrecord \
28931 hinforecord mxrecord txtrecord rprecord aaaarecord locrecord \
28932 srvrecord naptrrecord modifytimestamp
28933 </pre></blockquote>
28934
28935 <p>In Debian Edu/Lenny, the PowerDNS tree mode is used with
28936 ou=hosts,dc=skole,dc=skolelinux,dc=no as the base, and these are two
28937 example LDAP objects used there. In addition to these objects, the
28938 parent objects all th way up to ou=hosts,dc=skole,dc=skolelinux,dc=no
28939 also exist.</p>
28940
28941 <blockquote><pre>
28942 dn: dc=tjener,dc=intern,ou=hosts,dc=skole,dc=skolelinux,dc=no
28943 objectclass: top
28944 objectclass: dnsdomain
28945 objectclass: domainrelatedobject
28946 dc: tjener
28947 arecord: 10.0.2.2
28948 associateddomain: tjener.intern
28949
28950 dn: dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa,ou=hosts,dc=skole,dc=skolelinux,dc=no
28951 objectclass: top
28952 objectclass: dnsdomain2
28953 objectclass: domainrelatedobject
28954 dc: 2
28955 ptrrecord: tjener.intern
28956 associateddomain: 2.2.0.10.in-addr.arpa
28957 </pre></blockquote>
28958
28959 <p>In strict mode, the server behaves differently. When looking for
28960 forward DNS entries, it is doing a "subtree" scoped search with the
28961 same base as in the tree mode for a object with filter
28962 "(associateddomain=tjener.intern)" and requests the attributes dnsttl,
28963 arecord, nsrecord, cnamerecord, soarecord, ptrrecord, hinforecord,
28964 mxrecord, txtrecord, rprecord, aaaarecord, locrecord, srvrecord,
28965 naptrrecord and modifytimestamp. For reverse entires it also do a
28966 subtree scoped search but this time the filter is "(arecord=10.0.2.2)"
28967 and the requested attributes are associateddomain, dnsttl and
28968 modifytimestamp. In short, in strict mode the objects with ptrrecord
28969 go away, and the arecord attribute in the forward object is used
28970 instead.</p>
28971
28972 <p>The forward and reverse searches can be simulated using ldapsearch
28973 like this:</p>
28974
28975 <blockquote><pre>
28976 ldapsearch -h ldap -b ou=hosts,dc=skole,dc=skolelinux,dc=no -s sub -x \
28977 '(associateddomain=tjener.intern)' dNSTTL aRecord nSRecord \
28978 cNAMERecord sOARecord pTRRecord hInfoRecord mXRecord tXTRecord \
28979 rPRecord aFSDBRecord KeyRecord aAAARecord lOCRecord sRVRecord \
28980 nAPTRRecord kXRecord certRecord dSRecord sSHFPRecord iPSecKeyRecord \
28981 rRSIGRecord nSECRecord dNSKeyRecord dHCIDRecord sPFRecord modifyTimestamp
28982
28983 ldapsearch -h ldap -b ou=hosts,dc=skole,dc=skolelinux,dc=no -s sub -x \
28984 '(arecord=10.0.2.2)' associateddomain dnsttl modifytimestamp
28985 </pre></blockquote>
28986
28987 <p>In addition to the forward and reverse searches , there is also a
28988 search for SOA records, which behave similar to the forward and
28989 reverse lookups.</p>
28990
28991 <p>A thing to note with the PowerDNS behaviour is that it do not
28992 specify any objectclass names, and instead look for the attributes it
28993 need to generate a DNS reply. This make it able to work with any
28994 objectclass that provide the needed attributes.</p>
28995
28996 <p>The attributes are normally provided in the cosine (RFC 1274) and
28997 dnsdomain2 schemas. The latter is used for reverse entries like
28998 ptrrecord and recent DNS additions like aaaarecord and srvrecord.</p>
28999
29000 <p>In Debian Edu, we have created DNS objects using the object classes
29001 dcobject (for dc), dnsdomain or dnsdomain2 (structural, for the DNS
29002 attributes) and domainrelatedobject (for associatedDomain). The use
29003 of structural object classes make it impossible to combine these
29004 classes with the object classes used by DHCP.</p>
29005
29006 <p>There are other schemas that could be used too, for example the
29007 dnszone structural object class used by Gosa and bind-sdb for the DNS
29008 attributes combined with the domainrelatedobject object class, but in
29009 this case some unused attributes would have to be included as well
29010 (zonename and relativedomainname).</p>
29011
29012 <p>My proposal for Debian Edu would be to switch PowerDNS to strict
29013 mode and not use any of the existing objectclasses (dnsdomain,
29014 dnsdomain2 and dnszone) when one want to combine the DNS information
29015 with DHCP information, and instead create a auxiliary object class
29016 defined something like this (using the attributes defined for
29017 dnsdomain and dnsdomain2 or dnszone):</p>
29018
29019 <blockquote><pre>
29020 objectclass ( some-oid NAME 'dnsDomainAux'
29021 SUP top
29022 AUXILIARY
29023 MAY ( ARecord $ MDRecord $ MXRecord $ NSRecord $ SOARecord $ CNAMERecord $
29024 DNSTTL $ DNSClass $ PTRRecord $ HINFORecord $ MINFORecord $
29025 TXTRecord $ SIGRecord $ KEYRecord $ AAAARecord $ LOCRecord $
29026 NXTRecord $ SRVRecord $ NAPTRRecord $ KXRecord $ CERTRecord $
29027 A6Record $ DNAMERecord
29028 ))
29029 </pre></blockquote>
29030
29031 <p>This will allow any object to become a DNS entry when combined with
29032 the domainrelatedobject object class, and allow any entity to include
29033 all the attributes PowerDNS wants. I've sent an email to the PowerDNS
29034 developers asking for their view on this schema and if they are
29035 interested in providing such schema with PowerDNS, and I hope my
29036 message will be accepted into their mailing list soon.</p>
29037
29038 <p><strong>ISC dhcp</strong></p>
29039
29040 <p>The DHCP server searches for specific objectclass and requests all
29041 the object attributes, and then uses the attributes it want. This
29042 make it harder to figure out exactly what attributes are used, but
29043 thanks to the working example in Debian Edu I can at least get an idea
29044 what is needed without having to read the source code.</p>
29045
29046 <p>In the DHCP server configuration, the LDAP base to use and the
29047 search filter to use to locate the correct dhcpServer entity is
29048 stored. These are the relevant entries from
29049 /etc/dhcp3/dhcpd.conf:</p>
29050
29051 <blockquote><pre>
29052 ldap-base-dn "dc=skole,dc=skolelinux,dc=no";
29053 ldap-dhcp-server-cn "dhcp";
29054 </pre></blockquote>
29055
29056 <p>The DHCP server uses this information to nest all the DHCP
29057 configuration it need. The cn "dhcp" is located using the given LDAP
29058 base and the filter "(&(objectClass=dhcpServer)(cn=dhcp))". The
29059 search result is this entry:</p>
29060
29061 <blockquote><pre>
29062 dn: cn=dhcp,dc=skole,dc=skolelinux,dc=no
29063 cn: dhcp
29064 objectClass: top
29065 objectClass: dhcpServer
29066 dhcpServiceDN: cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
29067 </pre></blockquote>
29068
29069 <p>The content of the dhcpServiceDN attribute is next used to locate the
29070 subtree with DHCP configuration. The DHCP configuration subtree base
29071 is located using a base scope search with base "cn=DHCP
29072 Config,dc=skole,dc=skolelinux,dc=no" and filter
29073 "(&(objectClass=dhcpService)(|(dhcpPrimaryDN=cn=dhcp,dc=skole,dc=skolelinux,dc=no)(dhcpSecondaryDN=cn=dhcp,dc=skole,dc=skolelinux,dc=no)))".
29074 The search result is this entry:</p>
29075
29076 <blockquote><pre>
29077 dn: cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
29078 cn: DHCP Config
29079 objectClass: top
29080 objectClass: dhcpService
29081 objectClass: dhcpOptions
29082 dhcpPrimaryDN: cn=dhcp, dc=skole,dc=skolelinux,dc=no
29083 dhcpStatements: ddns-update-style none
29084 dhcpStatements: authoritative
29085 dhcpOption: smtp-server code 69 = array of ip-address
29086 dhcpOption: www-server code 72 = array of ip-address
29087 dhcpOption: wpad-url code 252 = text
29088 </pre></blockquote>
29089
29090 <p>Next, the entire subtree is processed, one level at the time. When
29091 all the DHCP configuration is loaded, it is ready to receive requests.
29092 The subtree in Debian Edu contain objects with object classes
29093 top/dhcpService/dhcpOptions, top/dhcpSharedNetwork/dhcpOptions,
29094 top/dhcpSubnet, top/dhcpGroup and top/dhcpHost. These provide options
29095 and information about netmasks, dynamic range etc. Leaving out the
29096 details here because it is not relevant for the focus of my
29097 investigation, which is to see if it is possible to merge dns and dhcp
29098 related computer objects.</p>
29099
29100 <p>When a DHCP request come in, LDAP is searched for the MAC address
29101 of the client (00:00:00:00:00:00 in this example), using a subtree
29102 scoped search with "cn=DHCP Config,dc=skole,dc=skolelinux,dc=no" as
29103 the base and "(&(objectClass=dhcpHost)(dhcpHWAddress=ethernet
29104 00:00:00:00:00:00))" as the filter. This is what a host object look
29105 like:</p>
29106
29107 <blockquote><pre>
29108 dn: cn=hostname,cn=group1,cn=THINCLIENTS,cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
29109 cn: hostname
29110 objectClass: top
29111 objectClass: dhcpHost
29112 dhcpHWAddress: ethernet 00:00:00:00:00:00
29113 dhcpStatements: fixed-address hostname
29114 </pre></blockquote>
29115
29116 <p>There is less flexiblity in the way LDAP searches are done here.
29117 The object classes need to have fixed names, and the configuration
29118 need to be stored in a fairly specific LDAP structure. On the
29119 positive side, the invidiual dhcpHost entires can be anywhere without
29120 the DN pointed to by the dhcpServer entries. The latter should make
29121 it possible to group all host entries in a subtree next to the
29122 configuration entries, and this subtree can also be shared with the
29123 DNS server if the schema proposed above is combined with the dhcpHost
29124 structural object class.
29125
29126 <p><strong>Conclusion</strong></p>
29127
29128 <p>The PowerDNS implementation seem to be very flexible when it come
29129 to which LDAP schemas to use. While its "tree" mode is rigid when it
29130 come to the the LDAP structure, the "strict" mode is very flexible,
29131 allowing DNS objects to be stored anywhere under the base cn specified
29132 in the configuration.</p>
29133
29134 <p>The DHCP implementation on the other hand is very inflexible, both
29135 regarding which LDAP schemas to use and which LDAP structure to use.
29136 I guess one could implement ones own schema, as long as the
29137 objectclasses and attributes have the names used, but this do not
29138 really help when the DHCP subtree need to have a fairly fixed
29139 structure.</p>
29140
29141 <p>Based on the observed behaviour, I suspect a LDAP structure like
29142 this might work for Debian Edu:</p>
29143
29144 <blockquote><pre>
29145 ou=services
29146 cn=machine-info (dhcpService) - dhcpServiceDN points here
29147 cn=dhcp (dhcpServer)
29148 cn=dhcp-internal (dhcpSharedNetwork/dhcpOptions)
29149 cn=10.0.2.0 (dhcpSubnet)
29150 cn=group1 (dhcpGroup/dhcpOptions)
29151 cn=dhcp-thinclients (dhcpSharedNetwork/dhcpOptions)
29152 cn=192.168.0.0 (dhcpSubnet)
29153 cn=group1 (dhcpGroup/dhcpOptions)
29154 ou=machines - PowerDNS base points here
29155 cn=hostname (dhcpHost/domainrelatedobject/dnsDomainAux)
29156 </pre></blockquote>
29157
29158 <P>This is not tested yet. If the DHCP server require the dhcpHost
29159 entries to be in the dhcpGroup subtrees, the entries can be stored
29160 there instead of a common machines subtree, and the PowerDNS base
29161 would have to be moved one level up to the machine-info subtree.</p>
29162
29163 <p>The combined object under the machines subtree would look something
29164 like this:</p>
29165
29166 <blockquote><pre>
29167 dn: dc=hostname,ou=machines,cn=machine-info,dc=skole,dc=skolelinux,dc=no
29168 dc: hostname
29169 objectClass: top
29170 objectClass: dhcpHost
29171 objectclass: domainrelatedobject
29172 objectclass: dnsDomainAux
29173 associateddomain: hostname.intern
29174 arecord: 10.11.12.13
29175 dhcpHWAddress: ethernet 00:00:00:00:00:00
29176 dhcpStatements: fixed-address hostname.intern
29177 </pre></blockquote>
29178
29179 </p>One could even add the LTSP configuration associated with a given
29180 machine, as long as the required attributes are available in a
29181 auxiliary object class.</p>
29182
29183 </div>
29184 <div class="tags">
29185
29186
29187 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
29188
29189
29190 </div>
29191 </div>
29192 <div class="padding"></div>
29193
29194 <div class="entry">
29195 <div class="title">
29196 <a href="http://people.skolelinux.org/pere/blog/Combining_PowerDNS_and_ISC_DHCP_LDAP_objects.html">Combining PowerDNS and ISC DHCP LDAP objects</a>
29197 </div>
29198 <div class="date">
29199 14th July 2010
29200 </div>
29201 <div class="body">
29202 <p>For a while now, I have wanted to find a way to change the DNS and
29203 DHCP services in Debian Edu to use the same LDAP objects for a given
29204 computer, to avoid the possibility of having a inconsistent state for
29205 a computer in LDAP (as in DHCP but no DNS entry or the other way
29206 around) and make it easier to add computers to LDAP.</p>
29207
29208 <p>I've looked at how powerdns and dhcpd is using LDAP, and using this
29209 information finally found a solution that seem to work.</p>
29210
29211 <p>The old setup required three LDAP objects for a given computer.
29212 One forward DNS entry, one reverse DNS entry and one DHCP entry. If
29213 we switch powerdns to use its strict LDAP method (ldap-method=strict
29214 in pdns-debian-edu.conf), the forward and reverse DNS entries are
29215 merged into one while making it impossible to transfer the reverse map
29216 to a slave DNS server.</p>
29217
29218 <p>If we also replace the object class used to get the DNS related
29219 attributes to one allowing these attributes to be combined with the
29220 dhcphost object class, we can merge the DNS and DHCP entries into one.
29221 I've written such object class in the dnsdomainaux.schema file (need
29222 proper OIDs, but that is a minor issue), and tested the setup. It
29223 seem to work.</p>
29224
29225 <p>With this test setup in place, we can get away with one LDAP object
29226 for both DNS and DHCP, and even the LTSP configuration I suggested in
29227 an earlier email. The combined LDAP object will look something like
29228 this:</p>
29229
29230 <blockquote><pre>
29231 dn: cn=hostname,cn=group1,cn=THINCLIENTS,cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
29232 cn: hostname
29233 objectClass: dhcphost
29234 objectclass: domainrelatedobject
29235 objectclass: dnsdomainaux
29236 associateddomain: hostname.intern
29237 arecord: 10.11.12.13
29238 dhcphwaddress: ethernet 00:00:00:00:00:00
29239 dhcpstatements: fixed-address hostname
29240 ldapconfigsound: Y
29241 </pre></blockquote>
29242
29243 <p>The DNS server uses the associateddomain and arecord entries, while
29244 the DHCP server uses the dhcphwaddress and dhcpstatements entries
29245 before asking DNS to resolve the fixed-adddress. LTSP will use
29246 dhcphwaddress or associateddomain and the ldapconfig* attributes.</p>
29247
29248 <p>I am not yet sure if I can get the DHCP server to look for its
29249 dhcphost in a different location, to allow us to put the objects
29250 outside the "DHCP Config" subtree, but hope to figure out a way to do
29251 that. If I can't figure out a way to do that, we can still get rid of
29252 the hosts subtree and move all its content into the DHCP Config tree
29253 (which probably should be renamed to be more related to the new
29254 content. I suspect cn=dnsdhcp,ou=services or something like that
29255 might be a good place to put it.</p>
29256
29257 <p>If you want to help out with implementing this for Debian Edu,
29258 please contact us on debian-edu@lists.debian.org.</p>
29259
29260 </div>
29261 <div class="tags">
29262
29263
29264 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
29265
29266
29267 </div>
29268 </div>
29269 <div class="padding"></div>
29270
29271 <div class="entry">
29272 <div class="title">
29273 <a href="http://people.skolelinux.org/pere/blog/Idea_for_storing_LTSP_configuration_in_LDAP.html">Idea for storing LTSP configuration in LDAP</a>
29274 </div>
29275 <div class="date">
29276 11th July 2010
29277 </div>
29278 <div class="body">
29279 <p>Vagrant mentioned on IRC today that ltsp_config now support
29280 sourcing files from /usr/share/ltsp/ltsp_config.d/ on the thin
29281 clients, and that this can be used to fetch configuration from LDAP if
29282 Debian Edu choose to store configuration there.</p>
29283
29284 <p>Armed with this information, I got inspired and wrote a test module
29285 to get configuration from LDAP. The idea is to look up the MAC
29286 address of the client in LDAP, and look for attributes on the form
29287 ltspconfigsetting=value, and use this to export SETTING=value to the
29288 LTSP clients.</p>
29289
29290 <p>The goal is to be able to store the LTSP configuration attributes
29291 in a "computer" LDAP object used by both DNS and DHCP, and thus
29292 allowing us to store all information about a computer in one place.</p>
29293
29294 <p>This is a untested draft implementation, and I welcome feedback on
29295 this approach. A real LDAP schema for the ltspClientAux objectclass
29296 need to be written. Comments, suggestions, etc?</p>
29297
29298 <blockquote><pre>
29299 # Store in /opt/ltsp/$arch/usr/share/ltsp/ltsp_config.d/ldap-config
29300 #
29301 # Fetch LTSP client settings from LDAP based on MAC address
29302 #
29303 # Uses ethernet address as stored in the dhcpHost objectclass using
29304 # the dhcpHWAddress attribute or ethernet address stored in the
29305 # ieee802Device objectclass with the macAddress attribute.
29306 #
29307 # This module is written to be schema agnostic, and only depend on the
29308 # existence of attribute names.
29309 #
29310 # The LTSP configuration variables are saved directly using a
29311 # ltspConfig prefix and uppercasing the rest of the attribute name.
29312 # To set the SERVER variable, set the ltspConfigServer attribute.
29313 #
29314 # Some LDAP schema should be created with all the relevant
29315 # configuration settings. Something like this should work:
29316 #
29317 # objectclass ( 1.1.2.2 NAME 'ltspClientAux'
29318 # SUP top
29319 # AUXILIARY
29320 # MAY ( ltspConfigServer $ ltsConfigSound $ ... )
29321
29322 LDAPSERVER=$(debian-edu-ldapserver)
29323 if [ "$LDAPSERVER" ] ; then
29324 LDAPBASE=$(debian-edu-ldapserver -b)
29325 for MAC in $(LANG=C ifconfig |grep -i hwaddr| awk '{print $5}'|sort -u) ; do
29326 filter="(|(dhcpHWAddress=ethernet $MAC)(macAddress=$MAC))"
29327 ldapsearch -h "$LDAPSERVER" -b "$LDAPBASE" -v -x "$filter" | \
29328 grep '^ltspConfig' | while read attr value ; do
29329 # Remove prefix and convert to upper case
29330 attr=$(echo $attr | sed 's/^ltspConfig//i' | tr a-z A-Z)
29331 # bass value on to clients
29332 eval "$attr=$value; export $attr"
29333 done
29334 done
29335 fi
29336 </pre></blockquote>
29337
29338 <p>I'm not sure this shell construction will work, because I suspect
29339 the while block might end up in a subshell causing the variables set
29340 there to not show up in ltsp-config, but if that is the case I am sure
29341 the code can be restructured to make sure the variables are passed on.
29342 I expect that can be solved with some testing. :)</p>
29343
29344 <p>If you want to help out with implementing this for Debian Edu,
29345 please contact us on debian-edu@lists.debian.org.</p>
29346
29347 <p>Update 2010-07-17: I am aware of another effort to store LTSP
29348 configuration in LDAP that was created around year 2000 by
29349 <a href="http://www.pcxperience.com/thinclient/documentation/ldap.html">PC
29350 Xperience, Inc., 2000</a>. I found its
29351 <a href="http://people.redhat.com/alikins/ltsp/ldap/">files</a> on a
29352 personal home page over at redhat.com.</p>
29353
29354 </div>
29355 <div class="tags">
29356
29357
29358 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
29359
29360
29361 </div>
29362 </div>
29363 <div class="padding"></div>
29364
29365 <div class="entry">
29366 <div class="title">
29367 <a href="http://people.skolelinux.org/pere/blog/jXplorer__a_very_nice_LDAP_GUI.html">jXplorer, a very nice LDAP GUI</a>
29368 </div>
29369 <div class="date">
29370 9th July 2010
29371 </div>
29372 <div class="body">
29373 <p>Since
29374 <a href="http://people.skolelinux.org/pere/blog/LUMA__a_very_nice_LDAP_GUI.html">my
29375 last post</a> about available LDAP tools in Debian, I was told about a
29376 LDAP GUI that is even better than luma. The java application
29377 <a href="http://jxplorer.org/">jXplorer</a> is claimed to be capable of
29378 moving LDAP objects and subtrees using drag-and-drop, and can
29379 authenticate using Kerberos. I have only tested the Kerberos
29380 authentication, but do not have a LDAP setup allowing me to rewrite
29381 LDAP with my test user yet. It is
29382 <a href="http://packages.qa.debian.org/j/jxplorer.html">available in
29383 Debian</a> testing and unstable at the moment. The only problem I
29384 have with it is how it handle errors. If something go wrong, its
29385 non-intuitive behaviour require me to go through some query work list
29386 and remove the failing query. Nothing big, but very annoying.</p>
29387
29388 </div>
29389 <div class="tags">
29390
29391
29392 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
29393
29394
29395 </div>
29396 </div>
29397 <div class="padding"></div>
29398
29399 <div class="entry">
29400 <div class="title">
29401 <a href="http://people.skolelinux.org/pere/blog/Lenny__Squeeze_upgrades__apt_vs_aptitude_with_the_Gnome_desktop.html">Lenny->Squeeze upgrades, apt vs aptitude with the Gnome desktop</a>
29402 </div>
29403 <div class="date">
29404 3rd July 2010
29405 </div>
29406 <div class="body">
29407 <p>Here is a short update on my <a
29408 href="http://people.skolelinux.org/~pere/debian-upgrade-testing/">my
29409 Debian Lenny->Squeeze upgrade testing</a>. Here is a summary of the
29410 difference for Gnome when it is upgraded by apt-get and aptitude. I'm
29411 not reporting the status for KDE, because the upgrade crashes when
29412 aptitude try because of missing conflicts
29413 (<a href="http://bugs.debian.org/584861">#584861</a> and
29414 <a href="http://bugs.debian.org/585716">#585716</a>).</p>
29415
29416 <p>At the end of the upgrade test script, dpkg -l is executed to get a
29417 complete list of the installed packages. Based on this I see these
29418 differences when I did a test run today. As usual, I do not really
29419 know what the correct set of packages would be, but thought it best to
29420 publish the difference.</p>
29421
29422 <p>Installed using apt-get, missing with aptitude</p>
29423
29424 <blockquote><p>
29425 at-spi cpp-4.3 finger gnome-spell gstreamer0.10-gnomevfs
29426 libatspi1.0-0 libcupsys2 libeel2-data libgail-common libgdl-1-common
29427 libgnomeprint2.2-data libgnomeprintui2.2-common libgnomevfs2-bin
29428 libgtksourceview-common libpt-1.10.10-plugins-alsa
29429 libpt-1.10.10-plugins-v4l libservlet2.4-java libxalan2-java
29430 libxerces2-java openoffice.org-writer2latex openssl-blacklist p7zip
29431 python-4suite-xml python-eggtrayicon python-gtkhtml2
29432 python-gtkmozembed svgalibg1 xserver-xephyr zip
29433 </p></blockquote>
29434
29435 <p>Installed using apt-get, removed with aptitude</p>
29436
29437 <blockquote><p>
29438 bluez-utils dhcdbd djvulibre-desktop epiphany-gecko
29439 gnome-app-install gnome-mount gnome-vfs-obexftp gnome-volume-manager
29440 libao2 libavahi-compat-libdnssd1 libavahi-core5 libbind9-50
29441 libbluetooth2 libcamel1.2-11 libcdio7 libcucul0 libcurl3
29442 libdirectfb-1.0-0 libdvdread3 libedata-cal1.2-6 libedataserver1.2-9
29443 libeel2-2.20 libepc-1.0-1 libepc-ui-1.0-1 libexchange-storage1.2-3
29444 libfaad0 libgd2-noxpm libgda3-3 libgda3-common libggz2 libggzcore9
29445 libggzmod4 libgksu1.2-0 libgksuui1.0-1 libgmyth0 libgnome-desktop-2
29446 libgnome-pilot2 libgnomecups1.0-1 libgnomeprint2.2-0
29447 libgnomeprintui2.2-0 libgpod3 libgraphviz4 libgtkhtml2-0
29448 libgtksourceview1.0-0 libgucharmap6 libhesiod0 libicu38 libisccc50
29449 libisccfg50 libiw29 libkpathsea4 libltdl3 liblwres50 libmagick++10
29450 libmagick10 libmalaga7 libmtp7 libmysqlclient15off libnautilus-burn4
29451 libneon27 libnm-glib0 libnm-util0 libopal-2.2 libosp5
29452 libparted1.8-10 libpisock9 libpisync1 libpoppler-glib3 libpoppler3
29453 libpt-1.10.10 libraw1394-8 libsensors3 libsmbios2 libsoup2.2-8
29454 libssh2-1 libsuitesparse-3.1.0 libswfdec-0.6-90 libtalloc1
29455 libtotem-plparser10 libtrackerclient0 libvoikko1 libxalan2-java-gcj
29456 libxerces2-java-gcj libxklavier12 libxtrap6 libxxf86misc1 libzephyr3
29457 mysql-common swfdec-gnome totem-gstreamer wodim
29458 </p></blockquote>
29459
29460 <p>Installed using aptitude, missing with apt-get</p>
29461
29462 <blockquote><p>
29463 gnome gnome-desktop-environment hamster-applet python-gnomeapplet
29464 python-gnomekeyring python-wnck rhythmbox-plugins xorg
29465 xserver-xorg-input-all xserver-xorg-input-evdev
29466 xserver-xorg-input-kbd xserver-xorg-input-mouse
29467 xserver-xorg-input-synaptics xserver-xorg-video-all
29468 xserver-xorg-video-apm xserver-xorg-video-ark xserver-xorg-video-ati
29469 xserver-xorg-video-chips xserver-xorg-video-cirrus
29470 xserver-xorg-video-dummy xserver-xorg-video-fbdev
29471 xserver-xorg-video-glint xserver-xorg-video-i128
29472 xserver-xorg-video-i740 xserver-xorg-video-mach64
29473 xserver-xorg-video-mga xserver-xorg-video-neomagic
29474 xserver-xorg-video-nouveau xserver-xorg-video-nv
29475 xserver-xorg-video-r128 xserver-xorg-video-radeon
29476 xserver-xorg-video-radeonhd xserver-xorg-video-rendition
29477 xserver-xorg-video-s3 xserver-xorg-video-s3virge
29478 xserver-xorg-video-savage xserver-xorg-video-siliconmotion
29479 xserver-xorg-video-sis xserver-xorg-video-sisusb
29480 xserver-xorg-video-tdfx xserver-xorg-video-tga
29481 xserver-xorg-video-trident xserver-xorg-video-tseng
29482 xserver-xorg-video-vesa xserver-xorg-video-vmware
29483 xserver-xorg-video-voodoo
29484 </p></blockquote>
29485
29486 <p>Installed using aptitude, removed with apt-get</p>
29487
29488 <blockquote><p>
29489 deskbar-applet xserver-xorg xserver-xorg-core
29490 xserver-xorg-input-wacom xserver-xorg-video-intel
29491 xserver-xorg-video-openchrome
29492 </p></blockquote>
29493
29494 <p>I was told on IRC that the xorg-xserver package was
29495 <a href="http://git.debian.org/?p=pkg-xorg/xserver/xorg-server.git;a=commit;h=9c8080d06c457932d3bfec021c69ac000aa60120">changed
29496 in git</a> today to try to get apt-get to not remove xorg completely.
29497 No idea when it hits Squeeze, but when it does I hope it will reduce
29498 the difference somewhat.
29499
29500 </div>
29501 <div class="tags">
29502
29503
29504 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
29505
29506
29507 </div>
29508 </div>
29509 <div class="padding"></div>
29510
29511 <div class="entry">
29512 <div class="title">
29513 <a href="http://people.skolelinux.org/pere/blog/Caching_password__user_and_group_on_a_roaming_Debian_laptop.html">Caching password, user and group on a roaming Debian laptop</a>
29514 </div>
29515 <div class="date">
29516 1st July 2010
29517 </div>
29518 <div class="body">
29519 <p>For a laptop, centralized user directories and password checking is
29520 a bit troubling. Laptops are typically used also when not connected
29521 to the network, and it is vital for a user to be able to log in or
29522 unlock the screen saver also when a central server is unavailable.
29523 This is possible by caching passwords and directory information (user
29524 and group attributes) locally, and the packages to do so are available
29525 in Debian. Here follow two recipes to set this up in Debian/Squeeze.
29526 It is also possible to set up in Debian/Lenny, but require more manual
29527 setup there because pam-auth-update is missing in Lenny.</p>
29528
29529 <h2>LDAP/Kerberos + nscd + libpam-ccreds + libpam-mklocaluser/pam_mkhomedir</h2>
29530
29531 This is the traditional method with a twist. The password caching is
29532 provided by libpam-ccreds (version 10-4 or later is needed on
29533 Squeeze), and the directory caching is done by nscd. The directory
29534 lookup and password checking is done using LDAP. If one want to use
29535 Kerberos for password checking the libpam-ldapd package can be
29536 replaced with libpam-krb5 or libpam-heimdal. If one is happy having a
29537 local home directory with the path listed in LDAP, one can use the
29538 pam_mkhomedir module from pam-modules to make this happen instead of
29539 using libpam-mklocaluser. A setup for pam-auth-update to enable
29540 pam_mkhomedir will have to be written until a fix for
29541 <a href="http://bugs.debian.org/568577">bug #568577</a> is in the
29542 archive. Because I believe it is a bad idea to have local home
29543 directories using misleading paths like /site/server/partition/, I
29544 prefer to create a local user with the home directory in /home/. This
29545 is done using the libpam-mklocaluser package.</p>
29546
29547 <p>These packages need to be installed and configured</p>
29548
29549 <blockquote><pre>
29550 libnss-ldapd libpam-ldapd nscd libpam-ccreds libpam-mklocaluser
29551 </pre></blockquote>
29552
29553 <p>The ldapd packages will ask for LDAP connection information, and
29554 one have to fill in the values that fits ones own site. Make sure the
29555 PAM part uses encrypted connections, to make sure the password is not
29556 sent in clear text to the LDAP server. I've been unable to get TLS
29557 certificate checking for a self signed certificate working, which make
29558 LDAP authentication unsafe for Debian Edu (nslcd is not checking if it
29559 is talking to the correct LDAP server), and very much welcome feedback
29560 on how to get this working.</p>
29561
29562 <p>Because nscd do not have a default configuration fit for offline
29563 caching until <a href="http://bugs.debian.org/485282">bug #485282</a>
29564 is fixed, this configuration should be used instead of the one
29565 currently in /etc/nscd.conf. The changes are in the fields
29566 reload-count and positive-time-to-live, and is based on the
29567 instructions I found in the
29568 <a href="http://www.flyn.org/laptopldap/">LDAP for Mobile Laptops</a>
29569 instructions by Flyn Computing.</p>
29570
29571 <blockquote><pre>
29572 debug-level 0
29573 reload-count unlimited
29574 paranoia no
29575
29576 enable-cache passwd yes
29577 positive-time-to-live passwd 2592000
29578 negative-time-to-live passwd 20
29579 suggested-size passwd 211
29580 check-files passwd yes
29581 persistent passwd yes
29582 shared passwd yes
29583 max-db-size passwd 33554432
29584 auto-propagate passwd yes
29585
29586 enable-cache group yes
29587 positive-time-to-live group 2592000
29588 negative-time-to-live group 20
29589 suggested-size group 211
29590 check-files group yes
29591 persistent group yes
29592 shared group yes
29593 max-db-size group 33554432
29594 auto-propagate group yes
29595
29596 enable-cache hosts no
29597 positive-time-to-live hosts 2592000
29598 negative-time-to-live hosts 20
29599 suggested-size hosts 211
29600 check-files hosts yes
29601 persistent hosts yes
29602 shared hosts yes
29603 max-db-size hosts 33554432
29604
29605 enable-cache services yes
29606 positive-time-to-live services 2592000
29607 negative-time-to-live services 20
29608 suggested-size services 211
29609 check-files services yes
29610 persistent services yes
29611 shared services yes
29612 max-db-size services 33554432
29613 </pre></blockquote>
29614
29615 <p>While we wait for a mechanism to update /etc/nsswitch.conf
29616 automatically like the one provided in
29617 <a href="http://bugs.debian.org/496915">bug #496915</a>, the file
29618 content need to be manually replaced to ensure LDAP is used as the
29619 directory service on the machine. /etc/nsswitch.conf should normally
29620 look like this:</p>
29621
29622 <blockquote><pre>
29623 passwd: files ldap
29624 group: files ldap
29625 shadow: files ldap
29626 hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
29627 networks: files
29628 protocols: files
29629 services: files
29630 ethers: files
29631 rpc: files
29632 netgroup: files ldap
29633 </pre></blockquote>
29634
29635 <p>The important parts are that ldap is listed last for passwd, group,
29636 shadow and netgroup.</p>
29637
29638 <p>With these changes in place, any user in LDAP will be able to log
29639 in locally on the machine using for example kdm, get a local home
29640 directory created and have the password as well as user and group
29641 attributes cached.
29642
29643 <h2>LDAP/Kerberos + nss-updatedb + libpam-ccreds +
29644 libpam-mklocaluser/pam_mkhomedir</h2>
29645
29646 <p>Because nscd have had its share of problems, and seem to have
29647 problems doing proper caching, I've seen suggestions and recipes to
29648 use nss-updatedb to copy parts of the LDAP database locally when the
29649 LDAP database is available. I have not tested such setup, because I
29650 discovered sssd.</p>
29651
29652 <h2>LDAP/Kerberos + sssd + libpam-mklocaluser</h2>
29653
29654 <p>A more flexible and robust setup than the nscd combination
29655 mentioned earlier that has shown up recently, is the
29656 <a href="https://fedorahosted.org/sssd/">sssd</a> package from Redhat.
29657 It is part of the <a href="http://www.freeipa.org/">FreeIPA</A> project
29658 to provide a Active Directory like directory service for Linux
29659 machines. The sssd system combines the caching of passwords and user
29660 information into one package, and remove the need for nscd and
29661 libpam-ccreds. It support LDAP and Kerberos, but not NIS. Version
29662 1.2 do not support netgroups, but it is said that it will support this
29663 in version 1.5 expected to show up later in 2010. Because the
29664 <a href="http://packages.qa.debian.org/s/sssd.html">sssd package</a>
29665 was missing in Debian, I ended up co-maintaining it with Werner, and
29666 version 1.2 is now in testing.
29667
29668 <p>These packages need to be installed and configured to get the
29669 roaming setup I want</p>
29670
29671 <blockquote><pre>
29672 libpam-sss libnss-sss libpam-mklocaluser
29673 </pre></blockquote>
29674
29675 The complete setup of sssd is done by editing/creating
29676 <tt>/etc/sssd/sssd.conf</tt>.
29677
29678 <blockquote><pre>
29679 [sssd]
29680 config_file_version = 2
29681 reconnection_retries = 3
29682 sbus_timeout = 30
29683 services = nss, pam
29684 domains = INTERN
29685
29686 [nss]
29687 filter_groups = root
29688 filter_users = root
29689 reconnection_retries = 3
29690
29691 [pam]
29692 reconnection_retries = 3
29693
29694 [domain/INTERN]
29695 enumerate = false
29696 cache_credentials = true
29697
29698 id_provider = ldap
29699 auth_provider = ldap
29700 chpass_provider = ldap
29701
29702 ldap_uri = ldap://ldap
29703 ldap_search_base = dc=skole,dc=skolelinux,dc=no
29704 ldap_tls_reqcert = never
29705 ldap_tls_cacert = /etc/ssl/certs/ca-certificates.crt
29706 </pre></blockquote>
29707
29708 <p>I got the same problem here with certificate checking. Had to set
29709 "ldap_tls_reqcert = never" to get it working.</p>
29710
29711 <p>With the libnss-sss package in testing at the moment, the
29712 nsswitch.conf file is update automatically, so there is no need to
29713 modify it manually.</p>
29714
29715 <p>If you want to help out with implementing this for Debian Edu,
29716 please contact us on debian-edu@lists.debian.org.</p>
29717
29718 </div>
29719 <div class="tags">
29720
29721
29722 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
29723
29724
29725 </div>
29726 </div>
29727 <div class="padding"></div>
29728
29729 <div class="entry">
29730 <div class="title">
29731 <a href="http://people.skolelinux.org/pere/blog/LUMA__a_very_nice_LDAP_GUI.html">LUMA, a very nice LDAP GUI</a>
29732 </div>
29733 <div class="date">
29734 28th June 2010
29735 </div>
29736 <div class="body">
29737 <p>The last few days I have been looking into the status of the LDAP
29738 directory in Debian Edu, and in the process I started to miss a GUI
29739 tool to browse the LDAP tree. The only one I was able to find in
29740 Debian/Squeeze and Lenny is
29741 <a href="http://luma.sourceforge.net/">LUMA</a>, which has proved to
29742 be a great tool to get a overview of the current LDAP directory
29743 populated by default in Skolelinux. Thanks to it, I have been able to
29744 find empty and obsolete subtrees, misplaced objects and duplicate
29745 objects. It will be installed by default in Debian/Squeeze. If you
29746 are working with LDAP, give it a go. :)</p>
29747
29748 <p>I did notice one problem with it I have not had time to report to
29749 the BTS yet. There is no .desktop file in the package, so the tool do
29750 not show up in the Gnome and KDE menus, but only deep down in in the
29751 Debian submenu in KDE. I hope that can be fixed before Squeeze is
29752 released.</p>
29753
29754 <p>I have not yet been able to get it to modify the tree yet. I would
29755 like to move objects and remove subtrees directly in the GUI, but have
29756 not found a way to do that with LUMA yet. So in the mean time, I use
29757 <a href="http://www.lichteblau.com/ldapvi/">ldapvi</a> for that.</p>
29758
29759 <p>If you have tips on other GUI tools for LDAP that might be useful
29760 in Debian Edu, please contact us on debian-edu@lists.debian.org.</p>
29761
29762 <p>Update 2010-06-29: Ross Reedstrom tipped us about the
29763 <a href="http://packages.qa.debian.org/g/gq.html">gq</a> package as a
29764 useful GUI alternative. It seem like a good tool, but is unmaintained
29765 in Debian and got a RC bug keeping it out of Squeeze. Unless that
29766 changes, it will not be an option for Debian Edu based on Squeeze.</p>
29767
29768 </div>
29769 <div class="tags">
29770
29771
29772 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
29773
29774
29775 </div>
29776 </div>
29777 <div class="padding"></div>
29778
29779 <div class="entry">
29780 <div class="title">
29781 <a href="http://people.skolelinux.org/pere/blog/Idea_for_a_change_to_LDAP_schemas_allowing_DNS_and_DHCP_info_to_be_combined_into_one_object.html">Idea for a change to LDAP schemas allowing DNS and DHCP info to be combined into one object</a>
29782 </div>
29783 <div class="date">
29784 24th June 2010
29785 </div>
29786 <div class="body">
29787 <p>A while back, I
29788 <a href="http://people.skolelinux.org/pere/blog/Time_for_new__LDAP_schemas_replacing_RFC_2307_.html">complained
29789 about the fact</a> that it is not possible with the provided schemas
29790 for storing DNS and DHCP information in LDAP to combine the two sets
29791 of information into one LDAP object representing a computer.</p>
29792
29793 <p>In the mean time, I discovered that a simple fix would be to make
29794 the dhcpHost object class auxiliary, to allow it to be combined with
29795 the dNSDomain object class, and thus forming one object for one
29796 computer when storing both DHCP and DNS information in LDAP.</p>
29797
29798 <p>If I understand this correctly, it is not safe to do this change
29799 without also changing the assigned number for the object class, and I
29800 do not know enough about LDAP schema design to do that properly for
29801 Debian Edu.</p>
29802
29803 <p>Anyway, for future reference, this is how I believe we could change
29804 the
29805 <a href="http://tools.ietf.org/html/draft-ietf-dhc-ldap-schema-00">DHCP
29806 schema</a> to solve at least part of the problem with the LDAP schemas
29807 available today from IETF.</p>
29808
29809 <pre>
29810 --- dhcp.schema (revision 65192)
29811 +++ dhcp.schema (working copy)
29812 @@ -376,7 +376,7 @@
29813 objectclass ( 2.16.840.1.113719.1.203.6.6
29814 NAME 'dhcpHost'
29815 DESC 'This represents information about a particular client'
29816 - SUP top
29817 + SUP top AUXILIARY
29818 MUST cn
29819 MAY (dhcpLeaseDN $ dhcpHWAddress $ dhcpOptionsDN $ dhcpStatements $ dhcpComments $ dhcpOption)
29820 X-NDS_CONTAINMENT ('dhcpService' 'dhcpSubnet' 'dhcpGroup') )
29821 </pre>
29822
29823 <p>I very much welcome clues on how to do this properly for Debian
29824 Edu/Squeeze. We provide the DHCP schema in our debian-edu-config
29825 package, and should thus be free to rewrite it as we see fit.</p>
29826
29827 <p>If you want to help out with implementing this for Debian Edu,
29828 please contact us on debian-edu@lists.debian.org.</p>
29829
29830 </div>
29831 <div class="tags">
29832
29833
29834 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
29835
29836
29837 </div>
29838 </div>
29839 <div class="padding"></div>
29840
29841 <div class="entry">
29842 <div class="title">
29843 <a href="http://people.skolelinux.org/pere/blog/Calling_tasksel_like_the_installer__while_still_getting_useful_output.html">Calling tasksel like the installer, while still getting useful output</a>
29844 </div>
29845 <div class="date">
29846 16th June 2010
29847 </div>
29848 <div class="body">
29849 <p>A few times I have had the need to simulate the way tasksel
29850 installs packages during the normal debian-installer run. Until now,
29851 I have ended up letting tasksel do the work, with the annoying problem
29852 of not getting any feedback at all when something fails (like a
29853 conffile question from dpkg or a download that fails), using code like
29854 this:
29855
29856 <blockquote><pre>
29857 export DEBIAN_FRONTEND=noninteractive
29858 tasksel --new-install
29859 </pre></blockquote>
29860
29861 This would invoke tasksel, let its automatic task selection pick the
29862 tasks to install, and continue to install the requested tasks without
29863 any output what so ever.
29864
29865 Recently I revisited this problem while working on the automatic
29866 package upgrade testing, because tasksel would some times hang without
29867 any useful feedback, and I want to see what is going on when it
29868 happen. Then it occured to me, I can parse the output from tasksel
29869 when asked to run in test mode, and use that aptitude command line
29870 printed by tasksel then to simulate the tasksel run. I ended up using
29871 code like this:
29872
29873 <blockquote><pre>
29874 export DEBIAN_FRONTEND=noninteractive
29875 cmd="$(in_target tasksel -t --new-install | sed 's/debconf-apt-progress -- //')"
29876 $cmd
29877 </pre></blockquote>
29878
29879 <p>The content of $cmd is typically something like "<tt>aptitude -q
29880 --without-recommends -o APT::Install-Recommends=no -y install
29881 ~t^desktop$ ~t^gnome-desktop$ ~t^laptop$ ~pstandard ~prequired
29882 ~pimportant</tt>", which will install the gnome desktop task, the
29883 laptop task and all packages with priority standard , required and
29884 important, just like tasksel would have done it during
29885 installation.</p>
29886
29887 <p>A better approach is probably to extend tasksel to be able to
29888 install packages without using debconf-apt-progress, for use cases
29889 like this.</p>
29890
29891 </div>
29892 <div class="tags">
29893
29894
29895 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/nuug">nuug</a>.
29896
29897
29898 </div>
29899 </div>
29900 <div class="padding"></div>
29901
29902 <div class="entry">
29903 <div class="title">
29904 <a href="http://people.skolelinux.org/pere/blog/Officeshots_taking_shape.html">Officeshots taking shape</a>
29905 </div>
29906 <div class="date">
29907 13th June 2010
29908 </div>
29909 <div class="body">
29910 <p>For those of us caring about document exchange and
29911 interoperability, <a href="http://www.officeshots.org/">OfficeShots</a>
29912 is a great service. It is to ODF documents what
29913 <a href="http://browsershots.org/">BrowserShots</a> is for web
29914 pages.</p>
29915
29916 <p>A while back, I was contacted by Knut Yrvin at the part of Nokia
29917 that used to be Trolltech, who wanted to help the OfficeShots project
29918 and wondered if the University of Oslo where I work would be
29919 interested in supporting the project. I helped him to navigate his
29920 request to the right people at work, and his request was answered with
29921 a spot in the machine room with power and network connected, and Knut
29922 arranged funding for a machine to fill the spot. The machine is
29923 administrated by the OfficeShots people, so I do not have daily
29924 contact with its progress, and thus from time to time check back to
29925 see how the project is doing.</p>
29926
29927 <p>Today I had a look, and was happy to see that the Dell box in our
29928 machine room now is the host for several virtual machines running as
29929 OfficeShots factories, and the project is able to render ODF documents
29930 in 17 different document processing implementation on Linux and
29931 Windows. This is great.</p>
29932
29933 </div>
29934 <div class="tags">
29935
29936
29937 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>.
29938
29939
29940 </div>
29941 </div>
29942 <div class="padding"></div>
29943
29944 <div class="entry">
29945 <div class="title">
29946 <a href="http://people.skolelinux.org/pere/blog/Lenny__Squeeze_upgrades__removals_by_apt_and_aptitude.html">Lenny->Squeeze upgrades, removals by apt and aptitude</a>
29947 </div>
29948 <div class="date">
29949 13th June 2010
29950 </div>
29951 <div class="body">
29952 <p>My
29953 <a href="http://people.skolelinux.org/pere/blog/Automatic_upgrade_testing_from_Lenny_to_Squeeze.html">testing
29954 of Debian upgrades</a> from Lenny to Squeeze continues, and I've
29955 finally made the upgrade logs available from
29956 <a href="http://people.skolelinux.org/pere/debian-upgrade-testing/">http://people.skolelinux.org/pere/debian-upgrade-testing/</a>.
29957 I am now testing dist-upgrade of Gnome and KDE in a chroot using both
29958 apt and aptitude, and found their differences interesting. This time
29959 I will only focus on their removal plans.</p>
29960
29961 <p>After installing a Gnome desktop and the laptop task, apt-get wants
29962 to remove 72 packages when dist-upgrading from Lenny to Squeeze. The
29963 surprising part is that it want to remove xorg and all
29964 xserver-xorg-video* drivers. Clearly not a good choice, but I am not
29965 sure why. When asking aptitude to do the same, it want to remove 129
29966 packages, but most of them are library packages I suspect are no
29967 longer needed. Both of them want to remove bluetooth packages, which
29968 I do not know. Perhaps these bluetooth packages are obsolete?</p>
29969
29970 <p>For KDE, apt-get want to remove 82 packages, among them kdebase
29971 which seem like a bad idea and xorg the same way as with Gnome. Asking
29972 aptitude for the same, it wants to remove 192 packages, none which are
29973 too surprising.</p>
29974
29975 <p>I guess the removal of xorg during upgrades should be investigated
29976 and avoided, and perhaps others as well. Here are the complete list
29977 of planned removals. The complete logs is available from the URL
29978 above. Note if you want to repeat these tests, that the upgrade test
29979 for kde+apt-get hung in the tasksel setup because of dpkg asking
29980 conffile questions. No idea why. I worked around it by using
29981 '<tt>echo >> /proc/<em>pidofdpkg</em>/fd/0</tt>' to tell dpkg to
29982 continue.</p>
29983
29984 <p><b>apt-get gnome 72</b>
29985 <br>bluez-gnome cupsddk-drivers deskbar-applet gnome
29986 gnome-desktop-environment gnome-network-admin gtkhtml3.14
29987 iceweasel-gnome-support libavcodec51 libdatrie0 libgdl-1-0
29988 libgnomekbd2 libgnomekbdui2 libmetacity0 libslab0 libxcb-xlib0
29989 nautilus-cd-burner python-gnome2-desktop python-gnome2-extras
29990 serpentine swfdec-mozilla update-manager xorg xserver-xorg
29991 xserver-xorg-core xserver-xorg-input-all xserver-xorg-input-evdev
29992 xserver-xorg-input-kbd xserver-xorg-input-mouse
29993 xserver-xorg-input-synaptics xserver-xorg-input-wacom
29994 xserver-xorg-video-all xserver-xorg-video-apm xserver-xorg-video-ark
29995 xserver-xorg-video-ati xserver-xorg-video-chips
29996 xserver-xorg-video-cirrus xserver-xorg-video-cyrix
29997 xserver-xorg-video-dummy xserver-xorg-video-fbdev
29998 xserver-xorg-video-glint xserver-xorg-video-i128
29999 xserver-xorg-video-i740 xserver-xorg-video-imstt
30000 xserver-xorg-video-intel xserver-xorg-video-mach64
30001 xserver-xorg-video-mga xserver-xorg-video-neomagic
30002 xserver-xorg-video-nsc xserver-xorg-video-nv
30003 xserver-xorg-video-openchrome xserver-xorg-video-r128
30004 xserver-xorg-video-radeon xserver-xorg-video-radeonhd
30005 xserver-xorg-video-rendition xserver-xorg-video-s3
30006 xserver-xorg-video-s3virge xserver-xorg-video-savage
30007 xserver-xorg-video-siliconmotion xserver-xorg-video-sis
30008 xserver-xorg-video-sisusb xserver-xorg-video-tdfx
30009 xserver-xorg-video-tga xserver-xorg-video-trident
30010 xserver-xorg-video-tseng xserver-xorg-video-v4l
30011 xserver-xorg-video-vesa xserver-xorg-video-vga
30012 xserver-xorg-video-vmware xserver-xorg-video-voodoo xulrunner-1.9
30013 xulrunner-1.9-gnome-support</p>
30014
30015 <p><b>aptitude gnome 129</b>
30016
30017 <br>bluez-gnome bluez-utils cpp-4.3 cupsddk-drivers dhcdbd
30018 djvulibre-desktop finger gnome-app-install gnome-mount
30019 gnome-network-admin gnome-spell gnome-vfs-obexftp
30020 gnome-volume-manager gstreamer0.10-gnomevfs gtkhtml3.14 libao2
30021 libavahi-compat-libdnssd1 libavahi-core5 libavcodec51 libbluetooth2
30022 libcamel1.2-11 libcdio7 libcucul0 libcupsys2 libcurl3 libdatrie0
30023 libdirectfb-1.0-0 libdvdread3 libedataserver1.2-9 libeel2-2.20
30024 libeel2-data libepc-1.0-1 libepc-ui-1.0-1 libfaad0 libgail-common
30025 libgd2-noxpm libgda3-3 libgda3-common libgdl-1-0 libgdl-1-common
30026 libggz2 libggzcore9 libggzmod4 libgksu1.2-0 libgksuui1.0-1 libgmyth0
30027 libgnomecups1.0-1 libgnomekbd2 libgnomekbdui2 libgnomeprint2.2-0
30028 libgnomeprint2.2-data libgnomeprintui2.2-0 libgnomeprintui2.2-common
30029 libgnomevfs2-bin libgpod3 libgraphviz4 libgtkhtml2-0
30030 libgtksourceview-common libgtksourceview1.0-0 libgucharmap6
30031 libhesiod0 libicu38 libiw29 libkpathsea4 libltdl3 libmagick++10
30032 libmagick10 libmalaga7 libmetacity0 libmtp7 libmysqlclient15off
30033 libnautilus-burn4 libneon27 libnm-glib0 libnm-util0 libopal-2.2
30034 libosp5 libparted1.8-10 libpoppler-glib3 libpoppler3 libpt-1.10.10
30035 libpt-1.10.10-plugins-alsa libpt-1.10.10-plugins-v4l libraw1394-8
30036 libsensors3 libslab0 libsmbios2 libsoup2.2-8 libssh2-1
30037 libsuitesparse-3.1.0 libswfdec-0.6-90 libtalloc1 libtotem-plparser10
30038 libtrackerclient0 libxalan2-java libxalan2-java-gcj libxcb-xlib0
30039 libxerces2-java libxerces2-java-gcj libxklavier12 libxtrap6
30040 libxxf86misc1 libzephyr3 mysql-common nautilus-cd-burner
30041 openoffice.org-writer2latex openssl-blacklist p7zip
30042 python-4suite-xml python-eggtrayicon python-gnome2-desktop
30043 python-gnome2-extras python-gtkhtml2 python-gtkmozembed
30044 python-numeric python-sexy serpentine svgalibg1 swfdec-gnome
30045 swfdec-mozilla totem-gstreamer update-manager wodim
30046 xserver-xorg-video-cyrix xserver-xorg-video-imstt
30047 xserver-xorg-video-nsc xserver-xorg-video-v4l xserver-xorg-video-vga
30048 zip</p>
30049
30050 <p><b>apt-get kde 82</b>
30051
30052 <br>cupsddk-drivers karm kaudiocreator kcoloredit kcontrol kde kde-core
30053 kdeaddons kdeartwork kdebase kdebase-bin kdebase-bin-kde3
30054 kdebase-kio-plugins kdesktop kdeutils khelpcenter kicker
30055 kicker-applets knewsticker kolourpaint konq-plugins konqueror korn
30056 kpersonalizer kscreensaver ksplash libavcodec51 libdatrie0 libkiten1
30057 libxcb-xlib0 quanta superkaramba texlive-base-bin xorg xserver-xorg
30058 xserver-xorg-core xserver-xorg-input-all xserver-xorg-input-evdev
30059 xserver-xorg-input-kbd xserver-xorg-input-mouse
30060 xserver-xorg-input-synaptics xserver-xorg-input-wacom
30061 xserver-xorg-video-all xserver-xorg-video-apm xserver-xorg-video-ark
30062 xserver-xorg-video-ati xserver-xorg-video-chips
30063 xserver-xorg-video-cirrus xserver-xorg-video-cyrix
30064 xserver-xorg-video-dummy xserver-xorg-video-fbdev
30065 xserver-xorg-video-glint xserver-xorg-video-i128
30066 xserver-xorg-video-i740 xserver-xorg-video-imstt
30067 xserver-xorg-video-intel xserver-xorg-video-mach64
30068 xserver-xorg-video-mga xserver-xorg-video-neomagic
30069 xserver-xorg-video-nsc xserver-xorg-video-nv
30070 xserver-xorg-video-openchrome xserver-xorg-video-r128
30071 xserver-xorg-video-radeon xserver-xorg-video-radeonhd
30072 xserver-xorg-video-rendition xserver-xorg-video-s3
30073 xserver-xorg-video-s3virge xserver-xorg-video-savage
30074 xserver-xorg-video-siliconmotion xserver-xorg-video-sis
30075 xserver-xorg-video-sisusb xserver-xorg-video-tdfx
30076 xserver-xorg-video-tga xserver-xorg-video-trident
30077 xserver-xorg-video-tseng xserver-xorg-video-v4l
30078 xserver-xorg-video-vesa xserver-xorg-video-vga
30079 xserver-xorg-video-vmware xserver-xorg-video-voodoo xulrunner-1.9</p>
30080
30081 <p><b>aptitude kde 192</b>
30082 <br>bluez-utils cpp-4.3 cupsddk-drivers cvs dcoprss dhcdbd
30083 djvulibre-desktop dosfstools eyesapplet fifteenapplet finger gettext
30084 ghostscript-x imlib-base imlib11 indi kandy karm kasteroids
30085 kaudiocreator kbackgammon kbstate kcoloredit kcontrol kcron kdat
30086 kdeadmin-kfile-plugins kdeartwork-misc kdeartwork-theme-window
30087 kdebase-bin-kde3 kdebase-kio-plugins kdeedu-data
30088 kdegraphics-kfile-plugins kdelirc kdemultimedia-kappfinder-data
30089 kdemultimedia-kfile-plugins kdenetwork-kfile-plugins
30090 kdepim-kfile-plugins kdepim-kio-plugins kdeprint kdesktop kdessh
30091 kdict kdnssd kdvi kedit keduca kenolaba kfax kfaxview kfouleggs
30092 kghostview khelpcenter khexedit kiconedit kitchensync klatin
30093 klickety kmailcvt kmenuedit kmid kmilo kmoon kmrml kodo kolourpaint
30094 kooka korn kpager kpdf kpercentage kpf kpilot kpoker kpovmodeler
30095 krec kregexpeditor ksayit ksim ksirc ksirtet ksmiletris ksmserver
30096 ksnake ksokoban ksplash ksvg ksysv ktip ktnef kuickshow kverbos
30097 kview kviewshell kvoctrain kwifimanager kwin kwin4 kworldclock
30098 kxsldbg libakode2 libao2 libarts1-akode libarts1-audiofile
30099 libarts1-mpeglib libarts1-xine libavahi-compat-libdnssd1
30100 libavahi-core5 libavc1394-0 libavcodec51 libbluetooth2
30101 libboost-python1.34.1 libcucul0 libcurl3 libcvsservice0 libdatrie0
30102 libdirectfb-1.0-0 libdjvulibre21 libdvdread3 libfaad0 libfreebob0
30103 libgail-common libgd2-noxpm libgraphviz4 libgsmme1c2a libgtkhtml2-0
30104 libicu38 libiec61883-0 libindex0 libiw29 libk3b3 libkcal2b libkcddb1
30105 libkdeedu3 libkdepim1a libkgantt0 libkiten1 libkleopatra1 libkmime2
30106 libkpathsea4 libkpimexchange1 libkpimidentities1 libkscan1
30107 libksieve0 libktnef1 liblockdev1 libltdl3 libmagick10 libmimelib1c2a
30108 libmozjs1d libmpcdec3 libneon27 libnm-util0 libopensync0 libpisock9
30109 libpoppler-glib3 libpoppler-qt2 libpoppler3 libraw1394-8 libsmbios2
30110 libssh2-1 libsuitesparse-3.1.0 libtalloc1 libtiff-tools
30111 libxalan2-java libxalan2-java-gcj libxcb-xlib0 libxerces2-java
30112 libxerces2-java-gcj libxtrap6 mpeglib networkstatus
30113 openoffice.org-writer2latex pmount poster psutils quanta quanta-data
30114 superkaramba svgalibg1 tex-common texlive-base texlive-base-bin
30115 texlive-common texlive-doc-base texlive-fonts-recommended
30116 xserver-xorg-video-cyrix xserver-xorg-video-imstt
30117 xserver-xorg-video-nsc xserver-xorg-video-v4l xserver-xorg-video-vga
30118 xulrunner-1.9</p>
30119
30120
30121 </div>
30122 <div class="tags">
30123
30124
30125 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
30126
30127
30128 </div>
30129 </div>
30130 <div class="padding"></div>
30131
30132 <div class="entry">
30133 <div class="title">
30134 <a href="http://people.skolelinux.org/pere/blog/Automatic_upgrade_testing_from_Lenny_to_Squeeze.html">Automatic upgrade testing from Lenny to Squeeze</a>
30135 </div>
30136 <div class="date">
30137 11th June 2010
30138 </div>
30139 <div class="body">
30140 <p>The last few days I have done some upgrade testing in Debian, to
30141 see if the upgrade from Lenny to Squeeze will go smoothly. A few bugs
30142 have been discovered and reported in the process
30143 (<a href="http://bugs.debian.org/585410">#585410</a> in nagios3-cgi,
30144 <a href="http://bugs.debian.org/584879">#584879</a> already fixed in
30145 enscript and <a href="http://bugs.debian.org/584861">#584861</a> in
30146 kdebase-workspace-data), and to get a more regular testing going on, I
30147 am working on a script to automate the test.</p>
30148
30149 <p>The idea is to create a Lenny chroot and use tasksel to install a
30150 Gnome or KDE desktop installation inside the chroot before upgrading
30151 it. To ensure no services are started in the chroot, a policy-rc.d
30152 script is inserted. To make sure tasksel believe it is to install a
30153 desktop on a laptop, the tasksel tests are replaced in the chroot
30154 (only acceptable because this is a throw-away chroot).</p>
30155
30156 <p>A naive upgrade from Lenny to Squeeze using aptitude dist-upgrade
30157 currently always fail because udev refuses to upgrade with the kernel
30158 in Lenny, so to avoid that problem the file /etc/udev/kernel-upgrade
30159 is created. The bug report
30160 <a href="http://bugs.debian.org/566000">#566000</a> make me suspect
30161 this problem do not trigger in a chroot, but I touch the file anyway
30162 to make sure the upgrade go well. Testing on virtual and real
30163 hardware have failed me because of udev so far, and creating this file
30164 do the trick in such settings anyway. This is a
30165 <a href="http://www.linuxquestions.org/questions/debian-26/failed-dist-upgrade-due-to-udev-config_sysfs_deprecated-nonsense-804130/">known
30166 issue</a> and the current udev behaviour is intended by the udev
30167 maintainer because he lack the resources to rewrite udev to keep
30168 working with old kernels or something like that. I really wish the
30169 udev upstream would keep udev backwards compatible, to avoid such
30170 upgrade problem, but given that they fail to do so, I guess
30171 documenting the way out of this mess is the best option we got for
30172 Debian Squeeze.</p>
30173
30174 <p>Anyway, back to the task at hand, testing upgrades. This test
30175 script, which I call <tt>upgrade-test</tt> for now, is doing the
30176 trick:</p>
30177
30178 <blockquote><pre>
30179 #!/bin/sh
30180 set -ex
30181
30182 if [ "$1" ] ; then
30183 desktop=$1
30184 else
30185 desktop=gnome
30186 fi
30187
30188 from=lenny
30189 to=squeeze
30190
30191 exec &lt; /dev/null
30192 unset LANG
30193 mirror=http://ftp.skolelinux.org/debian
30194 tmpdir=chroot-$from-upgrade-$to-$desktop
30195 fuser -mv .
30196 debootstrap $from $tmpdir $mirror
30197 chroot $tmpdir aptitude update
30198 cat > $tmpdir/usr/sbin/policy-rc.d &lt;&lt;EOF
30199 #!/bin/sh
30200 exit 101
30201 EOF
30202 chmod a+rx $tmpdir/usr/sbin/policy-rc.d
30203 exit_cleanup() {
30204 umount $tmpdir/proc
30205 }
30206 mount -t proc proc $tmpdir/proc
30207 # Make sure proc is unmounted also on failure
30208 trap exit_cleanup EXIT INT
30209
30210 chroot $tmpdir aptitude -y install debconf-utils
30211
30212 # Make sure tasksel autoselection trigger. It need the test scripts
30213 # to return the correct answers.
30214 echo tasksel tasksel/desktop multiselect $desktop | \
30215 chroot $tmpdir debconf-set-selections
30216
30217 # Include the desktop and laptop task
30218 for test in desktop laptop ; do
30219 echo > $tmpdir/usr/lib/tasksel/tests/$test &lt;&lt;EOF
30220 #!/bin/sh
30221 exit 2
30222 EOF
30223 chmod a+rx $tmpdir/usr/lib/tasksel/tests/$test
30224 done
30225
30226 DEBIAN_FRONTEND=noninteractive
30227 DEBIAN_PRIORITY=critical
30228 export DEBIAN_FRONTEND DEBIAN_PRIORITY
30229 chroot $tmpdir tasksel --new-install
30230
30231 echo deb $mirror $to main > $tmpdir/etc/apt/sources.list
30232 chroot $tmpdir aptitude update
30233 touch $tmpdir/etc/udev/kernel-upgrade
30234 chroot $tmpdir aptitude -y dist-upgrade
30235 fuser -mv
30236 </pre></blockquote>
30237
30238 <p>I suspect it would be useful to test upgrades with both apt-get and
30239 with aptitude, but I have not had time to look at how they behave
30240 differently so far. I hope to get a cron job running to do the test
30241 regularly and post the result on the web. The Gnome upgrade currently
30242 work, while the KDE upgrade fail because of the bug in
30243 kdebase-workspace-data</p>
30244
30245 <p>I am not quite sure what kind of extract from the huge upgrade logs
30246 (KDE 167 KiB, Gnome 516 KiB) it make sense to include in this blog
30247 post, so I will refrain from trying. I can report that for Gnome,
30248 aptitude report 760 packages upgraded, 448 newly installed, 129 to
30249 remove and 1 not upgraded and 1024MB need to be downloaded while for
30250 KDE the same numbers are 702 packages upgraded, 507 newly installed,
30251 193 to remove and 0 not upgraded and 1117MB need to be downloaded</p>
30252
30253 <p>I am very happy to notice that the Gnome desktop + laptop upgrade
30254 is able to migrate to dependency based boot sequencing and parallel
30255 booting without a hitch. Was unsure if there were still bugs with
30256 packages failing to clean up their obsolete init.d script during
30257 upgrades, and no such problem seem to affect the Gnome desktop+laptop
30258 packages.</p>
30259
30260 </div>
30261 <div class="tags">
30262
30263
30264 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
30265
30266
30267 </div>
30268 </div>
30269 <div class="padding"></div>
30270
30271 <div class="entry">
30272 <div class="title">
30273 <a href="http://people.skolelinux.org/pere/blog/Upstart_or_sysvinit___as_init_d_scripts_see_it.html">Upstart or sysvinit - as init.d scripts see it</a>
30274 </div>
30275 <div class="date">
30276 6th June 2010
30277 </div>
30278 <div class="body">
30279 <p>If Debian is to migrate to upstart on Linux, I expect some init.d
30280 scripts to migrate (some of) their operations to upstart job while
30281 keeping the init.d for hurd and kfreebsd. The packages with such
30282 needs will need a way to get their init.d scripts to behave
30283 differently when used with sysvinit and with upstart. Because of
30284 this, I had a look at the environment variables set when a init.d
30285 script is running under upstart, and when it is not.</p>
30286
30287 <p>With upstart, I notice these environment variables are set when a
30288 script is started from rcS.d/ (ignoring some irrelevant ones like
30289 COLUMNS):</p>
30290
30291 <blockquote><pre>
30292 DEFAULT_RUNLEVEL=2
30293 previous=N
30294 PREVLEVEL=
30295 RUNLEVEL=
30296 runlevel=S
30297 UPSTART_EVENTS=startup
30298 UPSTART_INSTANCE=
30299 UPSTART_JOB=rc-sysinit
30300 </pre></blockquote>
30301
30302 <p>With sysvinit, these environment variables are set for the same
30303 script.</p>
30304
30305 <blockquote><pre>
30306 INIT_VERSION=sysvinit-2.88
30307 previous=N
30308 PREVLEVEL=N
30309 RUNLEVEL=S
30310 runlevel=S
30311 </pre></blockquote>
30312
30313 <p>The RUNLEVEL and PREVLEVEL environment variables passed on from
30314 sysvinit are not set by upstart. Not sure if it is intentional or not
30315 to not be compatible with sysvinit in this regard.</p>
30316
30317 <p>For scripts needing to behave differently when upstart is used,
30318 looking for the UPSTART_JOB environment variable seem to be a good
30319 choice.</p>
30320
30321 </div>
30322 <div class="tags">
30323
30324
30325 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
30326
30327
30328 </div>
30329 </div>
30330 <div class="padding"></div>
30331
30332 <div class="entry">
30333 <div class="title">
30334 <a href="http://people.skolelinux.org/pere/blog/A_manual_for_standards_wars___.html">A manual for standards wars...</a>
30335 </div>
30336 <div class="date">
30337 6th June 2010
30338 </div>
30339 <div class="body">
30340 <p>Via the
30341 <a href="http://feedproxy.google.com/~r/robweir/antic-atom/~3/QzU4RgoAGMg/weekly-links-10.html">blog
30342 of Rob Weir</a> I came across the very interesting essay named
30343 <a href="http://faculty.haas.berkeley.edu/shapiro/wars.pdf">The Art of
30344 Standards Wars</a> (PDF 25 pages). I recommend it for everyone
30345 following the standards wars of today.</p>
30346
30347 </div>
30348 <div class="tags">
30349
30350
30351 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>.
30352
30353
30354 </div>
30355 </div>
30356 <div class="padding"></div>
30357
30358 <div class="entry">
30359 <div class="title">
30360 <a href="http://people.skolelinux.org/pere/blog/Sitesummary_tip__Listing_computer_hardware_models_used_at_site.html">Sitesummary tip: Listing computer hardware models used at site</a>
30361 </div>
30362 <div class="date">
30363 3rd June 2010
30364 </div>
30365 <div class="body">
30366 <p>When using sitesummary at a site to track machines, it is possible
30367 to get a list of the machine types in use thanks to the DMI
30368 information extracted from each machine. The script to do so is
30369 included in the sitesummary package, and here is example output from
30370 the Skolelinux build servers:</p>
30371
30372 <blockquote><pre>
30373 maintainer:~# /usr/lib/sitesummary/hardware-model-summary
30374 vendor count
30375 Dell Computer Corporation 1
30376 PowerEdge 1750 1
30377 IBM 1
30378 eserver xSeries 345 -[8670M1X]- 1
30379 Intel 2
30380 [no-dmi-info] 3
30381 maintainer:~#
30382 </pre></blockquote>
30383
30384 <p>The quality of the report depend on the quality of the DMI tables
30385 provided in each machine. Here there are Intel machines without model
30386 information listed with Intel as vendor and no model, and virtual Xen
30387 machines listed as [no-dmi-info]. One can add -l as a command line
30388 option to list the individual machines.</p>
30389
30390 <p>A larger list is
30391 <a href="http://narvikskolen.no/sitesummary/">available from the the
30392 city of Narvik</a>, which uses Skolelinux on all their shools and also
30393 provide the basic sitesummary report publicly. In their report there
30394 are ~1400 machines. I know they use both Ubuntu and Skolelinux on
30395 their machines, and as sitesummary is available in both distributions,
30396 it is trivial to get all of them to report to the same central
30397 collector.</p>
30398
30399 </div>
30400 <div class="tags">
30401
30402
30403 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary</a>.
30404
30405
30406 </div>
30407 </div>
30408 <div class="padding"></div>
30409
30410 <div class="entry">
30411 <div class="title">
30412 <a href="http://people.skolelinux.org/pere/blog/KDM_fail_at_boot_with_NVidia_cards___and_no_one_try_to_fix_it_.html">KDM fail at boot with NVidia cards - and no one try to fix it?</a>
30413 </div>
30414 <div class="date">
30415 1st June 2010
30416 </div>
30417 <div class="body">
30418 <p>It is strange to watch how a bug in Debian causing KDM to fail to
30419 start at boot when an NVidia video card is used is handled. The
30420 problem seem to be that the nvidia X.org driver uses a long time to
30421 initialize, and this duration is longer than kdm is configured to
30422 wait.</p>
30423
30424 <p>I came across two bugs related to this issue,
30425 <a href="http://bugs.debian.org/583312">#583312</a> initially filed
30426 against initscripts and passed on to nvidia-glx when it became obvious
30427 that the nvidia drivers were involved, and
30428 <a href="http://bugs.debian.org/524751">#524751</a> initially filed against
30429 kdm and passed on to src:nvidia-graphics-drivers for unknown reasons.</p>
30430
30431 <p>To me, it seem that no-one is interested in actually solving the
30432 problem nvidia video card owners experience and make sure the Debian
30433 distribution work out of the box for these users. The nvidia driver
30434 maintainers expect kdm to be set up to wait longer, while kdm expect
30435 the nvidia driver maintainers to fix the driver to start faster, and
30436 while they wait for each other I guess the users end up switching to a
30437 distribution that work for them. I have no idea what the solution is,
30438 but I am pretty sure that waiting for each other is not it.</p>
30439
30440 <p>I wonder why we end up handling bugs this way.</p>
30441
30442 </div>
30443 <div class="tags">
30444
30445
30446 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
30447
30448
30449 </div>
30450 </div>
30451 <div class="padding"></div>
30452
30453 <div class="entry">
30454 <div class="title">
30455 <a href="http://people.skolelinux.org/pere/blog/Parallellized_boot_seem_to_hold_up_well_in_Debian_testing.html">Parallellized boot seem to hold up well in Debian/testing</a>
30456 </div>
30457 <div class="date">
30458 27th May 2010
30459 </div>
30460 <div class="body">
30461 <p>A few days ago, parallel booting was enabled in Debian/testing.
30462 The feature seem to hold up pretty well, but three fairly serious
30463 issues are known and should be solved:
30464
30465 <p><ul>
30466
30467 <li>The wicd package seen to
30468 <a href="http://bugs.debian.org/508289">break NFS mounting</a> and
30469 <a href="http://bugs.debian.org/581586">network setup</a> when
30470 parallel booting is enabled. No idea why, but the wicd maintainer
30471 seem to be on the case.</li>
30472
30473 <li>The nvidia X driver seem to
30474 <a href="http://bugs.debian.org/583312">have a race condition</a>
30475 triggered more easily when parallel booting is in effect. The
30476 maintainer is on the case.</li>
30477
30478 <li>The sysv-rc package fail to properly enable dependency based boot
30479 sequencing (the shutdown is broken) when old file-rc users
30480 <a href="http://bugs.debian.org/575080">try to switch back</a> to
30481 sysv-rc. One way to solve it would be for file-rc to create
30482 /etc/init.d/.legacy-bootordering, and another is to try to make
30483 sysv-rc more robust. Will investigate some more and probably upload a
30484 workaround in sysv-rc to help those trying to move from file-rc to
30485 sysv-rc get a working shutdown.</li>
30486
30487 </ul></p>
30488
30489 <p>All in all not many surprising issues, and all of them seem
30490 solvable before Squeeze is released. In addition to these there are
30491 some packages with bugs in their dependencies and run level settings,
30492 which I expect will be fixed in a reasonable time span.</p>
30493
30494 <p>If you report any problems with dependencies in init.d scripts to
30495 the BTS, please usertag the report to get it to show up at
30496 <a href="http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=initscripts-ng-devel@lists.alioth.debian.org">the
30497 list of usertagged bugs related to this</a>.</p>
30498
30499 <p>Update: Correct bug number to file-rc issue.</p>
30500
30501 </div>
30502 <div class="tags">
30503
30504
30505 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
30506
30507
30508 </div>
30509 </div>
30510 <div class="padding"></div>
30511
30512 <div class="entry">
30513 <div class="title">
30514 <a href="http://people.skolelinux.org/pere/blog/More_flexible_firmware_handling_in_debian_installer.html">More flexible firmware handling in debian-installer</a>
30515 </div>
30516 <div class="date">
30517 22nd May 2010
30518 </div>
30519 <div class="body">
30520 <p>After a long break from debian-installer development, I finally
30521 found time today to return to the project. Having to spend less time
30522 working dependency based boot in debian, as it is almost complete now,
30523 definitely helped freeing some time.</p>
30524
30525 <p>A while back, I ran into a problem while working on Debian Edu. We
30526 include some firmware packages on the Debian Edu CDs, those needed to
30527 get disk and network controllers working. Without having these
30528 firmware packages available during installation, it is impossible to
30529 install Debian Edu on the given machine, and because our target group
30530 are non-technical people, asking them to provide firmware packages on
30531 an external medium is a support pain. Initially, I expected it to be
30532 enough to include the firmware packages on the CD to get
30533 debian-installer to find and use them. This proved to be wrong.
30534 Next, I hoped it was enough to symlink the relevant firmware packages
30535 to some useful location on the CD (tried /cdrom/ and
30536 /cdrom/firmware/). This also proved to not work, and at this point I
30537 found time to look at the debian-installer code to figure out what was
30538 going to work.</p>
30539
30540 <p>The firmware loading code is in the hw-detect package, and a closer
30541 look revealed that it would only look for firmware packages outside
30542 the installation media, so the CD was never checked for firmware
30543 packages. It would only check USB sticks, floppies and other
30544 "external" media devices. Today I changed it to also look in the
30545 /cdrom/firmware/ directory on the mounted CD or DVD, which should
30546 solve the problem I ran into with Debian edu. I also changed it to
30547 look in /firmware/, to make sure the installer also find firmware
30548 provided in the initrd when booting the installer via PXE, to allow us
30549 to provide the same feature in the PXE setup included in Debian
30550 Edu.</p>
30551
30552 <p>To make sure firmware deb packages with a license questions are not
30553 activated without asking if the license is accepted, I extended
30554 hw-detect to look for preinst scripts in the firmware packages, and
30555 run these before activating the firmware during installation. The
30556 license question is asked using debconf in the preinst, so this should
30557 solve the issue for the firmware packages I have looked at so far.</p>
30558
30559 <p>If you want to discuss the details of these features, please
30560 contact us on debian-boot@lists.debian.org.</p>
30561
30562 </div>
30563 <div class="tags">
30564
30565
30566 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
30567
30568
30569 </div>
30570 </div>
30571 <div class="padding"></div>
30572
30573 <div class="entry">
30574 <div class="title">
30575 <a href="http://people.skolelinux.org/pere/blog/Pieces_of_the_roaming_laptop_puzzle_in_Debian.html">Pieces of the roaming laptop puzzle in Debian</a>
30576 </div>
30577 <div class="date">
30578 19th May 2010
30579 </div>
30580 <div class="body">
30581 <p>Today, the last piece of the puzzle for roaming laptops in Debian
30582 Edu finally entered the Debian archive. Today, the new
30583 <a href="http://packages.qa.debian.org/libp/libpam-mklocaluser.html">libpam-mklocaluser</a>
30584 package was accepted. Two days ago, two other pieces was accepted
30585 into unstable. The
30586 <a href="http://packages.qa.debian.org/p/pam-python.html">pam-python</a>
30587 package needed by libpam-mklocaluser, and the
30588 <a href="http://packages.qa.debian.org/s/sssd.html">sssd</a> package
30589 passed NEW on Monday. In addition, the
30590 <a href="http://packages.qa.debian.org/libp/libpam-ccreds.html">libpam-ccreds</a>
30591 package we need is in experimental (version 10-4) since Saturday, and
30592 hopefully will be moved to unstable soon.</p>
30593
30594 <p>This collection of packages allow for two different setups for
30595 roaming laptops. The traditional setup would be using libpam-ccreds,
30596 nscd and libpam-mklocaluser with LDAP or Kerberos authentication,
30597 which should work out of the box if the configuration changes proposed
30598 for nscd in <a href="http://bugs.debian.org/485282">BTS report
30599 #485282</a> is implemented. The alternative setup is to use sssd with
30600 libpam-mklocaluser to connect to LDAP or Kerberos and let sssd take
30601 care of the caching of passwords and group information.</p>
30602
30603 <p>I have so far been unable to get sssd to work with the LDAP server
30604 at the University, but suspect the issue is some SSL/GnuTLS related
30605 problem with the server certificate. I plan to update the Debian
30606 package to version 1.2, which is scheduled for next week, and hope to
30607 find time to make sure the next release will include both the
30608 Debian/Ubuntu specific patches. Upstream is friendly and responsive,
30609 and I am sure we will find a good solution.</p>
30610
30611 <p>The idea is to set up the roaming laptops to authenticate using
30612 LDAP or Kerberos and create a local user with home directory in /home/
30613 when a usre in LDAP logs in via KDM or GDM for the first time, and
30614 cache the password for offline checking, as well as caching group
30615 memberhips and other relevant LDAP information. The
30616 libpam-mklocaluser package was created to make sure the local home
30617 directory is in /home/, instead of /site/server/directory/ which would
30618 be the home directory if pam_mkhomedir was used. To avoid confusion
30619 with support requests and configuration, we do not want local laptops
30620 to have users in a path that is used for the same users home directory
30621 on the home directory servers.</p>
30622
30623 <p>One annoying problem with gdm is that it do not show the PAM
30624 message passed to the user from libpam-mklocaluser when the local user
30625 is created. Instead gdm simply reject the login with some generic
30626 message. The message is shown in kdm, ssh and login, so I guess it is
30627 a bug in gdm. Have not investigated if there is some other message
30628 type that can be used instead to get gdm to also show the message.</p>
30629
30630 <p>If you want to help out with implementing this for Debian Edu,
30631 please contact us on debian-edu@lists.debian.org.</p>
30632
30633 </div>
30634 <div class="tags">
30635
30636
30637 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
30638
30639
30640 </div>
30641 </div>
30642 <div class="padding"></div>
30643
30644 <div class="entry">
30645 <div class="title">
30646 <a href="http://people.skolelinux.org/pere/blog/Parallellized_boot_is_now_the_default_in_Debian_unstable.html">Parallellized boot is now the default in Debian/unstable</a>
30647 </div>
30648 <div class="date">
30649 14th May 2010
30650 </div>
30651 <div class="body">
30652 <p>Since this evening, parallel booting is the default in
30653 Debian/unstable for machines using dependency based boot sequencing.
30654 Apparently the testing of concurrent booting has been wider than
30655 expected, if I am to believe the
30656 <a href="http://lists.debian.org/debian-devel/2010/05/msg00122.html">input
30657 on debian-devel@</a>, and I concluded a few days ago to move forward
30658 with the feature this weekend, to give us some time to detect any
30659 remaining problems before Squeeze is frozen. If serious problems are
30660 detected, it is simple to change the default back to sequential boot.
30661 The upload of the new sysvinit package also activate a new upstream
30662 version.</p>
30663
30664 More information about
30665 <a href="http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot">dependency
30666 based boot sequencing</a> is available from the Debian wiki. It is
30667 currently possible to disable parallel booting when one run into
30668 problems caused by it, by adding this line to /etc/default/rcS:</p>
30669
30670 <blockquote><pre>
30671 CONCURRENCY=none
30672 </pre></blockquote>
30673
30674 <p>If you report any problems with dependencies in init.d scripts to
30675 the BTS, please usertag the report to get it to show up at
30676 <a href="http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=initscripts-ng-devel@lists.alioth.debian.org">the
30677 list of usertagged bugs related to this</a>.</p>
30678
30679 </div>
30680 <div class="tags">
30681
30682
30683 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
30684
30685
30686 </div>
30687 </div>
30688 <div class="padding"></div>
30689
30690 <div class="entry">
30691 <div class="title">
30692 <a href="http://people.skolelinux.org/pere/blog/Sitesummary_tip__Listing_MAC_address_of_all_clients.html">Sitesummary tip: Listing MAC address of all clients</a>
30693 </div>
30694 <div class="date">
30695 14th May 2010
30696 </div>
30697 <div class="body">
30698 <p>In the recent Debian Edu versions, the
30699 <a href="http://wiki.debian.org/DebianEdu/HowTo/SiteSummary">sitesummary
30700 system</a> is used to keep track of the machines in the school
30701 network. Each machine will automatically report its status to the
30702 central server after boot and once per night. The network setup is
30703 also reported, and using this information it is possible to get the
30704 MAC address of all network interfaces in the machines. This is useful
30705 to update the DHCP configuration.</p>
30706
30707 <p>To give some idea how to use sitesummary, here is a one-liner to
30708 ist all MAC addresses of all machines reporting to sitesummary. Run
30709 this on the collector host:</p>
30710
30711 <blockquote><pre>
30712 perl -MSiteSummary -e 'for_all_hosts(sub { print join(" ", get_macaddresses(shift)), "\n"; });'
30713 </pre></blockquote>
30714
30715 <p>This will list all MAC addresses assosiated with all machine, one
30716 line per machine and with space between the MAC addresses.</p>
30717
30718 <p>To allow system administrators easier job at adding static DHCP
30719 addresses for hosts, it would be possible to extend this to fetch
30720 machine information from sitesummary and update the DHCP and DNS
30721 tables in LDAP using this information. Such tool is unfortunately not
30722 written yet.</p>
30723
30724 </div>
30725 <div class="tags">
30726
30727
30728 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary</a>.
30729
30730
30731 </div>
30732 </div>
30733 <div class="padding"></div>
30734
30735 <div class="entry">
30736 <div class="title">
30737 <a href="http://people.skolelinux.org/pere/blog/systemd__an_interesting_alternative_to_upstart.html">systemd, an interesting alternative to upstart</a>
30738 </div>
30739 <div class="date">
30740 13th May 2010
30741 </div>
30742 <div class="body">
30743 <p>The last few days a new boot system called
30744 <a href="http://www.freedesktop.org/wiki/Software/systemd">systemd</a>
30745 has been
30746 <a href="http://0pointer.de/blog/projects/systemd.html">introduced</a>
30747
30748 to the free software world. I have not yet had time to play around
30749 with it, but it seem to be a very interesting alternative to
30750 <a href="http://upstart.ubuntu.com/">upstart</a>, and might prove to be
30751 a good alternative for Debian when we are able to switch to an event
30752 based boot system. Tollef is
30753 <a href="http://bugs.debian.org/580814">in the process</a> of getting
30754 systemd into Debian, and I look forward to seeing how well it work. I
30755 like the fact that systemd handles init.d scripts with dependency
30756 information natively, allowing them to run in parallel where upstart
30757 at the moment do not.</p>
30758
30759 <p>Unfortunately do systemd have the same problem as upstart regarding
30760 platform support. It only work on recent Linux kernels, and also need
30761 some new kernel features enabled to function properly. This means
30762 kFreeBSD and Hurd ports of Debian will need a port or a different boot
30763 system. Not sure how that will be handled if systemd proves to be the
30764 way forward.</p>
30765
30766 <p>In the mean time, based on the
30767 <a href="http://lists.debian.org/debian-devel/2010/05/msg00122.html">input
30768 on debian-devel@</a> regarding parallel booting in Debian, I have
30769 decided to enable full parallel booting as the default in Debian as
30770 soon as possible (probably this weekend or early next week), to see if
30771 there are any remaining serious bugs in the init.d dependencies. A
30772 new version of the sysvinit package implementing this change is
30773 already in experimental. If all go well, Squeeze will be released
30774 with parallel booting enabled by default.</p>
30775
30776 </div>
30777 <div class="tags">
30778
30779
30780 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <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/nuug">nuug</a>.
30781
30782
30783 </div>
30784 </div>
30785 <div class="padding"></div>
30786
30787 <div class="entry">
30788 <div class="title">
30789 <a href="http://people.skolelinux.org/pere/blog/Parallellizing_the_boot_in_Debian_Squeeze___ready_for_wider_testing.html">Parallellizing the boot in Debian Squeeze - ready for wider testing</a>
30790 </div>
30791 <div class="date">
30792 6th May 2010
30793 </div>
30794 <div class="body">
30795 <p>These days, the init.d script dependencies in Squeeze are quite
30796 complete, so complete that it is actually possible to run all the
30797 init.d scripts in parallell based on these dependencies. If you want
30798 to test your Squeeze system, make sure
30799 <a href="http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot">dependency
30800 based boot sequencing</a> is enabled, and add this line to
30801 /etc/default/rcS:</p>
30802
30803 <blockquote><pre>
30804 CONCURRENCY=makefile
30805 </pre></blockquote>
30806
30807 <p>That is it. It will cause sysv-rc to use the startpar tool to run
30808 scripts in parallel using the dependency information stored in
30809 /etc/init.d/.depend.boot, /etc/init.d/.depend.start and
30810 /etc/init.d/.depend.stop to order the scripts. Startpar is configured
30811 to try to start the kdm and gdm scripts as early as possible, and will
30812 start the facilities required by kdm or gdm as early as possible to
30813 make this happen.</p>
30814
30815 <p>Give it a try, and see if you like the result. If some services
30816 fail to start properly, it is most likely because they have incomplete
30817 init.d script dependencies in their startup script (or some of their
30818 dependent scripts have incomplete dependencies). Report bugs and get
30819 the package maintainers to fix it. :)</p>
30820
30821 <p>Running scripts in parallel could be the default in Debian when we
30822 manage to get the init.d script dependencies complete and correct. I
30823 expect we will get there in Squeeze+1, if we get manage to test and
30824 fix the remaining issues.</p>
30825
30826 <p>If you report any problems with dependencies in init.d scripts to
30827 the BTS, please usertag the report to get it to show up at
30828 <a href="http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=initscripts-ng-devel@lists.alioth.debian.org">the
30829 list of usertagged bugs related to this</a>.</p>
30830
30831 </div>
30832 <div class="tags">
30833
30834
30835 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
30836
30837
30838 </div>
30839 </div>
30840 <div class="padding"></div>
30841
30842 <div class="entry">
30843 <div class="title">
30844 <a href="http://people.skolelinux.org/pere/blog/Forcing_new_users_to_change_their_password_on_first_login.html">Forcing new users to change their password on first login</a>
30845 </div>
30846 <div class="date">
30847 2nd May 2010
30848 </div>
30849 <div class="body">
30850 <p>One interesting feature in Active Directory, is the ability to
30851 create a new user with an expired password, and thus force the user to
30852 change the password on the first login attempt.</p>
30853
30854 <p>I'm not quite sure how to do that with the LDAP setup in Debian
30855 Edu, but did some initial testing with a local account. The account
30856 and password aging information is available in /etc/shadow, but
30857 unfortunately, it is not possible to specify an expiration time for
30858 passwords, only a maximum age for passwords.</p>
30859
30860 <p>A freshly created account (using adduser test) will have these
30861 settings in /etc/shadow:</p>
30862
30863 <blockquote><pre>
30864 root@tjener:~# chage -l test
30865 Last password change : May 02, 2010
30866 Password expires : never
30867 Password inactive : never
30868 Account expires : never
30869 Minimum number of days between password change : 0
30870 Maximum number of days between password change : 99999
30871 Number of days of warning before password expires : 7
30872 root@tjener:~#
30873 </pre></blockquote>
30874
30875 <p>The only way I could come up with to create a user with an expired
30876 account, is to change the date of the last password change to the
30877 lowest value possible (January 1th 1970), and the maximum password age
30878 to the difference in days between that date and today. To make it
30879 simple, I went for 30 years (30 * 365 = 10950) and January 2th (to
30880 avoid testing if 0 is a valid value).</p>
30881
30882 <p>After using these commands to set it up, it seem to work as
30883 intended:</p>
30884
30885 <blockquote><pre>
30886 root@tjener:~# chage -d 1 test; chage -M 10950 test
30887 root@tjener:~# chage -l test
30888 Last password change : Jan 02, 1970
30889 Password expires : never
30890 Password inactive : never
30891 Account expires : never
30892 Minimum number of days between password change : 0
30893 Maximum number of days between password change : 10950
30894 Number of days of warning before password expires : 7
30895 root@tjener:~#
30896 </pre></blockquote>
30897
30898 <p>So far I have tested this with ssh and console, and kdm (in
30899 Squeeze) login, and all ask for a new password before login in the
30900 user (with ssh, I was thrown out and had to log in again).</p>
30901
30902 <p>Perhaps we should set up something similar for Debian Edu, to make
30903 sure only the user itself have the account password?</p>
30904
30905 <p>If you want to comment on or help out with implementing this for
30906 Debian Edu, please contact us on debian-edu@lists.debian.org.</p>
30907
30908 <p>Update 2010-05-02 17:20: Paul Tötterman tells me on IRC that the
30909 shadow(8) page in Debian/testing now state that setting the date of
30910 last password change to zero (0) will force the password to be changed
30911 on the first login. This was not mentioned in the manual in Lenny, so
30912 I did not notice this in my initial testing. I have tested it on
30913 Squeeze, and '<tt>chage -d 0 username</tt>' do work there. I have not
30914 tested it on Lenny yet.</p>
30915
30916 <p>Update 2010-05-02-19:05: Jim Paris tells me via email that an
30917 equivalent command to expire a password is '<tt>passwd -e
30918 username</tt>', which insert zero into the date of the last password
30919 change.</p>
30920
30921 </div>
30922 <div class="tags">
30923
30924
30925 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>.
30926
30927
30928 </div>
30929 </div>
30930 <div class="padding"></div>
30931
30932 <div class="entry">
30933 <div class="title">
30934 <a href="http://people.skolelinux.org/pere/blog/Thoughts_on_roaming_laptop_setup_for_Debian_Edu.html">Thoughts on roaming laptop setup for Debian Edu</a>
30935 </div>
30936 <div class="date">
30937 28th April 2010
30938 </div>
30939 <div class="body">
30940 <p>For some years now, I have wondered how we should handle laptops in
30941 Debian Edu. The Debian Edu infrastructure is mostly designed to
30942 handle stationary computers, and less suited for computers that come
30943 and go.</p>
30944
30945 <p>Now I finally believe I have an sensible idea on how to adjust
30946 Debian Edu for laptops, by introducing a new profile for them, for
30947 example called Roaming Workstations. Here are my thought on this.
30948 The setup would consist of the following:</p>
30949
30950 <ul>
30951
30952 <li>During installation, the user name of the owner / primary user of
30953 the laptop is requested and a local home directory is set up for
30954 the user, with uid and gid information fetched from the LDAP
30955 server. This allow the user to work also when offline. The
30956 central home directory can be available in a subdirectory on
30957 request, for example mounted via CIFS. It could be mounted
30958 automatically when a user log in while on the Debian Edu network,
30959 and unmounted when the machine is taken away (network down,
30960 hibernate, etc), it can be set up to do automatic mounting on
30961 request (using autofs), or perhaps some GUI button on the desktop
30962 can be used to access it when needed. Perhaps it is enough to use
30963 the fish protocol in KDE?</li>
30964
30965 <li>Password checking is set up to use LDAP or Kerberos
30966 authentication when the machine is on the Debian Edu network, and
30967 to cache the password for offline checking when the machine unable
30968 to reach the LDAP or Kerberos server. This can be done using
30969 <a href="http://www.padl.com/OSS/pam_ccreds.html">libpam-ccreds</a>
30970 or the Fedora developed
30971 <a href="https://fedoraproject.org/wiki/Features/SSSD">System
30972 Security Services Daemon</a> packages.</li>
30973
30974 <li>File synchronisation with the central home directory is set up
30975 using a shared directory in both the local and the central home
30976 directory, using unison.</li>
30977
30978 <li>Printing should be set up to print to all printers broadcasting
30979 their existence on the local network, and should then work out of
30980 the box with CUPS. For sites needing accurate printer quotas, some
30981 system with Kerberos authentication or printing via ssh could be
30982 implemented.</li>
30983
30984 <li>For users that should have local root access to their laptop,
30985 sudo should be used to allow this to the local user.</li>
30986
30987 <li>It would be nice if user and group information from LDAP is
30988 cached on the client, but given that there are entries for the
30989 local user and primary group in /etc/, it should not be needed.</li>
30990
30991 </ul>
30992
30993 <p>I believe all the pieces to implement this are in Debian/testing at
30994 the moment. If we work quickly, we should be able to get this ready
30995 in time for the Squeeze release to freeze. Some of the pieces need
30996 tweaking, like libpam-ccreds should get support for pam-auth-update
30997 (<a href="http://bugs.debian.org/566718">#566718</a>) and nslcd (or
30998 perhaps debian-edu-config) should get some integration code to stop
30999 its daemon when the LDAP server is unavailable to avoid long timeouts
31000 when disconnected from the net. If we get Kerberos enabled, we need
31001 to make sure we avoid long timeouts there too.</p>
31002
31003 <p>If you want to help out with implementing this for Debian Edu,
31004 please contact us on debian-edu@lists.debian.org.</p>
31005
31006 </div>
31007 <div class="tags">
31008
31009
31010 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
31011
31012
31013 </div>
31014 </div>
31015 <div class="padding"></div>
31016
31017 <div class="entry">
31018 <div class="title">
31019 <a href="http://people.skolelinux.org/pere/blog/Great_book___Content__Selected_Essays_on_Technology__Creativity__Copyright__and_the_Future_of_the_Future_.html">Great book: "Content: Selected Essays on Technology, Creativity, Copyright, and the Future of the Future"</a>
31020 </div>
31021 <div class="date">
31022 19th April 2010
31023 </div>
31024 <div class="body">
31025 <p>The last few weeks i have had the pleasure of reading a
31026 thought-provoking collection of essays by Cory Doctorow, on topics
31027 touching copyright, virtual worlds, the future of man when the
31028 conscience mind can be duplicated into a computer and many more. The
31029 book titled "Content: Selected Essays on Technology, Creativity,
31030 Copyright, and the Future of the Future" is available with few
31031 restrictions on the web, for example from
31032 <a href="http://craphound.com/content/">his own site</a>. I read the
31033 epub-version from
31034 <a href="http://www.feedbooks.com/book/2883">feedbooks</a> using
31035 <a href="http://www.fbreader.org/">fbreader</a> and my N810. I
31036 strongly recommend this book.</p>
31037
31038 </div>
31039 <div class="tags">
31040
31041
31042 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</a>.
31043
31044
31045 </div>
31046 </div>
31047 <div class="padding"></div>
31048
31049 <div class="entry">
31050 <div class="title">
31051 <a href="http://people.skolelinux.org/pere/blog/Kerberos_for_Debian_Edu_Squeeze_.html">Kerberos for Debian Edu/Squeeze?</a>
31052 </div>
31053 <div class="date">
31054 14th April 2010
31055 </div>
31056 <div class="body">
31057 <p><a href="http://www.nuug.no/aktiviteter/20100413-kerberos/">Yesterdays
31058 NUUG presentation</a> about Kerberos was inspiring, and reminded me
31059 about the need to start using Kerberos in Skolelinux. Setting up a
31060 Kerberos server seem to be straight forward, and if we get this in
31061 place a long time before the Squeeze version of Debian freezes, we
31062 have a chance to migrate Skolelinux away from NFSv3 for the home
31063 directories, and over to an architecture where the infrastructure do
31064 not have to trust IP addresses and machines, and instead can trust
31065 users and cryptographic keys instead.</p>
31066
31067 <p>A challenge will be integration and administration. Is there a
31068 Kerberos implementation for Debian where one can control the
31069 administration access in Kerberos using LDAP groups? With it, the
31070 school administration will have to maintain access control using flat
31071 files on the main server, which give a huge potential for errors.</p>
31072
31073 <p>A related question I would like to know is how well Kerberos and
31074 pam-ccreds (offline password check) work together. Anyone know?</p>
31075
31076 <p>Next step will be to use Kerberos for access control in Lwat and
31077 Nagios. I have no idea how much work that will be to implement. We
31078 would also need to document how to integrate with Windows AD, as such
31079 shared network will require two Kerberos realms that need to cooperate
31080 to work properly.</p>
31081
31082 <p>I believe a good start would be to start using Kerberos on the
31083 skolelinux.no machines, and this way get ourselves experience with
31084 configuration and integration. A natural starting point would be
31085 setting up ldap.skolelinux.no as the Kerberos server, and migrate the
31086 rest of the machines from PAM via LDAP to PAM via Kerberos one at the
31087 time.</p>
31088
31089 <p>If you would like to contribute to get this working in Skolelinux,
31090 I recommend you to see the video recording from yesterdays NUUG
31091 presentation, and start using Kerberos at home. The video show show
31092 up in a few days.</p>
31093
31094 </div>
31095 <div class="tags">
31096
31097
31098 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
31099
31100
31101 </div>
31102 </div>
31103 <div class="padding"></div>
31104
31105 <div class="entry">
31106 <div class="title">
31107 <a href="http://people.skolelinux.org/pere/blog/After_6_years_of_waiting__the_Xreset_d_feature_is_implemented.html">After 6 years of waiting, the Xreset.d feature is implemented</a>
31108 </div>
31109 <div class="date">
31110 6th March 2010
31111 </div>
31112 <div class="body">
31113 <p>6 years ago, as part of the Debian Edu development I am involved
31114 in, I asked for a hook in the kdm and gdm setup to run scripts as root
31115 when the user log out. A bug was submitted against the xfree86-common
31116 package in 2004 (<a href="http://bugs.debian.org/230422">#230422</a>),
31117 and revisited every time Debian Edu was working on a new release.
31118 Today, this finally paid off.</p>
31119
31120 <p>The framework for this feature was today commited to the git
31121 repositry for the xorg package, and the git repository for xdm has
31122 been updated to use this framework. Next on my agenda is to make sure
31123 kdm and gdm also add code to use this framework.</p>
31124
31125 <p>In Debian Edu, we want to ability to run commands as root when the
31126 user log out, to get rid of runaway processes and do general cleanup
31127 after a user. With this framework in place, we finally can do that in
31128 a generic way that work with all display managers using this
31129 framework. My goal is to get all display managers in Debian use it,
31130 similar to how they use the Xsession.d framework today.<p>
31131
31132 </div>
31133 <div class="tags">
31134
31135
31136 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
31137
31138
31139 </div>
31140 </div>
31141 <div class="padding"></div>
31142
31143 <div class="entry">
31144 <div class="title">
31145 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu___Skolelinux_based_on_Lenny_released__work_continues.html">Debian Edu / Skolelinux based on Lenny released, work continues</a>
31146 </div>
31147 <div class="date">
31148 11th February 2010
31149 </div>
31150 <div class="body">
31151 <p>On Tuesday, the Debian/Lenny based version of
31152 <a href="http://www.skolelinux.org/">Skolelinux</a> was finally
31153 shipped. This was a major leap forward for the project, and I am very
31154 pleased that we finally got the release wrapped up. Work on the first
31155 point release starts imediately, as we plan to get that one out a
31156 month after the major release, to include all fixes for bugs we found
31157 and fixed too late in the release process to include last Tuesday.</p>
31158
31159 <p>Perhaps it even is time for some partying?</p>
31160
31161 <p>After this first point release, my plan is to focus again on the
31162 next major release, based on Squeeze. We will try to get as many of
31163 the fixes we need into the official Debian packages before the freeze,
31164 and have just a few weeks or months to make it happen.</p>
31165
31166 </div>
31167 <div class="tags">
31168
31169
31170 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
31171
31172
31173 </div>
31174 </div>
31175 <div class="padding"></div>
31176
31177 <div class="entry">
31178 <div class="title">
31179 <a href="http://people.skolelinux.org/pere/blog/Automatic_Munin_and_Nagios_configuration.html">Automatic Munin and Nagios configuration</a>
31180 </div>
31181 <div class="date">
31182 27th January 2010
31183 </div>
31184 <div class="body">
31185 <p>One of the new features in the next Debian/Lenny based release of
31186 Debian Edu/Skolelinux, which is scheduled for release in the next few
31187 days, is automatic configuration of the service monitoring system
31188 Nagios. The previous release had automatic configuration of trend
31189 analysis using Munin, and this Lenny based release take that a step
31190 further.</p>
31191
31192 <p>When installing a Debian Edu Main-server, it is automatically
31193 configured as a Munin and Nagios server. In addition, it is
31194 configured to be a server for the
31195 <a href="http://wiki.debian.org/DebianEdu/HowTo/SiteSummary">SiteSummary
31196 system</a> I have written for use in Debian Edu. The SiteSummary
31197 system is inspired by a system used by the University of Oslo where I
31198 work. In short, the system provide a centralised collector of
31199 information about the computers on the network, and a client on each
31200 computer submitting information to this collector. This allow for
31201 automatic information on which packages are installed on each machine,
31202 which kernel the machines are using, what kind of configuration the
31203 packages got etc. This also allow us to automatically generate Munin
31204 and Nagios configuration.</p>
31205
31206 <p>All computers reporting to the sitesummary collector with the
31207 munin-node package installed is automatically enabled as a Munin
31208 client and graphs from the statistics collected from that machine show
31209 up automatically on http://www/munin/ on the Main-server.</p>
31210
31211 <p>All non-laptop computers reporting to the sitesummary collector are
31212 automatically monitored for network presence (ping and any network
31213 services detected). In addition, all computers (also laptops) with
31214 the nagios-nrpe-server package installed and configured the way
31215 sitesummary would configure it, are monitored for full disks, software
31216 raid status, swap free and other checks that need to run locally on
31217 the machine.</p>
31218
31219 <p>The result is that the administrator on a school using Debian Edu
31220 based on Lenny will be able to check the health of his installation
31221 with one look at the Nagios settings, without having to spend any time
31222 keeping the Nagios configuration up-to-date.</p>
31223
31224 <p>The only configuration one need to do to get Nagios up and running
31225 is to set the password used to get access via HTTP. The system
31226 administrator need to run "<tt>htpasswd /etc/nagios3/htpasswd.users
31227 nagiosadmin</tt>" to create a nagiosadmin user and set a password for
31228 it to be able to log into the Nagios web pages. After that,
31229 everything is taken care of.</p>
31230
31231 </div>
31232 <div class="tags">
31233
31234
31235 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary</a>.
31236
31237
31238 </div>
31239 </div>
31240 <div class="padding"></div>
31241
31242 <div class="entry">
31243 <div class="title">
31244 <a href="http://people.skolelinux.org/pere/blog/Relative_popularity_of_document_formats__MS_Office_vs__ODF_.html">Relative popularity of document formats (MS Office vs. ODF)</a>
31245 </div>
31246 <div class="date">
31247 12th August 2009
31248 </div>
31249 <div class="body">
31250 <p>Just for fun, I did a search right now on Google for a few file ODF
31251 and MS Office based formats (not to be mistaken for ISO or ECMA
31252 OOXML), to get an idea of their relative usage. I searched using
31253 'filetype:odt' and equvalent terms, and got these results:</P>
31254
31255 <table>
31256 <tr><th>Type</th><th>ODF</th><th>MS Office</th></tr>
31257 <tr><td>Tekst</td> <td>odt:282000</td> <td>docx:308000</td></tr>
31258 <tr><td>Presentasjon</td> <td>odp:75600</td> <td>pptx:183000</td></tr>
31259 <tr><td>Regneark</td> <td>ods:26500 </td> <td>xlsx:145000</td></tr>
31260 </table>
31261
31262 <p>Next, I added a 'site:no' limit to get the numbers for Norway, and
31263 got these numbers:</p>
31264
31265 <table>
31266 <tr><th>Type</th><th>ODF</th><th>MS Office</th></tr>
31267 <tr><td>Tekst</td> <td>odt:2480 </td> <td>docx:4460</td></tr>
31268 <tr><td>Presentasjon</td> <td>odp:299 </td> <td>pptx:741</td></tr>
31269 <tr><td>Regneark</td> <td>ods:187 </td> <td>xlsx:372</td></tr>
31270 </table>
31271
31272 <p>I wonder how these numbers change over time.</p>
31273
31274 <p>I am aware of Google returning different results and numbers based
31275 on where the search is done, so I guess these numbers will differ if
31276 they are conduced in another country. Because of this, I did the same
31277 search from a machine in California, USA, a few minutes after the
31278 search done from a machine here in Norway.</p>
31279
31280
31281 <table>
31282 <tr><th>Type</th><th>ODF</th><th>MS Office</th></tr>
31283 <tr><td>Tekst</td> <td>odt:129000</td> <td>docx:308000</td></tr>
31284 <tr><td>Presentasjon</td> <td>odp:44200</td> <td>pptx:93900</td></tr>
31285 <tr><td>Regneark</td> <td>ods:26500 </td> <td>xlsx:82400</td></tr>
31286 </table>
31287
31288 <p>And with 'site:no':
31289
31290 <table>
31291 <tr><th>Type</th><th>ODF</th><th>MS Office</th></tr>
31292 <tr><td>Tekst</td> <td>odt:2480</td> <td>docx:3410</td></tr>
31293 <tr><td>Presentasjon</td> <td>odp:175</td> <td>pptx:604</td></tr>
31294 <tr><td>Regneark</td> <td>ods:186 </td> <td>xlsx:296</td></tr>
31295 </table>
31296
31297 <p>Interesting difference, not sure what to conclude from these
31298 numbers.</p>
31299
31300 </div>
31301 <div class="tags">
31302
31303
31304 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</a>.
31305
31306
31307 </div>
31308 </div>
31309 <div class="padding"></div>
31310
31311 <div class="entry">
31312 <div class="title">
31313 <a href="http://people.skolelinux.org/pere/blog/ISO_still_hope_to_fix_OOXML.html">ISO still hope to fix OOXML</a>
31314 </div>
31315 <div class="date">
31316 8th August 2009
31317 </div>
31318 <div class="body">
31319 <p>According to <a
31320 href="http://twerner.blogspot.com/2009/08/defects-of-office-open-xml.html">a
31321 blog post from Torsten Werner</a>, the current defect report for ISO
31322 29500 (ISO OOXML) is 809 pages. His interesting point is that the
31323 defect report is 71 pages more than the full ODF 1.1 specification.
31324 Personally I find it more interesting that ISO still believe ISO OOXML
31325 can be fixed in ISO. Personally, I believe it is broken beyon repair,
31326 and I completely lack any trust in ISO for being able to get anywhere
31327 close to solving the problems. I was part of the Norwegian committee
31328 involved in the OOXML fast track process, and was not impressed with
31329 Standard Norway and ISO in how they handled it.</p>
31330
31331 <p>These days I focus on ODF instead, which seem like a specification
31332 with the future ahead of it. We are working in NUUG to organise a ODF
31333 seminar this autumn.</p>
31334
31335 </div>
31336 <div class="tags">
31337
31338
31339 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>.
31340
31341
31342 </div>
31343 </div>
31344 <div class="padding"></div>
31345
31346 <div class="entry">
31347 <div class="title">
31348 <a href="http://people.skolelinux.org/pere/blog/Debian_has_switched_to_dependency_based_boot_sequencing.html">Debian has switched to dependency based boot sequencing</a>
31349 </div>
31350 <div class="date">
31351 27th July 2009
31352 </div>
31353 <div class="body">
31354 <p>Since this evening, with the upload of sysvinit version 2.87dsf-2,
31355 and the upload of insserv version 1.12.0-10 yesterday, Debian unstable
31356 have been migrated to using dependency based boot sequencing. This
31357 conclude work me and others have been doing for the last three days.
31358 It feels great to see this finally part of the default Debian
31359 installation. Now we just need to weed out the last few problems that
31360 are bound to show up, to get everything ready for Squeeze.</p>
31361
31362 <p>The next step is migrating /sbin/init from sysvinit to upstart, and
31363 fixing the more fundamental problem of handing the event based
31364 non-predictable kernel in the early boot.</p>
31365
31366 </div>
31367 <div class="tags">
31368
31369
31370 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <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/nuug">nuug</a>.
31371
31372
31373 </div>
31374 </div>
31375 <div class="padding"></div>
31376
31377 <div class="entry">
31378 <div class="title">
31379 <a href="http://people.skolelinux.org/pere/blog/Taking_over_sysvinit_development.html">Taking over sysvinit development</a>
31380 </div>
31381 <div class="date">
31382 22nd July 2009
31383 </div>
31384 <div class="body">
31385 <p>After several years of frustration with the lack of activity from
31386 the existing sysvinit upstream developer, I decided a few weeks ago to
31387 take over the package and become the new upstream. The number of
31388 patches to track for the Debian package was becoming a burden, and the
31389 lack of synchronization between the distribution made it hard to keep
31390 the package up to date.</p>
31391
31392 <p>On the new sysvinit team is the SuSe maintainer Dr. Werner Fink,
31393 and my Debian co-maintainer Kel Modderman. About 10 days ago, I made
31394 a new upstream tarball with version number 2.87dsf (for Debian, SuSe
31395 and Fedora), based on the patches currently in use in these
31396 distributions. We Debian maintainers plan to move to this tarball as
31397 the new upstream as soon as we find time to do the merge. Since the
31398 new tarball was created, we agreed with Werner at SuSe to make a new
31399 upstream project at <a href="http://savannah.nongnu.org/">Savannah</a>, and continue
31400 development there. The project is registered and currently waiting
31401 for approval by the Savannah administrators, and as soon as it is
31402 approved, we will import the old versions from svn and continue
31403 working on the future release.</p>
31404
31405 <p>It is a bit ironic that this is done now, when some of the involved
31406 distributions are moving to upstart as a syvinit replacement.</p>
31407
31408 </div>
31409 <div class="tags">
31410
31411
31412 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <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/nuug">nuug</a>.
31413
31414
31415 </div>
31416 </div>
31417 <div class="padding"></div>
31418
31419 <div class="entry">
31420 <div class="title">
31421 <a href="http://people.skolelinux.org/pere/blog/Debian_boots_quicker_and_quicker.html">Debian boots quicker and quicker</a>
31422 </div>
31423 <div class="date">
31424 24th June 2009
31425 </div>
31426 <div class="body">
31427 <p>I spent Monday and tuesday this week in London with a lot of the
31428 people involved in the boot system on Debian and Ubuntu, to see if we
31429 could find more ways to speed up the boot system. This was an Ubuntu
31430 funded
31431 <a href="https://wiki.ubuntu.com/FoundationsTeam/BootPerformance/DebianUbuntuSprint">developer
31432 gathering</a>. It was quite productive. We also discussed the future
31433 of boot systems, and ways to handle the increasing number of boot
31434 issues introduced by the Linux kernel becoming more and more
31435 asynchronous and event base. The Ubuntu approach using udev and
31436 upstart might be a good way forward. Time will show.</p>
31437
31438 <p>Anyway, there are a few ways at the moment to speed up the boot
31439 process in Debian. All of these should be applied to get a quick
31440 boot:</p>
31441
31442 <ul>
31443
31444 <li>Use dash as /bin/sh.</li>
31445
31446 <li>Disable the init.d/hwclock*.sh scripts and make sure the hardware
31447 clock is in UTC.</li>
31448
31449 <li>Install and activate the insserv package to enable
31450 <a href="http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot">dependency
31451 based boot sequencing</a>, and enable concurrent booting.</li>
31452
31453 </ul>
31454
31455 These points are based on the Google summer of code work done by
31456 <a href="http://initscripts-ng.alioth.debian.org/soc2006-bootsystem/">Carlos
31457 Villegas</a>.
31458
31459 <p>Support for makefile-style concurrency during boot was uploaded to
31460 unstable yesterday. When we tested it, we were able to cut 6 seconds
31461 from the boot sequence. It depend on very correct dependency
31462 declaration in all init.d scripts, so I expect us to find edge cases
31463 where the dependences in some scripts are slightly wrong when we start
31464 using this.</p>
31465
31466 <p>On our IRC channel for this effort, #pkg-sysvinit, a new idea was
31467 introduced by Raphael Geissert today, one that could affect the
31468 startup speed as well. Instead of starting some scripts concurrently
31469 from rcS.d/ and another set of scripts from rc2.d/, it would be
31470 possible to run a of them in the same process. A quick way to test
31471 this would be to enable insserv and run 'mv /etc/rc2.d/S* /etc/rcS.d/;
31472 insserv'. Will need to test if that work. :)</p>
31473
31474 </div>
31475 <div class="tags">
31476
31477
31478 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
31479
31480
31481 </div>
31482 </div>
31483 <div class="padding"></div>
31484
31485 <div class="entry">
31486 <div class="title">
31487 <a href="http://people.skolelinux.org/pere/blog/Two_projects_that_have_improved_the_quality_of_free_software_a_lot.html">Two projects that have improved the quality of free software a lot</a>
31488 </div>
31489 <div class="date">
31490 2nd May 2009
31491 </div>
31492 <div class="body">
31493 <p>There are two software projects that have had huge influence on the
31494 quality of free software, and I wanted to mention both in case someone
31495 do not yet know them.</p>
31496
31497 <p>The first one is <a href="http://valgrind.org/">valgrind</a>, a
31498 tool to detect and expose errors in the memory handling of programs.
31499 It is easy to use, all one need to do is to run 'valgrind program',
31500 and it will report any problems on stdout. It is even better if the
31501 program include debug information. With debug information, it is able
31502 to report the source file name and line number where the problem
31503 occurs. It can report things like 'reading past memory block in file
31504 X line N, the memory block was allocated in file Y, line M', and
31505 'using uninitialised value in control logic'. This tool has made it
31506 trivial to investigate reproducible crash bugs in programs, and have
31507 reduced the number of this kind of bugs in free software a lot.
31508
31509 <p>The second one is
31510 <a href="http://en.wikipedia.org/wiki/Coverity">Coverity</a> which is
31511 a source code checker. It is able to process the source of a program
31512 and find problems in the logic without running the program. It
31513 started out as the Stanford Checker and became well known when it was
31514 used to find bugs in the Linux kernel. It is now a commercial tool
31515 and the company behind it is running
31516 <a href="http://www.scan.coverity.com/">a community service</a> for the
31517 free software community, where a lot of free software projects get
31518 their source checked for free. Several thousand defects have been
31519 found and fixed so far. It can find errors like 'lock L taken in file
31520 X line N is never released if exiting in line M', or 'the code in file
31521 Y lines O to P can never be executed'. The projects included in the
31522 community service project have managed to get rid of a lot of
31523 reliability problems thanks to Coverity.</p>
31524
31525 <p>I believe tools like this, that are able to automatically find
31526 errors in the source, are vital to improve the quality of software and
31527 make sure we can get rid of the crashing and failing software we are
31528 surrounded by today.</p>
31529
31530 </div>
31531 <div class="tags">
31532
31533
31534 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>.
31535
31536
31537 </div>
31538 </div>
31539 <div class="padding"></div>
31540
31541 <div class="entry">
31542 <div class="title">
31543 <a href="http://people.skolelinux.org/pere/blog/No_patch_is_not_better_than_a_useless_patch.html">No patch is not better than a useless patch</a>
31544 </div>
31545 <div class="date">
31546 28th April 2009
31547 </div>
31548 <div class="body">
31549 <p>Julien Blache
31550 <a href="http://blog.technologeek.org/2009/04/12/214">claim that no
31551 patch is better than a useless patch</a>. I completely disagree, as a
31552 patch allow one to discuss a concrete and proposed solution, and also
31553 prove that the issue at hand is important enough for someone to spent
31554 time on fixing it. No patch do not provide any of these positive
31555 properties.</p>
31556
31557 </div>
31558 <div class="tags">
31559
31560
31561 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/nuug">nuug</a>.
31562
31563
31564 </div>
31565 </div>
31566 <div class="padding"></div>
31567
31568 <div class="entry">
31569 <div class="title">
31570 <a href="http://people.skolelinux.org/pere/blog/Recording_video_from_cron_using_VLC.html">Recording video from cron using VLC</a>
31571 </div>
31572 <div class="date">
31573 5th April 2009
31574 </div>
31575 <div class="body">
31576 <p>One think I have wanted to figure out for a along time is how to
31577 run vlc from cron to do recording of video streams on the net. The
31578 task is trivial with mplayer, but I do not really trust the security
31579 of mplayer (it crashes too often on strange input), and thus prefer
31580 vlc. I finally found a way to do it today. I spent an hour or so
31581 searching the web for recipes and reading the documentation. The
31582 hardest part was to get rid of the GUI window, but after finding the
31583 dummy interface, the command line finally presented itself:</p>
31584
31585 <blockquote><pre>URL=http://www.ping.uio.no/video/rms-oslo_2009.ogg
31586 SAVEFILE=rms.ogg
31587 DISPLAY= vlc -q $URL \
31588 --sout="#duplicate{dst=std{access=file,url='$SAVEFILE'},dst=nodisplay}" \
31589 --intf=dummy</pre></blockquote>
31590
31591 <p>The command stream the URL and store it in the SAVEFILE by
31592 duplicating the output stream to "nodisplay" and the file, using the
31593 dummy interface. The dummy interface and the nodisplay output make
31594 sure no X interface is needed.</p>
31595
31596 <p>The cron job then need to start this job with the appropriate URL
31597 and file name to save, sleep for the duration wanted, and then kill
31598 the vlc process with SIGTERM. Here is a complete script
31599 <tt>vlc-record</tt> to use from <tt>at</tt> or <tt>cron</tt>:</p>
31600
31601 <blockquote><pre>#!/bin/sh
31602 set -e
31603 URL="$1"
31604 SAVEFILE="$2"
31605 DURATION="$3"
31606 DISPLAY= vlc -q "$URL" \
31607 --sout="#duplicate{dst=std{access=file,url='$SAVEFILE'},dst=nodisplay}" \
31608 --intf=dummy < /dev/null > /dev/null 2>&1 &
31609 pid=$!
31610 sleep $DURATION
31611 kill $pid
31612 wait $pid</pre></blockquote>
31613
31614 </div>
31615 <div class="tags">
31616
31617
31618 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
31619
31620
31621 </div>
31622 </div>
31623 <div class="padding"></div>
31624
31625 <div class="entry">
31626 <div class="title">
31627 <a href="http://people.skolelinux.org/pere/blog/Standardize_on_protocols_and_formats__not_vendors_and_applications.html">Standardize on protocols and formats, not vendors and applications</a>
31628 </div>
31629 <div class="date">
31630 30th March 2009
31631 </div>
31632 <div class="body">
31633 <p>Where I work at the University of Oslo, one decision stand out as a
31634 very good one to form a long lived computer infrastructure. It is the
31635 simple one, lost by many in todays computer industry: Standardize on
31636 open network protocols and open exchange/storage formats, not applications.
31637 Applications come and go, while protocols and files tend to stay, and
31638 thus one want to make it easy to change application and vendor, while
31639 avoiding conversion costs and locking users to a specific platform or
31640 application.</p>
31641
31642 <p>This approach make it possible to replace the client applications
31643 independently of the server applications. One can even allow users to
31644 use several different applications as long as they handle the selected
31645 protocol and format. In the normal case, only one client application
31646 is recommended and users only get help if they choose to use this
31647 application, but those that want to deviate from the easy path are not
31648 blocked from doing so.</p>
31649
31650 <p>It also allow us to replace the server side without forcing the
31651 users to replace their applications, and thus allow us to select the
31652 best server implementation at any moment, when scale and resouce
31653 requirements change.</p>
31654
31655 <p>I strongly recommend standardizing - on open network protocols and
31656 open formats, but I would never recommend standardizing on a single
31657 application that do not use open network protocol or open formats.</p>
31658
31659 </div>
31660 <div class="tags">
31661
31662
31663 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/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>.
31664
31665
31666 </div>
31667 </div>
31668 <div class="padding"></div>
31669
31670 <div class="entry">
31671 <div class="title">
31672 <a href="http://people.skolelinux.org/pere/blog/Returning_from_Skolelinux_developer_gathering.html">Returning from Skolelinux developer gathering</a>
31673 </div>
31674 <div class="date">
31675 29th March 2009
31676 </div>
31677 <div class="body">
31678 <p>I'm sitting on the train going home from this weekends Debian
31679 Edu/Skolelinux development gathering. I got a bit done tuning the
31680 desktop, and looked into the dynamic service location protocol
31681 implementation avahi. It look like it could be useful for us. Almost
31682 30 people participated, and I believe it was a great environment to
31683 get to know the Skolelinux system. Walter Bender, involved in the
31684 development of the Sugar educational platform, presented his stuff and
31685 also helped me improve my OLPC installation. He also showed me that
31686 his Turtle Art application can be used in standalone mode, and we
31687 agreed that I would help getting it packaged for Debian. As a
31688 standalone application it would be great for Debian Edu. We also
31689 tried to get the video conferencing working with two OLPCs, but that
31690 proved to be too hard for us. The application seem to need more work
31691 before it is ready for me. I look forward to getting home and relax
31692 now. :)</p>
31693
31694 </div>
31695 <div class="tags">
31696
31697
31698 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
31699
31700
31701 </div>
31702 </div>
31703 <div class="padding"></div>
31704
31705 <div class="entry">
31706 <div class="title">
31707 <a href="http://people.skolelinux.org/pere/blog/Time_for_new__LDAP_schemas_replacing_RFC_2307_.html">Time for new LDAP schemas replacing RFC 2307?</a>
31708 </div>
31709 <div class="date">
31710 29th March 2009
31711 </div>
31712 <div class="body">
31713 <p>The state of standardized LDAP schemas on Linux is far from
31714 optimal. There is RFC 2307 documenting one way to store NIS maps in
31715 LDAP, and a modified version of this normally called RFC 2307bis, with
31716 some modifications to be compatible with Active Directory. The RFC
31717 specification handle the content of a lot of system databases, but do
31718 not handle DNS zones and DHCP configuration.</p>
31719
31720 <p>In <a href="http://www.skolelinux.org/">Debian Edu/Skolelinux</a>,
31721 we would like to store information about users, SMB clients/hosts,
31722 filegroups, netgroups (users and hosts), DHCP and DNS configuration,
31723 and LTSP configuration in LDAP. These objects have a lot in common,
31724 but with the current LDAP schemas it is not possible to have one
31725 object per entity. For example, one need to have at least three LDAP
31726 objects for a given computer, one with the SMB related stuff, one with
31727 DNS information and another with DHCP information. The schemas
31728 provided for DNS and DHCP are impossible to combine into one LDAP
31729 object. In addition, it is impossible to implement quick queries for
31730 netgroup membership, because of the way NIS triples are implemented.
31731 It just do not scale. I believe it is time for a few RFC
31732 specifications to cleam up this mess.</p>
31733
31734 <p>I would like to have one LDAP object representing each computer in
31735 the network, and this object can then keep the SMB (ie host key), DHCP
31736 (mac address/name) and DNS (name/IP address) settings in one place.
31737 It need to be efficently stored to make sure it scale well.</p>
31738
31739 <p>I would also like to have a quick way to map from a user or
31740 computer and to the net group this user or computer is a member.</p>
31741
31742 <p>Active Directory have done a better job than unix heads like myself
31743 in this regard, and the unix side need to catch up. Time to start a
31744 new IETF work group?</p>
31745
31746 </div>
31747 <div class="tags">
31748
31749
31750 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
31751
31752
31753 </div>
31754 </div>
31755 <div class="padding"></div>
31756
31757 <div class="entry">
31758 <div class="title">
31759 <a href="http://people.skolelinux.org/pere/blog/Checking_server_hardware_support_status_for_Dell__HP_and_IBM_servers.html">Checking server hardware support status for Dell, HP and IBM servers</a>
31760 </div>
31761 <div class="date">
31762 28th February 2009
31763 </div>
31764 <div class="body">
31765 <p>At work, we have a few hundred Linux servers, and with that amount
31766 of hardware it is important to keep track of when the hardware support
31767 contract expire for each server. We have a machine (and service)
31768 register, which until recently did not contain much useful besides the
31769 machine room location and contact information for the system owner for
31770 each machine. To make it easier for us to track support contract
31771 status, I've recently spent time on extending the machine register to
31772 include information about when the support contract expire, and to tag
31773 machines with expired contracts to make it easy to get a list of such
31774 machines. I extended a perl script already being used to import
31775 information about machines into the register, to also do some screen
31776 scraping off the sites of Dell, HP and IBM (our majority of machines
31777 are from these vendors), and automatically check the support status
31778 for the relevant machines. This make the support status information
31779 easily available and I hope it will make it easier for the computer
31780 owner to know when to get new hardware or renew the support contract.
31781 The result of this work documented that 27% of the machines in the
31782 registry is without a support contract, and made it very easy to find
31783 them. 27% might seem like a lot, but I see it more as the case of us
31784 using machines a bit longer than the 3 years a normal support contract
31785 last, to have test machines and a platform for less important
31786 services. After all, the machines without a contract are working fine
31787 at the moment and the lack of contract is only a problem if any of
31788 them break down. When that happen, we can either fix it using spare
31789 parts from other machines or move the service to another old
31790 machine.</p>
31791
31792 <p>I believe the code for screen scraping the Dell site was originally
31793 written by Trond Hasle Amundsen, and later adjusted by me and Morten
31794 Werner Forsbring. The HP scraping was written by me after reading a
31795 nice article in ;login: about how to use WWW::Mechanize, and the IBM
31796 scraping was written by me based on the Dell code. I know the HTML
31797 parsing could be done using nice libraries, but did not want to
31798 introduce more dependencies. This is the current incarnation:</p>
31799
31800 <pre>
31801 use LWP::Simple;
31802 use POSIX;
31803 use WWW::Mechanize;
31804 use Date::Parse;
31805 [...]
31806 sub get_support_info {
31807 my ($machine, $model, $serial, $productnumber) = @_;
31808 my $str;
31809
31810 if ( $model =~ m/^Dell / ) {
31811 # fetch website from Dell support
31812 my $url = "http://support.euro.dell.com/support/topics/topic.aspx/emea/shared/support/my_systems_info/no/details?c=no&amp;cs=nodhs1&amp;l=no&amp;s=dhs&amp;ServiceTag=$serial";
31813 my $webpage = get($url);
31814 return undef unless ($webpage);
31815
31816 my $daysleft = -1;
31817 my @lines = split(/\n/, $webpage);
31818 foreach my $line (@lines) {
31819 next unless ($line =~ m/Beskrivelse/);
31820 $line =~ s/&lt;[^>]+?>/;/gm;
31821 $line =~ s/^.+?;(Beskrivelse;)/$1/;
31822
31823 my @f = split(/\;/, $line);
31824 @f = @f[13 .. $#f];
31825 my $lastend = "";
31826 while ($f[3] eq "DELL") {
31827 my ($type, $startstr, $endstr, $days) = @f[0, 5, 7, 10];
31828
31829 my $start = POSIX::strftime("%Y-%m-%d",
31830 localtime(str2time($startstr)));
31831 my $end = POSIX::strftime("%Y-%m-%d",
31832 localtime(str2time($endstr)));
31833 $str .= "$type $start -> $end ";
31834 @f = @f[14 .. $#f];
31835 $lastend = $end if ($end gt $lastend);
31836 }
31837 my $today = POSIX::strftime("%Y-%m-%d", localtime(time));
31838 tag_machine_unsupported($machine)
31839 if ($lastend lt $today);
31840 }
31841 } elsif ( $model =~ m/^HP / ) {
31842 my $mech = WWW::Mechanize->new();
31843 my $url =
31844 'http://www1.itrc.hp.com/service/ewarranty/warrantyInput.do';
31845 $mech->get($url);
31846 my $fields = {
31847 'BODServiceID' => 'NA',
31848 'RegisteredPurchaseDate' => '',
31849 'country' => 'NO',
31850 'productNumber' => $productnumber,
31851 'serialNumber1' => $serial,
31852 };
31853 $mech->submit_form( form_number => 2,
31854 fields => $fields );
31855 # Next step is screen scraping
31856 my $content = $mech->content();
31857
31858 $content =~ s/&lt;[^>]+?>/;/gm;
31859 $content =~ s/\s+/ /gm;
31860 $content =~ s/;\s*;/;;/gm;
31861 $content =~ s/;[\s;]+/;/gm;
31862
31863 my $today = POSIX::strftime("%Y-%m-%d", localtime(time));
31864
31865 while ($content =~ m/;Warranty Type;/) {
31866 my ($type, $status, $startstr, $stopstr) = $content =~
31867 m/;Warranty Type;([^;]+);.+?;Status;(\w+);Start Date;([^;]+);End Date;([^;]+);/;
31868 $content =~ s/^.+?;Warranty Type;//;
31869 my $start = POSIX::strftime("%Y-%m-%d",
31870 localtime(str2time($startstr)));
31871 my $end = POSIX::strftime("%Y-%m-%d",
31872 localtime(str2time($stopstr)));
31873
31874 $str .= "$type ($status) $start -> $end ";
31875
31876 tag_machine_unsupported($machine)
31877 if ($end lt $today);
31878 }
31879 } elsif ( $model =~ m/^IBM / ) {
31880 # This code ignore extended support contracts.
31881 my ($producttype) = $model =~ m/.*-\[(.{4}).+\]-/;
31882 if ($producttype &amp;&amp; $serial) {
31883 my $content =
31884 get("http://www-947.ibm.com/systems/support/supportsite.wss/warranty?action=warranty&amp;brandind=5000008&amp;Submit=Submit&amp;type=$producttype&amp;serial=$serial");
31885 if ($content) {
31886 $content =~ s/&lt;[^>]+?>/;/gm;
31887 $content =~ s/\s+/ /gm;
31888 $content =~ s/;\s*;/;;/gm;
31889 $content =~ s/;[\s;]+/;/gm;
31890
31891 $content =~ s/^.+?;Warranty status;//;
31892 my ($status, $end) = $content =~ m/;Warranty status;([^;]+)\s*;Expiration date;(\S+) ;/;
31893
31894 $str .= "($status) -> $end ";
31895
31896 my $today = POSIX::strftime("%Y-%m-%d", localtime(time));
31897 tag_machine_unsupported($machine)
31898 if ($end lt $today);
31899 }
31900 }
31901 }
31902 return $str;
31903 }
31904 </pre>
31905
31906 <p>Here are some examples on how to use the function, using fake
31907 serial numbers. The information passed in as arguments are fetched
31908 from dmidecode.</p>
31909
31910 <pre>
31911 print get_support_info("hp.host", "HP ProLiant BL460c G1", "1234567890"
31912 "447707-B21");
31913 print get_support_info("dell.host", "Dell Inc. PowerEdge 2950", "1234567");
31914 print get_support_info("ibm.host", "IBM eserver xSeries 345 -[867061X]-",
31915 "1234567");
31916 </pre>
31917
31918 <p>I would recommend this approach for tracking support contracts for
31919 everyone with more than a few computers to administer. :)</p>
31920
31921 <p>Update 2009-03-06: The IBM page do not include extended support
31922 contracts, so it is useless in that case. The original Dell code do
31923 not handle extended support contracts either, but has been updated to
31924 do so.</p>
31925
31926 </div>
31927 <div class="tags">
31928
31929
31930 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
31931
31932
31933 </div>
31934 </div>
31935 <div class="padding"></div>
31936
31937 <div class="entry">
31938 <div class="title">
31939 <a href="http://people.skolelinux.org/pere/blog/Using_bar_codes_at_a_computing_center.html">Using bar codes at a computing center</a>
31940 </div>
31941 <div class="date">
31942 20th February 2009
31943 </div>
31944 <div class="body">
31945 <p>At work with the University of Oslo, we have several hundred computers
31946 in our computing center. This give us a challenge in tracking the
31947 location and cabling of the computers, when they are added, moved and
31948 removed. Some times the location register is not updated when a
31949 computer is inserted or moved and we then have to search the room for
31950 the "missing" computer.</p>
31951
31952 <p>In the last issue of Linux Journal, I came across a project
31953 <a href="http://www.libdmtx.org/">libdmtx</a> to write and read bar
31954 code blocks as defined in the
31955 <a href="http://en.wikipedia.org/wiki/Data_Matrix">The Data Matrix
31956 Standard</a>. This is bar codes that can be read with a normal
31957 digital camera, for example that on a cell phone, and several such bar
31958 codes can be read by libdmtx from one picture. The bar code standard
31959 allow up to 2 KiB to be written in the tag. There is another project
31960 with <a href="http://www.terryburton.co.uk/barcodewriter/">a bar code
31961 writer written in postscript</a> capable of creating such bar codes,
31962 but this was the first time I found a tool to read these bar
31963 codes.</p>
31964
31965 <p>It occurred to me that this could be used to tag and track the
31966 machines in our computing center. If both racks and computers are
31967 tagged this way, we can use a picture of the rack and all its
31968 computers to detect the rack location of any computer in that rack.
31969 If we do this regularly for the entire room, we will find all
31970 locations, and can detect movements and removals.</p>
31971
31972 <p>I decided to test if this would work in practice, and picked a
31973 random rack and tagged all the machines with their names. Next, I
31974 took pictures with my digital camera, and gave the dmtxread program
31975 these JPEG pictures to see how many tags it could read. This worked
31976 fairly well. If the pictures was well focused and not taken from the
31977 side, all tags in the image could be read. Because of limited space
31978 between the racks, I was unable to get a good picture of the entire
31979 rack, but could without problem read all tags from a picture covering
31980 about half the rack. I had to limit the search time used by dmtxread
31981 to 60000 ms to make sure it terminated in a reasonable time frame.</p>
31982
31983 <p>My conclusion is that this could work, and we should probably look
31984 at adjusting our computer tagging procedures to use bar codes for
31985 easier automatic tracking of computers.</p>
31986
31987 </div>
31988 <div class="tags">
31989
31990
31991 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
31992
31993
31994 </div>
31995 </div>
31996 <div class="padding"></div>
31997
31998 <div class="entry">
31999 <div class="title">
32000 <a href="http://people.skolelinux.org/pere/blog/When_web_browser_developers_make_a_video_player___.html">When web browser developers make a video player...</a>
32001 </div>
32002 <div class="date">
32003 17th January 2009
32004 </div>
32005 <div class="body">
32006 <p>As part of the work we do in <a href="http://www.nuug.no">NUUG</a>
32007 to publish video recordings of our monthly presentations, we provide a
32008 page with embedded video for easy access to the recording. Putting a
32009 good set of HTML tags together to get working embedded video in all
32010 browsers and across all operating systems is not easy. I hope this
32011 will become easier when the &lt;video&gt; tag is implemented in all
32012 browsers, but I am not sure. We provide the recordings in several
32013 formats, MPEG1, Ogg Theora, H.264 and Quicktime, and want the
32014 browser/media plugin to pick one it support and use it to play the
32015 recording, using whatever embed mechanism the browser understand.
32016 There is at least four different tags to use for this, the new HTML5
32017 &lt;video&gt; tag, the &lt;object&gt; tag, the &lt;embed&gt; tag and
32018 the &lt;applet&gt; tag. All of these take a lot of options, and
32019 finding the best options is a major challenge.</p>
32020
32021 <p>I just tested the experimental Opera browser available from <a
32022 href="http://labs.opera.com">labs.opera.com</a>, to see how it handled
32023 a &lt;video&gt; tag with a few video sources and no extra attributes.
32024 I was not very impressed. The browser start by fetching a picture
32025 from the video stream. Not sure if it is the first frame, but it is
32026 definitely very early in the recording. So far, so good. Next,
32027 instead of streaming the 76 MiB video file, it start to download all
32028 of it, but do not start to play the video. This mean I have to wait
32029 for several minutes for the downloading to finish. When the download
32030 is done, the playing of the video do not start! Waiting for the
32031 download, but I do not get to see the video? Some testing later, I
32032 discover that I have to add the controls="true" attribute to be able
32033 to get a play button to pres to start the video. Adding
32034 autoplay="true" did not help. I sure hope this is a misfeature of the
32035 test version of Opera, and that future implementations of the
32036 &lt;video&gt; tag will stream recordings by default, or at least start
32037 playing when the download is done.</p>
32038
32039 <p>The test page I used (since changed to add more attributes) is
32040 <a href="http://www.nuug.no/aktiviteter/20090113-foredrag-om-foredrag/">available
32041 from the nuug site</a>. Will have to test it with the new Firefox
32042 too.</p>
32043
32044 <p>In the test process, I discovered a missing feature. I was unable
32045 to find a way to get the URL of the playing video out of Opera, so I
32046 am not quite sure it picked the Ogg Theora version of the video. I
32047 sure hope it was using the announced Ogg Theora support. :)</p>
32048
32049 </div>
32050 <div class="tags">
32051
32052
32053 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/h264">h264</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</a>.
32054
32055
32056 </div>
32057 </div>
32058 <div class="padding"></div>
32059
32060 <div class="entry">
32061 <div class="title">
32062 <a href="http://people.skolelinux.org/pere/blog/Software_video_mixer_on_a_USB_stick.html">Software video mixer on a USB stick</a>
32063 </div>
32064 <div class="date">
32065 28th December 2008
32066 </div>
32067 <div class="body">
32068 <p>The <a href="http://www.nuug.no/">Norwegian Unix User Group</a> is
32069 recording our montly presentation on video, and recently we have
32070 worked on improving the quality of the recordings by mixing the slides
32071 directly with the video stream. For this, we use the
32072 <a href="http://dvswitch.alioth.debian.org/">dvswitch</a> package from
32073 the Debian video team. As this require quite one computer per video
32074 source, and NUUG do not have enough laptops available, we need to
32075 borrow laptops. And to avoid having to install extra software on
32076 these borrwed laptops, I have wrapped up all the programs needed on a
32077 bootable USB stick. The software required is dvswitch with assosiated
32078 source, sink and mixer applications and
32079 <a href="http://www.kinodv.org/">dvgrab</a>. To allow this setup to
32080 work without any configuration, I've patched dvswitch to use
32081 <a href="http://www.avahi.org/">avahi</a> to connect the various parts
32082 together. And to allow us to use laptops without firewire plugs, I
32083 upgraded dvgrab to the one from Debian/unstable to get one that work
32084 with USB sources. We have not yet tested this setup in a production
32085 setup, but I hope it will work properly, and allow us to set up a
32086 video mixer in a very short time frame. We will need it for
32087 <a href="http://www.goopen.no/">Go Open 2009</a>.</p>
32088
32089 <p><a href="http://www.nuug.no/pub/video/bin/usbstick-dvswitch.img.gz">The
32090 USB image</a> is for a 1 GB memory stick, but can be used on any
32091 larger stick as well.</p>
32092
32093 </div>
32094 <div class="tags">
32095
32096
32097 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
32098
32099
32100 </div>
32101 </div>
32102 <div class="padding"></div>
32103
32104 <div class="entry">
32105 <div class="title">
32106 <a href="http://people.skolelinux.org/pere/blog/Devcamp_brought_us_closer_to_the_Lenny_based_Debian_Edu_release.html">Devcamp brought us closer to the Lenny based Debian Edu release</a>
32107 </div>
32108 <div class="date">
32109 7th December 2008
32110 </div>
32111 <div class="body">
32112 <p>This weekend we had a small developer gathering for Debian Edu in
32113 Oslo. Most of Saturday was used for the general assemly for the
32114 member organization, but the rest of the weekend I used to tune the
32115 LTSP installation. LTSP now work out of the box on the 10-network.
32116 Acer Aspire One proved to be a very nice thin client, with both
32117 screen, mouse and keybard in a small box. Was working on getting the
32118 diskless workstation setup configured out of the box, but did not
32119 finish it before the weekend was up.</p>
32120
32121 <p>Did not find time to look at the 4 VGA cards in one box we got from
32122 the Brazilian group, so that will have to wait for the next
32123 development gathering. Would love to have the Debian Edu installer
32124 automatically detect and configure a multiseat setup when it find one
32125 of these cards.</p>
32126
32127 </div>
32128 <div class="tags">
32129
32130
32131 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp</a>.
32132
32133
32134 </div>
32135 </div>
32136 <div class="padding"></div>
32137
32138 <div class="entry">
32139 <div class="title">
32140 <a href="http://people.skolelinux.org/pere/blog/The_sorry_state_of_multimedia_browser_plugins_in_Debian.html">The sorry state of multimedia browser plugins in Debian</a>
32141 </div>
32142 <div class="date">
32143 25th November 2008
32144 </div>
32145 <div class="body">
32146 <p>Recently I have spent some time evaluating the multimedia browser
32147 plugins available in Debian Lenny, to see which one we should use by
32148 default in Debian Edu. We need an embedded video playing plugin with
32149 control buttons to pause or stop the video, and capable of streaming
32150 all the multimedia content available on the web. The test results and
32151 notes are available on
32152 <a href="http://wiki.debian.org/DebianEdu/BrowserMultimedia">the
32153 Debian wiki</a>. I was surprised how few of the plugins are able to
32154 fill this need. My personal video player favorite, VLC, has a really
32155 bad plugin which fail on a lot of the test pages. A lot of the MIME
32156 types I would expect to work with any free software player (like
32157 video/ogg), just do not work. And simple formats like the
32158 audio/x-mplegurl format (m3u playlists), just isn't supported by the
32159 totem and vlc plugins. I hope the situation will improve soon. No
32160 wonder sites use the proprietary Adobe flash to play video.</p>
32161
32162 <p>For Lenny, we seem to end up with the mplayer plugin. It seem to
32163 be the only one fitting our needs. :/</p>
32164
32165 </div>
32166 <div class="tags">
32167
32168
32169 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</a>.
32170
32171
32172 </div>
32173 </div>
32174 <div class="padding"></div>
32175
32176 <p style="text-align: right;"><a href="english.rss"><img src="http://people.skolelinux.org/pere/blog/xml.gif" alt="RSS Feed" width="36" height="14" /></a></p>
32177 <div id="sidebar">
32178
32179
32180
32181 <h2>Archive</h2>
32182 <ul>
32183
32184 <li>2019
32185 <ul>
32186
32187 <li><a href="http://people.skolelinux.org/pere/blog/archive/2019/01/">January (4)</a></li>
32188
32189 <li><a href="http://people.skolelinux.org/pere/blog/archive/2019/02/">February (1)</a></li>
32190
32191 </ul></li>
32192
32193 <li>2018
32194 <ul>
32195
32196 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/01/">January (1)</a></li>
32197
32198 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/02/">February (5)</a></li>
32199
32200 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/03/">March (5)</a></li>
32201
32202 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/04/">April (3)</a></li>
32203
32204 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/06/">June (2)</a></li>
32205
32206 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/07/">July (5)</a></li>
32207
32208 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/08/">August (3)</a></li>
32209
32210 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/09/">September (3)</a></li>
32211
32212 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/10/">October (5)</a></li>
32213
32214 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/11/">November (2)</a></li>
32215
32216 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/12/">December (4)</a></li>
32217
32218 </ul></li>
32219
32220 <li>2017
32221 <ul>
32222
32223 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/01/">January (4)</a></li>
32224
32225 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/02/">February (3)</a></li>
32226
32227 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/03/">March (5)</a></li>
32228
32229 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/04/">April (2)</a></li>
32230
32231 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/06/">June (5)</a></li>
32232
32233 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/07/">July (1)</a></li>
32234
32235 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/08/">August (1)</a></li>
32236
32237 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/09/">September (3)</a></li>
32238
32239 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/10/">October (5)</a></li>
32240
32241 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/11/">November (3)</a></li>
32242
32243 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/12/">December (4)</a></li>
32244
32245 </ul></li>
32246
32247 <li>2016
32248 <ul>
32249
32250 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/01/">January (3)</a></li>
32251
32252 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/02/">February (2)</a></li>
32253
32254 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/03/">March (3)</a></li>
32255
32256 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/04/">April (8)</a></li>
32257
32258 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/05/">May (8)</a></li>
32259
32260 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/06/">June (2)</a></li>
32261
32262 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/07/">July (2)</a></li>
32263
32264 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/08/">August (5)</a></li>
32265
32266 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/09/">September (2)</a></li>
32267
32268 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/10/">October (3)</a></li>
32269
32270 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/11/">November (8)</a></li>
32271
32272 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/12/">December (5)</a></li>
32273
32274 </ul></li>
32275
32276 <li>2015
32277 <ul>
32278
32279 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/01/">January (7)</a></li>
32280
32281 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/02/">February (6)</a></li>
32282
32283 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/03/">March (1)</a></li>
32284
32285 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/04/">April (4)</a></li>
32286
32287 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/05/">May (3)</a></li>
32288
32289 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/06/">June (4)</a></li>
32290
32291 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/07/">July (6)</a></li>
32292
32293 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/08/">August (2)</a></li>
32294
32295 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/09/">September (2)</a></li>
32296
32297 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/10/">October (9)</a></li>
32298
32299 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/11/">November (6)</a></li>
32300
32301 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/12/">December (3)</a></li>
32302
32303 </ul></li>
32304
32305 <li>2014
32306 <ul>
32307
32308 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/01/">January (2)</a></li>
32309
32310 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/02/">February (3)</a></li>
32311
32312 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/03/">March (8)</a></li>
32313
32314 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/04/">April (7)</a></li>
32315
32316 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/05/">May (1)</a></li>
32317
32318 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/06/">June (2)</a></li>
32319
32320 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/07/">July (2)</a></li>
32321
32322 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/08/">August (2)</a></li>
32323
32324 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/09/">September (5)</a></li>
32325
32326 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/10/">October (6)</a></li>
32327
32328 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/11/">November (3)</a></li>
32329
32330 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/12/">December (5)</a></li>
32331
32332 </ul></li>
32333
32334 <li>2013
32335 <ul>
32336
32337 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/01/">January (11)</a></li>
32338
32339 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/02/">February (9)</a></li>
32340
32341 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/03/">March (9)</a></li>
32342
32343 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/04/">April (6)</a></li>
32344
32345 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/05/">May (9)</a></li>
32346
32347 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/06/">June (10)</a></li>
32348
32349 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/07/">July (7)</a></li>
32350
32351 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/08/">August (3)</a></li>
32352
32353 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/09/">September (5)</a></li>
32354
32355 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/10/">October (7)</a></li>
32356
32357 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/11/">November (9)</a></li>
32358
32359 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/12/">December (3)</a></li>
32360
32361 </ul></li>
32362
32363 <li>2012
32364 <ul>
32365
32366 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/01/">January (7)</a></li>
32367
32368 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/02/">February (10)</a></li>
32369
32370 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/03/">March (17)</a></li>
32371
32372 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/04/">April (12)</a></li>
32373
32374 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/05/">May (12)</a></li>
32375
32376 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/06/">June (20)</a></li>
32377
32378 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/07/">July (17)</a></li>
32379
32380 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/08/">August (6)</a></li>
32381
32382 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/09/">September (9)</a></li>
32383
32384 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/10/">October (17)</a></li>
32385
32386 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/11/">November (10)</a></li>
32387
32388 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/12/">December (7)</a></li>
32389
32390 </ul></li>
32391
32392 <li>2011
32393 <ul>
32394
32395 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/01/">January (16)</a></li>
32396
32397 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/02/">February (6)</a></li>
32398
32399 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/03/">March (6)</a></li>
32400
32401 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/04/">April (7)</a></li>
32402
32403 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/05/">May (3)</a></li>
32404
32405 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/06/">June (2)</a></li>
32406
32407 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/07/">July (7)</a></li>
32408
32409 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/08/">August (6)</a></li>
32410
32411 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/09/">September (4)</a></li>
32412
32413 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/10/">October (2)</a></li>
32414
32415 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/11/">November (3)</a></li>
32416
32417 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/12/">December (1)</a></li>
32418
32419 </ul></li>
32420
32421 <li>2010
32422 <ul>
32423
32424 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/01/">January (2)</a></li>
32425
32426 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/02/">February (1)</a></li>
32427
32428 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/03/">March (3)</a></li>
32429
32430 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/04/">April (3)</a></li>
32431
32432 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/05/">May (9)</a></li>
32433
32434 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/06/">June (14)</a></li>
32435
32436 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/07/">July (12)</a></li>
32437
32438 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/08/">August (13)</a></li>
32439
32440 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/09/">September (7)</a></li>
32441
32442 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/10/">October (9)</a></li>
32443
32444 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/11/">November (13)</a></li>
32445
32446 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/12/">December (12)</a></li>
32447
32448 </ul></li>
32449
32450 <li>2009
32451 <ul>
32452
32453 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/01/">January (8)</a></li>
32454
32455 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/02/">February (8)</a></li>
32456
32457 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/03/">March (12)</a></li>
32458
32459 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/04/">April (10)</a></li>
32460
32461 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/05/">May (9)</a></li>
32462
32463 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/06/">June (3)</a></li>
32464
32465 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/07/">July (4)</a></li>
32466
32467 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/08/">August (3)</a></li>
32468
32469 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/09/">September (1)</a></li>
32470
32471 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/10/">October (2)</a></li>
32472
32473 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/11/">November (3)</a></li>
32474
32475 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/12/">December (3)</a></li>
32476
32477 </ul></li>
32478
32479 <li>2008
32480 <ul>
32481
32482 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/11/">November (5)</a></li>
32483
32484 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/12/">December (7)</a></li>
32485
32486 </ul></li>
32487
32488 </ul>
32489
32490
32491
32492 <h2>Tags</h2>
32493 <ul>
32494
32495 <li><a href="http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (16)</a></li>
32496
32497 <li><a href="http://people.skolelinux.org/pere/blog/tags/amiga">amiga (1)</a></li>
32498
32499 <li><a href="http://people.skolelinux.org/pere/blog/tags/aros">aros (1)</a></li>
32500
32501 <li><a href="http://people.skolelinux.org/pere/blog/tags/bankid">bankid (4)</a></li>
32502
32503 <li><a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (11)</a></li>
32504
32505 <li><a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (17)</a></li>
32506
32507 <li><a href="http://people.skolelinux.org/pere/blog/tags/bsa">bsa (2)</a></li>
32508
32509 <li><a href="http://people.skolelinux.org/pere/blog/tags/chrpath">chrpath (2)</a></li>
32510
32511 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian">debian (167)</a></li>
32512
32513 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (158)</a></li>
32514
32515 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian-handbook">debian-handbook (4)</a></li>
32516
32517 <li><a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan (10)</a></li>
32518
32519 <li><a href="http://people.skolelinux.org/pere/blog/tags/dld">dld (17)</a></li>
32520
32521 <li><a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook (25)</a></li>
32522
32523 <li><a href="http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
32524
32525 <li><a href="http://people.skolelinux.org/pere/blog/tags/english">english (398)</a></li>
32526
32527 <li><a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (23)</a></li>
32528
32529 <li><a href="http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (14)</a></li>
32530
32531 <li><a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (33)</a></li>
32532
32533 <li><a href="http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox (9)</a></li>
32534
32535 <li><a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (20)</a></li>
32536
32537 <li><a href="http://people.skolelinux.org/pere/blog/tags/h264">h264 (20)</a></li>
32538
32539 <li><a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju (42)</a></li>
32540
32541 <li><a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram (16)</a></li>
32542
32543 <li><a href="http://people.skolelinux.org/pere/blog/tags/kart">kart (20)</a></li>
32544
32545 <li><a href="http://people.skolelinux.org/pere/blog/tags/kodi">kodi (4)</a></li>
32546
32547 <li><a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap (9)</a></li>
32548
32549 <li><a href="http://people.skolelinux.org/pere/blog/tags/lego">lego (4)</a></li>
32550
32551 <li><a href="http://people.skolelinux.org/pere/blog/tags/lenker">lenker (8)</a></li>
32552
32553 <li><a href="http://people.skolelinux.org/pere/blog/tags/lsdvd">lsdvd (2)</a></li>
32554
32555 <li><a href="http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (1)</a></li>
32556
32557 <li><a href="http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network (8)</a></li>
32558
32559 <li><a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (42)</a></li>
32560
32561 <li><a href="http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software (11)</a></li>
32562
32563 <li><a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk (302)</a></li>
32564
32565 <li><a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug (192)</a></li>
32566
32567 <li><a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (34)</a></li>
32568
32569 <li><a href="http://people.skolelinux.org/pere/blog/tags/open311">open311 (2)</a></li>
32570
32571 <li><a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (73)</a></li>
32572
32573 <li><a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern (108)</a></li>
32574
32575 <li><a href="http://people.skolelinux.org/pere/blog/tags/raid">raid (2)</a></li>
32576
32577 <li><a href="http://people.skolelinux.org/pere/blog/tags/reactos">reactos (1)</a></li>
32578
32579 <li><a href="http://people.skolelinux.org/pere/blog/tags/reprap">reprap (11)</a></li>
32580
32581 <li><a href="http://people.skolelinux.org/pere/blog/tags/rfid">rfid (3)</a></li>
32582
32583 <li><a href="http://people.skolelinux.org/pere/blog/tags/robot">robot (11)</a></li>
32584
32585 <li><a href="http://people.skolelinux.org/pere/blog/tags/rss">rss (1)</a></li>
32586
32587 <li><a href="http://people.skolelinux.org/pere/blog/tags/ruter">ruter (6)</a></li>
32588
32589 <li><a href="http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (2)</a></li>
32590
32591 <li><a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (55)</a></li>
32592
32593 <li><a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (4)</a></li>
32594
32595 <li><a href="http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (5)</a></li>
32596
32597 <li><a href="http://people.skolelinux.org/pere/blog/tags/standard">standard (58)</a></li>
32598
32599 <li><a href="http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (6)</a></li>
32600
32601 <li><a href="http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (12)</a></li>
32602
32603 <li><a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (55)</a></li>
32604
32605 <li><a href="http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (4)</a></li>
32606
32607 <li><a href="http://people.skolelinux.org/pere/blog/tags/usenix">usenix (2)</a></li>
32608
32609 <li><a href="http://people.skolelinux.org/pere/blog/tags/valg">valg (9)</a></li>
32610
32611 <li><a href="http://people.skolelinux.org/pere/blog/tags/verkidetfri">verkidetfri (15)</a></li>
32612
32613 <li><a href="http://people.skolelinux.org/pere/blog/tags/video">video (73)</a></li>
32614
32615 <li><a href="http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (4)</a></li>
32616
32617 <li><a href="http://people.skolelinux.org/pere/blog/tags/web">web (42)</a></li>
32618
32619 </ul>
32620
32621
32622 </div>
32623 <p style="text-align: right">
32624 Created by <a href="http://steve.org.uk/Software/chronicle">Chronicle v4.6</a>
32625 </p>
32626
32627 </body>
32628 </html>