]> pere.pagekite.me Git - homepage.git/blob - blog/tags/english/index.html
6b51e4ac33c6c714e61f85baafa548015b573fdf
[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/Best_way_to_create_a_docbook_book_.html">Best way to create a docbook book?</a>
26 </div>
27 <div class="date">
28 31st July 2012
29 </div>
30 <div class="body">
31 <p>I tried to send this text to the
32 <ahref="https://lists.oasis-open.org/archives/docbook-apps/">docbook-apps
33 mailing list at lists.oasis-open.org</a>, but it only accept messages
34 from subscribers and rejected my post, and I completely lack the
35 bandwidth required to subscribe to another mailing list, so instead I
36 try to post my message here and hope my blog readers can help me
37 out.</p>
38
39 <p>I am quite new to docbook processing, and am climbing a steep
40 learning curve at the moment.</p>
41
42 <p>To give you some background, I am working on a Norwegian
43 translation of the book Free Culture by Lawrence Lessig, and I use
44 docbook to handle the process. The files to build the book are
45 available from
46 <a href="https://github.com/petterreinholdtsen/free-culture-lessig">github</a>.
47 The book got around 400 pages with parts, images, footnotes, tables,
48 index entries etc, which has proven to be a challenge for the free
49 software docbook processors. My build platform is Debian GNU/Linux
50 Squeeze.</p>
51
52 <p>I want to build PDF, EPUB and HTML version of the book, and have
53 tried different tool chains to do the conversion from docbook to these
54 formats. I am currently focusing on the PDF version, and have a few
55 problems.</p>
56
57 <ul>
58
59 <li>Using dblatex, the &lt;part&gt; handling is not the way I want to,
60 as &lt;/part&gt; do not really end the &lt;part&gt;. (See
61 <a href="http://bugs.debian.org/683166">BTS report #683166</a>), the
62 xetex backend (needed to process UTF-8) give incorrect hyphens in
63 index references spanning several pages (See
64 <a href="http://bugs.debian.org/682901">BTS report #682901</a>), and
65 I am unable to get the norwegian template texts (See
66 <a href="http://bugs.debian.org/682936">BTS report #682936</a>).</li>
67
68 <li>Using straight xmlto fail with some latex error (See
69 <a href="http://bugs.debian.org/683163">BTS report
70 #683163</a>).</li>
71
72 <li>Using xmlto with the fop backend fail to handle images (do not
73 show up in the PDF), fail to handle a long footnote (overlap
74 footnote and text body, see
75 <a href="http://bugs.debian.org/683197">BTS report #683197</a>), and
76 fail to create a correct index (some lack page ref, and the page
77 refs listed are not right).</li>
78
79 <li>Using xmlto with the dblatex backend behave like dblatex.</li>
80
81 <li>Using docbook-xls with xsltproc + fop have the same footnote and
82 index problems the xmlto + fop processing.</li>
83
84 </ul>
85
86 <p>So I wonder, what would be the best way to create the PDF version
87 of this book? Are some of the bugs found above solved in new or
88 experimental versions of some docbook tool chain?</p>
89
90 <p>What about HTML and EPUB versions?</p>
91
92 </div>
93 <div class="tags">
94
95
96 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
97
98
99 </div>
100 </div>
101 <div class="padding"></div>
102
103 <div class="entry">
104 <div class="title">
105 <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>
106 </div>
107 <div class="date">
108 21st July 2012
109 </div>
110 <div class="body">
111 <p>I reported earlier that I am working on
112 <a href="http://people.skolelinux.org/pere/blog/Dugnad_for___sende_norsk_versjon_av_Free_Culture_til_stortingets_representanter_.html">a
113 norwegian version</a> of the book
114 <a href="http://free-culture.cc/">Free Culture</a> by Lawrence Lessig.
115 Progress is good, and yesterday I got a major contribution from Anders
116 Hagen Jarmund completing chapter six. The source files as well as a
117 PDF and EPUB version of this book are available from
118 <a href="https://github.com/petterreinholdtsen/free-culture-lessig">github</a>.</p>
119
120 <p>I am happy to report that the draft for the first two chapters
121 (preface, introduction) is complete, and three other chapters are also
122 completely translated. This completes 26 percent of the number of
123 strings (equivalent to paragraphs) in the book, and there is thus 74
124 percent left to translate. A graph of the progress is present at the
125 bottom of the github project page. There is still room for more
126 contributors. Get in touch or send github pull requests with fixes if
127 you got time and are willing to help make this book make it to
128 print. :)</p>
129
130 <p>The book translation framework could also be a good basis for other
131 translations, if you want the book to be available in your
132 language.</p>
133
134 </div>
135 <div class="tags">
136
137
138 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/opphavsrett">opphavsrett</a>.
139
140
141 </div>
142 </div>
143 <div class="padding"></div>
144
145 <div class="entry">
146 <div class="title">
147 <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>
148 </div>
149 <div class="date">
150 16th July 2012
151 </div>
152 <div class="body">
153 <p>I am currently working on a
154 <a href="http://people.skolelinux.org/pere/blog/Dugnad_for___sende_norsk_versjon_av_Free_Culture_til_stortingets_representanter_.html">project
155 to translate</a> the book
156 <a href="http://free-culture.cc/">Free Culture</a> by Lawrence Lessig
157 to Norwegian. And the source we base our translation on is the
158 <a href="http://en.wikipedia.org/wiki/DocBook">docbook</a> version, to
159 allow us to use po4a and .po files to handle the translation, and for
160 this to work well the docbook source document need to be properly
161 tagged. The source files of this project is available from
162 <a href="https://github.com/petterreinholdtsen/free-culture-lessig">github</a>.</p>
163
164 <p>The problem is that the docbook source have flaws, and we have
165 no-one involved in the project that is a docbook expert. Is there a
166 docbook expert somewhere that is interested in helping us create a
167 well tagged docbook version of the book, and adjust our build process
168 for the PDF, EPUB and HTML version of the book? This will provide a
169 well tagged English version (our source document), and make it a lot
170 easier for us to create a good Norwegian version. If you can and want
171 to help, please get in touch with me or fork the github project and
172 send pull requests with fixes. :)</p>
173
174 </div>
175 <div class="tags">
176
177
178 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/opphavsrett">opphavsrett</a>.
179
180
181 </div>
182 </div>
183 <div class="padding"></div>
184
185 <div class="entry">
186 <div class="title">
187 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__George_Bredberg.html">Debian Edu interview: George Bredberg</a>
188 </div>
189 <div class="date">
190 9th July 2012
191 </div>
192 <div class="body">
193 <p>The <a href="http://www.skolelinux.org/">Debian Edu /
194 Skolelinux</a> project have users all over the globe, but until
195 recently we have not known about any users in Norway's neighbour
196 country Sweden. This changed when George Bredberg showed up in March
197 this year on the mailing list, asking interesting questions about how
198 to adjust and scale the just released
199 <a href="http://www.debian.org/News/2012/20120311.html">Debian Edu
200 Wheezy</a> setup to his liking. He granted me an interview, and I am
201 happy to share his answers with you here.</p>
202
203 <p><strong>Who are you, and how do you spend your days?</strong></p>
204
205 <p>I'm a 44 year old country guy that have been working 12 years at
206 the same school as 50% IT-manager and 50% Teacher. My educational
207 background is fil.kand in history and religious beliefs, an exam as a
208 "folkhighschool" teacher, that is, for teaching grownups. In
209 Norwegian I believe it's called "Vuxenupplaring". I also have a master
210 in "Technology and social change". So I'm not really a tech guy, I
211 just like to study how humans and technology interact and that is my
212 perspective when working with IT.</p>
213
214 <p><strong>How did you get in contact with the Skolelinux/Debian Edu
215 project?</strong></p>
216
217 I have followed the Skolelinux project for quite some time by
218 now. Earlier I tested out the K12-LTSP project, which we used for some
219 time, but I really like the idea of having a distribution aimed to be
220 a complete solution for schools with necessary tools integrated. When
221 K12-LTSP abandoned that idea some years ago, I started to look more
222 seriously into Skolelinux instead.
223
224 <p><strong>What do you see as the advantages of Skolelinux/Debian
225 Edu?</strong></p>
226
227 The big point of Skolelinux to me is that it is a complete
228 distribution, ready to install. It has LDAP-support, MS Windows
229 integration tools and so forth already configured, saving an
230 administrator a lot of time and headache. We were using another Linux
231 based thin-client system called Thinlinc, that has served us very
232 well. But that Skolelinux is based on VNC and LTSP, to me, is better
233 when it comes to the kind of multimedia used in schools. That is
234 showing videos from Youtube or educational TV. It is also easier to
235 mix thin clients with workstations, since the user settings will be the
236 same. In our VNC-based solution you had to "beat around the bush" by
237 setting up a second, hidden, home-directory for user settings for the
238 workstations, because they will be different from the ones used on the
239 thin clients. Skolelinux support for diskless workstations are very
240 convenient since a school today often need to use a class room
241 projector showing videos in full screen. That is easily done with a
242 small integrated media computer running as a diskless workstation. You
243 have only two installs to update and configure. One for the thin
244 clients and one for the workstations. Also saving a lot of time. Our
245 old system was also based on Redhat and CentOS. They are both very
246 nice distributions, but they are sometimes painfully slow when it
247 comes to updating multimedia support and multimedia programs (even
248 such as Gimp), leaving us with a bit "oldish" applications. Debian is
249 quicker to update.
250
251 <p><strong>What do you see as the disadvantages of Skolelinux/Debian
252 Edu?</strong></p>
253
254 <p>Debian is a bit too quick when it comes to updating. As an example
255 we use old HP terminals as thinclients, and two times already this
256 year (2012) the updates you get from the repositories has stopped
257 sound from working with them. It's a kernel/ALSA issue. So you have
258 to be more careful properly testing the updates before you run them in
259 a production environment. This has never happened with CentOS.</p>
260
261 <p>I also would like to be able to set my own domain-settings at
262 install time. In Skolelinux they are kind of hard coded into the
263 distribution, when it comes to LDAP and at least samba integration.
264 That is more a cosmetic/translation issue, and not a real problem.
265 Running MS Windows applications within the Skolelinux environment needs
266 to be better supported. That is, running them seamlessly via RDP, and
267 support for single-sign on. That will make the transition to free
268 software easier, because you can keep the applications you really
269 need. No support will make it impossible if you work in a school where
270 some applications can't be open source. As for us we really need to
271 run Adobe InDesign in our journalist classes. We run a journalist
272 education, and is one of the very few non university ones that is ok:d
273 by Svenska journalistförbundet (Swedish journalist association). Our
274 education gives the pupils the right of membership there, once they
275 are done. This is important if you want to get a job.</p>
276
277 <p>Adobe InDesign is the program most commonly used in newspapers and
278 magazines. We used Quark Express before, but they seem to loose there
279 market to Adobe. The only "equivalent" to InDesign in the opensource
280 world is Scribus, and its not advanced enough. At least not according
281 to the teacher. I think it would be possible to use it, because they
282 are not supposed to learn a program, they are supposed to learn how to
283 edit and compile a newspaper. But politically at our school we are not
284 there yet. And Scribus lacks a lot of things you find i InDesign.</p>
285
286 <p>We used even a windows program for sound editing when it comes to
287 the radio-journalist part. The year to come we are going to try
288 Audacity. That software has the same kind of limitations compared to
289 Adobe Audition, but that teacher is a bit more open minded. We have
290 tried Ardour also, but that instead is more like a music studio
291 program, not intended for the kind of editing taking place in a radio
292 studio. Its way to complex and the GUI is to scattered when you only
293 want to cut, make pass-overs, add extra channels and normalise. Those
294 things you can do in Audacity, but its not as easy as in Audition. You
295 have to do more things manually with envelopes, and that is a bit old
296 fashion and timewasting. Its also harder to cut and move sound from
297 one channel to another, which is a thing that you do frequently
298 because you often find yourself needing to rearrange parts of the
299 sound file.</p>
300
301 <p>So, I am not sure we will succeed in replacing even Audition, but we
302 will try. The problem is the students have certain expectations when
303 they start an education towards a profession. So the programs has to
304 look and feel professional. Good thing with radio, there are many
305 programs out there, that radio studios use, so its not as standardised
306 as Newspaper editing. That means, it does not really matter what
307 program they learn, because once they start working they still have to
308 learn the program the studio uses, so instead focus has to be to learn
309 the editing part without to much focus on a specific software.</p>
310
311 <p><strong>Which free software do you use daily?</strong></p>
312
313 <p>Myself I'm running Linux Mint, or Ubuntu these days. I use almost
314 only open source software, and preferably Linux based. When it comes
315 to most used applications its OpenOffice, and Firefox (of course ;)
316 )</p>
317
318 <p><strong>Which strategy do you believe is the right one to use to
319 get schools to use free software?</strong></p>
320
321 <p>To get schools to use free software there has to be good open
322 source software that are windows based, to ease the transition. But
323 it's also very important that the multimedia support is working
324 flawlessly. The problems with Youtube, Twitter, Facebook and whatever
325 will create problems when it comes to both teachers and
326 students. Economy are also important for schools, so using thin
327 clients, as long as they have good multimedia support, is a very good
328 idea. It's also important that the open source software works even for
329 the administration. It's hard to convince the teachers to stick with
330 open source, if the principal has to run Windows. It also creates a
331 problem if some classes has to use Windows for there tasks, since that
332 will create a difference in "status" between classes, so a good
333 support for running windows applications via the thin client (Linux)
334 desktop is essential. At least at our school, where we have mixed
335 level of educations, from high-school to journalist-school.</p>
336
337 <p>Update 2012-07-09 08:30: Paul Wise tipped me on IRC about three
338 useful sources related to Free Software for radio stations: the LWN
339 article <a href="https://lwn.net/Articles/481607/">Radio station
340 management with Airtime</a>,
341 <a href="http://www.sourcefabric.org/en/airtime/">Airtime</a> which
342 claim to be a Free open source radio automation software and
343 <a href="http://www.rivendellaudio.org/">Rivendell</a> which claim to
344 be complete radio broadcast automation solution. All of them seem
345 useful to the aspiring radio producer.</p>
346
347 </div>
348 <div class="tags">
349
350
351 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>.
352
353
354 </div>
355 </div>
356 <div class="padding"></div>
357
358 <div class="entry">
359 <div class="title">
360 <a href="http://people.skolelinux.org/pere/blog/Why_do_schools_waste_money_on_IT_.html">Why do schools waste money on IT?</a>
361 </div>
362 <div class="date">
363 8th July 2012
364 </div>
365 <div class="body">
366 <p>In the Debian Edu / Skolelinux project, we have realised that one
367 of the major blockers for the project success is the purchasing skills
368 in schools and municipalities. We provide what the happy users of
369 Debian Edu / Skolelinux say they need and to a lower cost than the
370 alternatives, and yet so few schools decide to use our solution. I
371 was pleased to discover the same observation done by mySociety and Tom
372 Steinberg in his blog post
373 "<a href="http://www.mysociety.org/2012/06/19/can-you-recognize-the-million-pound-chair/">Can
374 you recognize the million pound chair?</a>". Read it and weep for the
375 spending of your tax money.</p>
376
377 <p>Of course there are other factors involved as well, like our
378 projects bad marketing skills and the Linux community fragmentation
379 causing worry with the people on the outside, so we as a project need
380 to keep working hard to gain users, but it is a up-hill battle when
381 public decision makers are unable to understand computer system
382 purchases.</p>
383
384 </div>
385 <div class="tags">
386
387
388 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>.
389
390
391 </div>
392 </div>
393 <div class="padding"></div>
394
395 <div class="entry">
396 <div class="title">
397 <a href="http://people.skolelinux.org/pere/blog/Free_Timetabling_Software___nice_free_software.html">Free Timetabling Software - nice free software</a>
398 </div>
399 <div class="date">
400 7th July 2012
401 </div>
402 <div class="body">
403 <p>Included in <a href="http://www.skolelinux.org/">Debian Edu /
404 Skolelinux</a> is a large collection of end user and school specific
405 software. It is one of the packages not installed by default but
406 provided in the Debian archive for schools to install if they want to,
407 is a system to automatically plan the school time table using
408 information about available teachers, classes and rooms, combined with
409 the list of required courses and how many hours each topic should
410 receive. The software is
411
412 <a href="http://lalescu.ro/liviu/fet/">named FET</a>, and it provide a
413 graphical user interface to input the required information, save the
414 result in a fairly simple XML format, and generate time tables for
415 both teachers and students. It is available both for
416 <a href="http://lalescu.ro/liviu/fet/download.html">Linux, MacOSX and
417 Windows</a>.</p>
418
419 <p>This is <a href="http://lalescu.ro/liviu/fet/features.html">the
420 feature list</a>, liftet from the project web site:</p>
421
422 <p><ul>
423
424 <li>FET is free software, licensed under the GNU GPL v2 or later.
425 You can freely use, copy, modify and redistribute it </li>
426
427 <li>Localized to en_US (US English, default), ar (Arabic), ca
428 (Catalan), da (Danish), de (German), el (Greek), es (Spanish), fa
429 (Persian), fr (French), gl (Galician), he (Hebrew), hu
430 (Hungarian), id (Indonesian), it (Italian), lt (Lithuanian), mk
431 (Macedonian), ms (Malay), nl (Dutch), pl (Polish), pt_BR
432 (Brazilian Portuguese), ro (Romanian), ru (Russian), si (Sinhala),
433 sk (Slovak), sr (Serbian), tr (Turkish), uk (Ukrainian), uz
434 (Uzbek) and vi (Vietnamese) (incompletely for some languages)
435 </li>
436
437 <li>Fully automatic generation algorithm, allowing also
438 semi-automatic or manual allocation</li>
439
440 <li>Platform independent implementation, allowing running on
441 GNU/Linux, Windows, Mac and any system that Qt supports </li>
442
443 <li>Flexible modular XML format for the input file, allowing editing
444 with an XML editor or by hand (besides FET interface)</li>
445
446 <li>Import/export from CSV format</li>
447
448 <li>The resulted timetables are exported into HTML, XML and CSV
449 formats </li>
450
451 <li>Flexible students structure, organized into sets: years, groups
452 and subgroups. FET allows overlapping years and groups and
453 non-overlapping subgroups. You can even define individual students
454 (as separate sets)</li>
455
456 <li>Each constraint has a weight percentage, from 0.0% to 100.0%
457 (but some special constraints are allowed to have only 100% weight
458 percentage)</li>
459
460 <li>Limits for the algorithm (all these limits can be increased on
461 demand, as a custom version, because this would require a bit more
462 memory):
463 <ul>
464 <li>Maximum total number of hours (periods) per day: 60</li>
465 <li>Maximum number of working days per week: 35</li>
466 <li>Maximum total number of teachers: 6000</li>
467 <li>Maximum total number of sets of students: 30000</li>
468 <li>Maximum total number of subjects: 6000</li>
469 <li>Virtually unlimited number of activity tags</li>
470 <li>Maximum number of activities: 30000</li>
471 <li>Maximum number of rooms: 6000</li>
472 <li>Maximum number of buildings: 6000</li>
473 <li>Possibility of adding multiple teachers and
474 students sets for each activity. (it is possible
475 also to have no teachers or no students sets for an
476 activity)</li>
477 <li>Virtually unlimited number of time constraints</li>
478 <li>Virtually unlimited number of space constraints</li>
479 </ul></li>
480
481 <li>A large and flexible palette of time constraints:
482 <ul>
483 <li>Break periods</li>
484 <li>For teacher(s):
485 <ul>
486 <li>Not available periods</li>
487 <li>Max/min days per week</li>
488 <li>Max gaps per day/week</li>
489 <li>Max hours daily/continuously</li>
490 <li>Min hours daily</li>
491 <li>Max hours daily/continuously with an activity tag</li>
492
493 <li>Respect working in an hourly interval a max number of
494 days per week</li>
495 </ul></li>
496 <li>For students (sets):
497 <ul>
498 <li>Not available periods</li>
499 <li>Begins early (specify max allowed beginnings at second hour)</li>
500 <li>Max gaps per day/week</li>
501 <li>Max hours daily/continuously</li>
502 <li>Min hours daily</li>
503 <li>Max hours daily/continuously with an activity tag</li>
504
505 <li>Respect working in an hourly interval a max number of
506 days per week</li>
507 </ul></li>
508 <li>For an activity or a set of activities/subactivities:
509 <ul>
510 <li>A single preferred starting time</li>
511 <li>A set of preferred starting times</li>
512 <li>A set of preferred time slots</li>
513 <li>Min/max days between them</li>
514 <li>End(s) students day</li>
515 <li>Same starting time/day/hour</li>
516 <li>Occupy max time slots from selection (a complex and
517 flexible constraint, useful in many situations)</li>
518 <li>Consecutive, ordered, grouped (for 2 or 3 (sub)activities)</li>
519 <li>Not overlapping</li>
520 <li>Max simultaneous in selected time slots</li>
521 <li>Min gaps between a set of (sub)activities</li>
522 </ul></li>
523 </ul></li>
524
525 <li>A large and flexible palette of space constraints:
526 <ul>
527 <li>Room not available periods</li>
528 <li>For teacher(s):
529 <ul>
530 <li>Home room(s)</li>
531 <li>Max building changes per day/week</li>
532 <li>Min gaps between building changes</li>
533 </ul>
534 </li>
535
536 <li>For students (sets):
537 <ul>
538 <li>Home room(s)</li>
539 <li>Max building changes per day/week</li>
540 <li>Min gaps between building changes</li>
541 </ul>
542 </li>
543 <li>Preferred room(s):
544 <ul>
545 <li>For a subject</li>
546 <li>For an activity tag</li>
547 <li>For a subject and an activity tag</li>
548 <li>Individually for a (sub)activity</li>
549 </ul>
550 </li>
551
552 <li>For a set of activities:
553 <ul>
554 <li>Occupy a maximum number of different rooms</li>
555 </ul>
556 </li>
557 </ul>
558 </li>
559 </ul></p>
560
561 <p>I have not used it myself, as I am not involved in time table
562 planning at a school, but it seem to work fine when I test it. If you
563 need to set up your schools time table, and is tired of doing it
564 manually, check it out.
565
566 A quick summary on how to use it can be found in
567 <a href="http://marvelsoft.co.in/wp/2012/03/generate-timetable-for-state-cbse-icse-igcse-schools-free/">a
568 blog post from MarvelSoft</a>. If you find FET useful, please provide
569 a recipe for the Debian Edu project in the
570 <a href="http://wiki.debian.org/DebianEdu#Howtos">Debian Edu HowTo
571 section</a>.</p>
572
573 </div>
574 <div class="tags">
575
576
577 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>.
578
579
580 </div>
581 </div>
582 <div class="padding"></div>
583
584 <div class="entry">
585 <div class="title">
586 <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>
587 </div>
588 <div class="date">
589 3rd July 2012
590 </div>
591 <div class="body">
592 <p>In the NUUG <a href="http://www.fiksgatami.no/">FiksGataMi</a>
593 project (Norwegian version of
594 <a href="http://www.fixmystreet.com/">FixMyStreet</a> from
595 <a href="http://www.mysociety.org/">mySociety</a>), we have discovered
596 a problem with the municipalities using
597 <a href="http://www.zimbra.com/">Zimbra</a>. When FiksGataMi send a
598 problem report to the government, the email From: address is set to
599 the address of the person reporting the problem, while envelope sender
600 is set to the FiksGataMi contact address. The intention is to make
601 sure the municipality send any replies to the person reporting the
602 problem, while any email delivery problems are sent to us in NUUG.
603 This work well in most cases, but not for Karmøy municipality using
604 Zimbra. Karmøy is using the vacation message function in Zimbra to
605 send an automatic reply to report that the message has been received,
606 and this message is sent to the envelope sender and not the address in
607 the From: header.</p>
608
609 <p>This causes the automatic message from Karmøy to go to NUUGs
610 request-tracker instance instead of to the person reporting the
611 problem. We can not really change the envelope sender address, as
612 this would make it impossible for us to discover when there are
613 problems with the MTAs receiving problem reports. We have been in
614 contact with the people at Karmøy municipality, and they are willing
615 to adjust Zimbra if something can be changed there to get a better
616 behaviour.</p>
617
618 <p>The default behaviour of Zimbra is as far as I can tell according
619 to the specification in RFC 3834, which recommend that vacation
620 messages are sent to the envelope sender and not to the From: address.
621 But I wonder if it is possible to adjust or configure Zimbra to behave
622 differently. Anyone know? Please let us know at
623 <a href="http://lists.nuug.no/mailman/listinfo/fiksgatami">fiksgatami
624 (at) nuug.no</a>.</p>
625
626 </div>
627 <div class="tags">
628
629
630 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>.
631
632
633 </div>
634 </div>
635 <div class="padding"></div>
636
637 <div class="entry">
638 <div class="title">
639 <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>
640 </div>
641 <div class="date">
642 26th June 2012
643 </div>
644 <div class="body">
645 <p>I've been too busy at home, but finally I found time to wrap up
646 another interview with the people behind
647 <a href="http://www.skolelinux.org/">Debian Edu and Skolelinux</a>.
648 This time we get to know José Luis Redrejo Rodríguez, one of our great
649 helpers from Spain. His effort was the reason we added support for
650 several desktop types (KDE, Gnome and most recently LXDE) in Debian
651 Edu, and have all of these available in the recently published
652 <a href="http://www.debian.org/News/2012/20120311.html">Debian Edu
653 Squeeze</a> version.</p>
654
655 <p><strong>Who are you, and how do you spend your days?</strong></p>
656
657 <p>I'm a father, teacher and engineer who is working for the Education
658 ministry of the Region of Extremadura (Spain) in the implementation of
659 ICT in schools</p>
660
661 <p><strong>How did you get in contact with the Skolelinux/Debian Edu
662 project?</strong></p>
663
664 <p>At 2006, I verified that both, we in Extremadura and Skolelinux
665 project, had been working in parallel for some years, doing very
666 similar things, using very similar tools and with similar targets, so
667 I decided it was time to join forces as much as possible.</p>
668
669 <p><strong>What do you see as the advantages of Skolelinux/Debian
670 Edu?</strong></p>
671
672 <p>A community of highly skilled experts working together, with a
673 really open schema of collaboration and work. I really love the
674 concepts of Do-ocracy and Merit-ocracy and the way these concepts are
675 been used everyday inside Debian Edu.</p>
676
677 <p><strong>What do you see as the disadvantages of Skolelinux/Debian
678 Edu?</strong></p>
679
680 <p>Sometimes the differences in the implementations, laws or
681 economical and technical resources in the different countries don't
682 allow us to agree in the same solution for all of us, and several
683 approaches are needed, what is a waste of effort. Also, there is a
684 lack of more man power to be able to follow the fast evolution of the
685 technologies in school.</p>
686
687 <p><strong>Which free software do you use daily?</strong></p>
688
689 <p>Debian, of course, and due to my kind of job I am most of my time
690 between Iceweasel, <a href="http://www.geany.org/">Geany</a> and
691 <a href="http://www.ohloh.net/p/gnome-terminator">Terminator</a>.</p>
692
693 <p><strong>Which strategy do you believe is the right one to use to
694 get schools to use free software?</strong></p>
695
696 <p>I think there is not a single strategy because there are very
697 different scenarios: schools with mixed proprietary and free
698 environments, schools using only workstations, other schools using
699 laptops, netbooks, tablets, interactive white-boards, etc.</p>
700
701 <p>Also the range of ages of the students is very broad and you can
702 not use the same solutions for primary schools and secondary or even
703 universities. So different strategies are needed.</p>
704
705 <p>But, looking at these differences, and looking back to the things
706 we've done and implemented, and the places were we have spent most of
707 our forces, I think we should focus as much as possible in free
708 multi-platform environments, using only standards tools, and moving
709 more and more to Internet or network solutions that could be deployed
710 using wireless. I think we'll see more and more personal devices in
711 the schools, devices the students and teachers will take home with
712 them, so the solutions must be able to be taken at home and continue
713 working there.</p>
714
715 </div>
716 <div class="tags">
717
718
719 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>.
720
721
722 </div>
723 </div>
724 <div class="padding"></div>
725
726 <div class="entry">
727 <div class="title">
728 <a href="http://people.skolelinux.org/pere/blog/Song_book_for_Computer_Scientists.html">Song book for Computer Scientists</a>
729 </div>
730 <div class="date">
731 24th June 2012
732 </div>
733 <div class="body">
734 <p>Many years ago, while studying Computer Science at the
735 <a href="http://www.uit.no/">University of Tromsø</a>, I started
736 collecting computer related songs for use at parties. The original
737 version was written in LaTeX, but a few years ago I got help from
738 Håkon W. Lie, one of the inventors of W3C CSS, to convert it to HTML
739 while keeping the ability to create a nice book in PDF format. I have
740 not had time to maintain the book for a while now, and guess I should
741 put it up on some public version control repository where others can
742 help me extend and update the book. If anyone is volunteering to help
743 me with this, send me an email. Also let me know if there are songs
744 missing in my book.</p>
745
746 <p>I have not mentioned the book on my blog so far, and it occured to
747 me today that I really should let all my readers share the joys of
748 singing out load about programming, computers and computer networks.
749 Especially now that <a href="http://debconf12.debconf.org/">Debconf
750 12</a> is about to start (and I am not going). Want to sing? Check
751 out <a href="http://www.hungry.com/~pere/cs-songbook/">Petter's
752 Computer Science Songbook</a>.
753
754 </div>
755 <div class="tags">
756
757
758 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>.
759
760
761 </div>
762 </div>
763 <div class="padding"></div>
764
765 <div class="entry">
766 <div class="title">
767 <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>
768 </div>
769 <div class="date">
770 11th June 2012
771 </div>
772 <div class="body">
773 <p>During my work on
774 <a href="http://www.debian.org/News/2012/20120311.nb.html">Debian Edu
775 based on Squeeze</a>, I came across some issues that should be
776 addressed in the Wheezy release. I finally found time to wrap up my
777 notes and provide quick summary of what I found, with a bit
778 explanation.</p>
779
780 <p><ul>
781
782 <li>We need to rewrite our package installation framework, as tasksel
783 changed from using tasksel tasks to using meta packages (aka packages
784 with dependencies like our education-* packages), and our installation
785 system depend on tasksel tasks in
786 /usr/share/tasksel/debian-edu-tasks.desc for package
787 installation.</li>
788
789 <li>Enable Kerberos login for more services. Now with the Kerberos
790 foundation in place, we should use it to get single sign on with more
791 services, and avoiding unneeded password / login questions. We should
792 at least try to enable it for these services:
793 <ul>
794
795 <li>CUPS for admins to add/configure printers and users when using
796 quotas.</li>
797 <li>Nagios for admins checking the system status.</li>
798 <li>GOsa for admins updating LDAP and users changing their passwords.</li>
799 <li>LDAP for admins updating LDAP.</li>
800 <li>Squid for users when exam mode / filtering is active.</li>
801 <li>ssh for admins and users to save a password prompt.</li>
802
803 </ul></li>
804
805 <li>When we move GOsa to use Kerberos instead of LDAP bind to
806 authenticate users, we should try to block or at least limit access to
807 use LDAP bind for authentication, to ensure Kerberos is used when it
808 is intended, and nothing fall back to using the less safe LDAP bind</li>
809
810 <li>Merge debian-edu-config and debian-edu-install. The split made
811 sense when d-e-install did a lot more, but these days it is just an
812 inconvenience when we update the debconf preseeding values.</li>
813
814 <li>Fix partman-auto to allow us to abort the installation before
815 touching the disk if the disk is too small. This is
816 <a href="http://bugs.debian.org/653305">BTS report #653305</a> and the
817 d-i developers are fine with the patch and someone just need to apply
818 it and upload. After this is done we need to adjust
819 debian-edu-install to use this new hook.</li>
820
821 <li>Adjust to new LTSP framework (boot time config instead of install
822 time config). LTSP changed its design, and our hooks to install
823 packages and update the configuration is most likely not going to work
824 in Wheezy.
825
826 <li>Consider switching to NBD instead of NFS for LTSP root, to allow
827 the Kernel to cache files in its normal file cache, possibly speeding
828 up KDE login on slow networks.</li>
829
830 <li>Make it possible to create expired user passwords that need to
831 change on first login. This is useful when handing out password on
832 paper, to make sure only the user know the password. This require
833 fixes to the PAM handling of kdm and gdm.</li>
834
835 <li>Make GUI for adding new machines automatically from sitesummary.
836 The current command line script is not very friendly to people most
837 familiar with GUIs. This should probably be integrated into GOsa to
838 have it available where the admin will be looking for it..</li>
839
840 <li>We should find way for Nagios to check that the DHCP service
841 actually is working (as in handling out IP addresses). None of the
842 Nagios checks I have found so far have been working for me.</li>
843
844 <li>We should switch from libpam-nss-ldapd to sssd for all profiles
845 using LDAP, and not only on for roaming workstations, to have less
846 packages to configure and consistent setup across all profiles.</li>
847
848 <li>We should configure Kerberos to update LDAP and Samba password
849 when changing password using the Kerberos protocol. The hook was
850 requested in <a href="http://bugs.debian.org/588968">BTS report
851 #588968</a> and is now available in Wheezy. We might need to write a
852 MIT Kerberos plugin in C to get this.</li>
853
854 <li>We should clean up the set of applications installed by default.
855 <ul>
856
857 <li>reduce the number of chemistry visualisers</li>
858 <li>consider dropping xpaint</li>
859 <li>and probably more?</li>
860 </ul></li>
861
862 <li>Some hardware need external firmware to work properly. This is
863 mostly the case for WiFi network cards, but there are some other
864 examples too. For popular laptops to work out of the box, such
865 firmware need to be installed from non-free, and we should provide
866 some GUI to do this. Ubuntu already have this implemented, and we
867 could consider using their packages. At the moment we have some
868 command line script to do this (one for the running system, another
869 for the LTSP chroot).</li>
870
871
872 <li>In Squeeze, we provide KDE, Gnome and LXDE as desktop options. We
873 should extend the list to Xfce and Sugar, and preferably find a way to
874 install several and allow the admin or the user to select which one to
875 use.</li>
876
877 <li>The golearn tool from the goplay package make it easy to check out
878 interesting educational packages. We should work on the package
879 tagging in Debian to ensure it represent all the useful educational
880 packages, and extend the tool to allow it to use packagekit to install
881 new applications with a simple mouse click.</li>
882
883 <li>The Squeeze version got half a exam solution already in place,
884 with the introduction of iptable based network blocking, but for it to
885 be a complete exam solution the Squid proxy need to enable
886 filtering/blocking as well when the exam mode is enabled. We should
887 implement a way to easily enable this for the schools that want it,
888 instead of the "it is documented" method of today.</li>
889
890 <li>A feature used in several schools is the ability for a teacher to
891 "take over" the desktop of individual or all computers in the room.
892 There are at least three implementations,
893 <a href="italc.sourceforge.net/">italc</a>,
894 <a href="http://www.itais.net/help/en/">controlaula</a> og
895 <a href="http://www.epoptes.org/">epoptes</a> and we should pick one of
896 them and make it trivial to set it up in a school. The challenges is
897 how to distribute crypto keys and how to group computers in one room
898 and how to set up which machine/user can control the machines in a
899 given room.</li>
900
901 <li>Tablets and surf boards are getting more and more popular, and we
902 should look into providing a good solution for integrating these into
903 the Debian Edu network. Not quite sure how. Perhaps we should
904 provide a installation profile with better touch screen support for
905 them, or add some sync services to allow them to exchange
906 configuration and data with the central server. This should be
907 investigated.</li>
908
909 </ul></p>
910
911 <p>I guess we will discover more as we continue to work on the Wheezy
912 version.</p>
913
914 </div>
915 <div class="tags">
916
917
918 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>.
919
920
921 </div>
922 </div>
923 <div class="padding"></div>
924
925 <div class="entry">
926 <div class="title">
927 <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>
928 </div>
929 <div class="date">
930 9th June 2012
931 </div>
932 <div class="body">
933 <p>Slashdot got a story about Intel planning a
934 <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
935 with face recognition</a> to recognise the viewer, and it occurred to
936 me that it would be more interesting to turn it around, and do face
937 recognition on the TV image itself. It could let the viewer know who
938 is present on the screen, and perhaps look up their credibility,
939 company affiliation, previous appearances etc for the viewer to better
940 evaluate what is being said and done. That would be a feature I would
941 be willing to pay for.</p>
942
943 <p>I would not be willing to pay for a TV that point a camera on my
944 household, like the big brother feature apparently proposed by Intel.
945 It is the telescreen idea fetched straight out of the book
946 <a href="http://gutenberg.net.au/ebooks01/0100021.txt">1984 by George
947 Orwell</a>.</p>
948
949 </div>
950 <div class="tags">
951
952
953 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>.
954
955
956 </div>
957 </div>
958 <div class="padding"></div>
959
960 <div class="entry">
961 <div class="title">
962 <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>
963 </div>
964 <div class="date">
965 6th June 2012
966 </div>
967 <div class="body">
968 <p>A few days ago
969 <a href="http://people.skolelinux.org/pere/blog/SOAP_based_webservice_from_Dell_to_check_server_support_status.html">I
970 reported how to get</a> the support status out of Dell using an
971 unofficial and undocumented SOAP API, which I since have found out was
972 <a href="http://lists.us.dell.com/pipermail/linux-poweredge/2012-February/045959.html">discovered
973 by Daniel De Marco in february</a>. Combined with my web scraping
974 code for HP, Dell and IBM
975 <a href="http://people.skolelinux.org/pere/blog/Checking_server_hardware_support_status_for_Dell__HP_and_IBM_servers.html">from
976 2009</a>, I got inspired and wrote
977 <a href="https://views.scraperwiki.com/run/computer-hardware-support-status/">a
978 web service</a> based on Scraperwiki to make it easy to look up the
979 support status and get a machine readable result back.</p>
980
981 <p>This is what it look like at the moment when asking for the JSON
982 output:
983
984 <blockquote><pre>
985 % 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>
986 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": ""})
987 %
988 </pre></blockquote>
989
990 <p>It currently support Dell and HP, and I am hoping for help to add
991 support for other vendors. The python source is available on
992 Scraperwiki and I welcome help with adding more features.</p>
993
994 </div>
995 <div class="tags">
996
997
998 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>.
999
1000
1001 </div>
1002 </div>
1003 <div class="padding"></div>
1004
1005 <div class="entry">
1006 <div class="title">
1007 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Mike_Gabriel.html">Debian Edu interview: Mike Gabriel</a>
1008 </div>
1009 <div class="date">
1010 2nd June 2012
1011 </div>
1012 <div class="body">
1013 <p>Back in 2010, Mike Gabriel showed up on the
1014 <a href="http://www.skolelinux.org/">Debian Edu and Skolelinux</a>
1015 mailing list. He quickly proved to be a valuable developer, and
1016 thanks to his tireless effort we now have Kerberos integrated into the
1017 <a href="http://www.debian.org/News/2012/20120311.html">Debian Edu
1018 Squeeze</a> version.</p>
1019
1020 <p><strong>Who are you, and how do you spend your days?</strong></p>
1021
1022 <p>My name is Mike Gabriel, I am 38 years old and live near Kiel,
1023 Schleswig-Holstein, Germany. I live together with a wonderful partner
1024 (Angela Fuß) and two own children and two bonus children (contributed
1025 by Angela).</p>
1026
1027 <p>During the day I am part-time employed as a system administrator
1028 and part-time working as an IT consultant. The consultancy work
1029 touches free software topics wherever and whenever possible. During
1030 the nights I am a free software developer. In the gaps I also train in
1031 becoming an osteopath.</p>
1032
1033 <p>Starting in 2010 we (Andreas Buchholz, Angela Fuß, Mike Gabriel)
1034 have set up a free software project in the area of Kiel that aims at
1035 introducing free software into schools. The project's name is
1036 "IT-Zukunft Schule" (IT future for schools). The project links IT
1037 skills with communication skills.</p>
1038
1039 <p><strong>How did you get in contact with the Skolelinux/Debian Edu
1040 project?</strong></p>
1041
1042 <p>While preparing our own customised Linux distribution for
1043 "IT-Zukunft Schule" we were repeatedly asked if we really wanted to
1044 reinvent the wheel. What schools really need is already available,
1045 people said. From this impulse we started evaluating other Linux
1046 distributions that target being used for school networks.</p>
1047
1048 <p>At the end we short-listed two approaches and compared them: a
1049 commercial Linux distribution developed by a company in Bremen,
1050 Germany, and Skolelinux / Debian Edu. Between 12/2010 and 03/2011 we
1051 went to several events and met people being responsible for marketing
1052 and development of either of the distributions. Skolelinux / Debian
1053 Edu was by far much more convincing compared to the other product that
1054 got short-listed beforehand--across the full spectrum. What was most
1055 attractive for me personally: the perspective of collaboration within
1056 the developmental branch of the Debian Edu project itself.</p>
1057
1058 <p>In parallel with this, we talked to many local and not-so-local
1059 people. People teaching at schools, headmasters, politicians, data
1060 protection experts, other IT professionals.</p>
1061
1062 <p>We came to two conclusions:</p>
1063
1064 <p>First, a technical conclusion: What schools need is available in
1065 bits and pieces here and there, and none of the solutions really fit
1066 by 100%. Any school we have seen has a very individual IT setup
1067 whereas most of each school's requirements could mapped by a standard
1068 IT solution. The requirement to this IT solution is flexibility and
1069 customisability, so that individual adaptations here and there are
1070 possible. In terms of re-distributing and rolling out such a
1071 standardised IT system for schools (a system that is still to some
1072 degree customisable) there is still a lot of work to do here
1073 locally. Debian Edu / Skolelinux has been our choice as the starting
1074 point.</p>
1075
1076 <p>Second, a holistic conclusion: What schools need does not exist at
1077 all (or we missed it so far). There are several technical solutions
1078 for handling IT at schools that tend to make a good impression. What
1079 has been missing completely here in Germany, though, is the enrolment
1080 of people into using IT and teaching with IT. "IT-Zukunft Schule"
1081 tries to provide an approach for this.</p>
1082
1083 <p>Only some schools have some sort of a media concept which explains,
1084 defines and gives guidance on how to use IT in class. Most schools in
1085 Northern Germany do not have an IT service provider, the school's IT
1086 equipment is managed by one or (if the school is lucky) two (admin)
1087 teachers, most of the workload these admin teachers get done in there
1088 spare time.</p>
1089
1090 <p>We were surprised that only a very few admin teachers were
1091 networked with colleagues from other schools. Basically, every school
1092 here around has its individual approach of providing IT equipment to
1093 teachers and students and the exchange of ideas has been quasi
1094 non-existent until 2010/2011.</p>
1095
1096 <p>Quite some (non-admin) teachers try to avoid using IT technology in
1097 class as a learning medium completely. Several reasons for this
1098 avoidance do exist.</p>
1099
1100 <p>We discovered that no-one has ever taken a closer look at this
1101 social part of IT management in schools, so far. On our quest journey
1102 for a technical IT solution for schools, we discussed this issue with
1103 several teachers, headmasters, politicians, other IT professionals and
1104 they all confirmed: a holistic approach of considering IT management
1105 at schools, an approach that includes the people in place, will be new
1106 and probably a gain for all.</p>
1107
1108 <p><strong>What do you see as the advantages of Skolelinux/Debian
1109 Edu?</strong></p>
1110
1111 <p>There is a list of advantages: international context, openness to
1112 any kind of contributions, do-ocracy policy, the closeness to Debian,
1113 the different installation scenarios possible (from stand-alone
1114 workstation to complex multi-server sites), the transparency within
1115 project communication, honest communication within the group of
1116 developers, etc.</p>
1117
1118 <p><strong>What do you see as the disadvantages of Skolelinux/Debian
1119 Edu?</strong></p>
1120
1121 <p>Every coin has two sides:</p>
1122
1123 <p>Technically: <a href="http://bugs.debian.org/311188">BTS issue
1124 #311188</a>, tricky upgradability of a Debian Edu main server, network
1125 client installations on top of a plain vanilla Debian installation
1126 should become possible sometime in the near future, one could think
1127 about splitting the very complex package debian-edu-config into
1128 several portions (to make it easier for new developers to
1129 contribute).</p>
1130
1131 <p>Another issue I see is that we (as Debian Edu developers) should
1132 find out more about the network of people who do the marketing for
1133 Debian Edu / Skolelinux. There is a very active group in Germany
1134 promoting Skolelinux on the bigger Linux Days within Germany. Are
1135 there other groups like that in other countries? How can we bring
1136 these marketing people together (marketing group A with group B and
1137 all of them with the group of Debian Edu developers)? During the last
1138 meeting of the German Skolelinux group, I got the impression of people
1139 there being rather disconnected from the development department of
1140 Debian Edu / Skolelinux.</p>
1141
1142 <p><strong>Which free software do you use daily?</strong></p>
1143
1144 <p>For my daily business, I do not use commercial software at all.</p>
1145
1146 <p>For normal stuff I use Iceweasel/Firefox, Libreoffice.org. For
1147 serious text writing I prefer LaTeX. I use gimp, inkscape, scribus for
1148 more artistic tasks. I run virtual machines in KVM and Virtualbox.</p>
1149
1150 <p>I am one of the upstream developers of X2Go. In 2010 I started the
1151 development of a Python based X2Go Client, called PyHoca-GUI.
1152 PyHoca-GUI has brought forth a Python X2Go Client API that currently
1153 is being integrated in Ubuntu's software center.</p>
1154
1155 <p>For communications I have my own Kolab server running using Horde
1156 as web-based groupware client. For IRC I love to use irssi, for Jabber
1157 I have several clients that I use, mostly pidgin, though. I am also
1158 the Debian maintainer of Coccinella, a Jabber-based interactive
1159 whiteboard.</p>
1160
1161 <p>My favourite terminal emulator is KDE's Yakuake.</p>
1162
1163 <p><strong>Which strategy do you believe is the right one to use to
1164 get schools to use free software?</strong></p>
1165
1166 <p>Communicate, communicate, communicate. Enrol people, enrol people,
1167 enrol people.</p>
1168
1169 </div>
1170 <div class="tags">
1171
1172
1173 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>.
1174
1175
1176 </div>
1177 </div>
1178 <div class="padding"></div>
1179
1180 <div class="entry">
1181 <div class="title">
1182 <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>
1183 </div>
1184 <div class="date">
1185 1st June 2012
1186 </div>
1187 <div class="body">
1188 <p>A few years ago I wrote
1189 <a href="http://people.skolelinux.org/pere/blog/Checking_server_hardware_support_status_for_Dell__HP_and_IBM_servers.html">how
1190 to extract support status</a> for your Dell and HP servers. Recently
1191 I have learned from colleges here at the
1192 <a href="http://www.uio.no/">University of Oslo</a> that Dell have
1193 made this even easier, by providing a SOAP based web service. Given
1194 the service tag, one can now query the Dell servers and get machine
1195 readable information about the support status. This perl code
1196 demonstrate how to do it:</p>
1197
1198 <p><pre>
1199 use strict;
1200 use warnings;
1201 use SOAP::Lite;
1202 use Data::Dumper;
1203 my $GUID = '11111111-1111-1111-1111-111111111111';
1204 my $App = 'test';
1205 my $servicetag = $ARGV[0] or die "Please supply a servicetag. $!\n";
1206 my ($deal, $latest, @dates);
1207 my $s = SOAP::Lite
1208 -> uri('http://support.dell.com/WebServices/')
1209 -> on_action( sub { join '', @_ } )
1210 -> proxy('http://xserv.dell.com/services/assetservice.asmx')
1211 ;
1212 my $a = $s->GetAssetInformation(
1213 SOAP::Data->name('guid')->value($GUID)->type(''),
1214 SOAP::Data->name('applicationName')->value($App)->type(''),
1215 SOAP::Data->name('serviceTags')->value($servicetag)->type(''),
1216 );
1217 print Dumper($a -> result) ;
1218 </pre></p>
1219
1220 <p>The output can look like this:</p>
1221
1222 <p><pre>
1223 $VAR1 = {
1224 'Asset' => {
1225 'Entitlements' => {
1226 'EntitlementData' => [
1227 {
1228 'EntitlementType' => 'Expired',
1229 'EndDate' => '2009-07-29T00:00:00',
1230 'Provider' => '',
1231 'StartDate' => '2006-07-29T00:00:00',
1232 'DaysLeft' => '0'
1233 },
1234 {
1235 'EntitlementType' => 'Expired',
1236 'EndDate' => '2009-07-29T00:00:00',
1237 'Provider' => '',
1238 'StartDate' => '2006-07-29T00:00:00',
1239 'DaysLeft' => '0'
1240 },
1241 {
1242 'EntitlementType' => 'Expired',
1243 'EndDate' => '2007-07-29T00:00:00',
1244 'Provider' => '',
1245 'StartDate' => '2006-07-29T00:00:00',
1246 'DaysLeft' => '0'
1247 }
1248 ]
1249 },
1250 'AssetHeaderData' => {
1251 'SystemModel' => 'GX620',
1252 'ServiceTag' => '8DSGD2J',
1253 'SystemShipDate' => '2006-07-29T19:00:00-05:00',
1254 'Buid' => '2323',
1255 'Region' => 'Europe',
1256 'SystemID' => 'PLX_GX620',
1257 'SystemType' => 'OptiPlex'
1258 }
1259 }
1260 };
1261 </pre></p>
1262
1263 <p>I have not been able to find any documentation from Dell about this
1264 service outside the
1265 <a href="http://xserv.dell.com/services/assetservice.asmx?op=GetAssetInformation">inline
1266 documentation</a>, and according to
1267 <a href="http://iboyd.net/index.php/2012/02/14/updated-dell-warranty-information-script/">one
1268 comment</a> it can have stability issues, but it is a lot better than
1269 scraping HTML pages. :)</p>
1270
1271 <p>Wonder if HP and other server vendors have a similar service. If
1272 you know of one, drop me an email. :)</p>
1273
1274 </div>
1275 <div class="tags">
1276
1277
1278 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>.
1279
1280
1281 </div>
1282 </div>
1283 <div class="padding"></div>
1284
1285 <div class="entry">
1286 <div class="title">
1287 <a href="http://people.skolelinux.org/pere/blog/First_monitor_calibration_using_ColorHug.html">First monitor calibration using ColorHug</a>
1288 </div>
1289 <div class="date">
1290 31st May 2012
1291 </div>
1292 <div class="body">
1293 <p>A few days ago my color calibration gadget
1294 <a href="http://www.hughski.com/index.html">ColorHug</a> arrived in the
1295 mail, and I've had a few days to test it. As all my machines are
1296 running Debian Squeeze, where
1297 <a href="http://packages.qa.debian.org/c/colorhug-client.html">the
1298 calibration software</a> is missing (it is present in Wheezy and Sid),
1299 I ran the calibration using the Fedora based live CD. This worked
1300 just fine. So far I have only done the quick calibration. It was
1301 slow enough for me, so I will leave the more extensive calibration for
1302 another day.</p>
1303
1304 <p>After calibration, I get a
1305 <a href="http://en.wikipedia.org/wiki/ICC_profile">ICC color
1306 profile</a> file that can be passed to programs understanding such
1307 tools. KDE do not seem to understand it out of the box, so I searched
1308 for command line tools to use to load the color profile into X.
1309 xcalib was the first one I found, and it seem to work fine for single
1310 monitor setups. But for my video player, a laptop with a flat screen
1311 attached, it was unable to load the color profile for the correct
1312 monitor. After searching a bit, I
1313 <a href="http://ubuntuforums.org/showthread.php?t=1347896">discovered</a>
1314 that the dispwin tool from the argyll package would do what I wanted,
1315 and a simple</p>
1316
1317 <p><pre>
1318 dispwin -d 1 profile.icc
1319 </pre></p>
1320
1321 <p>later I had the color profile loaded for the correct monitor. The
1322 result was a bit more pink than I expected. I guess I picked the
1323 wrong monitor type for the "led" monitor I got, but the result is good
1324 enough for now.</p>
1325
1326 </div>
1327 <div class="tags">
1328
1329
1330 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
1331
1332
1333 </div>
1334 </div>
1335 <div class="padding"></div>
1336
1337 <div class="entry">
1338 <div class="title">
1339 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Ralf_Gesellensetter.html">Debian Edu interview: Ralf Gesellensetter</a>
1340 </div>
1341 <div class="date">
1342 27th May 2012
1343 </div>
1344 <div class="body">
1345 <p>In 2003, a German teacher showed up on the
1346 <a href="http://www.skolelinux.org/">Debian Edu and Skolelinux</a>
1347 mailing list with interesting problems and reports proving he setting
1348 up Linux for a (for us at the time) lot of pupils. His name was Ralf
1349 Gesellensetter, and he has been an important tester and contributor
1350 since then, helping to make sure the
1351 <a href="http://www.debian.org/News/2012/20120311.html">Debian Edu
1352 Squeeze</a> release became as good as it is..</p>
1353
1354 <p><strong>Who are you, and how do you spend your days?</strong></p>
1355
1356 <p>I am a teacher from Germany, and my subjects are Geography,
1357 Mathematics, and Computer Science ("Informatik"). During the past 12
1358 years (since 2000), I have been working for a comprehensive (and soon,
1359 also inclusive) school leading to all kind of general levels, such as
1360 O- or A-level ("Abitur"). For quite as long, I've been taking care of
1361 our computer network.</p>
1362
1363 <p>Now, in my early 40s, I enjoy the privilege of spending a lot of my
1364 spare time together with my wife, our son (3 years) and our daughter
1365 (4 months).</p>
1366
1367 <p><strong>How did you get in contact with the Skolelinux/Debian Edu
1368 project?</strong></p>
1369
1370 <p>We had tried different Linux based school servers, when members of
1371 my local Linux User Group (LUG OWL) detected Skolelinux. I remember
1372 very well, being part of a party celebrating the Linux New Media Award
1373 ("Best Newcomer Distribution", also nominated: Ubuntu) that was given
1374 to Skolelinux at Linux World Exposition in Frankfurt, 2005 (IIRC). Few
1375 months later, I had the chance to join a developer meeting in Ulsrud
1376 (Oslo) and to hand out the award to Knut Yrvin and others. For more
1377 than 7 years, Skolelinux is part of our schools infrastructure, namely
1378 our main server (tjener), one LTSP (today without thin clients), and
1379 approximately 50 work stations. Most of these have the option to boot a
1380 locally installed Skolelinux image. As a consequence, I joined quite
1381 a few events dealing with free software or Linux, and met many Debian
1382 (Edu) developers. All of them seemed quite nice and competent to me,
1383 one more reason to stick to Skolelinux.</p>
1384
1385 <p><strong>What do you see as the advantages of Skolelinux/Debian
1386 Edu?</strong></p>
1387
1388 <p>Debian driven, you are given all the advantages of a community
1389 project including well maintained updates. Once, you are familiar with
1390 the network layout, you can easily roll out an entire educational
1391 computer infrastructure, from just one installation media. As only
1392 free software (FOSS) is used, that supports even elderly hardware,
1393 up-sizing your IT equipment is only limited by space (i.e. available
1394 labs). Especially if you run a LTSP thin client server, your
1395 administration costs tend towards zero.</p>
1396
1397 <p><strong>What do you see as the disadvantages of Skolelinux/Debian
1398 Edu?</strong></p>
1399
1400 <p>While Debian's stability has loads of advantages for servers, this
1401 might be different in some cases for clients: Schools with unlimited
1402 budget might buy new hardware with components that are not yet
1403 supported by Debian stable, or wish to use more recent versions of
1404 office packages or desktop environments. These schools have the
1405 option to run Debian testing or other distributions - if they have the
1406 capacity to do so. Another issue is that Debian release cycles
1407 include a wide range of changes; therefor a high percentage of human
1408 power seems to be absorbed by just keeping the features of Skolelinux
1409 within the new setting of the version to come. During this process,
1410 the cogs of Debian Edu are getting more and more professional,
1411 i.e. harder to understand for novices.</p>
1412
1413 <p><strong>Which free software do you use daily?</strong></p>
1414
1415 <p>LibreOffice, Wikipedia, Openstreetmap, Iceweasel (Mozilla Firefox),
1416 KMail, Gimp, Inkscape - and of course the Linux Kernel (not only on
1417 PC, Laptop, Mobile, but also our SAT receiver)</p>
1418
1419 <p><strong>Which strategy do you believe is the right one to use to
1420 get schools to use free software?</strong></p>
1421
1422 <p><ol>
1423
1424 <li>Support computer science as regular subject in schools to make
1425 people really "own" their hardware, to make them understand the
1426 difference between proprietary software products, and free software
1427 developing.</li>
1428
1429 <li>Make budget baskets corresponding: In Germany's public schools
1430 there are more or less fixed budgets for IT equipment (including
1431 licenses), so schools won't benefit from any savings here. This
1432 privilege is left to private schools which have consequently a large
1433 share among German Skolelinux schools.</li>
1434
1435 <li>Get free software in the seminars where would-be teachers are
1436 trained. In many cases, teachers' software customs are respected by
1437 decision makers rather than the expertise of any IT experts.</li>
1438
1439 <li>Don't limit ourself to free software run natively. Everybody uses
1440 free software or free licenses (for instance Wikipedia), and this
1441 general concept should get expanded to free educational content to be
1442 shared world wide (school books e.g.).</li>
1443
1444 <li>Make clear where ever you can that the market share of free (libre)
1445 office suites is much above 20 p.c. today, and that you pupils don't
1446 need to know the "ribbon menu" in order to get employed.</li>
1447
1448 <li>Talk about the difference between freeware and free software.</li>
1449
1450 <li>Spread free software, or even collections of portable free apps
1451 for USB pen drives. Endorse students to get a legal copy of
1452 Libreoffice rather than accepting them to use illegal serials. And
1453 keep sending documents in ODF formats.</li>
1454
1455 </ol></p>
1456
1457 </div>
1458 <div class="tags">
1459
1460
1461 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>.
1462
1463
1464 </div>
1465 </div>
1466 <div class="padding"></div>
1467
1468 <div class="entry">
1469 <div class="title">
1470 <a href="http://people.skolelinux.org/pere/blog/The_cost_of_ODF_and_OOXML.html">The cost of ODF and OOXML</a>
1471 </div>
1472 <div class="date">
1473 26th May 2012
1474 </div>
1475 <div class="body">
1476 <p>I just come across a blog post from Glyn Moody reporting the
1477 claimed cost from Microsoft on requiring ODF to be used by the UK
1478 government. I just sent him an email to let him know that his
1479 assumption are most likely wrong. Sharing it here in case some of my
1480 blog readers have seem the same numbers float around in the UK.</p>
1481
1482 <p><blockquote> <p>Hi. I just noted your
1483 <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>
1484 comment:</p>
1485
1486 <p><blockquote>"They're all in Danish, not unreasonably, but even
1487 with the help of Google Translate I can't find any figures about the
1488 savings of "moving to a flexible two standard" as claimed by the
1489 Microsoft email. But I assume it is backed up somewhere, so let's take
1490 it, and the £500 million figure for the UK, on trust."
1491 </blockquote></p>
1492
1493 <p>I can tell you that the Danish reports are inflated. I believe it is
1494 the same reports that were used in the Norwegian debate around 2007,
1495 and Gisle Hannemyr (a well known IT commentator in Norway) had a look
1496 at the content. In short, the reason it is claimed that using ODF
1497 will be so costly, is based on the assumption that this mean every
1498 existing document need to be converted from one of the MS Office
1499 formats to ODF, transferred to the receiver, and converted back from
1500 ODF to one of the MS Office formats, and that the conversion will cost
1501 10 minutes of work time for both the sender and the receiver. In
1502 reality the sender would have a tool capable of saving to ODF, and the
1503 receiver would have a tool capable of reading it, and the time spent
1504 would at most be a few seconds for saving and loading, not 20 minutes
1505 of wasted effort.</p>
1506
1507 <p>Microsoft claimed all these costs were saved by allowing people to
1508 transfer the original files from MS Office instead of spending 10
1509 minutes converting to ODF. :)</p>
1510
1511 <p>See
1512 <a href="http://hannemyr.com/no/ms12_vl02.php">http://hannemyr.com/no/ms12_vl02.php</a>
1513 and
1514 <a href="http://hannemyr.com/no/ms12.php">http://hannemyr.com/no/ms12.php</a>
1515 for background information. Norwegian only, sorry. :)</p>
1516 </blockquote></p>
1517
1518 </div>
1519 <div class="tags">
1520
1521
1522 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>.
1523
1524
1525 </div>
1526 </div>
1527 <div class="padding"></div>
1528
1529 <div class="entry">
1530 <div class="title">
1531 <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>
1532 </div>
1533 <div class="date">
1534 18th May 2012
1535 </div>
1536 <div class="body">
1537 <p>In january, I
1538 <a href="http://blog.cihar.com/archives/2012/01/17/colorhug-has-arrived/">discovered
1539 the ColorHug</a>, a USB dongle from
1540 <a href="http://www.hughski.com/index.html">Hughski</a> to calibrate
1541 the color on a computer screen. The software required is
1542 <a href="http://packages.qa.debian.org/c/colorhug-client.html">included
1543 in Debian</a>, and I decided back then to preorder from the next
1544 batch. Yesterday I finally heard back from them, and got the
1545 opportunity to order. Today I ordered mine, and eagerly await the
1546 delivery. I hope it arrive next week, as I got a confirmation that it
1547 should go in the mail on monday. :)</p>
1548
1549 <p>If you want to ensure the colors on the screen match the intended
1550 colors, I suggest you check out this cheap tool with free software
1551 drivers. :)</p>
1552
1553 </div>
1554 <div class="tags">
1555
1556
1557 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
1558
1559
1560 </div>
1561 </div>
1562 <div class="padding"></div>
1563
1564 <div class="entry">
1565 <div class="title">
1566 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__J_rgen_Leibner.html">Debian Edu interview: Jürgen Leibner</a>
1567 </div>
1568 <div class="date">
1569 13th May 2012
1570 </div>
1571 <div class="body">
1572 <p>It has been a few busy weeks for me, but I am finally back to
1573 publish another interview with the people behind
1574 <a href="http://www.skolelinux.org/">Debian Edu and Skolelinux</a>.
1575 This time it is one of our German developers, who have helped out over the
1576 years to make sure both a lot of major but also a lot of the minor
1577 details get right before release.
1578
1579 <p><strong>Who are you, and how do you spend your days?</strong></p>
1580
1581 <p>My name is Jürgen Leibner, I'm 49 years old and living in
1582 Bielefeld, a town in northern Germany. I worked nearly 20 years as
1583 certified engineer in the department for plant design and layout of an
1584 international company for machinery and equipment. Since 2011 I'm a
1585 certified technical writer (tekom e.V.) and doing technical
1586 documentations for a steam turbine manufacturer. From April this year
1587 I will manage the department of technical documentation at a
1588 manufacturer of automation and assembly line engineering.</p>
1589
1590 <p>My first contact with linux was around 1993. Since that time I used
1591 it at work and at home repeatedly but not exclusively as I do now at
1592 home since 2006.</p>
1593
1594 <p><strong>How did you get in contact with the Skolelinux/Debian Edu
1595 project?</strong></p>
1596
1597 <p>Once a day in the early year of 2001 when I wanted to fetch my
1598 daughter from primary school, there was a teacher sitting in the
1599 middle of 20 old computers trying to boot them and he failed. I helped
1600 him to get them booting. That was seen by the school director and she
1601 asked me if I would like to manage that the school gets all that old
1602 computers in use. I answered: "Yes".</p>
1603
1604 <p>Some weeks later every of the 10 classrooms had one computer
1605 running Windows98. I began to collect old computers and equipment as
1606 gifts and installed the first computer room with a peer-to-peer
1607 network. I did my work at school without being payed in my spare time
1608 and with a lot of fun. About one year later the school was connected
1609 to Internet and a local area network was installed in the school
1610 building. That was the time to have a server and I knew it must be a
1611 Linux server to be able to fulfil all the wishes of the teachers and
1612 being able to do this in a transparent and economic way, without extra
1613 costs for things like licence and software. So I searched for a
1614 school server system running under Linux and I found a couple of
1615 people nearby who founded 'skolelinux.de'. It was the Skolelinux
1616 prerelease 32 I first tried out for being used at the school. I
1617 managed the IT of that school until the municipal authority took over
1618 the IT management and centralised the services for all schools in
1619 Bielefeld in December of 2006.</p>
1620
1621 <p><strong>What do you see as the advantages of Skolelinux/Debian
1622 Edu?</strong></p>
1623
1624 <p>When I'm looking back to the beginning, there were other advantages
1625 for me as today.</p>
1626
1627 <p>In the past there were advantages like:</p>
1628
1629 <p><ul>
1630
1631 <li>I don't need to buy it so it generates no costs to the school as
1632 they had little money to spent for computers and software.</li>
1633
1634 <li>It has a licence which grands all rights to use it without
1635 cost.</li>
1636
1637 <li>It was more able to fit all requirements of a server system for
1638 schools than a Microsoft server system, even if there are only Windows
1639 clients because of it's preconfigured overall concept of being a
1640 infrastructure solution and community for schools, not only a
1641 server</li>
1642
1643 <li>I was able to configure the server to the needs of the
1644 school.</li>
1645
1646 </ul></p>
1647
1648 <p>Today some of the advantages has been lost, changed or new ones
1649 came up in this way:</p>
1650
1651 <p><ul>
1652
1653 <li>Most schools here do have money to buy hardware and software
1654 now.</li>
1655
1656 <li>They are today mostly managed from central IT departments which
1657 have own concepts which often do not fit to Debian Edu concepts
1658 because they are to close to Microsoft ideology.</li>
1659
1660 <li>With the Squeeze version of Debian Edu which now uses GOsa² for
1661 management I feel more able to manage the daily tasks than with the
1662 interfaces used in the past.</li>
1663
1664 <li>It is more modular than in the past and fits even better to the
1665 different needs.</li>
1666
1667 <li>The documentation is usable and gets better every day.</li>
1668
1669 <li>More people than ever before are using Debian Edu all over the
1670 world and so the community, which is an very important part I think,
1671 is sharing knowledge and minds.</li>
1672
1673 <li>Most, maybe all, of the technical requirements for schools are
1674 solved today by Debian Edu. </li>
1675
1676 </ul></p>
1677
1678 <p><strong>What do you see as the disadvantages of Skolelinux/Debian
1679 Edu?</strong></p>
1680
1681 <p><ul>
1682
1683 <li>There are too few IT companies able to integrate Debian Edu into
1684 their product portfolio for serving schools with concepts or even
1685 whole municipality areas.</li>
1686
1687 <li>Debian Edu has beside other free and open software projects not
1688 enough lobbyists which promote free and open software to
1689 politicians.</li>
1690
1691 <li>Technically there are no disadvantages I'm aware of.</li>
1692
1693 </ul></p>
1694
1695 <p><strong>Which free software do you use daily?</strong></p>
1696
1697 <p>I use Debian stable on my home server and on my little desktop
1698 computer. On my laptop I use Debian testing/sid. The applications I
1699 use on my laptop and my desktop are Open/Libre-office, Iceweasel,
1700 KMail, DigiKam, Amarok, Dolphin, okular and all the other programs I
1701 need from the KDE environment. On console I use newsbeuter, mutt,
1702 screen, irssi and all the other famous and useful tools.</p>
1703
1704 <p>My home server provides mail services with exim, dovecot, roundcube
1705 and mutt over ssh on the console, file services with samba, NFS,
1706 rsync, web services with apache, moinmoin-wiki, multimedia services
1707 with gallery2 and mediatomb and database services with MySQL for me
1708 and the whole family. I probably forgot something.</p>
1709
1710 <p><strong>Which strategy do you believe is the right one to use to
1711 get schools to use free software?</strong></p>
1712
1713 <p>I believe, we should provide concepts for IT companies to integrate
1714 Debian Edu into their product portfolio with use cases for different
1715 countries and areas all over the world.</p>
1716
1717 </div>
1718 <div class="tags">
1719
1720
1721 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>.
1722
1723
1724 </div>
1725 </div>
1726 <div class="padding"></div>
1727
1728 <div class="entry">
1729 <div class="title">
1730 <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>
1731 </div>
1732 <div class="date">
1733 30th April 2012
1734 </div>
1735 <div class="body">
1736 <p><!-- IMG_5869.JPG -->
1737 <img src="http://people.skolelinux.org/pere/blog/images/panasonic-er-1611.jpeg"></p>
1738
1739 <p>I normally cut my hair short, and my tool of choice has been a
1740 common hair/beard cutter, bought in a electrical shop here in Norway.
1741 But the last ones have not really been up to the task. My last
1742 cutter, some model from Braun, could only cut a few of my hairs at the
1743 time, and cutting my head took forever. And the one before that did
1744 not work very well either. We have looked for something better for a
1745 while, but it was not until I ended up visiting a hairdresser that we
1746 discovered that there are indeed better tools available. But these
1747 are not marketed and sold to "regular consumers". The hair saloons
1748 can get them through their suppliers, but their suppliers only sell
1749 companies. The models they sell, are very different from the ones
1750 available from Elkjøp and Lefdal. The main difference is their
1751 efficiency. It would cut my hair in 5 minutes, instead of the 30-40
1752 minutes required by my impotent Braun. The hairdresser I visited had
1753 a Panasonic ER160, which unfortunately is no longer available from the
1754 producer. But I found it had a successor, the Panasonic ER1611.</p>
1755
1756 <p>The next step was to find somewhere to buy it. This was not
1757 straight forward. The list of suppliers I got from the hairdresser
1758 did not want to sell anything to me. But searching for the model on
1759 the web we found a supplier in Norway willing to sell it to us for
1760 around NOK 4000,-. This was a bit much. We kept searching and
1761 finally found a Danish supplier
1762 <a href="http://nicehair.dk/panasonic-er-1611-professionel-hartrimmer.html">selling
1763 it for around NOK 1800,-</a>. We ordered one, and it arrived a few
1764 days ago.</p>
1765
1766 <p>The instructions said it had to charge for 8 hours when we started
1767 to use it, so we left it charging over night. Normally it will only
1768 need one hour to charge. The following evening we successfully tested
1769 it, and I can warmly recommend it to anyone looking for a real hair
1770 cutter. The ones we have used until now have been hair cutter
1771 toys.</p>
1772
1773 </div>
1774 <div class="tags">
1775
1776
1777 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
1778
1779
1780 </div>
1781 </div>
1782 <div class="padding"></div>
1783
1784 <div class="entry">
1785 <div class="title">
1786 <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>
1787 </div>
1788 <div class="date">
1789 26th April 2012
1790 </div>
1791 <div class="body">
1792 <p>In <a href="http://www.idg.no/computerworld/article243690.ece">an
1793 article today</a> published by Computerworld Norway, the photographer
1794 <a href="http://www.urke.com/eirik/">Eirik Helland Urke</a> reports
1795 that the video editor application included with
1796 <a href="http://www.htc.com/www/smartphones/htc-one-x/#specs">HTC One
1797 X</a> have some quite surprising terms of use. The article is mostly
1798 based on the twitter message from mister Urke, stating:
1799
1800 <p><blockquote>
1801 "<a href="http://twitter.com/urke/status/194062269724897280">Drøy
1802 brukeravtale: HTC kan bruke MINE redigerte videoer kommersielt. Selv
1803 kan jeg KUN bruke dem privat.</a>"
1804 </blockquote></p>
1805
1806 <p>I quickly translated it to this English message:</p>
1807
1808 <p><blockquote>
1809 "Arrogant user agreement: HTC can use MY edited videos
1810 commercially. Although I can ONLY use them privately."
1811 </blockquote></p>
1812
1813 <p>I've been unable to find the text of the license term myself, but
1814 suspect it is a variation of the MPEG-LA terms I
1815 <a href="http://people.skolelinux.org/pere/blog/Terms_of_use_for_video_produced_by_a_Canon_IXUS_130_digital_camera.html">discovered
1816 with my Canon IXUS 130</a>. The HTC One X specification specifies that
1817 the recording format of the phone is .amr for audio and .mp3 for
1818 video. AMR is
1819 <a href="http://en.wikipedia.org/wiki/Adaptive_Multi-Rate_audio_codec#Licensing_and_patent_issues">Adaptive
1820 Multi-Rate audio codec</a> with patents which according to the
1821 Wikipedia article require an license agreement with
1822 <a href="http://www.voiceage.com/">VoiceAge</a>. MP4 is
1823 <a href="http://en.wikipedia.org/wiki/H.264/MPEG-4_AVC#Patent_licensing">MPEG4 with
1824 H.264</a>, which according to Wikipedia require a licence agreement
1825 with <a href="http://www.mpegla.com/">MPEG-LA</a>.</p>
1826
1827 <p>I know why I prefer
1828 <a href="http://www.digistan.org/open-standard:definition">free and open
1829 standards</a> also for video.</p>
1830
1831 </div>
1832 <div class="tags">
1833
1834
1835 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>.
1836
1837
1838 </div>
1839 </div>
1840 <div class="padding"></div>
1841
1842 <div class="entry">
1843 <div class="title">
1844 <a href="http://people.skolelinux.org/pere/blog/RAND_terms___non_reasonable_and_discriminatory.html">RAND terms - non-reasonable and discriminatory</a>
1845 </div>
1846 <div class="date">
1847 19th April 2012
1848 </div>
1849 <div class="body">
1850 <p>Here in Norway, the
1851 <a href="http://www.regjeringen.no/nb/dep/fad.html?id=339"> Ministry of
1852 Government Administration, Reform and Church Affairs</a> is behind
1853 a <a href="http://standard.difi.no/forvaltningsstandarder">directory of
1854 standards</a> that are recommended or mandatory for use by the
1855 government. When the directory was created, the people behind it made
1856 an effort to ensure that everyone would be able to implement the
1857 standards and compete on equal terms to supply software and solutions
1858 to the government. Free software and non-free software could compete
1859 on the same level.</p>
1860
1861 <p>But recently, some standards with RAND
1862 (<a href="http://en.wikipedia.org/wiki/Reasonable_and_non-discriminatory_licensing">Reasonable
1863 And Non-Discriminatory</a>) terms have made their way into the
1864 directory. And while this might not sound too bad, the fact is that
1865 standard specifications with RAND terms often block free software from
1866 implementing them. The reasonable part of RAND mean that the cost per
1867 user/unit is low,and the non-discriminatory part mean that everyone
1868 willing to pay will get a license. Both sound great in theory. In
1869 practice, to get such license one need to be able to count users, and
1870 be able to pay a small amount of money per unit or user. By
1871 definition, users of free software do not need to register their use.
1872 So counting users or units is not possible for free software projects.
1873 And given that people will use the software without handing any money
1874 to the author, it is not really economically possible for a free
1875 software author to pay a small amount of money to license the rights
1876 to implement a standard when the income available is zero. The result
1877 in these situations is that free software are locked out from
1878 implementing standards with RAND terms.</p>
1879
1880 <p>Because of this, when I see someone claiming the terms of a
1881 standard is reasonable and non-discriminatory, all I can think of is
1882 how this really is non-reasonable and discriminatory. Because free
1883 software developers are working in a global market, it does not really
1884 help to know that software patents are not supposed to be enforceable
1885 in Norway. The patent regimes in other countries affect us even here.
1886 I really hope the people behind the standard directory will pay more
1887 attention to these issues in the future.</p>
1888
1889 <p>You can find more on the issues with RAND, FRAND and RAND-Z terms
1890 from Simon Phipps
1891 (<a href="http://blogs.computerworlduk.com/simon-says/2010/11/rand-not-so-reasonable/">RAND:
1892 Not So Reasonable?</a>).</p>
1893
1894 <p>Update 2012-04-21: Just came across a
1895 <a href="http://blogs.computerworlduk.com/open-enterprise/2012/04/of-microsoft-netscape-patents-and-open-standards/index.htm">blog
1896 post from Glyn Moody</a> over at Computer World UK warning about the
1897 same issue, and urging people to speak out to the UK government. I
1898 can only urge Norwegian users to do the same for
1899 <a href="http://www.standard.difi.no/hoyring/hoyring-om-nye-anbefalte-it-standarder">the
1900 hearing taking place at the moment</a> (respond before 2012-04-27).
1901 It proposes to require video conferencing standards including
1902 specifications with RAND terms.</p>
1903
1904 </div>
1905 <div class="tags">
1906
1907
1908 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>.
1909
1910
1911 </div>
1912 </div>
1913 <div class="padding"></div>
1914
1915 <div class="entry">
1916 <div class="title">
1917 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Andreas_Mundt.html">Debian Edu interview: Andreas Mundt</a>
1918 </div>
1919 <div class="date">
1920 15th April 2012
1921 </div>
1922 <div class="body">
1923 <p>Behind <a href="http://www.skolelinux.org/">Debian Edu and
1924 Skolelinux</a> there are a lot of people doing the hard work of
1925 setting together all the pieces. This time I present to you Andreas
1926 Mundt, who have been part of the technical development team several
1927 years. He was also a key contributor in getting GOsa and Kerberos set
1928 up in the recently released
1929 <a href="http://wiki.debian.org/DebianEdu/Documentation/Squeeze">Debian
1930 Edu Squeeze</a> version.</p>
1931
1932 <p><strong>Who are you, and how do you spend your days?</strong></p>
1933
1934 <p>My name is Andreas Mundt, I grew up in south Germany. After
1935 studying Physics I spent several years at university doing research in
1936 Quantum Optics. After that I worked some years in an optics company.
1937 Finally I decided to turn over a new leaf in my life and started
1938 teaching 10 to 19 years old kids at school. I teach math, physics,
1939 information technology and science/technology.</p>
1940
1941 <p><strong>How did you get in contact with the Skolelinux/Debian Edu
1942 project?</strong></p>
1943
1944 <p>Already before I switched to teaching, I followed the Debian Edu
1945 project because of my interest in education and Debian. Within the
1946 qualification/training period for the teaching, I started
1947 contributing.</p>
1948
1949 <p><strong>What do you see as the advantages of Skolelinux/Debian
1950 Edu?</strong></p>
1951
1952 <p>The advantages of Debian Edu are the well known name, the
1953 out-of-the-box philosophy and of course the great free software of the
1954 Debian Project!</p>
1955
1956 <p><strong>What do you see as the disadvantages of Skolelinux/Debian
1957 Edu?</strong></p>
1958
1959 <p>As every coin has two sides, the out-of-the-box philosophy has its
1960 downside, too. In my opinion, it is hard to modify and tweak the
1961 setup, if you need or want that. Further more, it is not easily
1962 possible to upgrade the system to a new release. It takes much too
1963 long after a Debian release to prepare the -Edu release, perhaps
1964 because the number of developers working on the core of the code is
1965 rather small and often busy elsewhere.</p>
1966
1967 <p>The <a href="http://wiki.debian.org/DebianLAN">Debian LAN</a>
1968 project might fill the use case of a more flexible system.</p>
1969
1970 <p><strong>Which free software do you use daily?</strong></p>
1971
1972 <p>I am only using non-free software if I am forced to and run Debian
1973 on all my machines. For documents I prefer LaTeX and PGF/TikZ, then
1974 mutt and iceweasel for email respectively web browsing. At school I
1975 have Arduino and Fritzing in use for a micro controller project.</p>
1976
1977 <p><strong>Which strategy do you believe is the right one to use to
1978 get schools to use free software?</strong></p>
1979
1980 <p>One of the major problems is the vendor lock-in from top to bottom:
1981 Especially in combination with ignorant government employees and
1982 politicians, this works out great for the "market-leader". The school
1983 administration here in Baden-Wuerttemberg is occupied by that vendor.
1984 Documents have to be prepared in non-free, proprietary formats. Even
1985 free browsers do not work for the school administration. Publishers
1986 of school books provide software only for proprietary platforms.</p>
1987
1988 <p>To change this, political work is very important. Parts of the
1989 political spectrum have become aware of the problem in the last years.
1990 However it takes quite some time and courageous politicians to 'free'
1991 the system. There is currently some discussion about "Open Data" and
1992 "Free/Open Standards". I am not sure if all the involved parties have
1993 a clue about the potential of these ideas, and probably only a
1994 fraction takes them seriously. However it might slowly make free
1995 software and the philosophy behind it more known and popular.</p>
1996
1997 </div>
1998 <div class="tags">
1999
2000
2001 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>.
2002
2003
2004 </div>
2005 </div>
2006 <div class="padding"></div>
2007
2008 <div class="entry">
2009 <div class="title">
2010 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Justin_B__Rye.html">Debian Edu interview: Justin B. Rye</a>
2011 </div>
2012 <div class="date">
2013 8th April 2012
2014 </div>
2015 <div class="body">
2016 <p>It take all kind of contributions to create a Linux distribution
2017 like <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a>,
2018 and this time I lend the ear to Justin B. Rye, who is listed as a big
2019 contributor to the
2020 <a href="http://wiki.debian.org/DebianEdu/Documentation/Squeeze">Debian
2021 Edu Squeeze release manual</a>.
2022
2023 <p><strong>Who are you, and how do you spend your days?</strong></p>
2024
2025 <p>I'm a 44-year-old linguistics graduate living in Edinburgh who has
2026 occasionally been employed as a sysadmin.</p>
2027
2028 <p><strong>How did you get in contact with the Skolelinux/Debian Edu
2029 project?</strong></p>
2030
2031 <p>I'm neither a developer nor a Skolelinux/Debian Edu user! The only
2032 reason my name's in the credits for the documentation is that I hang
2033 around on debian-l10n-english waiting for people to mention things
2034 they'd like a native English speaker to proofread... So I did a sweep
2035 through the wiki for typos and Norglish and inconsistent spellings of
2036 "localisation".</p>
2037
2038 <p><strong>What do you see as the advantages of Skolelinux/Debian
2039 Edu?</strong></p>
2040
2041 <p><strong>What do you see as the disadvantages of Skolelinux/Debian
2042 Edu?</strong></p>
2043
2044 <p>These questions are too hard for me - I don't use it! In fact I
2045 had hardly any contact with I.T. until long after I'd got out of the
2046 education system.</p>
2047
2048 <p>I can tell you the advantages of Debian for me though: it soaks up
2049 as much of my free time as I want and no more, and lets me do
2050 everything I want a computer for without ever forcing me to spend
2051 money on the latest hardware.</p>
2052
2053 <p><strong>Which free software do you use daily?</strong></p>
2054
2055 <p>I've been using Debian since Rex; popularity-contest says the
2056 software that I use most is xinit, xterm, and xulrunner (in other
2057 words, I use a distinctly retro sort of desktop).</p>
2058
2059 <p><strong>Which strategy do you believe is the right one to use to
2060 get schools to use free software?</strong></p>
2061
2062 <p>Well, I don't know. I suppose I'd be inclined to try reasoning
2063 with the people who make the decisions, but obviously if that worked
2064 you would hardly need a strategy.</p>
2065
2066 </div>
2067 <div class="tags">
2068
2069
2070 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>.
2071
2072
2073 </div>
2074 </div>
2075 <div class="padding"></div>
2076
2077 <div class="entry">
2078 <div class="title">
2079 <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>
2080 </div>
2081 <div class="date">
2082 6th April 2012
2083 </div>
2084 <div class="body">
2085 <p>Recently I have spent time with
2086 <a href="http://www.slxdrift.no/">Skolelinux Drift AS</a> on speeding
2087 up a <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a>
2088 Lenny installation using LTSP diskless workstations, and in the
2089 process I discovered something very surprising. The reason the KDE
2090 menu was responding slow when using it for the first time, was mostly
2091 due to the way KDE find application icons. I discovered that showing
2092 the Multimedia menu would cause more than 20 000 IP packages to be
2093 passed between the LTSP client and the NFS server. Most of these were
2094
2095 NFS LOOKUP calls, resulting in a NFS3ERR_NOENT response. Because the
2096 ping times between the client and the server were in the range 2-20
2097 ms, the menus would be very slow. Looking at the strace of kicker in
2098 Lenny (or plasma-desktop i Squeeze - same problem there), I see that
2099 the source of these NFS calls are access(2) system calls for
2100 non-existing files. KDE can do hundreds of access(2) calls to find
2101 one icon file. In my example, just finding the mplayer icon required
2102 around 230 access(2) calls.</p>
2103
2104 <p>The KDE code seem to search for icons using a list of icon
2105 directories, and the list of possible directories is large. In
2106 (almost) each directory, it look for files ending in .png, .svgz, .svg
2107 and .xpm. The result is a very slow KDE menu when /usr/ is NFS
2108 mounted. Showing a single sub menu may result in thousands of NFS
2109 requests. I am not the first one to discover this. I found a
2110 <a href="https://bugs.kde.org/show_bug.cgi?id=211416">KDE bug report
2111 from 2009</a> about this problem, and it is still unsolved.</p>
2112
2113 <p>My solution to speed up the KDE menu was to create a package
2114 kde-icon-cache that upon installation will look at all .desktop files
2115 used to generate the KDE menu, find their icons, search the icon paths
2116 for the file that KDE will end up finding at run time, and copying the
2117 icon file to /var/lib/kde-icon-cache/. Finally, I add symlinks to
2118 these icon files in one of the first directories where KDE will look
2119 for them. This cut down the number of file accesses required to find
2120 one icon from several hundred to less than 5, and make the KDE menu
2121 almost instantaneous. I'm not quite sure where to make the package
2122 publicly available, so for now it is only available on request.</p>
2123
2124 <p>The bug report mention that this do not only affect the KDE menu
2125 and icon handling, but also the login process. Not quite sure how to
2126 speed up that part without replacing NFS with for example NBD, and
2127 that is not really an option at the moment.</p>
2128
2129 <p>If you got feedback on this issue, please let us know on debian-edu
2130 (at) lists.debian.org.</p>
2131
2132 </div>
2133 <div class="tags">
2134
2135
2136 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>.
2137
2138
2139 </div>
2140 </div>
2141 <div class="padding"></div>
2142
2143 <div class="entry">
2144 <div class="title">
2145 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_in_the_Linux_Weekly_News.html">Debian Edu in the Linux Weekly News</a>
2146 </div>
2147 <div class="date">
2148 5th April 2012
2149 </div>
2150 <div class="body">
2151 <p>About two weeks ago, I was interviewed via email about
2152 <a href="http://www.skolelinux.org/">Debian Edu and Skolelinux</a> by
2153 Bruce Byfield in Linux Weekly News. The result was made public for
2154 non-subscribers today. I am pleased to see liked our Linux solution
2155 for schools. Check out his article
2156 <a href="https://lwn.net/Articles/488805/">Debian Edu/Skolelinux: A
2157 distribution for education</a> if you want to learn more.</p>
2158
2159 </div>
2160 <div class="tags">
2161
2162
2163 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>.
2164
2165
2166 </div>
2167 </div>
2168 <div class="padding"></div>
2169
2170 <div class="entry">
2171 <div class="title">
2172 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Wolfgang_Schweer.html">Debian Edu interview: Wolfgang Schweer</a>
2173 </div>
2174 <div class="date">
2175 1st April 2012
2176 </div>
2177 <div class="body">
2178 <p>Germany is a core area for the
2179 <a href="http://www.skolelinux.org/">Debian Edu and Skolelinux</a>
2180 user community, and this time I managed to get hold of Wolfgang
2181 Schweer, a valuable contributor to the project from Germany.
2182
2183 <p><strong>Who are you, and how do you spend your days?</strong></p>
2184
2185 <p>I've studied Mathematics at the university 'Ruhr-Universität' in
2186 Bochum, Germany. Since 1981 I'm working as a teacher at the school
2187 "<a href="http://www.westfalenkolleg-dortmund.de/">Westfalen-Kolleg
2188 Dortmund</a>", a second chance school. Here, young adults is given
2189 the opportunity to get further education in order to do the school
2190 examination 'Abitur', which will allow to study at a university. This
2191 second chance is of value for those who want a better job perspective
2192 or failed to get a higher school examination being teens.</p>
2193
2194 <p>Besides teaching I was involved in developing online courses for a
2195 blended learning project called 'abitur-online.nrw' and in some other
2196 information technology related projects. For about ten years I've been
2197 teacher and coordinator for the 'abitur-online' project at my
2198 school. Being now in my early sixties, I've decided to leave school at
2199 the end of April this year.</p>
2200
2201 <p><strong>How did you get in contact with the Skolelinux/Debian Edu
2202 project?</strong></p>
2203
2204 <p>The first information about Skolelinux must have come to my
2205 attention years ago and somehow related to LTSP (Linux Terminal Server
2206 Project). At school, we had set up a network at the beginning of 1997
2207 using Suse Linux on the desktop, replacing a Novell network. Since
2208 2002, we used old machines from the city council of Dortmund as thin
2209 clients (LTSP, later Ubuntu/Lessdisks) cause new hardware was out of
2210 reach. At home I'm using Debian since years and - subscribed to the
2211 Debian news letter - heard from time to time about Skolelinux. About
2212 two years ago I proposed to replace the (somehow undocumented and only
2213 known to me) system at school by a well known Debian based system:
2214 Skolelinux.</p>
2215
2216 <p>Students and teachers appreciated the new system because of a
2217 better look and feel and an enhanced access to local media on thin
2218 clients. The possibility to alter and/or reset passwords using a GUI
2219 was welcomed, too. Being able to do administrative tasks using a GUI
2220 and to easily set up workstations using PXE was of very high value for
2221 the admin teachers.</p>
2222
2223 <p><strong>What do you see as the advantages of Skolelinux/Debian
2224 Edu?</strong></p>
2225
2226 <p>It's open source, easy to set up, stable and flexible due to it's
2227 Debian base. It integrates LTSP out-of-the-box. And it is documented!
2228 So it was a perfect choice.</p>
2229
2230 <p>Being open source, there are no license problems and so it's
2231 possible to point teachers and students to programs like
2232 OpenOffice.org, ViewYourMind (mind mapping) and The Gimp. It's of
2233 high value to be able to adapt parts of the system to special needs of
2234 a school and to choose where to get support for this.</p>
2235
2236 <p><strong>What do you see as the disadvantages of Skolelinux/Debian
2237 Edu?</strong></p>
2238
2239 <p>Nothing yet.</p>
2240
2241 <p><strong>Which free software do you use daily?</strong></p>
2242
2243 <p>At home (Debian Sid with Gnome Desktop): Iceweasel, LibreOffice,
2244 Mutt, Gedit, Document Viewer, Midnight Commander, flpsed (PDF
2245 Annotator). At school (Skolelinux Lenny): Iceweasel, Gedit,
2246 LibreOffice.</p>
2247
2248 <p><strong>Which strategy do you believe is the right one to use to
2249 get schools to use free software?</strong></p>
2250
2251 <p>Some time ago I thought it was enough to tell people about it. But
2252 that doesn't seem to work quite well. Now I concentrate on those more
2253 interested and hope to get multiplicators that way.</p>
2254
2255 </div>
2256 <div class="tags">
2257
2258
2259 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>.
2260
2261
2262 </div>
2263 </div>
2264 <div class="padding"></div>
2265
2266 <div class="entry">
2267 <div class="title">
2268 <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>
2269 </div>
2270 <div class="date">
2271 25th March 2012
2272 </div>
2273 <div class="body">
2274 <!-- Video HTML based on http://www.diveintohtml5.net/video.html -->
2275
2276 <p>The same Debian Edu developer that did the last screen cast I
2277 published, Wolfgang Schweer, has created a new screen cast showing how
2278 to set up Kmail in Debian Edu Squeze to authenticate using Kerberos,
2279 allowing users to check their local email account without providing
2280 any password. The video is embedded here in quarter size,
2281 and also available from <a href="https://vimeo.com/38601767">vimeo</a>
2282 and download as a
2283 <a href="http://ftp.skolelinux.org/skolelinux/press/screencasts/2012-03-14-Debian-Edu_Configure_Kmail_for_internal_usage.ogv">Ogg
2284 Theora</a> file. Check it out below.</p>
2285
2286 <p><video id="kmail-kerberos-movie" width="256" height="184" preload controls>
2287 <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"' />
2288 <p>Download video as
2289 <a href="http://ftp.skolelinux.org/skolelinux/press/screencasts/2012-03-14-Debian-Edu_Configure_Kmail_for_internal_usage.ogv">Ogg</a>.</p>
2290 </video></p>
2291
2292 </div>
2293 <div class="tags">
2294
2295
2296 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>.
2297
2298
2299 </div>
2300 </div>
2301 <div class="padding"></div>
2302
2303 <div class="entry">
2304 <div class="title">
2305 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__John_Ingleby.html">Debian Edu interview: John Ingleby</a>
2306 </div>
2307 <div class="date">
2308 19th March 2012
2309 </div>
2310 <div class="body">
2311 <p><a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a>
2312 users are spread all across the globe. The second inteview after
2313 <a href="http://lists.debian.org/debian-edu-announce/2012/03/msg00001.html">the
2314 Squeeze release</a> was publised is with John Ingleby, a teacher and
2315 long time Linux user in United Kingdom.</p>
2316
2317 <p><strong>Who are you, and how do you spend your days?</strong></p>
2318
2319 <p>I teach ICT part time at the Rudolf Steiner School in Kings
2320 Langley, near London, UK. Previously I worked as a technical
2321 author/trainer while my children attended the school, and I also
2322 contributed to the Schoolforge UK community with the aim of
2323 encouraging UK schools to adopt free/open source software. Five or six
2324 years ago we had about 50 schools interested in some way, but we
2325 weren't able to convert many of them into sustainable
2326 installations.</p>
2327
2328 <p><strong>How did you get in contact with the Skolelinux/Debian Edu
2329 project?</strong></p>
2330
2331 <p>Skolelinux had two representatives at an early Edubuntu meeting in
2332 London which I attended. However at that time our school network had
2333 just been installed using CentOS, LTSP 4 and GNOME. When LTSP 5 came
2334 along we switched to Edubuntu thin client servers so now we have a
2335 mixed environment which includes Windows PCs and student laptops, as
2336 well as their MacBooks and iPads. However, the proprietary systems
2337 have always been rather problematic, and we never built a GUI for the
2338 LDAP server, so when I discovered Skolelinux is configured for all
2339 these things we decided to try it.</p>
2340
2341 <p><strong>What do you see as the advantages of Skolelinux/Debian
2342 Edu?</strong></p>
2343
2344 <p>By far the biggest advantage is the Debian Edu community. Apart
2345 from that I have always believed in the same "sustainable computing"
2346 goals that Skolelinux is built on: installing Linux on computers which
2347 would otherwise be thrown away, to provide a reliable, secure and
2348 low-cost IT environment for schools. From my own experience I know
2349 that a part-time person can teach and manage a network of about 25
2350 Linux computers, but it would take much more of my time if we had
2351 proprietary software everywhere.</p>
2352
2353 <p><strong>What do you see as the disadvantages of Skolelinux/Debian
2354 Edu?</strong></p>
2355
2356 <p>As a newcomer I'm just finding out who's who in the community and
2357 how you're organised, and what your procedures are for dealing with
2358 various things such as editing manual pages and so-on. The only
2359 English language mailing list seems to be for developers as well as
2360 users, so my inbox needs heavy pruning each day!</p>
2361
2362 <p><strong>Which free software do you use daily?</strong></p>
2363
2364 <p>Besides the software already mentioned at school we use Samba,
2365 OpenLDAP, CUPS, Nagios and Dansguardian for the network, and on the
2366 desktops we have LibreOffice, Firefox, GIMP and Inkscape. At home I
2367 use Ubuntu and an Android 4 eePad Transformer (but I'm not sure if
2368 that counts...)</p>
2369
2370 <p><strong>Which strategy do you believe is the right one to use to
2371 get schools to use free software?</strong></p>
2372
2373 <p>That's a tough question! For very many years UK schools installed
2374 and taught only proprietary software, so that at the highest levels
2375 the notion of "computer" means simply "proprietary office
2376 applications". However, schools today are experiencing budget
2377 constraints, and many are having to think hard about upgrading Windows
2378 XP. At the same time, we have students showing teachers how to use
2379 iPads, MacBooks and Android, so the choice of operating system is no
2380 longer quite so automatic. What is more, our government at last
2381 realised that we need people with programming skills, so they're
2382 putting coding back in the curriculum! And it's encouraging that the
2383 first 10,000 Raspberry Pi units sold out in 2 hours.</p>
2384
2385 <p>I don't really know what strategy is going to get UK schools to use
2386 free software, but building an active community of Skolelinux/Debian
2387 Edu users in this country has to be part of it.</p>
2388
2389 </div>
2390 <div class="tags">
2391
2392
2393 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>.
2394
2395
2396 </div>
2397 </div>
2398 <div class="padding"></div>
2399
2400 <div class="entry">
2401 <div class="title">
2402 <a href="http://people.skolelinux.org/pere/blog/Writing_and_translating_documentation_in_Debian_Edu.html">Writing and translating documentation in Debian Edu</a>
2403 </div>
2404 <div class="date">
2405 16th March 2012
2406 </div>
2407 <div class="body">
2408 <p>Documentation in Debian Edu is provided in several languages, and
2409 it is important to make it both easy to contribute and to keep the
2410 translated versions in sync. To do this we have come up with what we
2411 believe is a very efficient work flow.</p>
2412
2413 <ol>
2414
2415 <li>The documentation is written in a
2416 <a href="http://moinmo.in">moinmoin wiki</a> (see for example
2417 <a href="http://wiki.debian.org/DebianEdu/Documentation/Squeeze">the
2418 Squeeze release manual</a>) with support for exporting the content as
2419 docbook XML.</li>
2420
2421 <li>This docbook document is given to po4a to extract a gettext style
2422 .pot file with the content, which in turn is used to create .po files
2423 with the translated text.</li>
2424
2425 <li>The .po files are given to translators, and they can always tell
2426 which part of the original wiki document is new or changed. They can
2427 use their normal translation tools like lokalize or poedit to write
2428 the translation. There is even a system in place to handle translated
2429 images.</li>
2430
2431 <li>The translated .po files are combined with the original docbook
2432 XML document using po4a to create a translated docbook document.</li>
2433
2434 <li>The final step is to use all the generated docbook files and
2435 create PDF and HTML version of the original and translated documents.</li>
2436
2437 </ol>
2438
2439 <p>This setup work very well, but have a few issues. The biggest
2440 issue is that <a href="http://moinmo.in/DocBook">the docbook support
2441 we use in moinmoin</a> is not actively maintained. The docbook
2442 support is also buggy, and our build system contain workarounds to
2443 make sure the generated docbook is usable despite these bugs.</p>
2444
2445 <p>If you want to have a look at our setup, it is all there in the
2446 <a href="http://packages.qa.debian.org/debian-edu-doc">debian-edu-doc
2447 package</a>.</p>
2448
2449 </div>
2450 <div class="tags">
2451
2452
2453 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>.
2454
2455
2456 </div>
2457 </div>
2458 <div class="padding"></div>
2459
2460 <div class="entry">
2461 <div class="title">
2462 <a href="http://people.skolelinux.org/pere/blog/Skolelinux___Debian_Edu_Squeeze_is_out_.html">Skolelinux / Debian Edu Squeeze is out!</a>
2463 </div>
2464 <div class="date">
2465 11th March 2012
2466 </div>
2467 <div class="body">
2468 <p>This weekend we finally published the first stable release of
2469 <a href="http://www.skolelinux.org/">Skolelinux / Debian Edu</a> based
2470 on Debian/Squeeze. The full announcement is
2471 <a href="http://lists.debian.org/debian-edu-announce/2012/03/msg00001.html">available</a>
2472 from the project announcement list. Now is a good time to test if it
2473 you have not done so already.</p>
2474
2475 <p>I plan to present the new version at
2476 <a href="http://www.nuug.no/aktiviteter/20120313-skolelinux/">a NUUG
2477 meeting</a> on tuesday. I look forward to seeing you there if you are
2478 in Oslo, Norway.</p>
2479
2480 </div>
2481 <div class="tags">
2482
2483
2484 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>.
2485
2486
2487 </div>
2488 </div>
2489 <div class="padding"></div>
2490
2491 <div class="entry">
2492 <div class="title">
2493 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Nigel_Barker.html">Debian Edu interview: Nigel Barker</a>
2494 </div>
2495 <div class="date">
2496 9th March 2012
2497 </div>
2498 <div class="body">
2499 <p>Inspired by <a href="http://raphaelhertzog.com/tag/interview/">the
2500 interview series</a> conducted by Raphael, I started a Norwegian
2501 interview series with people involved in the Debian Edu / Skolelinux
2502 community. This was so popular that I believe it is time to move to a
2503 more international audience.</p>
2504
2505 <p>While <a href="http://www.skolelinux.org/">Debian Edu and
2506 Skolelinux</a> originated in France and Norway, and have most users in
2507 Europe, there are users all around the globe. One of those far away
2508 from me is Nigel Barker, a long time Debian Edu system administrator
2509 and contributor. It is thanks to him that Debian Edu is adjusted to
2510 work out of the box in Japan. I got him to answer a few questions,
2511 and am happy to share the response with you. :)
2512
2513
2514 <p><strong>Who are you, and how do you spend your days?</strong></p>
2515
2516 <p>My name is Nigel Barker, and I am British. I am married to Yumiko,
2517 and we have three lovely children, aged 15, 14 and 4(!) I am the IT
2518 Coordinator at Hiroshima International School, Japan. I am also a
2519 teacher, and in fact I spend most of my day teaching Mathematics,
2520 Science, IT, and Chemistry. I was originally a Chemistry teacher, but
2521 I have always had an interest in computers. Another teacher teaches
2522 primary school IT, but apart from that I am the only computer person,
2523 so that means I am the network manager, technician and webmaster,
2524 also, and I help people with their computer problems. I teach python
2525 to beginners in an after-school club. I am way too busy, so I really
2526 appreciate the simplicity of Skolelinux.</p>
2527
2528 <p><strong>How did you get in contact with the Skolelinux/Debian Edu
2529 project?</strong></p>
2530
2531 <p>In around 2004 or 5 I discovered the ltsp project, and set up a
2532 server in the IT lab. I wanted some way to connect it to our central
2533 samba server, which I was also quite poor at configuring. I discovered
2534 Edubuntu when it came out, but it didn't really improve my setup. I
2535 did various desperate searches for things like "school Linux server"
2536 and ended up in a document called "Drift" something or other. Reading
2537 there it became clear that Skolelinux was going to solve all my
2538 problems in one go. I was very excited, but apprehensive, because my
2539 previous attempts to install Debian had ended in failure (I used
2540 Mandrake for everything - ltsp, samba, apache, mail, ns...). I
2541 downloaded a beta version, had some problems, so subscribed to the
2542 Debian Edu list for help. I have remained subscribed ever since, and
2543 my school has run a Skolelinux network since Sarge.</p>
2544
2545 <p><strong>What do you see as the advantages of Skolelinux/Debian
2546 Edu?</strong></p>
2547
2548 <p>For me the integrated setup. This is not just the server, or the
2549 workstation, or the ltsp. Its all of them, and its all configured
2550 ready to go. I read somewhere in the early documentation that it is
2551 designed to be setup and managed by the Maths or Science teacher, who
2552 doesn't necessarily know much about computers, in a small Norwegian
2553 school. That describes me perfectly if you replace Norway with
2554 Japan.</p>
2555
2556 <p><strong>What do you see as the disadvantages of Skolelinux/Debian
2557 Edu?</strong></p>
2558
2559 <p>The desktop is fairly plain. If you compare it with Edubuntu, who
2560 have fun themes for children, or with distributions such as Mint, who
2561 make the desktop beautiful. They create a good impression on people
2562 who don't need to understand how to use any of it, but who might be
2563 important to the school. School administrators or directors, for
2564 instance, or parents. Even kids. Debian itself usually has ugly
2565 default theme settings. It was my dream a few years back that some
2566 kind of integration would allow Edubuntu to do the desktop stuff and
2567 Debian Edu the servers, but now I realise how impossible that is. A
2568 second disadvantage is that if something goes wrong, or you need to
2569 customise something, then suddenly the level of expertise required
2570 multiplies. For example, backup wasn't working properly in Lenny. It
2571 took me ages to learn how to set up my own server to do rsync backups.
2572 I am afraid of anything to do with ldap, but perhaps Gosa will
2573 help.</p>
2574
2575 <p><strong>Which free software do you use daily?</strong></p>
2576
2577 <p>Nowadays I only use Debian on my personal computers. I have one for
2578 studio work (I play guitar and write songs), running AV Linux
2579 (customised Debian) a netbook running Squeeze, and a bigger laptop
2580 still running Skolelinux Lenny workstation. I have a Tjener in my
2581 house, that's very useful for the family photos and music. At school
2582 the students only use Skolelinux. (Some teachers and the office still
2583 have windows). So that means we only use free software all day every
2584 day. Open office, The GIMP, Firefox/Iceweasel, VLC and Audacity are
2585 installed on every computer in school, irrespective of OS. We also
2586 have Koha on Debian for the library, and Apache, Moodle, b2evolution
2587 and Etomite on Debian for the www. The firewall is Untangle.</p>
2588
2589 <p><strong>Which strategy do you believe is the right one to use to
2590 get schools to use free software?</strong></p>
2591
2592 <p>Current trends are in our favour. Open source is big in industry,
2593 and ordinary people have heard of it. The spread of Android and the
2594 popularity of Apple have helped to weaken the impression that you have
2595 to have Microsoft on everything. People complain to me much less about
2596 file formats and Word than they did 5 years ago. The Edu aspect is
2597 also a selling point. This is all customised for schools. Where is the
2598 Windows-edu, or the Mac-edu? But of course the main attraction is
2599 budget.The trick is to convince people that the quality is not
2600 compromised when you stop paying and use free software instead. That
2601 is one reason why I say the desktop experience is a weakness. People
2602 are not impressed when their USB drive doesn't work, or their browser
2603 doesn't play flash, for example.</p>
2604
2605 </div>
2606 <div class="tags">
2607
2608
2609 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>.
2610
2611
2612 </div>
2613 </div>
2614 <div class="padding"></div>
2615
2616 <div class="entry">
2617 <div class="title">
2618 <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>
2619 </div>
2620 <div class="date">
2621 7th March 2012
2622 </div>
2623 <div class="body">
2624 <!-- Video HTML based on http://www.diveintohtml5.net/video.html -->
2625
2626 <p>One of the Debian Edu developers, Wolfgang Schweer, just created a
2627 screen cast documenting how to create a lot of new users in LDAP on
2628 Debian Edu Squeeze. The video is embedded here in quarter size, and
2629 also available from <a href="http://vimeo.com/37675399">vimeo</a> and
2630 download as a
2631 <a href="http://ftp.skolelinux.org/skolelinux/press/screencasts/2012-02-29-debian_edu_mass_create_user_accounts.ogv">Ogg
2632 Theora</a> file. Check it out below.</p>
2633
2634 <p><video id="gosa-mass-user-create-movie" width="256" height="184" preload controls>
2635 <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"' />
2636 <p>Download video as
2637 <a href="http://ftp.skolelinux.org/skolelinux/press/screencasts/2012-02-29-debian_edu_mass_create_user_accounts.ogv">Ogg</a>.</p>
2638 </video></p>
2639
2640 </div>
2641 <div class="tags">
2642
2643
2644 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>.
2645
2646
2647 </div>
2648 </div>
2649 <div class="padding"></div>
2650
2651 <div class="entry">
2652 <div class="title">
2653 <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>
2654 </div>
2655 <div class="date">
2656 4th March 2012
2657 </div>
2658 <div class="body">
2659 <p>This weekend we wrapped up and published the third release
2660 candidate for <a href="http://www.skolelinux.org/">Debian Edu /
2661 Skolelinux</a> based on Squeeze. The full announcement is
2662 <a href="http://lists.debian.org/debian-edu-announce/2012/03/msg00000.html">available</a>
2663 from the project announcement list. Check it out if you
2664 need a software solution for your school.</p>
2665
2666 </div>
2667 <div class="tags">
2668
2669
2670 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>.
2671
2672
2673 </div>
2674 </div>
2675 <div class="padding"></div>
2676
2677 <div class="entry">
2678 <div class="title">
2679 <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>
2680 </div>
2681 <div class="date">
2682 3rd March 2012
2683 </div>
2684 <div class="body">
2685 <p>Many years ago, the <a href="http://www.skolelinux.org/">Skolelinux
2686 / Debian Edu project</a> initiated a student project to create a tool
2687 for making stop motion movies. The proposal came from a teacher
2688 needing such tool on Skolelinux. The project, called "stopmotion",
2689 was manned by two extraordinary students and won a school award and a
2690 national aware with this great project. The project was initiated and
2691 mentored by Herman Robak, and manned by the students Bjørn Erik Nilsen
2692 and Fredrik Berg Kjølstad. They got in touch with people at Aardman
2693 Animation studio and received feedback on how professionals would like
2694 such stopmotion tool to work, and the end result was and is used by
2695 animators around the globe. But as is usual after studying, both got
2696 jobs and went elsewhere, and did not have time to properly tend to the
2697 project, and it has been lingering for a few years now. Until last
2698 year...</p>
2699
2700 <p>Last year some of the users got together with Herman, and moved the
2701 project to Sourceforge and in effect restarted the project under a new
2702 name,
2703 <a href="http://sourceforge.net/projects/linuxstopmotion/">linuxstopmotion</a>.
2704 The name change was done to make it possible to find the project using
2705 Internet search engines (try to search for 'stopmotion' to see what I
2706 mean). I've been following
2707 <a href="https://lists.sourceforge.net/lists/listinfo/linuxstopmotion-community">the
2708 mailing list</a> and the improvement already in place and planned for
2709 the future is encouraging. If you want to make stop motion movies.
2710 Check it out. :)</p>
2711
2712 </div>
2713 <div class="tags">
2714
2715
2716 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>.
2717
2718
2719 </div>
2720 </div>
2721 <div class="padding"></div>
2722
2723 <div class="entry">
2724 <div class="title">
2725 <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>
2726 </div>
2727 <div class="date">
2728 27th February 2012
2729 </div>
2730 <div class="body">
2731 <p>This weekend we wrapped up and published the second release
2732 candidate for <a href="http://www.skolelinux.org/">Debian Edu /
2733 Skolelinux</a> based on Squeeze. The full announcement did for some
2734 reason not make it the project announcement list, but is
2735 <a href="http://lists.debian.org/debian-devel-announce/2012/02/msg00015.html">available</a>
2736 from the Debian development announcement list. Check it out if you
2737 need a software solution for your school.</p>
2738
2739 </div>
2740 <div class="tags">
2741
2742
2743 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>.
2744
2745
2746 </div>
2747 </div>
2748 <div class="padding"></div>
2749
2750 <div class="entry">
2751 <div class="title">
2752 <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>
2753 </div>
2754 <div class="date">
2755 19th February 2012
2756 </div>
2757 <div class="body">
2758 <p>One week delayed due to DVD build problems, we managed today to
2759 wrap up and publish the first release candidate for
2760 <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a> based
2761 on Squeeze. The full announcement is
2762 <a href="http://lists.debian.org/debian-edu-announce/2012/02/msg00001.html">available</a>
2763 on the project announcement list. Check it out if you need a software
2764 solution for your school.</p>
2765
2766 </div>
2767 <div class="tags">
2768
2769
2770 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>.
2771
2772
2773 </div>
2774 </div>
2775 <div class="padding"></div>
2776
2777 <div class="entry">
2778 <div class="title">
2779 <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>
2780 </div>
2781 <div class="date">
2782 14th February 2012
2783 </div>
2784 <div class="body">
2785 <p>Once in a while my home server have disk problems. Thanks to Linux
2786 Software RAID, I have not lost data yet (but
2787 <a href="http://comments.gmane.org/gmane.linux.raid/34532">I was
2788 close</a> this summer :). But once a disk is starting to behave
2789 funny, a practical problem present itself. How to get from the Linux
2790 device name (like /dev/sdd) to something that can be used to identify
2791 the disk when the computer is turned off? In my case I have SATA
2792 disks with a unique ID printed on the label. All I need is a way to
2793 figure out how to query the disk to get the ID out.</p>
2794
2795 <p>After fumbling a bit, I
2796 <a href="http://www.cyberciti.biz/faq/linux-getting-scsi-ide-harddisk-information/">found
2797 that hdparm -I</a> will report the disk serial number, which is
2798 printed on the disk label. The following (almost) one-liner can be
2799 used to look up the ID of all the failed disks:</p>
2800
2801 <blockquote><pre>
2802 for d in $(cat /proc/mdstat |grep '(F)'|tr ' ' "\n"|grep '(F)'|cut -d\[ -f1|sort -u);
2803 do
2804 printf "Failed disk $d: "
2805 hdparm -I /dev/$d |grep 'Serial Num'
2806 done
2807 </blockquote></pre>
2808
2809 <p>Putting it here to make sure I do not have to search for it the
2810 next time, and in case other find it useful.</p>
2811
2812 <p>At the moment I have two failing disk. :(</p>
2813
2814 <blockquote><pre>
2815 Failed disk sdd1: Serial Number: WD-WCASJ1860823
2816 Failed disk sdd2: Serial Number: WD-WCASJ1860823
2817 Failed disk sde2: Serial Number: WD-WCASJ1840589
2818 </blockquote></pre>
2819
2820 <p>The last time I had failing disks, I added the serial number on
2821 labels I printed and stuck on the short sides of each disk, to be able
2822 to figure out which disk to take out of the box without having to
2823 remove each disk to look at the physical vendor label. The vendor
2824 label is at the top of the disk, which is hidden when the disks are
2825 mounted inside my box.</p>
2826
2827 <p>I really wish the check_linux_raid Nagios plugin for checking Linux
2828 Software RAID in the
2829 <a href="http://packages.qa.debian.org/n/nagios-plugins.html">nagios-plugins-standard</a>
2830 debian package would look up this value automatically, as it would
2831 make the plugin a lot more useful when my disks fail. At the moment
2832 it only report a failure when there are no more spares left (it really
2833 should warn as soon as a disk is failing), and it do not tell me which
2834 disk(s) is failing when the RAID is running short on disks.</p>
2835
2836 </div>
2837 <div class="tags">
2838
2839
2840 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>.
2841
2842
2843 </div>
2844 </div>
2845 <div class="padding"></div>
2846
2847 <div class="entry">
2848 <div class="title">
2849 <a href="http://people.skolelinux.org/pere/blog/Automatic_proxy_configuration_with_Debian_Edu___Skolelinux.html">Automatic proxy configuration with Debian Edu / Skolelinux</a>
2850 </div>
2851 <div class="date">
2852 13th February 2012
2853 </div>
2854 <div class="body">
2855 <p>New in the Squeeze version of
2856 <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a> is the
2857 ability for clients to automatically configure their proxy settings
2858 based on their environment. We want all systems on the client to use
2859 the WPAD based proxy definition fetched from <tt>http://wpad/wpad.dat</tt>, to
2860 allow sites to control the proxy setting from a central place and make
2861 sure clients do not have hard coded proxy settings. The schools can
2862 change the global proxy setting by editing
2863 <tt>tjener:/etc/debian-edu/www/wpad.dat</tt> and the change propagate
2864 to all Debian Edu clients in the network.</p>
2865
2866 <p>The problem is that some systems do not understand the WPAD system.
2867 In other words, how do one get from a WPAD file like this (this is a
2868 simple one, they can run arbitrary code):</p>
2869
2870 <blockquote><pre>
2871 function FindProxyForURL(url, host)
2872 {
2873 if (!isResolvable(host) ||
2874 isPlainHostName(host) ||
2875 dnsDomainIs(host, ".intern"))
2876 return "DIRECT";
2877 else
2878 return "PROXY webcache:3128; DIRECT";
2879 }
2880 </pre></blockquote>
2881
2882 <p>to a proxy setting in the process environment looking like this:</p>
2883
2884 <blockquote><pre>
2885 http_proxy=http://webcache:3128/
2886 ftp_proxy=http://webcache:3128/
2887 </pre></blockquote>
2888
2889 <p>To do this conversion I developed a perl script that will execute
2890 the javascript fragment in the WPAD file and return the proxy that
2891 would be used for
2892 <tt><a href="http://www.debian.org/">http://www.debian.org/</a></tt>,
2893 and insert this extracted proxy URL in <tt>/etc/environment</tt> and
2894 <tt>/etc/apt/apt.conf</tt>. The perl script wpad-extract work just
2895 fine in Squeeze, but in Wheezy the library it need to run the
2896 javascript code is <a href="http://bugs.debian.org/631045">no longer
2897 able to build</a> because the C library it depended on is now a C++
2898 library. I hope someone find a solution to that problem before Wheezy
2899 is frozen. An alternative would be for us to rewrite wpad-extract to
2900 use some other javascript library currently working in Wheezy, but no
2901 known alternative is known at the moment.</p>
2902
2903 <p>This automatic proxy system allow the roaming workstation (aka
2904 laptop) setup in Debian Edu/Squeeze to use the proxy when the laptop
2905 is connected to the backbone network in a Debian Edu setup, and to
2906 automatically use any proxy present and announced using the WPAD
2907 feature when it is connected to other networks. And if no proxy is
2908 announced, direct connections will be used instead.</p>
2909
2910 <p>Silently using a proxy announced on the network might be a privacy
2911 or security problem. But those controlling DHCP and DNS on a network
2912 could just as easily set up a transparent proxy, and force all HTTP
2913 and FTP connections to use a proxy anyway, so I consider that
2914 distinction to be academic. If you are afraid of using the wrong
2915 proxy, you should avoid connecting to the network in question in the
2916 first place. In Debian Edu, the proxy setup is updated using dhcp and
2917 ifupdown hooks, to make sure the configuration is updated every time
2918 the network setup changes.</p>
2919
2920 <p>The WPAD system is documented in a
2921 <a href="http://tools.ietf.org/html/draft-ietf-wrec-wpad-01">IETF
2922 draft</a> and a
2923 <a href="http://en.wikipedia.org/wiki/Web_Proxy_Autodiscovery_Protocol">Wikipedia
2924 page</a> for those that want to learn more.</p>
2925
2926 </div>
2927 <div class="tags">
2928
2929
2930 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>.
2931
2932
2933 </div>
2934 </div>
2935 <div class="padding"></div>
2936
2937 <div class="entry">
2938 <div class="title">
2939 <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>
2940 </div>
2941 <div class="date">
2942 5th February 2012
2943 </div>
2944 <div class="body">
2945 <p>Since the Lenny version of
2946 <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a>, a
2947 feature to save power have been included. It is as simple as it is
2948 practical: Shut down unused clients at night, and turn them on again
2949 in the morning. This is done using the
2950 <a href="http://packages.qa.debian.org/s/shutdown-at-night.html">shutdown-at-night</a> Debian package.</p>
2951
2952 <p>To enable this feature on a client, the machine need to be added to
2953 the netgroup shutdown-at-night-hosts. For Debian Edu, this is done in
2954 LDAP, and once this is in place, the machine in question will check
2955 every hour from 16:00 until 06:00 to see if the machine is unused, and
2956 shut it down if it is. If the hardware in question is supported by
2957 the
2958 <a href="http://packages.qa.debian.org/n/nvram-wakeup.html">nvram-wakeup</a>
2959 package, the BIOS is told to turn the machine back on around 07:00 +-
2960 10 minutes. If this isn't working, one can configure wake-on-lan to
2961 try to turn on the client. The wake-on-lan option is only documented
2962 and not enabled by default in Debian Edu.</p>
2963
2964 <p>It is important to not turn all machines on at once, as this can
2965 blow a fuse if several computers are connected to the same fuse like
2966 the common setup for a classroom. The nvram-wakeup method only work
2967 for machines with a functioning hardware/BIOS clock. I've seen old
2968 machines where the BIOS battery were dead and the hardware clock were
2969 starting from 0 (or was it 1990?) every boot. If you have one of
2970 those, you have to turn on the computer manually.</p>
2971
2972 <p>The shutdown-at-night package is completely self contained, and can
2973 also be used outside the Debian Edu environment. For those without a
2974 central LDAP server with netgroups, one can instead touch the file
2975 <tt>/etc/shutdown-at-night/shutdown-at-night</tt> to enable it.
2976 Perhaps you too can use it to save some power?</p>
2977
2978 </div>
2979 <div class="tags">
2980
2981
2982 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>.
2983
2984
2985 </div>
2986 </div>
2987 <div class="padding"></div>
2988
2989 <div class="entry">
2990 <div class="title">
2991 <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>
2992 </div>
2993 <div class="date">
2994 4th February 2012
2995 </div>
2996 <div class="body">
2997 <p>I am happy to announce that finally we managed today to wrap up and
2998 publish the third beta version of
2999 <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a> based
3000 on Squeeze. If you want to test a LDAP backed Kerberos server with
3001 out of the box PXE configuration for running diskless machines and
3002 installing new machines, check it out. If you need a software
3003 solution for your school, check it out too. The full announcement is
3004 <a href="http://lists.debian.org/debian-edu-announce/2012/02/msg00000.html">available</a>
3005 on the project announcement list.</p>
3006
3007 <p>I am very happy to report these changes and improvements since
3008 beta2 (there are more, see announcement for full list):</p>
3009
3010 <ul>
3011
3012 <li>It is now possible to change the pre-configured IP subnet from
3013 10.0.0.0/8 to something else by using the subnet-change tool after
3014 the installation.</li>
3015
3016 <li>Too full partitions are now automatically extended on the Main
3017 Server, based on the rules specified in /etc/fsautoresizetab.</li>
3018
3019 <li>The CUPS queues are now automatically flushed every night, and all
3020 disabled queues are restarted every hour. This should cut down on
3021 the amount of manual administration needed for printers.</li>
3022
3023 <li>The set of initial users have been changed. Now a personal user
3024 for the local system administrator is created during installation
3025 instead of the previously created localadmin and super-admin users,
3026 and this user is granted administrative privileges using group
3027 membership. This reduces the number of passwords one need to keep
3028 up to date on the system.</li>
3029
3030 </ul>
3031
3032 <p>The new main server seem to work so well that I am testing it as my
3033 private DNS/LDAP/Kerberos/PXE/LTSP server at home. I will use it look
3034 for issues we could fix to polish Debian Edu even further before the
3035 final Squeeze release is published.</p>
3036
3037 <p>Next weekend the project organise a
3038 <a href="http://lists.debian.org/debian-edu-announce/2012/01/msg00001.html">developer
3039 gathering</a> in Oslo. We will continue the work on the Squeeze
3040 version, and start initial planning for the Wheezy version. Perhaps I
3041 will see you there?</p>
3042
3043 </div>
3044 <div class="tags">
3045
3046
3047 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>.
3048
3049
3050 </div>
3051 </div>
3052 <div class="padding"></div>
3053
3054 <div class="entry">
3055 <div class="title">
3056 <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>
3057 </div>
3058 <div class="date">
3059 27th January 2012
3060 </div>
3061 <div class="body">
3062 <p>With some computer hardware, one need non-free firmware blobs.
3063 This is the sad fact of todays computers. In the next version of
3064 <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a> based
3065 on Squeeze, we provide several scripts and modifications to make
3066 firmware blobs easier to handle. The common use case I run into is a
3067 laptop with a wireless network card requiring non-free firmware to
3068 work, but there are other use cases as well.</p>
3069
3070 <p>First and foremost, Debian Edu provide ISO images for DVD and CD
3071 with all firmware packages in the Debian sections main and non-free
3072 included, to ensure debian-installer find and can install all of them
3073 during installation. This take care firmware for network devices used
3074 by the installer when installing from from local media. But for
3075 example multimedia devices are not activated in the installer and are
3076 not taken care of by this.</p>
3077
3078 <p>For non-network devices, we provide the script
3079 <tt>/usr/share/debian-edu-config/tools/auto-addfirmware</tt> which
3080 search through the <tt>dmesg</tt> output for drivers requesting extra
3081 firmware. The firmware file name is looked up in the Contents-ARCH.gz
3082 file available in the package repository, and the packages providing
3083 the requested firmware file(s) is installed. I have proposed to do
3084 something similar in debian-installer (BTS report
3085 <a href="http://bugs.debian.org/655507">#655507</a>), to allow PXE
3086 installs of Debian to handle firmware installation better. Run the
3087 script as root from the command line to fetch and install the needed
3088 firmware packages.</p>
3089
3090 <p>Debian Edu provide PXE installation of Debian out of the box, and
3091 because some machines need firmware to get their network cards
3092 working, the installation initrd some times need extra firmware
3093 included to be able to install at all. To fill the PXE installation
3094 initrd with extra firmware, the
3095 <tt>/usr/share/debian-edu-config/tools/pxe-addfirmware</tt> script is
3096 provided. Again, just run it as root on the command line to fill the
3097 PXE initrd with firmware packages.</p>
3098
3099 <p>Last, some LTSP clients might also need firmware to get their
3100 network cards working. For this,
3101 <tt>/usr/share/debian-edu-config/tools/ltsp-addfirmware</tt> is
3102 provided to update the LTSP initrd with firmware blobs. It is used
3103 the same way as the other firmware related tools.</p>
3104
3105 <p>At the moment, we do not run any of these during installation. We
3106 do not know if this is acceptable for the local administrator to use
3107 non-free software, and it is their choice.</p>
3108
3109 <p>We plan to release beta3 this weekend. You might want to give it a
3110 try.</p>
3111
3112 </div>
3113 <div class="tags">
3114
3115
3116 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>.
3117
3118
3119 </div>
3120 </div>
3121 <div class="padding"></div>
3122
3123 <div class="entry">
3124 <div class="title">
3125 <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>
3126 </div>
3127 <div class="date">
3128 25th January 2012
3129 </div>
3130 <div class="body">
3131 <p>The next version of <a href="http://www.skolelinux.org/">Debian Edu
3132 / Skolelinux</a> will include a new tool
3133 <tt>sitesummary2ldapdhcp</tt>, which can be used to quickly set up all
3134 the computers in a school without much manual labour. Here is a short
3135 summary on how to use it to set up a new school.</p>
3136
3137 <p>First, install a combined Main Server and Thin Client Server as the
3138 central server in the network. Next, PXE boot all the client machines
3139 as thin clients and wait 5 minutes after the last client booted to
3140 allow the clients to report their existence to the central server. When
3141 this is done, log on to the central server and run
3142 <tt>sitesummary2ldapdhcp -a</tt> in the <tt>konsole</tt> to use the
3143 collected information to generate system objects in LDAP. The output
3144 will look similar to this:</p>
3145
3146 <p><blockquote><pre>
3147 % sitesummary2ldapdhcp -a
3148 info: Updating machine tjener.intern [10.0.2.2] id ether-00:01:02:03:04:05.
3149 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.
3150
3151 Enter password if you want to activate these changes, and ^c to abort.
3152
3153 Connecting to LDAP as cn=admin,ou=ldap-access,dc=skole,dc=skolelinux,dc=no
3154 enter password: *******
3155 %
3156 </pre></blockquote></p>
3157
3158 <p>After providing the LDAP administrative password (the same as the
3159 root password set during installation), the LDAP database will be
3160 populated with system objects for each PXE booted machine with
3161 automatically generated names. The final step to set up the school is
3162 then to log into <a href="https://oss.gonicus.de/labs/gosa/">GOsa</a>,
3163 the web based user, group and system administration system to change
3164 system names, add systems to the correct host groups and finally
3165 enable DHCP and DNS for the systems. All clients that should be used
3166 as diskless workstations should be added to the workstation-hosts
3167 group. After this is done, all computers can be booted again via PXE
3168 and get their assigned names and group based configuration
3169 automatically.</p>
3170
3171 <p>We plan to release beta3 with the updated version of this feature
3172 enabled this weekend. You might want to give it a try.</p>
3173
3174 <p>Update 2012-01-28: When calling sitesummary2ldapdhcp to add new
3175 hosts, one need to add the option -a. I forgot to mention this in my
3176 original text, and have added it to the text now.</p>
3177
3178 </div>
3179 <div class="tags">
3180
3181
3182 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>.
3183
3184
3185 </div>
3186 </div>
3187 <div class="padding"></div>
3188
3189 <div class="entry">
3190 <div class="title">
3191 <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>
3192 </div>
3193 <div class="date">
3194 10th January 2012
3195 </div>
3196 <div class="body">
3197 <p>In the Squeeze version of
3198 <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a> soon
3199 to be released, users of the system will get their default browser
3200 start page set from LDAP, allowing the system administrator to point
3201 all users to the school web page by updating one setting in LDAP. In
3202 addition to setting the default start page when a machine boots, users
3203 are shown the same page as a welcome page when they log in for the
3204 first time.</p>
3205
3206 <p>The LDAP object dc=skole,dc=skolelinux,dc=no have an attribute
3207 labeledURI with "http://www/ LDAP for Debian Edu/Skolelinux" as the
3208 default content. By changing this value to another URL, all users get
3209 to see the page behind this new URL.</p>
3210
3211 <p>An easy way to update it is by using the ldapvi tool. It can be
3212 called as "<tt>ldapvi -ZD '(cn=admin)'</tt>' to update LDAP with the
3213 new setting.</p>
3214
3215 <p>We have written the code to adjust the default start page and show
3216 the welcome page, and I wonder if there is an easier way to do this
3217 from within Iceweasel instead.</p>
3218
3219 </div>
3220 <div class="tags">
3221
3222
3223 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>.
3224
3225
3226 </div>
3227 </div>
3228 <div class="padding"></div>
3229
3230 <div class="entry">
3231 <div class="title">
3232 <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>
3233 </div>
3234 <div class="date">
3235 7th January 2012
3236 </div>
3237 <div class="body">
3238 <p>I am happy to announce that today we managed to wrap up and publish
3239 the second beta version of
3240 <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a>. If
3241 you want to test a LDAP backed Kerberos server with out of the box PXE
3242 configuration for running diskless machines and installing new
3243 machines, check it out. If you need a software solution for your
3244 school, check it out too. The full announcement is
3245 <a href="http://lists.debian.org/debian-edu-announce/2012/01/msg00000.html">available</a>
3246 on the project announcement list.</p>
3247
3248 </div>
3249 <div class="tags">
3250
3251
3252 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>.
3253
3254
3255 </div>
3256 </div>
3257 <div class="padding"></div>
3258
3259 <div class="entry">
3260 <div class="title">
3261 <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>
3262 </div>
3263 <div class="date">
3264 3rd January 2012
3265 </div>
3266 <div class="body">
3267 <p>During christmas, I have been working getting the next version of
3268 <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a> ready
3269 for release. The initial problem I looked at was particularly
3270 interesting.</p>
3271
3272 <P>The installer would hang at the end when it was doing it
3273 post-installation configuration, and whatevery I did to try to find
3274 the cause and fix it always worked while I tested it, but never when I
3275 integrated it into the installer and ran the installation from
3276 scratch. I would try to restart processes, close file descriptors,
3277 remove or create files, and the installer would always unblock and
3278 wrap up its tasks.</p>
3279
3280 <p>Eventually the cause was found. The kernel was simply running out
3281 of entropy, causing the Kerberos setup to hang waiting for more.
3282 Pressing keys was adding entropy to the kernel, and thus all my tries
3283 to fix the problem worked not because what I was typing to fix it, but
3284 because I was typing.</P>
3285
3286 <p>The fix I implemented was to add a background process looking at
3287 the level of entropy in the kernel (by checking
3288 /proc/sys/kernel/random/entropy_avail), and if it was too small, the
3289 installer will flush the kernel file buffers and do 'find /' to
3290 generate some disk IO. Disk IO generate entropy in the kernel, and is
3291 one of the few things that can be initated from within the system to
3292 generate entropy.</p>
3293
3294 <p>The fix is in
3295 <a href="http://wiki.debian.org/DebianEdu/Documentation/Squeeze/Installation">beta1
3296 of the Debian Edu/Squeeze</a> version, and we
3297 <a href="http://wiki.debian.org/DebianEdu">welcome more testers and
3298 developers</a>. We plan to release beta2 this weekend.</p>
3299
3300 </div>
3301 <div class="tags">
3302
3303
3304 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>.
3305
3306
3307 </div>
3308 </div>
3309 <div class="padding"></div>
3310
3311 <div class="entry">
3312 <div class="title">
3313 <a href="http://people.skolelinux.org/pere/blog/Automatically_upgrading_server_firmware_on_Dell_PowerEdge.html">Automatically upgrading server firmware on Dell PowerEdge</a>
3314 </div>
3315 <div class="date">
3316 21st November 2011
3317 </div>
3318 <div class="body">
3319 <p>At work we have heaps of servers. I believe the total count is
3320 around 1000 at the moment. To be able to get help from the vendors
3321 when something go wrong, we want to keep the firmware on the servers
3322 up to date. If the firmware isn't the latest and greatest, the
3323 vendors typically refuse to start debugging any problems until the
3324 firmware is upgraded. So before every reboot, we want to upgrade the
3325 firmware, and we would really like everyone handling servers at the
3326 university to do this themselves when they plan to reboot a machine.
3327 For that to happen we at the unix server admin group need to provide
3328 the tools to do so.</p>
3329
3330 <p>To make firmware upgrading easier, I am working on a script to
3331 fetch and install the latest firmware for the servers we got. Most of
3332 our hardware are from Dell and HP, so I have focused on these servers
3333 so far. This blog post is about the Dell part.</P>
3334
3335 <p>On the Dell FTP site I was lucky enough to find
3336 <a href="ftp://ftp.us.dell.com/catalog/Catalog.xml.gz">an XML file</a>
3337 with firmware information for all 11th generation servers, listing
3338 which firmware should be used on a given model and where on the FTP
3339 site I can find it. Using a simple perl XML parser I can then
3340 download the shell scripts Dell provides to do firmware upgrades from
3341 within Linux and reboot when all the firmware is primed and ready to
3342 be activated on the first reboot.</p>
3343
3344 <p>This is the Dell related fragment of the perl code I am working on.
3345 Are there anyone working on similar tools for firmware upgrading all
3346 servers at a site? Please get in touch and lets share resources.</p>
3347
3348 <p><pre>
3349 #!/usr/bin/perl
3350 use strict;
3351 use warnings;
3352 use File::Temp qw(tempdir);
3353 BEGIN {
3354 # Install needed RHEL packages if missing
3355 my %rhelmodules = (
3356 'XML::Simple' => 'perl-XML-Simple',
3357 );
3358 for my $module (keys %rhelmodules) {
3359 eval "use $module;";
3360 if ($@) {
3361 my $pkg = $rhelmodules{$module};
3362 system("yum install -y $pkg");
3363 eval "use $module;";
3364 }
3365 }
3366 }
3367 my $errorsto = 'pere@hungry.com';
3368
3369 upgrade_dell();
3370
3371 exit 0;
3372
3373 sub run_firmware_script {
3374 my ($opts, $script) = @_;
3375 unless ($script) {
3376 print STDERR "fail: missing script name\n";
3377 exit 1
3378 }
3379 print STDERR "Running $script\n\n";
3380
3381 if (0 == system("sh $script $opts")) { # FIXME correct exit code handling
3382 print STDERR "success: firmware script ran succcessfully\n";
3383 } else {
3384 print STDERR "fail: firmware script returned error\n";
3385 }
3386 }
3387
3388 sub run_firmware_scripts {
3389 my ($opts, @dirs) = @_;
3390 # Run firmware packages
3391 for my $dir (@dirs) {
3392 print STDERR "info: Running scripts in $dir\n";
3393 opendir(my $dh, $dir) or die "Unable to open directory $dir: $!";
3394 while (my $s = readdir $dh) {
3395 next if $s =~ m/^\.\.?/;
3396 run_firmware_script($opts, "$dir/$s");
3397 }
3398 closedir $dh;
3399 }
3400 }
3401
3402 sub download {
3403 my $url = shift;
3404 print STDERR "info: Downloading $url\n";
3405 system("wget --quiet \"$url\"");
3406 }
3407
3408 sub upgrade_dell {
3409 my @dirs;
3410 my $product = `dmidecode -s system-product-name`;
3411 chomp $product;
3412
3413 if ($product =~ m/PowerEdge/) {
3414
3415 # on RHEL, these pacakges are needed by the firwmare upgrade scripts
3416 system('yum install -y compat-libstdc++-33.i686 libstdc++.i686 libxml2.i686 procmail');
3417
3418 my $tmpdir = tempdir(
3419 CLEANUP => 1
3420 );
3421 chdir($tmpdir);
3422 fetch_dell_fw('catalog/Catalog.xml.gz');
3423 system('gunzip Catalog.xml.gz');
3424 my @paths = fetch_dell_fw_list('Catalog.xml');
3425 # -q is quiet, disabling interactivity and reducing console output
3426 my $fwopts = "-q";
3427 if (@paths) {
3428 for my $url (@paths) {
3429 fetch_dell_fw($url);
3430 }
3431 run_firmware_scripts($fwopts, $tmpdir);
3432 } else {
3433 print STDERR "error: Unsupported Dell model '$product'.\n";
3434 print STDERR "error: Please report to $errorsto.\n";
3435 }
3436 chdir('/');
3437 } else {
3438 print STDERR "error: Unsupported Dell model '$product'.\n";
3439 print STDERR "error: Please report to $errorsto.\n";
3440 }
3441 }
3442
3443 sub fetch_dell_fw {
3444 my $path = shift;
3445 my $url = "ftp://ftp.us.dell.com/$path";
3446 download($url);
3447 }
3448
3449 # Using ftp://ftp.us.dell.com/catalog/Catalog.xml.gz, figure out which
3450 # firmware packages to download from Dell. Only work for Linux
3451 # machines and 11th generation Dell servers.
3452 sub fetch_dell_fw_list {
3453 my $filename = shift;
3454
3455 my $product = `dmidecode -s system-product-name`;
3456 chomp $product;
3457 my ($mybrand, $mymodel) = split(/\s+/, $product);
3458
3459 print STDERR "Finding firmware bundles for $mybrand $mymodel\n";
3460
3461 my $xml = XMLin($filename);
3462 my @paths;
3463 for my $bundle (@{$xml->{SoftwareBundle}}) {
3464 my $brand = $bundle->{TargetSystems}->{Brand}->{Display}->{content};
3465 my $model = $bundle->{TargetSystems}->{Brand}->{Model}->{Display}->{content};
3466 my $oscode;
3467 if ("ARRAY" eq ref $bundle->{TargetOSes}->{OperatingSystem}) {
3468 $oscode = $bundle->{TargetOSes}->{OperatingSystem}[0]->{osCode};
3469 } else {
3470 $oscode = $bundle->{TargetOSes}->{OperatingSystem}->{osCode};
3471 }
3472 if ($mybrand eq $brand && $mymodel eq $model && "LIN" eq $oscode)
3473 {
3474 @paths = map { $_->{path} } @{$bundle->{Contents}->{Package}};
3475 }
3476 }
3477 for my $component (@{$xml->{SoftwareComponent}}) {
3478 my $componenttype = $component->{ComponentType}->{value};
3479
3480 # Drop application packages, only firmware and BIOS
3481 next if 'APAC' eq $componenttype;
3482
3483 my $cpath = $component->{path};
3484 for my $path (@paths) {
3485 if ($cpath =~ m%/$path$%) {
3486 push(@paths, $cpath);
3487 }
3488 }
3489 }
3490 return @paths;
3491 }
3492 </pre>
3493
3494 <p>The code is only tested on RedHat Enterprise Linux, but I suspect
3495 it could work on other platforms with some tweaking. Anyone know a
3496 index like Catalog.xml is available from HP for HP servers? At the
3497 moment I maintain a similar list manually and it is quickly getting
3498 outdated.</p>
3499
3500 </div>
3501 <div class="tags">
3502
3503
3504 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>.
3505
3506
3507 </div>
3508 </div>
3509 <div class="padding"></div>
3510
3511 <div class="entry">
3512 <div class="title">
3513 <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>
3514 </div>
3515 <div class="date">
3516 7th October 2011
3517 </div>
3518 <div class="body">
3519 <p>Here in Norway the public libraries are debating with the
3520 publishing houses how to handle electronic books. Surprisingly, the
3521 libraries seem to be willing to accept digital restriction mechanisms
3522 (DRM) on books and renting e-books with artificial scarcity from the
3523 publishing houses. Time limited renting (2-3 years) is one proposed
3524 model, and only allowing X borrowers for each book is another.
3525 Personally I find it amazing that libraries are even considering such
3526 models.</p>
3527
3528 <p>Anyway, while reading <a href="http://boklaben.no/?p=220">part of
3529 this debate</a>, it occurred to me that someone should present a more
3530 sensible approach to the libraries, to allow its borrowers to get used
3531 to a better model. The idea is simple:</p>
3532
3533 <p>Create a computer system for the libraries, either in the form of a
3534 Live DVD or a installable distribution, that provide a simple kiosk
3535 solution to hand out free e-books. As a start, the books distributed
3536 by <a href="http://www.gutenberg.org/">Project Gutenberg</a> (abount
3537 36,000 books), <a href="http://runeberg.org/">Project Runenberg</a>
3538 (1149 books) and <a href="http://www.archive.org/details/texts">The
3539 Internet Archive</a> (3,033,748 books) could be included, but any book
3540 where the copyright has expired or with a free licence could be
3541 distributed.</p>
3542
3543 <p>The computer system would make it easy to:</p>
3544
3545 <ul>
3546
3547 <li>Copy e-books into a USB stick, reading tablets, cell phones and
3548 other relevant equipment.</li>
3549
3550 <li>Show the books for reading on the the screen in the library.</li>
3551
3552 </ul>
3553
3554 <p>In addition to such kiosk solution, there should probably be a web
3555 site as well to allow people easy access to these books without
3556 visiting the library. The site would be the distribution point for
3557 the kiosk systems, which would connect regularly to fetch any new
3558 books available.</p>
3559
3560 <p>Are there anyone working on a system like this? I guess it would
3561 fit any library in the world, and not just the Norwegian public
3562 libraries. :)</p>
3563
3564 </div>
3565 <div class="tags">
3566
3567
3568 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>.
3569
3570
3571 </div>
3572 </div>
3573 <div class="padding"></div>
3574
3575 <div class="entry">
3576 <div class="title">
3577 <a href="http://people.skolelinux.org/pere/blog/Ripping_problematic_DVDs_using_dvdbackup_and_genisoimage.html">Ripping problematic DVDs using dvdbackup and genisoimage</a>
3578 </div>
3579 <div class="date">
3580 17th September 2011
3581 </div>
3582 <div class="body">
3583 <p>For convenience, I want to store copies of all my DVDs on my file
3584 server. It allow me to save shelf space flat while still having my
3585 movie collection easily available. It also make it possible to let
3586 the kids see their favourite DVDs without wearing the physical copies
3587 down. I prefer to store the DVDs as ISOs to keep the DVD menu and
3588 subtitle options intact. It also ensure that the entire film is one
3589 file on the disk. As this is for personal use, the ripping is
3590 perfectly legal here in Norway.</p>
3591
3592 <p>Normally I rip the DVDs using dd like this:</p>
3593
3594 <blockquote><pre>
3595 #!/bin/sh
3596 # apt-get install lsdvd
3597 title=$(lsdvd 2>/dev/null|awk '/Disc Title: / {print $3}')
3598 dd if=/dev/dvd of=/storage/dvds/$title.iso bs=1M
3599 </pre></blockquote>
3600
3601 <p>But some DVDs give a input/output error when I read it, and I have
3602 been looking for a better alternative. I have no idea why this I/O
3603 error occur, but suspect my DVD drive, the Linux kernel driver or
3604 something fishy with the DVDs in question. Or perhaps all three.</p>
3605
3606 <p>Anyway, I believe I found a solution today using dvdbackup and
3607 genisoimage. This script gave me a working ISO for a problematic
3608 movie by first extracting the DVD file system and then re-packing it
3609 back as an ISO.
3610
3611 <blockquote><pre>
3612 #!/bin/sh
3613 # apt-get install lsdvd dvdbackup genisoimage
3614 set -e
3615 tmpdir=/storage/dvds/
3616 title=$(lsdvd 2>/dev/null|awk '/Disc Title: / {print $3}')
3617 dvdbackup -i /dev/dvd -M -o $tmpdir -n$title
3618 genisoimage -dvd-video -o $tmpdir/$title.iso $tmpdir/$title
3619 rm -rf $tmpdir/$title
3620 </pre></blockquote>
3621
3622 <p>Anyone know of a better way available in Debian/Squeeze?</p>
3623
3624 <p>Update 2011-09-18: I got a tip from Konstantin Khomoutov about the
3625 readom program from the wodim package. It is specially written to
3626 read optical media, and is called like this: <tt>readom dev=/dev/dvd
3627 f=image.iso</tt>. It got 6 GB along with the problematic Cars DVD
3628 before it failed, and failed right away with a Timmy Time DVD.</p>
3629
3630 <p>Next, I got a tip from Bastian Blank about
3631 <a href="http://bblank.thinkmo.de/blog/new-software-python-dvdvideo">his
3632 program python-dvdvideo</a>, which seem to be just what I am looking
3633 for. Tested it with my problematic Timmy Time DVD, and it succeeded
3634 creating a ISO image. The git source built and installed just fine in
3635 Squeeze, so I guess this will be my tool of choice in the future.</p>
3636
3637 </div>
3638 <div class="tags">
3639
3640
3641 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>.
3642
3643
3644 </div>
3645 </div>
3646 <div class="padding"></div>
3647
3648 <div class="entry">
3649 <div class="title">
3650 <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>
3651 </div>
3652 <div class="date">
3653 4th August 2011
3654 </div>
3655 <div class="body">
3656 <p>Wouter Verhelst have some
3657 <a href="http://grep.be/blog/en/retorts/pere_kubuntu_boot">interesting
3658 comments and opinions</a> on my blog post on
3659 <a href="http://people.skolelinux.org/pere/blog/What_should_start_from__etc_rcS_d__in_Debian____almost_nothing.html">the
3660 need to clean up /etc/rcS.d/ in Debian</a> and my blog post about
3661 <a href="http://people.skolelinux.org/pere/blog/What_is_missing_in_the_Debian_desktop__or_why_my_parents_use_Kubuntu.html">the
3662 default KDE desktop in Debian</a>. I only have time to address one
3663 small piece of his comment now, and though it best to address the
3664 misunderstanding he bring forward:</p>
3665
3666 <p><blockquote>
3667 Currently, a system admin has four options: [...] boot to a
3668 single-user system (by adding 'single' to the kernel command line;
3669 this runs rcS and rc1 scripts)
3670 </blockquote></p>
3671
3672 <p>This make me believe Wouter believe booting into single user mode
3673 and booting into runlevel 1 is the same. I am not surprised he
3674 believe this, because it would make sense and is a quite sensible
3675 thing to believe. But because the boot in Debian is slightly broken,
3676 runlevel 1 do not work properly and it isn't the same as single user
3677 mode. I'll try to explain what is actually happing, but it is a bit
3678 hard to explain.</p>
3679
3680 <p>Single user mode is defined like this in /etc/inittab:
3681 "<tt>~~:S:wait:/sbin/sulogin</tt>". This means the only thing that is
3682 executed in single user mode is sulogin. Single user mode is a boot
3683 state "between" the runlevels, and when booting into single user mode,
3684 only the scripts in /etc/rcS.d/ are executed before the init process
3685 enters the single user state. When switching to runlevel 1, the state
3686 is in fact not ending in runlevel 1, but it passes through runlevel 1
3687 and end up in the single user mode (see /etc/rc1.d/S03single, which
3688 runs "init -t1 S" to switch to single user mode at the end of runlevel
3689 1. It is confusing that the 'S' (single user) init mode is not the
3690 mode enabled by /etc/rcS.d/ (which is more like the initial boot
3691 mode).</p>
3692
3693 <p>This summary might make it clearer. When booting for the first
3694 time into single user mode, the following commands are executed:
3695 "<tt>/etc/init.d/rc S; /sbin/sulogin</tt>". When booting into
3696 runlevel 1, the following commands are executed: "<tt>/etc/init.d/rc
3697 S; /etc/init.d/rc 1; /sbin/sulogin</tt>". A problem show up when
3698 trying to continue after visiting single user mode. Not all services
3699 are started again as they should, causing the machine to end up in an
3700 unpredicatble state. This is why Debian admins recommend rebooting
3701 after visiting single user mode.</p>
3702
3703 <p>A similar problem with runlevel 1 is caused by the amount of
3704 scripts executed from /etc/rcS.d/. When switching from say runlevel 2
3705 to runlevel 1, the services started from /etc/rcS.d/ are not properly
3706 stopped when passing through the scripts in /etc/rc1.d/, and not
3707 started again when switching away from runlevel 1 to the runlevels
3708 2-5. I believe the problem is best fixed by moving all the scripts
3709 out of /etc/rcS.d/ that are not <strong>required</strong> to get a
3710 functioning single user mode during boot.</p>
3711
3712 <p>I have spent several years investigating the Debian boot system,
3713 and discovered this problem a few years ago. I suspect it originates
3714 from when sysvinit was introduced into Debian, a long time ago.</p>
3715
3716 </div>
3717 <div class="tags">
3718
3719
3720 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>.
3721
3722
3723 </div>
3724 </div>
3725 <div class="padding"></div>
3726
3727 <div class="entry">
3728 <div class="title">
3729 <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>
3730 </div>
3731 <div class="date">
3732 30th July 2011
3733 </div>
3734 <div class="body">
3735 <p>In the Debian boot system, several packages include scripts that
3736 are started from /etc/rcS.d/. In fact, there is a bite more of them
3737 than make sense, and this causes a few problems. What kind of
3738 problems, you might ask. There are at least two problems. The first
3739 is that it is not possible to recover a machine after switching to
3740 runlevel 1. One need to actually reboot to get the machine back to
3741 the expected state. The other is that single user boot will sometimes
3742 run into problems because some of the subsystems are activated before
3743 the root login is presented, causing problems when trying to recover a
3744 machine from a problem in that subsystem. A minor additional point is
3745 that moving more scripts out of rcS.d/ and into the other rc#.d/
3746 directories will increase the amount of scripts that can run in
3747 parallel during boot, and thus decrease the boot time.</p>
3748
3749 <p>So, which scripts should start from rcS.d/. In short, only the
3750 scripts that _have_ to execute before the root login prompt is
3751 presented during a single user boot should go there. Everything else
3752 should go into the numeric runlevels. This means things like
3753 lm-sensors, fuse and x11-common should not run from rcS.d, but from
3754 the numeric runlevels. Today in Debian, there are around 115 init.d
3755 scripts that are started from rcS.d/, and most of them should be moved
3756 out. Do your package have one of them? Please help us make single
3757 user and runlevel 1 better by moving it.</p>
3758
3759 <p>Scripts setting up the screen, keyboard, system partitions
3760 etc. should still be started from rcS.d/, but there is for example no
3761 need to have the network enabled before the single user login prompt
3762 is presented.</p>
3763
3764 <p>As always, things are not so easy to fix as they sound. To keep
3765 Debian systems working while scripts migrate and during upgrades, the
3766 scripts need to be moved from rcS.d/ to rc2.d/ in reverse dependency
3767 order, ie the scripts that nothing in rcS.d/ depend on can be moved,
3768 and the next ones can only be moved when their dependencies have been
3769 moved first. This migration must be done sequentially while we ensure
3770 that the package system upgrade packages in the right order to keep
3771 the system state correct. This will require some coordination when it
3772 comes to network related packages, but most of the packages with
3773 scripts that should migrate do not have anything in rcS.d/ depending
3774 on them. Some packages have already been updated, like the sudo
3775 package, while others are still left to do. I wish I had time to work
3776 on this myself, but real live constrains make it unlikely that I will
3777 find time to push this forward.</p>
3778
3779 </div>
3780 <div class="tags">
3781
3782
3783 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>.
3784
3785
3786 </div>
3787 </div>
3788 <div class="padding"></div>
3789
3790 <div class="entry">
3791 <div class="title">
3792 <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>
3793 </div>
3794 <div class="date">
3795 29th July 2011
3796 </div>
3797 <div class="body">
3798 <p>While at Debconf11, I have several times during discussions
3799 mentioned the issues I believe should be improved in Debian for its
3800 desktop to be useful for more people. The use case for this is my
3801 parents, which are currently running Kubuntu which solve the
3802 issues.</p>
3803
3804 <p>I suspect these four missing features are not very hard to
3805 implement. After all, they are present in Ubuntu, so if we wanted to
3806 do this in Debian we would have a source.</p>
3807
3808 <ol>
3809
3810 <li><strong>Simple GUI based upgrade of packages.</strong> When there
3811 are new packages available for upgrades, a icon in the KDE status bar
3812 indicate this, and clicking on it will activate the simple upgrade
3813 tool to handle it. I have no problem guiding both of my parents
3814 through the process over the phone. If a kernel reboot is required,
3815 this too is indicated by the status bars and the upgrade tool. Last
3816 time I checked, nothing with the same features was working in KDE in
3817 Debian.</li>
3818
3819 <li><strong>Simple handling of missing Firefox browser
3820 plugins.</strong> When the browser encounter a MIME type it do not
3821 currently have a handler for, it will ask the user if the system
3822 should search for a package that would add support for this MIME type,
3823 and if the user say yes, the APT sources will be searched for packages
3824 advertising the MIME type in their control file (visible in the
3825 Packages file in the APT archive). If one or more packages are found,
3826 it is a simple click of the mouse to add support for the missing mime
3827 type. If the package require the user to accept some non-free
3828 license, this is explained to the user. The entire process make it
3829 more clear to the user why something do not work in the browser, and
3830 make the chances higher for the user to blame the web page authors and
3831 not the browser for any missing features.</li>
3832
3833 <li><strong>Simple handling of missing multimedia codec/format
3834 handlers.</strong> When the media players encounter a format or codec
3835 it is not supporting, a dialog pop up asking the user if the system
3836 should search for a package that would add support for it. This
3837 happen with things like MP3, Windows Media or H.264. The selection
3838 and installation procedure is very similar to the Firefox browser
3839 plugin handling. This is as far as I know implemented using a
3840 gstreamer hook. The end result is that the user easily get access to
3841 the codecs that are present from the APT archives available, while
3842 explaining more on why a given format is unsupported by Ubuntu.</li>
3843
3844 <li><strong>Better browser handling of some MIME types.</strong> When
3845 displaying a text/plain file in my Debian browser, it will propose to
3846 start emacs to show it. If I remember correctly, when doing the same
3847 in Kunbutu it show the file as a text file in the browser. At least I
3848 know Opera will show text files within the browser. I much prefer the
3849 latter behaviour.</li>
3850
3851 </ol>
3852
3853 <p>There are other nice features as well, like the simplified suite
3854 upgrader, but given that I am the one mostly doing the dist-upgrade,
3855 it do not matter much.</p>
3856
3857 <p>I really hope we could get these features in place for the next
3858 Debian release. It would require the coordinated effort of several
3859 maintainers, but would make the end user experience a lot better.</p>
3860
3861 </div>
3862 <div class="tags">
3863
3864
3865 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>.
3866
3867
3868 </div>
3869 </div>
3870 <div class="padding"></div>
3871
3872 <div class="entry">
3873 <div class="title">
3874 <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>
3875 </div>
3876 <div class="date">
3877 26th July 2011
3878 </div>
3879 <div class="body">
3880 <p>The Norwegian <a href="http://www.fiksgatami.no/">FiksGataMi</A>
3881 site is build on Debian/Squeeze, and this platform was chosen because
3882 I am most familiar with Debian (being a Debian Developer for around 10
3883 years) because it is the latest stable Debian release which should get
3884 security support for a few years.</p>
3885
3886 <p>The web service is written in Perl, and depend on some perl modules
3887 that are missing in Debian at the moment. It would be great if these
3888 modules were added to the Debian archive, allowing anyone to set up
3889 their own <a href="http://www.fixmystreet.com">FixMyStreet</a> clone
3890 in their own country using only Debian packages. The list of modules
3891 missing in Debian/Squeeze isn't very long, and I hope the perl group
3892 will find time to package the 12 modules Catalyst::Plugin::SmartURI,
3893 Catalyst::Plugin::Unicode::Encoding, Catalyst::View::TT, Devel::Hide,
3894 Sort::Key, Statistics::Distributions, Template::Plugin::Comma,
3895 Template::Plugin::DateTime::Format, Term::Size::Any, Term::Size::Perl,
3896 URI::SmartURI and Web::Scraper to make the maintenance of FixMyStreet
3897 easier in the future.</p>
3898
3899 <p>Thanks to the great tools in Debian, getting the missing modules
3900 installed on my server was a simple call to 'cpan2deb Module::Name'
3901 and 'dpkg -i' to install the resulting package. But this leave me
3902 with the responsibility of tracking security problems, which I really
3903 do not have time for.</p>
3904
3905 </div>
3906 <div class="tags">
3907
3908
3909 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>.
3910
3911
3912 </div>
3913 </div>
3914 <div class="padding"></div>
3915
3916 <div class="entry">
3917 <div class="title">
3918 <a href="http://people.skolelinux.org/pere/blog/Free_Software_vs__proprietary_softare___.html">Free Software vs. proprietary softare...</a>
3919 </div>
3920 <div class="date">
3921 20th June 2011
3922 </div>
3923 <div class="body">
3924 <p>Reading
3925 <a href="http://blog.thingiverse.com/2011/06/20/open-source-vs-closed-source-eulas/">the
3926 thingiverse blog</a>, I came across two highlights of interesting
3927 parts of the
3928 <a href="http://wiki.blender.org/index.php/Autodesk_EULA">Autodesk</a>
3929 and
3930 <a href="http://blog.makezine.com/archive/2011/06/things-you-cant-do-with-the-microsoft-kinect-sdk.html">Microsoft
3931 Kinect</a> End User License Agreements (EULAs), which illustrates
3932 quite well why I stay away from software with EULAs. Whenever I take
3933 the time to read their content, the terms are simply unacceptable.</p>
3934
3935 </div>
3936 <div class="tags">
3937
3938
3939 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>.
3940
3941
3942 </div>
3943 </div>
3944 <div class="padding"></div>
3945
3946 <div class="entry">
3947 <div class="title">
3948 <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>
3949 </div>
3950 <div class="date">
3951 30th April 2011
3952 </div>
3953 <div class="body">
3954 <p>Today, the first draft implementation of an
3955 <a href="http://www.open311.org/">Open311 API</a> for the Norwegian
3956 service <a href="http://www.fiksgatami.no/">FiksGataMi</a> started to
3957 work. It is only available on the developer server for now, and I
3958 have not tested it using any existing Open311 client (I lack the
3959 platforms needed to run the clients I have found so far), but it is
3960 able to query the database and extract a list of open and closed
3961 requests within a given category and reported to a given municipality.
3962 I believe that is a good start to create a useful service for those
3963 that want to do data mining on the requests submitted so far.</p>
3964
3965 <p>Where is it? Visit
3966 <a href="http://fiksgatami-dev.nuug.no/open311.cgi/v2/">http://fiksgatami-dev.nuug.no/open311.cgi/v2/</a>
3967 to have a look. Please send feedback to the
3968 <a href="http://lists.nuug.no/mailman/listinfo/fiksgatami">fiksgatami
3969 (at) nuug.no</a> mailing list.</p>
3970
3971 </div>
3972 <div class="tags">
3973
3974
3975 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>.
3976
3977
3978 </div>
3979 </div>
3980 <div class="padding"></div>
3981
3982 <div class="entry">
3983 <div class="title">
3984 <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>
3985 </div>
3986 <div class="date">
3987 29th April 2011
3988 </div>
3989 <div class="body">
3990 <p>The last few days I have spent some time trying to add support for
3991 the <a href="http://www.open311.org/">Open311 API</a> in the
3992 <a href="http://www.fiksgatami.no/">Norwegian FixMyStreet service</a>.
3993 Earlier I believed Open311 would be a useful API to use to submit
3994 reports to the municipalities, but when I noticed that the
3995 <a href="http://fixmystreet.org.nz/">New Zealand version</a> of
3996 FixMyStreet had implemented Open311 on the server side, it occurred to
3997 me that this was a nice way to allow the public, press and
3998 municipalities to do data mining directly in the FixMyStreet service.
3999 Thus I went to work implementing the Open311 specification for
4000 FixMyStreet. The implementation is not yet ready, but I am starting
4001 to get a draft limping along. In the process, I have discovered a few
4002 issues with the Open311 specification.</p>
4003
4004 <p>One obvious missing feature is the lack of natural language
4005 handling in the specification. The specification seem to assume all
4006 reports will be written in English, and do not provide a way for the
4007 receiving end to specify which languages are understood there. To be
4008 able to use the same client and submit to several Open311 receivers,
4009 it would be useful to know which language to use when writing reports.
4010 I believe the specification should be extended to allow the receivers
4011 of problem reports to specify which language they accept, and the
4012 submitter to specify which language the report is written in.
4013 Language of a text can also be automatically guessed using statistical
4014 methods, but for multi-lingual persons like myself, it is useful to
4015 know which language to use when writing a problem report. I suspect
4016 some lang=nb,nn kind of attribute would solve it.</p>
4017
4018 <p>A key part of the Open311 API is the list of services provided,
4019 which is similar to the categories used by FixMyStreet. One issue I
4020 run into is the need to specify both name and unique identifier for
4021 each category. The specification do not state that the identifier
4022 should be numeric, but all example implementations have used numbers
4023 here. In FixMyStreet, there is no number associated with each
4024 category. As the specification do not forbid it, I will use the name
4025 as the unique identifier for now and see how open311 clients handle
4026 it.</p>
4027
4028 <p>The report format in open311 and the report format in FixMyStreet
4029 differ in a key part. FixMyStreet have a title and a description,
4030 while Open311 only have a description and lack the title. I'm not
4031 quite sure how to best handle this yet. When asking for a FixMyStreet
4032 report in Open311 format, I just merge title an description into the
4033 open311 description, but this is not going to work if the open311 API
4034 should be used for submitting new reports to FixMyStreet.</p>
4035
4036 <p>The search feature in Open311 is missing a way to ask for problems
4037 near a geographic location. I believe this is important if one is to
4038 use Open311 as the query language for mobile units. The specification
4039 should be extended to handle this, probably using some new lat=, lon=
4040 and range= options.</p>
4041
4042 <p>The final challenge I see is that the FixMyStreet code handle
4043 several administrations in one interface, while the Open311 API seem
4044 to assume only one administration. For FixMyStreet, this mean a
4045 report can be sent to several administrations, and the categories
4046 available depend on the location of the problem. Not quite sure how
4047 to best handle this. I've noticed
4048 <a href="http://seeclickfix.com/open311/">SeeClickFix</a> added
4049 latitude and longitude options to the services request, but it do not
4050 solve the problem of what to return when no location is specified.
4051 Will have to investigate this a bit more.</p>
4052
4053 <p>My distaste for web forums have kept me from bringing these issues
4054 up with the open311 developer group. I really wish they had a email
4055 list available via <a href="http://www.gmane.org/">Gmane</a> to use for
4056 discussions instead of only
4057 <a href="http://lists.open311.org/groups/discuss">a forum<a/>. Oh,
4058 well. That will probably resolve itself, one way or another. I've
4059 also tried visiting the IRC channel #open311 on FreeNode, but no-one
4060 seem to reply to my questions there. This make me wonder if I just
4061 fail to understand how the open311 community work. It sure do not
4062 work like the free software project communities I am used to.</p>
4063
4064 </div>
4065 <div class="tags">
4066
4067
4068 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>.
4069
4070
4071 </div>
4072 </div>
4073 <div class="padding"></div>
4074
4075 <div class="entry">
4076 <div class="title">
4077 <a href="http://people.skolelinux.org/pere/blog/Gnash_enteres_Google_Summer_of_Code_2011.html">Gnash enteres Google Summer of Code 2011</a>
4078 </div>
4079 <div class="date">
4080 6th April 2011
4081 </div>
4082 <div class="body">
4083 <p><a href="http://www.getgnash.org/">The Gnash project</a> is still
4084 the most promising solution for a Free Software Flash implementation.
4085 A few days ago the project
4086 <a href="http://lists.gnu.org/archive/html/gnash-dev/2011-04/msg00011.html">announced</a>
4087 that it will participate in Google Summer of Code. I hope many
4088 students apply, and that some of them succeed in getting AVM2 support
4089 into Gnash.</p>
4090
4091 </div>
4092 <div class="tags">
4093
4094
4095 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>.
4096
4097
4098 </div>
4099 </div>
4100 <div class="padding"></div>
4101
4102 <div class="entry">
4103 <div class="title">
4104 <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>
4105 </div>
4106 <div class="date">
4107 3rd April 2011
4108 </div>
4109 <div class="body">
4110 <p>Here is a small update for my English readers. Most of my blog
4111 posts have been in Norwegian the last few weeks, so here is a short
4112 update in English.</p>
4113
4114 <p>The kids still keep me too busy to get much free software work
4115 done, but I did manage to organise a project to get a Norwegian port
4116 of the British service
4117 <a href="http://www.fixmystreet.com/">FixMyStreet</a> up and running,
4118 and it has been running for a month now. The entire project has been
4119 organised by me and two others. Around Christmas we gathered sponsors
4120 to fund the development work. In January I drafted a contract with
4121 <a href="http://www.mysociety.org/">mySociety</a> on what to develop,
4122 and in February the development took place. Most of it involved
4123 converting the source to use GPS coordinates instead of British
4124 easting/northing, and the resulting code should be a lot easier to get
4125 running in any country by now. The Norwegian
4126 <a href="http://www.fiksgatami.no/">FiksGataMi</a> is using
4127 <a href="http://www.openstreetmap.org/">OpenStreetmap</a> as the map
4128 source and the source for administrative borders in Norway, and
4129 support for this had to be added/fixed.</p>
4130
4131 <p>The Norwegian version went live March 3th, and we spent the weekend
4132 polishing the system before we announced it March 7th. The system is
4133 running on a KVM instance of Debian/Squeeze, and has seen almost 3000
4134 problem reports in a few weeks. Soon we hope to announce the Android
4135 and iPhone versions making it even easier to report problems with the
4136 public infrastructure.</p>
4137
4138 <p>Perhaps something to consider for those of you in countries without
4139 such service?</p>
4140
4141 </div>
4142 <div class="tags">
4143
4144
4145 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>.
4146
4147
4148 </div>
4149 </div>
4150 <div class="padding"></div>
4151
4152 <div class="entry">
4153 <div class="title">
4154 <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>
4155 </div>
4156 <div class="date">
4157 28th January 2011
4158 </div>
4159 <div class="body">
4160 <p>The last few days I have looked at ways to track open security
4161 issues here at my work with the University of Oslo. My idea is that
4162 it should be possible to use the information about security issues
4163 available on the Internet, and check our locally
4164 maintained/distributed software against this information. It should
4165 allow us to verify that no known security issues are forgotten. The
4166 CVE database listing vulnerabilities seem like a great central point,
4167 and by using the package lists from Debian mapped to CVEs provided by
4168 the testing security team, I believed it should be possible to figure
4169 out which security holes were present in our free software
4170 collection.</p>
4171
4172 <p>After reading up on the topic, it became obvious that the first
4173 building block is to be able to name software packages in a unique and
4174 consistent way across data sources. I considered several ways to do
4175 this, for example coming up with my own naming scheme like using URLs
4176 to project home pages or URLs to the Freshmeat entries, or using some
4177 existing naming scheme. And it seem like I am not the first one to
4178 come across this problem, as MITRE already proposed and implemented a
4179 solution. Enter the <a href="http://cpe.mitre.org/index.html">Common
4180 Platform Enumeration</a> dictionary, a vocabulary for referring to
4181 software, hardware and other platform components. The CPE ids are
4182 mapped to CVEs in the <a href="http://web.nvd.nist.gov/">National
4183 Vulnerability Database</a>, allowing me to look up know security
4184 issues for any CPE name. With this in place, all I need to do is to
4185 locate the CPE id for the software packages we use at the university.
4186 This is fairly trivial (I google for 'cve cpe $package' and check the
4187 NVD entry if a CVE for the package exist).</p>
4188
4189 <p>To give you an example. The GNU gzip source package have the CPE
4190 name cpe:/a:gnu:gzip. If the old version 1.3.3 was the package to
4191 check out, one could look up
4192 <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
4193 in NVD</a> and get a list of 6 security holes with public CVE entries.
4194 The most recent one is
4195 <a href="http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2010-0001">CVE-2010-0001</a>,
4196 and at the bottom of the NVD page for this vulnerability the complete
4197 list of affected versions is provided.</p>
4198
4199 <p>The NVD database of CVEs is also available as a XML dump, allowing
4200 for offline processing of issues. Using this dump, I've written a
4201 small script taking a list of CPEs as input and list all CVEs
4202 affecting the packages represented by these CPEs. One give it CPEs
4203 with version numbers as specified above and get a list of open
4204 security issues out.</p>
4205
4206 <p>Of course for this approach to be useful, the quality of the NVD
4207 information need to be high. For that to happen, I believe as many as
4208 possible need to use and contribute to the NVD database. I notice
4209 RHEL is providing
4210 <a href="https://www.redhat.com/security/data/metrics/rhsamapcpe.txt">a
4211 map from CVE to CPE</a>, indicating that they are using the CPE
4212 information. I'm not aware of Debian and Ubuntu doing the same.</p>
4213
4214 <p>To get an idea about the quality for free software, I spent some
4215 time making it possible to compare the CVE database from Debian with
4216 the CVE database in NVD. The result look fairly good, but there are
4217 some inconsistencies in NVD (same software package having several
4218 CPEs), and some inaccuracies (NVD not mentioning buggy packages that
4219 Debian believe are affected by a CVE). Hope to find time to improve
4220 the quality of NVD, but that require being able to get in touch with
4221 someone maintaining it. So far my three emails with questions and
4222 corrections have not seen any reply, but I hope contact can be
4223 established soon.</p>
4224
4225 <p>An interesting application for CPEs is cross platform package
4226 mapping. It would be useful to know which packages in for example
4227 RHEL, OpenSuSe and Mandriva are missing from Debian and Ubuntu, and
4228 this would be trivial if all linux distributions provided CPE entries
4229 for their packages.</p>
4230
4231 </div>
4232 <div class="tags">
4233
4234
4235 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>.
4236
4237
4238 </div>
4239 </div>
4240 <div class="padding"></div>
4241
4242 <div class="entry">
4243 <div class="title">
4244 <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>
4245 </div>
4246 <div class="date">
4247 23rd January 2011
4248 </div>
4249 <div class="body">
4250 <p>In the
4251 <a href="http://packages.qa.debian.org/discover-data">discover-data</a>
4252 package in Debian, there is a script to report useful information
4253 about the running hardware for use when people report missing
4254 information. One part of this script that I find very useful when
4255 debugging hardware problems, is the part mapping loaded kernel module
4256 to the PCI device it claims. It allow me to quickly see if the kernel
4257 module I expect is driving the hardware I am struggling with. To see
4258 the output, make sure discover-data is installed and run
4259 <tt>/usr/share/bug/discover-data 3>&1</tt>. The relevant output on
4260 one of my machines like this:</p>
4261
4262 <pre>
4263 loaded modules:
4264 10de:03eb i2c_nforce2
4265 10de:03f1 ohci_hcd
4266 10de:03f2 ehci_hcd
4267 10de:03f0 snd_hda_intel
4268 10de:03ec pata_amd
4269 10de:03f6 sata_nv
4270 1022:1103 k8temp
4271 109e:036e bttv
4272 109e:0878 snd_bt87x
4273 11ab:4364 sky2
4274 </pre>
4275
4276 <p>The code in question look like this, slightly modified for
4277 readability and to drop the output to file descriptor 3:</p>
4278
4279 <pre>
4280 if [ -d /sys/bus/pci/devices/ ] ; then
4281 echo loaded pci modules:
4282 (
4283 cd /sys/bus/pci/devices/
4284 for address in * ; do
4285 if [ -d "$address/driver/module" ] ; then
4286 module=`cd $address/driver/module ; pwd -P | xargs basename`
4287 if grep -q "^$module " /proc/modules ; then
4288 address=$(echo $address |sed s/0000://)
4289 id=`lspci -n -s $address | tail -n 1 | awk '{print $3}'`
4290 echo "$id $module"
4291 fi
4292 fi
4293 done
4294 )
4295 echo
4296 fi
4297 </pre>
4298
4299 <p>Similar code could be used to extract USB device module
4300 mappings:</p>
4301
4302 <pre>
4303 if [ -d /sys/bus/usb/devices/ ] ; then
4304 echo loaded usb modules:
4305 (
4306 cd /sys/bus/usb/devices/
4307 for address in * ; do
4308 if [ -d "$address/driver/module" ] ; then
4309 module=`cd $address/driver/module ; pwd -P | xargs basename`
4310 if grep -q "^$module " /proc/modules ; then
4311 address=$(echo $address |sed s/0000://)
4312 id=$(lsusb -s $address | tail -n 1 | awk '{print $6}')
4313 if [ "$id" ] ; then
4314 echo "$id $module"
4315 fi
4316 fi
4317 fi
4318 done
4319 )
4320 echo
4321 fi
4322 </pre>
4323
4324 <p>This might perhaps be something to include in other tools as
4325 well.</p>
4326
4327 </div>
4328 <div class="tags">
4329
4330
4331 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>.
4332
4333
4334 </div>
4335 </div>
4336 <div class="padding"></div>
4337
4338 <div class="entry">
4339 <div class="title">
4340 <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>
4341 </div>
4342 <div class="date">
4343 16th January 2011
4344 </div>
4345 <div class="body">
4346 <p>The video format struggle on the web continues, and the three
4347 contenders seem to be Ogg Theora, H.264 and WebM. Most video sites
4348 seem to use H.264, while others use Ogg Theora. Interestingly enough,
4349 the comments I see give me the feeling that a lot of people believe
4350 H.264 is the most supported video format in browsers, but according to
4351 the Wikipedia article on
4352 <a href="http://en.wikipedia.org/wiki/HTML5_video">HTML5 video</a>,
4353 this is not true. Check out the nice table of supprted formats in
4354 different browsers there. The format supported by most browsers is
4355 Ogg Theora, supported by released versions of Mozilla Firefox, Google
4356 Chrome, Chromium, Opera, Konqueror, Epiphany, Origyn Web Browser and
4357 BOLT browser, while not supported by Internet Explorer nor Safari.
4358 The runner up is WebM supported by released versions of Google Chrome
4359 Chromium Opera and Origyn Web Browser, and test versions of Mozilla
4360 Firefox. H.264 is supported by released versions of Safari, Origyn
4361 Web Browser and BOLT browser, and the test version of Internet
4362 Explorer. Those wanting Ogg Theora support in Internet Explorer and
4363 Safari can install plugins to get it.</p>
4364
4365 <p>To me, the simple conclusion from this is that to reach most users
4366 without any extra software installed, one uses Ogg Theora with the
4367 HTML5 video tag. Of course to reach all those without a browser
4368 handling HTML5, one need fallback mechanisms. In
4369 <a href="http://www.nuug.no/">NUUG</a>, we provide first fallback to a
4370 plugin capable of playing MPEG1 video, and those without such support
4371 we have a second fallback to the Cortado java applet playing Ogg
4372 Theora. This seem to work quite well, as can be seen in an <a
4373 href="http://www.nuug.no/aktiviteter/20110111-semantic-web/">example
4374 from last week</a>.</p>
4375
4376 <p>The reason Ogg Theora is the most supported format, and H.264 is
4377 the least supported is simple. Implementing and using H.264
4378 require royalty payment to MPEG-LA, and the terms of use from MPEG-LA
4379 are incompatible with free software licensing. If you believed H.264
4380 was without royalties and license terms, check out
4381 "<a href="http://webmink.com/essays/h-264/">H.264 – Not The Kind Of
4382 Free That Matters</a>" by Simon Phipps.</p>
4383
4384 <p>A incomplete list of sites providing video in Ogg Theora is
4385 available from
4386 <a href="http://wiki.xiph.org/index.php/List_of_Theora_videos">the
4387 Xiph.org wiki</a>, if you want to have a look. I'm not aware of a
4388 similar list for WebM nor H.264.</p>
4389
4390 <p>Update 2011-01-16 09:40: A question from Tollef on IRC made me
4391 realise that I failed to make it clear enough this text is about the
4392 &lt;video&gt; tag support in browsers and not the video support
4393 provided by external plugins like the Flash plugins.</p>
4394
4395 </div>
4396 <div class="tags">
4397
4398
4399 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>.
4400
4401
4402 </div>
4403 </div>
4404 <div class="padding"></div>
4405
4406 <div class="entry">
4407 <div class="title">
4408 <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>
4409 </div>
4410 <div class="date">
4411 12th January 2011
4412 </div>
4413 <div class="body">
4414 <p>Today I discovered
4415 <a href="http://www.digi.no/860070/google-dropper-h264-stotten-i-chrome">via
4416 digi.no</a> that the Chrome developers, in a surprising announcement,
4417 <a href="http://blog.chromium.org/2011/01/html-video-codec-support-in-chrome.html">yesterday
4418 announced</a> plans to drop H.264 support for HTML5 &lt;video&gt; in
4419 the browser. The argument used is that H.264 is not a "completely
4420 open" codec technology. If you believe H.264 was free for everyone
4421 to use, I recommend having a look at the essay
4422 "<a href="http://webmink.com/essays/h-264/">H.264 – Not The Kind Of
4423 Free That Matters</a>". It is not free of cost for creators of video
4424 tools, nor those of us that want to publish on the Internet, and the
4425 terms provided by MPEG-LA excludes free software projects from
4426 licensing the patents needed for H.264. Some background information
4427 on the Google announcement is available from
4428 <a href="http://www.osnews.com/story/24243/Google_To_Drop_H264_Support_from_Chrome">OSnews</a>.
4429 A good read. :)</p>
4430
4431 <p>Personally, I believe it is great that Google is taking a stand to
4432 promote equal terms for everyone when it comes to video publishing on
4433 the Internet. This can only be done by publishing using free and open
4434 standards, which is only possible if the web browsers provide support
4435 for these free and open standards. At the moment there seem to be two
4436 camps in the web browser world when it come to video support. Some
4437 browsers support H.264, and others support
4438 <a href="http://www.theora.org/">Ogg Theora</a> and
4439 <a href="http://www.webmproject.org/">WebM</a>
4440 (<a href="http://www.diracvideo.org/">Dirac</a> is not really an option
4441 yet), forcing those of us that want to publish video on the Internet
4442 and which can not accept the terms of use presented by MPEG-LA for
4443 H.264 to not reach all potential viewers.
4444 Wikipedia keep <a href="http://en.wikipedia.org/wiki/HTML5_video">an
4445 updated summary</a> of the current browser support.</p>
4446
4447 <p>Not surprising, several people would prefer Google to keep
4448 promoting H.264, and John Gruber
4449 <a href="http://daringfireball.net/2011/01/simple_questions">presents
4450 the mind set</a> of these people quite well. His rhetorical questions
4451 provoked a reply from Thom Holwerda with another set of questions
4452 <a href="http://www.osnews.com/story/24245/10_Questions_for_John_Gruber_Regarding_H_264_WebM">presenting
4453 the issues with H.264</a>. Both are worth a read.</p>
4454
4455 <p>Some argue that if Google is dropping H.264 because it isn't free,
4456 they should also drop support for the Adobe Flash plugin. This
4457 argument was covered by Simon Phipps in
4458 <a href="http://blogs.computerworlduk.com/simon-says/2011/01/google-and-h264---far-from-hypocritical/index.htm">todays
4459 blog post</a>, which I find to put the issue in context. To me it
4460 make perfect sense to drop native H.264 support for HTML5 in the
4461 browser while still allowing plugins.</p>
4462
4463 <p>I suspect the reason this announcement make so many people protest,
4464 is that all the users and promoters of H.264 suddenly get an uneasy
4465 feeling that they might be backing the wrong horse. A lot of TV
4466 broadcasters have been moving to H.264 the last few years, and a lot
4467 of money has been invested in hardware based on the belief that they
4468 could use the same video format for both broadcasting and web
4469 publishing. Suddenly this belief is shaken.</p>
4470
4471 <p>An interesting question is why Google is doing this. While the
4472 presented argument might be true enough, I believe Google would only
4473 present the argument if the change make sense from a business
4474 perspective. One reason might be that they are currently negotiating
4475 with MPEG-LA over royalties or usage terms, and giving MPEG-LA the
4476 feeling that dropping H.264 completely from Chroome, Youtube and
4477 Google Video would improve the negotiation position of Google.
4478 Another reason might be that Google want to save money by not having
4479 to pay the video tax to MPEG-LA at all, and thus want to move to a
4480 video format not requiring royalties at all. A third reason might be
4481 that the Chrome development team simply want to avoid the
4482 Chrome/Chromium split to get more help with the development of Chrome.
4483 I guess time will tell.</p>
4484
4485 <p>Update 2011-01-15: The Google Chrome team provided
4486 <a href="http://blog.chromium.org/2011/01/more-about-chrome-html-video-codec.html">more
4487 background and information on the move</a> it a blog post yesterday.</p>
4488
4489 </div>
4490 <div class="tags">
4491
4492
4493 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
4494
4495
4496 </div>
4497 </div>
4498 <div class="padding"></div>
4499
4500 <div class="entry">
4501 <div class="title">
4502 <a href="http://people.skolelinux.org/pere/blog/What_standards_are_Free_and_Open_as_defined_by_Digistan_.html">What standards are Free and Open as defined by Digistan?</a>
4503 </div>
4504 <div class="date">
4505 30th December 2010
4506 </div>
4507 <div class="body">
4508 <p>After trying to
4509 <a href="http://people.skolelinux.org/pere/blog/Is_Ogg_Theora_a_free_and_open_standard_.html">compare
4510 Ogg Theora</a> to
4511 <a href="http://www.digistan.org/open-standard:definition">the Digistan
4512 definition</a> of a free and open standard, I concluded that this need
4513 to be done for more standards and started on a framework for doing
4514 this. As a start, I want to get the status for all the standards in
4515 the Norwegian reference directory, which include UTF-8, HTML, PDF, ODF,
4516 JPEG, PNG, SVG and others. But to be able to complete this in a
4517 reasonable time frame, I will need help.</p>
4518
4519 <p>If you want to help out with this work, please visit
4520 <a href="http://wiki.nuug.no/grupper/standard/digistan-analyse">the
4521 wiki pages I have set up for this</a>, and let me know that you want
4522 to help out. The IRC channel #nuug on irc.freenode.net is a good
4523 place to coordinate this for now, as it is the IRC channel for the
4524 NUUG association where I have created the framework (I am the leader
4525 of the Norwegian Unix User Group).</p>
4526
4527 <p>The framework is still forming, and a lot is left to do. Do not be
4528 scared by the sketchy form of the current pages. :)</p>
4529
4530 </div>
4531 <div class="tags">
4532
4533
4534 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>.
4535
4536
4537 </div>
4538 </div>
4539 <div class="padding"></div>
4540
4541 <div class="entry">
4542 <div class="title">
4543 <a href="http://people.skolelinux.org/pere/blog/The_many_definitions_of_a_open_standard.html">The many definitions of a open standard</a>
4544 </div>
4545 <div class="date">
4546 27th December 2010
4547 </div>
4548 <div class="body">
4549 <p>One of the reasons I like the Digistan definition of
4550 "<a href="http://www.digistan.org/open-standard:definition">Free and
4551 Open Standard</a>" is that this is a new term, and thus the meaning of
4552 the term has been decided by Digistan. The term "Open Standard" has
4553 become so misunderstood that it is no longer very useful when talking
4554 about standards. One end up discussing which definition is the best
4555 one and with such frame the only one gaining are the proponents of
4556 de-facto standards and proprietary solutions.</p>
4557
4558 <p>But to give us an idea about the diversity of definitions of open
4559 standards, here are a few that I know about. This list is not
4560 complete, but can be a starting point for those that want to do a
4561 complete survey. More definitions are available on the
4562 <a href="http://en.wikipedia.org/wiki/Open_standard">wikipedia
4563 page</a>.</p>
4564
4565 <p>First off is my favourite, the definition from the European
4566 Interoperability Framework version 1.0. Really sad to notice that BSA
4567 and others has succeeded in getting it removed from version 2.0 of the
4568 framework by stacking the committee drafting the new version with
4569 their own people. Anyway, the definition is still available and it
4570 include the key properties needed to make sure everyone can use a
4571 specification on equal terms.</p>
4572
4573 <blockquote>
4574
4575 <p>The following are the minimal characteristics that a specification
4576 and its attendant documents must have in order to be considered an
4577 open standard:</p>
4578
4579 <ul>
4580
4581 <li>The standard is adopted and will be maintained by a not-for-profit
4582 organisation, and its ongoing development occurs on the basis of an
4583 open decision-making procedure available to all interested parties
4584 (consensus or majority decision etc.).</li>
4585
4586 <li>The standard has been published and the standard specification
4587 document is available either freely or at a nominal charge. It must be
4588 permissible to all to copy, distribute and use it for no fee or at a
4589 nominal fee.</li>
4590
4591 <li>The intellectual property - i.e. patents possibly present - of
4592 (parts of) the standard is made irrevocably available on a royalty-
4593 free basis.</li>
4594
4595 <li>There are no constraints on the re-use of the standard.</li>
4596
4597 </ul>
4598 </blockquote>
4599
4600 <p>Another one originates from my friends over at
4601 <a href="http://www.dkuug.dk/">DKUUG</a>, who coined and gathered
4602 support for <a href="http://www.aaben-standard.dk/">this
4603 definition</a> in 2004. It even made it into the Danish parlament as
4604 <a href="http://www.ft.dk/dokumenter/tingdok.aspx?/samling/20051/beslutningsforslag/B103/som_fremsat.htm">their
4605 definition of a open standard</a>. Another from a different part of
4606 the Danish government is available from the wikipedia page.</p>
4607
4608 <blockquote>
4609
4610 <p>En åben standard opfylder følgende krav:</p>
4611
4612 <ol>
4613
4614 <li>Veldokumenteret med den fuldstændige specifikation offentligt
4615 tilgængelig.</li>
4616
4617 <li>Frit implementerbar uden økonomiske, politiske eller juridiske
4618 begrænsninger på implementation og anvendelse.</li>
4619
4620 <li>Standardiseret og vedligeholdt i et åbent forum (en såkaldt
4621 "standardiseringsorganisation") via en åben proces.</li>
4622
4623 </ol>
4624
4625 </blockquote>
4626
4627 <p>Then there is <a href="http://www.fsfe.org/projects/os/def.html">the
4628 definition</a> from Free Software Foundation Europe.</p>
4629
4630 <blockquote>
4631
4632 <p>An Open Standard refers to a format or protocol that is</p>
4633
4634 <ol>
4635
4636 <li>subject to full public assessment and use without constraints in a
4637 manner equally available to all parties;</li>
4638
4639 <li>without any components or extensions that have dependencies on
4640 formats or protocols that do not meet the definition of an Open
4641 Standard themselves;</li>
4642
4643 <li>free from legal or technical clauses that limit its utilisation by
4644 any party or in any business model;</li>
4645
4646 <li>managed and further developed independently of any single vendor
4647 in a process open to the equal participation of competitors and third
4648 parties;</li>
4649
4650 <li>available in multiple complete implementations by competing
4651 vendors, or as a complete implementation equally available to all
4652 parties.</li>
4653
4654 </ol>
4655
4656 </blockquote>
4657
4658 <p>A long time ago, SUN Microsystems, now bought by Oracle, created
4659 its
4660 <a href="http://blogs.sun.com/dennisding/resource/Open%20Standard%20Definition.pdf">Open
4661 Standards Checklist</a> with a fairly detailed description.</p>
4662
4663 <blockquote>
4664 <p>Creation and Management of an Open Standard
4665
4666 <ul>
4667
4668 <li>Its development and management process must be collaborative and
4669 democratic:
4670
4671 <ul>
4672
4673 <li>Participation must be accessible to all those who wish to
4674 participate and can meet fair and reasonable criteria
4675 imposed by the organization under which it is developed
4676 and managed.</li>
4677
4678 <li>The processes must be documented and, through a known
4679 method, can be changed through input from all
4680 participants.</li>
4681
4682 <li>The process must be based on formal and binding commitments for
4683 the disclosure and licensing of intellectual property rights.</li>
4684
4685 <li>Development and management should strive for consensus,
4686 and an appeals process must be clearly outlined.</li>
4687
4688 <li>The standard specification must be open to extensive
4689 public review at least once in its life-cycle, with
4690 comments duly discussed and acted upon, if required.</li>
4691
4692 </ul>
4693
4694 </li>
4695
4696 </ul>
4697
4698 <p>Use and Licensing of an Open Standard</p>
4699 <ul>
4700
4701 <li>The standard must describe an interface, not an implementation,
4702 and the industry must be capable of creating multiple, competing
4703 implementations to the interface described in the standard without
4704 undue or restrictive constraints. Interfaces include APIs,
4705 protocols, schemas, data formats and their encoding.</li>
4706
4707 <li> The standard must not contain any proprietary "hooks" that create
4708 a technical or economic barriers</li>
4709
4710 <li>Faithful implementations of the standard must
4711 interoperate. Interoperability means the ability of a computer
4712 program to communicate and exchange information with other computer
4713 programs and mutually to use the information which has been
4714 exchanged. This includes the ability to use, convert, or exchange
4715 file formats, protocols, schemas, interface information or
4716 conventions, so as to permit the computer program to work with other
4717 computer programs and users in all the ways in which they are
4718 intended to function.</li>
4719
4720 <li>It must be permissible for anyone to copy, distribute and read the
4721 standard for a nominal fee, or even no fee. If there is a fee, it
4722 must be low enough to not preclude widespread use.</li>
4723
4724 <li>It must be possible for anyone to obtain free (no royalties or
4725 fees; also known as "royalty free"), worldwide, non-exclusive and
4726 perpetual licenses to all essential patent claims to make, use and
4727 sell products based on the standard. The only exceptions are
4728 terminations per the reciprocity and defensive suspension terms
4729 outlined below. Essential patent claims include pending, unpublished
4730 patents, published patents, and patent applications. The license is
4731 only for the exact scope of the standard in question.
4732
4733 <ul>
4734
4735 <li> May be conditioned only on reciprocal licenses to any of
4736 licensees' patent claims essential to practice that standard
4737 (also known as a reciprocity clause)</li>
4738
4739 <li> May be terminated as to any licensee who sues the licensor
4740 or any other licensee for infringement of patent claims
4741 essential to practice that standard (also known as a
4742 "defensive suspension" clause)</li>
4743
4744 <li> The same licensing terms are available to every potential
4745 licensor</li>
4746
4747 </ul>
4748 </li>
4749
4750 <li>The licensing terms of an open standards must not preclude
4751 implementations of that standard under open source licensing terms
4752 or restricted licensing terms</li>
4753
4754 </ul>
4755
4756 </blockquote>
4757
4758 <p>It is said that one of the nice things about standards is that
4759 there are so many of them. As you can see, the same holds true for
4760 open standard definitions. Most of the definitions have a lot in
4761 common, and it is not really controversial what properties a open
4762 standard should have, but the diversity of definitions have made it
4763 possible for those that want to avoid a level marked field and real
4764 competition to downplay the significance of open standards. I hope we
4765 can turn this tide by focusing on the advantages of Free and Open
4766 Standards.</p>
4767
4768 </div>
4769 <div class="tags">
4770
4771
4772 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>.
4773
4774
4775 </div>
4776 </div>
4777 <div class="padding"></div>
4778
4779 <div class="entry">
4780 <div class="title">
4781 <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>
4782 </div>
4783 <div class="date">
4784 25th December 2010
4785 </div>
4786 <div class="body">
4787 <p><a href="http://www.digistan.org/open-standard:definition">The
4788 Digistan definition</a> of a free and open standard reads like this:</p>
4789
4790 <blockquote>
4791
4792 <p>The Digital Standards Organization defines free and open standard
4793 as follows:</p>
4794
4795 <ol>
4796
4797 <li>A free and open standard is immune to vendor capture at all stages
4798 in its life-cycle. Immunity from vendor capture makes it possible to
4799 freely use, improve upon, trust, and extend a standard over time.</li>
4800
4801 <li>The standard is adopted and will be maintained by a not-for-profit
4802 organisation, and its ongoing development occurs on the basis of an
4803 open decision-making procedure available to all interested
4804 parties.</li>
4805
4806 <li>The standard has been published and the standard specification
4807 document is available freely. It must be permissible to all to copy,
4808 distribute, and use it freely.</li>
4809
4810 <li>The patents possibly present on (parts of) the standard are made
4811 irrevocably available on a royalty-free basis.</li>
4812
4813 <li>There are no constraints on the re-use of the standard.</li>
4814
4815 </ol>
4816
4817 <p>The economic outcome of a free and open standard, which can be
4818 measured, is that it enables perfect competition between suppliers of
4819 products based on the standard.</p>
4820 </blockquote>
4821
4822 <p>For a while now I have tried to figure out of Ogg Theora is a free
4823 and open standard according to this definition. Here is a short
4824 writeup of what I have been able to gather so far. I brought up the
4825 topic on the Xiph advocacy mailing list
4826 <a href="http://lists.xiph.org/pipermail/advocacy/2009-July/001632.html">in
4827 July 2009</a>, for those that want to see some background information.
4828 According to Ivo Emanuel Gonçalves and Monty Montgomery on that list
4829 the Ogg Theora specification fulfils the Digistan definition.</p>
4830
4831 <p><strong>Free from vendor capture?</strong></p>
4832
4833 <p>As far as I can see, there is no single vendor that can control the
4834 Ogg Theora specification. It can be argued that the
4835 <a href="http://www.xiph.org/">Xiph foundation</A> is such vendor, but
4836 given that it is a non-profit foundation with the expressed goal
4837 making free and open protocols and standards available, it is not
4838 obvious that this is a real risk. One issue with the Xiph
4839 foundation is that its inner working (as in board member list, or who
4840 control the foundation) are not easily available on the web. I've
4841 been unable to find out who is in the foundation board, and have not
4842 seen any accounting information documenting how money is handled nor
4843 where is is spent in the foundation. It is thus not obvious for an
4844 external observer who control The Xiph foundation, and for all I know
4845 it is possible for a single vendor to take control over the
4846 specification. But it seem unlikely.</p>
4847
4848 <p><strong>Maintained by open not-for-profit organisation?</strong></p>
4849
4850 <p>Assuming that the Xiph foundation is the organisation its web pages
4851 claim it to be, this point is fulfilled. If Xiph foundation is
4852 controlled by a single vendor, it isn't, but I have not found any
4853 documentation indicating this.</p>
4854
4855 <p>According to
4856 <a href="http://media.hiof.no/diverse/fad/rapport_4.pdf">a report</a>
4857 prepared by Audun Vaaler og Børre Ludvigsen for the Norwegian
4858 government, the Xiph foundation is a non-commercial organisation and
4859 the development process is open, transparent and non-Discrimatory.
4860 Until proven otherwise, I believe it make most sense to believe the
4861 report is correct.</p>
4862
4863 <p><strong>Specification freely available?</strong></p>
4864
4865 <p>The specification for the <a href="http://www.xiph.org/ogg/doc/">Ogg
4866 container format</a> and both the
4867 <a href="http://www.xiph.org/vorbis/doc/">Vorbis</a> and
4868 <a href="http://theora.org/doc/">Theora</a> codeces are available on
4869 the web. This are the terms in the Vorbis and Theora specification:
4870
4871 <blockquote>
4872
4873 Anyone may freely use and distribute the Ogg and [Vorbis/Theora]
4874 specifications, whether in private, public, or corporate
4875 capacity. However, the Xiph.Org Foundation and the Ogg project reserve
4876 the right to set the Ogg [Vorbis/Theora] specification and certify
4877 specification compliance.
4878
4879 </blockquote>
4880
4881 <p>The Ogg container format is specified in IETF
4882 <a href="http://www.xiph.org/ogg/doc/rfc3533.txt">RFC 3533</a>, and
4883 this is the term:<p>
4884
4885 <blockquote>
4886
4887 <p>This document and translations of it may be copied and furnished to
4888 others, and derivative works that comment on or otherwise explain it
4889 or assist in its implementation may be prepared, copied, published and
4890 distributed, in whole or in part, without restriction of any kind,
4891 provided that the above copyright notice and this paragraph are
4892 included on all such copies and derivative works. However, this
4893 document itself may not be modified in any way, such as by removing
4894 the copyright notice or references to the Internet Society or other
4895 Internet organizations, except as needed for the purpose of developing
4896 Internet standards in which case the procedures for copyrights defined
4897 in the Internet Standards process must be followed, or as required to
4898 translate it into languages other than English.</p>
4899
4900 <p>The limited permissions granted above are perpetual and will not be
4901 revoked by the Internet Society or its successors or assigns.</p>
4902 </blockquote>
4903
4904 <p>All these terms seem to allow unlimited distribution and use, an
4905 this term seem to be fulfilled. There might be a problem with the
4906 missing permission to distribute modified versions of the text, and
4907 thus reuse it in other specifications. Not quite sure if that is a
4908 requirement for the Digistan definition.</p>
4909
4910 <p><strong>Royalty-free?</strong></p>
4911
4912 <p>There are no known patent claims requiring royalties for the Ogg
4913 Theora format.
4914 <a href="http://www.streamingmedia.com/Articles/ReadArticle.aspx?ArticleID=65782">MPEG-LA</a>
4915 and
4916 <a href="http://yro.slashdot.org/story/10/04/30/237238/Steve-Jobs-Hints-At-Theora-Lawsuit">Steve
4917 Jobs</a> in Apple claim to know about some patent claims (submarine
4918 patents) against the Theora format, but no-one else seem to believe
4919 them. Both Opera Software and the Mozilla Foundation have looked into
4920 this and decided to implement Ogg Theora support in their browsers
4921 without paying any royalties. For now the claims from MPEG-LA and
4922 Steve Jobs seem more like FUD to scare people to use the H.264 codec
4923 than any real problem with Ogg Theora.</p>
4924
4925 <p><strong>No constraints on re-use?</strong></p>
4926
4927 <p>I am not aware of any constraints on re-use.</p>
4928
4929 <p><strong>Conclusion</strong></p>
4930
4931 <p>3 of 5 requirements seem obviously fulfilled, and the remaining 2
4932 depend on the governing structure of the Xiph foundation. Given the
4933 background report used by the Norwegian government, I believe it is
4934 safe to assume the last two requirements are fulfilled too, but it
4935 would be nice if the Xiph foundation web site made it easier to verify
4936 this.</p>
4937
4938 <p>It would be nice to see other analysis of other specifications to
4939 see if they are free and open standards.</p>
4940
4941 </div>
4942 <div class="tags">
4943
4944
4945 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>.
4946
4947
4948 </div>
4949 </div>
4950 <div class="padding"></div>
4951
4952 <div class="entry">
4953 <div class="title">
4954 <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>
4955 </div>
4956 <div class="date">
4957 25th December 2010
4958 </div>
4959 <div class="body">
4960 <p>A few days ago
4961 <a href="http://www.idg.no/computerworld/article189879.ece">an
4962 article</a> in the Norwegian Computerworld magazine about how version
4963 2.0 of
4964 <a href="http://en.wikipedia.org/wiki/European_Interoperability_Framework">European
4965 Interoperability Framework</a> has been successfully lobbied by the
4966 proprietary software industry to remove the focus on free software.
4967 Nothing very surprising there, given
4968 <a href="http://news.slashdot.org/story/10/03/29/2115235/Open-Source-Open-Standards-Under-Attack-In-Europe">earlier
4969 reports</a> on how Microsoft and others have stacked the committees in
4970 this work. But I find this very sad. The definition of
4971 <a href="http://www.nuug.no/dokumenter/standard-presse-def-200506.txt">an
4972 open standard from version 1</a> was very good, and something I
4973 believe should be used also in the future, alongside
4974 <a href="http://www.digistan.org/open-standard:definition">the
4975 definition from Digistan</A>. Version 2 have removed the open
4976 standard definition from its content.</p>
4977
4978 <p>Anyway, the news reminded me of the great reply sent by Dr. Edgar
4979 Villanueva, congressman in Peru at the time, to Microsoft as a reply
4980 to Microsofts attack on his proposal regarding the use of free software
4981 in the public sector in Peru. As the text was not available from a
4982 few of the URLs where it used to be available, I copy it here from
4983 <a href="http://gnuwin.epfl.ch/articles/en/reponseperou/villanueva_to_ms.html">my
4984 source</a> to ensure it is available also in the future. Some
4985 background information about that story is available in
4986 <a href="http://www.linuxjournal.com/article/6099">an article</a> from
4987 Linux Journal in 2002.</p>
4988
4989 <blockquote>
4990 <p>Lima, 8th of April, 2002<br>
4991 To: Señor JUAN ALBERTO GONZÁLEZ<br>
4992 General Manager of Microsoft Perú</p>
4993
4994 <p>Dear Sir:</p>
4995
4996 <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>
4997
4998 <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>
4999
5000 <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>
5001
5002 <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>
5003
5004 <p>
5005 <ul>
5006 <li>Free access to public information by the citizen. </li>
5007 <li>Permanence of public data. </li>
5008 <li>Security of the State and citizens.</li>
5009 </ul>
5010 </p>
5011
5012 <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>
5013
5014 <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>
5015
5016 <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>
5017
5018 <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>
5019
5020 <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>
5021
5022
5023 <p>From reading the Bill it will be clear that once passed:<br>
5024 <li>the law does not forbid the production of proprietary software</li>
5025 <li>the law does not forbid the sale of proprietary software</li>
5026 <li>the law does not specify which concrete software to use</li>
5027 <li>the law does not dictate the supplier from whom software will be bought</li>
5028 <li>the law does not limit the terms under which a software product can be licensed.</li>
5029
5030 </p>
5031
5032 <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>
5033
5034 <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>
5035
5036 <p>As for the observations you have made, we will now go on to analyze them in detail:</p>
5037
5038 <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>
5039
5040 <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>
5041
5042 <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>
5043
5044 <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>
5045
5046 <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>
5047
5048 <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>
5049
5050 <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>
5051
5052 <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>
5053
5054 <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>
5055
5056 <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>
5057
5058 <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>
5059
5060 <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>
5061
5062 <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>
5063
5064 <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>
5065
5066 <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>
5067
5068 <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>
5069
5070 <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>
5071
5072 <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>
5073
5074 <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>
5075
5076 <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>
5077
5078 <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>
5079
5080 <p>On security:</p>
5081
5082 <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>
5083
5084 <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>
5085
5086 <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>
5087
5088 <p>In respect of the guarantee:</p>
5089
5090 <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>
5091
5092 <p>On Intellectual Property:</p>
5093
5094 <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>
5095
5096 <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>
5097
5098 <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>
5099
5100 <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>
5101
5102 <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>
5103
5104 <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>
5105
5106 <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>
5107
5108 <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>
5109
5110 <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>
5111
5112 <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>
5113
5114 <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>
5115
5116 <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>
5117
5118 <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>
5119
5120 <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>
5121
5122 <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>
5123
5124 <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>
5125
5126 <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>
5127
5128 <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>
5129
5130 <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>
5131
5132 <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>
5133
5134 <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>
5135
5136 <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>
5137
5138 <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>
5139
5140 <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>
5141
5142 <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>
5143
5144 <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>
5145
5146 <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>
5147
5148 <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>
5149
5150 <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>
5151
5152 <p>Cordially,<br>
5153 DR. EDGAR DAVID VILLANUEVA NUÑEZ<br>
5154 Congressman of the Republic of Perú.</p>
5155 </blockquote>
5156
5157 </div>
5158 <div class="tags">
5159
5160
5161 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>.
5162
5163
5164 </div>
5165 </div>
5166 <div class="padding"></div>
5167
5168 <div class="entry">
5169 <div class="title">
5170 <a href="http://people.skolelinux.org/pere/blog/Officeshots_still_going_strong.html">Officeshots still going strong</a>
5171 </div>
5172 <div class="date">
5173 25th December 2010
5174 </div>
5175 <div class="body">
5176 <p>Half a year ago I
5177 <a href="http://people.skolelinux.org/pere/blog/Officeshots_taking_shape.html">wrote
5178 a bit</a> about <a href="http://www.officeshots.org/">OfficeShots</a>,
5179 a web service to allow anyone to test how ODF documents are handled by
5180 the different programs reading and writing the ODF format.</p>
5181
5182 <p>I just had a look at the service, and it seem to be going strong.
5183 Very interesting to see the results reported in the gallery, how
5184 different Office implementations handle different ODF features. Sad
5185 to see that KOffice was not doing it very well, and happy to see that
5186 LibreOffice has been tested already (but sadly not listed as a option
5187 for OfficeShots users yet). I am glad to see that the ODF community
5188 got such a great test tool available.</p>
5189
5190 </div>
5191 <div class="tags">
5192
5193
5194 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>.
5195
5196
5197 </div>
5198 </div>
5199 <div class="padding"></div>
5200
5201 <div class="entry">
5202 <div class="title">
5203 <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>
5204 </div>
5205 <div class="date">
5206 22nd December 2010
5207 </div>
5208 <div class="body">
5209 <p>The last few days I have spent at work here at the <a
5210 href="http://www.uio.no/">University of Oslo</a> testing if the new
5211 batch of computers will work with Linux. Every year for the last few
5212 years the university have organised shared bid of a few thousand
5213 computers, and this year HP won the bid. Two different desktops and
5214 five different laptops are on the list this year. We in the UNIX
5215 group want to know which one of these computers work well with RHEL
5216 and Ubuntu, the two Linux distributions we currently handle at the
5217 university.</p>
5218
5219 <p>My test method is simple, and I share it here to get feedback and
5220 perhaps inspire others to test hardware as well. To test, I PXE
5221 install the OS version of choice, and log in as my normal user and run
5222 a few applications and plug in selected pieces of hardware. When
5223 something fail, I make a note about this in the test matrix and move
5224 on. If I have some spare time I try to report the bug to the OS
5225 vendor, but as I only have the machines for a short time, I rarely
5226 have the time to do this for all the problems I find.</p>
5227
5228 <p>Anyway, to get to the point of this post. Here is the simple tests
5229 I perform on a new model.</p>
5230
5231 <ul>
5232
5233 <li>Is PXE installation working? I'm testing with RHEL6, Ubuntu Lucid
5234 and Ubuntu Maverik at the moment. If I feel like it, I also test with
5235 RHEL5 and Debian Edu/Squeeze.</li>
5236
5237 <li>Is X.org working? If the graphical login screen show up after
5238 installation, X.org is working.</li>
5239
5240 <li>Is hardware accelerated OpenGL working? Running glxgears (in
5241 package mesa-utils on Ubuntu) and writing down the frames per second
5242 reported by the program.</li>
5243
5244 <li>Is sound working? With Gnome and KDE, a sound is played when
5245 logging in, and if I can hear this the test is successful. If there
5246 are several audio exits on the machine, I try them all and check if
5247 the Gnome/KDE audio mixer can control where to send the sound. I
5248 normally test this by playing
5249 <a href="http://www.nuug.no/aktiviteter/20101012-chef/ ">a HTML5
5250 video</a> in Firefox/Iceweasel.</li>
5251
5252 <li>Is the USB subsystem working? I test this by plugging in a USB
5253 memory stick and see if Gnome/KDE notices this.</li>
5254
5255 <li>Is the CD/DVD player working? I test this by inserting any CD/DVD
5256 I have lying around, and see if Gnome/KDE notices this.</li>
5257
5258 <li>Is any built in camera working? Test using cheese, and see if a
5259 picture from the v4l device show up.</li>
5260
5261 <li>Is bluetooth working? Use the Gnome/KDE browsing tool to see if
5262 any bluetooth devices are discovered. In my office, I normally see a
5263 few.</li>
5264
5265 <li>For laptops, is the SD or Compaq Flash reader working. I have
5266 memory modules lying around, and stick them in and see if Gnome/KDE
5267 notice this.</li>
5268
5269 <li>For laptops, is suspend/hibernate working? I'm testing if the
5270 special button work, and if the laptop continue to work after
5271 resume.</li>
5272
5273 <li>For laptops, is the extra buttons working, like audio level,
5274 adjusting background light, switching on/off external video output,
5275 switching on/off wifi, bluetooth, etc? The set of buttons differ from
5276 laptop to laptop, so I just write down which are working and which are
5277 not.</li>
5278
5279 <li>Some laptops have smart card readers, finger print readers,
5280 acceleration sensors etc. I rarely test these, as I do not know how
5281 to quickly test if they are working or not, so I only document their
5282 existence.</li>
5283
5284 </ul>
5285
5286 <p>By now I suspect you are really curious what the test results are
5287 for the HP machines I am testing. I'm not done yet, so I will report
5288 the test results later. For now I can report that HP 8100 Elite work
5289 fine, and hibernation fail with HP EliteBook 8440p on Ubuntu Lucid,
5290 and audio fail on RHEL6. Ubuntu Maverik worked with 8440p. As you
5291 can see, I have most machines left to test. One interesting
5292 observation is that Ubuntu Lucid has almost twice the frame rate than
5293 RHEL6 with glxgears. No idea why.</p>
5294
5295 </div>
5296 <div class="tags">
5297
5298
5299 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>.
5300
5301
5302 </div>
5303 </div>
5304 <div class="padding"></div>
5305
5306 <div class="entry">
5307 <div class="title">
5308 <a href="http://people.skolelinux.org/pere/blog/Some_thoughts_on_BitCoins.html">Some thoughts on BitCoins</a>
5309 </div>
5310 <div class="date">
5311 11th December 2010
5312 </div>
5313 <div class="body">
5314 <p>As I continue to explore
5315 <a href="http://www.bitcoin.org/">BitCoin</a>, I've starting to wonder
5316 what properties the system have, and how it will be affected by laws
5317 and regulations here in Norway. Here are some random notes.</p>
5318
5319 <p>One interesting thing to note is that since the transactions are
5320 verified using a peer to peer network, all details about a transaction
5321 is known to everyone. This means that if a BitCoin address has been
5322 published like I did with mine in my initial post about BitCoin, it is
5323 possible for everyone to see how many BitCoins have been transfered to
5324 that address. There is even a web service to look at the details for
5325 all transactions. There I can see that my address
5326 <a href="http://blockexplorer.com/address/15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a>
5327 have received 16.06 Bitcoin, the
5328 <a href="http://blockexplorer.com/address/1LfdGnGuWkpSJgbQySxxCWhv8MHqvwst3">1LfdGnGuWkpSJgbQySxxCWhv8MHqvwst3</a>
5329 address of Simon Phipps have received 181.97 BitCoin and the address
5330 <a href="http://blockexplorer.com/address/1MCwBbhNGp5hRm5rC1Aims2YFRe2SXPYKt">1MCwBbhNGp5hRm5rC1Aims2YFRe2SXPYKt</A>
5331 of EFF have received 2447.38 BitCoins so far. Thank you to each and
5332 every one of you that donated bitcoins to support my activity. The
5333 fact that anyone can see how much money was transfered to a given
5334 address make it more obvious why the BitCoin community recommend to
5335 generate and hand out a new address for each transaction. I'm told
5336 there is no way to track which addresses belong to a given person or
5337 organisation without the person or organisation revealing it
5338 themselves, as Simon, EFF and I have done.</p>
5339
5340 <p>In Norway, and in most other countries, there are laws and
5341 regulations limiting how much money one can transfer across the border
5342 without declaring it. There are money laundering, tax and accounting
5343 laws and regulations I would expect to apply to the use of BitCoin.
5344 If the Skolelinux foundation
5345 (<a href="http://linuxiskolen.no/slxdebianlabs/donations.html">SLX
5346 Debian Labs</a>) were to accept donations in BitCoin in addition to
5347 normal bank transfers like EFF is doing, how should this be accounted?
5348 Given that it is impossible to know if money can across the border or
5349 not, should everything or nothing be declared? What exchange rate
5350 should be used when calculating taxes? Would receivers have to pay
5351 income tax if the foundation were to pay Skolelinux contributors in
5352 BitCoin? I have no idea, but it would be interesting to know.</p>
5353
5354 <p>For a currency to be useful and successful, it must be trusted and
5355 accepted by a lot of users. It must be possible to get easy access to
5356 the currency (as a wage or using currency exchanges), and it must be
5357 easy to spend it. At the moment BitCoin seem fairly easy to get
5358 access to, but there are very few places to spend it. I am not really
5359 a regular user of any of the vendor types currently accepting BitCoin,
5360 so I wonder when my kind of shop would start accepting BitCoins. I
5361 would like to buy electronics, travels and subway tickets, not herbs
5362 and books. :) The currency is young, and this will improve over time
5363 if it become popular, but I suspect regular banks will start to lobby
5364 to get BitCoin declared illegal if it become popular. I'm sure they
5365 will claim it is helping fund terrorism and money laundering (which
5366 probably would be true, as is any currency in existence), but I
5367 believe the problems should be solved elsewhere and not by blaming
5368 currencies.</p>
5369
5370 <p>The process of creating new BitCoins is called mining, and it is
5371 CPU intensive process that depend on a bit of luck as well (as one is
5372 competing against all the other miners currently spending CPU cycles
5373 to see which one get the next lump of cash). The "winner" get 50
5374 BitCoin when this happen. Yesterday I came across the obvious way to
5375 join forces to increase ones changes of getting at least some coins,
5376 by coordinating the work on mining BitCoins across several machines
5377 and people, and sharing the result if one is lucky and get the 50
5378 BitCoins. Check out
5379 <a href="http://www.bluishcoder.co.nz/bitcoin-pool/">BitCoin Pool</a>
5380 if this sounds interesting. I have not had time to try to set up a
5381 machine to participate there yet, but have seen that running on ones
5382 own for a few days have not yield any BitCoins througth mining
5383 yet.</p>
5384
5385 <p>Update 2010-12-15: Found an <a
5386 href="http://inertia.posterous.com/reply-to-the-underground-economist-why-bitcoi">interesting
5387 criticism</a> of bitcoin. Not quite sure how valid it is, but thought
5388 it was interesting to read. The arguments presented seem to be
5389 equally valid for gold, which was used as a currency for many years.</p>
5390
5391 </div>
5392 <div class="tags">
5393
5394
5395 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>.
5396
5397
5398 </div>
5399 </div>
5400 <div class="padding"></div>
5401
5402 <div class="entry">
5403 <div class="title">
5404 <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>
5405 </div>
5406 <div class="date">
5407 10th December 2010
5408 </div>
5409 <div class="body">
5410 <p>With this weeks lawless
5411 <a href="http://www.salon.com/news/opinion/glenn_greenwald/2010/12/06/wikileaks/index.html">governmental
5412 attacks</a> on Wikileak and
5413 <a href="http://www.salon.com/technology/dan_gillmor/2010/12/06/war_on_speech">free
5414 speech</a>, it has become obvious that PayPal, visa and mastercard can
5415 not be trusted to handle money transactions.
5416 A blog post from
5417 <a href="http://webmink.com/2010/12/06/now-accepting-bitcoin/">Simon
5418 Phipps on bitcoin</a> reminded me about a project that a friend of
5419 mine mentioned earlier. I decided to follow Simon's example, and get
5420 involved with <a href="http://www.bitcoin.org/">BitCoin</a>. I got
5421 some help from my friend to get it all running, and he even handed me
5422 some bitcoins to get started. I even donated a few bitcoins to Simon
5423 for helping me remember BitCoin.</p>
5424
5425 <p>So, what is bitcoins, you probably wonder? It is a digital
5426 crypto-currency, decentralised and handled using peer-to-peer
5427 networks. It allows anonymous transactions and prohibits central
5428 control over the transactions, making it impossible for governments
5429 and companies alike to block donations and other transactions. The
5430 source is free software, and while the key dependency wxWidgets 2.9
5431 for the graphical user interface is missing in Debian, the command
5432 line client builds just fine. Hopefully Jonas
5433 <a href="http://bugs.debian.org/578157">will get the package into
5434 Debian</a> soon.</p>
5435
5436 <p>Bitcoins can be converted to other currencies, like USD and EUR.
5437 There are <a href="http://www.bitcoin.org/trade">companies accepting
5438 bitcoins</a> when selling services and goods, and there are even
5439 currency "stock" markets where the exchange rate is decided. There
5440 are not many users so far, but the concept seems promising. If you
5441 want to get started and lack a friend with any bitcoins to spare,
5442 you can even get
5443 <a href="https://freebitcoins.appspot.com/">some for free</a> (0.05
5444 bitcoin at the time of writing). Use
5445 <a href="http://www.bitcoinwatch.com/">BitcoinWatch</a> to keep an eye
5446 on the current exchange rates.</p>
5447
5448 <p>As an experiment, I have decided to set up bitcoind on one of my
5449 machines. If you want to support my activity, please send Bitcoin
5450 donations to the address
5451 <b>15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</b>. Thank you!</p>
5452
5453 </div>
5454 <div class="tags">
5455
5456
5457 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>.
5458
5459
5460 </div>
5461 </div>
5462 <div class="padding"></div>
5463
5464 <div class="entry">
5465 <div class="title">
5466 <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>
5467 </div>
5468 <div class="date">
5469 9th December 2010
5470 </div>
5471 <div class="body">
5472 <p>A few days ago, I was introduces to some students in the robot
5473 student assosiation <a href="http://www.robotica.no/">Robotica
5474 Osloensis</a> at the University of Oslo where I work, who planned to
5475 get their own 3D printer. They wanted to learn from me based on my
5476 work in the area. After having a short lunch meeting with them, I
5477 offered them to borrow my reprap kit, as I never had time to complete
5478 the build and this seem unlike to change any time soon. I look
5479 forward to see how this goes. This monday their volunteer driver
5480 picked up my kit and drove it to their lab, and tomorrow I am told the
5481 last exam is over so they can start work on getting the 3D printer
5482 operational.</p>
5483
5484 <p>The robotic group have already build several robots on their own,
5485 and seem capable of getting the reprap operational. I really look
5486 forward to being able to print all the cool 3D designs published on
5487 <a href="http://www.thingiverse.com/">Thingiverse</a>. I even got
5488 some 3D scans I got made during Dagen@IFI when one of the groups at
5489 the computer science department at the university demonstrated their
5490 very cool 3D scanner.</p>
5491
5492 </div>
5493 <div class="tags">
5494
5495
5496 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>.
5497
5498
5499 </div>
5500 </div>
5501 <div class="padding"></div>
5502
5503 <div class="entry">
5504 <div class="title">
5505 <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>
5506 </div>
5507 <div class="date">
5508 29th November 2010
5509 </div>
5510 <div class="body">
5511 <p>On friday, the first Debian Edu / Skolelinux
5512 <a href="http://www.friprogramvareiskolen.no/Gathering/2010-12-03-05-Oslo">development
5513 gathering</a> in a long time take place here in Oslo, Norway. I
5514 really look forward to seeing all the good people working on the
5515 Squeeze release. The gathering is open for everyone interested in
5516 learning more about Debian Edu / Skolelinux.</p>
5517
5518 <p>On Saturday, the Norwegian member organization taking care of
5519 organizing these development gatherings, Fri Programvare i Skolen,
5520 will hold its
5521 <a href="http://friprogramvareiskolen.no/Genfors/2010">General Assembly
5522 for 2010</a>. Membership is open for all, and currently there are 388
5523 people registered as members. Last year 32 members cast their vote in
5524 the memberdb based election system. I hope more people find time to
5525 vote this year.</p>
5526
5527 </div>
5528 <div class="tags">
5529
5530
5531 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>.
5532
5533
5534 </div>
5535 </div>
5536 <div class="padding"></div>
5537
5538 <div class="entry">
5539 <div class="title">
5540 <a href="http://people.skolelinux.org/pere/blog/Why_isn_t_Debian_Edu_using_VLC_.html">Why isn't Debian Edu using VLC?</a>
5541 </div>
5542 <div class="date">
5543 27th November 2010
5544 </div>
5545 <div class="body">
5546 <p>In the latest issue of Linux Journal, the readers choices were
5547 presented, and the winner among the multimedia player were VLC.
5548 Personally, I like VLC, and it is my player of choice when I first try
5549 to play a video file or stream. Only if VLC fail will I drag out
5550 gmplayer to see if it can do better. The reason is mostly the failure
5551 model and trust. When VLC fail, it normally pop up a error message
5552 reporting the problem. When mplayer fail, it normally segfault or
5553 just hangs. The latter failure mode drain my trust in the program.<p>
5554
5555 <p>But even if VLC is my player of choice, we have choosen to use
5556 mplayer in <a href="http://www.skolelinux.org/">Debian
5557 Edu/Skolelinux</a>. The reason is simple. We need a good browser
5558 plugin to play web videos seamlessly, and the VLC browser plugin is
5559 not very good. For example, it lack in-line control buttons, so there
5560 is no way for the user to pause the video. Also, when I
5561 <a href="http://wiki.debian.org/DebianEdu/BrowserMultimedia">last
5562 tested the browser plugins</a> available in Debian, the VLC plugin
5563 failed on several video pages where mplayer based plugins worked. If
5564 the browser plugin for VLC was as good as the gecko-mediaplayer
5565 package (which uses mplayer), we would switch.</P>
5566
5567 <p>While VLC is a good player, its user interface is slightly
5568 annoying. The most annoying feature is its inconsistent use of
5569 keyboard shortcuts. When the player is in full screen mode, its
5570 shortcuts are different from when it is playing the video in a window.
5571 For example, space only work as pause when in full screen mode. I
5572 wish it had consisten shortcuts and that space also would work when in
5573 window mode. Another nice shortcut in gmplayer is [enter] to restart
5574 the current video. It is very nice when playing short videos from the
5575 web and want to restart it when new people arrive to have a look at
5576 what is going on.</p>
5577
5578 </div>
5579 <div class="tags">
5580
5581
5582 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>.
5583
5584
5585 </div>
5586 </div>
5587 <div class="padding"></div>
5588
5589 <div class="entry">
5590 <div class="title">
5591 <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>
5592 </div>
5593 <div class="date">
5594 22nd November 2010
5595 </div>
5596 <div class="body">
5597 <p>Michael Biebl suggested to me on IRC, that I changed my automated
5598 upgrade testing of the
5599 <a href="http://people.skolelinux.org/~pere/debian-upgrade-testing/">Lenny
5600 Gnome and KDE Desktop</a> to do <tt>apt-get autoremove</tt> when using apt-get.
5601 This seem like a very good idea, so I adjusted by test scripts and
5602 can now present the updated result from today:</p>
5603
5604 <p>This is for Gnome:</p>
5605
5606 <p>Installed using apt-get, missing with aptitude</p>
5607
5608 <blockquote><p>
5609 apache2.2-bin
5610 aptdaemon
5611 baobab
5612 binfmt-support
5613 browser-plugin-gnash
5614 cheese-common
5615 cli-common
5616 cups-pk-helper
5617 dmz-cursor-theme
5618 empathy
5619 empathy-common
5620 freedesktop-sound-theme
5621 freeglut3
5622 gconf-defaults-service
5623 gdm-themes
5624 gedit-plugins
5625 geoclue
5626 geoclue-hostip
5627 geoclue-localnet
5628 geoclue-manual
5629 geoclue-yahoo
5630 gnash
5631 gnash-common
5632 gnome
5633 gnome-backgrounds
5634 gnome-cards-data
5635 gnome-codec-install
5636 gnome-core
5637 gnome-desktop-environment
5638 gnome-disk-utility
5639 gnome-screenshot
5640 gnome-search-tool
5641 gnome-session-canberra
5642 gnome-system-log
5643 gnome-themes-extras
5644 gnome-themes-more
5645 gnome-user-share
5646 gstreamer0.10-fluendo-mp3
5647 gstreamer0.10-tools
5648 gtk2-engines
5649 gtk2-engines-pixbuf
5650 gtk2-engines-smooth
5651 hamster-applet
5652 libapache2-mod-dnssd
5653 libapr1
5654 libaprutil1
5655 libaprutil1-dbd-sqlite3
5656 libaprutil1-ldap
5657 libart2.0-cil
5658 libboost-date-time1.42.0
5659 libboost-python1.42.0
5660 libboost-thread1.42.0
5661 libchamplain-0.4-0
5662 libchamplain-gtk-0.4-0
5663 libcheese-gtk18
5664 libclutter-gtk-0.10-0
5665 libcryptui0
5666 libdiscid0
5667 libelf1
5668 libepc-1.0-2
5669 libepc-common
5670 libepc-ui-1.0-2
5671 libfreerdp-plugins-standard
5672 libfreerdp0
5673 libgconf2.0-cil
5674 libgdata-common
5675 libgdata7
5676 libgdu-gtk0
5677 libgee2
5678 libgeoclue0
5679 libgexiv2-0
5680 libgif4
5681 libglade2.0-cil
5682 libglib2.0-cil
5683 libgmime2.4-cil
5684 libgnome-vfs2.0-cil
5685 libgnome2.24-cil
5686 libgnomepanel2.24-cil
5687 libgpod-common
5688 libgpod4
5689 libgtk2.0-cil
5690 libgtkglext1
5691 libgtksourceview2.0-common
5692 libmono-addins-gui0.2-cil
5693 libmono-addins0.2-cil
5694 libmono-cairo2.0-cil
5695 libmono-corlib2.0-cil
5696 libmono-i18n-west2.0-cil
5697 libmono-posix2.0-cil
5698 libmono-security2.0-cil
5699 libmono-sharpzip2.84-cil
5700 libmono-system2.0-cil
5701 libmtp8
5702 libmusicbrainz3-6
5703 libndesk-dbus-glib1.0-cil
5704 libndesk-dbus1.0-cil
5705 libopal3.6.8
5706 libpolkit-gtk-1-0
5707 libpt2.6.7
5708 libpython2.6
5709 librpm1
5710 librpmio1
5711 libsdl1.2debian
5712 libsrtp0
5713 libssh-4
5714 libtelepathy-farsight0
5715 libtelepathy-glib0
5716 libtidy-0.99-0
5717 media-player-info
5718 mesa-utils
5719 mono-2.0-gac
5720 mono-gac
5721 mono-runtime
5722 nautilus-sendto
5723 nautilus-sendto-empathy
5724 p7zip-full
5725 pkg-config
5726 python-aptdaemon
5727 python-aptdaemon-gtk
5728 python-axiom
5729 python-beautifulsoup
5730 python-bugbuddy
5731 python-clientform
5732 python-coherence
5733 python-configobj
5734 python-crypto
5735 python-cupshelpers
5736 python-elementtree
5737 python-epsilon
5738 python-evolution
5739 python-feedparser
5740 python-gdata
5741 python-gdbm
5742 python-gst0.10
5743 python-gtkglext1
5744 python-gtksourceview2
5745 python-httplib2
5746 python-louie
5747 python-mako
5748 python-markupsafe
5749 python-mechanize
5750 python-nevow
5751 python-notify
5752 python-opengl
5753 python-openssl
5754 python-pam
5755 python-pkg-resources
5756 python-pyasn1
5757 python-pysqlite2
5758 python-rdflib
5759 python-serial
5760 python-tagpy
5761 python-twisted-bin
5762 python-twisted-conch
5763 python-twisted-core
5764 python-twisted-web
5765 python-utidylib
5766 python-webkit
5767 python-xdg
5768 python-zope.interface
5769 remmina
5770 remmina-plugin-data
5771 remmina-plugin-rdp
5772 remmina-plugin-vnc
5773 rhythmbox-plugin-cdrecorder
5774 rhythmbox-plugins
5775 rpm-common
5776 rpm2cpio
5777 seahorse-plugins
5778 shotwell
5779 software-center
5780 system-config-printer-udev
5781 telepathy-gabble
5782 telepathy-mission-control-5
5783 telepathy-salut
5784 tomboy
5785 totem
5786 totem-coherence
5787 totem-mozilla
5788 totem-plugins
5789 transmission-common
5790 xdg-user-dirs
5791 xdg-user-dirs-gtk
5792 xserver-xephyr
5793 </p></blockquote>
5794
5795 <p>Installed using apt-get, removed with aptitude</p>
5796
5797 <blockquote><p>
5798 cheese
5799 ekiga
5800 eog
5801 epiphany-extensions
5802 evolution-exchange
5803 fast-user-switch-applet
5804 file-roller
5805 gcalctool
5806 gconf-editor
5807 gdm
5808 gedit
5809 gedit-common
5810 gnome-games
5811 gnome-games-data
5812 gnome-nettool
5813 gnome-system-tools
5814 gnome-themes
5815 gnuchess
5816 gucharmap
5817 guile-1.8-libs
5818 libavahi-ui0
5819 libdmx1
5820 libgalago3
5821 libgtk-vnc-1.0-0
5822 libgtksourceview2.0-0
5823 liblircclient0
5824 libsdl1.2debian-alsa
5825 libspeexdsp1
5826 libsvga1
5827 rhythmbox
5828 seahorse
5829 sound-juicer
5830 system-config-printer
5831 totem-common
5832 transmission-gtk
5833 vinagre
5834 vino
5835 </p></blockquote>
5836
5837 <p>Installed using aptitude, missing with apt-get</p>
5838
5839 <blockquote><p>
5840 gstreamer0.10-gnomevfs
5841 </p></blockquote>
5842
5843 <p>Installed using aptitude, removed with apt-get</p>
5844
5845 <blockquote><p>
5846 [nothing]
5847 </p></blockquote>
5848
5849 <p>This is for KDE:</p>
5850
5851 <p>Installed using apt-get, missing with aptitude</p>
5852
5853 <blockquote><p>
5854 ksmserver
5855 </p></blockquote>
5856
5857 <p>Installed using apt-get, removed with aptitude</p>
5858
5859 <blockquote><p>
5860 kwin
5861 network-manager-kde
5862 </p></blockquote>
5863
5864 <p>Installed using aptitude, missing with apt-get</p>
5865
5866 <blockquote><p>
5867 arts
5868 dolphin
5869 freespacenotifier
5870 google-gadgets-gst
5871 google-gadgets-xul
5872 kappfinder
5873 kcalc
5874 kcharselect
5875 kde-core
5876 kde-plasma-desktop
5877 kde-standard
5878 kde-window-manager
5879 kdeartwork
5880 kdeartwork-emoticons
5881 kdeartwork-style
5882 kdeartwork-theme-icon
5883 kdebase
5884 kdebase-apps
5885 kdebase-workspace
5886 kdebase-workspace-bin
5887 kdebase-workspace-data
5888 kdeeject
5889 kdelibs
5890 kdeplasma-addons
5891 kdeutils
5892 kdewallpapers
5893 kdf
5894 kfloppy
5895 kgpg
5896 khelpcenter4
5897 kinfocenter
5898 konq-plugins-l10n
5899 konqueror-nsplugins
5900 kscreensaver
5901 kscreensaver-xsavers
5902 ktimer
5903 kwrite
5904 libgle3
5905 libkde4-ruby1.8
5906 libkonq5
5907 libkonq5-templates
5908 libnetpbm10
5909 libplasma-ruby
5910 libplasma-ruby1.8
5911 libqt4-ruby1.8
5912 marble-data
5913 marble-plugins
5914 netpbm
5915 nuvola-icon-theme
5916 plasma-dataengines-workspace
5917 plasma-desktop
5918 plasma-desktopthemes-artwork
5919 plasma-runners-addons
5920 plasma-scriptengine-googlegadgets
5921 plasma-scriptengine-python
5922 plasma-scriptengine-qedje
5923 plasma-scriptengine-ruby
5924 plasma-scriptengine-webkit
5925 plasma-scriptengines
5926 plasma-wallpapers-addons
5927 plasma-widget-folderview
5928 plasma-widget-networkmanagement
5929 ruby
5930 sweeper
5931 update-notifier-kde
5932 xscreensaver-data-extra
5933 xscreensaver-gl
5934 xscreensaver-gl-extra
5935 xscreensaver-screensaver-bsod
5936 </p></blockquote>
5937
5938 <p>Installed using aptitude, removed with apt-get</p>
5939
5940 <blockquote><p>
5941 ark
5942 google-gadgets-common
5943 google-gadgets-qt
5944 htdig
5945 kate
5946 kdebase-bin
5947 kdebase-data
5948 kdepasswd
5949 kfind
5950 klipper
5951 konq-plugins
5952 konqueror
5953 ksysguard
5954 ksysguardd
5955 libarchive1
5956 libcln6
5957 libeet1
5958 libeina-svn-06
5959 libggadget-1.0-0b
5960 libggadget-qt-1.0-0b
5961 libgps19
5962 libkdecorations4
5963 libkephal4
5964 libkonq4
5965 libkonqsidebarplugin4a
5966 libkscreensaver5
5967 libksgrd4
5968 libksignalplotter4
5969 libkunitconversion4
5970 libkwineffects1a
5971 libmarblewidget4
5972 libntrack-qt4-1
5973 libntrack0
5974 libplasma-geolocation-interface4
5975 libplasmaclock4a
5976 libplasmagenericshell4
5977 libprocesscore4a
5978 libprocessui4a
5979 libqalculate5
5980 libqedje0a
5981 libqtruby4shared2
5982 libqzion0a
5983 libruby1.8
5984 libscim8c2a
5985 libsmokekdecore4-3
5986 libsmokekdeui4-3
5987 libsmokekfile3
5988 libsmokekhtml3
5989 libsmokekio3
5990 libsmokeknewstuff2-3
5991 libsmokeknewstuff3-3
5992 libsmokekparts3
5993 libsmokektexteditor3
5994 libsmokekutils3
5995 libsmokenepomuk3
5996 libsmokephonon3
5997 libsmokeplasma3
5998 libsmokeqtcore4-3
5999 libsmokeqtdbus4-3
6000 libsmokeqtgui4-3
6001 libsmokeqtnetwork4-3
6002 libsmokeqtopengl4-3
6003 libsmokeqtscript4-3
6004 libsmokeqtsql4-3
6005 libsmokeqtsvg4-3
6006 libsmokeqttest4-3
6007 libsmokeqtuitools4-3
6008 libsmokeqtwebkit4-3
6009 libsmokeqtxml4-3
6010 libsmokesolid3
6011 libsmokesoprano3
6012 libtaskmanager4a
6013 libtidy-0.99-0
6014 libweather-ion4a
6015 libxklavier16
6016 libxxf86misc1
6017 okteta
6018 oxygencursors
6019 plasma-dataengines-addons
6020 plasma-scriptengine-superkaramba
6021 plasma-widget-lancelot
6022 plasma-widgets-addons
6023 plasma-widgets-workspace
6024 polkit-kde-1
6025 ruby1.8
6026 systemsettings
6027 update-notifier-common
6028 </p></blockquote>
6029
6030 <p>Running apt-get autoremove made the results using apt-get and
6031 aptitude a bit more similar, but there are still quite a lott of
6032 differences. I have no idea what packages should be installed after
6033 the upgrade, but hope those that do can have a look.</p>
6034
6035 </div>
6036 <div class="tags">
6037
6038
6039 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>.
6040
6041
6042 </div>
6043 </div>
6044 <div class="padding"></div>
6045
6046 <div class="entry">
6047 <div class="title">
6048 <a href="http://people.skolelinux.org/pere/blog/Migrating_Xen_virtual_machines_using_LVM_to_KVM_using_disk_images.html">Migrating Xen virtual machines using LVM to KVM using disk images</a>
6049 </div>
6050 <div class="date">
6051 22nd November 2010
6052 </div>
6053 <div class="body">
6054 <p>Most of the computers in use by the
6055 <a href="http://www.skolelinux.org/">Debian Edu/Skolelinux project</a>
6056 are virtual machines. And they have been Xen machines running on a
6057 fairly old IBM eserver xseries 345 machine, and we wanted to migrate
6058 them to KVM on a newer Dell PowerEdge 2950 host machine. This was a
6059 bit harder that it could have been, because we set up the Xen virtual
6060 machines to get the virtual partitions from LVM, which as far as I
6061 know is not supported by KVM. So to migrate, we had to convert
6062 several LVM logical volumes to partitions on a virtual disk file.</p>
6063
6064 <p>I found
6065 <a href="http://searchnetworking.techtarget.com.au/articles/35011-Six-steps-for-migrating-Xen-virtual-machines-to-KVM">a
6066 nice recipe</a> to do this, and wrote the following script to do the
6067 migration. It uses qemu-img from the qemu package to make the disk
6068 image, parted to partition it, losetup and kpartx to present the disk
6069 image partions as devices, and dd to copy the data. I NFS mounted the
6070 new servers storage area on the old server to do the migration.</p>
6071
6072 <pre>
6073 #!/bin/sh
6074
6075 # Based on
6076 # http://searchnetworking.techtarget.com.au/articles/35011-Six-steps-for-migrating-Xen-virtual-machines-to-KVM
6077
6078 set -e
6079 set -x
6080
6081 if [ -z "$1" ] ; then
6082 echo "Usage: $0 &lt;hostname&gt;"
6083 exit 1
6084 else
6085 host="$1"
6086 fi
6087
6088 if [ ! -e /dev/vg_data/$host-disk ] ; then
6089 echo "error: unable to find LVM volume for $host"
6090 exit 1
6091 fi
6092
6093 # Partitions need to be a bit bigger than the LVM LVs. not sure why.
6094 disksize=$( lvs --units m | grep $host-disk | awk '{sum = sum + $4} END { print int(sum * 1.05) }')
6095 swapsize=$( lvs --units m | grep $host-swap | awk '{sum = sum + $4} END { print int(sum * 1.05) }')
6096 totalsize=$(( ( $disksize + $swapsize ) ))
6097
6098 img=$host.img
6099 #dd if=/dev/zero of=$img bs=1M count=$(( $disksize + $swapsize ))
6100 qemu-img create $img ${totalsize}MMaking room on the Debian Edu/Sqeeze DVD
6101
6102 parted $img mklabel msdos
6103 parted $img mkpart primary linux-swap 0 $disksize
6104 parted $img mkpart primary ext2 $disksize $totalsize
6105 parted $img set 1 boot on
6106
6107 modprobe dm-mod
6108 losetup /dev/loop0 $img
6109 kpartx -a /dev/loop0
6110
6111 dd if=/dev/vg_data/$host-disk of=/dev/mapper/loop0p1 bs=1M
6112 fsck.ext3 -f /dev/mapper/loop0p1 || true
6113 mkswap /dev/mapper/loop0p2
6114
6115 kpartx -d /dev/loop0
6116 losetup -d /dev/loop0
6117 </pre>
6118
6119 <p>The script is perhaps so simple that it is not copyrightable, but
6120 if it is, it is licenced using GPL v2 or later at your discretion.</p>
6121
6122 <p>After doing this, I booted a Debian CD in rescue mode in KVM with
6123 the new disk image attached, installed grub-pc and linux-image-686 and
6124 set up grub to boot from the disk image. After this, the KVM machines
6125 seem to work just fine.</p>
6126
6127 </div>
6128 <div class="tags">
6129
6130
6131 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>.
6132
6133
6134 </div>
6135 </div>
6136 <div class="padding"></div>
6137
6138 <div class="entry">
6139 <div class="title">
6140 <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>
6141 </div>
6142 <div class="date">
6143 20th November 2010
6144 </div>
6145 <div class="body">
6146 <p>I'm still running upgrade testing of the
6147 <a href="http://people.skolelinux.org/~pere/debian-upgrade-testing/">Lenny
6148 Gnome and KDE Desktop</a>, but have not had time to spend on reporting the
6149 status. Here is a short update based on a test I ran 20101118.</p>
6150
6151 <p>I still do not know what a correct migration should look like, so I
6152 report any differences between apt and aptitude and hope someone else
6153 can see if anything should be changed.</p>
6154
6155 <p>This is for Gnome:</p>
6156
6157 <p>Installed using apt-get, missing with aptitude</p>
6158
6159 <blockquote><p>
6160 apache2.2-bin aptdaemon at-spi baobab binfmt-support
6161 browser-plugin-gnash cheese-common cli-common cpp-4.3 cups-pk-helper
6162 dmz-cursor-theme empathy empathy-common finger
6163 freedesktop-sound-theme freeglut3 gconf-defaults-service gdm-themes
6164 gedit-plugins geoclue geoclue-hostip geoclue-localnet geoclue-manual
6165 geoclue-yahoo gnash gnash-common gnome gnome-backgrounds
6166 gnome-cards-data gnome-codec-install gnome-core
6167 gnome-desktop-environment gnome-disk-utility gnome-screenshot
6168 gnome-search-tool gnome-session-canberra gnome-spell
6169 gnome-system-log gnome-themes-extras gnome-themes-more
6170 gnome-user-share gs-common gstreamer0.10-fluendo-mp3
6171 gstreamer0.10-tools gtk2-engines gtk2-engines-pixbuf
6172 gtk2-engines-smooth hal-info hamster-applet libapache2-mod-dnssd
6173 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap
6174 libart2.0-cil libatspi1.0-0 libboost-date-time1.42.0
6175 libboost-python1.42.0 libboost-thread1.42.0 libchamplain-0.4-0
6176 libchamplain-gtk-0.4-0 libcheese-gtk18 libclutter-gtk-0.10-0
6177 libcryptui0 libcupsys2 libdiscid0 libeel2-data libelf1 libepc-1.0-2
6178 libepc-common libepc-ui-1.0-2 libfreerdp-plugins-standard
6179 libfreerdp0 libgail-common libgconf2.0-cil libgdata-common libgdata7
6180 libgdl-1-common libgdu-gtk0 libgee2 libgeoclue0 libgexiv2-0 libgif4
6181 libglade2.0-cil libglib2.0-cil libgmime2.4-cil libgnome-vfs2.0-cil
6182 libgnome2.24-cil libgnomepanel2.24-cil libgnomeprint2.2-data
6183 libgnomeprintui2.2-common libgnomevfs2-bin libgpod-common libgpod4
6184 libgtk2.0-cil libgtkglext1 libgtksourceview-common
6185 libgtksourceview2.0-common libmono-addins-gui0.2-cil
6186 libmono-addins0.2-cil libmono-cairo2.0-cil libmono-corlib2.0-cil
6187 libmono-i18n-west2.0-cil libmono-posix2.0-cil
6188 libmono-security2.0-cil libmono-sharpzip2.84-cil
6189 libmono-system2.0-cil libmtp8 libmusicbrainz3-6
6190 libndesk-dbus-glib1.0-cil libndesk-dbus1.0-cil libopal3.6.8
6191 libpolkit-gtk-1-0 libpt-1.10.10-plugins-alsa
6192 libpt-1.10.10-plugins-v4l libpt2.6.7 libpython2.6 librpm1 librpmio1
6193 libsdl1.2debian libservlet2.4-java libsrtp0 libssh-4
6194 libtelepathy-farsight0 libtelepathy-glib0 libtidy-0.99-0
6195 libxalan2-java libxerces2-java media-player-info mesa-utils
6196 mono-2.0-gac mono-gac mono-runtime nautilus-sendto
6197 nautilus-sendto-empathy openoffice.org-writer2latex
6198 openssl-blacklist p7zip p7zip-full pkg-config python-4suite-xml
6199 python-aptdaemon python-aptdaemon-gtk python-axiom
6200 python-beautifulsoup python-bugbuddy python-clientform
6201 python-coherence python-configobj python-crypto python-cupshelpers
6202 python-cupsutils python-eggtrayicon python-elementtree
6203 python-epsilon python-evolution python-feedparser python-gdata
6204 python-gdbm python-gst0.10 python-gtkglext1 python-gtkmozembed
6205 python-gtksourceview2 python-httplib2 python-louie python-mako
6206 python-markupsafe python-mechanize python-nevow python-notify
6207 python-opengl python-openssl python-pam python-pkg-resources
6208 python-pyasn1 python-pysqlite2 python-rdflib python-serial
6209 python-tagpy python-twisted-bin python-twisted-conch
6210 python-twisted-core python-twisted-web python-utidylib python-webkit
6211 python-xdg python-zope.interface remmina remmina-plugin-data
6212 remmina-plugin-rdp remmina-plugin-vnc rhythmbox-plugin-cdrecorder
6213 rhythmbox-plugins rpm-common rpm2cpio seahorse-plugins shotwell
6214 software-center svgalibg1 system-config-printer-udev
6215 telepathy-gabble telepathy-mission-control-5 telepathy-salut tomboy
6216 totem totem-coherence totem-mozilla totem-plugins
6217 transmission-common xdg-user-dirs xdg-user-dirs-gtk xserver-xephyr
6218 zip
6219 </p></blockquote>
6220
6221 Installed using apt-get, removed with aptitude
6222
6223 <blockquote><p>
6224 arj bluez-utils cheese dhcdbd djvulibre-desktop ekiga eog
6225 epiphany-extensions epiphany-gecko evolution-exchange
6226 fast-user-switch-applet file-roller gcalctool gconf-editor gdm gedit
6227 gedit-common gnome-app-install gnome-games gnome-games-data
6228 gnome-nettool gnome-system-tools gnome-themes gnome-utils
6229 gnome-vfs-obexftp gnome-volume-manager gnuchess gucharmap
6230 guile-1.8-libs hal libavahi-compat-libdnssd1 libavahi-core5
6231 libavahi-ui0 libbind9-50 libbluetooth2 libcamel1.2-11 libcdio7
6232 libcucul0 libcurl3 libdirectfb-1.0-0 libdmx1 libdvdread3
6233 libedata-cal1.2-6 libedataserver1.2-9 libeel2-2.20 libepc-1.0-1
6234 libepc-ui-1.0-1 libexchange-storage1.2-3 libfaad0 libgadu3
6235 libgalago3 libgd2-noxpm libgda3-3 libgda3-common libggz2 libggzcore9
6236 libggzmod4 libgksu1.2-0 libgksuui1.0-1 libgmyth0 libgnome-desktop-2
6237 libgnome-pilot2 libgnomecups1.0-1 libgnomeprint2.2-0
6238 libgnomeprintui2.2-0 libgpod3 libgraphviz4 libgtk-vnc-1.0-0
6239 libgtkhtml2-0 libgtksourceview1.0-0 libgtksourceview2.0-0
6240 libgucharmap6 libhesiod0 libicu38 libisccc50 libisccfg50 libiw29
6241 libjaxp1.3-java-gcj libkpathsea4 liblircclient0 libltdl3 liblwres50
6242 libmagick++10 libmagick10 libmalaga7 libmozjs1d libmpfr1ldbl libmtp7
6243 libmysqlclient15off libnautilus-burn4 libneon27 libnm-glib0
6244 libnm-util0 libopal-2.2 libosp5 libparted1.8-10 libpisock9
6245 libpisync1 libpoppler-glib3 libpoppler3 libpt-1.10.10 libraw1394-8
6246 libsdl1.2debian-alsa libsensors3 libsexy2 libsmbios2 libsoup2.2-8
6247 libspeexdsp1 libssh2-1 libsuitesparse-3.1.0 libsvga1
6248 libswfdec-0.6-90 libtalloc1 libtotem-plparser10 libtrackerclient0
6249 libvoikko1 libxalan2-java-gcj libxerces2-java-gcj libxklavier12
6250 libxtrap6 libxxf86misc1 libzephyr3 mysql-common rhythmbox seahorse
6251 sound-juicer swfdec-gnome system-config-printer totem-common
6252 totem-gstreamer transmission-gtk vinagre vino w3c-dtd-xhtml wodim
6253 </p></blockquote>
6254
6255 <p>Installed using aptitude, missing with apt-get</p>
6256
6257 <blockquote><p>
6258 gstreamer0.10-gnomevfs
6259 </p></blockquote>
6260
6261 <p>Installed using aptitude, removed with apt-get</p>
6262
6263 <blockquote><p>
6264 [nothing]
6265 </p></blockquote>
6266
6267 <p>This is for KDE:</p>
6268
6269 <p>Installed using apt-get, missing with aptitude</p>
6270
6271 <blockquote><p>
6272 autopoint bomber bovo cantor cantor-backend-kalgebra cpp-4.3 dcoprss
6273 edict espeak espeak-data eyesapplet fifteenapplet finger gettext
6274 ghostscript-x git gnome-audio gnugo granatier gs-common
6275 gstreamer0.10-pulseaudio indi kaddressbook-plugins kalgebra
6276 kalzium-data kanjidic kapman kate-plugins kblocks kbreakout kbstate
6277 kde-icons-mono kdeaccessibility kdeaddons-kfile-plugins
6278 kdeadmin-kfile-plugins kdeartwork-misc kdeartwork-theme-window
6279 kdeedu kdeedu-data kdeedu-kvtml-data kdegames kdegames-card-data
6280 kdegames-mahjongg-data kdegraphics-kfile-plugins kdelirc
6281 kdemultimedia-kfile-plugins kdenetwork-kfile-plugins
6282 kdepim-kfile-plugins kdepim-kio-plugins kdessh kdetoys kdewebdev
6283 kdiamond kdnssd kfilereplace kfourinline kgeography-data kigo
6284 killbots kiriki klettres-data kmoon kmrml knewsticker-scripts
6285 kollision kpf krosspython ksirk ksmserver ksquares kstars-data
6286 ksudoku kubrick kweather libasound2-plugins libboost-python1.42.0
6287 libcfitsio3 libconvert-binhex-perl libcrypt-ssleay-perl libdb4.6++
6288 libdjvulibre-text libdotconf1.0 liberror-perl libespeak1
6289 libfinance-quote-perl libgail-common libgsl0ldbl libhtml-parser-perl
6290 libhtml-tableextract-perl libhtml-tagset-perl libhtml-tree-perl
6291 libio-stringy-perl libkdeedu4 libkdegames5 libkiten4 libkpathsea5
6292 libkrossui4 libmailtools-perl libmime-tools-perl
6293 libnews-nntpclient-perl libopenbabel3 libportaudio2 libpulse-browse0
6294 libservlet2.4-java libspeechd2 libtiff-tools libtimedate-perl
6295 libunistring0 liburi-perl libwww-perl libxalan2-java libxerces2-java
6296 lirc luatex marble networkstatus noatun-plugins
6297 openoffice.org-writer2latex palapeli palapeli-data parley
6298 parley-data poster psutils pulseaudio pulseaudio-esound-compat
6299 pulseaudio-module-x11 pulseaudio-utils quanta-data rocs rsync
6300 speech-dispatcher step svgalibg1 texlive-binaries texlive-luatex
6301 ttf-sazanami-gothic
6302 </p></blockquote>
6303
6304 <p>Installed using apt-get, removed with aptitude</p>
6305
6306 <blockquote><p>
6307 amor artsbuilder atlantik atlantikdesigner blinken bluez-utils cvs
6308 dhcdbd djvulibre-desktop imlib-base imlib11 kalzium kanagram kandy
6309 kasteroids katomic kbackgammon kbattleship kblackbox kbounce kbruch
6310 kcron kdat kdemultimedia-kappfinder-data kdeprint kdict kdvi kedit
6311 keduca kenolaba kfax kfaxview kfouleggs kgeography kghostview
6312 kgoldrunner khangman khexedit kiconedit kig kimagemapeditor
6313 kitchensync kiten kjumpingcube klatin klettres klickety klines
6314 klinkstatus kmag kmahjongg kmailcvt kmenuedit kmid kmilo kmines
6315 kmousetool kmouth kmplot knetwalk kodo kolf kommander konquest kooka
6316 kpager kpat kpdf kpercentage kpilot kpoker kpovmodeler krec
6317 kregexpeditor kreversi ksame ksayit kshisen ksig ksim ksirc ksirtet
6318 ksmiletris ksnake ksokoban kspaceduel kstars ksvg ksysv kteatime
6319 ktip ktnef ktouch ktron kttsd ktuberling kturtle ktux kuickshow
6320 kverbos kview kviewshell kvoctrain kwifimanager kwin kwin4 kwordquiz
6321 kworldclock kxsldbg libakode2 libarts1-akode libarts1-audiofile
6322 libarts1-mpeglib libarts1-xine libavahi-compat-libdnssd1
6323 libavahi-core5 libavc1394-0 libbind9-50 libbluetooth2
6324 libboost-python1.34.1 libcucul0 libcurl3 libcvsservice0
6325 libdirectfb-1.0-0 libdjvulibre21 libdvdread3 libfaad0 libfreebob0
6326 libgd2-noxpm libgraphviz4 libgsmme1c2a libgtkhtml2-0 libicu38
6327 libiec61883-0 libindex0 libisccc50 libisccfg50 libiw29
6328 libjaxp1.3-java-gcj libk3b3 libkcal2b libkcddb1 libkdeedu3
6329 libkdegames1 libkdepim1a libkgantt0 libkleopatra1 libkmime2
6330 libkpathsea4 libkpimexchange1 libkpimidentities1 libkscan1
6331 libksieve0 libktnef1 liblockdev1 libltdl3 liblwres50 libmagick10
6332 libmimelib1c2a libmodplug0c2 libmozjs1d libmpcdec3 libmpfr1ldbl
6333 libneon27 libnm-util0 libopensync0 libpisock9 libpoppler-glib3
6334 libpoppler-qt2 libpoppler3 libraw1394-8 librss1 libsensors3
6335 libsmbios2 libssh2-1 libsuitesparse-3.1.0 libswfdec-0.6-90
6336 libtalloc1 libxalan2-java-gcj libxerces2-java-gcj libxtrap6 lskat
6337 mpeglib network-manager-kde noatun pmount tex-common texlive-base
6338 texlive-common texlive-doc-base texlive-fonts-recommended tidy
6339 ttf-dustin ttf-kochi-gothic ttf-sjfonts
6340 </p></blockquote>
6341
6342 <p>Installed using aptitude, missing with apt-get</p>
6343
6344 <blockquote><p>
6345 dolphin kde-core kde-plasma-desktop kde-standard kde-window-manager
6346 kdeartwork kdebase kdebase-apps kdebase-workspace
6347 kdebase-workspace-bin kdebase-workspace-data kdeutils kscreensaver
6348 kscreensaver-xsavers libgle3 libkonq5 libkonq5-templates libnetpbm10
6349 netpbm plasma-widget-folderview plasma-widget-networkmanagement
6350 xscreensaver-data-extra xscreensaver-gl xscreensaver-gl-extra
6351 xscreensaver-screensaver-bsod
6352 </p></blockquote>
6353
6354 <p>Installed using aptitude, removed with apt-get</p>
6355
6356 <blockquote><p>
6357 kdebase-bin konq-plugins konqueror
6358 </p></blockquote>
6359
6360 </div>
6361 <div class="tags">
6362
6363
6364 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>.
6365
6366
6367 </div>
6368 </div>
6369 <div class="padding"></div>
6370
6371 <div class="entry">
6372 <div class="title">
6373 <a href="http://people.skolelinux.org/pere/blog/Gnash_buildbot_slave_and_Debian_kfreebsd.html">Gnash buildbot slave and Debian kfreebsd</a>
6374 </div>
6375 <div class="date">
6376 20th November 2010
6377 </div>
6378 <div class="body">
6379 <p>Answering
6380 <a href="http://www.listware.net/201011/gnash-dev/67431-gnash-dev-buildbot-looking-for-slaves.html">the
6381 call from the Gnash project</a> for
6382 <a href="http://www.gnashdev.org:8010">buildbot</a> slaves to test the
6383 current source, I have set up a virtual KVM machine on the Debian
6384 Edu/Skolelinux virtualization host to test the git source on
6385 Debian/Squeeze. I hope this can help the developers in getting new
6386 releases out more often.</p>
6387
6388 <p>As the developers want less main-stream build platforms tested to,
6389 I have considered setting up a <a
6390 href="http://www.debian.org/ports/kfreebsd-gnu/">Debian/kfreebsd</a>
6391 machine as well. I have also considered using the kfreebsd
6392 architecture in Debian as a file server in NUUG to get access to the 5
6393 TB zfs volume we currently use to store DV video. Because of this, I
6394 finally got around to do a test installation of Debian/Squeeze with
6395 kfreebsd. Installation went fairly smooth, thought I noticed some
6396 visual glitches in the cdebconf dialogs (black cursor left on the
6397 screen at random locations). Have not gotten very far with the
6398 testing. Noticed cfdisk did not work, but fdisk did so it was not a
6399 fatal problem. Have to spend some more time on it to see if it is
6400 useful as a file server for NUUG. Will try to find time to set up a
6401 gnash buildbot slave on the Debian Edu/Skolelinux this weekend.</p>
6402
6403 </div>
6404 <div class="tags">
6405
6406
6407 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>.
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/Debian_in_3D.html">Debian in 3D</a>
6417 </div>
6418 <div class="date">
6419 9th November 2010
6420 </div>
6421 <div class="body">
6422 <p><img src="http://thingiverse-production.s3.amazonaws.com/renders/23/e0/c4/f9/2b/debswagtdose_preview_medium.jpg"></p>
6423
6424 <p>3D printing is just great. I just came across this Debian logo in
6425 3D linked in from
6426 <a href="http://blog.thingiverse.com/2010/11/09/participatory-branding/">the
6427 thingiverse blog</a>.</p>
6428
6429 </div>
6430 <div class="tags">
6431
6432
6433 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>.
6434
6435
6436 </div>
6437 </div>
6438 <div class="padding"></div>
6439
6440 <div class="entry">
6441 <div class="title">
6442 <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>
6443 </div>
6444 <div class="date">
6445 7th November 2010
6446 </div>
6447 <div class="body">
6448 <p>Prioritising packages for the Debian Edu /
6449 <a href="http://www.skolelinux.org/">Skolelinux</a> DVD, which is
6450 supposed provide a school with all the services and user applications
6451 needed on the pupils computer network has always been hard. Even
6452 schools without Internet connections should be able to get Debian Edu
6453 working using this DVD.</p>
6454
6455 <p>The job became a lot harder when apt and aptitude started
6456 installing recommended packages by default. We want the same set of
6457 packages to be installed when using the DVD and the netinst CD, and
6458 that means all recommended packages need to be on the DVD. I created
6459 a patch for debian-cd in <a href="http://bugs.debian.org/601203">BTS
6460 report #601203</a> to do this, and since this change was applied to
6461 the Debian Edu DVD build, we have been seriously short on space.</p>
6462
6463 <p>A few days ago we decided to drop blender, wxmaxima and kicad from
6464 the default installation to save space on the DVD, believing that
6465 those needing these applications are few and can get them from the
6466 Debian archive.</p>
6467
6468 <p>Yesterday, I had a look what source packages to see which packages
6469 were using most space. A few large packages are well know;
6470 openoffice.org, openclipart and fluid-soundfont. But I also
6471 discovered that lilypond used 106 MiB and fglrx-driver used 53 MiB.
6472 The lilypond package is pulled in as a dependency for rosegarden, and
6473 when looking a bit closer I discovered that 99 MiB of the 106 MiB were
6474 the documentation package, which is recommended by the binary package.
6475 I decided to drop this documentation package from our DVD, as most of
6476 our users will use the GUI front-ends and do not need the lilypond
6477 documentation. Similarly, I dropped the non-free fglrx-driver package
6478 which might be installed by d-i when its hardware is detected, as the
6479 free X driver should work.</p>
6480
6481 <p>With this change, we finally got space for the LXDE and Gnome
6482 desktop packages as well as the language specific packages making the
6483 DVD more useful again.</p>
6484
6485 </div>
6486 <div class="tags">
6487
6488
6489 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>.
6490
6491
6492 </div>
6493 </div>
6494 <div class="padding"></div>
6495
6496 <div class="entry">
6497 <div class="title">
6498 <a href="http://people.skolelinux.org/pere/blog/Software_updates_2010_10_24.html">Software updates 2010-10-24</a>
6499 </div>
6500 <div class="date">
6501 24th October 2010
6502 </div>
6503 <div class="body">
6504 <p>Some updates.</p>
6505
6506 <p>My <a href="http://pledgebank.com/gnash-avm2">gnash pledge</a> to
6507 raise money for the project is going well. The lower limit of 10
6508 signers was reached in 24 hours, and so far 13 people have signed it.
6509 More signers and more funding is most welcome, and I am really curious
6510 how far we can get before the time limit of December 24 is reached.
6511 :)</p>
6512
6513 <p>On the #gnash IRC channel on irc.freenode.net, I was just tipped
6514 about what appear to be a great code coverage tool capable of
6515 generating code coverage stats without any changes to the source code.
6516 It is called
6517 <a href="http://simonkagstrom.github.com/kcov/index.html">kcov</a>,
6518 and can be used using <tt>kcov &lt;directory&gt; &lt;binary&gt;</tt>.
6519 It is missing in Debian, but the git source built just fine in Squeeze
6520 after I installed libelf-dev, libdwarf-dev, pkg-config and
6521 libglib2.0-dev. Failed to build in Lenny, but suspect that is
6522 solvable. I hope kcov make it into Debian soon.</p>
6523
6524 <p>Finally found time to wrap up the release notes for <a
6525 href="http://lists.debian.org/debian-edu-announce/2010/10/msg00002.html">a
6526 new alpha release of Debian Edu</a>, and just published the second
6527 alpha test release of the Squeeze based Debian Edu /
6528 <a href="http://www.skolelinux.org/">Skolelinux</a>
6529 release. Give it a try if you need a complete linux solution for your
6530 school, including central infrastructure server, workstations, thin
6531 client servers and diskless workstations. A nice touch added
6532 yesterday is RDP support on the thin client servers, for windows
6533 clients to get a Linux desktop on request.</p>
6534
6535 </div>
6536 <div class="tags">
6537
6538
6539 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>.
6540
6541
6542 </div>
6543 </div>
6544 <div class="padding"></div>
6545
6546 <div class="entry">
6547 <div class="title">
6548 <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>
6549 </div>
6550 <div class="date">
6551 19th October 2010
6552 </div>
6553 <div class="body">
6554 <p><a href="http://www.getgnash.org/">The Gnash project</a> is the
6555 most promising solution for a Free Software Flash implementation. It
6556 has done great so far, but there is still far to go, and recently its
6557 funding has dried up. I believe AVM2 support in Gnash is vital to the
6558 continued progress of the project, as more and more sites show up with
6559 AVM2 flash files.</p>
6560
6561 <p>To try to get funding for developing such support, I have started
6562 <a href="http://www.pledgebank.com/gnash-avm2">a pledge</a> with the
6563 following text:</P>
6564
6565 <p><blockquote>
6566
6567 <p>"I will pay 100$ to the Gnash project to develop AVM2 support but
6568 only if 10 other people will do the same."</p>
6569
6570 <p>- Petter Reinholdtsen, free software developer</p>
6571
6572 <p>Deadline to sign up by: 24th December 2010</p>
6573
6574 <p>The Gnash project need to get support for the new Flash file
6575 format AVM2 to work with a lot of sites using Flash on the
6576 web. Gnash already work with a lot of Flash sites using the old AVM1
6577 format, but more and more sites are using the AVM2 format these
6578 days. The project web page is available from
6579 http://www.getgnash.org/ . Gnash is a free software implementation
6580 of Adobe Flash, allowing those of us that do not accept the terms of
6581 the Adobe Flash license to get access to Flash sites.</p>
6582
6583 <p>The project need funding to get developers to put aside enough
6584 time to develop the AVM2 support, and this pledge is my way to try
6585 to get this to happen.</p>
6586
6587 <p>The project accept donations via the OpenMediaNow foundation,
6588 <a href="http://www.openmedianow.org/?q=node/32">http://www.openmedianow.org/?q=node/32</a> .</p>
6589
6590 </blockquote></p>
6591
6592 <p>I hope you will support this effort too. I hope more than 10
6593 people will participate to make this happen. The more money the
6594 project gets, the more features it can develop using these funds.
6595 :)</p>
6596
6597 </div>
6598 <div class="tags">
6599
6600
6601 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>.
6602
6603
6604 </div>
6605 </div>
6606 <div class="padding"></div>
6607
6608 <div class="entry">
6609 <div class="title">
6610 <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>
6611 </div>
6612 <div class="date">
6613 9th October 2010
6614 </div>
6615 <div class="body">
6616 <p>This summer I got the chance to buy cheap Spykee robots, and since
6617 then I have worked on getting Linux software in place to control them.
6618 The firmware for the robot is available from the producer, and using
6619 that source it was trivial to figure out the protocol specification.
6620 I've started on a perl library to control it, and made some demo
6621 programs using this perl library to allow one to control the
6622 robots.</p>
6623
6624 <p>The library is quite functional already, and capable of controlling
6625 the driving, fetching video, uploading MP3s and play them. There are
6626 a few less important features too.</p>
6627
6628 <p>Since a few weeks ago, I ran out of time to spend on this project,
6629 but I never got around to releasing the current source. I decided
6630 today that it was time to do something about it, and uploaded the
6631 source to my Debian package store at people.skolelinux.org.</p>
6632
6633 <p>Because it was simpler for me, I made a Debian package and
6634 published the source and deb. If you got a spykee robot, grab the
6635 source or binary package:</p>
6636
6637 <p><ul>
6638 <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>
6639 <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>
6640 <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>
6641 </ul></p>
6642
6643 <p>If you are interested in helping out with developing this library,
6644 please let me know.</p>
6645
6646 </div>
6647 <div class="tags">
6648
6649
6650 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>.
6651
6652
6653 </div>
6654 </div>
6655 <div class="padding"></div>
6656
6657 <div class="entry">
6658 <div class="title">
6659 <a href="http://people.skolelinux.org/pere/blog/Links_for_2010_10_03.html">Links for 2010-10-03</a>
6660 </div>
6661 <div class="date">
6662 3rd October 2010
6663 </div>
6664 <div class="body">
6665 <p><ul>
6666
6667 <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
6668 is no Plan B: why the IPv4-to-IPv6 transition will be ugly</a></li>
6669
6670 <li>Scanner looking under clothes
6671 <a href="http://www.dagbladet.no/2010/10/03/nyheter/utenriks/reise/overvakingskamera/flyplasser/13667192/">has
6672 already been misused at Heathrow</a>.</li>
6673
6674 <li><a href="http://wiki.softwarelivre.org/Landell">Landell
6675 Webcasting</a> - interesting alternative for
6676 <ahref="http://dvswitch.alioth.debian.org/wiki/">DVSwitch</a> with
6677 simple setup.
6678
6679 </ul></p>
6680
6681 </div>
6682 <div class="tags">
6683
6684
6685 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>.
6686
6687
6688 </div>
6689 </div>
6690 <div class="padding"></div>
6691
6692 <div class="entry">
6693 <div class="title">
6694 <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>
6695 </div>
6696 <div class="date">
6697 9th September 2010
6698 </div>
6699 <div class="body">
6700 <p>A few days ago I had the mixed pleasure of bying a new digital
6701 camera, a Canon IXUS 130. It was instructive and very disturbing to
6702 be able to verify that also this camera producer have the nerve to
6703 specify how I can or can not use the videos produced with the camera.
6704 Even thought I was aware of the issue, the options with new cameras
6705 are limited and I ended up bying the camera anyway. What is the
6706 problem, you might ask? It is software patents, MPEG-4, H.264 and the
6707 MPEG-LA that is the problem, and our right to record our experiences
6708 without asking for permissions that is at risk.
6709
6710 <p>On page 27 of the Danish instruction manual, this section is
6711 written:</p>
6712
6713 <blockquote>
6714 <p>This product is licensed under AT&T patents for the MPEG-4 standard
6715 and may be used for encoding MPEG-4 compliant video and/or decoding
6716 MPEG-4 compliant video that was encoded only (1) for a personal and
6717 non-commercial purpose or (2) by a video provider licensed under the
6718 AT&T patents to provide MPEG-4 compliant video.</p>
6719
6720 <p>No license is granted or implied for any other use for MPEG-4
6721 standard.</p>
6722 </blockquote>
6723
6724 <p>In short, the camera producer have chosen to use technology
6725 (MPEG-4/H.264) that is only provided if I used it for personal and
6726 non-commercial purposes, or ask for permission from the organisations
6727 holding the knowledge monopoly (patent) for technology used.</p>
6728
6729 <p>This issue has been brewing for a while, and I recommend you to
6730 read
6731 "<a href="http://www.osnews.com/story/23236/Why_Our_Civilization_s_Video_Art_and_Culture_is_Threatened_by_the_MPEG-LA">Why
6732 Our Civilization's Video Art and Culture is Threatened by the
6733 MPEG-LA</a>" by Eugenia Loli-Queru and
6734 "<a href="http://webmink.com/2010/09/03/h-264-and-foss/">H.264 Is Not
6735 The Sort Of Free That Matters</a>" by Simon Phipps to learn more about
6736 the issue. The solution is to support the
6737 <a href="http://www.digistan.org/open-standard:definition">free and
6738 open standards</a> for video, like <a href="http://www.theora.org/">Ogg
6739 Theora</a>, and avoid MPEG-4 and H.264 if you can.</p>
6740
6741 </div>
6742 <div class="tags">
6743
6744
6745 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>.
6746
6747
6748 </div>
6749 </div>
6750 <div class="padding"></div>
6751
6752 <div class="entry">
6753 <div class="title">
6754 <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>
6755 </div>
6756 <div class="date">
6757 4th September 2010
6758 </div>
6759 <div class="body">
6760 <p>In the <a href="http://popcon.debian.org/unknown/by_vote">Debian
6761 popularity-contest numbers</a>, the adobe-flashplugin package the
6762 second most popular used package that is missing in Debian. The sixth
6763 most popular is flashplayer-mozilla. This is a clear indication that
6764 working flash is important for Debian users. Around 10 percent of the
6765 users submitting data to popcon.debian.org have this package
6766 installed.</p>
6767
6768 <p>In the report written by Lars Risan in August 2008
6769 («<a href="http://wiki.skolelinux.no/Dokumentasjon/Rapporter?action=AttachFile&do=view&target=Skolelinux_i_bruk_rapport_1.0.pdf">Skolelinux
6770 i bruk – Rapport for Hurum kommune, Universitetet i Agder og
6771 stiftelsen SLX Debian Labs</a>»), one of the most important problems
6772 schools experienced with <a href="http://www.skolelinux.org/">Debian
6773 Edu/Skolelinux</a> was the lack of working Flash. A lot of educational
6774 web sites require Flash to work, and lacking working Flash support in
6775 the web browser and the problems with installing it was perceived as a
6776 good reason to stay with Windows.</p>
6777
6778 <p>I once saw a funny and sad comment in a web forum, where Linux was
6779 said to be the retarded cousin that did not really understand
6780 everything you told him but could work fairly well. This was a
6781 comment regarding the problems Linux have with proprietary formats and
6782 non-standard web pages, and is sad because it exposes a fairly common
6783 understanding of whose fault it is if web pages that only work in for
6784 example Internet Explorer 6 fail to work on Firefox, and funny because
6785 it explain very well how annoying it is for users when Linux
6786 distributions do not work with the documents they receive or the web
6787 pages they want to visit.</p>
6788
6789 <p>This is part of the reason why I believe it is important for Debian
6790 and Debian Edu to have a well working Flash implementation in the
6791 distribution, to get at least popular sites as Youtube and Google
6792 Video to working out of the box. For Squeeze, Debian have the chance
6793 to include the latest version of Gnash that will make this happen, as
6794 the new release 0.8.8 was published a few weeks ago and is resting in
6795 unstable. The new version work with more sites that version 0.8.7.
6796 The Gnash maintainers have asked for a freeze exception, but the
6797 release team have not had time to reply to it yet. I hope they agree
6798 with me that Flash is important for the Debian desktop users, and thus
6799 accept the new package into Squeeze.</p>
6800
6801 </div>
6802 <div class="tags">
6803
6804
6805 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>.
6806
6807
6808 </div>
6809 </div>
6810 <div class="padding"></div>
6811
6812 <div class="entry">
6813 <div class="title">
6814 <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>
6815 </div>
6816 <div class="date">
6817 1st September 2010
6818 </div>
6819 <div class="body">
6820 <p>This evening I made my first Perl GUI application. The last few
6821 days I have worked on a Perl module for controlling my recently
6822 aquired Spykee robots, and the module is now getting complete enought
6823 that it is possible to use it to control the robot driving at least.
6824 It was now time to figure out how to use it to create some GUI to
6825 allow me to drive the robot around. I picked PerlQt as I have had
6826 positive experiences with the Qt API before, and spent a few minutes
6827 browsing the web for examples. Using Qt Designer seemed like a short
6828 cut, so I ended up writing the perl GUI using Qt Designer and
6829 compiling it into a perl program using the puic program from
6830 libqt-perl. Nothing fancy yet, but it got buttons to connect and
6831 drive around.</p>
6832
6833 <p>The perl module I have written provide a object oriented API for
6834 controlling the robot. Here is an small example on how to use it:</p>
6835
6836 <p><pre>
6837 use Spykee;
6838 Spykee::discover(sub {$robot{$_[0]} = $_[1]});
6839 my $host = (keys %robot)[0];
6840 my $spykee = Spykee->new();
6841 $spykee->contact($host, "admin", "admin");
6842 $spykee->left();
6843 sleep 2;
6844 $spykee->right();
6845 sleep 2;
6846 $spykee->forward();
6847 sleep 2;
6848 $spykee->back();
6849 sleep 2;
6850 $spykee->stop();
6851 </pre></p>
6852
6853 <p>Thanks to the release of the source of the robot firmware, I could
6854 peek into the implementation at the other end to figure out how to
6855 implement the protocol used by the robot. I've implemented several of
6856 the commands the robot understand, but is still missing the camera
6857 support to make it possible to control the robot from remote. First I
6858 want to implement support for uploading new firmware and configuring
6859 the wireless network, to make it possible to bootstrap a Spykee robot
6860 without the producers Windows and MacOSX software (I only have Linux,
6861 so I had to ask a friend to come over to get the robot testing
6862 going. :).</p>
6863
6864 <p>Will release the source to the public soon, but need to figure out
6865 where to make it available first. I will add a link to
6866 <a href="http://wiki.nuug.no/grupper/robot/">the NUUG wiki</a> for
6867 those that want to check back later to find it.</p>
6868
6869 </div>
6870 <div class="tags">
6871
6872
6873 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>.
6874
6875
6876 </div>
6877 </div>
6878 <div class="padding"></div>
6879
6880 <div class="entry">
6881 <div class="title">
6882 <a href="http://people.skolelinux.org/pere/blog/Broken_hard_link_handling_with_sshfs.html">Broken hard link handling with sshfs</a>
6883 </div>
6884 <div class="date">
6885 30th August 2010
6886 </div>
6887 <div class="body">
6888 <p>Just got an email from Tobias Gruetzmacher as a followup on my
6889 <a href="http://people.skolelinux.org/pere/blog/Broken_umask_handling_with_sshfs.html">previous
6890 post about sshfs</a>. He reported another problem with sshfs. It
6891 fail to handle hard links properly. A simple way to spot this is to
6892 look at the . and .. entries in the directory tree. These should have
6893 a link count >1, but on sshfs the count is 1. I just tested to see
6894 what happen when trying to hardlink, and this fail as well:</p>
6895
6896 <pre>
6897 % ln foo bar
6898 ln: creating hard link `bar' => `foo': Function not implemented
6899 %
6900 </pre>
6901
6902 <p>I have not yet found time to implement a test for this in my file
6903 system test code, but believe having working hard links is useful to
6904 avoid surprised unix programs. Not as useful as working file locking
6905 and symlinks, which are required to get a working desktop, but useful
6906 nevertheless. :)</p>
6907
6908 <p>The latest version of the file system test code is available via
6909 git from
6910 <a href="http://github.com/gebi/fs-test">http://github.com/gebi/fs-test</a></p>
6911
6912 </div>
6913 <div class="tags">
6914
6915
6916 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>.
6917
6918
6919 </div>
6920 </div>
6921 <div class="padding"></div>
6922
6923 <div class="entry">
6924 <div class="title">
6925 <a href="http://people.skolelinux.org/pere/blog/Broken_umask_handling_with_sshfs.html">Broken umask handling with sshfs</a>
6926 </div>
6927 <div class="date">
6928 26th August 2010
6929 </div>
6930 <div class="body">
6931 <p>My file system sematics program
6932 <a href="http://people.skolelinux.org/pere/blog/Testing_if_a_file_system_can_be_used_for_home_directories___.html">presented
6933 a few days ago</a> is very useful to verify that a file system can
6934 work as a unix home directory,and today I had to extend it a bit. I'm
6935 looking into alternatives for home directory access here at the
6936 University of Oslo, and one of the options is sshfs. My friend
6937 Finn-Arne mentioned a while back that they had used sshfs with Debian
6938 Edu, but stopped because of problems. I asked today what the problems
6939 where, and he mentioned that sshfs failed to handle umask properly.
6940 Trying to detect the problem I wrote this addition to my fs testing
6941 script:</p>
6942
6943 <pre>
6944 mode_t touch_get_mode(const char *name, mode_t mode) {
6945 mode_t retval = 0;
6946 int fd = open(name, O_RDWR|O_CREAT|O_LARGEFILE, mode);
6947 if (-1 != fd) {
6948 unlink(name);
6949 struct stat statbuf;
6950 if (-1 != fstat(fd, &statbuf)) {
6951 retval = statbuf.st_mode & 0x1ff;
6952 }
6953 close(fd);
6954 }
6955 return retval;
6956 }
6957
6958 /* Try to detect problem discovered using sshfs */
6959 int test_umask(void) {
6960 printf("info: testing umask effect on file creation\n");
6961
6962 mode_t orig_umask = umask(000);
6963 mode_t newmode;
6964 if (0666 != (newmode = touch_get_mode("foobar", 0666))) {
6965 printf(" error: Wrong file mode %o when creating using mode 666 and umask 000\n",
6966 newmode);
6967 }
6968 umask(007);
6969 if (0660 != (newmode = touch_get_mode("foobar", 0666))) {
6970 printf(" error: Wrong file mode %o when creating using mode 666 and umask 007\n",
6971 newmode);
6972 }
6973
6974 umask (orig_umask);
6975 return 0;
6976 }
6977
6978 int main(int argc, char **argv) {
6979 [...]
6980 test_umask();
6981 return 0;
6982 }
6983 </pre>
6984
6985 <p>Sure enough. On NFS to a netapp, I get this result:</p>
6986
6987 <pre>
6988 Testing POSIX/Unix sematics on file system
6989 info: testing symlink creation
6990 info: testing subdirectory creation
6991 info: testing fcntl locking
6992 Read-locking 1 byte from 1073741824
6993 Read-locking 510 byte from 1073741826
6994 Unlocking 1 byte from 1073741824
6995 Write-locking 1 byte from 1073741824
6996 Write-locking 510 byte from 1073741826
6997 Unlocking 2 byte from 1073741824
6998 info: testing umask effect on file creation
6999 </pre>
7000
7001 <p>When mounting the same directory using sshfs, I get this
7002 result:</p>
7003
7004 <pre>
7005 Testing POSIX/Unix sematics on file system
7006 info: testing symlink creation
7007 info: testing subdirectory creation
7008 info: testing fcntl locking
7009 Read-locking 1 byte from 1073741824
7010 Read-locking 510 byte from 1073741826
7011 Unlocking 1 byte from 1073741824
7012 Write-locking 1 byte from 1073741824
7013 Write-locking 510 byte from 1073741826
7014 Unlocking 2 byte from 1073741824
7015 info: testing umask effect on file creation
7016 error: Wrong file mode 644 when creating using mode 666 and umask 000
7017 error: Wrong file mode 640 when creating using mode 666 and umask 007
7018 </pre>
7019
7020 <p>So, I can conclude that sshfs is better than smb to a Netapp or a
7021 Windows server, but not good enough to be used as a home
7022 directory.</p>
7023
7024 <p>Update 2010-08-26: Reported the issue in
7025 <a href="http://bugs.debian.org/594498">BTS report #594498</a></p>
7026
7027 <p>Update 2010-08-27: Michael Gebetsroither report that he found the
7028 script so useful that he created a GIT repository and stored it in
7029 <a href="http://github.com/gebi/fs-test">http://github.com/gebi/fs-test</a>.</p>
7030
7031 </div>
7032 <div class="tags">
7033
7034
7035 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>.
7036
7037
7038 </div>
7039 </div>
7040 <div class="padding"></div>
7041
7042 <div class="entry">
7043 <div class="title">
7044 <a href="http://people.skolelinux.org/pere/blog/Rob_Weir__How_to_Crush_Dissent.html">Rob Weir: How to Crush Dissent</a>
7045 </div>
7046 <div class="date">
7047 15th August 2010
7048 </div>
7049 <div class="body">
7050 <p>I found the notes from Rob Weir on
7051 <a href="http://feedproxy.google.com/~r/robweir/antic-atom/~3/VGb23-kta8c/how-to-crush-dissent.html">how
7052 to crush dissent</a> matching my own thoughts on the matter quite
7053 well. Highly recommended for those wondering which road our society
7054 should go down. In my view we have been heading the wrong way for a
7055 long time.</p>
7056
7057 </div>
7058 <div class="tags">
7059
7060
7061 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>.
7062
7063
7064 </div>
7065 </div>
7066 <div class="padding"></div>
7067
7068 <div class="entry">
7069 <div class="title">
7070 <a href="http://people.skolelinux.org/pere/blog/No_hardcoded_config_on_Debian_Edu_clients.html">No hardcoded config on Debian Edu clients</a>
7071 </div>
7072 <div class="date">
7073 9th August 2010
7074 </div>
7075 <div class="body">
7076 <p>As reported earlier, the last few days I have looked at how Debian
7077 Edu clients are configured, and tried to get rid of all hardcoded
7078 configuration settings on the clients. I believe the work to be
7079 mostly done, and the clients seem to work just fine with dynamically
7080 generated configuration.</p>
7081
7082 <p>What is the point, you might ask? The point is to allow a Debian
7083 Edu desktop to integrate into an existing network infrastructure
7084 without any manual configuration.</p>
7085
7086 <p>This is what happens when installing a Debian Edu client here at
7087 the University of Oslo using PXE. With the PXE installation, I am
7088 asked for language (Norwegian Bokmål), locality (Norway) and keyboard
7089 layout (no-latin1), Debian Edu profile (Roaming Workstation), if I
7090 accept to reformat the hard drive (yes), if I want to submit info to
7091 popcon.debian.org (no) and root password (secret). After answering
7092 these questions, the installer goes ahead and does its thing, and
7093 after around 50 minutes it is done. I press enter to finish the
7094 installation, and the machine reboots into KDE. When the machine is
7095 ready and kdm asks for login information, I enter my university
7096 username and password, am told by kdm that a local home directory has
7097 been created and that I must log in again, and finally log in with the
7098 same username and password to the KDE 4.4 desktop. At no point during
7099 this process did it ask for university specific settings, and all the
7100 required configuration was dynamically detected using information
7101 fetched via DHCP and DNS. The roaming workstation is now ready for
7102 use.</p>
7103
7104 <p>How was this done, you might wonder? First of all, here is the
7105 list of things that need to be configured on the client to get it
7106 working properly out of the box:</p>
7107
7108 <ul>
7109 <li>IP address/netmask and DNS server.</li>
7110 <li>Web proxy URL.</li>
7111 <li>LDAP server for NSS directory information (user, group, etc).</li>
7112 <li>Kerberos server for PAM password checking.</li>
7113 <li>SMB mount point to access the network home directory. (*)</li>
7114 <li>Central syslog server to send syslog messages to. (*)</li>
7115 <li>Sitesummary collector URL to submit info to central server. (*)</li>
7116 </ul>
7117
7118 <p>(Hm, did I forget anything? Let me knew if I did.)</p>
7119
7120 <p>The points marked (*) are not required to be able to use the
7121 machine, but needed to provide central storage and allowing system
7122 administrators to track their machines. Since yesterday, everything
7123 but the sitesummary collector URL is dynamically discovered at boot
7124 and installation time in the svn version of Debian Edu.</p>
7125
7126 <p>The IP and DNS setup is fetched during boot using DHCP as usual.
7127 When a DHCP update arrives, the proxy setup is updated by looking for
7128 http://wpat/wpad.dat and using the content of this WPAD file to
7129 configure the http and ftp proxy in /etc/environment and
7130 /etc/apt/apt.conf. I decided to update the proxy setup using a DHCP
7131 hook to ensure that the client stops using the Debian Edu proxy when
7132 it is moved outside the Debian Edu network, and instead uses any local
7133 proxy present on the new network when it moves around.</p>
7134
7135 <p>The DNS names of the LDAP, Kerberos and syslog server and related
7136 configuration are generated using DNS information at boot. First the
7137 installer looks for a host named ldap in the current DNS domain. If
7138 not found, it looks for _ldap._tcp SRV records in DNS instead. If an
7139 LDAP server is found, its root DSE entry is requested and the
7140 attributes namingContexts and defaultNamingContext are used to
7141 determine which LDAP base to use for NSS. If there are several
7142 namingContexts attibutes and the defaultNamingContext is present, that
7143 LDAP subtree is used as the base. If defaultNamingContext is missing,
7144 the subtrees listed as namingContexts are searched in sequence for any
7145 object with class posixAccount or posixGroup, and the first one with
7146 such an object is used as the LDAP base. For Kerberos, a similar
7147 search is done by first looking for a host named kerberos, and then
7148 for the _kerberos._tcp SRV record. I've been unable to find a way to
7149 look up the Kerberos realm, so for this the upper case string of the
7150 current DNS domain is used.</p>
7151
7152 <p>For the syslog server, the hosts syslog and loghost are searched
7153 for, and the _syslog._udp SRV record is consulted if no such host is
7154 found. This algorithm works for both Debian Edu and the University of
7155 Oslo. A similar strategy would work for locating the sitesummary
7156 server, but have not been implemented yet. I decided to fetch and
7157 save these settings during installation, to make sure moving to a
7158 different network does not change the set of users being allowed to
7159 log in nor the passwords required to log in. Usernames and passwords
7160 will be cached by sssd when the user logs in on the Debian Edu
7161 network, and will not change as the laptop move around. For a
7162 non-roaming machine, there is no caching, but given that it is
7163 supposed to stay in place it should not matter much. Perhaps we
7164 should switch those to use sssd too?</p>
7165
7166 <p>The user's SMB mount point for the network home directory is
7167 located when the user logs in for the first time. The LDAP server is
7168 consulted to look for the user's LDAP object and the sambaHomePath
7169 attribute is used if found. If it isn't found, the home directory
7170 path fetched from NSS is used instead. Assuming the path is of the
7171 form /site/server/directory/username, the second part is looked up in
7172 DNS and used to generate a SMB URL of the form
7173 smb://server.domain/username. This algorithm works for both Debian
7174 edu and the University of Oslo. Perhaps there are better attributes
7175 to use or a better algorithm that works for more sites, but this will
7176 do for now. :)</p>
7177
7178 <p>This work should make it easier to integrate the Debian Edu clients
7179 into any LDAP/Kerberos infrastructure, and make the current setup even
7180 more flexible than before. I suspect it will also work for thin
7181 client servers, allowing one to easily set up LTSP and hook it into a
7182 existing network infrastructure, but I have not had time to test this
7183 yet.</p>
7184
7185 <p>If you want to help out with implementing these things for Debian
7186 Edu, please contact us on debian-edu@lists.debian.org.</p>
7187
7188 <p>Update 2010-08-09: Simon Farnsworth gave me a heads-up on how to
7189 detect Kerberos realm from DNS, by looking for _kerberos TXT entries
7190 before falling back to the upper case DNS domain name. Will have to
7191 implement it for Debian Edu. :)</p>
7192
7193 </div>
7194 <div class="tags">
7195
7196
7197 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>.
7198
7199
7200 </div>
7201 </div>
7202 <div class="padding"></div>
7203
7204 <div class="entry">
7205 <div class="title">
7206 <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>
7207 </div>
7208 <div class="date">
7209 8th August 2010
7210 </div>
7211 <div class="body">
7212 <p>A few years ago, I was involved in a project planning to use
7213 Windows file servers as home directory servers for Debian
7214 Edu/Skolelinux machines. This was thought to be no problem, as the
7215 access would be through the SMB network file system protocol, and we
7216 knew other sites used SMB with unix and samba as the file server to
7217 mount home directories without any problems. But, after months of
7218 struggling, we had to conclude that our goal was impossible.</p>
7219
7220 <p>The reason is simply that while SMB can be used for home
7221 directories when the file server is Samba running on Unix, this only
7222 work because of Samba have some extensions and the fact that the
7223 underlying file system is a unix file system. When using a Windows
7224 file server, the underlying file system do not have POSIX semantics,
7225 and several programs will fail if the users home directory where they
7226 want to store their configuration lack POSIX semantics.</p>
7227
7228 <p>As part of this work, I wrote a small C program I want to share
7229 with you all, to replicate a few of the problematic applications (like
7230 OpenOffice.org and GCompris) and see if the file system was working as
7231 it should. If you find yourself in spooky file system land, it might
7232 help you find your way out again. This is the fs-test.c source:</p>
7233
7234 <pre>
7235 /*
7236 * Some tests to check the file system sematics. Used to verify that
7237 * CIFS from a windows server do not work properly as a linux home
7238 * directory.
7239 * License: GPL v2 or later
7240 *
7241 * needs libsqlite3-dev and build-essential installed
7242 * compile with: gcc -Wall -lsqlite3 -DTEST_SQLITE fs-test.c -o fs-test
7243 */
7244
7245 #define _FILE_OFFSET_BITS 64
7246 #define _LARGEFILE_SOURCE 1
7247 #define _LARGEFILE64_SOURCE 1
7248
7249 #define _GNU_SOURCE /* for asprintf() */
7250
7251 #include &lt;errno.h>
7252 #include &lt;fcntl.h>
7253 #include &lt;stdio.h>
7254 #include &lt;string.h>
7255 #include &lt;stdlib.h>
7256 #include &lt;sys/file.h>
7257 #include &lt;sys/stat.h>
7258 #include &lt;sys/types.h>
7259 #include &lt;unistd.h>
7260
7261 #ifdef TEST_SQLITE
7262 /*
7263 * Test sqlite open, as done by gcompris require the libsqlite3-dev
7264 * package and linking with -lsqlite3. A more low level test is
7265 * below.
7266 * See also &lt;URL: http://www.sqlite.org./faq.html#q5 >.
7267 */
7268 #include &lt;sqlite3.h>
7269 #define CREATE_TABLE_USERS \
7270 "CREATE TABLE users (user_id INT UNIQUE, login TEXT, lastname TEXT, firstname TEXT, birthdate TEXT, class_id INT ); "
7271 int test_sqlite_open(void) {
7272 char *zErrMsg;
7273 char *name = "testsqlite.db";
7274 sqlite3 *db=NULL;
7275 unlink(name);
7276 int rc = sqlite3_open(name, &db);
7277 if( rc ){
7278 printf("error: sqlite open of %s failed: %s\n", name, sqlite3_errmsg(db));
7279 sqlite3_close(db);
7280 return -1;
7281 }
7282
7283 /* create tables */
7284 rc = sqlite3_exec(db,CREATE_TABLE_USERS, NULL, 0, &zErrMsg);
7285 if( rc != SQLITE_OK ){
7286 printf("error: sqlite table create failed: %s\n", zErrMsg);
7287 sqlite3_close(db);
7288 return -1;
7289 }
7290 printf("info: sqlite worked\n");
7291 sqlite3_close(db);
7292 return 0;
7293 }
7294 #endif /* TEST_SQLITE */
7295
7296 /*
7297 * Demonstrate locking issue found in gcompris using sqlite3. This
7298 * work with ext3, but not with cifs server on Windows 2003. This is
7299 * done in the sqlite3 library.
7300 * See also
7301 * &lt;URL:http://www.cygwin.com/ml/cygwin/2001-08/msg00854.html> and the
7302 * POSIX specification
7303 * &lt;URL:http://www.opengroup.org/onlinepubs/009695399/functions/fcntl.html>.
7304 */
7305 int test_gcompris_locking(void) {
7306 struct flock fl;
7307 char *name = "testsqlite.db";
7308 unlink(name);
7309 int fd = open(name, O_RDWR|O_CREAT|O_LARGEFILE, 0644);
7310 printf("info: testing fcntl locking\n");
7311
7312 fl.l_whence = SEEK_SET;
7313 fl.l_pid = getpid();
7314 printf(" Read-locking 1 byte from 1073741824");
7315 fl.l_start = 1073741824;
7316 fl.l_len = 1;
7317 fl.l_type = F_RDLCK;
7318 if (0 != fcntl(fd, F_SETLK, &fl) ) printf(" - error!\n"); else printf("\n");
7319
7320 printf(" Read-locking 510 byte from 1073741826");
7321 fl.l_start = 1073741826;
7322 fl.l_len = 510;
7323 fl.l_type = F_RDLCK;
7324 if (0 != fcntl(fd, F_SETLK, &fl) ) printf(" - error!\n"); else printf("\n");
7325
7326 printf(" Unlocking 1 byte from 1073741824");
7327 fl.l_start = 1073741824;
7328 fl.l_len = 1;
7329 fl.l_type = F_UNLCK;
7330 if (0 != fcntl(fd, F_SETLK, &fl) ) printf(" - error!\n"); else printf("\n");
7331
7332 printf(" Write-locking 1 byte from 1073741824");
7333 fl.l_start = 1073741824;
7334 fl.l_len = 1;
7335 fl.l_type = F_WRLCK;
7336 if (0 != fcntl(fd, F_SETLK, &fl) ) printf(" - error!\n"); else printf("\n");
7337
7338 printf(" Write-locking 510 byte from 1073741826");
7339 fl.l_start = 1073741826;
7340 fl.l_len = 510;
7341 if (0 != fcntl(fd, F_SETLK, &fl) ) printf(" - error!\n"); else printf("\n");
7342
7343 printf(" Unlocking 2 byte from 1073741824");
7344 fl.l_start = 1073741824;
7345 fl.l_len = 2;
7346 fl.l_type = F_UNLCK;
7347 if (0 != fcntl(fd, F_SETLK, &fl) ) printf(" - error!\n"); else printf("\n");
7348
7349 close(fd);
7350 return 0;
7351 }
7352
7353 /*
7354 * Test if permissions of freshly created directories allow entries
7355 * below them. This was a problem with OpenOffice.org and gcompris.
7356 * Mounting with option 'sync' seem to solve this problem while
7357 * slowing down file operations.
7358 */
7359 int test_subdirectory_creation(void) {
7360 #define LEVELS 5
7361 char *path = strdup("test");
7362 char *dirs[LEVELS];
7363 int level;
7364 printf("info: testing subdirectory creation\n");
7365 for (level = 0; level &lt; LEVELS; level++) {
7366 char *newpath = NULL;
7367 if (-1 == mkdir(path, 0777)) {
7368 printf(" error: Unable to create directory '%s': %s\n",
7369 path, strerror(errno));
7370 break;
7371 }
7372 asprintf(&newpath, "%s/%s", path, "test");
7373 free(path);
7374 path = newpath;
7375 }
7376 return 0;
7377 }
7378
7379 /*
7380 * Test if symlinks can be created. This was a problem detected with
7381 * KDE.
7382 */
7383 int test_symlinks(void) {
7384 printf("info: testing symlink creation\n");
7385 unlink("symlink");
7386 if (-1 == symlink("file", "symlink"))
7387 printf(" error: Unable to create symlink\n");
7388 return 0;
7389 }
7390
7391 int main(int argc, char **argv) {
7392 printf("Testing POSIX/Unix sematics on file system\n");
7393 test_symlinks();
7394 test_subdirectory_creation();
7395 #ifdef TEST_SQLITE
7396 test_sqlite_open();
7397 #endif /* TEST_SQLITE */
7398 test_gcompris_locking();
7399 return 0;
7400 }
7401 </pre>
7402
7403 <p>When everything is working, it should print something like
7404 this:</p>
7405
7406 <pre>
7407 Testing POSIX/Unix sematics on file system
7408 info: testing symlink creation
7409 info: testing subdirectory creation
7410 info: sqlite worked
7411 info: testing fcntl locking
7412 Read-locking 1 byte from 1073741824
7413 Read-locking 510 byte from 1073741826
7414 Unlocking 1 byte from 1073741824
7415 Write-locking 1 byte from 1073741824
7416 Write-locking 510 byte from 1073741826
7417 Unlocking 2 byte from 1073741824
7418 </pre>
7419
7420 <p>I do not remember the exact details of the problems we saw, but one
7421 of them was with locking, where if I remember correctly, POSIX allow a
7422 read-only lock to be upgraded to a read-write lock without unlocking
7423 the read-only lock (while Windows do not). Another was a bug in the
7424 CIFS/SMB client implementation in the Linux kernel where directory
7425 meta information would be wrong for a fraction of a second, making
7426 OpenOffice.org fail to create its deep directory tree because it was
7427 not allowed to create files in its freshly created directory.</p>
7428
7429 <p>Anyway, here is a nice tool for your tool box, might you never need
7430 it. :)</p>
7431
7432 <p>Update 2010-08-27: Michael Gebetsroither report that he found the
7433 script so useful that he created a GIT repository and stored it in
7434 <a href="http://github.com/gebi/fs-test">http://github.com/gebi/fs-test</a>.</p>
7435
7436 </div>
7437 <div class="tags">
7438
7439
7440 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>.
7441
7442
7443 </div>
7444 </div>
7445 <div class="padding"></div>
7446
7447 <div class="entry">
7448 <div class="title">
7449 <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>
7450 </div>
7451 <div class="date">
7452 7th August 2010
7453 </div>
7454 <div class="body">
7455 <p>A few days ago, I
7456 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_roaming_workstation___at_the_university_of_Oslo.html">tried
7457 to install</a> a Roaming workation profile from Debian Edu/Squeeze
7458 while on the university network here at the University of Oslo, and
7459 noticed how much had to change to get it operational using the
7460 university infrastructure. It was fairly easy, but it occured to me
7461 that Debian Edu would improve a lot if I could get the client to
7462 connect without any changes at all, and thus let the client configure
7463 itself during installation and first boot to use the infrastructure
7464 around it. Now I am a huge step further along that road.</p>
7465
7466 <p>With our current squeeze-test packages, I can select the roaming
7467 workstation profile and get a working laptop connecting to the
7468 university LDAP server for user and group and our active directory
7469 servers for Kerberos authentication. All this without any
7470 configuration at all during installation. My users home directory got
7471 a bookmark in the KDE menu to mount it via SMB, with the correct URL.
7472 In short, openldap and sssd is correctly configured. In addition to
7473 this, the client look for http://wpad/wpad.dat to configure a web
7474 proxy, and when it fail to find it no proxy settings are stored in
7475 /etc/environment and /etc/apt/apt.conf. Iceweasel and KDE is
7476 configured to look for the same wpad configuration and also do not use
7477 a proxy when at the university network. If the machine is moved to a
7478 network with such wpad setup, it would automatically use it when DHCP
7479 gave it a IP address.</p>
7480
7481 <p>The LDAP server is located using DNS, by first looking for the DNS
7482 entry ldap.$domain. If this do not exist, it look for the
7483 _ldap._tcp.$domain SRV records and use the first one as the LDAP
7484 server. Next, it connects to the LDAP server and search all
7485 namingContexts entries for posixAccount or posixGroup objects, and
7486 pick the first one as the LDAP base. For Kerberos, a similar
7487 algorithm is used to locate the LDAP server, and the realm is the
7488 uppercase version of $domain.</p>
7489
7490 <p>So, what is not working, you might ask. SMB mounting my home
7491 directory do not work. No idea why, but suspected the incorrect
7492 Kerberos settings in /etc/krb5.conf and /etc/samba/smb.conf might be
7493 the cause. These are not properly configured during installation, and
7494 had to be hand-edited to get the correct Kerberos realm and server,
7495 but SMB mounting still do not work. :(</p>
7496
7497 <p>With this automatic configuration in place, I expect a Debian Edu
7498 roaming profile installation would be able to automatically detect and
7499 connect to any site using LDAP and Kerberos for NSS directory and PAM
7500 authentication. It should also work out of the box in a Active
7501 Directory environment providing posixAccount and posixGroup objects
7502 with UID and GID values.</p>
7503
7504 <p>If you want to help out with implementing these things for Debian
7505 Edu, please contact us on debian-edu@lists.debian.org.</p>
7506
7507 </div>
7508 <div class="tags">
7509
7510
7511 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>.
7512
7513
7514 </div>
7515 </div>
7516 <div class="padding"></div>
7517
7518 <div class="entry">
7519 <div class="title">
7520 <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>
7521 </div>
7522 <div class="date">
7523 3rd August 2010
7524 </div>
7525 <div class="body">
7526 <p>The new roaming workstation profile in Debian Edu/Squeeze is fairly
7527 similar to the laptop setup am I working on using Ubuntu for the
7528 University of Oslo, and just for the heck of it, I tested today how
7529 hard it would be to integrate that profile into the university
7530 infrastructure. In this case, it is the university LDAP server,
7531 Active Directory Kerberos server and SMB mounting from the Netapp file
7532 servers.</p>
7533
7534 <p>I was pleasantly surprised that the only three files needed to be
7535 changed (/etc/sssd/sssd.conf, /etc/ldap.conf and
7536 /etc/mklocaluser.d/20-debian-edu-config) and one file had to be added
7537 (/usr/share/perl5/Debian/Edu_Local.pm), to get the client working.
7538 Most of the changes were to get the client to use the university LDAP
7539 for NSS and Kerberos server for PAM, but one was to change a hard
7540 coded DNS domain name in the mklocaluser hook from .intern to
7541 .uio.no.</p>
7542
7543 <p>This testing was so encouraging, that I went ahead and adjusted the
7544 Debian Edu scripts and setup in subversion to centralise the roaming
7545 workstation setup a bit more and avoid the hardcoded DNS domain name,
7546 so that when I test this tomorrow, I expect to get away with modifying
7547 only /etc/sssd/sssd.conf and /etc/ldap.conf to get it to use the
7548 university servers.</p>
7549
7550 <p>My goal is to get the clients to have no hardcoded settings and
7551 fetch all their initial setup during installation and first boot, to
7552 allow them to be inserted also into environments where the default
7553 setup in Debian Edu has been changed or as with the university, where
7554 the environment is different but provides the protocols Debian Edu
7555 uses.</p>
7556
7557 </div>
7558 <div class="tags">
7559
7560
7561 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>.
7562
7563
7564 </div>
7565 </div>
7566 <div class="padding"></div>
7567
7568 <div class="entry">
7569 <div class="title">
7570 <a href="http://people.skolelinux.org/pere/blog/Circular_package_dependencies_harms_apt_recovery.html">Circular package dependencies harms apt recovery</a>
7571 </div>
7572 <div class="date">
7573 27th July 2010
7574 </div>
7575 <div class="body">
7576 <p>I discovered this while doing
7577 <a href="http://people.skolelinux.org/pere/blog/Automatic_upgrade_testing_from_Lenny_to_Squeeze.html">automated
7578 testing of upgrades from Debian Lenny to Squeeze</a>. A few packages
7579 in Debian still got circular dependencies, and it is often claimed
7580 that apt and aptitude should be able to handle this just fine, but
7581 some times these dependency loops causes apt to fail.</p>
7582
7583 <p>An example is from todays
7584 <a href="http://people.skolelinux.org/~pere/debian-upgrade-testing//test-20100727-lenny-squeeze-kde-aptitude.txt">upgrade
7585 of KDE using aptitude</a>. In it, a bug in kdebase-workspace-data
7586 causes perl-modules to fail to upgrade. The cause is simple. If a
7587 package fail to unpack, then only part of packages with the circular
7588 dependency might end up being unpacked when unpacking aborts, and the
7589 ones already unpacked will fail to configure in the recovery phase
7590 because its dependencies are unavailable.</p>
7591
7592 <p>In this log, the problem manifest itself with this error:</p>
7593
7594 <blockquote><pre>
7595 dpkg: dependency problems prevent configuration of perl-modules:
7596 perl-modules depends on perl (>= 5.10.1-1); however:
7597 Version of perl on system is 5.10.0-19lenny2.
7598 dpkg: error processing perl-modules (--configure):
7599 dependency problems - leaving unconfigured
7600 </pre></blockquote>
7601
7602 <p>The perl/perl-modules circular dependency is already
7603 <a href="http://bugs.debian.org/527917">reported as a bug</a>, and will
7604 hopefully be solved as soon as possible, but it is not the only one,
7605 and each one of these loops in the dependency tree can cause similar
7606 failures. Of course, they only occur when there are bugs in other
7607 packages causing the unpacking to fail, but it is rather nasty when
7608 the failure of one package causes the problem to become worse because
7609 of dependency loops.</p>
7610
7611 <p>Thanks to
7612 <a href="http://lists.debian.org/debian-devel/2010/06/msg00116.html">the
7613 tireless effort by Bill Allombert</a>, the number of circular
7614 dependencies
7615 <a href="http://debian.semistable.com/debgraph.out.html">left in Debian
7616 is dropping</a>, and perhaps it will reach zero one day. :)</p>
7617
7618 <p>Todays testing also exposed a bug in
7619 <a href="http://bugs.debian.org/590605">update-notifier</a> and
7620 <a href="http://bugs.debian.org/590604">different behaviour</a> between
7621 apt-get and aptitude, the latter possibly caused by some circular
7622 dependency. Reported both to BTS to try to get someone to look at
7623 it.</p>
7624
7625 </div>
7626 <div class="tags">
7627
7628
7629 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>.
7630
7631
7632 </div>
7633 </div>
7634 <div class="padding"></div>
7635
7636 <div class="entry">
7637 <div class="title">
7638 <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>
7639 </div>
7640 <div class="date">
7641 27th July 2010
7642 </div>
7643 <div class="body">
7644 <p>I just posted this announcement culminating several months of work
7645 with the next Debian Edu release. Not nearly done, but one major step
7646 completed.</p>
7647
7648 <blockquote>
7649 <p>This is the first test release based on Squeeze. The focus of this
7650 release is to test the user application selection. To have a look,
7651 install the standalone profile and let the developers know if the set
7652 of installed packages i.e. applications should be modified. If some
7653 user application is missing, or if there are some applications that no
7654 longer make sense to be included in Debian Edu, please let us know.
7655 Also, if a useful application is missing the translation for your
7656 language of choice, please let us know too.</p>
7657
7658 <p>In addition, feedback and help to polish the desktop (menus,
7659 artwork, starters, etc.) is appreciated. We would like to ship a nice
7660 and handy KDE4 desktop targeted for schools out of the box.</p>
7661
7662 <p>The other profiles should be installable, but there is a lot more
7663 work left to be done before they are ready, so do not expect to
7664 much.</p>
7665
7666 <p>Changes compared to the lenny based version</p>
7667
7668 <ul>
7669 <li>Everything from Debian Squeeze
7670 <ul>
7671 <li>Desktop environment KDE 4.4 => the new KDE desktop in
7672 combination with some new artwork
7673 <li>Web browser Iceweasel 3.5
7674 <li>OpenOffice.org 3.2
7675 <li>Educational toolbox GCompris 9.3
7676 <li>Music creator Rosegarden 10.04.2
7677 <li>Image editor Gimp 2.6.10
7678 <li>Virtual universe Celestia 1.6.0
7679 <li>Virtual stargazer Stellarium 0.10.4
7680 <li>3D modeler Blender 2.49.2 (new application)
7681 <li>Video editor Kdenlive 0.7.7 (new application)
7682 </ul></li>
7683 <li>Now using Kerberos for password checking (migration not finished).
7684 Enabled for:
7685 <ul>
7686 <li>PAM
7687 <li>LDAP
7688 <li>IMAP
7689 <li>SMTP (sender verification)
7690 </ul>
7691 </li>
7692 <li>New experimental roaming workstation profile for laptops.</li>
7693 <li>Show welcome page to users when they first log in. The URL is
7694 fetched from LDAP.</li>
7695 <li>New LXDE desktop option, in addition to KDE (default) and Gnome.</li>
7696 <li>General cleanup (not finished)</li>
7697 </ul>
7698 <p>The following features are not working as they should</p>
7699
7700 <ul>
7701 <li>No web based administration tool for creating users and groups. The
7702 scripts ldap-createuser-krb and ldap-add-user-to-group can be used
7703 for testing.</li>
7704 <li>DVD installs are missing debian-installer images for the PXE boot,
7705 and do not set up the PXE menu on eth0 because of this. LTSP
7706 clients should still boot from eth1 on thin client servers.</li>
7707 <li>The restructured KDE menu is not implemented.</li>
7708 <li>The LDAP server setup need to be reviewed for security.</li>
7709 <li>The LDAP directory structure need to be reworked.</li>
7710 <li>Different sets of packages are installed when using the DVD and the
7711 netinst CD. More packages are installed using the netinst CD.</li>
7712 <li>The jackd package fail to install. This is believed to be caused by
7713 some ongoing transition, and hopefully should be solved soon. The
7714 jackd1 package can be installed manually for those that need it.</li>
7715 <li>Some packages lack translations. See
7716 http://wiki.debian.org/DebianEdu/Status/Squeeze for updated status,
7717 and help out with translations.</li>
7718 </ul>
7719
7720 <p>To download this multiarch netinstall release you can use</p>
7721
7722 <ul>
7723 <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>
7724 <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>
7725 <li>rsync -avzP ftp.skolelinux.org::skolelinux-cd/squeeze-alpha/debian-edu-6.0.0+edua0-CD.iso</li>
7726 </ul>
7727 <p>To download this multiarch dvd release you can use</p>
7728
7729 <ul>
7730 <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>
7731 <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>
7732 <li>rsync -avzP ftp.skolelinux.org::skolelinux-cd/squeeze-alpha/debian-edu-6.0.0+edua0-DVD.iso</li>
7733 </ul>
7734
7735 <p>There is no source DVD available yet. It will be prepared when we
7736 get closer to the final release.</p>
7737
7738 <p>The MD5SUM of these images are</p>
7739
7740 <ul>
7741 <li>3dbf45d59f42a53518b6e3c9ec3b5eb6 debian-edu-6.0.0+edua0-CD.iso</li>
7742 <li>22f2cbfce281d1c6e478be452638675d debian-edu-6.0.0+edua0-DVD.iso</li>
7743 </ul>
7744
7745 <p>The SHA1SUM of these images are</p>
7746 <ul>
7747 <li>c53d1b69b40cf37cd27aefaf33f6f6a3821bedf0 debian-edu-6.0.0+edua0-CD.iso</li>
7748 <li>2ec29d7db676d59d32197b05c277ffe16348376c debian-edu-6.0.0+edua0-DVD.iso</li>
7749 </ul>
7750 <p>How to report bugs:
7751 http://wiki.debian.org/DebianEdu/HowTo/ReportBugsInBugzilla</p>
7752
7753 <p>Please direct replies to debian-edu@lists.debian.org</p>
7754 </blockquote>
7755
7756 </div>
7757 <div class="tags">
7758
7759
7760 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>.
7761
7762
7763 </div>
7764 </div>
7765 <div class="padding"></div>
7766
7767 <div class="entry">
7768 <div class="title">
7769 <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>
7770 </div>
7771 <div class="date">
7772 25th July 2010
7773 </div>
7774 <div class="body">
7775 <p>The last few months me and the other Debian Edu developers have
7776 been working hard to get the Debian/Squeeze based version of Debian
7777 Edu/Skolelinux into shape. This future version will use Kerberos for
7778 authentication, and services are slowly migrated to single signon,
7779 getting rid of password questions one at the time.</p>
7780
7781 <p>It will also feature a roaming workstation profile with local home
7782 directory, for laptops that are only some times on the Skolelinux
7783 network, and for this profile a shortcut is created in Gnome and KDE
7784 to gain access to the users home directory on the file server. This
7785 shortcut uses SMB at the moment, and yesterday I had time to test if
7786 SMB mounting had started working in KDE after we added the cifs-utils
7787 package. I was pleasantly surprised how well it worked.</p>
7788
7789 <p>Thanks to the recent changes to our samba configuration to get it
7790 to use Kerberos for authentication, there were no question about user
7791 password when mounting the SMB volume. A simple click on the shortcut
7792 in the KDE menu, and a window with the home directory popped
7793 up. :)</p>
7794
7795 <p>One step closer to a single signon solution out of the box in
7796 Debian Edu. We already had PAM, LDAP, IMAP and SMTP in place, and now
7797 also Samba. Next step is Cups and hopefully also NFS.</p>
7798
7799 <p>We had planned a alpha0 release of Debian Edu for today, but thanks
7800 to the autobuilder administrators for some architectures being slow to
7801 sign packages, we are still missing the fixed LTSP package we need for
7802 the release. It was uploaded three days ago with urgency=high, and if
7803 it had entered testing yesterday we would have been able to test it in
7804 time for a alpha0 release today. As the binaries for ia64 and powerpc
7805 still not uploaded to the Debian archive, we need to delay the alpha
7806 release another day.</p>
7807
7808 <p>If you want to help out with implementing Kerberos for Debian Edu,
7809 please contact us on debian-edu@lists.debian.org.</p>
7810
7811 </div>
7812 <div class="tags">
7813
7814
7815 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>.
7816
7817
7818 </div>
7819 </div>
7820 <div class="padding"></div>
7821
7822 <div class="entry">
7823 <div class="title">
7824 <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>
7825 </div>
7826 <div class="date">
7827 18th July 2010
7828 </div>
7829 <div class="body">
7830 <p>Thanks to
7831 <a href="http://feedproxy.google.com/~r/Opengeodata/~3/wUTCzDZk3lc/project-of-the-week-which-way-home">todays
7832 opengeodata blog entry</a>, I just discovered that the
7833 OpenStreetmap.org site have gotten
7834 <a href="http://nroets.dev.openstreetmap.org/demo/index.html?layers=B000FTFTT">support
7835 for calculating routes</a>. The support is still experimental and
7836 only available from the development server, until more experience is
7837 gathered on the user interface and any scalability issues.</p>
7838
7839 <p>Earlier, the routing I knew about using the OpenStreetmap.org data
7840 was provided by <a href="http://maps.cloudmade.com/">Cloudmade</a>,
7841 but having it on the main page is required to make everyone aware of
7842 the issue. I've had people reject Openstreetmap.org as a viable
7843 alternative for them because the front page lacked routing support,
7844 and I hope their needs will be catered for when routing show up on the
7845 www.openstreetmap.org front page.</p>
7846
7847 </div>
7848 <div class="tags">
7849
7850
7851 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>.
7852
7853
7854 </div>
7855 </div>
7856 <div class="padding"></div>
7857
7858 <div class="entry">
7859 <div class="title">
7860 <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>
7861 </div>
7862 <div class="date">
7863 17th July 2010
7864 </div>
7865 <div class="body">
7866 <p>This is a
7867 <a href="http://people.skolelinux.org/pere/blog/Time_for_new__LDAP_schemas_replacing_RFC_2307_.html">followup</a>
7868 on my
7869 <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
7870 work</a> on
7871 <a href="http://people.skolelinux.org/pere/blog/Combining_PowerDNS_and_ISC_DHCP_LDAP_objects.html">merging
7872 all</a> the computer related LDAP objects in Debian Edu.</p>
7873
7874 <p>As a step to try to see if it possible to merge the DNS and DHCP
7875 LDAP objects, I have had a look at how the packages pdns-backend-ldap
7876 and dhcp3-server-ldap in Debian use the LDAP server. The two
7877 implementations are quite different in how they use LDAP.</p>
7878
7879 To get this information, I started slapd with debugging enabled and
7880 dumped the debug output to a file to get the LDAP searches performed
7881 on a Debian Edu main-server. Here is a summary.
7882
7883 <p><strong>powerdns</strong></p>
7884
7885 <a href="http://www.linuxnetworks.de/doc/index.php/PowerDNS_LDAP_Backend">Clues
7886 on how to</a> set up PowerDNS to use a LDAP backend is available on
7887 the web.
7888
7889 <p>PowerDNS have two modes of operation using LDAP as its backend.
7890 One "strict" mode where the forward and reverse DNS lookups are done
7891 using the same LDAP objects, and a "tree" mode where the forward and
7892 reverse entries are in two different subtrees in LDAP with a structure
7893 based on the DNS names, as in tjener.intern and
7894 2.2.0.10.in-addr.arpa.</p>
7895
7896 <p>In tree mode, the server is set up to use a LDAP subtree as its
7897 base, and uses a "base" scoped search for the DNS name by adding
7898 "dc=tjener,dc=intern," to the base with a filter for
7899 "(associateddomain=tjener.intern)" for the forward entry and
7900 "dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa," with a filter for
7901 "(associateddomain=2.2.0.10.in-addr.arpa)" for the reverse entry. For
7902 forward entries, it is looking for attributes named dnsttl, arecord,
7903 nsrecord, cnamerecord, soarecord, ptrrecord, hinforecord, mxrecord,
7904 txtrecord, rprecord, afsdbrecord, keyrecord, aaaarecord, locrecord,
7905 srvrecord, naptrrecord, kxrecord, certrecord, dsrecord, sshfprecord,
7906 ipseckeyrecord, rrsigrecord, nsecrecord, dnskeyrecord, dhcidrecord,
7907 spfrecord and modifytimestamp. For reverse entries it is looking for
7908 the attributes dnsttl, arecord, nsrecord, cnamerecord, soarecord,
7909 ptrrecord, hinforecord, mxrecord, txtrecord, rprecord, aaaarecord,
7910 locrecord, srvrecord, naptrrecord and modifytimestamp. The equivalent
7911 ldapsearch commands could look like this:</p>
7912
7913 <blockquote><pre>
7914 ldapsearch -h ldap \
7915 -b dc=tjener,dc=intern,ou=hosts,dc=skole,dc=skolelinux,dc=no \
7916 -s base -x '(associateddomain=tjener.intern)' dNSTTL aRecord nSRecord \
7917 cNAMERecord sOARecord pTRRecord hInfoRecord mXRecord tXTRecord \
7918 rPRecord aFSDBRecord KeyRecord aAAARecord lOCRecord sRVRecord \
7919 nAPTRRecord kXRecord certRecord dSRecord sSHFPRecord iPSecKeyRecord \
7920 rRSIGRecord nSECRecord dNSKeyRecord dHCIDRecord sPFRecord modifyTimestamp
7921
7922 ldapsearch -h ldap \
7923 -b dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa,ou=hosts,dc=skole,dc=skolelinux,dc=no \
7924 -s base -x '(associateddomain=2.2.0.10.in-addr.arpa)'
7925 dnsttl, arecord, nsrecord, cnamerecord soarecord ptrrecord \
7926 hinforecord mxrecord txtrecord rprecord aaaarecord locrecord \
7927 srvrecord naptrrecord modifytimestamp
7928 </pre></blockquote>
7929
7930 <p>In Debian Edu/Lenny, the PowerDNS tree mode is used with
7931 ou=hosts,dc=skole,dc=skolelinux,dc=no as the base, and these are two
7932 example LDAP objects used there. In addition to these objects, the
7933 parent objects all th way up to ou=hosts,dc=skole,dc=skolelinux,dc=no
7934 also exist.</p>
7935
7936 <blockquote><pre>
7937 dn: dc=tjener,dc=intern,ou=hosts,dc=skole,dc=skolelinux,dc=no
7938 objectclass: top
7939 objectclass: dnsdomain
7940 objectclass: domainrelatedobject
7941 dc: tjener
7942 arecord: 10.0.2.2
7943 associateddomain: tjener.intern
7944
7945 dn: dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa,ou=hosts,dc=skole,dc=skolelinux,dc=no
7946 objectclass: top
7947 objectclass: dnsdomain2
7948 objectclass: domainrelatedobject
7949 dc: 2
7950 ptrrecord: tjener.intern
7951 associateddomain: 2.2.0.10.in-addr.arpa
7952 </pre></blockquote>
7953
7954 <p>In strict mode, the server behaves differently. When looking for
7955 forward DNS entries, it is doing a "subtree" scoped search with the
7956 same base as in the tree mode for a object with filter
7957 "(associateddomain=tjener.intern)" and requests the attributes dnsttl,
7958 arecord, nsrecord, cnamerecord, soarecord, ptrrecord, hinforecord,
7959 mxrecord, txtrecord, rprecord, aaaarecord, locrecord, srvrecord,
7960 naptrrecord and modifytimestamp. For reverse entires it also do a
7961 subtree scoped search but this time the filter is "(arecord=10.0.2.2)"
7962 and the requested attributes are associateddomain, dnsttl and
7963 modifytimestamp. In short, in strict mode the objects with ptrrecord
7964 go away, and the arecord attribute in the forward object is used
7965 instead.</p>
7966
7967 <p>The forward and reverse searches can be simulated using ldapsearch
7968 like this:</p>
7969
7970 <blockquote><pre>
7971 ldapsearch -h ldap -b ou=hosts,dc=skole,dc=skolelinux,dc=no -s sub -x \
7972 '(associateddomain=tjener.intern)' dNSTTL aRecord nSRecord \
7973 cNAMERecord sOARecord pTRRecord hInfoRecord mXRecord tXTRecord \
7974 rPRecord aFSDBRecord KeyRecord aAAARecord lOCRecord sRVRecord \
7975 nAPTRRecord kXRecord certRecord dSRecord sSHFPRecord iPSecKeyRecord \
7976 rRSIGRecord nSECRecord dNSKeyRecord dHCIDRecord sPFRecord modifyTimestamp
7977
7978 ldapsearch -h ldap -b ou=hosts,dc=skole,dc=skolelinux,dc=no -s sub -x \
7979 '(arecord=10.0.2.2)' associateddomain dnsttl modifytimestamp
7980 </pre></blockquote>
7981
7982 <p>In addition to the forward and reverse searches , there is also a
7983 search for SOA records, which behave similar to the forward and
7984 reverse lookups.</p>
7985
7986 <p>A thing to note with the PowerDNS behaviour is that it do not
7987 specify any objectclass names, and instead look for the attributes it
7988 need to generate a DNS reply. This make it able to work with any
7989 objectclass that provide the needed attributes.</p>
7990
7991 <p>The attributes are normally provided in the cosine (RFC 1274) and
7992 dnsdomain2 schemas. The latter is used for reverse entries like
7993 ptrrecord and recent DNS additions like aaaarecord and srvrecord.</p>
7994
7995 <p>In Debian Edu, we have created DNS objects using the object classes
7996 dcobject (for dc), dnsdomain or dnsdomain2 (structural, for the DNS
7997 attributes) and domainrelatedobject (for associatedDomain). The use
7998 of structural object classes make it impossible to combine these
7999 classes with the object classes used by DHCP.</p>
8000
8001 <p>There are other schemas that could be used too, for example the
8002 dnszone structural object class used by Gosa and bind-sdb for the DNS
8003 attributes combined with the domainrelatedobject object class, but in
8004 this case some unused attributes would have to be included as well
8005 (zonename and relativedomainname).</p>
8006
8007 <p>My proposal for Debian Edu would be to switch PowerDNS to strict
8008 mode and not use any of the existing objectclasses (dnsdomain,
8009 dnsdomain2 and dnszone) when one want to combine the DNS information
8010 with DHCP information, and instead create a auxiliary object class
8011 defined something like this (using the attributes defined for
8012 dnsdomain and dnsdomain2 or dnszone):</p>
8013
8014 <blockquote><pre>
8015 objectclass ( some-oid NAME 'dnsDomainAux'
8016 SUP top
8017 AUXILIARY
8018 MAY ( ARecord $ MDRecord $ MXRecord $ NSRecord $ SOARecord $ CNAMERecord $
8019 DNSTTL $ DNSClass $ PTRRecord $ HINFORecord $ MINFORecord $
8020 TXTRecord $ SIGRecord $ KEYRecord $ AAAARecord $ LOCRecord $
8021 NXTRecord $ SRVRecord $ NAPTRRecord $ KXRecord $ CERTRecord $
8022 A6Record $ DNAMERecord
8023 ))
8024 </pre></blockquote>
8025
8026 <p>This will allow any object to become a DNS entry when combined with
8027 the domainrelatedobject object class, and allow any entity to include
8028 all the attributes PowerDNS wants. I've sent an email to the PowerDNS
8029 developers asking for their view on this schema and if they are
8030 interested in providing such schema with PowerDNS, and I hope my
8031 message will be accepted into their mailing list soon.</p>
8032
8033 <p><strong>ISC dhcp</strong></p>
8034
8035 <p>The DHCP server searches for specific objectclass and requests all
8036 the object attributes, and then uses the attributes it want. This
8037 make it harder to figure out exactly what attributes are used, but
8038 thanks to the working example in Debian Edu I can at least get an idea
8039 what is needed without having to read the source code.</p>
8040
8041 <p>In the DHCP server configuration, the LDAP base to use and the
8042 search filter to use to locate the correct dhcpServer entity is
8043 stored. These are the relevant entries from
8044 /etc/dhcp3/dhcpd.conf:</p>
8045
8046 <blockquote><pre>
8047 ldap-base-dn "dc=skole,dc=skolelinux,dc=no";
8048 ldap-dhcp-server-cn "dhcp";
8049 </pre></blockquote>
8050
8051 <p>The DHCP server uses this information to nest all the DHCP
8052 configuration it need. The cn "dhcp" is located using the given LDAP
8053 base and the filter "(&(objectClass=dhcpServer)(cn=dhcp))". The
8054 search result is this entry:</p>
8055
8056 <blockquote><pre>
8057 dn: cn=dhcp,dc=skole,dc=skolelinux,dc=no
8058 cn: dhcp
8059 objectClass: top
8060 objectClass: dhcpServer
8061 dhcpServiceDN: cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
8062 </pre></blockquote>
8063
8064 <p>The content of the dhcpServiceDN attribute is next used to locate the
8065 subtree with DHCP configuration. The DHCP configuration subtree base
8066 is located using a base scope search with base "cn=DHCP
8067 Config,dc=skole,dc=skolelinux,dc=no" and filter
8068 "(&(objectClass=dhcpService)(|(dhcpPrimaryDN=cn=dhcp,dc=skole,dc=skolelinux,dc=no)(dhcpSecondaryDN=cn=dhcp,dc=skole,dc=skolelinux,dc=no)))".
8069 The search result is this entry:</p>
8070
8071 <blockquote><pre>
8072 dn: cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
8073 cn: DHCP Config
8074 objectClass: top
8075 objectClass: dhcpService
8076 objectClass: dhcpOptions
8077 dhcpPrimaryDN: cn=dhcp, dc=skole,dc=skolelinux,dc=no
8078 dhcpStatements: ddns-update-style none
8079 dhcpStatements: authoritative
8080 dhcpOption: smtp-server code 69 = array of ip-address
8081 dhcpOption: www-server code 72 = array of ip-address
8082 dhcpOption: wpad-url code 252 = text
8083 </pre></blockquote>
8084
8085 <p>Next, the entire subtree is processed, one level at the time. When
8086 all the DHCP configuration is loaded, it is ready to receive requests.
8087 The subtree in Debian Edu contain objects with object classes
8088 top/dhcpService/dhcpOptions, top/dhcpSharedNetwork/dhcpOptions,
8089 top/dhcpSubnet, top/dhcpGroup and top/dhcpHost. These provide options
8090 and information about netmasks, dynamic range etc. Leaving out the
8091 details here because it is not relevant for the focus of my
8092 investigation, which is to see if it is possible to merge dns and dhcp
8093 related computer objects.</p>
8094
8095 <p>When a DHCP request come in, LDAP is searched for the MAC address
8096 of the client (00:00:00:00:00:00 in this example), using a subtree
8097 scoped search with "cn=DHCP Config,dc=skole,dc=skolelinux,dc=no" as
8098 the base and "(&(objectClass=dhcpHost)(dhcpHWAddress=ethernet
8099 00:00:00:00:00:00))" as the filter. This is what a host object look
8100 like:</p>
8101
8102 <blockquote><pre>
8103 dn: cn=hostname,cn=group1,cn=THINCLIENTS,cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
8104 cn: hostname
8105 objectClass: top
8106 objectClass: dhcpHost
8107 dhcpHWAddress: ethernet 00:00:00:00:00:00
8108 dhcpStatements: fixed-address hostname
8109 </pre></blockquote>
8110
8111 <p>There is less flexiblity in the way LDAP searches are done here.
8112 The object classes need to have fixed names, and the configuration
8113 need to be stored in a fairly specific LDAP structure. On the
8114 positive side, the invidiual dhcpHost entires can be anywhere without
8115 the DN pointed to by the dhcpServer entries. The latter should make
8116 it possible to group all host entries in a subtree next to the
8117 configuration entries, and this subtree can also be shared with the
8118 DNS server if the schema proposed above is combined with the dhcpHost
8119 structural object class.
8120
8121 <p><strong>Conclusion</strong></p>
8122
8123 <p>The PowerDNS implementation seem to be very flexible when it come
8124 to which LDAP schemas to use. While its "tree" mode is rigid when it
8125 come to the the LDAP structure, the "strict" mode is very flexible,
8126 allowing DNS objects to be stored anywhere under the base cn specified
8127 in the configuration.</p>
8128
8129 <p>The DHCP implementation on the other hand is very inflexible, both
8130 regarding which LDAP schemas to use and which LDAP structure to use.
8131 I guess one could implement ones own schema, as long as the
8132 objectclasses and attributes have the names used, but this do not
8133 really help when the DHCP subtree need to have a fairly fixed
8134 structure.</p>
8135
8136 <p>Based on the observed behaviour, I suspect a LDAP structure like
8137 this might work for Debian Edu:</p>
8138
8139 <blockquote><pre>
8140 ou=services
8141 cn=machine-info (dhcpService) - dhcpServiceDN points here
8142 cn=dhcp (dhcpServer)
8143 cn=dhcp-internal (dhcpSharedNetwork/dhcpOptions)
8144 cn=10.0.2.0 (dhcpSubnet)
8145 cn=group1 (dhcpGroup/dhcpOptions)
8146 cn=dhcp-thinclients (dhcpSharedNetwork/dhcpOptions)
8147 cn=192.168.0.0 (dhcpSubnet)
8148 cn=group1 (dhcpGroup/dhcpOptions)
8149 ou=machines - PowerDNS base points here
8150 cn=hostname (dhcpHost/domainrelatedobject/dnsDomainAux)
8151 </pre></blockquote>
8152
8153 <P>This is not tested yet. If the DHCP server require the dhcpHost
8154 entries to be in the dhcpGroup subtrees, the entries can be stored
8155 there instead of a common machines subtree, and the PowerDNS base
8156 would have to be moved one level up to the machine-info subtree.</p>
8157
8158 <p>The combined object under the machines subtree would look something
8159 like this:</p>
8160
8161 <blockquote><pre>
8162 dn: dc=hostname,ou=machines,cn=machine-info,dc=skole,dc=skolelinux,dc=no
8163 dc: hostname
8164 objectClass: top
8165 objectClass: dhcpHost
8166 objectclass: domainrelatedobject
8167 objectclass: dnsDomainAux
8168 associateddomain: hostname.intern
8169 arecord: 10.11.12.13
8170 dhcpHWAddress: ethernet 00:00:00:00:00:00
8171 dhcpStatements: fixed-address hostname.intern
8172 </pre></blockquote>
8173
8174 </p>One could even add the LTSP configuration associated with a given
8175 machine, as long as the required attributes are available in a
8176 auxiliary object class.</p>
8177
8178 </div>
8179 <div class="tags">
8180
8181
8182 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>.
8183
8184
8185 </div>
8186 </div>
8187 <div class="padding"></div>
8188
8189 <div class="entry">
8190 <div class="title">
8191 <a href="http://people.skolelinux.org/pere/blog/Combining_PowerDNS_and_ISC_DHCP_LDAP_objects.html">Combining PowerDNS and ISC DHCP LDAP objects</a>
8192 </div>
8193 <div class="date">
8194 14th July 2010
8195 </div>
8196 <div class="body">
8197 <p>For a while now, I have wanted to find a way to change the DNS and
8198 DHCP services in Debian Edu to use the same LDAP objects for a given
8199 computer, to avoid the possibility of having a inconsistent state for
8200 a computer in LDAP (as in DHCP but no DNS entry or the other way
8201 around) and make it easier to add computers to LDAP.</p>
8202
8203 <p>I've looked at how powerdns and dhcpd is using LDAP, and using this
8204 information finally found a solution that seem to work.</p>
8205
8206 <p>The old setup required three LDAP objects for a given computer.
8207 One forward DNS entry, one reverse DNS entry and one DHCP entry. If
8208 we switch powerdns to use its strict LDAP method (ldap-method=strict
8209 in pdns-debian-edu.conf), the forward and reverse DNS entries are
8210 merged into one while making it impossible to transfer the reverse map
8211 to a slave DNS server.</p>
8212
8213 <p>If we also replace the object class used to get the DNS related
8214 attributes to one allowing these attributes to be combined with the
8215 dhcphost object class, we can merge the DNS and DHCP entries into one.
8216 I've written such object class in the dnsdomainaux.schema file (need
8217 proper OIDs, but that is a minor issue), and tested the setup. It
8218 seem to work.</p>
8219
8220 <p>With this test setup in place, we can get away with one LDAP object
8221 for both DNS and DHCP, and even the LTSP configuration I suggested in
8222 an earlier email. The combined LDAP object will look something like
8223 this:</p>
8224
8225 <blockquote><pre>
8226 dn: cn=hostname,cn=group1,cn=THINCLIENTS,cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
8227 cn: hostname
8228 objectClass: dhcphost
8229 objectclass: domainrelatedobject
8230 objectclass: dnsdomainaux
8231 associateddomain: hostname.intern
8232 arecord: 10.11.12.13
8233 dhcphwaddress: ethernet 00:00:00:00:00:00
8234 dhcpstatements: fixed-address hostname
8235 ldapconfigsound: Y
8236 </pre></blockquote>
8237
8238 <p>The DNS server uses the associateddomain and arecord entries, while
8239 the DHCP server uses the dhcphwaddress and dhcpstatements entries
8240 before asking DNS to resolve the fixed-adddress. LTSP will use
8241 dhcphwaddress or associateddomain and the ldapconfig* attributes.</p>
8242
8243 <p>I am not yet sure if I can get the DHCP server to look for its
8244 dhcphost in a different location, to allow us to put the objects
8245 outside the "DHCP Config" subtree, but hope to figure out a way to do
8246 that. If I can't figure out a way to do that, we can still get rid of
8247 the hosts subtree and move all its content into the DHCP Config tree
8248 (which probably should be renamed to be more related to the new
8249 content. I suspect cn=dnsdhcp,ou=services or something like that
8250 might be a good place to put it.</p>
8251
8252 <p>If you want to help out with implementing this for Debian Edu,
8253 please contact us on debian-edu@lists.debian.org.</p>
8254
8255 </div>
8256 <div class="tags">
8257
8258
8259 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>.
8260
8261
8262 </div>
8263 </div>
8264 <div class="padding"></div>
8265
8266 <div class="entry">
8267 <div class="title">
8268 <a href="http://people.skolelinux.org/pere/blog/Idea_for_storing_LTSP_configuration_in_LDAP.html">Idea for storing LTSP configuration in LDAP</a>
8269 </div>
8270 <div class="date">
8271 11th July 2010
8272 </div>
8273 <div class="body">
8274 <p>Vagrant mentioned on IRC today that ltsp_config now support
8275 sourcing files from /usr/share/ltsp/ltsp_config.d/ on the thin
8276 clients, and that this can be used to fetch configuration from LDAP if
8277 Debian Edu choose to store configuration there.</p>
8278
8279 <p>Armed with this information, I got inspired and wrote a test module
8280 to get configuration from LDAP. The idea is to look up the MAC
8281 address of the client in LDAP, and look for attributes on the form
8282 ltspconfigsetting=value, and use this to export SETTING=value to the
8283 LTSP clients.</p>
8284
8285 <p>The goal is to be able to store the LTSP configuration attributes
8286 in a "computer" LDAP object used by both DNS and DHCP, and thus
8287 allowing us to store all information about a computer in one place.</p>
8288
8289 <p>This is a untested draft implementation, and I welcome feedback on
8290 this approach. A real LDAP schema for the ltspClientAux objectclass
8291 need to be written. Comments, suggestions, etc?</p>
8292
8293 <blockquote><pre>
8294 # Store in /opt/ltsp/$arch/usr/share/ltsp/ltsp_config.d/ldap-config
8295 #
8296 # Fetch LTSP client settings from LDAP based on MAC address
8297 #
8298 # Uses ethernet address as stored in the dhcpHost objectclass using
8299 # the dhcpHWAddress attribute or ethernet address stored in the
8300 # ieee802Device objectclass with the macAddress attribute.
8301 #
8302 # This module is written to be schema agnostic, and only depend on the
8303 # existence of attribute names.
8304 #
8305 # The LTSP configuration variables are saved directly using a
8306 # ltspConfig prefix and uppercasing the rest of the attribute name.
8307 # To set the SERVER variable, set the ltspConfigServer attribute.
8308 #
8309 # Some LDAP schema should be created with all the relevant
8310 # configuration settings. Something like this should work:
8311 #
8312 # objectclass ( 1.1.2.2 NAME 'ltspClientAux'
8313 # SUP top
8314 # AUXILIARY
8315 # MAY ( ltspConfigServer $ ltsConfigSound $ ... )
8316
8317 LDAPSERVER=$(debian-edu-ldapserver)
8318 if [ "$LDAPSERVER" ] ; then
8319 LDAPBASE=$(debian-edu-ldapserver -b)
8320 for MAC in $(LANG=C ifconfig |grep -i hwaddr| awk '{print $5}'|sort -u) ; do
8321 filter="(|(dhcpHWAddress=ethernet $MAC)(macAddress=$MAC))"
8322 ldapsearch -h "$LDAPSERVER" -b "$LDAPBASE" -v -x "$filter" | \
8323 grep '^ltspConfig' | while read attr value ; do
8324 # Remove prefix and convert to upper case
8325 attr=$(echo $attr | sed 's/^ltspConfig//i' | tr a-z A-Z)
8326 # bass value on to clients
8327 eval "$attr=$value; export $attr"
8328 done
8329 done
8330 fi
8331 </pre></blockquote>
8332
8333 <p>I'm not sure this shell construction will work, because I suspect
8334 the while block might end up in a subshell causing the variables set
8335 there to not show up in ltsp-config, but if that is the case I am sure
8336 the code can be restructured to make sure the variables are passed on.
8337 I expect that can be solved with some testing. :)</p>
8338
8339 <p>If you want to help out with implementing this for Debian Edu,
8340 please contact us on debian-edu@lists.debian.org.</p>
8341
8342 <p>Update 2010-07-17: I am aware of another effort to store LTSP
8343 configuration in LDAP that was created around year 2000 by
8344 <a href="http://www.pcxperience.com/thinclient/documentation/ldap.html">PC
8345 Xperience, Inc., 2000</a>. I found its
8346 <a href="http://people.redhat.com/alikins/ltsp/ldap/">files</a> on a
8347 personal home page over at redhat.com.</p>
8348
8349 </div>
8350 <div class="tags">
8351
8352
8353 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>.
8354
8355
8356 </div>
8357 </div>
8358 <div class="padding"></div>
8359
8360 <div class="entry">
8361 <div class="title">
8362 <a href="http://people.skolelinux.org/pere/blog/jXplorer__a_very_nice_LDAP_GUI.html">jXplorer, a very nice LDAP GUI</a>
8363 </div>
8364 <div class="date">
8365 9th July 2010
8366 </div>
8367 <div class="body">
8368 <p>Since
8369 <a href="http://people.skolelinux.org/pere/blog/LUMA__a_very_nice_LDAP_GUI.html">my
8370 last post</a> about available LDAP tools in Debian, I was told about a
8371 LDAP GUI that is even better than luma. The java application
8372 <a href="http://jxplorer.org/">jXplorer</a> is claimed to be capable of
8373 moving LDAP objects and subtrees using drag-and-drop, and can
8374 authenticate using Kerberos. I have only tested the Kerberos
8375 authentication, but do not have a LDAP setup allowing me to rewrite
8376 LDAP with my test user yet. It is
8377 <a href="http://packages.qa.debian.org/j/jxplorer.html">available in
8378 Debian</a> testing and unstable at the moment. The only problem I
8379 have with it is how it handle errors. If something go wrong, its
8380 non-intuitive behaviour require me to go through some query work list
8381 and remove the failing query. Nothing big, but very annoying.</p>
8382
8383 </div>
8384 <div class="tags">
8385
8386
8387 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>.
8388
8389
8390 </div>
8391 </div>
8392 <div class="padding"></div>
8393
8394 <div class="entry">
8395 <div class="title">
8396 <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>
8397 </div>
8398 <div class="date">
8399 3rd July 2010
8400 </div>
8401 <div class="body">
8402 <p>Here is a short update on my <a
8403 href="http://people.skolelinux.org/~pere/debian-upgrade-testing/">my
8404 Debian Lenny->Squeeze upgrade testing</a>. Here is a summary of the
8405 difference for Gnome when it is upgraded by apt-get and aptitude. I'm
8406 not reporting the status for KDE, because the upgrade crashes when
8407 aptitude try because of missing conflicts
8408 (<a href="http://bugs.debian.org/584861">#584861</a> and
8409 <a href="http://bugs.debian.org/585716">#585716</a>).</p>
8410
8411 <p>At the end of the upgrade test script, dpkg -l is executed to get a
8412 complete list of the installed packages. Based on this I see these
8413 differences when I did a test run today. As usual, I do not really
8414 know what the correct set of packages would be, but thought it best to
8415 publish the difference.</p>
8416
8417 <p>Installed using apt-get, missing with aptitude</p>
8418
8419 <blockquote><p>
8420 at-spi cpp-4.3 finger gnome-spell gstreamer0.10-gnomevfs
8421 libatspi1.0-0 libcupsys2 libeel2-data libgail-common libgdl-1-common
8422 libgnomeprint2.2-data libgnomeprintui2.2-common libgnomevfs2-bin
8423 libgtksourceview-common libpt-1.10.10-plugins-alsa
8424 libpt-1.10.10-plugins-v4l libservlet2.4-java libxalan2-java
8425 libxerces2-java openoffice.org-writer2latex openssl-blacklist p7zip
8426 python-4suite-xml python-eggtrayicon python-gtkhtml2
8427 python-gtkmozembed svgalibg1 xserver-xephyr zip
8428 </p></blockquote>
8429
8430 <p>Installed using apt-get, removed with aptitude</p>
8431
8432 <blockquote><p>
8433 bluez-utils dhcdbd djvulibre-desktop epiphany-gecko
8434 gnome-app-install gnome-mount gnome-vfs-obexftp gnome-volume-manager
8435 libao2 libavahi-compat-libdnssd1 libavahi-core5 libbind9-50
8436 libbluetooth2 libcamel1.2-11 libcdio7 libcucul0 libcurl3
8437 libdirectfb-1.0-0 libdvdread3 libedata-cal1.2-6 libedataserver1.2-9
8438 libeel2-2.20 libepc-1.0-1 libepc-ui-1.0-1 libexchange-storage1.2-3
8439 libfaad0 libgd2-noxpm libgda3-3 libgda3-common libggz2 libggzcore9
8440 libggzmod4 libgksu1.2-0 libgksuui1.0-1 libgmyth0 libgnome-desktop-2
8441 libgnome-pilot2 libgnomecups1.0-1 libgnomeprint2.2-0
8442 libgnomeprintui2.2-0 libgpod3 libgraphviz4 libgtkhtml2-0
8443 libgtksourceview1.0-0 libgucharmap6 libhesiod0 libicu38 libisccc50
8444 libisccfg50 libiw29 libkpathsea4 libltdl3 liblwres50 libmagick++10
8445 libmagick10 libmalaga7 libmtp7 libmysqlclient15off libnautilus-burn4
8446 libneon27 libnm-glib0 libnm-util0 libopal-2.2 libosp5
8447 libparted1.8-10 libpisock9 libpisync1 libpoppler-glib3 libpoppler3
8448 libpt-1.10.10 libraw1394-8 libsensors3 libsmbios2 libsoup2.2-8
8449 libssh2-1 libsuitesparse-3.1.0 libswfdec-0.6-90 libtalloc1
8450 libtotem-plparser10 libtrackerclient0 libvoikko1 libxalan2-java-gcj
8451 libxerces2-java-gcj libxklavier12 libxtrap6 libxxf86misc1 libzephyr3
8452 mysql-common swfdec-gnome totem-gstreamer wodim
8453 </p></blockquote>
8454
8455 <p>Installed using aptitude, missing with apt-get</p>
8456
8457 <blockquote><p>
8458 gnome gnome-desktop-environment hamster-applet python-gnomeapplet
8459 python-gnomekeyring python-wnck rhythmbox-plugins xorg
8460 xserver-xorg-input-all xserver-xorg-input-evdev
8461 xserver-xorg-input-kbd xserver-xorg-input-mouse
8462 xserver-xorg-input-synaptics xserver-xorg-video-all
8463 xserver-xorg-video-apm xserver-xorg-video-ark xserver-xorg-video-ati
8464 xserver-xorg-video-chips xserver-xorg-video-cirrus
8465 xserver-xorg-video-dummy xserver-xorg-video-fbdev
8466 xserver-xorg-video-glint xserver-xorg-video-i128
8467 xserver-xorg-video-i740 xserver-xorg-video-mach64
8468 xserver-xorg-video-mga xserver-xorg-video-neomagic
8469 xserver-xorg-video-nouveau xserver-xorg-video-nv
8470 xserver-xorg-video-r128 xserver-xorg-video-radeon
8471 xserver-xorg-video-radeonhd xserver-xorg-video-rendition
8472 xserver-xorg-video-s3 xserver-xorg-video-s3virge
8473 xserver-xorg-video-savage xserver-xorg-video-siliconmotion
8474 xserver-xorg-video-sis xserver-xorg-video-sisusb
8475 xserver-xorg-video-tdfx xserver-xorg-video-tga
8476 xserver-xorg-video-trident xserver-xorg-video-tseng
8477 xserver-xorg-video-vesa xserver-xorg-video-vmware
8478 xserver-xorg-video-voodoo
8479 </p></blockquote>
8480
8481 <p>Installed using aptitude, removed with apt-get</p>
8482
8483 <blockquote><p>
8484 deskbar-applet xserver-xorg xserver-xorg-core
8485 xserver-xorg-input-wacom xserver-xorg-video-intel
8486 xserver-xorg-video-openchrome
8487 </p></blockquote>
8488
8489 <p>I was told on IRC that the xorg-xserver package was
8490 <a href="http://git.debian.org/?p=pkg-xorg/xserver/xorg-server.git;a=commit;h=9c8080d06c457932d3bfec021c69ac000aa60120">changed
8491 in git</a> today to try to get apt-get to not remove xorg completely.
8492 No idea when it hits Squeeze, but when it does I hope it will reduce
8493 the difference somewhat.
8494
8495 </div>
8496 <div class="tags">
8497
8498
8499 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>.
8500
8501
8502 </div>
8503 </div>
8504 <div class="padding"></div>
8505
8506 <div class="entry">
8507 <div class="title">
8508 <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>
8509 </div>
8510 <div class="date">
8511 1st July 2010
8512 </div>
8513 <div class="body">
8514 <p>For a laptop, centralized user directories and password checking is
8515 a bit troubling. Laptops are typically used also when not connected
8516 to the network, and it is vital for a user to be able to log in or
8517 unlock the screen saver also when a central server is unavailable.
8518 This is possible by caching passwords and directory information (user
8519 and group attributes) locally, and the packages to do so are available
8520 in Debian. Here follow two recipes to set this up in Debian/Squeeze.
8521 It is also possible to set up in Debian/Lenny, but require more manual
8522 setup there because pam-auth-update is missing in Lenny.</p>
8523
8524 <h2>LDAP/Kerberos + nscd + libpam-ccreds + libpam-mklocaluser/pam_mkhomedir</h2>
8525
8526 This is the traditional method with a twist. The password caching is
8527 provided by libpam-ccreds (version 10-4 or later is needed on
8528 Squeeze), and the directory caching is done by nscd. The directory
8529 lookup and password checking is done using LDAP. If one want to use
8530 Kerberos for password checking the libpam-ldapd package can be
8531 replaced with libpam-krb5 or libpam-heimdal. If one is happy having a
8532 local home directory with the path listed in LDAP, one can use the
8533 pam_mkhomedir module from pam-modules to make this happen instead of
8534 using libpam-mklocaluser. A setup for pam-auth-update to enable
8535 pam_mkhomedir will have to be written until a fix for
8536 <a href="http://bugs.debian.org/568577">bug #568577</a> is in the
8537 archive. Because I believe it is a bad idea to have local home
8538 directories using misleading paths like /site/server/partition/, I
8539 prefer to create a local user with the home directory in /home/. This
8540 is done using the libpam-mklocaluser package.</p>
8541
8542 <p>These packages need to be installed and configured</p>
8543
8544 <blockquote><pre>
8545 libnss-ldapd libpam-ldapd nscd libpam-ccreds libpam-mklocaluser
8546 </pre></blockquote>
8547
8548 <p>The ldapd packages will ask for LDAP connection information, and
8549 one have to fill in the values that fits ones own site. Make sure the
8550 PAM part uses encrypted connections, to make sure the password is not
8551 sent in clear text to the LDAP server. I've been unable to get TLS
8552 certificate checking for a self signed certificate working, which make
8553 LDAP authentication unsafe for Debian Edu (nslcd is not checking if it
8554 is talking to the correct LDAP server), and very much welcome feedback
8555 on how to get this working.</p>
8556
8557 <p>Because nscd do not have a default configuration fit for offline
8558 caching until <a href="http://bugs.debian.org/485282">bug #485282</a>
8559 is fixed, this configuration should be used instead of the one
8560 currently in /etc/nscd.conf. The changes are in the fields
8561 reload-count and positive-time-to-live, and is based on the
8562 instructions I found in the
8563 <a href="http://www.flyn.org/laptopldap/">LDAP for Mobile Laptops</a>
8564 instructions by Flyn Computing.</p>
8565
8566 <blockquote><pre>
8567 debug-level 0
8568 reload-count unlimited
8569 paranoia no
8570
8571 enable-cache passwd yes
8572 positive-time-to-live passwd 2592000
8573 negative-time-to-live passwd 20
8574 suggested-size passwd 211
8575 check-files passwd yes
8576 persistent passwd yes
8577 shared passwd yes
8578 max-db-size passwd 33554432
8579 auto-propagate passwd yes
8580
8581 enable-cache group yes
8582 positive-time-to-live group 2592000
8583 negative-time-to-live group 20
8584 suggested-size group 211
8585 check-files group yes
8586 persistent group yes
8587 shared group yes
8588 max-db-size group 33554432
8589 auto-propagate group yes
8590
8591 enable-cache hosts no
8592 positive-time-to-live hosts 2592000
8593 negative-time-to-live hosts 20
8594 suggested-size hosts 211
8595 check-files hosts yes
8596 persistent hosts yes
8597 shared hosts yes
8598 max-db-size hosts 33554432
8599
8600 enable-cache services yes
8601 positive-time-to-live services 2592000
8602 negative-time-to-live services 20
8603 suggested-size services 211
8604 check-files services yes
8605 persistent services yes
8606 shared services yes
8607 max-db-size services 33554432
8608 </pre></blockquote>
8609
8610 <p>While we wait for a mechanism to update /etc/nsswitch.conf
8611 automatically like the one provided in
8612 <a href="http://bugs.debian.org/496915">bug #496915</a>, the file
8613 content need to be manually replaced to ensure LDAP is used as the
8614 directory service on the machine. /etc/nsswitch.conf should normally
8615 look like this:</p>
8616
8617 <blockquote><pre>
8618 passwd: files ldap
8619 group: files ldap
8620 shadow: files ldap
8621 hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
8622 networks: files
8623 protocols: files
8624 services: files
8625 ethers: files
8626 rpc: files
8627 netgroup: files ldap
8628 </pre></blockquote>
8629
8630 <p>The important parts are that ldap is listed last for passwd, group,
8631 shadow and netgroup.</p>
8632
8633 <p>With these changes in place, any user in LDAP will be able to log
8634 in locally on the machine using for example kdm, get a local home
8635 directory created and have the password as well as user and group
8636 attributes cached.
8637
8638 <h2>LDAP/Kerberos + nss-updatedb + libpam-ccreds +
8639 libpam-mklocaluser/pam_mkhomedir</h2>
8640
8641 <p>Because nscd have had its share of problems, and seem to have
8642 problems doing proper caching, I've seen suggestions and recipes to
8643 use nss-updatedb to copy parts of the LDAP database locally when the
8644 LDAP database is available. I have not tested such setup, because I
8645 discovered sssd.</p>
8646
8647 <h2>LDAP/Kerberos + sssd + libpam-mklocaluser</h2>
8648
8649 <p>A more flexible and robust setup than the nscd combination
8650 mentioned earlier that has shown up recently, is the
8651 <a href="https://fedorahosted.org/sssd/">sssd</a> package from Redhat.
8652 It is part of the <a href="http://www.freeipa.org/">FreeIPA</A> project
8653 to provide a Active Directory like directory service for Linux
8654 machines. The sssd system combines the caching of passwords and user
8655 information into one package, and remove the need for nscd and
8656 libpam-ccreds. It support LDAP and Kerberos, but not NIS. Version
8657 1.2 do not support netgroups, but it is said that it will support this
8658 in version 1.5 expected to show up later in 2010. Because the
8659 <a href="http://packages.qa.debian.org/s/sssd.html">sssd package</a>
8660 was missing in Debian, I ended up co-maintaining it with Werner, and
8661 version 1.2 is now in testing.
8662
8663 <p>These packages need to be installed and configured to get the
8664 roaming setup I want</p>
8665
8666 <blockquote><pre>
8667 libpam-sss libnss-sss libpam-mklocaluser
8668 </pre></blockquote>
8669
8670 The complete setup of sssd is done by editing/creating
8671 <tt>/etc/sssd/sssd.conf</tt>.
8672
8673 <blockquote><pre>
8674 [sssd]
8675 config_file_version = 2
8676 reconnection_retries = 3
8677 sbus_timeout = 30
8678 services = nss, pam
8679 domains = INTERN
8680
8681 [nss]
8682 filter_groups = root
8683 filter_users = root
8684 reconnection_retries = 3
8685
8686 [pam]
8687 reconnection_retries = 3
8688
8689 [domain/INTERN]
8690 enumerate = false
8691 cache_credentials = true
8692
8693 id_provider = ldap
8694 auth_provider = ldap
8695 chpass_provider = ldap
8696
8697 ldap_uri = ldap://ldap
8698 ldap_search_base = dc=skole,dc=skolelinux,dc=no
8699 ldap_tls_reqcert = never
8700 ldap_tls_cacert = /etc/ssl/certs/ca-certificates.crt
8701 </pre></blockquote>
8702
8703 <p>I got the same problem here with certificate checking. Had to set
8704 "ldap_tls_reqcert = never" to get it working.</p>
8705
8706 <p>With the libnss-sss package in testing at the moment, the
8707 nsswitch.conf file is update automatically, so there is no need to
8708 modify it manually.</p>
8709
8710 <p>If you want to help out with implementing this for Debian Edu,
8711 please contact us on debian-edu@lists.debian.org.</p>
8712
8713 </div>
8714 <div class="tags">
8715
8716
8717 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>.
8718
8719
8720 </div>
8721 </div>
8722 <div class="padding"></div>
8723
8724 <div class="entry">
8725 <div class="title">
8726 <a href="http://people.skolelinux.org/pere/blog/LUMA__a_very_nice_LDAP_GUI.html">LUMA, a very nice LDAP GUI</a>
8727 </div>
8728 <div class="date">
8729 28th June 2010
8730 </div>
8731 <div class="body">
8732 <p>The last few days I have been looking into the status of the LDAP
8733 directory in Debian Edu, and in the process I started to miss a GUI
8734 tool to browse the LDAP tree. The only one I was able to find in
8735 Debian/Squeeze and Lenny is
8736 <a href="http://luma.sourceforge.net/">LUMA</a>, which has proved to
8737 be a great tool to get a overview of the current LDAP directory
8738 populated by default in Skolelinux. Thanks to it, I have been able to
8739 find empty and obsolete subtrees, misplaced objects and duplicate
8740 objects. It will be installed by default in Debian/Squeeze. If you
8741 are working with LDAP, give it a go. :)</p>
8742
8743 <p>I did notice one problem with it I have not had time to report to
8744 the BTS yet. There is no .desktop file in the package, so the tool do
8745 not show up in the Gnome and KDE menus, but only deep down in in the
8746 Debian submenu in KDE. I hope that can be fixed before Squeeze is
8747 released.</p>
8748
8749 <p>I have not yet been able to get it to modify the tree yet. I would
8750 like to move objects and remove subtrees directly in the GUI, but have
8751 not found a way to do that with LUMA yet. So in the mean time, I use
8752 <a href="http://www.lichteblau.com/ldapvi/">ldapvi</a> for that.</p>
8753
8754 <p>If you have tips on other GUI tools for LDAP that might be useful
8755 in Debian Edu, please contact us on debian-edu@lists.debian.org.</p>
8756
8757 <p>Update 2010-06-29: Ross Reedstrom tipped us about the
8758 <a href="http://packages.qa.debian.org/g/gq.html">gq</a> package as a
8759 useful GUI alternative. It seem like a good tool, but is unmaintained
8760 in Debian and got a RC bug keeping it out of Squeeze. Unless that
8761 changes, it will not be an option for Debian Edu based on Squeeze.</p>
8762
8763 </div>
8764 <div class="tags">
8765
8766
8767 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>.
8768
8769
8770 </div>
8771 </div>
8772 <div class="padding"></div>
8773
8774 <div class="entry">
8775 <div class="title">
8776 <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>
8777 </div>
8778 <div class="date">
8779 24th June 2010
8780 </div>
8781 <div class="body">
8782 <p>A while back, I
8783 <a href="http://people.skolelinux.org/pere/blog/Time_for_new__LDAP_schemas_replacing_RFC_2307_.html">complained
8784 about the fact</a> that it is not possible with the provided schemas
8785 for storing DNS and DHCP information in LDAP to combine the two sets
8786 of information into one LDAP object representing a computer.</p>
8787
8788 <p>In the mean time, I discovered that a simple fix would be to make
8789 the dhcpHost object class auxiliary, to allow it to be combined with
8790 the dNSDomain object class, and thus forming one object for one
8791 computer when storing both DHCP and DNS information in LDAP.</p>
8792
8793 <p>If I understand this correctly, it is not safe to do this change
8794 without also changing the assigned number for the object class, and I
8795 do not know enough about LDAP schema design to do that properly for
8796 Debian Edu.</p>
8797
8798 <p>Anyway, for future reference, this is how I believe we could change
8799 the
8800 <a href="http://tools.ietf.org/html/draft-ietf-dhc-ldap-schema-00">DHCP
8801 schema</a> to solve at least part of the problem with the LDAP schemas
8802 available today from IETF.</p>
8803
8804 <pre>
8805 --- dhcp.schema (revision 65192)
8806 +++ dhcp.schema (working copy)
8807 @@ -376,7 +376,7 @@
8808 objectclass ( 2.16.840.1.113719.1.203.6.6
8809 NAME 'dhcpHost'
8810 DESC 'This represents information about a particular client'
8811 - SUP top
8812 + SUP top AUXILIARY
8813 MUST cn
8814 MAY (dhcpLeaseDN $ dhcpHWAddress $ dhcpOptionsDN $ dhcpStatements $ dhcpComments $ dhcpOption)
8815 X-NDS_CONTAINMENT ('dhcpService' 'dhcpSubnet' 'dhcpGroup') )
8816 </pre>
8817
8818 <p>I very much welcome clues on how to do this properly for Debian
8819 Edu/Squeeze. We provide the DHCP schema in our debian-edu-config
8820 package, and should thus be free to rewrite it as we see fit.</p>
8821
8822 <p>If you want to help out with implementing this for Debian Edu,
8823 please contact us on debian-edu@lists.debian.org.</p>
8824
8825 </div>
8826 <div class="tags">
8827
8828
8829 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>.
8830
8831
8832 </div>
8833 </div>
8834 <div class="padding"></div>
8835
8836 <div class="entry">
8837 <div class="title">
8838 <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>
8839 </div>
8840 <div class="date">
8841 16th June 2010
8842 </div>
8843 <div class="body">
8844 <p>A few times I have had the need to simulate the way tasksel
8845 installs packages during the normal debian-installer run. Until now,
8846 I have ended up letting tasksel do the work, with the annoying problem
8847 of not getting any feedback at all when something fails (like a
8848 conffile question from dpkg or a download that fails), using code like
8849 this:
8850
8851 <blockquote><pre>
8852 export DEBIAN_FRONTEND=noninteractive
8853 tasksel --new-install
8854 </pre></blockquote>
8855
8856 This would invoke tasksel, let its automatic task selection pick the
8857 tasks to install, and continue to install the requested tasks without
8858 any output what so ever.
8859
8860 Recently I revisited this problem while working on the automatic
8861 package upgrade testing, because tasksel would some times hang without
8862 any useful feedback, and I want to see what is going on when it
8863 happen. Then it occured to me, I can parse the output from tasksel
8864 when asked to run in test mode, and use that aptitude command line
8865 printed by tasksel then to simulate the tasksel run. I ended up using
8866 code like this:
8867
8868 <blockquote><pre>
8869 export DEBIAN_FRONTEND=noninteractive
8870 cmd="$(in_target tasksel -t --new-install | sed 's/debconf-apt-progress -- //')"
8871 $cmd
8872 </pre></blockquote>
8873
8874 <p>The content of $cmd is typically something like "<tt>aptitude -q
8875 --without-recommends -o APT::Install-Recommends=no -y install
8876 ~t^desktop$ ~t^gnome-desktop$ ~t^laptop$ ~pstandard ~prequired
8877 ~pimportant</tt>", which will install the gnome desktop task, the
8878 laptop task and all packages with priority standard , required and
8879 important, just like tasksel would have done it during
8880 installation.</p>
8881
8882 <p>A better approach is probably to extend tasksel to be able to
8883 install packages without using debconf-apt-progress, for use cases
8884 like this.</p>
8885
8886 </div>
8887 <div class="tags">
8888
8889
8890 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>.
8891
8892
8893 </div>
8894 </div>
8895 <div class="padding"></div>
8896
8897 <div class="entry">
8898 <div class="title">
8899 <a href="http://people.skolelinux.org/pere/blog/Officeshots_taking_shape.html">Officeshots taking shape</a>
8900 </div>
8901 <div class="date">
8902 13th June 2010
8903 </div>
8904 <div class="body">
8905 <p>For those of us caring about document exchange and
8906 interoperability, <a href="http://www.officeshots.org/">OfficeShots</a>
8907 is a great service. It is to ODF documents what
8908 <a href="http://browsershots.org/">BrowserShots</a> is for web
8909 pages.</p>
8910
8911 <p>A while back, I was contacted by Knut Yrvin at the part of Nokia
8912 that used to be Trolltech, who wanted to help the OfficeShots project
8913 and wondered if the University of Oslo where I work would be
8914 interested in supporting the project. I helped him to navigate his
8915 request to the right people at work, and his request was answered with
8916 a spot in the machine room with power and network connected, and Knut
8917 arranged funding for a machine to fill the spot. The machine is
8918 administrated by the OfficeShots people, so I do not have daily
8919 contact with its progress, and thus from time to time check back to
8920 see how the project is doing.</p>
8921
8922 <p>Today I had a look, and was happy to see that the Dell box in our
8923 machine room now is the host for several virtual machines running as
8924 OfficeShots factories, and the project is able to render ODF documents
8925 in 17 different document processing implementation on Linux and
8926 Windows. This is great.</p>
8927
8928 </div>
8929 <div class="tags">
8930
8931
8932 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>.
8933
8934
8935 </div>
8936 </div>
8937 <div class="padding"></div>
8938
8939 <div class="entry">
8940 <div class="title">
8941 <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>
8942 </div>
8943 <div class="date">
8944 13th June 2010
8945 </div>
8946 <div class="body">
8947 <p>My
8948 <a href="http://people.skolelinux.org/pere/blog/Automatic_upgrade_testing_from_Lenny_to_Squeeze.html">testing
8949 of Debian upgrades</a> from Lenny to Squeeze continues, and I've
8950 finally made the upgrade logs available from
8951 <a href="http://people.skolelinux.org/pere/debian-upgrade-testing/">http://people.skolelinux.org/pere/debian-upgrade-testing/</a>.
8952 I am now testing dist-upgrade of Gnome and KDE in a chroot using both
8953 apt and aptitude, and found their differences interesting. This time
8954 I will only focus on their removal plans.</p>
8955
8956 <p>After installing a Gnome desktop and the laptop task, apt-get wants
8957 to remove 72 packages when dist-upgrading from Lenny to Squeeze. The
8958 surprising part is that it want to remove xorg and all
8959 xserver-xorg-video* drivers. Clearly not a good choice, but I am not
8960 sure why. When asking aptitude to do the same, it want to remove 129
8961 packages, but most of them are library packages I suspect are no
8962 longer needed. Both of them want to remove bluetooth packages, which
8963 I do not know. Perhaps these bluetooth packages are obsolete?</p>
8964
8965 <p>For KDE, apt-get want to remove 82 packages, among them kdebase
8966 which seem like a bad idea and xorg the same way as with Gnome. Asking
8967 aptitude for the same, it wants to remove 192 packages, none which are
8968 too surprising.</p>
8969
8970 <p>I guess the removal of xorg during upgrades should be investigated
8971 and avoided, and perhaps others as well. Here are the complete list
8972 of planned removals. The complete logs is available from the URL
8973 above. Note if you want to repeat these tests, that the upgrade test
8974 for kde+apt-get hung in the tasksel setup because of dpkg asking
8975 conffile questions. No idea why. I worked around it by using
8976 '<tt>echo >> /proc/<em>pidofdpkg</em>/fd/0</tt>' to tell dpkg to
8977 continue.</p>
8978
8979 <p><b>apt-get gnome 72</b>
8980 <br>bluez-gnome cupsddk-drivers deskbar-applet gnome
8981 gnome-desktop-environment gnome-network-admin gtkhtml3.14
8982 iceweasel-gnome-support libavcodec51 libdatrie0 libgdl-1-0
8983 libgnomekbd2 libgnomekbdui2 libmetacity0 libslab0 libxcb-xlib0
8984 nautilus-cd-burner python-gnome2-desktop python-gnome2-extras
8985 serpentine swfdec-mozilla update-manager xorg xserver-xorg
8986 xserver-xorg-core xserver-xorg-input-all xserver-xorg-input-evdev
8987 xserver-xorg-input-kbd xserver-xorg-input-mouse
8988 xserver-xorg-input-synaptics xserver-xorg-input-wacom
8989 xserver-xorg-video-all xserver-xorg-video-apm xserver-xorg-video-ark
8990 xserver-xorg-video-ati xserver-xorg-video-chips
8991 xserver-xorg-video-cirrus xserver-xorg-video-cyrix
8992 xserver-xorg-video-dummy xserver-xorg-video-fbdev
8993 xserver-xorg-video-glint xserver-xorg-video-i128
8994 xserver-xorg-video-i740 xserver-xorg-video-imstt
8995 xserver-xorg-video-intel xserver-xorg-video-mach64
8996 xserver-xorg-video-mga xserver-xorg-video-neomagic
8997 xserver-xorg-video-nsc xserver-xorg-video-nv
8998 xserver-xorg-video-openchrome xserver-xorg-video-r128
8999 xserver-xorg-video-radeon xserver-xorg-video-radeonhd
9000 xserver-xorg-video-rendition xserver-xorg-video-s3
9001 xserver-xorg-video-s3virge xserver-xorg-video-savage
9002 xserver-xorg-video-siliconmotion xserver-xorg-video-sis
9003 xserver-xorg-video-sisusb xserver-xorg-video-tdfx
9004 xserver-xorg-video-tga xserver-xorg-video-trident
9005 xserver-xorg-video-tseng xserver-xorg-video-v4l
9006 xserver-xorg-video-vesa xserver-xorg-video-vga
9007 xserver-xorg-video-vmware xserver-xorg-video-voodoo xulrunner-1.9
9008 xulrunner-1.9-gnome-support</p>
9009
9010 <p><b>aptitude gnome 129</b>
9011
9012 <br>bluez-gnome bluez-utils cpp-4.3 cupsddk-drivers dhcdbd
9013 djvulibre-desktop finger gnome-app-install gnome-mount
9014 gnome-network-admin gnome-spell gnome-vfs-obexftp
9015 gnome-volume-manager gstreamer0.10-gnomevfs gtkhtml3.14 libao2
9016 libavahi-compat-libdnssd1 libavahi-core5 libavcodec51 libbluetooth2
9017 libcamel1.2-11 libcdio7 libcucul0 libcupsys2 libcurl3 libdatrie0
9018 libdirectfb-1.0-0 libdvdread3 libedataserver1.2-9 libeel2-2.20
9019 libeel2-data libepc-1.0-1 libepc-ui-1.0-1 libfaad0 libgail-common
9020 libgd2-noxpm libgda3-3 libgda3-common libgdl-1-0 libgdl-1-common
9021 libggz2 libggzcore9 libggzmod4 libgksu1.2-0 libgksuui1.0-1 libgmyth0
9022 libgnomecups1.0-1 libgnomekbd2 libgnomekbdui2 libgnomeprint2.2-0
9023 libgnomeprint2.2-data libgnomeprintui2.2-0 libgnomeprintui2.2-common
9024 libgnomevfs2-bin libgpod3 libgraphviz4 libgtkhtml2-0
9025 libgtksourceview-common libgtksourceview1.0-0 libgucharmap6
9026 libhesiod0 libicu38 libiw29 libkpathsea4 libltdl3 libmagick++10
9027 libmagick10 libmalaga7 libmetacity0 libmtp7 libmysqlclient15off
9028 libnautilus-burn4 libneon27 libnm-glib0 libnm-util0 libopal-2.2
9029 libosp5 libparted1.8-10 libpoppler-glib3 libpoppler3 libpt-1.10.10
9030 libpt-1.10.10-plugins-alsa libpt-1.10.10-plugins-v4l libraw1394-8
9031 libsensors3 libslab0 libsmbios2 libsoup2.2-8 libssh2-1
9032 libsuitesparse-3.1.0 libswfdec-0.6-90 libtalloc1 libtotem-plparser10
9033 libtrackerclient0 libxalan2-java libxalan2-java-gcj libxcb-xlib0
9034 libxerces2-java libxerces2-java-gcj libxklavier12 libxtrap6
9035 libxxf86misc1 libzephyr3 mysql-common nautilus-cd-burner
9036 openoffice.org-writer2latex openssl-blacklist p7zip
9037 python-4suite-xml python-eggtrayicon python-gnome2-desktop
9038 python-gnome2-extras python-gtkhtml2 python-gtkmozembed
9039 python-numeric python-sexy serpentine svgalibg1 swfdec-gnome
9040 swfdec-mozilla totem-gstreamer update-manager wodim
9041 xserver-xorg-video-cyrix xserver-xorg-video-imstt
9042 xserver-xorg-video-nsc xserver-xorg-video-v4l xserver-xorg-video-vga
9043 zip</p>
9044
9045 <p><b>apt-get kde 82</b>
9046
9047 <br>cupsddk-drivers karm kaudiocreator kcoloredit kcontrol kde kde-core
9048 kdeaddons kdeartwork kdebase kdebase-bin kdebase-bin-kde3
9049 kdebase-kio-plugins kdesktop kdeutils khelpcenter kicker
9050 kicker-applets knewsticker kolourpaint konq-plugins konqueror korn
9051 kpersonalizer kscreensaver ksplash libavcodec51 libdatrie0 libkiten1
9052 libxcb-xlib0 quanta superkaramba texlive-base-bin xorg xserver-xorg
9053 xserver-xorg-core xserver-xorg-input-all xserver-xorg-input-evdev
9054 xserver-xorg-input-kbd xserver-xorg-input-mouse
9055 xserver-xorg-input-synaptics xserver-xorg-input-wacom
9056 xserver-xorg-video-all xserver-xorg-video-apm xserver-xorg-video-ark
9057 xserver-xorg-video-ati xserver-xorg-video-chips
9058 xserver-xorg-video-cirrus xserver-xorg-video-cyrix
9059 xserver-xorg-video-dummy xserver-xorg-video-fbdev
9060 xserver-xorg-video-glint xserver-xorg-video-i128
9061 xserver-xorg-video-i740 xserver-xorg-video-imstt
9062 xserver-xorg-video-intel xserver-xorg-video-mach64
9063 xserver-xorg-video-mga xserver-xorg-video-neomagic
9064 xserver-xorg-video-nsc xserver-xorg-video-nv
9065 xserver-xorg-video-openchrome xserver-xorg-video-r128
9066 xserver-xorg-video-radeon xserver-xorg-video-radeonhd
9067 xserver-xorg-video-rendition xserver-xorg-video-s3
9068 xserver-xorg-video-s3virge xserver-xorg-video-savage
9069 xserver-xorg-video-siliconmotion xserver-xorg-video-sis
9070 xserver-xorg-video-sisusb xserver-xorg-video-tdfx
9071 xserver-xorg-video-tga xserver-xorg-video-trident
9072 xserver-xorg-video-tseng xserver-xorg-video-v4l
9073 xserver-xorg-video-vesa xserver-xorg-video-vga
9074 xserver-xorg-video-vmware xserver-xorg-video-voodoo xulrunner-1.9</p>
9075
9076 <p><b>aptitude kde 192</b>
9077 <br>bluez-utils cpp-4.3 cupsddk-drivers cvs dcoprss dhcdbd
9078 djvulibre-desktop dosfstools eyesapplet fifteenapplet finger gettext
9079 ghostscript-x imlib-base imlib11 indi kandy karm kasteroids
9080 kaudiocreator kbackgammon kbstate kcoloredit kcontrol kcron kdat
9081 kdeadmin-kfile-plugins kdeartwork-misc kdeartwork-theme-window
9082 kdebase-bin-kde3 kdebase-kio-plugins kdeedu-data
9083 kdegraphics-kfile-plugins kdelirc kdemultimedia-kappfinder-data
9084 kdemultimedia-kfile-plugins kdenetwork-kfile-plugins
9085 kdepim-kfile-plugins kdepim-kio-plugins kdeprint kdesktop kdessh
9086 kdict kdnssd kdvi kedit keduca kenolaba kfax kfaxview kfouleggs
9087 kghostview khelpcenter khexedit kiconedit kitchensync klatin
9088 klickety kmailcvt kmenuedit kmid kmilo kmoon kmrml kodo kolourpaint
9089 kooka korn kpager kpdf kpercentage kpf kpilot kpoker kpovmodeler
9090 krec kregexpeditor ksayit ksim ksirc ksirtet ksmiletris ksmserver
9091 ksnake ksokoban ksplash ksvg ksysv ktip ktnef kuickshow kverbos
9092 kview kviewshell kvoctrain kwifimanager kwin kwin4 kworldclock
9093 kxsldbg libakode2 libao2 libarts1-akode libarts1-audiofile
9094 libarts1-mpeglib libarts1-xine libavahi-compat-libdnssd1
9095 libavahi-core5 libavc1394-0 libavcodec51 libbluetooth2
9096 libboost-python1.34.1 libcucul0 libcurl3 libcvsservice0 libdatrie0
9097 libdirectfb-1.0-0 libdjvulibre21 libdvdread3 libfaad0 libfreebob0
9098 libgail-common libgd2-noxpm libgraphviz4 libgsmme1c2a libgtkhtml2-0
9099 libicu38 libiec61883-0 libindex0 libiw29 libk3b3 libkcal2b libkcddb1
9100 libkdeedu3 libkdepim1a libkgantt0 libkiten1 libkleopatra1 libkmime2
9101 libkpathsea4 libkpimexchange1 libkpimidentities1 libkscan1
9102 libksieve0 libktnef1 liblockdev1 libltdl3 libmagick10 libmimelib1c2a
9103 libmozjs1d libmpcdec3 libneon27 libnm-util0 libopensync0 libpisock9
9104 libpoppler-glib3 libpoppler-qt2 libpoppler3 libraw1394-8 libsmbios2
9105 libssh2-1 libsuitesparse-3.1.0 libtalloc1 libtiff-tools
9106 libxalan2-java libxalan2-java-gcj libxcb-xlib0 libxerces2-java
9107 libxerces2-java-gcj libxtrap6 mpeglib networkstatus
9108 openoffice.org-writer2latex pmount poster psutils quanta quanta-data
9109 superkaramba svgalibg1 tex-common texlive-base texlive-base-bin
9110 texlive-common texlive-doc-base texlive-fonts-recommended
9111 xserver-xorg-video-cyrix xserver-xorg-video-imstt
9112 xserver-xorg-video-nsc xserver-xorg-video-v4l xserver-xorg-video-vga
9113 xulrunner-1.9</p>
9114
9115
9116 </div>
9117 <div class="tags">
9118
9119
9120 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>.
9121
9122
9123 </div>
9124 </div>
9125 <div class="padding"></div>
9126
9127 <div class="entry">
9128 <div class="title">
9129 <a href="http://people.skolelinux.org/pere/blog/Automatic_upgrade_testing_from_Lenny_to_Squeeze.html">Automatic upgrade testing from Lenny to Squeeze</a>
9130 </div>
9131 <div class="date">
9132 11th June 2010
9133 </div>
9134 <div class="body">
9135 <p>The last few days I have done some upgrade testing in Debian, to
9136 see if the upgrade from Lenny to Squeeze will go smoothly. A few bugs
9137 have been discovered and reported in the process
9138 (<a href="http://bugs.debian.org/585410">#585410</a> in nagios3-cgi,
9139 <a href="http://bugs.debian.org/584879">#584879</a> already fixed in
9140 enscript and <a href="http://bugs.debian.org/584861">#584861</a> in
9141 kdebase-workspace-data), and to get a more regular testing going on, I
9142 am working on a script to automate the test.</p>
9143
9144 <p>The idea is to create a Lenny chroot and use tasksel to install a
9145 Gnome or KDE desktop installation inside the chroot before upgrading
9146 it. To ensure no services are started in the chroot, a policy-rc.d
9147 script is inserted. To make sure tasksel believe it is to install a
9148 desktop on a laptop, the tasksel tests are replaced in the chroot
9149 (only acceptable because this is a throw-away chroot).</p>
9150
9151 <p>A naive upgrade from Lenny to Squeeze using aptitude dist-upgrade
9152 currently always fail because udev refuses to upgrade with the kernel
9153 in Lenny, so to avoid that problem the file /etc/udev/kernel-upgrade
9154 is created. The bug report
9155 <a href="http://bugs.debian.org/566000">#566000</a> make me suspect
9156 this problem do not trigger in a chroot, but I touch the file anyway
9157 to make sure the upgrade go well. Testing on virtual and real
9158 hardware have failed me because of udev so far, and creating this file
9159 do the trick in such settings anyway. This is a
9160 <a href="http://www.linuxquestions.org/questions/debian-26/failed-dist-upgrade-due-to-udev-config_sysfs_deprecated-nonsense-804130/">known
9161 issue</a> and the current udev behaviour is intended by the udev
9162 maintainer because he lack the resources to rewrite udev to keep
9163 working with old kernels or something like that. I really wish the
9164 udev upstream would keep udev backwards compatible, to avoid such
9165 upgrade problem, but given that they fail to do so, I guess
9166 documenting the way out of this mess is the best option we got for
9167 Debian Squeeze.</p>
9168
9169 <p>Anyway, back to the task at hand, testing upgrades. This test
9170 script, which I call <tt>upgrade-test</tt> for now, is doing the
9171 trick:</p>
9172
9173 <blockquote><pre>
9174 #!/bin/sh
9175 set -ex
9176
9177 if [ "$1" ] ; then
9178 desktop=$1
9179 else
9180 desktop=gnome
9181 fi
9182
9183 from=lenny
9184 to=squeeze
9185
9186 exec &lt; /dev/null
9187 unset LANG
9188 mirror=http://ftp.skolelinux.org/debian
9189 tmpdir=chroot-$from-upgrade-$to-$desktop
9190 fuser -mv .
9191 debootstrap $from $tmpdir $mirror
9192 chroot $tmpdir aptitude update
9193 cat > $tmpdir/usr/sbin/policy-rc.d &lt;&lt;EOF
9194 #!/bin/sh
9195 exit 101
9196 EOF
9197 chmod a+rx $tmpdir/usr/sbin/policy-rc.d
9198 exit_cleanup() {
9199 umount $tmpdir/proc
9200 }
9201 mount -t proc proc $tmpdir/proc
9202 # Make sure proc is unmounted also on failure
9203 trap exit_cleanup EXIT INT
9204
9205 chroot $tmpdir aptitude -y install debconf-utils
9206
9207 # Make sure tasksel autoselection trigger. It need the test scripts
9208 # to return the correct answers.
9209 echo tasksel tasksel/desktop multiselect $desktop | \
9210 chroot $tmpdir debconf-set-selections
9211
9212 # Include the desktop and laptop task
9213 for test in desktop laptop ; do
9214 echo > $tmpdir/usr/lib/tasksel/tests/$test &lt;&lt;EOF
9215 #!/bin/sh
9216 exit 2
9217 EOF
9218 chmod a+rx $tmpdir/usr/lib/tasksel/tests/$test
9219 done
9220
9221 DEBIAN_FRONTEND=noninteractive
9222 DEBIAN_PRIORITY=critical
9223 export DEBIAN_FRONTEND DEBIAN_PRIORITY
9224 chroot $tmpdir tasksel --new-install
9225
9226 echo deb $mirror $to main > $tmpdir/etc/apt/sources.list
9227 chroot $tmpdir aptitude update
9228 touch $tmpdir/etc/udev/kernel-upgrade
9229 chroot $tmpdir aptitude -y dist-upgrade
9230 fuser -mv
9231 </pre></blockquote>
9232
9233 <p>I suspect it would be useful to test upgrades with both apt-get and
9234 with aptitude, but I have not had time to look at how they behave
9235 differently so far. I hope to get a cron job running to do the test
9236 regularly and post the result on the web. The Gnome upgrade currently
9237 work, while the KDE upgrade fail because of the bug in
9238 kdebase-workspace-data</p>
9239
9240 <p>I am not quite sure what kind of extract from the huge upgrade logs
9241 (KDE 167 KiB, Gnome 516 KiB) it make sense to include in this blog
9242 post, so I will refrain from trying. I can report that for Gnome,
9243 aptitude report 760 packages upgraded, 448 newly installed, 129 to
9244 remove and 1 not upgraded and 1024MB need to be downloaded while for
9245 KDE the same numbers are 702 packages upgraded, 507 newly installed,
9246 193 to remove and 0 not upgraded and 1117MB need to be downloaded</p>
9247
9248 <p>I am very happy to notice that the Gnome desktop + laptop upgrade
9249 is able to migrate to dependency based boot sequencing and parallel
9250 booting without a hitch. Was unsure if there were still bugs with
9251 packages failing to clean up their obsolete init.d script during
9252 upgrades, and no such problem seem to affect the Gnome desktop+laptop
9253 packages.</p>
9254
9255 </div>
9256 <div class="tags">
9257
9258
9259 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>.
9260
9261
9262 </div>
9263 </div>
9264 <div class="padding"></div>
9265
9266 <div class="entry">
9267 <div class="title">
9268 <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>
9269 </div>
9270 <div class="date">
9271 6th June 2010
9272 </div>
9273 <div class="body">
9274 <p>If Debian is to migrate to upstart on Linux, I expect some init.d
9275 scripts to migrate (some of) their operations to upstart job while
9276 keeping the init.d for hurd and kfreebsd. The packages with such
9277 needs will need a way to get their init.d scripts to behave
9278 differently when used with sysvinit and with upstart. Because of
9279 this, I had a look at the environment variables set when a init.d
9280 script is running under upstart, and when it is not.</p>
9281
9282 <p>With upstart, I notice these environment variables are set when a
9283 script is started from rcS.d/ (ignoring some irrelevant ones like
9284 COLUMNS):</p>
9285
9286 <blockquote><pre>
9287 DEFAULT_RUNLEVEL=2
9288 previous=N
9289 PREVLEVEL=
9290 RUNLEVEL=
9291 runlevel=S
9292 UPSTART_EVENTS=startup
9293 UPSTART_INSTANCE=
9294 UPSTART_JOB=rc-sysinit
9295 </pre></blockquote>
9296
9297 <p>With sysvinit, these environment variables are set for the same
9298 script.</p>
9299
9300 <blockquote><pre>
9301 INIT_VERSION=sysvinit-2.88
9302 previous=N
9303 PREVLEVEL=N
9304 RUNLEVEL=S
9305 runlevel=S
9306 </pre></blockquote>
9307
9308 <p>The RUNLEVEL and PREVLEVEL environment variables passed on from
9309 sysvinit are not set by upstart. Not sure if it is intentional or not
9310 to not be compatible with sysvinit in this regard.</p>
9311
9312 <p>For scripts needing to behave differently when upstart is used,
9313 looking for the UPSTART_JOB environment variable seem to be a good
9314 choice.</p>
9315
9316 </div>
9317 <div class="tags">
9318
9319
9320 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>.
9321
9322
9323 </div>
9324 </div>
9325 <div class="padding"></div>
9326
9327 <div class="entry">
9328 <div class="title">
9329 <a href="http://people.skolelinux.org/pere/blog/A_manual_for_standards_wars___.html">A manual for standards wars...</a>
9330 </div>
9331 <div class="date">
9332 6th June 2010
9333 </div>
9334 <div class="body">
9335 <p>Via the
9336 <a href="http://feedproxy.google.com/~r/robweir/antic-atom/~3/QzU4RgoAGMg/weekly-links-10.html">blog
9337 of Rob Weir</a> I came across the very interesting essay named
9338 <a href="http://faculty.haas.berkeley.edu/shapiro/wars.pdf">The Art of
9339 Standards Wars</a> (PDF 25 pages). I recommend it for everyone
9340 following the standards wars of today.</p>
9341
9342 </div>
9343 <div class="tags">
9344
9345
9346 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>.
9347
9348
9349 </div>
9350 </div>
9351 <div class="padding"></div>
9352
9353 <div class="entry">
9354 <div class="title">
9355 <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>
9356 </div>
9357 <div class="date">
9358 3rd June 2010
9359 </div>
9360 <div class="body">
9361 <p>When using sitesummary at a site to track machines, it is possible
9362 to get a list of the machine types in use thanks to the DMI
9363 information extracted from each machine. The script to do so is
9364 included in the sitesummary package, and here is example output from
9365 the Skolelinux build servers:</p>
9366
9367 <blockquote><pre>
9368 maintainer:~# /usr/lib/sitesummary/hardware-model-summary
9369 vendor count
9370 Dell Computer Corporation 1
9371 PowerEdge 1750 1
9372 IBM 1
9373 eserver xSeries 345 -[8670M1X]- 1
9374 Intel 2
9375 [no-dmi-info] 3
9376 maintainer:~#
9377 </pre></blockquote>
9378
9379 <p>The quality of the report depend on the quality of the DMI tables
9380 provided in each machine. Here there are Intel machines without model
9381 information listed with Intel as vendor and no model, and virtual Xen
9382 machines listed as [no-dmi-info]. One can add -l as a command line
9383 option to list the individual machines.</p>
9384
9385 <p>A larger list is
9386 <a href="http://narvikskolen.no/sitesummary/">available from the the
9387 city of Narvik</a>, which uses Skolelinux on all their shools and also
9388 provide the basic sitesummary report publicly. In their report there
9389 are ~1400 machines. I know they use both Ubuntu and Skolelinux on
9390 their machines, and as sitesummary is available in both distributions,
9391 it is trivial to get all of them to report to the same central
9392 collector.</p>
9393
9394 </div>
9395 <div class="tags">
9396
9397
9398 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>.
9399
9400
9401 </div>
9402 </div>
9403 <div class="padding"></div>
9404
9405 <div class="entry">
9406 <div class="title">
9407 <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>
9408 </div>
9409 <div class="date">
9410 1st June 2010
9411 </div>
9412 <div class="body">
9413 <p>It is strange to watch how a bug in Debian causing KDM to fail to
9414 start at boot when an NVidia video card is used is handled. The
9415 problem seem to be that the nvidia X.org driver uses a long time to
9416 initialize, and this duration is longer than kdm is configured to
9417 wait.</p>
9418
9419 <p>I came across two bugs related to this issue,
9420 <a href="http://bugs.debian.org/583312">#583312</a> initially filed
9421 against initscripts and passed on to nvidia-glx when it became obvious
9422 that the nvidia drivers were involved, and
9423 <a href="http://bugs.debian.org/524751">#524751</a> initially filed against
9424 kdm and passed on to src:nvidia-graphics-drivers for unknown reasons.</p>
9425
9426 <p>To me, it seem that no-one is interested in actually solving the
9427 problem nvidia video card owners experience and make sure the Debian
9428 distribution work out of the box for these users. The nvidia driver
9429 maintainers expect kdm to be set up to wait longer, while kdm expect
9430 the nvidia driver maintainers to fix the driver to start faster, and
9431 while they wait for each other I guess the users end up switching to a
9432 distribution that work for them. I have no idea what the solution is,
9433 but I am pretty sure that waiting for each other is not it.</p>
9434
9435 <p>I wonder why we end up handling bugs this way.</p>
9436
9437 </div>
9438 <div class="tags">
9439
9440
9441 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>.
9442
9443
9444 </div>
9445 </div>
9446 <div class="padding"></div>
9447
9448 <div class="entry">
9449 <div class="title">
9450 <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>
9451 </div>
9452 <div class="date">
9453 27th May 2010
9454 </div>
9455 <div class="body">
9456 <p>A few days ago, parallel booting was enabled in Debian/testing.
9457 The feature seem to hold up pretty well, but three fairly serious
9458 issues are known and should be solved:
9459
9460 <p><ul>
9461
9462 <li>The wicd package seen to
9463 <a href="http://bugs.debian.org/508289">break NFS mounting</a> and
9464 <a href="http://bugs.debian.org/581586">network setup</a> when
9465 parallel booting is enabled. No idea why, but the wicd maintainer
9466 seem to be on the case.</li>
9467
9468 <li>The nvidia X driver seem to
9469 <a href="http://bugs.debian.org/583312">have a race condition</a>
9470 triggered more easily when parallel booting is in effect. The
9471 maintainer is on the case.</li>
9472
9473 <li>The sysv-rc package fail to properly enable dependency based boot
9474 sequencing (the shutdown is broken) when old file-rc users
9475 <a href="http://bugs.debian.org/575080">try to switch back</a> to
9476 sysv-rc. One way to solve it would be for file-rc to create
9477 /etc/init.d/.legacy-bootordering, and another is to try to make
9478 sysv-rc more robust. Will investigate some more and probably upload a
9479 workaround in sysv-rc to help those trying to move from file-rc to
9480 sysv-rc get a working shutdown.</li>
9481
9482 </ul></p>
9483
9484 <p>All in all not many surprising issues, and all of them seem
9485 solvable before Squeeze is released. In addition to these there are
9486 some packages with bugs in their dependencies and run level settings,
9487 which I expect will be fixed in a reasonable time span.</p>
9488
9489 <p>If you report any problems with dependencies in init.d scripts to
9490 the BTS, please usertag the report to get it to show up at
9491 <a href="http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=initscripts-ng-devel@lists.alioth.debian.org">the
9492 list of usertagged bugs related to this</a>.</p>
9493
9494 <p>Update: Correct bug number to file-rc issue.</p>
9495
9496 </div>
9497 <div class="tags">
9498
9499
9500 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>.
9501
9502
9503 </div>
9504 </div>
9505 <div class="padding"></div>
9506
9507 <div class="entry">
9508 <div class="title">
9509 <a href="http://people.skolelinux.org/pere/blog/More_flexible_firmware_handling_in_debian_installer.html">More flexible firmware handling in debian-installer</a>
9510 </div>
9511 <div class="date">
9512 22nd May 2010
9513 </div>
9514 <div class="body">
9515 <p>After a long break from debian-installer development, I finally
9516 found time today to return to the project. Having to spend less time
9517 working dependency based boot in debian, as it is almost complete now,
9518 definitely helped freeing some time.</p>
9519
9520 <p>A while back, I ran into a problem while working on Debian Edu. We
9521 include some firmware packages on the Debian Edu CDs, those needed to
9522 get disk and network controllers working. Without having these
9523 firmware packages available during installation, it is impossible to
9524 install Debian Edu on the given machine, and because our target group
9525 are non-technical people, asking them to provide firmware packages on
9526 an external medium is a support pain. Initially, I expected it to be
9527 enough to include the firmware packages on the CD to get
9528 debian-installer to find and use them. This proved to be wrong.
9529 Next, I hoped it was enough to symlink the relevant firmware packages
9530 to some useful location on the CD (tried /cdrom/ and
9531 /cdrom/firmware/). This also proved to not work, and at this point I
9532 found time to look at the debian-installer code to figure out what was
9533 going to work.</p>
9534
9535 <p>The firmware loading code is in the hw-detect package, and a closer
9536 look revealed that it would only look for firmware packages outside
9537 the installation media, so the CD was never checked for firmware
9538 packages. It would only check USB sticks, floppies and other
9539 "external" media devices. Today I changed it to also look in the
9540 /cdrom/firmware/ directory on the mounted CD or DVD, which should
9541 solve the problem I ran into with Debian edu. I also changed it to
9542 look in /firmware/, to make sure the installer also find firmware
9543 provided in the initrd when booting the installer via PXE, to allow us
9544 to provide the same feature in the PXE setup included in Debian
9545 Edu.</p>
9546
9547 <p>To make sure firmware deb packages with a license questions are not
9548 activated without asking if the license is accepted, I extended
9549 hw-detect to look for preinst scripts in the firmware packages, and
9550 run these before activating the firmware during installation. The
9551 license question is asked using debconf in the preinst, so this should
9552 solve the issue for the firmware packages I have looked at so far.</p>
9553
9554 <p>If you want to discuss the details of these features, please
9555 contact us on debian-boot@lists.debian.org.</p>
9556
9557 </div>
9558 <div class="tags">
9559
9560
9561 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>.
9562
9563
9564 </div>
9565 </div>
9566 <div class="padding"></div>
9567
9568 <div class="entry">
9569 <div class="title">
9570 <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>
9571 </div>
9572 <div class="date">
9573 19th May 2010
9574 </div>
9575 <div class="body">
9576 <p>Today, the last piece of the puzzle for roaming laptops in Debian
9577 Edu finally entered the Debian archive. Today, the new
9578 <a href="http://packages.qa.debian.org/libp/libpam-mklocaluser.html">libpam-mklocaluser</a>
9579 package was accepted. Two days ago, two other pieces was accepted
9580 into unstable. The
9581 <a href="http://packages.qa.debian.org/p/pam-python.html">pam-python</a>
9582 package needed by libpam-mklocaluser, and the
9583 <a href="http://packages.qa.debian.org/s/sssd.html">sssd</a> package
9584 passed NEW on Monday. In addition, the
9585 <a href="http://packages.qa.debian.org/libp/libpam-ccreds.html">libpam-ccreds</a>
9586 package we need is in experimental (version 10-4) since Saturday, and
9587 hopefully will be moved to unstable soon.</p>
9588
9589 <p>This collection of packages allow for two different setups for
9590 roaming laptops. The traditional setup would be using libpam-ccreds,
9591 nscd and libpam-mklocaluser with LDAP or Kerberos authentication,
9592 which should work out of the box if the configuration changes proposed
9593 for nscd in <a href="http://bugs.debian.org/485282">BTS report
9594 #485282</a> is implemented. The alternative setup is to use sssd with
9595 libpam-mklocaluser to connect to LDAP or Kerberos and let sssd take
9596 care of the caching of passwords and group information.</p>
9597
9598 <p>I have so far been unable to get sssd to work with the LDAP server
9599 at the University, but suspect the issue is some SSL/GnuTLS related
9600 problem with the server certificate. I plan to update the Debian
9601 package to version 1.2, which is scheduled for next week, and hope to
9602 find time to make sure the next release will include both the
9603 Debian/Ubuntu specific patches. Upstream is friendly and responsive,
9604 and I am sure we will find a good solution.</p>
9605
9606 <p>The idea is to set up the roaming laptops to authenticate using
9607 LDAP or Kerberos and create a local user with home directory in /home/
9608 when a usre in LDAP logs in via KDM or GDM for the first time, and
9609 cache the password for offline checking, as well as caching group
9610 memberhips and other relevant LDAP information. The
9611 libpam-mklocaluser package was created to make sure the local home
9612 directory is in /home/, instead of /site/server/directory/ which would
9613 be the home directory if pam_mkhomedir was used. To avoid confusion
9614 with support requests and configuration, we do not want local laptops
9615 to have users in a path that is used for the same users home directory
9616 on the home directory servers.</p>
9617
9618 <p>One annoying problem with gdm is that it do not show the PAM
9619 message passed to the user from libpam-mklocaluser when the local user
9620 is created. Instead gdm simply reject the login with some generic
9621 message. The message is shown in kdm, ssh and login, so I guess it is
9622 a bug in gdm. Have not investigated if there is some other message
9623 type that can be used instead to get gdm to also show the message.</p>
9624
9625 <p>If you want to help out with implementing this for Debian Edu,
9626 please contact us on debian-edu@lists.debian.org.</p>
9627
9628 </div>
9629 <div class="tags">
9630
9631
9632 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>.
9633
9634
9635 </div>
9636 </div>
9637 <div class="padding"></div>
9638
9639 <div class="entry">
9640 <div class="title">
9641 <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>
9642 </div>
9643 <div class="date">
9644 14th May 2010
9645 </div>
9646 <div class="body">
9647 <p>Since this evening, parallel booting is the default in
9648 Debian/unstable for machines using dependency based boot sequencing.
9649 Apparently the testing of concurrent booting has been wider than
9650 expected, if I am to believe the
9651 <a href="http://lists.debian.org/debian-devel/2010/05/msg00122.html">input
9652 on debian-devel@</a>, and I concluded a few days ago to move forward
9653 with the feature this weekend, to give us some time to detect any
9654 remaining problems before Squeeze is frozen. If serious problems are
9655 detected, it is simple to change the default back to sequential boot.
9656 The upload of the new sysvinit package also activate a new upstream
9657 version.</p>
9658
9659 More information about
9660 <a href="http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot">dependency
9661 based boot sequencing</a> is available from the Debian wiki. It is
9662 currently possible to disable parallel booting when one run into
9663 problems caused by it, by adding this line to /etc/default/rcS:</p>
9664
9665 <blockquote><pre>
9666 CONCURRENCY=none
9667 </pre></blockquote>
9668
9669 <p>If you report any problems with dependencies in init.d scripts to
9670 the BTS, please usertag the report to get it to show up at
9671 <a href="http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=initscripts-ng-devel@lists.alioth.debian.org">the
9672 list of usertagged bugs related to this</a>.</p>
9673
9674 </div>
9675 <div class="tags">
9676
9677
9678 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>.
9679
9680
9681 </div>
9682 </div>
9683 <div class="padding"></div>
9684
9685 <div class="entry">
9686 <div class="title">
9687 <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>
9688 </div>
9689 <div class="date">
9690 14th May 2010
9691 </div>
9692 <div class="body">
9693 <p>In the recent Debian Edu versions, the
9694 <a href="http://wiki.debian.org/DebianEdu/HowTo/SiteSummary">sitesummary
9695 system</a> is used to keep track of the machines in the school
9696 network. Each machine will automatically report its status to the
9697 central server after boot and once per night. The network setup is
9698 also reported, and using this information it is possible to get the
9699 MAC address of all network interfaces in the machines. This is useful
9700 to update the DHCP configuration.</p>
9701
9702 <p>To give some idea how to use sitesummary, here is a one-liner to
9703 ist all MAC addresses of all machines reporting to sitesummary. Run
9704 this on the collector host:</p>
9705
9706 <blockquote><pre>
9707 perl -MSiteSummary -e 'for_all_hosts(sub { print join(" ", get_macaddresses(shift)), "\n"; });'
9708 </pre></blockquote>
9709
9710 <p>This will list all MAC addresses assosiated with all machine, one
9711 line per machine and with space between the MAC addresses.</p>
9712
9713 <p>To allow system administrators easier job at adding static DHCP
9714 addresses for hosts, it would be possible to extend this to fetch
9715 machine information from sitesummary and update the DHCP and DNS
9716 tables in LDAP using this information. Such tool is unfortunately not
9717 written yet.</p>
9718
9719 </div>
9720 <div class="tags">
9721
9722
9723 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>.
9724
9725
9726 </div>
9727 </div>
9728 <div class="padding"></div>
9729
9730 <div class="entry">
9731 <div class="title">
9732 <a href="http://people.skolelinux.org/pere/blog/systemd__an_interesting_alternative_to_upstart.html">systemd, an interesting alternative to upstart</a>
9733 </div>
9734 <div class="date">
9735 13th May 2010
9736 </div>
9737 <div class="body">
9738 <p>The last few days a new boot system called
9739 <a href="http://www.freedesktop.org/wiki/Software/systemd">systemd</a>
9740 has been
9741 <a href="http://0pointer.de/blog/projects/systemd.html">introduced</a>
9742
9743 to the free software world. I have not yet had time to play around
9744 with it, but it seem to be a very interesting alternative to
9745 <a href="http://upstart.ubuntu.com/">upstart</a>, and might prove to be
9746 a good alternative for Debian when we are able to switch to an event
9747 based boot system. Tollef is
9748 <a href="http://bugs.debian.org/580814">in the process</a> of getting
9749 systemd into Debian, and I look forward to seeing how well it work. I
9750 like the fact that systemd handles init.d scripts with dependency
9751 information natively, allowing them to run in parallel where upstart
9752 at the moment do not.</p>
9753
9754 <p>Unfortunately do systemd have the same problem as upstart regarding
9755 platform support. It only work on recent Linux kernels, and also need
9756 some new kernel features enabled to function properly. This means
9757 kFreeBSD and Hurd ports of Debian will need a port or a different boot
9758 system. Not sure how that will be handled if systemd proves to be the
9759 way forward.</p>
9760
9761 <p>In the mean time, based on the
9762 <a href="http://lists.debian.org/debian-devel/2010/05/msg00122.html">input
9763 on debian-devel@</a> regarding parallel booting in Debian, I have
9764 decided to enable full parallel booting as the default in Debian as
9765 soon as possible (probably this weekend or early next week), to see if
9766 there are any remaining serious bugs in the init.d dependencies. A
9767 new version of the sysvinit package implementing this change is
9768 already in experimental. If all go well, Squeeze will be released
9769 with parallel booting enabled by default.</p>
9770
9771 </div>
9772 <div class="tags">
9773
9774
9775 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>.
9776
9777
9778 </div>
9779 </div>
9780 <div class="padding"></div>
9781
9782 <div class="entry">
9783 <div class="title">
9784 <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>
9785 </div>
9786 <div class="date">
9787 6th May 2010
9788 </div>
9789 <div class="body">
9790 <p>These days, the init.d script dependencies in Squeeze are quite
9791 complete, so complete that it is actually possible to run all the
9792 init.d scripts in parallell based on these dependencies. If you want
9793 to test your Squeeze system, make sure
9794 <a href="http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot">dependency
9795 based boot sequencing</a> is enabled, and add this line to
9796 /etc/default/rcS:</p>
9797
9798 <blockquote><pre>
9799 CONCURRENCY=makefile
9800 </pre></blockquote>
9801
9802 <p>That is it. It will cause sysv-rc to use the startpar tool to run
9803 scripts in parallel using the dependency information stored in
9804 /etc/init.d/.depend.boot, /etc/init.d/.depend.start and
9805 /etc/init.d/.depend.stop to order the scripts. Startpar is configured
9806 to try to start the kdm and gdm scripts as early as possible, and will
9807 start the facilities required by kdm or gdm as early as possible to
9808 make this happen.</p>
9809
9810 <p>Give it a try, and see if you like the result. If some services
9811 fail to start properly, it is most likely because they have incomplete
9812 init.d script dependencies in their startup script (or some of their
9813 dependent scripts have incomplete dependencies). Report bugs and get
9814 the package maintainers to fix it. :)</p>
9815
9816 <p>Running scripts in parallel could be the default in Debian when we
9817 manage to get the init.d script dependencies complete and correct. I
9818 expect we will get there in Squeeze+1, if we get manage to test and
9819 fix the remaining issues.</p>
9820
9821 <p>If you report any problems with dependencies in init.d scripts to
9822 the BTS, please usertag the report to get it to show up at
9823 <a href="http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=initscripts-ng-devel@lists.alioth.debian.org">the
9824 list of usertagged bugs related to this</a>.</p>
9825
9826 </div>
9827 <div class="tags">
9828
9829
9830 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>.
9831
9832
9833 </div>
9834 </div>
9835 <div class="padding"></div>
9836
9837 <div class="entry">
9838 <div class="title">
9839 <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>
9840 </div>
9841 <div class="date">
9842 2nd May 2010
9843 </div>
9844 <div class="body">
9845 <p>One interesting feature in Active Directory, is the ability to
9846 create a new user with an expired password, and thus force the user to
9847 change the password on the first login attempt.</p>
9848
9849 <p>I'm not quite sure how to do that with the LDAP setup in Debian
9850 Edu, but did some initial testing with a local account. The account
9851 and password aging information is available in /etc/shadow, but
9852 unfortunately, it is not possible to specify an expiration time for
9853 passwords, only a maximum age for passwords.</p>
9854
9855 <p>A freshly created account (using adduser test) will have these
9856 settings in /etc/shadow:</p>
9857
9858 <blockquote><pre>
9859 root@tjener:~# chage -l test
9860 Last password change : May 02, 2010
9861 Password expires : never
9862 Password inactive : never
9863 Account expires : never
9864 Minimum number of days between password change : 0
9865 Maximum number of days between password change : 99999
9866 Number of days of warning before password expires : 7
9867 root@tjener:~#
9868 </pre></blockquote>
9869
9870 <p>The only way I could come up with to create a user with an expired
9871 account, is to change the date of the last password change to the
9872 lowest value possible (January 1th 1970), and the maximum password age
9873 to the difference in days between that date and today. To make it
9874 simple, I went for 30 years (30 * 365 = 10950) and January 2th (to
9875 avoid testing if 0 is a valid value).</p>
9876
9877 <p>After using these commands to set it up, it seem to work as
9878 intended:</p>
9879
9880 <blockquote><pre>
9881 root@tjener:~# chage -d 1 test; chage -M 10950 test
9882 root@tjener:~# chage -l test
9883 Last password change : Jan 02, 1970
9884 Password expires : never
9885 Password inactive : never
9886 Account expires : never
9887 Minimum number of days between password change : 0
9888 Maximum number of days between password change : 10950
9889 Number of days of warning before password expires : 7
9890 root@tjener:~#
9891 </pre></blockquote>
9892
9893 <p>So far I have tested this with ssh and console, and kdm (in
9894 Squeeze) login, and all ask for a new password before login in the
9895 user (with ssh, I was thrown out and had to log in again).</p>
9896
9897 <p>Perhaps we should set up something similar for Debian Edu, to make
9898 sure only the user itself have the account password?</p>
9899
9900 <p>If you want to comment on or help out with implementing this for
9901 Debian Edu, please contact us on debian-edu@lists.debian.org.</p>
9902
9903 <p>Update 2010-05-02 17:20: Paul Tötterman tells me on IRC that the
9904 shadow(8) page in Debian/testing now state that setting the date of
9905 last password change to zero (0) will force the password to be changed
9906 on the first login. This was not mentioned in the manual in Lenny, so
9907 I did not notice this in my initial testing. I have tested it on
9908 Squeeze, and '<tt>chage -d 0 username</tt>' do work there. I have not
9909 tested it on Lenny yet.</p>
9910
9911 <p>Update 2010-05-02-19:05: Jim Paris tells me via email that an
9912 equivalent command to expire a password is '<tt>passwd -e
9913 username</tt>', which insert zero into the date of the last password
9914 change.</p>
9915
9916 </div>
9917 <div class="tags">
9918
9919
9920 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>.
9921
9922
9923 </div>
9924 </div>
9925 <div class="padding"></div>
9926
9927 <div class="entry">
9928 <div class="title">
9929 <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>
9930 </div>
9931 <div class="date">
9932 28th April 2010
9933 </div>
9934 <div class="body">
9935 <p>For some years now, I have wondered how we should handle laptops in
9936 Debian Edu. The Debian Edu infrastructure is mostly designed to
9937 handle stationary computers, and less suited for computers that come
9938 and go.</p>
9939
9940 <p>Now I finally believe I have an sensible idea on how to adjust
9941 Debian Edu for laptops, by introducing a new profile for them, for
9942 example called Roaming Workstations. Here are my thought on this.
9943 The setup would consist of the following:</p>
9944
9945 <ul>
9946
9947 <li>During installation, the user name of the owner / primary user of
9948 the laptop is requested and a local home directory is set up for
9949 the user, with uid and gid information fetched from the LDAP
9950 server. This allow the user to work also when offline. The
9951 central home directory can be available in a subdirectory on
9952 request, for example mounted via CIFS. It could be mounted
9953 automatically when a user log in while on the Debian Edu network,
9954 and unmounted when the machine is taken away (network down,
9955 hibernate, etc), it can be set up to do automatic mounting on
9956 request (using autofs), or perhaps some GUI button on the desktop
9957 can be used to access it when needed. Perhaps it is enough to use
9958 the fish protocol in KDE?</li>
9959
9960 <li>Password checking is set up to use LDAP or Kerberos
9961 authentication when the machine is on the Debian Edu network, and
9962 to cache the password for offline checking when the machine unable
9963 to reach the LDAP or Kerberos server. This can be done using
9964 <a href="http://www.padl.com/OSS/pam_ccreds.html">libpam-ccreds</a>
9965 or the Fedora developed
9966 <a href="https://fedoraproject.org/wiki/Features/SSSD">System
9967 Security Services Daemon</a> packages.</li>
9968
9969 <li>File synchronisation with the central home directory is set up
9970 using a shared directory in both the local and the central home
9971 directory, using unison.</li>
9972
9973 <li>Printing should be set up to print to all printers broadcasting
9974 their existence on the local network, and should then work out of
9975 the box with CUPS. For sites needing accurate printer quotas, some
9976 system with Kerberos authentication or printing via ssh could be
9977 implemented.</li>
9978
9979 <li>For users that should have local root access to their laptop,
9980 sudo should be used to allow this to the local user.</li>
9981
9982 <li>It would be nice if user and group information from LDAP is
9983 cached on the client, but given that there are entries for the
9984 local user and primary group in /etc/, it should not be needed.</li>
9985
9986 </ul>
9987
9988 <p>I believe all the pieces to implement this are in Debian/testing at
9989 the moment. If we work quickly, we should be able to get this ready
9990 in time for the Squeeze release to freeze. Some of the pieces need
9991 tweaking, like libpam-ccreds should get support for pam-auth-update
9992 (<a href="http://bugs.debian.org/566718">#566718</a>) and nslcd (or
9993 perhaps debian-edu-config) should get some integration code to stop
9994 its daemon when the LDAP server is unavailable to avoid long timeouts
9995 when disconnected from the net. If we get Kerberos enabled, we need
9996 to make sure we avoid long timeouts there too.</p>
9997
9998 <p>If you want to help out with implementing this for Debian Edu,
9999 please contact us on debian-edu@lists.debian.org.</p>
10000
10001 </div>
10002 <div class="tags">
10003
10004
10005 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>.
10006
10007
10008 </div>
10009 </div>
10010 <div class="padding"></div>
10011
10012 <div class="entry">
10013 <div class="title">
10014 <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>
10015 </div>
10016 <div class="date">
10017 19th April 2010
10018 </div>
10019 <div class="body">
10020 <p>The last few weeks i have had the pleasure of reading a
10021 thought-provoking collection of essays by Cory Doctorow, on topics
10022 touching copyright, virtual worlds, the future of man when the
10023 conscience mind can be duplicated into a computer and many more. The
10024 book titled "Content: Selected Essays on Technology, Creativity,
10025 Copyright, and the Future of the Future" is available with few
10026 restrictions on the web, for example from
10027 <a href="http://craphound.com/content/">his own site</a>. I read the
10028 epub-version from
10029 <a href="http://www.feedbooks.com/book/2883">feedbooks</a> using
10030 <a href="http://www.fbreader.org/">fbreader</a> and my N810. I
10031 strongly recommend this book.</p>
10032
10033 </div>
10034 <div class="tags">
10035
10036
10037 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>.
10038
10039
10040 </div>
10041 </div>
10042 <div class="padding"></div>
10043
10044 <div class="entry">
10045 <div class="title">
10046 <a href="http://people.skolelinux.org/pere/blog/Kerberos_for_Debian_Edu_Squeeze_.html">Kerberos for Debian Edu/Squeeze?</a>
10047 </div>
10048 <div class="date">
10049 14th April 2010
10050 </div>
10051 <div class="body">
10052 <p><a href="http://www.nuug.no/aktiviteter/20100413-kerberos/">Yesterdays
10053 NUUG presentation</a> about Kerberos was inspiring, and reminded me
10054 about the need to start using Kerberos in Skolelinux. Setting up a
10055 Kerberos server seem to be straight forward, and if we get this in
10056 place a long time before the Squeeze version of Debian freezes, we
10057 have a chance to migrate Skolelinux away from NFSv3 for the home
10058 directories, and over to an architecture where the infrastructure do
10059 not have to trust IP addresses and machines, and instead can trust
10060 users and cryptographic keys instead.</p>
10061
10062 <p>A challenge will be integration and administration. Is there a
10063 Kerberos implementation for Debian where one can control the
10064 administration access in Kerberos using LDAP groups? With it, the
10065 school administration will have to maintain access control using flat
10066 files on the main server, which give a huge potential for errors.</p>
10067
10068 <p>A related question I would like to know is how well Kerberos and
10069 pam-ccreds (offline password check) work together. Anyone know?</p>
10070
10071 <p>Next step will be to use Kerberos for access control in Lwat and
10072 Nagios. I have no idea how much work that will be to implement. We
10073 would also need to document how to integrate with Windows AD, as such
10074 shared network will require two Kerberos realms that need to cooperate
10075 to work properly.</p>
10076
10077 <p>I believe a good start would be to start using Kerberos on the
10078 skolelinux.no machines, and this way get ourselves experience with
10079 configuration and integration. A natural starting point would be
10080 setting up ldap.skolelinux.no as the Kerberos server, and migrate the
10081 rest of the machines from PAM via LDAP to PAM via Kerberos one at the
10082 time.</p>
10083
10084 <p>If you would like to contribute to get this working in Skolelinux,
10085 I recommend you to see the video recording from yesterdays NUUG
10086 presentation, and start using Kerberos at home. The video show show
10087 up in a few days.</p>
10088
10089 </div>
10090 <div class="tags">
10091
10092
10093 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>.
10094
10095
10096 </div>
10097 </div>
10098 <div class="padding"></div>
10099
10100 <div class="entry">
10101 <div class="title">
10102 <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>
10103 </div>
10104 <div class="date">
10105 6th March 2010
10106 </div>
10107 <div class="body">
10108 <p>6 years ago, as part of the Debian Edu development I am involved
10109 in, I asked for a hook in the kdm and gdm setup to run scripts as root
10110 when the user log out. A bug was submitted against the xfree86-common
10111 package in 2004 (<a href="http://bugs.debian.org/230422">#230422</a>),
10112 and revisited every time Debian Edu was working on a new release.
10113 Today, this finally paid off.</p>
10114
10115 <p>The framework for this feature was today commited to the git
10116 repositry for the xorg package, and the git repository for xdm has
10117 been updated to use this framework. Next on my agenda is to make sure
10118 kdm and gdm also add code to use this framework.</p>
10119
10120 <p>In Debian Edu, we want to ability to run commands as root when the
10121 user log out, to get rid of runaway processes and do general cleanup
10122 after a user. With this framework in place, we finally can do that in
10123 a generic way that work with all display managers using this
10124 framework. My goal is to get all display managers in Debian use it,
10125 similar to how they use the Xsession.d framework today.<p>
10126
10127 </div>
10128 <div class="tags">
10129
10130
10131 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>.
10132
10133
10134 </div>
10135 </div>
10136 <div class="padding"></div>
10137
10138 <div class="entry">
10139 <div class="title">
10140 <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>
10141 </div>
10142 <div class="date">
10143 11th February 2010
10144 </div>
10145 <div class="body">
10146 <p>On Tuesday, the Debian/Lenny based version of
10147 <a href="http://www.skolelinux.org/">Skolelinux</a> was finally
10148 shipped. This was a major leap forward for the project, and I am very
10149 pleased that we finally got the release wrapped up. Work on the first
10150 point release starts imediately, as we plan to get that one out a
10151 month after the major release, to include all fixes for bugs we found
10152 and fixed too late in the release process to include last Tuesday.</p>
10153
10154 <p>Perhaps it even is time for some partying?</p>
10155
10156 <p>After this first point release, my plan is to focus again on the
10157 next major release, based on Squeeze. We will try to get as many of
10158 the fixes we need into the official Debian packages before the freeze,
10159 and have just a few weeks or months to make it happen.</p>
10160
10161 </div>
10162 <div class="tags">
10163
10164
10165 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>.
10166
10167
10168 </div>
10169 </div>
10170 <div class="padding"></div>
10171
10172 <div class="entry">
10173 <div class="title">
10174 <a href="http://people.skolelinux.org/pere/blog/Automatic_Munin_and_Nagios_configuration.html">Automatic Munin and Nagios configuration</a>
10175 </div>
10176 <div class="date">
10177 27th January 2010
10178 </div>
10179 <div class="body">
10180 <p>One of the new features in the next Debian/Lenny based release of
10181 Debian Edu/Skolelinux, which is scheduled for release in the next few
10182 days, is automatic configuration of the service monitoring system
10183 Nagios. The previous release had automatic configuration of trend
10184 analysis using Munin, and this Lenny based release take that a step
10185 further.</p>
10186
10187 <p>When installing a Debian Edu Main-server, it is automatically
10188 configured as a Munin and Nagios server. In addition, it is
10189 configured to be a server for the
10190 <a href="http://wiki.debian.org/DebianEdu/HowTo/SiteSummary">SiteSummary
10191 system</a> I have written for use in Debian Edu. The SiteSummary
10192 system is inspired by a system used by the University of Oslo where I
10193 work. In short, the system provide a centralised collector of
10194 information about the computers on the network, and a client on each
10195 computer submitting information to this collector. This allow for
10196 automatic information on which packages are installed on each machine,
10197 which kernel the machines are using, what kind of configuration the
10198 packages got etc. This also allow us to automatically generate Munin
10199 and Nagios configuration.</p>
10200
10201 <p>All computers reporting to the sitesummary collector with the
10202 munin-node package installed is automatically enabled as a Munin
10203 client and graphs from the statistics collected from that machine show
10204 up automatically on http://www/munin/ on the Main-server.</p>
10205
10206 <p>All non-laptop computers reporting to the sitesummary collector are
10207 automatically monitored for network presence (ping and any network
10208 services detected). In addition, all computers (also laptops) with
10209 the nagios-nrpe-server package installed and configured the way
10210 sitesummary would configure it, are monitored for full disks, software
10211 raid status, swap free and other checks that need to run locally on
10212 the machine.</p>
10213
10214 <p>The result is that the administrator on a school using Debian Edu
10215 based on Lenny will be able to check the health of his installation
10216 with one look at the Nagios settings, without having to spend any time
10217 keeping the Nagios configuration up-to-date.</p>
10218
10219 <p>The only configuration one need to do to get Nagios up and running
10220 is to set the password used to get access via HTTP. The system
10221 administrator need to run "<tt>htpasswd /etc/nagios3/htpasswd.users
10222 nagiosadmin</tt>" to create a nagiosadmin user and set a password for
10223 it to be able to log into the Nagios web pages. After that,
10224 everything is taken care of.</p>
10225
10226 </div>
10227 <div class="tags">
10228
10229
10230 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>.
10231
10232
10233 </div>
10234 </div>
10235 <div class="padding"></div>
10236
10237 <div class="entry">
10238 <div class="title">
10239 <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>
10240 </div>
10241 <div class="date">
10242 12th August 2009
10243 </div>
10244 <div class="body">
10245 <p>Just for fun, I did a search right now on Google for a few file ODF
10246 and MS Office based formats (not to be mistaken for ISO or ECMA
10247 OOXML), to get an idea of their relative usage. I searched using
10248 'filetype:odt' and equvalent terms, and got these results:</P>
10249
10250 <table>
10251 <tr><th>Type</th><th>ODF</th><th>MS Office</th></tr>
10252 <tr><td>Tekst</td> <td>odt:282000</td> <td>docx:308000</td></tr>
10253 <tr><td>Presentasjon</td> <td>odp:75600</td> <td>pptx:183000</td></tr>
10254 <tr><td>Regneark</td> <td>ods:26500 </td> <td>xlsx:145000</td></tr>
10255 </table>
10256
10257 <p>Next, I added a 'site:no' limit to get the numbers for Norway, and
10258 got these numbers:</p>
10259
10260 <table>
10261 <tr><th>Type</th><th>ODF</th><th>MS Office</th></tr>
10262 <tr><td>Tekst</td> <td>odt:2480 </td> <td>docx:4460</td></tr>
10263 <tr><td>Presentasjon</td> <td>odp:299 </td> <td>pptx:741</td></tr>
10264 <tr><td>Regneark</td> <td>ods:187 </td> <td>xlsx:372</td></tr>
10265 </table>
10266
10267 <p>I wonder how these numbers change over time.</p>
10268
10269 <p>I am aware of Google returning different results and numbers based
10270 on where the search is done, so I guess these numbers will differ if
10271 they are conduced in another country. Because of this, I did the same
10272 search from a machine in California, USA, a few minutes after the
10273 search done from a machine here in Norway.</p>
10274
10275
10276 <table>
10277 <tr><th>Type</th><th>ODF</th><th>MS Office</th></tr>
10278 <tr><td>Tekst</td> <td>odt:129000</td> <td>docx:308000</td></tr>
10279 <tr><td>Presentasjon</td> <td>odp:44200</td> <td>pptx:93900</td></tr>
10280 <tr><td>Regneark</td> <td>ods:26500 </td> <td>xlsx:82400</td></tr>
10281 </table>
10282
10283 <p>And with 'site:no':
10284
10285 <table>
10286 <tr><th>Type</th><th>ODF</th><th>MS Office</th></tr>
10287 <tr><td>Tekst</td> <td>odt:2480</td> <td>docx:3410</td></tr>
10288 <tr><td>Presentasjon</td> <td>odp:175</td> <td>pptx:604</td></tr>
10289 <tr><td>Regneark</td> <td>ods:186 </td> <td>xlsx:296</td></tr>
10290 </table>
10291
10292 <p>Interesting difference, not sure what to conclude from these
10293 numbers.</p>
10294
10295 </div>
10296 <div class="tags">
10297
10298
10299 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>.
10300
10301
10302 </div>
10303 </div>
10304 <div class="padding"></div>
10305
10306 <div class="entry">
10307 <div class="title">
10308 <a href="http://people.skolelinux.org/pere/blog/ISO_still_hope_to_fix_OOXML.html">ISO still hope to fix OOXML</a>
10309 </div>
10310 <div class="date">
10311 8th August 2009
10312 </div>
10313 <div class="body">
10314 <p>According to <a
10315 href="http://twerner.blogspot.com/2009/08/defects-of-office-open-xml.html">a
10316 blog post from Torsten Werner</a>, the current defect report for ISO
10317 29500 (ISO OOXML) is 809 pages. His interesting point is that the
10318 defect report is 71 pages more than the full ODF 1.1 specification.
10319 Personally I find it more interesting that ISO still believe ISO OOXML
10320 can be fixed in ISO. Personally, I believe it is broken beyon repair,
10321 and I completely lack any trust in ISO for being able to get anywhere
10322 close to solving the problems. I was part of the Norwegian committee
10323 involved in the OOXML fast track process, and was not impressed with
10324 Standard Norway and ISO in how they handled it.</p>
10325
10326 <p>These days I focus on ODF instead, which seem like a specification
10327 with the future ahead of it. We are working in NUUG to organise a ODF
10328 seminar this autumn.</p>
10329
10330 </div>
10331 <div class="tags">
10332
10333
10334 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>.
10335
10336
10337 </div>
10338 </div>
10339 <div class="padding"></div>
10340
10341 <div class="entry">
10342 <div class="title">
10343 <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>
10344 </div>
10345 <div class="date">
10346 27th July 2009
10347 </div>
10348 <div class="body">
10349 <p>Since this evening, with the upload of sysvinit version 2.87dsf-2,
10350 and the upload of insserv version 1.12.0-10 yesterday, Debian unstable
10351 have been migrated to using dependency based boot sequencing. This
10352 conclude work me and others have been doing for the last three days.
10353 It feels great to see this finally part of the default Debian
10354 installation. Now we just need to weed out the last few problems that
10355 are bound to show up, to get everything ready for Squeeze.</p>
10356
10357 <p>The next step is migrating /sbin/init from sysvinit to upstart, and
10358 fixing the more fundamental problem of handing the event based
10359 non-predictable kernel in the early boot.</p>
10360
10361 </div>
10362 <div class="tags">
10363
10364
10365 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>.
10366
10367
10368 </div>
10369 </div>
10370 <div class="padding"></div>
10371
10372 <div class="entry">
10373 <div class="title">
10374 <a href="http://people.skolelinux.org/pere/blog/Taking_over_sysvinit_development.html">Taking over sysvinit development</a>
10375 </div>
10376 <div class="date">
10377 22nd July 2009
10378 </div>
10379 <div class="body">
10380 <p>After several years of frustration with the lack of activity from
10381 the existing sysvinit upstream developer, I decided a few weeks ago to
10382 take over the package and become the new upstream. The number of
10383 patches to track for the Debian package was becoming a burden, and the
10384 lack of synchronization between the distribution made it hard to keep
10385 the package up to date.</p>
10386
10387 <p>On the new sysvinit team is the SuSe maintainer Dr. Werner Fink,
10388 and my Debian co-maintainer Kel Modderman. About 10 days ago, I made
10389 a new upstream tarball with version number 2.87dsf (for Debian, SuSe
10390 and Fedora), based on the patches currently in use in these
10391 distributions. We Debian maintainers plan to move to this tarball as
10392 the new upstream as soon as we find time to do the merge. Since the
10393 new tarball was created, we agreed with Werner at SuSe to make a new
10394 upstream project at <a href="http://savannah.nongnu.org/">Savannah</a>, and continue
10395 development there. The project is registered and currently waiting
10396 for approval by the Savannah administrators, and as soon as it is
10397 approved, we will import the old versions from svn and continue
10398 working on the future release.</p>
10399
10400 <p>It is a bit ironic that this is done now, when some of the involved
10401 distributions are moving to upstart as a syvinit replacement.</p>
10402
10403 </div>
10404 <div class="tags">
10405
10406
10407 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>.
10408
10409
10410 </div>
10411 </div>
10412 <div class="padding"></div>
10413
10414 <div class="entry">
10415 <div class="title">
10416 <a href="http://people.skolelinux.org/pere/blog/Debian_boots_quicker_and_quicker.html">Debian boots quicker and quicker</a>
10417 </div>
10418 <div class="date">
10419 24th June 2009
10420 </div>
10421 <div class="body">
10422 <p>I spent Monday and tuesday this week in London with a lot of the
10423 people involved in the boot system on Debian and Ubuntu, to see if we
10424 could find more ways to speed up the boot system. This was an Ubuntu
10425 funded
10426 <a href="https://wiki.ubuntu.com/FoundationsTeam/BootPerformance/DebianUbuntuSprint">developer
10427 gathering</a>. It was quite productive. We also discussed the future
10428 of boot systems, and ways to handle the increasing number of boot
10429 issues introduced by the Linux kernel becoming more and more
10430 asynchronous and event base. The Ubuntu approach using udev and
10431 upstart might be a good way forward. Time will show.</p>
10432
10433 <p>Anyway, there are a few ways at the moment to speed up the boot
10434 process in Debian. All of these should be applied to get a quick
10435 boot:</p>
10436
10437 <ul>
10438
10439 <li>Use dash as /bin/sh.</li>
10440
10441 <li>Disable the init.d/hwclock*.sh scripts and make sure the hardware
10442 clock is in UTC.</li>
10443
10444 <li>Install and activate the insserv package to enable
10445 <a href="http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot">dependency
10446 based boot sequencing</a>, and enable concurrent booting.</li>
10447
10448 </ul>
10449
10450 These points are based on the Google summer of code work done by
10451 <a href="http://initscripts-ng.alioth.debian.org/soc2006-bootsystem/">Carlos
10452 Villegas</a>.
10453
10454 <p>Support for makefile-style concurrency during boot was uploaded to
10455 unstable yesterday. When we tested it, we were able to cut 6 seconds
10456 from the boot sequence. It depend on very correct dependency
10457 declaration in all init.d scripts, so I expect us to find edge cases
10458 where the dependences in some scripts are slightly wrong when we start
10459 using this.</p>
10460
10461 <p>On our IRC channel for this effort, #pkg-sysvinit, a new idea was
10462 introduced by Raphael Geissert today, one that could affect the
10463 startup speed as well. Instead of starting some scripts concurrently
10464 from rcS.d/ and another set of scripts from rc2.d/, it would be
10465 possible to run a of them in the same process. A quick way to test
10466 this would be to enable insserv and run 'mv /etc/rc2.d/S* /etc/rcS.d/;
10467 insserv'. Will need to test if that work. :)</p>
10468
10469 </div>
10470 <div class="tags">
10471
10472
10473 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>.
10474
10475
10476 </div>
10477 </div>
10478 <div class="padding"></div>
10479
10480 <div class="entry">
10481 <div class="title">
10482 <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>
10483 </div>
10484 <div class="date">
10485 2nd May 2009
10486 </div>
10487 <div class="body">
10488 <p>There are two software projects that have had huge influence on the
10489 quality of free software, and I wanted to mention both in case someone
10490 do not yet know them.</p>
10491
10492 <p>The first one is <a href="http://valgrind.org/">valgrind</a>, a
10493 tool to detect and expose errors in the memory handling of programs.
10494 It is easy to use, all one need to do is to run 'valgrind program',
10495 and it will report any problems on stdout. It is even better if the
10496 program include debug information. With debug information, it is able
10497 to report the source file name and line number where the problem
10498 occurs. It can report things like 'reading past memory block in file
10499 X line N, the memory block was allocated in file Y, line M', and
10500 'using uninitialised value in control logic'. This tool has made it
10501 trivial to investigate reproducible crash bugs in programs, and have
10502 reduced the number of this kind of bugs in free software a lot.
10503
10504 <p>The second one is
10505 <a href="http://en.wikipedia.org/wiki/Coverity">Coverity</a> which is
10506 a source code checker. It is able to process the source of a program
10507 and find problems in the logic without running the program. It
10508 started out as the Stanford Checker and became well known when it was
10509 used to find bugs in the Linux kernel. It is now a commercial tool
10510 and the company behind it is running
10511 <a href="http://www.scan.coverity.com/">a community service</a> for the
10512 free software community, where a lot of free software projects get
10513 their source checked for free. Several thousand defects have been
10514 found and fixed so far. It can find errors like 'lock L taken in file
10515 X line N is never released if exiting in line M', or 'the code in file
10516 Y lines O to P can never be executed'. The projects included in the
10517 community service project have managed to get rid of a lot of
10518 reliability problems thanks to Coverity.</p>
10519
10520 <p>I believe tools like this, that are able to automatically find
10521 errors in the source, are vital to improve the quality of software and
10522 make sure we can get rid of the crashing and failing software we are
10523 surrounded by today.</p>
10524
10525 </div>
10526 <div class="tags">
10527
10528
10529 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>.
10530
10531
10532 </div>
10533 </div>
10534 <div class="padding"></div>
10535
10536 <div class="entry">
10537 <div class="title">
10538 <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>
10539 </div>
10540 <div class="date">
10541 28th April 2009
10542 </div>
10543 <div class="body">
10544 <p>Julien Blache
10545 <a href="http://blog.technologeek.org/2009/04/12/214">claim that no
10546 patch is better than a useless patch</a>. I completely disagree, as a
10547 patch allow one to discuss a concrete and proposed solution, and also
10548 prove that the issue at hand is important enough for someone to spent
10549 time on fixing it. No patch do not provide any of these positive
10550 properties.</p>
10551
10552 </div>
10553 <div class="tags">
10554
10555
10556 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>.
10557
10558
10559 </div>
10560 </div>
10561 <div class="padding"></div>
10562
10563 <div class="entry">
10564 <div class="title">
10565 <a href="http://people.skolelinux.org/pere/blog/Recording_video_from_cron_using_VLC.html">Recording video from cron using VLC</a>
10566 </div>
10567 <div class="date">
10568 5th April 2009
10569 </div>
10570 <div class="body">
10571 <p>One think I have wanted to figure out for a along time is how to
10572 run vlc from cron to do recording of video streams on the net. The
10573 task is trivial with mplayer, but I do not really trust the security
10574 of mplayer (it crashes too often on strange input), and thus prefer
10575 vlc. I finally found a way to do it today. I spent an hour or so
10576 searching the web for recipes and reading the documentation. The
10577 hardest part was to get rid of the GUI window, but after finding the
10578 dummy interface, the command line finally presented itself:</p>
10579
10580 <blockquote><pre>URL=http://www.ping.uio.no/video/rms-oslo_2009.ogg
10581 SAVEFILE=rms.ogg
10582 DISPLAY= vlc -q $URL \
10583 --sout="#duplicate{dst=std{access=file,url='$SAVEFILE'},dst=nodisplay}" \
10584 --intf=dummy</pre></blockquote>
10585
10586 <p>The command stream the URL and store it in the SAVEFILE by
10587 duplicating the output stream to "nodisplay" and the file, using the
10588 dummy interface. The dummy interface and the nodisplay output make
10589 sure no X interface is needed.</p>
10590
10591 <p>The cron job then need to start this job with the appropriate URL
10592 and file name to save, sleep for the duration wanted, and then kill
10593 the vlc process with SIGTERM. Here is a complete script
10594 <tt>vlc-record</tt> to use from <tt>at</tt> or <tt>cron</tt>:</p>
10595
10596 <blockquote><pre>#!/bin/sh
10597 set -e
10598 URL="$1"
10599 SAVEFILE="$2"
10600 DURATION="$3"
10601 DISPLAY= vlc -q "$URL" \
10602 --sout="#duplicate{dst=std{access=file,url='$SAVEFILE'},dst=nodisplay}" \
10603 --intf=dummy < /dev/null > /dev/null 2>&1 &
10604 pid=$!
10605 sleep $DURATION
10606 kill $pid
10607 wait $pid</pre></blockquote>
10608
10609 </div>
10610 <div class="tags">
10611
10612
10613 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>.
10614
10615
10616 </div>
10617 </div>
10618 <div class="padding"></div>
10619
10620 <div class="entry">
10621 <div class="title">
10622 <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>
10623 </div>
10624 <div class="date">
10625 30th March 2009
10626 </div>
10627 <div class="body">
10628 <p>Where I work at the University of Oslo, one decision stand out as a
10629 very good one to form a long lived computer infrastructure. It is the
10630 simple one, lost by many in todays computer industry: Standardize on
10631 open network protocols and open exchange/storage formats, not applications.
10632 Applications come and go, while protocols and files tend to stay, and
10633 thus one want to make it easy to change application and vendor, while
10634 avoiding conversion costs and locking users to a specific platform or
10635 application.</p>
10636
10637 <p>This approach make it possible to replace the client applications
10638 independently of the server applications. One can even allow users to
10639 use several different applications as long as they handle the selected
10640 protocol and format. In the normal case, only one client application
10641 is recommended and users only get help if they choose to use this
10642 application, but those that want to deviate from the easy path are not
10643 blocked from doing so.</p>
10644
10645 <p>It also allow us to replace the server side without forcing the
10646 users to replace their applications, and thus allow us to select the
10647 best server implementation at any moment, when scale and resouce
10648 requirements change.</p>
10649
10650 <p>I strongly recommend standardizing - on open network protocols and
10651 open formats, but I would never recommend standardizing on a single
10652 application that do not use open network protocol or open formats.</p>
10653
10654 </div>
10655 <div class="tags">
10656
10657
10658 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>.
10659
10660
10661 </div>
10662 </div>
10663 <div class="padding"></div>
10664
10665 <div class="entry">
10666 <div class="title">
10667 <a href="http://people.skolelinux.org/pere/blog/Returning_from_Skolelinux_developer_gathering.html">Returning from Skolelinux developer gathering</a>
10668 </div>
10669 <div class="date">
10670 29th March 2009
10671 </div>
10672 <div class="body">
10673 <p>I'm sitting on the train going home from this weekends Debian
10674 Edu/Skolelinux development gathering. I got a bit done tuning the
10675 desktop, and looked into the dynamic service location protocol
10676 implementation avahi. It look like it could be useful for us. Almost
10677 30 people participated, and I believe it was a great environment to
10678 get to know the Skolelinux system. Walter Bender, involved in the
10679 development of the Sugar educational platform, presented his stuff and
10680 also helped me improve my OLPC installation. He also showed me that
10681 his Turtle Art application can be used in standalone mode, and we
10682 agreed that I would help getting it packaged for Debian. As a
10683 standalone application it would be great for Debian Edu. We also
10684 tried to get the video conferencing working with two OLPCs, but that
10685 proved to be too hard for us. The application seem to need more work
10686 before it is ready for me. I look forward to getting home and relax
10687 now. :)</p>
10688
10689 </div>
10690 <div class="tags">
10691
10692
10693 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>.
10694
10695
10696 </div>
10697 </div>
10698 <div class="padding"></div>
10699
10700 <div class="entry">
10701 <div class="title">
10702 <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>
10703 </div>
10704 <div class="date">
10705 29th March 2009
10706 </div>
10707 <div class="body">
10708 <p>The state of standardized LDAP schemas on Linux is far from
10709 optimal. There is RFC 2307 documenting one way to store NIS maps in
10710 LDAP, and a modified version of this normally called RFC 2307bis, with
10711 some modifications to be compatible with Active Directory. The RFC
10712 specification handle the content of a lot of system databases, but do
10713 not handle DNS zones and DHCP configuration.</p>
10714
10715 <p>In <a href="http://www.skolelinux.org/">Debian Edu/Skolelinux</a>,
10716 we would like to store information about users, SMB clients/hosts,
10717 filegroups, netgroups (users and hosts), DHCP and DNS configuration,
10718 and LTSP configuration in LDAP. These objects have a lot in common,
10719 but with the current LDAP schemas it is not possible to have one
10720 object per entity. For example, one need to have at least three LDAP
10721 objects for a given computer, one with the SMB related stuff, one with
10722 DNS information and another with DHCP information. The schemas
10723 provided for DNS and DHCP are impossible to combine into one LDAP
10724 object. In addition, it is impossible to implement quick queries for
10725 netgroup membership, because of the way NIS triples are implemented.
10726 It just do not scale. I believe it is time for a few RFC
10727 specifications to cleam up this mess.</p>
10728
10729 <p>I would like to have one LDAP object representing each computer in
10730 the network, and this object can then keep the SMB (ie host key), DHCP
10731 (mac address/name) and DNS (name/IP address) settings in one place.
10732 It need to be efficently stored to make sure it scale well.</p>
10733
10734 <p>I would also like to have a quick way to map from a user or
10735 computer and to the net group this user or computer is a member.</p>
10736
10737 <p>Active Directory have done a better job than unix heads like myself
10738 in this regard, and the unix side need to catch up. Time to start a
10739 new IETF work group?</p>
10740
10741 </div>
10742 <div class="tags">
10743
10744
10745 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>.
10746
10747
10748 </div>
10749 </div>
10750 <div class="padding"></div>
10751
10752 <div class="entry">
10753 <div class="title">
10754 <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>
10755 </div>
10756 <div class="date">
10757 28th February 2009
10758 </div>
10759 <div class="body">
10760 <p>At work, we have a few hundred Linux servers, and with that amount
10761 of hardware it is important to keep track of when the hardware support
10762 contract expire for each server. We have a machine (and service)
10763 register, which until recently did not contain much useful besides the
10764 machine room location and contact information for the system owner for
10765 each machine. To make it easier for us to track support contract
10766 status, I've recently spent time on extending the machine register to
10767 include information about when the support contract expire, and to tag
10768 machines with expired contracts to make it easy to get a list of such
10769 machines. I extended a perl script already being used to import
10770 information about machines into the register, to also do some screen
10771 scraping off the sites of Dell, HP and IBM (our majority of machines
10772 are from these vendors), and automatically check the support status
10773 for the relevant machines. This make the support status information
10774 easily available and I hope it will make it easier for the computer
10775 owner to know when to get new hardware or renew the support contract.
10776 The result of this work documented that 27% of the machines in the
10777 registry is without a support contract, and made it very easy to find
10778 them. 27% might seem like a lot, but I see it more as the case of us
10779 using machines a bit longer than the 3 years a normal support contract
10780 last, to have test machines and a platform for less important
10781 services. After all, the machines without a contract are working fine
10782 at the moment and the lack of contract is only a problem if any of
10783 them break down. When that happen, we can either fix it using spare
10784 parts from other machines or move the service to another old
10785 machine.</p>
10786
10787 <p>I believe the code for screen scraping the Dell site was originally
10788 written by Trond Hasle Amundsen, and later adjusted by me and Morten
10789 Werner Forsbring. The HP scraping was written by me after reading a
10790 nice article in ;login: about how to use WWW::Mechanize, and the IBM
10791 scraping was written by me based on the Dell code. I know the HTML
10792 parsing could be done using nice libraries, but did not want to
10793 introduce more dependencies. This is the current incarnation:</p>
10794
10795 <pre>
10796 use LWP::Simple;
10797 use POSIX;
10798 use WWW::Mechanize;
10799 use Date::Parse;
10800 [...]
10801 sub get_support_info {
10802 my ($machine, $model, $serial, $productnumber) = @_;
10803 my $str;
10804
10805 if ( $model =~ m/^Dell / ) {
10806 # fetch website from Dell support
10807 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";
10808 my $webpage = get($url);
10809 return undef unless ($webpage);
10810
10811 my $daysleft = -1;
10812 my @lines = split(/\n/, $webpage);
10813 foreach my $line (@lines) {
10814 next unless ($line =~ m/Beskrivelse/);
10815 $line =~ s/&lt;[^>]+?>/;/gm;
10816 $line =~ s/^.+?;(Beskrivelse;)/$1/;
10817
10818 my @f = split(/\;/, $line);
10819 @f = @f[13 .. $#f];
10820 my $lastend = "";
10821 while ($f[3] eq "DELL") {
10822 my ($type, $startstr, $endstr, $days) = @f[0, 5, 7, 10];
10823
10824 my $start = POSIX::strftime("%Y-%m-%d",
10825 localtime(str2time($startstr)));
10826 my $end = POSIX::strftime("%Y-%m-%d",
10827 localtime(str2time($endstr)));
10828 $str .= "$type $start -> $end ";
10829 @f = @f[14 .. $#f];
10830 $lastend = $end if ($end gt $lastend);
10831 }
10832 my $today = POSIX::strftime("%Y-%m-%d", localtime(time));
10833 tag_machine_unsupported($machine)
10834 if ($lastend lt $today);
10835 }
10836 } elsif ( $model =~ m/^HP / ) {
10837 my $mech = WWW::Mechanize->new();
10838 my $url =
10839 'http://www1.itrc.hp.com/service/ewarranty/warrantyInput.do';
10840 $mech->get($url);
10841 my $fields = {
10842 'BODServiceID' => 'NA',
10843 'RegisteredPurchaseDate' => '',
10844 'country' => 'NO',
10845 'productNumber' => $productnumber,
10846 'serialNumber1' => $serial,
10847 };
10848 $mech->submit_form( form_number => 2,
10849 fields => $fields );
10850 # Next step is screen scraping
10851 my $content = $mech->content();
10852
10853 $content =~ s/&lt;[^>]+?>/;/gm;
10854 $content =~ s/\s+/ /gm;
10855 $content =~ s/;\s*;/;;/gm;
10856 $content =~ s/;[\s;]+/;/gm;
10857
10858 my $today = POSIX::strftime("%Y-%m-%d", localtime(time));
10859
10860 while ($content =~ m/;Warranty Type;/) {
10861 my ($type, $status, $startstr, $stopstr) = $content =~
10862 m/;Warranty Type;([^;]+);.+?;Status;(\w+);Start Date;([^;]+);End Date;([^;]+);/;
10863 $content =~ s/^.+?;Warranty Type;//;
10864 my $start = POSIX::strftime("%Y-%m-%d",
10865 localtime(str2time($startstr)));
10866 my $end = POSIX::strftime("%Y-%m-%d",
10867 localtime(str2time($stopstr)));
10868
10869 $str .= "$type ($status) $start -> $end ";
10870
10871 tag_machine_unsupported($machine)
10872 if ($end lt $today);
10873 }
10874 } elsif ( $model =~ m/^IBM / ) {
10875 # This code ignore extended support contracts.
10876 my ($producttype) = $model =~ m/.*-\[(.{4}).+\]-/;
10877 if ($producttype &amp;&amp; $serial) {
10878 my $content =
10879 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");
10880 if ($content) {
10881 $content =~ s/&lt;[^>]+?>/;/gm;
10882 $content =~ s/\s+/ /gm;
10883 $content =~ s/;\s*;/;;/gm;
10884 $content =~ s/;[\s;]+/;/gm;
10885
10886 $content =~ s/^.+?;Warranty status;//;
10887 my ($status, $end) = $content =~ m/;Warranty status;([^;]+)\s*;Expiration date;(\S+) ;/;
10888
10889 $str .= "($status) -> $end ";
10890
10891 my $today = POSIX::strftime("%Y-%m-%d", localtime(time));
10892 tag_machine_unsupported($machine)
10893 if ($end lt $today);
10894 }
10895 }
10896 }
10897 return $str;
10898 }
10899 </pre>
10900
10901 <p>Here are some examples on how to use the function, using fake
10902 serial numbers. The information passed in as arguments are fetched
10903 from dmidecode.</p>
10904
10905 <pre>
10906 print get_support_info("hp.host", "HP ProLiant BL460c G1", "1234567890"
10907 "447707-B21");
10908 print get_support_info("dell.host", "Dell Inc. PowerEdge 2950", "1234567");
10909 print get_support_info("ibm.host", "IBM eserver xSeries 345 -[867061X]-",
10910 "1234567");
10911 </pre>
10912
10913 <p>I would recommend this approach for tracking support contracts for
10914 everyone with more than a few computers to administer. :)</p>
10915
10916 <p>Update 2009-03-06: The IBM page do not include extended support
10917 contracts, so it is useless in that case. The original Dell code do
10918 not handle extended support contracts either, but has been updated to
10919 do so.</p>
10920
10921 </div>
10922 <div class="tags">
10923
10924
10925 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>.
10926
10927
10928 </div>
10929 </div>
10930 <div class="padding"></div>
10931
10932 <div class="entry">
10933 <div class="title">
10934 <a href="http://people.skolelinux.org/pere/blog/Using_bar_codes_at_a_computing_center.html">Using bar codes at a computing center</a>
10935 </div>
10936 <div class="date">
10937 20th February 2009
10938 </div>
10939 <div class="body">
10940 <p>At work with the University of Oslo, we have several hundred computers
10941 in our computing center. This give us a challenge in tracking the
10942 location and cabling of the computers, when they are added, moved and
10943 removed. Some times the location register is not updated when a
10944 computer is inserted or moved and we then have to search the room for
10945 the "missing" computer.</p>
10946
10947 <p>In the last issue of Linux Journal, I came across a project
10948 <a href="http://www.libdmtx.org/">libdmtx</a> to write and read bar
10949 code blocks as defined in the
10950 <a href="http://en.wikipedia.org/wiki/Data_Matrix">The Data Matrix
10951 Standard</a>. This is bar codes that can be read with a normal
10952 digital camera, for example that on a cell phone, and several such bar
10953 codes can be read by libdmtx from one picture. The bar code standard
10954 allow up to 2 KiB to be written in the tag. There is another project
10955 with <a href="http://www.terryburton.co.uk/barcodewriter/">a bar code
10956 writer written in postscript</a> capable of creating such bar codes,
10957 but this was the first time I found a tool to read these bar
10958 codes.</p>
10959
10960 <p>It occurred to me that this could be used to tag and track the
10961 machines in our computing center. If both racks and computers are
10962 tagged this way, we can use a picture of the rack and all its
10963 computers to detect the rack location of any computer in that rack.
10964 If we do this regularly for the entire room, we will find all
10965 locations, and can detect movements and removals.</p>
10966
10967 <p>I decided to test if this would work in practice, and picked a
10968 random rack and tagged all the machines with their names. Next, I
10969 took pictures with my digital camera, and gave the dmtxread program
10970 these JPEG pictures to see how many tags it could read. This worked
10971 fairly well. If the pictures was well focused and not taken from the
10972 side, all tags in the image could be read. Because of limited space
10973 between the racks, I was unable to get a good picture of the entire
10974 rack, but could without problem read all tags from a picture covering
10975 about half the rack. I had to limit the search time used by dmtxread
10976 to 60000 ms to make sure it terminated in a reasonable time frame.</p>
10977
10978 <p>My conclusion is that this could work, and we should probably look
10979 at adjusting our computer tagging procedures to use bar codes for
10980 easier automatic tracking of computers.</p>
10981
10982 </div>
10983 <div class="tags">
10984
10985
10986 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>.
10987
10988
10989 </div>
10990 </div>
10991 <div class="padding"></div>
10992
10993 <div class="entry">
10994 <div class="title">
10995 <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>
10996 </div>
10997 <div class="date">
10998 17th January 2009
10999 </div>
11000 <div class="body">
11001 <p>As part of the work we do in <a href="http://www.nuug.no">NUUG</a>
11002 to publish video recordings of our monthly presentations, we provide a
11003 page with embedded video for easy access to the recording. Putting a
11004 good set of HTML tags together to get working embedded video in all
11005 browsers and across all operating systems is not easy. I hope this
11006 will become easier when the &lt;video&gt; tag is implemented in all
11007 browsers, but I am not sure. We provide the recordings in several
11008 formats, MPEG1, Ogg Theora, H.264 and Quicktime, and want the
11009 browser/media plugin to pick one it support and use it to play the
11010 recording, using whatever embed mechanism the browser understand.
11011 There is at least four different tags to use for this, the new HTML5
11012 &lt;video&gt; tag, the &lt;object&gt; tag, the &lt;embed&gt; tag and
11013 the &lt;applet&gt; tag. All of these take a lot of options, and
11014 finding the best options is a major challenge.</p>
11015
11016 <p>I just tested the experimental Opera browser available from <a
11017 href="http://labs.opera.com">labs.opera.com</a>, to see how it handled
11018 a &lt;video&gt; tag with a few video sources and no extra attributes.
11019 I was not very impressed. The browser start by fetching a picture
11020 from the video stream. Not sure if it is the first frame, but it is
11021 definitely very early in the recording. So far, so good. Next,
11022 instead of streaming the 76 MiB video file, it start to download all
11023 of it, but do not start to play the video. This mean I have to wait
11024 for several minutes for the downloading to finish. When the download
11025 is done, the playing of the video do not start! Waiting for the
11026 download, but I do not get to see the video? Some testing later, I
11027 discover that I have to add the controls="true" attribute to be able
11028 to get a play button to pres to start the video. Adding
11029 autoplay="true" did not help. I sure hope this is a misfeature of the
11030 test version of Opera, and that future implementations of the
11031 &lt;video&gt; tag will stream recordings by default, or at least start
11032 playing when the download is done.</p>
11033
11034 <p>The test page I used (since changed to add more attributes) is
11035 <a href="http://www.nuug.no/aktiviteter/20090113-foredrag-om-foredrag/">available
11036 from the nuug site</a>. Will have to test it with the new Firefox
11037 too.</p>
11038
11039 <p>In the test process, I discovered a missing feature. I was unable
11040 to find a way to get the URL of the playing video out of Opera, so I
11041 am not quite sure it picked the Ogg Theora version of the video. I
11042 sure hope it was using the announced Ogg Theora support. :)</p>
11043
11044 </div>
11045 <div class="tags">
11046
11047
11048 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>.
11049
11050
11051 </div>
11052 </div>
11053 <div class="padding"></div>
11054
11055 <div class="entry">
11056 <div class="title">
11057 <a href="http://people.skolelinux.org/pere/blog/Software_video_mixer_on_a_USB_stick.html">Software video mixer on a USB stick</a>
11058 </div>
11059 <div class="date">
11060 28th December 2008
11061 </div>
11062 <div class="body">
11063 <p>The <a href="http://www.nuug.no/">Norwegian Unix User Group</a> is
11064 recording our montly presentation on video, and recently we have
11065 worked on improving the quality of the recordings by mixing the slides
11066 directly with the video stream. For this, we use the
11067 <a href="http://dvswitch.alioth.debian.org/">dvswitch</a> package from
11068 the Debian video team. As this require quite one computer per video
11069 source, and NUUG do not have enough laptops available, we need to
11070 borrow laptops. And to avoid having to install extra software on
11071 these borrwed laptops, I have wrapped up all the programs needed on a
11072 bootable USB stick. The software required is dvswitch with assosiated
11073 source, sink and mixer applications and
11074 <a href="http://www.kinodv.org/">dvgrab</a>. To allow this setup to
11075 work without any configuration, I've patched dvswitch to use
11076 <a href="http://www.avahi.org/">avahi</a> to connect the various parts
11077 together. And to allow us to use laptops without firewire plugs, I
11078 upgraded dvgrab to the one from Debian/unstable to get one that work
11079 with USB sources. We have not yet tested this setup in a production
11080 setup, but I hope it will work properly, and allow us to set up a
11081 video mixer in a very short time frame. We will need it for
11082 <a href="http://www.goopen.no/">Go Open 2009</a>.</p>
11083
11084 <p><a href="http://www.nuug.no/pub/video/bin/usbstick-dvswitch.img.gz">The
11085 USB image</a> is for a 1 GB memory stick, but can be used on any
11086 larger stick as well.</p>
11087
11088 </div>
11089 <div class="tags">
11090
11091
11092 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>.
11093
11094
11095 </div>
11096 </div>
11097 <div class="padding"></div>
11098
11099 <div class="entry">
11100 <div class="title">
11101 <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>
11102 </div>
11103 <div class="date">
11104 7th December 2008
11105 </div>
11106 <div class="body">
11107 <p>This weekend we had a small developer gathering for Debian Edu in
11108 Oslo. Most of Saturday was used for the general assemly for the
11109 member organization, but the rest of the weekend I used to tune the
11110 LTSP installation. LTSP now work out of the box on the 10-network.
11111 Acer Aspire One proved to be a very nice thin client, with both
11112 screen, mouse and keybard in a small box. Was working on getting the
11113 diskless workstation setup configured out of the box, but did not
11114 finish it before the weekend was up.</p>
11115
11116 <p>Did not find time to look at the 4 VGA cards in one box we got from
11117 the Brazilian group, so that will have to wait for the next
11118 development gathering. Would love to have the Debian Edu installer
11119 automatically detect and configure a multiseat setup when it find one
11120 of these cards.</p>
11121
11122 </div>
11123 <div class="tags">
11124
11125
11126 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>.
11127
11128
11129 </div>
11130 </div>
11131 <div class="padding"></div>
11132
11133 <div class="entry">
11134 <div class="title">
11135 <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>
11136 </div>
11137 <div class="date">
11138 25th November 2008
11139 </div>
11140 <div class="body">
11141 <p>Recently I have spent some time evaluating the multimedia browser
11142 plugins available in Debian Lenny, to see which one we should use by
11143 default in Debian Edu. We need an embedded video playing plugin with
11144 control buttons to pause or stop the video, and capable of streaming
11145 all the multimedia content available on the web. The test results and
11146 notes are available on
11147 <a href="http://wiki.debian.org/DebianEdu/BrowserMultimedia">the
11148 Debian wiki</a>. I was surprised how few of the plugins are able to
11149 fill this need. My personal video player favorite, VLC, has a really
11150 bad plugin which fail on a lot of the test pages. A lot of the MIME
11151 types I would expect to work with any free software player (like
11152 video/ogg), just do not work. And simple formats like the
11153 audio/x-mplegurl format (m3u playlists), just isn't supported by the
11154 totem and vlc plugins. I hope the situation will improve soon. No
11155 wonder sites use the proprietary Adobe flash to play video.</p>
11156
11157 <p>For Lenny, we seem to end up with the mplayer plugin. It seem to
11158 be the only one fitting our needs. :/</p>
11159
11160 </div>
11161 <div class="tags">
11162
11163
11164 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>.
11165
11166
11167 </div>
11168 </div>
11169 <div class="padding"></div>
11170
11171 <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>
11172 <div id="sidebar">
11173
11174
11175
11176 <h2>Archive</h2>
11177 <ul>
11178
11179 <li>2012
11180 <ul>
11181
11182 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/01/">January (7)</a></li>
11183
11184 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/02/">February (10)</a></li>
11185
11186 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/03/">March (17)</a></li>
11187
11188 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/04/">April (12)</a></li>
11189
11190 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/05/">May (12)</a></li>
11191
11192 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/06/">June (20)</a></li>
11193
11194 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/07/">July (17)</a></li>
11195
11196 </ul></li>
11197
11198 <li>2011
11199 <ul>
11200
11201 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/01/">January (16)</a></li>
11202
11203 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/02/">February (6)</a></li>
11204
11205 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/03/">March (6)</a></li>
11206
11207 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/04/">April (7)</a></li>
11208
11209 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/05/">May (3)</a></li>
11210
11211 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/06/">June (2)</a></li>
11212
11213 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/07/">July (7)</a></li>
11214
11215 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/08/">August (6)</a></li>
11216
11217 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/09/">September (4)</a></li>
11218
11219 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/10/">October (2)</a></li>
11220
11221 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/11/">November (3)</a></li>
11222
11223 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/12/">December (1)</a></li>
11224
11225 </ul></li>
11226
11227 <li>2010
11228 <ul>
11229
11230 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/01/">January (2)</a></li>
11231
11232 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/02/">February (1)</a></li>
11233
11234 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/03/">March (3)</a></li>
11235
11236 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/04/">April (3)</a></li>
11237
11238 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/05/">May (9)</a></li>
11239
11240 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/06/">June (14)</a></li>
11241
11242 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/07/">July (12)</a></li>
11243
11244 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/08/">August (13)</a></li>
11245
11246 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/09/">September (7)</a></li>
11247
11248 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/10/">October (9)</a></li>
11249
11250 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/11/">November (13)</a></li>
11251
11252 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/12/">December (12)</a></li>
11253
11254 </ul></li>
11255
11256 <li>2009
11257 <ul>
11258
11259 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/01/">January (8)</a></li>
11260
11261 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/02/">February (8)</a></li>
11262
11263 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/03/">March (12)</a></li>
11264
11265 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/04/">April (10)</a></li>
11266
11267 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/05/">May (9)</a></li>
11268
11269 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/06/">June (3)</a></li>
11270
11271 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/07/">July (4)</a></li>
11272
11273 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/08/">August (3)</a></li>
11274
11275 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/09/">September (1)</a></li>
11276
11277 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/10/">October (2)</a></li>
11278
11279 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/11/">November (3)</a></li>
11280
11281 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/12/">December (3)</a></li>
11282
11283 </ul></li>
11284
11285 <li>2008
11286 <ul>
11287
11288 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/11/">November (5)</a></li>
11289
11290 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/12/">December (7)</a></li>
11291
11292 </ul></li>
11293
11294 </ul>
11295
11296
11297
11298 <h2>Tags</h2>
11299 <ul>
11300
11301 <li><a href="http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (13)</a></li>
11302
11303 <li><a href="http://people.skolelinux.org/pere/blog/tags/amiga">amiga (1)</a></li>
11304
11305 <li><a href="http://people.skolelinux.org/pere/blog/tags/aros">aros (1)</a></li>
11306
11307 <li><a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (2)</a></li>
11308
11309 <li><a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (12)</a></li>
11310
11311 <li><a href="http://people.skolelinux.org/pere/blog/tags/bsa">bsa (2)</a></li>
11312
11313 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian">debian (55)</a></li>
11314
11315 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (110)</a></li>
11316
11317 <li><a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan (9)</a></li>
11318
11319 <li><a href="http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
11320
11321 <li><a href="http://people.skolelinux.org/pere/blog/tags/english">english (144)</a></li>
11322
11323 <li><a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (17)</a></li>
11324
11325 <li><a href="http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (12)</a></li>
11326
11327 <li><a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (6)</a></li>
11328
11329 <li><a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju (30)</a></li>
11330
11331 <li><a href="http://people.skolelinux.org/pere/blog/tags/kart">kart (16)</a></li>
11332
11333 <li><a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap (8)</a></li>
11334
11335 <li><a href="http://people.skolelinux.org/pere/blog/tags/lenker">lenker (4)</a></li>
11336
11337 <li><a href="http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (1)</a></li>
11338
11339 <li><a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (22)</a></li>
11340
11341 <li><a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk (190)</a></li>
11342
11343 <li><a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug (142)</a></li>
11344
11345 <li><a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (4)</a></li>
11346
11347 <li><a href="http://people.skolelinux.org/pere/blog/tags/open311">open311 (2)</a></li>
11348
11349 <li><a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (34)</a></li>
11350
11351 <li><a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern (48)</a></li>
11352
11353 <li><a href="http://people.skolelinux.org/pere/blog/tags/raid">raid (1)</a></li>
11354
11355 <li><a href="http://people.skolelinux.org/pere/blog/tags/reprap">reprap (11)</a></li>
11356
11357 <li><a href="http://people.skolelinux.org/pere/blog/tags/rfid">rfid (2)</a></li>
11358
11359 <li><a href="http://people.skolelinux.org/pere/blog/tags/robot">robot (4)</a></li>
11360
11361 <li><a href="http://people.skolelinux.org/pere/blog/tags/rss">rss (1)</a></li>
11362
11363 <li><a href="http://people.skolelinux.org/pere/blog/tags/ruter">ruter (4)</a></li>
11364
11365 <li><a href="http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (2)</a></li>
11366
11367 <li><a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (23)</a></li>
11368
11369 <li><a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (4)</a></li>
11370
11371 <li><a href="http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (1)</a></li>
11372
11373 <li><a href="http://people.skolelinux.org/pere/blog/tags/standard">standard (36)</a></li>
11374
11375 <li><a href="http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (1)</a></li>
11376
11377 <li><a href="http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (4)</a></li>
11378
11379 <li><a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (10)</a></li>
11380
11381 <li><a href="http://people.skolelinux.org/pere/blog/tags/valg">valg (6)</a></li>
11382
11383 <li><a href="http://people.skolelinux.org/pere/blog/tags/video">video (32)</a></li>
11384
11385 <li><a href="http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (1)</a></li>
11386
11387 <li><a href="http://people.skolelinux.org/pere/blog/tags/web">web (25)</a></li>
11388
11389 </ul>
11390
11391
11392 </div>
11393 <p style="text-align: right">
11394 Created by <a href="http://steve.org.uk/Software/chronicle">Chronicle v4.4</a>
11395 </p>
11396
11397 </body>
11398 </html>