]> pere.pagekite.me Git - homepage.git/blob - blog/tags/english/index.html
cc4b02ab66e037f5589cd92bf09e3639dd4a3d1f
[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/Using_modalias_info_to_find_packages_handling_my_hardware.html">Using modalias info to find packages handling my hardware</a>
26 </div>
27 <div class="date">
28 15th January 2013
29 </div>
30 <div class="body">
31 <p>Yesterday, I wrote about the
32 <a href="http://people.skolelinux.org/pere/blog/Modalias_strings___a_practical_way_to_map__stuff__to_hardware.html">modalias
33 values provided by the Linux kernel</a> following my hope for
34 <a href="http://people.skolelinux.org/pere/blog/Lets_make_hardware_dongles_easier_to_use_in_Debian.html">better
35 dongle support in Debian</a>. Using this knowledge, I have tested how
36 modalias values attached to package names can be used to map packages
37 to hardware. This allow the system to look up and suggest relevant
38 packages when I plug in some new hardware into my machine, and replace
39 discover and discover-data as the database used to map hardware to
40 packages.</p>
41
42 <p>I create a modaliases file with entries like the following,
43 containing package name, kernel module name (if relevant, otherwise
44 the package name) and globs matching the relevant hardware
45 modalias.</p>
46
47 <p><blockquote>
48 Package: package-name
49 <br>Modaliases: module(modaliasglob, modaliasglob, modaliasglob)</p>
50 </blockquote></p>
51
52 <p>It is fairly trivial to write code to find the relevant packages
53 for a given modalias value using this file.</p>
54
55 <p>An entry like this would suggest the video and picture application
56 cheese for many USB web cameras (interface bus class 0E01):</p>
57
58 <p><blockquote>
59 Package: cheese
60 <br>Modaliases: cheese(usb:v*p*d*dc*dsc*dp*ic0Eisc01ip*)</p>
61 </blockquote></p>
62
63 <p>An entry like this would suggest the pcmciautils package when a
64 CardBus bridge (bus class 0607) PCI device is present:</p>
65
66 <p><blockquote>
67 Package: pcmciautils
68 <br>Modaliases: pcmciautils(pci:v*d*sv*sd*bc06sc07i*)
69 </blockquote></p>
70
71 <p>An entry like this would suggest the package colorhug-client when
72 plugging in a ColorHug with USB IDs 04D8:F8DA:</p>
73
74 <p><blockquote>
75 Package: colorhug-client
76 <br>Modaliases: colorhug-client(usb:v04D8pF8DAd*)</p>
77 </blockquote></p>
78
79 <p>I believe the format is compatible with the format of the Packages
80 file in the Debian archive. Ubuntu already uses their Packages file
81 to store their mappings from packages to hardware.</p>
82
83 <p>By adding a XB-Modaliases: header in debian/control, any .deb can
84 announce the hardware it support in a way my prototype understand.
85 This allow those publishing packages in an APT source outside the
86 Debian archive as well as those backporting packages to make sure the
87 hardware mapping are included in the package meta information. I've
88 tested such header in the pymissile package, and its modalias mapping
89 is working as it should with my prototype. It even made it to Ubuntu
90 Raring.</p>
91
92 <p>To test if it was possible to look up supported hardware using only
93 the shell tools available in the Debian installer, I wrote a shell
94 implementation of the lookup code. The idea is to create files for
95 each modalias and let the shell do the matching. Please check out and
96 try the
97 <a href="http://anonscm.debian.org/viewvc/debian-edu/trunk/src/hw-support-handler/hw-support-lookup?view=co">hw-support-lookup</a>
98 shell script. It run without any extra dependencies and fetch the
99 hardware mappings from the Debian archive and the subversion
100 repository where I currently work on my prototype.</p>
101
102 <p>When I use it on a machine with a yubikey inserted, it suggest to
103 install yubikey-personalization:</p>
104
105 <p><blockquote>
106 % ./hw-support-lookup
107 <br>yubikey-personalization:
108 <br>%
109 </blockquote></p>
110
111 <p>When I run it on my Thinkpad X40 with a PCMCIA/CardBus slot, it
112 propose to install the pcmciautils package:</p>
113
114 <p><blockquote>
115 % ./hw-support-lookup
116 <br>pcmciautils
117 <br>%
118 </blockquote></p>
119
120 <p>If you know of any hardware-package mapping that should be added to
121 <a href="http://anonscm.debian.org/viewvc/debian-edu/trunk/src/hw-support-handler/modaliases?view=co">my
122 database</a>, please tell me about it.</p>
123
124 <p>It could be possible to generate several of the mappings between
125 packages and hardware. One source would be to look at packages with
126 kernel modules, ie packages with *.ko files in /lib/modules/, and
127 extract their modalias information. Another would be to look at
128 packages with udev rules, ie packages with files in
129 /lib/udev/rules.d/, and extract their vendor/model information to
130 generate a modalias matching rule. I have not tested any of these to
131 see if it work.</p>
132
133 <p>If you want to help implementing a system to let us propose what
134 packages to install when new hardware is plugged into a Debian
135 machine, please send me an email or talk to me on
136 <a href="irc://irc.debian.org/%23debian-devel">#debian-devel</a>.</p>
137
138 </div>
139 <div class="tags">
140
141
142 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>.
143
144
145 </div>
146 </div>
147 <div class="padding"></div>
148
149 <div class="entry">
150 <div class="title">
151 <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>
152 </div>
153 <div class="date">
154 14th January 2013
155 </div>
156 <div class="body">
157 <p>While looking into how to look up Debian packages based on hardware
158 information, to find the packages that support a given piece of
159 hardware, I refreshed my memory regarding modalias values, and decided
160 to document the details. Here are my findings so far, also available
161 in
162 <a href="http://anonscm.debian.org/viewvc/debian-edu/trunk/src/hw-support-handler/">the
163 Debian Edu subversion repository</a>:
164
165 <p><strong>Modalias decoded</strong></p>
166
167 <p>This document try to explain what the different types of modalias
168 values stands for. It is in part based on information from
169 &lt;URL: <a href="https://wiki.archlinux.org/index.php/Modalias">https://wiki.archlinux.org/index.php/Modalias</a> &gt;,
170 &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;,
171 &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
172 &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;.
173
174 <p>The modalias entries for a given Linux machine can be found using
175 this shell script:</p>
176
177 <pre>
178 cat $(find /sys -name modalias) | sort -u
179 </pre>
180
181 <p>The supported modalias globs for a given kernel module can be found
182 using modinfo:</p>
183
184 <pre>
185 % /sbin/modinfo psmouse | grep alias:
186 alias: serio:ty05pr*id*ex*
187 alias: serio:ty01pr*id*ex*
188 %
189 </pre>
190
191 <p><strong>PCI subtype</strong></p>
192
193 <p>A typical PCI entry can look like this. This is an Intel Host
194 Bridge memory controller:</p>
195
196 <p><blockquote>
197 pci:v00008086d00002770sv00001028sd000001ADbc06sc00i00
198 </blockquote></p>
199
200 <p>This represent these values:</p>
201
202 <pre>
203 v 00008086 (vendor)
204 d 00002770 (device)
205 sv 00001028 (subvendor)
206 sd 000001AD (subdevice)
207 bc 06 (bus class)
208 sc 00 (bus subclass)
209 i 00 (interface)
210 </pre>
211
212 <p>The vendor/device values are the same values outputted from 'lspci
213 -n' as 8086:2770. The bus class/subclass is also shown by lspci as
214 0600. The 0600 class is a host bridge. Other useful bus values are
215 0300 (VGA compatible card) and 0200 (Ethernet controller).</p>
216
217 <p>Not sure how to figure out the interface value, nor what it
218 means.</p>
219
220 <p><strong>USB subtype</strong></p>
221
222 <p>Some typical USB entries can look like this. This is an internal
223 USB hub in a laptop:</p>
224
225 <p><blockquote>
226 usb:v1D6Bp0001d0206dc09dsc00dp00ic09isc00ip00
227 </blockquote></p>
228
229 <p>Here is the values included in this alias:</p>
230
231 <pre>
232 v 1D6B (device vendor)
233 p 0001 (device product)
234 d 0206 (bcddevice)
235 dc 09 (device class)
236 dsc 00 (device subclass)
237 dp 00 (device protocol)
238 ic 09 (interface class)
239 isc 00 (interface subclass)
240 ip 00 (interface protocol)
241 </pre>
242
243 <p>The 0900 device class/subclass means hub. Some times the relevant
244 class is in the interface class section. For a simple USB web camera,
245 these alias entries show up:</p>
246
247 <p><blockquote>
248 usb:v0AC8p3420d5000dcEFdsc02dp01ic01isc01ip00
249 <br>usb:v0AC8p3420d5000dcEFdsc02dp01ic01isc02ip00
250 <br>usb:v0AC8p3420d5000dcEFdsc02dp01ic0Eisc01ip00
251 <br>usb:v0AC8p3420d5000dcEFdsc02dp01ic0Eisc02ip00
252 </blockquote></p>
253
254 <p>Interface class 0E01 is video control, 0E02 is video streaming (aka
255 camera), 0101 is audio control device and 0102 is audio streaming (aka
256 microphone). Thus this is a camera with microphone included.</p>
257
258 <p><strong>ACPI subtype</strong></p>
259
260 <p>The ACPI type is used for several non-PCI/USB stuff. This is an IR
261 receiver in a Thinkpad X40:</p>
262
263 <p><blockquote>
264 acpi:IBM0071:PNP0511:
265 </blockquote></p>
266
267 <p>The values between the colons are IDs.</p>
268
269 <p><strong>DMI subtype</strong></p>
270
271 <p>The DMI table contain lots of information about the computer case
272 and model. This is an entry for a IBM Thinkpad X40, fetched from
273 /sys/devices/virtual/dmi/id/modalias:</p>
274
275 <p><blockquote>
276 dmi:bvnIBM:bvr1UETB6WW(1.66):bd06/15/2005:svnIBM:pn2371H4G:pvrThinkPadX40:rvnIBM:rn2371H4G:rvrNotAvailable:cvnIBM:ct10:cvrNotAvailable:
277 </blockquote></p>
278
279 <p>The values present are</p>
280
281 <pre>
282 bvn IBM (BIOS vendor)
283 bvr 1UETB6WW(1.66) (BIOS version)
284 bd 06/15/2005 (BIOS date)
285 svn IBM (system vendor)
286 pn 2371H4G (product name)
287 pvr ThinkPadX40 (product version)
288 rvn IBM (board vendor)
289 rn 2371H4G (board name)
290 rvr NotAvailable (board version)
291 cvn IBM (chassis vendor)
292 ct 10 (chassis type)
293 cvr NotAvailable (chassis version)
294 </pre>
295
296 <p>The chassis type 10 is Notebook. Other interesting values can be
297 found in the dmidecode source:</p>
298
299 <pre>
300 3 Desktop
301 4 Low Profile Desktop
302 5 Pizza Box
303 6 Mini Tower
304 7 Tower
305 8 Portable
306 9 Laptop
307 10 Notebook
308 11 Hand Held
309 12 Docking Station
310 13 All In One
311 14 Sub Notebook
312 15 Space-saving
313 16 Lunch Box
314 17 Main Server Chassis
315 18 Expansion Chassis
316 19 Sub Chassis
317 20 Bus Expansion Chassis
318 21 Peripheral Chassis
319 22 RAID Chassis
320 23 Rack Mount Chassis
321 24 Sealed-case PC
322 25 Multi-system
323 26 CompactPCI
324 27 AdvancedTCA
325 28 Blade
326 29 Blade Enclosing
327 </pre>
328
329 <p>The chassis type values are not always accurately set in the DMI
330 table. For example my home server is a tower, but the DMI modalias
331 claim it is a desktop.</p>
332
333 <p><strong>SerIO subtype</strong></p>
334
335 <p>This type is used for PS/2 mouse plugs. One example is from my
336 test machine:</p>
337
338 <p><blockquote>
339 serio:ty01pr00id00ex00
340 </blockquote></p>
341
342 <p>The values present are</p>
343
344 <pre>
345 ty 01 (type)
346 pr 00 (prototype)
347 id 00 (id)
348 ex 00 (extra)
349 </pre>
350
351 <p>This type is supported by the psmouse driver. I am not sure what
352 the valid values are.</p>
353
354 <p><strong>Other subtypes</strong></p>
355
356 <p>There are heaps of other modalias subtypes according to
357 file2alias.c. There is the rest of the list from that source: amba,
358 ap, bcma, ccw, css, eisa, hid, i2c, ieee1394, input, ipack, isapnp,
359 mdio, of, parisc, pcmcia, platform, scsi, sdio, spi, ssb, vio, virtio,
360 vmbus, x86cpu and zorro. I did not spend time documenting all of
361 these, as they do not seem relevant for my intended use with mapping
362 hardware to packages when new stuff is inserted during run time.</p>
363
364 <p><strong>Looking up kernel modules using modalias values</strong></p>
365
366 <p>To check which kernel modules provide support for a given modalias,
367 one can use the following shell script:</p>
368
369 <pre>
370 for id in $(cat $(find /sys -name modalias)|sort -u); do \
371 echo "$id" ; \
372 /sbin/modprobe --show-depends "$id"|sed 's/^/ /' ; \
373 done
374 </pre>
375
376 <p>The output can look like this (only the first few entries as the
377 list is very long on my test machine):</p>
378
379 <pre>
380 acpi:ACPI0003:
381 insmod /lib/modules/2.6.32-5-686/kernel/drivers/acpi/ac.ko
382 acpi:device:
383 FATAL: Module acpi:device: not found.
384 acpi:IBM0068:
385 insmod /lib/modules/2.6.32-5-686/kernel/drivers/char/nvram.ko
386 insmod /lib/modules/2.6.32-5-686/kernel/drivers/leds/led-class.ko
387 insmod /lib/modules/2.6.32-5-686/kernel/net/rfkill/rfkill.ko
388 insmod /lib/modules/2.6.32-5-686/kernel/drivers/platform/x86/thinkpad_acpi.ko
389 acpi:IBM0071:PNP0511:
390 insmod /lib/modules/2.6.32-5-686/kernel/lib/crc-ccitt.ko
391 insmod /lib/modules/2.6.32-5-686/kernel/net/irda/irda.ko
392 insmod /lib/modules/2.6.32-5-686/kernel/drivers/net/irda/nsc-ircc.ko
393 [...]
394 </pre>
395
396 <p>If you want to help implementing a system to let us propose what
397 packages to install when new hardware is plugged into a Debian
398 machine, please send me an email or talk to me on
399 <a href="irc://irc.debian.org/%23debian-devel">#debian-devel</a>.</p>
400
401 </div>
402 <div class="tags">
403
404
405 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>.
406
407
408 </div>
409 </div>
410 <div class="padding"></div>
411
412 <div class="entry">
413 <div class="title">
414 <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>
415 </div>
416 <div class="date">
417 10th January 2013
418 </div>
419 <div class="body">
420 <p>As part of my investigation on how to improve the support in Debian
421 for hardware dongles, I dug up my old Mark and Spencer USB Rocket
422 Launcher and updated the Debian package
423 <a href="http://packages.qa.debian.org/pymissile">pymissile</a> to make
424 sure udev will fix the device permissions when it is plugged in. I
425 also added a "Modaliases" header to test it in the Debian archive and
426 hopefully make the package be proposed by jockey in Ubuntu when a user
427 plug in his rocket launcher. In the process I moved the source to a
428 git repository under collab-maint, to make it easier for any DD to
429 contribute. <a href="http://code.google.com/p/pymissile/">Upstream</a>
430 is not very active, but the software still work for me even after five
431 years of relative silence. The new git repository is not listed in
432 the uploaded package yet, because I want to test the other changes a
433 bit more before I upload the new version. If you want to check out
434 the new version with a .desktop file included, visit the
435 <a href="http://anonscm.debian.org/gitweb/?p=collab-maint/pymissile.git">gitweb
436 view</a> or use "<tt>git clone
437 git://anonscm.debian.org/collab-maint/pymissile.git</tt>".</p>
438
439 </div>
440 <div class="tags">
441
442
443 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>.
444
445
446 </div>
447 </div>
448 <div class="padding"></div>
449
450 <div class="entry">
451 <div class="title">
452 <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>
453 </div>
454 <div class="date">
455 9th January 2013
456 </div>
457 <div class="body">
458 <p>One thing that annoys me with Debian and Linux distributions in
459 general, is that there is a great package management system with the
460 ability to automatically install software packages by downloading them
461 from the distribution mirrors, but no way to get it to automatically
462 install the packages I need to use the hardware I plug into my
463 machine. Even if the package to use it is easily available from the
464 Linux distribution. When I plug in a LEGO Mindstorms NXT, it could
465 suggest to automatically install the python-nxt, nbc and t2n packages
466 I need to talk to it. When I plug in a Yubikey, it could propose the
467 yubikey-personalization package. The information required to do this
468 is available, but no-one have pulled all the pieces together.</p>
469
470 <p>Some years ago, I proposed to
471 <a href="http://lists.debian.org/debian-devel/2010/05/msg01206.html">use
472 the discover subsystem to implement this</a>. The idea is fairly
473 simple:
474
475 <ul>
476
477 <li>Add a desktop entry in /usr/share/autostart/ pointing to a program
478 starting when a user log in.</li>
479
480 <li>Set this program up to listen for kernel events emitted when new
481 hardware is inserted into the computer.</li>
482
483 <li>When new hardware is inserted, look up the hardware ID in a
484 database mapping to packages, and take note of any non-installed
485 packages.</li>
486
487 <li>Show a message to the user proposing to install the discovered
488 package, and make it easy to install it.</li>
489
490 </ul>
491
492 <p>I am not sure what the best way to implement this is, but my
493 initial idea was to use dbus events to discover new hardware, the
494 discover database to find packages and
495 <a href="http://www.packagekit.org/">PackageKit</a> to install
496 packages.</p>
497
498 <p>Yesterday, I found time to try to implement this idea, and the
499 draft package is now checked into
500 <a href="http://anonscm.debian.org/viewvc/debian-edu/trunk/src/hw-support-handler/">the
501 Debian Edu subversion repository</a>. In the process, I updated the
502 <a href="http://packages.qa.debian.org/d/discover-data.html">discover-data</a>
503 package to map the USB ids of LEGO Mindstorms and Yubikey devices to
504 the relevant packages in Debian, and uploaded a new version
505 2.2013.01.09 to unstable. I also discovered that the current
506 <a href="http://packages.qa.debian.org/d/discover.html">discover</a>
507 package in Debian no longer discovered any USB devices, because
508 /proc/bus/usb/devices is no longer present. I ported it to use
509 libusb as a fall back option to get it working. The fixed package
510 version 2.1.2-6 is now in experimental (didn't upload it to unstable
511 because of the freeze).</p>
512
513 <p>With this prototype in place, I can insert my Yubikey, and get this
514 desktop notification to show up (only once, the first time it is
515 inserted):</p>
516
517 <p align="center"><img src="http://people.skolelinux.org/pere/blog/images/2013-01-09-hw-autoinstall.png"></p>
518
519 <p>For this prototype to be really useful, some way to automatically
520 install the proposed packages by pressing the "Please install
521 program(s)" button should to be implemented.</p>
522
523 <p>If this idea seem useful to you, and you want to help make it
524 happen, please help me update the discover-data database with mappings
525 from hardware to Debian packages. Check if 'discover-pkginstall -l'
526 list the package you would like to have installed when a given
527 hardware device is inserted into your computer, and report bugs using
528 reportbug if it isn't. Or, if you know of a better way to provide
529 such mapping, please let me know.</p>
530
531 <p>This prototype need more work, and there are several questions that
532 should be considered before it is ready for production use. Is dbus
533 the correct way to detect new hardware? At the moment I look for HAL
534 dbus events on the system bus, because that is the events I could see
535 on my Debian Squeeze KDE desktop. Are there better events to use?
536 How should the user be notified? Is the desktop notification
537 mechanism the best option, or should the background daemon raise a
538 popup instead? How should packages be installed? When should they
539 not be installed?</p>
540
541 <p>If you want to help getting such feature implemented in Debian,
542 please send me an email. :)</p>
543
544 </div>
545 <div class="tags">
546
547
548 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>.
549
550
551 </div>
552 </div>
553 <div class="padding"></div>
554
555 <div class="entry">
556 <div class="title">
557 <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>
558 </div>
559 <div class="date">
560 2nd January 2013
561 </div>
562 <div class="body">
563 <p>During Christmas, I have worked a bit on the Debian support for
564 <a href="http://mindstorms.lego.com/en-us/Default.aspx">LEGO Mindstorm
565 NXT</a>. My son and I have played a bit with my NXT set, and I
566 discovered I had to build all the tools myself because none were
567 already in Debian Squeeze. If Debian support for LEGO is something
568 you care about, please join me on the IRC channel
569 <a href="irc://irc.debian.org/%23debian-lego">#debian-lego</a> (server
570 irc.debian.org). There is a lot that could be done to improve the
571 Debian support for LEGO designers. For example both CAD software
572 and Mindstorm compilers are missing. :)</p>
573
574 <p>Update 2012-01-03: A
575 <a href="http://wiki.debian.org/LegoDesigners">project page</a>
576 including links to Lego related packages is now available.</p>
577
578 </div>
579 <div class="tags">
580
581
582 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>.
583
584
585 </div>
586 </div>
587 <div class="padding"></div>
588
589 <div class="entry">
590 <div class="title">
591 <a href="http://people.skolelinux.org/pere/blog/A_Christmas_present_for_Skolelinux___Debian_Edu.html">A Christmas present for Skolelinux / Debian Edu</a>
592 </div>
593 <div class="date">
594 28th December 2012
595 </div>
596 <div class="body">
597 <p>I was happy to discover a few days ago that the
598 <a href="http://www.skolelinux.org/">Skolelinux / Debian Edu</a>
599 project also this year received a Christmas present from Another
600 Agency in Trondheim. NOK 1000,- showed up on our donation account
601 December 24th. I want to express our thanks for this very welcome
602 present. As the Debian Edu / Skolelinux project is very short on
603 funding these days, and thus lack the money to do regular developer
604 gatherings, this donation was most welcome. One developer gathering
605 cost around NOK 15&nbsp;000,-, so we need quite a lot more to keep the
606 development pace we want. Thus, I hope their example this year is
607 followed by many others. :)</p>
608
609 <p>The public list of donors can be found on
610 <a href="http://www.linuxiskolen.no/slxdebianlabs/donations.html">the
611 donation page</a> for the project, which also contain instructions if
612 you want to donate to the project.</p>
613
614 </div>
615 <div class="tags">
616
617
618 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>.
619
620
621 </div>
622 </div>
623 <div class="padding"></div>
624
625 <div class="entry">
626 <div class="title">
627 <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>
628 </div>
629 <div class="date">
630 25th December 2012
631 </div>
632 <div class="body">
633 <p>Let me start by wishing you all marry Christmas and a happy new
634 year! I hope next year will prove to be a good year.</p>
635
636 <p><a href="http://www.bitcoin.org/">Bitcoin</a>, the digital
637 decentralised "currency" that allow people to transfer bitcoins
638 between each other with minimal overhead, is a very interesting
639 experiment. And as I wrote a few days ago, the bitcoin situation in
640 <a href="http://www.debian.org/">Debian</a> is about to improve a bit.
641 The <a href="http://packages.qa.debian.org/bitcoin">new debian source
642 package</a> (version 0.7.2-2) was uploaded yesterday, and is waiting
643 in <a href="http://ftp-master.debian.org/new.html">the NEW queue</A>
644 for one of the ftpmasters to approve the new bitcoin-qt package
645 name.</p>
646
647 <p>And thanks to the great work of Jonas and the rest of the bitcoin
648 team in Debian, you can easily test the package in Debian Squeeze
649 using the following steps to get a set of working packages:</p>
650
651 <blockquote><pre>
652 git clone git://git.debian.org/git/collab-maint/bitcoin
653 cd bitcoin
654 DEB_MAINTAINER_MODE=1 DEB_BUILD_OPTIONS=noupnp fakeroot debian/rules clean
655 DEB_BUILD_OPTIONS=noupnp git-buildpackage --git-ignore-new
656 </pre></blockquote>
657
658 <p>You might have to install some build dependencies as well. The
659 list of commands should give you two packages, bitcoind and
660 bitcoin-qt, ready for use in a Squeeze environment. Note that the
661 client will download the complete set of bitcoin "blocks", which need
662 around 5.6 GiB of data on my machine at the moment. Make sure your
663 ~/.bitcoin/ directory have lots of spare room if you want to download
664 all the blocks. The client will warn if the disk is getting full, so
665 there is not really a problem if you got too little room, but you will
666 not be able to get all the features out of the client.</p>
667
668 <p>As usual, if you use bitcoin and want to show your support of my
669 activities, please send Bitcoin donations to my address
670 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&label=PetterReinholdtsenBlog">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
671
672 </div>
673 <div class="tags">
674
675
676 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>.
677
678
679 </div>
680 </div>
681 <div class="padding"></div>
682
683 <div class="entry">
684 <div class="title">
685 <a href="http://people.skolelinux.org/pere/blog/A_word_on_bitcoin_support_in_Debian.html">A word on bitcoin support in Debian</a>
686 </div>
687 <div class="date">
688 21st December 2012
689 </div>
690 <div class="body">
691 <p>It has been a while since I wrote about
692 <a href="http://www.bitcoin.org/">bitcoin</a>, the decentralised
693 peer-to-peer based crypto-currency, and the reason is simply that I
694 have been busy elsewhere. But two days ago, I started looking at the
695 state of <a href="http://packages.qa.debian.org/bitcoin">bitcoin in
696 Debian</a> again to try to recover my old bitcoin wallet. The package
697 is now maintained by a
698 <a href="https://alioth.debian.org/projects/pkg-bitcoin/">team of
699 people</a>, and the grunt work had already been done by this team. We
700 owe a huge thank you to all these team members. :)
701 But I was sad to discover that the bitcoin client is missing in
702 Wheezy. It is only available in Sid (and an outdated client from
703 backports). The client had several RC bugs registered in BTS blocking
704 it from entering testing. To try to help the team and improve the
705 situation, I spent some time providing patches and triaging the bug
706 reports. I also had a look at the bitcoin package available from Matt
707 Corallo in a
708 <a href="https://launchpad.net/~bitcoin/+archive/bitcoin">PPA for
709 Ubuntu</a>, and moved the useful pieces from that version into the
710 Debian package.</p>
711
712 <p>After checking with the main package maintainer Jonas Smedegaard on
713 IRC, I pushed several patches into the collab-maint git repository to
714 improve the package. It now contains fixes for the RC issues (not from
715 me, but fixed by Scott Howard), build rules for a Qt GUI client
716 package, konqueror support for the bitcoin: URI and bash completion
717 setup. As I work on Debian Squeeze, I also created
718 <a href="http://lists.alioth.debian.org/pipermail/pkg-bitcoin-devel/Week-of-Mon-20121217/000041.html">a
719 patch to backport</a> the latest version. Jonas is going to look at
720 it and try to integrate it into the git repository before uploading a
721 new version to unstable.
722
723 <p>I would very much like bitcoin to succeed, to get rid of the
724 centralized control currently exercised in the monetary system. I
725 find it completely unacceptable that the USA government is collecting
726 transaction data for almost all international money transfers (most are done in USD and transaction logs shipped to the spooks), and
727 that the major credit card companies can block legal money
728 transactions to Wikileaks. But for bitcoin to succeed, more people
729 need to use bitcoins, and more people need to accept bitcoins when
730 they sell products and services. Improving the bitcoin support in
731 Debian is a small step in the right direction, but not enough.
732 Unfortunately the user experience when browsing the web and wanting to
733 pay with bitcoin is still not very good. The bitcoin: URI is a step
734 in the right direction, but need to work in most or every browser in
735 use. Also the bitcoin-qt client is too heavy to fire up to do a
736 quick transaction. I believe there are other clients available, but
737 have not tested them.</p>
738
739 <p>My
740 <a href="http://people.skolelinux.org/pere/blog/Now_accepting_bitcoins___anonymous_and_distributed_p2p_crypto_money.html">experiment
741 with bitcoins</a> showed that at least some of my readers use bitcoin.
742 I received 20.15 BTC so far on the address I provided in my blog two
743 years ago, as can be
744 <a href="http://blockexplorer.com/address/15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">seen
745 on the blockexplorer service</a>. Thank you everyone for your
746 donation. The blockexplorer service demonstrates quite well that
747 bitcoin is not quite anonymous and untracked. :) I wonder if the
748 number of users have gone up since then. If you use bitcoin and want
749 to show your support of my activity, please send Bitcoin donations to
750 the same address as last time,
751 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&label=PetterReinholdtsenBlog">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
752
753 </div>
754 <div class="tags">
755
756
757 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>.
758
759
760 </div>
761 </div>
762 <div class="padding"></div>
763
764 <div class="entry">
765 <div class="title">
766 <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>
767 </div>
768 <div class="date">
769 18th December 2012
770 </div>
771 <div class="body">
772 <p>A few days ago I came across
773 <a href="http://joeyh.name/blog/entry/hledger/">a blog post from Joey
774 Hess</a> describing <a href="http://ledger-cli.org/">ledger</a> and
775 hledger, a text based system for double-entry accounting. I found it
776 interesting, as I am involved with several organizations where
777 accounting is an issue, and I have not really become too friendly with
778 the different web based systems we use. I find it hard to find what I
779 look for in the menus and even harder try to get sensible data out of
780 the systems. Ledger seem different. The accounting data is kept in
781 text files that can be stored in a version control system, and there
782
783 are at least <a href="https://github.com/ledger/ledger/wiki/Ports">five
784 different implementations</a> able to read the format. An example
785 entry look like this, and is simple enough that it will be trivial to
786 generate entries based on CVS files fetched from the bank:</p>
787
788 <blockquote><pre>
789 2004-05-27 Book Store
790 Expenses:Books $20.00
791 Liabilities:Visa
792 </pre></blockquote>
793
794 <p>The concept seemed interesting enough for me to check it out and
795 look for others using it. I found blog posts from
796 <a href="http://blog.spang.cc/posts/hledger_rocks_my_world/">Christine
797 Spang</a>,
798 <a href="http://bugsplat.info/2010-05-23-keeping-finances-with-ledger.html">Pete
799 Keen</a>,
800 <a href="http://blog.andrewcantino.com/blog/2010/11/06/command-line-accounting-with-ledger-and-reckon/">Andrew
801 Cantino</a> and
802 <a href="http://blog.iphoting.com/blog/2012/11/29/command-line-double-entry-accounting/">Ronald
803 Ip</a> describing how they use it, as well as a post from
804 <a href="https://groups.google.com/forum/?fromgroups=#!topic/ledger-cli/r0oWjwbQ9Bo">Bradley
805 M. Kuhn</a> at the Software Freedom Conservancy. All seemed like good
806 recommendations fitting my need.</p>
807
808 <p>The <a href="http://packages.qa.debian.org/l/ledger.html">ledger</a>
809 package is available in Debian Squeeze, while the
810 <a href="http://packages.qa.debian.org/h/haskell-hledger.html">hledger</a>
811 package only is available in Debian Sid. As I use Squeeze, ledger
812 seemed the best choice to get started.</p>
813
814 <p>To get some real data to test on, I wrote a
815 <a href="http://www.nuug.no/tools/lodo2ledger">web scraper</a> for
816 <a href="http://www.lodo.no/">LODO</a>, the accounting system used by
817 the <a href="http://www.nuug.no/">NUUG</a> association, and started to
818 play with the data set. I'm not really deeply into accounting, but I
819 am able to get a simple balance and accounting status for example
820 using the "<tt>ledger balance</tt>" command. But I will have to
821 gather more experience before I know if the ledger way is a good fit
822 for the organisations I am involved in.</p>
823
824 </div>
825 <div class="tags">
826
827
828 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>.
829
830
831 </div>
832 </div>
833 <div class="padding"></div>
834
835 <div class="entry">
836 <div class="title">
837 <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>
838 </div>
839 <div class="date">
840 6th December 2012
841 </div>
842 <div class="body">
843 <p>Where I work at the <a href="http://www.uio.no/">University of
844 Oslo</a>, we use the
845 <a href="http://sourceforge.net/projects/cerebrum/">Cerebrum user
846 administration system</a> to maintain users, groups, DNS, DHCP, etc.
847 I've known since the system was written that the server is providing
848 an <a href="http://en.wikipedia.org/wiki/XML-RPC">XML-RPC</a> API, but
849 I have never spent time to try to figure out how to use it, as we
850 always use the bofh command line client at work. Until today. I want
851 to script the updating of DNS and DHCP to make it easier to set up
852 virtual machines. Here are a few notes on how to use it with
853 Python.</p>
854
855 <p>I started by looking at the source of the Java
856 <a href="http://cerebrum.svn.sourceforge.net/viewvc/cerebrum/trunk/cerebrum/clients/jbofh/">bofh
857 client</a>, to figure out how it connected to the API server. I also
858 googled for python examples on how to use XML-RPC, and found
859 <a href="http://tldp.org/HOWTO/XML-RPC-HOWTO/xmlrpc-howto-python.html">a
860 simple example in</a> the XML-RPC howto.</p>
861
862 <p>This simple example code show how to connect, get the list of
863 commands (as a JSON dump), and how to get the information about the
864 user currently logged in:</p>
865
866 <blockquote><pre>
867 #!/usr/bin/env python
868 import getpass
869 import xmlrpclib
870 server_url = 'https://cerebrum-uio.uio.no:8000';
871 username = getpass.getuser()
872 password = getpass.getpass()
873 server = xmlrpclib.Server(server_url);
874 #print server.get_commands(sessionid)
875 sessionid = server.login(username, password)
876 print server.run_command(sessionid, "user_info", username)
877 result = server.logout(sessionid)
878 print result
879 </pre></blockquote>
880
881 <p>Armed with this knowledge I can now move forward and script the DNS
882 and DHCP updates I wanted to do.</p>
883
884 </div>
885 <div class="tags">
886
887
888 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>.
889
890
891 </div>
892 </div>
893 <div class="padding"></div>
894
895 <div class="entry">
896 <div class="title">
897 <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>
898 </div>
899 <div class="date">
900 17th November 2012
901 </div>
902 <div class="body">
903 <p>While working on a
904 <a href="https://github.com/petterreinholdtsen/free-culture-lessig">Norwegian
905 translation of the Free Culture by Lawrence Lessig</a> (76% done),
906 which cover the problems with todays copyright law and how it stifles
907 creativity, one idea occurred to me. The idea is to get the tax
908 office to help make more works enter the public domain and also help
909 make it easier to clear rights for using copyrighted works.</p>
910
911 <p>I mentioned this idea briefly during Yesterdays
912 <a href="http://www.farmann.no/2012/11/14/john-perry-barlow-in-oslo-friday-nov-16
913 -15-30-19-00/">presentation
914 by John Perry Barlow</a>, and concluded that it was best to put it
915 in writing for a wider audience. The idea is not really based on the
916 argument that copyrighted works are "intellectual property", as the
917 core requirement is that copyrighted work have value for the copyright
918 holder and the tax office like to collect their share from any value
919 controlled by the citizens in a country. I'm sharing the idea here to
920 let others consider it and perhaps shoot it down with a fresh set of
921 arguments.</p>
922
923 <p>Most valuables are taxed by the government. At least here in
924 Norway, the amount of money you have, the value of our land property,
925 the value of your house, the value of your car, the value of our
926 stocks and other valuables are all added together. If the tax value
927 of these values exceed your debt, you have to pay the tax office some
928 taxes for these values. And copyrighted work have value. It have
929 value for the rights holder, who can earn money selling access to the
930 work. But it is not included in the tax calculations? Why not?</p>
931
932 <p>If the government want to tax copyrighted works, it would want to
933 maintain a database of all the copyrighted works and who are the
934 rights holders for a given works, to be able to associate the works
935 value to the right citizen or company for tax purposes. If such
936 database exist, it will become a lot easier to find out who to talk to
937 for clearing permissions to use a copyrighted work, which is a very
938 hard operation with todays copyright law. To ensure that copyright
939 holders keep the database up-to-date, it would have to become a
940 requirement to be able to collect money for granting access to
941 copyrighted works that the work is listed in the database with the
942 correct right holder.</p>
943
944 <p>If copyright causes copyright holders to have to pay more taxes,
945 they will have a small incentive to "disown" their copyright, and let
946 the work enter the public domain. For works with several right holders
947 one of the right holders could state (and get it registered in the
948 database) that she do not need to be consulted when clearing rights to
949 use the work in question and thus will not get any income from that
950 work. Stating this would have to be impossible to revert and stop the
951 tax office from adding the value of that work to the given citizens
952 tax calculation. I assume the copyright law would stay the same,
953 allowing creators to pick a license of their choosing, and also
954 allowing them to put their work directly in the public domain. The
955 existence of such database will make it even easier to clear rights,
956 and if the right holders listed in the database is taxed, this system
957 would increase the amount of works that enter the public domain.</p>
958
959 <p>The effect would be that the tax office help to make it easier to
960 get rights to use the works that have not yet entered the public
961 domain and help to get more work into the public domain and .</p>
962
963 <p>Why have such taxing not happened yet? I am sure the tax office
964 would like to tax copyrighted work values if they could.</p>
965
966 </div>
967 <div class="tags">
968
969
970 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>.
971
972
973 </div>
974 </div>
975 <div class="padding"></div>
976
977 <div class="entry">
978 <div class="title">
979 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Angela_Fu_.html">Debian Edu interview: Angela Fuß</a>
980 </div>
981 <div class="date">
982 14th November 2012
983 </div>
984 <div class="body">
985 <p>Here is another interview with one of the people in the <a
986 href="http://www.skolelinux.org/">Debian Edu and Skolelinux</a>
987 community. I am running short on people willing to be interviewed, so
988 if you know about someone I should interview, Please send me an email.
989 After asking for many months, I finally managed to lure another one of
990 the people behind the German
991 "<a href="http://wiki.it-zukunft-schule.de/">IT-Zukunft Schule</a>"
992 project out from maternity leave to conduct an interview. Give a warm
993 welcome to Angela Fuß. :)</p>
994
995 <p><strong>Who are you, and how do you spend your days?</strong></p>
996
997 <p>I am a 39-year-old woman living in the very north of Germany near
998 Denmark. I live in a patchwork family with "my man" Mike Gabriel, my
999 two daughters, Mikes daughter and Mikes and my rather newborn son.
1000
1001 <p>At the moment - because of our little baby - I am spending most of
1002 the day by being a caring and organising mom for all the kids.
1003 Besides that I am really involved into and occupied with several inner
1004 growth processes: New born souls always bring the whole familiar
1005 system into movement and that needs time and focus ;-). We are also
1006 in the middle of buying a house and moving to it.</p>
1007
1008 <p>In 2013 I will work again in my job in a German foundation for
1009 nature conservation. I am doing public relation work there. Besides
1010 that - and that is the connection to Skolelinux / Debian Edu - I am
1011 working in our own school project "IT-Zukunft Schule" in North
1012 Germany. I am responsible for the quality assurance, the customer
1013 relationship management and the communication processes in the
1014 project.</p>
1015
1016 <p>Since 2001 I constantly have been training myself in communication
1017 and leadership. Besides that I am a forester, a landscaping gardener
1018 and a yoga teacher.</p>
1019
1020 <p><strong>How did you get in contact with the Skolelinux / Debian Edu
1021 project?</strong></p>
1022
1023 <p>I fell in love with Mike ;-).</p>
1024
1025 <p>Very soon after getting to know him I was completely enrolled into
1026 Free Software. At this time Mike did IT-services for one newly
1027 founded school in Kiel. Other schools in Kiel needed concepts for
1028 their IT environment. Often when Mike came home from working at the
1029 newly founded school I found myself listening to his complaints about
1030 several points where the communication with the schools head or the
1031 teachers did not work. So we were clear that he would not work for
1032 one more school if we did not set up a structure for communication
1033 between him, the schools head, the teachers, the students and the
1034 parents.</p>
1035
1036 <p>Together with our friend and hardware supplier Andreas Buchholz we
1037 started to get an overview of free software solutions suitable for
1038 schools. One day before Christmas 2010 Mike and I had a date with Kurt
1039 Gramlich in Gütersloh. As Kurt and I are really interested in building
1040 networks of people and in being in communication we dived into
1041 Skolelinux and brought it to the first grammar schools in Northern
1042 Germany.</p>
1043
1044 <p>For information about our school project you can read
1045 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Mike_Gabriel.html">the
1046 interview with Mike Gabriel</a>.</p>
1047
1048 <p><strong>What do you see as the advantages of Skolelinux / Debian
1049 Edu?</strong></p>
1050
1051 <p>First I have to say: I cannot answer this question technically. My
1052 answer comes rather from a social point of view.</p>
1053
1054 <p>The biggest advantage of Skolelinux / Debian Edu I see is the large
1055 and strong international community of Debian Developers in the
1056 background which is very alive and connected over mailinglists, blogs
1057 and meetings. My constant feeling for the Debian Community is: If
1058 something does not work they will somehow fix it. All is well
1059 ;-). This is of course a user experience. What I also get as a big
1060 advantage of Skolelinux / Debian Edu is that everybody who uses it and
1061 works with it can also contribute to it - that includes students,
1062 teachers, parents...</p>
1063
1064 <p><strong>What do you see as the disadvantages of Skolelinux / Debian
1065 Edu?</strong></p>
1066
1067 <p>I will answer this question relating to the internal structure of
1068 Skolelinux / Debian Edu.</p>
1069
1070 <p>What I see as a major disadvantage is that there is a gap between
1071 the group of developers for Debian Edu and the people who make the
1072 marketing, that means the people that bring Skolelinux to the
1073 schools. There is a lack of communication between these two groups and
1074 I think that does not really work for Skolelinux / Debian Edu.</p>
1075
1076 <p>Further I appreciate that Skolelinux / Debian Edu is known as a
1077 do-ocracy. Nevertheless I keep asking myself if at some points a
1078 democracy or some kind of hierarchical project structure would be good
1079 and helpful. I am also missing some kind of contact between the
1080 Skolelinux / Debian Edu communities in Europe or on an international
1081 level. I think it would be good if there was more sharing between the
1082 different countries using Skolelinux / Debian Edu.</p>
1083
1084 <p><strong>Which free software do you use daily?</strong></p>
1085
1086 <p>On my laptop I am still using an Ubuntu 10.04 with a Gnome Desktop
1087 on. As applications I use Openoffice.org, Gedit, Firefox, Pidgin,
1088 LaTeX and GnuCash. For mails I am using Horde. And I am really fond of
1089 my N900 running with Maemo.</p>
1090
1091 <p><strong>Which strategy do you believe is the right one to use to
1092 get schools to use free software?</strong></p>
1093
1094 <p>I am really convinced that in our school project "IT-Zukunft
1095 Schule" we have developed (and keep developing) a great way to get
1096 schools to use Free Software. We have written a detailed concept for
1097 that so I cannot explain the whole thing here. But in a nutshell the
1098 strategy has three crucial pillars:</p>
1099
1100 <ul>
1101
1102 <li>We really take time to get what sort of stories, questions and
1103 concerns the schools head and the teachers have about using different
1104 kinds of IT and we take time to enrol them into Free Software.</li>
1105
1106 <li>Our solution for schools is never just technical. In the centre
1107 are always the people who are going to use the software. From the very
1108 beginning of the planning for a school, we tell the schools head that
1109 they are paying us not only for a technical solution for their school,
1110 they also pay us for leading all the communication processes
1111 needed. If they do not want that, we are not working with them because
1112 we cannot give a guarantee for the quality of our work then.</li>
1113
1114 <li>Another focus lies in the training of teachers and students in
1115 co-administrating the IT-System at their school. They start getting in
1116 contact with the Skolelinux / Debian Edu community and they get the
1117 offer to become more and more independent from us.</li>
1118
1119 </ul>
1120
1121 </div>
1122 <div class="tags">
1123
1124
1125 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>.
1126
1127
1128 </div>
1129 </div>
1130 <div class="padding"></div>
1131
1132 <div class="entry">
1133 <div class="title">
1134 <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>
1135 </div>
1136 <div class="date">
1137 4th November 2012
1138 </div>
1139 <div class="body">
1140 <p>Slashdot just ran a story about the European Central Bank (ECB)
1141 <a href="http://www.ecb.europa.eu/pub/pdf/other/virtualcurrencyschemes201210en.pdf">releasing
1142 a report (PDF)</a> about virtual currencies and
1143 <a href="http://www.bitcoin.org/">bitcoin</a>. It is interesting to
1144 see how a member of the bitcoin community
1145 <a href="http://blog.bitinstant.com/blog/2012/10/30/the-ecb-report-on-bitcoin-and-virtual-currencies.html">receive
1146 the report</a>. As for the future, I suspect the central banks and
1147 the governments will outlaw bitcoin if it gain any popularity, to avoid
1148 competition. My thoughts go to the
1149 <a href="http://en.wikipedia.org/wiki/Wörgl">Wörgl experiment</a> with
1150 negative inflation on cash which was such a success that it was
1151 terminated by the Austrian National Bank in 1933. A successful
1152 alternative would be a threat to the current money system and gain
1153 powerful forces to work against it.</p>
1154
1155 <p>While checking out the current status of bitcoin, I also discovered
1156 that the community already seem to have
1157 <a href="http://www.theverge.com/2012/8/27/3271637/bitcoin-savings-trust-pyramid-scheme-shuts-down">experienced
1158 its first pyramid game / Ponzi scheme</a>. Not very surprising, given
1159 how members of "small" communities tend to trust each other. I guess
1160 enterprising crocks will try again and again, as they do anywhere
1161 wealth is available.</p>
1162
1163 </div>
1164 <div class="tags">
1165
1166
1167 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>.
1168
1169
1170 </div>
1171 </div>
1172 <div class="padding"></div>
1173
1174 <div class="entry">
1175 <div class="title">
1176 <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>
1177 </div>
1178 <div class="date">
1179 26th October 2012
1180 </div>
1181 <div class="body">
1182 <p>I work at the <a href="http://www.uio.no/">University of Oslo</a>
1183 looking after the computers, mostly on the unix side, but in general
1184 all over the place. I am also a member (and currently leader) of
1185 <a href="http://www.nuug.no/">the NUUG association</a>, which in turn
1186 make me a member of <a href="http://www.usenix.org/">USENIX</a>. NUUG
1187 is an member organisation for us in Norway interested in free
1188 software, open standards and unix like operating systems, and USENIX
1189 is a US based member organisation with similar targets. And thanks to
1190 these memberships, I get all issues of the great USENIX magazine
1191 <a href="https://www.usenix.org/publications/login">;login:</a> in the
1192 mail several times a year. The magazine is great, and I read most of
1193 it every time.</p>
1194
1195 <p>In the last issue of the USENIX magazine ;login:, there is an
1196 article by <a href="http://www.skendric.com/">Stuart Kendrick</a> from
1197 Fred Hutchinson Cancer Research Center titled
1198 "<a href="https://www.usenix.org/publications/login/october-2012-volume-37-number-5/what-takes-us-down">What
1199 Takes Us Down</a>" (longer version also
1200 <a href="http://www.skendric.com/problem/incident-analysis/2012-06-30/What-Takes-Us-Down.pdf">available
1201 from his own site</a>), where he report what he found when he
1202 processed the outage reports (both planned and unplanned) from the
1203 last twelve years and classified them according to cause, time of day,
1204 etc etc. The article is a good read to get some empirical data on
1205 what kind of problems affect a data centre, but what really inspired
1206 me was the kind of reporting they had put in place since 2000.<p>
1207
1208 <p>The centre set up a mailing list, and started to send fairly
1209 standardised messages to this list when a outage was planned or when
1210 it already occurred, to announce the plan and get feedback on the
1211 assumtions on scope and user impact. Here is the two example from the
1212 article: First the unplanned outage:
1213
1214 <blockquote><pre>
1215 Subject: Exchange 2003 Cluster Issues
1216 Severity: Critical (Unplanned)
1217 Start: Monday, May 7, 2012, 11:58
1218 End: Monday, May 7, 2012, 12:38
1219 Duration: 40 minutes
1220 Scope: Exchange 2003
1221 Description: The HTTPS service on the Exchange cluster crashed, triggering
1222 a cluster failover.
1223
1224 User Impact: During this period, all Exchange users were unable to
1225 access e-mail. Zimbra users were unaffected.
1226 Technician: [xxx]
1227 </pre></blockquote>
1228
1229 Next the planned outage:
1230
1231 <blockquote><pre>
1232 Subject: H Building Switch Upgrades
1233 Severity: Major (Planned)
1234 Start: Saturday, June 16, 2012, 06:00
1235 End: Saturday, June 16, 2012, 16:00
1236 Duration: 10 hours
1237 Scope: H2 Transport
1238 Description: Currently, Catalyst 4006s provide 10/100 Ethernet to end-
1239 stations. We will replace these with newer Catalyst
1240 4510s.
1241 User Impact: All users on H2 will be isolated from the network during
1242 this work. Afterward, they will have gigabit
1243 connectivity.
1244 Technician: [xxx]
1245 </pre></blockquote>
1246
1247 <p>He notes in his article that the date formats and other fields have
1248 been a bit too free form to make it easy to automatically process them
1249 into a database for further analysis, and I would have used ISO 8601
1250 dates myself to make it easier to process (in other words I would ask
1251 people to write '2012-06-16 06:00 +0000' instead of the start time
1252 format listed above). There are also other issues with the format
1253 that could be improved, read the article for the details.</p>
1254
1255 <p>I find the idea of standardising outage messages seem to be such a
1256 good idea that I would like to get it implemented here at the
1257 university too. We do register
1258 <a href="http://www.uio.no/tjenester/it/aktuelt/planlagte-tjenesteavbrudd/">planned
1259 changes and outages in a calendar</a>, and report the to a mailing
1260 list, but we do not do so in a structured format and there is not a
1261 report to the same location for unplanned outages. Perhaps something
1262 for other sites to consider too?</p>
1263
1264 </div>
1265 <div class="tags">
1266
1267
1268 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>.
1269
1270
1271 </div>
1272 </div>
1273 <div class="padding"></div>
1274
1275 <div class="entry">
1276 <div class="title">
1277 <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>
1278 </div>
1279 <div class="date">
1280 22nd October 2012
1281 </div>
1282 <div class="body">
1283 <p>A blog post from Martin Bekkelund today tell the story of
1284 <a href="http://www.bekkelund.net/2012/10/22/outlawed-by-amazon-drm/">how
1285 Amazon erased the books from a customer's kindle, locked the account
1286 and refuse to tell the customer why</a>. If a real book store did
1287 this to a customer, it would be called breaking into private property
1288 and theft. The story has spread around the net today. A bit more
1289 background information is available in Norwegian from
1290 <a href="http://www.digi.no/904658/hun-ble-kastet-ut-av-amazon">digi.no</a>.
1291 It is no surprise that digital restriction mechanisms (DRM) are used
1292 this way, as it has been warned about such abuse since DRM was
1293 introduced many years back. And Amazon proved in 2009 that it was
1294 willing to
1295 <a href="http://boingboing.net/2009/07/20/amazons-orwellian-de.html">
1296 break into customers equipment and remove the books</a> people had
1297 bought, when it removed the book 1984 by George Orwell from all the
1298 customers who had bought it. From the official comments, it even
1299 sounded like
1300 <a href="http://www.nytimes.com/2009/07/18/technology/companies/18amazon.html">Amazon
1301 would never do that again</a>. And here we are, three years
1302 later.</p>
1303
1304 <p>And thought this action is
1305 <a href="http://www.itavisen.no/904648/forbrukerraadet-helt-haarreisende">against
1306 Norwegian regulations and law</a>, it is according to the terms of use
1307 as written by Amazon, and it is hard to hold Amazon accountable to
1308 Norwegian laws. It is just yet another example of unacceptable terms
1309 of use on the web, and how they are used to remove customer
1310 rights.</p>
1311
1312 <p>Luckily for electronic books, there are alternatives without
1313 unacceptable terms. For example
1314 <a href="http://www.gutenberg.org/">Project Gutenberg</a> (about 40,000
1315 books), <a href="http://runeberg.org/">Project Runenberg</a> (1,652
1316 books) and <a href="http://www.archive.org/details/texts">The Internet
1317 Archive</a> (3,641,797 books) have heaps of books without DRM, which
1318 can read by anyone and shared with anyone.</p>
1319
1320 <p>Update 2012-10-23: This story broke in the morning on Monday. In
1321 the evening after the story had spread all across the Internet, Amazon
1322 restored the account of the user, as reported by
1323 <a href="http://www.digi.no/904675/helomvending-fra-amazon">digi.no</a>
1324 and <a href="http://nrk.no/kultur-og-underholdning/1.8368487">NRK</a>.
1325 Apparently public pressure work. The story from Martin have seen
1326 several twitter messages per minute the last 24 hours, which is quite
1327 a lot, and is still drawing a lot of attention. But even when the
1328 account is restored, the fundamental problem still exist. I recommend
1329 reading two opinions from
1330 <a href="http://blogs.computerworlduk.com/simon-says/2012/10/rights-you-have-no-right-to-your-ebooks/index.htm">Simon
1331 Phipps</a> and
1332 <a href="http://blogs.computerworlduk.com/open-enterprise/2012/10/is-amazon-playing-fair/index.htm">Glen
1333 Moody</a> if you want to learn more about the fundamentals and more
1334 details about the original story.</p>
1335
1336 </div>
1337 <div class="tags">
1338
1339
1340 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>.
1341
1342
1343 </div>
1344 </div>
1345 <div class="padding"></div>
1346
1347 <div class="entry">
1348 <div class="title">
1349 <a href="http://people.skolelinux.org/pere/blog/The_fight_for_freedom_and_privacy.html">The fight for freedom and privacy</a>
1350 </div>
1351 <div class="date">
1352 18th October 2012
1353 </div>
1354 <div class="body">
1355 <p>Civil liberties and privacy in the western world are going down the
1356 drain, and it is hard to fight against it. I try to do my best, but
1357 time is limited. I hope you do your best too. A few years ago I came
1358 across a marvellous drawing by
1359 <a href="http://www.claybennett.com/about.html">Clay Bennett</a>
1360 visualising some of what is going on.
1361
1362 <p><a href="http://www.claybennett.com/pages/security_fence.html">
1363 <img src="http://www.claybennett.com/images/archivetoons/security_fence.jpg"></a></p>
1364
1365 <blockquote>
1366 «They who can give up essential liberty to obtain a little temporary
1367 safety, deserve neither liberty nor safety.» - Benjamin Franklin
1368 </blockquote>
1369
1370 <p>Do you feel safe at the airport? I do not. Do you feel safe when
1371 you see a surveillance camera? I do not. Do you feel safe when you
1372 leave electronic traces of your behaviour and opinions? I do not. I
1373 just remember <a href="http://en.wikipedia.org/wiki/Panopticon">the
1374 Panopticon</a>, and can not help to think that we are slowly
1375 transforming our society to a huge Panopticon on our own.</p>
1376
1377 </div>
1378 <div class="tags">
1379
1380
1381 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>.
1382
1383
1384 </div>
1385 </div>
1386 <div class="padding"></div>
1387
1388 <div class="entry">
1389 <div class="title">
1390 <a href="http://people.skolelinux.org/pere/blog/ColonHelp_produser_sue_WordPress_to_silence_critic.html">ColonHelp produser sue WordPress to silence critic</a>
1391 </div>
1392 <div class="date">
1393 12th October 2012
1394 </div>
1395 <div class="body">
1396 <p>Thanks to a blog post by
1397 <a href="http://ramblingfoo.blogspot.no/2012/10/a-shitstorm-is-comming.html">Eddy
1398 Petrișor</a>, I became aware of yet another "alternative medicine"
1399 company using legal intimidation tactics to scare off critics.
1400 According to the originating blog post about the detox "cure"
1401 <a href="http://insulaindoielii.wordpress.com/2012/10/11/colon-help-sues-wordpress/">ColonHelp
1402 and its producers Zenyth Pharmaceuticals actions</a>, the producer
1403 sues Wordpress to get rid of the critical information. To check if
1404 the story was for real, I contacted Automattic, the company behind
1405 wordpress.com, and they reply was "We can confirm that Zenyth is
1406 seeking a court order against WordPress / Automattic. However, we
1407 don't believe the Terms of Service have been violated in this
1408 matter".</p>
1409
1410 <p>The story seem to be simply that a blogger checked the scientific
1411 foundation for a popular health product in Rumania, ColonHelp, and
1412 reported that there was no reason at all to believe it improved the
1413 health of its users. This caused the company behind the product,
1414 Zenyth Pharmaceuticals, to use legal intimidation to try to silence
1415 the critic, instead of presenting its views and scientific foundation
1416 to argue its side.</p>
1417
1418 <p>This is the usual story, and the Zenyth Pharmaceuticals company
1419 deserve everyone to know how it failed to act properly. Lets hope the
1420 <a href="http://en.wikipedia.org/wiki/Streisand_effect">Streisand
1421 effect</a> can make it rethink its strategy.</p>
1422
1423 <p>What is the harm, you might think. I suggest you take a look at
1424 <a href="http://www.whatstheharm.net/detoxification.html">a list of
1425 victims of detoxification</a>.</p>
1426
1427 </div>
1428 <div class="tags">
1429
1430
1431 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>.
1432
1433
1434 </div>
1435 </div>
1436 <div class="padding"></div>
1437
1438 <div class="entry">
1439 <div class="title">
1440 <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>
1441 </div>
1442 <div class="date">
1443 3rd October 2012
1444 </div>
1445 <div class="body">
1446 <p>I just read the blog post from Tim Retout
1447 <a href="http://retout.co.uk/blog/2012/10/02/the-library-challenge">about
1448 the computer science book collection available in his local
1449 library</a>, and just wanted to share my comment on his theory about
1450 computer books becoming obsolete so soon. That is part of the reason
1451 why the selection is so sad in almost any local library (it is in mine
1452 too), but I believe the major contributing factor is that the people
1453 buying books to the library have no way to know a good and future
1454 computer classic from trash. And they need to know which one will
1455 become a classic in the future, as they would normally buy one of the
1456 recently published books.</p>
1457
1458 <p>During my university years, I worked for a while at the university
1459 library, and even there the person in charge of buying computer
1460 related books (and in fact any natural science related book), did not
1461 know enough about computers to make a good educated guess. Once, just
1462 before Christmas, they had some leftover money on the book budget and
1463 I was asked if I could pick out a lot of computer books in the
1464 university book store, for the library to buy for their collection. I
1465 had a great time picking all the books I dreamt of buying and reading,
1466 and the books I knew were classics (like most of the
1467 <a href="http://en.wikipedia.org/wiki/W._Richard_Stevens">Stevens
1468 collection</a>). I picked several of the generic O'Reilly books (ie
1469 documenting protocols, formats and systems, not specific versions of
1470 products) and stayed away from the 'teach yourself X in N days' class.
1471 I had a great time, and probably picked out more than a hundred books
1472 for the library that evening.</p>
1473
1474 <p>The sad fact is that there is no way a overworked librarian is
1475 going to know that for example
1476 <a href="http://en.wikipedia.org/wiki/The_Practice_of_Programming">The
1477 Practice of Programming</a> is a must-have in any computer library,
1478 and they will most of the time end up picking the wrong books to buy.
1479 Perhaps you can help your local library make better choices by giving
1480 the suggestions for books to get? I know they would love to hear from
1481 you, even if their budget might block them from getting your favourite
1482 book right away.</p>
1483
1484 </div>
1485 <div class="tags">
1486
1487
1488 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
1489
1490
1491 </div>
1492 </div>
1493 <div class="padding"></div>
1494
1495 <div class="entry">
1496 <div class="title">
1497 <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>
1498 </div>
1499 <div class="date">
1500 23rd September 2012
1501 </div>
1502 <div class="body">
1503 <p>Since this summer, I have worked in my spare time on a Norwegian <a
1504 href="http://www.docbook.org/">docbook</a> version of the 2004 book <a
1505 href="http://free-culture.cc/">Free Culture</a> by Lawrence Lessig.
1506 The reason is that this book is a great primer on what problems exist
1507 in the current copyright laws, and I want it to be available also for
1508 those that are reluctant do read an English book.
1509
1510 When I started, I
1511 <a href="http://people.skolelinux.org/pere/blog/Dugnad_for___sende_norsk_versjon_av_Free_Culture_til_stortingets_representanter_.html">called
1512 for volunteers</a> to help me, but too few have volunteered so far,
1513 and progress is a bit slow. Anyway, today I broken the 70 percent
1514 mark for the first rough translation. At the moment, less than 700
1515 strings (paragraphs, index terms, titles) are left to translate. With
1516 my current progress of 10-20 strings per day, it will take a while to
1517 complete the translation. This graph show the updated progress:</p>
1518
1519 <img width="80%" align="center" src="https://github.com/petterreinholdtsen/free-culture-lessig/raw/master/progress.png">
1520
1521 <p>Progress have slowed down lately due to family and work
1522 commitments. If you want to help, please get in touch, and check out
1523 the project files currently available from
1524 <a href="https://github.com/petterreinholdtsen/free-culture-lessig">github</a>.</p>
1525
1526 <p>If you are curious what the translated book currently look like,
1527 the updated
1528 <a href="https://github.com/petterreinholdtsen/free-culture-lessig/blob/master/archive/freeculture.nb.pdf?raw=true">PDF</a>
1529 and
1530 <a href="https://github.com/petterreinholdtsen/free-culture-lessig/blob/master/archive/freeculture.nb.epub?raw=true">EPUB</a>
1531 are published on github. The HTML version is published as well, but
1532 github hand it out with MIME type text/plain, confusing browsers, so I
1533 saw no point in linking to that version.</p>
1534
1535 </div>
1536 <div class="tags">
1537
1538
1539 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>.
1540
1541
1542 </div>
1543 </div>
1544 <div class="padding"></div>
1545
1546 <div class="entry">
1547 <div class="title">
1548 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Giorgio_Pioda.html">Debian Edu interview: Giorgio Pioda</a>
1549 </div>
1550 <div class="date">
1551 17th September 2012
1552 </div>
1553 <div class="body">
1554 <p>After a long break in my row of interviews with people in the
1555 <a href="http://www.skolelinux.org/">Debian Edu and Skolelinux</a>
1556 community, I finally found time to wrap up another. This time it is
1557 Giorgio Pioda, which showed up on the mailing list at the start of
1558 this year, asking questions and inspiring us to improve the first time
1559 administrators experience with Skolelinux. :) The interview was
1560 conduced in May, but I only found time to publish it now.</p>
1561
1562 <p><strong>Who are you, and how do you spend your days?</strong></p>
1563
1564 <p>I have a PhD in chemistry but since several years I work as teacher
1565 in secondary (15-18 year old students) and tertiary (a kind of "light"
1566 university) schools. Five years ago I started to manage a Learning
1567 Management Service server and slowly I got more and more involved with
1568 IT. 3 years ago the graduating schools moved completely to Linux and I
1569 got the head of the IT for this. The experience collected in chemistry
1570 labs computers (for example NMR analysis of protein folding) and in
1571 the IT-courses during university where sufficient to start. Self
1572 training is anyway very important</p>
1573
1574 <p>I live in the Italian speaking part of Switzerland, and the
1575 <a href="http://www.spse.ch/">SPSE school</a> (secondary) is a very
1576 special sport school for young people who try to became sport pro (for
1577 all sports, we have dozens of disciplines represented) and we are
1578 recognised by the Olympic Swiss Organisation.
1579
1580 <p><strong>How did you get in contact with the Skolelinux/Debian Edu
1581 project?</strong></p>
1582
1583 <p>Looking for Linux / Primary Domain Controller (PDC) I found it
1584 already several years ago. But since the system was still not
1585 Kerberized and since our schools relies strongly on laptops I didn't
1586 use it. I plan to introduce it in the next future, probably for the
1587 next school year, since the squeeze release solved this security
1588 hole.</p>
1589
1590 <p><strong>What do you see as the advantages of Skolelinux/Debian
1591 Edu?</strong></p>
1592
1593 <p>Many. First of all there is a strong and living community that is
1594 very generous for help and hints. Chat help is crucial, together with
1595 the mailing list. Second. With Skolelinux you get an already well
1596 engineered platform and you don't have to start to build up your PDC
1597 and your clients from GNU/scratch; I've already done this once and I
1598 can tell it, it is hard. Third, since Skolelinux is a standard
1599 platform, it is way easier to educate other IT people and even if the
1600 head IT is sick another one could pick up the task without too much
1601 hassle.</p>
1602
1603 <p><strong>What do you see as the disadvantages of Skolelinux/Debian
1604 Edu?</strong></p>
1605
1606 <p>The only real problem I see is that it is a little too less
1607 flexible at client level. Debian stable is rocky and desirable, but
1608 there are many reasons that force for another choice. For example the
1609 need of new drivers for new PC, or the need for a specific OS for some
1610 devices that have specific software packages for another specific
1611 distribution (I have such a case for whiteboards that have only
1612 Ubuntu packages). Thus, I prepared compatibility packages educlient
1613 and eduroaming, hoping not to use them ;-)</p>
1614
1615 <p><strong>Which free software do you use daily?</strong></p>
1616
1617 <p>I have a Debian Stable PDC at school (Kerberos, NIS, NFS) with
1618 mixed Debian and Ubuntu clients. If you think that this triad
1619 combination is exotic... well I discovered right yesterday that
1620 <a href="http://moo.nac.uci.edu/~hjm/Perceus-Report.html">Perceus</a>
1621 has the same...</p>
1622
1623 <p>For myself I run Debian wheezy/sid, but this combination is good
1624 only I you have enough competence to fix stuff for yourself, if
1625 something breaks. Daily I use texmacs, gnumeric, a little bit of R
1626 statistics, kmplot, and less frequently OpenOffice.org.</p>
1627
1628 <p><strong>Which strategy do you believe is the right one to use to
1629 get schools to use free software?</strong></p>
1630
1631 <P>I think that the only real argument that school managers "hear" is
1632 cost reduction. They don't give too much weight on quality, stability,
1633 just because they are normally not open to change.</p>
1634
1635 <p>Students adapts very quickly to GNU/Linux (and for them being able
1636 to switch between different OS is a plus value); teachers and managers
1637 don't.</p>
1638
1639 <p>We decided to move to Linux because students at our school have own
1640 laptop and we have the responsibility to keep the laptop ready to use;
1641 we were really unsatisfied with Microsoft since every Monday we had 20
1642 machine to fix for viral infections... With Linux this has been
1643 reduced to zero, since people installs almost only from official
1644 repositories. I think that our special needs brought us to Linux.
1645 Those who don't have such needs will hardly move to Linux.</p>
1646
1647 </div>
1648 <div class="tags">
1649
1650
1651 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>.
1652
1653
1654 </div>
1655 </div>
1656 <div class="padding"></div>
1657
1658 <div class="entry">
1659 <div class="title">
1660 <a href="http://people.skolelinux.org/pere/blog/IETF_activity_to_standardise_video_codec.html">IETF activity to standardise video codec</a>
1661 </div>
1662 <div class="date">
1663 15th September 2012
1664 </div>
1665 <div class="body">
1666 <p>After the
1667 <a href="http://people.skolelinux.org/pere/blog/IETF_standardize_its_first_multimedia_codec__Opus.html">Opus
1668 codec made</a> it into <a href="http://www.ietf.org/">IETF</a> as
1669 <a href="http://tools.ietf.org/html/rfc6716">RFC 6716</a>, I had a look
1670 to see if there is any activity in IETF to standardise a video codec
1671 too, and I was happy to discover that there is some activity in this
1672 area. A non-"working group" mailing list
1673 <a href="https://www.ietf.org/mailman/listinfo/video-codec">video-codec</a>
1674 was
1675 <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
1676 formal working group should be formed.</p>
1677
1678 <p>I look forward to see how this plays out. There is already
1679 <a href="http://www.ietf.org/mail-archive/web/video-codec/current/msg00003.html">an
1680 email from someone</a> in the MPEG group at ISO asking people to
1681 participate in the ISO group. Given how ISO failed with OOXML and given
1682 that it so far (as far as I can remember) only have produced
1683 multimedia formats requiring royalty payments, I suspect
1684 joining the ISO group would be a complete waste of time, but I am not
1685 involved in any codec work and my opinion will not matter much.</p>
1686
1687 <p>If one of my readers is involved with codec work, I hope she will
1688 join this work to standardise a royalty free video codec within
1689 IETF.</p>
1690
1691 </div>
1692 <div class="tags">
1693
1694
1695 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>.
1696
1697
1698 </div>
1699 </div>
1700 <div class="padding"></div>
1701
1702 <div class="entry">
1703 <div class="title">
1704 <a href="http://people.skolelinux.org/pere/blog/IETF_standardize_its_first_multimedia_codec__Opus.html">IETF standardize its first multimedia codec: Opus</a>
1705 </div>
1706 <div class="date">
1707 12th September 2012
1708 </div>
1709 <div class="body">
1710 <p>Yesterday, <a href="http://www.ietf.org/">IETF</a> announced the
1711 publication of of
1712 <a href="http://tools.ietf.org/html/rfc6716">RFC 6716, the Definition
1713 of the Opus Audio Codec</a>, a low latency, variable bandwidth, codec
1714 intended for both VoIP, film and music. This is the first time, as
1715 far as I know, that IETF have standardized a multimedia codec. In
1716 <a href="http://tools.ietf.org/html/rfc3533">RFC 3533</a>, IETF
1717 standardized the OGG container format, and it has proven to be a great
1718 royalty free container for audio, video and movies. I hope IETF will
1719 continue to standardize more royalty free codeces, after ISO and MPEG
1720 have proven incapable of securing everyone equal rights to publish
1721 multimedia content on the Internet.</p>
1722
1723 <p>IETF require two interoperating independent implementations to
1724 ratify a standard, and have so far ensured to only standardize royalty
1725 free specifications. Both are key factors to allow everyone (rich and
1726 poor), to compete on equal terms on the Internet.</p>
1727
1728 <p>Visit the <a href="http://opus-codec.org/">Opus project page</a> if
1729 you want to learn more about the solution.</p>
1730
1731 </div>
1732 <div class="tags">
1733
1734
1735 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>.
1736
1737
1738 </div>
1739 </div>
1740 <div class="padding"></div>
1741
1742 <div class="entry">
1743 <div class="title">
1744 <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>
1745 </div>
1746 <div class="date">
1747 7th September 2012
1748 </div>
1749 <div class="body">
1750 <p>As I
1751 <a href="http://people.skolelinux.org/pere/blog/Song_book_for_Computer_Scientists.html">mentioned
1752 this summer</a>, I have created a Computer Science song book a few
1753 years ago, and today I finally found time to create a public
1754 <a href="https://gitorious.org/pere-cs-songbook/pere-cs-songbook">Gitorious
1755 repository for the project</a>.</p>
1756
1757 <p>If you want to help out, please clone the source and submit patches
1758 to the HTML version. To generate the PDF and PostScript version,
1759 please use prince XML, or let me know about a useful free software
1760 processor capable of creating a good looking PDF from the HTML.</p>
1761
1762 <p>Want to sing? You can still find the song book in HTML, PDF and
1763 PostScript formats at
1764 <a href="http://www.hungry.com/~pere/cs-songbook/">Petter's Computer
1765 Science Songbook</a>.</p>
1766
1767 </div>
1768 <div class="tags">
1769
1770
1771 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>.
1772
1773
1774 </div>
1775 </div>
1776 <div class="padding"></div>
1777
1778 <div class="entry">
1779 <div class="title">
1780 <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>
1781 </div>
1782 <div class="date">
1783 23rd August 2012
1784 </div>
1785 <div class="body">
1786 <p>I came across a great comment from Simon Phipps today, about how
1787 <a href="http://www.infoworld.com/d/open-source-software/how-microsoft-was-forced-open-office-200233">Microsoft
1788 have been forced to open Office</a>, and it made me remember and
1789 revisit the great site
1790 <a href="http://www.officeshots.org/">officeshots</a> which allow you
1791 to check out how different programs present the ODF file format. I
1792 recommend both to those of my readers interested in ODF. :)</p>
1793
1794 </div>
1795 <div class="tags">
1796
1797
1798 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>.
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/Half_way_there_with_translated_docbook_version_of_Free_Culture.html">Half way there with translated docbook version of Free Culture</a>
1808 </div>
1809 <div class="date">
1810 17th August 2012
1811 </div>
1812 <div class="body">
1813 <p>In my spare time, I currently work on a Norwegian
1814 <a href="http://www.docbook.org/">docbook</a> version of the 2004 book
1815 <a href="http://free-culture.cc/">Free Culture</a> by Lawrence Lessig,
1816 to get a Norwegian text explaining the problems with the copyright law
1817 I can give to my parents and others that are reluctant to read an
1818 English book. It is a marvellous set of examples on how the ever
1819 expanding copyright regulations hurt culture and society. When the
1820 translation is done, I hope to find funding to print and ship a copy
1821 to all the members of the Norwegian parliament, before they sit down
1822 to debate the latest revisions to the Norwegian copyright law. This
1823 summer I
1824 <a href="http://people.skolelinux.org/pere/blog/Dugnad_for___sende_norsk_versjon_av_Free_Culture_til_stortingets_representanter_.html">called
1825 for volunteers</a> to help me, and I have been able to secure the
1826 valuable contribution from at least one other Norwegian.</p>
1827
1828 <p>Two days ago, we finally broke the 50% mark. Then more than 50% of
1829 the number of strings to translate (normally paragraphs, but also
1830 titles and index entries are also counted). All parts from the
1831 beginning up to and including chapter four is translated. So is
1832 chapters six, seven and the conclusion. I created a graph to show the
1833 progress:</p>
1834
1835 <img width="80%" align="center" src="https://github.com/petterreinholdtsen/free-culture-lessig/raw/master/progress.png">
1836
1837 <p>The number of strings to translate increase as I insert the index
1838 entries into the docbook. They were missing with the docbook version
1839 I initially started with. There are still quite a few index entries
1840 missing, but everyone starting with A, B, O, Z and Y are done. I
1841 currently focus on completing the index entries, to get a complete
1842 english version of the docbook source.</p>
1843
1844 <p>There is still need for translators and people with docbook
1845 knowledge, to be able to get a good looking book (I still struggle
1846 with dblatex, xmlto and docbook-xsl) as well as to do the draft
1847 translation and proof reading. And I would like the figures to be
1848 redrawn as SVGs to make it easy to translate them. Any SVG master
1849 around? I am sure there are some legal terms that are unfamiliar to
1850 me. If you want to help, please get in touch, and check out the
1851 project files currently available from <a
1852 href="https://github.com/petterreinholdtsen/free-culture-lessig">github</a>.</p>
1853
1854 <p>If you are curious what the translated book currently look like,
1855 the updated
1856 <a href="https://github.com/petterreinholdtsen/free-culture-lessig/blob/master/archive/freeculture.nb.pdf?raw=true">PDF</a>
1857 and
1858 <a href="https://github.com/petterreinholdtsen/free-culture-lessig/blob/master/archive/freeculture.nb.epub?raw=true">EPUB</a>
1859 are published on github. The HTML version is published as well, but
1860 github hand it out with MIME type text/plain, confusing browsers, so I
1861 saw no point in linking to that version.</p>
1862
1863 </div>
1864 <div class="tags">
1865
1866
1867 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>.
1868
1869
1870 </div>
1871 </div>
1872 <div class="padding"></div>
1873
1874 <div class="entry">
1875 <div class="title">
1876 <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>
1877 </div>
1878 <div class="date">
1879 10th August 2012
1880 </div>
1881 <div class="body">
1882 <p>In <a href="http://www.docbook.org/">docbook</a> one can specify
1883 the language used at the top, and the processing pipeline will use
1884 this information to pick the correct translations for 'chapter', 'see
1885 also', 'index' etc. And for most languages used with docbook, I guess
1886 this work just fine. For example a German user can start the document
1887 with &lt;book lang="de"&gt;, and the document will show up with the
1888 correct content with any of the docbook processors. This is not the
1889 case for the language
1890 <a href="http://people.skolelinux.org/pere/blog/Free_Culture_in_Norwegian___5_chapters_done__74_percent_left_to_do.html">I
1891 am working with at the moment</a>, Norwegian Bokmål.</p>
1892
1893 <p>For a while, I was confused about which language code to use,
1894 because I was unable to find any language code that would work across
1895 all tools. I am currently testing dblatex, xmlto, docbook-xsl, and
1896 dbtoepub, and they do not handle Norwegian Bokmål the same way. Some
1897 of them do not handle it at all.</p>
1898
1899 <p>A bit of background information is probably needed to understand
1900 this mess. Norwegian is not one, but two written variants. The
1901 variants are Norwegian Nynorsk and Norwegian Bokmål. There are three
1902 two letter language codes associated with these languages, Norwegian
1903 is 'no', Norwegian Nynorsk is 'nn' and Norwegian Bokmål is 'nb'.
1904 Historically the 'no' language code was used for Norwegian Bokmål, but
1905 many years ago this was found to be å bad idea, and the recommendation
1906 is to use the most specific language code instead, to avoid confusion.
1907 In the transition period it is a good idea to make sure 'no' was an
1908 alias for 'nb'.</p>
1909
1910 <p>Back to docbook processing tools in Debian. The dblatex tool only
1911 understand 'nn'. There are translations for 'no', but not 'nb' (BTS
1912 <a href="http://bugs.debian.org/684391">#684391</a>), but due to a bug
1913 (BTS <a href="http://bugs.debian.org/682936">#682936</a>) the 'no'
1914 language code is not recognised. The docbook-xsl tool chain only
1915 recognise 'nn' and 'nb', but not 'no'. The xmlto tool only recognise
1916 'nn' and 'nb', but not 'no'. The end result that there is no language
1917 code I can use to get the docbook file working with all of these tools
1918 at the same time. :(</p>
1919
1920 <p>The correct solution is to use &lt;book lang="nb"&gt;, but it will
1921 take time before that will work with all the free software docbook
1922 processors. :(</p>
1923
1924 <p>Oh, the joy of well integrated tools. :/</p>
1925
1926 </div>
1927 <div class="tags">
1928
1929
1930 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>.
1931
1932
1933 </div>
1934 </div>
1935 <div class="padding"></div>
1936
1937 <div class="entry">
1938 <div class="title">
1939 <a href="http://people.skolelinux.org/pere/blog/Best_way_to_create_a_docbook_book_.html">Best way to create a docbook book?</a>
1940 </div>
1941 <div class="date">
1942 31st July 2012
1943 </div>
1944 <div class="body">
1945 <p>I tried to send this text to the
1946 <a href="https://lists.oasis-open.org/archives/docbook-apps/">docbook-apps
1947 mailing list at lists.oasis-open.org</a>, but it only accept messages
1948 from subscribers and rejected my post, and I completely lack the
1949 bandwidth required to subscribe to another mailing list, so instead I
1950 try to post my message here and hope my blog readers can help me
1951 out.</p>
1952
1953 <p>I am quite new to docbook processing, and am climbing a steep
1954 learning curve at the moment.</p>
1955
1956 <p>To give you some background, I am working on a Norwegian
1957 translation of the book Free Culture by Lawrence Lessig, and I use
1958 docbook to handle the process. The files to build the book are
1959 available from
1960 <a href="https://github.com/petterreinholdtsen/free-culture-lessig">github</a>.
1961 The book got around 400 pages with parts, images, footnotes, tables,
1962 index entries etc, which has proven to be a challenge for the free
1963 software docbook processors. My build platform is Debian GNU/Linux
1964 Squeeze.</p>
1965
1966 <p>I want to build PDF, EPUB and HTML version of the book, and have
1967 tried different tool chains to do the conversion from docbook to these
1968 formats. I am currently focusing on the PDF version, and have a few
1969 problems.</p>
1970
1971 <ul>
1972
1973 <li>Using dblatex, the &lt;part&gt; handling is not the way I want to,
1974 as &lt;/part&gt; do not really end the &lt;part&gt;. (See
1975 <a href="http://bugs.debian.org/683166">BTS report #683166</a>), the
1976 xetex backend (needed to process UTF-8) give incorrect hyphens in
1977 index references spanning several pages (See
1978 <a href="http://bugs.debian.org/682901">BTS report #682901</a>), and
1979 I am unable to get the norwegian template texts (See
1980 <a href="http://bugs.debian.org/682936">BTS report #682936</a>).</li>
1981
1982 <li>Using straight xmlto fail with some latex error (See
1983 <a href="http://bugs.debian.org/683163">BTS report
1984 #683163</a>).</li>
1985
1986 <li>Using xmlto with the fop backend fail to handle images (do not
1987 show up in the PDF), fail to handle a long footnote (overlap
1988 footnote and text body, see
1989 <a href="http://bugs.debian.org/683197">BTS report #683197</a>), and
1990 fail to create a correct index (some lack page ref, and the page
1991 refs listed are not right).</li>
1992
1993 <li>Using xmlto with the dblatex backend behave like dblatex.</li>
1994
1995 <li>Using docbook-xls with xsltproc + fop have the same footnote and
1996 index problems the xmlto + fop processing.</li>
1997
1998 </ul>
1999
2000 <p>So I wonder, what would be the best way to create the PDF version
2001 of this book? Are some of the bugs found above solved in new or
2002 experimental versions of some docbook tool chain?</p>
2003
2004 <p>What about HTML and EPUB versions?</p>
2005
2006 </div>
2007 <div class="tags">
2008
2009
2010 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>.
2011
2012
2013 </div>
2014 </div>
2015 <div class="padding"></div>
2016
2017 <div class="entry">
2018 <div class="title">
2019 <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>
2020 </div>
2021 <div class="date">
2022 21st July 2012
2023 </div>
2024 <div class="body">
2025 <p>I reported earlier that I am working on
2026 <a href="http://people.skolelinux.org/pere/blog/Dugnad_for___sende_norsk_versjon_av_Free_Culture_til_stortingets_representanter_.html">a
2027 norwegian version</a> of the book
2028 <a href="http://free-culture.cc/">Free Culture</a> by Lawrence Lessig.
2029 Progress is good, and yesterday I got a major contribution from Anders
2030 Hagen Jarmund completing chapter six. The source files as well as a
2031 PDF and EPUB version of this book are available from
2032 <a href="https://github.com/petterreinholdtsen/free-culture-lessig">github</a>.</p>
2033
2034 <p>I am happy to report that the draft for the first two chapters
2035 (preface, introduction) is complete, and three other chapters are also
2036 completely translated. This completes 26 percent of the number of
2037 strings (equivalent to paragraphs) in the book, and there is thus 74
2038 percent left to translate. A graph of the progress is present at the
2039 bottom of the github project page. There is still room for more
2040 contributors. Get in touch or send github pull requests with fixes if
2041 you got time and are willing to help make this book make it to
2042 print. :)</p>
2043
2044 <p>The book translation framework could also be a good basis for other
2045 translations, if you want the book to be available in your
2046 language.</p>
2047
2048 </div>
2049 <div class="tags">
2050
2051
2052 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>.
2053
2054
2055 </div>
2056 </div>
2057 <div class="padding"></div>
2058
2059 <div class="entry">
2060 <div class="title">
2061 <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>
2062 </div>
2063 <div class="date">
2064 16th July 2012
2065 </div>
2066 <div class="body">
2067 <p>I am currently working on a
2068 <a href="http://people.skolelinux.org/pere/blog/Dugnad_for___sende_norsk_versjon_av_Free_Culture_til_stortingets_representanter_.html">project
2069 to translate</a> the book
2070 <a href="http://free-culture.cc/">Free Culture</a> by Lawrence Lessig
2071 to Norwegian. And the source we base our translation on is the
2072 <a href="http://en.wikipedia.org/wiki/DocBook">docbook</a> version, to
2073 allow us to use po4a and .po files to handle the translation, and for
2074 this to work well the docbook source document need to be properly
2075 tagged. The source files of this project is available from
2076 <a href="https://github.com/petterreinholdtsen/free-culture-lessig">github</a>.</p>
2077
2078 <p>The problem is that the docbook source have flaws, and we have
2079 no-one involved in the project that is a docbook expert. Is there a
2080 docbook expert somewhere that is interested in helping us create a
2081 well tagged docbook version of the book, and adjust our build process
2082 for the PDF, EPUB and HTML version of the book? This will provide a
2083 well tagged English version (our source document), and make it a lot
2084 easier for us to create a good Norwegian version. If you can and want
2085 to help, please get in touch with me or fork the github project and
2086 send pull requests with fixes. :)</p>
2087
2088 </div>
2089 <div class="tags">
2090
2091
2092 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>.
2093
2094
2095 </div>
2096 </div>
2097 <div class="padding"></div>
2098
2099 <div class="entry">
2100 <div class="title">
2101 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__George_Bredberg.html">Debian Edu interview: George Bredberg</a>
2102 </div>
2103 <div class="date">
2104 9th July 2012
2105 </div>
2106 <div class="body">
2107 <p>The <a href="http://www.skolelinux.org/">Debian Edu /
2108 Skolelinux</a> project have users all over the globe, but until
2109 recently we have not known about any users in Norway's neighbour
2110 country Sweden. This changed when George Bredberg showed up in March
2111 this year on the mailing list, asking interesting questions about how
2112 to adjust and scale the just released
2113 <a href="http://www.debian.org/News/2012/20120311.html">Debian Edu
2114 Wheezy</a> setup to his liking. He granted me an interview, and I am
2115 happy to share his answers with you here.</p>
2116
2117 <p><strong>Who are you, and how do you spend your days?</strong></p>
2118
2119 <p>I'm a 44 year old country guy that have been working 12 years at
2120 the same school as 50% IT-manager and 50% Teacher. My educational
2121 background is fil.kand in history and religious beliefs, an exam as a
2122 "folkhighschool" teacher, that is, for teaching grownups. In
2123 Norwegian I believe it's called "Vuxenupplaring". I also have a master
2124 in "Technology and social change". So I'm not really a tech guy, I
2125 just like to study how humans and technology interact and that is my
2126 perspective when working with IT.</p>
2127
2128 <p><strong>How did you get in contact with the Skolelinux/Debian Edu
2129 project?</strong></p>
2130
2131 I have followed the Skolelinux project for quite some time by
2132 now. Earlier I tested out the K12-LTSP project, which we used for some
2133 time, but I really like the idea of having a distribution aimed to be
2134 a complete solution for schools with necessary tools integrated. When
2135 K12-LTSP abandoned that idea some years ago, I started to look more
2136 seriously into Skolelinux instead.
2137
2138 <p><strong>What do you see as the advantages of Skolelinux/Debian
2139 Edu?</strong></p>
2140
2141 The big point of Skolelinux to me is that it is a complete
2142 distribution, ready to install. It has LDAP-support, MS Windows
2143 integration tools and so forth already configured, saving an
2144 administrator a lot of time and headache. We were using another Linux
2145 based thin-client system called Thinlinc, that has served us very
2146 well. But that Skolelinux is based on VNC and LTSP, to me, is better
2147 when it comes to the kind of multimedia used in schools. That is
2148 showing videos from Youtube or educational TV. It is also easier to
2149 mix thin clients with workstations, since the user settings will be the
2150 same. In our VNC-based solution you had to "beat around the bush" by
2151 setting up a second, hidden, home-directory for user settings for the
2152 workstations, because they will be different from the ones used on the
2153 thin clients. Skolelinux support for diskless workstations are very
2154 convenient since a school today often need to use a class room
2155 projector showing videos in full screen. That is easily done with a
2156 small integrated media computer running as a diskless workstation. You
2157 have only two installs to update and configure. One for the thin
2158 clients and one for the workstations. Also saving a lot of time. Our
2159 old system was also based on Redhat and CentOS. They are both very
2160 nice distributions, but they are sometimes painfully slow when it
2161 comes to updating multimedia support and multimedia programs (even
2162 such as Gimp), leaving us with a bit "oldish" applications. Debian is
2163 quicker to update.
2164
2165 <p><strong>What do you see as the disadvantages of Skolelinux/Debian
2166 Edu?</strong></p>
2167
2168 <p>Debian is a bit too quick when it comes to updating. As an example
2169 we use old HP terminals as thinclients, and two times already this
2170 year (2012) the updates you get from the repositories has stopped
2171 sound from working with them. It's a kernel/ALSA issue. So you have
2172 to be more careful properly testing the updates before you run them in
2173 a production environment. This has never happened with CentOS.</p>
2174
2175 <p>I also would like to be able to set my own domain-settings at
2176 install time. In Skolelinux they are kind of hard coded into the
2177 distribution, when it comes to LDAP and at least samba integration.
2178 That is more a cosmetic/translation issue, and not a real problem.
2179 Running MS Windows applications within the Skolelinux environment needs
2180 to be better supported. That is, running them seamlessly via RDP, and
2181 support for single-sign on. That will make the transition to free
2182 software easier, because you can keep the applications you really
2183 need. No support will make it impossible if you work in a school where
2184 some applications can't be open source. As for us we really need to
2185 run Adobe InDesign in our journalist classes. We run a journalist
2186 education, and is one of the very few non university ones that is ok:d
2187 by Svenska journalistförbundet (Swedish journalist association). Our
2188 education gives the pupils the right of membership there, once they
2189 are done. This is important if you want to get a job.</p>
2190
2191 <p>Adobe InDesign is the program most commonly used in newspapers and
2192 magazines. We used Quark Express before, but they seem to loose there
2193 market to Adobe. The only "equivalent" to InDesign in the opensource
2194 world is Scribus, and its not advanced enough. At least not according
2195 to the teacher. I think it would be possible to use it, because they
2196 are not supposed to learn a program, they are supposed to learn how to
2197 edit and compile a newspaper. But politically at our school we are not
2198 there yet. And Scribus lacks a lot of things you find i InDesign.</p>
2199
2200 <p>We used even a windows program for sound editing when it comes to
2201 the radio-journalist part. The year to come we are going to try
2202 Audacity. That software has the same kind of limitations compared to
2203 Adobe Audition, but that teacher is a bit more open minded. We have
2204 tried Ardour also, but that instead is more like a music studio
2205 program, not intended for the kind of editing taking place in a radio
2206 studio. Its way to complex and the GUI is to scattered when you only
2207 want to cut, make pass-overs, add extra channels and normalise. Those
2208 things you can do in Audacity, but its not as easy as in Audition. You
2209 have to do more things manually with envelopes, and that is a bit old
2210 fashion and timewasting. Its also harder to cut and move sound from
2211 one channel to another, which is a thing that you do frequently
2212 because you often find yourself needing to rearrange parts of the
2213 sound file.</p>
2214
2215 <p>So, I am not sure we will succeed in replacing even Audition, but we
2216 will try. The problem is the students have certain expectations when
2217 they start an education towards a profession. So the programs has to
2218 look and feel professional. Good thing with radio, there are many
2219 programs out there, that radio studios use, so its not as standardised
2220 as Newspaper editing. That means, it does not really matter what
2221 program they learn, because once they start working they still have to
2222 learn the program the studio uses, so instead focus has to be to learn
2223 the editing part without to much focus on a specific software.</p>
2224
2225 <p><strong>Which free software do you use daily?</strong></p>
2226
2227 <p>Myself I'm running Linux Mint, or Ubuntu these days. I use almost
2228 only open source software, and preferably Linux based. When it comes
2229 to most used applications its OpenOffice, and Firefox (of course ;)
2230 )</p>
2231
2232 <p><strong>Which strategy do you believe is the right one to use to
2233 get schools to use free software?</strong></p>
2234
2235 <p>To get schools to use free software there has to be good open
2236 source software that are windows based, to ease the transition. But
2237 it's also very important that the multimedia support is working
2238 flawlessly. The problems with Youtube, Twitter, Facebook and whatever
2239 will create problems when it comes to both teachers and
2240 students. Economy are also important for schools, so using thin
2241 clients, as long as they have good multimedia support, is a very good
2242 idea. It's also important that the open source software works even for
2243 the administration. It's hard to convince the teachers to stick with
2244 open source, if the principal has to run Windows. It also creates a
2245 problem if some classes has to use Windows for there tasks, since that
2246 will create a difference in "status" between classes, so a good
2247 support for running windows applications via the thin client (Linux)
2248 desktop is essential. At least at our school, where we have mixed
2249 level of educations, from high-school to journalist-school.</p>
2250
2251 <p>Update 2012-07-09 08:30: Paul Wise tipped me on IRC about three
2252 useful sources related to Free Software for radio stations: the LWN
2253 article <a href="https://lwn.net/Articles/481607/">Radio station
2254 management with Airtime</a>,
2255 <a href="http://www.sourcefabric.org/en/airtime/">Airtime</a> which
2256 claim to be a Free open source radio automation software and
2257 <a href="http://www.rivendellaudio.org/">Rivendell</a> which claim to
2258 be complete radio broadcast automation solution. All of them seem
2259 useful to the aspiring radio producer.</p>
2260
2261 </div>
2262 <div class="tags">
2263
2264
2265 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>.
2266
2267
2268 </div>
2269 </div>
2270 <div class="padding"></div>
2271
2272 <div class="entry">
2273 <div class="title">
2274 <a href="http://people.skolelinux.org/pere/blog/Why_do_schools_waste_money_on_IT_.html">Why do schools waste money on IT?</a>
2275 </div>
2276 <div class="date">
2277 8th July 2012
2278 </div>
2279 <div class="body">
2280 <p>In the Debian Edu / Skolelinux project, we have realised that one
2281 of the major blockers for the project success is the purchasing skills
2282 in schools and municipalities. We provide what the happy users of
2283 Debian Edu / Skolelinux say they need and to a lower cost than the
2284 alternatives, and yet so few schools decide to use our solution. I
2285 was pleased to discover the same observation done by mySociety and Tom
2286 Steinberg in his blog post
2287 "<a href="http://www.mysociety.org/2012/06/19/can-you-recognize-the-million-pound-chair/">Can
2288 you recognize the million pound chair?</a>". Read it and weep for the
2289 spending of your tax money.</p>
2290
2291 <p>Of course there are other factors involved as well, like our
2292 projects bad marketing skills and the Linux community fragmentation
2293 causing worry with the people on the outside, so we as a project need
2294 to keep working hard to gain users, but it is a up-hill battle when
2295 public decision makers are unable to understand computer system
2296 purchases.</p>
2297
2298 </div>
2299 <div class="tags">
2300
2301
2302 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>.
2303
2304
2305 </div>
2306 </div>
2307 <div class="padding"></div>
2308
2309 <div class="entry">
2310 <div class="title">
2311 <a href="http://people.skolelinux.org/pere/blog/Free_Timetabling_Software___nice_free_software.html">Free Timetabling Software - nice free software</a>
2312 </div>
2313 <div class="date">
2314 7th July 2012
2315 </div>
2316 <div class="body">
2317 <p>Included in <a href="http://www.skolelinux.org/">Debian Edu /
2318 Skolelinux</a> is a large collection of end user and school specific
2319 software. It is one of the packages not installed by default but
2320 provided in the Debian archive for schools to install if they want to,
2321 is a system to automatically plan the school time table using
2322 information about available teachers, classes and rooms, combined with
2323 the list of required courses and how many hours each topic should
2324 receive. The software is
2325
2326 <a href="http://lalescu.ro/liviu/fet/">named FET</a>, and it provide a
2327 graphical user interface to input the required information, save the
2328 result in a fairly simple XML format, and generate time tables for
2329 both teachers and students. It is available both for
2330 <a href="http://lalescu.ro/liviu/fet/download.html">Linux, MacOSX and
2331 Windows</a>.</p>
2332
2333 <p>This is <a href="http://lalescu.ro/liviu/fet/features.html">the
2334 feature list</a>, liftet from the project web site:</p>
2335
2336 <p><ul>
2337
2338 <li>FET is free software, licensed under the GNU GPL v2 or later.
2339 You can freely use, copy, modify and redistribute it </li>
2340
2341 <li>Localized to en_US (US English, default), ar (Arabic), ca
2342 (Catalan), da (Danish), de (German), el (Greek), es (Spanish), fa
2343 (Persian), fr (French), gl (Galician), he (Hebrew), hu
2344 (Hungarian), id (Indonesian), it (Italian), lt (Lithuanian), mk
2345 (Macedonian), ms (Malay), nl (Dutch), pl (Polish), pt_BR
2346 (Brazilian Portuguese), ro (Romanian), ru (Russian), si (Sinhala),
2347 sk (Slovak), sr (Serbian), tr (Turkish), uk (Ukrainian), uz
2348 (Uzbek) and vi (Vietnamese) (incompletely for some languages)
2349 </li>
2350
2351 <li>Fully automatic generation algorithm, allowing also
2352 semi-automatic or manual allocation</li>
2353
2354 <li>Platform independent implementation, allowing running on
2355 GNU/Linux, Windows, Mac and any system that Qt supports </li>
2356
2357 <li>Flexible modular XML format for the input file, allowing editing
2358 with an XML editor or by hand (besides FET interface)</li>
2359
2360 <li>Import/export from CSV format</li>
2361
2362 <li>The resulted timetables are exported into HTML, XML and CSV
2363 formats </li>
2364
2365 <li>Flexible students structure, organized into sets: years, groups
2366 and subgroups. FET allows overlapping years and groups and
2367 non-overlapping subgroups. You can even define individual students
2368 (as separate sets)</li>
2369
2370 <li>Each constraint has a weight percentage, from 0.0% to 100.0%
2371 (but some special constraints are allowed to have only 100% weight
2372 percentage)</li>
2373
2374 <li>Limits for the algorithm (all these limits can be increased on
2375 demand, as a custom version, because this would require a bit more
2376 memory):
2377 <ul>
2378 <li>Maximum total number of hours (periods) per day: 60</li>
2379 <li>Maximum number of working days per week: 35</li>
2380 <li>Maximum total number of teachers: 6000</li>
2381 <li>Maximum total number of sets of students: 30000</li>
2382 <li>Maximum total number of subjects: 6000</li>
2383 <li>Virtually unlimited number of activity tags</li>
2384 <li>Maximum number of activities: 30000</li>
2385 <li>Maximum number of rooms: 6000</li>
2386 <li>Maximum number of buildings: 6000</li>
2387 <li>Possibility of adding multiple teachers and
2388 students sets for each activity. (it is possible
2389 also to have no teachers or no students sets for an
2390 activity)</li>
2391 <li>Virtually unlimited number of time constraints</li>
2392 <li>Virtually unlimited number of space constraints</li>
2393 </ul></li>
2394
2395 <li>A large and flexible palette of time constraints:
2396 <ul>
2397 <li>Break periods</li>
2398 <li>For teacher(s):
2399 <ul>
2400 <li>Not available periods</li>
2401 <li>Max/min days per week</li>
2402 <li>Max gaps per day/week</li>
2403 <li>Max hours daily/continuously</li>
2404 <li>Min hours daily</li>
2405 <li>Max hours daily/continuously with an activity tag</li>
2406
2407 <li>Respect working in an hourly interval a max number of
2408 days per week</li>
2409 </ul></li>
2410 <li>For students (sets):
2411 <ul>
2412 <li>Not available periods</li>
2413 <li>Begins early (specify max allowed beginnings at second hour)</li>
2414 <li>Max gaps per day/week</li>
2415 <li>Max hours daily/continuously</li>
2416 <li>Min hours daily</li>
2417 <li>Max hours daily/continuously with an activity tag</li>
2418
2419 <li>Respect working in an hourly interval a max number of
2420 days per week</li>
2421 </ul></li>
2422 <li>For an activity or a set of activities/subactivities:
2423 <ul>
2424 <li>A single preferred starting time</li>
2425 <li>A set of preferred starting times</li>
2426 <li>A set of preferred time slots</li>
2427 <li>Min/max days between them</li>
2428 <li>End(s) students day</li>
2429 <li>Same starting time/day/hour</li>
2430 <li>Occupy max time slots from selection (a complex and
2431 flexible constraint, useful in many situations)</li>
2432 <li>Consecutive, ordered, grouped (for 2 or 3 (sub)activities)</li>
2433 <li>Not overlapping</li>
2434 <li>Max simultaneous in selected time slots</li>
2435 <li>Min gaps between a set of (sub)activities</li>
2436 </ul></li>
2437 </ul></li>
2438
2439 <li>A large and flexible palette of space constraints:
2440 <ul>
2441 <li>Room not available periods</li>
2442 <li>For teacher(s):
2443 <ul>
2444 <li>Home room(s)</li>
2445 <li>Max building changes per day/week</li>
2446 <li>Min gaps between building changes</li>
2447 </ul>
2448 </li>
2449
2450 <li>For students (sets):
2451 <ul>
2452 <li>Home room(s)</li>
2453 <li>Max building changes per day/week</li>
2454 <li>Min gaps between building changes</li>
2455 </ul>
2456 </li>
2457 <li>Preferred room(s):
2458 <ul>
2459 <li>For a subject</li>
2460 <li>For an activity tag</li>
2461 <li>For a subject and an activity tag</li>
2462 <li>Individually for a (sub)activity</li>
2463 </ul>
2464 </li>
2465
2466 <li>For a set of activities:
2467 <ul>
2468 <li>Occupy a maximum number of different rooms</li>
2469 </ul>
2470 </li>
2471 </ul>
2472 </li>
2473 </ul></p>
2474
2475 <p>I have not used it myself, as I am not involved in time table
2476 planning at a school, but it seem to work fine when I test it. If you
2477 need to set up your schools time table, and is tired of doing it
2478 manually, check it out.
2479
2480 A quick summary on how to use it can be found in
2481 <a href="http://marvelsoft.co.in/wp/2012/03/generate-timetable-for-state-cbse-icse-igcse-schools-free/">a
2482 blog post from MarvelSoft</a>. If you find FET useful, please provide
2483 a recipe for the Debian Edu project in the
2484 <a href="http://wiki.debian.org/DebianEdu#Howtos">Debian Edu HowTo
2485 section</a>.</p>
2486
2487 </div>
2488 <div class="tags">
2489
2490
2491 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>.
2492
2493
2494 </div>
2495 </div>
2496 <div class="padding"></div>
2497
2498 <div class="entry">
2499 <div class="title">
2500 <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>
2501 </div>
2502 <div class="date">
2503 3rd July 2012
2504 </div>
2505 <div class="body">
2506 <p>In the NUUG <a href="http://www.fiksgatami.no/">FiksGataMi</a>
2507 project (Norwegian version of
2508 <a href="http://www.fixmystreet.com/">FixMyStreet</a> from
2509 <a href="http://www.mysociety.org/">mySociety</a>), we have discovered
2510 a problem with the municipalities using
2511 <a href="http://www.zimbra.com/">Zimbra</a>. When FiksGataMi send a
2512 problem report to the government, the email From: address is set to
2513 the address of the person reporting the problem, while envelope sender
2514 is set to the FiksGataMi contact address. The intention is to make
2515 sure the municipality send any replies to the person reporting the
2516 problem, while any email delivery problems are sent to us in NUUG.
2517 This work well in most cases, but not for Karmøy municipality using
2518 Zimbra. Karmøy is using the vacation message function in Zimbra to
2519 send an automatic reply to report that the message has been received,
2520 and this message is sent to the envelope sender and not the address in
2521 the From: header.</p>
2522
2523 <p>This causes the automatic message from Karmøy to go to NUUGs
2524 request-tracker instance instead of to the person reporting the
2525 problem. We can not really change the envelope sender address, as
2526 this would make it impossible for us to discover when there are
2527 problems with the MTAs receiving problem reports. We have been in
2528 contact with the people at Karmøy municipality, and they are willing
2529 to adjust Zimbra if something can be changed there to get a better
2530 behaviour.</p>
2531
2532 <p>The default behaviour of Zimbra is as far as I can tell according
2533 to the specification in RFC 3834, which recommend that vacation
2534 messages are sent to the envelope sender and not to the From: address.
2535 But I wonder if it is possible to adjust or configure Zimbra to behave
2536 differently. Anyone know? Please let us know at
2537 <a href="http://lists.nuug.no/mailman/listinfo/fiksgatami">fiksgatami
2538 (at) nuug.no</a>.</p>
2539
2540 </div>
2541 <div class="tags">
2542
2543
2544 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>.
2545
2546
2547 </div>
2548 </div>
2549 <div class="padding"></div>
2550
2551 <div class="entry">
2552 <div class="title">
2553 <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>
2554 </div>
2555 <div class="date">
2556 26th June 2012
2557 </div>
2558 <div class="body">
2559 <p>I've been too busy at home, but finally I found time to wrap up
2560 another interview with the people behind
2561 <a href="http://www.skolelinux.org/">Debian Edu and Skolelinux</a>.
2562 This time we get to know José Luis Redrejo Rodríguez, one of our great
2563 helpers from Spain. His effort was the reason we added support for
2564 several desktop types (KDE, Gnome and most recently LXDE) in Debian
2565 Edu, and have all of these available in the recently published
2566 <a href="http://www.debian.org/News/2012/20120311.html">Debian Edu
2567 Squeeze</a> version.</p>
2568
2569 <p><strong>Who are you, and how do you spend your days?</strong></p>
2570
2571 <p>I'm a father, teacher and engineer who is working for the Education
2572 ministry of the Region of Extremadura (Spain) in the implementation of
2573 ICT in schools</p>
2574
2575 <p><strong>How did you get in contact with the Skolelinux/Debian Edu
2576 project?</strong></p>
2577
2578 <p>At 2006, I verified that both, we in Extremadura and Skolelinux
2579 project, had been working in parallel for some years, doing very
2580 similar things, using very similar tools and with similar targets, so
2581 I decided it was time to join forces as much as possible.</p>
2582
2583 <p><strong>What do you see as the advantages of Skolelinux/Debian
2584 Edu?</strong></p>
2585
2586 <p>A community of highly skilled experts working together, with a
2587 really open schema of collaboration and work. I really love the
2588 concepts of Do-ocracy and Merit-ocracy and the way these concepts are
2589 been used everyday inside Debian Edu.</p>
2590
2591 <p><strong>What do you see as the disadvantages of Skolelinux/Debian
2592 Edu?</strong></p>
2593
2594 <p>Sometimes the differences in the implementations, laws or
2595 economical and technical resources in the different countries don't
2596 allow us to agree in the same solution for all of us, and several
2597 approaches are needed, what is a waste of effort. Also, there is a
2598 lack of more man power to be able to follow the fast evolution of the
2599 technologies in school.</p>
2600
2601 <p><strong>Which free software do you use daily?</strong></p>
2602
2603 <p>Debian, of course, and due to my kind of job I am most of my time
2604 between Iceweasel, <a href="http://www.geany.org/">Geany</a> and
2605 <a href="http://www.ohloh.net/p/gnome-terminator">Terminator</a>.</p>
2606
2607 <p><strong>Which strategy do you believe is the right one to use to
2608 get schools to use free software?</strong></p>
2609
2610 <p>I think there is not a single strategy because there are very
2611 different scenarios: schools with mixed proprietary and free
2612 environments, schools using only workstations, other schools using
2613 laptops, netbooks, tablets, interactive white-boards, etc.</p>
2614
2615 <p>Also the range of ages of the students is very broad and you can
2616 not use the same solutions for primary schools and secondary or even
2617 universities. So different strategies are needed.</p>
2618
2619 <p>But, looking at these differences, and looking back to the things
2620 we've done and implemented, and the places were we have spent most of
2621 our forces, I think we should focus as much as possible in free
2622 multi-platform environments, using only standards tools, and moving
2623 more and more to Internet or network solutions that could be deployed
2624 using wireless. I think we'll see more and more personal devices in
2625 the schools, devices the students and teachers will take home with
2626 them, so the solutions must be able to be taken at home and continue
2627 working there.</p>
2628
2629 </div>
2630 <div class="tags">
2631
2632
2633 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>.
2634
2635
2636 </div>
2637 </div>
2638 <div class="padding"></div>
2639
2640 <div class="entry">
2641 <div class="title">
2642 <a href="http://people.skolelinux.org/pere/blog/Song_book_for_Computer_Scientists.html">Song book for Computer Scientists</a>
2643 </div>
2644 <div class="date">
2645 24th June 2012
2646 </div>
2647 <div class="body">
2648 <p>Many years ago, while studying Computer Science at the
2649 <a href="http://www.uit.no/">University of Tromsø</a>, I started
2650 collecting computer related songs for use at parties. The original
2651 version was written in LaTeX, but a few years ago I got help from
2652 Håkon W. Lie, one of the inventors of W3C CSS, to convert it to HTML
2653 while keeping the ability to create a nice book in PDF format. I have
2654 not had time to maintain the book for a while now, and guess I should
2655 put it up on some public version control repository where others can
2656 help me extend and update the book. If anyone is volunteering to help
2657 me with this, send me an email. Also let me know if there are songs
2658 missing in my book.</p>
2659
2660 <p>I have not mentioned the book on my blog so far, and it occured to
2661 me today that I really should let all my readers share the joys of
2662 singing out load about programming, computers and computer networks.
2663 Especially now that <a href="http://debconf12.debconf.org/">Debconf
2664 12</a> is about to start (and I am not going). Want to sing? Check
2665 out <a href="http://www.hungry.com/~pere/cs-songbook/">Petter's
2666 Computer Science Songbook</a>.
2667
2668 </div>
2669 <div class="tags">
2670
2671
2672 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>.
2673
2674
2675 </div>
2676 </div>
2677 <div class="padding"></div>
2678
2679 <div class="entry">
2680 <div class="title">
2681 <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>
2682 </div>
2683 <div class="date">
2684 11th June 2012
2685 </div>
2686 <div class="body">
2687 <p>During my work on
2688 <a href="http://www.debian.org/News/2012/20120311.nb.html">Debian Edu
2689 based on Squeeze</a>, I came across some issues that should be
2690 addressed in the Wheezy release. I finally found time to wrap up my
2691 notes and provide quick summary of what I found, with a bit
2692 explanation.</p>
2693
2694 <p><ul>
2695
2696 <li>We need to rewrite our package installation framework, as tasksel
2697 changed from using tasksel tasks to using meta packages (aka packages
2698 with dependencies like our education-* packages), and our installation
2699 system depend on tasksel tasks in
2700 /usr/share/tasksel/debian-edu-tasks.desc for package
2701 installation.</li>
2702
2703 <li>Enable Kerberos login for more services. Now with the Kerberos
2704 foundation in place, we should use it to get single sign on with more
2705 services, and avoiding unneeded password / login questions. We should
2706 at least try to enable it for these services:
2707 <ul>
2708
2709 <li>CUPS for admins to add/configure printers and users when using
2710 quotas.</li>
2711 <li>Nagios for admins checking the system status.</li>
2712 <li>GOsa for admins updating LDAP and users changing their passwords.</li>
2713 <li>LDAP for admins updating LDAP.</li>
2714 <li>Squid for users when exam mode / filtering is active.</li>
2715 <li>ssh for admins and users to save a password prompt.</li>
2716
2717 </ul></li>
2718
2719 <li>When we move GOsa to use Kerberos instead of LDAP bind to
2720 authenticate users, we should try to block or at least limit access to
2721 use LDAP bind for authentication, to ensure Kerberos is used when it
2722 is intended, and nothing fall back to using the less safe LDAP bind</li>
2723
2724 <li>Merge debian-edu-config and debian-edu-install. The split made
2725 sense when d-e-install did a lot more, but these days it is just an
2726 inconvenience when we update the debconf preseeding values.</li>
2727
2728 <li>Fix partman-auto to allow us to abort the installation before
2729 touching the disk if the disk is too small. This is
2730 <a href="http://bugs.debian.org/653305">BTS report #653305</a> and the
2731 d-i developers are fine with the patch and someone just need to apply
2732 it and upload. After this is done we need to adjust
2733 debian-edu-install to use this new hook.</li>
2734
2735 <li>Adjust to new LTSP framework (boot time config instead of install
2736 time config). LTSP changed its design, and our hooks to install
2737 packages and update the configuration is most likely not going to work
2738 in Wheezy.
2739
2740 <li>Consider switching to NBD instead of NFS for LTSP root, to allow
2741 the Kernel to cache files in its normal file cache, possibly speeding
2742 up KDE login on slow networks.</li>
2743
2744 <li>Make it possible to create expired user passwords that need to
2745 change on first login. This is useful when handing out password on
2746 paper, to make sure only the user know the password. This require
2747 fixes to the PAM handling of kdm and gdm.</li>
2748
2749 <li>Make GUI for adding new machines automatically from sitesummary.
2750 The current command line script is not very friendly to people most
2751 familiar with GUIs. This should probably be integrated into GOsa to
2752 have it available where the admin will be looking for it..</li>
2753
2754 <li>We should find way for Nagios to check that the DHCP service
2755 actually is working (as in handling out IP addresses). None of the
2756 Nagios checks I have found so far have been working for me.</li>
2757
2758 <li>We should switch from libpam-nss-ldapd to sssd for all profiles
2759 using LDAP, and not only on for roaming workstations, to have less
2760 packages to configure and consistent setup across all profiles.</li>
2761
2762 <li>We should configure Kerberos to update LDAP and Samba password
2763 when changing password using the Kerberos protocol. The hook was
2764 requested in <a href="http://bugs.debian.org/588968">BTS report
2765 #588968</a> and is now available in Wheezy. We might need to write a
2766 MIT Kerberos plugin in C to get this.</li>
2767
2768 <li>We should clean up the set of applications installed by default.
2769 <ul>
2770
2771 <li>reduce the number of chemistry visualisers</li>
2772 <li>consider dropping xpaint</li>
2773 <li>and probably more?</li>
2774 </ul></li>
2775
2776 <li>Some hardware need external firmware to work properly. This is
2777 mostly the case for WiFi network cards, but there are some other
2778 examples too. For popular laptops to work out of the box, such
2779 firmware need to be installed from non-free, and we should provide
2780 some GUI to do this. Ubuntu already have this implemented, and we
2781 could consider using their packages. At the moment we have some
2782 command line script to do this (one for the running system, another
2783 for the LTSP chroot).</li>
2784
2785
2786 <li>In Squeeze, we provide KDE, Gnome and LXDE as desktop options. We
2787 should extend the list to Xfce and Sugar, and preferably find a way to
2788 install several and allow the admin or the user to select which one to
2789 use.</li>
2790
2791 <li>The golearn tool from the goplay package make it easy to check out
2792 interesting educational packages. We should work on the package
2793 tagging in Debian to ensure it represent all the useful educational
2794 packages, and extend the tool to allow it to use packagekit to install
2795 new applications with a simple mouse click.</li>
2796
2797 <li>The Squeeze version got half a exam solution already in place,
2798 with the introduction of iptable based network blocking, but for it to
2799 be a complete exam solution the Squid proxy need to enable
2800 filtering/blocking as well when the exam mode is enabled. We should
2801 implement a way to easily enable this for the schools that want it,
2802 instead of the "it is documented" method of today.</li>
2803
2804 <li>A feature used in several schools is the ability for a teacher to
2805 "take over" the desktop of individual or all computers in the room.
2806 There are at least three implementations,
2807 <a href="italc.sourceforge.net/">italc</a>,
2808 <a href="http://www.itais.net/help/en/">controlaula</a> og
2809 <a href="http://www.epoptes.org/">epoptes</a> and we should pick one of
2810 them and make it trivial to set it up in a school. The challenges is
2811 how to distribute crypto keys and how to group computers in one room
2812 and how to set up which machine/user can control the machines in a
2813 given room.</li>
2814
2815 <li>Tablets and surf boards are getting more and more popular, and we
2816 should look into providing a good solution for integrating these into
2817 the Debian Edu network. Not quite sure how. Perhaps we should
2818 provide a installation profile with better touch screen support for
2819 them, or add some sync services to allow them to exchange
2820 configuration and data with the central server. This should be
2821 investigated.</li>
2822
2823 </ul></p>
2824
2825 <p>I guess we will discover more as we continue to work on the Wheezy
2826 version.</p>
2827
2828 </div>
2829 <div class="tags">
2830
2831
2832 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>.
2833
2834
2835 </div>
2836 </div>
2837 <div class="padding"></div>
2838
2839 <div class="entry">
2840 <div class="title">
2841 <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>
2842 </div>
2843 <div class="date">
2844 9th June 2012
2845 </div>
2846 <div class="body">
2847 <p>Slashdot got a story about Intel planning a
2848 <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
2849 with face recognition</a> to recognise the viewer, and it occurred to
2850 me that it would be more interesting to turn it around, and do face
2851 recognition on the TV image itself. It could let the viewer know who
2852 is present on the screen, and perhaps look up their credibility,
2853 company affiliation, previous appearances etc for the viewer to better
2854 evaluate what is being said and done. That would be a feature I would
2855 be willing to pay for.</p>
2856
2857 <p>I would not be willing to pay for a TV that point a camera on my
2858 household, like the big brother feature apparently proposed by Intel.
2859 It is the telescreen idea fetched straight out of the book
2860 <a href="http://gutenberg.net.au/ebooks01/0100021.txt">1984 by George
2861 Orwell</a>.</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/surveillance">surveillance</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/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>
2877 </div>
2878 <div class="date">
2879 6th June 2012
2880 </div>
2881 <div class="body">
2882 <p>A few days ago
2883 <a href="http://people.skolelinux.org/pere/blog/SOAP_based_webservice_from_Dell_to_check_server_support_status.html">I
2884 reported how to get</a> the support status out of Dell using an
2885 unofficial and undocumented SOAP API, which I since have found out was
2886 <a href="http://lists.us.dell.com/pipermail/linux-poweredge/2012-February/045959.html">discovered
2887 by Daniel De Marco in february</a>. Combined with my web scraping
2888 code for HP, Dell and IBM
2889 <a href="http://people.skolelinux.org/pere/blog/Checking_server_hardware_support_status_for_Dell__HP_and_IBM_servers.html">from
2890 2009</a>, I got inspired and wrote
2891 <a href="https://views.scraperwiki.com/run/computer-hardware-support-status/">a
2892 web service</a> based on Scraperwiki to make it easy to look up the
2893 support status and get a machine readable result back.</p>
2894
2895 <p>This is what it look like at the moment when asking for the JSON
2896 output:
2897
2898 <blockquote><pre>
2899 % 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>
2900 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": ""})
2901 %
2902 </pre></blockquote>
2903
2904 <p>It currently support Dell and HP, and I am hoping for help to add
2905 support for other vendors. The python source is available on
2906 Scraperwiki and I welcome help with adding more features.</p>
2907
2908 </div>
2909 <div class="tags">
2910
2911
2912 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>.
2913
2914
2915 </div>
2916 </div>
2917 <div class="padding"></div>
2918
2919 <div class="entry">
2920 <div class="title">
2921 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Mike_Gabriel.html">Debian Edu interview: Mike Gabriel</a>
2922 </div>
2923 <div class="date">
2924 2nd June 2012
2925 </div>
2926 <div class="body">
2927 <p>Back in 2010, Mike Gabriel showed up on the
2928 <a href="http://www.skolelinux.org/">Debian Edu and Skolelinux</a>
2929 mailing list. He quickly proved to be a valuable developer, and
2930 thanks to his tireless effort we now have Kerberos integrated into the
2931 <a href="http://www.debian.org/News/2012/20120311.html">Debian Edu
2932 Squeeze</a> version.</p>
2933
2934 <p><strong>Who are you, and how do you spend your days?</strong></p>
2935
2936 <p>My name is Mike Gabriel, I am 38 years old and live near Kiel,
2937 Schleswig-Holstein, Germany. I live together with a wonderful partner
2938 (Angela Fuß) and two own children and two bonus children (contributed
2939 by Angela).</p>
2940
2941 <p>During the day I am part-time employed as a system administrator
2942 and part-time working as an IT consultant. The consultancy work
2943 touches free software topics wherever and whenever possible. During
2944 the nights I am a free software developer. In the gaps I also train in
2945 becoming an osteopath.</p>
2946
2947 <p>Starting in 2010 we (Andreas Buchholz, Angela Fuß, Mike Gabriel)
2948 have set up a free software project in the area of Kiel that aims at
2949 introducing free software into schools. The project's name is
2950 "IT-Zukunft Schule" (IT future for schools). The project links IT
2951 skills with communication skills.</p>
2952
2953 <p><strong>How did you get in contact with the Skolelinux/Debian Edu
2954 project?</strong></p>
2955
2956 <p>While preparing our own customised Linux distribution for
2957 "IT-Zukunft Schule" we were repeatedly asked if we really wanted to
2958 reinvent the wheel. What schools really need is already available,
2959 people said. From this impulse we started evaluating other Linux
2960 distributions that target being used for school networks.</p>
2961
2962 <p>At the end we short-listed two approaches and compared them: a
2963 commercial Linux distribution developed by a company in Bremen,
2964 Germany, and Skolelinux / Debian Edu. Between 12/2010 and 03/2011 we
2965 went to several events and met people being responsible for marketing
2966 and development of either of the distributions. Skolelinux / Debian
2967 Edu was by far much more convincing compared to the other product that
2968 got short-listed beforehand--across the full spectrum. What was most
2969 attractive for me personally: the perspective of collaboration within
2970 the developmental branch of the Debian Edu project itself.</p>
2971
2972 <p>In parallel with this, we talked to many local and not-so-local
2973 people. People teaching at schools, headmasters, politicians, data
2974 protection experts, other IT professionals.</p>
2975
2976 <p>We came to two conclusions:</p>
2977
2978 <p>First, a technical conclusion: What schools need is available in
2979 bits and pieces here and there, and none of the solutions really fit
2980 by 100%. Any school we have seen has a very individual IT setup
2981 whereas most of each school's requirements could mapped by a standard
2982 IT solution. The requirement to this IT solution is flexibility and
2983 customisability, so that individual adaptations here and there are
2984 possible. In terms of re-distributing and rolling out such a
2985 standardised IT system for schools (a system that is still to some
2986 degree customisable) there is still a lot of work to do here
2987 locally. Debian Edu / Skolelinux has been our choice as the starting
2988 point.</p>
2989
2990 <p>Second, a holistic conclusion: What schools need does not exist at
2991 all (or we missed it so far). There are several technical solutions
2992 for handling IT at schools that tend to make a good impression. What
2993 has been missing completely here in Germany, though, is the enrolment
2994 of people into using IT and teaching with IT. "IT-Zukunft Schule"
2995 tries to provide an approach for this.</p>
2996
2997 <p>Only some schools have some sort of a media concept which explains,
2998 defines and gives guidance on how to use IT in class. Most schools in
2999 Northern Germany do not have an IT service provider, the school's IT
3000 equipment is managed by one or (if the school is lucky) two (admin)
3001 teachers, most of the workload these admin teachers get done in there
3002 spare time.</p>
3003
3004 <p>We were surprised that only a very few admin teachers were
3005 networked with colleagues from other schools. Basically, every school
3006 here around has its individual approach of providing IT equipment to
3007 teachers and students and the exchange of ideas has been quasi
3008 non-existent until 2010/2011.</p>
3009
3010 <p>Quite some (non-admin) teachers try to avoid using IT technology in
3011 class as a learning medium completely. Several reasons for this
3012 avoidance do exist.</p>
3013
3014 <p>We discovered that no-one has ever taken a closer look at this
3015 social part of IT management in schools, so far. On our quest journey
3016 for a technical IT solution for schools, we discussed this issue with
3017 several teachers, headmasters, politicians, other IT professionals and
3018 they all confirmed: a holistic approach of considering IT management
3019 at schools, an approach that includes the people in place, will be new
3020 and probably a gain for all.</p>
3021
3022 <p><strong>What do you see as the advantages of Skolelinux/Debian
3023 Edu?</strong></p>
3024
3025 <p>There is a list of advantages: international context, openness to
3026 any kind of contributions, do-ocracy policy, the closeness to Debian,
3027 the different installation scenarios possible (from stand-alone
3028 workstation to complex multi-server sites), the transparency within
3029 project communication, honest communication within the group of
3030 developers, etc.</p>
3031
3032 <p><strong>What do you see as the disadvantages of Skolelinux/Debian
3033 Edu?</strong></p>
3034
3035 <p>Every coin has two sides:</p>
3036
3037 <p>Technically: <a href="http://bugs.debian.org/311188">BTS issue
3038 #311188</a>, tricky upgradability of a Debian Edu main server, network
3039 client installations on top of a plain vanilla Debian installation
3040 should become possible sometime in the near future, one could think
3041 about splitting the very complex package debian-edu-config into
3042 several portions (to make it easier for new developers to
3043 contribute).</p>
3044
3045 <p>Another issue I see is that we (as Debian Edu developers) should
3046 find out more about the network of people who do the marketing for
3047 Debian Edu / Skolelinux. There is a very active group in Germany
3048 promoting Skolelinux on the bigger Linux Days within Germany. Are
3049 there other groups like that in other countries? How can we bring
3050 these marketing people together (marketing group A with group B and
3051 all of them with the group of Debian Edu developers)? During the last
3052 meeting of the German Skolelinux group, I got the impression of people
3053 there being rather disconnected from the development department of
3054 Debian Edu / Skolelinux.</p>
3055
3056 <p><strong>Which free software do you use daily?</strong></p>
3057
3058 <p>For my daily business, I do not use commercial software at all.</p>
3059
3060 <p>For normal stuff I use Iceweasel/Firefox, Libreoffice.org. For
3061 serious text writing I prefer LaTeX. I use gimp, inkscape, scribus for
3062 more artistic tasks. I run virtual machines in KVM and Virtualbox.</p>
3063
3064 <p>I am one of the upstream developers of X2Go. In 2010 I started the
3065 development of a Python based X2Go Client, called PyHoca-GUI.
3066 PyHoca-GUI has brought forth a Python X2Go Client API that currently
3067 is being integrated in Ubuntu's software center.</p>
3068
3069 <p>For communications I have my own Kolab server running using Horde
3070 as web-based groupware client. For IRC I love to use irssi, for Jabber
3071 I have several clients that I use, mostly pidgin, though. I am also
3072 the Debian maintainer of Coccinella, a Jabber-based interactive
3073 whiteboard.</p>
3074
3075 <p>My favourite terminal emulator is KDE's Yakuake.</p>
3076
3077 <p><strong>Which strategy do you believe is the right one to use to
3078 get schools to use free software?</strong></p>
3079
3080 <p>Communicate, communicate, communicate. Enrol people, enrol people,
3081 enrol people.</p>
3082
3083 </div>
3084 <div class="tags">
3085
3086
3087 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>.
3088
3089
3090 </div>
3091 </div>
3092 <div class="padding"></div>
3093
3094 <div class="entry">
3095 <div class="title">
3096 <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>
3097 </div>
3098 <div class="date">
3099 1st June 2012
3100 </div>
3101 <div class="body">
3102 <p>A few years ago I wrote
3103 <a href="http://people.skolelinux.org/pere/blog/Checking_server_hardware_support_status_for_Dell__HP_and_IBM_servers.html">how
3104 to extract support status</a> for your Dell and HP servers. Recently
3105 I have learned from colleges here at the
3106 <a href="http://www.uio.no/">University of Oslo</a> that Dell have
3107 made this even easier, by providing a SOAP based web service. Given
3108 the service tag, one can now query the Dell servers and get machine
3109 readable information about the support status. This perl code
3110 demonstrate how to do it:</p>
3111
3112 <p><pre>
3113 use strict;
3114 use warnings;
3115 use SOAP::Lite;
3116 use Data::Dumper;
3117 my $GUID = '11111111-1111-1111-1111-111111111111';
3118 my $App = 'test';
3119 my $servicetag = $ARGV[0] or die "Please supply a servicetag. $!\n";
3120 my ($deal, $latest, @dates);
3121 my $s = SOAP::Lite
3122 -> uri('http://support.dell.com/WebServices/')
3123 -> on_action( sub { join '', @_ } )
3124 -> proxy('http://xserv.dell.com/services/assetservice.asmx')
3125 ;
3126 my $a = $s->GetAssetInformation(
3127 SOAP::Data->name('guid')->value($GUID)->type(''),
3128 SOAP::Data->name('applicationName')->value($App)->type(''),
3129 SOAP::Data->name('serviceTags')->value($servicetag)->type(''),
3130 );
3131 print Dumper($a -> result) ;
3132 </pre></p>
3133
3134 <p>The output can look like this:</p>
3135
3136 <p><pre>
3137 $VAR1 = {
3138 'Asset' => {
3139 'Entitlements' => {
3140 'EntitlementData' => [
3141 {
3142 'EntitlementType' => 'Expired',
3143 'EndDate' => '2009-07-29T00:00:00',
3144 'Provider' => '',
3145 'StartDate' => '2006-07-29T00:00:00',
3146 'DaysLeft' => '0'
3147 },
3148 {
3149 'EntitlementType' => 'Expired',
3150 'EndDate' => '2009-07-29T00:00:00',
3151 'Provider' => '',
3152 'StartDate' => '2006-07-29T00:00:00',
3153 'DaysLeft' => '0'
3154 },
3155 {
3156 'EntitlementType' => 'Expired',
3157 'EndDate' => '2007-07-29T00:00:00',
3158 'Provider' => '',
3159 'StartDate' => '2006-07-29T00:00:00',
3160 'DaysLeft' => '0'
3161 }
3162 ]
3163 },
3164 'AssetHeaderData' => {
3165 'SystemModel' => 'GX620',
3166 'ServiceTag' => '8DSGD2J',
3167 'SystemShipDate' => '2006-07-29T19:00:00-05:00',
3168 'Buid' => '2323',
3169 'Region' => 'Europe',
3170 'SystemID' => 'PLX_GX620',
3171 'SystemType' => 'OptiPlex'
3172 }
3173 }
3174 };
3175 </pre></p>
3176
3177 <p>I have not been able to find any documentation from Dell about this
3178 service outside the
3179 <a href="http://xserv.dell.com/services/assetservice.asmx?op=GetAssetInformation">inline
3180 documentation</a>, and according to
3181 <a href="http://iboyd.net/index.php/2012/02/14/updated-dell-warranty-information-script/">one
3182 comment</a> it can have stability issues, but it is a lot better than
3183 scraping HTML pages. :)</p>
3184
3185 <p>Wonder if HP and other server vendors have a similar service. If
3186 you know of one, drop me an email. :)</p>
3187
3188 </div>
3189 <div class="tags">
3190
3191
3192 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>.
3193
3194
3195 </div>
3196 </div>
3197 <div class="padding"></div>
3198
3199 <div class="entry">
3200 <div class="title">
3201 <a href="http://people.skolelinux.org/pere/blog/First_monitor_calibration_using_ColorHug.html">First monitor calibration using ColorHug</a>
3202 </div>
3203 <div class="date">
3204 31st May 2012
3205 </div>
3206 <div class="body">
3207 <p>A few days ago my color calibration gadget
3208 <a href="http://www.hughski.com/index.html">ColorHug</a> arrived in the
3209 mail, and I've had a few days to test it. As all my machines are
3210 running Debian Squeeze, where
3211 <a href="http://packages.qa.debian.org/c/colorhug-client.html">the
3212 calibration software</a> is missing (it is present in Wheezy and Sid),
3213 I ran the calibration using the Fedora based live CD. This worked
3214 just fine. So far I have only done the quick calibration. It was
3215 slow enough for me, so I will leave the more extensive calibration for
3216 another day.</p>
3217
3218 <p>After calibration, I get a
3219 <a href="http://en.wikipedia.org/wiki/ICC_profile">ICC color
3220 profile</a> file that can be passed to programs understanding such
3221 tools. KDE do not seem to understand it out of the box, so I searched
3222 for command line tools to use to load the color profile into X.
3223 xcalib was the first one I found, and it seem to work fine for single
3224 monitor setups. But for my video player, a laptop with a flat screen
3225 attached, it was unable to load the color profile for the correct
3226 monitor. After searching a bit, I
3227 <a href="http://ubuntuforums.org/showthread.php?t=1347896">discovered</a>
3228 that the dispwin tool from the argyll package would do what I wanted,
3229 and a simple</p>
3230
3231 <p><pre>
3232 dispwin -d 1 profile.icc
3233 </pre></p>
3234
3235 <p>later I had the color profile loaded for the correct monitor. The
3236 result was a bit more pink than I expected. I guess I picked the
3237 wrong monitor type for the "led" monitor I got, but the result is good
3238 enough for now.</p>
3239
3240 </div>
3241 <div class="tags">
3242
3243
3244 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
3245
3246
3247 </div>
3248 </div>
3249 <div class="padding"></div>
3250
3251 <div class="entry">
3252 <div class="title">
3253 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Ralf_Gesellensetter.html">Debian Edu interview: Ralf Gesellensetter</a>
3254 </div>
3255 <div class="date">
3256 27th May 2012
3257 </div>
3258 <div class="body">
3259 <p>In 2003, a German teacher showed up on the
3260 <a href="http://www.skolelinux.org/">Debian Edu and Skolelinux</a>
3261 mailing list with interesting problems and reports proving he setting
3262 up Linux for a (for us at the time) lot of pupils. His name was Ralf
3263 Gesellensetter, and he has been an important tester and contributor
3264 since then, helping to make sure the
3265 <a href="http://www.debian.org/News/2012/20120311.html">Debian Edu
3266 Squeeze</a> release became as good as it is..</p>
3267
3268 <p><strong>Who are you, and how do you spend your days?</strong></p>
3269
3270 <p>I am a teacher from Germany, and my subjects are Geography,
3271 Mathematics, and Computer Science ("Informatik"). During the past 12
3272 years (since 2000), I have been working for a comprehensive (and soon,
3273 also inclusive) school leading to all kind of general levels, such as
3274 O- or A-level ("Abitur"). For quite as long, I've been taking care of
3275 our computer network.</p>
3276
3277 <p>Now, in my early 40s, I enjoy the privilege of spending a lot of my
3278 spare time together with my wife, our son (3 years) and our daughter
3279 (4 months).</p>
3280
3281 <p><strong>How did you get in contact with the Skolelinux/Debian Edu
3282 project?</strong></p>
3283
3284 <p>We had tried different Linux based school servers, when members of
3285 my local Linux User Group (LUG OWL) detected Skolelinux. I remember
3286 very well, being part of a party celebrating the Linux New Media Award
3287 ("Best Newcomer Distribution", also nominated: Ubuntu) that was given
3288 to Skolelinux at Linux World Exposition in Frankfurt, 2005 (IIRC). Few
3289 months later, I had the chance to join a developer meeting in Ulsrud
3290 (Oslo) and to hand out the award to Knut Yrvin and others. For more
3291 than 7 years, Skolelinux is part of our schools infrastructure, namely
3292 our main server (tjener), one LTSP (today without thin clients), and
3293 approximately 50 work stations. Most of these have the option to boot a
3294 locally installed Skolelinux image. As a consequence, I joined quite
3295 a few events dealing with free software or Linux, and met many Debian
3296 (Edu) developers. All of them seemed quite nice and competent to me,
3297 one more reason to stick to Skolelinux.</p>
3298
3299 <p><strong>What do you see as the advantages of Skolelinux/Debian
3300 Edu?</strong></p>
3301
3302 <p>Debian driven, you are given all the advantages of a community
3303 project including well maintained updates. Once, you are familiar with
3304 the network layout, you can easily roll out an entire educational
3305 computer infrastructure, from just one installation media. As only
3306 free software (FOSS) is used, that supports even elderly hardware,
3307 up-sizing your IT equipment is only limited by space (i.e. available
3308 labs). Especially if you run a LTSP thin client server, your
3309 administration costs tend towards zero.</p>
3310
3311 <p><strong>What do you see as the disadvantages of Skolelinux/Debian
3312 Edu?</strong></p>
3313
3314 <p>While Debian's stability has loads of advantages for servers, this
3315 might be different in some cases for clients: Schools with unlimited
3316 budget might buy new hardware with components that are not yet
3317 supported by Debian stable, or wish to use more recent versions of
3318 office packages or desktop environments. These schools have the
3319 option to run Debian testing or other distributions - if they have the
3320 capacity to do so. Another issue is that Debian release cycles
3321 include a wide range of changes; therefor a high percentage of human
3322 power seems to be absorbed by just keeping the features of Skolelinux
3323 within the new setting of the version to come. During this process,
3324 the cogs of Debian Edu are getting more and more professional,
3325 i.e. harder to understand for novices.</p>
3326
3327 <p><strong>Which free software do you use daily?</strong></p>
3328
3329 <p>LibreOffice, Wikipedia, Openstreetmap, Iceweasel (Mozilla Firefox),
3330 KMail, Gimp, Inkscape - and of course the Linux Kernel (not only on
3331 PC, Laptop, Mobile, but also our SAT receiver)</p>
3332
3333 <p><strong>Which strategy do you believe is the right one to use to
3334 get schools to use free software?</strong></p>
3335
3336 <p><ol>
3337
3338 <li>Support computer science as regular subject in schools to make
3339 people really "own" their hardware, to make them understand the
3340 difference between proprietary software products, and free software
3341 developing.</li>
3342
3343 <li>Make budget baskets corresponding: In Germany's public schools
3344 there are more or less fixed budgets for IT equipment (including
3345 licenses), so schools won't benefit from any savings here. This
3346 privilege is left to private schools which have consequently a large
3347 share among German Skolelinux schools.</li>
3348
3349 <li>Get free software in the seminars where would-be teachers are
3350 trained. In many cases, teachers' software customs are respected by
3351 decision makers rather than the expertise of any IT experts.</li>
3352
3353 <li>Don't limit ourself to free software run natively. Everybody uses
3354 free software or free licenses (for instance Wikipedia), and this
3355 general concept should get expanded to free educational content to be
3356 shared world wide (school books e.g.).</li>
3357
3358 <li>Make clear where ever you can that the market share of free (libre)
3359 office suites is much above 20 p.c. today, and that you pupils don't
3360 need to know the "ribbon menu" in order to get employed.</li>
3361
3362 <li>Talk about the difference between freeware and free software.</li>
3363
3364 <li>Spread free software, or even collections of portable free apps
3365 for USB pen drives. Endorse students to get a legal copy of
3366 Libreoffice rather than accepting them to use illegal serials. And
3367 keep sending documents in ODF formats.</li>
3368
3369 </ol></p>
3370
3371 </div>
3372 <div class="tags">
3373
3374
3375 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>.
3376
3377
3378 </div>
3379 </div>
3380 <div class="padding"></div>
3381
3382 <div class="entry">
3383 <div class="title">
3384 <a href="http://people.skolelinux.org/pere/blog/The_cost_of_ODF_and_OOXML.html">The cost of ODF and OOXML</a>
3385 </div>
3386 <div class="date">
3387 26th May 2012
3388 </div>
3389 <div class="body">
3390 <p>I just come across a blog post from Glyn Moody reporting the
3391 claimed cost from Microsoft on requiring ODF to be used by the UK
3392 government. I just sent him an email to let him know that his
3393 assumption are most likely wrong. Sharing it here in case some of my
3394 blog readers have seem the same numbers float around in the UK.</p>
3395
3396 <p><blockquote> <p>Hi. I just noted your
3397 <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>
3398 comment:</p>
3399
3400 <p><blockquote>"They're all in Danish, not unreasonably, but even
3401 with the help of Google Translate I can't find any figures about the
3402 savings of "moving to a flexible two standard" as claimed by the
3403 Microsoft email. But I assume it is backed up somewhere, so let's take
3404 it, and the £500 million figure for the UK, on trust."
3405 </blockquote></p>
3406
3407 <p>I can tell you that the Danish reports are inflated. I believe it is
3408 the same reports that were used in the Norwegian debate around 2007,
3409 and Gisle Hannemyr (a well known IT commentator in Norway) had a look
3410 at the content. In short, the reason it is claimed that using ODF
3411 will be so costly, is based on the assumption that this mean every
3412 existing document need to be converted from one of the MS Office
3413 formats to ODF, transferred to the receiver, and converted back from
3414 ODF to one of the MS Office formats, and that the conversion will cost
3415 10 minutes of work time for both the sender and the receiver. In
3416 reality the sender would have a tool capable of saving to ODF, and the
3417 receiver would have a tool capable of reading it, and the time spent
3418 would at most be a few seconds for saving and loading, not 20 minutes
3419 of wasted effort.</p>
3420
3421 <p>Microsoft claimed all these costs were saved by allowing people to
3422 transfer the original files from MS Office instead of spending 10
3423 minutes converting to ODF. :)</p>
3424
3425 <p>See
3426 <a href="http://hannemyr.com/no/ms12_vl02.php">http://hannemyr.com/no/ms12_vl02.php</a>
3427 and
3428 <a href="http://hannemyr.com/no/ms12.php">http://hannemyr.com/no/ms12.php</a>
3429 for background information. Norwegian only, sorry. :)</p>
3430 </blockquote></p>
3431
3432 </div>
3433 <div class="tags">
3434
3435
3436 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>.
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/ColorHug___USB_and_free_software_based_screen_color_calibration.html">ColorHug - USB and free software based screen color calibration</a>
3446 </div>
3447 <div class="date">
3448 18th May 2012
3449 </div>
3450 <div class="body">
3451 <p>In january, I
3452 <a href="http://blog.cihar.com/archives/2012/01/17/colorhug-has-arrived/">discovered
3453 the ColorHug</a>, a USB dongle from
3454 <a href="http://www.hughski.com/index.html">Hughski</a> to calibrate
3455 the color on a computer screen. The software required is
3456 <a href="http://packages.qa.debian.org/c/colorhug-client.html">included
3457 in Debian</a>, and I decided back then to preorder from the next
3458 batch. Yesterday I finally heard back from them, and got the
3459 opportunity to order. Today I ordered mine, and eagerly await the
3460 delivery. I hope it arrive next week, as I got a confirmation that it
3461 should go in the mail on monday. :)</p>
3462
3463 <p>If you want to ensure the colors on the screen match the intended
3464 colors, I suggest you check out this cheap tool with free software
3465 drivers. :)</p>
3466
3467 </div>
3468 <div class="tags">
3469
3470
3471 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
3472
3473
3474 </div>
3475 </div>
3476 <div class="padding"></div>
3477
3478 <div class="entry">
3479 <div class="title">
3480 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__J_rgen_Leibner.html">Debian Edu interview: Jürgen Leibner</a>
3481 </div>
3482 <div class="date">
3483 13th May 2012
3484 </div>
3485 <div class="body">
3486 <p>It has been a few busy weeks for me, but I am finally back to
3487 publish another interview with the people behind
3488 <a href="http://www.skolelinux.org/">Debian Edu and Skolelinux</a>.
3489 This time it is one of our German developers, who have helped out over the
3490 years to make sure both a lot of major but also a lot of the minor
3491 details get right before release.
3492
3493 <p><strong>Who are you, and how do you spend your days?</strong></p>
3494
3495 <p>My name is Jürgen Leibner, I'm 49 years old and living in
3496 Bielefeld, a town in northern Germany. I worked nearly 20 years as
3497 certified engineer in the department for plant design and layout of an
3498 international company for machinery and equipment. Since 2011 I'm a
3499 certified technical writer (tekom e.V.) and doing technical
3500 documentations for a steam turbine manufacturer. From April this year
3501 I will manage the department of technical documentation at a
3502 manufacturer of automation and assembly line engineering.</p>
3503
3504 <p>My first contact with linux was around 1993. Since that time I used
3505 it at work and at home repeatedly but not exclusively as I do now at
3506 home since 2006.</p>
3507
3508 <p><strong>How did you get in contact with the Skolelinux/Debian Edu
3509 project?</strong></p>
3510
3511 <p>Once a day in the early year of 2001 when I wanted to fetch my
3512 daughter from primary school, there was a teacher sitting in the
3513 middle of 20 old computers trying to boot them and he failed. I helped
3514 him to get them booting. That was seen by the school director and she
3515 asked me if I would like to manage that the school gets all that old
3516 computers in use. I answered: "Yes".</p>
3517
3518 <p>Some weeks later every of the 10 classrooms had one computer
3519 running Windows98. I began to collect old computers and equipment as
3520 gifts and installed the first computer room with a peer-to-peer
3521 network. I did my work at school without being payed in my spare time
3522 and with a lot of fun. About one year later the school was connected
3523 to Internet and a local area network was installed in the school
3524 building. That was the time to have a server and I knew it must be a
3525 Linux server to be able to fulfil all the wishes of the teachers and
3526 being able to do this in a transparent and economic way, without extra
3527 costs for things like licence and software. So I searched for a
3528 school server system running under Linux and I found a couple of
3529 people nearby who founded 'skolelinux.de'. It was the Skolelinux
3530 prerelease 32 I first tried out for being used at the school. I
3531 managed the IT of that school until the municipal authority took over
3532 the IT management and centralised the services for all schools in
3533 Bielefeld in December of 2006.</p>
3534
3535 <p><strong>What do you see as the advantages of Skolelinux/Debian
3536 Edu?</strong></p>
3537
3538 <p>When I'm looking back to the beginning, there were other advantages
3539 for me as today.</p>
3540
3541 <p>In the past there were advantages like:</p>
3542
3543 <p><ul>
3544
3545 <li>I don't need to buy it so it generates no costs to the school as
3546 they had little money to spent for computers and software.</li>
3547
3548 <li>It has a licence which grands all rights to use it without
3549 cost.</li>
3550
3551 <li>It was more able to fit all requirements of a server system for
3552 schools than a Microsoft server system, even if there are only Windows
3553 clients because of it's preconfigured overall concept of being a
3554 infrastructure solution and community for schools, not only a
3555 server</li>
3556
3557 <li>I was able to configure the server to the needs of the
3558 school.</li>
3559
3560 </ul></p>
3561
3562 <p>Today some of the advantages has been lost, changed or new ones
3563 came up in this way:</p>
3564
3565 <p><ul>
3566
3567 <li>Most schools here do have money to buy hardware and software
3568 now.</li>
3569
3570 <li>They are today mostly managed from central IT departments which
3571 have own concepts which often do not fit to Debian Edu concepts
3572 because they are to close to Microsoft ideology.</li>
3573
3574 <li>With the Squeeze version of Debian Edu which now uses GOsa² for
3575 management I feel more able to manage the daily tasks than with the
3576 interfaces used in the past.</li>
3577
3578 <li>It is more modular than in the past and fits even better to the
3579 different needs.</li>
3580
3581 <li>The documentation is usable and gets better every day.</li>
3582
3583 <li>More people than ever before are using Debian Edu all over the
3584 world and so the community, which is an very important part I think,
3585 is sharing knowledge and minds.</li>
3586
3587 <li>Most, maybe all, of the technical requirements for schools are
3588 solved today by Debian Edu. </li>
3589
3590 </ul></p>
3591
3592 <p><strong>What do you see as the disadvantages of Skolelinux/Debian
3593 Edu?</strong></p>
3594
3595 <p><ul>
3596
3597 <li>There are too few IT companies able to integrate Debian Edu into
3598 their product portfolio for serving schools with concepts or even
3599 whole municipality areas.</li>
3600
3601 <li>Debian Edu has beside other free and open software projects not
3602 enough lobbyists which promote free and open software to
3603 politicians.</li>
3604
3605 <li>Technically there are no disadvantages I'm aware of.</li>
3606
3607 </ul></p>
3608
3609 <p><strong>Which free software do you use daily?</strong></p>
3610
3611 <p>I use Debian stable on my home server and on my little desktop
3612 computer. On my laptop I use Debian testing/sid. The applications I
3613 use on my laptop and my desktop are Open/Libre-office, Iceweasel,
3614 KMail, DigiKam, Amarok, Dolphin, okular and all the other programs I
3615 need from the KDE environment. On console I use newsbeuter, mutt,
3616 screen, irssi and all the other famous and useful tools.</p>
3617
3618 <p>My home server provides mail services with exim, dovecot, roundcube
3619 and mutt over ssh on the console, file services with samba, NFS,
3620 rsync, web services with apache, moinmoin-wiki, multimedia services
3621 with gallery2 and mediatomb and database services with MySQL for me
3622 and the whole family. I probably forgot something.</p>
3623
3624 <p><strong>Which strategy do you believe is the right one to use to
3625 get schools to use free software?</strong></p>
3626
3627 <p>I believe, we should provide concepts for IT companies to integrate
3628 Debian Edu into their product portfolio with use cases for different
3629 countries and areas all over the world.</p>
3630
3631 </div>
3632 <div class="tags">
3633
3634
3635 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>.
3636
3637
3638 </div>
3639 </div>
3640 <div class="padding"></div>
3641
3642 <div class="entry">
3643 <div class="title">
3644 <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>
3645 </div>
3646 <div class="date">
3647 30th April 2012
3648 </div>
3649 <div class="body">
3650 <p><!-- IMG_5869.JPG -->
3651 <img src="http://people.skolelinux.org/pere/blog/images/panasonic-er-1611.jpeg"></p>
3652
3653 <p>I normally cut my hair short, and my tool of choice has been a
3654 common hair/beard cutter, bought in a electrical shop here in Norway.
3655 But the last ones have not really been up to the task. My last
3656 cutter, some model from Braun, could only cut a few of my hairs at the
3657 time, and cutting my head took forever. And the one before that did
3658 not work very well either. We have looked for something better for a
3659 while, but it was not until I ended up visiting a hairdresser that we
3660 discovered that there are indeed better tools available. But these
3661 are not marketed and sold to "regular consumers". The hair saloons
3662 can get them through their suppliers, but their suppliers only sell
3663 companies. The models they sell, are very different from the ones
3664 available from Elkjøp and Lefdal. The main difference is their
3665 efficiency. It would cut my hair in 5 minutes, instead of the 30-40
3666 minutes required by my impotent Braun. The hairdresser I visited had
3667 a Panasonic ER160, which unfortunately is no longer available from the
3668 producer. But I found it had a successor, the Panasonic ER1611.</p>
3669
3670 <p>The next step was to find somewhere to buy it. This was not
3671 straight forward. The list of suppliers I got from the hairdresser
3672 did not want to sell anything to me. But searching for the model on
3673 the web we found a supplier in Norway willing to sell it to us for
3674 around NOK 4000,-. This was a bit much. We kept searching and
3675 finally found a Danish supplier
3676 <a href="http://nicehair.dk/panasonic-er-1611-professionel-hartrimmer.html">selling
3677 it for around NOK 1800,-</a>. We ordered one, and it arrived a few
3678 days ago.</p>
3679
3680 <p>The instructions said it had to charge for 8 hours when we started
3681 to use it, so we left it charging over night. Normally it will only
3682 need one hour to charge. The following evening we successfully tested
3683 it, and I can warmly recommend it to anyone looking for a real hair
3684 cutter. The ones we have used until now have been hair cutter
3685 toys.</p>
3686
3687 </div>
3688 <div class="tags">
3689
3690
3691 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
3692
3693
3694 </div>
3695 </div>
3696 <div class="padding"></div>
3697
3698 <div class="entry">
3699 <div class="title">
3700 <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>
3701 </div>
3702 <div class="date">
3703 26th April 2012
3704 </div>
3705 <div class="body">
3706 <p>In <a href="http://www.idg.no/computerworld/article243690.ece">an
3707 article today</a> published by Computerworld Norway, the photographer
3708 <a href="http://www.urke.com/eirik/">Eirik Helland Urke</a> reports
3709 that the video editor application included with
3710 <a href="http://www.htc.com/www/smartphones/htc-one-x/#specs">HTC One
3711 X</a> have some quite surprising terms of use. The article is mostly
3712 based on the twitter message from mister Urke, stating:
3713
3714 <p><blockquote>
3715 "<a href="http://twitter.com/urke/status/194062269724897280">Drøy
3716 brukeravtale: HTC kan bruke MINE redigerte videoer kommersielt. Selv
3717 kan jeg KUN bruke dem privat.</a>"
3718 </blockquote></p>
3719
3720 <p>I quickly translated it to this English message:</p>
3721
3722 <p><blockquote>
3723 "Arrogant user agreement: HTC can use MY edited videos
3724 commercially. Although I can ONLY use them privately."
3725 </blockquote></p>
3726
3727 <p>I've been unable to find the text of the license term myself, but
3728 suspect it is a variation of the MPEG-LA terms I
3729 <a href="http://people.skolelinux.org/pere/blog/Terms_of_use_for_video_produced_by_a_Canon_IXUS_130_digital_camera.html">discovered
3730 with my Canon IXUS 130</a>. The HTC One X specification specifies that
3731 the recording format of the phone is .amr for audio and .mp3 for
3732 video. AMR is
3733 <a href="http://en.wikipedia.org/wiki/Adaptive_Multi-Rate_audio_codec#Licensing_and_patent_issues">Adaptive
3734 Multi-Rate audio codec</a> with patents which according to the
3735 Wikipedia article require an license agreement with
3736 <a href="http://www.voiceage.com/">VoiceAge</a>. MP4 is
3737 <a href="http://en.wikipedia.org/wiki/H.264/MPEG-4_AVC#Patent_licensing">MPEG4 with
3738 H.264</a>, which according to Wikipedia require a licence agreement
3739 with <a href="http://www.mpegla.com/">MPEG-LA</a>.</p>
3740
3741 <p>I know why I prefer
3742 <a href="http://www.digistan.org/open-standard:definition">free and open
3743 standards</a> also for video.</p>
3744
3745 </div>
3746 <div class="tags">
3747
3748
3749 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/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>.
3750
3751
3752 </div>
3753 </div>
3754 <div class="padding"></div>
3755
3756 <div class="entry">
3757 <div class="title">
3758 <a href="http://people.skolelinux.org/pere/blog/RAND_terms___non_reasonable_and_discriminatory.html">RAND terms - non-reasonable and discriminatory</a>
3759 </div>
3760 <div class="date">
3761 19th April 2012
3762 </div>
3763 <div class="body">
3764 <p>Here in Norway, the
3765 <a href="http://www.regjeringen.no/nb/dep/fad.html?id=339"> Ministry of
3766 Government Administration, Reform and Church Affairs</a> is behind
3767 a <a href="http://standard.difi.no/forvaltningsstandarder">directory of
3768 standards</a> that are recommended or mandatory for use by the
3769 government. When the directory was created, the people behind it made
3770 an effort to ensure that everyone would be able to implement the
3771 standards and compete on equal terms to supply software and solutions
3772 to the government. Free software and non-free software could compete
3773 on the same level.</p>
3774
3775 <p>But recently, some standards with RAND
3776 (<a href="http://en.wikipedia.org/wiki/Reasonable_and_non-discriminatory_licensing">Reasonable
3777 And Non-Discriminatory</a>) terms have made their way into the
3778 directory. And while this might not sound too bad, the fact is that
3779 standard specifications with RAND terms often block free software from
3780 implementing them. The reasonable part of RAND mean that the cost per
3781 user/unit is low,and the non-discriminatory part mean that everyone
3782 willing to pay will get a license. Both sound great in theory. In
3783 practice, to get such license one need to be able to count users, and
3784 be able to pay a small amount of money per unit or user. By
3785 definition, users of free software do not need to register their use.
3786 So counting users or units is not possible for free software projects.
3787 And given that people will use the software without handing any money
3788 to the author, it is not really economically possible for a free
3789 software author to pay a small amount of money to license the rights
3790 to implement a standard when the income available is zero. The result
3791 in these situations is that free software are locked out from
3792 implementing standards with RAND terms.</p>
3793
3794 <p>Because of this, when I see someone claiming the terms of a
3795 standard is reasonable and non-discriminatory, all I can think of is
3796 how this really is non-reasonable and discriminatory. Because free
3797 software developers are working in a global market, it does not really
3798 help to know that software patents are not supposed to be enforceable
3799 in Norway. The patent regimes in other countries affect us even here.
3800 I really hope the people behind the standard directory will pay more
3801 attention to these issues in the future.</p>
3802
3803 <p>You can find more on the issues with RAND, FRAND and RAND-Z terms
3804 from Simon Phipps
3805 (<a href="http://blogs.computerworlduk.com/simon-says/2010/11/rand-not-so-reasonable/">RAND:
3806 Not So Reasonable?</a>).</p>
3807
3808 <p>Update 2012-04-21: Just came across a
3809 <a href="http://blogs.computerworlduk.com/open-enterprise/2012/04/of-microsoft-netscape-patents-and-open-standards/index.htm">blog
3810 post from Glyn Moody</a> over at Computer World UK warning about the
3811 same issue, and urging people to speak out to the UK government. I
3812 can only urge Norwegian users to do the same for
3813 <a href="http://www.standard.difi.no/hoyring/hoyring-om-nye-anbefalte-it-standarder">the
3814 hearing taking place at the moment</a> (respond before 2012-04-27).
3815 It proposes to require video conferencing standards including
3816 specifications with RAND terms.</p>
3817
3818 </div>
3819 <div class="tags">
3820
3821
3822 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>.
3823
3824
3825 </div>
3826 </div>
3827 <div class="padding"></div>
3828
3829 <div class="entry">
3830 <div class="title">
3831 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Andreas_Mundt.html">Debian Edu interview: Andreas Mundt</a>
3832 </div>
3833 <div class="date">
3834 15th April 2012
3835 </div>
3836 <div class="body">
3837 <p>Behind <a href="http://www.skolelinux.org/">Debian Edu and
3838 Skolelinux</a> there are a lot of people doing the hard work of
3839 setting together all the pieces. This time I present to you Andreas
3840 Mundt, who have been part of the technical development team several
3841 years. He was also a key contributor in getting GOsa and Kerberos set
3842 up in the recently released
3843 <a href="http://wiki.debian.org/DebianEdu/Documentation/Squeeze">Debian
3844 Edu Squeeze</a> version.</p>
3845
3846 <p><strong>Who are you, and how do you spend your days?</strong></p>
3847
3848 <p>My name is Andreas Mundt, I grew up in south Germany. After
3849 studying Physics I spent several years at university doing research in
3850 Quantum Optics. After that I worked some years in an optics company.
3851 Finally I decided to turn over a new leaf in my life and started
3852 teaching 10 to 19 years old kids at school. I teach math, physics,
3853 information technology and science/technology.</p>
3854
3855 <p><strong>How did you get in contact with the Skolelinux/Debian Edu
3856 project?</strong></p>
3857
3858 <p>Already before I switched to teaching, I followed the Debian Edu
3859 project because of my interest in education and Debian. Within the
3860 qualification/training period for the teaching, I started
3861 contributing.</p>
3862
3863 <p><strong>What do you see as the advantages of Skolelinux/Debian
3864 Edu?</strong></p>
3865
3866 <p>The advantages of Debian Edu are the well known name, the
3867 out-of-the-box philosophy and of course the great free software of the
3868 Debian Project!</p>
3869
3870 <p><strong>What do you see as the disadvantages of Skolelinux/Debian
3871 Edu?</strong></p>
3872
3873 <p>As every coin has two sides, the out-of-the-box philosophy has its
3874 downside, too. In my opinion, it is hard to modify and tweak the
3875 setup, if you need or want that. Further more, it is not easily
3876 possible to upgrade the system to a new release. It takes much too
3877 long after a Debian release to prepare the -Edu release, perhaps
3878 because the number of developers working on the core of the code is
3879 rather small and often busy elsewhere.</p>
3880
3881 <p>The <a href="http://wiki.debian.org/DebianLAN">Debian LAN</a>
3882 project might fill the use case of a more flexible system.</p>
3883
3884 <p><strong>Which free software do you use daily?</strong></p>
3885
3886 <p>I am only using non-free software if I am forced to and run Debian
3887 on all my machines. For documents I prefer LaTeX and PGF/TikZ, then
3888 mutt and iceweasel for email respectively web browsing. At school I
3889 have Arduino and Fritzing in use for a micro controller project.</p>
3890
3891 <p><strong>Which strategy do you believe is the right one to use to
3892 get schools to use free software?</strong></p>
3893
3894 <p>One of the major problems is the vendor lock-in from top to bottom:
3895 Especially in combination with ignorant government employees and
3896 politicians, this works out great for the "market-leader". The school
3897 administration here in Baden-Wuerttemberg is occupied by that vendor.
3898 Documents have to be prepared in non-free, proprietary formats. Even
3899 free browsers do not work for the school administration. Publishers
3900 of school books provide software only for proprietary platforms.</p>
3901
3902 <p>To change this, political work is very important. Parts of the
3903 political spectrum have become aware of the problem in the last years.
3904 However it takes quite some time and courageous politicians to 'free'
3905 the system. There is currently some discussion about "Open Data" and
3906 "Free/Open Standards". I am not sure if all the involved parties have
3907 a clue about the potential of these ideas, and probably only a
3908 fraction takes them seriously. However it might slowly make free
3909 software and the philosophy behind it more known and popular.</p>
3910
3911 </div>
3912 <div class="tags">
3913
3914
3915 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>.
3916
3917
3918 </div>
3919 </div>
3920 <div class="padding"></div>
3921
3922 <div class="entry">
3923 <div class="title">
3924 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Justin_B__Rye.html">Debian Edu interview: Justin B. Rye</a>
3925 </div>
3926 <div class="date">
3927 8th April 2012
3928 </div>
3929 <div class="body">
3930 <p>It take all kind of contributions to create a Linux distribution
3931 like <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a>,
3932 and this time I lend the ear to Justin B. Rye, who is listed as a big
3933 contributor to the
3934 <a href="http://wiki.debian.org/DebianEdu/Documentation/Squeeze">Debian
3935 Edu Squeeze release manual</a>.
3936
3937 <p><strong>Who are you, and how do you spend your days?</strong></p>
3938
3939 <p>I'm a 44-year-old linguistics graduate living in Edinburgh who has
3940 occasionally been employed as a sysadmin.</p>
3941
3942 <p><strong>How did you get in contact with the Skolelinux/Debian Edu
3943 project?</strong></p>
3944
3945 <p>I'm neither a developer nor a Skolelinux/Debian Edu user! The only
3946 reason my name's in the credits for the documentation is that I hang
3947 around on debian-l10n-english waiting for people to mention things
3948 they'd like a native English speaker to proofread... So I did a sweep
3949 through the wiki for typos and Norglish and inconsistent spellings of
3950 "localisation".</p>
3951
3952 <p><strong>What do you see as the advantages of Skolelinux/Debian
3953 Edu?</strong></p>
3954
3955 <p><strong>What do you see as the disadvantages of Skolelinux/Debian
3956 Edu?</strong></p>
3957
3958 <p>These questions are too hard for me - I don't use it! In fact I
3959 had hardly any contact with I.T. until long after I'd got out of the
3960 education system.</p>
3961
3962 <p>I can tell you the advantages of Debian for me though: it soaks up
3963 as much of my free time as I want and no more, and lets me do
3964 everything I want a computer for without ever forcing me to spend
3965 money on the latest hardware.</p>
3966
3967 <p><strong>Which free software do you use daily?</strong></p>
3968
3969 <p>I've been using Debian since Rex; popularity-contest says the
3970 software that I use most is xinit, xterm, and xulrunner (in other
3971 words, I use a distinctly retro sort of desktop).</p>
3972
3973 <p><strong>Which strategy do you believe is the right one to use to
3974 get schools to use free software?</strong></p>
3975
3976 <p>Well, I don't know. I suppose I'd be inclined to try reasoning
3977 with the people who make the decisions, but obviously if that worked
3978 you would hardly need a strategy.</p>
3979
3980 </div>
3981 <div class="tags">
3982
3983
3984 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>.
3985
3986
3987 </div>
3988 </div>
3989 <div class="padding"></div>
3990
3991 <div class="entry">
3992 <div class="title">
3993 <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>
3994 </div>
3995 <div class="date">
3996 6th April 2012
3997 </div>
3998 <div class="body">
3999 <p>Recently I have spent time with
4000 <a href="http://www.slxdrift.no/">Skolelinux Drift AS</a> on speeding
4001 up a <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a>
4002 Lenny installation using LTSP diskless workstations, and in the
4003 process I discovered something very surprising. The reason the KDE
4004 menu was responding slow when using it for the first time, was mostly
4005 due to the way KDE find application icons. I discovered that showing
4006 the Multimedia menu would cause more than 20 000 IP packages to be
4007 passed between the LTSP client and the NFS server. Most of these were
4008
4009 NFS LOOKUP calls, resulting in a NFS3ERR_NOENT response. Because the
4010 ping times between the client and the server were in the range 2-20
4011 ms, the menus would be very slow. Looking at the strace of kicker in
4012 Lenny (or plasma-desktop i Squeeze - same problem there), I see that
4013 the source of these NFS calls are access(2) system calls for
4014 non-existing files. KDE can do hundreds of access(2) calls to find
4015 one icon file. In my example, just finding the mplayer icon required
4016 around 230 access(2) calls.</p>
4017
4018 <p>The KDE code seem to search for icons using a list of icon
4019 directories, and the list of possible directories is large. In
4020 (almost) each directory, it look for files ending in .png, .svgz, .svg
4021 and .xpm. The result is a very slow KDE menu when /usr/ is NFS
4022 mounted. Showing a single sub menu may result in thousands of NFS
4023 requests. I am not the first one to discover this. I found a
4024 <a href="https://bugs.kde.org/show_bug.cgi?id=211416">KDE bug report
4025 from 2009</a> about this problem, and it is still unsolved.</p>
4026
4027 <p>My solution to speed up the KDE menu was to create a package
4028 kde-icon-cache that upon installation will look at all .desktop files
4029 used to generate the KDE menu, find their icons, search the icon paths
4030 for the file that KDE will end up finding at run time, and copying the
4031 icon file to /var/lib/kde-icon-cache/. Finally, I add symlinks to
4032 these icon files in one of the first directories where KDE will look
4033 for them. This cut down the number of file accesses required to find
4034 one icon from several hundred to less than 5, and make the KDE menu
4035 almost instantaneous. I'm not quite sure where to make the package
4036 publicly available, so for now it is only available on request.</p>
4037
4038 <p>The bug report mention that this do not only affect the KDE menu
4039 and icon handling, but also the login process. Not quite sure how to
4040 speed up that part without replacing NFS with for example NBD, and
4041 that is not really an option at the moment.</p>
4042
4043 <p>If you got feedback on this issue, please let us know on debian-edu
4044 (at) lists.debian.org.</p>
4045
4046 </div>
4047 <div class="tags">
4048
4049
4050 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>.
4051
4052
4053 </div>
4054 </div>
4055 <div class="padding"></div>
4056
4057 <div class="entry">
4058 <div class="title">
4059 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_in_the_Linux_Weekly_News.html">Debian Edu in the Linux Weekly News</a>
4060 </div>
4061 <div class="date">
4062 5th April 2012
4063 </div>
4064 <div class="body">
4065 <p>About two weeks ago, I was interviewed via email about
4066 <a href="http://www.skolelinux.org/">Debian Edu and Skolelinux</a> by
4067 Bruce Byfield in Linux Weekly News. The result was made public for
4068 non-subscribers today. I am pleased to see liked our Linux solution
4069 for schools. Check out his article
4070 <a href="https://lwn.net/Articles/488805/">Debian Edu/Skolelinux: A
4071 distribution for education</a> if you want to learn more.</p>
4072
4073 </div>
4074 <div class="tags">
4075
4076
4077 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>.
4078
4079
4080 </div>
4081 </div>
4082 <div class="padding"></div>
4083
4084 <div class="entry">
4085 <div class="title">
4086 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Wolfgang_Schweer.html">Debian Edu interview: Wolfgang Schweer</a>
4087 </div>
4088 <div class="date">
4089 1st April 2012
4090 </div>
4091 <div class="body">
4092 <p>Germany is a core area for the
4093 <a href="http://www.skolelinux.org/">Debian Edu and Skolelinux</a>
4094 user community, and this time I managed to get hold of Wolfgang
4095 Schweer, a valuable contributor to the project from Germany.
4096
4097 <p><strong>Who are you, and how do you spend your days?</strong></p>
4098
4099 <p>I've studied Mathematics at the university 'Ruhr-Universität' in
4100 Bochum, Germany. Since 1981 I'm working as a teacher at the school
4101 "<a href="http://www.westfalenkolleg-dortmund.de/">Westfalen-Kolleg
4102 Dortmund</a>", a second chance school. Here, young adults is given
4103 the opportunity to get further education in order to do the school
4104 examination 'Abitur', which will allow to study at a university. This
4105 second chance is of value for those who want a better job perspective
4106 or failed to get a higher school examination being teens.</p>
4107
4108 <p>Besides teaching I was involved in developing online courses for a
4109 blended learning project called 'abitur-online.nrw' and in some other
4110 information technology related projects. For about ten years I've been
4111 teacher and coordinator for the 'abitur-online' project at my
4112 school. Being now in my early sixties, I've decided to leave school at
4113 the end of April this year.</p>
4114
4115 <p><strong>How did you get in contact with the Skolelinux/Debian Edu
4116 project?</strong></p>
4117
4118 <p>The first information about Skolelinux must have come to my
4119 attention years ago and somehow related to LTSP (Linux Terminal Server
4120 Project). At school, we had set up a network at the beginning of 1997
4121 using Suse Linux on the desktop, replacing a Novell network. Since
4122 2002, we used old machines from the city council of Dortmund as thin
4123 clients (LTSP, later Ubuntu/Lessdisks) cause new hardware was out of
4124 reach. At home I'm using Debian since years and - subscribed to the
4125 Debian news letter - heard from time to time about Skolelinux. About
4126 two years ago I proposed to replace the (somehow undocumented and only
4127 known to me) system at school by a well known Debian based system:
4128 Skolelinux.</p>
4129
4130 <p>Students and teachers appreciated the new system because of a
4131 better look and feel and an enhanced access to local media on thin
4132 clients. The possibility to alter and/or reset passwords using a GUI
4133 was welcomed, too. Being able to do administrative tasks using a GUI
4134 and to easily set up workstations using PXE was of very high value for
4135 the admin teachers.</p>
4136
4137 <p><strong>What do you see as the advantages of Skolelinux/Debian
4138 Edu?</strong></p>
4139
4140 <p>It's open source, easy to set up, stable and flexible due to it's
4141 Debian base. It integrates LTSP out-of-the-box. And it is documented!
4142 So it was a perfect choice.</p>
4143
4144 <p>Being open source, there are no license problems and so it's
4145 possible to point teachers and students to programs like
4146 OpenOffice.org, ViewYourMind (mind mapping) and The Gimp. It's of
4147 high value to be able to adapt parts of the system to special needs of
4148 a school and to choose where to get support for this.</p>
4149
4150 <p><strong>What do you see as the disadvantages of Skolelinux/Debian
4151 Edu?</strong></p>
4152
4153 <p>Nothing yet.</p>
4154
4155 <p><strong>Which free software do you use daily?</strong></p>
4156
4157 <p>At home (Debian Sid with Gnome Desktop): Iceweasel, LibreOffice,
4158 Mutt, Gedit, Document Viewer, Midnight Commander, flpsed (PDF
4159 Annotator). At school (Skolelinux Lenny): Iceweasel, Gedit,
4160 LibreOffice.</p>
4161
4162 <p><strong>Which strategy do you believe is the right one to use to
4163 get schools to use free software?</strong></p>
4164
4165 <p>Some time ago I thought it was enough to tell people about it. But
4166 that doesn't seem to work quite well. Now I concentrate on those more
4167 interested and hope to get multiplicators that way.</p>
4168
4169 </div>
4170 <div class="tags">
4171
4172
4173 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>.
4174
4175
4176 </div>
4177 </div>
4178 <div class="padding"></div>
4179
4180 <div class="entry">
4181 <div class="title">
4182 <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>
4183 </div>
4184 <div class="date">
4185 25th March 2012
4186 </div>
4187 <div class="body">
4188 <!-- Video HTML based on http://www.diveintohtml5.net/video.html -->
4189
4190 <p>The same Debian Edu developer that did the last screen cast I
4191 published, Wolfgang Schweer, has created a new screen cast showing how
4192 to set up Kmail in Debian Edu Squeze to authenticate using Kerberos,
4193 allowing users to check their local email account without providing
4194 any password. The video is embedded here in quarter size,
4195 and also available from <a href="https://vimeo.com/38601767">vimeo</a>
4196 and download as a
4197 <a href="http://ftp.skolelinux.org/skolelinux/press/screencasts/2012-03-14-Debian-Edu_Configure_Kmail_for_internal_usage.ogv">Ogg
4198 Theora</a> file. Check it out below.</p>
4199
4200 <p><video id="kmail-kerberos-movie" width="256" height="184" preload controls>
4201 <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"' />
4202 <p>Download video as
4203 <a href="http://ftp.skolelinux.org/skolelinux/press/screencasts/2012-03-14-Debian-Edu_Configure_Kmail_for_internal_usage.ogv">Ogg</a>.</p>
4204 </video></p>
4205
4206 </div>
4207 <div class="tags">
4208
4209
4210 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>.
4211
4212
4213 </div>
4214 </div>
4215 <div class="padding"></div>
4216
4217 <div class="entry">
4218 <div class="title">
4219 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__John_Ingleby.html">Debian Edu interview: John Ingleby</a>
4220 </div>
4221 <div class="date">
4222 19th March 2012
4223 </div>
4224 <div class="body">
4225 <p><a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a>
4226 users are spread all across the globe. The second inteview after
4227 <a href="http://lists.debian.org/debian-edu-announce/2012/03/msg00001.html">the
4228 Squeeze release</a> was publised is with John Ingleby, a teacher and
4229 long time Linux user in United Kingdom.</p>
4230
4231 <p><strong>Who are you, and how do you spend your days?</strong></p>
4232
4233 <p>I teach ICT part time at the Rudolf Steiner School in Kings
4234 Langley, near London, UK. Previously I worked as a technical
4235 author/trainer while my children attended the school, and I also
4236 contributed to the Schoolforge UK community with the aim of
4237 encouraging UK schools to adopt free/open source software. Five or six
4238 years ago we had about 50 schools interested in some way, but we
4239 weren't able to convert many of them into sustainable
4240 installations.</p>
4241
4242 <p><strong>How did you get in contact with the Skolelinux/Debian Edu
4243 project?</strong></p>
4244
4245 <p>Skolelinux had two representatives at an early Edubuntu meeting in
4246 London which I attended. However at that time our school network had
4247 just been installed using CentOS, LTSP 4 and GNOME. When LTSP 5 came
4248 along we switched to Edubuntu thin client servers so now we have a
4249 mixed environment which includes Windows PCs and student laptops, as
4250 well as their MacBooks and iPads. However, the proprietary systems
4251 have always been rather problematic, and we never built a GUI for the
4252 LDAP server, so when I discovered Skolelinux is configured for all
4253 these things we decided to try it.</p>
4254
4255 <p><strong>What do you see as the advantages of Skolelinux/Debian
4256 Edu?</strong></p>
4257
4258 <p>By far the biggest advantage is the Debian Edu community. Apart
4259 from that I have always believed in the same "sustainable computing"
4260 goals that Skolelinux is built on: installing Linux on computers which
4261 would otherwise be thrown away, to provide a reliable, secure and
4262 low-cost IT environment for schools. From my own experience I know
4263 that a part-time person can teach and manage a network of about 25
4264 Linux computers, but it would take much more of my time if we had
4265 proprietary software everywhere.</p>
4266
4267 <p><strong>What do you see as the disadvantages of Skolelinux/Debian
4268 Edu?</strong></p>
4269
4270 <p>As a newcomer I'm just finding out who's who in the community and
4271 how you're organised, and what your procedures are for dealing with
4272 various things such as editing manual pages and so-on. The only
4273 English language mailing list seems to be for developers as well as
4274 users, so my inbox needs heavy pruning each day!</p>
4275
4276 <p><strong>Which free software do you use daily?</strong></p>
4277
4278 <p>Besides the software already mentioned at school we use Samba,
4279 OpenLDAP, CUPS, Nagios and Dansguardian for the network, and on the
4280 desktops we have LibreOffice, Firefox, GIMP and Inkscape. At home I
4281 use Ubuntu and an Android 4 eePad Transformer (but I'm not sure if
4282 that counts...)</p>
4283
4284 <p><strong>Which strategy do you believe is the right one to use to
4285 get schools to use free software?</strong></p>
4286
4287 <p>That's a tough question! For very many years UK schools installed
4288 and taught only proprietary software, so that at the highest levels
4289 the notion of "computer" means simply "proprietary office
4290 applications". However, schools today are experiencing budget
4291 constraints, and many are having to think hard about upgrading Windows
4292 XP. At the same time, we have students showing teachers how to use
4293 iPads, MacBooks and Android, so the choice of operating system is no
4294 longer quite so automatic. What is more, our government at last
4295 realised that we need people with programming skills, so they're
4296 putting coding back in the curriculum! And it's encouraging that the
4297 first 10,000 Raspberry Pi units sold out in 2 hours.</p>
4298
4299 <p>I don't really know what strategy is going to get UK schools to use
4300 free software, but building an active community of Skolelinux/Debian
4301 Edu users in this country has to be part of it.</p>
4302
4303 </div>
4304 <div class="tags">
4305
4306
4307 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>.
4308
4309
4310 </div>
4311 </div>
4312 <div class="padding"></div>
4313
4314 <div class="entry">
4315 <div class="title">
4316 <a href="http://people.skolelinux.org/pere/blog/Writing_and_translating_documentation_in_Debian_Edu.html">Writing and translating documentation in Debian Edu</a>
4317 </div>
4318 <div class="date">
4319 16th March 2012
4320 </div>
4321 <div class="body">
4322 <p>Documentation in Debian Edu is provided in several languages, and
4323 it is important to make it both easy to contribute and to keep the
4324 translated versions in sync. To do this we have come up with what we
4325 believe is a very efficient work flow.</p>
4326
4327 <ol>
4328
4329 <li>The documentation is written in a
4330 <a href="http://moinmo.in">moinmoin wiki</a> (see for example
4331 <a href="http://wiki.debian.org/DebianEdu/Documentation/Squeeze">the
4332 Squeeze release manual</a>) with support for exporting the content as
4333 docbook XML.</li>
4334
4335 <li>This docbook document is given to po4a to extract a gettext style
4336 .pot file with the content, which in turn is used to create .po files
4337 with the translated text.</li>
4338
4339 <li>The .po files are given to translators, and they can always tell
4340 which part of the original wiki document is new or changed. They can
4341 use their normal translation tools like lokalize or poedit to write
4342 the translation. There is even a system in place to handle translated
4343 images.</li>
4344
4345 <li>The translated .po files are combined with the original docbook
4346 XML document using po4a to create a translated docbook document.</li>
4347
4348 <li>The final step is to use all the generated docbook files and
4349 create PDF and HTML version of the original and translated documents.</li>
4350
4351 </ol>
4352
4353 <p>This setup work very well, but have a few issues. The biggest
4354 issue is that <a href="http://moinmo.in/DocBook">the docbook support
4355 we use in moinmoin</a> is not actively maintained. The docbook
4356 support is also buggy, and our build system contain workarounds to
4357 make sure the generated docbook is usable despite these bugs.</p>
4358
4359 <p>If you want to have a look at our setup, it is all there in the
4360 <a href="http://packages.qa.debian.org/debian-edu-doc">debian-edu-doc
4361 package</a>.</p>
4362
4363 </div>
4364 <div class="tags">
4365
4366
4367 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>.
4368
4369
4370 </div>
4371 </div>
4372 <div class="padding"></div>
4373
4374 <div class="entry">
4375 <div class="title">
4376 <a href="http://people.skolelinux.org/pere/blog/Skolelinux___Debian_Edu_Squeeze_is_out_.html">Skolelinux / Debian Edu Squeeze is out!</a>
4377 </div>
4378 <div class="date">
4379 11th March 2012
4380 </div>
4381 <div class="body">
4382 <p>This weekend we finally published the first stable release of
4383 <a href="http://www.skolelinux.org/">Skolelinux / Debian Edu</a> based
4384 on Debian/Squeeze. The full announcement is
4385 <a href="http://lists.debian.org/debian-edu-announce/2012/03/msg00001.html">available</a>
4386 from the project announcement list. Now is a good time to test if it
4387 you have not done so already.</p>
4388
4389 <p>I plan to present the new version at
4390 <a href="http://www.nuug.no/aktiviteter/20120313-skolelinux/">a NUUG
4391 meeting</a> on tuesday. I look forward to seeing you there if you are
4392 in Oslo, Norway.</p>
4393
4394 </div>
4395 <div class="tags">
4396
4397
4398 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>.
4399
4400
4401 </div>
4402 </div>
4403 <div class="padding"></div>
4404
4405 <div class="entry">
4406 <div class="title">
4407 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Nigel_Barker.html">Debian Edu interview: Nigel Barker</a>
4408 </div>
4409 <div class="date">
4410 9th March 2012
4411 </div>
4412 <div class="body">
4413 <p>Inspired by <a href="http://raphaelhertzog.com/tag/interview/">the
4414 interview series</a> conducted by Raphael, I started a Norwegian
4415 interview series with people involved in the Debian Edu / Skolelinux
4416 community. This was so popular that I believe it is time to move to a
4417 more international audience.</p>
4418
4419 <p>While <a href="http://www.skolelinux.org/">Debian Edu and
4420 Skolelinux</a> originated in France and Norway, and have most users in
4421 Europe, there are users all around the globe. One of those far away
4422 from me is Nigel Barker, a long time Debian Edu system administrator
4423 and contributor. It is thanks to him that Debian Edu is adjusted to
4424 work out of the box in Japan. I got him to answer a few questions,
4425 and am happy to share the response with you. :)
4426
4427
4428 <p><strong>Who are you, and how do you spend your days?</strong></p>
4429
4430 <p>My name is Nigel Barker, and I am British. I am married to Yumiko,
4431 and we have three lovely children, aged 15, 14 and 4(!) I am the IT
4432 Coordinator at Hiroshima International School, Japan. I am also a
4433 teacher, and in fact I spend most of my day teaching Mathematics,
4434 Science, IT, and Chemistry. I was originally a Chemistry teacher, but
4435 I have always had an interest in computers. Another teacher teaches
4436 primary school IT, but apart from that I am the only computer person,
4437 so that means I am the network manager, technician and webmaster,
4438 also, and I help people with their computer problems. I teach python
4439 to beginners in an after-school club. I am way too busy, so I really
4440 appreciate the simplicity of Skolelinux.</p>
4441
4442 <p><strong>How did you get in contact with the Skolelinux/Debian Edu
4443 project?</strong></p>
4444
4445 <p>In around 2004 or 5 I discovered the ltsp project, and set up a
4446 server in the IT lab. I wanted some way to connect it to our central
4447 samba server, which I was also quite poor at configuring. I discovered
4448 Edubuntu when it came out, but it didn't really improve my setup. I
4449 did various desperate searches for things like "school Linux server"
4450 and ended up in a document called "Drift" something or other. Reading
4451 there it became clear that Skolelinux was going to solve all my
4452 problems in one go. I was very excited, but apprehensive, because my
4453 previous attempts to install Debian had ended in failure (I used
4454 Mandrake for everything - ltsp, samba, apache, mail, ns...). I
4455 downloaded a beta version, had some problems, so subscribed to the
4456 Debian Edu list for help. I have remained subscribed ever since, and
4457 my school has run a Skolelinux network since Sarge.</p>
4458
4459 <p><strong>What do you see as the advantages of Skolelinux/Debian
4460 Edu?</strong></p>
4461
4462 <p>For me the integrated setup. This is not just the server, or the
4463 workstation, or the ltsp. Its all of them, and its all configured
4464 ready to go. I read somewhere in the early documentation that it is
4465 designed to be setup and managed by the Maths or Science teacher, who
4466 doesn't necessarily know much about computers, in a small Norwegian
4467 school. That describes me perfectly if you replace Norway with
4468 Japan.</p>
4469
4470 <p><strong>What do you see as the disadvantages of Skolelinux/Debian
4471 Edu?</strong></p>
4472
4473 <p>The desktop is fairly plain. If you compare it with Edubuntu, who
4474 have fun themes for children, or with distributions such as Mint, who
4475 make the desktop beautiful. They create a good impression on people
4476 who don't need to understand how to use any of it, but who might be
4477 important to the school. School administrators or directors, for
4478 instance, or parents. Even kids. Debian itself usually has ugly
4479 default theme settings. It was my dream a few years back that some
4480 kind of integration would allow Edubuntu to do the desktop stuff and
4481 Debian Edu the servers, but now I realise how impossible that is. A
4482 second disadvantage is that if something goes wrong, or you need to
4483 customise something, then suddenly the level of expertise required
4484 multiplies. For example, backup wasn't working properly in Lenny. It
4485 took me ages to learn how to set up my own server to do rsync backups.
4486 I am afraid of anything to do with ldap, but perhaps Gosa will
4487 help.</p>
4488
4489 <p><strong>Which free software do you use daily?</strong></p>
4490
4491 <p>Nowadays I only use Debian on my personal computers. I have one for
4492 studio work (I play guitar and write songs), running AV Linux
4493 (customised Debian) a netbook running Squeeze, and a bigger laptop
4494 still running Skolelinux Lenny workstation. I have a Tjener in my
4495 house, that's very useful for the family photos and music. At school
4496 the students only use Skolelinux. (Some teachers and the office still
4497 have windows). So that means we only use free software all day every
4498 day. Open office, The GIMP, Firefox/Iceweasel, VLC and Audacity are
4499 installed on every computer in school, irrespective of OS. We also
4500 have Koha on Debian for the library, and Apache, Moodle, b2evolution
4501 and Etomite on Debian for the www. The firewall is Untangle.</p>
4502
4503 <p><strong>Which strategy do you believe is the right one to use to
4504 get schools to use free software?</strong></p>
4505
4506 <p>Current trends are in our favour. Open source is big in industry,
4507 and ordinary people have heard of it. The spread of Android and the
4508 popularity of Apple have helped to weaken the impression that you have
4509 to have Microsoft on everything. People complain to me much less about
4510 file formats and Word than they did 5 years ago. The Edu aspect is
4511 also a selling point. This is all customised for schools. Where is the
4512 Windows-edu, or the Mac-edu? But of course the main attraction is
4513 budget.The trick is to convince people that the quality is not
4514 compromised when you stop paying and use free software instead. That
4515 is one reason why I say the desktop experience is a weakness. People
4516 are not impressed when their USB drive doesn't work, or their browser
4517 doesn't play flash, for example.</p>
4518
4519 </div>
4520 <div class="tags">
4521
4522
4523 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>.
4524
4525
4526 </div>
4527 </div>
4528 <div class="padding"></div>
4529
4530 <div class="entry">
4531 <div class="title">
4532 <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>
4533 </div>
4534 <div class="date">
4535 7th March 2012
4536 </div>
4537 <div class="body">
4538 <!-- Video HTML based on http://www.diveintohtml5.net/video.html -->
4539
4540 <p>One of the Debian Edu developers, Wolfgang Schweer, just created a
4541 screen cast documenting how to create a lot of new users in LDAP on
4542 Debian Edu Squeeze. The video is embedded here in quarter size, and
4543 also available from <a href="http://vimeo.com/37675399">vimeo</a> and
4544 download as a
4545 <a href="http://ftp.skolelinux.org/skolelinux/press/screencasts/2012-02-29-debian_edu_mass_create_user_accounts.ogv">Ogg
4546 Theora</a> file. Check it out below.</p>
4547
4548 <p><video id="gosa-mass-user-create-movie" width="256" height="184" preload controls>
4549 <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"' />
4550 <p>Download video as
4551 <a href="http://ftp.skolelinux.org/skolelinux/press/screencasts/2012-02-29-debian_edu_mass_create_user_accounts.ogv">Ogg</a>.</p>
4552 </video></p>
4553
4554 </div>
4555 <div class="tags">
4556
4557
4558 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>.
4559
4560
4561 </div>
4562 </div>
4563 <div class="padding"></div>
4564
4565 <div class="entry">
4566 <div class="title">
4567 <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>
4568 </div>
4569 <div class="date">
4570 4th March 2012
4571 </div>
4572 <div class="body">
4573 <p>This weekend we wrapped up and published the third release
4574 candidate for <a href="http://www.skolelinux.org/">Debian Edu /
4575 Skolelinux</a> based on Squeeze. The full announcement is
4576 <a href="http://lists.debian.org/debian-edu-announce/2012/03/msg00000.html">available</a>
4577 from the project announcement list. Check it out if you
4578 need a software solution for your school.</p>
4579
4580 </div>
4581 <div class="tags">
4582
4583
4584 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>.
4585
4586
4587 </div>
4588 </div>
4589 <div class="padding"></div>
4590
4591 <div class="entry">
4592 <div class="title">
4593 <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>
4594 </div>
4595 <div class="date">
4596 3rd March 2012
4597 </div>
4598 <div class="body">
4599 <p>Many years ago, the <a href="http://www.skolelinux.org/">Skolelinux
4600 / Debian Edu project</a> initiated a student project to create a tool
4601 for making stop motion movies. The proposal came from a teacher
4602 needing such tool on Skolelinux. The project, called "stopmotion",
4603 was manned by two extraordinary students and won a school award and a
4604 national aware with this great project. The project was initiated and
4605 mentored by Herman Robak, and manned by the students Bjørn Erik Nilsen
4606 and Fredrik Berg Kjølstad. They got in touch with people at Aardman
4607 Animation studio and received feedback on how professionals would like
4608 such stopmotion tool to work, and the end result was and is used by
4609 animators around the globe. But as is usual after studying, both got
4610 jobs and went elsewhere, and did not have time to properly tend to the
4611 project, and it has been lingering for a few years now. Until last
4612 year...</p>
4613
4614 <p>Last year some of the users got together with Herman, and moved the
4615 project to Sourceforge and in effect restarted the project under a new
4616 name,
4617 <a href="http://sourceforge.net/projects/linuxstopmotion/">linuxstopmotion</a>.
4618 The name change was done to make it possible to find the project using
4619 Internet search engines (try to search for 'stopmotion' to see what I
4620 mean). I've been following
4621 <a href="https://lists.sourceforge.net/lists/listinfo/linuxstopmotion-community">the
4622 mailing list</a> and the improvement already in place and planned for
4623 the future is encouraging. If you want to make stop motion movies.
4624 Check it out. :)</p>
4625
4626 </div>
4627 <div class="tags">
4628
4629
4630 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>.
4631
4632
4633 </div>
4634 </div>
4635 <div class="padding"></div>
4636
4637 <div class="entry">
4638 <div class="title">
4639 <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>
4640 </div>
4641 <div class="date">
4642 27th February 2012
4643 </div>
4644 <div class="body">
4645 <p>This weekend we wrapped up and published the second release
4646 candidate for <a href="http://www.skolelinux.org/">Debian Edu /
4647 Skolelinux</a> based on Squeeze. The full announcement did for some
4648 reason not make it the project announcement list, but is
4649 <a href="http://lists.debian.org/debian-devel-announce/2012/02/msg00015.html">available</a>
4650 from the Debian development announcement list. Check it out if you
4651 need a software solution for your school.</p>
4652
4653 </div>
4654 <div class="tags">
4655
4656
4657 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>.
4658
4659
4660 </div>
4661 </div>
4662 <div class="padding"></div>
4663
4664 <div class="entry">
4665 <div class="title">
4666 <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>
4667 </div>
4668 <div class="date">
4669 19th February 2012
4670 </div>
4671 <div class="body">
4672 <p>One week delayed due to DVD build problems, we managed today to
4673 wrap up and publish the first release candidate for
4674 <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a> based
4675 on Squeeze. The full announcement is
4676 <a href="http://lists.debian.org/debian-edu-announce/2012/02/msg00001.html">available</a>
4677 on the project announcement list. Check it out if you need a software
4678 solution for your school.</p>
4679
4680 </div>
4681 <div class="tags">
4682
4683
4684 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>.
4685
4686
4687 </div>
4688 </div>
4689 <div class="padding"></div>
4690
4691 <div class="entry">
4692 <div class="title">
4693 <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>
4694 </div>
4695 <div class="date">
4696 14th February 2012
4697 </div>
4698 <div class="body">
4699 <p>Once in a while my home server have disk problems. Thanks to Linux
4700 Software RAID, I have not lost data yet (but
4701 <a href="http://comments.gmane.org/gmane.linux.raid/34532">I was
4702 close</a> this summer :). But once a disk is starting to behave
4703 funny, a practical problem present itself. How to get from the Linux
4704 device name (like /dev/sdd) to something that can be used to identify
4705 the disk when the computer is turned off? In my case I have SATA
4706 disks with a unique ID printed on the label. All I need is a way to
4707 figure out how to query the disk to get the ID out.</p>
4708
4709 <p>After fumbling a bit, I
4710 <a href="http://www.cyberciti.biz/faq/linux-getting-scsi-ide-harddisk-information/">found
4711 that hdparm -I</a> will report the disk serial number, which is
4712 printed on the disk label. The following (almost) one-liner can be
4713 used to look up the ID of all the failed disks:</p>
4714
4715 <blockquote><pre>
4716 for d in $(cat /proc/mdstat |grep '(F)'|tr ' ' "\n"|grep '(F)'|cut -d\[ -f1|sort -u);
4717 do
4718 printf "Failed disk $d: "
4719 hdparm -I /dev/$d |grep 'Serial Num'
4720 done
4721 </blockquote></pre>
4722
4723 <p>Putting it here to make sure I do not have to search for it the
4724 next time, and in case other find it useful.</p>
4725
4726 <p>At the moment I have two failing disk. :(</p>
4727
4728 <blockquote><pre>
4729 Failed disk sdd1: Serial Number: WD-WCASJ1860823
4730 Failed disk sdd2: Serial Number: WD-WCASJ1860823
4731 Failed disk sde2: Serial Number: WD-WCASJ1840589
4732 </blockquote></pre>
4733
4734 <p>The last time I had failing disks, I added the serial number on
4735 labels I printed and stuck on the short sides of each disk, to be able
4736 to figure out which disk to take out of the box without having to
4737 remove each disk to look at the physical vendor label. The vendor
4738 label is at the top of the disk, which is hidden when the disks are
4739 mounted inside my box.</p>
4740
4741 <p>I really wish the check_linux_raid Nagios plugin for checking Linux
4742 Software RAID in the
4743 <a href="http://packages.qa.debian.org/n/nagios-plugins.html">nagios-plugins-standard</a>
4744 debian package would look up this value automatically, as it would
4745 make the plugin a lot more useful when my disks fail. At the moment
4746 it only report a failure when there are no more spares left (it really
4747 should warn as soon as a disk is failing), and it do not tell me which
4748 disk(s) is failing when the RAID is running short on disks.</p>
4749
4750 </div>
4751 <div class="tags">
4752
4753
4754 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>.
4755
4756
4757 </div>
4758 </div>
4759 <div class="padding"></div>
4760
4761 <div class="entry">
4762 <div class="title">
4763 <a href="http://people.skolelinux.org/pere/blog/Automatic_proxy_configuration_with_Debian_Edu___Skolelinux.html">Automatic proxy configuration with Debian Edu / Skolelinux</a>
4764 </div>
4765 <div class="date">
4766 13th February 2012
4767 </div>
4768 <div class="body">
4769 <p>New in the Squeeze version of
4770 <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a> is the
4771 ability for clients to automatically configure their proxy settings
4772 based on their environment. We want all systems on the client to use
4773 the WPAD based proxy definition fetched from <tt>http://wpad/wpad.dat</tt>, to
4774 allow sites to control the proxy setting from a central place and make
4775 sure clients do not have hard coded proxy settings. The schools can
4776 change the global proxy setting by editing
4777 <tt>tjener:/etc/debian-edu/www/wpad.dat</tt> and the change propagate
4778 to all Debian Edu clients in the network.</p>
4779
4780 <p>The problem is that some systems do not understand the WPAD system.
4781 In other words, how do one get from a WPAD file like this (this is a
4782 simple one, they can run arbitrary code):</p>
4783
4784 <blockquote><pre>
4785 function FindProxyForURL(url, host)
4786 {
4787 if (!isResolvable(host) ||
4788 isPlainHostName(host) ||
4789 dnsDomainIs(host, ".intern"))
4790 return "DIRECT";
4791 else
4792 return "PROXY webcache:3128; DIRECT";
4793 }
4794 </pre></blockquote>
4795
4796 <p>to a proxy setting in the process environment looking like this:</p>
4797
4798 <blockquote><pre>
4799 http_proxy=http://webcache:3128/
4800 ftp_proxy=http://webcache:3128/
4801 </pre></blockquote>
4802
4803 <p>To do this conversion I developed a perl script that will execute
4804 the javascript fragment in the WPAD file and return the proxy that
4805 would be used for
4806 <tt><a href="http://www.debian.org/">http://www.debian.org/</a></tt>,
4807 and insert this extracted proxy URL in <tt>/etc/environment</tt> and
4808 <tt>/etc/apt/apt.conf</tt>. The perl script wpad-extract work just
4809 fine in Squeeze, but in Wheezy the library it need to run the
4810 javascript code is <a href="http://bugs.debian.org/631045">no longer
4811 able to build</a> because the C library it depended on is now a C++
4812 library. I hope someone find a solution to that problem before Wheezy
4813 is frozen. An alternative would be for us to rewrite wpad-extract to
4814 use some other javascript library currently working in Wheezy, but no
4815 known alternative is known at the moment.</p>
4816
4817 <p>This automatic proxy system allow the roaming workstation (aka
4818 laptop) setup in Debian Edu/Squeeze to use the proxy when the laptop
4819 is connected to the backbone network in a Debian Edu setup, and to
4820 automatically use any proxy present and announced using the WPAD
4821 feature when it is connected to other networks. And if no proxy is
4822 announced, direct connections will be used instead.</p>
4823
4824 <p>Silently using a proxy announced on the network might be a privacy
4825 or security problem. But those controlling DHCP and DNS on a network
4826 could just as easily set up a transparent proxy, and force all HTTP
4827 and FTP connections to use a proxy anyway, so I consider that
4828 distinction to be academic. If you are afraid of using the wrong
4829 proxy, you should avoid connecting to the network in question in the
4830 first place. In Debian Edu, the proxy setup is updated using dhcp and
4831 ifupdown hooks, to make sure the configuration is updated every time
4832 the network setup changes.</p>
4833
4834 <p>The WPAD system is documented in a
4835 <a href="http://tools.ietf.org/html/draft-ietf-wrec-wpad-01">IETF
4836 draft</a> and a
4837 <a href="http://en.wikipedia.org/wiki/Web_Proxy_Autodiscovery_Protocol">Wikipedia
4838 page</a> for those that want to learn more.</p>
4839
4840 </div>
4841 <div class="tags">
4842
4843
4844 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>.
4845
4846
4847 </div>
4848 </div>
4849 <div class="padding"></div>
4850
4851 <div class="entry">
4852 <div class="title">
4853 <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>
4854 </div>
4855 <div class="date">
4856 5th February 2012
4857 </div>
4858 <div class="body">
4859 <p>Since the Lenny version of
4860 <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a>, a
4861 feature to save power have been included. It is as simple as it is
4862 practical: Shut down unused clients at night, and turn them on again
4863 in the morning. This is done using the
4864 <a href="http://packages.qa.debian.org/s/shutdown-at-night.html">shutdown-at-night</a> Debian package.</p>
4865
4866 <p>To enable this feature on a client, the machine need to be added to
4867 the netgroup shutdown-at-night-hosts. For Debian Edu, this is done in
4868 LDAP, and once this is in place, the machine in question will check
4869 every hour from 16:00 until 06:00 to see if the machine is unused, and
4870 shut it down if it is. If the hardware in question is supported by
4871 the
4872 <a href="http://packages.qa.debian.org/n/nvram-wakeup.html">nvram-wakeup</a>
4873 package, the BIOS is told to turn the machine back on around 07:00 +-
4874 10 minutes. If this isn't working, one can configure wake-on-lan to
4875 try to turn on the client. The wake-on-lan option is only documented
4876 and not enabled by default in Debian Edu.</p>
4877
4878 <p>It is important to not turn all machines on at once, as this can
4879 blow a fuse if several computers are connected to the same fuse like
4880 the common setup for a classroom. The nvram-wakeup method only work
4881 for machines with a functioning hardware/BIOS clock. I've seen old
4882 machines where the BIOS battery were dead and the hardware clock were
4883 starting from 0 (or was it 1990?) every boot. If you have one of
4884 those, you have to turn on the computer manually.</p>
4885
4886 <p>The shutdown-at-night package is completely self contained, and can
4887 also be used outside the Debian Edu environment. For those without a
4888 central LDAP server with netgroups, one can instead touch the file
4889 <tt>/etc/shutdown-at-night/shutdown-at-night</tt> to enable it.
4890 Perhaps you too can use it to save some power?</p>
4891
4892 </div>
4893 <div class="tags">
4894
4895
4896 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>.
4897
4898
4899 </div>
4900 </div>
4901 <div class="padding"></div>
4902
4903 <div class="entry">
4904 <div class="title">
4905 <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>
4906 </div>
4907 <div class="date">
4908 4th February 2012
4909 </div>
4910 <div class="body">
4911 <p>I am happy to announce that finally we managed today to wrap up and
4912 publish the third beta version of
4913 <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a> based
4914 on Squeeze. If you want to test a LDAP backed Kerberos server with
4915 out of the box PXE configuration for running diskless machines and
4916 installing new machines, check it out. If you need a software
4917 solution for your school, check it out too. The full announcement is
4918 <a href="http://lists.debian.org/debian-edu-announce/2012/02/msg00000.html">available</a>
4919 on the project announcement list.</p>
4920
4921 <p>I am very happy to report these changes and improvements since
4922 beta2 (there are more, see announcement for full list):</p>
4923
4924 <ul>
4925
4926 <li>It is now possible to change the pre-configured IP subnet from
4927 10.0.0.0/8 to something else by using the subnet-change tool after
4928 the installation.</li>
4929
4930 <li>Too full partitions are now automatically extended on the Main
4931 Server, based on the rules specified in /etc/fsautoresizetab.</li>
4932
4933 <li>The CUPS queues are now automatically flushed every night, and all
4934 disabled queues are restarted every hour. This should cut down on
4935 the amount of manual administration needed for printers.</li>
4936
4937 <li>The set of initial users have been changed. Now a personal user
4938 for the local system administrator is created during installation
4939 instead of the previously created localadmin and super-admin users,
4940 and this user is granted administrative privileges using group
4941 membership. This reduces the number of passwords one need to keep
4942 up to date on the system.</li>
4943
4944 </ul>
4945
4946 <p>The new main server seem to work so well that I am testing it as my
4947 private DNS/LDAP/Kerberos/PXE/LTSP server at home. I will use it look
4948 for issues we could fix to polish Debian Edu even further before the
4949 final Squeeze release is published.</p>
4950
4951 <p>Next weekend the project organise a
4952 <a href="http://lists.debian.org/debian-edu-announce/2012/01/msg00001.html">developer
4953 gathering</a> in Oslo. We will continue the work on the Squeeze
4954 version, and start initial planning for the Wheezy version. Perhaps I
4955 will see you there?</p>
4956
4957 </div>
4958 <div class="tags">
4959
4960
4961 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>.
4962
4963
4964 </div>
4965 </div>
4966 <div class="padding"></div>
4967
4968 <div class="entry">
4969 <div class="title">
4970 <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>
4971 </div>
4972 <div class="date">
4973 27th January 2012
4974 </div>
4975 <div class="body">
4976 <p>With some computer hardware, one need non-free firmware blobs.
4977 This is the sad fact of todays computers. In the next version of
4978 <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a> based
4979 on Squeeze, we provide several scripts and modifications to make
4980 firmware blobs easier to handle. The common use case I run into is a
4981 laptop with a wireless network card requiring non-free firmware to
4982 work, but there are other use cases as well.</p>
4983
4984 <p>First and foremost, Debian Edu provide ISO images for DVD and CD
4985 with all firmware packages in the Debian sections main and non-free
4986 included, to ensure debian-installer find and can install all of them
4987 during installation. This take care firmware for network devices used
4988 by the installer when installing from from local media. But for
4989 example multimedia devices are not activated in the installer and are
4990 not taken care of by this.</p>
4991
4992 <p>For non-network devices, we provide the script
4993 <tt>/usr/share/debian-edu-config/tools/auto-addfirmware</tt> which
4994 search through the <tt>dmesg</tt> output for drivers requesting extra
4995 firmware. The firmware file name is looked up in the Contents-ARCH.gz
4996 file available in the package repository, and the packages providing
4997 the requested firmware file(s) is installed. I have proposed to do
4998 something similar in debian-installer (BTS report
4999 <a href="http://bugs.debian.org/655507">#655507</a>), to allow PXE
5000 installs of Debian to handle firmware installation better. Run the
5001 script as root from the command line to fetch and install the needed
5002 firmware packages.</p>
5003
5004 <p>Debian Edu provide PXE installation of Debian out of the box, and
5005 because some machines need firmware to get their network cards
5006 working, the installation initrd some times need extra firmware
5007 included to be able to install at all. To fill the PXE installation
5008 initrd with extra firmware, the
5009 <tt>/usr/share/debian-edu-config/tools/pxe-addfirmware</tt> script is
5010 provided. Again, just run it as root on the command line to fill the
5011 PXE initrd with firmware packages.</p>
5012
5013 <p>Last, some LTSP clients might also need firmware to get their
5014 network cards working. For this,
5015 <tt>/usr/share/debian-edu-config/tools/ltsp-addfirmware</tt> is
5016 provided to update the LTSP initrd with firmware blobs. It is used
5017 the same way as the other firmware related tools.</p>
5018
5019 <p>At the moment, we do not run any of these during installation. We
5020 do not know if this is acceptable for the local administrator to use
5021 non-free software, and it is their choice.</p>
5022
5023 <p>We plan to release beta3 this weekend. You might want to give it a
5024 try.</p>
5025
5026 </div>
5027 <div class="tags">
5028
5029
5030 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>.
5031
5032
5033 </div>
5034 </div>
5035 <div class="padding"></div>
5036
5037 <div class="entry">
5038 <div class="title">
5039 <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>
5040 </div>
5041 <div class="date">
5042 25th January 2012
5043 </div>
5044 <div class="body">
5045 <p>The next version of <a href="http://www.skolelinux.org/">Debian Edu
5046 / Skolelinux</a> will include a new tool
5047 <tt>sitesummary2ldapdhcp</tt>, which can be used to quickly set up all
5048 the computers in a school without much manual labour. Here is a short
5049 summary on how to use it to set up a new school.</p>
5050
5051 <p>First, install a combined Main Server and Thin Client Server as the
5052 central server in the network. Next, PXE boot all the client machines
5053 as thin clients and wait 5 minutes after the last client booted to
5054 allow the clients to report their existence to the central server. When
5055 this is done, log on to the central server and run
5056 <tt>sitesummary2ldapdhcp -a</tt> in the <tt>konsole</tt> to use the
5057 collected information to generate system objects in LDAP. The output
5058 will look similar to this:</p>
5059
5060 <p><blockquote><pre>
5061 % sitesummary2ldapdhcp -a
5062 info: Updating machine tjener.intern [10.0.2.2] id ether-00:01:02:03:04:05.
5063 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.
5064
5065 Enter password if you want to activate these changes, and ^c to abort.
5066
5067 Connecting to LDAP as cn=admin,ou=ldap-access,dc=skole,dc=skolelinux,dc=no
5068 enter password: *******
5069 %
5070 </pre></blockquote></p>
5071
5072 <p>After providing the LDAP administrative password (the same as the
5073 root password set during installation), the LDAP database will be
5074 populated with system objects for each PXE booted machine with
5075 automatically generated names. The final step to set up the school is
5076 then to log into <a href="https://oss.gonicus.de/labs/gosa/">GOsa</a>,
5077 the web based user, group and system administration system to change
5078 system names, add systems to the correct host groups and finally
5079 enable DHCP and DNS for the systems. All clients that should be used
5080 as diskless workstations should be added to the workstation-hosts
5081 group. After this is done, all computers can be booted again via PXE
5082 and get their assigned names and group based configuration
5083 automatically.</p>
5084
5085 <p>We plan to release beta3 with the updated version of this feature
5086 enabled this weekend. You might want to give it a try.</p>
5087
5088 <p>Update 2012-01-28: When calling sitesummary2ldapdhcp to add new
5089 hosts, one need to add the option -a. I forgot to mention this in my
5090 original text, and have added it to the text now.</p>
5091
5092 </div>
5093 <div class="tags">
5094
5095
5096 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>.
5097
5098
5099 </div>
5100 </div>
5101 <div class="padding"></div>
5102
5103 <div class="entry">
5104 <div class="title">
5105 <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>
5106 </div>
5107 <div class="date">
5108 10th January 2012
5109 </div>
5110 <div class="body">
5111 <p>In the Squeeze version of
5112 <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a> soon
5113 to be released, users of the system will get their default browser
5114 start page set from LDAP, allowing the system administrator to point
5115 all users to the school web page by updating one setting in LDAP. In
5116 addition to setting the default start page when a machine boots, users
5117 are shown the same page as a welcome page when they log in for the
5118 first time.</p>
5119
5120 <p>The LDAP object dc=skole,dc=skolelinux,dc=no have an attribute
5121 labeledURI with "http://www/ LDAP for Debian Edu/Skolelinux" as the
5122 default content. By changing this value to another URL, all users get
5123 to see the page behind this new URL.</p>
5124
5125 <p>An easy way to update it is by using the ldapvi tool. It can be
5126 called as "<tt>ldapvi -ZD '(cn=admin)'</tt>' to update LDAP with the
5127 new setting.</p>
5128
5129 <p>We have written the code to adjust the default start page and show
5130 the welcome page, and I wonder if there is an easier way to do this
5131 from within Iceweasel instead.</p>
5132
5133 </div>
5134 <div class="tags">
5135
5136
5137 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>.
5138
5139
5140 </div>
5141 </div>
5142 <div class="padding"></div>
5143
5144 <div class="entry">
5145 <div class="title">
5146 <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>
5147 </div>
5148 <div class="date">
5149 7th January 2012
5150 </div>
5151 <div class="body">
5152 <p>I am happy to announce that today we managed to wrap up and publish
5153 the second beta version of
5154 <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a>. If
5155 you want to test a LDAP backed Kerberos server with out of the box PXE
5156 configuration for running diskless machines and installing new
5157 machines, check it out. If you need a software solution for your
5158 school, check it out too. The full announcement is
5159 <a href="http://lists.debian.org/debian-edu-announce/2012/01/msg00000.html">available</a>
5160 on the project announcement list.</p>
5161
5162 </div>
5163 <div class="tags">
5164
5165
5166 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>.
5167
5168
5169 </div>
5170 </div>
5171 <div class="padding"></div>
5172
5173 <div class="entry">
5174 <div class="title">
5175 <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>
5176 </div>
5177 <div class="date">
5178 3rd January 2012
5179 </div>
5180 <div class="body">
5181 <p>During christmas, I have been working getting the next version of
5182 <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a> ready
5183 for release. The initial problem I looked at was particularly
5184 interesting.</p>
5185
5186 <P>The installer would hang at the end when it was doing it
5187 post-installation configuration, and whatevery I did to try to find
5188 the cause and fix it always worked while I tested it, but never when I
5189 integrated it into the installer and ran the installation from
5190 scratch. I would try to restart processes, close file descriptors,
5191 remove or create files, and the installer would always unblock and
5192 wrap up its tasks.</p>
5193
5194 <p>Eventually the cause was found. The kernel was simply running out
5195 of entropy, causing the Kerberos setup to hang waiting for more.
5196 Pressing keys was adding entropy to the kernel, and thus all my tries
5197 to fix the problem worked not because what I was typing to fix it, but
5198 because I was typing.</P>
5199
5200 <p>The fix I implemented was to add a background process looking at
5201 the level of entropy in the kernel (by checking
5202 /proc/sys/kernel/random/entropy_avail), and if it was too small, the
5203 installer will flush the kernel file buffers and do 'find /' to
5204 generate some disk IO. Disk IO generate entropy in the kernel, and is
5205 one of the few things that can be initated from within the system to
5206 generate entropy.</p>
5207
5208 <p>The fix is in
5209 <a href="http://wiki.debian.org/DebianEdu/Documentation/Squeeze/Installation">beta1
5210 of the Debian Edu/Squeeze</a> version, and we
5211 <a href="http://wiki.debian.org/DebianEdu">welcome more testers and
5212 developers</a>. We plan to release beta2 this weekend.</p>
5213
5214 </div>
5215 <div class="tags">
5216
5217
5218 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>.
5219
5220
5221 </div>
5222 </div>
5223 <div class="padding"></div>
5224
5225 <div class="entry">
5226 <div class="title">
5227 <a href="http://people.skolelinux.org/pere/blog/Automatically_upgrading_server_firmware_on_Dell_PowerEdge.html">Automatically upgrading server firmware on Dell PowerEdge</a>
5228 </div>
5229 <div class="date">
5230 21st November 2011
5231 </div>
5232 <div class="body">
5233 <p>At work we have heaps of servers. I believe the total count is
5234 around 1000 at the moment. To be able to get help from the vendors
5235 when something go wrong, we want to keep the firmware on the servers
5236 up to date. If the firmware isn't the latest and greatest, the
5237 vendors typically refuse to start debugging any problems until the
5238 firmware is upgraded. So before every reboot, we want to upgrade the
5239 firmware, and we would really like everyone handling servers at the
5240 university to do this themselves when they plan to reboot a machine.
5241 For that to happen we at the unix server admin group need to provide
5242 the tools to do so.</p>
5243
5244 <p>To make firmware upgrading easier, I am working on a script to
5245 fetch and install the latest firmware for the servers we got. Most of
5246 our hardware are from Dell and HP, so I have focused on these servers
5247 so far. This blog post is about the Dell part.</P>
5248
5249 <p>On the Dell FTP site I was lucky enough to find
5250 <a href="ftp://ftp.us.dell.com/catalog/Catalog.xml.gz">an XML file</a>
5251 with firmware information for all 11th generation servers, listing
5252 which firmware should be used on a given model and where on the FTP
5253 site I can find it. Using a simple perl XML parser I can then
5254 download the shell scripts Dell provides to do firmware upgrades from
5255 within Linux and reboot when all the firmware is primed and ready to
5256 be activated on the first reboot.</p>
5257
5258 <p>This is the Dell related fragment of the perl code I am working on.
5259 Are there anyone working on similar tools for firmware upgrading all
5260 servers at a site? Please get in touch and lets share resources.</p>
5261
5262 <p><pre>
5263 #!/usr/bin/perl
5264 use strict;
5265 use warnings;
5266 use File::Temp qw(tempdir);
5267 BEGIN {
5268 # Install needed RHEL packages if missing
5269 my %rhelmodules = (
5270 'XML::Simple' => 'perl-XML-Simple',
5271 );
5272 for my $module (keys %rhelmodules) {
5273 eval "use $module;";
5274 if ($@) {
5275 my $pkg = $rhelmodules{$module};
5276 system("yum install -y $pkg");
5277 eval "use $module;";
5278 }
5279 }
5280 }
5281 my $errorsto = 'pere@hungry.com';
5282
5283 upgrade_dell();
5284
5285 exit 0;
5286
5287 sub run_firmware_script {
5288 my ($opts, $script) = @_;
5289 unless ($script) {
5290 print STDERR "fail: missing script name\n";
5291 exit 1
5292 }
5293 print STDERR "Running $script\n\n";
5294
5295 if (0 == system("sh $script $opts")) { # FIXME correct exit code handling
5296 print STDERR "success: firmware script ran succcessfully\n";
5297 } else {
5298 print STDERR "fail: firmware script returned error\n";
5299 }
5300 }
5301
5302 sub run_firmware_scripts {
5303 my ($opts, @dirs) = @_;
5304 # Run firmware packages
5305 for my $dir (@dirs) {
5306 print STDERR "info: Running scripts in $dir\n";
5307 opendir(my $dh, $dir) or die "Unable to open directory $dir: $!";
5308 while (my $s = readdir $dh) {
5309 next if $s =~ m/^\.\.?/;
5310 run_firmware_script($opts, "$dir/$s");
5311 }
5312 closedir $dh;
5313 }
5314 }
5315
5316 sub download {
5317 my $url = shift;
5318 print STDERR "info: Downloading $url\n";
5319 system("wget --quiet \"$url\"");
5320 }
5321
5322 sub upgrade_dell {
5323 my @dirs;
5324 my $product = `dmidecode -s system-product-name`;
5325 chomp $product;
5326
5327 if ($product =~ m/PowerEdge/) {
5328
5329 # on RHEL, these pacakges are needed by the firwmare upgrade scripts
5330 system('yum install -y compat-libstdc++-33.i686 libstdc++.i686 libxml2.i686 procmail');
5331
5332 my $tmpdir = tempdir(
5333 CLEANUP => 1
5334 );
5335 chdir($tmpdir);
5336 fetch_dell_fw('catalog/Catalog.xml.gz');
5337 system('gunzip Catalog.xml.gz');
5338 my @paths = fetch_dell_fw_list('Catalog.xml');
5339 # -q is quiet, disabling interactivity and reducing console output
5340 my $fwopts = "-q";
5341 if (@paths) {
5342 for my $url (@paths) {
5343 fetch_dell_fw($url);
5344 }
5345 run_firmware_scripts($fwopts, $tmpdir);
5346 } else {
5347 print STDERR "error: Unsupported Dell model '$product'.\n";
5348 print STDERR "error: Please report to $errorsto.\n";
5349 }
5350 chdir('/');
5351 } else {
5352 print STDERR "error: Unsupported Dell model '$product'.\n";
5353 print STDERR "error: Please report to $errorsto.\n";
5354 }
5355 }
5356
5357 sub fetch_dell_fw {
5358 my $path = shift;
5359 my $url = "ftp://ftp.us.dell.com/$path";
5360 download($url);
5361 }
5362
5363 # Using ftp://ftp.us.dell.com/catalog/Catalog.xml.gz, figure out which
5364 # firmware packages to download from Dell. Only work for Linux
5365 # machines and 11th generation Dell servers.
5366 sub fetch_dell_fw_list {
5367 my $filename = shift;
5368
5369 my $product = `dmidecode -s system-product-name`;
5370 chomp $product;
5371 my ($mybrand, $mymodel) = split(/\s+/, $product);
5372
5373 print STDERR "Finding firmware bundles for $mybrand $mymodel\n";
5374
5375 my $xml = XMLin($filename);
5376 my @paths;
5377 for my $bundle (@{$xml->{SoftwareBundle}}) {
5378 my $brand = $bundle->{TargetSystems}->{Brand}->{Display}->{content};
5379 my $model = $bundle->{TargetSystems}->{Brand}->{Model}->{Display}->{content};
5380 my $oscode;
5381 if ("ARRAY" eq ref $bundle->{TargetOSes}->{OperatingSystem}) {
5382 $oscode = $bundle->{TargetOSes}->{OperatingSystem}[0]->{osCode};
5383 } else {
5384 $oscode = $bundle->{TargetOSes}->{OperatingSystem}->{osCode};
5385 }
5386 if ($mybrand eq $brand && $mymodel eq $model && "LIN" eq $oscode)
5387 {
5388 @paths = map { $_->{path} } @{$bundle->{Contents}->{Package}};
5389 }
5390 }
5391 for my $component (@{$xml->{SoftwareComponent}}) {
5392 my $componenttype = $component->{ComponentType}->{value};
5393
5394 # Drop application packages, only firmware and BIOS
5395 next if 'APAC' eq $componenttype;
5396
5397 my $cpath = $component->{path};
5398 for my $path (@paths) {
5399 if ($cpath =~ m%/$path$%) {
5400 push(@paths, $cpath);
5401 }
5402 }
5403 }
5404 return @paths;
5405 }
5406 </pre>
5407
5408 <p>The code is only tested on RedHat Enterprise Linux, but I suspect
5409 it could work on other platforms with some tweaking. Anyone know a
5410 index like Catalog.xml is available from HP for HP servers? At the
5411 moment I maintain a similar list manually and it is quickly getting
5412 outdated.</p>
5413
5414 </div>
5415 <div class="tags">
5416
5417
5418 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>.
5419
5420
5421 </div>
5422 </div>
5423 <div class="padding"></div>
5424
5425 <div class="entry">
5426 <div class="title">
5427 <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>
5428 </div>
5429 <div class="date">
5430 7th October 2011
5431 </div>
5432 <div class="body">
5433 <p>Here in Norway the public libraries are debating with the
5434 publishing houses how to handle electronic books. Surprisingly, the
5435 libraries seem to be willing to accept digital restriction mechanisms
5436 (DRM) on books and renting e-books with artificial scarcity from the
5437 publishing houses. Time limited renting (2-3 years) is one proposed
5438 model, and only allowing X borrowers for each book is another.
5439 Personally I find it amazing that libraries are even considering such
5440 models.</p>
5441
5442 <p>Anyway, while reading <a href="http://boklaben.no/?p=220">part of
5443 this debate</a>, it occurred to me that someone should present a more
5444 sensible approach to the libraries, to allow its borrowers to get used
5445 to a better model. The idea is simple:</p>
5446
5447 <p>Create a computer system for the libraries, either in the form of a
5448 Live DVD or a installable distribution, that provide a simple kiosk
5449 solution to hand out free e-books. As a start, the books distributed
5450 by <a href="http://www.gutenberg.org/">Project Gutenberg</a> (about
5451 36,000 books), <a href="http://runeberg.org/">Project Runenberg</a>
5452 (1149 books) and <a href="http://www.archive.org/details/texts">The
5453 Internet Archive</a> (3,033,748 books) could be included, but any book
5454 where the copyright has expired or with a free licence could be
5455 distributed.</p>
5456
5457 <p>The computer system would make it easy to:</p>
5458
5459 <ul>
5460
5461 <li>Copy e-books into a USB stick, reading tablets, cell phones and
5462 other relevant equipment.</li>
5463
5464 <li>Show the books for reading on the the screen in the library.</li>
5465
5466 </ul>
5467
5468 <p>In addition to such kiosk solution, there should probably be a web
5469 site as well to allow people easy access to these books without
5470 visiting the library. The site would be the distribution point for
5471 the kiosk systems, which would connect regularly to fetch any new
5472 books available.</p>
5473
5474 <p>Are there anyone working on a system like this? I guess it would
5475 fit any library in the world, and not just the Norwegian public
5476 libraries. :)</p>
5477
5478 </div>
5479 <div class="tags">
5480
5481
5482 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>.
5483
5484
5485 </div>
5486 </div>
5487 <div class="padding"></div>
5488
5489 <div class="entry">
5490 <div class="title">
5491 <a href="http://people.skolelinux.org/pere/blog/Ripping_problematic_DVDs_using_dvdbackup_and_genisoimage.html">Ripping problematic DVDs using dvdbackup and genisoimage</a>
5492 </div>
5493 <div class="date">
5494 17th September 2011
5495 </div>
5496 <div class="body">
5497 <p>For convenience, I want to store copies of all my DVDs on my file
5498 server. It allow me to save shelf space flat while still having my
5499 movie collection easily available. It also make it possible to let
5500 the kids see their favourite DVDs without wearing the physical copies
5501 down. I prefer to store the DVDs as ISOs to keep the DVD menu and
5502 subtitle options intact. It also ensure that the entire film is one
5503 file on the disk. As this is for personal use, the ripping is
5504 perfectly legal here in Norway.</p>
5505
5506 <p>Normally I rip the DVDs using dd like this:</p>
5507
5508 <blockquote><pre>
5509 #!/bin/sh
5510 # apt-get install lsdvd
5511 title=$(lsdvd 2>/dev/null|awk '/Disc Title: / {print $3}')
5512 dd if=/dev/dvd of=/storage/dvds/$title.iso bs=1M
5513 </pre></blockquote>
5514
5515 <p>But some DVDs give a input/output error when I read it, and I have
5516 been looking for a better alternative. I have no idea why this I/O
5517 error occur, but suspect my DVD drive, the Linux kernel driver or
5518 something fishy with the DVDs in question. Or perhaps all three.</p>
5519
5520 <p>Anyway, I believe I found a solution today using dvdbackup and
5521 genisoimage. This script gave me a working ISO for a problematic
5522 movie by first extracting the DVD file system and then re-packing it
5523 back as an ISO.
5524
5525 <blockquote><pre>
5526 #!/bin/sh
5527 # apt-get install lsdvd dvdbackup genisoimage
5528 set -e
5529 tmpdir=/storage/dvds/
5530 title=$(lsdvd 2>/dev/null|awk '/Disc Title: / {print $3}')
5531 dvdbackup -i /dev/dvd -M -o $tmpdir -n$title
5532 genisoimage -dvd-video -o $tmpdir/$title.iso $tmpdir/$title
5533 rm -rf $tmpdir/$title
5534 </pre></blockquote>
5535
5536 <p>Anyone know of a better way available in Debian/Squeeze?</p>
5537
5538 <p>Update 2011-09-18: I got a tip from Konstantin Khomoutov about the
5539 readom program from the wodim package. It is specially written to
5540 read optical media, and is called like this: <tt>readom dev=/dev/dvd
5541 f=image.iso</tt>. It got 6 GB along with the problematic Cars DVD
5542 before it failed, and failed right away with a Timmy Time DVD.</p>
5543
5544 <p>Next, I got a tip from Bastian Blank about
5545 <a href="http://bblank.thinkmo.de/blog/new-software-python-dvdvideo">his
5546 program python-dvdvideo</a>, which seem to be just what I am looking
5547 for. Tested it with my problematic Timmy Time DVD, and it succeeded
5548 creating a ISO image. The git source built and installed just fine in
5549 Squeeze, so I guess this will be my tool of choice in the future.</p>
5550
5551 </div>
5552 <div class="tags">
5553
5554
5555 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>.
5556
5557
5558 </div>
5559 </div>
5560 <div class="padding"></div>
5561
5562 <div class="entry">
5563 <div class="title">
5564 <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>
5565 </div>
5566 <div class="date">
5567 4th August 2011
5568 </div>
5569 <div class="body">
5570 <p>Wouter Verhelst have some
5571 <a href="http://grep.be/blog/en/retorts/pere_kubuntu_boot">interesting
5572 comments and opinions</a> on my blog post on
5573 <a href="http://people.skolelinux.org/pere/blog/What_should_start_from__etc_rcS_d__in_Debian____almost_nothing.html">the
5574 need to clean up /etc/rcS.d/ in Debian</a> and my blog post about
5575 <a href="http://people.skolelinux.org/pere/blog/What_is_missing_in_the_Debian_desktop__or_why_my_parents_use_Kubuntu.html">the
5576 default KDE desktop in Debian</a>. I only have time to address one
5577 small piece of his comment now, and though it best to address the
5578 misunderstanding he bring forward:</p>
5579
5580 <p><blockquote>
5581 Currently, a system admin has four options: [...] boot to a
5582 single-user system (by adding 'single' to the kernel command line;
5583 this runs rcS and rc1 scripts)
5584 </blockquote></p>
5585
5586 <p>This make me believe Wouter believe booting into single user mode
5587 and booting into runlevel 1 is the same. I am not surprised he
5588 believe this, because it would make sense and is a quite sensible
5589 thing to believe. But because the boot in Debian is slightly broken,
5590 runlevel 1 do not work properly and it isn't the same as single user
5591 mode. I'll try to explain what is actually happing, but it is a bit
5592 hard to explain.</p>
5593
5594 <p>Single user mode is defined like this in /etc/inittab:
5595 "<tt>~~:S:wait:/sbin/sulogin</tt>". This means the only thing that is
5596 executed in single user mode is sulogin. Single user mode is a boot
5597 state "between" the runlevels, and when booting into single user mode,
5598 only the scripts in /etc/rcS.d/ are executed before the init process
5599 enters the single user state. When switching to runlevel 1, the state
5600 is in fact not ending in runlevel 1, but it passes through runlevel 1
5601 and end up in the single user mode (see /etc/rc1.d/S03single, which
5602 runs "init -t1 S" to switch to single user mode at the end of runlevel
5603 1. It is confusing that the 'S' (single user) init mode is not the
5604 mode enabled by /etc/rcS.d/ (which is more like the initial boot
5605 mode).</p>
5606
5607 <p>This summary might make it clearer. When booting for the first
5608 time into single user mode, the following commands are executed:
5609 "<tt>/etc/init.d/rc S; /sbin/sulogin</tt>". When booting into
5610 runlevel 1, the following commands are executed: "<tt>/etc/init.d/rc
5611 S; /etc/init.d/rc 1; /sbin/sulogin</tt>". A problem show up when
5612 trying to continue after visiting single user mode. Not all services
5613 are started again as they should, causing the machine to end up in an
5614 unpredicatble state. This is why Debian admins recommend rebooting
5615 after visiting single user mode.</p>
5616
5617 <p>A similar problem with runlevel 1 is caused by the amount of
5618 scripts executed from /etc/rcS.d/. When switching from say runlevel 2
5619 to runlevel 1, the services started from /etc/rcS.d/ are not properly
5620 stopped when passing through the scripts in /etc/rc1.d/, and not
5621 started again when switching away from runlevel 1 to the runlevels
5622 2-5. I believe the problem is best fixed by moving all the scripts
5623 out of /etc/rcS.d/ that are not <strong>required</strong> to get a
5624 functioning single user mode during boot.</p>
5625
5626 <p>I have spent several years investigating the Debian boot system,
5627 and discovered this problem a few years ago. I suspect it originates
5628 from when sysvinit was introduced into Debian, a long time ago.</p>
5629
5630 </div>
5631 <div class="tags">
5632
5633
5634 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>.
5635
5636
5637 </div>
5638 </div>
5639 <div class="padding"></div>
5640
5641 <div class="entry">
5642 <div class="title">
5643 <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>
5644 </div>
5645 <div class="date">
5646 30th July 2011
5647 </div>
5648 <div class="body">
5649 <p>In the Debian boot system, several packages include scripts that
5650 are started from /etc/rcS.d/. In fact, there is a bite more of them
5651 than make sense, and this causes a few problems. What kind of
5652 problems, you might ask. There are at least two problems. The first
5653 is that it is not possible to recover a machine after switching to
5654 runlevel 1. One need to actually reboot to get the machine back to
5655 the expected state. The other is that single user boot will sometimes
5656 run into problems because some of the subsystems are activated before
5657 the root login is presented, causing problems when trying to recover a
5658 machine from a problem in that subsystem. A minor additional point is
5659 that moving more scripts out of rcS.d/ and into the other rc#.d/
5660 directories will increase the amount of scripts that can run in
5661 parallel during boot, and thus decrease the boot time.</p>
5662
5663 <p>So, which scripts should start from rcS.d/. In short, only the
5664 scripts that _have_ to execute before the root login prompt is
5665 presented during a single user boot should go there. Everything else
5666 should go into the numeric runlevels. This means things like
5667 lm-sensors, fuse and x11-common should not run from rcS.d, but from
5668 the numeric runlevels. Today in Debian, there are around 115 init.d
5669 scripts that are started from rcS.d/, and most of them should be moved
5670 out. Do your package have one of them? Please help us make single
5671 user and runlevel 1 better by moving it.</p>
5672
5673 <p>Scripts setting up the screen, keyboard, system partitions
5674 etc. should still be started from rcS.d/, but there is for example no
5675 need to have the network enabled before the single user login prompt
5676 is presented.</p>
5677
5678 <p>As always, things are not so easy to fix as they sound. To keep
5679 Debian systems working while scripts migrate and during upgrades, the
5680 scripts need to be moved from rcS.d/ to rc2.d/ in reverse dependency
5681 order, ie the scripts that nothing in rcS.d/ depend on can be moved,
5682 and the next ones can only be moved when their dependencies have been
5683 moved first. This migration must be done sequentially while we ensure
5684 that the package system upgrade packages in the right order to keep
5685 the system state correct. This will require some coordination when it
5686 comes to network related packages, but most of the packages with
5687 scripts that should migrate do not have anything in rcS.d/ depending
5688 on them. Some packages have already been updated, like the sudo
5689 package, while others are still left to do. I wish I had time to work
5690 on this myself, but real live constrains make it unlikely that I will
5691 find time to push this forward.</p>
5692
5693 </div>
5694 <div class="tags">
5695
5696
5697 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>.
5698
5699
5700 </div>
5701 </div>
5702 <div class="padding"></div>
5703
5704 <div class="entry">
5705 <div class="title">
5706 <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>
5707 </div>
5708 <div class="date">
5709 29th July 2011
5710 </div>
5711 <div class="body">
5712 <p>While at Debconf11, I have several times during discussions
5713 mentioned the issues I believe should be improved in Debian for its
5714 desktop to be useful for more people. The use case for this is my
5715 parents, which are currently running Kubuntu which solve the
5716 issues.</p>
5717
5718 <p>I suspect these four missing features are not very hard to
5719 implement. After all, they are present in Ubuntu, so if we wanted to
5720 do this in Debian we would have a source.</p>
5721
5722 <ol>
5723
5724 <li><strong>Simple GUI based upgrade of packages.</strong> When there
5725 are new packages available for upgrades, a icon in the KDE status bar
5726 indicate this, and clicking on it will activate the simple upgrade
5727 tool to handle it. I have no problem guiding both of my parents
5728 through the process over the phone. If a kernel reboot is required,
5729 this too is indicated by the status bars and the upgrade tool. Last
5730 time I checked, nothing with the same features was working in KDE in
5731 Debian.</li>
5732
5733 <li><strong>Simple handling of missing Firefox browser
5734 plugins.</strong> When the browser encounter a MIME type it do not
5735 currently have a handler for, it will ask the user if the system
5736 should search for a package that would add support for this MIME type,
5737 and if the user say yes, the APT sources will be searched for packages
5738 advertising the MIME type in their control file (visible in the
5739 Packages file in the APT archive). If one or more packages are found,
5740 it is a simple click of the mouse to add support for the missing mime
5741 type. If the package require the user to accept some non-free
5742 license, this is explained to the user. The entire process make it
5743 more clear to the user why something do not work in the browser, and
5744 make the chances higher for the user to blame the web page authors and
5745 not the browser for any missing features.</li>
5746
5747 <li><strong>Simple handling of missing multimedia codec/format
5748 handlers.</strong> When the media players encounter a format or codec
5749 it is not supporting, a dialog pop up asking the user if the system
5750 should search for a package that would add support for it. This
5751 happen with things like MP3, Windows Media or H.264. The selection
5752 and installation procedure is very similar to the Firefox browser
5753 plugin handling. This is as far as I know implemented using a
5754 gstreamer hook. The end result is that the user easily get access to
5755 the codecs that are present from the APT archives available, while
5756 explaining more on why a given format is unsupported by Ubuntu.</li>
5757
5758 <li><strong>Better browser handling of some MIME types.</strong> When
5759 displaying a text/plain file in my Debian browser, it will propose to
5760 start emacs to show it. If I remember correctly, when doing the same
5761 in Kunbutu it show the file as a text file in the browser. At least I
5762 know Opera will show text files within the browser. I much prefer the
5763 latter behaviour.</li>
5764
5765 </ol>
5766
5767 <p>There are other nice features as well, like the simplified suite
5768 upgrader, but given that I am the one mostly doing the dist-upgrade,
5769 it do not matter much.</p>
5770
5771 <p>I really hope we could get these features in place for the next
5772 Debian release. It would require the coordinated effort of several
5773 maintainers, but would make the end user experience a lot better.</p>
5774
5775 </div>
5776 <div class="tags">
5777
5778
5779 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>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</a>.
5780
5781
5782 </div>
5783 </div>
5784 <div class="padding"></div>
5785
5786 <div class="entry">
5787 <div class="title">
5788 <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>
5789 </div>
5790 <div class="date">
5791 26th July 2011
5792 </div>
5793 <div class="body">
5794 <p>The Norwegian <a href="http://www.fiksgatami.no/">FiksGataMi</A>
5795 site is build on Debian/Squeeze, and this platform was chosen because
5796 I am most familiar with Debian (being a Debian Developer for around 10
5797 years) because it is the latest stable Debian release which should get
5798 security support for a few years.</p>
5799
5800 <p>The web service is written in Perl, and depend on some perl modules
5801 that are missing in Debian at the moment. It would be great if these
5802 modules were added to the Debian archive, allowing anyone to set up
5803 their own <a href="http://www.fixmystreet.com">FixMyStreet</a> clone
5804 in their own country using only Debian packages. The list of modules
5805 missing in Debian/Squeeze isn't very long, and I hope the perl group
5806 will find time to package the 12 modules Catalyst::Plugin::SmartURI,
5807 Catalyst::Plugin::Unicode::Encoding, Catalyst::View::TT, Devel::Hide,
5808 Sort::Key, Statistics::Distributions, Template::Plugin::Comma,
5809 Template::Plugin::DateTime::Format, Term::Size::Any, Term::Size::Perl,
5810 URI::SmartURI and Web::Scraper to make the maintenance of FixMyStreet
5811 easier in the future.</p>
5812
5813 <p>Thanks to the great tools in Debian, getting the missing modules
5814 installed on my server was a simple call to 'cpan2deb Module::Name'
5815 and 'dpkg -i' to install the resulting package. But this leave me
5816 with the responsibility of tracking security problems, which I really
5817 do not have time for.</p>
5818
5819 </div>
5820 <div class="tags">
5821
5822
5823 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>.
5824
5825
5826 </div>
5827 </div>
5828 <div class="padding"></div>
5829
5830 <div class="entry">
5831 <div class="title">
5832 <a href="http://people.skolelinux.org/pere/blog/Free_Software_vs__proprietary_softare___.html">Free Software vs. proprietary softare...</a>
5833 </div>
5834 <div class="date">
5835 20th June 2011
5836 </div>
5837 <div class="body">
5838 <p>Reading
5839 <a href="http://blog.thingiverse.com/2011/06/20/open-source-vs-closed-source-eulas/">the
5840 thingiverse blog</a>, I came across two highlights of interesting
5841 parts of the
5842 <a href="http://wiki.blender.org/index.php/Autodesk_EULA">Autodesk</a>
5843 and
5844 <a href="http://blog.makezine.com/archive/2011/06/things-you-cant-do-with-the-microsoft-kinect-sdk.html">Microsoft
5845 Kinect</a> End User License Agreements (EULAs), which illustrates
5846 quite well why I stay away from software with EULAs. Whenever I take
5847 the time to read their content, the terms are simply unacceptable.</p>
5848
5849 </div>
5850 <div class="tags">
5851
5852
5853 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>.
5854
5855
5856 </div>
5857 </div>
5858 <div class="padding"></div>
5859
5860 <div class="entry">
5861 <div class="title">
5862 <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>
5863 </div>
5864 <div class="date">
5865 30th April 2011
5866 </div>
5867 <div class="body">
5868 <p>Today, the first draft implementation of an
5869 <a href="http://www.open311.org/">Open311 API</a> for the Norwegian
5870 service <a href="http://www.fiksgatami.no/">FiksGataMi</a> started to
5871 work. It is only available on the developer server for now, and I
5872 have not tested it using any existing Open311 client (I lack the
5873 platforms needed to run the clients I have found so far), but it is
5874 able to query the database and extract a list of open and closed
5875 requests within a given category and reported to a given municipality.
5876 I believe that is a good start to create a useful service for those
5877 that want to do data mining on the requests submitted so far.</p>
5878
5879 <p>Where is it? Visit
5880 <a href="http://fiksgatami-dev.nuug.no/open311.cgi/v2/">http://fiksgatami-dev.nuug.no/open311.cgi/v2/</a>
5881 to have a look. Please send feedback to the
5882 <a href="http://lists.nuug.no/mailman/listinfo/fiksgatami">fiksgatami
5883 (at) nuug.no</a> mailing list.</p>
5884
5885 </div>
5886 <div class="tags">
5887
5888
5889 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>.
5890
5891
5892 </div>
5893 </div>
5894 <div class="padding"></div>
5895
5896 <div class="entry">
5897 <div class="title">
5898 <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>
5899 </div>
5900 <div class="date">
5901 29th April 2011
5902 </div>
5903 <div class="body">
5904 <p>The last few days I have spent some time trying to add support for
5905 the <a href="http://www.open311.org/">Open311 API</a> in the
5906 <a href="http://www.fiksgatami.no/">Norwegian FixMyStreet service</a>.
5907 Earlier I believed Open311 would be a useful API to use to submit
5908 reports to the municipalities, but when I noticed that the
5909 <a href="http://fixmystreet.org.nz/">New Zealand version</a> of
5910 FixMyStreet had implemented Open311 on the server side, it occurred to
5911 me that this was a nice way to allow the public, press and
5912 municipalities to do data mining directly in the FixMyStreet service.
5913 Thus I went to work implementing the Open311 specification for
5914 FixMyStreet. The implementation is not yet ready, but I am starting
5915 to get a draft limping along. In the process, I have discovered a few
5916 issues with the Open311 specification.</p>
5917
5918 <p>One obvious missing feature is the lack of natural language
5919 handling in the specification. The specification seem to assume all
5920 reports will be written in English, and do not provide a way for the
5921 receiving end to specify which languages are understood there. To be
5922 able to use the same client and submit to several Open311 receivers,
5923 it would be useful to know which language to use when writing reports.
5924 I believe the specification should be extended to allow the receivers
5925 of problem reports to specify which language they accept, and the
5926 submitter to specify which language the report is written in.
5927 Language of a text can also be automatically guessed using statistical
5928 methods, but for multi-lingual persons like myself, it is useful to
5929 know which language to use when writing a problem report. I suspect
5930 some lang=nb,nn kind of attribute would solve it.</p>
5931
5932 <p>A key part of the Open311 API is the list of services provided,
5933 which is similar to the categories used by FixMyStreet. One issue I
5934 run into is the need to specify both name and unique identifier for
5935 each category. The specification do not state that the identifier
5936 should be numeric, but all example implementations have used numbers
5937 here. In FixMyStreet, there is no number associated with each
5938 category. As the specification do not forbid it, I will use the name
5939 as the unique identifier for now and see how open311 clients handle
5940 it.</p>
5941
5942 <p>The report format in open311 and the report format in FixMyStreet
5943 differ in a key part. FixMyStreet have a title and a description,
5944 while Open311 only have a description and lack the title. I'm not
5945 quite sure how to best handle this yet. When asking for a FixMyStreet
5946 report in Open311 format, I just merge title an description into the
5947 open311 description, but this is not going to work if the open311 API
5948 should be used for submitting new reports to FixMyStreet.</p>
5949
5950 <p>The search feature in Open311 is missing a way to ask for problems
5951 near a geographic location. I believe this is important if one is to
5952 use Open311 as the query language for mobile units. The specification
5953 should be extended to handle this, probably using some new lat=, lon=
5954 and range= options.</p>
5955
5956 <p>The final challenge I see is that the FixMyStreet code handle
5957 several administrations in one interface, while the Open311 API seem
5958 to assume only one administration. For FixMyStreet, this mean a
5959 report can be sent to several administrations, and the categories
5960 available depend on the location of the problem. Not quite sure how
5961 to best handle this. I've noticed
5962 <a href="http://seeclickfix.com/open311/">SeeClickFix</a> added
5963 latitude and longitude options to the services request, but it do not
5964 solve the problem of what to return when no location is specified.
5965 Will have to investigate this a bit more.</p>
5966
5967 <p>My distaste for web forums have kept me from bringing these issues
5968 up with the open311 developer group. I really wish they had a email
5969 list available via <a href="http://www.gmane.org/">Gmane</a> to use for
5970 discussions instead of only
5971 <a href="http://lists.open311.org/groups/discuss">a forum<a/>. Oh,
5972 well. That will probably resolve itself, one way or another. I've
5973 also tried visiting the IRC channel #open311 on FreeNode, but no-one
5974 seem to reply to my questions there. This make me wonder if I just
5975 fail to understand how the open311 community work. It sure do not
5976 work like the free software project communities I am used to.</p>
5977
5978 </div>
5979 <div class="tags">
5980
5981
5982 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>.
5983
5984
5985 </div>
5986 </div>
5987 <div class="padding"></div>
5988
5989 <div class="entry">
5990 <div class="title">
5991 <a href="http://people.skolelinux.org/pere/blog/Gnash_enteres_Google_Summer_of_Code_2011.html">Gnash enteres Google Summer of Code 2011</a>
5992 </div>
5993 <div class="date">
5994 6th April 2011
5995 </div>
5996 <div class="body">
5997 <p><a href="http://www.getgnash.org/">The Gnash project</a> is still
5998 the most promising solution for a Free Software Flash implementation.
5999 A few days ago the project
6000 <a href="http://lists.gnu.org/archive/html/gnash-dev/2011-04/msg00011.html">announced</a>
6001 that it will participate in Google Summer of Code. I hope many
6002 students apply, and that some of them succeed in getting AVM2 support
6003 into Gnash.</p>
6004
6005 </div>
6006 <div class="tags">
6007
6008
6009 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>.
6010
6011
6012 </div>
6013 </div>
6014 <div class="padding"></div>
6015
6016 <div class="entry">
6017 <div class="title">
6018 <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>
6019 </div>
6020 <div class="date">
6021 3rd April 2011
6022 </div>
6023 <div class="body">
6024 <p>Here is a small update for my English readers. Most of my blog
6025 posts have been in Norwegian the last few weeks, so here is a short
6026 update in English.</p>
6027
6028 <p>The kids still keep me too busy to get much free software work
6029 done, but I did manage to organise a project to get a Norwegian port
6030 of the British service
6031 <a href="http://www.fixmystreet.com/">FixMyStreet</a> up and running,
6032 and it has been running for a month now. The entire project has been
6033 organised by me and two others. Around Christmas we gathered sponsors
6034 to fund the development work. In January I drafted a contract with
6035 <a href="http://www.mysociety.org/">mySociety</a> on what to develop,
6036 and in February the development took place. Most of it involved
6037 converting the source to use GPS coordinates instead of British
6038 easting/northing, and the resulting code should be a lot easier to get
6039 running in any country by now. The Norwegian
6040 <a href="http://www.fiksgatami.no/">FiksGataMi</a> is using
6041 <a href="http://www.openstreetmap.org/">OpenStreetmap</a> as the map
6042 source and the source for administrative borders in Norway, and
6043 support for this had to be added/fixed.</p>
6044
6045 <p>The Norwegian version went live March 3th, and we spent the weekend
6046 polishing the system before we announced it March 7th. The system is
6047 running on a KVM instance of Debian/Squeeze, and has seen almost 3000
6048 problem reports in a few weeks. Soon we hope to announce the Android
6049 and iPhone versions making it even easier to report problems with the
6050 public infrastructure.</p>
6051
6052 <p>Perhaps something to consider for those of you in countries without
6053 such service?</p>
6054
6055 </div>
6056 <div class="tags">
6057
6058
6059 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>.
6060
6061
6062 </div>
6063 </div>
6064 <div class="padding"></div>
6065
6066 <div class="entry">
6067 <div class="title">
6068 <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>
6069 </div>
6070 <div class="date">
6071 28th January 2011
6072 </div>
6073 <div class="body">
6074 <p>The last few days I have looked at ways to track open security
6075 issues here at my work with the University of Oslo. My idea is that
6076 it should be possible to use the information about security issues
6077 available on the Internet, and check our locally
6078 maintained/distributed software against this information. It should
6079 allow us to verify that no known security issues are forgotten. The
6080 CVE database listing vulnerabilities seem like a great central point,
6081 and by using the package lists from Debian mapped to CVEs provided by
6082 the testing security team, I believed it should be possible to figure
6083 out which security holes were present in our free software
6084 collection.</p>
6085
6086 <p>After reading up on the topic, it became obvious that the first
6087 building block is to be able to name software packages in a unique and
6088 consistent way across data sources. I considered several ways to do
6089 this, for example coming up with my own naming scheme like using URLs
6090 to project home pages or URLs to the Freshmeat entries, or using some
6091 existing naming scheme. And it seem like I am not the first one to
6092 come across this problem, as MITRE already proposed and implemented a
6093 solution. Enter the <a href="http://cpe.mitre.org/index.html">Common
6094 Platform Enumeration</a> dictionary, a vocabulary for referring to
6095 software, hardware and other platform components. The CPE ids are
6096 mapped to CVEs in the <a href="http://web.nvd.nist.gov/">National
6097 Vulnerability Database</a>, allowing me to look up know security
6098 issues for any CPE name. With this in place, all I need to do is to
6099 locate the CPE id for the software packages we use at the university.
6100 This is fairly trivial (I google for 'cve cpe $package' and check the
6101 NVD entry if a CVE for the package exist).</p>
6102
6103 <p>To give you an example. The GNU gzip source package have the CPE
6104 name cpe:/a:gnu:gzip. If the old version 1.3.3 was the package to
6105 check out, one could look up
6106 <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
6107 in NVD</a> and get a list of 6 security holes with public CVE entries.
6108 The most recent one is
6109 <a href="http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2010-0001">CVE-2010-0001</a>,
6110 and at the bottom of the NVD page for this vulnerability the complete
6111 list of affected versions is provided.</p>
6112
6113 <p>The NVD database of CVEs is also available as a XML dump, allowing
6114 for offline processing of issues. Using this dump, I've written a
6115 small script taking a list of CPEs as input and list all CVEs
6116 affecting the packages represented by these CPEs. One give it CPEs
6117 with version numbers as specified above and get a list of open
6118 security issues out.</p>
6119
6120 <p>Of course for this approach to be useful, the quality of the NVD
6121 information need to be high. For that to happen, I believe as many as
6122 possible need to use and contribute to the NVD database. I notice
6123 RHEL is providing
6124 <a href="https://www.redhat.com/security/data/metrics/rhsamapcpe.txt">a
6125 map from CVE to CPE</a>, indicating that they are using the CPE
6126 information. I'm not aware of Debian and Ubuntu doing the same.</p>
6127
6128 <p>To get an idea about the quality for free software, I spent some
6129 time making it possible to compare the CVE database from Debian with
6130 the CVE database in NVD. The result look fairly good, but there are
6131 some inconsistencies in NVD (same software package having several
6132 CPEs), and some inaccuracies (NVD not mentioning buggy packages that
6133 Debian believe are affected by a CVE). Hope to find time to improve
6134 the quality of NVD, but that require being able to get in touch with
6135 someone maintaining it. So far my three emails with questions and
6136 corrections have not seen any reply, but I hope contact can be
6137 established soon.</p>
6138
6139 <p>An interesting application for CPEs is cross platform package
6140 mapping. It would be useful to know which packages in for example
6141 RHEL, OpenSuSe and Mandriva are missing from Debian and Ubuntu, and
6142 this would be trivial if all linux distributions provided CPE entries
6143 for their packages.</p>
6144
6145 </div>
6146 <div class="tags">
6147
6148
6149 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>.
6150
6151
6152 </div>
6153 </div>
6154 <div class="padding"></div>
6155
6156 <div class="entry">
6157 <div class="title">
6158 <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>
6159 </div>
6160 <div class="date">
6161 23rd January 2011
6162 </div>
6163 <div class="body">
6164 <p>In the
6165 <a href="http://packages.qa.debian.org/discover-data">discover-data</a>
6166 package in Debian, there is a script to report useful information
6167 about the running hardware for use when people report missing
6168 information. One part of this script that I find very useful when
6169 debugging hardware problems, is the part mapping loaded kernel module
6170 to the PCI device it claims. It allow me to quickly see if the kernel
6171 module I expect is driving the hardware I am struggling with. To see
6172 the output, make sure discover-data is installed and run
6173 <tt>/usr/share/bug/discover-data 3>&1</tt>. The relevant output on
6174 one of my machines like this:</p>
6175
6176 <pre>
6177 loaded modules:
6178 10de:03eb i2c_nforce2
6179 10de:03f1 ohci_hcd
6180 10de:03f2 ehci_hcd
6181 10de:03f0 snd_hda_intel
6182 10de:03ec pata_amd
6183 10de:03f6 sata_nv
6184 1022:1103 k8temp
6185 109e:036e bttv
6186 109e:0878 snd_bt87x
6187 11ab:4364 sky2
6188 </pre>
6189
6190 <p>The code in question look like this, slightly modified for
6191 readability and to drop the output to file descriptor 3:</p>
6192
6193 <pre>
6194 if [ -d /sys/bus/pci/devices/ ] ; then
6195 echo loaded pci modules:
6196 (
6197 cd /sys/bus/pci/devices/
6198 for address in * ; do
6199 if [ -d "$address/driver/module" ] ; then
6200 module=`cd $address/driver/module ; pwd -P | xargs basename`
6201 if grep -q "^$module " /proc/modules ; then
6202 address=$(echo $address |sed s/0000://)
6203 id=`lspci -n -s $address | tail -n 1 | awk '{print $3}'`
6204 echo "$id $module"
6205 fi
6206 fi
6207 done
6208 )
6209 echo
6210 fi
6211 </pre>
6212
6213 <p>Similar code could be used to extract USB device module
6214 mappings:</p>
6215
6216 <pre>
6217 if [ -d /sys/bus/usb/devices/ ] ; then
6218 echo loaded usb modules:
6219 (
6220 cd /sys/bus/usb/devices/
6221 for address in * ; do
6222 if [ -d "$address/driver/module" ] ; then
6223 module=`cd $address/driver/module ; pwd -P | xargs basename`
6224 if grep -q "^$module " /proc/modules ; then
6225 address=$(echo $address |sed s/0000://)
6226 id=$(lsusb -s $address | tail -n 1 | awk '{print $6}')
6227 if [ "$id" ] ; then
6228 echo "$id $module"
6229 fi
6230 fi
6231 fi
6232 done
6233 )
6234 echo
6235 fi
6236 </pre>
6237
6238 <p>This might perhaps be something to include in other tools as
6239 well.</p>
6240
6241 </div>
6242 <div class="tags">
6243
6244
6245 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>.
6246
6247
6248 </div>
6249 </div>
6250 <div class="padding"></div>
6251
6252 <div class="entry">
6253 <div class="title">
6254 <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>
6255 </div>
6256 <div class="date">
6257 16th January 2011
6258 </div>
6259 <div class="body">
6260 <p>The video format struggle on the web continues, and the three
6261 contenders seem to be Ogg Theora, H.264 and WebM. Most video sites
6262 seem to use H.264, while others use Ogg Theora. Interestingly enough,
6263 the comments I see give me the feeling that a lot of people believe
6264 H.264 is the most supported video format in browsers, but according to
6265 the Wikipedia article on
6266 <a href="http://en.wikipedia.org/wiki/HTML5_video">HTML5 video</a>,
6267 this is not true. Check out the nice table of supprted formats in
6268 different browsers there. The format supported by most browsers is
6269 Ogg Theora, supported by released versions of Mozilla Firefox, Google
6270 Chrome, Chromium, Opera, Konqueror, Epiphany, Origyn Web Browser and
6271 BOLT browser, while not supported by Internet Explorer nor Safari.
6272 The runner up is WebM supported by released versions of Google Chrome
6273 Chromium Opera and Origyn Web Browser, and test versions of Mozilla
6274 Firefox. H.264 is supported by released versions of Safari, Origyn
6275 Web Browser and BOLT browser, and the test version of Internet
6276 Explorer. Those wanting Ogg Theora support in Internet Explorer and
6277 Safari can install plugins to get it.</p>
6278
6279 <p>To me, the simple conclusion from this is that to reach most users
6280 without any extra software installed, one uses Ogg Theora with the
6281 HTML5 video tag. Of course to reach all those without a browser
6282 handling HTML5, one need fallback mechanisms. In
6283 <a href="http://www.nuug.no/">NUUG</a>, we provide first fallback to a
6284 plugin capable of playing MPEG1 video, and those without such support
6285 we have a second fallback to the Cortado java applet playing Ogg
6286 Theora. This seem to work quite well, as can be seen in an <a
6287 href="http://www.nuug.no/aktiviteter/20110111-semantic-web/">example
6288 from last week</a>.</p>
6289
6290 <p>The reason Ogg Theora is the most supported format, and H.264 is
6291 the least supported is simple. Implementing and using H.264
6292 require royalty payment to MPEG-LA, and the terms of use from MPEG-LA
6293 are incompatible with free software licensing. If you believed H.264
6294 was without royalties and license terms, check out
6295 "<a href="http://webmink.com/essays/h-264/">H.264 – Not The Kind Of
6296 Free That Matters</a>" by Simon Phipps.</p>
6297
6298 <p>A incomplete list of sites providing video in Ogg Theora is
6299 available from
6300 <a href="http://wiki.xiph.org/index.php/List_of_Theora_videos">the
6301 Xiph.org wiki</a>, if you want to have a look. I'm not aware of a
6302 similar list for WebM nor H.264.</p>
6303
6304 <p>Update 2011-01-16 09:40: A question from Tollef on IRC made me
6305 realise that I failed to make it clear enough this text is about the
6306 &lt;video&gt; tag support in browsers and not the video support
6307 provided by external plugins like the Flash plugins.</p>
6308
6309 </div>
6310 <div class="tags">
6311
6312
6313 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/video">video</a>.
6314
6315
6316 </div>
6317 </div>
6318 <div class="padding"></div>
6319
6320 <div class="entry">
6321 <div class="title">
6322 <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>
6323 </div>
6324 <div class="date">
6325 12th January 2011
6326 </div>
6327 <div class="body">
6328 <p>Today I discovered
6329 <a href="http://www.digi.no/860070/google-dropper-h264-stotten-i-chrome">via
6330 digi.no</a> that the Chrome developers, in a surprising announcement,
6331 <a href="http://blog.chromium.org/2011/01/html-video-codec-support-in-chrome.html">yesterday
6332 announced</a> plans to drop H.264 support for HTML5 &lt;video&gt; in
6333 the browser. The argument used is that H.264 is not a "completely
6334 open" codec technology. If you believe H.264 was free for everyone
6335 to use, I recommend having a look at the essay
6336 "<a href="http://webmink.com/essays/h-264/">H.264 – Not The Kind Of
6337 Free That Matters</a>". It is not free of cost for creators of video
6338 tools, nor those of us that want to publish on the Internet, and the
6339 terms provided by MPEG-LA excludes free software projects from
6340 licensing the patents needed for H.264. Some background information
6341 on the Google announcement is available from
6342 <a href="http://www.osnews.com/story/24243/Google_To_Drop_H264_Support_from_Chrome">OSnews</a>.
6343 A good read. :)</p>
6344
6345 <p>Personally, I believe it is great that Google is taking a stand to
6346 promote equal terms for everyone when it comes to video publishing on
6347 the Internet. This can only be done by publishing using free and open
6348 standards, which is only possible if the web browsers provide support
6349 for these free and open standards. At the moment there seem to be two
6350 camps in the web browser world when it come to video support. Some
6351 browsers support H.264, and others support
6352 <a href="http://www.theora.org/">Ogg Theora</a> and
6353 <a href="http://www.webmproject.org/">WebM</a>
6354 (<a href="http://www.diracvideo.org/">Dirac</a> is not really an option
6355 yet), forcing those of us that want to publish video on the Internet
6356 and which can not accept the terms of use presented by MPEG-LA for
6357 H.264 to not reach all potential viewers.
6358 Wikipedia keep <a href="http://en.wikipedia.org/wiki/HTML5_video">an
6359 updated summary</a> of the current browser support.</p>
6360
6361 <p>Not surprising, several people would prefer Google to keep
6362 promoting H.264, and John Gruber
6363 <a href="http://daringfireball.net/2011/01/simple_questions">presents
6364 the mind set</a> of these people quite well. His rhetorical questions
6365 provoked a reply from Thom Holwerda with another set of questions
6366 <a href="http://www.osnews.com/story/24245/10_Questions_for_John_Gruber_Regarding_H_264_WebM">presenting
6367 the issues with H.264</a>. Both are worth a read.</p>
6368
6369 <p>Some argue that if Google is dropping H.264 because it isn't free,
6370 they should also drop support for the Adobe Flash plugin. This
6371 argument was covered by Simon Phipps in
6372 <a href="http://blogs.computerworlduk.com/simon-says/2011/01/google-and-h264---far-from-hypocritical/index.htm">todays
6373 blog post</a>, which I find to put the issue in context. To me it
6374 make perfect sense to drop native H.264 support for HTML5 in the
6375 browser while still allowing plugins.</p>
6376
6377 <p>I suspect the reason this announcement make so many people protest,
6378 is that all the users and promoters of H.264 suddenly get an uneasy
6379 feeling that they might be backing the wrong horse. A lot of TV
6380 broadcasters have been moving to H.264 the last few years, and a lot
6381 of money has been invested in hardware based on the belief that they
6382 could use the same video format for both broadcasting and web
6383 publishing. Suddenly this belief is shaken.</p>
6384
6385 <p>An interesting question is why Google is doing this. While the
6386 presented argument might be true enough, I believe Google would only
6387 present the argument if the change make sense from a business
6388 perspective. One reason might be that they are currently negotiating
6389 with MPEG-LA over royalties or usage terms, and giving MPEG-LA the
6390 feeling that dropping H.264 completely from Chroome, Youtube and
6391 Google Video would improve the negotiation position of Google.
6392 Another reason might be that Google want to save money by not having
6393 to pay the video tax to MPEG-LA at all, and thus want to move to a
6394 video format not requiring royalties at all. A third reason might be
6395 that the Chrome development team simply want to avoid the
6396 Chrome/Chromium split to get more help with the development of Chrome.
6397 I guess time will tell.</p>
6398
6399 <p>Update 2011-01-15: The Google Chrome team provided
6400 <a href="http://blog.chromium.org/2011/01/more-about-chrome-html-video-codec.html">more
6401 background and information on the move</a> it a blog post yesterday.</p>
6402
6403 </div>
6404 <div class="tags">
6405
6406
6407 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/video">video</a>.
6408
6409
6410 </div>
6411 </div>
6412 <div class="padding"></div>
6413
6414 <div class="entry">
6415 <div class="title">
6416 <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>
6417 </div>
6418 <div class="date">
6419 30th December 2010
6420 </div>
6421 <div class="body">
6422 <p>After trying to
6423 <a href="http://people.skolelinux.org/pere/blog/Is_Ogg_Theora_a_free_and_open_standard_.html">compare
6424 Ogg Theora</a> to
6425 <a href="http://www.digistan.org/open-standard:definition">the Digistan
6426 definition</a> of a free and open standard, I concluded that this need
6427 to be done for more standards and started on a framework for doing
6428 this. As a start, I want to get the status for all the standards in
6429 the Norwegian reference directory, which include UTF-8, HTML, PDF, ODF,
6430 JPEG, PNG, SVG and others. But to be able to complete this in a
6431 reasonable time frame, I will need help.</p>
6432
6433 <p>If you want to help out with this work, please visit
6434 <a href="http://wiki.nuug.no/grupper/standard/digistan-analyse">the
6435 wiki pages I have set up for this</a>, and let me know that you want
6436 to help out. The IRC channel #nuug on irc.freenode.net is a good
6437 place to coordinate this for now, as it is the IRC channel for the
6438 NUUG association where I have created the framework (I am the leader
6439 of the Norwegian Unix User Group).</p>
6440
6441 <p>The framework is still forming, and a lot is left to do. Do not be
6442 scared by the sketchy form of the current pages. :)</p>
6443
6444 </div>
6445 <div class="tags">
6446
6447
6448 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>.
6449
6450
6451 </div>
6452 </div>
6453 <div class="padding"></div>
6454
6455 <div class="entry">
6456 <div class="title">
6457 <a href="http://people.skolelinux.org/pere/blog/The_many_definitions_of_a_open_standard.html">The many definitions of a open standard</a>
6458 </div>
6459 <div class="date">
6460 27th December 2010
6461 </div>
6462 <div class="body">
6463 <p>One of the reasons I like the Digistan definition of
6464 "<a href="http://www.digistan.org/open-standard:definition">Free and
6465 Open Standard</a>" is that this is a new term, and thus the meaning of
6466 the term has been decided by Digistan. The term "Open Standard" has
6467 become so misunderstood that it is no longer very useful when talking
6468 about standards. One end up discussing which definition is the best
6469 one and with such frame the only one gaining are the proponents of
6470 de-facto standards and proprietary solutions.</p>
6471
6472 <p>But to give us an idea about the diversity of definitions of open
6473 standards, here are a few that I know about. This list is not
6474 complete, but can be a starting point for those that want to do a
6475 complete survey. More definitions are available on the
6476 <a href="http://en.wikipedia.org/wiki/Open_standard">wikipedia
6477 page</a>.</p>
6478
6479 <p>First off is my favourite, the definition from the European
6480 Interoperability Framework version 1.0. Really sad to notice that BSA
6481 and others has succeeded in getting it removed from version 2.0 of the
6482 framework by stacking the committee drafting the new version with
6483 their own people. Anyway, the definition is still available and it
6484 include the key properties needed to make sure everyone can use a
6485 specification on equal terms.</p>
6486
6487 <blockquote>
6488
6489 <p>The following are the minimal characteristics that a specification
6490 and its attendant documents must have in order to be considered an
6491 open standard:</p>
6492
6493 <ul>
6494
6495 <li>The standard is adopted and will be maintained by a not-for-profit
6496 organisation, and its ongoing development occurs on the basis of an
6497 open decision-making procedure available to all interested parties
6498 (consensus or majority decision etc.).</li>
6499
6500 <li>The standard has been published and the standard specification
6501 document is available either freely or at a nominal charge. It must be
6502 permissible to all to copy, distribute and use it for no fee or at a
6503 nominal fee.</li>
6504
6505 <li>The intellectual property - i.e. patents possibly present - of
6506 (parts of) the standard is made irrevocably available on a royalty-
6507 free basis.</li>
6508
6509 <li>There are no constraints on the re-use of the standard.</li>
6510
6511 </ul>
6512 </blockquote>
6513
6514 <p>Another one originates from my friends over at
6515 <a href="http://www.dkuug.dk/">DKUUG</a>, who coined and gathered
6516 support for <a href="http://www.aaben-standard.dk/">this
6517 definition</a> in 2004. It even made it into the Danish parlament as
6518 <a href="http://www.ft.dk/dokumenter/tingdok.aspx?/samling/20051/beslutningsforslag/B103/som_fremsat.htm">their
6519 definition of a open standard</a>. Another from a different part of
6520 the Danish government is available from the wikipedia page.</p>
6521
6522 <blockquote>
6523
6524 <p>En åben standard opfylder følgende krav:</p>
6525
6526 <ol>
6527
6528 <li>Veldokumenteret med den fuldstændige specifikation offentligt
6529 tilgængelig.</li>
6530
6531 <li>Frit implementerbar uden økonomiske, politiske eller juridiske
6532 begrænsninger på implementation og anvendelse.</li>
6533
6534 <li>Standardiseret og vedligeholdt i et åbent forum (en såkaldt
6535 "standardiseringsorganisation") via en åben proces.</li>
6536
6537 </ol>
6538
6539 </blockquote>
6540
6541 <p>Then there is <a href="http://www.fsfe.org/projects/os/def.html">the
6542 definition</a> from Free Software Foundation Europe.</p>
6543
6544 <blockquote>
6545
6546 <p>An Open Standard refers to a format or protocol that is</p>
6547
6548 <ol>
6549
6550 <li>subject to full public assessment and use without constraints in a
6551 manner equally available to all parties;</li>
6552
6553 <li>without any components or extensions that have dependencies on
6554 formats or protocols that do not meet the definition of an Open
6555 Standard themselves;</li>
6556
6557 <li>free from legal or technical clauses that limit its utilisation by
6558 any party or in any business model;</li>
6559
6560 <li>managed and further developed independently of any single vendor
6561 in a process open to the equal participation of competitors and third
6562 parties;</li>
6563
6564 <li>available in multiple complete implementations by competing
6565 vendors, or as a complete implementation equally available to all
6566 parties.</li>
6567
6568 </ol>
6569
6570 </blockquote>
6571
6572 <p>A long time ago, SUN Microsystems, now bought by Oracle, created
6573 its
6574 <a href="http://blogs.sun.com/dennisding/resource/Open%20Standard%20Definition.pdf">Open
6575 Standards Checklist</a> with a fairly detailed description.</p>
6576
6577 <blockquote>
6578 <p>Creation and Management of an Open Standard
6579
6580 <ul>
6581
6582 <li>Its development and management process must be collaborative and
6583 democratic:
6584
6585 <ul>
6586
6587 <li>Participation must be accessible to all those who wish to
6588 participate and can meet fair and reasonable criteria
6589 imposed by the organization under which it is developed
6590 and managed.</li>
6591
6592 <li>The processes must be documented and, through a known
6593 method, can be changed through input from all
6594 participants.</li>
6595
6596 <li>The process must be based on formal and binding commitments for
6597 the disclosure and licensing of intellectual property rights.</li>
6598
6599 <li>Development and management should strive for consensus,
6600 and an appeals process must be clearly outlined.</li>
6601
6602 <li>The standard specification must be open to extensive
6603 public review at least once in its life-cycle, with
6604 comments duly discussed and acted upon, if required.</li>
6605
6606 </ul>
6607
6608 </li>
6609
6610 </ul>
6611
6612 <p>Use and Licensing of an Open Standard</p>
6613 <ul>
6614
6615 <li>The standard must describe an interface, not an implementation,
6616 and the industry must be capable of creating multiple, competing
6617 implementations to the interface described in the standard without
6618 undue or restrictive constraints. Interfaces include APIs,
6619 protocols, schemas, data formats and their encoding.</li>
6620
6621 <li> The standard must not contain any proprietary "hooks" that create
6622 a technical or economic barriers</li>
6623
6624 <li>Faithful implementations of the standard must
6625 interoperate. Interoperability means the ability of a computer
6626 program to communicate and exchange information with other computer
6627 programs and mutually to use the information which has been
6628 exchanged. This includes the ability to use, convert, or exchange
6629 file formats, protocols, schemas, interface information or
6630 conventions, so as to permit the computer program to work with other
6631 computer programs and users in all the ways in which they are
6632 intended to function.</li>
6633
6634 <li>It must be permissible for anyone to copy, distribute and read the
6635 standard for a nominal fee, or even no fee. If there is a fee, it
6636 must be low enough to not preclude widespread use.</li>
6637
6638 <li>It must be possible for anyone to obtain free (no royalties or
6639 fees; also known as "royalty free"), worldwide, non-exclusive and
6640 perpetual licenses to all essential patent claims to make, use and
6641 sell products based on the standard. The only exceptions are
6642 terminations per the reciprocity and defensive suspension terms
6643 outlined below. Essential patent claims include pending, unpublished
6644 patents, published patents, and patent applications. The license is
6645 only for the exact scope of the standard in question.
6646
6647 <ul>
6648
6649 <li> May be conditioned only on reciprocal licenses to any of
6650 licensees' patent claims essential to practice that standard
6651 (also known as a reciprocity clause)</li>
6652
6653 <li> May be terminated as to any licensee who sues the licensor
6654 or any other licensee for infringement of patent claims
6655 essential to practice that standard (also known as a
6656 "defensive suspension" clause)</li>
6657
6658 <li> The same licensing terms are available to every potential
6659 licensor</li>
6660
6661 </ul>
6662 </li>
6663
6664 <li>The licensing terms of an open standards must not preclude
6665 implementations of that standard under open source licensing terms
6666 or restricted licensing terms</li>
6667
6668 </ul>
6669
6670 </blockquote>
6671
6672 <p>It is said that one of the nice things about standards is that
6673 there are so many of them. As you can see, the same holds true for
6674 open standard definitions. Most of the definitions have a lot in
6675 common, and it is not really controversial what properties a open
6676 standard should have, but the diversity of definitions have made it
6677 possible for those that want to avoid a level marked field and real
6678 competition to downplay the significance of open standards. I hope we
6679 can turn this tide by focusing on the advantages of Free and Open
6680 Standards.</p>
6681
6682 </div>
6683 <div class="tags">
6684
6685
6686 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>.
6687
6688
6689 </div>
6690 </div>
6691 <div class="padding"></div>
6692
6693 <div class="entry">
6694 <div class="title">
6695 <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>
6696 </div>
6697 <div class="date">
6698 25th December 2010
6699 </div>
6700 <div class="body">
6701 <p><a href="http://www.digistan.org/open-standard:definition">The
6702 Digistan definition</a> of a free and open standard reads like this:</p>
6703
6704 <blockquote>
6705
6706 <p>The Digital Standards Organization defines free and open standard
6707 as follows:</p>
6708
6709 <ol>
6710
6711 <li>A free and open standard is immune to vendor capture at all stages
6712 in its life-cycle. Immunity from vendor capture makes it possible to
6713 freely use, improve upon, trust, and extend a standard over time.</li>
6714
6715 <li>The standard is adopted and will be maintained by a not-for-profit
6716 organisation, and its ongoing development occurs on the basis of an
6717 open decision-making procedure available to all interested
6718 parties.</li>
6719
6720 <li>The standard has been published and the standard specification
6721 document is available freely. It must be permissible to all to copy,
6722 distribute, and use it freely.</li>
6723
6724 <li>The patents possibly present on (parts of) the standard are made
6725 irrevocably available on a royalty-free basis.</li>
6726
6727 <li>There are no constraints on the re-use of the standard.</li>
6728
6729 </ol>
6730
6731 <p>The economic outcome of a free and open standard, which can be
6732 measured, is that it enables perfect competition between suppliers of
6733 products based on the standard.</p>
6734 </blockquote>
6735
6736 <p>For a while now I have tried to figure out of Ogg Theora is a free
6737 and open standard according to this definition. Here is a short
6738 writeup of what I have been able to gather so far. I brought up the
6739 topic on the Xiph advocacy mailing list
6740 <a href="http://lists.xiph.org/pipermail/advocacy/2009-July/001632.html">in
6741 July 2009</a>, for those that want to see some background information.
6742 According to Ivo Emanuel Gonçalves and Monty Montgomery on that list
6743 the Ogg Theora specification fulfils the Digistan definition.</p>
6744
6745 <p><strong>Free from vendor capture?</strong></p>
6746
6747 <p>As far as I can see, there is no single vendor that can control the
6748 Ogg Theora specification. It can be argued that the
6749 <a href="http://www.xiph.org/">Xiph foundation</A> is such vendor, but
6750 given that it is a non-profit foundation with the expressed goal
6751 making free and open protocols and standards available, it is not
6752 obvious that this is a real risk. One issue with the Xiph
6753 foundation is that its inner working (as in board member list, or who
6754 control the foundation) are not easily available on the web. I've
6755 been unable to find out who is in the foundation board, and have not
6756 seen any accounting information documenting how money is handled nor
6757 where is is spent in the foundation. It is thus not obvious for an
6758 external observer who control The Xiph foundation, and for all I know
6759 it is possible for a single vendor to take control over the
6760 specification. But it seem unlikely.</p>
6761
6762 <p><strong>Maintained by open not-for-profit organisation?</strong></p>
6763
6764 <p>Assuming that the Xiph foundation is the organisation its web pages
6765 claim it to be, this point is fulfilled. If Xiph foundation is
6766 controlled by a single vendor, it isn't, but I have not found any
6767 documentation indicating this.</p>
6768
6769 <p>According to
6770 <a href="http://media.hiof.no/diverse/fad/rapport_4.pdf">a report</a>
6771 prepared by Audun Vaaler og Børre Ludvigsen for the Norwegian
6772 government, the Xiph foundation is a non-commercial organisation and
6773 the development process is open, transparent and non-Discrimatory.
6774 Until proven otherwise, I believe it make most sense to believe the
6775 report is correct.</p>
6776
6777 <p><strong>Specification freely available?</strong></p>
6778
6779 <p>The specification for the <a href="http://www.xiph.org/ogg/doc/">Ogg
6780 container format</a> and both the
6781 <a href="http://www.xiph.org/vorbis/doc/">Vorbis</a> and
6782 <a href="http://theora.org/doc/">Theora</a> codeces are available on
6783 the web. This are the terms in the Vorbis and Theora specification:
6784
6785 <blockquote>
6786
6787 Anyone may freely use and distribute the Ogg and [Vorbis/Theora]
6788 specifications, whether in private, public, or corporate
6789 capacity. However, the Xiph.Org Foundation and the Ogg project reserve
6790 the right to set the Ogg [Vorbis/Theora] specification and certify
6791 specification compliance.
6792
6793 </blockquote>
6794
6795 <p>The Ogg container format is specified in IETF
6796 <a href="http://www.xiph.org/ogg/doc/rfc3533.txt">RFC 3533</a>, and
6797 this is the term:<p>
6798
6799 <blockquote>
6800
6801 <p>This document and translations of it may be copied and furnished to
6802 others, and derivative works that comment on or otherwise explain it
6803 or assist in its implementation may be prepared, copied, published and
6804 distributed, in whole or in part, without restriction of any kind,
6805 provided that the above copyright notice and this paragraph are
6806 included on all such copies and derivative works. However, this
6807 document itself may not be modified in any way, such as by removing
6808 the copyright notice or references to the Internet Society or other
6809 Internet organizations, except as needed for the purpose of developing
6810 Internet standards in which case the procedures for copyrights defined
6811 in the Internet Standards process must be followed, or as required to
6812 translate it into languages other than English.</p>
6813
6814 <p>The limited permissions granted above are perpetual and will not be
6815 revoked by the Internet Society or its successors or assigns.</p>
6816 </blockquote>
6817
6818 <p>All these terms seem to allow unlimited distribution and use, an
6819 this term seem to be fulfilled. There might be a problem with the
6820 missing permission to distribute modified versions of the text, and
6821 thus reuse it in other specifications. Not quite sure if that is a
6822 requirement for the Digistan definition.</p>
6823
6824 <p><strong>Royalty-free?</strong></p>
6825
6826 <p>There are no known patent claims requiring royalties for the Ogg
6827 Theora format.
6828 <a href="http://www.streamingmedia.com/Articles/ReadArticle.aspx?ArticleID=65782">MPEG-LA</a>
6829 and
6830 <a href="http://yro.slashdot.org/story/10/04/30/237238/Steve-Jobs-Hints-At-Theora-Lawsuit">Steve
6831 Jobs</a> in Apple claim to know about some patent claims (submarine
6832 patents) against the Theora format, but no-one else seem to believe
6833 them. Both Opera Software and the Mozilla Foundation have looked into
6834 this and decided to implement Ogg Theora support in their browsers
6835 without paying any royalties. For now the claims from MPEG-LA and
6836 Steve Jobs seem more like FUD to scare people to use the H.264 codec
6837 than any real problem with Ogg Theora.</p>
6838
6839 <p><strong>No constraints on re-use?</strong></p>
6840
6841 <p>I am not aware of any constraints on re-use.</p>
6842
6843 <p><strong>Conclusion</strong></p>
6844
6845 <p>3 of 5 requirements seem obviously fulfilled, and the remaining 2
6846 depend on the governing structure of the Xiph foundation. Given the
6847 background report used by the Norwegian government, I believe it is
6848 safe to assume the last two requirements are fulfilled too, but it
6849 would be nice if the Xiph foundation web site made it easier to verify
6850 this.</p>
6851
6852 <p>It would be nice to see other analysis of other specifications to
6853 see if they are free and open standards.</p>
6854
6855 </div>
6856 <div class="tags">
6857
6858
6859 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>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
6860
6861
6862 </div>
6863 </div>
6864 <div class="padding"></div>
6865
6866 <div class="entry">
6867 <div class="title">
6868 <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>
6869 </div>
6870 <div class="date">
6871 25th December 2010
6872 </div>
6873 <div class="body">
6874 <p>A few days ago
6875 <a href="http://www.idg.no/computerworld/article189879.ece">an
6876 article</a> in the Norwegian Computerworld magazine about how version
6877 2.0 of
6878 <a href="http://en.wikipedia.org/wiki/European_Interoperability_Framework">European
6879 Interoperability Framework</a> has been successfully lobbied by the
6880 proprietary software industry to remove the focus on free software.
6881 Nothing very surprising there, given
6882 <a href="http://news.slashdot.org/story/10/03/29/2115235/Open-Source-Open-Standards-Under-Attack-In-Europe">earlier
6883 reports</a> on how Microsoft and others have stacked the committees in
6884 this work. But I find this very sad. The definition of
6885 <a href="http://www.nuug.no/dokumenter/standard-presse-def-200506.txt">an
6886 open standard from version 1</a> was very good, and something I
6887 believe should be used also in the future, alongside
6888 <a href="http://www.digistan.org/open-standard:definition">the
6889 definition from Digistan</A>. Version 2 have removed the open
6890 standard definition from its content.</p>
6891
6892 <p>Anyway, the news reminded me of the great reply sent by Dr. Edgar
6893 Villanueva, congressman in Peru at the time, to Microsoft as a reply
6894 to Microsofts attack on his proposal regarding the use of free software
6895 in the public sector in Peru. As the text was not available from a
6896 few of the URLs where it used to be available, I copy it here from
6897 <a href="http://gnuwin.epfl.ch/articles/en/reponseperou/villanueva_to_ms.html">my
6898 source</a> to ensure it is available also in the future. Some
6899 background information about that story is available in
6900 <a href="http://www.linuxjournal.com/article/6099">an article</a> from
6901 Linux Journal in 2002.</p>
6902
6903 <blockquote>
6904 <p>Lima, 8th of April, 2002<br>
6905 To: Señor JUAN ALBERTO GONZÁLEZ<br>
6906 General Manager of Microsoft Perú</p>
6907
6908 <p>Dear Sir:</p>
6909
6910 <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>
6911
6912 <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>
6913
6914 <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>
6915
6916 <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>
6917
6918 <p>
6919 <ul>
6920 <li>Free access to public information by the citizen. </li>
6921 <li>Permanence of public data. </li>
6922 <li>Security of the State and citizens.</li>
6923 </ul>
6924 </p>
6925
6926 <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>
6927
6928 <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>
6929
6930 <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>
6931
6932 <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>
6933
6934 <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>
6935
6936
6937 <p>From reading the Bill it will be clear that once passed:<br>
6938 <li>the law does not forbid the production of proprietary software</li>
6939 <li>the law does not forbid the sale of proprietary software</li>
6940 <li>the law does not specify which concrete software to use</li>
6941 <li>the law does not dictate the supplier from whom software will be bought</li>
6942 <li>the law does not limit the terms under which a software product can be licensed.</li>
6943
6944 </p>
6945
6946 <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>
6947
6948 <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>
6949
6950 <p>As for the observations you have made, we will now go on to analyze them in detail:</p>
6951
6952 <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>
6953
6954 <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>
6955
6956 <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>
6957
6958 <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>
6959
6960 <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>
6961
6962 <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>
6963
6964 <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>
6965
6966 <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>
6967
6968 <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>
6969
6970 <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>
6971
6972 <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>
6973
6974 <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>
6975
6976 <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>
6977
6978 <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>
6979
6980 <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>
6981
6982 <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>
6983
6984 <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>
6985
6986 <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>
6987
6988 <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>
6989
6990 <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>
6991
6992 <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>
6993
6994 <p>On security:</p>
6995
6996 <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>
6997
6998 <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>
6999
7000 <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>
7001
7002 <p>In respect of the guarantee:</p>
7003
7004 <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>
7005
7006 <p>On Intellectual Property:</p>
7007
7008 <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>
7009
7010 <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>
7011
7012 <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>
7013
7014 <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>
7015
7016 <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>
7017
7018 <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>
7019
7020 <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>
7021
7022 <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>
7023
7024 <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>
7025
7026 <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>
7027
7028 <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>
7029
7030 <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>
7031
7032 <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>
7033
7034 <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>
7035
7036 <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>
7037
7038 <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>
7039
7040 <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>
7041
7042 <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>
7043
7044 <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>
7045
7046 <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>
7047
7048 <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>
7049
7050 <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>
7051
7052 <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>
7053
7054 <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>
7055
7056 <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>
7057
7058 <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>
7059
7060 <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>
7061
7062 <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>
7063
7064 <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>
7065
7066 <p>Cordially,<br>
7067 DR. EDGAR DAVID VILLANUEVA NUÑEZ<br>
7068 Congressman of the Republic of Perú.</p>
7069 </blockquote>
7070
7071 </div>
7072 <div class="tags">
7073
7074
7075 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>.
7076
7077
7078 </div>
7079 </div>
7080 <div class="padding"></div>
7081
7082 <div class="entry">
7083 <div class="title">
7084 <a href="http://people.skolelinux.org/pere/blog/Officeshots_still_going_strong.html">Officeshots still going strong</a>
7085 </div>
7086 <div class="date">
7087 25th December 2010
7088 </div>
7089 <div class="body">
7090 <p>Half a year ago I
7091 <a href="http://people.skolelinux.org/pere/blog/Officeshots_taking_shape.html">wrote
7092 a bit</a> about <a href="http://www.officeshots.org/">OfficeShots</a>,
7093 a web service to allow anyone to test how ODF documents are handled by
7094 the different programs reading and writing the ODF format.</p>
7095
7096 <p>I just had a look at the service, and it seem to be going strong.
7097 Very interesting to see the results reported in the gallery, how
7098 different Office implementations handle different ODF features. Sad
7099 to see that KOffice was not doing it very well, and happy to see that
7100 LibreOffice has been tested already (but sadly not listed as a option
7101 for OfficeShots users yet). I am glad to see that the ODF community
7102 got such a great test tool available.</p>
7103
7104 </div>
7105 <div class="tags">
7106
7107
7108 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>.
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/How_to_test_if_a_laptop_is_working_with_Linux.html">How to test if a laptop is working with Linux</a>
7118 </div>
7119 <div class="date">
7120 22nd December 2010
7121 </div>
7122 <div class="body">
7123 <p>The last few days I have spent at work here at the <a
7124 href="http://www.uio.no/">University of Oslo</a> testing if the new
7125 batch of computers will work with Linux. Every year for the last few
7126 years the university have organised shared bid of a few thousand
7127 computers, and this year HP won the bid. Two different desktops and
7128 five different laptops are on the list this year. We in the UNIX
7129 group want to know which one of these computers work well with RHEL
7130 and Ubuntu, the two Linux distributions we currently handle at the
7131 university.</p>
7132
7133 <p>My test method is simple, and I share it here to get feedback and
7134 perhaps inspire others to test hardware as well. To test, I PXE
7135 install the OS version of choice, and log in as my normal user and run
7136 a few applications and plug in selected pieces of hardware. When
7137 something fail, I make a note about this in the test matrix and move
7138 on. If I have some spare time I try to report the bug to the OS
7139 vendor, but as I only have the machines for a short time, I rarely
7140 have the time to do this for all the problems I find.</p>
7141
7142 <p>Anyway, to get to the point of this post. Here is the simple tests
7143 I perform on a new model.</p>
7144
7145 <ul>
7146
7147 <li>Is PXE installation working? I'm testing with RHEL6, Ubuntu Lucid
7148 and Ubuntu Maverik at the moment. If I feel like it, I also test with
7149 RHEL5 and Debian Edu/Squeeze.</li>
7150
7151 <li>Is X.org working? If the graphical login screen show up after
7152 installation, X.org is working.</li>
7153
7154 <li>Is hardware accelerated OpenGL working? Running glxgears (in
7155 package mesa-utils on Ubuntu) and writing down the frames per second
7156 reported by the program.</li>
7157
7158 <li>Is sound working? With Gnome and KDE, a sound is played when
7159 logging in, and if I can hear this the test is successful. If there
7160 are several audio exits on the machine, I try them all and check if
7161 the Gnome/KDE audio mixer can control where to send the sound. I
7162 normally test this by playing
7163 <a href="http://www.nuug.no/aktiviteter/20101012-chef/ ">a HTML5
7164 video</a> in Firefox/Iceweasel.</li>
7165
7166 <li>Is the USB subsystem working? I test this by plugging in a USB
7167 memory stick and see if Gnome/KDE notices this.</li>
7168
7169 <li>Is the CD/DVD player working? I test this by inserting any CD/DVD
7170 I have lying around, and see if Gnome/KDE notices this.</li>
7171
7172 <li>Is any built in camera working? Test using cheese, and see if a
7173 picture from the v4l device show up.</li>
7174
7175 <li>Is bluetooth working? Use the Gnome/KDE browsing tool to see if
7176 any bluetooth devices are discovered. In my office, I normally see a
7177 few.</li>
7178
7179 <li>For laptops, is the SD or Compaq Flash reader working. I have
7180 memory modules lying around, and stick them in and see if Gnome/KDE
7181 notice this.</li>
7182
7183 <li>For laptops, is suspend/hibernate working? I'm testing if the
7184 special button work, and if the laptop continue to work after
7185 resume.</li>
7186
7187 <li>For laptops, is the extra buttons working, like audio level,
7188 adjusting background light, switching on/off external video output,
7189 switching on/off wifi, bluetooth, etc? The set of buttons differ from
7190 laptop to laptop, so I just write down which are working and which are
7191 not.</li>
7192
7193 <li>Some laptops have smart card readers, finger print readers,
7194 acceleration sensors etc. I rarely test these, as I do not know how
7195 to quickly test if they are working or not, so I only document their
7196 existence.</li>
7197
7198 </ul>
7199
7200 <p>By now I suspect you are really curious what the test results are
7201 for the HP machines I am testing. I'm not done yet, so I will report
7202 the test results later. For now I can report that HP 8100 Elite work
7203 fine, and hibernation fail with HP EliteBook 8440p on Ubuntu Lucid,
7204 and audio fail on RHEL6. Ubuntu Maverik worked with 8440p. As you
7205 can see, I have most machines left to test. One interesting
7206 observation is that Ubuntu Lucid has almost twice the frame rate than
7207 RHEL6 with glxgears. No idea why.</p>
7208
7209 </div>
7210 <div class="tags">
7211
7212
7213 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>.
7214
7215
7216 </div>
7217 </div>
7218 <div class="padding"></div>
7219
7220 <div class="entry">
7221 <div class="title">
7222 <a href="http://people.skolelinux.org/pere/blog/Some_thoughts_on_BitCoins.html">Some thoughts on BitCoins</a>
7223 </div>
7224 <div class="date">
7225 11th December 2010
7226 </div>
7227 <div class="body">
7228 <p>As I continue to explore
7229 <a href="http://www.bitcoin.org/">BitCoin</a>, I've starting to wonder
7230 what properties the system have, and how it will be affected by laws
7231 and regulations here in Norway. Here are some random notes.</p>
7232
7233 <p>One interesting thing to note is that since the transactions are
7234 verified using a peer to peer network, all details about a transaction
7235 is known to everyone. This means that if a BitCoin address has been
7236 published like I did with mine in my initial post about BitCoin, it is
7237 possible for everyone to see how many BitCoins have been transfered to
7238 that address. There is even a web service to look at the details for
7239 all transactions. There I can see that my address
7240 <a href="http://blockexplorer.com/address/15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a>
7241 have received 16.06 Bitcoin, the
7242 <a href="http://blockexplorer.com/address/1LfdGnGuWkpSJgbQySxxCWhv8MHqvwst3">1LfdGnGuWkpSJgbQySxxCWhv8MHqvwst3</a>
7243 address of Simon Phipps have received 181.97 BitCoin and the address
7244 <a href="http://blockexplorer.com/address/1MCwBbhNGp5hRm5rC1Aims2YFRe2SXPYKt">1MCwBbhNGp5hRm5rC1Aims2YFRe2SXPYKt</A>
7245 of EFF have received 2447.38 BitCoins so far. Thank you to each and
7246 every one of you that donated bitcoins to support my activity. The
7247 fact that anyone can see how much money was transfered to a given
7248 address make it more obvious why the BitCoin community recommend to
7249 generate and hand out a new address for each transaction. I'm told
7250 there is no way to track which addresses belong to a given person or
7251 organisation without the person or organisation revealing it
7252 themselves, as Simon, EFF and I have done.</p>
7253
7254 <p>In Norway, and in most other countries, there are laws and
7255 regulations limiting how much money one can transfer across the border
7256 without declaring it. There are money laundering, tax and accounting
7257 laws and regulations I would expect to apply to the use of BitCoin.
7258 If the Skolelinux foundation
7259 (<a href="http://linuxiskolen.no/slxdebianlabs/donations.html">SLX
7260 Debian Labs</a>) were to accept donations in BitCoin in addition to
7261 normal bank transfers like EFF is doing, how should this be accounted?
7262 Given that it is impossible to know if money can cross the border or
7263 not, should everything or nothing be declared? What exchange rate
7264 should be used when calculating taxes? Would receivers have to pay
7265 income tax if the foundation were to pay Skolelinux contributors in
7266 BitCoin? I have no idea, but it would be interesting to know.</p>
7267
7268 <p>For a currency to be useful and successful, it must be trusted and
7269 accepted by a lot of users. It must be possible to get easy access to
7270 the currency (as a wage or using currency exchanges), and it must be
7271 easy to spend it. At the moment BitCoin seem fairly easy to get
7272 access to, but there are very few places to spend it. I am not really
7273 a regular user of any of the vendor types currently accepting BitCoin,
7274 so I wonder when my kind of shop would start accepting BitCoins. I
7275 would like to buy electronics, travels and subway tickets, not herbs
7276 and books. :) The currency is young, and this will improve over time
7277 if it become popular, but I suspect regular banks will start to lobby
7278 to get BitCoin declared illegal if it become popular. I'm sure they
7279 will claim it is helping fund terrorism and money laundering (which
7280 probably would be true, as is any currency in existence), but I
7281 believe the problems should be solved elsewhere and not by blaming
7282 currencies.</p>
7283
7284 <p>The process of creating new BitCoins is called mining, and it is
7285 CPU intensive process that depend on a bit of luck as well (as one is
7286 competing against all the other miners currently spending CPU cycles
7287 to see which one get the next lump of cash). The "winner" get 50
7288 BitCoin when this happen. Yesterday I came across the obvious way to
7289 join forces to increase ones changes of getting at least some coins,
7290 by coordinating the work on mining BitCoins across several machines
7291 and people, and sharing the result if one is lucky and get the 50
7292 BitCoins. Check out
7293 <a href="http://www.bluishcoder.co.nz/bitcoin-pool/">BitCoin Pool</a>
7294 if this sounds interesting. I have not had time to try to set up a
7295 machine to participate there yet, but have seen that running on ones
7296 own for a few days have not yield any BitCoins througth mining
7297 yet.</p>
7298
7299 <p>Update 2010-12-15: Found an <a
7300 href="http://inertia.posterous.com/reply-to-the-underground-economist-why-bitcoi">interesting
7301 criticism</a> of bitcoin. Not quite sure how valid it is, but thought
7302 it was interesting to read. The arguments presented seem to be
7303 equally valid for gold, which was used as a currency for many years.</p>
7304
7305 </div>
7306 <div class="tags">
7307
7308
7309 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>.
7310
7311
7312 </div>
7313 </div>
7314 <div class="padding"></div>
7315
7316 <div class="entry">
7317 <div class="title">
7318 <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>
7319 </div>
7320 <div class="date">
7321 10th December 2010
7322 </div>
7323 <div class="body">
7324 <p>With this weeks lawless
7325 <a href="http://www.salon.com/news/opinion/glenn_greenwald/2010/12/06/wikileaks/index.html">governmental
7326 attacks</a> on Wikileak and
7327 <a href="http://www.salon.com/technology/dan_gillmor/2010/12/06/war_on_speech">free
7328 speech</a>, it has become obvious that PayPal, visa and mastercard can
7329 not be trusted to handle money transactions.
7330 A blog post from
7331 <a href="http://webmink.com/2010/12/06/now-accepting-bitcoin/">Simon
7332 Phipps on bitcoin</a> reminded me about a project that a friend of
7333 mine mentioned earlier. I decided to follow Simon's example, and get
7334 involved with <a href="http://www.bitcoin.org/">BitCoin</a>. I got
7335 some help from my friend to get it all running, and he even handed me
7336 some bitcoins to get started. I even donated a few bitcoins to Simon
7337 for helping me remember BitCoin.</p>
7338
7339 <p>So, what is bitcoins, you probably wonder? It is a digital
7340 crypto-currency, decentralised and handled using peer-to-peer
7341 networks. It allows anonymous transactions and prohibits central
7342 control over the transactions, making it impossible for governments
7343 and companies alike to block donations and other transactions. The
7344 source is free software, and while the key dependency wxWidgets 2.9
7345 for the graphical user interface is missing in Debian, the command
7346 line client builds just fine. Hopefully Jonas
7347 <a href="http://bugs.debian.org/578157">will get the package into
7348 Debian</a> soon.</p>
7349
7350 <p>Bitcoins can be converted to other currencies, like USD and EUR.
7351 There are <a href="http://www.bitcoin.org/trade">companies accepting
7352 bitcoins</a> when selling services and goods, and there are even
7353 currency "stock" markets where the exchange rate is decided. There
7354 are not many users so far, but the concept seems promising. If you
7355 want to get started and lack a friend with any bitcoins to spare,
7356 you can even get
7357 <a href="https://freebitcoins.appspot.com/">some for free</a> (0.05
7358 bitcoin at the time of writing). Use
7359 <a href="http://www.bitcoinwatch.com/">BitcoinWatch</a> to keep an eye
7360 on the current exchange rates.</p>
7361
7362 <p>As an experiment, I have decided to set up bitcoind on one of my
7363 machines. If you want to support my activity, please send Bitcoin
7364 donations to the address
7365 <b>15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</b>. Thank you!</p>
7366
7367 </div>
7368 <div class="tags">
7369
7370
7371 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>.
7372
7373
7374 </div>
7375 </div>
7376 <div class="padding"></div>
7377
7378 <div class="entry">
7379 <div class="title">
7380 <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>
7381 </div>
7382 <div class="date">
7383 9th December 2010
7384 </div>
7385 <div class="body">
7386 <p>A few days ago, I was introduces to some students in the robot
7387 student assosiation <a href="http://www.robotica.no/">Robotica
7388 Osloensis</a> at the University of Oslo where I work, who planned to
7389 get their own 3D printer. They wanted to learn from me based on my
7390 work in the area. After having a short lunch meeting with them, I
7391 offered them to borrow my reprap kit, as I never had time to complete
7392 the build and this seem unlike to change any time soon. I look
7393 forward to see how this goes. This monday their volunteer driver
7394 picked up my kit and drove it to their lab, and tomorrow I am told the
7395 last exam is over so they can start work on getting the 3D printer
7396 operational.</p>
7397
7398 <p>The robotic group have already build several robots on their own,
7399 and seem capable of getting the reprap operational. I really look
7400 forward to being able to print all the cool 3D designs published on
7401 <a href="http://www.thingiverse.com/">Thingiverse</a>. I even got
7402 some 3D scans I got made during Dagen@IFI when one of the groups at
7403 the computer science department at the university demonstrated their
7404 very cool 3D scanner.</p>
7405
7406 </div>
7407 <div class="tags">
7408
7409
7410 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>.
7411
7412
7413 </div>
7414 </div>
7415 <div class="padding"></div>
7416
7417 <div class="entry">
7418 <div class="title">
7419 <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>
7420 </div>
7421 <div class="date">
7422 29th November 2010
7423 </div>
7424 <div class="body">
7425 <p>On friday, the first Debian Edu / Skolelinux
7426 <a href="http://www.friprogramvareiskolen.no/Gathering/2010-12-03-05-Oslo">development
7427 gathering</a> in a long time take place here in Oslo, Norway. I
7428 really look forward to seeing all the good people working on the
7429 Squeeze release. The gathering is open for everyone interested in
7430 learning more about Debian Edu / Skolelinux.</p>
7431
7432 <p>On Saturday, the Norwegian member organization taking care of
7433 organizing these development gatherings, Fri Programvare i Skolen,
7434 will hold its
7435 <a href="http://friprogramvareiskolen.no/Genfors/2010">General Assembly
7436 for 2010</a>. Membership is open for all, and currently there are 388
7437 people registered as members. Last year 32 members cast their vote in
7438 the memberdb based election system. I hope more people find time to
7439 vote this year.</p>
7440
7441 </div>
7442 <div class="tags">
7443
7444
7445 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>.
7446
7447
7448 </div>
7449 </div>
7450 <div class="padding"></div>
7451
7452 <div class="entry">
7453 <div class="title">
7454 <a href="http://people.skolelinux.org/pere/blog/Why_isn_t_Debian_Edu_using_VLC_.html">Why isn't Debian Edu using VLC?</a>
7455 </div>
7456 <div class="date">
7457 27th November 2010
7458 </div>
7459 <div class="body">
7460 <p>In the latest issue of Linux Journal, the readers choices were
7461 presented, and the winner among the multimedia player were VLC.
7462 Personally, I like VLC, and it is my player of choice when I first try
7463 to play a video file or stream. Only if VLC fail will I drag out
7464 gmplayer to see if it can do better. The reason is mostly the failure
7465 model and trust. When VLC fail, it normally pop up a error message
7466 reporting the problem. When mplayer fail, it normally segfault or
7467 just hangs. The latter failure mode drain my trust in the program.<p>
7468
7469 <p>But even if VLC is my player of choice, we have choosen to use
7470 mplayer in <a href="http://www.skolelinux.org/">Debian
7471 Edu/Skolelinux</a>. The reason is simple. We need a good browser
7472 plugin to play web videos seamlessly, and the VLC browser plugin is
7473 not very good. For example, it lack in-line control buttons, so there
7474 is no way for the user to pause the video. Also, when I
7475 <a href="http://wiki.debian.org/DebianEdu/BrowserMultimedia">last
7476 tested the browser plugins</a> available in Debian, the VLC plugin
7477 failed on several video pages where mplayer based plugins worked. If
7478 the browser plugin for VLC was as good as the gecko-mediaplayer
7479 package (which uses mplayer), we would switch.</P>
7480
7481 <p>While VLC is a good player, its user interface is slightly
7482 annoying. The most annoying feature is its inconsistent use of
7483 keyboard shortcuts. When the player is in full screen mode, its
7484 shortcuts are different from when it is playing the video in a window.
7485 For example, space only work as pause when in full screen mode. I
7486 wish it had consisten shortcuts and that space also would work when in
7487 window mode. Another nice shortcut in gmplayer is [enter] to restart
7488 the current video. It is very nice when playing short videos from the
7489 web and want to restart it when new people arrive to have a look at
7490 what is going on.</p>
7491
7492 </div>
7493 <div class="tags">
7494
7495
7496 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>.
7497
7498
7499 </div>
7500 </div>
7501 <div class="padding"></div>
7502
7503 <div class="entry">
7504 <div class="title">
7505 <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>
7506 </div>
7507 <div class="date">
7508 22nd November 2010
7509 </div>
7510 <div class="body">
7511 <p>Michael Biebl suggested to me on IRC, that I changed my automated
7512 upgrade testing of the
7513 <a href="http://people.skolelinux.org/~pere/debian-upgrade-testing/">Lenny
7514 Gnome and KDE Desktop</a> to do <tt>apt-get autoremove</tt> when using apt-get.
7515 This seem like a very good idea, so I adjusted by test scripts and
7516 can now present the updated result from today:</p>
7517
7518 <p>This is for Gnome:</p>
7519
7520 <p>Installed using apt-get, missing with aptitude</p>
7521
7522 <blockquote><p>
7523 apache2.2-bin
7524 aptdaemon
7525 baobab
7526 binfmt-support
7527 browser-plugin-gnash
7528 cheese-common
7529 cli-common
7530 cups-pk-helper
7531 dmz-cursor-theme
7532 empathy
7533 empathy-common
7534 freedesktop-sound-theme
7535 freeglut3
7536 gconf-defaults-service
7537 gdm-themes
7538 gedit-plugins
7539 geoclue
7540 geoclue-hostip
7541 geoclue-localnet
7542 geoclue-manual
7543 geoclue-yahoo
7544 gnash
7545 gnash-common
7546 gnome
7547 gnome-backgrounds
7548 gnome-cards-data
7549 gnome-codec-install
7550 gnome-core
7551 gnome-desktop-environment
7552 gnome-disk-utility
7553 gnome-screenshot
7554 gnome-search-tool
7555 gnome-session-canberra
7556 gnome-system-log
7557 gnome-themes-extras
7558 gnome-themes-more
7559 gnome-user-share
7560 gstreamer0.10-fluendo-mp3
7561 gstreamer0.10-tools
7562 gtk2-engines
7563 gtk2-engines-pixbuf
7564 gtk2-engines-smooth
7565 hamster-applet
7566 libapache2-mod-dnssd
7567 libapr1
7568 libaprutil1
7569 libaprutil1-dbd-sqlite3
7570 libaprutil1-ldap
7571 libart2.0-cil
7572 libboost-date-time1.42.0
7573 libboost-python1.42.0
7574 libboost-thread1.42.0
7575 libchamplain-0.4-0
7576 libchamplain-gtk-0.4-0
7577 libcheese-gtk18
7578 libclutter-gtk-0.10-0
7579 libcryptui0
7580 libdiscid0
7581 libelf1
7582 libepc-1.0-2
7583 libepc-common
7584 libepc-ui-1.0-2
7585 libfreerdp-plugins-standard
7586 libfreerdp0
7587 libgconf2.0-cil
7588 libgdata-common
7589 libgdata7
7590 libgdu-gtk0
7591 libgee2
7592 libgeoclue0
7593 libgexiv2-0
7594 libgif4
7595 libglade2.0-cil
7596 libglib2.0-cil
7597 libgmime2.4-cil
7598 libgnome-vfs2.0-cil
7599 libgnome2.24-cil
7600 libgnomepanel2.24-cil
7601 libgpod-common
7602 libgpod4
7603 libgtk2.0-cil
7604 libgtkglext1
7605 libgtksourceview2.0-common
7606 libmono-addins-gui0.2-cil
7607 libmono-addins0.2-cil
7608 libmono-cairo2.0-cil
7609 libmono-corlib2.0-cil
7610 libmono-i18n-west2.0-cil
7611 libmono-posix2.0-cil
7612 libmono-security2.0-cil
7613 libmono-sharpzip2.84-cil
7614 libmono-system2.0-cil
7615 libmtp8
7616 libmusicbrainz3-6
7617 libndesk-dbus-glib1.0-cil
7618 libndesk-dbus1.0-cil
7619 libopal3.6.8
7620 libpolkit-gtk-1-0
7621 libpt2.6.7
7622 libpython2.6
7623 librpm1
7624 librpmio1
7625 libsdl1.2debian
7626 libsrtp0
7627 libssh-4
7628 libtelepathy-farsight0
7629 libtelepathy-glib0
7630 libtidy-0.99-0
7631 media-player-info
7632 mesa-utils
7633 mono-2.0-gac
7634 mono-gac
7635 mono-runtime
7636 nautilus-sendto
7637 nautilus-sendto-empathy
7638 p7zip-full
7639 pkg-config
7640 python-aptdaemon
7641 python-aptdaemon-gtk
7642 python-axiom
7643 python-beautifulsoup
7644 python-bugbuddy
7645 python-clientform
7646 python-coherence
7647 python-configobj
7648 python-crypto
7649 python-cupshelpers
7650 python-elementtree
7651 python-epsilon
7652 python-evolution
7653 python-feedparser
7654 python-gdata
7655 python-gdbm
7656 python-gst0.10
7657 python-gtkglext1
7658 python-gtksourceview2
7659 python-httplib2
7660 python-louie
7661 python-mako
7662 python-markupsafe
7663 python-mechanize
7664 python-nevow
7665 python-notify
7666 python-opengl
7667 python-openssl
7668 python-pam
7669 python-pkg-resources
7670 python-pyasn1
7671 python-pysqlite2
7672 python-rdflib
7673 python-serial
7674 python-tagpy
7675 python-twisted-bin
7676 python-twisted-conch
7677 python-twisted-core
7678 python-twisted-web
7679 python-utidylib
7680 python-webkit
7681 python-xdg
7682 python-zope.interface
7683 remmina
7684 remmina-plugin-data
7685 remmina-plugin-rdp
7686 remmina-plugin-vnc
7687 rhythmbox-plugin-cdrecorder
7688 rhythmbox-plugins
7689 rpm-common
7690 rpm2cpio
7691 seahorse-plugins
7692 shotwell
7693 software-center
7694 system-config-printer-udev
7695 telepathy-gabble
7696 telepathy-mission-control-5
7697 telepathy-salut
7698 tomboy
7699 totem
7700 totem-coherence
7701 totem-mozilla
7702 totem-plugins
7703 transmission-common
7704 xdg-user-dirs
7705 xdg-user-dirs-gtk
7706 xserver-xephyr
7707 </p></blockquote>
7708
7709 <p>Installed using apt-get, removed with aptitude</p>
7710
7711 <blockquote><p>
7712 cheese
7713 ekiga
7714 eog
7715 epiphany-extensions
7716 evolution-exchange
7717 fast-user-switch-applet
7718 file-roller
7719 gcalctool
7720 gconf-editor
7721 gdm
7722 gedit
7723 gedit-common
7724 gnome-games
7725 gnome-games-data
7726 gnome-nettool
7727 gnome-system-tools
7728 gnome-themes
7729 gnuchess
7730 gucharmap
7731 guile-1.8-libs
7732 libavahi-ui0
7733 libdmx1
7734 libgalago3
7735 libgtk-vnc-1.0-0
7736 libgtksourceview2.0-0
7737 liblircclient0
7738 libsdl1.2debian-alsa
7739 libspeexdsp1
7740 libsvga1
7741 rhythmbox
7742 seahorse
7743 sound-juicer
7744 system-config-printer
7745 totem-common
7746 transmission-gtk
7747 vinagre
7748 vino
7749 </p></blockquote>
7750
7751 <p>Installed using aptitude, missing with apt-get</p>
7752
7753 <blockquote><p>
7754 gstreamer0.10-gnomevfs
7755 </p></blockquote>
7756
7757 <p>Installed using aptitude, removed with apt-get</p>
7758
7759 <blockquote><p>
7760 [nothing]
7761 </p></blockquote>
7762
7763 <p>This is for KDE:</p>
7764
7765 <p>Installed using apt-get, missing with aptitude</p>
7766
7767 <blockquote><p>
7768 ksmserver
7769 </p></blockquote>
7770
7771 <p>Installed using apt-get, removed with aptitude</p>
7772
7773 <blockquote><p>
7774 kwin
7775 network-manager-kde
7776 </p></blockquote>
7777
7778 <p>Installed using aptitude, missing with apt-get</p>
7779
7780 <blockquote><p>
7781 arts
7782 dolphin
7783 freespacenotifier
7784 google-gadgets-gst
7785 google-gadgets-xul
7786 kappfinder
7787 kcalc
7788 kcharselect
7789 kde-core
7790 kde-plasma-desktop
7791 kde-standard
7792 kde-window-manager
7793 kdeartwork
7794 kdeartwork-emoticons
7795 kdeartwork-style
7796 kdeartwork-theme-icon
7797 kdebase
7798 kdebase-apps
7799 kdebase-workspace
7800 kdebase-workspace-bin
7801 kdebase-workspace-data
7802 kdeeject
7803 kdelibs
7804 kdeplasma-addons
7805 kdeutils
7806 kdewallpapers
7807 kdf
7808 kfloppy
7809 kgpg
7810 khelpcenter4
7811 kinfocenter
7812 konq-plugins-l10n
7813 konqueror-nsplugins
7814 kscreensaver
7815 kscreensaver-xsavers
7816 ktimer
7817 kwrite
7818 libgle3
7819 libkde4-ruby1.8
7820 libkonq5
7821 libkonq5-templates
7822 libnetpbm10
7823 libplasma-ruby
7824 libplasma-ruby1.8
7825 libqt4-ruby1.8
7826 marble-data
7827 marble-plugins
7828 netpbm
7829 nuvola-icon-theme
7830 plasma-dataengines-workspace
7831 plasma-desktop
7832 plasma-desktopthemes-artwork
7833 plasma-runners-addons
7834 plasma-scriptengine-googlegadgets
7835 plasma-scriptengine-python
7836 plasma-scriptengine-qedje
7837 plasma-scriptengine-ruby
7838 plasma-scriptengine-webkit
7839 plasma-scriptengines
7840 plasma-wallpapers-addons
7841 plasma-widget-folderview
7842 plasma-widget-networkmanagement
7843 ruby
7844 sweeper
7845 update-notifier-kde
7846 xscreensaver-data-extra
7847 xscreensaver-gl
7848 xscreensaver-gl-extra
7849 xscreensaver-screensaver-bsod
7850 </p></blockquote>
7851
7852 <p>Installed using aptitude, removed with apt-get</p>
7853
7854 <blockquote><p>
7855 ark
7856 google-gadgets-common
7857 google-gadgets-qt
7858 htdig
7859 kate
7860 kdebase-bin
7861 kdebase-data
7862 kdepasswd
7863 kfind
7864 klipper
7865 konq-plugins
7866 konqueror
7867 ksysguard
7868 ksysguardd
7869 libarchive1
7870 libcln6
7871 libeet1
7872 libeina-svn-06
7873 libggadget-1.0-0b
7874 libggadget-qt-1.0-0b
7875 libgps19
7876 libkdecorations4
7877 libkephal4
7878 libkonq4
7879 libkonqsidebarplugin4a
7880 libkscreensaver5
7881 libksgrd4
7882 libksignalplotter4
7883 libkunitconversion4
7884 libkwineffects1a
7885 libmarblewidget4
7886 libntrack-qt4-1
7887 libntrack0
7888 libplasma-geolocation-interface4
7889 libplasmaclock4a
7890 libplasmagenericshell4
7891 libprocesscore4a
7892 libprocessui4a
7893 libqalculate5
7894 libqedje0a
7895 libqtruby4shared2
7896 libqzion0a
7897 libruby1.8
7898 libscim8c2a
7899 libsmokekdecore4-3
7900 libsmokekdeui4-3
7901 libsmokekfile3
7902 libsmokekhtml3
7903 libsmokekio3
7904 libsmokeknewstuff2-3
7905 libsmokeknewstuff3-3
7906 libsmokekparts3
7907 libsmokektexteditor3
7908 libsmokekutils3
7909 libsmokenepomuk3
7910 libsmokephonon3
7911 libsmokeplasma3
7912 libsmokeqtcore4-3
7913 libsmokeqtdbus4-3
7914 libsmokeqtgui4-3
7915 libsmokeqtnetwork4-3
7916 libsmokeqtopengl4-3
7917 libsmokeqtscript4-3
7918 libsmokeqtsql4-3
7919 libsmokeqtsvg4-3
7920 libsmokeqttest4-3
7921 libsmokeqtuitools4-3
7922 libsmokeqtwebkit4-3
7923 libsmokeqtxml4-3
7924 libsmokesolid3
7925 libsmokesoprano3
7926 libtaskmanager4a
7927 libtidy-0.99-0
7928 libweather-ion4a
7929 libxklavier16
7930 libxxf86misc1
7931 okteta
7932 oxygencursors
7933 plasma-dataengines-addons
7934 plasma-scriptengine-superkaramba
7935 plasma-widget-lancelot
7936 plasma-widgets-addons
7937 plasma-widgets-workspace
7938 polkit-kde-1
7939 ruby1.8
7940 systemsettings
7941 update-notifier-common
7942 </p></blockquote>
7943
7944 <p>Running apt-get autoremove made the results using apt-get and
7945 aptitude a bit more similar, but there are still quite a lott of
7946 differences. I have no idea what packages should be installed after
7947 the upgrade, but hope those that do can have a look.</p>
7948
7949 </div>
7950 <div class="tags">
7951
7952
7953 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>.
7954
7955
7956 </div>
7957 </div>
7958 <div class="padding"></div>
7959
7960 <div class="entry">
7961 <div class="title">
7962 <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>
7963 </div>
7964 <div class="date">
7965 22nd November 2010
7966 </div>
7967 <div class="body">
7968 <p>Most of the computers in use by the
7969 <a href="http://www.skolelinux.org/">Debian Edu/Skolelinux project</a>
7970 are virtual machines. And they have been Xen machines running on a
7971 fairly old IBM eserver xseries 345 machine, and we wanted to migrate
7972 them to KVM on a newer Dell PowerEdge 2950 host machine. This was a
7973 bit harder that it could have been, because we set up the Xen virtual
7974 machines to get the virtual partitions from LVM, which as far as I
7975 know is not supported by KVM. So to migrate, we had to convert
7976 several LVM logical volumes to partitions on a virtual disk file.</p>
7977
7978 <p>I found
7979 <a href="http://searchnetworking.techtarget.com.au/articles/35011-Six-steps-for-migrating-Xen-virtual-machines-to-KVM">a
7980 nice recipe</a> to do this, and wrote the following script to do the
7981 migration. It uses qemu-img from the qemu package to make the disk
7982 image, parted to partition it, losetup and kpartx to present the disk
7983 image partions as devices, and dd to copy the data. I NFS mounted the
7984 new servers storage area on the old server to do the migration.</p>
7985
7986 <pre>
7987 #!/bin/sh
7988
7989 # Based on
7990 # http://searchnetworking.techtarget.com.au/articles/35011-Six-steps-for-migrating-Xen-virtual-machines-to-KVM
7991
7992 set -e
7993 set -x
7994
7995 if [ -z "$1" ] ; then
7996 echo "Usage: $0 &lt;hostname&gt;"
7997 exit 1
7998 else
7999 host="$1"
8000 fi
8001
8002 if [ ! -e /dev/vg_data/$host-disk ] ; then
8003 echo "error: unable to find LVM volume for $host"
8004 exit 1
8005 fi
8006
8007 # Partitions need to be a bit bigger than the LVM LVs. not sure why.
8008 disksize=$( lvs --units m | grep $host-disk | awk '{sum = sum + $4} END { print int(sum * 1.05) }')
8009 swapsize=$( lvs --units m | grep $host-swap | awk '{sum = sum + $4} END { print int(sum * 1.05) }')
8010 totalsize=$(( ( $disksize + $swapsize ) ))
8011
8012 img=$host.img
8013 #dd if=/dev/zero of=$img bs=1M count=$(( $disksize + $swapsize ))
8014 qemu-img create $img ${totalsize}MMaking room on the Debian Edu/Sqeeze DVD
8015
8016 parted $img mklabel msdos
8017 parted $img mkpart primary linux-swap 0 $disksize
8018 parted $img mkpart primary ext2 $disksize $totalsize
8019 parted $img set 1 boot on
8020
8021 modprobe dm-mod
8022 losetup /dev/loop0 $img
8023 kpartx -a /dev/loop0
8024
8025 dd if=/dev/vg_data/$host-disk of=/dev/mapper/loop0p1 bs=1M
8026 fsck.ext3 -f /dev/mapper/loop0p1 || true
8027 mkswap /dev/mapper/loop0p2
8028
8029 kpartx -d /dev/loop0
8030 losetup -d /dev/loop0
8031 </pre>
8032
8033 <p>The script is perhaps so simple that it is not copyrightable, but
8034 if it is, it is licenced using GPL v2 or later at your discretion.</p>
8035
8036 <p>After doing this, I booted a Debian CD in rescue mode in KVM with
8037 the new disk image attached, installed grub-pc and linux-image-686 and
8038 set up grub to boot from the disk image. After this, the KVM machines
8039 seem to work just fine.</p>
8040
8041 </div>
8042 <div class="tags">
8043
8044
8045 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>.
8046
8047
8048 </div>
8049 </div>
8050 <div class="padding"></div>
8051
8052 <div class="entry">
8053 <div class="title">
8054 <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>
8055 </div>
8056 <div class="date">
8057 20th November 2010
8058 </div>
8059 <div class="body">
8060 <p>I'm still running upgrade testing of the
8061 <a href="http://people.skolelinux.org/~pere/debian-upgrade-testing/">Lenny
8062 Gnome and KDE Desktop</a>, but have not had time to spend on reporting the
8063 status. Here is a short update based on a test I ran 20101118.</p>
8064
8065 <p>I still do not know what a correct migration should look like, so I
8066 report any differences between apt and aptitude and hope someone else
8067 can see if anything should be changed.</p>
8068
8069 <p>This is for Gnome:</p>
8070
8071 <p>Installed using apt-get, missing with aptitude</p>
8072
8073 <blockquote><p>
8074 apache2.2-bin aptdaemon at-spi baobab binfmt-support
8075 browser-plugin-gnash cheese-common cli-common cpp-4.3 cups-pk-helper
8076 dmz-cursor-theme empathy empathy-common finger
8077 freedesktop-sound-theme freeglut3 gconf-defaults-service gdm-themes
8078 gedit-plugins geoclue geoclue-hostip geoclue-localnet geoclue-manual
8079 geoclue-yahoo gnash gnash-common gnome gnome-backgrounds
8080 gnome-cards-data gnome-codec-install gnome-core
8081 gnome-desktop-environment gnome-disk-utility gnome-screenshot
8082 gnome-search-tool gnome-session-canberra gnome-spell
8083 gnome-system-log gnome-themes-extras gnome-themes-more
8084 gnome-user-share gs-common gstreamer0.10-fluendo-mp3
8085 gstreamer0.10-tools gtk2-engines gtk2-engines-pixbuf
8086 gtk2-engines-smooth hal-info hamster-applet libapache2-mod-dnssd
8087 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap
8088 libart2.0-cil libatspi1.0-0 libboost-date-time1.42.0
8089 libboost-python1.42.0 libboost-thread1.42.0 libchamplain-0.4-0
8090 libchamplain-gtk-0.4-0 libcheese-gtk18 libclutter-gtk-0.10-0
8091 libcryptui0 libcupsys2 libdiscid0 libeel2-data libelf1 libepc-1.0-2
8092 libepc-common libepc-ui-1.0-2 libfreerdp-plugins-standard
8093 libfreerdp0 libgail-common libgconf2.0-cil libgdata-common libgdata7
8094 libgdl-1-common libgdu-gtk0 libgee2 libgeoclue0 libgexiv2-0 libgif4
8095 libglade2.0-cil libglib2.0-cil libgmime2.4-cil libgnome-vfs2.0-cil
8096 libgnome2.24-cil libgnomepanel2.24-cil libgnomeprint2.2-data
8097 libgnomeprintui2.2-common libgnomevfs2-bin libgpod-common libgpod4
8098 libgtk2.0-cil libgtkglext1 libgtksourceview-common
8099 libgtksourceview2.0-common libmono-addins-gui0.2-cil
8100 libmono-addins0.2-cil libmono-cairo2.0-cil libmono-corlib2.0-cil
8101 libmono-i18n-west2.0-cil libmono-posix2.0-cil
8102 libmono-security2.0-cil libmono-sharpzip2.84-cil
8103 libmono-system2.0-cil libmtp8 libmusicbrainz3-6
8104 libndesk-dbus-glib1.0-cil libndesk-dbus1.0-cil libopal3.6.8
8105 libpolkit-gtk-1-0 libpt-1.10.10-plugins-alsa
8106 libpt-1.10.10-plugins-v4l libpt2.6.7 libpython2.6 librpm1 librpmio1
8107 libsdl1.2debian libservlet2.4-java libsrtp0 libssh-4
8108 libtelepathy-farsight0 libtelepathy-glib0 libtidy-0.99-0
8109 libxalan2-java libxerces2-java media-player-info mesa-utils
8110 mono-2.0-gac mono-gac mono-runtime nautilus-sendto
8111 nautilus-sendto-empathy openoffice.org-writer2latex
8112 openssl-blacklist p7zip p7zip-full pkg-config python-4suite-xml
8113 python-aptdaemon python-aptdaemon-gtk python-axiom
8114 python-beautifulsoup python-bugbuddy python-clientform
8115 python-coherence python-configobj python-crypto python-cupshelpers
8116 python-cupsutils python-eggtrayicon python-elementtree
8117 python-epsilon python-evolution python-feedparser python-gdata
8118 python-gdbm python-gst0.10 python-gtkglext1 python-gtkmozembed
8119 python-gtksourceview2 python-httplib2 python-louie python-mako
8120 python-markupsafe python-mechanize python-nevow python-notify
8121 python-opengl python-openssl python-pam python-pkg-resources
8122 python-pyasn1 python-pysqlite2 python-rdflib python-serial
8123 python-tagpy python-twisted-bin python-twisted-conch
8124 python-twisted-core python-twisted-web python-utidylib python-webkit
8125 python-xdg python-zope.interface remmina remmina-plugin-data
8126 remmina-plugin-rdp remmina-plugin-vnc rhythmbox-plugin-cdrecorder
8127 rhythmbox-plugins rpm-common rpm2cpio seahorse-plugins shotwell
8128 software-center svgalibg1 system-config-printer-udev
8129 telepathy-gabble telepathy-mission-control-5 telepathy-salut tomboy
8130 totem totem-coherence totem-mozilla totem-plugins
8131 transmission-common xdg-user-dirs xdg-user-dirs-gtk xserver-xephyr
8132 zip
8133 </p></blockquote>
8134
8135 Installed using apt-get, removed with aptitude
8136
8137 <blockquote><p>
8138 arj bluez-utils cheese dhcdbd djvulibre-desktop ekiga eog
8139 epiphany-extensions epiphany-gecko evolution-exchange
8140 fast-user-switch-applet file-roller gcalctool gconf-editor gdm gedit
8141 gedit-common gnome-app-install gnome-games gnome-games-data
8142 gnome-nettool gnome-system-tools gnome-themes gnome-utils
8143 gnome-vfs-obexftp gnome-volume-manager gnuchess gucharmap
8144 guile-1.8-libs hal libavahi-compat-libdnssd1 libavahi-core5
8145 libavahi-ui0 libbind9-50 libbluetooth2 libcamel1.2-11 libcdio7
8146 libcucul0 libcurl3 libdirectfb-1.0-0 libdmx1 libdvdread3
8147 libedata-cal1.2-6 libedataserver1.2-9 libeel2-2.20 libepc-1.0-1
8148 libepc-ui-1.0-1 libexchange-storage1.2-3 libfaad0 libgadu3
8149 libgalago3 libgd2-noxpm libgda3-3 libgda3-common libggz2 libggzcore9
8150 libggzmod4 libgksu1.2-0 libgksuui1.0-1 libgmyth0 libgnome-desktop-2
8151 libgnome-pilot2 libgnomecups1.0-1 libgnomeprint2.2-0
8152 libgnomeprintui2.2-0 libgpod3 libgraphviz4 libgtk-vnc-1.0-0
8153 libgtkhtml2-0 libgtksourceview1.0-0 libgtksourceview2.0-0
8154 libgucharmap6 libhesiod0 libicu38 libisccc50 libisccfg50 libiw29
8155 libjaxp1.3-java-gcj libkpathsea4 liblircclient0 libltdl3 liblwres50
8156 libmagick++10 libmagick10 libmalaga7 libmozjs1d libmpfr1ldbl libmtp7
8157 libmysqlclient15off libnautilus-burn4 libneon27 libnm-glib0
8158 libnm-util0 libopal-2.2 libosp5 libparted1.8-10 libpisock9
8159 libpisync1 libpoppler-glib3 libpoppler3 libpt-1.10.10 libraw1394-8
8160 libsdl1.2debian-alsa libsensors3 libsexy2 libsmbios2 libsoup2.2-8
8161 libspeexdsp1 libssh2-1 libsuitesparse-3.1.0 libsvga1
8162 libswfdec-0.6-90 libtalloc1 libtotem-plparser10 libtrackerclient0
8163 libvoikko1 libxalan2-java-gcj libxerces2-java-gcj libxklavier12
8164 libxtrap6 libxxf86misc1 libzephyr3 mysql-common rhythmbox seahorse
8165 sound-juicer swfdec-gnome system-config-printer totem-common
8166 totem-gstreamer transmission-gtk vinagre vino w3c-dtd-xhtml wodim
8167 </p></blockquote>
8168
8169 <p>Installed using aptitude, missing with apt-get</p>
8170
8171 <blockquote><p>
8172 gstreamer0.10-gnomevfs
8173 </p></blockquote>
8174
8175 <p>Installed using aptitude, removed with apt-get</p>
8176
8177 <blockquote><p>
8178 [nothing]
8179 </p></blockquote>
8180
8181 <p>This is for KDE:</p>
8182
8183 <p>Installed using apt-get, missing with aptitude</p>
8184
8185 <blockquote><p>
8186 autopoint bomber bovo cantor cantor-backend-kalgebra cpp-4.3 dcoprss
8187 edict espeak espeak-data eyesapplet fifteenapplet finger gettext
8188 ghostscript-x git gnome-audio gnugo granatier gs-common
8189 gstreamer0.10-pulseaudio indi kaddressbook-plugins kalgebra
8190 kalzium-data kanjidic kapman kate-plugins kblocks kbreakout kbstate
8191 kde-icons-mono kdeaccessibility kdeaddons-kfile-plugins
8192 kdeadmin-kfile-plugins kdeartwork-misc kdeartwork-theme-window
8193 kdeedu kdeedu-data kdeedu-kvtml-data kdegames kdegames-card-data
8194 kdegames-mahjongg-data kdegraphics-kfile-plugins kdelirc
8195 kdemultimedia-kfile-plugins kdenetwork-kfile-plugins
8196 kdepim-kfile-plugins kdepim-kio-plugins kdessh kdetoys kdewebdev
8197 kdiamond kdnssd kfilereplace kfourinline kgeography-data kigo
8198 killbots kiriki klettres-data kmoon kmrml knewsticker-scripts
8199 kollision kpf krosspython ksirk ksmserver ksquares kstars-data
8200 ksudoku kubrick kweather libasound2-plugins libboost-python1.42.0
8201 libcfitsio3 libconvert-binhex-perl libcrypt-ssleay-perl libdb4.6++
8202 libdjvulibre-text libdotconf1.0 liberror-perl libespeak1
8203 libfinance-quote-perl libgail-common libgsl0ldbl libhtml-parser-perl
8204 libhtml-tableextract-perl libhtml-tagset-perl libhtml-tree-perl
8205 libio-stringy-perl libkdeedu4 libkdegames5 libkiten4 libkpathsea5
8206 libkrossui4 libmailtools-perl libmime-tools-perl
8207 libnews-nntpclient-perl libopenbabel3 libportaudio2 libpulse-browse0
8208 libservlet2.4-java libspeechd2 libtiff-tools libtimedate-perl
8209 libunistring0 liburi-perl libwww-perl libxalan2-java libxerces2-java
8210 lirc luatex marble networkstatus noatun-plugins
8211 openoffice.org-writer2latex palapeli palapeli-data parley
8212 parley-data poster psutils pulseaudio pulseaudio-esound-compat
8213 pulseaudio-module-x11 pulseaudio-utils quanta-data rocs rsync
8214 speech-dispatcher step svgalibg1 texlive-binaries texlive-luatex
8215 ttf-sazanami-gothic
8216 </p></blockquote>
8217
8218 <p>Installed using apt-get, removed with aptitude</p>
8219
8220 <blockquote><p>
8221 amor artsbuilder atlantik atlantikdesigner blinken bluez-utils cvs
8222 dhcdbd djvulibre-desktop imlib-base imlib11 kalzium kanagram kandy
8223 kasteroids katomic kbackgammon kbattleship kblackbox kbounce kbruch
8224 kcron kdat kdemultimedia-kappfinder-data kdeprint kdict kdvi kedit
8225 keduca kenolaba kfax kfaxview kfouleggs kgeography kghostview
8226 kgoldrunner khangman khexedit kiconedit kig kimagemapeditor
8227 kitchensync kiten kjumpingcube klatin klettres klickety klines
8228 klinkstatus kmag kmahjongg kmailcvt kmenuedit kmid kmilo kmines
8229 kmousetool kmouth kmplot knetwalk kodo kolf kommander konquest kooka
8230 kpager kpat kpdf kpercentage kpilot kpoker kpovmodeler krec
8231 kregexpeditor kreversi ksame ksayit kshisen ksig ksim ksirc ksirtet
8232 ksmiletris ksnake ksokoban kspaceduel kstars ksvg ksysv kteatime
8233 ktip ktnef ktouch ktron kttsd ktuberling kturtle ktux kuickshow
8234 kverbos kview kviewshell kvoctrain kwifimanager kwin kwin4 kwordquiz
8235 kworldclock kxsldbg libakode2 libarts1-akode libarts1-audiofile
8236 libarts1-mpeglib libarts1-xine libavahi-compat-libdnssd1
8237 libavahi-core5 libavc1394-0 libbind9-50 libbluetooth2
8238 libboost-python1.34.1 libcucul0 libcurl3 libcvsservice0
8239 libdirectfb-1.0-0 libdjvulibre21 libdvdread3 libfaad0 libfreebob0
8240 libgd2-noxpm libgraphviz4 libgsmme1c2a libgtkhtml2-0 libicu38
8241 libiec61883-0 libindex0 libisccc50 libisccfg50 libiw29
8242 libjaxp1.3-java-gcj libk3b3 libkcal2b libkcddb1 libkdeedu3
8243 libkdegames1 libkdepim1a libkgantt0 libkleopatra1 libkmime2
8244 libkpathsea4 libkpimexchange1 libkpimidentities1 libkscan1
8245 libksieve0 libktnef1 liblockdev1 libltdl3 liblwres50 libmagick10
8246 libmimelib1c2a libmodplug0c2 libmozjs1d libmpcdec3 libmpfr1ldbl
8247 libneon27 libnm-util0 libopensync0 libpisock9 libpoppler-glib3
8248 libpoppler-qt2 libpoppler3 libraw1394-8 librss1 libsensors3
8249 libsmbios2 libssh2-1 libsuitesparse-3.1.0 libswfdec-0.6-90
8250 libtalloc1 libxalan2-java-gcj libxerces2-java-gcj libxtrap6 lskat
8251 mpeglib network-manager-kde noatun pmount tex-common texlive-base
8252 texlive-common texlive-doc-base texlive-fonts-recommended tidy
8253 ttf-dustin ttf-kochi-gothic ttf-sjfonts
8254 </p></blockquote>
8255
8256 <p>Installed using aptitude, missing with apt-get</p>
8257
8258 <blockquote><p>
8259 dolphin kde-core kde-plasma-desktop kde-standard kde-window-manager
8260 kdeartwork kdebase kdebase-apps kdebase-workspace
8261 kdebase-workspace-bin kdebase-workspace-data kdeutils kscreensaver
8262 kscreensaver-xsavers libgle3 libkonq5 libkonq5-templates libnetpbm10
8263 netpbm plasma-widget-folderview plasma-widget-networkmanagement
8264 xscreensaver-data-extra xscreensaver-gl xscreensaver-gl-extra
8265 xscreensaver-screensaver-bsod
8266 </p></blockquote>
8267
8268 <p>Installed using aptitude, removed with apt-get</p>
8269
8270 <blockquote><p>
8271 kdebase-bin konq-plugins konqueror
8272 </p></blockquote>
8273
8274 </div>
8275 <div class="tags">
8276
8277
8278 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>.
8279
8280
8281 </div>
8282 </div>
8283 <div class="padding"></div>
8284
8285 <div class="entry">
8286 <div class="title">
8287 <a href="http://people.skolelinux.org/pere/blog/Gnash_buildbot_slave_and_Debian_kfreebsd.html">Gnash buildbot slave and Debian kfreebsd</a>
8288 </div>
8289 <div class="date">
8290 20th November 2010
8291 </div>
8292 <div class="body">
8293 <p>Answering
8294 <a href="http://www.listware.net/201011/gnash-dev/67431-gnash-dev-buildbot-looking-for-slaves.html">the
8295 call from the Gnash project</a> for
8296 <a href="http://www.gnashdev.org:8010">buildbot</a> slaves to test the
8297 current source, I have set up a virtual KVM machine on the Debian
8298 Edu/Skolelinux virtualization host to test the git source on
8299 Debian/Squeeze. I hope this can help the developers in getting new
8300 releases out more often.</p>
8301
8302 <p>As the developers want less main-stream build platforms tested to,
8303 I have considered setting up a <a
8304 href="http://www.debian.org/ports/kfreebsd-gnu/">Debian/kfreebsd</a>
8305 machine as well. I have also considered using the kfreebsd
8306 architecture in Debian as a file server in NUUG to get access to the 5
8307 TB zfs volume we currently use to store DV video. Because of this, I
8308 finally got around to do a test installation of Debian/Squeeze with
8309 kfreebsd. Installation went fairly smooth, thought I noticed some
8310 visual glitches in the cdebconf dialogs (black cursor left on the
8311 screen at random locations). Have not gotten very far with the
8312 testing. Noticed cfdisk did not work, but fdisk did so it was not a
8313 fatal problem. Have to spend some more time on it to see if it is
8314 useful as a file server for NUUG. Will try to find time to set up a
8315 gnash buildbot slave on the Debian Edu/Skolelinux this weekend.</p>
8316
8317 </div>
8318 <div class="tags">
8319
8320
8321 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>.
8322
8323
8324 </div>
8325 </div>
8326 <div class="padding"></div>
8327
8328 <div class="entry">
8329 <div class="title">
8330 <a href="http://people.skolelinux.org/pere/blog/Debian_in_3D.html">Debian in 3D</a>
8331 </div>
8332 <div class="date">
8333 9th November 2010
8334 </div>
8335 <div class="body">
8336 <p><img src="http://thingiverse-production.s3.amazonaws.com/renders/23/e0/c4/f9/2b/debswagtdose_preview_medium.jpg"></p>
8337
8338 <p>3D printing is just great. I just came across this Debian logo in
8339 3D linked in from
8340 <a href="http://blog.thingiverse.com/2010/11/09/participatory-branding/">the
8341 thingiverse blog</a>.</p>
8342
8343 </div>
8344 <div class="tags">
8345
8346
8347 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>.
8348
8349
8350 </div>
8351 </div>
8352 <div class="padding"></div>
8353
8354 <div class="entry">
8355 <div class="title">
8356 <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>
8357 </div>
8358 <div class="date">
8359 7th November 2010
8360 </div>
8361 <div class="body">
8362 <p>Prioritising packages for the Debian Edu /
8363 <a href="http://www.skolelinux.org/">Skolelinux</a> DVD, which is
8364 supposed provide a school with all the services and user applications
8365 needed on the pupils computer network has always been hard. Even
8366 schools without Internet connections should be able to get Debian Edu
8367 working using this DVD.</p>
8368
8369 <p>The job became a lot harder when apt and aptitude started
8370 installing recommended packages by default. We want the same set of
8371 packages to be installed when using the DVD and the netinst CD, and
8372 that means all recommended packages need to be on the DVD. I created
8373 a patch for debian-cd in <a href="http://bugs.debian.org/601203">BTS
8374 report #601203</a> to do this, and since this change was applied to
8375 the Debian Edu DVD build, we have been seriously short on space.</p>
8376
8377 <p>A few days ago we decided to drop blender, wxmaxima and kicad from
8378 the default installation to save space on the DVD, believing that
8379 those needing these applications are few and can get them from the
8380 Debian archive.</p>
8381
8382 <p>Yesterday, I had a look what source packages to see which packages
8383 were using most space. A few large packages are well know;
8384 openoffice.org, openclipart and fluid-soundfont. But I also
8385 discovered that lilypond used 106 MiB and fglrx-driver used 53 MiB.
8386 The lilypond package is pulled in as a dependency for rosegarden, and
8387 when looking a bit closer I discovered that 99 MiB of the 106 MiB were
8388 the documentation package, which is recommended by the binary package.
8389 I decided to drop this documentation package from our DVD, as most of
8390 our users will use the GUI front-ends and do not need the lilypond
8391 documentation. Similarly, I dropped the non-free fglrx-driver package
8392 which might be installed by d-i when its hardware is detected, as the
8393 free X driver should work.</p>
8394
8395 <p>With this change, we finally got space for the LXDE and Gnome
8396 desktop packages as well as the language specific packages making the
8397 DVD more useful again.</p>
8398
8399 </div>
8400 <div class="tags">
8401
8402
8403 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>.
8404
8405
8406 </div>
8407 </div>
8408 <div class="padding"></div>
8409
8410 <div class="entry">
8411 <div class="title">
8412 <a href="http://people.skolelinux.org/pere/blog/Software_updates_2010_10_24.html">Software updates 2010-10-24</a>
8413 </div>
8414 <div class="date">
8415 24th October 2010
8416 </div>
8417 <div class="body">
8418 <p>Some updates.</p>
8419
8420 <p>My <a href="http://pledgebank.com/gnash-avm2">gnash pledge</a> to
8421 raise money for the project is going well. The lower limit of 10
8422 signers was reached in 24 hours, and so far 13 people have signed it.
8423 More signers and more funding is most welcome, and I am really curious
8424 how far we can get before the time limit of December 24 is reached.
8425 :)</p>
8426
8427 <p>On the #gnash IRC channel on irc.freenode.net, I was just tipped
8428 about what appear to be a great code coverage tool capable of
8429 generating code coverage stats without any changes to the source code.
8430 It is called
8431 <a href="http://simonkagstrom.github.com/kcov/index.html">kcov</a>,
8432 and can be used using <tt>kcov &lt;directory&gt; &lt;binary&gt;</tt>.
8433 It is missing in Debian, but the git source built just fine in Squeeze
8434 after I installed libelf-dev, libdwarf-dev, pkg-config and
8435 libglib2.0-dev. Failed to build in Lenny, but suspect that is
8436 solvable. I hope kcov make it into Debian soon.</p>
8437
8438 <p>Finally found time to wrap up the release notes for <a
8439 href="http://lists.debian.org/debian-edu-announce/2010/10/msg00002.html">a
8440 new alpha release of Debian Edu</a>, and just published the second
8441 alpha test release of the Squeeze based Debian Edu /
8442 <a href="http://www.skolelinux.org/">Skolelinux</a>
8443 release. Give it a try if you need a complete linux solution for your
8444 school, including central infrastructure server, workstations, thin
8445 client servers and diskless workstations. A nice touch added
8446 yesterday is RDP support on the thin client servers, for windows
8447 clients to get a Linux desktop on request.</p>
8448
8449 </div>
8450 <div class="tags">
8451
8452
8453 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>.
8454
8455
8456 </div>
8457 </div>
8458 <div class="padding"></div>
8459
8460 <div class="entry">
8461 <div class="title">
8462 <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>
8463 </div>
8464 <div class="date">
8465 19th October 2010
8466 </div>
8467 <div class="body">
8468 <p><a href="http://www.getgnash.org/">The Gnash project</a> is the
8469 most promising solution for a Free Software Flash implementation. It
8470 has done great so far, but there is still far to go, and recently its
8471 funding has dried up. I believe AVM2 support in Gnash is vital to the
8472 continued progress of the project, as more and more sites show up with
8473 AVM2 flash files.</p>
8474
8475 <p>To try to get funding for developing such support, I have started
8476 <a href="http://www.pledgebank.com/gnash-avm2">a pledge</a> with the
8477 following text:</P>
8478
8479 <p><blockquote>
8480
8481 <p>"I will pay 100$ to the Gnash project to develop AVM2 support but
8482 only if 10 other people will do the same."</p>
8483
8484 <p>- Petter Reinholdtsen, free software developer</p>
8485
8486 <p>Deadline to sign up by: 24th December 2010</p>
8487
8488 <p>The Gnash project need to get support for the new Flash file
8489 format AVM2 to work with a lot of sites using Flash on the
8490 web. Gnash already work with a lot of Flash sites using the old AVM1
8491 format, but more and more sites are using the AVM2 format these
8492 days. The project web page is available from
8493 http://www.getgnash.org/ . Gnash is a free software implementation
8494 of Adobe Flash, allowing those of us that do not accept the terms of
8495 the Adobe Flash license to get access to Flash sites.</p>
8496
8497 <p>The project need funding to get developers to put aside enough
8498 time to develop the AVM2 support, and this pledge is my way to try
8499 to get this to happen.</p>
8500
8501 <p>The project accept donations via the OpenMediaNow foundation,
8502 <a href="http://www.openmedianow.org/?q=node/32">http://www.openmedianow.org/?q=node/32</a> .</p>
8503
8504 </blockquote></p>
8505
8506 <p>I hope you will support this effort too. I hope more than 10
8507 people will participate to make this happen. The more money the
8508 project gets, the more features it can develop using these funds.
8509 :)</p>
8510
8511 </div>
8512 <div class="tags">
8513
8514
8515 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>.
8516
8517
8518 </div>
8519 </div>
8520 <div class="padding"></div>
8521
8522 <div class="entry">
8523 <div class="title">
8524 <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>
8525 </div>
8526 <div class="date">
8527 9th October 2010
8528 </div>
8529 <div class="body">
8530 <p>This summer I got the chance to buy cheap Spykee robots, and since
8531 then I have worked on getting Linux software in place to control them.
8532 The firmware for the robot is available from the producer, and using
8533 that source it was trivial to figure out the protocol specification.
8534 I've started on a perl library to control it, and made some demo
8535 programs using this perl library to allow one to control the
8536 robots.</p>
8537
8538 <p>The library is quite functional already, and capable of controlling
8539 the driving, fetching video, uploading MP3s and play them. There are
8540 a few less important features too.</p>
8541
8542 <p>Since a few weeks ago, I ran out of time to spend on this project,
8543 but I never got around to releasing the current source. I decided
8544 today that it was time to do something about it, and uploaded the
8545 source to my Debian package store at people.skolelinux.org.</p>
8546
8547 <p>Because it was simpler for me, I made a Debian package and
8548 published the source and deb. If you got a spykee robot, grab the
8549 source or binary package:</p>
8550
8551 <p><ul>
8552 <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>
8553 <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>
8554 <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>
8555 </ul></p>
8556
8557 <p>If you are interested in helping out with developing this library,
8558 please let me know.</p>
8559
8560 </div>
8561 <div class="tags">
8562
8563
8564 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>.
8565
8566
8567 </div>
8568 </div>
8569 <div class="padding"></div>
8570
8571 <div class="entry">
8572 <div class="title">
8573 <a href="http://people.skolelinux.org/pere/blog/Links_for_2010_10_03.html">Links for 2010-10-03</a>
8574 </div>
8575 <div class="date">
8576 3rd October 2010
8577 </div>
8578 <div class="body">
8579 <p><ul>
8580
8581 <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
8582 is no Plan B: why the IPv4-to-IPv6 transition will be ugly</a></li>
8583
8584 <li>Scanner looking under clothes
8585 <a href="http://www.dagbladet.no/2010/10/03/nyheter/utenriks/reise/overvakingskamera/flyplasser/13667192/">has
8586 already been misused at Heathrow</a>.</li>
8587
8588 <li><a href="http://wiki.softwarelivre.org/Landell">Landell
8589 Webcasting</a> - interesting alternative for
8590 <ahref="http://dvswitch.alioth.debian.org/wiki/">DVSwitch</a> with
8591 simple setup.
8592
8593 </ul></p>
8594
8595 </div>
8596 <div class="tags">
8597
8598
8599 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>.
8600
8601
8602 </div>
8603 </div>
8604 <div class="padding"></div>
8605
8606 <div class="entry">
8607 <div class="title">
8608 <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>
8609 </div>
8610 <div class="date">
8611 9th September 2010
8612 </div>
8613 <div class="body">
8614 <p>A few days ago I had the mixed pleasure of bying a new digital
8615 camera, a Canon IXUS 130. It was instructive and very disturbing to
8616 be able to verify that also this camera producer have the nerve to
8617 specify how I can or can not use the videos produced with the camera.
8618 Even thought I was aware of the issue, the options with new cameras
8619 are limited and I ended up bying the camera anyway. What is the
8620 problem, you might ask? It is software patents, MPEG-4, H.264 and the
8621 MPEG-LA that is the problem, and our right to record our experiences
8622 without asking for permissions that is at risk.
8623
8624 <p>On page 27 of the Danish instruction manual, this section is
8625 written:</p>
8626
8627 <blockquote>
8628 <p>This product is licensed under AT&T patents for the MPEG-4 standard
8629 and may be used for encoding MPEG-4 compliant video and/or decoding
8630 MPEG-4 compliant video that was encoded only (1) for a personal and
8631 non-commercial purpose or (2) by a video provider licensed under the
8632 AT&T patents to provide MPEG-4 compliant video.</p>
8633
8634 <p>No license is granted or implied for any other use for MPEG-4
8635 standard.</p>
8636 </blockquote>
8637
8638 <p>In short, the camera producer have chosen to use technology
8639 (MPEG-4/H.264) that is only provided if I used it for personal and
8640 non-commercial purposes, or ask for permission from the organisations
8641 holding the knowledge monopoly (patent) for technology used.</p>
8642
8643 <p>This issue has been brewing for a while, and I recommend you to
8644 read
8645 "<a href="http://www.osnews.com/story/23236/Why_Our_Civilization_s_Video_Art_and_Culture_is_Threatened_by_the_MPEG-LA">Why
8646 Our Civilization's Video Art and Culture is Threatened by the
8647 MPEG-LA</a>" by Eugenia Loli-Queru and
8648 "<a href="http://webmink.com/2010/09/03/h-264-and-foss/">H.264 Is Not
8649 The Sort Of Free That Matters</a>" by Simon Phipps to learn more about
8650 the issue. The solution is to support the
8651 <a href="http://www.digistan.org/open-standard:definition">free and
8652 open standards</a> for video, like <a href="http://www.theora.org/">Ogg
8653 Theora</a>, and avoid MPEG-4 and H.264 if you can.</p>
8654
8655 </div>
8656 <div class="tags">
8657
8658
8659 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/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>.
8660
8661
8662 </div>
8663 </div>
8664 <div class="padding"></div>
8665
8666 <div class="entry">
8667 <div class="title">
8668 <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>
8669 </div>
8670 <div class="date">
8671 4th September 2010
8672 </div>
8673 <div class="body">
8674 <p>In the <a href="http://popcon.debian.org/unknown/by_vote">Debian
8675 popularity-contest numbers</a>, the adobe-flashplugin package the
8676 second most popular used package that is missing in Debian. The sixth
8677 most popular is flashplayer-mozilla. This is a clear indication that
8678 working flash is important for Debian users. Around 10 percent of the
8679 users submitting data to popcon.debian.org have this package
8680 installed.</p>
8681
8682 <p>In the report written by Lars Risan in August 2008
8683 («<a href="http://wiki.skolelinux.no/Dokumentasjon/Rapporter?action=AttachFile&do=view&target=Skolelinux_i_bruk_rapport_1.0.pdf">Skolelinux
8684 i bruk – Rapport for Hurum kommune, Universitetet i Agder og
8685 stiftelsen SLX Debian Labs</a>»), one of the most important problems
8686 schools experienced with <a href="http://www.skolelinux.org/">Debian
8687 Edu/Skolelinux</a> was the lack of working Flash. A lot of educational
8688 web sites require Flash to work, and lacking working Flash support in
8689 the web browser and the problems with installing it was perceived as a
8690 good reason to stay with Windows.</p>
8691
8692 <p>I once saw a funny and sad comment in a web forum, where Linux was
8693 said to be the retarded cousin that did not really understand
8694 everything you told him but could work fairly well. This was a
8695 comment regarding the problems Linux have with proprietary formats and
8696 non-standard web pages, and is sad because it exposes a fairly common
8697 understanding of whose fault it is if web pages that only work in for
8698 example Internet Explorer 6 fail to work on Firefox, and funny because
8699 it explain very well how annoying it is for users when Linux
8700 distributions do not work with the documents they receive or the web
8701 pages they want to visit.</p>
8702
8703 <p>This is part of the reason why I believe it is important for Debian
8704 and Debian Edu to have a well working Flash implementation in the
8705 distribution, to get at least popular sites as Youtube and Google
8706 Video to working out of the box. For Squeeze, Debian have the chance
8707 to include the latest version of Gnash that will make this happen, as
8708 the new release 0.8.8 was published a few weeks ago and is resting in
8709 unstable. The new version work with more sites that version 0.8.7.
8710 The Gnash maintainers have asked for a freeze exception, but the
8711 release team have not had time to reply to it yet. I hope they agree
8712 with me that Flash is important for the Debian desktop users, and thus
8713 accept the new package into Squeeze.</p>
8714
8715 </div>
8716 <div class="tags">
8717
8718
8719 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>.
8720
8721
8722 </div>
8723 </div>
8724 <div class="padding"></div>
8725
8726 <div class="entry">
8727 <div class="title">
8728 <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>
8729 </div>
8730 <div class="date">
8731 1st September 2010
8732 </div>
8733 <div class="body">
8734 <p>This evening I made my first Perl GUI application. The last few
8735 days I have worked on a Perl module for controlling my recently
8736 aquired Spykee robots, and the module is now getting complete enought
8737 that it is possible to use it to control the robot driving at least.
8738 It was now time to figure out how to use it to create some GUI to
8739 allow me to drive the robot around. I picked PerlQt as I have had
8740 positive experiences with the Qt API before, and spent a few minutes
8741 browsing the web for examples. Using Qt Designer seemed like a short
8742 cut, so I ended up writing the perl GUI using Qt Designer and
8743 compiling it into a perl program using the puic program from
8744 libqt-perl. Nothing fancy yet, but it got buttons to connect and
8745 drive around.</p>
8746
8747 <p>The perl module I have written provide a object oriented API for
8748 controlling the robot. Here is an small example on how to use it:</p>
8749
8750 <p><pre>
8751 use Spykee;
8752 Spykee::discover(sub {$robot{$_[0]} = $_[1]});
8753 my $host = (keys %robot)[0];
8754 my $spykee = Spykee->new();
8755 $spykee->contact($host, "admin", "admin");
8756 $spykee->left();
8757 sleep 2;
8758 $spykee->right();
8759 sleep 2;
8760 $spykee->forward();
8761 sleep 2;
8762 $spykee->back();
8763 sleep 2;
8764 $spykee->stop();
8765 </pre></p>
8766
8767 <p>Thanks to the release of the source of the robot firmware, I could
8768 peek into the implementation at the other end to figure out how to
8769 implement the protocol used by the robot. I've implemented several of
8770 the commands the robot understand, but is still missing the camera
8771 support to make it possible to control the robot from remote. First I
8772 want to implement support for uploading new firmware and configuring
8773 the wireless network, to make it possible to bootstrap a Spykee robot
8774 without the producers Windows and MacOSX software (I only have Linux,
8775 so I had to ask a friend to come over to get the robot testing
8776 going. :).</p>
8777
8778 <p>Will release the source to the public soon, but need to figure out
8779 where to make it available first. I will add a link to
8780 <a href="http://wiki.nuug.no/grupper/robot/">the NUUG wiki</a> for
8781 those that want to check back later to find it.</p>
8782
8783 </div>
8784 <div class="tags">
8785
8786
8787 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>.
8788
8789
8790 </div>
8791 </div>
8792 <div class="padding"></div>
8793
8794 <div class="entry">
8795 <div class="title">
8796 <a href="http://people.skolelinux.org/pere/blog/Broken_hard_link_handling_with_sshfs.html">Broken hard link handling with sshfs</a>
8797 </div>
8798 <div class="date">
8799 30th August 2010
8800 </div>
8801 <div class="body">
8802 <p>Just got an email from Tobias Gruetzmacher as a followup on my
8803 <a href="http://people.skolelinux.org/pere/blog/Broken_umask_handling_with_sshfs.html">previous
8804 post about sshfs</a>. He reported another problem with sshfs. It
8805 fail to handle hard links properly. A simple way to spot this is to
8806 look at the . and .. entries in the directory tree. These should have
8807 a link count >1, but on sshfs the count is 1. I just tested to see
8808 what happen when trying to hardlink, and this fail as well:</p>
8809
8810 <pre>
8811 % ln foo bar
8812 ln: creating hard link `bar' => `foo': Function not implemented
8813 %
8814 </pre>
8815
8816 <p>I have not yet found time to implement a test for this in my file
8817 system test code, but believe having working hard links is useful to
8818 avoid surprised unix programs. Not as useful as working file locking
8819 and symlinks, which are required to get a working desktop, but useful
8820 nevertheless. :)</p>
8821
8822 <p>The latest version of the file system test code is available via
8823 git from
8824 <a href="http://github.com/gebi/fs-test">http://github.com/gebi/fs-test</a></p>
8825
8826 </div>
8827 <div class="tags">
8828
8829
8830 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>.
8831
8832
8833 </div>
8834 </div>
8835 <div class="padding"></div>
8836
8837 <div class="entry">
8838 <div class="title">
8839 <a href="http://people.skolelinux.org/pere/blog/Broken_umask_handling_with_sshfs.html">Broken umask handling with sshfs</a>
8840 </div>
8841 <div class="date">
8842 26th August 2010
8843 </div>
8844 <div class="body">
8845 <p>My file system sematics program
8846 <a href="http://people.skolelinux.org/pere/blog/Testing_if_a_file_system_can_be_used_for_home_directories___.html">presented
8847 a few days ago</a> is very useful to verify that a file system can
8848 work as a unix home directory,and today I had to extend it a bit. I'm
8849 looking into alternatives for home directory access here at the
8850 University of Oslo, and one of the options is sshfs. My friend
8851 Finn-Arne mentioned a while back that they had used sshfs with Debian
8852 Edu, but stopped because of problems. I asked today what the problems
8853 where, and he mentioned that sshfs failed to handle umask properly.
8854 Trying to detect the problem I wrote this addition to my fs testing
8855 script:</p>
8856
8857 <pre>
8858 mode_t touch_get_mode(const char *name, mode_t mode) {
8859 mode_t retval = 0;
8860 int fd = open(name, O_RDWR|O_CREAT|O_LARGEFILE, mode);
8861 if (-1 != fd) {
8862 unlink(name);
8863 struct stat statbuf;
8864 if (-1 != fstat(fd, &statbuf)) {
8865 retval = statbuf.st_mode & 0x1ff;
8866 }
8867 close(fd);
8868 }
8869 return retval;
8870 }
8871
8872 /* Try to detect problem discovered using sshfs */
8873 int test_umask(void) {
8874 printf("info: testing umask effect on file creation\n");
8875
8876 mode_t orig_umask = umask(000);
8877 mode_t newmode;
8878 if (0666 != (newmode = touch_get_mode("foobar", 0666))) {
8879 printf(" error: Wrong file mode %o when creating using mode 666 and umask 000\n",
8880 newmode);
8881 }
8882 umask(007);
8883 if (0660 != (newmode = touch_get_mode("foobar", 0666))) {
8884 printf(" error: Wrong file mode %o when creating using mode 666 and umask 007\n",
8885 newmode);
8886 }
8887
8888 umask (orig_umask);
8889 return 0;
8890 }
8891
8892 int main(int argc, char **argv) {
8893 [...]
8894 test_umask();
8895 return 0;
8896 }
8897 </pre>
8898
8899 <p>Sure enough. On NFS to a netapp, I get this result:</p>
8900
8901 <pre>
8902 Testing POSIX/Unix sematics on file system
8903 info: testing symlink creation
8904 info: testing subdirectory creation
8905 info: testing fcntl locking
8906 Read-locking 1 byte from 1073741824
8907 Read-locking 510 byte from 1073741826
8908 Unlocking 1 byte from 1073741824
8909 Write-locking 1 byte from 1073741824
8910 Write-locking 510 byte from 1073741826
8911 Unlocking 2 byte from 1073741824
8912 info: testing umask effect on file creation
8913 </pre>
8914
8915 <p>When mounting the same directory using sshfs, I get this
8916 result:</p>
8917
8918 <pre>
8919 Testing POSIX/Unix sematics on file system
8920 info: testing symlink creation
8921 info: testing subdirectory creation
8922 info: testing fcntl locking
8923 Read-locking 1 byte from 1073741824
8924 Read-locking 510 byte from 1073741826
8925 Unlocking 1 byte from 1073741824
8926 Write-locking 1 byte from 1073741824
8927 Write-locking 510 byte from 1073741826
8928 Unlocking 2 byte from 1073741824
8929 info: testing umask effect on file creation
8930 error: Wrong file mode 644 when creating using mode 666 and umask 000
8931 error: Wrong file mode 640 when creating using mode 666 and umask 007
8932 </pre>
8933
8934 <p>So, I can conclude that sshfs is better than smb to a Netapp or a
8935 Windows server, but not good enough to be used as a home
8936 directory.</p>
8937
8938 <p>Update 2010-08-26: Reported the issue in
8939 <a href="http://bugs.debian.org/594498">BTS report #594498</a></p>
8940
8941 <p>Update 2010-08-27: Michael Gebetsroither report that he found the
8942 script so useful that he created a GIT repository and stored it in
8943 <a href="http://github.com/gebi/fs-test">http://github.com/gebi/fs-test</a>.</p>
8944
8945 </div>
8946 <div class="tags">
8947
8948
8949 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>.
8950
8951
8952 </div>
8953 </div>
8954 <div class="padding"></div>
8955
8956 <div class="entry">
8957 <div class="title">
8958 <a href="http://people.skolelinux.org/pere/blog/Rob_Weir__How_to_Crush_Dissent.html">Rob Weir: How to Crush Dissent</a>
8959 </div>
8960 <div class="date">
8961 15th August 2010
8962 </div>
8963 <div class="body">
8964 <p>I found the notes from Rob Weir on
8965 <a href="http://feedproxy.google.com/~r/robweir/antic-atom/~3/VGb23-kta8c/how-to-crush-dissent.html">how
8966 to crush dissent</a> matching my own thoughts on the matter quite
8967 well. Highly recommended for those wondering which road our society
8968 should go down. In my view we have been heading the wrong way for a
8969 long time.</p>
8970
8971 </div>
8972 <div class="tags">
8973
8974
8975 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>.
8976
8977
8978 </div>
8979 </div>
8980 <div class="padding"></div>
8981
8982 <div class="entry">
8983 <div class="title">
8984 <a href="http://people.skolelinux.org/pere/blog/No_hardcoded_config_on_Debian_Edu_clients.html">No hardcoded config on Debian Edu clients</a>
8985 </div>
8986 <div class="date">
8987 9th August 2010
8988 </div>
8989 <div class="body">
8990 <p>As reported earlier, the last few days I have looked at how Debian
8991 Edu clients are configured, and tried to get rid of all hardcoded
8992 configuration settings on the clients. I believe the work to be
8993 mostly done, and the clients seem to work just fine with dynamically
8994 generated configuration.</p>
8995
8996 <p>What is the point, you might ask? The point is to allow a Debian
8997 Edu desktop to integrate into an existing network infrastructure
8998 without any manual configuration.</p>
8999
9000 <p>This is what happens when installing a Debian Edu client here at
9001 the University of Oslo using PXE. With the PXE installation, I am
9002 asked for language (Norwegian Bokmål), locality (Norway) and keyboard
9003 layout (no-latin1), Debian Edu profile (Roaming Workstation), if I
9004 accept to reformat the hard drive (yes), if I want to submit info to
9005 popcon.debian.org (no) and root password (secret). After answering
9006 these questions, the installer goes ahead and does its thing, and
9007 after around 50 minutes it is done. I press enter to finish the
9008 installation, and the machine reboots into KDE. When the machine is
9009 ready and kdm asks for login information, I enter my university
9010 username and password, am told by kdm that a local home directory has
9011 been created and that I must log in again, and finally log in with the
9012 same username and password to the KDE 4.4 desktop. At no point during
9013 this process did it ask for university specific settings, and all the
9014 required configuration was dynamically detected using information
9015 fetched via DHCP and DNS. The roaming workstation is now ready for
9016 use.</p>
9017
9018 <p>How was this done, you might wonder? First of all, here is the
9019 list of things that need to be configured on the client to get it
9020 working properly out of the box:</p>
9021
9022 <ul>
9023 <li>IP address/netmask and DNS server.</li>
9024 <li>Web proxy URL.</li>
9025 <li>LDAP server for NSS directory information (user, group, etc).</li>
9026 <li>Kerberos server for PAM password checking.</li>
9027 <li>SMB mount point to access the network home directory. (*)</li>
9028 <li>Central syslog server to send syslog messages to. (*)</li>
9029 <li>Sitesummary collector URL to submit info to central server. (*)</li>
9030 </ul>
9031
9032 <p>(Hm, did I forget anything? Let me knew if I did.)</p>
9033
9034 <p>The points marked (*) are not required to be able to use the
9035 machine, but needed to provide central storage and allowing system
9036 administrators to track their machines. Since yesterday, everything
9037 but the sitesummary collector URL is dynamically discovered at boot
9038 and installation time in the svn version of Debian Edu.</p>
9039
9040 <p>The IP and DNS setup is fetched during boot using DHCP as usual.
9041 When a DHCP update arrives, the proxy setup is updated by looking for
9042 http://wpat/wpad.dat and using the content of this WPAD file to
9043 configure the http and ftp proxy in /etc/environment and
9044 /etc/apt/apt.conf. I decided to update the proxy setup using a DHCP
9045 hook to ensure that the client stops using the Debian Edu proxy when
9046 it is moved outside the Debian Edu network, and instead uses any local
9047 proxy present on the new network when it moves around.</p>
9048
9049 <p>The DNS names of the LDAP, Kerberos and syslog server and related
9050 configuration are generated using DNS information at boot. First the
9051 installer looks for a host named ldap in the current DNS domain. If
9052 not found, it looks for _ldap._tcp SRV records in DNS instead. If an
9053 LDAP server is found, its root DSE entry is requested and the
9054 attributes namingContexts and defaultNamingContext are used to
9055 determine which LDAP base to use for NSS. If there are several
9056 namingContexts attibutes and the defaultNamingContext is present, that
9057 LDAP subtree is used as the base. If defaultNamingContext is missing,
9058 the subtrees listed as namingContexts are searched in sequence for any
9059 object with class posixAccount or posixGroup, and the first one with
9060 such an object is used as the LDAP base. For Kerberos, a similar
9061 search is done by first looking for a host named kerberos, and then
9062 for the _kerberos._tcp SRV record. I've been unable to find a way to
9063 look up the Kerberos realm, so for this the upper case string of the
9064 current DNS domain is used.</p>
9065
9066 <p>For the syslog server, the hosts syslog and loghost are searched
9067 for, and the _syslog._udp SRV record is consulted if no such host is
9068 found. This algorithm works for both Debian Edu and the University of
9069 Oslo. A similar strategy would work for locating the sitesummary
9070 server, but have not been implemented yet. I decided to fetch and
9071 save these settings during installation, to make sure moving to a
9072 different network does not change the set of users being allowed to
9073 log in nor the passwords required to log in. Usernames and passwords
9074 will be cached by sssd when the user logs in on the Debian Edu
9075 network, and will not change as the laptop move around. For a
9076 non-roaming machine, there is no caching, but given that it is
9077 supposed to stay in place it should not matter much. Perhaps we
9078 should switch those to use sssd too?</p>
9079
9080 <p>The user's SMB mount point for the network home directory is
9081 located when the user logs in for the first time. The LDAP server is
9082 consulted to look for the user's LDAP object and the sambaHomePath
9083 attribute is used if found. If it isn't found, the home directory
9084 path fetched from NSS is used instead. Assuming the path is of the
9085 form /site/server/directory/username, the second part is looked up in
9086 DNS and used to generate a SMB URL of the form
9087 smb://server.domain/username. This algorithm works for both Debian
9088 edu and the University of Oslo. Perhaps there are better attributes
9089 to use or a better algorithm that works for more sites, but this will
9090 do for now. :)</p>
9091
9092 <p>This work should make it easier to integrate the Debian Edu clients
9093 into any LDAP/Kerberos infrastructure, and make the current setup even
9094 more flexible than before. I suspect it will also work for thin
9095 client servers, allowing one to easily set up LTSP and hook it into a
9096 existing network infrastructure, but I have not had time to test this
9097 yet.</p>
9098
9099 <p>If you want to help out with implementing these things for Debian
9100 Edu, please contact us on debian-edu@lists.debian.org.</p>
9101
9102 <p>Update 2010-08-09: Simon Farnsworth gave me a heads-up on how to
9103 detect Kerberos realm from DNS, by looking for _kerberos TXT entries
9104 before falling back to the upper case DNS domain name. Will have to
9105 implement it for Debian Edu. :)</p>
9106
9107 </div>
9108 <div class="tags">
9109
9110
9111 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>.
9112
9113
9114 </div>
9115 </div>
9116 <div class="padding"></div>
9117
9118 <div class="entry">
9119 <div class="title">
9120 <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>
9121 </div>
9122 <div class="date">
9123 8th August 2010
9124 </div>
9125 <div class="body">
9126 <p>A few years ago, I was involved in a project planning to use
9127 Windows file servers as home directory servers for Debian
9128 Edu/Skolelinux machines. This was thought to be no problem, as the
9129 access would be through the SMB network file system protocol, and we
9130 knew other sites used SMB with unix and samba as the file server to
9131 mount home directories without any problems. But, after months of
9132 struggling, we had to conclude that our goal was impossible.</p>
9133
9134 <p>The reason is simply that while SMB can be used for home
9135 directories when the file server is Samba running on Unix, this only
9136 work because of Samba have some extensions and the fact that the
9137 underlying file system is a unix file system. When using a Windows
9138 file server, the underlying file system do not have POSIX semantics,
9139 and several programs will fail if the users home directory where they
9140 want to store their configuration lack POSIX semantics.</p>
9141
9142 <p>As part of this work, I wrote a small C program I want to share
9143 with you all, to replicate a few of the problematic applications (like
9144 OpenOffice.org and GCompris) and see if the file system was working as
9145 it should. If you find yourself in spooky file system land, it might
9146 help you find your way out again. This is the fs-test.c source:</p>
9147
9148 <pre>
9149 /*
9150 * Some tests to check the file system sematics. Used to verify that
9151 * CIFS from a windows server do not work properly as a linux home
9152 * directory.
9153 * License: GPL v2 or later
9154 *
9155 * needs libsqlite3-dev and build-essential installed
9156 * compile with: gcc -Wall -lsqlite3 -DTEST_SQLITE fs-test.c -o fs-test
9157 */
9158
9159 #define _FILE_OFFSET_BITS 64
9160 #define _LARGEFILE_SOURCE 1
9161 #define _LARGEFILE64_SOURCE 1
9162
9163 #define _GNU_SOURCE /* for asprintf() */
9164
9165 #include &lt;errno.h>
9166 #include &lt;fcntl.h>
9167 #include &lt;stdio.h>
9168 #include &lt;string.h>
9169 #include &lt;stdlib.h>
9170 #include &lt;sys/file.h>
9171 #include &lt;sys/stat.h>
9172 #include &lt;sys/types.h>
9173 #include &lt;unistd.h>
9174
9175 #ifdef TEST_SQLITE
9176 /*
9177 * Test sqlite open, as done by gcompris require the libsqlite3-dev
9178 * package and linking with -lsqlite3. A more low level test is
9179 * below.
9180 * See also &lt;URL: http://www.sqlite.org./faq.html#q5 >.
9181 */
9182 #include &lt;sqlite3.h>
9183 #define CREATE_TABLE_USERS \
9184 "CREATE TABLE users (user_id INT UNIQUE, login TEXT, lastname TEXT, firstname TEXT, birthdate TEXT, class_id INT ); "
9185 int test_sqlite_open(void) {
9186 char *zErrMsg;
9187 char *name = "testsqlite.db";
9188 sqlite3 *db=NULL;
9189 unlink(name);
9190 int rc = sqlite3_open(name, &db);
9191 if( rc ){
9192 printf("error: sqlite open of %s failed: %s\n", name, sqlite3_errmsg(db));
9193 sqlite3_close(db);
9194 return -1;
9195 }
9196
9197 /* create tables */
9198 rc = sqlite3_exec(db,CREATE_TABLE_USERS, NULL, 0, &zErrMsg);
9199 if( rc != SQLITE_OK ){
9200 printf("error: sqlite table create failed: %s\n", zErrMsg);
9201 sqlite3_close(db);
9202 return -1;
9203 }
9204 printf("info: sqlite worked\n");
9205 sqlite3_close(db);
9206 return 0;
9207 }
9208 #endif /* TEST_SQLITE */
9209
9210 /*
9211 * Demonstrate locking issue found in gcompris using sqlite3. This
9212 * work with ext3, but not with cifs server on Windows 2003. This is
9213 * done in the sqlite3 library.
9214 * See also
9215 * &lt;URL:http://www.cygwin.com/ml/cygwin/2001-08/msg00854.html> and the
9216 * POSIX specification
9217 * &lt;URL:http://www.opengroup.org/onlinepubs/009695399/functions/fcntl.html>.
9218 */
9219 int test_gcompris_locking(void) {
9220 struct flock fl;
9221 char *name = "testsqlite.db";
9222 unlink(name);
9223 int fd = open(name, O_RDWR|O_CREAT|O_LARGEFILE, 0644);
9224 printf("info: testing fcntl locking\n");
9225
9226 fl.l_whence = SEEK_SET;
9227 fl.l_pid = getpid();
9228 printf(" Read-locking 1 byte from 1073741824");
9229 fl.l_start = 1073741824;
9230 fl.l_len = 1;
9231 fl.l_type = F_RDLCK;
9232 if (0 != fcntl(fd, F_SETLK, &fl) ) printf(" - error!\n"); else printf("\n");
9233
9234 printf(" Read-locking 510 byte from 1073741826");
9235 fl.l_start = 1073741826;
9236 fl.l_len = 510;
9237 fl.l_type = F_RDLCK;
9238 if (0 != fcntl(fd, F_SETLK, &fl) ) printf(" - error!\n"); else printf("\n");
9239
9240 printf(" Unlocking 1 byte from 1073741824");
9241 fl.l_start = 1073741824;
9242 fl.l_len = 1;
9243 fl.l_type = F_UNLCK;
9244 if (0 != fcntl(fd, F_SETLK, &fl) ) printf(" - error!\n"); else printf("\n");
9245
9246 printf(" Write-locking 1 byte from 1073741824");
9247 fl.l_start = 1073741824;
9248 fl.l_len = 1;
9249 fl.l_type = F_WRLCK;
9250 if (0 != fcntl(fd, F_SETLK, &fl) ) printf(" - error!\n"); else printf("\n");
9251
9252 printf(" Write-locking 510 byte from 1073741826");
9253 fl.l_start = 1073741826;
9254 fl.l_len = 510;
9255 if (0 != fcntl(fd, F_SETLK, &fl) ) printf(" - error!\n"); else printf("\n");
9256
9257 printf(" Unlocking 2 byte from 1073741824");
9258 fl.l_start = 1073741824;
9259 fl.l_len = 2;
9260 fl.l_type = F_UNLCK;
9261 if (0 != fcntl(fd, F_SETLK, &fl) ) printf(" - error!\n"); else printf("\n");
9262
9263 close(fd);
9264 return 0;
9265 }
9266
9267 /*
9268 * Test if permissions of freshly created directories allow entries
9269 * below them. This was a problem with OpenOffice.org and gcompris.
9270 * Mounting with option 'sync' seem to solve this problem while
9271 * slowing down file operations.
9272 */
9273 int test_subdirectory_creation(void) {
9274 #define LEVELS 5
9275 char *path = strdup("test");
9276 char *dirs[LEVELS];
9277 int level;
9278 printf("info: testing subdirectory creation\n");
9279 for (level = 0; level &lt; LEVELS; level++) {
9280 char *newpath = NULL;
9281 if (-1 == mkdir(path, 0777)) {
9282 printf(" error: Unable to create directory '%s': %s\n",
9283 path, strerror(errno));
9284 break;
9285 }
9286 asprintf(&newpath, "%s/%s", path, "test");
9287 free(path);
9288 path = newpath;
9289 }
9290 return 0;
9291 }
9292
9293 /*
9294 * Test if symlinks can be created. This was a problem detected with
9295 * KDE.
9296 */
9297 int test_symlinks(void) {
9298 printf("info: testing symlink creation\n");
9299 unlink("symlink");
9300 if (-1 == symlink("file", "symlink"))
9301 printf(" error: Unable to create symlink\n");
9302 return 0;
9303 }
9304
9305 int main(int argc, char **argv) {
9306 printf("Testing POSIX/Unix sematics on file system\n");
9307 test_symlinks();
9308 test_subdirectory_creation();
9309 #ifdef TEST_SQLITE
9310 test_sqlite_open();
9311 #endif /* TEST_SQLITE */
9312 test_gcompris_locking();
9313 return 0;
9314 }
9315 </pre>
9316
9317 <p>When everything is working, it should print something like
9318 this:</p>
9319
9320 <pre>
9321 Testing POSIX/Unix sematics on file system
9322 info: testing symlink creation
9323 info: testing subdirectory creation
9324 info: sqlite worked
9325 info: testing fcntl locking
9326 Read-locking 1 byte from 1073741824
9327 Read-locking 510 byte from 1073741826
9328 Unlocking 1 byte from 1073741824
9329 Write-locking 1 byte from 1073741824
9330 Write-locking 510 byte from 1073741826
9331 Unlocking 2 byte from 1073741824
9332 </pre>
9333
9334 <p>I do not remember the exact details of the problems we saw, but one
9335 of them was with locking, where if I remember correctly, POSIX allow a
9336 read-only lock to be upgraded to a read-write lock without unlocking
9337 the read-only lock (while Windows do not). Another was a bug in the
9338 CIFS/SMB client implementation in the Linux kernel where directory
9339 meta information would be wrong for a fraction of a second, making
9340 OpenOffice.org fail to create its deep directory tree because it was
9341 not allowed to create files in its freshly created directory.</p>
9342
9343 <p>Anyway, here is a nice tool for your tool box, might you never need
9344 it. :)</p>
9345
9346 <p>Update 2010-08-27: Michael Gebetsroither report that he found the
9347 script so useful that he created a GIT repository and stored it in
9348 <a href="http://github.com/gebi/fs-test">http://github.com/gebi/fs-test</a>.</p>
9349
9350 </div>
9351 <div class="tags">
9352
9353
9354 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>.
9355
9356
9357 </div>
9358 </div>
9359 <div class="padding"></div>
9360
9361 <div class="entry">
9362 <div class="title">
9363 <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>
9364 </div>
9365 <div class="date">
9366 7th August 2010
9367 </div>
9368 <div class="body">
9369 <p>A few days ago, I
9370 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_roaming_workstation___at_the_university_of_Oslo.html">tried
9371 to install</a> a Roaming workation profile from Debian Edu/Squeeze
9372 while on the university network here at the University of Oslo, and
9373 noticed how much had to change to get it operational using the
9374 university infrastructure. It was fairly easy, but it occured to me
9375 that Debian Edu would improve a lot if I could get the client to
9376 connect without any changes at all, and thus let the client configure
9377 itself during installation and first boot to use the infrastructure
9378 around it. Now I am a huge step further along that road.</p>
9379
9380 <p>With our current squeeze-test packages, I can select the roaming
9381 workstation profile and get a working laptop connecting to the
9382 university LDAP server for user and group and our active directory
9383 servers for Kerberos authentication. All this without any
9384 configuration at all during installation. My users home directory got
9385 a bookmark in the KDE menu to mount it via SMB, with the correct URL.
9386 In short, openldap and sssd is correctly configured. In addition to
9387 this, the client look for http://wpad/wpad.dat to configure a web
9388 proxy, and when it fail to find it no proxy settings are stored in
9389 /etc/environment and /etc/apt/apt.conf. Iceweasel and KDE is
9390 configured to look for the same wpad configuration and also do not use
9391 a proxy when at the university network. If the machine is moved to a
9392 network with such wpad setup, it would automatically use it when DHCP
9393 gave it a IP address.</p>
9394
9395 <p>The LDAP server is located using DNS, by first looking for the DNS
9396 entry ldap.$domain. If this do not exist, it look for the
9397 _ldap._tcp.$domain SRV records and use the first one as the LDAP
9398 server. Next, it connects to the LDAP server and search all
9399 namingContexts entries for posixAccount or posixGroup objects, and
9400 pick the first one as the LDAP base. For Kerberos, a similar
9401 algorithm is used to locate the LDAP server, and the realm is the
9402 uppercase version of $domain.</p>
9403
9404 <p>So, what is not working, you might ask. SMB mounting my home
9405 directory do not work. No idea why, but suspected the incorrect
9406 Kerberos settings in /etc/krb5.conf and /etc/samba/smb.conf might be
9407 the cause. These are not properly configured during installation, and
9408 had to be hand-edited to get the correct Kerberos realm and server,
9409 but SMB mounting still do not work. :(</p>
9410
9411 <p>With this automatic configuration in place, I expect a Debian Edu
9412 roaming profile installation would be able to automatically detect and
9413 connect to any site using LDAP and Kerberos for NSS directory and PAM
9414 authentication. It should also work out of the box in a Active
9415 Directory environment providing posixAccount and posixGroup objects
9416 with UID and GID values.</p>
9417
9418 <p>If you want to help out with implementing these things for Debian
9419 Edu, please contact us on debian-edu@lists.debian.org.</p>
9420
9421 </div>
9422 <div class="tags">
9423
9424
9425 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>.
9426
9427
9428 </div>
9429 </div>
9430 <div class="padding"></div>
9431
9432 <div class="entry">
9433 <div class="title">
9434 <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>
9435 </div>
9436 <div class="date">
9437 3rd August 2010
9438 </div>
9439 <div class="body">
9440 <p>The new roaming workstation profile in Debian Edu/Squeeze is fairly
9441 similar to the laptop setup am I working on using Ubuntu for the
9442 University of Oslo, and just for the heck of it, I tested today how
9443 hard it would be to integrate that profile into the university
9444 infrastructure. In this case, it is the university LDAP server,
9445 Active Directory Kerberos server and SMB mounting from the Netapp file
9446 servers.</p>
9447
9448 <p>I was pleasantly surprised that the only three files needed to be
9449 changed (/etc/sssd/sssd.conf, /etc/ldap.conf and
9450 /etc/mklocaluser.d/20-debian-edu-config) and one file had to be added
9451 (/usr/share/perl5/Debian/Edu_Local.pm), to get the client working.
9452 Most of the changes were to get the client to use the university LDAP
9453 for NSS and Kerberos server for PAM, but one was to change a hard
9454 coded DNS domain name in the mklocaluser hook from .intern to
9455 .uio.no.</p>
9456
9457 <p>This testing was so encouraging, that I went ahead and adjusted the
9458 Debian Edu scripts and setup in subversion to centralise the roaming
9459 workstation setup a bit more and avoid the hardcoded DNS domain name,
9460 so that when I test this tomorrow, I expect to get away with modifying
9461 only /etc/sssd/sssd.conf and /etc/ldap.conf to get it to use the
9462 university servers.</p>
9463
9464 <p>My goal is to get the clients to have no hardcoded settings and
9465 fetch all their initial setup during installation and first boot, to
9466 allow them to be inserted also into environments where the default
9467 setup in Debian Edu has been changed or as with the university, where
9468 the environment is different but provides the protocols Debian Edu
9469 uses.</p>
9470
9471 </div>
9472 <div class="tags">
9473
9474
9475 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>.
9476
9477
9478 </div>
9479 </div>
9480 <div class="padding"></div>
9481
9482 <div class="entry">
9483 <div class="title">
9484 <a href="http://people.skolelinux.org/pere/blog/Circular_package_dependencies_harms_apt_recovery.html">Circular package dependencies harms apt recovery</a>
9485 </div>
9486 <div class="date">
9487 27th July 2010
9488 </div>
9489 <div class="body">
9490 <p>I discovered this while doing
9491 <a href="http://people.skolelinux.org/pere/blog/Automatic_upgrade_testing_from_Lenny_to_Squeeze.html">automated
9492 testing of upgrades from Debian Lenny to Squeeze</a>. A few packages
9493 in Debian still got circular dependencies, and it is often claimed
9494 that apt and aptitude should be able to handle this just fine, but
9495 some times these dependency loops causes apt to fail.</p>
9496
9497 <p>An example is from todays
9498 <a href="http://people.skolelinux.org/~pere/debian-upgrade-testing//test-20100727-lenny-squeeze-kde-aptitude.txt">upgrade
9499 of KDE using aptitude</a>. In it, a bug in kdebase-workspace-data
9500 causes perl-modules to fail to upgrade. The cause is simple. If a
9501 package fail to unpack, then only part of packages with the circular
9502 dependency might end up being unpacked when unpacking aborts, and the
9503 ones already unpacked will fail to configure in the recovery phase
9504 because its dependencies are unavailable.</p>
9505
9506 <p>In this log, the problem manifest itself with this error:</p>
9507
9508 <blockquote><pre>
9509 dpkg: dependency problems prevent configuration of perl-modules:
9510 perl-modules depends on perl (>= 5.10.1-1); however:
9511 Version of perl on system is 5.10.0-19lenny2.
9512 dpkg: error processing perl-modules (--configure):
9513 dependency problems - leaving unconfigured
9514 </pre></blockquote>
9515
9516 <p>The perl/perl-modules circular dependency is already
9517 <a href="http://bugs.debian.org/527917">reported as a bug</a>, and will
9518 hopefully be solved as soon as possible, but it is not the only one,
9519 and each one of these loops in the dependency tree can cause similar
9520 failures. Of course, they only occur when there are bugs in other
9521 packages causing the unpacking to fail, but it is rather nasty when
9522 the failure of one package causes the problem to become worse because
9523 of dependency loops.</p>
9524
9525 <p>Thanks to
9526 <a href="http://lists.debian.org/debian-devel/2010/06/msg00116.html">the
9527 tireless effort by Bill Allombert</a>, the number of circular
9528 dependencies
9529 <a href="http://debian.semistable.com/debgraph.out.html">left in Debian
9530 is dropping</a>, and perhaps it will reach zero one day. :)</p>
9531
9532 <p>Todays testing also exposed a bug in
9533 <a href="http://bugs.debian.org/590605">update-notifier</a> and
9534 <a href="http://bugs.debian.org/590604">different behaviour</a> between
9535 apt-get and aptitude, the latter possibly caused by some circular
9536 dependency. Reported both to BTS to try to get someone to look at
9537 it.</p>
9538
9539 </div>
9540 <div class="tags">
9541
9542
9543 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>.
9544
9545
9546 </div>
9547 </div>
9548 <div class="padding"></div>
9549
9550 <div class="entry">
9551 <div class="title">
9552 <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>
9553 </div>
9554 <div class="date">
9555 27th July 2010
9556 </div>
9557 <div class="body">
9558 <p>I just posted this announcement culminating several months of work
9559 with the next Debian Edu release. Not nearly done, but one major step
9560 completed.</p>
9561
9562 <blockquote>
9563 <p>This is the first test release based on Squeeze. The focus of this
9564 release is to test the user application selection. To have a look,
9565 install the standalone profile and let the developers know if the set
9566 of installed packages i.e. applications should be modified. If some
9567 user application is missing, or if there are some applications that no
9568 longer make sense to be included in Debian Edu, please let us know.
9569 Also, if a useful application is missing the translation for your
9570 language of choice, please let us know too.</p>
9571
9572 <p>In addition, feedback and help to polish the desktop (menus,
9573 artwork, starters, etc.) is appreciated. We would like to ship a nice
9574 and handy KDE4 desktop targeted for schools out of the box.</p>
9575
9576 <p>The other profiles should be installable, but there is a lot more
9577 work left to be done before they are ready, so do not expect to
9578 much.</p>
9579
9580 <p>Changes compared to the lenny based version</p>
9581
9582 <ul>
9583 <li>Everything from Debian Squeeze
9584 <ul>
9585 <li>Desktop environment KDE 4.4 => the new KDE desktop in
9586 combination with some new artwork
9587 <li>Web browser Iceweasel 3.5
9588 <li>OpenOffice.org 3.2
9589 <li>Educational toolbox GCompris 9.3
9590 <li>Music creator Rosegarden 10.04.2
9591 <li>Image editor Gimp 2.6.10
9592 <li>Virtual universe Celestia 1.6.0
9593 <li>Virtual stargazer Stellarium 0.10.4
9594 <li>3D modeler Blender 2.49.2 (new application)
9595 <li>Video editor Kdenlive 0.7.7 (new application)
9596 </ul></li>
9597 <li>Now using Kerberos for password checking (migration not finished).
9598 Enabled for:
9599 <ul>
9600 <li>PAM
9601 <li>LDAP
9602 <li>IMAP
9603 <li>SMTP (sender verification)
9604 </ul>
9605 </li>
9606 <li>New experimental roaming workstation profile for laptops.</li>
9607 <li>Show welcome page to users when they first log in. The URL is
9608 fetched from LDAP.</li>
9609 <li>New LXDE desktop option, in addition to KDE (default) and Gnome.</li>
9610 <li>General cleanup (not finished)</li>
9611 </ul>
9612 <p>The following features are not working as they should</p>
9613
9614 <ul>
9615 <li>No web based administration tool for creating users and groups. The
9616 scripts ldap-createuser-krb and ldap-add-user-to-group can be used
9617 for testing.</li>
9618 <li>DVD installs are missing debian-installer images for the PXE boot,
9619 and do not set up the PXE menu on eth0 because of this. LTSP
9620 clients should still boot from eth1 on thin client servers.</li>
9621 <li>The restructured KDE menu is not implemented.</li>
9622 <li>The LDAP server setup need to be reviewed for security.</li>
9623 <li>The LDAP directory structure need to be reworked.</li>
9624 <li>Different sets of packages are installed when using the DVD and the
9625 netinst CD. More packages are installed using the netinst CD.</li>
9626 <li>The jackd package fail to install. This is believed to be caused by
9627 some ongoing transition, and hopefully should be solved soon. The
9628 jackd1 package can be installed manually for those that need it.</li>
9629 <li>Some packages lack translations. See
9630 http://wiki.debian.org/DebianEdu/Status/Squeeze for updated status,
9631 and help out with translations.</li>
9632 </ul>
9633
9634 <p>To download this multiarch netinstall release you can use</p>
9635
9636 <ul>
9637 <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>
9638 <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>
9639 <li>rsync -avzP ftp.skolelinux.org::skolelinux-cd/squeeze-alpha/debian-edu-6.0.0+edua0-CD.iso</li>
9640 </ul>
9641 <p>To download this multiarch dvd release you can use</p>
9642
9643 <ul>
9644 <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>
9645 <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>
9646 <li>rsync -avzP ftp.skolelinux.org::skolelinux-cd/squeeze-alpha/debian-edu-6.0.0+edua0-DVD.iso</li>
9647 </ul>
9648
9649 <p>There is no source DVD available yet. It will be prepared when we
9650 get closer to the final release.</p>
9651
9652 <p>The MD5SUM of these images are</p>
9653
9654 <ul>
9655 <li>3dbf45d59f42a53518b6e3c9ec3b5eb6 debian-edu-6.0.0+edua0-CD.iso</li>
9656 <li>22f2cbfce281d1c6e478be452638675d debian-edu-6.0.0+edua0-DVD.iso</li>
9657 </ul>
9658
9659 <p>The SHA1SUM of these images are</p>
9660 <ul>
9661 <li>c53d1b69b40cf37cd27aefaf33f6f6a3821bedf0 debian-edu-6.0.0+edua0-CD.iso</li>
9662 <li>2ec29d7db676d59d32197b05c277ffe16348376c debian-edu-6.0.0+edua0-DVD.iso</li>
9663 </ul>
9664 <p>How to report bugs:
9665 http://wiki.debian.org/DebianEdu/HowTo/ReportBugsInBugzilla</p>
9666
9667 <p>Please direct replies to debian-edu@lists.debian.org</p>
9668 </blockquote>
9669
9670 </div>
9671 <div class="tags">
9672
9673
9674 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>.
9675
9676
9677 </div>
9678 </div>
9679 <div class="padding"></div>
9680
9681 <div class="entry">
9682 <div class="title">
9683 <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>
9684 </div>
9685 <div class="date">
9686 25th July 2010
9687 </div>
9688 <div class="body">
9689 <p>The last few months me and the other Debian Edu developers have
9690 been working hard to get the Debian/Squeeze based version of Debian
9691 Edu/Skolelinux into shape. This future version will use Kerberos for
9692 authentication, and services are slowly migrated to single signon,
9693 getting rid of password questions one at the time.</p>
9694
9695 <p>It will also feature a roaming workstation profile with local home
9696 directory, for laptops that are only some times on the Skolelinux
9697 network, and for this profile a shortcut is created in Gnome and KDE
9698 to gain access to the users home directory on the file server. This
9699 shortcut uses SMB at the moment, and yesterday I had time to test if
9700 SMB mounting had started working in KDE after we added the cifs-utils
9701 package. I was pleasantly surprised how well it worked.</p>
9702
9703 <p>Thanks to the recent changes to our samba configuration to get it
9704 to use Kerberos for authentication, there were no question about user
9705 password when mounting the SMB volume. A simple click on the shortcut
9706 in the KDE menu, and a window with the home directory popped
9707 up. :)</p>
9708
9709 <p>One step closer to a single signon solution out of the box in
9710 Debian Edu. We already had PAM, LDAP, IMAP and SMTP in place, and now
9711 also Samba. Next step is Cups and hopefully also NFS.</p>
9712
9713 <p>We had planned a alpha0 release of Debian Edu for today, but thanks
9714 to the autobuilder administrators for some architectures being slow to
9715 sign packages, we are still missing the fixed LTSP package we need for
9716 the release. It was uploaded three days ago with urgency=high, and if
9717 it had entered testing yesterday we would have been able to test it in
9718 time for a alpha0 release today. As the binaries for ia64 and powerpc
9719 still not uploaded to the Debian archive, we need to delay the alpha
9720 release another day.</p>
9721
9722 <p>If you want to help out with implementing Kerberos for Debian Edu,
9723 please contact us on debian-edu@lists.debian.org.</p>
9724
9725 </div>
9726 <div class="tags">
9727
9728
9729 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>.
9730
9731
9732 </div>
9733 </div>
9734 <div class="padding"></div>
9735
9736 <div class="entry">
9737 <div class="title">
9738 <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>
9739 </div>
9740 <div class="date">
9741 18th July 2010
9742 </div>
9743 <div class="body">
9744 <p>Thanks to
9745 <a href="http://feedproxy.google.com/~r/Opengeodata/~3/wUTCzDZk3lc/project-of-the-week-which-way-home">todays
9746 opengeodata blog entry</a>, I just discovered that the
9747 OpenStreetmap.org site have gotten
9748 <a href="http://nroets.dev.openstreetmap.org/demo/index.html?layers=B000FTFTT">support
9749 for calculating routes</a>. The support is still experimental and
9750 only available from the development server, until more experience is
9751 gathered on the user interface and any scalability issues.</p>
9752
9753 <p>Earlier, the routing I knew about using the OpenStreetmap.org data
9754 was provided by <a href="http://maps.cloudmade.com/">Cloudmade</a>,
9755 but having it on the main page is required to make everyone aware of
9756 the issue. I've had people reject Openstreetmap.org as a viable
9757 alternative for them because the front page lacked routing support,
9758 and I hope their needs will be catered for when routing show up on the
9759 www.openstreetmap.org front page.</p>
9760
9761 </div>
9762 <div class="tags">
9763
9764
9765 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>.
9766
9767
9768 </div>
9769 </div>
9770 <div class="padding"></div>
9771
9772 <div class="entry">
9773 <div class="title">
9774 <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>
9775 </div>
9776 <div class="date">
9777 17th July 2010
9778 </div>
9779 <div class="body">
9780 <p>This is a
9781 <a href="http://people.skolelinux.org/pere/blog/Time_for_new__LDAP_schemas_replacing_RFC_2307_.html">followup</a>
9782 on my
9783 <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
9784 work</a> on
9785 <a href="http://people.skolelinux.org/pere/blog/Combining_PowerDNS_and_ISC_DHCP_LDAP_objects.html">merging
9786 all</a> the computer related LDAP objects in Debian Edu.</p>
9787
9788 <p>As a step to try to see if it possible to merge the DNS and DHCP
9789 LDAP objects, I have had a look at how the packages pdns-backend-ldap
9790 and dhcp3-server-ldap in Debian use the LDAP server. The two
9791 implementations are quite different in how they use LDAP.</p>
9792
9793 To get this information, I started slapd with debugging enabled and
9794 dumped the debug output to a file to get the LDAP searches performed
9795 on a Debian Edu main-server. Here is a summary.
9796
9797 <p><strong>powerdns</strong></p>
9798
9799 <a href="http://www.linuxnetworks.de/doc/index.php/PowerDNS_LDAP_Backend">Clues
9800 on how to</a> set up PowerDNS to use a LDAP backend is available on
9801 the web.
9802
9803 <p>PowerDNS have two modes of operation using LDAP as its backend.
9804 One "strict" mode where the forward and reverse DNS lookups are done
9805 using the same LDAP objects, and a "tree" mode where the forward and
9806 reverse entries are in two different subtrees in LDAP with a structure
9807 based on the DNS names, as in tjener.intern and
9808 2.2.0.10.in-addr.arpa.</p>
9809
9810 <p>In tree mode, the server is set up to use a LDAP subtree as its
9811 base, and uses a "base" scoped search for the DNS name by adding
9812 "dc=tjener,dc=intern," to the base with a filter for
9813 "(associateddomain=tjener.intern)" for the forward entry and
9814 "dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa," with a filter for
9815 "(associateddomain=2.2.0.10.in-addr.arpa)" for the reverse entry. For
9816 forward entries, it is looking for attributes named dnsttl, arecord,
9817 nsrecord, cnamerecord, soarecord, ptrrecord, hinforecord, mxrecord,
9818 txtrecord, rprecord, afsdbrecord, keyrecord, aaaarecord, locrecord,
9819 srvrecord, naptrrecord, kxrecord, certrecord, dsrecord, sshfprecord,
9820 ipseckeyrecord, rrsigrecord, nsecrecord, dnskeyrecord, dhcidrecord,
9821 spfrecord and modifytimestamp. For reverse entries it is looking for
9822 the attributes dnsttl, arecord, nsrecord, cnamerecord, soarecord,
9823 ptrrecord, hinforecord, mxrecord, txtrecord, rprecord, aaaarecord,
9824 locrecord, srvrecord, naptrrecord and modifytimestamp. The equivalent
9825 ldapsearch commands could look like this:</p>
9826
9827 <blockquote><pre>
9828 ldapsearch -h ldap \
9829 -b dc=tjener,dc=intern,ou=hosts,dc=skole,dc=skolelinux,dc=no \
9830 -s base -x '(associateddomain=tjener.intern)' dNSTTL aRecord nSRecord \
9831 cNAMERecord sOARecord pTRRecord hInfoRecord mXRecord tXTRecord \
9832 rPRecord aFSDBRecord KeyRecord aAAARecord lOCRecord sRVRecord \
9833 nAPTRRecord kXRecord certRecord dSRecord sSHFPRecord iPSecKeyRecord \
9834 rRSIGRecord nSECRecord dNSKeyRecord dHCIDRecord sPFRecord modifyTimestamp
9835
9836 ldapsearch -h ldap \
9837 -b dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa,ou=hosts,dc=skole,dc=skolelinux,dc=no \
9838 -s base -x '(associateddomain=2.2.0.10.in-addr.arpa)'
9839 dnsttl, arecord, nsrecord, cnamerecord soarecord ptrrecord \
9840 hinforecord mxrecord txtrecord rprecord aaaarecord locrecord \
9841 srvrecord naptrrecord modifytimestamp
9842 </pre></blockquote>
9843
9844 <p>In Debian Edu/Lenny, the PowerDNS tree mode is used with
9845 ou=hosts,dc=skole,dc=skolelinux,dc=no as the base, and these are two
9846 example LDAP objects used there. In addition to these objects, the
9847 parent objects all th way up to ou=hosts,dc=skole,dc=skolelinux,dc=no
9848 also exist.</p>
9849
9850 <blockquote><pre>
9851 dn: dc=tjener,dc=intern,ou=hosts,dc=skole,dc=skolelinux,dc=no
9852 objectclass: top
9853 objectclass: dnsdomain
9854 objectclass: domainrelatedobject
9855 dc: tjener
9856 arecord: 10.0.2.2
9857 associateddomain: tjener.intern
9858
9859 dn: dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa,ou=hosts,dc=skole,dc=skolelinux,dc=no
9860 objectclass: top
9861 objectclass: dnsdomain2
9862 objectclass: domainrelatedobject
9863 dc: 2
9864 ptrrecord: tjener.intern
9865 associateddomain: 2.2.0.10.in-addr.arpa
9866 </pre></blockquote>
9867
9868 <p>In strict mode, the server behaves differently. When looking for
9869 forward DNS entries, it is doing a "subtree" scoped search with the
9870 same base as in the tree mode for a object with filter
9871 "(associateddomain=tjener.intern)" and requests the attributes dnsttl,
9872 arecord, nsrecord, cnamerecord, soarecord, ptrrecord, hinforecord,
9873 mxrecord, txtrecord, rprecord, aaaarecord, locrecord, srvrecord,
9874 naptrrecord and modifytimestamp. For reverse entires it also do a
9875 subtree scoped search but this time the filter is "(arecord=10.0.2.2)"
9876 and the requested attributes are associateddomain, dnsttl and
9877 modifytimestamp. In short, in strict mode the objects with ptrrecord
9878 go away, and the arecord attribute in the forward object is used
9879 instead.</p>
9880
9881 <p>The forward and reverse searches can be simulated using ldapsearch
9882 like this:</p>
9883
9884 <blockquote><pre>
9885 ldapsearch -h ldap -b ou=hosts,dc=skole,dc=skolelinux,dc=no -s sub -x \
9886 '(associateddomain=tjener.intern)' dNSTTL aRecord nSRecord \
9887 cNAMERecord sOARecord pTRRecord hInfoRecord mXRecord tXTRecord \
9888 rPRecord aFSDBRecord KeyRecord aAAARecord lOCRecord sRVRecord \
9889 nAPTRRecord kXRecord certRecord dSRecord sSHFPRecord iPSecKeyRecord \
9890 rRSIGRecord nSECRecord dNSKeyRecord dHCIDRecord sPFRecord modifyTimestamp
9891
9892 ldapsearch -h ldap -b ou=hosts,dc=skole,dc=skolelinux,dc=no -s sub -x \
9893 '(arecord=10.0.2.2)' associateddomain dnsttl modifytimestamp
9894 </pre></blockquote>
9895
9896 <p>In addition to the forward and reverse searches , there is also a
9897 search for SOA records, which behave similar to the forward and
9898 reverse lookups.</p>
9899
9900 <p>A thing to note with the PowerDNS behaviour is that it do not
9901 specify any objectclass names, and instead look for the attributes it
9902 need to generate a DNS reply. This make it able to work with any
9903 objectclass that provide the needed attributes.</p>
9904
9905 <p>The attributes are normally provided in the cosine (RFC 1274) and
9906 dnsdomain2 schemas. The latter is used for reverse entries like
9907 ptrrecord and recent DNS additions like aaaarecord and srvrecord.</p>
9908
9909 <p>In Debian Edu, we have created DNS objects using the object classes
9910 dcobject (for dc), dnsdomain or dnsdomain2 (structural, for the DNS
9911 attributes) and domainrelatedobject (for associatedDomain). The use
9912 of structural object classes make it impossible to combine these
9913 classes with the object classes used by DHCP.</p>
9914
9915 <p>There are other schemas that could be used too, for example the
9916 dnszone structural object class used by Gosa and bind-sdb for the DNS
9917 attributes combined with the domainrelatedobject object class, but in
9918 this case some unused attributes would have to be included as well
9919 (zonename and relativedomainname).</p>
9920
9921 <p>My proposal for Debian Edu would be to switch PowerDNS to strict
9922 mode and not use any of the existing objectclasses (dnsdomain,
9923 dnsdomain2 and dnszone) when one want to combine the DNS information
9924 with DHCP information, and instead create a auxiliary object class
9925 defined something like this (using the attributes defined for
9926 dnsdomain and dnsdomain2 or dnszone):</p>
9927
9928 <blockquote><pre>
9929 objectclass ( some-oid NAME 'dnsDomainAux'
9930 SUP top
9931 AUXILIARY
9932 MAY ( ARecord $ MDRecord $ MXRecord $ NSRecord $ SOARecord $ CNAMERecord $
9933 DNSTTL $ DNSClass $ PTRRecord $ HINFORecord $ MINFORecord $
9934 TXTRecord $ SIGRecord $ KEYRecord $ AAAARecord $ LOCRecord $
9935 NXTRecord $ SRVRecord $ NAPTRRecord $ KXRecord $ CERTRecord $
9936 A6Record $ DNAMERecord
9937 ))
9938 </pre></blockquote>
9939
9940 <p>This will allow any object to become a DNS entry when combined with
9941 the domainrelatedobject object class, and allow any entity to include
9942 all the attributes PowerDNS wants. I've sent an email to the PowerDNS
9943 developers asking for their view on this schema and if they are
9944 interested in providing such schema with PowerDNS, and I hope my
9945 message will be accepted into their mailing list soon.</p>
9946
9947 <p><strong>ISC dhcp</strong></p>
9948
9949 <p>The DHCP server searches for specific objectclass and requests all
9950 the object attributes, and then uses the attributes it want. This
9951 make it harder to figure out exactly what attributes are used, but
9952 thanks to the working example in Debian Edu I can at least get an idea
9953 what is needed without having to read the source code.</p>
9954
9955 <p>In the DHCP server configuration, the LDAP base to use and the
9956 search filter to use to locate the correct dhcpServer entity is
9957 stored. These are the relevant entries from
9958 /etc/dhcp3/dhcpd.conf:</p>
9959
9960 <blockquote><pre>
9961 ldap-base-dn "dc=skole,dc=skolelinux,dc=no";
9962 ldap-dhcp-server-cn "dhcp";
9963 </pre></blockquote>
9964
9965 <p>The DHCP server uses this information to nest all the DHCP
9966 configuration it need. The cn "dhcp" is located using the given LDAP
9967 base and the filter "(&(objectClass=dhcpServer)(cn=dhcp))". The
9968 search result is this entry:</p>
9969
9970 <blockquote><pre>
9971 dn: cn=dhcp,dc=skole,dc=skolelinux,dc=no
9972 cn: dhcp
9973 objectClass: top
9974 objectClass: dhcpServer
9975 dhcpServiceDN: cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
9976 </pre></blockquote>
9977
9978 <p>The content of the dhcpServiceDN attribute is next used to locate the
9979 subtree with DHCP configuration. The DHCP configuration subtree base
9980 is located using a base scope search with base "cn=DHCP
9981 Config,dc=skole,dc=skolelinux,dc=no" and filter
9982 "(&(objectClass=dhcpService)(|(dhcpPrimaryDN=cn=dhcp,dc=skole,dc=skolelinux,dc=no)(dhcpSecondaryDN=cn=dhcp,dc=skole,dc=skolelinux,dc=no)))".
9983 The search result is this entry:</p>
9984
9985 <blockquote><pre>
9986 dn: cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
9987 cn: DHCP Config
9988 objectClass: top
9989 objectClass: dhcpService
9990 objectClass: dhcpOptions
9991 dhcpPrimaryDN: cn=dhcp, dc=skole,dc=skolelinux,dc=no
9992 dhcpStatements: ddns-update-style none
9993 dhcpStatements: authoritative
9994 dhcpOption: smtp-server code 69 = array of ip-address
9995 dhcpOption: www-server code 72 = array of ip-address
9996 dhcpOption: wpad-url code 252 = text
9997 </pre></blockquote>
9998
9999 <p>Next, the entire subtree is processed, one level at the time. When
10000 all the DHCP configuration is loaded, it is ready to receive requests.
10001 The subtree in Debian Edu contain objects with object classes
10002 top/dhcpService/dhcpOptions, top/dhcpSharedNetwork/dhcpOptions,
10003 top/dhcpSubnet, top/dhcpGroup and top/dhcpHost. These provide options
10004 and information about netmasks, dynamic range etc. Leaving out the
10005 details here because it is not relevant for the focus of my
10006 investigation, which is to see if it is possible to merge dns and dhcp
10007 related computer objects.</p>
10008
10009 <p>When a DHCP request come in, LDAP is searched for the MAC address
10010 of the client (00:00:00:00:00:00 in this example), using a subtree
10011 scoped search with "cn=DHCP Config,dc=skole,dc=skolelinux,dc=no" as
10012 the base and "(&(objectClass=dhcpHost)(dhcpHWAddress=ethernet
10013 00:00:00:00:00:00))" as the filter. This is what a host object look
10014 like:</p>
10015
10016 <blockquote><pre>
10017 dn: cn=hostname,cn=group1,cn=THINCLIENTS,cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
10018 cn: hostname
10019 objectClass: top
10020 objectClass: dhcpHost
10021 dhcpHWAddress: ethernet 00:00:00:00:00:00
10022 dhcpStatements: fixed-address hostname
10023 </pre></blockquote>
10024
10025 <p>There is less flexiblity in the way LDAP searches are done here.
10026 The object classes need to have fixed names, and the configuration
10027 need to be stored in a fairly specific LDAP structure. On the
10028 positive side, the invidiual dhcpHost entires can be anywhere without
10029 the DN pointed to by the dhcpServer entries. The latter should make
10030 it possible to group all host entries in a subtree next to the
10031 configuration entries, and this subtree can also be shared with the
10032 DNS server if the schema proposed above is combined with the dhcpHost
10033 structural object class.
10034
10035 <p><strong>Conclusion</strong></p>
10036
10037 <p>The PowerDNS implementation seem to be very flexible when it come
10038 to which LDAP schemas to use. While its "tree" mode is rigid when it
10039 come to the the LDAP structure, the "strict" mode is very flexible,
10040 allowing DNS objects to be stored anywhere under the base cn specified
10041 in the configuration.</p>
10042
10043 <p>The DHCP implementation on the other hand is very inflexible, both
10044 regarding which LDAP schemas to use and which LDAP structure to use.
10045 I guess one could implement ones own schema, as long as the
10046 objectclasses and attributes have the names used, but this do not
10047 really help when the DHCP subtree need to have a fairly fixed
10048 structure.</p>
10049
10050 <p>Based on the observed behaviour, I suspect a LDAP structure like
10051 this might work for Debian Edu:</p>
10052
10053 <blockquote><pre>
10054 ou=services
10055 cn=machine-info (dhcpService) - dhcpServiceDN points here
10056 cn=dhcp (dhcpServer)
10057 cn=dhcp-internal (dhcpSharedNetwork/dhcpOptions)
10058 cn=10.0.2.0 (dhcpSubnet)
10059 cn=group1 (dhcpGroup/dhcpOptions)
10060 cn=dhcp-thinclients (dhcpSharedNetwork/dhcpOptions)
10061 cn=192.168.0.0 (dhcpSubnet)
10062 cn=group1 (dhcpGroup/dhcpOptions)
10063 ou=machines - PowerDNS base points here
10064 cn=hostname (dhcpHost/domainrelatedobject/dnsDomainAux)
10065 </pre></blockquote>
10066
10067 <P>This is not tested yet. If the DHCP server require the dhcpHost
10068 entries to be in the dhcpGroup subtrees, the entries can be stored
10069 there instead of a common machines subtree, and the PowerDNS base
10070 would have to be moved one level up to the machine-info subtree.</p>
10071
10072 <p>The combined object under the machines subtree would look something
10073 like this:</p>
10074
10075 <blockquote><pre>
10076 dn: dc=hostname,ou=machines,cn=machine-info,dc=skole,dc=skolelinux,dc=no
10077 dc: hostname
10078 objectClass: top
10079 objectClass: dhcpHost
10080 objectclass: domainrelatedobject
10081 objectclass: dnsDomainAux
10082 associateddomain: hostname.intern
10083 arecord: 10.11.12.13
10084 dhcpHWAddress: ethernet 00:00:00:00:00:00
10085 dhcpStatements: fixed-address hostname.intern
10086 </pre></blockquote>
10087
10088 </p>One could even add the LTSP configuration associated with a given
10089 machine, as long as the required attributes are available in a
10090 auxiliary object class.</p>
10091
10092 </div>
10093 <div class="tags">
10094
10095
10096 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>.
10097
10098
10099 </div>
10100 </div>
10101 <div class="padding"></div>
10102
10103 <div class="entry">
10104 <div class="title">
10105 <a href="http://people.skolelinux.org/pere/blog/Combining_PowerDNS_and_ISC_DHCP_LDAP_objects.html">Combining PowerDNS and ISC DHCP LDAP objects</a>
10106 </div>
10107 <div class="date">
10108 14th July 2010
10109 </div>
10110 <div class="body">
10111 <p>For a while now, I have wanted to find a way to change the DNS and
10112 DHCP services in Debian Edu to use the same LDAP objects for a given
10113 computer, to avoid the possibility of having a inconsistent state for
10114 a computer in LDAP (as in DHCP but no DNS entry or the other way
10115 around) and make it easier to add computers to LDAP.</p>
10116
10117 <p>I've looked at how powerdns and dhcpd is using LDAP, and using this
10118 information finally found a solution that seem to work.</p>
10119
10120 <p>The old setup required three LDAP objects for a given computer.
10121 One forward DNS entry, one reverse DNS entry and one DHCP entry. If
10122 we switch powerdns to use its strict LDAP method (ldap-method=strict
10123 in pdns-debian-edu.conf), the forward and reverse DNS entries are
10124 merged into one while making it impossible to transfer the reverse map
10125 to a slave DNS server.</p>
10126
10127 <p>If we also replace the object class used to get the DNS related
10128 attributes to one allowing these attributes to be combined with the
10129 dhcphost object class, we can merge the DNS and DHCP entries into one.
10130 I've written such object class in the dnsdomainaux.schema file (need
10131 proper OIDs, but that is a minor issue), and tested the setup. It
10132 seem to work.</p>
10133
10134 <p>With this test setup in place, we can get away with one LDAP object
10135 for both DNS and DHCP, and even the LTSP configuration I suggested in
10136 an earlier email. The combined LDAP object will look something like
10137 this:</p>
10138
10139 <blockquote><pre>
10140 dn: cn=hostname,cn=group1,cn=THINCLIENTS,cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
10141 cn: hostname
10142 objectClass: dhcphost
10143 objectclass: domainrelatedobject
10144 objectclass: dnsdomainaux
10145 associateddomain: hostname.intern
10146 arecord: 10.11.12.13
10147 dhcphwaddress: ethernet 00:00:00:00:00:00
10148 dhcpstatements: fixed-address hostname
10149 ldapconfigsound: Y
10150 </pre></blockquote>
10151
10152 <p>The DNS server uses the associateddomain and arecord entries, while
10153 the DHCP server uses the dhcphwaddress and dhcpstatements entries
10154 before asking DNS to resolve the fixed-adddress. LTSP will use
10155 dhcphwaddress or associateddomain and the ldapconfig* attributes.</p>
10156
10157 <p>I am not yet sure if I can get the DHCP server to look for its
10158 dhcphost in a different location, to allow us to put the objects
10159 outside the "DHCP Config" subtree, but hope to figure out a way to do
10160 that. If I can't figure out a way to do that, we can still get rid of
10161 the hosts subtree and move all its content into the DHCP Config tree
10162 (which probably should be renamed to be more related to the new
10163 content. I suspect cn=dnsdhcp,ou=services or something like that
10164 might be a good place to put it.</p>
10165
10166 <p>If you want to help out with implementing this for Debian Edu,
10167 please contact us on debian-edu@lists.debian.org.</p>
10168
10169 </div>
10170 <div class="tags">
10171
10172
10173 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>.
10174
10175
10176 </div>
10177 </div>
10178 <div class="padding"></div>
10179
10180 <div class="entry">
10181 <div class="title">
10182 <a href="http://people.skolelinux.org/pere/blog/Idea_for_storing_LTSP_configuration_in_LDAP.html">Idea for storing LTSP configuration in LDAP</a>
10183 </div>
10184 <div class="date">
10185 11th July 2010
10186 </div>
10187 <div class="body">
10188 <p>Vagrant mentioned on IRC today that ltsp_config now support
10189 sourcing files from /usr/share/ltsp/ltsp_config.d/ on the thin
10190 clients, and that this can be used to fetch configuration from LDAP if
10191 Debian Edu choose to store configuration there.</p>
10192
10193 <p>Armed with this information, I got inspired and wrote a test module
10194 to get configuration from LDAP. The idea is to look up the MAC
10195 address of the client in LDAP, and look for attributes on the form
10196 ltspconfigsetting=value, and use this to export SETTING=value to the
10197 LTSP clients.</p>
10198
10199 <p>The goal is to be able to store the LTSP configuration attributes
10200 in a "computer" LDAP object used by both DNS and DHCP, and thus
10201 allowing us to store all information about a computer in one place.</p>
10202
10203 <p>This is a untested draft implementation, and I welcome feedback on
10204 this approach. A real LDAP schema for the ltspClientAux objectclass
10205 need to be written. Comments, suggestions, etc?</p>
10206
10207 <blockquote><pre>
10208 # Store in /opt/ltsp/$arch/usr/share/ltsp/ltsp_config.d/ldap-config
10209 #
10210 # Fetch LTSP client settings from LDAP based on MAC address
10211 #
10212 # Uses ethernet address as stored in the dhcpHost objectclass using
10213 # the dhcpHWAddress attribute or ethernet address stored in the
10214 # ieee802Device objectclass with the macAddress attribute.
10215 #
10216 # This module is written to be schema agnostic, and only depend on the
10217 # existence of attribute names.
10218 #
10219 # The LTSP configuration variables are saved directly using a
10220 # ltspConfig prefix and uppercasing the rest of the attribute name.
10221 # To set the SERVER variable, set the ltspConfigServer attribute.
10222 #
10223 # Some LDAP schema should be created with all the relevant
10224 # configuration settings. Something like this should work:
10225 #
10226 # objectclass ( 1.1.2.2 NAME 'ltspClientAux'
10227 # SUP top
10228 # AUXILIARY
10229 # MAY ( ltspConfigServer $ ltsConfigSound $ ... )
10230
10231 LDAPSERVER=$(debian-edu-ldapserver)
10232 if [ "$LDAPSERVER" ] ; then
10233 LDAPBASE=$(debian-edu-ldapserver -b)
10234 for MAC in $(LANG=C ifconfig |grep -i hwaddr| awk '{print $5}'|sort -u) ; do
10235 filter="(|(dhcpHWAddress=ethernet $MAC)(macAddress=$MAC))"
10236 ldapsearch -h "$LDAPSERVER" -b "$LDAPBASE" -v -x "$filter" | \
10237 grep '^ltspConfig' | while read attr value ; do
10238 # Remove prefix and convert to upper case
10239 attr=$(echo $attr | sed 's/^ltspConfig//i' | tr a-z A-Z)
10240 # bass value on to clients
10241 eval "$attr=$value; export $attr"
10242 done
10243 done
10244 fi
10245 </pre></blockquote>
10246
10247 <p>I'm not sure this shell construction will work, because I suspect
10248 the while block might end up in a subshell causing the variables set
10249 there to not show up in ltsp-config, but if that is the case I am sure
10250 the code can be restructured to make sure the variables are passed on.
10251 I expect that can be solved with some testing. :)</p>
10252
10253 <p>If you want to help out with implementing this for Debian Edu,
10254 please contact us on debian-edu@lists.debian.org.</p>
10255
10256 <p>Update 2010-07-17: I am aware of another effort to store LTSP
10257 configuration in LDAP that was created around year 2000 by
10258 <a href="http://www.pcxperience.com/thinclient/documentation/ldap.html">PC
10259 Xperience, Inc., 2000</a>. I found its
10260 <a href="http://people.redhat.com/alikins/ltsp/ldap/">files</a> on a
10261 personal home page over at redhat.com.</p>
10262
10263 </div>
10264 <div class="tags">
10265
10266
10267 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>.
10268
10269
10270 </div>
10271 </div>
10272 <div class="padding"></div>
10273
10274 <div class="entry">
10275 <div class="title">
10276 <a href="http://people.skolelinux.org/pere/blog/jXplorer__a_very_nice_LDAP_GUI.html">jXplorer, a very nice LDAP GUI</a>
10277 </div>
10278 <div class="date">
10279 9th July 2010
10280 </div>
10281 <div class="body">
10282 <p>Since
10283 <a href="http://people.skolelinux.org/pere/blog/LUMA__a_very_nice_LDAP_GUI.html">my
10284 last post</a> about available LDAP tools in Debian, I was told about a
10285 LDAP GUI that is even better than luma. The java application
10286 <a href="http://jxplorer.org/">jXplorer</a> is claimed to be capable of
10287 moving LDAP objects and subtrees using drag-and-drop, and can
10288 authenticate using Kerberos. I have only tested the Kerberos
10289 authentication, but do not have a LDAP setup allowing me to rewrite
10290 LDAP with my test user yet. It is
10291 <a href="http://packages.qa.debian.org/j/jxplorer.html">available in
10292 Debian</a> testing and unstable at the moment. The only problem I
10293 have with it is how it handle errors. If something go wrong, its
10294 non-intuitive behaviour require me to go through some query work list
10295 and remove the failing query. Nothing big, but very annoying.</p>
10296
10297 </div>
10298 <div class="tags">
10299
10300
10301 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>.
10302
10303
10304 </div>
10305 </div>
10306 <div class="padding"></div>
10307
10308 <div class="entry">
10309 <div class="title">
10310 <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>
10311 </div>
10312 <div class="date">
10313 3rd July 2010
10314 </div>
10315 <div class="body">
10316 <p>Here is a short update on my <a
10317 href="http://people.skolelinux.org/~pere/debian-upgrade-testing/">my
10318 Debian Lenny->Squeeze upgrade testing</a>. Here is a summary of the
10319 difference for Gnome when it is upgraded by apt-get and aptitude. I'm
10320 not reporting the status for KDE, because the upgrade crashes when
10321 aptitude try because of missing conflicts
10322 (<a href="http://bugs.debian.org/584861">#584861</a> and
10323 <a href="http://bugs.debian.org/585716">#585716</a>).</p>
10324
10325 <p>At the end of the upgrade test script, dpkg -l is executed to get a
10326 complete list of the installed packages. Based on this I see these
10327 differences when I did a test run today. As usual, I do not really
10328 know what the correct set of packages would be, but thought it best to
10329 publish the difference.</p>
10330
10331 <p>Installed using apt-get, missing with aptitude</p>
10332
10333 <blockquote><p>
10334 at-spi cpp-4.3 finger gnome-spell gstreamer0.10-gnomevfs
10335 libatspi1.0-0 libcupsys2 libeel2-data libgail-common libgdl-1-common
10336 libgnomeprint2.2-data libgnomeprintui2.2-common libgnomevfs2-bin
10337 libgtksourceview-common libpt-1.10.10-plugins-alsa
10338 libpt-1.10.10-plugins-v4l libservlet2.4-java libxalan2-java
10339 libxerces2-java openoffice.org-writer2latex openssl-blacklist p7zip
10340 python-4suite-xml python-eggtrayicon python-gtkhtml2
10341 python-gtkmozembed svgalibg1 xserver-xephyr zip
10342 </p></blockquote>
10343
10344 <p>Installed using apt-get, removed with aptitude</p>
10345
10346 <blockquote><p>
10347 bluez-utils dhcdbd djvulibre-desktop epiphany-gecko
10348 gnome-app-install gnome-mount gnome-vfs-obexftp gnome-volume-manager
10349 libao2 libavahi-compat-libdnssd1 libavahi-core5 libbind9-50
10350 libbluetooth2 libcamel1.2-11 libcdio7 libcucul0 libcurl3
10351 libdirectfb-1.0-0 libdvdread3 libedata-cal1.2-6 libedataserver1.2-9
10352 libeel2-2.20 libepc-1.0-1 libepc-ui-1.0-1 libexchange-storage1.2-3
10353 libfaad0 libgd2-noxpm libgda3-3 libgda3-common libggz2 libggzcore9
10354 libggzmod4 libgksu1.2-0 libgksuui1.0-1 libgmyth0 libgnome-desktop-2
10355 libgnome-pilot2 libgnomecups1.0-1 libgnomeprint2.2-0
10356 libgnomeprintui2.2-0 libgpod3 libgraphviz4 libgtkhtml2-0
10357 libgtksourceview1.0-0 libgucharmap6 libhesiod0 libicu38 libisccc50
10358 libisccfg50 libiw29 libkpathsea4 libltdl3 liblwres50 libmagick++10
10359 libmagick10 libmalaga7 libmtp7 libmysqlclient15off libnautilus-burn4
10360 libneon27 libnm-glib0 libnm-util0 libopal-2.2 libosp5
10361 libparted1.8-10 libpisock9 libpisync1 libpoppler-glib3 libpoppler3
10362 libpt-1.10.10 libraw1394-8 libsensors3 libsmbios2 libsoup2.2-8
10363 libssh2-1 libsuitesparse-3.1.0 libswfdec-0.6-90 libtalloc1
10364 libtotem-plparser10 libtrackerclient0 libvoikko1 libxalan2-java-gcj
10365 libxerces2-java-gcj libxklavier12 libxtrap6 libxxf86misc1 libzephyr3
10366 mysql-common swfdec-gnome totem-gstreamer wodim
10367 </p></blockquote>
10368
10369 <p>Installed using aptitude, missing with apt-get</p>
10370
10371 <blockquote><p>
10372 gnome gnome-desktop-environment hamster-applet python-gnomeapplet
10373 python-gnomekeyring python-wnck rhythmbox-plugins xorg
10374 xserver-xorg-input-all xserver-xorg-input-evdev
10375 xserver-xorg-input-kbd xserver-xorg-input-mouse
10376 xserver-xorg-input-synaptics xserver-xorg-video-all
10377 xserver-xorg-video-apm xserver-xorg-video-ark xserver-xorg-video-ati
10378 xserver-xorg-video-chips xserver-xorg-video-cirrus
10379 xserver-xorg-video-dummy xserver-xorg-video-fbdev
10380 xserver-xorg-video-glint xserver-xorg-video-i128
10381 xserver-xorg-video-i740 xserver-xorg-video-mach64
10382 xserver-xorg-video-mga xserver-xorg-video-neomagic
10383 xserver-xorg-video-nouveau xserver-xorg-video-nv
10384 xserver-xorg-video-r128 xserver-xorg-video-radeon
10385 xserver-xorg-video-radeonhd xserver-xorg-video-rendition
10386 xserver-xorg-video-s3 xserver-xorg-video-s3virge
10387 xserver-xorg-video-savage xserver-xorg-video-siliconmotion
10388 xserver-xorg-video-sis xserver-xorg-video-sisusb
10389 xserver-xorg-video-tdfx xserver-xorg-video-tga
10390 xserver-xorg-video-trident xserver-xorg-video-tseng
10391 xserver-xorg-video-vesa xserver-xorg-video-vmware
10392 xserver-xorg-video-voodoo
10393 </p></blockquote>
10394
10395 <p>Installed using aptitude, removed with apt-get</p>
10396
10397 <blockquote><p>
10398 deskbar-applet xserver-xorg xserver-xorg-core
10399 xserver-xorg-input-wacom xserver-xorg-video-intel
10400 xserver-xorg-video-openchrome
10401 </p></blockquote>
10402
10403 <p>I was told on IRC that the xorg-xserver package was
10404 <a href="http://git.debian.org/?p=pkg-xorg/xserver/xorg-server.git;a=commit;h=9c8080d06c457932d3bfec021c69ac000aa60120">changed
10405 in git</a> today to try to get apt-get to not remove xorg completely.
10406 No idea when it hits Squeeze, but when it does I hope it will reduce
10407 the difference somewhat.
10408
10409 </div>
10410 <div class="tags">
10411
10412
10413 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>.
10414
10415
10416 </div>
10417 </div>
10418 <div class="padding"></div>
10419
10420 <div class="entry">
10421 <div class="title">
10422 <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>
10423 </div>
10424 <div class="date">
10425 1st July 2010
10426 </div>
10427 <div class="body">
10428 <p>For a laptop, centralized user directories and password checking is
10429 a bit troubling. Laptops are typically used also when not connected
10430 to the network, and it is vital for a user to be able to log in or
10431 unlock the screen saver also when a central server is unavailable.
10432 This is possible by caching passwords and directory information (user
10433 and group attributes) locally, and the packages to do so are available
10434 in Debian. Here follow two recipes to set this up in Debian/Squeeze.
10435 It is also possible to set up in Debian/Lenny, but require more manual
10436 setup there because pam-auth-update is missing in Lenny.</p>
10437
10438 <h2>LDAP/Kerberos + nscd + libpam-ccreds + libpam-mklocaluser/pam_mkhomedir</h2>
10439
10440 This is the traditional method with a twist. The password caching is
10441 provided by libpam-ccreds (version 10-4 or later is needed on
10442 Squeeze), and the directory caching is done by nscd. The directory
10443 lookup and password checking is done using LDAP. If one want to use
10444 Kerberos for password checking the libpam-ldapd package can be
10445 replaced with libpam-krb5 or libpam-heimdal. If one is happy having a
10446 local home directory with the path listed in LDAP, one can use the
10447 pam_mkhomedir module from pam-modules to make this happen instead of
10448 using libpam-mklocaluser. A setup for pam-auth-update to enable
10449 pam_mkhomedir will have to be written until a fix for
10450 <a href="http://bugs.debian.org/568577">bug #568577</a> is in the
10451 archive. Because I believe it is a bad idea to have local home
10452 directories using misleading paths like /site/server/partition/, I
10453 prefer to create a local user with the home directory in /home/. This
10454 is done using the libpam-mklocaluser package.</p>
10455
10456 <p>These packages need to be installed and configured</p>
10457
10458 <blockquote><pre>
10459 libnss-ldapd libpam-ldapd nscd libpam-ccreds libpam-mklocaluser
10460 </pre></blockquote>
10461
10462 <p>The ldapd packages will ask for LDAP connection information, and
10463 one have to fill in the values that fits ones own site. Make sure the
10464 PAM part uses encrypted connections, to make sure the password is not
10465 sent in clear text to the LDAP server. I've been unable to get TLS
10466 certificate checking for a self signed certificate working, which make
10467 LDAP authentication unsafe for Debian Edu (nslcd is not checking if it
10468 is talking to the correct LDAP server), and very much welcome feedback
10469 on how to get this working.</p>
10470
10471 <p>Because nscd do not have a default configuration fit for offline
10472 caching until <a href="http://bugs.debian.org/485282">bug #485282</a>
10473 is fixed, this configuration should be used instead of the one
10474 currently in /etc/nscd.conf. The changes are in the fields
10475 reload-count and positive-time-to-live, and is based on the
10476 instructions I found in the
10477 <a href="http://www.flyn.org/laptopldap/">LDAP for Mobile Laptops</a>
10478 instructions by Flyn Computing.</p>
10479
10480 <blockquote><pre>
10481 debug-level 0
10482 reload-count unlimited
10483 paranoia no
10484
10485 enable-cache passwd yes
10486 positive-time-to-live passwd 2592000
10487 negative-time-to-live passwd 20
10488 suggested-size passwd 211
10489 check-files passwd yes
10490 persistent passwd yes
10491 shared passwd yes
10492 max-db-size passwd 33554432
10493 auto-propagate passwd yes
10494
10495 enable-cache group yes
10496 positive-time-to-live group 2592000
10497 negative-time-to-live group 20
10498 suggested-size group 211
10499 check-files group yes
10500 persistent group yes
10501 shared group yes
10502 max-db-size group 33554432
10503 auto-propagate group yes
10504
10505 enable-cache hosts no
10506 positive-time-to-live hosts 2592000
10507 negative-time-to-live hosts 20
10508 suggested-size hosts 211
10509 check-files hosts yes
10510 persistent hosts yes
10511 shared hosts yes
10512 max-db-size hosts 33554432
10513
10514 enable-cache services yes
10515 positive-time-to-live services 2592000
10516 negative-time-to-live services 20
10517 suggested-size services 211
10518 check-files services yes
10519 persistent services yes
10520 shared services yes
10521 max-db-size services 33554432
10522 </pre></blockquote>
10523
10524 <p>While we wait for a mechanism to update /etc/nsswitch.conf
10525 automatically like the one provided in
10526 <a href="http://bugs.debian.org/496915">bug #496915</a>, the file
10527 content need to be manually replaced to ensure LDAP is used as the
10528 directory service on the machine. /etc/nsswitch.conf should normally
10529 look like this:</p>
10530
10531 <blockquote><pre>
10532 passwd: files ldap
10533 group: files ldap
10534 shadow: files ldap
10535 hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
10536 networks: files
10537 protocols: files
10538 services: files
10539 ethers: files
10540 rpc: files
10541 netgroup: files ldap
10542 </pre></blockquote>
10543
10544 <p>The important parts are that ldap is listed last for passwd, group,
10545 shadow and netgroup.</p>
10546
10547 <p>With these changes in place, any user in LDAP will be able to log
10548 in locally on the machine using for example kdm, get a local home
10549 directory created and have the password as well as user and group
10550 attributes cached.
10551
10552 <h2>LDAP/Kerberos + nss-updatedb + libpam-ccreds +
10553 libpam-mklocaluser/pam_mkhomedir</h2>
10554
10555 <p>Because nscd have had its share of problems, and seem to have
10556 problems doing proper caching, I've seen suggestions and recipes to
10557 use nss-updatedb to copy parts of the LDAP database locally when the
10558 LDAP database is available. I have not tested such setup, because I
10559 discovered sssd.</p>
10560
10561 <h2>LDAP/Kerberos + sssd + libpam-mklocaluser</h2>
10562
10563 <p>A more flexible and robust setup than the nscd combination
10564 mentioned earlier that has shown up recently, is the
10565 <a href="https://fedorahosted.org/sssd/">sssd</a> package from Redhat.
10566 It is part of the <a href="http://www.freeipa.org/">FreeIPA</A> project
10567 to provide a Active Directory like directory service for Linux
10568 machines. The sssd system combines the caching of passwords and user
10569 information into one package, and remove the need for nscd and
10570 libpam-ccreds. It support LDAP and Kerberos, but not NIS. Version
10571 1.2 do not support netgroups, but it is said that it will support this
10572 in version 1.5 expected to show up later in 2010. Because the
10573 <a href="http://packages.qa.debian.org/s/sssd.html">sssd package</a>
10574 was missing in Debian, I ended up co-maintaining it with Werner, and
10575 version 1.2 is now in testing.
10576
10577 <p>These packages need to be installed and configured to get the
10578 roaming setup I want</p>
10579
10580 <blockquote><pre>
10581 libpam-sss libnss-sss libpam-mklocaluser
10582 </pre></blockquote>
10583
10584 The complete setup of sssd is done by editing/creating
10585 <tt>/etc/sssd/sssd.conf</tt>.
10586
10587 <blockquote><pre>
10588 [sssd]
10589 config_file_version = 2
10590 reconnection_retries = 3
10591 sbus_timeout = 30
10592 services = nss, pam
10593 domains = INTERN
10594
10595 [nss]
10596 filter_groups = root
10597 filter_users = root
10598 reconnection_retries = 3
10599
10600 [pam]
10601 reconnection_retries = 3
10602
10603 [domain/INTERN]
10604 enumerate = false
10605 cache_credentials = true
10606
10607 id_provider = ldap
10608 auth_provider = ldap
10609 chpass_provider = ldap
10610
10611 ldap_uri = ldap://ldap
10612 ldap_search_base = dc=skole,dc=skolelinux,dc=no
10613 ldap_tls_reqcert = never
10614 ldap_tls_cacert = /etc/ssl/certs/ca-certificates.crt
10615 </pre></blockquote>
10616
10617 <p>I got the same problem here with certificate checking. Had to set
10618 "ldap_tls_reqcert = never" to get it working.</p>
10619
10620 <p>With the libnss-sss package in testing at the moment, the
10621 nsswitch.conf file is update automatically, so there is no need to
10622 modify it manually.</p>
10623
10624 <p>If you want to help out with implementing this for Debian Edu,
10625 please contact us on debian-edu@lists.debian.org.</p>
10626
10627 </div>
10628 <div class="tags">
10629
10630
10631 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>.
10632
10633
10634 </div>
10635 </div>
10636 <div class="padding"></div>
10637
10638 <div class="entry">
10639 <div class="title">
10640 <a href="http://people.skolelinux.org/pere/blog/LUMA__a_very_nice_LDAP_GUI.html">LUMA, a very nice LDAP GUI</a>
10641 </div>
10642 <div class="date">
10643 28th June 2010
10644 </div>
10645 <div class="body">
10646 <p>The last few days I have been looking into the status of the LDAP
10647 directory in Debian Edu, and in the process I started to miss a GUI
10648 tool to browse the LDAP tree. The only one I was able to find in
10649 Debian/Squeeze and Lenny is
10650 <a href="http://luma.sourceforge.net/">LUMA</a>, which has proved to
10651 be a great tool to get a overview of the current LDAP directory
10652 populated by default in Skolelinux. Thanks to it, I have been able to
10653 find empty and obsolete subtrees, misplaced objects and duplicate
10654 objects. It will be installed by default in Debian/Squeeze. If you
10655 are working with LDAP, give it a go. :)</p>
10656
10657 <p>I did notice one problem with it I have not had time to report to
10658 the BTS yet. There is no .desktop file in the package, so the tool do
10659 not show up in the Gnome and KDE menus, but only deep down in in the
10660 Debian submenu in KDE. I hope that can be fixed before Squeeze is
10661 released.</p>
10662
10663 <p>I have not yet been able to get it to modify the tree yet. I would
10664 like to move objects and remove subtrees directly in the GUI, but have
10665 not found a way to do that with LUMA yet. So in the mean time, I use
10666 <a href="http://www.lichteblau.com/ldapvi/">ldapvi</a> for that.</p>
10667
10668 <p>If you have tips on other GUI tools for LDAP that might be useful
10669 in Debian Edu, please contact us on debian-edu@lists.debian.org.</p>
10670
10671 <p>Update 2010-06-29: Ross Reedstrom tipped us about the
10672 <a href="http://packages.qa.debian.org/g/gq.html">gq</a> package as a
10673 useful GUI alternative. It seem like a good tool, but is unmaintained
10674 in Debian and got a RC bug keeping it out of Squeeze. Unless that
10675 changes, it will not be an option for Debian Edu based on Squeeze.</p>
10676
10677 </div>
10678 <div class="tags">
10679
10680
10681 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>.
10682
10683
10684 </div>
10685 </div>
10686 <div class="padding"></div>
10687
10688 <div class="entry">
10689 <div class="title">
10690 <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>
10691 </div>
10692 <div class="date">
10693 24th June 2010
10694 </div>
10695 <div class="body">
10696 <p>A while back, I
10697 <a href="http://people.skolelinux.org/pere/blog/Time_for_new__LDAP_schemas_replacing_RFC_2307_.html">complained
10698 about the fact</a> that it is not possible with the provided schemas
10699 for storing DNS and DHCP information in LDAP to combine the two sets
10700 of information into one LDAP object representing a computer.</p>
10701
10702 <p>In the mean time, I discovered that a simple fix would be to make
10703 the dhcpHost object class auxiliary, to allow it to be combined with
10704 the dNSDomain object class, and thus forming one object for one
10705 computer when storing both DHCP and DNS information in LDAP.</p>
10706
10707 <p>If I understand this correctly, it is not safe to do this change
10708 without also changing the assigned number for the object class, and I
10709 do not know enough about LDAP schema design to do that properly for
10710 Debian Edu.</p>
10711
10712 <p>Anyway, for future reference, this is how I believe we could change
10713 the
10714 <a href="http://tools.ietf.org/html/draft-ietf-dhc-ldap-schema-00">DHCP
10715 schema</a> to solve at least part of the problem with the LDAP schemas
10716 available today from IETF.</p>
10717
10718 <pre>
10719 --- dhcp.schema (revision 65192)
10720 +++ dhcp.schema (working copy)
10721 @@ -376,7 +376,7 @@
10722 objectclass ( 2.16.840.1.113719.1.203.6.6
10723 NAME 'dhcpHost'
10724 DESC 'This represents information about a particular client'
10725 - SUP top
10726 + SUP top AUXILIARY
10727 MUST cn
10728 MAY (dhcpLeaseDN $ dhcpHWAddress $ dhcpOptionsDN $ dhcpStatements $ dhcpComments $ dhcpOption)
10729 X-NDS_CONTAINMENT ('dhcpService' 'dhcpSubnet' 'dhcpGroup') )
10730 </pre>
10731
10732 <p>I very much welcome clues on how to do this properly for Debian
10733 Edu/Squeeze. We provide the DHCP schema in our debian-edu-config
10734 package, and should thus be free to rewrite it as we see fit.</p>
10735
10736 <p>If you want to help out with implementing this for Debian Edu,
10737 please contact us on debian-edu@lists.debian.org.</p>
10738
10739 </div>
10740 <div class="tags">
10741
10742
10743 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>.
10744
10745
10746 </div>
10747 </div>
10748 <div class="padding"></div>
10749
10750 <div class="entry">
10751 <div class="title">
10752 <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>
10753 </div>
10754 <div class="date">
10755 16th June 2010
10756 </div>
10757 <div class="body">
10758 <p>A few times I have had the need to simulate the way tasksel
10759 installs packages during the normal debian-installer run. Until now,
10760 I have ended up letting tasksel do the work, with the annoying problem
10761 of not getting any feedback at all when something fails (like a
10762 conffile question from dpkg or a download that fails), using code like
10763 this:
10764
10765 <blockquote><pre>
10766 export DEBIAN_FRONTEND=noninteractive
10767 tasksel --new-install
10768 </pre></blockquote>
10769
10770 This would invoke tasksel, let its automatic task selection pick the
10771 tasks to install, and continue to install the requested tasks without
10772 any output what so ever.
10773
10774 Recently I revisited this problem while working on the automatic
10775 package upgrade testing, because tasksel would some times hang without
10776 any useful feedback, and I want to see what is going on when it
10777 happen. Then it occured to me, I can parse the output from tasksel
10778 when asked to run in test mode, and use that aptitude command line
10779 printed by tasksel then to simulate the tasksel run. I ended up using
10780 code like this:
10781
10782 <blockquote><pre>
10783 export DEBIAN_FRONTEND=noninteractive
10784 cmd="$(in_target tasksel -t --new-install | sed 's/debconf-apt-progress -- //')"
10785 $cmd
10786 </pre></blockquote>
10787
10788 <p>The content of $cmd is typically something like "<tt>aptitude -q
10789 --without-recommends -o APT::Install-Recommends=no -y install
10790 ~t^desktop$ ~t^gnome-desktop$ ~t^laptop$ ~pstandard ~prequired
10791 ~pimportant</tt>", which will install the gnome desktop task, the
10792 laptop task and all packages with priority standard , required and
10793 important, just like tasksel would have done it during
10794 installation.</p>
10795
10796 <p>A better approach is probably to extend tasksel to be able to
10797 install packages without using debconf-apt-progress, for use cases
10798 like this.</p>
10799
10800 </div>
10801 <div class="tags">
10802
10803
10804 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>.
10805
10806
10807 </div>
10808 </div>
10809 <div class="padding"></div>
10810
10811 <div class="entry">
10812 <div class="title">
10813 <a href="http://people.skolelinux.org/pere/blog/Officeshots_taking_shape.html">Officeshots taking shape</a>
10814 </div>
10815 <div class="date">
10816 13th June 2010
10817 </div>
10818 <div class="body">
10819 <p>For those of us caring about document exchange and
10820 interoperability, <a href="http://www.officeshots.org/">OfficeShots</a>
10821 is a great service. It is to ODF documents what
10822 <a href="http://browsershots.org/">BrowserShots</a> is for web
10823 pages.</p>
10824
10825 <p>A while back, I was contacted by Knut Yrvin at the part of Nokia
10826 that used to be Trolltech, who wanted to help the OfficeShots project
10827 and wondered if the University of Oslo where I work would be
10828 interested in supporting the project. I helped him to navigate his
10829 request to the right people at work, and his request was answered with
10830 a spot in the machine room with power and network connected, and Knut
10831 arranged funding for a machine to fill the spot. The machine is
10832 administrated by the OfficeShots people, so I do not have daily
10833 contact with its progress, and thus from time to time check back to
10834 see how the project is doing.</p>
10835
10836 <p>Today I had a look, and was happy to see that the Dell box in our
10837 machine room now is the host for several virtual machines running as
10838 OfficeShots factories, and the project is able to render ODF documents
10839 in 17 different document processing implementation on Linux and
10840 Windows. This is great.</p>
10841
10842 </div>
10843 <div class="tags">
10844
10845
10846 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>.
10847
10848
10849 </div>
10850 </div>
10851 <div class="padding"></div>
10852
10853 <div class="entry">
10854 <div class="title">
10855 <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>
10856 </div>
10857 <div class="date">
10858 13th June 2010
10859 </div>
10860 <div class="body">
10861 <p>My
10862 <a href="http://people.skolelinux.org/pere/blog/Automatic_upgrade_testing_from_Lenny_to_Squeeze.html">testing
10863 of Debian upgrades</a> from Lenny to Squeeze continues, and I've
10864 finally made the upgrade logs available from
10865 <a href="http://people.skolelinux.org/pere/debian-upgrade-testing/">http://people.skolelinux.org/pere/debian-upgrade-testing/</a>.
10866 I am now testing dist-upgrade of Gnome and KDE in a chroot using both
10867 apt and aptitude, and found their differences interesting. This time
10868 I will only focus on their removal plans.</p>
10869
10870 <p>After installing a Gnome desktop and the laptop task, apt-get wants
10871 to remove 72 packages when dist-upgrading from Lenny to Squeeze. The
10872 surprising part is that it want to remove xorg and all
10873 xserver-xorg-video* drivers. Clearly not a good choice, but I am not
10874 sure why. When asking aptitude to do the same, it want to remove 129
10875 packages, but most of them are library packages I suspect are no
10876 longer needed. Both of them want to remove bluetooth packages, which
10877 I do not know. Perhaps these bluetooth packages are obsolete?</p>
10878
10879 <p>For KDE, apt-get want to remove 82 packages, among them kdebase
10880 which seem like a bad idea and xorg the same way as with Gnome. Asking
10881 aptitude for the same, it wants to remove 192 packages, none which are
10882 too surprising.</p>
10883
10884 <p>I guess the removal of xorg during upgrades should be investigated
10885 and avoided, and perhaps others as well. Here are the complete list
10886 of planned removals. The complete logs is available from the URL
10887 above. Note if you want to repeat these tests, that the upgrade test
10888 for kde+apt-get hung in the tasksel setup because of dpkg asking
10889 conffile questions. No idea why. I worked around it by using
10890 '<tt>echo >> /proc/<em>pidofdpkg</em>/fd/0</tt>' to tell dpkg to
10891 continue.</p>
10892
10893 <p><b>apt-get gnome 72</b>
10894 <br>bluez-gnome cupsddk-drivers deskbar-applet gnome
10895 gnome-desktop-environment gnome-network-admin gtkhtml3.14
10896 iceweasel-gnome-support libavcodec51 libdatrie0 libgdl-1-0
10897 libgnomekbd2 libgnomekbdui2 libmetacity0 libslab0 libxcb-xlib0
10898 nautilus-cd-burner python-gnome2-desktop python-gnome2-extras
10899 serpentine swfdec-mozilla update-manager xorg xserver-xorg
10900 xserver-xorg-core xserver-xorg-input-all xserver-xorg-input-evdev
10901 xserver-xorg-input-kbd xserver-xorg-input-mouse
10902 xserver-xorg-input-synaptics xserver-xorg-input-wacom
10903 xserver-xorg-video-all xserver-xorg-video-apm xserver-xorg-video-ark
10904 xserver-xorg-video-ati xserver-xorg-video-chips
10905 xserver-xorg-video-cirrus xserver-xorg-video-cyrix
10906 xserver-xorg-video-dummy xserver-xorg-video-fbdev
10907 xserver-xorg-video-glint xserver-xorg-video-i128
10908 xserver-xorg-video-i740 xserver-xorg-video-imstt
10909 xserver-xorg-video-intel xserver-xorg-video-mach64
10910 xserver-xorg-video-mga xserver-xorg-video-neomagic
10911 xserver-xorg-video-nsc xserver-xorg-video-nv
10912 xserver-xorg-video-openchrome xserver-xorg-video-r128
10913 xserver-xorg-video-radeon xserver-xorg-video-radeonhd
10914 xserver-xorg-video-rendition xserver-xorg-video-s3
10915 xserver-xorg-video-s3virge xserver-xorg-video-savage
10916 xserver-xorg-video-siliconmotion xserver-xorg-video-sis
10917 xserver-xorg-video-sisusb xserver-xorg-video-tdfx
10918 xserver-xorg-video-tga xserver-xorg-video-trident
10919 xserver-xorg-video-tseng xserver-xorg-video-v4l
10920 xserver-xorg-video-vesa xserver-xorg-video-vga
10921 xserver-xorg-video-vmware xserver-xorg-video-voodoo xulrunner-1.9
10922 xulrunner-1.9-gnome-support</p>
10923
10924 <p><b>aptitude gnome 129</b>
10925
10926 <br>bluez-gnome bluez-utils cpp-4.3 cupsddk-drivers dhcdbd
10927 djvulibre-desktop finger gnome-app-install gnome-mount
10928 gnome-network-admin gnome-spell gnome-vfs-obexftp
10929 gnome-volume-manager gstreamer0.10-gnomevfs gtkhtml3.14 libao2
10930 libavahi-compat-libdnssd1 libavahi-core5 libavcodec51 libbluetooth2
10931 libcamel1.2-11 libcdio7 libcucul0 libcupsys2 libcurl3 libdatrie0
10932 libdirectfb-1.0-0 libdvdread3 libedataserver1.2-9 libeel2-2.20
10933 libeel2-data libepc-1.0-1 libepc-ui-1.0-1 libfaad0 libgail-common
10934 libgd2-noxpm libgda3-3 libgda3-common libgdl-1-0 libgdl-1-common
10935 libggz2 libggzcore9 libggzmod4 libgksu1.2-0 libgksuui1.0-1 libgmyth0
10936 libgnomecups1.0-1 libgnomekbd2 libgnomekbdui2 libgnomeprint2.2-0
10937 libgnomeprint2.2-data libgnomeprintui2.2-0 libgnomeprintui2.2-common
10938 libgnomevfs2-bin libgpod3 libgraphviz4 libgtkhtml2-0
10939 libgtksourceview-common libgtksourceview1.0-0 libgucharmap6
10940 libhesiod0 libicu38 libiw29 libkpathsea4 libltdl3 libmagick++10
10941 libmagick10 libmalaga7 libmetacity0 libmtp7 libmysqlclient15off
10942 libnautilus-burn4 libneon27 libnm-glib0 libnm-util0 libopal-2.2
10943 libosp5 libparted1.8-10 libpoppler-glib3 libpoppler3 libpt-1.10.10
10944 libpt-1.10.10-plugins-alsa libpt-1.10.10-plugins-v4l libraw1394-8
10945 libsensors3 libslab0 libsmbios2 libsoup2.2-8 libssh2-1
10946 libsuitesparse-3.1.0 libswfdec-0.6-90 libtalloc1 libtotem-plparser10
10947 libtrackerclient0 libxalan2-java libxalan2-java-gcj libxcb-xlib0
10948 libxerces2-java libxerces2-java-gcj libxklavier12 libxtrap6
10949 libxxf86misc1 libzephyr3 mysql-common nautilus-cd-burner
10950 openoffice.org-writer2latex openssl-blacklist p7zip
10951 python-4suite-xml python-eggtrayicon python-gnome2-desktop
10952 python-gnome2-extras python-gtkhtml2 python-gtkmozembed
10953 python-numeric python-sexy serpentine svgalibg1 swfdec-gnome
10954 swfdec-mozilla totem-gstreamer update-manager wodim
10955 xserver-xorg-video-cyrix xserver-xorg-video-imstt
10956 xserver-xorg-video-nsc xserver-xorg-video-v4l xserver-xorg-video-vga
10957 zip</p>
10958
10959 <p><b>apt-get kde 82</b>
10960
10961 <br>cupsddk-drivers karm kaudiocreator kcoloredit kcontrol kde kde-core
10962 kdeaddons kdeartwork kdebase kdebase-bin kdebase-bin-kde3
10963 kdebase-kio-plugins kdesktop kdeutils khelpcenter kicker
10964 kicker-applets knewsticker kolourpaint konq-plugins konqueror korn
10965 kpersonalizer kscreensaver ksplash libavcodec51 libdatrie0 libkiten1
10966 libxcb-xlib0 quanta superkaramba texlive-base-bin xorg xserver-xorg
10967 xserver-xorg-core xserver-xorg-input-all xserver-xorg-input-evdev
10968 xserver-xorg-input-kbd xserver-xorg-input-mouse
10969 xserver-xorg-input-synaptics xserver-xorg-input-wacom
10970 xserver-xorg-video-all xserver-xorg-video-apm xserver-xorg-video-ark
10971 xserver-xorg-video-ati xserver-xorg-video-chips
10972 xserver-xorg-video-cirrus xserver-xorg-video-cyrix
10973 xserver-xorg-video-dummy xserver-xorg-video-fbdev
10974 xserver-xorg-video-glint xserver-xorg-video-i128
10975 xserver-xorg-video-i740 xserver-xorg-video-imstt
10976 xserver-xorg-video-intel xserver-xorg-video-mach64
10977 xserver-xorg-video-mga xserver-xorg-video-neomagic
10978 xserver-xorg-video-nsc xserver-xorg-video-nv
10979 xserver-xorg-video-openchrome xserver-xorg-video-r128
10980 xserver-xorg-video-radeon xserver-xorg-video-radeonhd
10981 xserver-xorg-video-rendition xserver-xorg-video-s3
10982 xserver-xorg-video-s3virge xserver-xorg-video-savage
10983 xserver-xorg-video-siliconmotion xserver-xorg-video-sis
10984 xserver-xorg-video-sisusb xserver-xorg-video-tdfx
10985 xserver-xorg-video-tga xserver-xorg-video-trident
10986 xserver-xorg-video-tseng xserver-xorg-video-v4l
10987 xserver-xorg-video-vesa xserver-xorg-video-vga
10988 xserver-xorg-video-vmware xserver-xorg-video-voodoo xulrunner-1.9</p>
10989
10990 <p><b>aptitude kde 192</b>
10991 <br>bluez-utils cpp-4.3 cupsddk-drivers cvs dcoprss dhcdbd
10992 djvulibre-desktop dosfstools eyesapplet fifteenapplet finger gettext
10993 ghostscript-x imlib-base imlib11 indi kandy karm kasteroids
10994 kaudiocreator kbackgammon kbstate kcoloredit kcontrol kcron kdat
10995 kdeadmin-kfile-plugins kdeartwork-misc kdeartwork-theme-window
10996 kdebase-bin-kde3 kdebase-kio-plugins kdeedu-data
10997 kdegraphics-kfile-plugins kdelirc kdemultimedia-kappfinder-data
10998 kdemultimedia-kfile-plugins kdenetwork-kfile-plugins
10999 kdepim-kfile-plugins kdepim-kio-plugins kdeprint kdesktop kdessh
11000 kdict kdnssd kdvi kedit keduca kenolaba kfax kfaxview kfouleggs
11001 kghostview khelpcenter khexedit kiconedit kitchensync klatin
11002 klickety kmailcvt kmenuedit kmid kmilo kmoon kmrml kodo kolourpaint
11003 kooka korn kpager kpdf kpercentage kpf kpilot kpoker kpovmodeler
11004 krec kregexpeditor ksayit ksim ksirc ksirtet ksmiletris ksmserver
11005 ksnake ksokoban ksplash ksvg ksysv ktip ktnef kuickshow kverbos
11006 kview kviewshell kvoctrain kwifimanager kwin kwin4 kworldclock
11007 kxsldbg libakode2 libao2 libarts1-akode libarts1-audiofile
11008 libarts1-mpeglib libarts1-xine libavahi-compat-libdnssd1
11009 libavahi-core5 libavc1394-0 libavcodec51 libbluetooth2
11010 libboost-python1.34.1 libcucul0 libcurl3 libcvsservice0 libdatrie0
11011 libdirectfb-1.0-0 libdjvulibre21 libdvdread3 libfaad0 libfreebob0
11012 libgail-common libgd2-noxpm libgraphviz4 libgsmme1c2a libgtkhtml2-0
11013 libicu38 libiec61883-0 libindex0 libiw29 libk3b3 libkcal2b libkcddb1
11014 libkdeedu3 libkdepim1a libkgantt0 libkiten1 libkleopatra1 libkmime2
11015 libkpathsea4 libkpimexchange1 libkpimidentities1 libkscan1
11016 libksieve0 libktnef1 liblockdev1 libltdl3 libmagick10 libmimelib1c2a
11017 libmozjs1d libmpcdec3 libneon27 libnm-util0 libopensync0 libpisock9
11018 libpoppler-glib3 libpoppler-qt2 libpoppler3 libraw1394-8 libsmbios2
11019 libssh2-1 libsuitesparse-3.1.0 libtalloc1 libtiff-tools
11020 libxalan2-java libxalan2-java-gcj libxcb-xlib0 libxerces2-java
11021 libxerces2-java-gcj libxtrap6 mpeglib networkstatus
11022 openoffice.org-writer2latex pmount poster psutils quanta quanta-data
11023 superkaramba svgalibg1 tex-common texlive-base texlive-base-bin
11024 texlive-common texlive-doc-base texlive-fonts-recommended
11025 xserver-xorg-video-cyrix xserver-xorg-video-imstt
11026 xserver-xorg-video-nsc xserver-xorg-video-v4l xserver-xorg-video-vga
11027 xulrunner-1.9</p>
11028
11029
11030 </div>
11031 <div class="tags">
11032
11033
11034 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>.
11035
11036
11037 </div>
11038 </div>
11039 <div class="padding"></div>
11040
11041 <div class="entry">
11042 <div class="title">
11043 <a href="http://people.skolelinux.org/pere/blog/Automatic_upgrade_testing_from_Lenny_to_Squeeze.html">Automatic upgrade testing from Lenny to Squeeze</a>
11044 </div>
11045 <div class="date">
11046 11th June 2010
11047 </div>
11048 <div class="body">
11049 <p>The last few days I have done some upgrade testing in Debian, to
11050 see if the upgrade from Lenny to Squeeze will go smoothly. A few bugs
11051 have been discovered and reported in the process
11052 (<a href="http://bugs.debian.org/585410">#585410</a> in nagios3-cgi,
11053 <a href="http://bugs.debian.org/584879">#584879</a> already fixed in
11054 enscript and <a href="http://bugs.debian.org/584861">#584861</a> in
11055 kdebase-workspace-data), and to get a more regular testing going on, I
11056 am working on a script to automate the test.</p>
11057
11058 <p>The idea is to create a Lenny chroot and use tasksel to install a
11059 Gnome or KDE desktop installation inside the chroot before upgrading
11060 it. To ensure no services are started in the chroot, a policy-rc.d
11061 script is inserted. To make sure tasksel believe it is to install a
11062 desktop on a laptop, the tasksel tests are replaced in the chroot
11063 (only acceptable because this is a throw-away chroot).</p>
11064
11065 <p>A naive upgrade from Lenny to Squeeze using aptitude dist-upgrade
11066 currently always fail because udev refuses to upgrade with the kernel
11067 in Lenny, so to avoid that problem the file /etc/udev/kernel-upgrade
11068 is created. The bug report
11069 <a href="http://bugs.debian.org/566000">#566000</a> make me suspect
11070 this problem do not trigger in a chroot, but I touch the file anyway
11071 to make sure the upgrade go well. Testing on virtual and real
11072 hardware have failed me because of udev so far, and creating this file
11073 do the trick in such settings anyway. This is a
11074 <a href="http://www.linuxquestions.org/questions/debian-26/failed-dist-upgrade-due-to-udev-config_sysfs_deprecated-nonsense-804130/">known
11075 issue</a> and the current udev behaviour is intended by the udev
11076 maintainer because he lack the resources to rewrite udev to keep
11077 working with old kernels or something like that. I really wish the
11078 udev upstream would keep udev backwards compatible, to avoid such
11079 upgrade problem, but given that they fail to do so, I guess
11080 documenting the way out of this mess is the best option we got for
11081 Debian Squeeze.</p>
11082
11083 <p>Anyway, back to the task at hand, testing upgrades. This test
11084 script, which I call <tt>upgrade-test</tt> for now, is doing the
11085 trick:</p>
11086
11087 <blockquote><pre>
11088 #!/bin/sh
11089 set -ex
11090
11091 if [ "$1" ] ; then
11092 desktop=$1
11093 else
11094 desktop=gnome
11095 fi
11096
11097 from=lenny
11098 to=squeeze
11099
11100 exec &lt; /dev/null
11101 unset LANG
11102 mirror=http://ftp.skolelinux.org/debian
11103 tmpdir=chroot-$from-upgrade-$to-$desktop
11104 fuser -mv .
11105 debootstrap $from $tmpdir $mirror
11106 chroot $tmpdir aptitude update
11107 cat > $tmpdir/usr/sbin/policy-rc.d &lt;&lt;EOF
11108 #!/bin/sh
11109 exit 101
11110 EOF
11111 chmod a+rx $tmpdir/usr/sbin/policy-rc.d
11112 exit_cleanup() {
11113 umount $tmpdir/proc
11114 }
11115 mount -t proc proc $tmpdir/proc
11116 # Make sure proc is unmounted also on failure
11117 trap exit_cleanup EXIT INT
11118
11119 chroot $tmpdir aptitude -y install debconf-utils
11120
11121 # Make sure tasksel autoselection trigger. It need the test scripts
11122 # to return the correct answers.
11123 echo tasksel tasksel/desktop multiselect $desktop | \
11124 chroot $tmpdir debconf-set-selections
11125
11126 # Include the desktop and laptop task
11127 for test in desktop laptop ; do
11128 echo > $tmpdir/usr/lib/tasksel/tests/$test &lt;&lt;EOF
11129 #!/bin/sh
11130 exit 2
11131 EOF
11132 chmod a+rx $tmpdir/usr/lib/tasksel/tests/$test
11133 done
11134
11135 DEBIAN_FRONTEND=noninteractive
11136 DEBIAN_PRIORITY=critical
11137 export DEBIAN_FRONTEND DEBIAN_PRIORITY
11138 chroot $tmpdir tasksel --new-install
11139
11140 echo deb $mirror $to main > $tmpdir/etc/apt/sources.list
11141 chroot $tmpdir aptitude update
11142 touch $tmpdir/etc/udev/kernel-upgrade
11143 chroot $tmpdir aptitude -y dist-upgrade
11144 fuser -mv
11145 </pre></blockquote>
11146
11147 <p>I suspect it would be useful to test upgrades with both apt-get and
11148 with aptitude, but I have not had time to look at how they behave
11149 differently so far. I hope to get a cron job running to do the test
11150 regularly and post the result on the web. The Gnome upgrade currently
11151 work, while the KDE upgrade fail because of the bug in
11152 kdebase-workspace-data</p>
11153
11154 <p>I am not quite sure what kind of extract from the huge upgrade logs
11155 (KDE 167 KiB, Gnome 516 KiB) it make sense to include in this blog
11156 post, so I will refrain from trying. I can report that for Gnome,
11157 aptitude report 760 packages upgraded, 448 newly installed, 129 to
11158 remove and 1 not upgraded and 1024MB need to be downloaded while for
11159 KDE the same numbers are 702 packages upgraded, 507 newly installed,
11160 193 to remove and 0 not upgraded and 1117MB need to be downloaded</p>
11161
11162 <p>I am very happy to notice that the Gnome desktop + laptop upgrade
11163 is able to migrate to dependency based boot sequencing and parallel
11164 booting without a hitch. Was unsure if there were still bugs with
11165 packages failing to clean up their obsolete init.d script during
11166 upgrades, and no such problem seem to affect the Gnome desktop+laptop
11167 packages.</p>
11168
11169 </div>
11170 <div class="tags">
11171
11172
11173 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>.
11174
11175
11176 </div>
11177 </div>
11178 <div class="padding"></div>
11179
11180 <div class="entry">
11181 <div class="title">
11182 <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>
11183 </div>
11184 <div class="date">
11185 6th June 2010
11186 </div>
11187 <div class="body">
11188 <p>If Debian is to migrate to upstart on Linux, I expect some init.d
11189 scripts to migrate (some of) their operations to upstart job while
11190 keeping the init.d for hurd and kfreebsd. The packages with such
11191 needs will need a way to get their init.d scripts to behave
11192 differently when used with sysvinit and with upstart. Because of
11193 this, I had a look at the environment variables set when a init.d
11194 script is running under upstart, and when it is not.</p>
11195
11196 <p>With upstart, I notice these environment variables are set when a
11197 script is started from rcS.d/ (ignoring some irrelevant ones like
11198 COLUMNS):</p>
11199
11200 <blockquote><pre>
11201 DEFAULT_RUNLEVEL=2
11202 previous=N
11203 PREVLEVEL=
11204 RUNLEVEL=
11205 runlevel=S
11206 UPSTART_EVENTS=startup
11207 UPSTART_INSTANCE=
11208 UPSTART_JOB=rc-sysinit
11209 </pre></blockquote>
11210
11211 <p>With sysvinit, these environment variables are set for the same
11212 script.</p>
11213
11214 <blockquote><pre>
11215 INIT_VERSION=sysvinit-2.88
11216 previous=N
11217 PREVLEVEL=N
11218 RUNLEVEL=S
11219 runlevel=S
11220 </pre></blockquote>
11221
11222 <p>The RUNLEVEL and PREVLEVEL environment variables passed on from
11223 sysvinit are not set by upstart. Not sure if it is intentional or not
11224 to not be compatible with sysvinit in this regard.</p>
11225
11226 <p>For scripts needing to behave differently when upstart is used,
11227 looking for the UPSTART_JOB environment variable seem to be a good
11228 choice.</p>
11229
11230 </div>
11231 <div class="tags">
11232
11233
11234 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>.
11235
11236
11237 </div>
11238 </div>
11239 <div class="padding"></div>
11240
11241 <div class="entry">
11242 <div class="title">
11243 <a href="http://people.skolelinux.org/pere/blog/A_manual_for_standards_wars___.html">A manual for standards wars...</a>
11244 </div>
11245 <div class="date">
11246 6th June 2010
11247 </div>
11248 <div class="body">
11249 <p>Via the
11250 <a href="http://feedproxy.google.com/~r/robweir/antic-atom/~3/QzU4RgoAGMg/weekly-links-10.html">blog
11251 of Rob Weir</a> I came across the very interesting essay named
11252 <a href="http://faculty.haas.berkeley.edu/shapiro/wars.pdf">The Art of
11253 Standards Wars</a> (PDF 25 pages). I recommend it for everyone
11254 following the standards wars of today.</p>
11255
11256 </div>
11257 <div class="tags">
11258
11259
11260 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>.
11261
11262
11263 </div>
11264 </div>
11265 <div class="padding"></div>
11266
11267 <div class="entry">
11268 <div class="title">
11269 <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>
11270 </div>
11271 <div class="date">
11272 3rd June 2010
11273 </div>
11274 <div class="body">
11275 <p>When using sitesummary at a site to track machines, it is possible
11276 to get a list of the machine types in use thanks to the DMI
11277 information extracted from each machine. The script to do so is
11278 included in the sitesummary package, and here is example output from
11279 the Skolelinux build servers:</p>
11280
11281 <blockquote><pre>
11282 maintainer:~# /usr/lib/sitesummary/hardware-model-summary
11283 vendor count
11284 Dell Computer Corporation 1
11285 PowerEdge 1750 1
11286 IBM 1
11287 eserver xSeries 345 -[8670M1X]- 1
11288 Intel 2
11289 [no-dmi-info] 3
11290 maintainer:~#
11291 </pre></blockquote>
11292
11293 <p>The quality of the report depend on the quality of the DMI tables
11294 provided in each machine. Here there are Intel machines without model
11295 information listed with Intel as vendor and no model, and virtual Xen
11296 machines listed as [no-dmi-info]. One can add -l as a command line
11297 option to list the individual machines.</p>
11298
11299 <p>A larger list is
11300 <a href="http://narvikskolen.no/sitesummary/">available from the the
11301 city of Narvik</a>, which uses Skolelinux on all their shools and also
11302 provide the basic sitesummary report publicly. In their report there
11303 are ~1400 machines. I know they use both Ubuntu and Skolelinux on
11304 their machines, and as sitesummary is available in both distributions,
11305 it is trivial to get all of them to report to the same central
11306 collector.</p>
11307
11308 </div>
11309 <div class="tags">
11310
11311
11312 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>.
11313
11314
11315 </div>
11316 </div>
11317 <div class="padding"></div>
11318
11319 <div class="entry">
11320 <div class="title">
11321 <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>
11322 </div>
11323 <div class="date">
11324 1st June 2010
11325 </div>
11326 <div class="body">
11327 <p>It is strange to watch how a bug in Debian causing KDM to fail to
11328 start at boot when an NVidia video card is used is handled. The
11329 problem seem to be that the nvidia X.org driver uses a long time to
11330 initialize, and this duration is longer than kdm is configured to
11331 wait.</p>
11332
11333 <p>I came across two bugs related to this issue,
11334 <a href="http://bugs.debian.org/583312">#583312</a> initially filed
11335 against initscripts and passed on to nvidia-glx when it became obvious
11336 that the nvidia drivers were involved, and
11337 <a href="http://bugs.debian.org/524751">#524751</a> initially filed against
11338 kdm and passed on to src:nvidia-graphics-drivers for unknown reasons.</p>
11339
11340 <p>To me, it seem that no-one is interested in actually solving the
11341 problem nvidia video card owners experience and make sure the Debian
11342 distribution work out of the box for these users. The nvidia driver
11343 maintainers expect kdm to be set up to wait longer, while kdm expect
11344 the nvidia driver maintainers to fix the driver to start faster, and
11345 while they wait for each other I guess the users end up switching to a
11346 distribution that work for them. I have no idea what the solution is,
11347 but I am pretty sure that waiting for each other is not it.</p>
11348
11349 <p>I wonder why we end up handling bugs this way.</p>
11350
11351 </div>
11352 <div class="tags">
11353
11354
11355 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>.
11356
11357
11358 </div>
11359 </div>
11360 <div class="padding"></div>
11361
11362 <div class="entry">
11363 <div class="title">
11364 <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>
11365 </div>
11366 <div class="date">
11367 27th May 2010
11368 </div>
11369 <div class="body">
11370 <p>A few days ago, parallel booting was enabled in Debian/testing.
11371 The feature seem to hold up pretty well, but three fairly serious
11372 issues are known and should be solved:
11373
11374 <p><ul>
11375
11376 <li>The wicd package seen to
11377 <a href="http://bugs.debian.org/508289">break NFS mounting</a> and
11378 <a href="http://bugs.debian.org/581586">network setup</a> when
11379 parallel booting is enabled. No idea why, but the wicd maintainer
11380 seem to be on the case.</li>
11381
11382 <li>The nvidia X driver seem to
11383 <a href="http://bugs.debian.org/583312">have a race condition</a>
11384 triggered more easily when parallel booting is in effect. The
11385 maintainer is on the case.</li>
11386
11387 <li>The sysv-rc package fail to properly enable dependency based boot
11388 sequencing (the shutdown is broken) when old file-rc users
11389 <a href="http://bugs.debian.org/575080">try to switch back</a> to
11390 sysv-rc. One way to solve it would be for file-rc to create
11391 /etc/init.d/.legacy-bootordering, and another is to try to make
11392 sysv-rc more robust. Will investigate some more and probably upload a
11393 workaround in sysv-rc to help those trying to move from file-rc to
11394 sysv-rc get a working shutdown.</li>
11395
11396 </ul></p>
11397
11398 <p>All in all not many surprising issues, and all of them seem
11399 solvable before Squeeze is released. In addition to these there are
11400 some packages with bugs in their dependencies and run level settings,
11401 which I expect will be fixed in a reasonable time span.</p>
11402
11403 <p>If you report any problems with dependencies in init.d scripts to
11404 the BTS, please usertag the report to get it to show up at
11405 <a href="http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=initscripts-ng-devel@lists.alioth.debian.org">the
11406 list of usertagged bugs related to this</a>.</p>
11407
11408 <p>Update: Correct bug number to file-rc issue.</p>
11409
11410 </div>
11411 <div class="tags">
11412
11413
11414 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>.
11415
11416
11417 </div>
11418 </div>
11419 <div class="padding"></div>
11420
11421 <div class="entry">
11422 <div class="title">
11423 <a href="http://people.skolelinux.org/pere/blog/More_flexible_firmware_handling_in_debian_installer.html">More flexible firmware handling in debian-installer</a>
11424 </div>
11425 <div class="date">
11426 22nd May 2010
11427 </div>
11428 <div class="body">
11429 <p>After a long break from debian-installer development, I finally
11430 found time today to return to the project. Having to spend less time
11431 working dependency based boot in debian, as it is almost complete now,
11432 definitely helped freeing some time.</p>
11433
11434 <p>A while back, I ran into a problem while working on Debian Edu. We
11435 include some firmware packages on the Debian Edu CDs, those needed to
11436 get disk and network controllers working. Without having these
11437 firmware packages available during installation, it is impossible to
11438 install Debian Edu on the given machine, and because our target group
11439 are non-technical people, asking them to provide firmware packages on
11440 an external medium is a support pain. Initially, I expected it to be
11441 enough to include the firmware packages on the CD to get
11442 debian-installer to find and use them. This proved to be wrong.
11443 Next, I hoped it was enough to symlink the relevant firmware packages
11444 to some useful location on the CD (tried /cdrom/ and
11445 /cdrom/firmware/). This also proved to not work, and at this point I
11446 found time to look at the debian-installer code to figure out what was
11447 going to work.</p>
11448
11449 <p>The firmware loading code is in the hw-detect package, and a closer
11450 look revealed that it would only look for firmware packages outside
11451 the installation media, so the CD was never checked for firmware
11452 packages. It would only check USB sticks, floppies and other
11453 "external" media devices. Today I changed it to also look in the
11454 /cdrom/firmware/ directory on the mounted CD or DVD, which should
11455 solve the problem I ran into with Debian edu. I also changed it to
11456 look in /firmware/, to make sure the installer also find firmware
11457 provided in the initrd when booting the installer via PXE, to allow us
11458 to provide the same feature in the PXE setup included in Debian
11459 Edu.</p>
11460
11461 <p>To make sure firmware deb packages with a license questions are not
11462 activated without asking if the license is accepted, I extended
11463 hw-detect to look for preinst scripts in the firmware packages, and
11464 run these before activating the firmware during installation. The
11465 license question is asked using debconf in the preinst, so this should
11466 solve the issue for the firmware packages I have looked at so far.</p>
11467
11468 <p>If you want to discuss the details of these features, please
11469 contact us on debian-boot@lists.debian.org.</p>
11470
11471 </div>
11472 <div class="tags">
11473
11474
11475 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>.
11476
11477
11478 </div>
11479 </div>
11480 <div class="padding"></div>
11481
11482 <div class="entry">
11483 <div class="title">
11484 <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>
11485 </div>
11486 <div class="date">
11487 19th May 2010
11488 </div>
11489 <div class="body">
11490 <p>Today, the last piece of the puzzle for roaming laptops in Debian
11491 Edu finally entered the Debian archive. Today, the new
11492 <a href="http://packages.qa.debian.org/libp/libpam-mklocaluser.html">libpam-mklocaluser</a>
11493 package was accepted. Two days ago, two other pieces was accepted
11494 into unstable. The
11495 <a href="http://packages.qa.debian.org/p/pam-python.html">pam-python</a>
11496 package needed by libpam-mklocaluser, and the
11497 <a href="http://packages.qa.debian.org/s/sssd.html">sssd</a> package
11498 passed NEW on Monday. In addition, the
11499 <a href="http://packages.qa.debian.org/libp/libpam-ccreds.html">libpam-ccreds</a>
11500 package we need is in experimental (version 10-4) since Saturday, and
11501 hopefully will be moved to unstable soon.</p>
11502
11503 <p>This collection of packages allow for two different setups for
11504 roaming laptops. The traditional setup would be using libpam-ccreds,
11505 nscd and libpam-mklocaluser with LDAP or Kerberos authentication,
11506 which should work out of the box if the configuration changes proposed
11507 for nscd in <a href="http://bugs.debian.org/485282">BTS report
11508 #485282</a> is implemented. The alternative setup is to use sssd with
11509 libpam-mklocaluser to connect to LDAP or Kerberos and let sssd take
11510 care of the caching of passwords and group information.</p>
11511
11512 <p>I have so far been unable to get sssd to work with the LDAP server
11513 at the University, but suspect the issue is some SSL/GnuTLS related
11514 problem with the server certificate. I plan to update the Debian
11515 package to version 1.2, which is scheduled for next week, and hope to
11516 find time to make sure the next release will include both the
11517 Debian/Ubuntu specific patches. Upstream is friendly and responsive,
11518 and I am sure we will find a good solution.</p>
11519
11520 <p>The idea is to set up the roaming laptops to authenticate using
11521 LDAP or Kerberos and create a local user with home directory in /home/
11522 when a usre in LDAP logs in via KDM or GDM for the first time, and
11523 cache the password for offline checking, as well as caching group
11524 memberhips and other relevant LDAP information. The
11525 libpam-mklocaluser package was created to make sure the local home
11526 directory is in /home/, instead of /site/server/directory/ which would
11527 be the home directory if pam_mkhomedir was used. To avoid confusion
11528 with support requests and configuration, we do not want local laptops
11529 to have users in a path that is used for the same users home directory
11530 on the home directory servers.</p>
11531
11532 <p>One annoying problem with gdm is that it do not show the PAM
11533 message passed to the user from libpam-mklocaluser when the local user
11534 is created. Instead gdm simply reject the login with some generic
11535 message. The message is shown in kdm, ssh and login, so I guess it is
11536 a bug in gdm. Have not investigated if there is some other message
11537 type that can be used instead to get gdm to also show the message.</p>
11538
11539 <p>If you want to help out with implementing this for Debian Edu,
11540 please contact us on debian-edu@lists.debian.org.</p>
11541
11542 </div>
11543 <div class="tags">
11544
11545
11546 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>.
11547
11548
11549 </div>
11550 </div>
11551 <div class="padding"></div>
11552
11553 <div class="entry">
11554 <div class="title">
11555 <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>
11556 </div>
11557 <div class="date">
11558 14th May 2010
11559 </div>
11560 <div class="body">
11561 <p>Since this evening, parallel booting is the default in
11562 Debian/unstable for machines using dependency based boot sequencing.
11563 Apparently the testing of concurrent booting has been wider than
11564 expected, if I am to believe the
11565 <a href="http://lists.debian.org/debian-devel/2010/05/msg00122.html">input
11566 on debian-devel@</a>, and I concluded a few days ago to move forward
11567 with the feature this weekend, to give us some time to detect any
11568 remaining problems before Squeeze is frozen. If serious problems are
11569 detected, it is simple to change the default back to sequential boot.
11570 The upload of the new sysvinit package also activate a new upstream
11571 version.</p>
11572
11573 More information about
11574 <a href="http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot">dependency
11575 based boot sequencing</a> is available from the Debian wiki. It is
11576 currently possible to disable parallel booting when one run into
11577 problems caused by it, by adding this line to /etc/default/rcS:</p>
11578
11579 <blockquote><pre>
11580 CONCURRENCY=none
11581 </pre></blockquote>
11582
11583 <p>If you report any problems with dependencies in init.d scripts to
11584 the BTS, please usertag the report to get it to show up at
11585 <a href="http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=initscripts-ng-devel@lists.alioth.debian.org">the
11586 list of usertagged bugs related to this</a>.</p>
11587
11588 </div>
11589 <div class="tags">
11590
11591
11592 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>.
11593
11594
11595 </div>
11596 </div>
11597 <div class="padding"></div>
11598
11599 <div class="entry">
11600 <div class="title">
11601 <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>
11602 </div>
11603 <div class="date">
11604 14th May 2010
11605 </div>
11606 <div class="body">
11607 <p>In the recent Debian Edu versions, the
11608 <a href="http://wiki.debian.org/DebianEdu/HowTo/SiteSummary">sitesummary
11609 system</a> is used to keep track of the machines in the school
11610 network. Each machine will automatically report its status to the
11611 central server after boot and once per night. The network setup is
11612 also reported, and using this information it is possible to get the
11613 MAC address of all network interfaces in the machines. This is useful
11614 to update the DHCP configuration.</p>
11615
11616 <p>To give some idea how to use sitesummary, here is a one-liner to
11617 ist all MAC addresses of all machines reporting to sitesummary. Run
11618 this on the collector host:</p>
11619
11620 <blockquote><pre>
11621 perl -MSiteSummary -e 'for_all_hosts(sub { print join(" ", get_macaddresses(shift)), "\n"; });'
11622 </pre></blockquote>
11623
11624 <p>This will list all MAC addresses assosiated with all machine, one
11625 line per machine and with space between the MAC addresses.</p>
11626
11627 <p>To allow system administrators easier job at adding static DHCP
11628 addresses for hosts, it would be possible to extend this to fetch
11629 machine information from sitesummary and update the DHCP and DNS
11630 tables in LDAP using this information. Such tool is unfortunately not
11631 written yet.</p>
11632
11633 </div>
11634 <div class="tags">
11635
11636
11637 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>.
11638
11639
11640 </div>
11641 </div>
11642 <div class="padding"></div>
11643
11644 <div class="entry">
11645 <div class="title">
11646 <a href="http://people.skolelinux.org/pere/blog/systemd__an_interesting_alternative_to_upstart.html">systemd, an interesting alternative to upstart</a>
11647 </div>
11648 <div class="date">
11649 13th May 2010
11650 </div>
11651 <div class="body">
11652 <p>The last few days a new boot system called
11653 <a href="http://www.freedesktop.org/wiki/Software/systemd">systemd</a>
11654 has been
11655 <a href="http://0pointer.de/blog/projects/systemd.html">introduced</a>
11656
11657 to the free software world. I have not yet had time to play around
11658 with it, but it seem to be a very interesting alternative to
11659 <a href="http://upstart.ubuntu.com/">upstart</a>, and might prove to be
11660 a good alternative for Debian when we are able to switch to an event
11661 based boot system. Tollef is
11662 <a href="http://bugs.debian.org/580814">in the process</a> of getting
11663 systemd into Debian, and I look forward to seeing how well it work. I
11664 like the fact that systemd handles init.d scripts with dependency
11665 information natively, allowing them to run in parallel where upstart
11666 at the moment do not.</p>
11667
11668 <p>Unfortunately do systemd have the same problem as upstart regarding
11669 platform support. It only work on recent Linux kernels, and also need
11670 some new kernel features enabled to function properly. This means
11671 kFreeBSD and Hurd ports of Debian will need a port or a different boot
11672 system. Not sure how that will be handled if systemd proves to be the
11673 way forward.</p>
11674
11675 <p>In the mean time, based on the
11676 <a href="http://lists.debian.org/debian-devel/2010/05/msg00122.html">input
11677 on debian-devel@</a> regarding parallel booting in Debian, I have
11678 decided to enable full parallel booting as the default in Debian as
11679 soon as possible (probably this weekend or early next week), to see if
11680 there are any remaining serious bugs in the init.d dependencies. A
11681 new version of the sysvinit package implementing this change is
11682 already in experimental. If all go well, Squeeze will be released
11683 with parallel booting enabled by default.</p>
11684
11685 </div>
11686 <div class="tags">
11687
11688
11689 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>.
11690
11691
11692 </div>
11693 </div>
11694 <div class="padding"></div>
11695
11696 <div class="entry">
11697 <div class="title">
11698 <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>
11699 </div>
11700 <div class="date">
11701 6th May 2010
11702 </div>
11703 <div class="body">
11704 <p>These days, the init.d script dependencies in Squeeze are quite
11705 complete, so complete that it is actually possible to run all the
11706 init.d scripts in parallell based on these dependencies. If you want
11707 to test your Squeeze system, make sure
11708 <a href="http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot">dependency
11709 based boot sequencing</a> is enabled, and add this line to
11710 /etc/default/rcS:</p>
11711
11712 <blockquote><pre>
11713 CONCURRENCY=makefile
11714 </pre></blockquote>
11715
11716 <p>That is it. It will cause sysv-rc to use the startpar tool to run
11717 scripts in parallel using the dependency information stored in
11718 /etc/init.d/.depend.boot, /etc/init.d/.depend.start and
11719 /etc/init.d/.depend.stop to order the scripts. Startpar is configured
11720 to try to start the kdm and gdm scripts as early as possible, and will
11721 start the facilities required by kdm or gdm as early as possible to
11722 make this happen.</p>
11723
11724 <p>Give it a try, and see if you like the result. If some services
11725 fail to start properly, it is most likely because they have incomplete
11726 init.d script dependencies in their startup script (or some of their
11727 dependent scripts have incomplete dependencies). Report bugs and get
11728 the package maintainers to fix it. :)</p>
11729
11730 <p>Running scripts in parallel could be the default in Debian when we
11731 manage to get the init.d script dependencies complete and correct. I
11732 expect we will get there in Squeeze+1, if we get manage to test and
11733 fix the remaining issues.</p>
11734
11735 <p>If you report any problems with dependencies in init.d scripts to
11736 the BTS, please usertag the report to get it to show up at
11737 <a href="http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=initscripts-ng-devel@lists.alioth.debian.org">the
11738 list of usertagged bugs related to this</a>.</p>
11739
11740 </div>
11741 <div class="tags">
11742
11743
11744 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>.
11745
11746
11747 </div>
11748 </div>
11749 <div class="padding"></div>
11750
11751 <div class="entry">
11752 <div class="title">
11753 <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>
11754 </div>
11755 <div class="date">
11756 2nd May 2010
11757 </div>
11758 <div class="body">
11759 <p>One interesting feature in Active Directory, is the ability to
11760 create a new user with an expired password, and thus force the user to
11761 change the password on the first login attempt.</p>
11762
11763 <p>I'm not quite sure how to do that with the LDAP setup in Debian
11764 Edu, but did some initial testing with a local account. The account
11765 and password aging information is available in /etc/shadow, but
11766 unfortunately, it is not possible to specify an expiration time for
11767 passwords, only a maximum age for passwords.</p>
11768
11769 <p>A freshly created account (using adduser test) will have these
11770 settings in /etc/shadow:</p>
11771
11772 <blockquote><pre>
11773 root@tjener:~# chage -l test
11774 Last password change : May 02, 2010
11775 Password expires : never
11776 Password inactive : never
11777 Account expires : never
11778 Minimum number of days between password change : 0
11779 Maximum number of days between password change : 99999
11780 Number of days of warning before password expires : 7
11781 root@tjener:~#
11782 </pre></blockquote>
11783
11784 <p>The only way I could come up with to create a user with an expired
11785 account, is to change the date of the last password change to the
11786 lowest value possible (January 1th 1970), and the maximum password age
11787 to the difference in days between that date and today. To make it
11788 simple, I went for 30 years (30 * 365 = 10950) and January 2th (to
11789 avoid testing if 0 is a valid value).</p>
11790
11791 <p>After using these commands to set it up, it seem to work as
11792 intended:</p>
11793
11794 <blockquote><pre>
11795 root@tjener:~# chage -d 1 test; chage -M 10950 test
11796 root@tjener:~# chage -l test
11797 Last password change : Jan 02, 1970
11798 Password expires : never
11799 Password inactive : never
11800 Account expires : never
11801 Minimum number of days between password change : 0
11802 Maximum number of days between password change : 10950
11803 Number of days of warning before password expires : 7
11804 root@tjener:~#
11805 </pre></blockquote>
11806
11807 <p>So far I have tested this with ssh and console, and kdm (in
11808 Squeeze) login, and all ask for a new password before login in the
11809 user (with ssh, I was thrown out and had to log in again).</p>
11810
11811 <p>Perhaps we should set up something similar for Debian Edu, to make
11812 sure only the user itself have the account password?</p>
11813
11814 <p>If you want to comment on or help out with implementing this for
11815 Debian Edu, please contact us on debian-edu@lists.debian.org.</p>
11816
11817 <p>Update 2010-05-02 17:20: Paul Tötterman tells me on IRC that the
11818 shadow(8) page in Debian/testing now state that setting the date of
11819 last password change to zero (0) will force the password to be changed
11820 on the first login. This was not mentioned in the manual in Lenny, so
11821 I did not notice this in my initial testing. I have tested it on
11822 Squeeze, and '<tt>chage -d 0 username</tt>' do work there. I have not
11823 tested it on Lenny yet.</p>
11824
11825 <p>Update 2010-05-02-19:05: Jim Paris tells me via email that an
11826 equivalent command to expire a password is '<tt>passwd -e
11827 username</tt>', which insert zero into the date of the last password
11828 change.</p>
11829
11830 </div>
11831 <div class="tags">
11832
11833
11834 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>.
11835
11836
11837 </div>
11838 </div>
11839 <div class="padding"></div>
11840
11841 <div class="entry">
11842 <div class="title">
11843 <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>
11844 </div>
11845 <div class="date">
11846 28th April 2010
11847 </div>
11848 <div class="body">
11849 <p>For some years now, I have wondered how we should handle laptops in
11850 Debian Edu. The Debian Edu infrastructure is mostly designed to
11851 handle stationary computers, and less suited for computers that come
11852 and go.</p>
11853
11854 <p>Now I finally believe I have an sensible idea on how to adjust
11855 Debian Edu for laptops, by introducing a new profile for them, for
11856 example called Roaming Workstations. Here are my thought on this.
11857 The setup would consist of the following:</p>
11858
11859 <ul>
11860
11861 <li>During installation, the user name of the owner / primary user of
11862 the laptop is requested and a local home directory is set up for
11863 the user, with uid and gid information fetched from the LDAP
11864 server. This allow the user to work also when offline. The
11865 central home directory can be available in a subdirectory on
11866 request, for example mounted via CIFS. It could be mounted
11867 automatically when a user log in while on the Debian Edu network,
11868 and unmounted when the machine is taken away (network down,
11869 hibernate, etc), it can be set up to do automatic mounting on
11870 request (using autofs), or perhaps some GUI button on the desktop
11871 can be used to access it when needed. Perhaps it is enough to use
11872 the fish protocol in KDE?</li>
11873
11874 <li>Password checking is set up to use LDAP or Kerberos
11875 authentication when the machine is on the Debian Edu network, and
11876 to cache the password for offline checking when the machine unable
11877 to reach the LDAP or Kerberos server. This can be done using
11878 <a href="http://www.padl.com/OSS/pam_ccreds.html">libpam-ccreds</a>
11879 or the Fedora developed
11880 <a href="https://fedoraproject.org/wiki/Features/SSSD">System
11881 Security Services Daemon</a> packages.</li>
11882
11883 <li>File synchronisation with the central home directory is set up
11884 using a shared directory in both the local and the central home
11885 directory, using unison.</li>
11886
11887 <li>Printing should be set up to print to all printers broadcasting
11888 their existence on the local network, and should then work out of
11889 the box with CUPS. For sites needing accurate printer quotas, some
11890 system with Kerberos authentication or printing via ssh could be
11891 implemented.</li>
11892
11893 <li>For users that should have local root access to their laptop,
11894 sudo should be used to allow this to the local user.</li>
11895
11896 <li>It would be nice if user and group information from LDAP is
11897 cached on the client, but given that there are entries for the
11898 local user and primary group in /etc/, it should not be needed.</li>
11899
11900 </ul>
11901
11902 <p>I believe all the pieces to implement this are in Debian/testing at
11903 the moment. If we work quickly, we should be able to get this ready
11904 in time for the Squeeze release to freeze. Some of the pieces need
11905 tweaking, like libpam-ccreds should get support for pam-auth-update
11906 (<a href="http://bugs.debian.org/566718">#566718</a>) and nslcd (or
11907 perhaps debian-edu-config) should get some integration code to stop
11908 its daemon when the LDAP server is unavailable to avoid long timeouts
11909 when disconnected from the net. If we get Kerberos enabled, we need
11910 to make sure we avoid long timeouts there too.</p>
11911
11912 <p>If you want to help out with implementing this for Debian Edu,
11913 please contact us on debian-edu@lists.debian.org.</p>
11914
11915 </div>
11916 <div class="tags">
11917
11918
11919 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>.
11920
11921
11922 </div>
11923 </div>
11924 <div class="padding"></div>
11925
11926 <div class="entry">
11927 <div class="title">
11928 <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>
11929 </div>
11930 <div class="date">
11931 19th April 2010
11932 </div>
11933 <div class="body">
11934 <p>The last few weeks i have had the pleasure of reading a
11935 thought-provoking collection of essays by Cory Doctorow, on topics
11936 touching copyright, virtual worlds, the future of man when the
11937 conscience mind can be duplicated into a computer and many more. The
11938 book titled "Content: Selected Essays on Technology, Creativity,
11939 Copyright, and the Future of the Future" is available with few
11940 restrictions on the web, for example from
11941 <a href="http://craphound.com/content/">his own site</a>. I read the
11942 epub-version from
11943 <a href="http://www.feedbooks.com/book/2883">feedbooks</a> using
11944 <a href="http://www.fbreader.org/">fbreader</a> and my N810. I
11945 strongly recommend this book.</p>
11946
11947 </div>
11948 <div class="tags">
11949
11950
11951 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>.
11952
11953
11954 </div>
11955 </div>
11956 <div class="padding"></div>
11957
11958 <div class="entry">
11959 <div class="title">
11960 <a href="http://people.skolelinux.org/pere/blog/Kerberos_for_Debian_Edu_Squeeze_.html">Kerberos for Debian Edu/Squeeze?</a>
11961 </div>
11962 <div class="date">
11963 14th April 2010
11964 </div>
11965 <div class="body">
11966 <p><a href="http://www.nuug.no/aktiviteter/20100413-kerberos/">Yesterdays
11967 NUUG presentation</a> about Kerberos was inspiring, and reminded me
11968 about the need to start using Kerberos in Skolelinux. Setting up a
11969 Kerberos server seem to be straight forward, and if we get this in
11970 place a long time before the Squeeze version of Debian freezes, we
11971 have a chance to migrate Skolelinux away from NFSv3 for the home
11972 directories, and over to an architecture where the infrastructure do
11973 not have to trust IP addresses and machines, and instead can trust
11974 users and cryptographic keys instead.</p>
11975
11976 <p>A challenge will be integration and administration. Is there a
11977 Kerberos implementation for Debian where one can control the
11978 administration access in Kerberos using LDAP groups? With it, the
11979 school administration will have to maintain access control using flat
11980 files on the main server, which give a huge potential for errors.</p>
11981
11982 <p>A related question I would like to know is how well Kerberos and
11983 pam-ccreds (offline password check) work together. Anyone know?</p>
11984
11985 <p>Next step will be to use Kerberos for access control in Lwat and
11986 Nagios. I have no idea how much work that will be to implement. We
11987 would also need to document how to integrate with Windows AD, as such
11988 shared network will require two Kerberos realms that need to cooperate
11989 to work properly.</p>
11990
11991 <p>I believe a good start would be to start using Kerberos on the
11992 skolelinux.no machines, and this way get ourselves experience with
11993 configuration and integration. A natural starting point would be
11994 setting up ldap.skolelinux.no as the Kerberos server, and migrate the
11995 rest of the machines from PAM via LDAP to PAM via Kerberos one at the
11996 time.</p>
11997
11998 <p>If you would like to contribute to get this working in Skolelinux,
11999 I recommend you to see the video recording from yesterdays NUUG
12000 presentation, and start using Kerberos at home. The video show show
12001 up in a few days.</p>
12002
12003 </div>
12004 <div class="tags">
12005
12006
12007 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>.
12008
12009
12010 </div>
12011 </div>
12012 <div class="padding"></div>
12013
12014 <div class="entry">
12015 <div class="title">
12016 <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>
12017 </div>
12018 <div class="date">
12019 6th March 2010
12020 </div>
12021 <div class="body">
12022 <p>6 years ago, as part of the Debian Edu development I am involved
12023 in, I asked for a hook in the kdm and gdm setup to run scripts as root
12024 when the user log out. A bug was submitted against the xfree86-common
12025 package in 2004 (<a href="http://bugs.debian.org/230422">#230422</a>),
12026 and revisited every time Debian Edu was working on a new release.
12027 Today, this finally paid off.</p>
12028
12029 <p>The framework for this feature was today commited to the git
12030 repositry for the xorg package, and the git repository for xdm has
12031 been updated to use this framework. Next on my agenda is to make sure
12032 kdm and gdm also add code to use this framework.</p>
12033
12034 <p>In Debian Edu, we want to ability to run commands as root when the
12035 user log out, to get rid of runaway processes and do general cleanup
12036 after a user. With this framework in place, we finally can do that in
12037 a generic way that work with all display managers using this
12038 framework. My goal is to get all display managers in Debian use it,
12039 similar to how they use the Xsession.d framework today.<p>
12040
12041 </div>
12042 <div class="tags">
12043
12044
12045 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>.
12046
12047
12048 </div>
12049 </div>
12050 <div class="padding"></div>
12051
12052 <div class="entry">
12053 <div class="title">
12054 <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>
12055 </div>
12056 <div class="date">
12057 11th February 2010
12058 </div>
12059 <div class="body">
12060 <p>On Tuesday, the Debian/Lenny based version of
12061 <a href="http://www.skolelinux.org/">Skolelinux</a> was finally
12062 shipped. This was a major leap forward for the project, and I am very
12063 pleased that we finally got the release wrapped up. Work on the first
12064 point release starts imediately, as we plan to get that one out a
12065 month after the major release, to include all fixes for bugs we found
12066 and fixed too late in the release process to include last Tuesday.</p>
12067
12068 <p>Perhaps it even is time for some partying?</p>
12069
12070 <p>After this first point release, my plan is to focus again on the
12071 next major release, based on Squeeze. We will try to get as many of
12072 the fixes we need into the official Debian packages before the freeze,
12073 and have just a few weeks or months to make it happen.</p>
12074
12075 </div>
12076 <div class="tags">
12077
12078
12079 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>.
12080
12081
12082 </div>
12083 </div>
12084 <div class="padding"></div>
12085
12086 <div class="entry">
12087 <div class="title">
12088 <a href="http://people.skolelinux.org/pere/blog/Automatic_Munin_and_Nagios_configuration.html">Automatic Munin and Nagios configuration</a>
12089 </div>
12090 <div class="date">
12091 27th January 2010
12092 </div>
12093 <div class="body">
12094 <p>One of the new features in the next Debian/Lenny based release of
12095 Debian Edu/Skolelinux, which is scheduled for release in the next few
12096 days, is automatic configuration of the service monitoring system
12097 Nagios. The previous release had automatic configuration of trend
12098 analysis using Munin, and this Lenny based release take that a step
12099 further.</p>
12100
12101 <p>When installing a Debian Edu Main-server, it is automatically
12102 configured as a Munin and Nagios server. In addition, it is
12103 configured to be a server for the
12104 <a href="http://wiki.debian.org/DebianEdu/HowTo/SiteSummary">SiteSummary
12105 system</a> I have written for use in Debian Edu. The SiteSummary
12106 system is inspired by a system used by the University of Oslo where I
12107 work. In short, the system provide a centralised collector of
12108 information about the computers on the network, and a client on each
12109 computer submitting information to this collector. This allow for
12110 automatic information on which packages are installed on each machine,
12111 which kernel the machines are using, what kind of configuration the
12112 packages got etc. This also allow us to automatically generate Munin
12113 and Nagios configuration.</p>
12114
12115 <p>All computers reporting to the sitesummary collector with the
12116 munin-node package installed is automatically enabled as a Munin
12117 client and graphs from the statistics collected from that machine show
12118 up automatically on http://www/munin/ on the Main-server.</p>
12119
12120 <p>All non-laptop computers reporting to the sitesummary collector are
12121 automatically monitored for network presence (ping and any network
12122 services detected). In addition, all computers (also laptops) with
12123 the nagios-nrpe-server package installed and configured the way
12124 sitesummary would configure it, are monitored for full disks, software
12125 raid status, swap free and other checks that need to run locally on
12126 the machine.</p>
12127
12128 <p>The result is that the administrator on a school using Debian Edu
12129 based on Lenny will be able to check the health of his installation
12130 with one look at the Nagios settings, without having to spend any time
12131 keeping the Nagios configuration up-to-date.</p>
12132
12133 <p>The only configuration one need to do to get Nagios up and running
12134 is to set the password used to get access via HTTP. The system
12135 administrator need to run "<tt>htpasswd /etc/nagios3/htpasswd.users
12136 nagiosadmin</tt>" to create a nagiosadmin user and set a password for
12137 it to be able to log into the Nagios web pages. After that,
12138 everything is taken care of.</p>
12139
12140 </div>
12141 <div class="tags">
12142
12143
12144 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>.
12145
12146
12147 </div>
12148 </div>
12149 <div class="padding"></div>
12150
12151 <div class="entry">
12152 <div class="title">
12153 <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>
12154 </div>
12155 <div class="date">
12156 12th August 2009
12157 </div>
12158 <div class="body">
12159 <p>Just for fun, I did a search right now on Google for a few file ODF
12160 and MS Office based formats (not to be mistaken for ISO or ECMA
12161 OOXML), to get an idea of their relative usage. I searched using
12162 'filetype:odt' and equvalent terms, and got these results:</P>
12163
12164 <table>
12165 <tr><th>Type</th><th>ODF</th><th>MS Office</th></tr>
12166 <tr><td>Tekst</td> <td>odt:282000</td> <td>docx:308000</td></tr>
12167 <tr><td>Presentasjon</td> <td>odp:75600</td> <td>pptx:183000</td></tr>
12168 <tr><td>Regneark</td> <td>ods:26500 </td> <td>xlsx:145000</td></tr>
12169 </table>
12170
12171 <p>Next, I added a 'site:no' limit to get the numbers for Norway, and
12172 got these numbers:</p>
12173
12174 <table>
12175 <tr><th>Type</th><th>ODF</th><th>MS Office</th></tr>
12176 <tr><td>Tekst</td> <td>odt:2480 </td> <td>docx:4460</td></tr>
12177 <tr><td>Presentasjon</td> <td>odp:299 </td> <td>pptx:741</td></tr>
12178 <tr><td>Regneark</td> <td>ods:187 </td> <td>xlsx:372</td></tr>
12179 </table>
12180
12181 <p>I wonder how these numbers change over time.</p>
12182
12183 <p>I am aware of Google returning different results and numbers based
12184 on where the search is done, so I guess these numbers will differ if
12185 they are conduced in another country. Because of this, I did the same
12186 search from a machine in California, USA, a few minutes after the
12187 search done from a machine here in Norway.</p>
12188
12189
12190 <table>
12191 <tr><th>Type</th><th>ODF</th><th>MS Office</th></tr>
12192 <tr><td>Tekst</td> <td>odt:129000</td> <td>docx:308000</td></tr>
12193 <tr><td>Presentasjon</td> <td>odp:44200</td> <td>pptx:93900</td></tr>
12194 <tr><td>Regneark</td> <td>ods:26500 </td> <td>xlsx:82400</td></tr>
12195 </table>
12196
12197 <p>And with 'site:no':
12198
12199 <table>
12200 <tr><th>Type</th><th>ODF</th><th>MS Office</th></tr>
12201 <tr><td>Tekst</td> <td>odt:2480</td> <td>docx:3410</td></tr>
12202 <tr><td>Presentasjon</td> <td>odp:175</td> <td>pptx:604</td></tr>
12203 <tr><td>Regneark</td> <td>ods:186 </td> <td>xlsx:296</td></tr>
12204 </table>
12205
12206 <p>Interesting difference, not sure what to conclude from these
12207 numbers.</p>
12208
12209 </div>
12210 <div class="tags">
12211
12212
12213 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>.
12214
12215
12216 </div>
12217 </div>
12218 <div class="padding"></div>
12219
12220 <div class="entry">
12221 <div class="title">
12222 <a href="http://people.skolelinux.org/pere/blog/ISO_still_hope_to_fix_OOXML.html">ISO still hope to fix OOXML</a>
12223 </div>
12224 <div class="date">
12225 8th August 2009
12226 </div>
12227 <div class="body">
12228 <p>According to <a
12229 href="http://twerner.blogspot.com/2009/08/defects-of-office-open-xml.html">a
12230 blog post from Torsten Werner</a>, the current defect report for ISO
12231 29500 (ISO OOXML) is 809 pages. His interesting point is that the
12232 defect report is 71 pages more than the full ODF 1.1 specification.
12233 Personally I find it more interesting that ISO still believe ISO OOXML
12234 can be fixed in ISO. Personally, I believe it is broken beyon repair,
12235 and I completely lack any trust in ISO for being able to get anywhere
12236 close to solving the problems. I was part of the Norwegian committee
12237 involved in the OOXML fast track process, and was not impressed with
12238 Standard Norway and ISO in how they handled it.</p>
12239
12240 <p>These days I focus on ODF instead, which seem like a specification
12241 with the future ahead of it. We are working in NUUG to organise a ODF
12242 seminar this autumn.</p>
12243
12244 </div>
12245 <div class="tags">
12246
12247
12248 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>.
12249
12250
12251 </div>
12252 </div>
12253 <div class="padding"></div>
12254
12255 <div class="entry">
12256 <div class="title">
12257 <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>
12258 </div>
12259 <div class="date">
12260 27th July 2009
12261 </div>
12262 <div class="body">
12263 <p>Since this evening, with the upload of sysvinit version 2.87dsf-2,
12264 and the upload of insserv version 1.12.0-10 yesterday, Debian unstable
12265 have been migrated to using dependency based boot sequencing. This
12266 conclude work me and others have been doing for the last three days.
12267 It feels great to see this finally part of the default Debian
12268 installation. Now we just need to weed out the last few problems that
12269 are bound to show up, to get everything ready for Squeeze.</p>
12270
12271 <p>The next step is migrating /sbin/init from sysvinit to upstart, and
12272 fixing the more fundamental problem of handing the event based
12273 non-predictable kernel in the early boot.</p>
12274
12275 </div>
12276 <div class="tags">
12277
12278
12279 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>.
12280
12281
12282 </div>
12283 </div>
12284 <div class="padding"></div>
12285
12286 <div class="entry">
12287 <div class="title">
12288 <a href="http://people.skolelinux.org/pere/blog/Taking_over_sysvinit_development.html">Taking over sysvinit development</a>
12289 </div>
12290 <div class="date">
12291 22nd July 2009
12292 </div>
12293 <div class="body">
12294 <p>After several years of frustration with the lack of activity from
12295 the existing sysvinit upstream developer, I decided a few weeks ago to
12296 take over the package and become the new upstream. The number of
12297 patches to track for the Debian package was becoming a burden, and the
12298 lack of synchronization between the distribution made it hard to keep
12299 the package up to date.</p>
12300
12301 <p>On the new sysvinit team is the SuSe maintainer Dr. Werner Fink,
12302 and my Debian co-maintainer Kel Modderman. About 10 days ago, I made
12303 a new upstream tarball with version number 2.87dsf (for Debian, SuSe
12304 and Fedora), based on the patches currently in use in these
12305 distributions. We Debian maintainers plan to move to this tarball as
12306 the new upstream as soon as we find time to do the merge. Since the
12307 new tarball was created, we agreed with Werner at SuSe to make a new
12308 upstream project at <a href="http://savannah.nongnu.org/">Savannah</a>, and continue
12309 development there. The project is registered and currently waiting
12310 for approval by the Savannah administrators, and as soon as it is
12311 approved, we will import the old versions from svn and continue
12312 working on the future release.</p>
12313
12314 <p>It is a bit ironic that this is done now, when some of the involved
12315 distributions are moving to upstart as a syvinit replacement.</p>
12316
12317 </div>
12318 <div class="tags">
12319
12320
12321 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>.
12322
12323
12324 </div>
12325 </div>
12326 <div class="padding"></div>
12327
12328 <div class="entry">
12329 <div class="title">
12330 <a href="http://people.skolelinux.org/pere/blog/Debian_boots_quicker_and_quicker.html">Debian boots quicker and quicker</a>
12331 </div>
12332 <div class="date">
12333 24th June 2009
12334 </div>
12335 <div class="body">
12336 <p>I spent Monday and tuesday this week in London with a lot of the
12337 people involved in the boot system on Debian and Ubuntu, to see if we
12338 could find more ways to speed up the boot system. This was an Ubuntu
12339 funded
12340 <a href="https://wiki.ubuntu.com/FoundationsTeam/BootPerformance/DebianUbuntuSprint">developer
12341 gathering</a>. It was quite productive. We also discussed the future
12342 of boot systems, and ways to handle the increasing number of boot
12343 issues introduced by the Linux kernel becoming more and more
12344 asynchronous and event base. The Ubuntu approach using udev and
12345 upstart might be a good way forward. Time will show.</p>
12346
12347 <p>Anyway, there are a few ways at the moment to speed up the boot
12348 process in Debian. All of these should be applied to get a quick
12349 boot:</p>
12350
12351 <ul>
12352
12353 <li>Use dash as /bin/sh.</li>
12354
12355 <li>Disable the init.d/hwclock*.sh scripts and make sure the hardware
12356 clock is in UTC.</li>
12357
12358 <li>Install and activate the insserv package to enable
12359 <a href="http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot">dependency
12360 based boot sequencing</a>, and enable concurrent booting.</li>
12361
12362 </ul>
12363
12364 These points are based on the Google summer of code work done by
12365 <a href="http://initscripts-ng.alioth.debian.org/soc2006-bootsystem/">Carlos
12366 Villegas</a>.
12367
12368 <p>Support for makefile-style concurrency during boot was uploaded to
12369 unstable yesterday. When we tested it, we were able to cut 6 seconds
12370 from the boot sequence. It depend on very correct dependency
12371 declaration in all init.d scripts, so I expect us to find edge cases
12372 where the dependences in some scripts are slightly wrong when we start
12373 using this.</p>
12374
12375 <p>On our IRC channel for this effort, #pkg-sysvinit, a new idea was
12376 introduced by Raphael Geissert today, one that could affect the
12377 startup speed as well. Instead of starting some scripts concurrently
12378 from rcS.d/ and another set of scripts from rc2.d/, it would be
12379 possible to run a of them in the same process. A quick way to test
12380 this would be to enable insserv and run 'mv /etc/rc2.d/S* /etc/rcS.d/;
12381 insserv'. Will need to test if that work. :)</p>
12382
12383 </div>
12384 <div class="tags">
12385
12386
12387 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>.
12388
12389
12390 </div>
12391 </div>
12392 <div class="padding"></div>
12393
12394 <div class="entry">
12395 <div class="title">
12396 <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>
12397 </div>
12398 <div class="date">
12399 2nd May 2009
12400 </div>
12401 <div class="body">
12402 <p>There are two software projects that have had huge influence on the
12403 quality of free software, and I wanted to mention both in case someone
12404 do not yet know them.</p>
12405
12406 <p>The first one is <a href="http://valgrind.org/">valgrind</a>, a
12407 tool to detect and expose errors in the memory handling of programs.
12408 It is easy to use, all one need to do is to run 'valgrind program',
12409 and it will report any problems on stdout. It is even better if the
12410 program include debug information. With debug information, it is able
12411 to report the source file name and line number where the problem
12412 occurs. It can report things like 'reading past memory block in file
12413 X line N, the memory block was allocated in file Y, line M', and
12414 'using uninitialised value in control logic'. This tool has made it
12415 trivial to investigate reproducible crash bugs in programs, and have
12416 reduced the number of this kind of bugs in free software a lot.
12417
12418 <p>The second one is
12419 <a href="http://en.wikipedia.org/wiki/Coverity">Coverity</a> which is
12420 a source code checker. It is able to process the source of a program
12421 and find problems in the logic without running the program. It
12422 started out as the Stanford Checker and became well known when it was
12423 used to find bugs in the Linux kernel. It is now a commercial tool
12424 and the company behind it is running
12425 <a href="http://www.scan.coverity.com/">a community service</a> for the
12426 free software community, where a lot of free software projects get
12427 their source checked for free. Several thousand defects have been
12428 found and fixed so far. It can find errors like 'lock L taken in file
12429 X line N is never released if exiting in line M', or 'the code in file
12430 Y lines O to P can never be executed'. The projects included in the
12431 community service project have managed to get rid of a lot of
12432 reliability problems thanks to Coverity.</p>
12433
12434 <p>I believe tools like this, that are able to automatically find
12435 errors in the source, are vital to improve the quality of software and
12436 make sure we can get rid of the crashing and failing software we are
12437 surrounded by today.</p>
12438
12439 </div>
12440 <div class="tags">
12441
12442
12443 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>.
12444
12445
12446 </div>
12447 </div>
12448 <div class="padding"></div>
12449
12450 <div class="entry">
12451 <div class="title">
12452 <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>
12453 </div>
12454 <div class="date">
12455 28th April 2009
12456 </div>
12457 <div class="body">
12458 <p>Julien Blache
12459 <a href="http://blog.technologeek.org/2009/04/12/214">claim that no
12460 patch is better than a useless patch</a>. I completely disagree, as a
12461 patch allow one to discuss a concrete and proposed solution, and also
12462 prove that the issue at hand is important enough for someone to spent
12463 time on fixing it. No patch do not provide any of these positive
12464 properties.</p>
12465
12466 </div>
12467 <div class="tags">
12468
12469
12470 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>.
12471
12472
12473 </div>
12474 </div>
12475 <div class="padding"></div>
12476
12477 <div class="entry">
12478 <div class="title">
12479 <a href="http://people.skolelinux.org/pere/blog/Recording_video_from_cron_using_VLC.html">Recording video from cron using VLC</a>
12480 </div>
12481 <div class="date">
12482 5th April 2009
12483 </div>
12484 <div class="body">
12485 <p>One think I have wanted to figure out for a along time is how to
12486 run vlc from cron to do recording of video streams on the net. The
12487 task is trivial with mplayer, but I do not really trust the security
12488 of mplayer (it crashes too often on strange input), and thus prefer
12489 vlc. I finally found a way to do it today. I spent an hour or so
12490 searching the web for recipes and reading the documentation. The
12491 hardest part was to get rid of the GUI window, but after finding the
12492 dummy interface, the command line finally presented itself:</p>
12493
12494 <blockquote><pre>URL=http://www.ping.uio.no/video/rms-oslo_2009.ogg
12495 SAVEFILE=rms.ogg
12496 DISPLAY= vlc -q $URL \
12497 --sout="#duplicate{dst=std{access=file,url='$SAVEFILE'},dst=nodisplay}" \
12498 --intf=dummy</pre></blockquote>
12499
12500 <p>The command stream the URL and store it in the SAVEFILE by
12501 duplicating the output stream to "nodisplay" and the file, using the
12502 dummy interface. The dummy interface and the nodisplay output make
12503 sure no X interface is needed.</p>
12504
12505 <p>The cron job then need to start this job with the appropriate URL
12506 and file name to save, sleep for the duration wanted, and then kill
12507 the vlc process with SIGTERM. Here is a complete script
12508 <tt>vlc-record</tt> to use from <tt>at</tt> or <tt>cron</tt>:</p>
12509
12510 <blockquote><pre>#!/bin/sh
12511 set -e
12512 URL="$1"
12513 SAVEFILE="$2"
12514 DURATION="$3"
12515 DISPLAY= vlc -q "$URL" \
12516 --sout="#duplicate{dst=std{access=file,url='$SAVEFILE'},dst=nodisplay}" \
12517 --intf=dummy < /dev/null > /dev/null 2>&1 &
12518 pid=$!
12519 sleep $DURATION
12520 kill $pid
12521 wait $pid</pre></blockquote>
12522
12523 </div>
12524 <div class="tags">
12525
12526
12527 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>.
12528
12529
12530 </div>
12531 </div>
12532 <div class="padding"></div>
12533
12534 <div class="entry">
12535 <div class="title">
12536 <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>
12537 </div>
12538 <div class="date">
12539 30th March 2009
12540 </div>
12541 <div class="body">
12542 <p>Where I work at the University of Oslo, one decision stand out as a
12543 very good one to form a long lived computer infrastructure. It is the
12544 simple one, lost by many in todays computer industry: Standardize on
12545 open network protocols and open exchange/storage formats, not applications.
12546 Applications come and go, while protocols and files tend to stay, and
12547 thus one want to make it easy to change application and vendor, while
12548 avoiding conversion costs and locking users to a specific platform or
12549 application.</p>
12550
12551 <p>This approach make it possible to replace the client applications
12552 independently of the server applications. One can even allow users to
12553 use several different applications as long as they handle the selected
12554 protocol and format. In the normal case, only one client application
12555 is recommended and users only get help if they choose to use this
12556 application, but those that want to deviate from the easy path are not
12557 blocked from doing so.</p>
12558
12559 <p>It also allow us to replace the server side without forcing the
12560 users to replace their applications, and thus allow us to select the
12561 best server implementation at any moment, when scale and resouce
12562 requirements change.</p>
12563
12564 <p>I strongly recommend standardizing - on open network protocols and
12565 open formats, but I would never recommend standardizing on a single
12566 application that do not use open network protocol or open formats.</p>
12567
12568 </div>
12569 <div class="tags">
12570
12571
12572 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>.
12573
12574
12575 </div>
12576 </div>
12577 <div class="padding"></div>
12578
12579 <div class="entry">
12580 <div class="title">
12581 <a href="http://people.skolelinux.org/pere/blog/Returning_from_Skolelinux_developer_gathering.html">Returning from Skolelinux developer gathering</a>
12582 </div>
12583 <div class="date">
12584 29th March 2009
12585 </div>
12586 <div class="body">
12587 <p>I'm sitting on the train going home from this weekends Debian
12588 Edu/Skolelinux development gathering. I got a bit done tuning the
12589 desktop, and looked into the dynamic service location protocol
12590 implementation avahi. It look like it could be useful for us. Almost
12591 30 people participated, and I believe it was a great environment to
12592 get to know the Skolelinux system. Walter Bender, involved in the
12593 development of the Sugar educational platform, presented his stuff and
12594 also helped me improve my OLPC installation. He also showed me that
12595 his Turtle Art application can be used in standalone mode, and we
12596 agreed that I would help getting it packaged for Debian. As a
12597 standalone application it would be great for Debian Edu. We also
12598 tried to get the video conferencing working with two OLPCs, but that
12599 proved to be too hard for us. The application seem to need more work
12600 before it is ready for me. I look forward to getting home and relax
12601 now. :)</p>
12602
12603 </div>
12604 <div class="tags">
12605
12606
12607 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>.
12608
12609
12610 </div>
12611 </div>
12612 <div class="padding"></div>
12613
12614 <div class="entry">
12615 <div class="title">
12616 <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>
12617 </div>
12618 <div class="date">
12619 29th March 2009
12620 </div>
12621 <div class="body">
12622 <p>The state of standardized LDAP schemas on Linux is far from
12623 optimal. There is RFC 2307 documenting one way to store NIS maps in
12624 LDAP, and a modified version of this normally called RFC 2307bis, with
12625 some modifications to be compatible with Active Directory. The RFC
12626 specification handle the content of a lot of system databases, but do
12627 not handle DNS zones and DHCP configuration.</p>
12628
12629 <p>In <a href="http://www.skolelinux.org/">Debian Edu/Skolelinux</a>,
12630 we would like to store information about users, SMB clients/hosts,
12631 filegroups, netgroups (users and hosts), DHCP and DNS configuration,
12632 and LTSP configuration in LDAP. These objects have a lot in common,
12633 but with the current LDAP schemas it is not possible to have one
12634 object per entity. For example, one need to have at least three LDAP
12635 objects for a given computer, one with the SMB related stuff, one with
12636 DNS information and another with DHCP information. The schemas
12637 provided for DNS and DHCP are impossible to combine into one LDAP
12638 object. In addition, it is impossible to implement quick queries for
12639 netgroup membership, because of the way NIS triples are implemented.
12640 It just do not scale. I believe it is time for a few RFC
12641 specifications to cleam up this mess.</p>
12642
12643 <p>I would like to have one LDAP object representing each computer in
12644 the network, and this object can then keep the SMB (ie host key), DHCP
12645 (mac address/name) and DNS (name/IP address) settings in one place.
12646 It need to be efficently stored to make sure it scale well.</p>
12647
12648 <p>I would also like to have a quick way to map from a user or
12649 computer and to the net group this user or computer is a member.</p>
12650
12651 <p>Active Directory have done a better job than unix heads like myself
12652 in this regard, and the unix side need to catch up. Time to start a
12653 new IETF work group?</p>
12654
12655 </div>
12656 <div class="tags">
12657
12658
12659 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>.
12660
12661
12662 </div>
12663 </div>
12664 <div class="padding"></div>
12665
12666 <div class="entry">
12667 <div class="title">
12668 <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>
12669 </div>
12670 <div class="date">
12671 28th February 2009
12672 </div>
12673 <div class="body">
12674 <p>At work, we have a few hundred Linux servers, and with that amount
12675 of hardware it is important to keep track of when the hardware support
12676 contract expire for each server. We have a machine (and service)
12677 register, which until recently did not contain much useful besides the
12678 machine room location and contact information for the system owner for
12679 each machine. To make it easier for us to track support contract
12680 status, I've recently spent time on extending the machine register to
12681 include information about when the support contract expire, and to tag
12682 machines with expired contracts to make it easy to get a list of such
12683 machines. I extended a perl script already being used to import
12684 information about machines into the register, to also do some screen
12685 scraping off the sites of Dell, HP and IBM (our majority of machines
12686 are from these vendors), and automatically check the support status
12687 for the relevant machines. This make the support status information
12688 easily available and I hope it will make it easier for the computer
12689 owner to know when to get new hardware or renew the support contract.
12690 The result of this work documented that 27% of the machines in the
12691 registry is without a support contract, and made it very easy to find
12692 them. 27% might seem like a lot, but I see it more as the case of us
12693 using machines a bit longer than the 3 years a normal support contract
12694 last, to have test machines and a platform for less important
12695 services. After all, the machines without a contract are working fine
12696 at the moment and the lack of contract is only a problem if any of
12697 them break down. When that happen, we can either fix it using spare
12698 parts from other machines or move the service to another old
12699 machine.</p>
12700
12701 <p>I believe the code for screen scraping the Dell site was originally
12702 written by Trond Hasle Amundsen, and later adjusted by me and Morten
12703 Werner Forsbring. The HP scraping was written by me after reading a
12704 nice article in ;login: about how to use WWW::Mechanize, and the IBM
12705 scraping was written by me based on the Dell code. I know the HTML
12706 parsing could be done using nice libraries, but did not want to
12707 introduce more dependencies. This is the current incarnation:</p>
12708
12709 <pre>
12710 use LWP::Simple;
12711 use POSIX;
12712 use WWW::Mechanize;
12713 use Date::Parse;
12714 [...]
12715 sub get_support_info {
12716 my ($machine, $model, $serial, $productnumber) = @_;
12717 my $str;
12718
12719 if ( $model =~ m/^Dell / ) {
12720 # fetch website from Dell support
12721 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";
12722 my $webpage = get($url);
12723 return undef unless ($webpage);
12724
12725 my $daysleft = -1;
12726 my @lines = split(/\n/, $webpage);
12727 foreach my $line (@lines) {
12728 next unless ($line =~ m/Beskrivelse/);
12729 $line =~ s/&lt;[^>]+?>/;/gm;
12730 $line =~ s/^.+?;(Beskrivelse;)/$1/;
12731
12732 my @f = split(/\;/, $line);
12733 @f = @f[13 .. $#f];
12734 my $lastend = "";
12735 while ($f[3] eq "DELL") {
12736 my ($type, $startstr, $endstr, $days) = @f[0, 5, 7, 10];
12737
12738 my $start = POSIX::strftime("%Y-%m-%d",
12739 localtime(str2time($startstr)));
12740 my $end = POSIX::strftime("%Y-%m-%d",
12741 localtime(str2time($endstr)));
12742 $str .= "$type $start -> $end ";
12743 @f = @f[14 .. $#f];
12744 $lastend = $end if ($end gt $lastend);
12745 }
12746 my $today = POSIX::strftime("%Y-%m-%d", localtime(time));
12747 tag_machine_unsupported($machine)
12748 if ($lastend lt $today);
12749 }
12750 } elsif ( $model =~ m/^HP / ) {
12751 my $mech = WWW::Mechanize->new();
12752 my $url =
12753 'http://www1.itrc.hp.com/service/ewarranty/warrantyInput.do';
12754 $mech->get($url);
12755 my $fields = {
12756 'BODServiceID' => 'NA',
12757 'RegisteredPurchaseDate' => '',
12758 'country' => 'NO',
12759 'productNumber' => $productnumber,
12760 'serialNumber1' => $serial,
12761 };
12762 $mech->submit_form( form_number => 2,
12763 fields => $fields );
12764 # Next step is screen scraping
12765 my $content = $mech->content();
12766
12767 $content =~ s/&lt;[^>]+?>/;/gm;
12768 $content =~ s/\s+/ /gm;
12769 $content =~ s/;\s*;/;;/gm;
12770 $content =~ s/;[\s;]+/;/gm;
12771
12772 my $today = POSIX::strftime("%Y-%m-%d", localtime(time));
12773
12774 while ($content =~ m/;Warranty Type;/) {
12775 my ($type, $status, $startstr, $stopstr) = $content =~
12776 m/;Warranty Type;([^;]+);.+?;Status;(\w+);Start Date;([^;]+);End Date;([^;]+);/;
12777 $content =~ s/^.+?;Warranty Type;//;
12778 my $start = POSIX::strftime("%Y-%m-%d",
12779 localtime(str2time($startstr)));
12780 my $end = POSIX::strftime("%Y-%m-%d",
12781 localtime(str2time($stopstr)));
12782
12783 $str .= "$type ($status) $start -> $end ";
12784
12785 tag_machine_unsupported($machine)
12786 if ($end lt $today);
12787 }
12788 } elsif ( $model =~ m/^IBM / ) {
12789 # This code ignore extended support contracts.
12790 my ($producttype) = $model =~ m/.*-\[(.{4}).+\]-/;
12791 if ($producttype &amp;&amp; $serial) {
12792 my $content =
12793 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");
12794 if ($content) {
12795 $content =~ s/&lt;[^>]+?>/;/gm;
12796 $content =~ s/\s+/ /gm;
12797 $content =~ s/;\s*;/;;/gm;
12798 $content =~ s/;[\s;]+/;/gm;
12799
12800 $content =~ s/^.+?;Warranty status;//;
12801 my ($status, $end) = $content =~ m/;Warranty status;([^;]+)\s*;Expiration date;(\S+) ;/;
12802
12803 $str .= "($status) -> $end ";
12804
12805 my $today = POSIX::strftime("%Y-%m-%d", localtime(time));
12806 tag_machine_unsupported($machine)
12807 if ($end lt $today);
12808 }
12809 }
12810 }
12811 return $str;
12812 }
12813 </pre>
12814
12815 <p>Here are some examples on how to use the function, using fake
12816 serial numbers. The information passed in as arguments are fetched
12817 from dmidecode.</p>
12818
12819 <pre>
12820 print get_support_info("hp.host", "HP ProLiant BL460c G1", "1234567890"
12821 "447707-B21");
12822 print get_support_info("dell.host", "Dell Inc. PowerEdge 2950", "1234567");
12823 print get_support_info("ibm.host", "IBM eserver xSeries 345 -[867061X]-",
12824 "1234567");
12825 </pre>
12826
12827 <p>I would recommend this approach for tracking support contracts for
12828 everyone with more than a few computers to administer. :)</p>
12829
12830 <p>Update 2009-03-06: The IBM page do not include extended support
12831 contracts, so it is useless in that case. The original Dell code do
12832 not handle extended support contracts either, but has been updated to
12833 do so.</p>
12834
12835 </div>
12836 <div class="tags">
12837
12838
12839 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>.
12840
12841
12842 </div>
12843 </div>
12844 <div class="padding"></div>
12845
12846 <div class="entry">
12847 <div class="title">
12848 <a href="http://people.skolelinux.org/pere/blog/Using_bar_codes_at_a_computing_center.html">Using bar codes at a computing center</a>
12849 </div>
12850 <div class="date">
12851 20th February 2009
12852 </div>
12853 <div class="body">
12854 <p>At work with the University of Oslo, we have several hundred computers
12855 in our computing center. This give us a challenge in tracking the
12856 location and cabling of the computers, when they are added, moved and
12857 removed. Some times the location register is not updated when a
12858 computer is inserted or moved and we then have to search the room for
12859 the "missing" computer.</p>
12860
12861 <p>In the last issue of Linux Journal, I came across a project
12862 <a href="http://www.libdmtx.org/">libdmtx</a> to write and read bar
12863 code blocks as defined in the
12864 <a href="http://en.wikipedia.org/wiki/Data_Matrix">The Data Matrix
12865 Standard</a>. This is bar codes that can be read with a normal
12866 digital camera, for example that on a cell phone, and several such bar
12867 codes can be read by libdmtx from one picture. The bar code standard
12868 allow up to 2 KiB to be written in the tag. There is another project
12869 with <a href="http://www.terryburton.co.uk/barcodewriter/">a bar code
12870 writer written in postscript</a> capable of creating such bar codes,
12871 but this was the first time I found a tool to read these bar
12872 codes.</p>
12873
12874 <p>It occurred to me that this could be used to tag and track the
12875 machines in our computing center. If both racks and computers are
12876 tagged this way, we can use a picture of the rack and all its
12877 computers to detect the rack location of any computer in that rack.
12878 If we do this regularly for the entire room, we will find all
12879 locations, and can detect movements and removals.</p>
12880
12881 <p>I decided to test if this would work in practice, and picked a
12882 random rack and tagged all the machines with their names. Next, I
12883 took pictures with my digital camera, and gave the dmtxread program
12884 these JPEG pictures to see how many tags it could read. This worked
12885 fairly well. If the pictures was well focused and not taken from the
12886 side, all tags in the image could be read. Because of limited space
12887 between the racks, I was unable to get a good picture of the entire
12888 rack, but could without problem read all tags from a picture covering
12889 about half the rack. I had to limit the search time used by dmtxread
12890 to 60000 ms to make sure it terminated in a reasonable time frame.</p>
12891
12892 <p>My conclusion is that this could work, and we should probably look
12893 at adjusting our computer tagging procedures to use bar codes for
12894 easier automatic tracking of computers.</p>
12895
12896 </div>
12897 <div class="tags">
12898
12899
12900 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>.
12901
12902
12903 </div>
12904 </div>
12905 <div class="padding"></div>
12906
12907 <div class="entry">
12908 <div class="title">
12909 <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>
12910 </div>
12911 <div class="date">
12912 17th January 2009
12913 </div>
12914 <div class="body">
12915 <p>As part of the work we do in <a href="http://www.nuug.no">NUUG</a>
12916 to publish video recordings of our monthly presentations, we provide a
12917 page with embedded video for easy access to the recording. Putting a
12918 good set of HTML tags together to get working embedded video in all
12919 browsers and across all operating systems is not easy. I hope this
12920 will become easier when the &lt;video&gt; tag is implemented in all
12921 browsers, but I am not sure. We provide the recordings in several
12922 formats, MPEG1, Ogg Theora, H.264 and Quicktime, and want the
12923 browser/media plugin to pick one it support and use it to play the
12924 recording, using whatever embed mechanism the browser understand.
12925 There is at least four different tags to use for this, the new HTML5
12926 &lt;video&gt; tag, the &lt;object&gt; tag, the &lt;embed&gt; tag and
12927 the &lt;applet&gt; tag. All of these take a lot of options, and
12928 finding the best options is a major challenge.</p>
12929
12930 <p>I just tested the experimental Opera browser available from <a
12931 href="http://labs.opera.com">labs.opera.com</a>, to see how it handled
12932 a &lt;video&gt; tag with a few video sources and no extra attributes.
12933 I was not very impressed. The browser start by fetching a picture
12934 from the video stream. Not sure if it is the first frame, but it is
12935 definitely very early in the recording. So far, so good. Next,
12936 instead of streaming the 76 MiB video file, it start to download all
12937 of it, but do not start to play the video. This mean I have to wait
12938 for several minutes for the downloading to finish. When the download
12939 is done, the playing of the video do not start! Waiting for the
12940 download, but I do not get to see the video? Some testing later, I
12941 discover that I have to add the controls="true" attribute to be able
12942 to get a play button to pres to start the video. Adding
12943 autoplay="true" did not help. I sure hope this is a misfeature of the
12944 test version of Opera, and that future implementations of the
12945 &lt;video&gt; tag will stream recordings by default, or at least start
12946 playing when the download is done.</p>
12947
12948 <p>The test page I used (since changed to add more attributes) is
12949 <a href="http://www.nuug.no/aktiviteter/20090113-foredrag-om-foredrag/">available
12950 from the nuug site</a>. Will have to test it with the new Firefox
12951 too.</p>
12952
12953 <p>In the test process, I discovered a missing feature. I was unable
12954 to find a way to get the URL of the playing video out of Opera, so I
12955 am not quite sure it picked the Ogg Theora version of the video. I
12956 sure hope it was using the announced Ogg Theora support. :)</p>
12957
12958 </div>
12959 <div class="tags">
12960
12961
12962 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>.
12963
12964
12965 </div>
12966 </div>
12967 <div class="padding"></div>
12968
12969 <div class="entry">
12970 <div class="title">
12971 <a href="http://people.skolelinux.org/pere/blog/Software_video_mixer_on_a_USB_stick.html">Software video mixer on a USB stick</a>
12972 </div>
12973 <div class="date">
12974 28th December 2008
12975 </div>
12976 <div class="body">
12977 <p>The <a href="http://www.nuug.no/">Norwegian Unix User Group</a> is
12978 recording our montly presentation on video, and recently we have
12979 worked on improving the quality of the recordings by mixing the slides
12980 directly with the video stream. For this, we use the
12981 <a href="http://dvswitch.alioth.debian.org/">dvswitch</a> package from
12982 the Debian video team. As this require quite one computer per video
12983 source, and NUUG do not have enough laptops available, we need to
12984 borrow laptops. And to avoid having to install extra software on
12985 these borrwed laptops, I have wrapped up all the programs needed on a
12986 bootable USB stick. The software required is dvswitch with assosiated
12987 source, sink and mixer applications and
12988 <a href="http://www.kinodv.org/">dvgrab</a>. To allow this setup to
12989 work without any configuration, I've patched dvswitch to use
12990 <a href="http://www.avahi.org/">avahi</a> to connect the various parts
12991 together. And to allow us to use laptops without firewire plugs, I
12992 upgraded dvgrab to the one from Debian/unstable to get one that work
12993 with USB sources. We have not yet tested this setup in a production
12994 setup, but I hope it will work properly, and allow us to set up a
12995 video mixer in a very short time frame. We will need it for
12996 <a href="http://www.goopen.no/">Go Open 2009</a>.</p>
12997
12998 <p><a href="http://www.nuug.no/pub/video/bin/usbstick-dvswitch.img.gz">The
12999 USB image</a> is for a 1 GB memory stick, but can be used on any
13000 larger stick as well.</p>
13001
13002 </div>
13003 <div class="tags">
13004
13005
13006 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>.
13007
13008
13009 </div>
13010 </div>
13011 <div class="padding"></div>
13012
13013 <div class="entry">
13014 <div class="title">
13015 <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>
13016 </div>
13017 <div class="date">
13018 7th December 2008
13019 </div>
13020 <div class="body">
13021 <p>This weekend we had a small developer gathering for Debian Edu in
13022 Oslo. Most of Saturday was used for the general assemly for the
13023 member organization, but the rest of the weekend I used to tune the
13024 LTSP installation. LTSP now work out of the box on the 10-network.
13025 Acer Aspire One proved to be a very nice thin client, with both
13026 screen, mouse and keybard in a small box. Was working on getting the
13027 diskless workstation setup configured out of the box, but did not
13028 finish it before the weekend was up.</p>
13029
13030 <p>Did not find time to look at the 4 VGA cards in one box we got from
13031 the Brazilian group, so that will have to wait for the next
13032 development gathering. Would love to have the Debian Edu installer
13033 automatically detect and configure a multiseat setup when it find one
13034 of these cards.</p>
13035
13036 </div>
13037 <div class="tags">
13038
13039
13040 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>.
13041
13042
13043 </div>
13044 </div>
13045 <div class="padding"></div>
13046
13047 <div class="entry">
13048 <div class="title">
13049 <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>
13050 </div>
13051 <div class="date">
13052 25th November 2008
13053 </div>
13054 <div class="body">
13055 <p>Recently I have spent some time evaluating the multimedia browser
13056 plugins available in Debian Lenny, to see which one we should use by
13057 default in Debian Edu. We need an embedded video playing plugin with
13058 control buttons to pause or stop the video, and capable of streaming
13059 all the multimedia content available on the web. The test results and
13060 notes are available on
13061 <a href="http://wiki.debian.org/DebianEdu/BrowserMultimedia">the
13062 Debian wiki</a>. I was surprised how few of the plugins are able to
13063 fill this need. My personal video player favorite, VLC, has a really
13064 bad plugin which fail on a lot of the test pages. A lot of the MIME
13065 types I would expect to work with any free software player (like
13066 video/ogg), just do not work. And simple formats like the
13067 audio/x-mplegurl format (m3u playlists), just isn't supported by the
13068 totem and vlc plugins. I hope the situation will improve soon. No
13069 wonder sites use the proprietary Adobe flash to play video.</p>
13070
13071 <p>For Lenny, we seem to end up with the mplayer plugin. It seem to
13072 be the only one fitting our needs. :/</p>
13073
13074 </div>
13075 <div class="tags">
13076
13077
13078 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>.
13079
13080
13081 </div>
13082 </div>
13083 <div class="padding"></div>
13084
13085 <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>
13086 <div id="sidebar">
13087
13088
13089
13090 <h2>Archive</h2>
13091 <ul>
13092
13093 <li>2013
13094 <ul>
13095
13096 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/01/">January (6)</a></li>
13097
13098 </ul></li>
13099
13100 <li>2012
13101 <ul>
13102
13103 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/01/">January (7)</a></li>
13104
13105 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/02/">February (10)</a></li>
13106
13107 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/03/">March (17)</a></li>
13108
13109 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/04/">April (12)</a></li>
13110
13111 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/05/">May (12)</a></li>
13112
13113 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/06/">June (20)</a></li>
13114
13115 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/07/">July (17)</a></li>
13116
13117 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/08/">August (6)</a></li>
13118
13119 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/09/">September (9)</a></li>
13120
13121 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/10/">October (17)</a></li>
13122
13123 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/11/">November (10)</a></li>
13124
13125 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/12/">December (7)</a></li>
13126
13127 </ul></li>
13128
13129 <li>2011
13130 <ul>
13131
13132 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/01/">January (16)</a></li>
13133
13134 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/02/">February (6)</a></li>
13135
13136 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/03/">March (6)</a></li>
13137
13138 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/04/">April (7)</a></li>
13139
13140 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/05/">May (3)</a></li>
13141
13142 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/06/">June (2)</a></li>
13143
13144 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/07/">July (7)</a></li>
13145
13146 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/08/">August (6)</a></li>
13147
13148 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/09/">September (4)</a></li>
13149
13150 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/10/">October (2)</a></li>
13151
13152 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/11/">November (3)</a></li>
13153
13154 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/12/">December (1)</a></li>
13155
13156 </ul></li>
13157
13158 <li>2010
13159 <ul>
13160
13161 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/01/">January (2)</a></li>
13162
13163 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/02/">February (1)</a></li>
13164
13165 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/03/">March (3)</a></li>
13166
13167 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/04/">April (3)</a></li>
13168
13169 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/05/">May (9)</a></li>
13170
13171 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/06/">June (14)</a></li>
13172
13173 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/07/">July (12)</a></li>
13174
13175 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/08/">August (13)</a></li>
13176
13177 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/09/">September (7)</a></li>
13178
13179 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/10/">October (9)</a></li>
13180
13181 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/11/">November (13)</a></li>
13182
13183 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/12/">December (12)</a></li>
13184
13185 </ul></li>
13186
13187 <li>2009
13188 <ul>
13189
13190 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/01/">January (8)</a></li>
13191
13192 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/02/">February (8)</a></li>
13193
13194 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/03/">March (12)</a></li>
13195
13196 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/04/">April (10)</a></li>
13197
13198 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/05/">May (9)</a></li>
13199
13200 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/06/">June (3)</a></li>
13201
13202 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/07/">July (4)</a></li>
13203
13204 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/08/">August (3)</a></li>
13205
13206 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/09/">September (1)</a></li>
13207
13208 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/10/">October (2)</a></li>
13209
13210 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/11/">November (3)</a></li>
13211
13212 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/12/">December (3)</a></li>
13213
13214 </ul></li>
13215
13216 <li>2008
13217 <ul>
13218
13219 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/11/">November (5)</a></li>
13220
13221 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/12/">December (7)</a></li>
13222
13223 </ul></li>
13224
13225 </ul>
13226
13227
13228
13229 <h2>Tags</h2>
13230 <ul>
13231
13232 <li><a href="http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (13)</a></li>
13233
13234 <li><a href="http://people.skolelinux.org/pere/blog/tags/amiga">amiga (1)</a></li>
13235
13236 <li><a href="http://people.skolelinux.org/pere/blog/tags/aros">aros (1)</a></li>
13237
13238 <li><a href="http://people.skolelinux.org/pere/blog/tags/bankid">bankid (4)</a></li>
13239
13240 <li><a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (5)</a></li>
13241
13242 <li><a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (12)</a></li>
13243
13244 <li><a href="http://people.skolelinux.org/pere/blog/tags/bsa">bsa (2)</a></li>
13245
13246 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian">debian (64)</a></li>
13247
13248 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (118)</a></li>
13249
13250 <li><a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan (9)</a></li>
13251
13252 <li><a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook (7)</a></li>
13253
13254 <li><a href="http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
13255
13256 <li><a href="http://people.skolelinux.org/pere/blog/tags/english">english (170)</a></li>
13257
13258 <li><a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (21)</a></li>
13259
13260 <li><a href="http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (12)</a></li>
13261
13262 <li><a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (10)</a></li>
13263
13264 <li><a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (9)</a></li>
13265
13266 <li><a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju (32)</a></li>
13267
13268 <li><a href="http://people.skolelinux.org/pere/blog/tags/kart">kart (17)</a></li>
13269
13270 <li><a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap (8)</a></li>
13271
13272 <li><a href="http://people.skolelinux.org/pere/blog/tags/lenker">lenker (6)</a></li>
13273
13274 <li><a href="http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (1)</a></li>
13275
13276 <li><a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (25)</a></li>
13277
13278 <li><a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk (219)</a></li>
13279
13280 <li><a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug (148)</a></li>
13281
13282 <li><a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (6)</a></li>
13283
13284 <li><a href="http://people.skolelinux.org/pere/blog/tags/open311">open311 (2)</a></li>
13285
13286 <li><a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (41)</a></li>
13287
13288 <li><a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern (61)</a></li>
13289
13290 <li><a href="http://people.skolelinux.org/pere/blog/tags/raid">raid (1)</a></li>
13291
13292 <li><a href="http://people.skolelinux.org/pere/blog/tags/reprap">reprap (11)</a></li>
13293
13294 <li><a href="http://people.skolelinux.org/pere/blog/tags/rfid">rfid (2)</a></li>
13295
13296 <li><a href="http://people.skolelinux.org/pere/blog/tags/robot">robot (6)</a></li>
13297
13298 <li><a href="http://people.skolelinux.org/pere/blog/tags/rss">rss (1)</a></li>
13299
13300 <li><a href="http://people.skolelinux.org/pere/blog/tags/ruter">ruter (4)</a></li>
13301
13302 <li><a href="http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (2)</a></li>
13303
13304 <li><a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (28)</a></li>
13305
13306 <li><a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (4)</a></li>
13307
13308 <li><a href="http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (4)</a></li>
13309
13310 <li><a href="http://people.skolelinux.org/pere/blog/tags/standard">standard (39)</a></li>
13311
13312 <li><a href="http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (3)</a></li>
13313
13314 <li><a href="http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (5)</a></li>
13315
13316 <li><a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (12)</a></li>
13317
13318 <li><a href="http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (1)</a></li>
13319
13320 <li><a href="http://people.skolelinux.org/pere/blog/tags/valg">valg (7)</a></li>
13321
13322 <li><a href="http://people.skolelinux.org/pere/blog/tags/video">video (35)</a></li>
13323
13324 <li><a href="http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (4)</a></li>
13325
13326 <li><a href="http://people.skolelinux.org/pere/blog/tags/web">web (26)</a></li>
13327
13328 </ul>
13329
13330
13331 </div>
13332 <p style="text-align: right">
13333 Created by <a href="http://steve.org.uk/Software/chronicle">Chronicle v4.4</a>
13334 </p>
13335
13336 </body>
13337 </html>