]> pere.pagekite.me Git - homepage.git/blob - blog/tags/english/index.html
a4dfda20cbdc61867a1473c8c067cce4cba605dc
[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/The_space_rover_coquine__or_how_I_ended_up_on_the_dark_side_of_the_moon.html">The space rover coquine, or how I ended up on the dark side of the moon</a>
26 </div>
27 <div class="date">
28 2nd June 2019
29 </div>
30 <div class="body">
31 <p>A while back a college and friend from Debian and the Skolelinux /
32 Debian Edu project approached me, asking if I knew someone that might
33 be interested in helping out with a technology project he was running
34 as a teacher at <a href="https://www.ecolefrancodanoise.dk/">L'école
35 franco-danoise</a> - the Danish-French school and kindergarden. The
36 kids were building robots, rovers. The story behind it is to build a
37 rover for use
38 <a href="http://blog.ecolefrancodanoise.dk/first-week-on-the-dark-side">on
39 the dark side of the moon</a>, and remote control it. As travel cost
40 was a bit high for the final destination, and they wanted to test the
41 concept first, he was looking for volunteers to host a rover for the
42 kids to control in a foreign country. I ended up volunteering as a
43 host, and last week the rover arrived. It took a while to arrive
44 after <a href="http://blog.ecolefrancodanoise.dk/model-moms">it was
45 built and shipped</a>, because of customs confusion. Luckily we were
46 able fix it quickly with help from my colleges at work.</p>
47
48 <p>This is what it looked like when the rover arrived. Note the cute
49 eyes looking up on me from the wrapping</p>
50
51 <img src="http://people.skolelinux.org/pere/blog/images/2019-06-02-robot-dark-side-of-moon-esken-med-det-rare-i.jpeg" width="32%" style="clear:left"/>
52 <img src="http://people.skolelinux.org/pere/blog/images/2019-06-02-robot-dark-side-of-moon-den-ser-meg.jpeg" width="32%" style="clear:left"/>
53 <img src="http://people.skolelinux.org/pere/blog/images/2019-06-02-robot-dark-side-of-moon-en-skrue-loes.jpeg" width="32%" style="clear:left"/>
54
55 <p style="text-align:left">Once the robot arrived, we needed to track
56 down batteries and figure out how to build custom firmware for it with
57 the appropriate wifi settings. I asked a friend if I could get two
58 18650 batteries from his pile of Tesla batteries (he had then from the
59 wrack of a crashed Tesla), so now the rover is running on Tesla
60 batteries.</p>
61
62 <p>Building
63 <a href="https://gitlab.com/ecolefrancodanoise/arduino-efd/">the rover
64 firmware</a> proved a bit harder, as the code did not work out of the
65 box with the Arduino IDE package in Debian Buster. I suspect this is
66 due to a unsolved
67 <a href="https://github.com/arduino/Arduino/pull/2703"> license problem
68 with arduino</a> blocking Debian from upgrading to the latest version.
69 In the end we gave up debugging why the IDE failed to find the
70 required libraries, and ended up using the Arduino Makefile from the
71 <a href="https://tracker.debian.org/pkg/arduino-mk">arduino-mk Debian
72 package</a> instead. Unfortunately the camera library is missing from
73 the Arduino environment in Debian, so we disabled the camera support
74 for the first firmware build, to get something up and running. With
75 this reduced firmware, the robot could be controlled via the
76 controller server, driving around and measuring distance using its
77 internal acoustic sensor.</p>
78
79 <p>Next, With some help from my friend in Denmark, which commited the
80 camera library into the gitlab repository for me to use, we were able
81 to build a new and more complete version of the firmware, and the
82 robot is now up and running. This is what the "commander" web page
83 look like after taking a measurement and a snapshot:</p>
84
85 <img src="http://people.skolelinux.org/pere/blog/images/2019-06-02-robot-dark-side-of-moon-commander.png" width="40%" border="1" align="center"/>
86
87 <p>If you want to learn more about this project, you can check out the
88 <a href="https://hackaday.io/project/164082-the-dark-side-challenge">The
89 Dark Side Challenge</a> Hackaday web pages.</p>
90
91 <p>As usual, if you use Bitcoin and want to show your support of my
92 activities, please send Bitcoin donations to my address
93 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
94
95 </div>
96 <div class="tags">
97
98
99 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/robot">robot</a>.
100
101
102 </div>
103 </div>
104 <div class="padding"></div>
105
106 <div class="entry">
107 <div class="title">
108 <a href="http://people.skolelinux.org/pere/blog/Nikita_version_0_4_released___free_software_archive_API_server.html">Nikita version 0.4 released - free software archive API server</a>
109 </div>
110 <div class="date">
111 22nd May 2019
112 </div>
113 <div class="body">
114 <p>This morning, a new release of
115 <a href="https://gitlab.com/OsloMet-ABI/nikita-noark5-core/">Nikita
116 Noark 5 core project</a> was
117 <a href="https://lists.nuug.no/pipermail/nikita-noark/2019-May/000468.html">announced
118 on the project mailing list</a>. The Nikita free software solution is
119 an implementation of the Norwegian archive standard Noark 5 used by
120 government offices in Norway. These were the changes in version 0.4
121 since version 0.3, see the email link above for links to a demo site:</p>
122
123 <ul>
124
125 <li>Roll out OData handling to all endpoints where applicable</li>
126 <li>Changed the relation key for "ny-journalpost" to the official one.</li>
127 <li>Better link generation on outgoing links.</li>
128 <li>Tidy up code and make code and approaches more consistent throughout
129 the codebase</li>
130 <li>Update rels to be in compliance with updated version in the
131 interface standard</li>
132 <li>Avoid printing links on empty objects as they can't have links</li>
133 <li>Small bug fixes and improvements</li>
134 <li>Start moving generation of outgoing links to @Service layer so access
135 control can be used when generating links</li>
136 <li>Log exception that was being swallowed so it's traceable</li>
137 <li>Fix name mapping problem</li>
138 <li>Update templated printing so templated should only be printed if it
139 is set true. Requires more work to roll out across entire
140 application.</li>
141 <li>Remove Record->DocumentObject as per domain model of n5v4</li>
142 <li>Add ability to delete lists filtered with OData</li>
143 <li>Return NO_CONTENT (204) on delete as per interface standard</li>
144 <li>Introduce support for ConstraintViolationException exception</li>
145 <li>Make Service classes extend NoarkService</li>
146 <li>Make code base respect X-Forwarded-Host, X-Forwarded-Proto and
147 X-Forwarded-Port</li>
148 <li>Update CorrespondencePart* code to be more in line with Single
149 Responsibility Principle</li>
150 <li>Make package name follow directory structure</li>
151 <li>Make sure Document number starts at 1, not 0</li>
152 <li>Fix isues discovered by FindBugs</li>
153 <li>Update from Date to ZonedDateTime</li>
154 <li>Fix wrong tablename</li>
155 <li>Introduce Service layer tests</li>
156 <li>Improvements to CorrespondencePart</li>
157 <li>Continued work on Class / Classificationsystem</li>
158 <li>Fix feature where authors were stored as storageLocations</li>
159 <li>Update HQL builder for OData</li>
160 <li>Update OData search capability from webpage</li>
161
162 </ul>
163
164 <p>If free and open standardized archiving API sound interesting to
165 you, please contact us on IRC
166 (<a href="irc://irc.freenode.net/%23nikita">#nikita on
167 irc.freenode.net</a>) or email
168 (<a href="https://lists.nuug.no/mailman/listinfo/nikita-noark">nikita-noark
169 mailing list</a>).</p>
170
171 <p>As usual, if you use Bitcoin and want to show your support of my
172 activities, please send Bitcoin donations to my address
173 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
174
175 </div>
176 <div class="tags">
177
178
179 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/noark5">noark5</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>.
180
181
182 </div>
183 </div>
184 <div class="padding"></div>
185
186 <div class="entry">
187 <div class="title">
188 <a href="http://people.skolelinux.org/pere/blog/MIME_type__text_vnd_sosi__for_SOSI_map_data.html">MIME type "text/vnd.sosi" for SOSI map data</a>
189 </div>
190 <div class="date">
191 20th May 2019
192 </div>
193 <div class="body">
194 <p>As part of my involvement in the work to
195 <a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard">standardise
196 a REST based API for Noark 5</a>, the Norwegian archiving standard, I
197 spent some time the last few months to try to register a
198 <a href="https://www.iana.org/assignments/media-types/">MIME type</a>
199 and <a href="https://www.nationalarchives.gov.uk/PRONOM/">PRONOM
200 code</a> for the SOSI file format. The background is that there is a
201 set of formats approved for long term storage and archiving in Norway,
202 and among these formats, SOSI is the only format missing a MIME type
203 and PRONOM code.</p>
204
205 <p>What is SOSI, you might ask? To quote Wikipedia: SOSI is short for
206 Samordnet Opplegg for Stedfestet Informasjon (literally "Coordinated
207 Approach for Spatial Information", but more commonly expanded in
208 English to Systematic Organization of Spatial Information). It is a
209 text based file format for geo-spatial vector information used in
210 Norway. Information about the SOSI format can be found in English
211 from <a href="https://en.wikipedia.org/wiki/SOSI">Wikipedia</a>. The
212 specification is available in Norwegian from
213 <a href="https://www.kartverket.no/geodataarbeid/Standarder/SOSI/">the
214 Norwegian mapping authority</a>. The SOSI standard, which originated
215 in the beginning of nineteen eighties, was the inspiration and formed the
216 basis for the XML based
217 <a href="https://en.wikipedia.org/wiki/Geography_Markup_Language">Geography
218 Markup Language</a>.</p>
219
220 <p>I have so far written
221 <a href="https://github.com/file/file/pull/67">a pattern matching
222 rule</a> for the file(1) unix tool to recognize SOSI files, submitted
223 a request to the PRONOM project to have a PRONOM ID assigned to the
224 format (reference TNA1555078202S60), and today send a request to IANA
225 to register the "text/vnd.sosi" MIME type for this format (referanse
226 <a href="https://tools.iana.org/public-view/viewticket/1143144">IANA
227 #1143144</a>). If all goes well, in a few months, anyone implementing
228 the Noark 5 Tjenestegrensesnitt API spesification should be able to
229 use an official MIME type and PRONOM code for SOSI files. In
230 addition, anyone using SOSI files on Linux should be able to
231 automatically recognise the format and web sites handing out SOSI
232 files can begin providing a more specific MIME type. So far, SOSI
233 files has been handed out from web sites using the
234 "application/octet-stream" MIME type, which is just a nice way of
235 stating "I do not know". Soon, we will know. :)</p>
236
237 <p>As usual, if you use Bitcoin and want to show your support of my
238 activities, please send Bitcoin donations to my address
239 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
240
241 </div>
242 <div class="tags">
243
244
245 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/noark5">noark5</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>.
246
247
248 </div>
249 </div>
250 <div class="padding"></div>
251
252 <div class="entry">
253 <div class="title">
254 <a href="http://people.skolelinux.org/pere/blog/PlantUML_for_text_based_UML_diagram_modelling___nice_free_software.html">PlantUML for text based UML diagram modelling - nice free software</a>
255 </div>
256 <div class="date">
257 25th March 2019
258 </div>
259 <div class="body">
260 <p>As part of my involvement with the
261 <a href="https://gitlab.com/OsloMet-ABI/nikita-noark5-core/">Nikita
262 Noark 5 core project</a>, I have been proposing improvements to the
263 API specification created by <a href="https://www.arkivverket.no/">The
264 National Archives of Norway</a> and helped migrating the text from a
265 version control system unfriendly binary format (docx) to Markdown in
266 git. Combined with the migration to a public git repository (on
267 github), this has made it possible for anyone to suggest improvement
268 to the text.</p>
269
270 <p>The specification is filled with UML diagrams. I believe the
271 original diagrams were modelled using Sparx Systems Enterprise
272 Architect, and exported as EMF files for import into docx. This
273 approach make it very hard to track changes using a version control
274 system. To improve the situation I have been looking for a good text
275 based UML format with associated command line free software tools on
276 Linux and Windows, to allow anyone to send in corrections to the UML
277 diagrams in the specification. The tool must be text based to work
278 with git, and command line to be able to run it automatically to
279 generate the diagram images. Finally, it must be free software to
280 allow anyone, even those that can not accept a non-free software
281 license, to contribute.</p>
282
283 <p>I did not know much about free software UML modelling tools when I
284 started. I have used dia and inkscape for simple modelling in the
285 past, but neither are available on Windows, as far as I could tell. I
286 came across a nice
287 <a href="https://modeling-languages.com/text-uml-tools-complete-list/">list
288 of text mode uml tools</a>, and tested out a few of the tools listed
289 there. <a href="http://plantuml.com/">The PlantUML tool</a> seemed
290 most promising. After verifying that the packages
291 <a href="https://tracker.debian.org/pkg/plantuml">is available in
292 Debian</a> and found <a href="https://github.com/plantuml/plantuml">its
293 Java source</a> under a GPL license on github, I set out to test if it
294 could represent the diagrams we needed, ie the ones currently in
295 <a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/">the
296 Noark 5 Tjenestegrensesnitt specification</a>. I am happy to report
297 that it could represent them, even thought it have a few warts here
298 and there.</p>
299
300 <p>After a few days of modelling I completed the task this weekend. A
301 temporary link to the complete set of diagrams (original and from
302 PlantUML) is available in
303 <a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues/76">the
304 github issue discussing the need for a text based UML format</a>, but
305 please note I lack a sensible tool to convert EMF files to PNGs, so
306 the "original" rendering is not as good as the original was in the
307 publised PDF.</p>
308
309 <p>Here is an example UML diagram, showing the core classes for
310 keeping metadata about archived documents:</p>
311
312 <pre>
313 @startuml
314 skinparam classAttributeIconSize 0
315
316 !include media/uml-class-arkivskaper.iuml
317 !include media/uml-class-arkiv.iuml
318 !include media/uml-class-klassifikasjonssystem.iuml
319 !include media/uml-class-klasse.iuml
320 !include media/uml-class-arkivdel.iuml
321 !include media/uml-class-mappe.iuml
322 !include media/uml-class-merknad.iuml
323 !include media/uml-class-registrering.iuml
324 !include media/uml-class-basisregistrering.iuml
325 !include media/uml-class-dokumentbeskrivelse.iuml
326 !include media/uml-class-dokumentobjekt.iuml
327 !include media/uml-class-konvertering.iuml
328 !include media/uml-datatype-elektronisksignatur.iuml
329
330 Arkivstruktur.Arkivskaper "+arkivskaper 1..*" <-o "+arkiv 0..*" Arkivstruktur.Arkiv
331 Arkivstruktur.Arkiv o--> "+underarkiv 0..*" Arkivstruktur.Arkiv
332 Arkivstruktur.Arkiv "+arkiv 1" o--> "+arkivdel 0..*" Arkivstruktur.Arkivdel
333 Arkivstruktur.Klassifikasjonssystem "+klassifikasjonssystem [0..1]" <--o "+arkivdel 1..*" Arkivstruktur.Arkivdel
334 Arkivstruktur.Klassifikasjonssystem "+klassifikasjonssystem [0..1]" o--> "+klasse 0..*" Arkivstruktur.Klasse
335 Arkivstruktur.Arkivdel "+arkivdel 0..1" o--> "+mappe 0..*" Arkivstruktur.Mappe
336 Arkivstruktur.Arkivdel "+arkivdel 0..1" o--> "+registrering 0..*" Arkivstruktur.Registrering
337 Arkivstruktur.Klasse "+klasse 0..1" o--> "+mappe 0..*" Arkivstruktur.Mappe
338 Arkivstruktur.Klasse "+klasse 0..1" o--> "+registrering 0..*" Arkivstruktur.Registrering
339 Arkivstruktur.Mappe --> "+undermappe 0..*" Arkivstruktur.Mappe
340 Arkivstruktur.Mappe "+mappe 0..1" o--> "+registrering 0..*" Arkivstruktur.Registrering
341 Arkivstruktur.Merknad "+merknad 0..*" <--* Arkivstruktur.Mappe
342 Arkivstruktur.Merknad "+merknad 0..*" <--* Arkivstruktur.Dokumentbeskrivelse
343 Arkivstruktur.Basisregistrering -|> Arkivstruktur.Registrering
344 Arkivstruktur.Merknad "+merknad 0..*" <--* Arkivstruktur.Basisregistrering
345 Arkivstruktur.Registrering "+registrering 1..*" o--> "+dokumentbeskrivelse 0..*" Arkivstruktur.Dokumentbeskrivelse
346 Arkivstruktur.Dokumentbeskrivelse "+dokumentbeskrivelse 1" o-> "+dokumentobjekt 0..*" Arkivstruktur.Dokumentobjekt
347 Arkivstruktur.Dokumentobjekt *-> "+konvertering 0..*" Arkivstruktur.Konvertering
348 Arkivstruktur.ElektroniskSignatur -[hidden]-> Arkivstruktur.Dokumentobjekt
349 @enduml
350 </pre>
351
352 <p><a href="http://plantuml.com/class-diagram">The format</a> is quite
353 compact, with little redundant information. The text expresses
354 entities and relations, and there is little layout related fluff. One
355 can reuse content by using include files, allowing for consistent
356 naming across several diagrams. The include files can be standalone
357 PlantUML too. Here is the content of
358 <tt>media/uml-class-arkivskaper.iuml<tt>:</p>
359
360 <pre>
361 @startuml
362 class Arkivstruktur.Arkivskaper <Arkivenhet> {
363 +arkivskaperID : string
364 +arkivskaperNavn : string
365 +beskrivelse : string [0..1]
366 }
367 @enduml
368 </pre>
369
370 <p>This is what the complete diagram for the PlantUML notation above
371 look like:</p>
372
373 <p><img width="80%" src="http://people.skolelinux.org/pere/blog/images/2019-03-25-noark5-plantuml-diagrameksempel.png"></p>
374
375 <p>A cool feature of PlantUML is that the generated PNG files include
376 the entire original source diagram as text. The source (with include
377 statements expanded) can be extracted using for example
378 <tt>exiftool</tt>. Another cool feature is that parts of the entities
379 can be hidden after inclusion. This allow to use include files with
380 all attributes listed, even for UML diagrams that should not list any
381 attributes.</p>
382
383 <p>The diagram also show some of the warts. Some times the layout
384 engine place text labels on top of each other, and some times it place
385 the class boxes too close to each other, not leaving room for the
386 labels on the relationship arrows. The former can be worked around by
387 placing extra newlines in the labes (ie "\n"). I did not do it here
388 to be able to demonstrate the issue. I have not found a good way
389 around the latter, so I normally try to reduce the problem by changing
390 from vertical to horizontal links to improve the layout.</p>
391
392 <p>All in all, I am quite happy with PlantUML, and very impressed with
393 how quickly its lead developer responds to questions. So far I got an
394 answer to my questions in a few hours when I send an email. I
395 definitely recommend looking at PlantUML if you need to make UML
396 diagrams. Note, PlantUML can draw a lot more than class relations.
397 Check out the documention for a complete list. :)</p>
398
399 <p>As usual, if you use Bitcoin and want to show your support of my
400 activities, please send Bitcoin donations to my address
401 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
402
403 </div>
404 <div class="tags">
405
406
407 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software</a>, <a href="http://people.skolelinux.org/pere/blog/tags/noark5">noark5</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>.
408
409
410 </div>
411 </div>
412 <div class="padding"></div>
413
414 <div class="entry">
415 <div class="title">
416 <a href="http://people.skolelinux.org/pere/blog/Release_0_3_of_free_software_archive_API_system_Nikita_announced.html">Release 0.3 of free software archive API system Nikita announced</a>
417 </div>
418 <div class="date">
419 24th March 2019
420 </div>
421 <div class="body">
422 <p>Yesterday, a new release of
423 <a href="https://gitlab.com/OsloMet-ABI/nikita-noark5-core/">Nikita
424 Noark 5 core project</a> was
425 <a href="https://lists.nuug.no/pipermail/nikita-noark/2019-March/000451.html">announced
426 on the project mailing list</a>. The free software solution is an
427 implementation of the Norwegian archive standard Noark 5 used by
428 government offices in Norway. These were the changes in version 0.3
429 since version 0.2.1 (from NEWS.md):</p>
430
431 <ul>
432 <li>Improved ClassificationSystem and Class behaviour.</li>
433 <li>Tidied up known inconsistencies between domain model and hateaos links.</li>
434 <li>Added experimental code for blockchain integration. </li>
435 <li>Make token expiry time configurable at upstart from properties file.</li>
436 <li>Continued work on OData search syntax.</li>
437 <li>Started work on pagination for entities, partly implemented for Saksmappe.</li>
438 <li>Finalise ClassifiedCode Metadata entity.</li>
439 <li>Implement mechanism to check if authentication token is still
440 valid. This allow the GUI to return a more sensible message to the
441 user if the token is expired.</li>
442 <li>Reintroduce browse.html page to allow user to browse JSON API using
443 hateoas links.</li>
444 <li>Fix bug in handling file/mappe sequence number. Year change was
445 not properly handled.</li>
446 <li>Update application yml files to be in sync with current development.</li>
447 <li>Stop 'converting' everything to PDF using libreoffice. Only
448 convert the file formats doc, ppt, xls, docx, pptx, xlsx, odt, odp
449 and ods.</li>
450 <li>Continued code style fixing, making code more readable.</li>
451 <li>Minor bug fixes.</li>
452
453 </ul>
454
455 <p>If free and open standardized archiving API sound interesting to
456 you, please contact us on IRC
457 (<a href="irc://irc.freenode.net/%23nikita">#nikita on
458 irc.freenode.net</a>) or email
459 (<a href="https://lists.nuug.no/mailman/listinfo/nikita-noark">nikita-noark
460 mailing list</a>).</p>
461
462 <p>As usual, if you use Bitcoin and want to show your support of my
463 activities, please send Bitcoin donations to my address
464 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
465
466 </div>
467 <div class="tags">
468
469
470 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/noark5">noark5</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>.
471
472
473 </div>
474 </div>
475 <div class="padding"></div>
476
477 <div class="entry">
478 <div class="title">
479 <a href="http://people.skolelinux.org/pere/blog/Websocket_from_Kraken_in_Valutakrambod.html">Websocket from Kraken in Valutakrambod</a>
480 </div>
481 <div class="date">
482 1st February 2019
483 </div>
484 <div class="body">
485 <p>Yesterday, the Kraken virtual currency exchange announced
486 <a href="https://blog.kraken.com/post/2019/websockets-public-api-launching-soon/">their
487 Websocket service</a>, providing a stream of exchange updates to its
488 clients. Getting updated rates quickly is a good idea, so I used
489 their <a href="https://www.kraken.com/en-us/help/websocket-api">API
490 documentation</a> and added Websocket support to the Kraken service in
491 Valutakrambod today. The python library can now get updates
492 from Kraken several times per second, instead of every time the
493 information is polled from the REST API.</p>
494
495 <p>If this sound interesting to you, the code for valutakrambod is
496 available from
497 <a href="http://github.com/petterreinholdtsen/valutakrambod">github</a>.
498 Here is example output from the example client displaying rates in a
499 curses view:</p>
500
501 <p><blockquote><pre>
502 Name Pair Bid Ask Spr Ftcd Age
503 BitcoinsNorway BTCEUR 2959.2800 3021.0500 2.0% 36 nan nan
504 Bitfinex BTCEUR 3087.9000 3088.0000 0.0% 36 37 nan
505 Bitmynt BTCEUR 3001.8700 3135.4600 4.3% 36 52 nan
506 Bitpay BTCEUR 3003.8659 nan nan% 35 nan nan
507 Bitstamp BTCEUR 3008.0000 3010.2300 0.1% 0 1 1
508 Bl3p BTCEUR 3000.6700 3010.9300 0.3% 1 nan nan
509 Coinbase BTCEUR 2992.1800 3023.2500 1.0% 34 nan nan
510 Kraken+BTCEUR 3005.7000 3006.6000 0.0% 0 1 0
511 Paymium BTCEUR 2940.0100 2993.4400 1.8% 0 2688 nan
512 BitcoinsNorway BTCNOK 29000.0000 29360.7400 1.2% 36 nan nan
513 Bitmynt BTCNOK 29115.6400 29720.7500 2.0% 36 52 nan
514 Bitpay BTCNOK 29029.2512 nan nan% 36 nan nan
515 Coinbase BTCNOK 28927.6000 29218.5900 1.0% 35 nan nan
516 MiraiEx BTCNOK 29097.7000 29741.4200 2.2% 36 nan nan
517 BitcoinsNorway BTCUSD 3385.4200 3456.0900 2.0% 36 nan nan
518 Bitfinex BTCUSD 3538.5000 3538.6000 0.0% 36 45 nan
519 Bitpay BTCUSD 3443.4600 nan nan% 34 nan nan
520 Bitstamp BTCUSD 3443.0100 3445.0500 0.1% 0 2 1
521 Coinbase BTCUSD 3428.1600 3462.6300 1.0% 33 nan nan
522 Gemini BTCUSD 3445.8800 3445.8900 0.0% 36 326 nan
523 Hitbtc BTCUSD 3473.4700 3473.0700 -0.0% 0 0 0
524 Kraken+BTCUSD 3444.4000 3445.6000 0.0% 0 1 0
525 Exchangerates EURNOK 9.6685 9.6685 0.0% 36 22226 nan
526 Norgesbank EURNOK 9.6685 9.6685 0.0% 36 22226 nan
527 Bitstamp EURUSD 1.1440 1.1462 0.2% 0 1 2
528 Exchangerates EURUSD 1.1471 1.1471 0.0% 36 22226 nan
529 BitcoinsNorway LTCEUR 1.0009 22.6538 95.6% 35 nan nan
530 BitcoinsNorway LTCNOK 259.0900 264.9300 2.2% 35 nan nan
531 BitcoinsNorway LTCUSD 0.0000 29.0000 100.0% 35 nan nan
532 Norgesbank USDNOK 8.4286 8.4286 0.0% 36 22226 nan
533 </pre></blockquote></p>
534
535 <p>Yes, I notice the strange negative spread on Hitbtc. I've seen the
536 same on Kraken. Another strange observation is that Kraken some times
537 announce trade orders a fraction of a second in the future. I really
538 wonder what is going on there.</p>
539
540 <p>As usual, if you use Bitcoin and want to show your support of my
541 activities, please send Bitcoin donations to my address
542 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
543
544 </div>
545 <div class="tags">
546
547
548 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
549
550
551 </div>
552 </div>
553 <div class="padding"></div>
554
555 <div class="entry">
556 <div class="title">
557 <a href="http://people.skolelinux.org/pere/blog/Debian_now_got_everything_you_need_to_program_Micro_bit.html">Debian now got everything you need to program Micro:bit</a>
558 </div>
559 <div class="date">
560 22nd January 2019
561 </div>
562 <div class="body">
563 <p>I am amazed and very pleased to discover that since a few days ago,
564 everything you need to program the <a href="https://microbit.org/">BBC
565 micro:bit</a> is available from the Debian archive. All this is
566 thanks to the hard work of Nick Morrott and the Debian python
567 packaging team. The micro:bit project recommend the mu-editor to
568 program the microcomputer, as this editor will take care of all the
569 machinery required to injekt/flash micropython alongside the program
570 into the micro:bit, as long as the pieces are available.</p>
571
572 <p>There are three main pieces involved. The first to enter Debian
573 was
574 <a href="https://tracker.debian.org/pkg/python-uflash">python-uflash</a>,
575 which was accepted into the archive 2019-01-12. The next one was
576 <a href="https://tracker.debian.org/pkg/mu-editor">mu-editor</a>, which
577 showed up 2019-01-13. The final and hardest part to to into the
578 archive was
579 <a href="https://tracker.debian.org/pkg/firmware-microbit-micropython">firmware-microbit-micropython</a>,
580 which needed to get its build system and dependencies into Debian
581 before it was accepted 2019-01-20. The last one is already in Debian
582 Unstable and should enter Debian Testing / Buster in three days. This
583 all allow any user of the micro:bit to get going by simply running
584 'apt install mu-editor' when using Testing or Unstable, and once
585 Buster is released as stable, all the users of Debian stable will be
586 catered for.</p>
587
588 <p>As a minor final touch, I added rules to
589 <a href="https://tracker.debian.org/pkg/isenkram">the isenkram
590 package</a> for recognizing micro:bit and recommend the mu-editor
591 package. This make sure any user of the isenkram desktop daemon will
592 get a popup suggesting to install mu-editor then the USB cable from
593 the micro:bit is inserted for the first time.</p>
594
595 <p>This should make it easier to have fun.</p>
596
597 <p>As usual, if you use Bitcoin and want to show your support of my
598 activities, please send Bitcoin donations to my address
599 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
600
601 </div>
602 <div class="tags">
603
604
605 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/robot">robot</a>.
606
607
608 </div>
609 </div>
610 <div class="padding"></div>
611
612 <div class="entry">
613 <div class="title">
614 <a href="http://people.skolelinux.org/pere/blog/CasparCG_Server_for_TV_broadcast_playout_in_Debian.html">CasparCG Server for TV broadcast playout in Debian</a>
615 </div>
616 <div class="date">
617 15th January 2019
618 </div>
619 <div class="body">
620 <p>The layered video playout server created by Sveriges Television,
621 <a href="https://casparcg.com/">CasparCG Server</a>, entered Debian
622 today. This completes many months of work to get the source ready to
623 go into Debian. The first upload to the Debian NEW queue happened a
624 month ago, but the work upstream to prepare it for Debian started more
625 than two and a half month ago. So far
626 <a href="https://tracker.debian.org/pkg/casparcg-server">the
627 casparcg-server package</a> is only available for amd64, but I hope
628 this can be improved. The package is in contrib because it depend on
629 the <a href="https://tracker.debian.org/pkg/fdk-aac">non-free fdk-aac
630 library</a>. The Debian package lack support for streaming web pages
631 because Debian is missing CEF, Chromium Embedded Framework. CEF is
632 wanted by several packages in Debian. But because the Chromium source
633 is <a href="https://bugs.debian.org/893448">not available as a build
634 dependency</a>, it is not yet possible to upload CEF to Debian. I
635 hope this will change in the future.</p>
636
637 <p>The reason I got involved is that
638 <a href="https://frikanalen.no/">the Norwegian open channel
639 Frikanalen</a> is starting to use CasparCG for our HD playout, and I
640 would like to have all the free software tools we use to run the TV
641 channel available as packages from the Debian project. The last
642 remaining piece in the puzzle is Open Broadcast Encoder, but it depend
643 on quite a lot of patched libraries which would have to be included in
644 Debian first.</p>
645
646 <p>As usual, if you use Bitcoin and want to show your support of my
647 activities, please send Bitcoin donations to my address
648 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
649
650 </div>
651 <div class="tags">
652
653
654 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
655
656
657 </div>
658 </div>
659 <div class="padding"></div>
660
661 <div class="entry">
662 <div class="title">
663 <a href="http://people.skolelinux.org/pere/blog/Learn_to_program_with_Minetest_on_Debian.html">Learn to program with Minetest on Debian</a>
664 </div>
665 <div class="date">
666 15th December 2018
667 </div>
668 <div class="body">
669 <p>A fun way to learn how to program
670 <a href="https://www.python.org/">Python</a> is to follow the
671 instructions in the book
672 "<a href="https://nostarch.com/programwithminecraft">Learn to program
673 with Minecraft</a>", which introduces programming in Python to people
674 who like to play with Minecraft. The book uses a Python library to
675 talk to a TCP/IP socket with an API accepting build instructions and
676 providing information about the current players in a Minecraft world.
677 The TCP/IP API was first created for the Minecraft implementation for
678 Raspberry Pi, and has since been ported to some server versions of
679 Minecraft. The book contain recipes for those using Windows, MacOSX
680 and Raspian. But a little known fact is that you can follow the same
681 recipes using the free software construction game
682 <a href="https://minetest.net/">Minetest</a>.</p>
683
684 <p>There is <a href="https://github.com/sprintingkiwi/pycraft_mod">a
685 Minetest module implementing the same API</a>, making it possible to
686 use the Python programs coded to talk to Minecraft with Minetest too.
687 I
688 <a href="https://ftp-master.debian.org/new/minetest-mod-pycraft_0.20%2Bgit20180331.0376a0a%2Bdfsg-1.html">uploaded
689 this module</a> to Debian two weeks ago, and as soon as it clears the
690 FTP masters NEW queue, learning to program Python with Minetest on
691 Debian will be a simple 'apt install' away. The Debian package is
692 maintained as part of the Debian Games team, and
693 <a href="https://salsa.debian.org/games-team/unfinished/minetest-mod-pycraft">the
694 packaging rules</a> are currently located under 'unfinished' on
695 Salsa.</p>
696
697 <p>You will most likely need to install several of the Minetest
698 modules in Debian for the examples included with the library to work
699 well, as there are several blocks used by the example scripts that are
700 provided via modules in Minetest. Without the required blocks, a
701 simple stone block is used instead. My initial testing with a analog
702 clock did not get gold arms as instructed in the python library, but
703 instead used stone arms.</p>
704
705 <p>I tried to find a way to add the API to the desktop version of
706 Minecraft, but were unable to find any working recipes. The
707 <a href="https://www.epiphanydigest.com/tag/minecraft-python-api/">recipes</a>
708 I <a href="https://github.com/kbsriram/mcpiapi">found</a> are only
709 working with a standalone Minecraft server setup. Are there any
710 options to use with the normal desktop version?</p>
711
712 <p>As usual, if you use Bitcoin and want to show your support of my
713 activities, please send Bitcoin donations to my address
714 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
715
716 </div>
717 <div class="tags">
718
719
720 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>.
721
722
723 </div>
724 </div>
725 <div class="padding"></div>
726
727 <div class="entry">
728 <div class="title">
729 <a href="http://people.skolelinux.org/pere/blog/Non_blocking_bittorrent_plugin_for_vlc.html">Non-blocking bittorrent plugin for vlc</a>
730 </div>
731 <div class="date">
732 12th December 2018
733 </div>
734 <div class="body">
735 <p>A few hours ago, a new and improved version (2.4) of
736 <a href="https://tracker.debian.org/pkg/vlc-plugin-bittorrent">the VLC
737 bittorrent plugin</a> was uploaded to Debian. This new version
738 include a complete rewrite of the bittorrent related code, which seem
739 to make the plugin non-blocking. This mean you can actually exit VLC
740 even when the plugin seem to be unable to get the bittorrent streaming
741 started. The new version also include support for filtering playlist
742 by file extension using command line options, if you want to avoid
743 processing audio, video or images. The package is currently in Debian
744 unstable, but should be available in Debian testing in two days. To
745 test it, simply install it like this:</p>
746
747 <p><pre>
748 apt install vlc-plugin-bittorrent
749 </pre></p>
750
751 <p>After it is installed, you can try to use it to play a file
752 downloaded live via bittorrent like this:
753
754 <p><pre>
755 vlc https://archive.org/download/Glass_201703/Glass_201703_archive.torrent
756 </pre></p>
757
758 <p>As usual, if you use Bitcoin and want to show your support of my
759 activities, please send Bitcoin donations to my address
760 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
761
762 </div>
763 <div class="tags">
764
765
766 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/verkidetfri">verkidetfri</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
767
768
769 </div>
770 </div>
771 <div class="padding"></div>
772
773 <div class="entry">
774 <div class="title">
775 <a href="http://people.skolelinux.org/pere/blog/Why_is_your_site_not_using_Content_Security_Policy___CSP_.html">Why is your site not using Content Security Policy / CSP?</a>
776 </div>
777 <div class="date">
778 9th December 2018
779 </div>
780 <div class="body">
781 <p>Yesterday, I had the pleasure of watching on Frikanalen the OWASP
782 talk by Scott Helme titled
783 "<a href="https://frikanalen.no/video/626080/">What We’ve Learned From
784 Billions of Security Reports</a>". I had not heard of the
785 <a href="https://en.wikipedia.org/wiki/Content_Security_Policy">Content
786 Security Policy standard</a> nor its ability to "call home" when a
787 browser detect a policy breach (I do not follow web page design
788 development much these days), and found the talk very illuminating.</p>
789
790 <p>The mechanism allow a web site owner to use HTTP headers to tell
791 visitors web browser which sources (internal and external) are allowed to
792 be used on the web site. Thus it become possible to enforce a "only
793 local content" policy despite web designers urge to fetch programs
794 from random sites on the Internet, like the one
795 <a href="https://securityaffairs.co/wordpress/68966/hacking/browsealoud-plugin-hack.html">enabling
796 the attack</a> reported by Scott Helme earlier this year.</p>
797
798 <p>Using CSP seem like an obvious thing for a site admin to implement
799 to take some control over the information leak that occur when
800 external sources are used to render web pages, it is a mystery more
801 sites are not using CSP? It is being
802 <a href="https://www.w3.org/TR/CSP/">standardized under W3C</a> these
803 days, and is supposed by most web browsers</p>
804
805 <p>I managed to find <a href="https://github.com/mozilla/django-csp">a
806 Django middleware for implementing CSP</a> and was happy to discover
807 it was already in Debian. I plan to use it to add CSP support to the
808 Frikanalen web site soon.</p>
809
810 <p>As usual, if you use Bitcoin and want to show your support of my
811 activities, please send Bitcoin donations to my address
812 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
813
814 </div>
815 <div class="tags">
816
817
818 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</a>.
819
820
821 </div>
822 </div>
823 <div class="padding"></div>
824
825 <div class="entry">
826 <div class="title">
827 <a href="http://people.skolelinux.org/pere/blog/New_and_improved_Frikanalen_Kodi_addon_version_0_0_3.html">New and improved Frikanalen Kodi addon version 0.0.3</a>
828 </div>
829 <div class="date">
830 8th November 2018
831 </div>
832 <div class="body">
833 <p>If you read my blog regularly, you probably know I am involved in
834 running and developing the <a href="https://frikanalen.no/">Norwegian
835 TV channel Frikanalen</a>. It is an open channel, allowing everyone
836 in Norway to publish videos on a TV channel with national coverage.
837 You can think of it as Youtube for national television.
838 In addition to distribution on RiksTV and Uninett, Frikanalen is also
839 available as a Kodi addon. The last few days I have updated the code
840 to add more features. A
841 <a href="https://kodi.tv/addon/plugins-video-add-ons/frikanalen-nett-tv">new
842 and improved version 0.0.3 Frikanalen addon</a> was just made
843 available via the Kodi repositories. This new version include a
844 option to browse videos by category, as well as free text search
845 in the video archive. It will now also show the video duration in the
846 video lists, which were missing earlier. A new and experimental
847 link to the HD video stream currently being worked on is provided, for
848 those that want to see what the <a href="https://casparcg.com/">CasparCG</a>
849 output look like. The alternative is the SD video stream, generated
850 using MLT. CasparCG is controlled by our
851 <a href="https://github.com/Frikanalen/mltplayout/">mltplayout
852 server</a> which instead of talking to mlt is giving PLAY instructions
853 to the CasparCG server when it is time to start a new program.</p>
854
855 <p>By now, you are probably wondering what kind of content is being
856 played on the channel. These days, it is filled with technical
857 presentations like those from <a href="https://www.nuug.no/">NUUG</a>,
858 <a href="https://www.debconf.org/">Debconf</a>, Makercon, and TED,
859 but there are also some periods with
860 <a href="https://www.empo.no/">EMPT TV</a> and
861 <a href="https://www.p7.no/">P7</a>.
862
863 <p>As usual, if you use Bitcoin and want to show your support of my
864 activities, please send Bitcoin donations to my address
865 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
866
867 </div>
868 <div class="tags">
869
870
871 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen</a>, <a href="http://people.skolelinux.org/pere/blog/tags/kodi">kodi</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
872
873
874 </div>
875 </div>
876 <div class="padding"></div>
877
878 <div class="entry">
879 <div class="title">
880 <a href="http://people.skolelinux.org/pere/blog/Time_for_an_official_MIME_type_for_patches_.html">Time for an official MIME type for patches?</a>
881 </div>
882 <div class="date">
883 1st November 2018
884 </div>
885 <div class="body">
886 <p>As part of my involvement in
887 <a href="https://gitlab.com/OsloMet-ABI/nikita-noark5-core">the Nikita
888 archive API project</a>, I've been importing a fairly large lump of
889 emails into a test instance of the archive to see how well this would
890 go. I picked a subset of <a href="https://notmuchmail.org/">my
891 notmuch email database</a>, all public emails sent to me via
892 @lists.debian.org, giving me a set of around 216 000 emails to import.
893 In the process, I had a look at the various attachments included in
894 these emails, to figure out what to do with attachments, and noticed
895 that one of the most common attachment formats do not have
896 <a href="https://www.iana.org/assignments/media-types/media-types.xhtml">an
897 official MIME type</a> registered with IANA/IETF. The output from
898 diff, ie the input for patch, is on the top 10 list of formats
899 included in these emails. At the moment people seem to use either
900 text/x-patch or text/x-diff, but neither is officially registered. It
901 would be better if one official MIME type were registered and used
902 everywhere.</p>
903
904 <p>To try to get one official MIME type for these files, I've brought
905 up the topic on
906 <a href="https://www.ietf.org/mailman/listinfo/media-types">the
907 media-types mailing list</a>. If you are interested in discussion
908 which MIME type to use as the official for patch files, or involved in
909 making software using a MIME type for patches, perhaps you would like
910 to join the discussion?</p>
911
912 <p>As usual, if you use Bitcoin and want to show your support of my
913 activities, please send Bitcoin donations to my address
914 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
915
916 </div>
917 <div class="tags">
918
919
920 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/noark5">noark5</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>.
921
922
923 </div>
924 </div>
925 <div class="padding"></div>
926
927 <div class="entry">
928 <div class="title">
929 <a href="http://people.skolelinux.org/pere/blog/Measuring_the_speaker_frequency_response_using_the_AUDMES_free_software_GUI___nice_free_software.html">Measuring the speaker frequency response using the AUDMES free software GUI - nice free software</a>
930 </div>
931 <div class="date">
932 22nd October 2018
933 </div>
934 <div class="body">
935 <p><img src="http://people.skolelinux.org/pere/blog/images/2018-10-22-audmes-measure-speakers.png" align="right" width="40%"/></p>
936
937 <p>My current home stereo is a patchwork of various pieces I got on
938 flee markeds over the years. It is amazing what kind of equipment
939 show up there. I've been wondering for a while if it was possible to
940 measure how well this equipment is working together, and decided to
941 see how far I could get using free software. After trawling the web I
942 came across an article from DIY Audio and Video on
943 <a href="https://www.diyaudioandvideo.com/Tutorial/SpeakerResponseTesting/">Speaker
944 Testing and Analysis</a> describing how to test speakers, and it listing
945 several software options, among them
946 <a href="https://sourceforge.net/projects/audmes/">AUDio MEasurement
947 System (AUDMES)</a>. It is the only free software system I could find
948 focusing on measuring speakers and audio frequency response. In the
949 process I also found an interesting article from NOVO on
950 <a href="http://novo.press/understanding-speaker-specifications-and-frequency-response/">Understanding
951 Speaker Specifications and Frequency Response</a> and an article from
952 ecoustics on
953 <a href="https://www.ecoustics.com/articles/understanding-speaker-frequency-response/">Understanding
954 Speaker Frequency Response</a>, with a lot of information on what to
955 look for and how to interpret the graphs. Armed with this knowledge,
956 I set out to measure the state of my speakers.</p>
957
958 <p>The first hurdle was that AUDMES hadn't seen a commit for 10 years
959 and did not build with current compilers and libraries. I got in
960 touch with its author, who no longer was spending time on the program
961 but gave me write access to the subversion repository on Sourceforge.
962 The end result is that now the code build on Linux and is capable of
963 saving and loading the collected frequency response data in CSV
964 format. The application is quite nice and flexible, and I was able to
965 select the input and output audio interfaces independently. This made
966 it possible to use a USB mixer as the input source, while sending
967 output via my laptop headphone connection. I lacked the hardware and
968 cabling to figure out a different way to get independent cabling to
969 speakers and microphone.</p>
970
971 <p>Using this setup I could see how a large range of high frequencies
972 apparently were not making it out of my speakers. The picture show
973 the frequency response measurement of one of the speakers. Note the
974 frequency lines seem to be slightly misaligned, compared to the CSV
975 output from the program. I can not hear several of these are high
976 frequencies, according to measurement from
977 <a href="http://freehearingtestsoftware.com">Free Hearing Test
978 Software</a>, an freeware system to measure your hearing (still
979 looking for a free software alternative), so I do not know if they are
980 coming out out the speakers. I thus do not quite know how to figure
981 out if the missing frequencies is a problem with the microphone, the
982 amplifier or the speakers, but I managed to rule out the audio card in my
983 PC by measuring my Bose noise canceling headset using its own
984 microphone. This setup was able to see the high frequency tones, so
985 the problem with my stereo had to be in the amplifier or speakers.</p>
986
987 <p>Anyway, to try to role out one factor I ended up picking up a new
988 set of speakers at a flee marked, and these work a lot better than the
989 old speakers, so I guess the microphone and amplifier is OK. If you
990 need to measure your own speakers, check out AUDMES. If more people
991 get involved, perhaps the project could become good enough to
992 <a href="https://bugs.debian.org/910876">include in Debian</a>? And if
993 you know of some other free software to measure speakers and amplifier
994 performance, please let me know. I am aware of the freeware option
995 <a href="https://www.roomeqwizard.com/">REW</a>, but I want something
996 that can be developed also when the vendor looses interest.</p>
997
998 <p>As usual, if you use Bitcoin and want to show your support of my
999 activities, please send Bitcoin donations to my address
1000 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
1001
1002 </div>
1003 <div class="tags">
1004
1005
1006 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software</a>.
1007
1008
1009 </div>
1010 </div>
1011 <div class="padding"></div>
1012
1013 <div class="entry">
1014 <div class="title">
1015 <a href="http://people.skolelinux.org/pere/blog/Web_browser_integration_of_VLC_with_Bittorrent_support.html">Web browser integration of VLC with Bittorrent support</a>
1016 </div>
1017 <div class="date">
1018 21st October 2018
1019 </div>
1020 <div class="body">
1021 <p>Bittorrent is as far as I know, currently the most efficient way to
1022 distribute content on the Internet. It is used all by all sorts of
1023 content providers, from national TV stations like
1024 <a href="https://www.nrk.no/">NRK</a>, Linux distributors like
1025 <a href="https://www.debian.org/">Debian</a> and
1026 <a href="https://www.ubuntu.com/">Ubuntu</a>, and of course the
1027 <a href="https://archive.org/">Internet archive</A>.
1028
1029 <p>Almost a month ago
1030 <a href="https://tracker.debian.org/pkg/vlc-plugin-bittorrent">a new
1031 package adding Bittorrent support to VLC</a> became available in
1032 Debian testing and unstable. To test it, simply install it like
1033 this:</p>
1034
1035 <p><pre>
1036 apt install vlc-plugin-bittorrent
1037 </pre></p>
1038
1039 <p>Since the plugin was made available for the first time in Debian,
1040 several improvements have been made to it. In version 2.2-4, now
1041 available in both testing and unstable, a desktop file is provided to
1042 teach browsers to start VLC when the user click on torrent files or
1043 magnet links. The last part is thanks to me finally understanding
1044 what the strange x-scheme-handler style MIME types in desktop files
1045 are used for. By adding x-scheme-handler/magnet to the MimeType entry
1046 in the desktop file, at least the browsers Firefox and Chromium will
1047 suggest to start VLC when selecting a magnet URI on a web page. The
1048 end result is that now, with the plugin installed in Buster and Sid,
1049 one can visit any
1050 <a href="https://archive.org/details/CopyingIsNotTheft1080p">Internet
1051 Archive page with movies</a> using a web browser and click on the
1052 torrent link to start streaming the movie.</p>
1053
1054 <p>Note, there is still some misfeatures in the plugin. One is the
1055 fact that it will hang and
1056 <a href="https://github.com/johang/vlc-bittorrent/issues/13">block VLC
1057 from exiting until the torrent streaming starts</a>. Another is the
1058 fact that it
1059 <a href="https://github.com/johang/vlc-bittorrent/issues/9">will pick
1060 and play a random file in a multi file torrent</a>. This is not
1061 always the video file you want. Combined with the first it can be a
1062 bit hard to get the video streaming going. But when it work, it seem
1063 to do a good job.</p>
1064
1065 <p>For the Debian packaging, I would love to find a good way to test
1066 if the plugin work with VLC using autopkgtest. I tried, but do not
1067 know enough of the inner workings of VLC to get it working. For now
1068 the autopkgtest script is only checking if the .so file was
1069 successfully loaded by VLC. If you have any suggestions, please
1070 submit a patch to the Debian bug tracking system.</p>
1071
1072 <p>As usual, if you use Bitcoin and want to show your support of my
1073 activities, please send Bitcoin donations to my address
1074 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
1075
1076 </div>
1077 <div class="tags">
1078
1079
1080 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/verkidetfri">verkidetfri</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
1081
1082
1083 </div>
1084 </div>
1085 <div class="padding"></div>
1086
1087 <div class="entry">
1088 <div class="title">
1089 <a href="http://people.skolelinux.org/pere/blog/Release_0_2_of_free_software_archive_system_Nikita_announced.html">Release 0.2 of free software archive system Nikita announced</a>
1090 </div>
1091 <div class="date">
1092 18th October 2018
1093 </div>
1094 <div class="body">
1095 <p>This morning, the new release of the
1096 <a href="https://gitlab.com/OsloMet-ABI/nikita-noark5-core/">Nikita
1097 Noark 5 core project</a> was
1098 <a href="https://lists.nuug.no/pipermail/nikita-noark/2018-October/000406.html">announced
1099 on the project mailing list</a>. The free software solution is an
1100 implementation of the Norwegian archive standard Noark 5 used by
1101 government offices in Norway. These were the changes in version 0.2
1102 since version 0.1.1 (from NEWS.md):
1103
1104 <ul>
1105 <li>Fix typos in REL names</li>
1106 <li>Tidy up error message reporting</li>
1107 <li>Fix issue where we used Integer.valueOf(), not Integer.getInteger()</li>
1108 <li>Change some String handling to StringBuffer</li>
1109 <li>Fix error reporting</li>
1110 <li>Code tidy-up</li>
1111 <li>Fix issue using static non-synchronized SimpleDateFormat to avoid
1112 race conditions</li>
1113 <li>Fix problem where deserialisers were treating integers as strings</li>
1114 <li>Update methods to make them null-safe</li>
1115 <li>Fix many issues reported by coverity</li>
1116 <li>Improve equals(), compareTo() and hash() in domain model</li>
1117 <li>Improvements to the domain model for metadata classes</li>
1118 <li>Fix CORS issues when downloading document</li>
1119 <li>Implementation of case-handling with registryEntry and document upload</li>
1120 <li>Better support in Javascript for OPTIONS</li>
1121 <li>Adding concept description of mail integration</li>
1122 <li>Improve setting of default values for GET on ny-journalpost</li>
1123 <li>Better handling of required values during deserialisation </li>
1124 <li>Changed tilknyttetDato (M620) from date to dateTime</li>
1125 <li>Corrected some opprettetDato (M600) (de)serialisation errors.</li>
1126 <li>Improve parse error reporting.</li>
1127 <li>Started on OData search and filtering.</li>
1128 <li>Added Contributor Covenant Code of Conduct to project.</li>
1129 <li>Moved repository and project from Github to Gitlab.</li>
1130 <li>Restructured repository, moved code into src/ and web/.</li>
1131 <li>Updated code to use Spring Boot version 2.</li>
1132 <li>Added support for OAuth2 authentication.</li>
1133 <li>Fixed several bugs discovered by Coverity.</li>
1134 <li>Corrected handling of date/datetime fields.</li>
1135 <li>Improved error reporting when rejecting during deserializatoin.</li>
1136 <li>Adjusted default values provided for ny-arkivdel, ny-mappe,
1137 ny-saksmappe, ny-journalpost and ny-dokumentbeskrivelse.</li>
1138 <li>Several fixes for korrespondansepart*.</li>
1139 <li>Updated web GUI:
1140 <ul>
1141 <li>Now handle both file upload and download.</li>
1142 <li>Uses new OAuth2 authentication for login.</li>
1143 <li>Forms now fetches default values from API using GET.</li>
1144 <li>Added RFC 822 (email), TIFF and JPEG to list of possible file formats.</li>
1145 </ul></li>
1146 </ul>
1147
1148 <p>The changes and improvements are extensive. Running diffstat on
1149 the changes between git tab 0.1.1 and 0.2 show 1098 files changed,
1150 108666 insertions(+), 54066 deletions(-).</p>
1151
1152 <p>If free and open standardized archiving API sound interesting to
1153 you, please contact us on IRC
1154 (<a href="irc://irc.freenode.net/%23nikita">#nikita on
1155 irc.freenode.net</a>) or email
1156 (<a href="https://lists.nuug.no/mailman/listinfo/nikita-noark">nikita-noark
1157 mailing list</a>).</p>
1158
1159 <p>As usual, if you use Bitcoin and want to show your support of my
1160 activities, please send Bitcoin donations to my address
1161 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
1162
1163 </div>
1164 <div class="tags">
1165
1166
1167 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/noark5">noark5</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>.
1168
1169
1170 </div>
1171 </div>
1172 <div class="padding"></div>
1173
1174 <div class="entry">
1175 <div class="title">
1176 <a href="http://people.skolelinux.org/pere/blog/Fetching_trusted_timestamps_using_the_rfc3161ng_python_module.html">Fetching trusted timestamps using the rfc3161ng python module</a>
1177 </div>
1178 <div class="date">
1179 8th October 2018
1180 </div>
1181 <div class="body">
1182 <p>I have earlier covered the basics of trusted timestamping using the
1183 'openssl ts' client. See blog post for
1184 <a href="http://people.skolelinux.org/pere/blog/Public_Trusted_Timestamping_services_for_everyone.html">2014</a>,
1185 <a href="http://people.skolelinux.org/pere/blog/syslog_trusted_timestamp___chain_of_trusted_timestamps_for_your_syslog.html">2016</a>
1186 and
1187 <a href="http://people.skolelinux.org/pere/blog/Idea_for_storing_trusted_timestamps_in_a_Noark_5_archive.html">2017</a>
1188 for those stories. But some times I want to integrate the timestamping
1189 in other code, and recently I needed to integrate it into Python.
1190 After searching a bit, I found
1191 <a href="https://dev.entrouvert.org/projects/python-rfc3161">the
1192 rfc3161 library</a> which seemed like a good fit, but I soon
1193 discovered it only worked for python version 2, and I needed something
1194 that work with python version 3. Luckily I next came across
1195 <a href="https://github.com/trbs/rfc3161ng/">the rfc3161ng library</a>,
1196 a fork of the original rfc3161 library. Not only is it working with
1197 python 3, it have fixed a few of the bugs in the original library, and
1198 it has an active maintainer. I decided to wrap it up and make it
1199 <a href="https://tracker.debian.org/pkg/python-rfc3161ng">available in
1200 Debian</a>, and a few days ago it entered Debian unstable and testing.</p>
1201
1202 <p>Using the library is fairly straight forward. The only slightly
1203 problematic step is to fetch the required certificates to verify the
1204 timestamp. For some services it is straight forward, while for others
1205 I have not yet figured out how to do it. Here is a small standalone
1206 code example based on of the integration tests in the library code:</p>
1207
1208 <pre>
1209 #!/usr/bin/python3
1210
1211 """
1212
1213 Python 3 script demonstrating how to use the rfc3161ng module to
1214 get trusted timestamps.
1215
1216 The license of this code is the same as the license of the rfc3161ng
1217 library, ie MIT/BSD.
1218
1219 """
1220
1221 import os
1222 import pyasn1.codec.der
1223 import rfc3161ng
1224 import subprocess
1225 import tempfile
1226 import urllib.request
1227
1228 def store(f, data):
1229 f.write(data)
1230 f.flush()
1231 f.seek(0)
1232
1233 def fetch(url, f=None):
1234 response = urllib.request.urlopen(url)
1235 data = response.read()
1236 if f:
1237 store(f, data)
1238 return data
1239
1240 def main():
1241 with tempfile.NamedTemporaryFile() as cert_f,\
1242 tempfile.NamedTemporaryFile() as ca_f,\
1243 tempfile.NamedTemporaryFile() as msg_f,\
1244 tempfile.NamedTemporaryFile() as tsr_f:
1245
1246 # First fetch certificates used by service
1247 certificate_data = fetch('https://freetsa.org/files/tsa.crt', cert_f)
1248 ca_data_data = fetch('https://freetsa.org/files/cacert.pem', ca_f)
1249
1250 # Then timestamp the message
1251 timestamper = \
1252 rfc3161ng.RemoteTimestamper('http://freetsa.org/tsr',
1253 certificate=certificate_data)
1254 data = b"Python forever!\n"
1255 tsr = timestamper(data=data, return_tsr=True)
1256
1257 # Finally, convert message and response to something 'openssl ts' can verify
1258 store(msg_f, data)
1259 store(tsr_f, pyasn1.codec.der.encoder.encode(tsr))
1260 args = ["openssl", "ts", "-verify",
1261 "-data", msg_f.name,
1262 "-in", tsr_f.name,
1263 "-CAfile", ca_f.name,
1264 "-untrusted", cert_f.name]
1265 subprocess.check_call(args)
1266
1267 if '__main__' == __name__:
1268 main()
1269 </pre>
1270
1271 <p>The code fetches the required certificates, store them as temporary
1272 files, timestamp a simple message, store the message and timestamp to
1273 disk and ask 'openssl ts' to verify the timestamp. A timestamp is
1274 around 1.5 kiB in size, and should be fairly easy to store for future
1275 use.</p>
1276
1277 <p>As usual, if you use Bitcoin and want to show your support of my
1278 activities, please send Bitcoin donations to my address
1279 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
1280
1281 </div>
1282 <div class="tags">
1283
1284
1285 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/noark5">noark5</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>.
1286
1287
1288 </div>
1289 </div>
1290 <div class="padding"></div>
1291
1292 <div class="entry">
1293 <div class="title">
1294 <a href="http://people.skolelinux.org/pere/blog/Automatic_Google_Drive_sync_using_grive_in_Debian.html">Automatic Google Drive sync using grive in Debian</a>
1295 </div>
1296 <div class="date">
1297 4th October 2018
1298 </div>
1299 <div class="body">
1300 <p>A few days, I rescued a Windows victim over to Debian. To try to
1301 rescue the remains, I helped set up automatic sync with Google Drive.
1302 I did not find any sensible Debian package handling this
1303 automatically, so I rebuild the grive2 source from
1304 <a href="http://www.webupd8.org/">the Ubuntu UPD8 PPA</a> to do the
1305 task and added a autostart desktop entry and a small shell script to
1306 run in the background while the user is logged in to do the sync.
1307 Here is a sketch of the setup for future reference.</p>
1308
1309 <p>I first created <tt>~/googledrive</tt>, entered the directory and
1310 ran '<tt>grive -a</tt>' to authenticate the machine/user. Next, I
1311 created a autostart hook in <tt>~/.config/autostart/grive.desktop</tt>
1312 to start the sync when the user log in:</p>
1313
1314 <p><blockquote><pre>
1315 [Desktop Entry]
1316 Name=Google drive autosync
1317 Type=Application
1318 Exec=/home/user/bin/grive-sync
1319 </pre></blockquote></p>
1320
1321 <p>Finally, I wrote the <tt>~/bin/grive-sync</tt> script to sync
1322 ~/googledrive/ with the files in Google Drive.</p>
1323
1324 <p><blockquote><pre>
1325 #!/bin/sh
1326 set -e
1327 cd ~/
1328 cleanup() {
1329 if [ "$syncpid" ] ; then
1330 kill $syncpid
1331 fi
1332 }
1333 trap cleanup EXIT INT QUIT
1334 /usr/lib/grive/grive-sync.sh listen googledrive 2>&1 | sed "s%^%$0:%" &
1335 syncpdi=$!
1336 while true; do
1337 if ! xhost >/dev/null 2>&1 ; then
1338 echo "no DISPLAY, exiting as the user probably logged out"
1339 exit 1
1340 fi
1341 if [ ! -e /run/user/1000/grive-sync.sh_googledrive ] ; then
1342 /usr/lib/grive/grive-sync.sh sync googledrive
1343 fi
1344 sleep 300
1345 done 2>&1 | sed "s%^%$0:%"
1346 </pre></blockquote></p>
1347
1348 <p>Feel free to use the setup if you want. It can be assumed to be
1349 GNU GPL v2 licensed (or any later version, at your leisure), but I
1350 doubt this code is possible to claim copyright on.</p>
1351
1352 <p>As usual, if you use Bitcoin and want to show your support of my
1353 activities, please send Bitcoin donations to my address
1354 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
1355
1356 </div>
1357 <div class="tags">
1358
1359
1360 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>.
1361
1362
1363 </div>
1364 </div>
1365 <div class="padding"></div>
1366
1367 <div class="entry">
1368 <div class="title">
1369 <a href="http://people.skolelinux.org/pere/blog/Valutakrambod___A_python_and_bitcoin_love_story.html">Valutakrambod - A python and bitcoin love story</a>
1370 </div>
1371 <div class="date">
1372 29th September 2018
1373 </div>
1374 <div class="body">
1375 <p>It would come as no surprise to anyone that I am interested in
1376 bitcoins and virtual currencies. I've been keeping an eye on virtual
1377 currencies for many years, and it is part of the reason a few months
1378 ago, I started writing a python library for collecting currency
1379 exchange rates and trade on virtual currency exchanges. I decided to
1380 name the end result valutakrambod, which perhaps can be translated to
1381 small currency shop.</p>
1382
1383 <p>The library uses the tornado python library to handle HTTP and
1384 websocket connections, and provide a asynchronous system for
1385 connecting to and tracking several services. The code is available
1386 from
1387 <a href="http://github.com/petterreinholdtsen/valutakrambod">github</a>.</p>
1388
1389 </p>There are two example clients of the library. One is very simple and
1390 list every updated buy/sell price received from the various services.
1391 This code is started by running bin/btc-rates and call the client code
1392 in valutakrambod/client.py. The simple client look like this:</p>
1393
1394 <p><blockquote><pre>
1395 import functools
1396 import tornado.ioloop
1397 import valutakrambod
1398 class SimpleClient(object):
1399 def __init__(self):
1400 self.services = []
1401 self.streams = []
1402 pass
1403 def newdata(self, service, pair, changed):
1404 print("%-15s %s-%s: %8.3f %8.3f" % (
1405 service.servicename(),
1406 pair[0],
1407 pair[1],
1408 service.rates[pair]['ask'],
1409 service.rates[pair]['bid'])
1410 )
1411 async def refresh(self, service):
1412 await service.fetchRates(service.wantedpairs)
1413 def run(self):
1414 self.ioloop = tornado.ioloop.IOLoop.current()
1415 self.services = valutakrambod.service.knownServices()
1416 for e in self.services:
1417 service = e()
1418 service.subscribe(self.newdata)
1419 stream = service.websocket()
1420 if stream:
1421 self.streams.append(stream)
1422 else:
1423 # Fetch information from non-streaming services immediately
1424 self.ioloop.call_later(len(self.services),
1425 functools.partial(self.refresh, service))
1426 # as well as regularly
1427 service.periodicUpdate(60)
1428 for stream in self.streams:
1429 stream.connect()
1430 try:
1431 self.ioloop.start()
1432 except KeyboardInterrupt:
1433 print("Interrupted by keyboard, closing all connections.")
1434 pass
1435 for stream in self.streams:
1436 stream.close()
1437 </pre></blockquote></p>
1438
1439 <p>The library client loops over all known "public" services,
1440 initialises it, subscribes to any updates from the service, checks and
1441 activates websocket streaming if the service provide it, and if no
1442 streaming is supported, fetches information from the service and sets
1443 up a periodic update every 60 seconds. The output from this client
1444 can look like this:</p>
1445
1446 <p><blockquote><pre>
1447 Bl3p BTC-EUR: 5687.110 5653.690
1448 Bl3p BTC-EUR: 5687.110 5653.690
1449 Bl3p BTC-EUR: 5687.110 5653.690
1450 Hitbtc BTC-USD: 6594.560 6593.690
1451 Hitbtc BTC-USD: 6594.560 6593.690
1452 Bl3p BTC-EUR: 5687.110 5653.690
1453 Hitbtc BTC-USD: 6594.570 6593.690
1454 Bitstamp EUR-USD: 1.159 1.154
1455 Hitbtc BTC-USD: 6594.570 6593.690
1456 Hitbtc BTC-USD: 6594.580 6593.690
1457 Hitbtc BTC-USD: 6594.580 6593.690
1458 Hitbtc BTC-USD: 6594.580 6593.690
1459 Bl3p BTC-EUR: 5687.110 5653.690
1460 Paymium BTC-EUR: 5680.000 5620.240
1461 </pre></blockquote></p>
1462
1463 <p>The exchange order book is tracked in addition to the best buy/sell
1464 price, for those that need to know the details.</p>
1465
1466 <p>The other example client is focusing on providing a curses view
1467 with updated buy/sell prices as soon as they are received from the
1468 services. This code is located in bin/btc-rates-curses and activated
1469 by using the '-c' argument. Without the argument the "curses" output
1470 is printed without using curses, which is useful for debugging. The
1471 curses view look like this:</p>
1472
1473 <p><blockquote><pre>
1474 Name Pair Bid Ask Spr Ftcd Age
1475 BitcoinsNorway BTCEUR 5591.8400 5711.0800 2.1% 16 nan 60
1476 Bitfinex BTCEUR 5671.0000 5671.2000 0.0% 16 22 59
1477 Bitmynt BTCEUR 5580.8000 5807.5200 3.9% 16 41 60
1478 Bitpay BTCEUR 5663.2700 nan nan% 15 nan 60
1479 Bitstamp BTCEUR 5664.8400 5676.5300 0.2% 0 1 1
1480 Bl3p BTCEUR 5653.6900 5684.9400 0.5% 0 nan 19
1481 Coinbase BTCEUR 5600.8200 5714.9000 2.0% 15 nan nan
1482 Kraken BTCEUR 5670.1000 5670.2000 0.0% 14 17 60
1483 Paymium BTCEUR 5620.0600 5680.0000 1.1% 1 7515 nan
1484 BitcoinsNorway BTCNOK 52898.9700 54034.6100 2.1% 16 nan 60
1485 Bitmynt BTCNOK 52960.3200 54031.1900 2.0% 16 41 60
1486 Bitpay BTCNOK 53477.7833 nan nan% 16 nan 60
1487 Coinbase BTCNOK 52990.3500 54063.0600 2.0% 15 nan nan
1488 MiraiEx BTCNOK 52856.5300 54100.6000 2.3% 16 nan nan
1489 BitcoinsNorway BTCUSD 6495.5300 6631.5400 2.1% 16 nan 60
1490 Bitfinex BTCUSD 6590.6000 6590.7000 0.0% 16 23 57
1491 Bitpay BTCUSD 6564.1300 nan nan% 15 nan 60
1492 Bitstamp BTCUSD 6561.1400 6565.6200 0.1% 0 2 1
1493 Coinbase BTCUSD 6504.0600 6635.9700 2.0% 14 nan 117
1494 Gemini BTCUSD 6567.1300 6573.0700 0.1% 16 89 nan
1495 Hitbtc+BTCUSD 6592.6200 6594.2100 0.0% 0 0 0
1496 Kraken BTCUSD 6565.2000 6570.9000 0.1% 15 17 58
1497 Exchangerates EURNOK 9.4665 9.4665 0.0% 16 107789 nan
1498 Norgesbank EURNOK 9.4665 9.4665 0.0% 16 107789 nan
1499 Bitstamp EURUSD 1.1537 1.1593 0.5% 4 5 1
1500 Exchangerates EURUSD 1.1576 1.1576 0.0% 16 107789 nan
1501 BitcoinsNorway LTCEUR 1.0000 49.0000 98.0% 16 nan nan
1502 BitcoinsNorway LTCNOK 492.4800 503.7500 2.2% 16 nan 60
1503 BitcoinsNorway LTCUSD 1.0221 49.0000 97.9% 15 nan nan
1504 Norgesbank USDNOK 8.1777 8.1777 0.0% 16 107789 nan
1505 </pre></blockquote></p>
1506
1507 <p>The code for this client is too complex for a simple blog post, so
1508 you will have to check out the git repository to figure out how it
1509 work. What I can tell is how the three last numbers on each line
1510 should be interpreted. The first is how many seconds ago information
1511 was received from the service. The second is how long ago, according
1512 to the service, the provided information was updated. The last is an
1513 estimate on how often the buy/sell values change.</p>
1514
1515 <p>If you find this library useful, or would like to improve it, I
1516 would love to hear from you. Note that for some of the services I've
1517 implemented a trading API. It might be the topic of a future blog
1518 post.</p>
1519
1520 <p>As usual, if you use Bitcoin and want to show your support of my
1521 activities, please send Bitcoin donations to my address
1522 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
1523
1524 </div>
1525 <div class="tags">
1526
1527
1528 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
1529
1530
1531 </div>
1532 </div>
1533 <div class="padding"></div>
1534
1535 <div class="entry">
1536 <div class="title">
1537 <a href="http://people.skolelinux.org/pere/blog/VLC_in_Debian_now_can_do_bittorrent_streaming.html">VLC in Debian now can do bittorrent streaming</a>
1538 </div>
1539 <div class="date">
1540 24th September 2018
1541 </div>
1542 <div class="body">
1543 <p>Back in February, I got curious to see
1544 <a href="http://people.skolelinux.org/pere/blog/Using_VLC_to_stream_bittorrent_sources.html">if
1545 VLC now supported Bittorrent streaming</a>. It did not, despite the
1546 fact that the idea and code to handle such streaming had been floating
1547 around for years. I did however find
1548 <a href="https://github.com/johang/vlc-bittorrent">a standalone plugin
1549 for VLC</a> to do it, and half a year later I decided to wrap up the
1550 plugin and get it into Debian. I uploaded it to NEW a few days ago,
1551 and am very happy to report that it
1552 <a href="https://tracker.debian.org/pkg/vlc-plugin-bittorrent">entered
1553 Debian</a> a few hours ago, and should be available in Debian/Unstable
1554 tomorrow, and Debian/Testing in a few days.</p>
1555
1556 <p>With the vlc-plugin-bittorrent package installed you should be able
1557 to stream videos using a simple call to</p>
1558
1559 <p><blockquote><pre>
1560 vlc https://archive.org/download/TheGoat/TheGoat_archive.torrent
1561 </pre></blockquote></p>
1562
1563 </p>It can handle magnet links too. Now if only native vlc had
1564 bittorrent support. Then a lot more would be helping each other to
1565 share public domain and creative commons movies. The plugin need some
1566 stability work with seeking and picking the right file in a torrent
1567 with many files, but is already usable. Please note that the plugin
1568 is not removing downloaded files when vlc is stopped, so it can fill
1569 up your disk if you are not careful. Have fun. :)</p>
1570
1571 <p>I would love to get help maintaining this package. Get in touch if
1572 you are interested.</p>
1573
1574 <p>As usual, if you use Bitcoin and want to show your support of my
1575 activities, please send Bitcoin donations to my address
1576 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
1577
1578 </div>
1579 <div class="tags">
1580
1581
1582 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/verkidetfri">verkidetfri</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
1583
1584
1585 </div>
1586 </div>
1587 <div class="padding"></div>
1588
1589 <div class="entry">
1590 <div class="title">
1591 <a href="http://people.skolelinux.org/pere/blog/Using_the_Kodi_API_to_play_Youtube_videos.html">Using the Kodi API to play Youtube videos</a>
1592 </div>
1593 <div class="date">
1594 2nd September 2018
1595 </div>
1596 <div class="body">
1597 <p>I continue to explore my Kodi installation, and today I wanted to
1598 tell it to play a youtube URL I received in a chat, without having to
1599 insert search terms using the on-screen keyboard. After searching the
1600 web for API access to the Youtube plugin and testing a bit, I managed
1601 to find a recipe that worked. If you got a kodi instance with its API
1602 available from http://kodihost/jsonrpc, you can try the following to
1603 have check out a nice cover band.</p>
1604
1605 <p><blockquote><pre>curl --silent --header 'Content-Type: application/json' \
1606 --data-binary '{ "id": 1, "jsonrpc": "2.0", "method": "Player.Open",
1607 "params": {"item": { "file":
1608 "plugin://plugin.video.youtube/play/?video_id=LuRGVM9O0qg" } } }' \
1609 http://projector.local/jsonrpc</pre></blockquote></p>
1610
1611 <p>I've extended kodi-stream program to take a video source as its
1612 first argument. It can now handle direct video links, youtube links
1613 and 'desktop' to stream my desktop to Kodi. It is almost like a
1614 Chromecast. :)</p>
1615
1616 <p>As usual, if you use Bitcoin and want to show your support of my
1617 activities, please send Bitcoin donations to my address
1618 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
1619
1620 </div>
1621 <div class="tags">
1622
1623
1624 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/kodi">kodi</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
1625
1626
1627 </div>
1628 </div>
1629 <div class="padding"></div>
1630
1631 <div class="entry">
1632 <div class="title">
1633 <a href="http://people.skolelinux.org/pere/blog/Software_created_using_taxpayers__money_should_be_Free_Software.html">Software created using taxpayers’ money should be Free Software</a>
1634 </div>
1635 <div class="date">
1636 30th August 2018
1637 </div>
1638 <div class="body">
1639 <p>It might seem obvious that software created using tax money should
1640 be available for everyone to use and improve. Free Software
1641 Foundation Europe recentlystarted a campaign to help get more people
1642 to understand this, and I just signed the petition on
1643 <a href="https://publiccode.eu/">Public Money, Public Code</a> to help
1644 them. I hope you too will do the same.</p>
1645
1646 </div>
1647 <div class="tags">
1648
1649
1650 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>.
1651
1652
1653 </div>
1654 </div>
1655 <div class="padding"></div>
1656
1657 <div class="entry">
1658 <div class="title">
1659 <a href="http://people.skolelinux.org/pere/blog/A_bit_more_on_privacy_respecting_health_monitor___fitness_tracker.html">A bit more on privacy respecting health monitor / fitness tracker</a>
1660 </div>
1661 <div class="date">
1662 13th August 2018
1663 </div>
1664 <div class="body">
1665 <p>A few days ago, I wondered if there are any privacy respecting
1666 health monitors and/or fitness trackers available for sale these days.
1667 I would like to buy one, but do not want to share my personal data
1668 with strangers, nor be forced to have a mobile phone to get data out
1669 of the unit. I've received some ideas, and would like to share them
1670 with you.
1671
1672 One interesting data point was a pointer to a Free Software app for
1673 Android named
1674 <a href="https://github.com/Freeyourgadget/Gadgetbridge/">Gadgetbridge</a>.
1675 It provide cloudless collection and storing of data from a variety of
1676 trackers. Its
1677 <a href="https://github.com/Freeyourgadget/Gadgetbridge/#supported-devices">list
1678 of supported devices</a> is a good indicator for units where the
1679 protocol is fairly open, as it is obviously being handled by Free
1680 Software. Other units are reportedly encrypting the collected
1681 information with their own public key, making sure only the vendor
1682 cloud service is able to extract data from the unit. The people
1683 contacting me about Gadgetbirde said they were using
1684 <a href="https://us.amazfit.com/shop/bip?variant=336750">Amazfit
1685 Bip</a> and
1686 <a href="http://www.xiaomimi6phone.com/xiaomi-mi-band-3-features-release-date-rumors/">Xiaomi
1687 Band 3</a>.</p>
1688
1689 <p>I also got a suggestion to look at some of the units from Garmin.
1690 I was told their GPS watches can be connected via USB and show up as a
1691 USB storage device with
1692 <a href="https://www.gpsbabel.org/htmldoc-development/fmt_garmin_fit.html">Garmin
1693 FIT files</a> containing the collected measurements. While
1694 proprietary, FIT files apparently can be read at least by
1695 <a href="https://www.gpsbabel.org">GPSBabel</a> and the
1696 <a href="https://apps.nextcloud.com/apps/gpxpod">GpxPod</a> Nextcloud
1697 app. It is unclear to me if they can read step count and heart rate
1698 data. The person I talked to was using a
1699 <a href="https://buy.garmin.com/en-US/US/p/564291">Garmin Forerunner
1700 935</a>, which is a fairly expensive unit. I doubt it is worth it for
1701 a unit where the vendor clearly is trying its best to move from open
1702 to closed systems. I still remember when Garmin dropped NMEA support
1703 in its GPSes.</p>
1704
1705 <p>A final idea was to build ones own unit, perhaps by basing it on a
1706 wearable hardware platforms like
1707 <a href="https://learn.adafruit.com/flora-geo-watch">the Flora Geo
1708 Watch</a>. Sound like fun, but I had more money than time to spend on
1709 the topic, so I suspect it will have to wait for another time.</p>
1710
1711 <p>While I was working on tracking down links, I came across an
1712 inspiring TED talk by Dave Debronkart about
1713 <a href="https://archive.org/details/DavedeBronkart_2010X">being a
1714 e-patient</a>, and discovered the web site
1715 <a href="https://participatorymedicine.org/epatients/">Participatory
1716 Medicine</a>. If you too want to track your own health and fitness
1717 without having information about your private life floating around on
1718 computers owned by others, I recommend checking it out.</p>
1719
1720 <p>As usual, if you use Bitcoin and want to show your support of my
1721 activities, please send Bitcoin donations to my address
1722 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
1723
1724 </div>
1725 <div class="tags">
1726
1727
1728 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
1729
1730
1731 </div>
1732 </div>
1733 <div class="padding"></div>
1734
1735 <div class="entry">
1736 <div class="title">
1737 <a href="http://people.skolelinux.org/pere/blog/Privacy_respecting_health_monitor___fitness_tracker_.html">Privacy respecting health monitor / fitness tracker?</a>
1738 </div>
1739 <div class="date">
1740 7th August 2018
1741 </div>
1742 <div class="body">
1743 <p>Dear lazyweb,</p>
1744
1745 <p>I wonder, is there a fitness tracker / health monitor available for
1746 sale today that respect the users privacy? With this I mean a
1747 watch/bracelet capable of measuring pulse rate and other
1748 fitness/health related values (and by all means, also the correct time
1749 and location if possible), which is <strong>only</strong> provided for
1750 me to extract/read from the unit with computer without a radio beacon
1751 and Internet connection. In other words, it do not depend on a cell
1752 phone app, and do make the measurements available via other peoples
1753 computer (aka "the cloud"). The collected data should be available
1754 using only free software. I'm not interested in depending on some
1755 non-free software that will leave me high and dry some time in the
1756 future. I've been unable to find any such unit. I would like to buy
1757 it. The ones I have seen for sale here in Norway are proud to report
1758 that they share my health data with strangers (aka "cloud enabled").
1759 Is there an alternative? I'm not interested in giving money to people
1760 requiring me to accept "privacy terms" to allow myself to measure my
1761 own health.</p>
1762
1763 <p>As usual, if you use Bitcoin and want to show your support of my
1764 activities, please send Bitcoin donations to my address
1765 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
1766
1767 </div>
1768 <div class="tags">
1769
1770
1771 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
1772
1773
1774 </div>
1775 </div>
1776 <div class="padding"></div>
1777
1778 <div class="entry">
1779 <div class="title">
1780 <a href="http://people.skolelinux.org/pere/blog/Sharing_images_with_friends_and_family_using_RSS_and_EXIF_XMP_metadata.html">Sharing images with friends and family using RSS and EXIF/XMP metadata</a>
1781 </div>
1782 <div class="date">
1783 31st July 2018
1784 </div>
1785 <div class="body">
1786 <p>For a while now, I have looked for a sensible way to share images
1787 with my family using a self hosted solution, as it is unacceptable to
1788 place images from my personal life under the control of strangers
1789 working for data hoarders like Google or Dropbox. The last few days I
1790 have drafted an approach that might work out, and I would like to
1791 share it with you. I would like to publish images on a server under
1792 my control, and point some Internet connected display units using some
1793 free and open standard to the images I published. As my primary
1794 language is not limited to ASCII, I need to store metadata using
1795 UTF-8. Many years ago, I hoped to find a digital photo frame capable
1796 of reading a RSS feed with image references (aka using the
1797 &lt;enclosure&gt; RSS tag), but was unable to find a current supplier
1798 of such frames. In the end I gave up that approach.</p>
1799
1800 <p>Some months ago, I discovered that
1801 <a href="https://www.jwz.org/xscreensaver/">XScreensaver</a> is able to
1802 read images from a RSS feed, and used it to set up a screen saver on
1803 my home info screen, showing images from the Daily images feed from
1804 NASA. This proved to work well. More recently I discovered that
1805 <a href="https://kodi.tv">Kodi</a> (both using
1806 <a href="https://www.openelec.tv/">OpenELEC</a> and
1807 <a href="https://libreelec.tv">LibreELEC</a>) provide the
1808 <a href="https://github.com/grinsted/script.screensaver.feedreader">Feedreader</a>
1809 screen saver capable of reading a RSS feed with images and news. For
1810 fun, I used it this summer to test Kodi on my parents TV by hooking up
1811 a Raspberry PI unit with LibreELEC, and wanted to provide them with a
1812 screen saver showing selected pictures from my selection.</p>
1813
1814 <p>Armed with motivation and a test photo frame, I set out to generate
1815 a RSS feed for the Kodi instance. I adjusted my <a
1816 href="https://freedombox.org/">Freedombox</a> instance, created
1817 /var/www/html/privatepictures/, wrote a small Perl script to extract
1818 title and description metadata from the photo files and generate the
1819 RSS file. I ended up using Perl instead of python, as the
1820 libimage-exiftool-perl Debian package seemed to handle the EXIF/XMP
1821 tags I ended up using, while python3-exif did not. The relevant EXIF
1822 tags only support ASCII, so I had to find better alternatives. XMP
1823 seem to have the support I need.</p>
1824
1825 <p>I am a bit unsure which EXIF/XMP tags to use, as I would like to
1826 use tags that can be easily added/updated using normal free software
1827 photo managing software. I ended up using the tags set using this
1828 exiftool command, as these tags can also be set using digiKam:</p>
1829
1830 <blockquote><pre>
1831 exiftool -headline='The RSS image title' \
1832 -description='The RSS image description.' \
1833 -subject+=for-family photo.jpeg
1834 </pre></blockquote>
1835
1836 <p>I initially tried the "-title" and "keyword" tags, but they were
1837 invisible in digiKam, so I changed to "-headline" and "-subject". I
1838 use the keyword/subject 'for-family' to flag that the photo should be
1839 shared with my family. Images with this keyword set are located and
1840 copied into my Freedombox for the RSS generating script to find.</p>
1841
1842 <p>Are there better ways to do this? Get in touch if you have better
1843 suggestions.</p>
1844
1845 <p>As usual, if you use Bitcoin and want to show your support of my
1846 activities, please send Bitcoin donations to my address
1847 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
1848
1849 </div>
1850 <div class="tags">
1851
1852
1853 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>.
1854
1855
1856 </div>
1857 </div>
1858 <div class="padding"></div>
1859
1860 <div class="entry">
1861 <div class="title">
1862 <a href="http://people.skolelinux.org/pere/blog/Simple_streaming_the_Linux_desktop_to_Kodi_using_GStreamer_and_RTP.html">Simple streaming the Linux desktop to Kodi using GStreamer and RTP</a>
1863 </div>
1864 <div class="date">
1865 12th July 2018
1866 </div>
1867 <div class="body">
1868 <p>Last night, I wrote
1869 <a href="http://people.skolelinux.org/pere/blog/Streaming_the_Linux_desktop_to_Kodi_using_VLC_and_RTSP.html">a
1870 recipe to stream a Linux desktop using VLC to a instance of Kodi</a>.
1871 During the day I received valuable feedback, and thanks to the
1872 suggestions I have been able to rewrite the recipe into a much simpler
1873 approach requiring no setup at all. It is a single script that take
1874 care of it all.</p>
1875
1876 <p>This new script uses GStreamer instead of VLC to capture the
1877 desktop and stream it to Kodi. This fixed the video quality issue I
1878 saw initially. It further removes the need to add a m3u file on the
1879 Kodi machine, as it instead connects to
1880 <a href="https://kodi.wiki/view/JSON-RPC_API/v8">the JSON-RPC API in
1881 Kodi</a> and simply ask Kodi to play from the stream created using
1882 GStreamer. Streaming the desktop to Kodi now become trivial. Copy
1883 the script below, run it with the DNS name or IP address of the kodi
1884 server to stream to as the only argument, and watch your screen show
1885 up on the Kodi screen. Note, it depend on multicast on the local
1886 network, so if you need to stream outside the local network, the
1887 script must be modified. Also note, I have no idea if audio work, as
1888 I only care about the picture part.</p>
1889
1890 <blockquote><pre>
1891 #!/bin/sh
1892 #
1893 # Stream the Linux desktop view to Kodi. See
1894 # http://people.skolelinux.org/pere/blog/Streaming_the_Linux_desktop_to_Kodi_using_VLC_and_RTSP.html
1895 # for backgorund information.
1896
1897 # Make sure the stream is stopped in Kodi and the gstreamer process is
1898 # killed if something go wrong (for example if curl is unable to find the
1899 # kodi server). Do the same when interrupting this script.
1900 kodicmd() {
1901 host="$1"
1902 cmd="$2"
1903 params="$3"
1904 curl --silent --header 'Content-Type: application/json' \
1905 --data-binary "{ \"id\": 1, \"jsonrpc\": \"2.0\", \"method\": \"$cmd\", \"params\": $params }" \
1906 "http://$host/jsonrpc"
1907 }
1908 cleanup() {
1909 if [ -n "$kodihost" ] ; then
1910 # Stop the playing when we end
1911 playerid=$(kodicmd "$kodihost" Player.GetActivePlayers "{}" |
1912 jq .result[].playerid)
1913 kodicmd "$kodihost" Player.Stop "{ \"playerid\" : $playerid }" > /dev/null
1914 fi
1915 if [ "$gstpid" ] && kill -0 "$gstpid" >/dev/null 2>&1; then
1916 kill "$gstpid"
1917 fi
1918 }
1919 trap cleanup EXIT INT
1920
1921 if [ -n "$1" ]; then
1922 kodihost=$1
1923 shift
1924 else
1925 kodihost=kodi.local
1926 fi
1927
1928 mcast=239.255.0.1
1929 mcastport=1234
1930 mcastttl=1
1931
1932 pasrc=$(pactl list | grep -A2 'Source #' | grep 'Name: .*\.monitor$' | \
1933 cut -d" " -f2|head -1)
1934 gst-launch-1.0 ximagesrc use-damage=0 ! video/x-raw,framerate=30/1 ! \
1935 videoconvert ! queue2 ! \
1936 x264enc bitrate=8000 speed-preset=superfast tune=zerolatency qp-min=30 \
1937 key-int-max=15 bframes=2 ! video/x-h264,profile=high ! queue2 ! \
1938 mpegtsmux alignment=7 name=mux ! rndbuffersize max=1316 min=1316 ! \
1939 udpsink host=$mcast port=$mcastport ttl-mc=$mcastttl auto-multicast=1 sync=0 \
1940 pulsesrc device=$pasrc ! audioconvert ! queue2 ! avenc_aac ! queue2 ! mux. \
1941 > /dev/null 2>&1 &
1942 gstpid=$!
1943
1944 # Give stream a second to get going
1945 sleep 1
1946
1947 # Ask kodi to start streaming using its JSON-RPC API
1948 kodicmd "$kodihost" Player.Open \
1949 "{\"item\": { \"file\": \"udp://@$mcast:$mcastport\" } }" > /dev/null
1950
1951 # wait for gst to end
1952 wait "$gstpid"
1953 </pre></blockquote>
1954
1955 <p>I hope you find the approach useful. I know I do.</p>
1956
1957 <p>As usual, if you use Bitcoin and want to show your support of my
1958 activities, please send Bitcoin donations to my address
1959 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
1960
1961 </div>
1962 <div class="tags">
1963
1964
1965 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/kodi">kodi</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
1966
1967
1968 </div>
1969 </div>
1970 <div class="padding"></div>
1971
1972 <div class="entry">
1973 <div class="title">
1974 <a href="http://people.skolelinux.org/pere/blog/Streaming_the_Linux_desktop_to_Kodi_using_VLC_and_RTSP.html">Streaming the Linux desktop to Kodi using VLC and RTSP</a>
1975 </div>
1976 <div class="date">
1977 12th July 2018
1978 </div>
1979 <div class="body">
1980 <p>PS: See
1981 <ahref="http://people.skolelinux.org/pere/blog/Simple_streaming_the_Linux_desktop_to_Kodi_using_GStreamer_and_RTP.html">the
1982 followup post</a> for a even better approach.</p>
1983
1984 <p>A while back, I was asked by a friend how to stream the desktop to
1985 my projector connected to Kodi. I sadly had to admit that I had no
1986 idea, as it was a task I never had tried. Since then, I have been
1987 looking for a way to do so, preferable without much extra software to
1988 install on either side. Today I found a way that seem to kind of
1989 work. Not great, but it is a start.</p>
1990
1991 <p>I had a look at several approaches, for example
1992 <a href="https://github.com/mfoetsch/dlna_live_streaming">using uPnP
1993 DLNA as described in 2011</a>, but it required a uPnP server, fuse and
1994 local storage enough to store the stream locally. This is not going
1995 to work well for me, lacking enough free space, and it would
1996 impossible for my friend to get working.</p>
1997
1998 <p>Next, it occurred to me that perhaps I could use VLC to create a
1999 video stream that Kodi could play. Preferably using
2000 broadcast/multicast, to avoid having to change any setup on the Kodi
2001 side when starting such stream. Unfortunately, the only recipe I
2002 could find using multicast used the rtp protocol, and this protocol
2003 seem to not be supported by Kodi.</p>
2004
2005 <p>On the other hand, the rtsp protocol is working! Unfortunately I
2006 have to specify the IP address of the streaming machine in both the
2007 sending command and the file on the Kodi server. But it is showing my
2008 desktop, and thus allow us to have a shared look on the big screen at
2009 the programs I work on.</p>
2010
2011 <p>I did not spend much time investigating codeces. I combined the
2012 rtp and rtsp recipes from
2013 <a href="https://wiki.videolan.org/Documentation:Streaming_HowTo/Command_Line_Examples/">the
2014 VLC Streaming HowTo/Command Line Examples</a>, and was able to get
2015 this working on the desktop/streaming end.</p>
2016
2017 <blockquote><pre>
2018 vlc screen:// --sout \
2019 '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128}:rtp{dst=projector.local,port=1234,sdp=rtsp://192.168.11.4:8080/test.sdp}'
2020 </pre></blockquote>
2021
2022 <p>I ssh-ed into my Kodi box and created a file like this with the
2023 same IP address:</p>
2024
2025 <blockquote><pre>
2026 echo rtsp://192.168.11.4:8080/test.sdp \
2027 > /storage/videos/screenstream.m3u
2028 </pre></blockquote>
2029
2030 <p>Note the 192.168.11.4 IP address is my desktops IP address. As far
2031 as I can tell the IP must be hardcoded for this to work. In other
2032 words, if someone elses machine is going to do the steaming, you have
2033 to update screenstream.m3u on the Kodi machine and adjust the vlc
2034 recipe. To get started, locate the file in Kodi and select the m3u
2035 file while the VLC stream is running. The desktop then show up in my
2036 big screen. :)</p>
2037
2038 <p>When using the same technique to stream a video file with audio,
2039 the audio quality is really bad. No idea if the problem is package
2040 loss or bad parameters for the transcode. I do not know VLC nor Kodi
2041 enough to tell.</p>
2042
2043 <p><strong>Update 2018-07-12</strong>: Johannes Schauer send me a few
2044 succestions and reminded me about an important step. The "screen:"
2045 input source is only available once the vlc-plugin-access-extra
2046 package is installed on Debian. Without it, you will see this error
2047 message: "VLC is unable to open the MRL 'screen://'. Check the log
2048 for details." He further found that it is possible to drop some parts
2049 of the VLC command line to reduce the amount of hardcoded information.
2050 It is also useful to consider using cvlc to avoid having the VLC
2051 window in the desktop view. In sum, this give us this command line on
2052 the source end
2053
2054 <blockquote><pre>
2055 cvlc screen:// --sout \
2056 '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128}:rtp{sdp=rtsp://:8080/}'
2057 </pre></blockquote>
2058
2059 <p>and this on the Kodi end<p>
2060
2061 <blockquote><pre>
2062 echo rtsp://192.168.11.4:8080/ \
2063 > /storage/videos/screenstream.m3u
2064 </pre></blockquote>
2065
2066 <p>Still bad image quality, though. But I did discover that streaming
2067 a DVD using dvdsimple:///dev/dvd as the source had excellent video and
2068 audio quality, so I guess the issue is in the input or transcoding
2069 parts, not the rtsp part. I've tried to change the vb and ab
2070 parameters to use more bandwidth, but it did not make a
2071 difference.</p>
2072
2073 <p>I further received a suggestion from Einar Haraldseid to try using
2074 gstreamer instead of VLC, and this proved to work great! He also
2075 provided me with the trick to get Kodi to use a multicast stream as
2076 its source. By using this monstrous oneliner, I can stream my desktop
2077 with good video quality in reasonable framerate to the 239.255.0.1
2078 multicast address on port 1234:
2079
2080 <blockquote><pre>
2081 gst-launch-1.0 ximagesrc use-damage=0 ! video/x-raw,framerate=30/1 ! \
2082 videoconvert ! queue2 ! \
2083 x264enc bitrate=8000 speed-preset=superfast tune=zerolatency qp-min=30 \
2084 key-int-max=15 bframes=2 ! video/x-h264,profile=high ! queue2 ! \
2085 mpegtsmux alignment=7 name=mux ! rndbuffersize max=1316 min=1316 ! \
2086 udpsink host=239.255.0.1 port=1234 ttl-mc=1 auto-multicast=1 sync=0 \
2087 pulsesrc device=$(pactl list | grep -A2 'Source #' | \
2088 grep 'Name: .*\.monitor$' | cut -d" " -f2|head -1) ! \
2089 audioconvert ! queue2 ! avenc_aac ! queue2 ! mux.
2090 </pre></blockquote>
2091
2092 <p>and this on the Kodi end<p>
2093
2094 <blockquote><pre>
2095 echo udp://@239.255.0.1:1234 \
2096 > /storage/videos/screenstream.m3u
2097 </pre></blockquote>
2098
2099 <p>Note the trick to pick a valid pulseaudio source. It might not
2100 pick the one you need. This approach will of course lead to trouble
2101 if more than one source uses the same multicast port and address.
2102 Note the ttl-mc=1 setting, which limit the multicast packages to the
2103 local network. If the value is increased, your screen will be
2104 broadcasted further, one network "hop" for each increase (read up on
2105 multicast to learn more. :)!</p>
2106
2107 <p>Having cracked how to get Kodi to receive multicast streams, I
2108 could use this VLC command to stream to the same multicast address.
2109 The image quality is way better than the rtsp approach, but gstreamer
2110 seem to be doing a better job.</p>
2111
2112 <blockquote><pre>
2113 cvlc screen:// --sout '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128}:rtp{mux=ts,dst=239.255.0.1,port=1234,sdp=sap}'
2114 </pre></blockquote>
2115
2116 <p>As usual, if you use Bitcoin and want to show your support of my
2117 activities, please send Bitcoin donations to my address
2118 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
2119
2120 </div>
2121 <div class="tags">
2122
2123
2124 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/kodi">kodi</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
2125
2126
2127 </div>
2128 </div>
2129 <div class="padding"></div>
2130
2131 <div class="entry">
2132 <div class="title">
2133 <a href="http://people.skolelinux.org/pere/blog/What_is_the_most_supported_MIME_type_in_Debian_in_2018_.html">What is the most supported MIME type in Debian in 2018?</a>
2134 </div>
2135 <div class="date">
2136 9th July 2018
2137 </div>
2138 <div class="body">
2139 <p>Five years ago,
2140 <a href="http://people.skolelinux.org/pere/blog/What_is_the_most_supported_MIME_type_in_Debian_.html">I
2141 measured what the most supported MIME type in Debian was</a>, by
2142 analysing the desktop files in all packages in the archive. Since
2143 then, the DEP-11 AppStream system has been put into production, making
2144 the task a lot easier. This made me want to repeat the measurement,
2145 to see how much things changed. Here are the new numbers, for
2146 unstable only this time:
2147
2148 <p><strong>Debian Unstable:</strong></p>
2149
2150 <pre>
2151 count MIME type
2152 ----- -----------------------
2153 56 image/jpeg
2154 55 image/png
2155 49 image/tiff
2156 48 image/gif
2157 39 image/bmp
2158 38 text/plain
2159 37 audio/mpeg
2160 34 application/ogg
2161 33 audio/x-flac
2162 32 audio/x-mp3
2163 30 audio/x-wav
2164 30 audio/x-vorbis+ogg
2165 29 image/x-portable-pixmap
2166 27 inode/directory
2167 27 image/x-portable-bitmap
2168 27 audio/x-mpeg
2169 26 application/x-ogg
2170 25 audio/x-mpegurl
2171 25 audio/ogg
2172 24 text/html
2173 </pre>
2174
2175 <p>The list was created like this using a sid chroot: "cat
2176 /var/lib/apt/lists/*sid*_dep11_Components-amd64.yml.gz| zcat | awk '/^
2177 - \S+\/\S+$/ {print $2 }' | sort | uniq -c | sort -nr | head -20"</p>
2178
2179 <p>It is interesting to see how image formats have passed text/plain
2180 as the most announced supported MIME type. These days, thanks to the
2181 AppStream system, if you run into a file format you do not know, and
2182 want to figure out which packages support the format, you can find the
2183 MIME type of the file using "file --mime &lt;filename&gt;", and then
2184 look up all packages announcing support for this format in their
2185 AppStream metadata (XML or .desktop file) using "appstreamcli
2186 what-provides mimetype &lt;mime-type&gt;. For example if you, like
2187 me, want to know which packages support inode/directory, you can get a
2188 list like this:</p>
2189
2190 <p><blockquote><pre>
2191 % appstreamcli what-provides mimetype inode/directory | grep Package: | sort
2192 Package: anjuta
2193 Package: audacious
2194 Package: baobab
2195 Package: cervisia
2196 Package: chirp
2197 Package: dolphin
2198 Package: doublecmd-common
2199 Package: easytag
2200 Package: enlightenment
2201 Package: ephoto
2202 Package: filelight
2203 Package: gwenview
2204 Package: k4dirstat
2205 Package: kaffeine
2206 Package: kdesvn
2207 Package: kid3
2208 Package: kid3-qt
2209 Package: nautilus
2210 Package: nemo
2211 Package: pcmanfm
2212 Package: pcmanfm-qt
2213 Package: qweborf
2214 Package: ranger
2215 Package: sirikali
2216 Package: spacefm
2217 Package: spacefm
2218 Package: vifm
2219 %
2220 </pre></blockquote></p>
2221
2222 <p>Using the same method, I can quickly discover that the Sketchup file
2223 format is not yet supported by any package in Debian:</p>
2224
2225 <p><blockquote><pre>
2226 % appstreamcli what-provides mimetype application/vnd.sketchup.skp
2227 Could not find component providing 'mimetype::application/vnd.sketchup.skp'.
2228 %
2229 </pre></blockquote></p>
2230
2231 <p>Yesterday I used it to figure out which packages support the STL 3D
2232 format:</p>
2233
2234 <p><blockquote><pre>
2235 % appstreamcli what-provides mimetype application/sla|grep Package
2236 Package: cura
2237 Package: meshlab
2238 Package: printrun
2239 %
2240 </pre></blockquote></p>
2241
2242 <p>PS: A new version of Cura was uploaded to Debian yesterday.</p>
2243
2244 <p>As usual, if you use Bitcoin and want to show your support of my
2245 activities, please send Bitcoin donations to my address
2246 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
2247
2248 </div>
2249 <div class="tags">
2250
2251
2252 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram</a>.
2253
2254
2255 </div>
2256 </div>
2257 <div class="padding"></div>
2258
2259 <div class="entry">
2260 <div class="title">
2261 <a href="http://people.skolelinux.org/pere/blog/Debian_APT_upgrade_without_enough_free_space_on_the_disk___.html">Debian APT upgrade without enough free space on the disk...</a>
2262 </div>
2263 <div class="date">
2264 8th July 2018
2265 </div>
2266 <div class="body">
2267 <p>Quite regularly, I let my Debian Sid/Unstable chroot stay untouch
2268 for a while, and when I need to update it there is not enough free
2269 space on the disk for apt to do a normal 'apt upgrade'. I normally
2270 would resolve the issue by doing 'apt install &lt;somepackages&gt;' to
2271 upgrade only some of the packages in one batch, until the amount of
2272 packages to download fall below the amount of free space available.
2273 Today, I had about 500 packages to upgrade, and after a while I got
2274 tired of trying to install chunks of packages manually. I concluded
2275 that I did not have the spare hours required to complete the task, and
2276 decided to see if I could automate it. I came up with this small
2277 script which I call 'apt-in-chunks':</p>
2278
2279 <p><blockquote><pre>
2280 #!/bin/sh
2281 #
2282 # Upgrade packages when the disk is too full to upgrade every
2283 # upgradable package in one lump. Fetching packages to upgrade using
2284 # apt, and then installing using dpkg, to avoid changing the package
2285 # flag for manual/automatic.
2286
2287 set -e
2288
2289 ignore() {
2290 if [ "$1" ]; then
2291 grep -v "$1"
2292 else
2293 cat
2294 fi
2295 }
2296
2297 for p in $(apt list --upgradable | ignore "$@" |cut -d/ -f1 | grep -v '^Listing...'); do
2298 echo "Upgrading $p"
2299 apt clean
2300 apt install --download-only -y $p
2301 for f in /var/cache/apt/archives/*.deb; do
2302 if [ -e "$f" ]; then
2303 dpkg -i /var/cache/apt/archives/*.deb
2304 break
2305 fi
2306 done
2307 done
2308 </pre></blockquote></p>
2309
2310 <p>The script will extract the list of packages to upgrade, try to
2311 download the packages needed to upgrade one package, install the
2312 downloaded packages using dpkg. The idea is to upgrade packages
2313 without changing the APT mark for the package (ie the one recording of
2314 the package was manually requested or pulled in as a dependency). To
2315 use it, simply run it as root from the command line. If it fail, try
2316 'apt install -f' to clean up the mess and run the script again. This
2317 might happen if the new packages conflict with one of the old
2318 packages. dpkg is unable to remove, while apt can do this.</p>
2319
2320 <p>It take one option, a package to ignore in the list of packages to
2321 upgrade. The option to ignore a package is there to be able to skip
2322 the packages that are simply too large to unpack. Today this was
2323 'ghc', but I have run into other large packages causing similar
2324 problems earlier (like TeX).</p>
2325
2326 <p>Update 2018-07-08: Thanks to Paul Wise, I am aware of two
2327 alternative ways to handle this. The "unattended-upgrades
2328 --minimal-upgrade-steps" option will try to calculate upgrade sets for
2329 each package to upgrade, and then upgrade them in order, smallest set
2330 first. It might be a better option than my above mentioned script.
2331 Also, "aptutude upgrade" can upgrade single packages, thus avoiding
2332 the need for using "dpkg -i" in the script above.</p>
2333
2334 <p>As usual, if you use Bitcoin and want to show your support of my
2335 activities, please send Bitcoin donations to my address
2336 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
2337
2338 </div>
2339 <div class="tags">
2340
2341
2342 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>.
2343
2344
2345 </div>
2346 </div>
2347 <div class="padding"></div>
2348
2349 <div class="entry">
2350 <div class="title">
2351 <a href="http://people.skolelinux.org/pere/blog/The_worlds_only_stone_power_plant_.html">The worlds only stone power plant?</a>
2352 </div>
2353 <div class="date">
2354 30th June 2018
2355 </div>
2356 <div class="body">
2357 <p>So far, at least hydro-electric power, coal power, wind power,
2358 solar power, and wood power are well known. Until a few days ago, I
2359 had never heard of stone power. Then I learn about a quarry in a
2360 mountain in
2361 <a href="https://en.wikipedia.org/wiki/Bremanger">Bremanger</a> i
2362 Norway, where
2363 <a href="https://www.bontrup.com/en/activities/raw-materials/bremanger-quarry/">the
2364 Bremanger Quarry</a> company is extracting stone and dumping the stone
2365 into a shaft leading to its shipping harbour. This downward movement
2366 in this shaft is used to produce electricity. In short, it is using
2367 falling rocks instead of falling water to produce electricity, and
2368 according to its own statements it is producing more power than it is
2369 using, and selling the surplus electricity to the Norwegian power
2370 grid. I find the concept truly amazing. Is this the worlds only
2371 stone power plant?</p>
2372
2373 <p>As usual, if you use Bitcoin and want to show your support of my
2374 activities, please send Bitcoin donations to my address
2375 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
2376
2377 </div>
2378 <div class="tags">
2379
2380
2381 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
2382
2383
2384 </div>
2385 </div>
2386 <div class="padding"></div>
2387
2388 <div class="entry">
2389 <div class="title">
2390 <a href="http://people.skolelinux.org/pere/blog/Add_on_to_control_the_projector_from_within_Kodi.html">Add-on to control the projector from within Kodi</a>
2391 </div>
2392 <div class="date">
2393 26th June 2018
2394 </div>
2395 <div class="body">
2396 <p>My movie playing setup involve <a href="https://kodi.tv/">Kodi</a>,
2397 <a href="https://openelec.tv">OpenELEC</a> (probably soon to be
2398 replaced with <a href="https://libreelec.tv/">LibreELEC</a>) and an
2399 Infocus IN76 video projector. My projector can be controlled via both
2400 a infrared remote controller, and a RS-232 serial line. The vendor of
2401 my projector, <a href="https://www.infocus.com/">InFocus</a>, had been
2402 sensible enough to document the serial protocol in its user manual, so
2403 it is easily available, and I used it some years ago to write
2404 <a href="https://github.com/petterreinholdtsen/infocus-projector-control">a
2405 small script to control the projector</a>. For a while now, I longed
2406 for a setup where the projector was controlled by Kodi, for example in
2407 such a way that when the screen saver went on, the projector was
2408 turned off, and when the screen saver exited, the projector was turned
2409 on again.</p>
2410
2411 <p>A few days ago, with very good help from parts of my family, I
2412 managed to find a Kodi Add-on for controlling a Epson projector, and
2413 got in touch with its author to see if we could join forces and make a
2414 Add-on with support for several projectors. To my pleasure, he was
2415 positive to the idea, and we set out to add InFocus support to his
2416 add-on, and make the add-on suitable for the official Kodi add-on
2417 repository.</p>
2418
2419 <p>The Add-on is now working (for me, at least), with a few minor
2420 adjustments. The most important change I do relative to the master
2421 branch in the github repository is embedding the
2422 <a href="https://github.com/pyserial/pyserial">pyserial module</a> in
2423 the add-on. The long term solution is to make a "script" type
2424 pyserial module for Kodi, that can be pulled in as a dependency in
2425 Kodi. But until that in place, I embed it.</p>
2426
2427 <p>The add-on can be configured to turn on the projector when Kodi
2428 starts, off when Kodi stops as well as turn the projector off when the
2429 screensaver start and on when the screesaver stops. It can also be
2430 told to set the projector source when turning on the projector.
2431
2432 <p>If this sound interesting to you, check out
2433 <a href="https://github.com/fredrik-eriksson/kodi_projcontrol">the
2434 project github repository</a>. Perhaps you can send patches to
2435 support your projector too? As soon as we find time to wrap up the
2436 latest changes, it should be available for easy installation using any
2437 Kodi instance.</p>
2438
2439 <p>For future improvements, I would like to add projector model
2440 detection and the ability to adjust the brightness level of the
2441 projector from within Kodi. We also need to figure out how to handle
2442 the cooling period of the projector. My projector refuses to turn on
2443 for 60 seconds after it was turned off. This is not handled well by
2444 the add-on at the moment.</p>
2445
2446 <p>As usual, if you use Bitcoin and want to show your support of my
2447 activities, please send Bitcoin donations to my address
2448 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
2449
2450 </div>
2451 <div class="tags">
2452
2453
2454 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>.
2455
2456
2457 </div>
2458 </div>
2459 <div class="padding"></div>
2460
2461 <div class="entry">
2462 <div class="title">
2463 <a href="http://people.skolelinux.org/pere/blog/Self_appointed_leaders_of_the_Free_World.html">Self-appointed leaders of the Free World</a>
2464 </div>
2465 <div class="date">
2466 22nd March 2018
2467 </div>
2468 <div class="body">
2469 <p>The leaders of the worlds have started to congratulate the
2470 re-elected Russian head of state, and this causes some criticism. I
2471 am though a little fascinated by a comment from USA senator John McCain,
2472 <a href="http://thehill.com/homenews/senate/379339-mccain-rips-trumps-congratulatory-call-to-putin-as-insult-to-russian-people">sited
2473 by The Hill and others</a>:
2474
2475 <p><blockquote>
2476 <p>"An American president does not lead the Free World by
2477 congratulating dictators on winning sham elections."</p>
2478 </blockquote></p>
2479
2480 <p>While I totally agree with the senator here, the way the quote is
2481 phrased make me suspect that he is unaware of the simple fact that USA
2482 have not lead the Free World since at least before its government
2483 <a href="https://en.wikipedia.org/wiki/Maher_Arar">kidnapped a
2484 completely innocent Canadian citizen in transit on his way home to
2485 Canada via John F. Kennedy International Airport in September 2002 and
2486 sent him to be tortured in Syria for a year</a>.</p>
2487
2488 <p>USA might be running ahead, but the path they are taking is not the
2489 one taken by any Free World.</p>
2490
2491 </div>
2492 <div class="tags">
2493
2494
2495 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
2496
2497
2498 </div>
2499 </div>
2500 <div class="padding"></div>
2501
2502 <div class="entry">
2503 <div class="title">
2504 <a href="http://people.skolelinux.org/pere/blog/Facebooks_ability_to_sell_your_personal_information_is_the_real_Cambridge_Analytica_scandal.html">Facebooks ability to sell your personal information is the real Cambridge Analytica scandal</a>
2505 </div>
2506 <div class="date">
2507 21st March 2018
2508 </div>
2509 <div class="body">
2510 <p>So, Cambridge Analytica is getting some well deserved criticism for
2511 (mis)using information it got from Facebook about 50 million people,
2512 mostly in the USA. What I find a bit surprising, is how little
2513 criticism Facebook is getting for handing the information over to
2514 Cambridge Analytica and others in the first place. And what about the
2515 people handing their private and personal information to Facebook?
2516 And last, but not least, what about the government offices who are
2517 handing information about the visitors of their web pages to Facebook?
2518 No-one who looked at the terms of use of Facebook should be surprised
2519 that information about peoples interests, political views, personal
2520 lifes and whereabouts would be sold by Facebook.</p>
2521
2522 <p>What I find to be the real scandal is the fact that Facebook is
2523 selling your personal information, not that one of the buyers used it
2524 in a way Facebook did not approve when exposed. It is well known that
2525 Facebook is selling out their users privacy, but a scandal
2526 nevertheless. Of course the information provided to them by Facebook
2527 would be misused by one of the parties given access to personal
2528 information about the millions of Facebook users. Collected
2529 information will be misused sooner or later. The only way to avoid
2530 such misuse, is to not collect the information in the first place. If
2531 you do not want Facebook to hand out information about yourself for
2532 the use and misuse of its customers, do not give Facebook the
2533 information.</p>
2534
2535 <p>Personally, I would recommend to completely remove your Facebook
2536 account, and take back some control of your personal information.
2537 <a href="https://www.theguardian.com/technology/2018/mar/19/how-to-protect-your-facebook-privacy-or-delete-yourself-completely">According
2538 to The Guardian</a>, it is a bit hard to find out how to request
2539 account removal (and not just 'disabling'). You need to
2540 <a href="https://www.facebook.com/help/224562897555674?helpref=faq_content">visit
2541 a specific Facebook page</a> and click on 'let us know' on that page
2542 to get to <a href="https://www.facebook.com/help/delete_account">the
2543 real account deletion screen</a>. Perhaps something to consider? I
2544 would not trust the information to really be deleted (who knows,
2545 perhaps NSA, GCHQ and FRA already got a copy), but it might reduce the
2546 exposure a bit.</p>
2547
2548 <p>If you want to learn more about the capabilities of Cambridge
2549 Analytica, I recommend to see the video recording of the one hour talk
2550 Paul-Olivier Dehaye gave to <a href="">NUUG</a> last april about
2551 <a href="https://www.nuug.no/aktiviteter/20170404-big-data-psychometric/">
2552 Data collection, psychometric profiling and their impact on
2553 politics</a>.</p>
2554
2555 <p>And if you want to communicate with your friends and loved ones,
2556 use some end-to-end encrypted method like
2557 <a href="https://www.signal.org/">Signal</a> or
2558 <a href="https://ring.cx/">Ring</a>, and stop sharing your private
2559 messages with strangers like Facebook and Google.</p>
2560
2561 </div>
2562 <div class="tags">
2563
2564
2565 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>.
2566
2567
2568 </div>
2569 </div>
2570 <div class="padding"></div>
2571
2572 <div class="entry">
2573 <div class="title">
2574 <a href="http://people.skolelinux.org/pere/blog/First_rough_draft_Norwegian_and_Spanish_edition_of_the_book_Made_with_Creative_Commons.html">First rough draft Norwegian and Spanish edition of the book Made with Creative Commons</a>
2575 </div>
2576 <div class="date">
2577 13th March 2018
2578 </div>
2579 <div class="body">
2580 <p>I am working on publishing yet another book related to Creative
2581 Commons. This time it is a book filled with interviews and histories
2582 from those around the globe making a living using Creative
2583 Commons.</p>
2584
2585 <p>Yesterday, after many months of hard work by several volunteer
2586 translators, the first draft of a Norwegian Bokmål edition of the book
2587 <a href="https://madewith.cc">Made with Creative Commons from 2017</a>
2588 was complete. The Spanish translation is also complete, while the
2589 Dutch, Polish, German and Ukraine edition need a lot of work. Get in
2590 touch if you want to help make those happen, or would like to
2591 translate into your mother tongue.</p>
2592
2593 <p>The whole book project started when
2594 <a href="http://gwolf.org/node/4102">Gunnar Wolf announced</a> that he
2595 was going to make a Spanish edition of the book. I noticed, and
2596 offered some input on how to make a book, based on my experience with
2597 translating the
2598 <a href="https://www.lulu.com/shop/lawrence-lessig/fri-kultur/paperback/product-22441576.html">Free
2599 Culture</a> and
2600 <a href="https://debian-handbook.info/get/#norwegian">The Debian
2601 Administrator's Handbook</a> books to Norwegian Bokmål. To make a
2602 long story short, we ended up working on a Bokmål edition, and now the
2603 first rough translation is complete, thanks to the hard work of
2604 Ole-Erik Yrvin, Ingrid Yrvin, Allan Nordhøy and myself. The first
2605 proof reading is almost done, and only the second and third proof
2606 reading remains. We will also need to translate the 14 figures and
2607 create a book cover. Once it is done we will publish the book on
2608 paper, as well as in PDF, ePub and possibly Mobi formats.</p>
2609
2610 <p>The book itself originates as a manuscript on Google Docs, is
2611 downloaded as ODT from there and converted to Markdown using pandoc.
2612 The Markdown is modified by a script before is converted to DocBook
2613 using pandoc. The DocBook is modified again using a script before it
2614 is used to create a Gettext POT file for translators. The translated
2615 PO file is then combined with the earlier mentioned DocBook file to
2616 create a translated DocBook file, which finally is given to dblatex to
2617 create the final PDF. The end result is a set of editions of the
2618 manuscript, one English and one for each of the translations.</p>
2619
2620 <p>The translation is conducted using
2621 <a href="https://hosted.weblate.org/projects/madewithcc/translation/">the
2622 Weblate web based translation system</a>. Please have a look there
2623 and get in touch if you would like to help out with proof
2624 reading. :)</p>
2625
2626 <p>As usual, if you use Bitcoin and want to show your support of my
2627 activities, please send Bitcoin donations to my address
2628 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
2629
2630 </div>
2631 <div class="tags">
2632
2633
2634 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
2635
2636
2637 </div>
2638 </div>
2639 <div class="padding"></div>
2640
2641 <div class="entry">
2642 <div class="title">
2643 <a href="http://people.skolelinux.org/pere/blog/Debian_used_in_the_subway_info_screens_in_Oslo__Norway.html">Debian used in the subway info screens in Oslo, Norway</a>
2644 </div>
2645 <div class="date">
2646 2nd March 2018
2647 </div>
2648 <div class="body">
2649 <p>Today I was pleasantly surprised to discover my operating system of
2650 choice, Debian, was used in the info screens on the subway stations.
2651 While passing Nydalen subway station in Oslo, Norway, I discovered the
2652 info screen booting with some text scrolling. I was not quick enough
2653 with my camera to be able to record a video of the scrolling boot
2654 screen, but I did get a photo from when the boot got stuck with a
2655 corrupt file system:
2656
2657 <p align="center"><a href="http://people.skolelinux.org/pere/blog/images/2018-03-02-ruter-debian-lenny.jpeg"><img align="center" width="40%" src="http://people.skolelinux.org/pere/blog/images/2018-03-02-ruter-debian-lenny.jpeg" alt="[photo of subway info screen]"></a></p>
2658
2659 <p>While I am happy to see Debian used more places, some details of the
2660 content on the screen worries me.</p>
2661
2662 <p>The image show the version booting is 'Debian GNU/Linux lenny/sid',
2663 indicating that this is based on code taken from Debian Unstable/Sid
2664 after Debian Etch (version 4) was released 2007-04-08 and before
2665 Debian Lenny (version 5) was released 2009-02-14. Since Lenny Debian
2666 has released version 6 (Squeeze) 2011-02-06, 7 (Wheezy) 2013-05-04, 8
2667 (Jessie) 2015-04-25 and 9 (Stretch) 2017-06-15, according to
2668 <a href="https://en.wikipedia.org/wiki/Debian_version_history">a Debian
2669 version history on Wikpedia</a>. This mean the system is running
2670 around 10 year old code, with no security fixes from the vendor for
2671 many years.</p>
2672
2673 <p>This is not the first time I discover the Oslo subway company,
2674 Ruter, running outdated software. In 2012,
2675 <a href="http://people.skolelinux.org/pere/blog/Er_billettautomatene_til_kollektivtrafikken_i_Oslo_uten_sikkerhetsoppdateringer_.html">I
2676 discovered the ticket vending machines were running Windows 2000</a>,
2677 and this was
2678 <a href="http://people.skolelinux.org/pere/blog/Fortsatt_ingen_sikkerhetsoppdateringer_for_billettautomatene_til_kollektivtrafikken_i_Oslo_.html">still
2679 the case in 2016</a>. Given the response from the responsible people
2680 in 2016, I would assume the machines are still running unpatched
2681 Windows 2000. Thus, an unpatched Debian setup come as no surprise.</p>
2682
2683 <p>The photo is made available under the license terms
2684 <a href="http://creativecommons.org/licenses/by/4.0/">Creative Commons
2685 4.0 Attribution International (CC BY 4.0)</a>.</p>
2686
2687 <p>As usual, if you use Bitcoin and want to show your support of my
2688 activities, please send Bitcoin donations to my address
2689 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
2690
2691 </div>
2692 <div class="tags">
2693
2694
2695 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/ruter">ruter</a>.
2696
2697
2698 </div>
2699 </div>
2700 <div class="padding"></div>
2701
2702 <div class="entry">
2703 <div class="title">
2704 <a href="http://people.skolelinux.org/pere/blog/The_SysVinit_upstream_project_just_migrated_to_git.html">The SysVinit upstream project just migrated to git</a>
2705 </div>
2706 <div class="date">
2707 18th February 2018
2708 </div>
2709 <div class="body">
2710 <p>Surprising as it might sound, there are still computers using the
2711 traditional Sys V init system, and there probably will be until
2712 systemd start working on Hurd and FreeBSD.
2713 <a href="https://savannah.nongnu.org/projects/sysvinit">The upstream
2714 project still exist</a>, though, and up until today, the upstream
2715 source was available from Savannah via subversion. I am happy to
2716 report that this just changed.</p>
2717
2718 <p>The upstream source is now in Git, and consist of three
2719 repositories:</p>
2720
2721 <ul>
2722
2723 <li><a href="http://git.savannah.nongnu.org/cgit/sysvinit.git">sysvinit</a></li>
2724 <li><a href="http://git.savannah.nongnu.org/cgit/sysvinit/insserv.git">insserv</a></li>
2725 <li><a href="http://git.savannah.nongnu.org/cgit/sysvinit/startpar.git">startpar</a></li>
2726
2727 </ul>
2728
2729 <p>I do not really spend much time on the project these days, and I
2730 has mostly retired, but found it best to migrate the source to a good
2731 version control system to help those willing to move it forward.</p>
2732
2733 <p>As usual, if you use Bitcoin and want to show your support of my
2734 activities, please send Bitcoin donations to my address
2735 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
2736
2737 </div>
2738 <div class="tags">
2739
2740
2741 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
2742
2743
2744 </div>
2745 </div>
2746 <div class="padding"></div>
2747
2748 <div class="entry">
2749 <div class="title">
2750 <a href="http://people.skolelinux.org/pere/blog/Using_VLC_to_stream_bittorrent_sources.html">Using VLC to stream bittorrent sources</a>
2751 </div>
2752 <div class="date">
2753 14th February 2018
2754 </div>
2755 <div class="body">
2756 <p>A few days ago, a new major version of
2757 <a href="https://www.videolan.org/">VLC</a> was announced, and I
2758 decided to check out if it now supported streaming over
2759 <a href="http://bittorrent.org/">bittorrent</a> and
2760 <a href="https://webtorrent.io">webtorrent</a>. Bittorrent is one of
2761 the most efficient ways to distribute large files on the Internet, and
2762 Webtorrent is a variant of Bittorrent using
2763 <a href="https://webrtc.org">WebRTC</a> as its transport channel,
2764 allowing web pages to stream and share files using the same technique.
2765 The network protocols are similar but not identical, so a client
2766 supporting one of them can not talk to a client supporting the other.
2767 I was a bit surprised with what I discovered when I started to look.
2768 Looking at
2769 <a href="https://www.videolan.org/vlc/releases/3.0.0.html">the release
2770 notes</a> did not help answering this question, so I started searching
2771 the web. I found several news articles from 2013, most of them
2772 tracing the news from Torrentfreak
2773 ("<a href=https://torrentfreak.com/open-source-giant-vlc-mulls-bittorrent-support-130211/">Open
2774 Source Giant VLC Mulls BitTorrent Streaming Support</a>"), about a
2775 initiative to pay someone to create a VLC patch for bittorrent
2776 support. To figure out what happend with this initiative, I headed
2777 over to the #videolan IRC channel and asked if there were some bug or
2778 feature request tickets tracking such feature. I got an answer from
2779 lead developer Jean-Babtiste Kempf, telling me that there was a patch
2780 but neither he nor anyone else knew where it was. So I searched a bit
2781 more, and came across an independent
2782 <a href="https://github.com/johang/vlc-bittorrent">VLC plugin to add
2783 bittorrent support</a>, created by Johan Gunnarsson in 2016/2017.
2784 Again according to Jean-Babtiste, this is not the patch he was talking
2785 about.</p>
2786
2787 <p>Anyway, to test the plugin, I made a working Debian package from
2788 the git repository, with some modifications. After installing this
2789 package, I could stream videos from
2790 <a href="https://www.archive.org/">The Internet Archive</a> using VLC
2791 commands like this:</p>
2792
2793 <p><blockquote><pre>
2794 vlc https://archive.org/download/LoveNest/LoveNest_archive.torrent
2795 </pre></blockquote></p>
2796
2797 <p>The plugin is supposed to handle magnet links too, but since The
2798 Internet Archive do not have magnet links and I did not want to spend
2799 time tracking down another source, I have not tested it. It can take
2800 quite a while before the video start playing without any indication of
2801 what is going on from VLC. It took 10-20 seconds when I measured it.
2802 Some times the plugin seem unable to find the correct video file to
2803 play, and show the metadata XML file name in the VLC status line. I
2804 have no idea why.</p>
2805
2806 <p>I have created a <a href="https://bugs.debian.org/890360">request for
2807 a new package in Debian (RFP)</a> and
2808 <a href="https://github.com/johang/vlc-bittorrent/issues/1">asked if
2809 the upstream author is willing to help make this happen</a>. Now we
2810 wait to see what come out of this. I do not want to maintain a
2811 package that is not maintained upstream, nor do I really have time to
2812 maintain more packages myself, so I might leave it at this. But I
2813 really hope someone step up to do the packaging, and hope upstream is
2814 still maintaining the source. If you want to help, please update the
2815 RFP request or the upstream issue.</p>
2816
2817 <p>I have not found any traces of webtorrent support for VLC.</p>
2818
2819 <p>As usual, if you use Bitcoin and want to show your support of my
2820 activities, please send Bitcoin donations to my address
2821 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
2822
2823 </div>
2824 <div class="tags">
2825
2826
2827 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/verkidetfri">verkidetfri</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
2828
2829
2830 </div>
2831 </div>
2832 <div class="padding"></div>
2833
2834 <div class="entry">
2835 <div class="title">
2836 <a href="http://people.skolelinux.org/pere/blog/Version_3_1_of_Cura__the_3D_print_slicer__is_now_in_Debian.html">Version 3.1 of Cura, the 3D print slicer, is now in Debian</a>
2837 </div>
2838 <div class="date">
2839 13th February 2018
2840 </div>
2841 <div class="body">
2842 <p>A new version of the
2843 <a href="https://tracker.debian.org/pkg/cura">3D printer slicer
2844 software Cura</a>, version 3.1.0, is now available in Debian Testing
2845 (aka Buster) and Debian Unstable (aka Sid). I hope you find it
2846 useful. It was uploaded the last few days, and the last update will
2847 enter testing tomorrow. See the
2848 <a href="https://ultimaker.com/en/products/cura-software/release-notes">release
2849 notes</a> for the list of bug fixes and new features. Version 3.2
2850 was announced 6 days ago. We will try to get it into Debian as
2851 well.</p>
2852
2853 <p>More information related to 3D printing is available on the
2854 <a href="https://wiki.debian.org/3DPrinting">3D printing</a> and
2855 <a href="https://wiki.debian.org/3D-printer">3D printer</a> wiki pages
2856 in Debian.</p>
2857
2858 <p>As usual, if you use Bitcoin and want to show your support of my
2859 activities, please send Bitcoin donations to my address
2860 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
2861
2862 </div>
2863 <div class="tags">
2864
2865
2866 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>.
2867
2868
2869 </div>
2870 </div>
2871 <div class="padding"></div>
2872
2873 <div class="entry">
2874 <div class="title">
2875 <a href="http://people.skolelinux.org/pere/blog/How_hard_can______and___be_.html">How hard can æ, ø and å be?</a>
2876 </div>
2877 <div class="date">
2878 11th February 2018
2879 </div>
2880 <div class="body">
2881 <img src="http://people.skolelinux.org/pere/blog/images/2018-02-11-peppes-unicode.jpeg" align="right"/>
2882
2883 <p>We write 2018, and it is 30 years since Unicode was introduced.
2884 Most of us in Norway have come to expect the use of our alphabet to
2885 just work with any computer system. But it is apparently beyond reach
2886 of the computers printing recites at a restaurant. Recently I visited
2887 a Peppes pizza resturant, and noticed a few details on the recite.
2888 Notice how 'ø' and 'å' are replaced with strange symbols in
2889 'Servitør', 'Å BETALE', 'Beløp pr. gjest', 'Takk for besøket.' and 'Vi
2890 gleder oss til å se deg igjen'.</p>
2891
2892 <p>I would say that this state is passed sad and over in embarrassing.</p>
2893
2894 <p>I removed personal and private information to be nice.</p>
2895
2896 <p>As usual, if you use Bitcoin and want to show your support of my
2897 activities, please send Bitcoin donations to my address
2898 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
2899
2900 </div>
2901 <div class="tags">
2902
2903
2904 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
2905
2906
2907 </div>
2908 </div>
2909 <div class="padding"></div>
2910
2911 <div class="entry">
2912 <div class="title">
2913 <a href="http://people.skolelinux.org/pere/blog/Legal_to_share_more_than_11_000_movies_listed_on_IMDB_.html">Legal to share more than 11,000 movies listed on IMDB?</a>
2914 </div>
2915 <div class="date">
2916 7th January 2018
2917 </div>
2918 <div class="body">
2919 <p>I've continued to track down list of movies that are legal to
2920 distribute on the Internet, and identified more than 11,000 title IDs
2921 in The Internet Movie Database (IMDB) so far. Most of them (57%) are
2922 feature films from USA published before 1923. I've also tracked down
2923 more than 24,000 movies I have not yet been able to map to IMDB title
2924 ID, so the real number could be a lot higher. According to the front
2925 web page for <a href="https://retrofilmvault.com/">Retro Film
2926 Vault</A>, there are 44,000 public domain films, so I guess there are
2927 still some left to identify.</p>
2928
2929 <p>The complete data set is available from
2930 <a href="https://github.com/petterreinholdtsen/public-domain-free-imdb">a
2931 public git repository</a>, including the scripts used to create it.
2932 Most of the data is collected using web scraping, for example from the
2933 "product catalog" of companies selling copies of public domain movies,
2934 but any source I find believable is used. I've so far had to throw
2935 out three sources because I did not trust the public domain status of
2936 the movies listed.</p>
2937
2938 <p>Anyway, this is the summary of the 28 collected data sources so
2939 far:</p>
2940
2941 <p><pre>
2942 2352 entries ( 66 unique) with and 15983 without IMDB title ID in free-movies-archive-org-search.json
2943 2302 entries ( 120 unique) with and 0 without IMDB title ID in free-movies-archive-org-wikidata.json
2944 195 entries ( 63 unique) with and 200 without IMDB title ID in free-movies-cinemovies.json
2945 89 entries ( 52 unique) with and 38 without IMDB title ID in free-movies-creative-commons.json
2946 344 entries ( 28 unique) with and 655 without IMDB title ID in free-movies-fesfilm.json
2947 668 entries ( 209 unique) with and 1064 without IMDB title ID in free-movies-filmchest-com.json
2948 830 entries ( 21 unique) with and 0 without IMDB title ID in free-movies-icheckmovies-archive-mochard.json
2949 19 entries ( 19 unique) with and 0 without IMDB title ID in free-movies-imdb-c-expired-gb.json
2950 6822 entries ( 6669 unique) with and 0 without IMDB title ID in free-movies-imdb-c-expired-us.json
2951 137 entries ( 0 unique) with and 0 without IMDB title ID in free-movies-imdb-externlist.json
2952 1205 entries ( 57 unique) with and 0 without IMDB title ID in free-movies-imdb-pd.json
2953 84 entries ( 20 unique) with and 167 without IMDB title ID in free-movies-infodigi-pd.json
2954 158 entries ( 135 unique) with and 0 without IMDB title ID in free-movies-letterboxd-looney-tunes.json
2955 113 entries ( 4 unique) with and 0 without IMDB title ID in free-movies-letterboxd-pd.json
2956 182 entries ( 100 unique) with and 0 without IMDB title ID in free-movies-letterboxd-silent.json
2957 229 entries ( 87 unique) with and 1 without IMDB title ID in free-movies-manual.json
2958 44 entries ( 2 unique) with and 64 without IMDB title ID in free-movies-openflix.json
2959 291 entries ( 33 unique) with and 474 without IMDB title ID in free-movies-profilms-pd.json
2960 211 entries ( 7 unique) with and 0 without IMDB title ID in free-movies-publicdomainmovies-info.json
2961 1232 entries ( 57 unique) with and 1875 without IMDB title ID in free-movies-publicdomainmovies-net.json
2962 46 entries ( 13 unique) with and 81 without IMDB title ID in free-movies-publicdomainreview.json
2963 698 entries ( 64 unique) with and 118 without IMDB title ID in free-movies-publicdomaintorrents.json
2964 1758 entries ( 882 unique) with and 3786 without IMDB title ID in free-movies-retrofilmvault.json
2965 16 entries ( 0 unique) with and 0 without IMDB title ID in free-movies-thehillproductions.json
2966 63 entries ( 16 unique) with and 141 without IMDB title ID in free-movies-vodo.json
2967 11583 unique IMDB title IDs in total, 8724 only in one list, 24647 without IMDB title ID
2968 </pre></p>
2969
2970 <p> I keep finding more data sources. I found the cinemovies source
2971 just a few days ago, and as you can see from the summary, it extended
2972 my list with 63 movies. Check out the mklist-* scripts in the git
2973 repository if you are curious how the lists are created. Many of the
2974 titles are extracted using searches on IMDB, where I look for the
2975 title and year, and accept search results with only one movie listed
2976 if the year matches. This allow me to automatically use many lists of
2977 movies without IMDB title ID references at the cost of increasing the
2978 risk of wrongly identify a IMDB title ID as public domain. So far my
2979 random manual checks have indicated that the method is solid, but I
2980 really wish all lists of public domain movies would include unique
2981 movie identifier like the IMDB title ID. It would make the job of
2982 counting movies in the public domain a lot easier.</p>
2983
2984 <p>As usual, if you use Bitcoin and want to show your support of my
2985 activities, please send Bitcoin donations to my address
2986 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
2987
2988 </div>
2989 <div class="tags">
2990
2991
2992 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>, <a href="http://people.skolelinux.org/pere/blog/tags/verkidetfri">verkidetfri</a>.
2993
2994
2995 </div>
2996 </div>
2997 <div class="padding"></div>
2998
2999 <div class="entry">
3000 <div class="title">
3001 <a href="http://people.skolelinux.org/pere/blog/Cura__the_nice_3D_print_slicer__is_now_in_Debian_Unstable.html">Cura, the nice 3D print slicer, is now in Debian Unstable</a>
3002 </div>
3003 <div class="date">
3004 17th December 2017
3005 </div>
3006 <div class="body">
3007 <p>After several months of working and waiting, I am happy to report
3008 that the nice and user friendly 3D printer slicer software Cura just
3009 entered Debian Unstable. It consist of five packages,
3010 <a href="https://tracker.debian.org/pkg/cura">cura</a>,
3011 <a href="https://tracker.debian.org/pkg/cura-engine">cura-engine</a>,
3012 <a href="https://tracker.debian.org/pkg/libarcus">libarcus</a>,
3013 <a href="https://tracker.debian.org/pkg/fdm-materials">fdm-materials</a>,
3014 <a href="https://tracker.debian.org/pkg/libsavitar">libsavitar</a> and
3015 <a href="https://tracker.debian.org/pkg/uranium">uranium</a>. The last
3016 two, uranium and cura, entered Unstable yesterday. This should make
3017 it easier for Debian users to print on at least the Ultimaker class of
3018 3D printers. My nearest 3D printer is an Ultimaker 2+, so it will
3019 make life easier for at least me. :)</p>
3020
3021 <p>The work to make this happen was done by Gregor Riepl, and I was
3022 happy to assist him in sponsoring the packages. With the introduction
3023 of Cura, Debian is up to three 3D printer slicers at your service,
3024 Cura, Slic3r and Slic3r Prusa. If you own or have access to a 3D
3025 printer, give it a go. :)</p>
3026
3027 <p>The 3D printer software is maintained by the 3D printer Debian
3028 team, flocking together on the
3029 <a href="http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/3dprinter-general">3dprinter-general</a>
3030 mailing list and the
3031 <a href="irc://irc.debian.org/#debian-3dprinting">#debian-3dprinting</a>
3032 IRC channel.</p>
3033
3034 <p>The next step for Cura in Debian is to update the cura package to
3035 version 3.0.3 and then update the entire set of packages to version
3036 3.1.0 which showed up the last few days.</p>
3037
3038 </div>
3039 <div class="tags">
3040
3041
3042 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>.
3043
3044
3045 </div>
3046 </div>
3047 <div class="padding"></div>
3048
3049 <div class="entry">
3050 <div class="title">
3051 <a href="http://people.skolelinux.org/pere/blog/Idea_for_finding_all_public_domain_movies_in_the_USA.html">Idea for finding all public domain movies in the USA</a>
3052 </div>
3053 <div class="date">
3054 13th December 2017
3055 </div>
3056 <div class="body">
3057 <p>While looking at
3058 <a href="http://onlinebooks.library.upenn.edu/cce/">the scanned copies
3059 for the copyright renewal entries for movies published in the USA</a>,
3060 an idea occurred to me. The number of renewals are so few per year, it
3061 should be fairly quick to transcribe them all and add references to
3062 the corresponding IMDB title ID. This would give the (presumably)
3063 complete list of movies published 28 years earlier that did _not_
3064 enter the public domain for the transcribed year. By fetching the
3065 list of USA movies published 28 years earlier and subtract the movies
3066 with renewals, we should be left with movies registered in IMDB that
3067 are now in the public domain. For the year 1955 (which is the one I
3068 have looked at the most), the total number of pages to transcribe is
3069 21. For the 28 years from 1950 to 1978, it should be in the range
3070 500-600 pages. It is just a few days of work, and spread among a
3071 small group of people it should be doable in a few weeks of spare
3072 time.</p>
3073
3074 <p>A typical copyright renewal entry look like this (the first one
3075 listed for 1955):</p>
3076
3077 <p><blockquote>
3078 ADAM AND EVIL, a photoplay in seven reels by Metro-Goldwyn-Mayer
3079 Distribution Corp. (c) 17Aug27; L24293. Loew's Incorporated (PWH);
3080 10Jun55; R151558.
3081 </blockquote></p>
3082
3083 <p>The movie title as well as registration and renewal dates are easy
3084 enough to locate by a program (split on first comma and look for
3085 DDmmmYY). The rest of the text is not required to find the movie in
3086 IMDB, but is useful to confirm the correct movie is found. I am not
3087 quite sure what the L and R numbers mean, but suspect they are
3088 reference numbers into the archive of the US Copyright Office.</p>
3089
3090 <p>Tracking down the equivalent IMDB title ID is probably going to be
3091 a manual task, but given the year it is fairly easy to search for the
3092 movie title using for example
3093 <a href="http://www.imdb.com/find?q=adam+and+evil+1927&s=all">http://www.imdb.com/find?q=adam+and+evil+1927&s=all</a>.
3094 Using this search, I find that the equivalent IMDB title ID for the
3095 first renewal entry from 1955 is
3096 <a href="http://www.imdb.com/title/tt0017588/">http://www.imdb.com/title/tt0017588/</a>.</p>
3097
3098 <p>I suspect the best way to do this would be to make a specialised
3099 web service to make it easy for contributors to transcribe and track
3100 down IMDB title IDs. In the web service, once a entry is transcribed,
3101 the title and year could be extracted from the text, a search in IMDB
3102 conducted for the user to pick the equivalent IMDB title ID right
3103 away. By spreading out the work among volunteers, it would also be
3104 possible to make at least two persons transcribe the same entries to
3105 be able to discover any typos introduced. But I will need help to
3106 make this happen, as I lack the spare time to do all of this on my
3107 own. If you would like to help, please get in touch. Perhaps you can
3108 draft a web service for crowd sourcing the task?</p>
3109
3110 <p>Note, Project Gutenberg already have some
3111 <a href="http://www.gutenberg.org/ebooks/search/?query=copyright+office+renewals">transcribed
3112 copies of the US Copyright Office renewal protocols</a>, but I have
3113 not been able to find any film renewals there, so I suspect they only
3114 have copies of renewal for written works. I have not been able to find
3115 any transcribed versions of movie renewals so far. Perhaps they exist
3116 somewhere?</p>
3117
3118 <p>I would love to figure out methods for finding all the public
3119 domain works in other countries too, but it is a lot harder. At least
3120 for Norway and Great Britain, such work involve tracking down the
3121 people involved in making the movie and figuring out when they died.
3122 It is hard enough to figure out who was part of making a movie, but I
3123 do not know how to automate such procedure without a registry of every
3124 person involved in making movies and their death year.</p>
3125
3126 <p>As usual, if you use Bitcoin and want to show your support of my
3127 activities, please send Bitcoin donations to my address
3128 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
3129
3130 </div>
3131 <div class="tags">
3132
3133
3134 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>, <a href="http://people.skolelinux.org/pere/blog/tags/verkidetfri">verkidetfri</a>.
3135
3136
3137 </div>
3138 </div>
3139 <div class="padding"></div>
3140
3141 <div class="entry">
3142 <div class="title">
3143 <a href="http://people.skolelinux.org/pere/blog/Is_the_short_movie__Empty_Socks__from_1927_in_the_public_domain_or_not_.html">Is the short movie «Empty Socks» from 1927 in the public domain or not?</a>
3144 </div>
3145 <div class="date">
3146 5th December 2017
3147 </div>
3148 <div class="body">
3149 <p>Three years ago, a presumed lost animation film,
3150 <a href="https://en.wikipedia.org/wiki/Empty_Socks">Empty Socks from
3151 1927</a>, was discovered in the Norwegian National Library. At the
3152 time it was discovered, it was generally assumed to be copyrighted by
3153 The Walt Disney Company, and I blogged about
3154 <a href="http://people.skolelinux.org/pere/blog/Opphavsretts_status_for__Empty_Socks__fra_1927_.html">my
3155 reasoning to conclude</a> that it would would enter the Norwegian
3156 equivalent of the public domain in 2053, based on my understanding of
3157 Norwegian Copyright Law. But a few days ago, I came across
3158 <a href="http://www.toonzone.net/forums/threads/exposed-disneys-repurchase-of-oswald-the-rabbit-a-sham.4792291/">a
3159 blog post claiming the movie was already in the public domain</a>, at
3160 least in USA. The reasoning is as follows: The film was released in
3161 November or Desember 1927 (sources disagree), and presumably
3162 registered its copyright that year. At that time, right holders of
3163 movies registered by the copyright office received government
3164 protection for there work for 28 years. After 28 years, the copyright
3165 had to be renewed if the wanted the government to protect it further.
3166 The blog post I found claim such renewal did not happen for this
3167 movie, and thus it entered the public domain in 1956. Yet someone
3168 claim the copyright was renewed and the movie is still copyright
3169 protected. Can anyone help me to figure out which claim is correct?
3170 I have not been able to find Empty Socks in Catalog of copyright
3171 entries. Ser.3 pt.12-13 v.9-12 1955-1958 Motion Pictures
3172 <a href="http://onlinebooks.library.upenn.edu/cce/1955r.html#film">available
3173 from the University of Pennsylvania</a>, neither in
3174 <a href="https://babel.hathitrust.org/cgi/pt?id=mdp.39015084451130;page=root;view=image;size=100;seq=83;num=45">page
3175 45 for the first half of 1955</a>, nor in
3176 <a href="https://babel.hathitrust.org/cgi/pt?id=mdp.39015084451130;page=root;view=image;size=100;seq=175;num=119">page
3177 119 for the second half of 1955</a>. It is of course possible that
3178 the renewal entry was left out of the printed catalog by mistake. Is
3179 there some way to rule out this possibility? Please help, and update
3180 the wikipedia page with your findings.
3181
3182 <p>As usual, if you use Bitcoin and want to show your support of my
3183 activities, please send Bitcoin donations to my address
3184 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
3185
3186 </div>
3187 <div class="tags">
3188
3189
3190 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>, <a href="http://people.skolelinux.org/pere/blog/tags/verkidetfri">verkidetfri</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
3191
3192
3193 </div>
3194 </div>
3195 <div class="padding"></div>
3196
3197 <div class="entry">
3198 <div class="title">
3199 <a href="http://people.skolelinux.org/pere/blog/Metadata_proposal_for_movies_on_the_Internet_Archive.html">Metadata proposal for movies on the Internet Archive</a>
3200 </div>
3201 <div class="date">
3202 28th November 2017
3203 </div>
3204 <div class="body">
3205 <p>It would be easier to locate the movie you want to watch in
3206 <a href="https://www.archive.org/">the Internet Archive</a>, if the
3207 metadata about each movie was more complete and accurate. In the
3208 archiving community, a well known saying state that good metadata is a
3209 love letter to the future. The metadata in the Internet Archive could
3210 use a face lift for the future to love us back. Here is a proposal
3211 for a small improvement that would make the metadata more useful
3212 today. I've been unable to find any document describing the various
3213 standard fields available when uploading videos to the archive, so
3214 this proposal is based on my best quess and searching through several
3215 of the existing movies.</p>
3216
3217 <p>I have a few use cases in mind. First of all, I would like to be
3218 able to count the number of distinct movies in the Internet Archive,
3219 without duplicates. I would further like to identify the IMDB title
3220 ID of the movies in the Internet Archive, to be able to look up a IMDB
3221 title ID and know if I can fetch the video from there and share it
3222 with my friends.</p>
3223
3224 <p>Second, I would like the Butter data provider for The Internet
3225 archive
3226 (<a href="https://github.com/butterproviders/butter-provider-archive">available
3227 from github</a>), to list as many of the good movies as possible. The
3228 plugin currently do a search in the archive with the following
3229 parameters:</p>
3230
3231 <p><pre>
3232 collection:moviesandfilms
3233 AND NOT collection:movie_trailers
3234 AND -mediatype:collection
3235 AND format:"Archive BitTorrent"
3236 AND year
3237 </pre></p>
3238
3239 <p>Most of the cool movies that fail to show up in Butter do so
3240 because the 'year' field is missing. The 'year' field is populated by
3241 the year part from the 'date' field, and should be when the movie was
3242 released (date or year). Two such examples are
3243 <a href="https://archive.org/details/SidneyOlcottsBen-hur1905">Ben Hur
3244 from 1905</a> and
3245 <a href="https://archive.org/details/Caminandes2GranDillama">Caminandes
3246 2: Gran Dillama from 2013</a>, where the year metadata field is
3247 missing.</p>
3248
3249 So, my proposal is simply, for every movie in The Internet Archive
3250 where an IMDB title ID exist, please fill in these metadata fields
3251 (note, they can be updated also long after the video was uploaded, but
3252 as far as I can tell, only by the uploader):
3253
3254 <dl>
3255
3256 <dt>mediatype</dt>
3257 <dd>Should be 'movie' for movies.</dd>
3258
3259 <dt>collection</dt>
3260 <dd>Should contain 'moviesandfilms'.</dd>
3261
3262 <dt>title</dt>
3263 <dd>The title of the movie, without the publication year.</dd>
3264
3265 <dt>date</dt>
3266 <dd>The data or year the movie was released. This make the movie show
3267 up in Butter, as well as make it possible to know the age of the
3268 movie and is useful to figure out copyright status.</dd>
3269
3270 <dt>director</dt>
3271 <dd>The director of the movie. This make it easier to know if the
3272 correct movie is found in movie databases.</dd>
3273
3274 <dt>publisher</dt>
3275 <dd>The production company making the movie. Also useful for
3276 identifying the correct movie.</dd>
3277
3278 <dt>links</dt>
3279
3280 <dd>Add a link to the IMDB title page, for example like this: &lt;a
3281 href="http://www.imdb.com/title/tt0028496/"&gt;Movie in
3282 IMDB&lt;/a&gt;. This make it easier to find duplicates and allow for
3283 counting of number of unique movies in the Archive. Other external
3284 references, like to TMDB, could be added like this too.</dd>
3285
3286 </dl>
3287
3288 <p>I did consider proposing a Custom field for the IMDB title ID (for
3289 example 'imdb_title_url', 'imdb_code' or simply 'imdb', but suspect it
3290 will be easier to simply place it in the links free text field.</p>
3291
3292 <p>I created
3293 <a href="https://github.com/petterreinholdtsen/public-domain-free-imdb">a
3294 list of IMDB title IDs for several thousand movies in the Internet
3295 Archive</a>, but I also got a list of several thousand movies without
3296 such IMDB title ID (and quite a few duplicates). It would be great if
3297 this data set could be integrated into the Internet Archive metadata
3298 to be available for everyone in the future, but with the current
3299 policy of leaving metadata editing to the uploaders, it will take a
3300 while before this happen. If you have uploaded movies into the
3301 Internet Archive, you can help. Please consider following my proposal
3302 above for your movies, to ensure that movie is properly
3303 counted. :)</p>
3304
3305 <p>The list is mostly generated using wikidata, which based on
3306 Wikipedia articles make it possible to link between IMDB and movies in
3307 the Internet Archive. But there are lots of movies without a
3308 Wikipedia article, and some movies where only a collection page exist
3309 (like for <a href="https://en.wikipedia.org/wiki/Caminandes">the
3310 Caminandes example above</a>, where there are three movies but only
3311 one Wikidata entry).</p>
3312
3313 <p>As usual, if you use Bitcoin and want to show your support of my
3314 activities, please send Bitcoin donations to my address
3315 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
3316
3317 </div>
3318 <div class="tags">
3319
3320
3321 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>, <a href="http://people.skolelinux.org/pere/blog/tags/verkidetfri">verkidetfri</a>.
3322
3323
3324 </div>
3325 </div>
3326 <div class="padding"></div>
3327
3328 <div class="entry">
3329 <div class="title">
3330 <a href="http://people.skolelinux.org/pere/blog/Legal_to_share_more_than_3000_movies_listed_on_IMDB_.html">Legal to share more than 3000 movies listed on IMDB?</a>
3331 </div>
3332 <div class="date">
3333 18th November 2017
3334 </div>
3335 <div class="body">
3336 <p>A month ago, I blogged about my work to
3337 <a href="http://people.skolelinux.org/pere/blog/Locating_IMDB_IDs_of_movies_in_the_Internet_Archive_using_Wikidata.html">automatically
3338 check the copyright status of IMDB entries</a>, and try to count the
3339 number of movies listed in IMDB that is legal to distribute on the
3340 Internet. I have continued to look for good data sources, and
3341 identified a few more. The code used to extract information from
3342 various data sources is available in
3343 <a href="https://github.com/petterreinholdtsen/public-domain-free-imdb">a
3344 git repository</a>, currently available from github.</p>
3345
3346 <p>So far I have identified 3186 unique IMDB title IDs. To gain
3347 better understanding of the structure of the data set, I created a
3348 histogram of the year associated with each movie (typically release
3349 year). It is interesting to notice where the peaks and dips in the
3350 graph are located. I wonder why they are placed there. I suspect
3351 World War II caused the dip around 1940, but what caused the peak
3352 around 2010?</p>
3353
3354 <p align="center"><img src="http://people.skolelinux.org/pere/blog/images/2017-11-18-verk-i-det-fri-filmer.png" /></p>
3355
3356 <p>I've so far identified ten sources for IMDB title IDs for movies in
3357 the public domain or with a free license. This is the statistics
3358 reported when running 'make stats' in the git repository:</p>
3359
3360 <pre>
3361 249 entries ( 6 unique) with and 288 without IMDB title ID in free-movies-archive-org-butter.json
3362 2301 entries ( 540 unique) with and 0 without IMDB title ID in free-movies-archive-org-wikidata.json
3363 830 entries ( 29 unique) with and 0 without IMDB title ID in free-movies-icheckmovies-archive-mochard.json
3364 2109 entries ( 377 unique) with and 0 without IMDB title ID in free-movies-imdb-pd.json
3365 291 entries ( 122 unique) with and 0 without IMDB title ID in free-movies-letterboxd-pd.json
3366 144 entries ( 135 unique) with and 0 without IMDB title ID in free-movies-manual.json
3367 350 entries ( 1 unique) with and 801 without IMDB title ID in free-movies-publicdomainmovies.json
3368 4 entries ( 0 unique) with and 124 without IMDB title ID in free-movies-publicdomainreview.json
3369 698 entries ( 119 unique) with and 118 without IMDB title ID in free-movies-publicdomaintorrents.json
3370 8 entries ( 8 unique) with and 196 without IMDB title ID in free-movies-vodo.json
3371 3186 unique IMDB title IDs in total
3372 </pre>
3373
3374 <p>The entries without IMDB title ID are candidates to increase the
3375 data set, but might equally well be duplicates of entries already
3376 listed with IMDB title ID in one of the other sources, or represent
3377 movies that lack a IMDB title ID. I've seen examples of all these
3378 situations when peeking at the entries without IMDB title ID. Based
3379 on these data sources, the lower bound for movies listed in IMDB that
3380 are legal to distribute on the Internet is between 3186 and 4713.
3381
3382 <p>It would be great for improving the accuracy of this measurement,
3383 if the various sources added IMDB title ID to their metadata. I have
3384 tried to reach the people behind the various sources to ask if they
3385 are interested in doing this, without any replies so far. Perhaps you
3386 can help me get in touch with the people behind VODO, Public Domain
3387 Torrents, Public Domain Movies and Public Domain Review to try to
3388 convince them to add more metadata to their movie entries?</p>
3389
3390 <p>Another way you could help is by adding pages to Wikipedia about
3391 movies that are legal to distribute on the Internet. If such page
3392 exist and include a link to both IMDB and The Internet Archive, the
3393 script used to generate free-movies-archive-org-wikidata.json should
3394 pick up the mapping as soon as wikidata is updates.</p>
3395
3396 <p>As usual, if you use Bitcoin and want to show your support of my
3397 activities, please send Bitcoin donations to my address
3398 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
3399
3400 </div>
3401 <div class="tags">
3402
3403
3404 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>, <a href="http://people.skolelinux.org/pere/blog/tags/verkidetfri">verkidetfri</a>.
3405
3406
3407 </div>
3408 </div>
3409 <div class="padding"></div>
3410
3411 <div class="entry">
3412 <div class="title">
3413 <a href="http://people.skolelinux.org/pere/blog/Some_notes_on_fault_tolerant_storage_systems.html">Some notes on fault tolerant storage systems</a>
3414 </div>
3415 <div class="date">
3416 1st November 2017
3417 </div>
3418 <div class="body">
3419 <p>If you care about how fault tolerant your storage is, you might
3420 find these articles and papers interesting. They have formed how I
3421 think of when designing a storage system.</p>
3422
3423 <ul>
3424
3425 <li>USENIX :login; <a
3426 href="https://www.usenix.org/publications/login/summer2017/ganesan">Redundancy
3427 Does Not Imply Fault Tolerance. Analysis of Distributed Storage
3428 Reactions to Single Errors and Corruptions</a> by Aishwarya Ganesan,
3429 Ramnatthan Alagappan, Andrea C. Arpaci-Dusseau, and Remzi
3430 H. Arpaci-Dusseau</li>
3431
3432 <li>ZDNet
3433 <a href="http://www.zdnet.com/article/why-raid-5-stops-working-in-2009/">Why
3434 RAID 5 stops working in 2009</a> by Robin Harris</li>
3435
3436 <li>ZDNet
3437 <a href="http://www.zdnet.com/article/why-raid-6-stops-working-in-2019/">Why
3438 RAID 6 stops working in 2019</a> by Robin Harris</li>
3439
3440 <li>USENIX FAST'07
3441 <a href="http://research.google.com/archive/disk_failures.pdf">Failure
3442 Trends in a Large Disk Drive Population</a> by Eduardo Pinheiro,
3443 Wolf-Dietrich Weber and Luiz André Barroso</li>
3444
3445 <li>USENIX ;login: <a
3446 href="https://www.usenix.org/system/files/login/articles/hughes12-04.pdf">Data
3447 Integrity. Finding Truth in a World of Guesses and Lies</a> by Doug
3448 Hughes</li>
3449
3450 <li>USENIX FAST'08
3451 <a href="https://www.usenix.org/events/fast08/tech/full_papers/bairavasundaram/bairavasundaram_html/">An
3452 Analysis of Data Corruption in the Storage Stack</a> by
3453 L. N. Bairavasundaram, G. R. Goodson, B. Schroeder, A. C.
3454 Arpaci-Dusseau, and R. H. Arpaci-Dusseau</li>
3455
3456 <li>USENIX FAST'07 <a
3457 href="https://www.usenix.org/legacy/events/fast07/tech/schroeder/schroeder_html/">Disk
3458 failures in the real world: what does an MTTF of 1,000,000 hours mean
3459 to you?</a> by B. Schroeder and G. A. Gibson.</li>
3460
3461 <li>USENIX ;login: <a
3462 href="https://www.usenix.org/events/fast08/tech/full_papers/jiang/jiang_html/">Are
3463 Disks the Dominant Contributor for Storage Failures? A Comprehensive
3464 Study of Storage Subsystem Failure Characteristics</a> by Weihang
3465 Jiang, Chongfeng Hu, Yuanyuan Zhou, and Arkady Kanevsky</li>
3466
3467 <li>SIGMETRICS 2007
3468 <a href="http://research.cs.wisc.edu/adsl/Publications/latent-sigmetrics07.pdf">An
3469 analysis of latent sector errors in disk drives</a> by
3470 L. N. Bairavasundaram, G. R. Goodson, S. Pasupathy, and J. Schindler</li>
3471
3472 </ul>
3473
3474 <p>Several of these research papers are based on data collected from
3475 hundred thousands or millions of disk, and their findings are eye
3476 opening. The short story is simply do not implicitly trust RAID or
3477 redundant storage systems. Details matter. And unfortunately there
3478 are few options on Linux addressing all the identified issues. Both
3479 ZFS and Btrfs are doing a fairly good job, but have legal and
3480 practical issues on their own. I wonder how cluster file systems like
3481 Ceph do in this regard. After all, there is an old saying, you know
3482 you have a distributed system when the crash of a computer you have
3483 never heard of stops you from getting any work done. The same holds
3484 true if fault tolerance do not work.</p>
3485
3486 <p>Just remember, in the end, it do not matter how redundant, or how
3487 fault tolerant your storage is, if you do not continuously monitor its
3488 status to detect and replace failed disks.</p>
3489
3490 <p>As usual, if you use Bitcoin and want to show your support of my
3491 activities, please send Bitcoin donations to my address
3492 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
3493
3494 </div>
3495 <div class="tags">
3496
3497
3498 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/raid">raid</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin</a>.
3499
3500
3501 </div>
3502 </div>
3503 <div class="padding"></div>
3504
3505 <div class="entry">
3506 <div class="title">
3507 <a href="http://people.skolelinux.org/pere/blog/Web_services_for_writing_academic_LaTeX_papers_as_a_team.html">Web services for writing academic LaTeX papers as a team</a>
3508 </div>
3509 <div class="date">
3510 31st October 2017
3511 </div>
3512 <div class="body">
3513 <p>I was surprised today to learn that a friend in academia did not
3514 know there are easily available web services available for writing
3515 LaTeX documents as a team. I thought it was common knowledge, but to
3516 make sure at least my readers are aware of it, I would like to mention
3517 these useful services for writing LaTeX documents. Some of them even
3518 provide a WYSIWYG editor to ease writing even further.</p>
3519
3520 <p>There are two commercial services available,
3521 <a href="https://sharelatex.com">ShareLaTeX</a> and
3522 <a href="https://overleaf.com">Overleaf</a>. They are very easy to
3523 use. Just start a new document, select which publisher to write for
3524 (ie which LaTeX style to use), and start writing. Note, these two
3525 have announced their intention to join forces, so soon it will only be
3526 one joint service. I've used both for different documents, and they
3527 work just fine. While
3528 <a href="https://github.com/sharelatex/sharelatex">ShareLaTeX is free
3529 software</a>, while the latter is not. According to <a
3530 href="https://www.overleaf.com/help/17-is-overleaf-open-source">a
3531 announcement from Overleaf</a>, they plan to keep the ShareLaTeX code
3532 base maintained as free software.</p>
3533
3534 But these two are not the only alternatives.
3535 <a href="https://app.fiduswriter.org/">Fidus Writer</a> is another free
3536 software solution with <a href="https://github.com/fiduswriter">the
3537 source available on github</a>. I have not used it myself. Several
3538 others can be found on the nice
3539 <a href="https://alternativeto.net/software/sharelatex/">alterntiveTo
3540 web service</a>.
3541
3542 <p>If you like Google Docs or Etherpad, but would like to write
3543 documents in LaTeX, you should check out these services. You can even
3544 host your own, if you want to. :)</p>
3545
3546 <p>As usual, if you use Bitcoin and want to show your support of my
3547 activities, please send Bitcoin donations to my address
3548 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
3549
3550 </div>
3551 <div class="tags">
3552
3553
3554 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
3555
3556
3557 </div>
3558 </div>
3559 <div class="padding"></div>
3560
3561 <div class="entry">
3562 <div class="title">
3563 <a href="http://people.skolelinux.org/pere/blog/Locating_IMDB_IDs_of_movies_in_the_Internet_Archive_using_Wikidata.html">Locating IMDB IDs of movies in the Internet Archive using Wikidata</a>
3564 </div>
3565 <div class="date">
3566 25th October 2017
3567 </div>
3568 <div class="body">
3569 <p>Recently, I needed to automatically check the copyright status of a
3570 set of <a href="http://www.imdb.com/">The Internet Movie database
3571 (IMDB)</a> entries, to figure out which one of the movies they refer
3572 to can be freely distributed on the Internet. This proved to be
3573 harder than it sounds. IMDB for sure list movies without any
3574 copyright protection, where the copyright protection has expired or
3575 where the movie is lisenced using a permissive license like one from
3576 Creative Commons. These are mixed with copyright protected movies,
3577 and there seem to be no way to separate these classes of movies using
3578 the information in IMDB.</p>
3579
3580 <p>First I tried to look up entries manually in IMDB,
3581 <a href="https://www.wikipedia.org/">Wikipedia</a> and
3582 <a href="https://www.archive.org/">The Internet Archive</a>, to get a
3583 feel how to do this. It is hard to know for sure using these sources,
3584 but it should be possible to be reasonable confident a movie is "out
3585 of copyright" with a few hours work per movie. As I needed to check
3586 almost 20,000 entries, this approach was not sustainable. I simply
3587 can not work around the clock for about 6 years to check this data
3588 set.</p>
3589
3590 <p>I asked the people behind The Internet Archive if they could
3591 introduce a new metadata field in their metadata XML for IMDB ID, but
3592 was told that they leave it completely to the uploaders to update the
3593 metadata. Some of the metadata entries had IMDB links in the
3594 description, but I found no way to download all metadata files in bulk
3595 to locate those ones and put that approach aside.</p>
3596
3597 <p>In the process I noticed several Wikipedia articles about movies
3598 had links to both IMDB and The Internet Archive, and it occured to me
3599 that I could use the Wikipedia RDF data set to locate entries with
3600 both, to at least get a lower bound on the number of movies on The
3601 Internet Archive with a IMDB ID. This is useful based on the
3602 assumption that movies distributed by The Internet Archive can be
3603 legally distributed on the Internet. With some help from the RDF
3604 community (thank you DanC), I was able to come up with this query to
3605 pass to <a href="https://query.wikidata.org/">the SPARQL interface on
3606 Wikidata</a>:
3607
3608 <p><pre>
3609 SELECT ?work ?imdb ?ia ?when ?label
3610 WHERE
3611 {
3612 ?work wdt:P31/wdt:P279* wd:Q11424.
3613 ?work wdt:P345 ?imdb.
3614 ?work wdt:P724 ?ia.
3615 OPTIONAL {
3616 ?work wdt:P577 ?when.
3617 ?work rdfs:label ?label.
3618 FILTER(LANG(?label) = "en").
3619 }
3620 }
3621 </pre></p>
3622
3623 <p>If I understand the query right, for every film entry anywhere in
3624 Wikpedia, it will return the IMDB ID and The Internet Archive ID, and
3625 when the movie was released and its English title, if either or both
3626 of the latter two are available. At the moment the result set contain
3627 2338 entries. Of course, it depend on volunteers including both
3628 correct IMDB and The Internet Archive IDs in the wikipedia articles
3629 for the movie. It should be noted that the result will include
3630 duplicates if the movie have entries in several languages. There are
3631 some bogus entries, either because The Internet Archive ID contain a
3632 typo or because the movie is not available from The Internet Archive.
3633 I did not verify the IMDB IDs, as I am unsure how to do that
3634 automatically.</p>
3635
3636 <p>I wrote a small python script to extract the data set from Wikidata
3637 and check if the XML metadata for the movie is available from The
3638 Internet Archive, and after around 1.5 hour it produced a list of 2097
3639 free movies and their IMDB ID. In total, 171 entries in Wikidata lack
3640 the refered Internet Archive entry. I assume the 70 "disappearing"
3641 entries (ie 2338-2097-171) are duplicate entries.</p>
3642
3643 <p>This is not too bad, given that The Internet Archive report to
3644 contain <a href="https://archive.org/details/feature_films">5331
3645 feature films</a> at the moment, but it also mean more than 3000
3646 movies are missing on Wikipedia or are missing the pair of references
3647 on Wikipedia.</p>
3648
3649 <p>I was curious about the distribution by release year, and made a
3650 little graph to show how the amount of free movies is spread over the
3651 years:<p>
3652
3653 <p><img src="http://people.skolelinux.org/pere/blog/images/2017-10-25-verk-i-det-fri-filmer.png"></p>
3654
3655 <p>I expect the relative distribution of the remaining 3000 movies to
3656 be similar.</p>
3657
3658 <p>If you want to help, and want to ensure Wikipedia can be used to
3659 cross reference The Internet Archive and The Internet Movie Database,
3660 please make sure entries like this are listed under the "External
3661 links" heading on the Wikipedia article for the movie:</p>
3662
3663 <p><pre>
3664 * {{Internet Archive film|id=FightingLady}}
3665 * {{IMDb title|id=0036823|title=The Fighting Lady}}
3666 </pre></p>
3667
3668 <p>Please verify the links on the final page, to make sure you did not
3669 introduce a typo.</p>
3670
3671 <p>Here is the complete list, if you want to correct the 171
3672 identified Wikipedia entries with broken links to The Internet
3673 Archive: <a href="http://www.wikidata.org/entity/Q1140317">Q1140317</a>,
3674 <a href="http://www.wikidata.org/entity/Q458656">Q458656</a>,
3675 <a href="http://www.wikidata.org/entity/Q458656">Q458656</a>,
3676 <a href="http://www.wikidata.org/entity/Q470560">Q470560</a>,
3677 <a href="http://www.wikidata.org/entity/Q743340">Q743340</a>,
3678 <a href="http://www.wikidata.org/entity/Q822580">Q822580</a>,
3679 <a href="http://www.wikidata.org/entity/Q480696">Q480696</a>,
3680 <a href="http://www.wikidata.org/entity/Q128761">Q128761</a>,
3681 <a href="http://www.wikidata.org/entity/Q1307059">Q1307059</a>,
3682 <a href="http://www.wikidata.org/entity/Q1335091">Q1335091</a>,
3683 <a href="http://www.wikidata.org/entity/Q1537166">Q1537166</a>,
3684 <a href="http://www.wikidata.org/entity/Q1438334">Q1438334</a>,
3685 <a href="http://www.wikidata.org/entity/Q1479751">Q1479751</a>,
3686 <a href="http://www.wikidata.org/entity/Q1497200">Q1497200</a>,
3687 <a href="http://www.wikidata.org/entity/Q1498122">Q1498122</a>,
3688 <a href="http://www.wikidata.org/entity/Q865973">Q865973</a>,
3689 <a href="http://www.wikidata.org/entity/Q834269">Q834269</a>,
3690 <a href="http://www.wikidata.org/entity/Q841781">Q841781</a>,
3691 <a href="http://www.wikidata.org/entity/Q841781">Q841781</a>,
3692 <a href="http://www.wikidata.org/entity/Q1548193">Q1548193</a>,
3693 <a href="http://www.wikidata.org/entity/Q499031">Q499031</a>,
3694 <a href="http://www.wikidata.org/entity/Q1564769">Q1564769</a>,
3695 <a href="http://www.wikidata.org/entity/Q1585239">Q1585239</a>,
3696 <a href="http://www.wikidata.org/entity/Q1585569">Q1585569</a>,
3697 <a href="http://www.wikidata.org/entity/Q1624236">Q1624236</a>,
3698 <a href="http://www.wikidata.org/entity/Q4796595">Q4796595</a>,
3699 <a href="http://www.wikidata.org/entity/Q4853469">Q4853469</a>,
3700 <a href="http://www.wikidata.org/entity/Q4873046">Q4873046</a>,
3701 <a href="http://www.wikidata.org/entity/Q915016">Q915016</a>,
3702 <a href="http://www.wikidata.org/entity/Q4660396">Q4660396</a>,
3703 <a href="http://www.wikidata.org/entity/Q4677708">Q4677708</a>,
3704 <a href="http://www.wikidata.org/entity/Q4738449">Q4738449</a>,
3705 <a href="http://www.wikidata.org/entity/Q4756096">Q4756096</a>,
3706 <a href="http://www.wikidata.org/entity/Q4766785">Q4766785</a>,
3707 <a href="http://www.wikidata.org/entity/Q880357">Q880357</a>,
3708 <a href="http://www.wikidata.org/entity/Q882066">Q882066</a>,
3709 <a href="http://www.wikidata.org/entity/Q882066">Q882066</a>,
3710 <a href="http://www.wikidata.org/entity/Q204191">Q204191</a>,
3711 <a href="http://www.wikidata.org/entity/Q204191">Q204191</a>,
3712 <a href="http://www.wikidata.org/entity/Q1194170">Q1194170</a>,
3713 <a href="http://www.wikidata.org/entity/Q940014">Q940014</a>,
3714 <a href="http://www.wikidata.org/entity/Q946863">Q946863</a>,
3715 <a href="http://www.wikidata.org/entity/Q172837">Q172837</a>,
3716 <a href="http://www.wikidata.org/entity/Q573077">Q573077</a>,
3717 <a href="http://www.wikidata.org/entity/Q1219005">Q1219005</a>,
3718 <a href="http://www.wikidata.org/entity/Q1219599">Q1219599</a>,
3719 <a href="http://www.wikidata.org/entity/Q1643798">Q1643798</a>,
3720 <a href="http://www.wikidata.org/entity/Q1656352">Q1656352</a>,
3721 <a href="http://www.wikidata.org/entity/Q1659549">Q1659549</a>,
3722 <a href="http://www.wikidata.org/entity/Q1660007">Q1660007</a>,
3723 <a href="http://www.wikidata.org/entity/Q1698154">Q1698154</a>,
3724 <a href="http://www.wikidata.org/entity/Q1737980">Q1737980</a>,
3725 <a href="http://www.wikidata.org/entity/Q1877284">Q1877284</a>,
3726 <a href="http://www.wikidata.org/entity/Q1199354">Q1199354</a>,
3727 <a href="http://www.wikidata.org/entity/Q1199354">Q1199354</a>,
3728 <a href="http://www.wikidata.org/entity/Q1199451">Q1199451</a>,
3729 <a href="http://www.wikidata.org/entity/Q1211871">Q1211871</a>,
3730 <a href="http://www.wikidata.org/entity/Q1212179">Q1212179</a>,
3731 <a href="http://www.wikidata.org/entity/Q1238382">Q1238382</a>,
3732 <a href="http://www.wikidata.org/entity/Q4906454">Q4906454</a>,
3733 <a href="http://www.wikidata.org/entity/Q320219">Q320219</a>,
3734 <a href="http://www.wikidata.org/entity/Q1148649">Q1148649</a>,
3735 <a href="http://www.wikidata.org/entity/Q645094">Q645094</a>,
3736 <a href="http://www.wikidata.org/entity/Q5050350">Q5050350</a>,
3737 <a href="http://www.wikidata.org/entity/Q5166548">Q5166548</a>,
3738 <a href="http://www.wikidata.org/entity/Q2677926">Q2677926</a>,
3739 <a href="http://www.wikidata.org/entity/Q2698139">Q2698139</a>,
3740 <a href="http://www.wikidata.org/entity/Q2707305">Q2707305</a>,
3741 <a href="http://www.wikidata.org/entity/Q2740725">Q2740725</a>,
3742 <a href="http://www.wikidata.org/entity/Q2024780">Q2024780</a>,
3743 <a href="http://www.wikidata.org/entity/Q2117418">Q2117418</a>,
3744 <a href="http://www.wikidata.org/entity/Q2138984">Q2138984</a>,
3745 <a href="http://www.wikidata.org/entity/Q1127992">Q1127992</a>,
3746 <a href="http://www.wikidata.org/entity/Q1058087">Q1058087</a>,
3747 <a href="http://www.wikidata.org/entity/Q1070484">Q1070484</a>,
3748 <a href="http://www.wikidata.org/entity/Q1080080">Q1080080</a>,
3749 <a href="http://www.wikidata.org/entity/Q1090813">Q1090813</a>,
3750 <a href="http://www.wikidata.org/entity/Q1251918">Q1251918</a>,
3751 <a href="http://www.wikidata.org/entity/Q1254110">Q1254110</a>,
3752 <a href="http://www.wikidata.org/entity/Q1257070">Q1257070</a>,
3753 <a href="http://www.wikidata.org/entity/Q1257079">Q1257079</a>,
3754 <a href="http://www.wikidata.org/entity/Q1197410">Q1197410</a>,
3755 <a href="http://www.wikidata.org/entity/Q1198423">Q1198423</a>,
3756 <a href="http://www.wikidata.org/entity/Q706951">Q706951</a>,
3757 <a href="http://www.wikidata.org/entity/Q723239">Q723239</a>,
3758 <a href="http://www.wikidata.org/entity/Q2079261">Q2079261</a>,
3759 <a href="http://www.wikidata.org/entity/Q1171364">Q1171364</a>,
3760 <a href="http://www.wikidata.org/entity/Q617858">Q617858</a>,
3761 <a href="http://www.wikidata.org/entity/Q5166611">Q5166611</a>,
3762 <a href="http://www.wikidata.org/entity/Q5166611">Q5166611</a>,
3763 <a href="http://www.wikidata.org/entity/Q324513">Q324513</a>,
3764 <a href="http://www.wikidata.org/entity/Q374172">Q374172</a>,
3765 <a href="http://www.wikidata.org/entity/Q7533269">Q7533269</a>,
3766 <a href="http://www.wikidata.org/entity/Q970386">Q970386</a>,
3767 <a href="http://www.wikidata.org/entity/Q976849">Q976849</a>,
3768 <a href="http://www.wikidata.org/entity/Q7458614">Q7458614</a>,
3769 <a href="http://www.wikidata.org/entity/Q5347416">Q5347416</a>,
3770 <a href="http://www.wikidata.org/entity/Q5460005">Q5460005</a>,
3771 <a href="http://www.wikidata.org/entity/Q5463392">Q5463392</a>,
3772 <a href="http://www.wikidata.org/entity/Q3038555">Q3038555</a>,
3773 <a href="http://www.wikidata.org/entity/Q5288458">Q5288458</a>,
3774 <a href="http://www.wikidata.org/entity/Q2346516">Q2346516</a>,
3775 <a href="http://www.wikidata.org/entity/Q5183645">Q5183645</a>,
3776 <a href="http://www.wikidata.org/entity/Q5185497">Q5185497</a>,
3777 <a href="http://www.wikidata.org/entity/Q5216127">Q5216127</a>,
3778 <a href="http://www.wikidata.org/entity/Q5223127">Q5223127</a>,
3779 <a href="http://www.wikidata.org/entity/Q5261159">Q5261159</a>,
3780 <a href="http://www.wikidata.org/entity/Q1300759">Q1300759</a>,
3781 <a href="http://www.wikidata.org/entity/Q5521241">Q5521241</a>,
3782 <a href="http://www.wikidata.org/entity/Q7733434">Q7733434</a>,
3783 <a href="http://www.wikidata.org/entity/Q7736264">Q7736264</a>,
3784 <a href="http://www.wikidata.org/entity/Q7737032">Q7737032</a>,
3785 <a href="http://www.wikidata.org/entity/Q7882671">Q7882671</a>,
3786 <a href="http://www.wikidata.org/entity/Q7719427">Q7719427</a>,
3787 <a href="http://www.wikidata.org/entity/Q7719444">Q7719444</a>,
3788 <a href="http://www.wikidata.org/entity/Q7722575">Q7722575</a>,
3789 <a href="http://www.wikidata.org/entity/Q2629763">Q2629763</a>,
3790 <a href="http://www.wikidata.org/entity/Q2640346">Q2640346</a>,
3791 <a href="http://www.wikidata.org/entity/Q2649671">Q2649671</a>,
3792 <a href="http://www.wikidata.org/entity/Q7703851">Q7703851</a>,
3793 <a href="http://www.wikidata.org/entity/Q7747041">Q7747041</a>,
3794 <a href="http://www.wikidata.org/entity/Q6544949">Q6544949</a>,
3795 <a href="http://www.wikidata.org/entity/Q6672759">Q6672759</a>,
3796 <a href="http://www.wikidata.org/entity/Q2445896">Q2445896</a>,
3797 <a href="http://www.wikidata.org/entity/Q12124891">Q12124891</a>,
3798 <a href="http://www.wikidata.org/entity/Q3127044">Q3127044</a>,
3799 <a href="http://www.wikidata.org/entity/Q2511262">Q2511262</a>,
3800 <a href="http://www.wikidata.org/entity/Q2517672">Q2517672</a>,
3801 <a href="http://www.wikidata.org/entity/Q2543165">Q2543165</a>,
3802 <a href="http://www.wikidata.org/entity/Q426628">Q426628</a>,
3803 <a href="http://www.wikidata.org/entity/Q426628">Q426628</a>,
3804 <a href="http://www.wikidata.org/entity/Q12126890">Q12126890</a>,
3805 <a href="http://www.wikidata.org/entity/Q13359969">Q13359969</a>,
3806 <a href="http://www.wikidata.org/entity/Q13359969">Q13359969</a>,
3807 <a href="http://www.wikidata.org/entity/Q2294295">Q2294295</a>,
3808 <a href="http://www.wikidata.org/entity/Q2294295">Q2294295</a>,
3809 <a href="http://www.wikidata.org/entity/Q2559509">Q2559509</a>,
3810 <a href="http://www.wikidata.org/entity/Q2559912">Q2559912</a>,
3811 <a href="http://www.wikidata.org/entity/Q7760469">Q7760469</a>,
3812 <a href="http://www.wikidata.org/entity/Q6703974">Q6703974</a>,
3813 <a href="http://www.wikidata.org/entity/Q4744">Q4744</a>,
3814 <a href="http://www.wikidata.org/entity/Q7766962">Q7766962</a>,
3815 <a href="http://www.wikidata.org/entity/Q7768516">Q7768516</a>,
3816 <a href="http://www.wikidata.org/entity/Q7769205">Q7769205</a>,
3817 <a href="http://www.wikidata.org/entity/Q7769988">Q7769988</a>,
3818 <a href="http://www.wikidata.org/entity/Q2946945">Q2946945</a>,
3819 <a href="http://www.wikidata.org/entity/Q3212086">Q3212086</a>,
3820 <a href="http://www.wikidata.org/entity/Q3212086">Q3212086</a>,
3821 <a href="http://www.wikidata.org/entity/Q18218448">Q18218448</a>,
3822 <a href="http://www.wikidata.org/entity/Q18218448">Q18218448</a>,
3823 <a href="http://www.wikidata.org/entity/Q18218448">Q18218448</a>,
3824 <a href="http://www.wikidata.org/entity/Q6909175">Q6909175</a>,
3825 <a href="http://www.wikidata.org/entity/Q7405709">Q7405709</a>,
3826 <a href="http://www.wikidata.org/entity/Q7416149">Q7416149</a>,
3827 <a href="http://www.wikidata.org/entity/Q7239952">Q7239952</a>,
3828 <a href="http://www.wikidata.org/entity/Q7317332">Q7317332</a>,
3829 <a href="http://www.wikidata.org/entity/Q7783674">Q7783674</a>,
3830 <a href="http://www.wikidata.org/entity/Q7783704">Q7783704</a>,
3831 <a href="http://www.wikidata.org/entity/Q7857590">Q7857590</a>,
3832 <a href="http://www.wikidata.org/entity/Q3372526">Q3372526</a>,
3833 <a href="http://www.wikidata.org/entity/Q3372642">Q3372642</a>,
3834 <a href="http://www.wikidata.org/entity/Q3372816">Q3372816</a>,
3835 <a href="http://www.wikidata.org/entity/Q3372909">Q3372909</a>,
3836 <a href="http://www.wikidata.org/entity/Q7959649">Q7959649</a>,
3837 <a href="http://www.wikidata.org/entity/Q7977485">Q7977485</a>,
3838 <a href="http://www.wikidata.org/entity/Q7992684">Q7992684</a>,
3839 <a href="http://www.wikidata.org/entity/Q3817966">Q3817966</a>,
3840 <a href="http://www.wikidata.org/entity/Q3821852">Q3821852</a>,
3841 <a href="http://www.wikidata.org/entity/Q3420907">Q3420907</a>,
3842 <a href="http://www.wikidata.org/entity/Q3429733">Q3429733</a>,
3843 <a href="http://www.wikidata.org/entity/Q774474">Q774474</a></p>
3844
3845 <p>As usual, if you use Bitcoin and want to show your support of my
3846 activities, please send Bitcoin donations to my address
3847 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
3848
3849 </div>
3850 <div class="tags">
3851
3852
3853 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>, <a href="http://people.skolelinux.org/pere/blog/tags/verkidetfri">verkidetfri</a>.
3854
3855
3856 </div>
3857 </div>
3858 <div class="padding"></div>
3859
3860 <div class="entry">
3861 <div class="title">
3862 <a href="http://people.skolelinux.org/pere/blog/A_one_way_wall_on_the_border_.html">A one-way wall on the border?</a>
3863 </div>
3864 <div class="date">
3865 14th October 2017
3866 </div>
3867 <div class="body">
3868 <p>I find it fascinating how many of the people being locked inside
3869 the proposed border wall between USA and Mexico support the idea. The
3870 proposal to keep Mexicans out reminds me of
3871 <a href="http://www.history.com/news/10-things-you-may-not-know-about-the-berlin-wall">the
3872 propaganda twist from the East Germany government</a> calling the wall
3873 the “Antifascist Bulwark” after erecting the Berlin Wall, claiming
3874 that the wall was erected to keep enemies from creeping into East
3875 Germany, while it was obvious to the people locked inside it that it
3876 was erected to keep the people from escaping.</p>
3877
3878 <p>Do the people in USA supporting this wall really believe it is a
3879 one way wall, only keeping people on the outside from getting in,
3880 while not keeping people in the inside from getting out?</p>
3881
3882 <p>As usual, if you use Bitcoin and want to show your support of my
3883 activities, please send Bitcoin donations to my address
3884 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
3885
3886 </div>
3887 <div class="tags">
3888
3889
3890 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
3891
3892
3893 </div>
3894 </div>
3895 <div class="padding"></div>
3896
3897 <div class="entry">
3898 <div class="title">
3899 <a href="http://people.skolelinux.org/pere/blog/Generating_3D_prints_in_Debian_using_Cura_and_Slic3r__prusa_.html">Generating 3D prints in Debian using Cura and Slic3r(-prusa)</a>
3900 </div>
3901 <div class="date">
3902 9th October 2017
3903 </div>
3904 <div class="body">
3905 <p>At my nearby maker space,
3906 <a href="http://sonen.ifi.uio.no/">Sonen</a>, I heard the story that it
3907 was easier to generate gcode files for theyr 3D printers (Ultimake 2+)
3908 on Windows and MacOS X than Linux, because the software involved had
3909 to be manually compiled and set up on Linux while premade packages
3910 worked out of the box on Windows and MacOS X. I found this annoying,
3911 as the software involved,
3912 <a href="https://github.com/Ultimaker/Cura">Cura</a>, is free software
3913 and should be trivial to get up and running on Linux if someone took
3914 the time to package it for the relevant distributions. I even found
3915 <a href="https://bugs.debian.org/706656">a request for adding into
3916 Debian</a> from 2013, which had seem some activity over the years but
3917 never resulted in the software showing up in Debian. So a few days
3918 ago I offered my help to try to improve the situation.</p>
3919
3920 <p>Now I am very happy to see that all the packages required by a
3921 working Cura in Debian are uploaded into Debian and waiting in the NEW
3922 queue for the ftpmasters to have a look. You can track the progress
3923 on
3924 <a href="https://qa.debian.org/developer.php?email=3dprinter-general%40lists.alioth.debian.org">the
3925 status page for the 3D printer team</a>.</p>
3926
3927 <p>The uploaded packages are a bit behind upstream, and was uploaded
3928 now to get slots in <a href="https://ftp-master.debian.org/new.html">the NEW
3929 queue</a> while we work up updating the packages to the latest
3930 upstream version.</p>
3931
3932 <p>On a related note, two competitors for Cura, which I found harder
3933 to use and was unable to configure correctly for Ultimaker 2+ in the
3934 short time I spent on it, are already in Debian. If you are looking
3935 for 3D printer "slicers" and want something already available in
3936 Debian, check out
3937 <a href="https://tracker.debian.org/pkg/slic3r">slic3r</a> and
3938 <a href="https://tracker.debian.org/pkg/slic3r-prusa">slic3r-prusa</a>.
3939 The latter is a fork of the former.</p>
3940
3941 <p>As usual, if you use Bitcoin and want to show your support of my
3942 activities, please send Bitcoin donations to my address
3943 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
3944
3945 </div>
3946 <div class="tags">
3947
3948
3949 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>.
3950
3951
3952 </div>
3953 </div>
3954 <div class="padding"></div>
3955
3956 <div class="entry">
3957 <div class="title">
3958 <a href="http://people.skolelinux.org/pere/blog/Visualizing_GSM_radio_chatter_using_gr_gsm_and_Hopglass.html">Visualizing GSM radio chatter using gr-gsm and Hopglass</a>
3959 </div>
3960 <div class="date">
3961 29th September 2017
3962 </div>
3963 <div class="body">
3964 <p>Every mobile phone announce its existence over radio to the nearby
3965 mobile cell towers. And this radio chatter is available for anyone
3966 with a radio receiver capable of receiving them. Details about the
3967 mobile phones with very good accuracy is of course collected by the
3968 phone companies, but this is not the topic of this blog post. The
3969 mobile phone radio chatter make it possible to figure out when a cell
3970 phone is nearby, as it include the SIM card ID (IMSI). By paying
3971 attention over time, one can see when a phone arrive and when it leave
3972 an area. I believe it would be nice to make this information more
3973 available to the general public, to make more people aware of how
3974 their phones are announcing their whereabouts to anyone that care to
3975 listen.</p>
3976
3977 <p>I am very happy to report that we managed to get something
3978 visualizing this information up and running for
3979 <a href="http://norwaymakers.org/osf17">Oslo Skaperfestival 2017</a>
3980 (Oslo Makers Festival) taking place today and tomorrow at Deichmanske
3981 library. The solution is based on the
3982 <a href="http://people.skolelinux.org/pere/blog/Easier_recipe_to_observe_the_cell_phones_around_you.html">simple
3983 recipe for listening to GSM chatter</a> I posted a few days ago, and
3984 will show up at the stand of <a href="http://sonen.ifi.uio.no/">Åpen
3985 Sone from the Computer Science department of the University of
3986 Oslo</a>. The presentation will show the nearby mobile phones (aka
3987 IMSIs) as dots in a web browser graph, with lines to the dot
3988 representing mobile base station it is talking to. It was working in
3989 the lab yesterday, and was moved into place this morning.</p>
3990
3991 <p>We set up a fairly powerful desktop machine using Debian
3992 Buster/Testing with several (five, I believe) RTL2838 DVB-T receivers
3993 connected and visualize the visible cell phone towers using an
3994 <a href="https://github.com/marlow925/hopglass">English version of
3995 Hopglass</a>. A fairly powerfull machine is needed as the
3996 grgsm_livemon_headless processes from
3997 <a href="https://tracker.debian.org/pkg/gr-gsm">gr-gsm</a> converting
3998 the radio signal to data packages is quite CPU intensive.</p>
3999
4000 <p>The frequencies to listen to, are identified using a slightly
4001 patched scan-and-livemon (to set the --args values for each receiver),
4002 and the Hopglass data is generated using the
4003 <a href="https://github.com/petterreinholdtsen/IMSI-catcher/tree/meshviewer-output">patches
4004 in my meshviewer-output branch</a>. For some reason we could not get
4005 more than four SDRs working. There is also a geographical map trying
4006 to show the location of the base stations, but I believe their
4007 coordinates are hardcoded to some random location in Germany, I
4008 believe. The code should be replaced with code to look up location in
4009 a text file, a sqlite database or one of the online databases
4010 mentioned in
4011 <a href="https://github.com/Oros42/IMSI-catcher/issues/14">the github
4012 issue for the topic</a>.
4013
4014 <p>If this sound interesting, visit the stand at the festival!</p>
4015
4016 </div>
4017 <div class="tags">
4018
4019
4020 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>.
4021
4022
4023 </div>
4024 </div>
4025 <div class="padding"></div>
4026
4027 <div class="entry">
4028 <div class="title">
4029 <a href="http://people.skolelinux.org/pere/blog/Easier_recipe_to_observe_the_cell_phones_around_you.html">Easier recipe to observe the cell phones around you</a>
4030 </div>
4031 <div class="date">
4032 24th September 2017
4033 </div>
4034 <div class="body">
4035 <p>A little more than a month ago I wrote
4036 <a href="http://people.skolelinux.org/pere/blog/Simpler_recipe_on_how_to_make_a_simple__7_IMSI_Catcher_using_Debian.html">how
4037 to observe the SIM card ID (aka IMSI number) of mobile phones talking
4038 to nearby mobile phone base stations using Debian GNU/Linux and a
4039 cheap USB software defined radio</a>, and thus being able to pinpoint
4040 the location of people and equipment (like cars and trains) with an
4041 accuracy of a few kilometer. Since then we have worked to make the
4042 procedure even simpler, and it is now possible to do this without any
4043 manual frequency tuning and without building your own packages.</p>
4044
4045 <p>The <a href="https://tracker.debian.org/pkg/gr-gsm">gr-gsm</a>
4046 package is now included in Debian testing and unstable, and the
4047 IMSI-catcher code no longer require root access to fetch and decode
4048 the GSM data collected using gr-gsm.</p>
4049
4050 <p>Here is an updated recipe, using packages built by Debian and a git
4051 clone of two python scripts:</p>
4052
4053 <ol>
4054
4055 <li>Start with a Debian machine running the Buster version (aka
4056 testing).</li>
4057
4058 <li>Run '<tt>apt install gr-gsm python-numpy python-scipy
4059 python-scapy</tt>' as root to install required packages.</li>
4060
4061 <li>Fetch the code decoding GSM packages using '<tt>git clone
4062 github.com/Oros42/IMSI-catcher.git</tt>'.</li>
4063
4064 <li>Insert USB software defined radio supported by GNU Radio.</li>
4065
4066 <li>Enter the IMSI-catcher directory and run '<tt>python
4067 scan-and-livemon</tt>' to locate the frequency of nearby base
4068 stations and start listening for GSM packages on one of them.</li>
4069
4070 <li>Enter the IMSI-catcher directory and run '<tt>python
4071 simple_IMSI-catcher.py</tt>' to display the collected information.</li>
4072
4073 </ol>
4074
4075 <p>Note, due to a bug somewhere the scan-and-livemon program (actually
4076 <a href="https://github.com/ptrkrysik/gr-gsm/issues/336">its underlying
4077 program grgsm_scanner</a>) do not work with the HackRF radio. It does
4078 work with RTL 8232 and other similar USB radio receivers you can get
4079 very cheaply
4080 (<a href="https://www.ebay.com/sch/items/?_nkw=rtl+2832">for example
4081 from ebay</a>), so for now the solution is to scan using the RTL radio
4082 and only use HackRF for fetching GSM data.</p>
4083
4084 <p>As far as I can tell, a cell phone only show up on one of the
4085 frequencies at the time, so if you are going to track and count every
4086 cell phone around you, you need to listen to all the frequencies used.
4087 To listen to several frequencies, use the --numrecv argument to
4088 scan-and-livemon to use several receivers. Further, I am not sure if
4089 phones using 3G or 4G will show as talking GSM to base stations, so
4090 this approach might not see all phones around you. I typically see
4091 0-400 IMSI numbers an hour when looking around where I live.</p>
4092
4093 <p>I've tried to run the scanner on a
4094 <a href="https://wiki.debian.org/RaspberryPi">Raspberry Pi 2 and 3
4095 running Debian Buster</a>, but the grgsm_livemon_headless process seem
4096 to be too CPU intensive to keep up. When GNU Radio print 'O' to
4097 stdout, I am told there it is caused by a buffer overflow between the
4098 radio and GNU Radio, caused by the program being unable to read the
4099 GSM data fast enough. If you see a stream of 'O's from the terminal
4100 where you started scan-and-livemon, you need a give the process more
4101 CPU power. Perhaps someone are able to optimize the code to a point
4102 where it become possible to set up RPi3 based GSM sniffers? I tried
4103 using Raspbian instead of Debian, but there seem to be something wrong
4104 with GNU Radio on raspbian, causing glibc to abort().</p>
4105
4106 </div>
4107 <div class="tags">
4108
4109
4110 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>.
4111
4112
4113 </div>
4114 </div>
4115 <div class="padding"></div>
4116
4117 <div class="entry">
4118 <div class="title">
4119 <a href="http://people.skolelinux.org/pere/blog/Simpler_recipe_on_how_to_make_a_simple__7_IMSI_Catcher_using_Debian.html">Simpler recipe on how to make a simple $7 IMSI Catcher using Debian</a>
4120 </div>
4121 <div class="date">
4122 9th August 2017
4123 </div>
4124 <div class="body">
4125 <p>On friday, I came across an interesting article in the Norwegian
4126 web based ICT news magazine digi.no on
4127 <a href="https://www.digi.no/artikler/sikkerhetsforsker-lagde-enkel-imsi-catcher-for-60-kroner-na-kan-mobiler-kartlegges-av-alle/398588">how
4128 to collect the IMSI numbers of nearby cell phones</a> using the cheap
4129 DVB-T software defined radios. The article refered to instructions
4130 and <a href="https://www.youtube.com/watch?v=UjwgNd_as30">a recipe by
4131 Keld Norman on Youtube on how to make a simple $7 IMSI Catcher</a>, and I decided to test them out.</p>
4132
4133 <p>The instructions said to use Ubuntu, install pip using apt (to
4134 bypass apt), use pip to install pybombs (to bypass both apt and pip),
4135 and the ask pybombs to fetch and build everything you need from
4136 scratch. I wanted to see if I could do the same on the most recent
4137 Debian packages, but this did not work because pybombs tried to build
4138 stuff that no longer build with the most recent openssl library or
4139 some other version skew problem. While trying to get this recipe
4140 working, I learned that the apt->pip->pybombs route was a long detour,
4141 and the only piece of software dependency missing in Debian was the
4142 gr-gsm package. I also found out that the lead upstream developer of
4143 gr-gsm (the name stand for GNU Radio GSM) project already had a set of
4144 Debian packages provided in an Ubuntu PPA repository. All I needed to
4145 do was to dget the Debian source package and built it.</p>
4146
4147 <p>The IMSI collector is a python script listening for packages on the
4148 loopback network device and printing to the terminal some specific GSM
4149 packages with IMSI numbers in them. The code is fairly short and easy
4150 to understand. The reason this work is because gr-gsm include a tool
4151 to read GSM data from a software defined radio like a DVB-T USB stick
4152 and other software defined radios, decode them and inject them into a
4153 network device on your Linux machine (using the loopback device by
4154 default). This proved to work just fine, and I've been testing the
4155 collector for a few days now.</p>
4156
4157 <p>The updated and simpler recipe is thus to</p>
4158
4159 <ol>
4160
4161 <li>start with a Debian machine running Stretch or newer,</li>
4162
4163 <li>build and install the gr-gsm package available from
4164 <a href="http://ppa.launchpad.net/ptrkrysik/gr-gsm/ubuntu/pool/main/g/gr-gsm/">http://ppa.launchpad.net/ptrkrysik/gr-gsm/ubuntu/pool/main/g/gr-gsm/</a>,</li>
4165
4166 <li>clone the git repostory from <a href="https://github.com/Oros42/IMSI-catcher">https://github.com/Oros42/IMSI-catcher</a>,</li>
4167
4168 <li>run grgsm_livemon and adjust the frequency until the terminal
4169 where it was started is filled with a stream of text (meaning you
4170 found a GSM station).</li>
4171
4172 <li>go into the IMSI-catcher directory and run 'sudo python simple_IMSI-catcher.py' to extract the IMSI numbers.</li>
4173
4174 </ol>
4175
4176 <p>To make it even easier in the future to get this sniffer up and
4177 running, I decided to package
4178 <a href="https://github.com/ptrkrysik/gr-gsm/">the gr-gsm project</a>
4179 for Debian (<a href="https://bugs.debian.org/871055">WNPP
4180 #871055</a>), and the package was uploaded into the NEW queue today.
4181 Luckily the gnuradio maintainer has promised to help me, as I do not
4182 know much about gnuradio stuff yet.</p>
4183
4184 <p>I doubt this "IMSI cacher" is anywhere near as powerfull as
4185 commercial tools like
4186 <a href="https://www.thespyphone.com/portable-imsi-imei-catcher/">The
4187 Spy Phone Portable IMSI / IMEI Catcher</a> or the
4188 <a href="https://en.wikipedia.org/wiki/Stingray_phone_tracker">Harris
4189 Stingray</a>, but I hope the existance of cheap alternatives can make
4190 more people realise how their whereabouts when carrying a cell phone
4191 is easily tracked. Seeing the data flow on the screen, realizing that
4192 I live close to a police station and knowing that the police is also
4193 wearing cell phones, I wonder how hard it would be for criminals to
4194 track the position of the police officers to discover when there are
4195 police near by, or for foreign military forces to track the location
4196 of the Norwegian military forces, or for anyone to track the location
4197 of government officials...</p>
4198
4199 <p>It is worth noting that the data reported by the IMSI-catcher
4200 script mentioned above is only a fraction of the data broadcasted on
4201 the GSM network. It will only collect one frequency at the time,
4202 while a typical phone will be using several frequencies, and not all
4203 phones will be using the frequencies tracked by the grgsm_livemod
4204 program. Also, there is a lot of radio chatter being ignored by the
4205 simple_IMSI-catcher script, which would be collected by extending the
4206 parser code. I wonder if gr-gsm can be set up to listen to more than
4207 one frequency?</p>
4208
4209 </div>
4210 <div class="tags">
4211
4212
4213 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>.
4214
4215
4216 </div>
4217 </div>
4218 <div class="padding"></div>
4219
4220 <div class="entry">
4221 <div class="title">
4222 <a href="http://people.skolelinux.org/pere/blog/Norwegian_Bokm_l_edition_of_Debian_Administrator_s_Handbook_is_now_available.html">Norwegian Bokmål edition of Debian Administrator's Handbook is now available</a>
4223 </div>
4224 <div class="date">
4225 25th July 2017
4226 </div>
4227 <div class="body">
4228 <p align="center"><img align="center" src="http://people.skolelinux.org/pere/blog/images/2017-07-25-debian-handbook-nb-testprint.png"/></p>
4229
4230 <p>I finally received a copy of the Norwegian Bokmål edition of
4231 "<a href="https://debian-handbook.info/">The Debian Administrator's
4232 Handbook</a>". This test copy arrived in the mail a few days ago, and
4233 I am very happy to hold the result in my hand. We spent around one and a half year translating it. This paperbook edition
4234 <a href="https://debian-handbook.info/get/#norwegian">is available
4235 from lulu.com</a>. If you buy it quickly, you save 25% on the list
4236 price. The book is also available for download in electronic form as
4237 PDF, EPUB and Mobipocket, as can be
4238 <a href="https://debian-handbook.info/browse/nb-NO/stable/">read online
4239 as a web page</a>.</p>
4240
4241 <p>This is the second book I publish (the first was the book
4242 "<a href="http://free-culture.cc/">Free Culture</a>" by Lawrence Lessig
4243 in
4244 <a href="http://www.lulu.com/shop/lawrence-lessig/free-culture/paperback/product-22440520.html">English</a>,
4245 <a href="http://www.lulu.com/shop/lawrence-lessig/culture-libre/paperback/product-22645082.html">French</a>
4246 and
4247 <a href="http://www.lulu.com/shop/lawrence-lessig/fri-kultur/paperback/product-22441576.html">Norwegian
4248 Bokmål</a>), and I am very excited to finally wrap up this
4249 project. I hope
4250 "<a href="http://www.lulu.com/shop/rapha%C3%ABl-hertzog-and-roland-mas/h%C3%A5ndbok-for-debian-administratoren/paperback/product-23262290.html">Håndbok
4251 for Debian-administratoren</a>" will be well received.</p>
4252
4253 </div>
4254 <div class="tags">
4255
4256
4257 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian-handbook">debian-handbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
4258
4259
4260 </div>
4261 </div>
4262 <div class="padding"></div>
4263
4264 <div class="entry">
4265 <div class="title">
4266 <a href="http://people.skolelinux.org/pere/blog/Updated_sales_number_for_my_Free_Culture_paper_editions.html">Updated sales number for my Free Culture paper editions</a>
4267 </div>
4268 <div class="date">
4269 12th June 2017
4270 </div>
4271 <div class="body">
4272 <p>It is pleasing to see that the work we put down in publishing new
4273 editions of the classic <a href="http://www.free-culture.cc/">Free
4274 Culture book</a> by the founder of the Creative Commons movement,
4275 Lawrence Lessig, is still being appreciated. I had a look at the
4276 latest sales numbers for the paper edition today. Not too impressive,
4277 but happy to see some buyers still exist. All the revenue from the
4278 books is sent to the <a href="https://creativecommons.org/">Creative
4279 Commons Corporation</a>, and they receive the largest cut if you buy
4280 directly from Lulu. Most books are sold via Amazon, with Ingram
4281 second and only a small fraction directly from Lulu. The ebook
4282 edition is available for free from
4283 <a href="https://github.com/petterreinholdtsen/free-culture-lessig">Github</a>.</p>
4284
4285 <table border="0">
4286 <tr><th rowspan="2" valign="bottom">Title / language</th><th colspan="3">Quantity</th></tr>
4287 <tr><th>2016 jan-jun</th><th>2016 jul-dec</th><th>2017 jan-may</th></tr>
4288
4289 <tr>
4290 <td><a href="http://www.lulu.com/shop/lawrence-lessig/culture-libre/paperback/product-22645082.html">Culture Libre / French</a></td>
4291 <td align="right">3</td>
4292 <td align="right">6</td>
4293 <td align="right">15</td>
4294 </tr>
4295
4296 <tr>
4297 <td><a href="http://www.lulu.com/shop/lawrence-lessig/fri-kultur/paperback/product-22441576.html">Fri kultur / Norwegian</a></td>
4298 <td align="right">7</td>
4299 <td align="right">1</td>
4300 <td align="right">0</td>
4301 </tr>
4302
4303 <tr>
4304 <td><a href="http://www.lulu.com/shop/lawrence-lessig/free-culture/paperback/product-22440520.html">Free Culture / English</a></td>
4305 <td align="right">14</td>
4306 <td align="right">27</td>
4307 <td align="right">16</td>
4308 </tr>
4309
4310 <tr>
4311 <td>Total</td>
4312 <td align="right">24</td>
4313 <td align="right">34</td>
4314 <td align="right">31</td>
4315 </tr>
4316
4317 </table>
4318
4319 <p>A bit sad to see the low sales number on the Norwegian edition, and
4320 a bit surprising the English edition still selling so well.</p>
4321
4322 <p>If you would like to translate and publish the book in your native
4323 language, I would be happy to help make it happen. Please get in
4324 touch.</p>
4325
4326 </div>
4327 <div class="tags">
4328
4329
4330 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>.
4331
4332
4333 </div>
4334 </div>
4335 <div class="padding"></div>
4336
4337 <div class="entry">
4338 <div class="title">
4339 <a href="http://people.skolelinux.org/pere/blog/Release_0_1_1_of_free_software_archive_system_Nikita_announced.html">Release 0.1.1 of free software archive system Nikita announced</a>
4340 </div>
4341 <div class="date">
4342 10th June 2017
4343 </div>
4344 <div class="body">
4345 <p>I am very happy to report that the
4346 <a href="https://github.com/hiOA-ABI/nikita-noark5-core">Nikita Noark 5
4347 core project</a> tagged its second release today. The free software
4348 solution is an implementation of the Norwegian archive standard Noark
4349 5 used by government offices in Norway. These were the changes in
4350 version 0.1.1 since version 0.1.0 (from NEWS.md):
4351
4352 <ul>
4353
4354 <li>Continued work on the angularjs GUI, including document upload.</li>
4355 <li>Implemented correspondencepartPerson, correspondencepartUnit and
4356 correspondencepartInternal</li>
4357 <li>Applied for coverity coverage and started submitting code on
4358 regualr basis.</li>
4359 <li>Started fixing bugs reported by coverity</li>
4360 <li>Corrected and completed HATEOAS links to make sure entire API is
4361 available via URLs in _links.</li>
4362 <li>Corrected all relation URLs to use trailing slash.</li>
4363 <li>Add initial support for storing data in ElasticSearch.</li>
4364 <li>Now able to receive and store uploaded files in the archive.</li>
4365 <li>Changed JSON output for object lists to have relations in _links.</li>
4366 <li>Improve JSON output for empty object lists.</li>
4367 <li>Now uses correct MIME type application/vnd.noark5-v4+json.</li>
4368 <li>Added support for docker container images.</li>
4369 <li>Added simple API browser implemented in JavaScript/Angular.</li>
4370 <li>Started on archive client implemented in JavaScript/Angular.</li>
4371 <li>Started on prototype to show the public mail journal.</li>
4372 <li>Improved performance by disabling Sprint FileWatcher.</li>
4373 <li>Added support for 'arkivskaper', 'saksmappe' and 'journalpost'.</li>
4374 <li>Added support for some metadata codelists.</li>
4375 <li>Added support for Cross-origin resource sharing (CORS).</li>
4376 <li>Changed login method from Basic Auth to JSON Web Token (RFC 7519)
4377 style.</li>
4378 <li>Added support for GET-ing ny-* URLs.</li>
4379 <li>Added support for modifying entities using PUT and eTag.</li>
4380 <li>Added support for returning XML output on request.</li>
4381 <li>Removed support for English field and class names, limiting ourself
4382 to the official names.</li>
4383 <li>...</li>
4384
4385 </ul>
4386
4387 <p>If this sound interesting to you, please contact us on IRC (#nikita
4388 on irc.freenode.net) or email
4389 (<a href="https://lists.nuug.no/mailman/listinfo/nikita-noark">nikita-noark
4390 mailing list).</p>
4391
4392 </div>
4393 <div class="tags">
4394
4395
4396 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/noark5">noark5</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>.
4397
4398
4399 </div>
4400 </div>
4401 <div class="padding"></div>
4402
4403 <div class="entry">
4404 <div class="title">
4405 <a href="http://people.skolelinux.org/pere/blog/Idea_for_storing_trusted_timestamps_in_a_Noark_5_archive.html">Idea for storing trusted timestamps in a Noark 5 archive</a>
4406 </div>
4407 <div class="date">
4408 7th June 2017
4409 </div>
4410 <div class="body">
4411 <p><em>This is a copy of
4412 <a href="https://lists.nuug.no/pipermail/nikita-noark/2017-June/000297.html">an
4413 email I posted to the nikita-noark mailing list</a>. Please follow up
4414 there if you would like to discuss this topic. The background is that
4415 we are making a free software archive system based on the Norwegian
4416 <a href="https://www.arkivverket.no/forvaltning-og-utvikling/regelverk-og-standarder/noark-standarden">Noark
4417 5 standard</a> for government archives.</em></p>
4418
4419 <p>I've been wondering a bit lately how trusted timestamps could be
4420 stored in Noark 5.
4421 <a href="https://en.wikipedia.org/wiki/Trusted_timestamping">Trusted
4422 timestamps</a> can be used to verify that some information
4423 (document/file/checksum/metadata) have not been changed since a
4424 specific time in the past. This is useful to verify the integrity of
4425 the documents in the archive.</p>
4426
4427 <p>Then it occured to me, perhaps the trusted timestamps could be
4428 stored as dokument variants (ie dokumentobjekt referered to from
4429 dokumentbeskrivelse) with the filename set to the hash it is
4430 stamping?</p>
4431
4432 <p>Given a "dokumentbeskrivelse" with an associated "dokumentobjekt",
4433 a new dokumentobjekt is associated with "dokumentbeskrivelse" with the
4434 same attributes as the stamped dokumentobjekt except these
4435 attributes:</p>
4436
4437 <ul>
4438
4439 <li>format -> "RFC3161"
4440 <li>mimeType -> "application/timestamp-reply"
4441 <li>formatDetaljer -> "&lt;source URL for timestamp service&gt;"
4442 <li>filenavn -> "&lt;sjekksum&gt;.tsr"
4443
4444 </ul>
4445
4446 <p>This assume a service following
4447 <a href="https://tools.ietf.org/html/rfc3161">IETF RFC 3161</a> is
4448 used, which specifiy the given MIME type for replies and the .tsr file
4449 ending for the content of such trusted timestamp. As far as I can
4450 tell from the Noark 5 specifications, it is OK to have several
4451 variants/renderings of a dokument attached to a given
4452 dokumentbeskrivelse objekt. It might be stretching it a bit to make
4453 some of these variants represent crypto-signatures useful for
4454 verifying the document integrity instead of representing the dokument
4455 itself.</p>
4456
4457 <p>Using the source of the service in formatDetaljer allow several
4458 timestamping services to be used. This is useful to spread the risk
4459 of key compromise over several organisations. It would only be a
4460 problem to trust the timestamps if all of the organisations are
4461 compromised.</p>
4462
4463 <p>The following oneliner on Linux can be used to generate the tsr
4464 file. $input is the path to the file to checksum, and $sha256 is the
4465 SHA-256 checksum of the file (ie the "<sjekksum>.tsr" value mentioned
4466 above).</p>
4467
4468 <p><blockquote><pre>
4469 openssl ts -query -data "$inputfile" -cert -sha256 -no_nonce \
4470 | curl -s -H "Content-Type: application/timestamp-query" \
4471 --data-binary "@-" http://zeitstempel.dfn.de > $sha256.tsr
4472 </pre></blockquote></p>
4473
4474 <p>To verify the timestamp, you first need to download the public key
4475 of the trusted timestamp service, for example using this command:</p>
4476
4477 <p><blockquote><pre>
4478 wget -O ca-cert.txt \
4479 https://pki.pca.dfn.de/global-services-ca/pub/cacert/chain.txt
4480 </pre></blockquote></p>
4481
4482 <p>Note, the public key should be stored alongside the timestamps in
4483 the archive to make sure it is also available 100 years from now. It
4484 is probably a good idea to standardise how and were to store such
4485 public keys, to make it easier to find for those trying to verify
4486 documents 100 or 1000 years from now. :)</p>
4487
4488 <p>The verification itself is a simple openssl command:</p>
4489
4490 <p><blockquote><pre>
4491 openssl ts -verify -data $inputfile -in $sha256.tsr \
4492 -CAfile ca-cert.txt -text
4493 </pre></blockquote></p>
4494
4495 <p>Is there any reason this approach would not work? Is it somehow against
4496 the Noark 5 specification?</p>
4497
4498 </div>
4499 <div class="tags">
4500
4501
4502 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/noark5">noark5</a>, <a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>.
4503
4504
4505 </div>
4506 </div>
4507 <div class="padding"></div>
4508
4509 <div class="entry">
4510 <div class="title">
4511 <a href="http://people.skolelinux.org/pere/blog/Free_software_archive_system_Nikita_now_able_to_store_documents.html">Free software archive system Nikita now able to store documents</a>
4512 </div>
4513 <div class="date">
4514 19th March 2017
4515 </div>
4516 <div class="body">
4517 <p>The <a href="https://github.com/hiOA-ABI/nikita-noark5-core">Nikita
4518 Noark 5 core project</a> is implementing the Norwegian standard for
4519 keeping an electronic archive of government documents.
4520 <a href="http://www.arkivverket.no/arkivverket/Offentlig-forvaltning/Noark/Noark-5/English-version">The
4521 Noark 5 standard</a> document the requirement for data systems used by
4522 the archives in the Norwegian government, and the Noark 5 web interface
4523 specification document a REST web service for storing, searching and
4524 retrieving documents and metadata in such archive. I've been involved
4525 in the project since a few weeks before Christmas, when the Norwegian
4526 Unix User Group
4527 <a href="https://www.nuug.no/news/NOARK5_kjerne_som_fri_programvare_f_r_epostliste_hos_NUUG.shtml">announced
4528 it supported the project</a>. I believe this is an important project,
4529 and hope it can make it possible for the government archives in the
4530 future to use free software to keep the archives we citizens depend
4531 on. But as I do not hold such archive myself, personally my first use
4532 case is to store and analyse public mail journal metadata published
4533 from the government. I find it useful to have a clear use case in
4534 mind when developing, to make sure the system scratches one of my
4535 itches.</p>
4536
4537 <p>If you would like to help make sure there is a free software
4538 alternatives for the archives, please join our IRC channel
4539 (<a href="irc://irc.freenode.net/%23nikita">#nikita on
4540 irc.freenode.net</a>) and
4541 <a href="https://lists.nuug.no/mailman/listinfo/nikita-noark">the
4542 project mailing list</a>.</p>
4543
4544 <p>When I got involved, the web service could store metadata about
4545 documents. But a few weeks ago, a new milestone was reached when it
4546 became possible to store full text documents too. Yesterday, I
4547 completed an implementation of a command line tool
4548 <tt>archive-pdf</tt> to upload a PDF file to the archive using this
4549 API. The tool is very simple at the moment, and find existing
4550 <a href="https://en.wikipedia.org/wiki/Fonds">fonds</a>, series and
4551 files while asking the user to select which one to use if more than
4552 one exist. Once a file is identified, the PDF is associated with the
4553 file and uploaded, using the title extracted from the PDF itself. The
4554 process is fairly similar to visiting the archive, opening a cabinet,
4555 locating a file and storing a piece of paper in the archive. Here is
4556 a test run directly after populating the database with test data using
4557 our API tester:</p>
4558
4559 <p><blockquote><pre>
4560 ~/src//noark5-tester$ ./archive-pdf mangelmelding/mangler.pdf
4561 using arkiv: Title of the test fonds created 2017-03-18T23:49:32.103446
4562 using arkivdel: Title of the test series created 2017-03-18T23:49:32.103446
4563
4564 0 - Title of the test case file created 2017-03-18T23:49:32.103446
4565 1 - Title of the test file created 2017-03-18T23:49:32.103446
4566 Select which mappe you want (or search term): 0
4567 Uploading mangelmelding/mangler.pdf
4568 PDF title: Mangler i spesifikasjonsdokumentet for NOARK 5 Tjenestegrensesnitt
4569 File 2017/1: Title of the test case file created 2017-03-18T23:49:32.103446
4570 ~/src//noark5-tester$
4571 </pre></blockquote></p>
4572
4573 <p>You can see here how the fonds (arkiv) and serie (arkivdel) only had
4574 one option, while the user need to choose which file (mappe) to use
4575 among the two created by the API tester. The <tt>archive-pdf</tt>
4576 tool can be found in the git repository for the API tester.</p>
4577
4578 <p>In the project, I have been mostly working on
4579 <a href="https://github.com/petterreinholdtsen/noark5-tester">the API
4580 tester</a> so far, while getting to know the code base. The API
4581 tester currently use
4582 <a href="https://en.wikipedia.org/wiki/HATEOAS">the HATEOAS links</a>
4583 to traverse the entire exposed service API and verify that the exposed
4584 operations and objects match the specification, as well as trying to
4585 create objects holding metadata and uploading a simple XML file to
4586 store. The tester has proved very useful for finding flaws in our
4587 implementation, as well as flaws in the reference site and the
4588 specification.</p>
4589
4590 <p>The test document I uploaded is a summary of all the specification
4591 defects we have collected so far while implementing the web service.
4592 There are several unclear and conflicting parts of the specification,
4593 and we have
4594 <a href="https://github.com/petterreinholdtsen/noark5-tester/tree/master/mangelmelding">started
4595 writing down</a> the questions we get from implementing it. We use a
4596 format inspired by how <a href="http://www.opengroup.org/austin/">The
4597 Austin Group</a> collect defect reports for the POSIX standard with
4598 <a href="http://www.opengroup.org/austin/mantis.html">their
4599 instructions for the MANTIS defect tracker system</a>, in lack of an official way to structure defect reports for Noark 5 (our first submitted defect report was a <a href="https://github.com/petterreinholdtsen/noark5-tester/blob/master/mangelmelding/sendt/2017-03-15-mangel-prosess.md">request for a procedure for submitting defect reports</a> :).
4600
4601 <p>The Nikita project is implemented using Java and Spring, and is
4602 fairly easy to get up and running using Docker containers for those
4603 that want to test the current code base. The API tester is
4604 implemented in Python.</p>
4605
4606 </div>
4607 <div class="tags">
4608
4609
4610 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/noark5">noark5</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>.
4611
4612
4613 </div>
4614 </div>
4615 <div class="padding"></div>
4616
4617 <div class="entry">
4618 <div class="title">
4619 <a href="http://people.skolelinux.org/pere/blog/Detecting_NFS_hangs_on_Linux_without_hanging_yourself___.html">Detecting NFS hangs on Linux without hanging yourself...</a>
4620 </div>
4621 <div class="date">
4622 9th March 2017
4623 </div>
4624 <div class="body">
4625 <p>Over the years, administrating thousand of NFS mounting linux
4626 computers at the time, I often needed a way to detect if the machine
4627 was experiencing NFS hang. If you try to use <tt>df</tt> or look at a
4628 file or directory affected by the hang, the process (and possibly the
4629 shell) will hang too. So you want to be able to detect this without
4630 risking the detection process getting stuck too. It has not been
4631 obvious how to do this. When the hang has lasted a while, it is
4632 possible to find messages like these in dmesg:</p>
4633
4634 <p><blockquote>
4635 nfs: server nfsserver not responding, still trying
4636 <br>nfs: server nfsserver OK
4637 </blockquote></p>
4638
4639 <p>It is hard to know if the hang is still going on, and it is hard to
4640 be sure looking in dmesg is going to work. If there are lots of other
4641 messages in dmesg the lines might have rotated out of site before they
4642 are noticed.</p>
4643
4644 <p>While reading through the nfs client implementation in linux kernel
4645 code, I came across some statistics that seem to give a way to detect
4646 it. The om_timeouts sunrpc value in the kernel will increase every
4647 time the above log entry is inserted into dmesg. And after digging a
4648 bit further, I discovered that this value show up in
4649 /proc/self/mountstats on Linux.</p>
4650
4651 <p>The mountstats content seem to be shared between files using the
4652 same file system context, so it is enough to check one of the
4653 mountstats files to get the state of the mount point for the machine.
4654 I assume this will not show lazy umounted NFS points, nor NFS mount
4655 points in a different process context (ie with a different filesystem
4656 view), but that does not worry me.</p>
4657
4658 <p>The content for a NFS mount point look similar to this:</p>
4659
4660 <p><blockquote><pre>
4661 [...]
4662 device /dev/mapper/Debian-var mounted on /var with fstype ext3
4663 device nfsserver:/mnt/nfsserver/home0 mounted on /mnt/nfsserver/home0 with fstype nfs statvers=1.1
4664 opts: rw,vers=3,rsize=65536,wsize=65536,namlen=255,acregmin=3,acregmax=60,acdirmin=30,acdirmax=60,soft,nolock,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=129.240.3.145,mountvers=3,mountport=4048,mountproto=udp,local_lock=all
4665 age: 7863311
4666 caps: caps=0x3fe7,wtmult=4096,dtsize=8192,bsize=0,namlen=255
4667 sec: flavor=1,pseudoflavor=1
4668 events: 61063112 732346265 1028140 35486205 16220064 8162542 761447191 71714012 37189 3891185 45561809 110486139 4850138 420353 15449177 296502 52736725 13523379 0 52182 9016896 1231 0 0 0 0 0
4669 bytes: 166253035039 219519120027 0 0 40783504807 185466229638 11677877 45561809
4670 RPC iostats version: 1.0 p/v: 100003/3 (nfs)
4671 xprt: tcp 925 1 6810 0 0 111505412 111480497 109 2672418560317 0 248 53869103 22481820
4672 per-op statistics
4673 NULL: 0 0 0 0 0 0 0 0
4674 GETATTR: 61063106 61063108 0 9621383060 6839064400 453650 77291321 78926132
4675 SETATTR: 463469 463470 0 92005440 66739536 63787 603235 687943
4676 LOOKUP: 17021657 17021657 0 3354097764 4013442928 57216 35125459 35566511
4677 ACCESS: 14281703 14290009 5 2318400592 1713803640 1709282 4865144 7130140
4678 READLINK: 125 125 0 20472 18620 0 1112 1118
4679 READ: 4214236 4214237 0 715608524 41328653212 89884 22622768 22806693
4680 WRITE: 8479010 8494376 22 187695798568 1356087148 178264904 51506907 231671771
4681 CREATE: 171708 171708 0 38084748 46702272 873 1041833 1050398
4682 MKDIR: 3680 3680 0 773980 993920 26 23990 24245
4683 SYMLINK: 903 903 0 233428 245488 6 5865 5917
4684 MKNOD: 80 80 0 20148 21760 0 299 304
4685 REMOVE: 429921 429921 0 79796004 61908192 3313 2710416 2741636
4686 RMDIR: 3367 3367 0 645112 484848 22 5782 6002
4687 RENAME: 466201 466201 0 130026184 121212260 7075 5935207 5961288
4688 LINK: 289155 289155 0 72775556 67083960 2199 2565060 2585579
4689 READDIR: 2933237 2933237 0 516506204 13973833412 10385 3190199 3297917
4690 READDIRPLUS: 1652839 1652839 0 298640972 6895997744 84735 14307895 14448937
4691 FSSTAT: 6144 6144 0 1010516 1032192 51 9654 10022
4692 FSINFO: 2 2 0 232 328 0 1 1
4693 PATHCONF: 1 1 0 116 140 0 0 0
4694 COMMIT: 0 0 0 0 0 0 0 0
4695
4696 device binfmt_misc mounted on /proc/sys/fs/binfmt_misc with fstype binfmt_misc
4697 [...]
4698 </pre></blockquote></p>
4699
4700 <p>The key number to look at is the third number in the per-op list.
4701 It is the number of NFS timeouts experiences per file system
4702 operation. Here 22 write timeouts and 5 access timeouts. If these
4703 numbers are increasing, I believe the machine is experiencing NFS
4704 hang. Unfortunately the timeout value do not start to increase right
4705 away. The NFS operations need to time out first, and this can take a
4706 while. The exact timeout value depend on the setup. For example the
4707 defaults for TCP and UDP mount points are quite different, and the
4708 timeout value is affected by the soft, hard, timeo and retrans NFS
4709 mount options.</p>
4710
4711 <p>The only way I have been able to get working on Debian and RedHat
4712 Enterprise Linux for getting the timeout count is to peek in /proc/.
4713 But according to
4714 <ahref="http://docs.oracle.com/cd/E19253-01/816-4555/netmonitor-12/index.html">Solaris
4715 10 System Administration Guide: Network Services</a>, the 'nfsstat -c'
4716 command can be used to get these timeout values. But this do not work
4717 on Linux, as far as I can tell. I
4718 <ahref="http://bugs.debian.org/857043">asked Debian about this</a>,
4719 but have not seen any replies yet.</p>
4720
4721 <p>Is there a better way to figure out if a Linux NFS client is
4722 experiencing NFS hangs? Is there a way to detect which processes are
4723 affected? Is there a way to get the NFS mount going quickly once the
4724 network problem causing the NFS hang has been cleared? I would very
4725 much welcome some clues, as we regularly run into NFS hangs.</p>
4726
4727 </div>
4728 <div class="tags">
4729
4730
4731 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin</a>.
4732
4733
4734 </div>
4735 </div>
4736 <div class="padding"></div>
4737
4738 <div class="entry">
4739 <div class="title">
4740 <a href="http://people.skolelinux.org/pere/blog/How_does_it_feel_to_be_wiretapped__when_you_should_be_doing_the_wiretapping___.html">How does it feel to be wiretapped, when you should be doing the wiretapping...</a>
4741 </div>
4742 <div class="date">
4743 8th March 2017
4744 </div>
4745 <div class="body">
4746 <p>So the new president in the United States of America claim to be
4747 surprised to discover that he was wiretapped during the election
4748 before he was elected president. He even claim this must be illegal.
4749 Well, doh, if it is one thing the confirmations from Snowden
4750 documented, it is that the entire population in USA is wiretapped, one
4751 way or another. Of course the president candidates were wiretapped,
4752 alongside the senators, judges and the rest of the people in USA.</p>
4753
4754 <p>Next, the Federal Bureau of Investigation ask the Department of
4755 Justice to go public rejecting the claims that Donald Trump was
4756 wiretapped illegally. I fail to see the relevance, given that I am
4757 sure the surveillance industry in USA believe they have all the legal
4758 backing they need to conduct mass surveillance on the entire
4759 world.</p>
4760
4761 <p>There is even the director of the FBI stating that he never saw an
4762 order requesting wiretapping of Donald Trump. That is not very
4763 surprising, given how the FISA court work, with all its activity being
4764 secret. Perhaps he only heard about it?</p>
4765
4766 <p>What I find most sad in this story is how Norwegian journalists
4767 present it. In a news reports the other day in the radio from the
4768 Norwegian National broadcasting Company (NRK), I heard the journalist
4769 claim that 'the FBI denies any wiretapping', while the reality is that
4770 'the FBI denies any illegal wiretapping'. There is a fundamental and
4771 important difference, and it make me sad that the journalists are
4772 unable to grasp it.</p>
4773
4774 <p><strong>Update 2017-03-13:</strong> Look like
4775 <a href="https://theintercept.com/2017/03/13/rand-paul-is-right-nsa-routinely-monitors-americans-communications-without-warrants/">The
4776 Intercept report that US Senator Rand Paul confirm what I state above</a>.</p>
4777
4778 </div>
4779 <div class="tags">
4780
4781
4782 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>.
4783
4784
4785 </div>
4786 </div>
4787 <div class="padding"></div>
4788
4789 <div class="entry">
4790 <div class="title">
4791 <a href="http://people.skolelinux.org/pere/blog/Norwegian_Bokm_l_translation_of_The_Debian_Administrator_s_Handbook_complete__proofreading_in_progress.html">Norwegian Bokmål translation of The Debian Administrator's Handbook complete, proofreading in progress</a>
4792 </div>
4793 <div class="date">
4794 3rd March 2017
4795 </div>
4796 <div class="body">
4797 <p>For almost a year now, we have been working on making a Norwegian
4798 Bokmål edition of <a href="https://debian-handbook.info/">The Debian
4799 Administrator's Handbook</a>. Now, thanks to the tireless effort of
4800 Ole-Erik, Ingrid and Andreas, the initial translation is complete, and
4801 we are working on the proof reading to ensure consistent language and
4802 use of correct computer science terms. The plan is to make the book
4803 available on paper, as well as in electronic form. For that to
4804 happen, the proof reading must be completed and all the figures need
4805 to be translated. If you want to help out, get in touch.</p>
4806
4807 <p><a href="http://people.skolelinux.org/pere/debian-handbook/debian-handbook-nb-NO.pdf">A
4808
4809 fresh PDF edition</a> in A4 format (the final book will have smaller
4810 pages) of the book created every morning is available for
4811 proofreading. If you find any errors, please
4812 <a href="https://hosted.weblate.org/projects/debian-handbook/">visit
4813 Weblate and correct the error</a>. The
4814 <a href="http://l.github.io/debian-handbook/stat/nb-NO/index.html">state
4815 of the translation including figures</a> is a useful source for those
4816 provide Norwegian bokmål screen shots and figures.</p>
4817
4818 </div>
4819 <div class="tags">
4820
4821
4822 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian-handbook">debian-handbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
4823
4824
4825 </div>
4826 </div>
4827 <div class="padding"></div>
4828
4829 <div class="entry">
4830 <div class="title">
4831 <a href="http://people.skolelinux.org/pere/blog/Unlimited_randomness_with_the_ChaosKey_.html">Unlimited randomness with the ChaosKey?</a>
4832 </div>
4833 <div class="date">
4834 1st March 2017
4835 </div>
4836 <div class="body">
4837 <p>A few days ago I ordered a small batch of
4838 <a href="http://altusmetrum.org/ChaosKey/">the ChaosKey</a>, a small
4839 USB dongle for generating entropy created by Bdale Garbee and Keith
4840 Packard. Yesterday it arrived, and I am very happy to report that it
4841 work great! According to its designers, to get it to work out of the
4842 box, you need the Linux kernel version 4.1 or later. I tested on a
4843 Debian Stretch machine (kernel version 4.9), and there it worked just
4844 fine, increasing the available entropy very quickly. I wrote a small
4845 test oneliner to test. It first print the current entropy level,
4846 drain /dev/random, and then print the entropy level for five seconds.
4847 Here is the situation without the ChaosKey inserted:</p>
4848
4849 <blockquote><pre>
4850 % cat /proc/sys/kernel/random/entropy_avail; \
4851 dd bs=1M if=/dev/random of=/dev/null count=1; \
4852 for n in $(seq 1 5); do \
4853 cat /proc/sys/kernel/random/entropy_avail; \
4854 sleep 1; \
4855 done
4856 300
4857 0+1 oppføringer inn
4858 0+1 oppføringer ut
4859 28 byte kopiert, 0,000264565 s, 106 kB/s
4860 4
4861 8
4862 12
4863 17
4864 21
4865 %
4866 </pre></blockquote>
4867
4868 <p>The entropy level increases by 3-4 every second. In such case any
4869 application requiring random bits (like a HTTPS enabled web server)
4870 will halt and wait for more entrpy. And here is the situation with
4871 the ChaosKey inserted:</p>
4872
4873 <blockquote><pre>
4874 % cat /proc/sys/kernel/random/entropy_avail; \
4875 dd bs=1M if=/dev/random of=/dev/null count=1; \
4876 for n in $(seq 1 5); do \
4877 cat /proc/sys/kernel/random/entropy_avail; \
4878 sleep 1; \
4879 done
4880 1079
4881 0+1 oppføringer inn
4882 0+1 oppføringer ut
4883 104 byte kopiert, 0,000487647 s, 213 kB/s
4884 433
4885 1028
4886 1031
4887 1035
4888 1038
4889 %
4890 </pre></blockquote>
4891
4892 <p>Quite the difference. :) I bought a few more than I need, in case
4893 someone want to buy one here in Norway. :)</p>
4894
4895 <p>Update: The dongle was presented at Debconf last year. You might
4896 find <a href="https://debconf16.debconf.org/talks/94/">the talk
4897 recording illuminating</a>. It explains exactly what the source of
4898 randomness is, if you are unable to spot it from the schema drawing
4899 available from the ChaosKey web site linked at the start of this blog
4900 post.</p>
4901
4902 </div>
4903 <div class="tags">
4904
4905
4906 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>.
4907
4908
4909 </div>
4910 </div>
4911 <div class="padding"></div>
4912
4913 <div class="entry">
4914 <div class="title">
4915 <a href="http://people.skolelinux.org/pere/blog/Detect_OOXML_files_with_undefined_behaviour_.html">Detect OOXML files with undefined behaviour?</a>
4916 </div>
4917 <div class="date">
4918 21st February 2017
4919 </div>
4920 <div class="body">
4921 <p>I just noticed
4922 <a href="http://www.arkivrad.no/aktuelt/riksarkivarens-forskrift-pa-horing">the
4923 new Norwegian proposal for archiving rules in the goverment</a> list
4924 <a href="http://www.ecma-international.org/publications/standards/Ecma-376.htm">ECMA-376</a>
4925 / ISO/IEC 29500 (aka OOXML) as valid formats to put in long term
4926 storage. Luckily such files will only be accepted based on
4927 pre-approval from the National Archive. Allowing OOXML files to be
4928 used for long term storage might seem like a good idea as long as we
4929 forget that there are plenty of ways for a "valid" OOXML document to
4930 have content with no defined interpretation in the standard, which
4931 lead to a question and an idea.</p>
4932
4933 <p>Is there any tool to detect if a OOXML document depend on such
4934 undefined behaviour? It would be useful for the National Archive (and
4935 anyone else interested in verifying that a document is well defined)
4936 to have such tool available when considering to approve the use of
4937 OOXML. I'm aware of the
4938 <a href="https://github.com/arlm/officeotron/">officeotron OOXML
4939 validator</a>, but do not know how complete it is nor if it will
4940 report use of undefined behaviour. Are there other similar tools
4941 available? Please send me an email if you know of any such tool.</p>
4942
4943 </div>
4944 <div class="tags">
4945
4946
4947 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>.
4948
4949
4950 </div>
4951 </div>
4952 <div class="padding"></div>
4953
4954 <div class="entry">
4955 <div class="title">
4956 <a href="http://people.skolelinux.org/pere/blog/Ruling_ignored_our_objections_to_the_seizure_of_popcorn_time_no___domstolkontroll_.html">Ruling ignored our objections to the seizure of popcorn-time.no (#domstolkontroll)</a>
4957 </div>
4958 <div class="date">
4959 13th February 2017
4960 </div>
4961 <div class="body">
4962 <p>A few days ago, we received the ruling from
4963 <a href="http://people.skolelinux.org/pere/blog/A_day_in_court_challenging_seizure_of_popcorn_time_no_for__domstolkontroll.html">my
4964 day in court</a>. The case in question is a challenge of the seizure
4965 of the DNS domain popcorn-time.no. The ruling simply did not mention
4966 most of our arguments, and seemed to take everything ØKOKRIM said at
4967 face value, ignoring our demonstration and explanations. But it is
4968 hard to tell for sure, as we still have not seen most of the documents
4969 in the case and thus were unprepared and unable to contradict several
4970 of the claims made in court by the opposition. We are considering an
4971 appeal, but it is partly a question of funding, as it is costing us
4972 quite a bit to pay for our lawyer. If you want to help, please
4973 <a href="http://www.nuug.no/dns-beslag-donasjon.shtml">donate to the
4974 NUUG defense fund</a>.</p>
4975
4976 <p>The details of the case, as far as we know it, is available in
4977 Norwegian from
4978 <a href="https://www.nuug.no/news/tags/dns-domenebeslag/">the NUUG
4979 blog</a>. This also include
4980 <a href="https://www.nuug.no/news/Avslag_etter_rettslig_h_ring_om_DNS_beslaget___vurderer_veien_videre.shtml">the
4981 ruling itself</a>.</p>
4982
4983 </div>
4984 <div class="tags">
4985
4986
4987 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>.
4988
4989
4990 </div>
4991 </div>
4992 <div class="padding"></div>
4993
4994 <div class="entry">
4995 <div class="title">
4996 <a href="http://people.skolelinux.org/pere/blog/A_day_in_court_challenging_seizure_of_popcorn_time_no_for__domstolkontroll.html">A day in court challenging seizure of popcorn-time.no for #domstolkontroll</a>
4997 </div>
4998 <div class="date">
4999 3rd February 2017
5000 </div>
5001 <div class="body">
5002 <p align="center"><img width="70%" src="http://people.skolelinux.org/pere/blog/images/2017-02-01-popcorn-time-in-court.jpeg"></p>
5003
5004 <p>On Wednesday, I spent the entire day in court in Follo Tingrett
5005 representing <a href="https://www.nuug.no/">the member association
5006 NUUG</a>, alongside <a href="https://www.efn.no/">the member
5007 association EFN</a> and <a href="http://www.imc.no">the DNS registrar
5008 IMC</a>, challenging the seizure of the DNS name popcorn-time.no. It
5009 was interesting to sit in a court of law for the first time in my
5010 life. Our team can be seen in the picture above: attorney Ola
5011 Tellesbø, EFN board member Tom Fredrik Blenning, IMC CEO Morten Emil
5012 Eriksen and NUUG board member Petter Reinholdtsen.</p>
5013
5014 <p><a href="http://www.domstol.no/no/Enkelt-domstol/follo-tingrett/Nar-gar-rettssaken/Beramming/?cid=AAAA1701301512081262234UJFBVEZZZZZEJBAvtale">The
5015 case at hand</a> is that the Norwegian National Authority for
5016 Investigation and Prosecution of Economic and Environmental Crime (aka
5017 Økokrim) decided on their own, to seize a DNS domain early last
5018 year, without following
5019 <a href="https://www.norid.no/no/regelverk/navnepolitikk/#link12">the
5020 official policy of the Norwegian DNS authority</a> which require a
5021 court decision. The web site in question was a site covering Popcorn
5022 Time. And Popcorn Time is the name of a technology with both legal
5023 and illegal applications. Popcorn Time is a client combining
5024 searching a Bittorrent directory available on the Internet with
5025 downloading/distribute content via Bittorrent and playing the
5026 downloaded content on screen. It can be used illegally if it is used
5027 to distribute content against the will of the right holder, but it can
5028 also be used legally to play a lot of content, for example the
5029 millions of movies
5030 <a href="https://archive.org/details/movies">available from the
5031 Internet Archive</a> or the collection
5032 <a href="http://vodo.net/films/">available from Vodo</a>. We created
5033 <a href="magnet:?xt=urn:btih:86c1802af5a667ca56d3918aecb7d3c0f7173084&dn=PresentasjonFolloTingrett.mov&tr=udp%3A%2F%2Fpublic.popcorn-tracker.org%3A6969%2Fannounce">a
5034 video demonstrating legally use of Popcorn Time</a> and played it in
5035 Court. It can of course be downloaded using Bittorrent.</p>
5036
5037 <p>I did not quite know what to expect from a day in court. The
5038 government held on to their version of the story and we held on to
5039 ours, and I hope the judge is able to make sense of it all. We will
5040 know in two weeks time. Unfortunately I do not have high hopes, as
5041 the Government have the upper hand here with more knowledge about the
5042 case, better training in handling criminal law and in general higher
5043 standing in the courts than fairly unknown DNS registrar and member
5044 associations. It is expensive to be right also in Norway. So far the
5045 case have cost more than NOK 70 000,-. To help fund the case, NUUG
5046 and EFN have asked for donations, and managed to collect around NOK 25
5047 000,- so far. Given the presentation from the Government, I expect
5048 the government to appeal if the case go our way. And if the case do
5049 not go our way, I hope we have enough funding to appeal.</p>
5050
5051 <p>From the other side came two people from Økokrim. On the benches,
5052 appearing to be part of the group from the government were two people
5053 from the Simonsen Vogt Wiik lawyer office, and three others I am not
5054 quite sure who was. Økokrim had proposed to present two witnesses
5055 from The Motion Picture Association, but this was rejected because
5056 they did not speak Norwegian and it was a bit late to bring in a
5057 translator, but perhaps the two from MPA were present anyway. All
5058 seven appeared to know each other. Good to see the case is take
5059 seriously.</p>
5060
5061 <p>If you, like me, believe the courts should be involved before a DNS
5062 domain is hijacked by the government, or you believe the Popcorn Time
5063 technology have a lot of useful and legal applications, I suggest you
5064 too <a href="http://www.nuug.no/dns-beslag-donasjon.shtml">donate to
5065 the NUUG defense fund</a>. Both Bitcoin and bank transfer are
5066 available. If NUUG get more than we need for the legal action (very
5067 unlikely), the rest will be spend promoting free software, open
5068 standards and unix-like operating systems in Norway, so no matter what
5069 happens the money will be put to good use.</p>
5070
5071 <p>If you want to lean more about the case, I recommend you check out
5072 <a href="https://www.nuug.no/news/tags/dns-domenebeslag/">the blog
5073 posts from NUUG covering the case</a>. They cover the legal arguments
5074 on both sides.</p>
5075
5076 </div>
5077 <div class="tags">
5078
5079
5080 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>.
5081
5082
5083 </div>
5084 </div>
5085 <div class="padding"></div>
5086
5087 <div class="entry">
5088 <div class="title">
5089 <a href="http://people.skolelinux.org/pere/blog/Where_did_that_package_go___mdash__geolocated_IP_traceroute.html">Where did that package go? &mdash; geolocated IP traceroute</a>
5090 </div>
5091 <div class="date">
5092 9th January 2017
5093 </div>
5094 <div class="body">
5095 <p>Did you ever wonder where the web trafic really flow to reach the
5096 web servers, and who own the network equipment it is flowing through?
5097 It is possible to get a glimpse of this from using traceroute, but it
5098 is hard to find all the details. Many years ago, I wrote a system to
5099 map the Norwegian Internet (trying to figure out if our plans for a
5100 network game service would get low enough latency, and who we needed
5101 to talk to about setting up game servers close to the users. Back
5102 then I used traceroute output from many locations (I asked my friends
5103 to run a script and send me their traceroute output) to create the
5104 graph and the map. The output from traceroute typically look like
5105 this:
5106
5107 <p><pre>
5108 traceroute to www.stortinget.no (85.88.67.10), 30 hops max, 60 byte packets
5109 1 uio-gw10.uio.no (129.240.202.1) 0.447 ms 0.486 ms 0.621 ms
5110 2 uio-gw8.uio.no (129.240.24.229) 0.467 ms 0.578 ms 0.675 ms
5111 3 oslo-gw1.uninett.no (128.39.65.17) 0.385 ms 0.373 ms 0.358 ms
5112 4 te3-1-2.br1.fn3.as2116.net (193.156.90.3) 1.174 ms 1.172 ms 1.153 ms
5113 5 he16-1-1.cr1.san110.as2116.net (195.0.244.234) 2.627 ms he16-1-1.cr2.oslosda310.as2116.net (195.0.244.48) 3.172 ms he16-1-1.cr1.san110.as2116.net (195.0.244.234) 2.857 ms
5114 6 ae1.ar8.oslosda310.as2116.net (195.0.242.39) 0.662 ms 0.637 ms ae0.ar8.oslosda310.as2116.net (195.0.242.23) 0.622 ms
5115 7 89.191.10.146 (89.191.10.146) 0.931 ms 0.917 ms 0.955 ms
5116 8 * * *
5117 9 * * *
5118 [...]
5119 </pre></p>
5120
5121 <p>This show the DNS names and IP addresses of (at least some of the)
5122 network equipment involved in getting the data traffic from me to the
5123 www.stortinget.no server, and how long it took in milliseconds for a
5124 package to reach the equipment and return to me. Three packages are
5125 sent, and some times the packages do not follow the same path. This
5126 is shown for hop 5, where three different IP addresses replied to the
5127 traceroute request.</p>
5128
5129 <p>There are many ways to measure trace routes. Other good traceroute
5130 implementations I use are traceroute (using ICMP packages) mtr (can do
5131 both ICMP, UDP and TCP) and scapy (python library with ICMP, UDP, TCP
5132 traceroute and a lot of other capabilities). All of them are easily
5133 available in <a href="https://www.debian.org/">Debian</a>.</p>
5134
5135 <p>This time around, I wanted to know the geographic location of
5136 different route points, to visualize how visiting a web page spread
5137 information about the visit to a lot of servers around the globe. The
5138 background is that a web site today often will ask the browser to get
5139 from many servers the parts (for example HTML, JSON, fonts,
5140 JavaScript, CSS, video) required to display the content. This will
5141 leak information about the visit to those controlling these servers
5142 and anyone able to peek at the data traffic passing by (like your ISP,
5143 the ISPs backbone provider, FRA, GCHQ, NSA and others).</p>
5144
5145 <p>Lets pick an example, the Norwegian parliament web site
5146 www.stortinget.no. It is read daily by all members of parliament and
5147 their staff, as well as political journalists, activits and many other
5148 citizens of Norway. A visit to the www.stortinget.no web site will
5149 ask your browser to contact 8 other servers: ajax.googleapis.com,
5150 insights.hotjar.com, script.hotjar.com, static.hotjar.com,
5151 stats.g.doubleclick.net, www.google-analytics.com,
5152 www.googletagmanager.com and www.netigate.se. I extracted this by
5153 asking <a href="http://phantomjs.org/">PhantomJS</a> to visit the
5154 Stortinget web page and tell me all the URLs PhantomJS downloaded to
5155 render the page (in HAR format using
5156 <a href="https://github.com/ariya/phantomjs/blob/master/examples/netsniff.js">their
5157 netsniff example</a>. I am very grateful to Gorm for showing me how
5158 to do this). My goal is to visualize network traces to all IP
5159 addresses behind these DNS names, do show where visitors personal
5160 information is spread when visiting the page.</p>
5161
5162 <p align="center"><a href="www.stortinget.no-geoip.kml"><img
5163 src="http://people.skolelinux.org/pere/blog/images/2017-01-09-www.stortinget.no-geoip-small.png" alt="map of combined traces for URLs used by www.stortinget.no using GeoIP"/></a></p>
5164
5165 <p>When I had a look around for options, I could not find any good
5166 free software tools to do this, and decided I needed my own traceroute
5167 wrapper outputting KML based on locations looked up using GeoIP. KML
5168 is easy to work with and easy to generate, and understood by several
5169 of the GIS tools I have available. I got good help from by NUUG
5170 colleague Anders Einar with this, and the result can be seen in
5171 <a href="https://github.com/petterreinholdtsen/kmltraceroute">my
5172 kmltraceroute git repository</a>. Unfortunately, the quality of the
5173 free GeoIP databases I could find (and the for-pay databases my
5174 friends had access to) is not up to the task. The IP addresses of
5175 central Internet infrastructure would typically be placed near the
5176 controlling companies main office, and not where the router is really
5177 located, as you can see from <a href="www.stortinget.no-geoip.kml">the
5178 KML file I created</a> using the GeoLite City dataset from MaxMind.
5179
5180 <p align="center"><a href="http://people.skolelinux.org/pere/blog/images/2017-01-09-www.stortinget.no-scapy.svg"><img
5181 src="http://people.skolelinux.org/pere/blog/images/2017-01-09-www.stortinget.no-scapy-small.png" alt="scapy traceroute graph for URLs used by www.stortinget.no"/></a></p>
5182
5183 <p>I also had a look at the visual traceroute graph created by
5184 <a href="http://www.secdev.org/projects/scapy/">the scrapy project</a>,
5185 showing IP network ownership (aka AS owner) for the IP address in
5186 question.
5187 <a href="http://people.skolelinux.org/pere/blog/images/2017-01-09-www.stortinget.no-scapy.svg">The
5188 graph display a lot of useful information about the traceroute in SVG
5189 format</a>, and give a good indication on who control the network
5190 equipment involved, but it do not include geolocation. This graph
5191 make it possible to see the information is made available at least for
5192 UNINETT, Catchcom, Stortinget, Nordunet, Google, Amazon, Telia, Level
5193 3 Communications and NetDNA.</p>
5194
5195 <p align="center"><a href="https://geotraceroute.com/index.php?node=4&host=www.stortinget.no"><img
5196 src="http://people.skolelinux.org/pere/blog/images/2017-01-09-www.stortinget.no-geotraceroute-small.png" alt="example geotraceroute view for www.stortinget.no"/></a></p>
5197
5198 <p>In the process, I came across the
5199 <a href="https://geotraceroute.com/">web service GeoTraceroute</a> by
5200 Salim Gasmi. Its methology of combining guesses based on DNS names,
5201 various location databases and finally use latecy times to rule out
5202 candidate locations seemed to do a very good job of guessing correct
5203 geolocation. But it could only do one trace at the time, did not have
5204 a sensor in Norway and did not make the geolocations easily available
5205 for postprocessing. So I contacted the developer and asked if he
5206 would be willing to share the code (he refused until he had time to
5207 clean it up), but he was interested in providing the geolocations in a
5208 machine readable format, and willing to set up a sensor in Norway. So
5209 since yesterday, it is possible to run traces from Norway in this
5210 service thanks to a sensor node set up by
5211 <a href="https://www.nuug.no/">the NUUG assosiation</a>, and get the
5212 trace in KML format for further processing.</p>
5213
5214 <p align="center"><a href="http://people.skolelinux.org/pere/blog/images/2017-01-09-www.stortinget.no-geotraceroute-kml-join.kml"><img
5215 src="http://people.skolelinux.org/pere/blog/images/2017-01-09-www.stortinget.no-geotraceroute-kml-join.png" alt="map of combined traces for URLs used by www.stortinget.no using geotraceroute"/></a></p>
5216
5217 <p>Here we can see a lot of trafic passes Sweden on its way to
5218 Denmark, Germany, Holland and Ireland. Plenty of places where the
5219 Snowden confirmations verified the traffic is read by various actors
5220 without your best interest as their top priority.</p>
5221
5222 <p>Combining KML files is trivial using a text editor, so I could loop
5223 over all the hosts behind the urls imported by www.stortinget.no and
5224 ask for the KML file from GeoTraceroute, and create a combined KML
5225 file with all the traces (unfortunately only one of the IP addresses
5226 behind the DNS name is traced this time. To get them all, one would
5227 have to request traces using IP number instead of DNS names from
5228 GeoTraceroute). That might be the next step in this project.</p>
5229
5230 <p>Armed with these tools, I find it a lot easier to figure out where
5231 the IP traffic moves and who control the boxes involved in moving it.
5232 And every time the link crosses for example the Swedish border, we can
5233 be sure Swedish Signal Intelligence (FRA) is listening, as GCHQ do in
5234 Britain and NSA in USA and cables around the globe. (Hm, what should
5235 we tell them? :) Keep that in mind if you ever send anything
5236 unencrypted over the Internet.</p>
5237
5238 <p>PS: KML files are drawn using
5239 <a href="http://ivanrublev.me/kml/">the KML viewer from Ivan
5240 Rublev<a/>, as it was less cluttered than the local Linux application
5241 Marble. There are heaps of other options too.</p>
5242
5243 <p>As usual, if you use Bitcoin and want to show your support of my
5244 activities, please send Bitcoin donations to my address
5245 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
5246
5247 </div>
5248 <div class="tags">
5249
5250
5251 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/kart">kart</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</a>.
5252
5253
5254 </div>
5255 </div>
5256 <div class="padding"></div>
5257
5258 <div class="entry">
5259 <div class="title">
5260 <a href="http://people.skolelinux.org/pere/blog/Introducing_ical_archiver_to_split_out_old_iCalendar_entries.html">Introducing ical-archiver to split out old iCalendar entries</a>
5261 </div>
5262 <div class="date">
5263 4th January 2017
5264 </div>
5265 <div class="body">
5266 <p>Do you have a large <a href="https://icalendar.org/">iCalendar</a>
5267 file with lots of old entries, and would like to archive them to save
5268 space and resources? At least those of us using KOrganizer know that
5269 turning on and off an event set become slower and slower the more
5270 entries are in the set. While working on migrating our calendars to a
5271 <a href="http://radicale.org/">Radicale CalDAV server</a> on our
5272 <a href="https://freedomboxfoundation.org/">Freedombox server</a/>, my
5273 loved one wondered if I could find a way to split up the calendar file
5274 she had in KOrganizer, and I set out to write a tool. I spent a few
5275 days writing and polishing the system, and it is now ready for general
5276 consumption. The
5277 <a href="https://github.com/petterreinholdtsen/ical-archiver">code for
5278 ical-archiver</a> is publicly available from a git repository on
5279 github. The system is written in Python and depend on
5280 <a href="http://eventable.github.io/vobject/">the vobject Python
5281 module</a>.</p>
5282
5283 <p>To use it, locate the iCalendar file you want to operate on and
5284 give it as an argument to the ical-archiver script. This will
5285 generate a set of new files, one file per component type per year for
5286 all components expiring more than two years in the past. The vevent,
5287 vtodo and vjournal entries are handled by the script. The remaining
5288 entries are stored in a 'remaining' file.</p>
5289
5290 <p>This is what a test run can look like:
5291
5292 <p><pre>
5293 % ical-archiver t/2004-2016.ics
5294 Found 3612 vevents
5295 Found 6 vtodos
5296 Found 2 vjournals
5297 Writing t/2004-2016.ics-subset-vevent-2004.ics
5298 Writing t/2004-2016.ics-subset-vevent-2005.ics
5299 Writing t/2004-2016.ics-subset-vevent-2006.ics
5300 Writing t/2004-2016.ics-subset-vevent-2007.ics
5301 Writing t/2004-2016.ics-subset-vevent-2008.ics
5302 Writing t/2004-2016.ics-subset-vevent-2009.ics
5303 Writing t/2004-2016.ics-subset-vevent-2010.ics
5304 Writing t/2004-2016.ics-subset-vevent-2011.ics
5305 Writing t/2004-2016.ics-subset-vevent-2012.ics
5306 Writing t/2004-2016.ics-subset-vevent-2013.ics
5307 Writing t/2004-2016.ics-subset-vevent-2014.ics
5308 Writing t/2004-2016.ics-subset-vjournal-2007.ics
5309 Writing t/2004-2016.ics-subset-vjournal-2011.ics
5310 Writing t/2004-2016.ics-subset-vtodo-2012.ics
5311 Writing t/2004-2016.ics-remaining.ics
5312 %
5313 </pre></p>
5314
5315 <p>As you can see, the original file is untouched and new files are
5316 written with names derived from the original file. If you are happy
5317 with their content, the *-remaining.ics file can replace the original
5318 the the others can be archived or imported as historical calendar
5319 collections.</p>
5320
5321 <p>The script should probably be improved a bit. The error handling
5322 when discovering broken entries is not good, and I am not sure yet if
5323 it make sense to split different entry types into separate files or
5324 not. The program is thus likely to change. If you find it
5325 interesting, please get in touch. :)</p>
5326
5327 <p>As usual, if you use Bitcoin and want to show your support of my
5328 activities, please send Bitcoin donations to my address
5329 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
5330
5331 </div>
5332 <div class="tags">
5333
5334
5335 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>.
5336
5337
5338 </div>
5339 </div>
5340 <div class="padding"></div>
5341
5342 <div class="entry">
5343 <div class="title">
5344 <a href="http://people.skolelinux.org/pere/blog/Appstream_just_learned_how_to_map_hardware_to_packages_too_.html">Appstream just learned how to map hardware to packages too!</a>
5345 </div>
5346 <div class="date">
5347 23rd December 2016
5348 </div>
5349 <div class="body">
5350 <p>I received a very nice Christmas present today. As my regular
5351 readers probably know, I have been working on the
5352 <a href="http://packages.qa.debian.org/isenkram">the Isenkram
5353 system</a> for many years. The goal of the Isenkram system is to make
5354 it easier for users to figure out what to install to get a given piece
5355 of hardware to work in Debian, and a key part of this system is a way
5356 to map hardware to packages. Isenkram have its own mapping database,
5357 and also uses data provided by each package using the AppStream
5358 metadata format. And today,
5359 <a href="https://tracker.debian.org/pkg/appstream">AppStream</a> in
5360 Debian learned to look up hardware the same way Isenkram is doing it,
5361 ie using fnmatch():</p>
5362
5363 <p><pre>
5364 % appstreamcli what-provides modalias \
5365 usb:v1130p0202d0100dc00dsc00dp00ic03isc00ip00in00
5366 Identifier: pymissile [generic]
5367 Name: pymissile
5368 Summary: Control original Striker USB Missile Launcher
5369 Package: pymissile
5370 % appstreamcli what-provides modalias usb:v0694p0002d0000
5371 Identifier: libnxt [generic]
5372 Name: libnxt
5373 Summary: utility library for talking to the LEGO Mindstorms NXT brick
5374 Package: libnxt
5375 ---
5376 Identifier: t2n [generic]
5377 Name: t2n
5378 Summary: Simple command-line tool for Lego NXT
5379 Package: t2n
5380 ---
5381 Identifier: python-nxt [generic]
5382 Name: python-nxt
5383 Summary: Python driver/interface/wrapper for the Lego Mindstorms NXT robot
5384 Package: python-nxt
5385 ---
5386 Identifier: nbc [generic]
5387 Name: nbc
5388 Summary: C compiler for LEGO Mindstorms NXT bricks
5389 Package: nbc
5390 %
5391 </pre></p>
5392
5393 <p>A similar query can be done using the combined AppStream and
5394 Isenkram databases using the isenkram-lookup tool:</p>
5395
5396 <p><pre>
5397 % isenkram-lookup usb:v1130p0202d0100dc00dsc00dp00ic03isc00ip00in00
5398 pymissile
5399 % isenkram-lookup usb:v0694p0002d0000
5400 libnxt
5401 nbc
5402 python-nxt
5403 t2n
5404 %
5405 </pre></p>
5406
5407 <p>You can find modalias values relevant for your machine using
5408 <tt>cat $(find /sys/devices/ -name modalias)</tt>.
5409
5410 <p>If you want to make this system a success and help Debian users
5411 make the most of the hardware they have, please
5412 help<a href="https://wiki.debian.org/AppStream/Guidelines">add
5413 AppStream metadata for your package following the guidelines</a>
5414 documented in the wiki. So far only 11 packages provide such
5415 information, among the several hundred hardware specific packages in
5416 Debian. The Isenkram database on the other hand contain 101 packages,
5417 mostly related to USB dongles. Most of the packages with hardware
5418 mapping in AppStream are LEGO Mindstorms related, because I have, as
5419 part of my involvement in
5420 <a href="https://wiki.debian.org/LegoDesigners">the Debian LEGO
5421 team</a> given priority to making sure LEGO users get proposed the
5422 complete set of packages in Debian for that particular hardware. The
5423 team also got a nice Christmas present today. The
5424 <a href="https://tracker.debian.org/pkg/nxt-firmware">nxt-firmware
5425 package</a> made it into Debian. With this package in place, it is
5426 now possible to use the LEGO Mindstorms NXT unit with only free
5427 software, as the nxt-firmware package contain the source and firmware
5428 binaries for the NXT brick.</p>
5429
5430 <p>As usual, if you use Bitcoin and want to show your support of my
5431 activities, please send Bitcoin donations to my address
5432 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
5433
5434 </div>
5435 <div class="tags">
5436
5437
5438 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram</a>.
5439
5440
5441 </div>
5442 </div>
5443 <div class="padding"></div>
5444
5445 <div class="entry">
5446 <div class="title">
5447 <a href="http://people.skolelinux.org/pere/blog/Isenkram_updated_with_a_lot_more_hardware_package_mappings.html">Isenkram updated with a lot more hardware-package mappings</a>
5448 </div>
5449 <div class="date">
5450 20th December 2016
5451 </div>
5452 <div class="body">
5453 <p><a href="http://packages.qa.debian.org/isenkram">The Isenkram
5454 system</a> I wrote two years ago to make it easier in Debian to find
5455 and install packages to get your hardware dongles to work, is still
5456 going strong. It is a system to look up the hardware present on or
5457 connected to the current system, and map the hardware to Debian
5458 packages. It can either be done using the tools in isenkram-cli or
5459 using the user space daemon in the isenkram package. The latter will
5460 notify you, when inserting new hardware, about what packages to
5461 install to get the dongle working. It will even provide a button to
5462 click on to ask packagekit to install the packages.</p>
5463
5464 <p>Here is an command line example from my Thinkpad laptop:</p>
5465
5466 <p><pre>
5467 % isenkram-lookup
5468 bluez
5469 cheese
5470 ethtool
5471 fprintd
5472 fprintd-demo
5473 gkrellm-thinkbat
5474 hdapsd
5475 libpam-fprintd
5476 pidgin-blinklight
5477 thinkfan
5478 tlp
5479 tp-smapi-dkms
5480 tp-smapi-source
5481 tpb
5482 %
5483 </pre></p>
5484
5485 <p>It can also list the firware package providing firmware requested
5486 by the load kernel modules, which in my case is an empty list because
5487 I have all the firmware my machine need:
5488
5489 <p><pre>
5490 % /usr/sbin/isenkram-autoinstall-firmware -l
5491 info: did not find any firmware files requested by loaded kernel modules. exiting
5492 %
5493 </pre></p>
5494
5495 <p>The last few days I had a look at several of the around 250
5496 packages in Debian with udev rules. These seem like good candidates
5497 to install when a given hardware dongle is inserted, and I found
5498 several that should be proposed by isenkram. I have not had time to
5499 check all of them, but am happy to report that now there are 97
5500 packages packages mapped to hardware by Isenkram. 11 of these
5501 packages provide hardware mapping using AppStream, while the rest are
5502 listed in the modaliases file provided in isenkram.</p>
5503
5504 <p>These are the packages with hardware mappings at the moment. The
5505 <strong>marked packages</strong> are also announcing their hardware
5506 support using AppStream, for everyone to use:</p>
5507
5508 <p>air-quality-sensor, alsa-firmware-loaders, argyll,
5509 <strong>array-info</strong>, avarice, avrdude, b43-fwcutter,
5510 bit-babbler, bluez, bluez-firmware, <strong>brltty</strong>,
5511 <strong>broadcom-sta-dkms</strong>, calibre, cgminer, cheese, colord,
5512 <strong>colorhug-client</strong>, dahdi-firmware-nonfree, dahdi-linux,
5513 dfu-util, dolphin-emu, ekeyd, ethtool, firmware-ipw2x00, fprintd,
5514 fprintd-demo, <strong>galileo</strong>, gkrellm-thinkbat, gphoto2,
5515 gpsbabel, gpsbabel-gui, gpsman, gpstrans, gqrx-sdr, gr-fcdproplus,
5516 gr-osmosdr, gtkpod, hackrf, hdapsd, hdmi2usb-udev, hpijs-ppds, hplip,
5517 ipw3945-source, ipw3945d, kde-config-tablet, kinect-audio-setup,
5518 <strong>libnxt</strong>, libpam-fprintd, <strong>lomoco</strong>,
5519 madwimax, minidisc-utils, mkgmap, msi-keyboard, mtkbabel,
5520 <strong>nbc</strong>, <strong>nqc</strong>, nut-hal-drivers, ola,
5521 open-vm-toolbox, open-vm-tools, openambit, pcgminer, pcmciautils,
5522 pcscd, pidgin-blinklight, printer-driver-splix,
5523 <strong>pymissile</strong>, python-nxt, qlandkartegt,
5524 qlandkartegt-garmin, rosegarden, rt2x00-source, sispmctl,
5525 soapysdr-module-hackrf, solaar, squeak-plugins-scratch, sunxi-tools,
5526 <strong>t2n</strong>, thinkfan, thinkfinger-tools, tlp, tp-smapi-dkms,
5527 tp-smapi-source, tpb, tucnak, uhd-host, usbmuxd, viking,
5528 virtualbox-ose-guest-x11, w1retap, xawtv, xserver-xorg-input-vmmouse,
5529 xserver-xorg-input-wacom, xserver-xorg-video-qxl,
5530 xserver-xorg-video-vmware, yubikey-personalization and
5531 zd1211-firmware</p>
5532
5533 <p>If you know of other packages, please let me know with a wishlist
5534 bug report against the isenkram-cli package, and ask the package
5535 maintainer to
5536 <a href="https://wiki.debian.org/AppStream/Guidelines">add AppStream
5537 metadata according to the guidelines</a> to provide the information
5538 for everyone. In time, I hope to get rid of the isenkram specific
5539 hardware mapping and depend exclusively on AppStream.</p>
5540
5541 <p>Note, the AppStream metadata for broadcom-sta-dkms is matching too
5542 much hardware, and suggest that the package with with any ethernet
5543 card. See <a href="http://bugs.debian.org/838735">bug #838735</a> for
5544 the details. I hope the maintainer find time to address it soon. In
5545 the mean time I provide an override in isenkram.</p>
5546
5547 </div>
5548 <div class="tags">
5549
5550
5551 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram</a>.
5552
5553
5554 </div>
5555 </div>
5556 <div class="padding"></div>
5557
5558 <div class="entry">
5559 <div class="title">
5560 <a href="http://people.skolelinux.org/pere/blog/Oolite__a_life_in_space_as_vagabond_and_mercenary___nice_free_software.html">Oolite, a life in space as vagabond and mercenary - nice free software</a>
5561 </div>
5562 <div class="date">
5563 11th December 2016
5564 </div>
5565 <div class="body">
5566 <p align="center"><img width="70%" src="http://people.skolelinux.org/pere/blog/images/2016-12-11-nice-oolite.png"/></p>
5567
5568 <p>In my early years, I played
5569 <a href="http://wiki.alioth.net/index.php/Classic_Elite">the epic game
5570 Elite</a> on my PC. I spent many months trading and fighting in
5571 space, and reached the 'elite' fighting status before I moved on. The
5572 original Elite game was available on Commodore 64 and the IBM PC
5573 edition I played had a 64 KB executable. I am still impressed today
5574 that the authors managed to squeeze both a 3D engine and details about
5575 more than 2000 planet systems across 7 galaxies into a binary so
5576 small.</p>
5577
5578 <p>I have known about <a href="http://www.oolite.org/">the free
5579 software game Oolite inspired by Elite</a> for a while, but did not
5580 really have time to test it properly until a few days ago. It was
5581 great to discover that my old knowledge about trading routes were
5582 still valid. But my fighting and flying abilities were gone, so I had
5583 to retrain to be able to dock on a space station. And I am still not
5584 able to make much resistance when I am attacked by pirates, so I
5585 bougth and mounted the most powerful laser in the rear to be able to
5586 put up at least some resistance while fleeing for my life. :)</p>
5587
5588 <p>When playing Elite in the late eighties, I had to discover
5589 everything on my own, and I had long lists of prices seen on different
5590 planets to be able to decide where to trade what. This time I had the
5591 advantages of the
5592 <a href="http://wiki.alioth.net/index.php/Main_Page">Elite wiki</a>,
5593 where information about each planet is easily available with common
5594 price ranges and suggested trading routes. This improved my ability
5595 to earn money and I have been able to earn enough to buy a lot of
5596 useful equipent in a few days. I believe I originally played for
5597 months before I could get a docking computer, while now I could get it
5598 after less then a week.</p>
5599
5600 <p>If you like science fiction and dreamed of a life as a vagabond in
5601 space, you should try out Oolite. It is available for Linux, MacOSX
5602 and Windows, and is included in Debian and derivatives since 2011.</p>
5603
5604 <p>As usual, if you use Bitcoin and want to show your support of my
5605 activities, please send Bitcoin donations to my address
5606 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
5607
5608 </div>
5609 <div class="tags">
5610
5611
5612 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software</a>.
5613
5614
5615 </div>
5616 </div>
5617 <div class="padding"></div>
5618
5619 <div class="entry">
5620 <div class="title">
5621 <a href="http://people.skolelinux.org/pere/blog/Quicker_Debian_installations_using_eatmydata.html">Quicker Debian installations using eatmydata</a>
5622 </div>
5623 <div class="date">
5624 25th November 2016
5625 </div>
5626 <div class="body">
5627 <p>Two years ago, I did some experiments with eatmydata and the Debian
5628 installation system, observing how using
5629 <a href="http://people.skolelinux.org/pere/blog/Speeding_up_the_Debian_installer_using_eatmydata_and_dpkg_divert.html">eatmydata
5630 could speed up the installation</a> quite a bit. My testing measured
5631 speedup around 20-40 percent for Debian Edu, where we install around
5632 1000 packages from within the installer. The eatmydata package
5633 provide a way to disable/delay file system flushing. This is a bit
5634 risky in the general case, as files that should be stored on disk will
5635 stay only in memory a bit longer than expected, causing problems if a
5636 machine crashes at an inconvenient time. But for an installation, if
5637 the machine crashes during installation the process is normally
5638 restarted, and avoiding disk operations as much as possible to speed
5639 up the process make perfect sense.
5640
5641 <p>I added code in the Debian Edu specific installation code to enable
5642 <a href="https://tracker.debian.org/pkg/libeatmydata">eatmydata</a>,
5643 but did not have time to push it any further. But a few months ago I
5644 picked it up again and worked with the libeatmydata package maintainer
5645 Mattia Rizzolo to make it easier for everyone to get this installation
5646 speedup in Debian. Thanks to our cooperation There is now an
5647 eatmydata-udeb package in Debian testing and unstable, and simply
5648 enabling/installing it in debian-installer (d-i) is enough to get the
5649 quicker installations. It can be enabled using preseeding. The
5650 following untested kernel argument should do the trick:</p>
5651
5652 <blockquote><pre>
5653 preseed/early_command="anna-install eatmydata-udeb"
5654 </pre></blockquote>
5655
5656 <p>This should ask d-i to install the package inside the d-i
5657 environment early in the installation sequence. Having it installed
5658 in d-i in turn will make sure the relevant scripts are called just
5659 after debootstrap filled /target/ with the freshly installed Debian
5660 system to configure apt to run dpkg with eatmydata. This is enough to
5661 speed up the installation process. There is a proposal to
5662 <a href="https://bugs.debian.org/841153">extend the idea a bit further
5663 by using /etc/ld.so.preload instead of apt.conf</a>, but I have not
5664 tested its impact.</p>
5665
5666
5667 </div>
5668 <div class="tags">
5669
5670
5671 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>.
5672
5673
5674 </div>
5675 </div>
5676 <div class="padding"></div>
5677
5678 <div class="entry">
5679 <div class="title">
5680 <a href="http://people.skolelinux.org/pere/blog/Coz_profiler_for_multi_threaded_software_is_now_in_Debian.html">Coz profiler for multi-threaded software is now in Debian</a>
5681 </div>
5682 <div class="date">
5683 13th November 2016
5684 </div>
5685 <div class="body">
5686 <p><a href="http://coz-profiler.org/">The Coz profiler</a>, a nice
5687 profiler able to run benchmarking experiments on the instrumented
5688 multi-threaded program, finally
5689 <a href="https://tracker.debian.org/pkg/coz-profiler">made it into
5690 Debian unstable yesterday</A>. Lluís Vilanova and I have spent many
5691 months since
5692 <a href="http://people.skolelinux.org/pere/blog/Coz_can_help_you_find_bottlenecks_in_multi_threaded_software___nice_free_software.html">I
5693 blogged about the coz tool</a> in August working with upstream to make
5694 it suitable for Debian. There are still issues with clang
5695 compatibility, inline assembly only working x86 and minimized
5696 JavaScript libraries.</p>
5697
5698 <p>To test it, install 'coz-profiler' using apt and run it like this:</p>
5699
5700 <p><blockquote>
5701 <tt>coz run --- /path/to/binary-with-debug-info</tt>
5702 </blockquote></p>
5703
5704 <p>This will produce a profile.coz file in the current working
5705 directory with the profiling information. This is then given to a
5706 JavaScript application provided in the package and available from
5707 <a href="http://plasma-umass.github.io/coz/">a project web page</a>.
5708 To start the local copy, invoke it in a browser like this:</p>
5709
5710 <p><blockquote>
5711 <tt>sensible-browser /usr/share/coz-profiler/viewer/index.htm</tt>
5712 </blockquote></p>
5713
5714 <p>See the project home page and the
5715 <a href="https://www.usenix.org/publications/login/summer2016/curtsinger">USENIX
5716 ;login: article on Coz</a> for more information on how it is
5717 working.</p>
5718
5719 </div>
5720 <div class="tags">
5721
5722
5723 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>.
5724
5725
5726 </div>
5727 </div>
5728 <div class="padding"></div>
5729
5730 <div class="entry">
5731 <div class="title">
5732 <a href="http://people.skolelinux.org/pere/blog/How_to_talk_with_your_loved_ones_in_private.html">How to talk with your loved ones in private</a>
5733 </div>
5734 <div class="date">
5735 7th November 2016
5736 </div>
5737 <div class="body">
5738 <p>A few days ago I ran a very biased and informal survey to get an
5739 idea about what options are being used to communicate with end to end
5740 encryption with friends and family. I explicitly asked people not to
5741 list options only used in a work setting. The background is the
5742 uneasy feeling I get when using Signal, a feeling shared by others as
5743 a blog post from Sander Venima about
5744 <a href="https://sandervenema.ch/2016/11/why-i-wont-recommend-signal-anymore/">why
5745 he do not recommend Signal anymore</a> (with
5746 <a href="https://news.ycombinator.com/item?id=12883410">feedback from
5747 the Signal author available from ycombinator</a>). I wanted an
5748 overview of the options being used, and hope to include those options
5749 in a less biased survey later on. So far I have not taken the time to
5750 look into the individual proposed systems. They range from text
5751 sharing web pages, via file sharing and email to instant messaging,
5752 VOIP and video conferencing. For those considering which system to
5753 use, it is also useful to have a look at
5754 <a href="https://www.eff.org/secure-messaging-scorecard">the EFF Secure
5755 messaging scorecard</a> which is slightly out of date but still
5756 provide valuable information.</p>
5757
5758 <p>So, on to the list. There were some used by many, some used by a
5759 few, some rarely used ones and a few mentioned but without anyone
5760 claiming to use them. Notice the grouping is in reality quite random
5761 given the biased self selected set of participants. First the ones
5762 used by many:</p>
5763
5764 <ul>
5765
5766 <li><a href="https://whispersystems.org/">Signal</a></li>
5767 <li>Email w/<a href="http://openpgp.org/">OpenPGP</a> (Enigmail, GPGSuite,etc)</li>
5768 <li><a href="https://www.whatsapp.com/">Whatsapp</a></li>
5769 <li>IRC w/<a href="https://otr.cypherpunks.ca/">OTR</a></li>
5770 <li>XMPP w/<a href="https://otr.cypherpunks.ca/">OTR</a></li>
5771
5772 </ul>
5773
5774 <p>Then the ones used by a few.</p>
5775
5776 <ul>
5777
5778 <li><a href="https://wiki.mumble.info/wiki/Main_Page">Mumble</a></li>
5779 <li>iMessage (included in iOS from Apple)</li>
5780 <li><a href="https://telegram.org/">Telegram</a></li>
5781 <li><a href="https://jitsi.org/">Jitsi</a></li>
5782 <li><a href="https://keybase.io/download">Keybase file</a></li>
5783
5784 </ul>
5785
5786 <p>Then the ones used by even fewer people</p>
5787
5788 <ul>
5789
5790 <li><a href="https://ring.cx/">Ring</a></li>
5791 <li><a href="https://bitmessage.org/">Bitmessage</a></li>
5792 <li><a href="https://wire.com/">Wire</a></li>
5793 <li>VoIP w/<a href="https://en.wikipedia.org/wiki/ZRTP">ZRTP</a> or controlled <a href="https://en.wikipedia.org/wiki/Secure_Real-time_Transport_Protocol">SRTP</a> (e.g using <a href="https://en.wikipedia.org/wiki/CSipSimple">CSipSimple</a>, <a href="https://en.wikipedia.org/wiki/Linphone">Linphone</a>)</li>
5794 <li><a href="https://matrix.org/">Matrix</a></li>
5795 <li><a href="https://kontalk.org/">Kontalk</a></li>
5796 <li><a href="https://0bin.net/">0bin</a> (encrypted pastebin)</li>
5797 <li><a href="https://appear.in">Appear.in</a></li>
5798 <li><a href="https://riot.im/">riot</a></li>
5799 <li><a href="https://www.wickr.com/">Wickr Me</a></li>
5800
5801 </ul>
5802
5803 <p>And finally the ones mentioned by not marked as used by
5804 anyone. This might be a mistake, perhaps the person adding the entry
5805 forgot to flag it as used?</p>
5806
5807 <ul>
5808
5809 <li>Email w/Certificates <a href="https://en.wikipedia.org/wiki/S/MIME">S/MIME</a></li>
5810 <li><a href="https://www.crypho.com/">Crypho</a></li>
5811 <li><a href="https://cryptpad.fr/">CryptPad</a></li>
5812 <li><a href="https://github.com/ricochet-im/ricochet">ricochet</a></li>
5813
5814 </ul>
5815
5816 <p>Given the network effect it seem obvious to me that we as a society
5817 have been divided and conquered by those interested in keeping
5818 encrypted and secure communication away from the masses. The
5819 finishing remarks <a href="https://vimeo.com/97505679">from Aral Balkan
5820 in his talk "Free is a lie"</a> about the usability of free software
5821 really come into effect when you want to communicate in private with
5822 your friends and family. We can not expect them to allow the
5823 usability of communication tool to block their ability to talk to
5824 their loved ones.</p>
5825
5826 <p>Note for example the option IRC w/OTR. Most IRC clients do not
5827 have OTR support, so in most cases OTR would not be an option, even if
5828 you wanted to. In my personal experience, about 1 in 20 I talk to
5829 have a IRC client with OTR. For private communication to really be
5830 available, most people to talk to must have the option in their
5831 currently used client. I can not simply ask my family to install an
5832 IRC client. I need to guide them through a technical multi-step
5833 process of adding extensions to the client to get them going. This is
5834 a non-starter for most.</p>
5835
5836 <p>I would like to be able to do video phone calls, audio phone calls,
5837 exchange instant messages and share files with my loved ones, without
5838 being forced to share with people I do not know. I do not want to
5839 share the content of the conversations, and I do not want to share who
5840 I communicate with or the fact that I communicate with someone.
5841 Without all these factors in place, my private life is being more or
5842 less invaded.</p>
5843
5844 </div>
5845 <div class="tags">
5846
5847
5848 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>.
5849
5850
5851 </div>
5852 </div>
5853 <div class="padding"></div>
5854
5855 <div class="entry">
5856 <div class="title">
5857 <a href="http://people.skolelinux.org/pere/blog/My_own_self_balancing_Lego_Segway.html">My own self balancing Lego Segway</a>
5858 </div>
5859 <div class="date">
5860 4th November 2016
5861 </div>
5862 <div class="body">
5863 <p>A while back I received a Gyro sensor for the NXT
5864 <a href="mindstorms.lego.com">Mindstorms</a> controller as a birthday
5865 present. It had been on my wishlist for a while, because I wanted to
5866 build a Segway like balancing lego robot. I had already built
5867 <a href="http://www.nxtprograms.com/NXT2/segway/">a simple balancing
5868 robot</a> with the kids, using the light/color sensor included in the
5869 NXT kit as the balance sensor, but it was not working very well. It
5870 could balance for a while, but was very sensitive to the light
5871 condition in the room and the reflective properties of the surface and
5872 would fall over after a short while. I wanted something more robust,
5873 and had
5874 <a href="https://www.hitechnic.com/cgi-bin/commerce.cgi?preadd=action&key=NGY1044">the
5875 gyro sensor from HiTechnic</a> I believed would solve it on my
5876 wishlist for some years before it suddenly showed up as a gift from my
5877 loved ones. :)</p>
5878
5879 <p>Unfortunately I have not had time to sit down and play with it
5880 since then. But that changed some days ago, when I was searching for
5881 lego segway information and came across a recipe from HiTechnic for
5882 building
5883 <a href="http://www.hitechnic.com/blog/gyro-sensor/htway/">the
5884 HTWay</a>, a segway like balancing robot. Build instructions and
5885 <a href="https://www.hitechnic.com/upload/786-HTWayC.nxc">source
5886 code</a> was included, so it was just a question of putting it all
5887 together. And thanks to the great work of many Debian developers, the
5888 compiler needed to build the source for the NXT is already included in
5889 Debian, so I was read to go in less than an hour. The resulting robot
5890 do not look very impressive in its simplicity:</p>
5891
5892 <p align="center"><img width="70%" src="http://people.skolelinux.org/pere/blog/images/2016-11-04-lego-htway-robot.jpeg"></p>
5893
5894 <p>Because I lack the infrared sensor used to control the robot in the
5895 design from HiTechnic, I had to comment out the last task
5896 (taskControl). I simply placed /* and */ around it get the program
5897 working without that sensor present. Now it balances just fine until
5898 the battery status run low:</p>
5899
5900 <p align="center"><video width="70%" controls="true">
5901 <source src="http://people.skolelinux.org/pere/blog/images/2016-11-04-lego-htway-balancing.ogv" type="video/ogg">
5902 </video></p>
5903
5904 <p>Now we would like to teach it how to follow a line and take remote
5905 control instructions using the included Bluetooth receiver in the NXT.</p>
5906
5907 <p>If you, like me, love LEGO and want to make sure we find the tools
5908 they need to work with LEGO in Debian and all our derivative
5909 distributions like Ubuntu, check out
5910 <a href="http://wiki.debian.org/LegoDesigners">the LEGO designers
5911 project page</a> and join the Debian LEGO team. Personally I own a
5912 RCX and NXT controller (no EV3), and would like to make sure the
5913 Debian tools needed to program the systems I own work as they
5914 should.</p>
5915
5916 </div>
5917 <div class="tags">
5918
5919
5920 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/lego">lego</a>, <a href="http://people.skolelinux.org/pere/blog/tags/robot">robot</a>.
5921
5922
5923 </div>
5924 </div>
5925 <div class="padding"></div>
5926
5927 <div class="entry">
5928 <div class="title">
5929 <a href="http://people.skolelinux.org/pere/blog/Experience_and_updated_recipe_for_using_the_Signal_app_without_a_mobile_phone.html">Experience and updated recipe for using the Signal app without a mobile phone</a>
5930 </div>
5931 <div class="date">
5932 10th October 2016
5933 </div>
5934 <div class="body">
5935 <p>In July
5936 <a href="http://people.skolelinux.org/pere/blog/How_to_use_the_Signal_app_if_you_only_have_a_land_line__ie_no_mobile_phone_.html">I
5937 wrote how to get the Signal Chrome/Chromium app working</a> without
5938 the ability to receive SMS messages (aka without a cell phone). It is
5939 time to share some experiences and provide an updated setup.</p>
5940
5941 <p>The Signal app have worked fine for several months now, and I use
5942 it regularly to chat with my loved ones. I had a major snag at the
5943 end of my summer vacation, when the the app completely forgot my
5944 setup, identity and keys. The reason behind this major mess was
5945 running out of disk space. To avoid that ever happening again I have
5946 started storing everything in <tt>userdata/</tt> in git, to be able to
5947 roll back to an earlier version if the files are wiped by mistake. I
5948 had to use it once after introducing the git backup. When rolling
5949 back to an earlier version, one need to use the 'reset session' option
5950 in Signal to get going, and notify the people you talk with about the
5951 problem. I assume there is some sequence number tracking in the
5952 protocol to detect rollback attacks. The git repository is rather big
5953 (674 MiB so far), but I have not tried to figure out if some of the
5954 content can be added to a .gitignore file due to lack of spare
5955 time.</p>
5956
5957 <p>I've also hit the 90 days timeout blocking, and noticed that this
5958 make it impossible to send messages using Signal. I could still
5959 receive them, but had to patch the code with a new timestamp to send.
5960 I believe the timeout is added by the developers to force people to
5961 upgrade to the latest version of the app, even when there is no
5962 protocol changes, to reduce the version skew among the user base and
5963 thus try to keep the number of support requests down.</p>
5964
5965 <p>Since my original recipe, the Signal source code changed slightly,
5966 making the old patch fail to apply cleanly. Below is an updated
5967 patch, including the shell wrapper I use to start Signal. The
5968 original version required a new user to locate the JavaScript console
5969 and call a function from there. I got help from a friend with more
5970 JavaScript knowledge than me to modify the code to provide a GUI
5971 button instead. This mean that to get started you just need to run
5972 the wrapper and click the 'Register without mobile phone' to get going
5973 now. I've also modified the timeout code to always set it to 90 days
5974 in the future, to avoid having to patch the code regularly.</p>
5975
5976 <p>So, the updated recipe for Debian Jessie:</p>
5977
5978 <ol>
5979
5980 <li>First, install required packages to get the source code and the
5981 browser you need. Signal only work with Chrome/Chromium, as far as I
5982 know, so you need to install it.
5983
5984 <pre>
5985 apt install git tor chromium
5986 git clone https://github.com/WhisperSystems/Signal-Desktop.git
5987 </pre></li>
5988
5989 <li>Modify the source code using command listed in the the patch
5990 block below.</li>
5991
5992 <li>Start Signal using the run-signal-app wrapper (for example using
5993 <tt>`pwd`/run-signal-app</tt>).
5994
5995 <li>Click on the 'Register without mobile phone', will in a phone
5996 number you can receive calls to the next minute, receive the
5997 verification code and enter it into the form field and press
5998 'Register'. Note, the phone number you use will be user Signal
5999 username, ie the way others can find you on Signal.</li>
6000
6001 <li>You can now use Signal to contact others. Note, new contacts do
6002 not show up in the contact list until you restart Signal, and there is
6003 no way to assign names to Contacts. There is also no way to create or
6004 update chat groups. I suspect this is because the web app do not have
6005 a associated contact database.</li>
6006
6007 </ol>
6008
6009 <p>I am still a bit uneasy about using Signal, because of the way its
6010 main author moxie0 reject federation and accept dependencies to major
6011 corporations like Google (part of the code is fetched from Google) and
6012 Amazon (the central coordination point is owned by Amazon). See for
6013 example
6014 <a href="https://github.com/LibreSignal/LibreSignal/issues/37">the
6015 LibreSignal issue tracker</a> for a thread documenting the authors
6016 view on these issues. But the network effect is strong in this case,
6017 and several of the people I want to communicate with already use
6018 Signal. Perhaps we can all move to <a href="https://ring.cx/">Ring</a>
6019 once it <a href="https://bugs.debian.org/830265">work on my
6020 laptop</a>? It already work on Windows and Android, and is included
6021 in <a href="https://tracker.debian.org/pkg/ring">Debian</a> and
6022 <a href="https://launchpad.net/ubuntu/+source/ring">Ubuntu</a>, but not
6023 working on Debian Stable.</p>
6024
6025 <p>Anyway, this is the patch I apply to the Signal code to get it
6026 working. It switch to the production servers, disable to timeout,
6027 make registration easier and add the shell wrapper:</p>
6028
6029 <pre>
6030 cd Signal-Desktop; cat &lt;&lt;EOF | patch -p1
6031 diff --git a/js/background.js b/js/background.js
6032 index 24b4c1d..579345f 100644
6033 --- a/js/background.js
6034 +++ b/js/background.js
6035 @@ -33,9 +33,9 @@
6036 });
6037 });
6038
6039 - var SERVER_URL = 'https://textsecure-service-staging.whispersystems.org';
6040 + var SERVER_URL = 'https://textsecure-service-ca.whispersystems.org';
6041 var SERVER_PORTS = [80, 4433, 8443];
6042 - var ATTACHMENT_SERVER_URL = 'https://whispersystems-textsecure-attachments-staging.s3.amazonaws.com';
6043 + var ATTACHMENT_SERVER_URL = 'https://whispersystems-textsecure-attachments.s3.amazonaws.com';
6044 var messageReceiver;
6045 window.getSocketStatus = function() {
6046 if (messageReceiver) {
6047 diff --git a/js/expire.js b/js/expire.js
6048 index 639aeae..beb91c3 100644
6049 --- a/js/expire.js
6050 +++ b/js/expire.js
6051 @@ -1,6 +1,6 @@
6052 ;(function() {
6053 'use strict';
6054 - var BUILD_EXPIRATION = 0;
6055 + var BUILD_EXPIRATION = Date.now() + (90 * 24 * 60 * 60 * 1000);
6056
6057 window.extension = window.extension || {};
6058
6059 diff --git a/js/views/install_view.js b/js/views/install_view.js
6060 index 7816f4f..1d6233b 100644
6061 --- a/js/views/install_view.js
6062 +++ b/js/views/install_view.js
6063 @@ -38,7 +38,8 @@
6064 return {
6065 'click .step1': this.selectStep.bind(this, 1),
6066 'click .step2': this.selectStep.bind(this, 2),
6067 - 'click .step3': this.selectStep.bind(this, 3)
6068 + 'click .step3': this.selectStep.bind(this, 3),
6069 + 'click .callreg': function() { extension.install('standalone') },
6070 };
6071 },
6072 clearQR: function() {
6073 diff --git a/options.html b/options.html
6074 index dc0f28e..8d709f6 100644
6075 --- a/options.html
6076 +++ b/options.html
6077 @@ -14,7 +14,10 @@
6078 &lt;div class='nav'>
6079 &lt;h1>{{ installWelcome }}&lt;/h1>
6080 &lt;p>{{ installTagline }}&lt;/p>
6081 - &lt;div> &lt;a class='button step2'>{{ installGetStartedButton }}&lt;/a> &lt;/div>
6082 + &lt;div> &lt;a class='button step2'>{{ installGetStartedButton }}&lt;/a>
6083 + &lt;br> &lt;a class="button callreg">Register without mobile phone&lt;/a>
6084 +
6085 + &lt;/div>
6086 &lt;span class='dot step1 selected'>&lt;/span>
6087 &lt;span class='dot step2'>&lt;/span>
6088 &lt;span class='dot step3'>&lt;/span>
6089 --- /dev/null 2016-10-07 09:55:13.730181472 +0200
6090 +++ b/run-signal-app 2016-10-10 08:54:09.434172391 +0200
6091 @@ -0,0 +1,12 @@
6092 +#!/bin/sh
6093 +set -e
6094 +cd $(dirname $0)
6095 +mkdir -p userdata
6096 +userdata="`pwd`/userdata"
6097 +if [ -d "$userdata" ] && [ ! -d "$userdata/.git" ] ; then
6098 + (cd $userdata && git init)
6099 +fi
6100 +(cd $userdata && git add . && git commit -m "Current status." || true)
6101 +exec chromium \
6102 + --proxy-server="socks://localhost:9050" \
6103 + --user-data-dir=$userdata --load-and-launch-app=`pwd`
6104 EOF
6105 chmod a+rx run-signal-app
6106 </pre>
6107
6108 <p>As usual, if you use Bitcoin and want to show your support of my
6109 activities, please send Bitcoin donations to my address
6110 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
6111
6112 </div>
6113 <div class="tags">
6114
6115
6116 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>.
6117
6118
6119 </div>
6120 </div>
6121 <div class="padding"></div>
6122
6123 <div class="entry">
6124 <div class="title">
6125 <a href="http://people.skolelinux.org/pere/blog/Isenkram__Appstream_and_udev_make_life_as_a_LEGO_builder_easier.html">Isenkram, Appstream and udev make life as a LEGO builder easier</a>
6126 </div>
6127 <div class="date">
6128 7th October 2016
6129 </div>
6130 <div class="body">
6131 <p><a href="http://packages.qa.debian.org/isenkram">The Isenkram
6132 system</a> provide a practical and easy way to figure out which
6133 packages support the hardware in a given machine. The command line
6134 tool <tt>isenkram-lookup</tt> and the tasksel options provide a
6135 convenient way to list and install packages relevant for the current
6136 hardware during system installation, both user space packages and
6137 firmware packages. The GUI background daemon on the other hand provide
6138 a pop-up proposing to install packages when a new dongle is inserted
6139 while using the computer. For example, if you plug in a smart card
6140 reader, the system will ask if you want to install <tt>pcscd</tt> if
6141 that package isn't already installed, and if you plug in a USB video
6142 camera the system will ask if you want to install <tt>cheese</tt> if
6143 cheese is currently missing. This already work just fine.</p>
6144
6145 <p>But Isenkram depend on a database mapping from hardware IDs to
6146 package names. When I started no such database existed in Debian, so
6147 I made my own data set and included it with the isenkram package and
6148 made isenkram fetch the latest version of this database from git using
6149 http. This way the isenkram users would get updated package proposals
6150 as soon as I learned more about hardware related packages.</p>
6151
6152 <p>The hardware is identified using modalias strings. The modalias
6153 design is from the Linux kernel where most hardware descriptors are
6154 made available as a strings that can be matched using filename style
6155 globbing. It handle USB, PCI, DMI and a lot of other hardware related
6156 identifiers.</p>
6157
6158 <p>The downside to the Isenkram specific database is that there is no
6159 information about relevant distribution / Debian version, making
6160 isenkram propose obsolete packages too. But along came AppStream, a
6161 cross distribution mechanism to store and collect metadata about
6162 software packages. When I heard about the proposal, I contacted the
6163 people involved and suggested to add a hardware matching rule using
6164 modalias strings in the specification, to be able to use AppStream for
6165 mapping hardware to packages. This idea was accepted and AppStream is
6166 now a great way for a package to announce the hardware it support in a
6167 distribution neutral way. I wrote
6168 <a href="http://people.skolelinux.org/pere/blog/Using_appstream_with_isenkram_to_install_hardware_related_packages_in_Debian.html">a
6169 recipe on how to add such meta-information</a> in a blog post last
6170 December. If you have a hardware related package in Debian, please
6171 announce the relevant hardware IDs using AppStream.</p>
6172
6173 <p>In Debian, almost all packages that can talk to a LEGO Mindestorms
6174 RCX or NXT unit, announce this support using AppStream. The effect is
6175 that when you insert such LEGO robot controller into your Debian
6176 machine, Isenkram will propose to install the packages needed to get
6177 it working. The intention is that this should allow the local user to
6178 start programming his robot controller right away without having to
6179 guess what packages to use or which permissions to fix.</p>
6180
6181 <p>But when I sat down with my son the other day to program our NXT
6182 unit using his Debian Stretch computer, I discovered something
6183 annoying. The local console user (ie my son) did not get access to
6184 the USB device for programming the unit. This used to work, but no
6185 longer in Jessie and Stretch. After some investigation and asking
6186 around on #debian-devel, I discovered that this was because udev had
6187 changed the mechanism used to grant access to local devices. The
6188 ConsoleKit mechanism from <tt>/lib/udev/rules.d/70-udev-acl.rules</tt>
6189 no longer applied, because LDAP users no longer was added to the
6190 plugdev group during login. Michael Biebl told me that this method
6191 was obsolete and the new method used ACLs instead. This was good
6192 news, as the plugdev mechanism is a mess when using a remote user
6193 directory like LDAP. Using ACLs would make sure a user lost device
6194 access when she logged out, even if the user left behind a background
6195 process which would retain the plugdev membership with the ConsoleKit
6196 setup. Armed with this knowledge I moved on to fix the access problem
6197 for the LEGO Mindstorms related packages.</p>
6198
6199 <p>The new system uses a udev tag, 'uaccess'. It can either be
6200 applied directly for a device, or is applied in
6201 /lib/udev/rules.d/70-uaccess.rules for classes of devices. As the
6202 LEGO Mindstorms udev rules did not have a class, I decided to add the
6203 tag directly in the udev rules files included in the packages. Here
6204 is one example. For the nqc C compiler for the RCX, the
6205 <tt>/lib/udev/rules.d/60-nqc.rules</tt> file now look like this:
6206
6207 <p><pre>
6208 SUBSYSTEM=="usb", ACTION=="add", ATTR{idVendor}=="0694", ATTR{idProduct}=="0001", \
6209 SYMLINK+="rcx-%k", TAG+="uaccess"
6210 </pre></p>
6211
6212 <p>The key part is the 'TAG+="uaccess"' at the end. I suspect all
6213 packages using plugdev in their /lib/udev/rules.d/ files should be
6214 changed to use this tag (either directly or indirectly via
6215 <tt>70-uaccess.rules</tt>). Perhaps a lintian check should be created
6216 to detect this?</p>
6217
6218 <p>I've been unable to find good documentation on the uaccess feature.
6219 It is unclear to me if the uaccess tag is an internal implementation
6220 detail like the udev-acl tag used by
6221 <tt>/lib/udev/rules.d/70-udev-acl.rules</tt>. If it is, I guess the
6222 indirect method is the preferred way. Michael
6223 <a href="https://github.com/systemd/systemd/issues/4288">asked for more
6224 documentation from the systemd project</a> and I hope it will make
6225 this clearer. For now I use the generic classes when they exist and
6226 is already handled by <tt>70-uaccess.rules</tt>, and add the tag
6227 directly if no such class exist.</p>
6228
6229 <p>To learn more about the isenkram system, please check out
6230 <a href="http://people.skolelinux.org/pere/blog/tags/isenkram/">my
6231 blog posts tagged isenkram</a>.</p>
6232
6233 <p>To help out making life for LEGO constructors in Debian easier,
6234 please join us on our IRC channel
6235 <a href="irc://irc.debian.org/%23debian-lego">#debian-lego</a> and join
6236 the <a href="https://alioth.debian.org/projects/debian-lego/">Debian
6237 LEGO team</a> in the Alioth project we created yesterday. A mailing
6238 list is not yet created, but we are working on it. :)</p>
6239
6240 <p>As usual, if you use Bitcoin and want to show your support of my
6241 activities, please send Bitcoin donations to my address
6242 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
6243
6244 </div>
6245 <div class="tags">
6246
6247
6248 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram</a>, <a href="http://people.skolelinux.org/pere/blog/tags/lego">lego</a>.
6249
6250
6251 </div>
6252 </div>
6253 <div class="padding"></div>
6254
6255 <div class="entry">
6256 <div class="title">
6257 <a href="http://people.skolelinux.org/pere/blog/First_draft_Norwegian_Bokm_l_edition_of_The_Debian_Administrator_s_Handbook_now_public.html">First draft Norwegian Bokmål edition of The Debian Administrator's Handbook now public</a>
6258 </div>
6259 <div class="date">
6260 30th August 2016
6261 </div>
6262 <div class="body">
6263 <p>In April we
6264 <a href="http://people.skolelinux.org/pere/blog/Lets_make_a_Norwegian_Bokm_l_edition_of_The_Debian_Administrator_s_Handbook.html">started
6265 to work</a> on a Norwegian Bokmål edition of the "open access" book on
6266 how to set up and administrate a Debian system. Today I am happy to
6267 report that the first draft is now publicly available. You can find
6268 it on <a href="https://debian-handbook.info/get/">get the Debian
6269 Administrator's Handbook page</a> (under Other languages). The first
6270 eight chapters have a first draft translation, and we are working on
6271 proofreading the content. If you want to help out, please start
6272 contributing using
6273 <a href="https://hosted.weblate.org/projects/debian-handbook/">the
6274 hosted weblate project page</a>, and get in touch using
6275 <a href="http://lists.alioth.debian.org/mailman/listinfo/debian-handbook-translators">the
6276 translators mailing list</a>. Please also check out
6277 <a href="https://debian-handbook.info/contribute/">the instructions for
6278 contributors</a>. A good way to contribute is to proofread the text
6279 and update weblate if you find errors.</p>
6280
6281 <p>Our goal is still to make the Norwegian book available on paper as well as
6282 electronic form.</p>
6283
6284 </div>
6285 <div class="tags">
6286
6287
6288 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian-handbook">debian-handbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
6289
6290
6291 </div>
6292 </div>
6293 <div class="padding"></div>
6294
6295 <div class="entry">
6296 <div class="title">
6297 <a href="http://people.skolelinux.org/pere/blog/Coz_can_help_you_find_bottlenecks_in_multi_threaded_software___nice_free_software.html">Coz can help you find bottlenecks in multi-threaded software - nice free software</a>
6298 </div>
6299 <div class="date">
6300 11th August 2016
6301 </div>
6302 <div class="body">
6303 <p>This summer, I read a great article
6304 "<a href="https://www.usenix.org/publications/login/summer2016/curtsinger">coz:
6305 This Is the Profiler You're Looking For</a>" in USENIX ;login: about
6306 how to profile multi-threaded programs. It presented a system for
6307 profiling software by running experiences in the running program,
6308 testing how run time performance is affected by "speeding up" parts of
6309 the code to various degrees compared to a normal run. It does this by
6310 slowing down parallel threads while the "faster up" code is running
6311 and measure how this affect processing time. The processing time is
6312 measured using probes inserted into the code, either using progress
6313 counters (COZ_PROGRESS) or as latency meters (COZ_BEGIN/COZ_END). It
6314 can also measure unmodified code by measuring complete the program
6315 runtime and running the program several times instead.</p>
6316
6317 <p>The project and presentation was so inspiring that I would like to
6318 get the system into Debian. I
6319 <a href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=830708">created
6320 a WNPP request for it</a> and contacted upstream to try to make the
6321 system ready for Debian by sending patches. The build process need to
6322 be changed a bit to avoid running 'git clone' to get dependencies, and
6323 to include the JavaScript web page used to visualize the collected
6324 profiling information included in the source package.
6325 But I expect that should work out fairly soon.</p>
6326
6327 <p>The way the system work is fairly simple. To run an coz experiment
6328 on a binary with debug symbols available, start the program like this:
6329
6330 <p><blockquote><pre>
6331 coz run --- program-to-run
6332 </pre></blockquote></p>
6333
6334 <p>This will create a text file profile.coz with the instrumentation
6335 information. To show what part of the code affect the performance
6336 most, use a web browser and either point it to
6337 <a href="http://plasma-umass.github.io/coz/">http://plasma-umass.github.io/coz/</a>
6338 or use the copy from git (in the gh-pages branch). Check out this web
6339 site to have a look at several example profiling runs and get an idea what the end result from the profile runs look like. To make the
6340 profiling more useful you include &lt;coz.h&gt; and insert the
6341 COZ_PROGRESS or COZ_BEGIN and COZ_END at appropriate places in the
6342 code, rebuild and run the profiler. This allow coz to do more
6343 targeted experiments.</p>
6344
6345 <p>A video published by ACM
6346 <a href="https://www.youtube.com/watch?v=jE0V-p1odPg">presenting the
6347 Coz profiler</a> is available from Youtube. There is also a paper
6348 from the 25th Symposium on Operating Systems Principles available
6349 titled
6350 <a href="https://www.usenix.org/conference/atc16/technical-sessions/presentation/curtsinger">Coz:
6351 finding code that counts with causal profiling</a>.</p>
6352
6353 <p><a href="https://github.com/plasma-umass/coz">The source code</a>
6354 for Coz is available from github. It will only build with clang
6355 because it uses a
6356 <a href="https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55606">C++
6357 feature missing in GCC</a>, but I've submitted
6358 <a href="https://github.com/plasma-umass/coz/pull/67">a patch to solve
6359 it</a> and hope it will be included in the upstream source soon.</p>
6360
6361 <p>Please get in touch if you, like me, would like to see this piece
6362 of software in Debian. I would very much like some help with the
6363 packaging effort, as I lack the in depth knowledge on how to package
6364 C++ libraries.</p>
6365
6366 </div>
6367 <div class="tags">
6368
6369
6370 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software</a>.
6371
6372
6373 </div>
6374 </div>
6375 <div class="padding"></div>
6376
6377 <div class="entry">
6378 <div class="title">
6379 <a href="http://people.skolelinux.org/pere/blog/Sales_number_for_the_Free_Culture_translation__first_half_of_2016.html">Sales number for the Free Culture translation, first half of 2016</a>
6380 </div>
6381 <div class="date">
6382 5th August 2016
6383 </div>
6384 <div class="body">
6385 <p>As my regular readers probably remember, the last year I published
6386 a French and Norwegian translation of the classic
6387 <a href="http://www.free-culture.cc/">Free Culture book</a> by the
6388 founder of the Creative Commons movement, Lawrence Lessig. A bit less
6389 known is the fact that due to the way I created the translations,
6390 using docbook and po4a, I also recreated the English original. And
6391 because I already had created a new the PDF edition, I published it
6392 too. The revenue from the books are sent to the Creative Commons
6393 Corporation. In other words, I do not earn any money from this
6394 project, I just earn the warm fuzzy feeling that the text is available
6395 for a wider audience and more people can learn why the Creative
6396 Commons is needed.</p>
6397
6398 <p>Today, just for fun, I had a look at the sales number over at
6399 Lulu.com, which take care of payment, printing and shipping. Much to
6400 my surprise, the English edition is selling better than both the
6401 French and Norwegian edition, despite the fact that it has been
6402 available in English since it was first published. In total, 24 paper
6403 books was sold for USD $19.99 between 2016-01-01 and 2016-07-31:</p>
6404
6405 <table border="0">
6406 <tr><th>Title / language</th><th>Quantity</th></tr>
6407 <tr><td><a href="http://www.lulu.com/shop/lawrence-lessig/culture-libre/paperback/product-22645082.html">Culture Libre / French</a></td><td align="right">3</td></tr>
6408 <tr><td><a href="http://www.lulu.com/shop/lawrence-lessig/fri-kultur/paperback/product-22441576.html">Fri kultur / Norwegian</a></td><td align="right">7</td></tr>
6409 <tr><td><a href="http://www.lulu.com/shop/lawrence-lessig/free-culture/paperback/product-22440520.html">Free Culture / English</a></td><td align="right">14</td></tr>
6410 </table>
6411
6412 <p>The books are available both from Lulu.com and from large book
6413 stores like Amazon and Barnes&Noble. Most revenue, around $10 per
6414 book, is sent to the Creative Commons project when the book is sold
6415 directly by Lulu.com. The other channels give less revenue. The
6416 summary from Lulu tell me 10 books was sold via the Amazon channel, 10
6417 via Ingram (what is this?) and 4 directly by Lulu. And Lulu.com tells
6418 me that the revenue sent so far this year is USD $101.42. No idea
6419 what kind of sales numbers to expect, so I do not know if that is a
6420 good amount of sales for a 10 year old book or not. But it make me
6421 happy that the buyers find the book, and I hope they enjoy reading it
6422 as much as I did.</p>
6423
6424 <p>The ebook edition is available for free from
6425 <a href="https://github.com/petterreinholdtsen/free-culture-lessig">Github</a>.</p>
6426
6427 <p>If you would like to translate and publish the book in your native
6428 language, I would be happy to help make it happen. Please get in
6429 touch.</p>
6430
6431 </div>
6432 <div class="tags">
6433
6434
6435 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>.
6436
6437
6438 </div>
6439 </div>
6440 <div class="padding"></div>
6441
6442 <div class="entry">
6443 <div class="title">
6444 <a href="http://people.skolelinux.org/pere/blog/Techno_TV_broadcasting_live_across_Norway_and_the_Internet___debconf16___nuug__on__frikanalen.html">Techno TV broadcasting live across Norway and the Internet (#debconf16, #nuug) on @frikanalen</a>
6445 </div>
6446 <div class="date">
6447 1st August 2016
6448 </div>
6449 <div class="body">
6450 <p>Did you know there is a TV channel broadcasting talks from DebConf
6451 16 across an entire country? Or that there is a TV channel
6452 broadcasting talks by or about
6453 <a href="http://beta.frikanalen.no/video/625529/">Linus Torvalds</a>,
6454 <a href="http://beta.frikanalen.no/video/625599/">Tor</a>,
6455 <a href="http://beta.frikanalen.no/video/624019/">OpenID</A>,
6456 <a href="http://beta.frikanalen.no/video/625624/">Common Lisp</a>,
6457 <a href="http://beta.frikanalen.no/video/625446/">Civic Tech</a>,
6458 <a href="http://beta.frikanalen.no/video/625090/">EFF founder John Barlow</a>,
6459 <a href="http://beta.frikanalen.no/video/625432/">how to make 3D
6460 printer electronics</a> and many more fascinating topics? It works
6461 using only free software (all of it
6462 <a href="http://github.com/Frikanalen">available from Github</a>), and
6463 is administrated using a web browser and a web API.</p>
6464
6465 <p>The TV channel is the Norwegian open channel
6466 <a href="http://www.frikanalen.no/">Frikanalen</a>, and I am involved
6467 via <a href="https://www.nuug.no/">the NUUG member association</a> in
6468 running and developing the software for the channel. The channel is
6469 organised as a member organisation where its members can upload and
6470 broadcast what they want (think of it as Youtube for national
6471 broadcasting television). Individuals can broadcast too. The time
6472 slots are handled on a first come, first serve basis. Because the
6473 channel have almost no viewers and very few active members, we can
6474 experiment with TV technology without too much flack when we make
6475 mistakes. And thanks to the few active members, most of the slots on
6476 the schedule are free. I see this as an opportunity to spread
6477 knowledge about technology and free software, and have a script I run
6478 regularly to fill up all the open slots the next few days with
6479 technology related video. The end result is a channel I like to
6480 describe as Techno TV - filled with interesting talks and
6481 presentations.</p>
6482
6483 <p>It is available on channel 50 on the Norwegian national digital TV
6484 network (RiksTV). It is also available as a multicast stream on
6485 Uninett. And finally, it is available as
6486 <a href="http://beta.frikanalen.no/">a WebM unicast stream</a> from
6487 Frikanalen and NUUG. Check it out. :)</p>
6488
6489 </div>
6490 <div class="tags">
6491
6492
6493 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
6494
6495
6496 </div>
6497 </div>
6498 <div class="padding"></div>
6499
6500 <div class="entry">
6501 <div class="title">
6502 <a href="http://people.skolelinux.org/pere/blog/Unlocking_HTC_Desire_HD_on_Linux_using_unruu_and_fastboot.html">Unlocking HTC Desire HD on Linux using unruu and fastboot</a>
6503 </div>
6504 <div class="date">
6505 7th July 2016
6506 </div>
6507 <div class="body">
6508 <p>Yesterday, I tried to unlock a HTC Desire HD phone, and it proved
6509 to be a slight challenge. Here is the recipe if I ever need to do it
6510 again. It all started by me wanting to try the recipe to set up
6511 <a href="https://blog.torproject.org/blog/mission-impossible-hardening-android-security-and-privacy">an
6512 hardened Android installation</a> from the Tor project blog on a
6513 device I had access to. It is a old mobile phone with a broken
6514 microphone The initial idea had been to just
6515 <a href="http://wiki.cyanogenmod.org/w/Install_CM_for_ace">install
6516 CyanogenMod on it</a>, but did not quite find time to start on it
6517 until a few days ago.</p>
6518
6519 <p>The unlock process is supposed to be simple: (1) Boot into the boot
6520 loader (press volume down and power at the same time), (2) select
6521 'fastboot' before (3) connecting the device via USB to a Linux
6522 machine, (4) request the device identifier token by running 'fastboot
6523 oem get_identifier_token', (5) request the device unlocking key using
6524 the <a href="http://www.htcdev.com/bootloader/">HTC developer web
6525 site</a> and unlock the phone using the key file emailed to you.</p>
6526
6527 <p>Unfortunately, this only work fi you have hboot version 2.00.0029
6528 or newer, and the device I was working on had 2.00.0027. This
6529 apparently can be easily fixed by downloading a Windows program and
6530 running it on your Windows machine, if you accept the terms Microsoft
6531 require you to accept to use Windows - which I do not. So I had to
6532 come up with a different approach. I got a lot of help from AndyCap
6533 on #nuug, and would not have been able to get this working without
6534 him.</p>
6535
6536 <p>First I needed to extract the hboot firmware from
6537 <a href="http://www.htcdev.com/ruu/PD9810000_Ace_Sense30_S_hboot_2.00.0029.exe">the
6538 windows binary for HTC Desire HD</a> downloaded as 'the RUU' from HTC.
6539 For this there is is <a href="https://github.com/kmdm/unruu/">a github
6540 project named unruu</a> using libunshield. The unshield tool did not
6541 recognise the file format, but unruu worked and extracted rom.zip,
6542 containing the new hboot firmware and a text file describing which
6543 devices it would work for.</p>
6544
6545 <p>Next, I needed to get the new firmware into the device. For this I
6546 followed some instructions
6547 <a href="http://www.htc1guru.com/2013/09/new-ruu-zips-posted/">available
6548 from HTC1Guru.com</a>, and ran these commands as root on a Linux
6549 machine with Debian testing:</p>
6550
6551 <p><pre>
6552 adb reboot-bootloader
6553 fastboot oem rebootRUU
6554 fastboot flash zip rom.zip
6555 fastboot flash zip rom.zip
6556 fastboot reboot
6557 </pre></p>
6558
6559 <p>The flash command apparently need to be done twice to take effect,
6560 as the first is just preparations and the second one do the flashing.
6561 The adb command is just to get to the boot loader menu, so turning the
6562 device on while holding volume down and the power button should work
6563 too.</p>
6564
6565 <p>With the new hboot version in place I could start following the
6566 instructions on the HTC developer web site. I got the device token
6567 like this:</p>
6568
6569 <p><pre>
6570 fastboot oem get_identifier_token 2>&1 | sed 's/(bootloader) //'
6571 </pre>
6572
6573 <p>And once I got the unlock code via email, I could use it like
6574 this:</p>
6575
6576 <p><pre>
6577 fastboot flash unlocktoken Unlock_code.bin
6578 </pre></p>
6579
6580 <p>And with that final step in place, the phone was unlocked and I
6581 could start stuffing the software of my own choosing into the device.
6582 So far I only inserted a replacement recovery image to wipe the phone
6583 before I start. We will see what happen next. Perhaps I should
6584 install <a href="https://www.debian.org/">Debian</a> on it. :)</p>
6585
6586 </div>
6587 <div class="tags">
6588
6589
6590 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>.
6591
6592
6593 </div>
6594 </div>
6595 <div class="padding"></div>
6596
6597 <div class="entry">
6598 <div class="title">
6599 <a href="http://people.skolelinux.org/pere/blog/How_to_use_the_Signal_app_if_you_only_have_a_land_line__ie_no_mobile_phone_.html">How to use the Signal app if you only have a land line (ie no mobile phone)</a>
6600 </div>
6601 <div class="date">
6602 3rd July 2016
6603 </div>
6604 <div class="body">
6605 <p>For a while now, I have wanted to test
6606 <a href="https://whispersystems.org/">the Signal app</a>, as it is
6607 said to provide end to end encrypted communication and several of my
6608 friends and family are already using it. As I by choice do not own a
6609 mobile phone, this proved to be harder than expected. And I wanted to
6610 have the source of the client and know that it was the code used on my
6611 machine. But yesterday I managed to get it working. I used the
6612 Github source, compared it to the source in
6613 <a href="https://chrome.google.com/webstore/detail/signal-private-messenger/bikioccmkafdpakkkcpdbppfkghcmihk?hl=en-US">the
6614 Signal Chrome app</a> available from the Chrome web store, applied
6615 patches to use the production Signal servers, started the app and
6616 asked for the hidden "register without a smart phone" form. Here is
6617 the recipe how I did it.</p>
6618
6619 <p>First, I fetched the Signal desktop source from Github, using
6620
6621 <pre>
6622 git clone https://github.com/WhisperSystems/Signal-Desktop.git
6623 </pre>
6624
6625 <p>Next, I patched the source to use the production servers, to be
6626 able to talk to other Signal users:</p>
6627
6628 <pre>
6629 cat &lt;&lt;EOF | patch -p0
6630 diff -ur ./js/background.js userdata/Default/Extensions/bikioccmkafdpakkkcpdbppfkghcmihk/0.15.0_0/js/background.js
6631 --- ./js/background.js 2016-06-29 13:43:15.630344628 +0200
6632 +++ userdata/Default/Extensions/bikioccmkafdpakkkcpdbppfkghcmihk/0.15.0_0/js/background.js 2016-06-29 14:06:29.530300934 +0200
6633 @@ -47,8 +47,8 @@
6634 });
6635 });
6636
6637 - var SERVER_URL = 'https://textsecure-service-staging.whispersystems.org';
6638 - var ATTACHMENT_SERVER_URL = 'https://whispersystems-textsecure-attachments-staging.s3.amazonaws.com';
6639 + var SERVER_URL = 'https://textsecure-service-ca.whispersystems.org:4433';
6640 + var ATTACHMENT_SERVER_URL = 'https://whispersystems-textsecure-attachments.s3.amazonaws.com';
6641 var messageReceiver;
6642 window.getSocketStatus = function() {
6643 if (messageReceiver) {
6644 diff -ur ./js/expire.js userdata/Default/Extensions/bikioccmkafdpakkkcpdbppfkghcmihk/0.15.0_0/js/expire.js
6645 --- ./js/expire.js 2016-06-29 13:43:15.630344628 +0200
6646 +++ userdata/Default/Extensions/bikioccmkafdpakkkcpdbppfkghcmihk/0.15.0_0/js/expire.js2016-06-29 14:06:29.530300934 +0200
6647 @@ -1,6 +1,6 @@
6648 ;(function() {
6649 'use strict';
6650 - var BUILD_EXPIRATION = 0;
6651 + var BUILD_EXPIRATION = 1474492690000;
6652
6653 window.extension = window.extension || {};
6654
6655 EOF
6656 </pre>
6657
6658 <p>The first part is changing the servers, and the second is updating
6659 an expiration timestamp. This timestamp need to be updated regularly.
6660 It is set 90 days in the future by the build process (Gruntfile.js).
6661 The value is seconds since 1970 times 1000, as far as I can tell.</p>
6662
6663 <p>Based on a tip and good help from the #nuug IRC channel, I wrote a
6664 script to launch Signal in Chromium.</p>
6665
6666 <pre>
6667 #!/bin/sh
6668 cd $(dirname $0)
6669 mkdir -p userdata
6670 exec chromium \
6671 --proxy-server="socks://localhost:9050" \
6672 --user-data-dir=`pwd`/userdata --load-and-launch-app=`pwd`
6673 </pre>
6674
6675 <p> The script start the app and configure Chromium to use the Tor
6676 SOCKS5 proxy to make sure those controlling the Signal servers (today
6677 Amazon and Whisper Systems) as well as those listening on the lines
6678 will have a harder time location my laptop based on the Signal
6679 connections if they use source IP address.</p>
6680
6681 <p>When the script starts, one need to follow the instructions under
6682 "Standalone Registration" in the CONTRIBUTING.md file in the git
6683 repository. I right clicked on the Signal window to get up the
6684 Chromium debugging tool, visited the 'Console' tab and wrote
6685 'extension.install("standalone")' on the console prompt to get the
6686 registration form. Then I entered by land line phone number and
6687 pressed 'Call'. 5 seconds later the phone rang and a robot voice
6688 repeated the verification code three times. After entering the number
6689 into the verification code field in the form, I could start using
6690 Signal from my laptop.
6691
6692 <p>As far as I can tell, The Signal app will leak who is talking to
6693 whom and thus who know who to those controlling the central server,
6694 but such leakage is hard to avoid with a centrally controlled server
6695 setup. It is something to keep in mind when using Signal - the
6696 content of your chats are harder to intercept, but the meta data
6697 exposing your contact network is available to people you do not know.
6698 So better than many options, but not great. And sadly the usage is
6699 connected to my land line, thus allowing those controlling the server
6700 to associate it to my home and person. I would prefer it if only
6701 those I knew could tell who I was on Signal. There are options
6702 avoiding such information leakage, but most of my friends are not
6703 using them, so I am stuck with Signal for now.</p>
6704
6705 <p><strong>Update 2017-01-10</strong>: There is an updated blog post
6706 on this topic in
6707 <a href="http://people.skolelinux.org/pere/blog/Experience_and_updated_recipe_for_using_the_Signal_app_without_a_mobile_phone.html">Experience
6708 and updated recipe for using the Signal app without a mobile
6709 phone</a>.</p>
6710
6711 </div>
6712 <div class="tags">
6713
6714
6715 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>.
6716
6717
6718 </div>
6719 </div>
6720 <div class="padding"></div>
6721
6722 <div class="entry">
6723 <div class="title">
6724 <a href="http://people.skolelinux.org/pere/blog/The_new__best__multimedia_player_in_Debian_.html">The new "best" multimedia player in Debian?</a>
6725 </div>
6726 <div class="date">
6727 6th June 2016
6728 </div>
6729 <div class="body">
6730 <p>When I set out a few weeks ago to figure out
6731 <a href="http://people.skolelinux.org/pere/blog/What_is_the_best_multimedia_player_in_Debian_.html">which
6732 multimedia player in Debian claimed to support most file formats /
6733 MIME types</a>, I was a bit surprised how varied the sets of MIME types
6734 the various players claimed support for. The range was from 55 to 130
6735 MIME types. I suspect most media formats are supported by all
6736 players, but this is not really reflected in the MimeTypes values in
6737 their desktop files. There are probably also some bogus MIME types
6738 listed, but it is hard to identify which one this is.</p>
6739
6740 <p>Anyway, in the mean time I got in touch with upstream for some of
6741 the players suggesting to add more MIME types to their desktop files,
6742 and decided to spend some time myself improving the situation for my
6743 favorite media player VLC. The fixes for VLC entered Debian unstable
6744 yesterday. The complete list of MIME types can be seen on the
6745 <a href="https://wiki.debian.org/DebianMultimedia/PlayerSupport">Multimedia
6746 player MIME type support status</a> Debian wiki page.</p>
6747
6748 <p>The new "best" multimedia player in Debian? It is VLC, followed by
6749 totem, parole, kplayer, gnome-mpv, mpv, smplayer, mplayer-gui and
6750 kmplayer. I am sure some of the other players desktop files support
6751 several of the formats currently listed as working only with vlc,
6752 toten and parole.</p>
6753
6754 <p>A sad observation is that only 14 MIME types are listed as
6755 supported by all the tested multimedia players in Debian in their
6756 desktop files: audio/mpeg, audio/vnd.rn-realaudio, audio/x-mpegurl,
6757 audio/x-ms-wma, audio/x-scpls, audio/x-wav, video/mp4, video/mpeg,
6758 video/quicktime, video/vnd.rn-realvideo, video/x-matroska,
6759 video/x-ms-asf, video/x-ms-wmv and video/x-msvideo. Personally I find
6760 it sad that video/ogg and video/webm is not supported by all the media
6761 players in Debian. As far as I can tell, all of them can handle both
6762 formats.</p>
6763
6764 </div>
6765 <div class="tags">
6766
6767
6768 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>.
6769
6770
6771 </div>
6772 </div>
6773 <div class="padding"></div>
6774
6775 <div class="entry">
6776 <div class="title">
6777 <a href="http://people.skolelinux.org/pere/blog/A_program_should_be_able_to_open_its_own_files_on_Linux.html">A program should be able to open its own files on Linux</a>
6778 </div>
6779 <div class="date">
6780 5th June 2016
6781 </div>
6782 <div class="body">
6783 <p>Many years ago, when koffice was fresh and with few users, I
6784 decided to test its presentation tool when making the slides for a
6785 talk I was giving for NUUG on Japhar, a free Java virtual machine. I
6786 wrote the first draft of the slides, saved the result and went to bed
6787 the day before I would give the talk. The next day I took a plane to
6788 the location where the meeting should take place, and on the plane I
6789 started up koffice again to polish the talk a bit, only to discover
6790 that kpresenter refused to load its own data file. I cursed a bit and
6791 started making the slides again from memory, to have something to
6792 present when I arrived. I tested that the saved files could be
6793 loaded, and the day seemed to be rescued. I continued to polish the
6794 slides until I suddenly discovered that the saved file could no longer
6795 be loaded into kpresenter. In the end I had to rewrite the slides
6796 three times, condensing the content until the talk became shorter and
6797 shorter. After the talk I was able to pinpoint the problem &ndash;
6798 kpresenter wrote inline images in a way itself could not understand.
6799 Eventually that bug was fixed and kpresenter ended up being a great
6800 program to make slides. The point I'm trying to make is that we
6801 expect a program to be able to load its own data files, and it is
6802 embarrassing to its developers if it can't.</p>
6803
6804 <p>Did you ever experience a program failing to load its own data
6805 files from the desktop file browser? It is not a uncommon problem. A
6806 while back I discovered that the screencast recorder
6807 gtk-recordmydesktop would save an Ogg Theora video file the KDE file
6808 browser would refuse to open. No video player claimed to understand
6809 such file. I tracked down the cause being <tt>file --mime-type</tt>
6810 returning the application/ogg MIME type, which no video player I had
6811 installed listed as a MIME type they would understand. I asked for
6812 <a href="http://bugs.gw.com/view.php?id=382">file to change its
6813 behavour</a> and use the MIME type video/ogg instead. I also asked
6814 several video players to add video/ogg to their desktop files, to give
6815 the file browser an idea what to do about Ogg Theora files. After a
6816 while, the desktop file browsers in Debian started to handle the
6817 output from gtk-recordmydesktop properly.</p>
6818
6819 <p>But history repeats itself. A few days ago I tested the music
6820 system Rosegarden again, and I discovered that the KDE and xfce file
6821 browsers did not know what to do with the Rosegarden project files
6822 (*.rg). I've reported <a href="http://bugs.debian.org/825993">the
6823 rosegarden problem to BTS</a> and a fix is commited to git and will be
6824 included in the next upload. To increase the chance of me remembering
6825 how to fix the problem next time some program fail to load its files
6826 from the file browser, here are some notes on how to fix it.</p>
6827
6828 <p>The file browsers in Debian in general operates on MIME types.
6829 There are two sources for the MIME type of a given file. The output from
6830 <tt>file --mime-type</tt> mentioned above, and the content of the
6831 shared MIME type registry (under /usr/share/mime/). The file MIME
6832 type is mapped to programs supporting the MIME type, and this
6833 information is collected from
6834 <a href="https://www.freedesktop.org/wiki/Specifications/desktop-entry-spec/">the
6835 desktop files</a> available in /usr/share/applications/. If there is
6836 one desktop file claiming support for the MIME type of the file, it is
6837 activated when asking to open a given file. If there are more, one
6838 can normally select which one to use by right-clicking on the file and
6839 selecting the wanted one using 'Open with' or similar. In general
6840 this work well. But it depend on each program picking a good MIME
6841 type (preferably
6842 <a href="http://www.iana.org/assignments/media-types/media-types.xhtml">a
6843 MIME type registered with IANA</a>), file and/or the shared MIME
6844 registry recognizing the file and the desktop file to list the MIME
6845 type in its list of supported MIME types.</p>
6846
6847 <p>The <tt>/usr/share/mime/packages/rosegarden.xml</tt> entry for
6848 <a href="http://www.freedesktop.org/wiki/Specifications/shared-mime-info-spec">the
6849 Shared MIME database</a> look like this:</p>
6850
6851 <p><blockquote><pre>
6852 &lt;?xml version="1.0" encoding="UTF-8"?&gt;
6853 &lt;mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info"&gt;
6854 &lt;mime-type type="audio/x-rosegarden"&gt;
6855 &lt;sub-class-of type="application/x-gzip"/&gt;
6856 &lt;comment&gt;Rosegarden project file&lt;/comment&gt;
6857 &lt;glob pattern="*.rg"/&gt;
6858 &lt;/mime-type&gt;
6859 &lt;/mime-info&gt;
6860 </pre></blockquote></p>
6861
6862 <p>This states that audio/x-rosegarden is a kind of application/x-gzip
6863 (it is a gzipped XML file). Note, it is much better to use an
6864 official MIME type registered with IANA than it is to make up ones own
6865 unofficial ones like the x-rosegarden type used by rosegarden.</p>
6866
6867 <p>The desktop file of the rosegarden program failed to list
6868 audio/x-rosegarden in its list of supported MIME types, causing the
6869 file browsers to have no idea what to do with *.rg files:</p>
6870
6871 <p><blockquote><pre>
6872 % grep Mime /usr/share/applications/rosegarden.desktop
6873 MimeType=audio/x-rosegarden-composition;audio/x-rosegarden-device;audio/x-rosegarden-project;audio/x-rosegarden-template;audio/midi;
6874 X-KDE-NativeMimeType=audio/x-rosegarden-composition
6875 %
6876 </pre></blockquote></p>
6877
6878 <p>The fix was to add "audio/x-rosegarden;" at the end of the
6879 MimeType= line.</p>
6880
6881 <p>If you run into a file which fail to open the correct program when
6882 selected from the file browser, please check out the output from
6883 <tt>file --mime-type</tt> for the file, ensure the file ending and
6884 MIME type is registered somewhere under /usr/share/mime/ and check
6885 that some desktop file under /usr/share/applications/ is claiming
6886 support for this MIME type. If not, please report a bug to have it
6887 fixed. :)</p>
6888
6889 </div>
6890 <div class="tags">
6891
6892
6893 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>.
6894
6895
6896 </div>
6897 </div>
6898 <div class="padding"></div>
6899
6900 <div class="entry">
6901 <div class="title">
6902 <a href="http://people.skolelinux.org/pere/blog/Tor___from_its_creators_mouth_11_years_ago.html">Tor - from its creators mouth 11 years ago</a>
6903 </div>
6904 <div class="date">
6905 28th May 2016
6906 </div>
6907 <div class="body">
6908 <p>A little more than 11 years ago, one of the creators of Tor, and
6909 the current President of <a href="https://www.torproject.org/">the Tor
6910 project</a>, Roger Dingledine, gave a talk for the members of the
6911 <a href="http://www.nuug.no/">Norwegian Unix User group</a> (NUUG). A
6912 video of the talk was recorded, and today, thanks to the great help
6913 from David Noble, I finally was able to publish the video of the talk
6914 on Frikanalen, the Norwegian open channel TV station where NUUG
6915 currently publishes its talks. You can
6916 <a href="http://frikanalen.no/se">watch the live stream using a web
6917 browser</a> with WebM support, or check out the recording on the video
6918 on demand page for the talk
6919 "<a href="http://beta.frikanalen.no/video/625599">Tor: Anonymous
6920 communication for the US Department of Defence...and you.</a>".</p>
6921
6922 <p>Here is the video included for those of you using browsers with
6923 HTML video and Ogg Theora support:</p>
6924
6925 <p><video width="70%" poster="http://simula.gunkies.org/media/625599/large_thumb/20050421-tor-frikanalen.jpg" controls>
6926 <source src="http://simula.gunkies.org/media/625599/theora/20050421-tor-frikanalen.ogv" type="video/ogg"/>
6927 </video></p>
6928
6929 <p>I guess the gist of the talk can be summarised quite simply: If you
6930 want to help the military in USA (and everyone else), use Tor. :)</p>
6931
6932 </div>
6933 <div class="tags">
6934
6935
6936 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
6937
6938
6939 </div>
6940 </div>
6941 <div class="padding"></div>
6942
6943 <div class="entry">
6944 <div class="title">
6945 <a href="http://people.skolelinux.org/pere/blog/Isenkram_with_PackageKit_support___new_version_0_23_available_in_Debian_unstable.html">Isenkram with PackageKit support - new version 0.23 available in Debian unstable</a>
6946 </div>
6947 <div class="date">
6948 25th May 2016
6949 </div>
6950 <div class="body">
6951 <p><a href="https://tracker.debian.org/pkg/isenkram">The isenkram
6952 system</a> is a user-focused solution in Debian for handling hardware
6953 related packages. The idea is to have a database of mappings between
6954 hardware and packages, and pop up a dialog suggesting for the user to
6955 install the packages to use a given hardware dongle. Some use cases
6956 are when you insert a Yubikey, it proposes to install the software
6957 needed to control it; when you insert a braille reader list it
6958 proposes to install the packages needed to send text to the reader;
6959 and when you insert a ColorHug screen calibrator it suggests to
6960 install the driver for it. The system work well, and even have a few
6961 command line tools to install firmware packages and packages for the
6962 hardware already in the machine (as opposed to hotpluggable hardware).</p>
6963
6964 <p>The system was initially written using aptdaemon, because I found
6965 good documentation and example code on how to use it. But aptdaemon
6966 is going away and is generally being replaced by
6967 <a href="http://www.freedesktop.org/software/PackageKit/">PackageKit</a>,
6968 so Isenkram needed a rewrite. And today, thanks to the great patch
6969 from my college Sunil Mohan Adapa in the FreedomBox project, the
6970 rewrite finally took place. I've just uploaded a new version of
6971 Isenkram into Debian Unstable with the patch included, and the default
6972 for the background daemon is now to use PackageKit. To check it out,
6973 install the <tt>isenkram</tt> package and insert some hardware dongle
6974 and see if it is recognised.</p>
6975
6976 <p>If you want to know what kind of packages isenkram would propose for
6977 the machine it is running on, you can check out the isenkram-lookup
6978 program. This is what it look like on a Thinkpad X230:</p>
6979
6980 <p><blockquote><pre>
6981 % isenkram-lookup
6982 bluez
6983 cheese
6984 fprintd
6985 fprintd-demo
6986 gkrellm-thinkbat
6987 hdapsd
6988 libpam-fprintd
6989 pidgin-blinklight
6990 thinkfan
6991 tleds
6992 tp-smapi-dkms
6993 tp-smapi-source
6994 tpb
6995 %p
6996 </pre></blockquote></p>
6997
6998 <p>The hardware mappings come from several places. The preferred way
6999 is for packages to announce their hardware support using
7000 <a href="https://www.freedesktop.org/software/appstream/docs/">the
7001 cross distribution appstream system</a>.
7002 See
7003 <a href="http://people.skolelinux.org/pere/blog/tags/isenkram/">previous
7004 blog posts about isenkram</a> to learn how to do that.</p>
7005
7006 </div>
7007 <div class="tags">
7008
7009
7010 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram</a>.
7011
7012
7013 </div>
7014 </div>
7015 <div class="padding"></div>
7016
7017 <div class="entry">
7018 <div class="title">
7019 <a href="http://people.skolelinux.org/pere/blog/Discharge_rate_estimate_in_new_battery_statistics_collector_for_Debian.html">Discharge rate estimate in new battery statistics collector for Debian</a>
7020 </div>
7021 <div class="date">
7022 23rd May 2016
7023 </div>
7024 <div class="body">
7025 <p>Yesterday I updated the
7026 <a href="https://tracker.debian.org/pkg/battery-stats">battery-stats
7027 package in Debian</a> with a few patches sent to me by skilled and
7028 enterprising users. There were some nice user and visible changes.
7029 First of all, both desktop menu entries now work. A design flaw in
7030 one of the script made the history graph fail to show up (its PNG was
7031 dumped in ~/.xsession-errors) if no controlling TTY was available.
7032 The script worked when called from the command line, but not when
7033 called from the desktop menu. I changed this to look for a DISPLAY
7034 variable or a TTY before deciding where to draw the graph, and now the
7035 graph window pop up as expected.</p>
7036
7037 <p>The next new feature is a discharge rate estimator in one of the
7038 graphs (the one showing the last few hours). New is also the user of
7039 colours showing charging in blue and discharge in red. The percentages
7040 of this graph is relative to last full charge, not battery design
7041 capacity.</p>
7042
7043 <p align="center"><img src="http://people.skolelinux.org/pere/blog/images/2016-05-23-battery-stats-rate.png"/></p>
7044
7045 <p>The other graph show the entire history of the collected battery
7046 statistics, comparing it to the design capacity of the battery to
7047 visualise how the battery life time get shorter over time. The red
7048 line in this graph is what the previous graph considers 100 percent:
7049
7050 <p align="center"><img src="http://people.skolelinux.org/pere/blog/images/2016-05-23-battery-stats-history.png"/></p>
7051
7052 <p>In this graph you can see that I only charge the battery to 80
7053 percent of last full capacity, and how the capacity of the battery is
7054 shrinking. :(</p>
7055
7056 <p>The last new feature is in the collector, which now will handle
7057 more hardware models. On some hardware, Linux power supply
7058 information is stored in /sys/class/power_supply/ACAD/, while the
7059 collector previously only looked in /sys/class/power_supply/AC/. Now
7060 both are checked to figure if there is power connected to the
7061 machine.</p>
7062
7063 <p>If you are interested in how your laptop battery is doing, please
7064 check out the
7065 <a href="https://tracker.debian.org/pkg/battery-stats">battery-stats</a>
7066 in Debian unstable, or rebuild it on Jessie to get it working on
7067 Debian stable. :) The upstream source is available from <a
7068 href="https://github.com/petterreinholdtsen/battery-stats">github</a>.
7069 Patches are very welcome.</p>
7070
7071 <p>As usual, if you use Bitcoin and want to show your support of my
7072 activities, please send Bitcoin donations to my address
7073 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
7074
7075 </div>
7076 <div class="tags">
7077
7078
7079 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>.
7080
7081
7082 </div>
7083 </div>
7084 <div class="padding"></div>
7085
7086 <div class="entry">
7087 <div class="title">
7088 <a href="http://people.skolelinux.org/pere/blog/French_edition_of_Lawrence_Lessigs_book_Cultura_Libre_on_Amazon_and_Barnes___Noble.html">French edition of Lawrence Lessigs book Cultura Libre on Amazon and Barnes & Noble</a>
7089 </div>
7090 <div class="date">
7091 21st May 2016
7092 </div>
7093 <div class="body">
7094 <p>A few weeks ago the French paperback edition of Lawrence Lessigs
7095 2004 book Cultura Libre was published. Today I noticed that the book
7096 is now available from book stores. You can now buy it from
7097 <a href="http://www.amazon.com/Culture-Libre-French-Lawrence-Lessig/dp/8269018260">Amazon</a>
7098 ($19.99),
7099 <a href="http://www.barnesandnoble.com/w/culture-libre-lawrence-lessig/1123776705">Barnes
7100 & Noble</a> ($?) and as always from
7101 <a href="http://www.lulu.com/shop/lawrence-lessig/culture-libre/paperback/product-22645082.html">Lulu.com</a>
7102 ($19.99). The revenue is donated to the Creative Commons project. If
7103 you buy from Lulu.com, they currently get $10.59, while if you buy
7104 from one of the book stores most of the revenue go to the book store
7105 and the Creative Commons project get much (not sure how much
7106 less).</p>
7107
7108 <p>I was a bit surprised to discover that there is a kindle edition
7109 sold by Amazon Digital Services LLC on Amazon. Not quite sure how
7110 that edition was created, but if you want to download a electronic
7111 edition (PDF, EPUB, Mobi) generated from the same files used to create
7112 the paperback edition, they are
7113 <a href="https://github.com/petterreinholdtsen/free-culture-lessig">available
7114 from github</a>.</p>
7115
7116 </div>
7117 <div class="tags">
7118
7119
7120 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>.
7121
7122
7123 </div>
7124 </div>
7125 <div class="padding"></div>
7126
7127 <div class="entry">
7128 <div class="title">
7129 <a href="http://people.skolelinux.org/pere/blog/I_want_the_courts_to_be_involved_before_the_police_can_hijack_a_news_site_DNS_domain___domstolkontroll_.html">I want the courts to be involved before the police can hijack a news site DNS domain (#domstolkontroll)</a>
7130 </div>
7131 <div class="date">
7132 19th May 2016
7133 </div>
7134 <div class="body">
7135 <p>I just donated to the
7136 <a href="http://www.nuug.no/dns-beslag-donasjon.shtml">NUUG defence
7137 "fond"</a> to fund the effort in Norway to get the seizure of the news
7138 site popcorn-time.no tested in court. I hope everyone that agree with
7139 me will do the same.</p>
7140
7141 <p>Would you be worried if you knew the police in your country could
7142 hijack DNS domains of news sites covering free software system without
7143 talking to a judge first? I am. What if the free software system
7144 combined search engine lookups, bittorrent downloads and video playout
7145 and was called Popcorn Time? Would that affect your view? It still
7146 make me worried.</p>
7147
7148 <p>In March 2016, the Norwegian police seized (as in forced NORID to
7149 change the IP address pointed to by it to one controlled by the
7150 police) the DNS domain popcorn-time.no, without any supervision from
7151 the courts. I did not know about the web site back then, and assumed
7152 the courts had been involved, and was very surprised when I discovered
7153 that the police had hijacked the DNS domain without asking a judge for
7154 permission first. I was even more surprised when I had a look at
7155 <a href="https://web.archive.org/web/*/http://popcorn-time.no">the web
7156 site content on the Internet Archive</A>, and only found news coverage
7157 about Popcorn Time, not any material published without the right
7158 holders permissions.</p>
7159
7160 <p>The seizure was widely covered in the Norwegian press (see for
7161 example <a href="http://www.hegnar.no/Nyheter/Naeringsliv/2016/03/Popcorn-time.no-beslaglagt-av-OEkokrim">Hegnar Online</a> and
7162 <a href="http://itavisen.no/2016/03/08/okokrim-har-beslaglagt-popcorn-time-no/">ITavisen<a/>
7163 and
7164 <a href="http://www.nrk.no/kultur/okokrim-gar-til-aksjon-mot-popcorn-time-1.12842452">NRK</a>),
7165 at first due to the press release sent out by Økokrim, but then based
7166 on
7167 <a href="http://blogg.torvund.net/2016/03/09/okokrims-beslag-i-domenet-popcorn-time-no/">protests
7168 from the law professor Olav Torvund</a> and
7169 <a href="http://www.klassekampen.no/article/20160311/ARTICLE/160319995">lawyer
7170 Jon Wessel-Aas</a>. It even got some
7171 <a href="https://torrentfreak.com/norwegian-authorities-sued-over-popcorn-time-domain-seizure-160418/">coverage
7172 on TorrentFreak</a>.</p>
7173
7174 <p>I
7175 <a href="http://people.skolelinux.org/pere/blog/NUUG_contests_Norwegian_police_DNS_seizure_of_popcorn_time_no.html">
7176 wrote about the case a month ago</a>, when the
7177 <a href="http://www.nuug.no/">Norwegian Unix User Group</a> (NUUG),
7178 where I am an active member, decided to ask the courts to test this seizure.
7179 The request was denied, but NUUG and its co-requestor EFN have not
7180 given up, and now they are rallying for support to get the seizure
7181 legally challenged. They accept both bank and Bitcoin transfer for
7182 those that want to support the request.</p>
7183
7184 <p>If you as me believe news sites about free software should not be
7185 censored, even if the free software have both legal and illegal
7186 applications, and that DNS hijacking should be tested by the courts, I
7187 suggest you <a href="http://www.nuug.no/dns-beslag-donasjon.shtml">show
7188 your support by donating to NUUG</a>.</a>
7189
7190 </div>
7191 <div class="tags">
7192
7193
7194 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>.
7195
7196
7197 </div>
7198 </div>
7199 <div class="padding"></div>
7200
7201 <div class="entry">
7202 <div class="title">
7203 <a href="http://people.skolelinux.org/pere/blog/Debian_now_with_ZFS_on_Linux_included.html">Debian now with ZFS on Linux included</a>
7204 </div>
7205 <div class="date">
7206 12th May 2016
7207 </div>
7208 <div class="body">
7209 <p>Today, after many years of hard work from many people,
7210 <a href="http://zfsonlinux.org/">ZFS for Linux</a> finally entered
7211 Debian. The package status can be seen on
7212 <a href="https://tracker.debian.org/pkg/zfs-linux">the package tracker
7213 for zfs-linux</a>. and
7214 <a href="https://qa.debian.org/developer.php?login=pkg-zfsonlinux-devel@lists.alioth.debian.org">the
7215 team status page</a>. If you want to help out, please join us.
7216 <a href="http://anonscm.debian.org/gitweb/?p=pkg-zfsonlinux/zfs.git">The
7217 source code</a> is available via git on Alioth. It would also be
7218 great if you could help out with
7219 <a href="https://tracker.debian.org/pkg/dkms">the dkms package</a>, as
7220 it is an important piece of the puzzle to get ZFS working.</p>
7221
7222 </div>
7223 <div class="tags">
7224
7225
7226 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>.
7227
7228
7229 </div>
7230 </div>
7231 <div class="padding"></div>
7232
7233 <div class="entry">
7234 <div class="title">
7235 <a href="http://people.skolelinux.org/pere/blog/What_is_the_best_multimedia_player_in_Debian_.html">What is the best multimedia player in Debian?</a>
7236 </div>
7237 <div class="date">
7238 8th May 2016
7239 </div>
7240 <div class="body">
7241 <p><strong>Where I set out to figure out which multimedia player in
7242 Debian claim support for most file formats.</strong></p>
7243
7244 <p>A few years ago, I had a look at the media support for Browser
7245 plugins in Debian, to get an idea which plugins to include in Debian
7246 Edu. I created a script to extract the set of supported MIME types
7247 for each plugin, and used this to find out which multimedia browser
7248 plugin supported most file formats / media types.
7249 <a href="https://wiki.debian.org/DebianEdu/BrowserMultimedia">The
7250 result</a> can still be seen on the Debian wiki, even though it have
7251 not been updated for a while. But browser plugins are less relevant
7252 these days, so I thought it was time to look at standalone
7253 players.</p>
7254
7255 <p>A few days ago I was tired of VLC not being listed as a viable
7256 player when I wanted to play videos from the Norwegian National
7257 Broadcasting Company, and decided to investigate why. The cause is a
7258 <a href="https://bugs.debian.org/822245">missing MIME type in the VLC
7259 desktop file</a>. In the process I wrote a script to compare the set
7260 of MIME types announced in the desktop file and the browser plugin,
7261 only to discover that there is quite a large difference between the
7262 two for VLC. This discovery made me dig up the script I used to
7263 compare browser plugins, and adjust it to compare desktop files
7264 instead, to try to figure out which multimedia player in Debian
7265 support most file formats.</p>
7266
7267 <p>The result can be seen on the Debian Wiki, as
7268 <a href="https://wiki.debian.org/DebianMultimedia/PlayerSupport">a
7269 table listing all MIME types supported by one of the packages included
7270 in the table</a>, with the package supporting most MIME types being
7271 listed first in the table.</p>
7272
7273 </p>The best multimedia player in Debian? It is totem, followed by
7274 parole, kplayer, mpv, vlc, smplayer mplayer-gui gnome-mpv and
7275 kmplayer. Time for the other players to update their announced MIME
7276 support?</p>
7277
7278 </div>
7279 <div class="tags">
7280
7281
7282 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>.
7283
7284
7285 </div>
7286 </div>
7287 <div class="padding"></div>
7288
7289 <div class="entry">
7290 <div class="title">
7291 <a href="http://people.skolelinux.org/pere/blog/The_Pyra___handheld_computer_with_Debian_preinstalled.html">The Pyra - handheld computer with Debian preinstalled</a>
7292 </div>
7293 <div class="date">
7294 4th May 2016
7295 </div>
7296 <div class="body">
7297 A friend of mine made me aware of
7298 <a href="https://pyra-handheld.com/boards/pages/pyra/">The Pyra</a>, a
7299 handheld computer which will be delivered with Debian preinstalled. I
7300 would love to get one of those for my birthday. :)</p>
7301
7302 <p>The machine is a complete ARM-based PC with micro HDMI, SATA, USB
7303 plugs and many others connectors, and include a full keyboard and a 5"
7304 LCD touch screen. The 6000mAh battery is claimed to provide a whole
7305 day of battery life time, but I have not seen any independent tests
7306 confirming this. The vendor is still collecting preorders, and the
7307 last I heard last night was that 22 more orders were needed before
7308 production started.</p>
7309
7310 <p>As far as I know, this is the first handheld preinstalled with
7311 Debian. Please let me know if you know of any others. Is it the
7312 first computer being sold with Debian preinstalled?</p>
7313
7314 </div>
7315 <div class="tags">
7316
7317
7318 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>.
7319
7320
7321 </div>
7322 </div>
7323 <div class="padding"></div>
7324
7325 <div class="entry">
7326 <div class="title">
7327 <a href="http://people.skolelinux.org/pere/blog/NUUG_contests_Norwegian_police_DNS_seizure_of_popcorn_time_no.html">NUUG contests Norwegian police DNS seizure of popcorn-time.no</a>
7328 </div>
7329 <div class="date">
7330 18th April 2016
7331 </div>
7332 <div class="body">
7333 <p>It is days like today I am really happy to be a member of
7334 <a href="http://www.nuug.no/">the Norwegian Unix User group</a>, a
7335 member association for those of us believing in free software, open
7336 standards and unix-like operating systems. NUUG announced today it
7337 will
7338 <a href="http://www.nuug.no/news/Pressemelding__NUUG_og_EFN_begj_rer_rettslig_pr_ving_for_DNS_domenebeslag_av_popcorn_time_no.shtml">try
7339 to bring the seizure of the DNS domain popcorn-time.no as
7340 unlawful</a>, to stand up for the principle that writing about a
7341 controversial topic is not infringing copyrights, and censuring web
7342 pages by hijacking DNS domain should be decided by the courts, not the
7343 police. The DNS domain was seized by the Norwegian National Authority
7344 for Investigation and Prosecution of Economic and Environmental Crime
7345 a month ago. I hope this bring more paying members to NUUG to give
7346 the association the financial muscle needed to bring this case as far
7347 as it must go to stop this kind of DNS hijacking.</p>
7348
7349 </div>
7350 <div class="tags">
7351
7352
7353 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>.
7354
7355
7356 </div>
7357 </div>
7358 <div class="padding"></div>
7359
7360 <div class="entry">
7361 <div class="title">
7362 <a href="http://people.skolelinux.org/pere/blog/I_F__Stone___an_inspiration_for_us_all.html">I.F. Stone - an inspiration for us all</a>
7363 </div>
7364 <div class="date">
7365 13th April 2016
7366 </div>
7367 <div class="body">
7368 <p>I first got to know I.F. Stone when I came across an article by Jon
7369 Schwarz on The Intercept
7370 <a href="https://theintercept.com/2015/05/07/new-documentary-legacy-f-stone/">about
7371 his extraordinary contribution to investigative journalism in
7372 USA</a>. The article is about a new documentary in two parts
7373 (<a href="https://vimeo.com/123974841">part one is 12 minutes</a> and
7374 <a href="https://vimeo.com/123974842">part two is 30 minutes</a>), and
7375 I found both truly fascinating. It is amazing what he was able to
7376 find by digging up public sources and government papers. He
7377 documented lots of government abuse and cover ups, and I find
7378 <a href="http://www.ifstone.org/weekly.php">his weekly news letters</a>
7379 inspiring to read even today.</p>
7380
7381 <p><blockquote>
7382 All governments are run by liars and nothing they say should be believed.
7383 <br>- I. F. Stone
7384 </blockquote></p>
7385
7386 <p>His starting point was that reporters should not assume governments
7387 and corporations are telling the truth, but verify all their claims as
7388 much as possible. I wonder how many Norwegian reporters can be said
7389 to follow the principles of I. F. Stone. They are definitely in short
7390 supply. If you, like me half a year ago, have never heard of him,
7391 check him out.</p>
7392
7393 </div>
7394 <div class="tags">
7395
7396
7397 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn</a>.
7398
7399
7400 </div>
7401 </div>
7402 <div class="padding"></div>
7403
7404 <div class="entry">
7405 <div class="title">
7406 <a href="http://people.skolelinux.org/pere/blog/A_French_paperback_edition_of_the_book_Free_Culture_by_Lawrence_Lessig_is_now_available.html">A French paperback edition of the book Free Culture by Lawrence Lessig is now available</a>
7407 </div>
7408 <div class="date">
7409 12th April 2016
7410 </div>
7411 <div class="body">
7412 <p>I'm happy to report that
7413 <a href="http://www.lulu.com/shop/lawrence-lessig/culture-libre/paperback/product-22645082.html">the
7414 French paperback edition</a> of
7415 <a href="https://github.com/petterreinholdtsen/free-culture-lessig">my
7416 project to translate</a> the <a href="http://free-culture.cc/">Free
7417 Culture</a> book by Lawrence Lessig is now available for sale on
7418 Lulu.com. Once I have formally verified my proof reading copy, which
7419 should be in the mail, the paperback edition should be available in
7420 book stores like Amazon and Barnes & Noble too.</p>
7421
7422 <p>This French edition, Culture Libre, is the work of the
7423 <a href="http://dblatex.sourceforge.net/">dblatex</a> developer Benoît
7424 Guillon, who created the PO file from the initial translation
7425 available from
7426 <a href="http://www.wikilivres.ca/wiki/Culture_libre">the Wikilivres
7427 wiki pages</a> and completed and corrected the translation to match
7428 the original docbook edition my project is using, as well as
7429 coordinated the proof reading of the final result. I believe the end
7430 result look great, but I am biased and do not read French. In
7431 addition to the paperback edition, the book is available in PDF, EPUB
7432 and Mobi format from the github project page linked to above.</p>
7433
7434 <p>When enabling book store distribution on Lulu.com, I had to nearly
7435 triple the price to allow the book stores some profit. I also had to
7436 accept that I will get some revenue when a book is sold via Lulu.com.
7437 But because of the non-commercial clause in the book license
7438 (CC-BY-NC), this might be a problem. To bypass the problem I
7439 discussed how to handle the revenue with the author, and we agreed
7440 that the revenue for these editions go to the
7441 <a href="https://creativecommons.org/">Creative Commons non-profit
7442 Corporation</a> who handle donations to the Creative Commons project.
7443 So far they have earned around USD 70 on sales of the
7444 <a href="http://www.lulu.com/shop/lawrence-lessig/free-culture/paperback/product-22440520.html">English</a>
7445 and
7446 <a href="http://www.lulu.com/shop/lawrence-lessig/fri-kultur/paperback/product-22441576.html">Norwegian
7447 Bokmål</a> editions, according to Lulu.com. They will get the revenue
7448 for the French edition too. Their revenue is higher if you buy the
7449 book directly from Lulu.com instead of via a book store, so I
7450 recommend you buy directly from Lulu.com.</p>
7451
7452 <p>Perhaps you would like to get the book published in your language?
7453 The translation is done using a web based translator service, so the
7454 technical bar to enter is fairly low. Get in touch if you would like
7455 to make this happen.</p>
7456
7457 </div>
7458 <div class="tags">
7459
7460
7461 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>.
7462
7463
7464 </div>
7465 </div>
7466 <div class="padding"></div>
7467
7468 <div class="entry">
7469 <div class="title">
7470 <a href="http://people.skolelinux.org/pere/blog/Lets_make_a_Norwegian_Bokm_l_edition_of_The_Debian_Administrator_s_Handbook.html">Lets make a Norwegian Bokmål edition of The Debian Administrator's Handbook</a>
7471 </div>
7472 <div class="date">
7473 10th April 2016
7474 </div>
7475 <div class="body">
7476 <p>During this weekends
7477 <a href="http://www.nuug.no/news/Oslo__Takk_for_feilfiksingsfesten.shtml">bug
7478 squashing party and developer gathering</a>, we decided to do our part
7479 to make sure there are good books about Debian available in Norwegian
7480 Bokmål, and got in touch with the people behind the
7481 <a href="http://debian-handbook.info/">Debian Administrator's Handbook
7482 project</a> to get started. If you want to help out, please start
7483 contributing using
7484 <a href="https://hosted.weblate.org/projects/debian-handbook/">the
7485 hosted weblate project page</a>, and get in touch using
7486 <a href="http://lists.alioth.debian.org/mailman/listinfo/debian-handbook-translators">the
7487 translators mailing list</a>. Please also check out
7488 <a href="https://debian-handbook.info/contribute/">the instructions for
7489 contributors</a>.</p>
7490
7491 <p>The book is already available on paper in English, French and
7492 Japanese, and our goal is to get it available on paper in Norwegian
7493 Bokmål too. In addition to the paper edition, there are also EPUB and
7494 Mobi versions available. And there are incomplete translations
7495 available for many more languages.</p>
7496
7497 </div>
7498 <div class="tags">
7499
7500
7501 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian-handbook">debian-handbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
7502
7503
7504 </div>
7505 </div>
7506 <div class="padding"></div>
7507
7508 <div class="entry">
7509 <div class="title">
7510 <a href="http://people.skolelinux.org/pere/blog/One_in_two_hundred_Debian_users_using_ZFS_on_Linux_.html">One in two hundred Debian users using ZFS on Linux?</a>
7511 </div>
7512 <div class="date">
7513 7th April 2016
7514 </div>
7515 <div class="body">
7516 <p>Just for fun I had a look at the popcon number of ZFS related
7517 packages in Debian, and was quite surprised with what I found. I use
7518 ZFS myself at home, but did not really expect many others to do so.
7519 But I might be wrong.</p>
7520
7521 <p>According to
7522 <a href="https://qa.debian.org/popcon.php?package=spl-linux">the popcon
7523 results for spl-linux</a>, there are 1019 Debian installations, or
7524 0.53% of the population, with the package installed. As far as I know
7525 the only use of the spl-linux package is as a support library for ZFS
7526 on Linux, so I use it here as proxy for measuring the number of ZFS
7527 installation on Linux in Debian. In the kFreeBSD variant of Debian
7528 the ZFS feature is already available, and there
7529 <a href="https://qa.debian.org/popcon.php?package=zfsutils">the popcon
7530 results for zfsutils</a> show 1625 Debian installations or 0.84% of
7531 the population. So I guess I am not alone in using ZFS on Debian.</p>
7532
7533 <p>But even though the Debian project leader Lucas Nussbaum
7534 <a href="https://lists.debian.org/debian-devel-announce/2015/04/msg00006.html">announced
7535 in April 2015</a> that the legal obstacles blocking ZFS on Debian were
7536 cleared, the package is still not in Debian. The package is again in
7537 the NEW queue. Several uploads have been rejected so far because the
7538 debian/copyright file was incomplete or wrong, but there is no reason
7539 to give up. The current status can be seen on
7540 <a href="https://qa.debian.org/developer.php?login=pkg-zfsonlinux-devel@lists.alioth.debian.org">the
7541 team status page</a>, and
7542 <a href="http://anonscm.debian.org/gitweb/?p=pkg-zfsonlinux/zfs.git">the
7543 source code</a> is available on Alioth.</p>
7544
7545 <p>As I want ZFS to be included in next version of Debian to make sure
7546 my home server can function in the future using only official Debian
7547 packages, and the current blocker is to get the debian/copyright file
7548 accepted by the FTP masters in Debian, I decided a while back to try
7549 to help out the team. This was the background for my blog post about
7550 <a href="http://people.skolelinux.org/pere/blog/Creating__updating_and_checking_debian_copyright_semi_automatically.html">creating,
7551 updating and checking debian/copyright semi-automatically</a>, and I
7552 used the techniques I explored there to try to find any errors in the
7553 copyright file. It is not very easy to check every one of the around
7554 2000 files in the source package, but I hope we this time got it
7555 right. If you want to help out, check out the git source and try to
7556 find missing entries in the debian/copyright file.</p>
7557
7558 </div>
7559 <div class="tags">
7560
7561
7562 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>.
7563
7564
7565 </div>
7566 </div>
7567 <div class="padding"></div>
7568
7569 <div class="entry">
7570 <div class="title">
7571 <a href="http://people.skolelinux.org/pere/blog/syslog_trusted_timestamp___chain_of_trusted_timestamps_for_your_syslog.html">syslog-trusted-timestamp - chain of trusted timestamps for your syslog</a>
7572 </div>
7573 <div class="date">
7574 2nd April 2016
7575 </div>
7576 <div class="body">
7577 <p>Two years ago, I had
7578 <a href="http://people.skolelinux.org/pere/blog/Public_Trusted_Timestamping_services_for_everyone.html">a
7579 look at trusted timestamping options available</a>, and among
7580 other things noted a still open
7581 <a href="https://bugs.debian.org/742553">bug in the tsget script</a>
7582 included in openssl that made it harder than necessary to use openssl
7583 as a trusted timestamping client. A few days ago I was told
7584 <a href="https:/www.difi.no/">the Norwegian government office DIFI</a> is
7585 close to releasing their own trusted timestamp service, and in the
7586 process I was happy to learn about a replacement for the tsget script
7587 using only curl:</p>
7588
7589 <p><pre>
7590 openssl ts -query -data "/etc/shells" -cert -sha256 -no_nonce \
7591 | curl -s -H "Content-Type: application/timestamp-query" \
7592 --data-binary "@-" http://zeitstempel.dfn.de > etc-shells.tsr
7593 openssl ts -reply -text -in etc-shells.tsr
7594 </pre></p>
7595
7596 <p>This produces a binary timestamp file (etc-shells.tsr) which can be
7597 used to verify that the content of the file /etc/shell with the
7598 calculated sha256 hash existed at the point in time when the request
7599 was made. The last command extract the content of the etc-shells.tsr
7600 in human readable form. The idea behind such timestamp is to be able
7601 to prove using cryptography that the content of a file have not
7602 changed since the file was stamped.</p>
7603
7604 <p>To verify that the file on disk match the public key signature in
7605 the timestamp file, run the following commands. It make sure you have
7606 the required certificate for the trusted timestamp service available
7607 and use it to compare the file content with the timestamp. In
7608 production, one should of course use a better method to verify the
7609 service certificate.</p>
7610
7611 <p><pre>
7612 wget -O ca-cert.txt https://pki.pca.dfn.de/global-services-ca/pub/cacert/chain.txt
7613 openssl ts -verify -data /etc/shells -in etc-shells.tsr -CAfile ca-cert.txt -text
7614 </pre></p>
7615
7616 <p>Wikipedia have a lot more information about
7617 <a href="https://en.wikipedia.org/wiki/Trusted_timestamping">trusted
7618 Timestamping</a> and
7619 <a href="https://en.wikipedia.org/wiki/Linked_timestamping">linked
7620 timestamping</a>, and there are several trusted timestamping services
7621 around, both as commercial services and as free and public services.
7622 Among the latter is
7623 <a href="https://www.pki.dfn.de/zeitstempeldienst/">the
7624 zeitstempel.dfn.de service</a> mentioned above and
7625 <a href="https://freetsa.org/">freetsa.org service</a> linked to from the
7626 wikipedia web site. I believe the DIFI service should show up on
7627 https://tsa.difi.no, but it is not available to the public at the
7628 moment. I hope this will change when it is into production. The
7629 <a href="https://tools.ietf.org/html/rfc3161">RFC 3161</a> trusted
7630 timestamping protocol standard is even implemented in LibreOffice,
7631 Microsoft Office and Adobe Acrobat, making it possible to verify when
7632 a document was created.</p>
7633
7634 <p>I would find it useful to be able to use such trusted timestamp
7635 service to make it possible to verify that my stored syslog files have
7636 not been tampered with. This is not a new idea. I found one example
7637 implemented on the Endian network appliances where
7638 <a href="http://help.endian.com/entries/21518508-Enabling-Timestamping-on-log-files-">the
7639 configuration of such feature was described in 2012</a>.</p>
7640
7641 <p>But I could not find any free implementation of such feature when I
7642 searched, so I decided to try to
7643 <a href="https://github.com/petterreinholdtsen/syslog-trusted-timestamp">build
7644 a prototype named syslog-trusted-timestamp</a>. My idea is to
7645 generate a timestamp of the old log files after they are rotated, and
7646 store the timestamp in the new log file just after rotation. This
7647 will form a chain that would make it possible to see if any old log
7648 files are tampered with. But syslog is bad at handling kilobytes of
7649 binary data, so I decided to base64 encode the timestamp and add an ID
7650 and line sequence numbers to the base64 data to make it possible to
7651 reassemble the timestamp file again. To use it, simply run it like
7652 this:
7653
7654 <p><pre>
7655 syslog-trusted-timestamp /path/to/list-of-log-files
7656 </pre></p>
7657
7658 <p>This will send a timestamp from one or more timestamp services (not
7659 yet decided nor implemented) for each listed file to the syslog using
7660 logger(1). To verify the timestamp, the same program is used with the
7661 --verify option:</p>
7662
7663 <p><pre>
7664 syslog-trusted-timestamp --verify /path/to/log-file /path/to/log-with-timestamp
7665 </pre></p>
7666
7667 <p>The verification step is not yet well designed. The current
7668 implementation depend on the file path being unique and unchanging,
7669 and this is not a solid assumption. It also uses process number as
7670 timestamp ID, and this is bound to create ID collisions. I hope to
7671 have time to come up with a better way to handle timestamp IDs and
7672 verification later.</p>
7673
7674 <p>Please check out
7675 <a href="https://github.com/petterreinholdtsen/syslog-trusted-timestamp">the
7676 prototype for syslog-trusted-timestamp on github</a> and send
7677 suggestions and improvement, or let me know if there already exist a
7678 similar system for timestamping logs already to allow me to join
7679 forces with others with the same interest.</p>
7680
7681 <p>As usual, if you use Bitcoin and want to show your support of my
7682 activities, please send Bitcoin donations to my address
7683 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
7684
7685 </div>
7686 <div class="tags">
7687
7688
7689 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>.
7690
7691
7692 </div>
7693 </div>
7694 <div class="padding"></div>
7695
7696 <div class="entry">
7697 <div class="title">
7698 <a href="http://people.skolelinux.org/pere/blog/Full_battery_stats_collector_is_now_available_in_Debian.html">Full battery stats collector is now available in Debian</a>
7699 </div>
7700 <div class="date">
7701 23rd March 2016
7702 </div>
7703 <div class="body">
7704 <p>Since this morning, the battery-stats package in Debian include an
7705 extended collector that will collect the complete battery history for
7706 later processing and graphing. The original collector store the
7707 battery level as percentage of last full level, while the new
7708 collector also record battery vendor, model, serial number, design
7709 full level, last full level and current battery level. This make it
7710 possible to predict the lifetime of the battery as well as visualise
7711 the energy flow when the battery is charging or discharging.</p>
7712
7713 <p>The new tools are available in <tt>/usr/share/battery-stats/</tt>
7714 in the version 0.5.1 package in unstable. Get the new battery level graph
7715 and lifetime prediction by running:
7716
7717 <p><pre>
7718 /usr/share/battery-stats/battery-stats-graph /var/log/battery-stats.csv
7719 </pre></p>
7720
7721 <p>Or select the 'Battery Level Graph' from your application menu.</p>
7722
7723 <p>The flow in/out of the battery can be seen by running (no menu
7724 entry yet):</p>
7725
7726 <p><pre>
7727 /usr/share/battery-stats/battery-stats-graph-flow
7728 </pre></p>
7729
7730 <p>I'm not quite happy with the way the data is visualised, at least
7731 when there are few data points. The graphs look a bit better with a
7732 few years of data.</p>
7733
7734 <p>A while back one important feature I use in the battery stats
7735 collector broke in Debian. The scripts in
7736 <tt>/usr/lib/pm-utils/power.d/</tt> were no longer executed. I
7737 suspect it happened when Jessie started using systemd, but I do not
7738 know. The issue is reported as
7739 <a href="https://bugs.debian.org/818649">bug #818649</a> against
7740 pm-utils. I managed to work around it by adding an udev rule to call
7741 the collector script every time the power connector is connected and
7742 disconnected. With this fix in place it was finally time to make a
7743 new release of the package, and get it into Debian.</p>
7744
7745 <p>If you are interested in how your laptop battery is doing, please
7746 check out the
7747 <a href="https://tracker.debian.org/pkg/battery-stats">battery-stats</a>
7748 in Debian unstable, or rebuild it on Jessie to get it working on
7749 Debian stable. :) The upstream source is available from
7750 <a href="https://github.com/petterreinholdtsen/battery-stats">github</a>.
7751 As always, patches are very welcome.</p>
7752
7753 </div>
7754 <div class="tags">
7755
7756
7757 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>.
7758
7759
7760 </div>
7761 </div>
7762 <div class="padding"></div>
7763
7764 <div class="entry">
7765 <div class="title">
7766 <a href="http://people.skolelinux.org/pere/blog/UsingQR____Electronic__paper_invoices_using_JSON_and_QR_codes.html">UsingQR - "Electronic" paper invoices using JSON and QR codes</a>
7767 </div>
7768 <div class="date">
7769 19th March 2016
7770 </div>
7771 <div class="body">
7772 <p>Back in 2013 I proposed
7773 <a href="http://people.skolelinux.org/pere/blog/_Electronic__paper_invoices___using_vCard_in_a_QR_code.html">a
7774 way to make paper and PDF invoices easier to process electronically by
7775 adding a QR code with the key information about the invoice</a>. I
7776 suggested using vCard field definition, to get some standard format
7777 for name and address, but any format would work. I did not do
7778 anything about the proposal, but hoped someone one day would make
7779 something like it. It would make it possible to efficiently send
7780 machine readable invoices directly between seller and buyer.</p>
7781
7782 <p>This was the background when I came across a proposal and
7783 specification from the web based accounting and invoicing supplier
7784 <a href="http://www.visma.com/">Visma</a> in Sweden called
7785 <a href="http://usingqr.com/">UsingQR</a>. Their PDF invoices contain
7786 a QR code with the key information of the invoice in JSON format.
7787 This is the typical content of a QR code following the UsingQR
7788 specification (based on a real world example, some numbers replaced to
7789 get a more bogus entry). I've reformatted the JSON to make it easier
7790 to read. Normally this is all on one long line:</p>
7791
7792 <p><img src="http://people.skolelinux.org/pere/blog/images/2016-03-19-qr-invoice.png" align="right"><pre>
7793 {
7794 "vh":500.00,
7795 "vm":0,
7796 "vl":0,
7797 "uqr":1,
7798 "tp":1,
7799 "nme":"Din Leverandør",
7800 "cc":"NO",
7801 "cid":"997912345 MVA",
7802 "iref":"12300001",
7803 "idt":"20151022",
7804 "ddt":"20151105",
7805 "due":2500.0000,
7806 "cur":"NOK",
7807 "pt":"BBAN",
7808 "acc":"17202612345",
7809 "bc":"BIENNOK1",
7810 "adr":"0313 OSLO"
7811 }
7812 </pre></p>
7813
7814 </p>The interpretation of the fields can be found in the
7815 <a href="http://usingqr.com/wp-content/uploads/2014/06/UsingQR_specification1.pdf">format
7816 specification</a> (revision 2 from june 2014). The format seem to
7817 have most of the information needed to handle accounting and payment
7818 of invoices, at least the fields I have needed so far here in
7819 Norway.</p>
7820
7821 <p>Unfortunately, the site and document do not mention anything about
7822 the patent, trademark and copyright status of the format and the
7823 specification. Because of this, I asked the people behind it back in
7824 November to clarify. Ann-Christine Savlid (ann-christine.savlid (at)
7825 visma.com) replied that Visma had not applied for patent or trademark
7826 protection for this format, and that there were no copyright based
7827 usage limitations for the format. I urged her to make sure this was
7828 explicitly written on the web pages and in the specification, but
7829 unfortunately this has not happened yet. So I guess if there is
7830 submarine patents, hidden trademarks or a will to sue for copyright
7831 infringements, those starting to use the UsingQR format might be at
7832 risk, but if this happen there is some legal defense in the fact that
7833 the people behind the format claimed it was safe to do so. At least
7834 with patents, there is always
7835 <a href="http://www.paperspecs.com/paper-news/beware-the-qr-code-patent-trap/">a
7836 chance of getting sued...</a></p>
7837
7838 <p>I also asked if they planned to maintain the format in an
7839 independent standard organization to give others more confidence that
7840 they would participate in the standardization process on equal terms
7841 with Visma, but they had no immediate plans for this. Their plan was
7842 to work with banks to try to get more users of the format, and
7843 evaluate the way forward if the format proved to be popular. I hope
7844 they conclude that using an open standard organisation like
7845 <a href="http://www.ietf.org/">IETF</a> is the correct place to
7846 maintain such specification.</p>
7847
7848 <p><strong>Update 2016-03-20</strong>: Via Twitter I became aware of
7849 <a href="https://news.ycombinator.com/item?id=11319492">some comments
7850 about this blog post</a> that had several useful links and references to
7851 similar systems. In the Czech republic, the Czech Banking Association
7852 standard #26, with short name SPAYD, uses QR codes with payment
7853 information. More information is available from the Wikipedia page on
7854 <a href="https://en.wikipedia.org/wiki/Short_Payment_Descriptor">Short
7855 Payment Descriptor</a>. And in Germany, there is a system named
7856 <a href="http://www.bezahlcode.de/">BezahlCode</a>,
7857 (<a href="http://www.bezahlcode.de/wp-content/uploads/BezahlCode_TechDok.pdf">specification
7858 v1.8 2013-12-05 available as PDF</a>), which uses QR codes with
7859 URL-like formatting using "bank:" as the URI schema/protocol to
7860 provide the payment information. There is also the
7861 <a href="http://www.ferd-net.de/front_content.php?idcat=231">ZUGFeRD</a>
7862 file format that perhaps could be transfered using QR codes, but I am
7863 not sure if it is done already. Last, in Bolivia there are reports
7864 that tax information since november 2014 need to be printed in QR
7865 format on invoices. I have not been able to track down a
7866 specification for this format, because of my limited language skill
7867 sets.</p>
7868
7869 </div>
7870 <div class="tags">
7871
7872
7873 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>.
7874
7875
7876 </div>
7877 </div>
7878 <div class="padding"></div>
7879
7880 <div class="entry">
7881 <div class="title">
7882 <a href="http://people.skolelinux.org/pere/blog/Making_battery_measurements_a_little_easier_in_Debian.html">Making battery measurements a little easier in Debian</a>
7883 </div>
7884 <div class="date">
7885 15th March 2016
7886 </div>
7887 <div class="body">
7888 <p>Back in September, I blogged about
7889 <a href="http://people.skolelinux.org/pere/blog/The_life_and_death_of_a_laptop_battery.html">the
7890 system I wrote to collect statistics about my laptop battery</a>, and
7891 how it showed the decay and death of this battery (now replaced). I
7892 created a simple deb package to handle the collection and graphing,
7893 but did not want to upload it to Debian as there were already
7894 <a href="https://tracker.debian.org/pkg/battery-stats">a battery-stats
7895 package in Debian</a> that should do the same thing, and I did not see
7896 a point of uploading a competing package when battery-stats could be
7897 fixed instead. I reported a few bugs about its non-function, and
7898 hoped someone would step in and fix it. But no-one did.</p>
7899
7900 <p>I got tired of waiting a few days ago, and took matters in my own
7901 hands. The end result is that I am now the new upstream developer of
7902 battery stats (<a href="https://github.com/petterreinholdtsen/battery-stats">available from github</a>) and part of the team maintaining
7903 battery-stats in Debian, and the package in Debian unstable is finally
7904 able to collect battery status using the <tt>/sys/class/power_supply/</tt>
7905 information provided by the Linux kernel. If you install the
7906 battery-stats package from unstable now, you will be able to get a
7907 graph of the current battery fill level, to get some idea about the
7908 status of the battery. The source package build and work just fine in
7909 Debian testing and stable (and probably oldstable too, but I have not
7910 tested). The default graph you get for that system look like this:</p>
7911
7912 <p align="center"><img src="http://people.skolelinux.org/pere/blog/images/2016-03-15-battery-stats-graph-example.png" width="70%" align="center"></p>
7913
7914 <p>My plans for the future is to merge my old scripts into the
7915 battery-stats package, as my old scripts collected a lot more details
7916 about the battery. The scripts are merged into the upstream
7917 battery-stats git repository already, but I am not convinced they work
7918 yet, as I changed a lot of paths along the way. Will have to test a
7919 bit more before I make a new release.</p>
7920
7921 <p>I will also consider changing the file format slightly, as I
7922 suspect the way I combine several values into one field might make it
7923 impossible to know the type of the value when using it for processing
7924 and graphing.</p>
7925
7926 <p>If you would like I would like to keep an close eye on your laptop
7927 battery, check out the battery-stats package in
7928 <a href="https://tracker.debian.org/pkg/battery-stats">Debian</a> and
7929 on
7930 <a href="https://github.com/petterreinholdtsen/battery-stats">github</a>.
7931 I would love some help to improve the system further.</p>
7932
7933 </div>
7934 <div class="tags">
7935
7936
7937 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>.
7938
7939
7940 </div>
7941 </div>
7942 <div class="padding"></div>
7943
7944 <div class="entry">
7945 <div class="title">
7946 <a href="http://people.skolelinux.org/pere/blog/Creating__updating_and_checking_debian_copyright_semi_automatically.html">Creating, updating and checking debian/copyright semi-automatically</a>
7947 </div>
7948 <div class="date">
7949 19th February 2016
7950 </div>
7951 <div class="body">
7952 <p>Making packages for Debian requires quite a lot of attention to
7953 details. And one of the details is the content of the
7954 debian/copyright file, which should list all relevant licenses used by
7955 the code in the package in question, preferably in
7956 <a href="https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/">machine
7957 readable DEP5 format</a>.</p>
7958
7959 <p>For large packages with lots of contributors it is hard to write
7960 and update this file manually, and if you get some detail wrong, the
7961 package is normally rejected by the ftpmasters. So getting it right
7962 the first time around get the package into Debian faster, and save
7963 both you and the ftpmasters some work.. Today, while trying to figure
7964 out what was wrong with
7965 <a href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=686447">the
7966 zfsonlinux copyright file</a>, I decided to spend some time on
7967 figuring out the options for doing this job automatically, or at least
7968 semi-automatically.</p>
7969
7970 <p>Lucikly, there are at least two tools available for generating the
7971 file based on the code in the source package,
7972 <tt><a href="https://tracker.debian.org/pkg/debmake">debmake</a></tt>
7973 and <tt><a href="https://tracker.debian.org/pkg/cme">cme</a></tt>. I'm
7974 not sure which one of them came first, but both seem to be able to
7975 create a sensible draft file. As far as I can tell, none of them can
7976 be trusted to get the result just right, so the content need to be
7977 polished a bit before the file is OK to upload. I found the debmake
7978 option in
7979 <a href="http://goofying-with-debian.blogspot.com/2014/07/debmake-checking-source-against-dep-5.html">a
7980 blog posts from 2014</a>.
7981
7982 <p>To generate using debmake, use the -cc option:
7983
7984 <p><pre>
7985 debmake -cc > debian/copyright
7986 </pre></p>
7987
7988 <p>Note there are some problems with python and non-ASCII names, so
7989 this might not be the best option.</p>
7990
7991 <p>The cme option is based on a config parsing library, and I found
7992 this approach in
7993 <a href="https://ddumont.wordpress.com/2015/04/05/improving-creation-of-debian-copyright-file/">a
7994 blog post from 2015</a>. To generate using cme, use the 'update
7995 dpkg-copyright' option:
7996
7997 <p><pre>
7998 cme update dpkg-copyright
7999 </pre></p>
8000
8001 <p>This will create or update debian/copyright. The cme tool seem to
8002 handle UTF-8 names better than debmake.</p>
8003
8004 <p>When the copyright file is created, I would also like some help to
8005 check if the file is correct. For this I found two good options,
8006 <tt>debmake -k</tt> and <tt>license-reconcile</tt>. The former seem
8007 to focus on license types and file matching, and is able to detect
8008 ineffective blocks in the copyright file. The latter reports missing
8009 copyright holders and years, but was confused by inconsistent license
8010 names (like CDDL vs. CDDL-1.0). I suspect it is good to use both and
8011 fix all issues reported by them before uploading. But I do not know
8012 if the tools and the ftpmasters agree on what is important to fix in a
8013 copyright file, so the package might still be rejected.</p>
8014
8015 <p>The devscripts tool <tt>licensecheck</tt> deserve mentioning. It
8016 will read through the source and try to find all copyright statements.
8017 It is not comparing the result to the content of debian/copyright, but
8018 can be useful when verifying the content of the copyright file.</p>
8019
8020 <p>Are you aware of better tools in Debian to create and update
8021 debian/copyright file. Please let me know, or blog about it on
8022 planet.debian.org.</p>
8023
8024 <p>As usual, if you use Bitcoin and want to show your support of my
8025 activities, please send Bitcoin donations to my address
8026 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
8027
8028 <p><strong>Update 2016-02-20</strong>: I got a tip from Mike Gabriel
8029 on how to use licensecheck and cdbs to create a draft copyright file
8030
8031 <p><pre>
8032 licensecheck --copyright -r `find * -type f` | \
8033 /usr/lib/cdbs/licensecheck2dep5 > debian/copyright.auto
8034 </pre></p>
8035
8036 <p>He mentioned that he normally check the generated file into the
8037 version control system to make it easier to discover license and
8038 copyright changes in the upstream source. I will try to do the same
8039 with my packages in the future.</p>
8040
8041 <p><strong>Update 2016-02-21</strong>: The cme author recommended
8042 against using -quiet for new users, so I removed it from the proposed
8043 command line.</p>
8044
8045 </div>
8046 <div class="tags">
8047
8048
8049 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>.
8050
8051
8052 </div>
8053 </div>
8054 <div class="padding"></div>
8055
8056 <div class="entry">
8057 <div class="title">
8058 <a href="http://people.skolelinux.org/pere/blog/Using_appstream_in_Debian_to_locate_packages_with_firmware_and_mime_type_support.html">Using appstream in Debian to locate packages with firmware and mime type support</a>
8059 </div>
8060 <div class="date">
8061 4th February 2016
8062 </div>
8063 <div class="body">
8064 <p>The <a href="https://wiki.debian.org/DEP-11">appstream system</a>
8065 is taking shape in Debian, and one provided feature is a very
8066 convenient way to tell you which package to install to make a given
8067 firmware file available when the kernel is looking for it. This can
8068 be done using apt-file too, but that is for someone else to blog
8069 about. :)</p>
8070
8071 <p>Here is a small recipe to find the package with a given firmware
8072 file, in this example I am looking for ctfw-3.2.3.0.bin, randomly
8073 picked from the set of firmware announced using appstream in Debian
8074 unstable. In general you would be looking for the firmware requested
8075 by the kernel during kernel module loading. To find the package
8076 providing the example file, do like this:</p>
8077
8078 <blockquote><pre>
8079 % apt install appstream
8080 [...]
8081 % apt update
8082 [...]
8083 % appstreamcli what-provides firmware:runtime ctfw-3.2.3.0.bin | \
8084 awk '/Package:/ {print $2}'
8085 firmware-qlogic
8086 %
8087 </pre></blockquote>
8088
8089 <p>See <a href="https://wiki.debian.org/AppStream/Guidelines">the
8090 appstream wiki</a> page to learn how to embed the package metadata in
8091 a way appstream can use.</p>
8092
8093 <p>This same approach can be used to find any package supporting a
8094 given MIME type. This is very useful when you get a file you do not
8095 know how to handle. First find the mime type using <tt>file
8096 --mime-type</tt>, and next look up the package providing support for
8097 it. Lets say you got an SVG file. Its MIME type is image/svg+xml,
8098 and you can find all packages handling this type like this:</p>
8099
8100 <blockquote><pre>
8101 % apt install appstream
8102 [...]
8103 % apt update
8104 [...]
8105 % appstreamcli what-provides mimetype image/svg+xml | \
8106 awk '/Package:/ {print $2}'
8107 bkchem
8108 phototonic
8109 inkscape
8110 shutter
8111 tetzle
8112 geeqie
8113 xia
8114 pinta
8115 gthumb
8116 karbon
8117 comix
8118 mirage
8119 viewnior
8120 postr
8121 ristretto
8122 kolourpaint4
8123 eog
8124 eom
8125 gimagereader
8126 midori
8127 %
8128 </pre></blockquote>
8129
8130 <p>I believe the MIME types are fetched from the desktop file for
8131 packages providing appstream metadata.</p>
8132
8133 </div>
8134 <div class="tags">
8135
8136
8137 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>.
8138
8139
8140 </div>
8141 </div>
8142 <div class="padding"></div>
8143
8144 <div class="entry">
8145 <div class="title">
8146 <a href="http://people.skolelinux.org/pere/blog/Creepy__visualise_geotagged_social_media_information___nice_free_software.html">Creepy, visualise geotagged social media information - nice free software</a>
8147 </div>
8148 <div class="date">
8149 24th January 2016
8150 </div>
8151 <div class="body">
8152 <p>Most people seem not to realise that every time they walk around
8153 with the computerised radio beacon known as a mobile phone their
8154 position is tracked by the phone company and often stored for a long
8155 time (like every time a SMS is received or sent). And if their
8156 computerised radio beacon is capable of running programs (often called
8157 mobile apps) downloaded from the Internet, these programs are often
8158 also capable of tracking their location (if the app requested access
8159 during installation). And when these programs send out information to
8160 central collection points, the location is often included, unless
8161 extra care is taken to not send the location. The provided
8162 information is used by several entities, for good and bad (what is
8163 good and bad, depend on your point of view). What is certain, is that
8164 the private sphere and the right to free movement is challenged and
8165 perhaps even eradicated for those announcing their location this way,
8166 when they share their whereabouts with private and public
8167 entities.</p>
8168
8169 <p align="center"><img width="70%" src="http://people.skolelinux.org/pere/blog/images/2016-01-24-nice-creepy-desktop-window.png"></p>
8170
8171 <p>The phone company logs provide a register of locations to check out
8172 when one want to figure out what the tracked person was doing. It is
8173 unavailable for most of us, but provided to selected government
8174 officials, company staff, those illegally buying information from
8175 unfaithful servants and crackers stealing the information. But the
8176 public information can be collected and analysed, and a free software
8177 tool to do so is called
8178 <a href="http://www.geocreepy.com/">Creepy or Cree.py</a>. I
8179 discovered it when I read
8180 <a href="http://www.aftenposten.no/kultur/Slik-kan-du-bli-overvaket-pa-Twitter-og-Instagram-uten-a-ane-det-7787884.html">an
8181 article about Creepy</a> in the Norwegian newspaper Aftenposten i
8182 November 2014, and decided to check if it was available in Debian.
8183 The python program was in Debian, but
8184 <a href="https://tracker.debian.org/pkg/creepy">the version in
8185 Debian</a> was completely broken and practically unmaintained. I
8186 uploaded a new version which did not work quite right, but did not
8187 have time to fix it then. This Christmas I decided to finally try to
8188 get Creepy operational in Debian. Now a fixed version is available in
8189 Debian unstable and testing, and almost all Debian specific patches
8190 are now included
8191 <a href="https://github.com/jkakavas/creepy">upstream</a>.</p>
8192
8193 <p>The Creepy program visualises geolocation information fetched from
8194 Twitter, Instagram, Flickr and Google+, and allow one to get a
8195 complete picture of every social media message posted recently in a
8196 given area, or track the movement of a given individual across all
8197 these services. Earlier it was possible to use the search API of at
8198 least some of these services without identifying oneself, but these
8199 days it is impossible. This mean that to use Creepy, you need to
8200 configure it to log in as yourself on these services, and provide
8201 information to them about your search interests. This should be taken
8202 into account when using Creepy, as it will also share information
8203 about yourself with the services.</p>
8204
8205 <p>The picture above show the twitter messages sent from (or at least
8206 geotagged with a position from) the city centre of Oslo, the capital
8207 of Norway. One useful way to use Creepy is to first look at
8208 information tagged with an area of interest, and next look at all the
8209 information provided by one or more individuals who was in the area.
8210 I tested it by checking out which celebrity provide their location in
8211 twitter messages by checkout out who sent twitter messages near a
8212 Norwegian TV station, and next could track their position over time,
8213 making it possible to locate their home and work place, among other
8214 things. A similar technique have been
8215 <a href="http://www.buzzfeed.com/maxseddon/does-this-soldiers-instagram-account-prove-russia-is-covertl">used
8216 to locate Russian soldiers in Ukraine</a>, and it is both a powerful
8217 tool to discover lying governments, and a useful tool to help people
8218 understand the value of the private information they provide to the
8219 public.</p>
8220
8221 <p>The package is not trivial to backport to Debian Stable/Jessie, as
8222 it depend on several python modules currently missing in Jessie (at
8223 least python-instagram, python-flickrapi and
8224 python-requests-toolbelt).</p>
8225
8226 <p>(I have uploaded
8227 <a href="https://screenshots.debian.net/package/creepy">the image to
8228 screenshots.debian.net</a> and licensed it under the same terms as the
8229 Creepy program in Debian.)</p>
8230
8231 </div>
8232 <div class="tags">
8233
8234
8235 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software</a>.
8236
8237
8238 </div>
8239 </div>
8240 <div class="padding"></div>
8241
8242 <div class="entry">
8243 <div class="title">
8244 <a href="http://people.skolelinux.org/pere/blog/Always_download_Debian_packages_using_Tor___the_simple_recipe.html">Always download Debian packages using Tor - the simple recipe</a>
8245 </div>
8246 <div class="date">
8247 15th January 2016
8248 </div>
8249 <div class="body">
8250 <p>During his DebConf15 keynote, Jacob Appelbaum
8251 <a href="https://summit.debconf.org/debconf15/meeting/331/what-is-to-be-done/">observed
8252 that those listening on the Internet lines would have good reason to
8253 believe a computer have a given security hole</a> if it download a
8254 security fix from a Debian mirror. This is a good reason to always
8255 use encrypted connections to the Debian mirror, to make sure those
8256 listening do not know which IP address to attack. In August, Richard
8257 Hartmann observed that encryption was not enough, when it was possible
8258 to interfere download size to security patches or the fact that
8259 download took place shortly after a security fix was released, and
8260 <a href="http://richardhartmann.de/blog/posts/2015/08/24-Tor-enabled_Debian_mirror/">proposed
8261 to always use Tor to download packages from the Debian mirror</a>. He
8262 was not the first to propose this, as the
8263 <tt><a href="https://tracker.debian.org/pkg/apt-transport-tor">apt-transport-tor</a></tt>
8264 package by Tim Retout already existed to make it easy to convince apt
8265 to use <a href="https://www.torproject.org/">Tor</a>, but I was not
8266 aware of that package when I read the blog post from Richard.</p>
8267
8268 <p>Richard discussed the idea with Peter Palfrader, one of the Debian
8269 sysadmins, and he set up a Tor hidden service on one of the central
8270 Debian mirrors using the address vwakviie2ienjx6t.onion, thus making
8271 it possible to download packages directly between two tor nodes,
8272 making sure the network traffic always were encrypted.</p>
8273
8274 <p>Here is a short recipe for enabling this on your machine, by
8275 installing <tt>apt-transport-tor</tt> and replacing http and https
8276 urls with tor+http and tor+https, and using the hidden service instead
8277 of the official Debian mirror site. I recommend installing
8278 <tt>etckeeper</tt> before you start to have a history of the changes
8279 done in /etc/.</p>
8280
8281 <blockquote><pre>
8282 apt install apt-transport-tor
8283 sed -i 's% http://ftp.debian.org/% tor+http://vwakviie2ienjx6t.onion/%' /etc/apt/sources.list
8284 sed -i 's% http% tor+http%' /etc/apt/sources.list
8285 </pre></blockquote>
8286
8287 <p>If you have more sources listed in /etc/apt/sources.list.d/, run
8288 the sed commands for these too. The sed command is assuming your are
8289 using the ftp.debian.org Debian mirror. Adjust the command (or just
8290 edit the file manually) to match your mirror.</p>
8291
8292 <p>This work in Debian Jessie and later. Note that tools like
8293 <tt>apt-file</tt> only recently started using the apt transport
8294 system, and do not work with these tor+http URLs. For
8295 <tt>apt-file</tt> you need the version currently in experimental,
8296 which need a recent apt version currently only in unstable. So if you
8297 need a working <tt>apt-file</tt>, this is not for you.</p>
8298
8299 <p>Another advantage from this change is that your machine will start
8300 using Tor regularly and at fairly random intervals (every time you
8301 update the package lists or upgrade or install a new package), thus
8302 masking other Tor traffic done from the same machine. Using Tor will
8303 become normal for the machine in question.</p>
8304
8305 <p>On <a href="https://wiki.debian.org/FreedomBox">Freedombox</a>, APT
8306 is set up by default to use <tt>apt-transport-tor</tt> when Tor is
8307 enabled. It would be great if it was the default on any Debian
8308 system.</p>
8309
8310 </div>
8311 <div class="tags">
8312
8313
8314 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>.
8315
8316
8317 </div>
8318 </div>
8319 <div class="padding"></div>
8320
8321 <div class="entry">
8322 <div class="title">
8323 <a href="http://people.skolelinux.org/pere/blog/OpenALPR__find_car_license_plates_in_video_streams___nice_free_software.html">OpenALPR, find car license plates in video streams - nice free software</a>
8324 </div>
8325 <div class="date">
8326 23rd December 2015
8327 </div>
8328 <div class="body">
8329 <p>When I was a kid, we used to collect "car numbers", as we used to
8330 call the car license plate numbers in those days. I would write the
8331 numbers down in my little book and compare notes with the other kids
8332 to see how many region codes we had seen and if we had seen some
8333 exotic or special region codes and numbers. It was a fun game to pass
8334 time, as we kids have plenty of it.</p>
8335
8336 <p>A few days I came across
8337 <a href="https://github.com/openalpr/openalpr">the OpenALPR
8338 project</a>, a free software project to automatically discover and
8339 report license plates in images and video streams, and provide the
8340 "car numbers" in a machine readable format. I've been looking for
8341 such system for a while now, because I believe it is a bad idea that the
8342 <a href="https://en.wikipedia.org/wiki/Automatic_number_plate_recognition">automatic
8343 number plate recognition</a> tool only is available in the hands of
8344 the powerful, and want it to be available also for the powerless to
8345 even the score when it comes to surveillance and sousveillance. I
8346 discovered the developer
8347 <a href="https://bugs.debian.org/747509">wanted to get the tool into
8348 Debian</a>, and as I too wanted it to be in Debian, I volunteered to
8349 help him get it into shape to get the package uploaded into the Debian
8350 archive.</p>
8351
8352 <p>Today we finally managed to get the package into shape and uploaded
8353 it into Debian, where it currently
8354 <a href="https://ftp-master.debian.org//new/openalpr_2.2.1-1.html">waits
8355 in the NEW queue</a> for review by the Debian ftpmasters.</p>
8356
8357 <p>I guess you are wondering why on earth such tool would be useful
8358 for the common folks, ie those not running a large government
8359 surveillance system? Well, I plan to put it in a computer on my bike
8360 and in my car, tracking the cars nearby and allowing me to be notified
8361 when number plates on my watch list are discovered. Another use case
8362 was suggested by a friend of mine, who wanted to set it up at his home
8363 to open the car port automatically when it discovered the plate on his
8364 car. When I mentioned it perhaps was a bit foolhardy to allow anyone
8365 capable of placing his license plate number of a piece of cardboard to
8366 open his car port, men replied that it was always unlocked anyway. I
8367 guess for such use case it make sense. I am sure there are other use
8368 cases too, for those with imagination and a vision.</p>
8369
8370 <p>If you want to build your own version of the Debian package, check
8371 out the upstream git source and symlink ./distros/debian to ./debian/
8372 before running "debuild" to build the source. Or wait a bit until the
8373 package show up in unstable.</p>
8374
8375 </div>
8376 <div class="tags">
8377
8378
8379 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software</a>.
8380
8381
8382 </div>
8383 </div>
8384 <div class="padding"></div>
8385
8386 <div class="entry">
8387 <div class="title">
8388 <a href="http://people.skolelinux.org/pere/blog/Using_appstream_with_isenkram_to_install_hardware_related_packages_in_Debian.html">Using appstream with isenkram to install hardware related packages in Debian</a>
8389 </div>
8390 <div class="date">
8391 20th December 2015
8392 </div>
8393 <div class="body">
8394 <p>Around three years ago, I created
8395 <a href="http://packages.qa.debian.org/isenkram">the isenkram
8396 system</a> to get a more practical solution in Debian for handing
8397 hardware related packages. A GUI system in the isenkram package will
8398 present a pop-up dialog when some hardware dongle supported by
8399 relevant packages in Debian is inserted into the machine. The same
8400 lookup mechanism to detect packages is available as command line
8401 tools in the isenkram-cli package. In addition to mapping hardware,
8402 it will also map kernel firmware files to packages and make it easy to
8403 install needed firmware packages automatically. The key for this
8404 system to work is a good way to map hardware to packages, in other
8405 words, allow packages to announce what hardware they will work
8406 with.</p>
8407
8408 <p>I started by providing data files in the isenkram source, and
8409 adding code to download the latest version of these data files at run
8410 time, to ensure every user had the most up to date mapping available.
8411 I also added support for storing the mapping in the Packages file in
8412 the apt repositories, but did not push this approach because while I
8413 was trying to figure out how to best store hardware/package mappings,
8414 <a href="http://www.freedesktop.org/software/appstream/docs/">the
8415 appstream system</a> was announced. I got in touch and suggested to
8416 add the hardware mapping into that data set to be able to use
8417 appstream as a data source, and this was accepted at least for the
8418 Debian version of appstream.</p>
8419
8420 <p>A few days ago using appstream in Debian for this became possible,
8421 and today I uploaded a new version 0.20 of isenkram adding support for
8422 appstream as a data source for mapping hardware to packages. The only
8423 package so far using appstream to announce its hardware support is my
8424 pymissile package. I got help from Matthias Klumpp with figuring out
8425 how do add the required
8426 <a href="https://appstream.debian.org/html/sid/main/metainfo/pymissile.html">metadata
8427 in pymissile</a>. I added a file debian/pymissile.metainfo.xml with
8428 this content:</p>
8429
8430 <blockquote><pre>
8431 &lt;?xml version="1.0" encoding="UTF-8"?&gt;
8432 &lt;component&gt;
8433 &lt;id&gt;pymissile&lt;/id&gt;
8434 &lt;metadata_license&gt;MIT&lt;/metadata_license&gt;
8435 &lt;name&gt;pymissile&lt;/name&gt;
8436 &lt;summary&gt;Control original Striker USB Missile Launcher&lt;/summary&gt;
8437 &lt;description&gt;
8438 &lt;p&gt;
8439 Pymissile provides a curses interface to control an original
8440 Marks and Spencer / Striker USB Missile Launcher, as well as a
8441 motion control script to allow a webcamera to control the
8442 launcher.
8443 &lt;/p&gt;
8444 &lt;/description&gt;
8445 &lt;provides&gt;
8446 &lt;modalias&gt;usb:v1130p0202d*&lt;/modalias&gt;
8447 &lt;/provides&gt;
8448 &lt;/component&gt;
8449 </pre></blockquote>
8450
8451 <p>The key for isenkram is the component/provides/modalias value,
8452 which is a glob style match rule for hardware specific strings
8453 (modalias strings) provided by the Linux kernel. In this case, it
8454 will map to all USB devices with vendor code 1130 and product code
8455 0202.</p>
8456
8457 <p>Note, it is important that the license of all the metadata files
8458 are compatible to have permissions to aggregate them into archive wide
8459 appstream files. Matthias suggested to use MIT or BSD licenses for
8460 these files. A challenge is figuring out a good id for the data, as
8461 it is supposed to be globally unique and shared across distributions
8462 (in other words, best to coordinate with upstream what to use). But
8463 it can be changed later or, so we went with the package name as
8464 upstream for this project is dormant.</p>
8465
8466 <p>To get the metadata file installed in the correct location for the
8467 mirror update scripts to pick it up and include its content the
8468 appstream data source, the file must be installed in the binary
8469 package under /usr/share/appdata/. I did this by adding the following
8470 line to debian/pymissile.install:</p>
8471
8472 <blockquote><pre>
8473 debian/pymissile.metainfo.xml usr/share/appdata
8474 </pre></blockquote>
8475
8476 <p>With that in place, the command line tool isenkram-lookup will list
8477 all packages useful on the current computer automatically, and the GUI
8478 pop-up handler will propose to install the package not already
8479 installed if a hardware dongle is inserted into the machine in
8480 question.</p>
8481
8482 <p>Details of the modalias field in appstream is available from the
8483 <a href="https://wiki.debian.org/DEP-11">DEP-11</a> proposal.</p>
8484
8485 <p>To locate the modalias values of all hardware present in a machine,
8486 try running this command on the command line:</p>
8487
8488 <blockquote><pre>
8489 cat $(find /sys/devices/|grep modalias)
8490 </pre></blockquote>
8491
8492 <p>To learn more about the isenkram system, please check out
8493 <a href="http://people.skolelinux.org/pere/blog/tags/isenkram/">my
8494 blog posts tagged isenkram</a>.</p>
8495
8496 </div>
8497 <div class="tags">
8498
8499
8500 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram</a>.
8501
8502
8503 </div>
8504 </div>
8505 <div class="padding"></div>
8506
8507 <div class="entry">
8508 <div class="title">
8509 <a href="http://people.skolelinux.org/pere/blog/The_GNU_General_Public_License_is_not_magic_pixie_dust.html">The GNU General Public License is not magic pixie dust</a>
8510 </div>
8511 <div class="date">
8512 30th November 2015
8513 </div>
8514 <div class="body">
8515 <p>A blog post from my fellow Debian developer Paul Wise titled
8516 "<a href="http://bonedaddy.net/pabs3/log/2015/11/27/sfc-supporter/">The
8517 GPL is not magic pixie dust</a>" explain the importance of making sure
8518 the <a href="http://www.gnu.org/copyleft/gpl.html">GPL</a> is enforced.
8519 I quote the blog post from Paul in full here with his permission:<p>
8520
8521 <blockquote>
8522
8523 <p><a href="https://sfconservancy.org/supporter/"><img src="https://sfconservancy.org/img/supporter-badge.png" width="194" height="90" alt="Become a Software Freedom Conservancy Supporter!" align="right" border="0" /></a></p>
8524
8525 <blockquote>
8526 The GPL is not magic pixie dust. It does not work by itself.<br/>
8527
8528 The first step is to choose a
8529 <a href="https://copyleft.org/">copyleft</a> license for your
8530 code.<br/>
8531
8532 The next step is, when someone fails to follow that copyleft license,
8533 <b>it must be enforced</b><br/>
8534
8535 and its a simple fact of our modern society that such type of
8536 work<br/>
8537
8538 is incredibly expensive to do and incredibly difficult to do.
8539 </blockquote>
8540
8541 <p><small>-- <a href="http://ebb.org/bkuhn/">Bradley Kuhn</a>, in
8542 <a href="http://faif.us/" title="Free as in Freedom">FaiF</a>
8543 <a href="http://faif.us/cast/2015/nov/24/0x57/">episode
8544 0x57</a></small></p>
8545
8546 <p>As the Debian Website
8547 <a href="https://bugs.debian.org/794116">used</a>
8548 <a href="https://anonscm.debian.org/viewvc/webwml/webwml/english/intro/free.wml?r1=1.24&amp;r2=1.25">to</a>
8549 imply, public domain and permissively licensed software can lead to
8550 the production of more proprietary software as people discover useful
8551 software, extend it and or incorporate it into their hardware or
8552 software products. Copyleft licenses such as the GNU GPL were created
8553 to close off this avenue to the production of proprietary software but
8554 such licenses are not enough. With the ongoing adoption of Free
8555 Software by individuals and groups, inevitably the community's
8556 expectations of license compliance are violated, usually out of
8557 ignorance of the way Free Software works, but not always. As Karen
8558 and Bradley explained in <a href="http://faif.us/" title="Free as in
8559 Freedom">FaiF</a>
8560 <a href="http://faif.us/cast/2015/nov/24/0x57/">episode 0x57</a>,
8561 copyleft is nothing if no-one is willing and able to stand up in court
8562 to protect it. The reality of today's world is that legal
8563 representation is expensive, difficult and time consuming. With
8564 <a href="http://gpl-violations.org/">gpl-violations.org</a> in hiatus
8565 <a href="http://gpl-violations.org/news/20151027-homepage-recovers/">until</a>
8566 some time in 2016, the <a href="https://sfconservancy.org/">Software
8567 Freedom Conservancy</a> (a tax-exempt charity) is the major defender
8568 of the Linux project, Debian and other groups against GPL violations.
8569 In March the SFC supported a
8570 <a href="https://sfconservancy.org/news/2015/mar/05/vmware-lawsuit/">lawsuit
8571 by Christoph Hellwig</a> against VMware for refusing to
8572 <a href="https://sfconservancy.org/linux-compliance/vmware-lawsuit-faq.html">comply
8573 with the GPL</a> in relation to their use of parts of the Linux
8574 kernel. Since then two of their sponsors pulled corporate funding and
8575 conferences
8576 <a href="https://sfconservancy.org/blog/2015/nov/24/faif-carols-fundraiser/">blocked
8577 or cancelled their talks</a>. As a result they have decided to rely
8578 less on corporate funding and more on the broad community of
8579 individuals who support Free Software and copyleft. So the SFC has
8580 <a href="https://sfconservancy.org/news/2015/nov/23/2015fundraiser/">launched</a>
8581 a <a href="https://sfconservancy.org/supporter/">campaign</a> to create
8582 a community of folks who stand up for copyleft and the GPL by
8583 supporting their work on promoting and supporting copyleft and Free
8584 Software.</p>
8585
8586 <p>If you support Free Software,
8587 <a href="https://sfconservancy.org/blog/2015/nov/26/like-what-I-do/">like</a>
8588 what the SFC do, agree with their
8589 <a href="https://sfconservancy.org/linux-compliance/principles.html">compliance
8590 principles</a>, are happy about their
8591 <a href="https://sfconservancy.org/supporter/">successes</a> in 2015,
8592 work on a project that is an SFC
8593 <a href="https://sfconservancy.org/members/current/">member</a> and or
8594 just want to stand up for copyleft, please join
8595 <a href="https://identi.ca/cwebber/image/JQGPA4qbTyyp3-MY8QpvuA">Christopher
8596 Allan Webber</a>,
8597 <a href="https://sfconservancy.org/blog/2015/nov/24/faif-carols-fundraiser/">Carol
8598 Smith</a>,
8599 <a href="http://www.jonobacon.org/2015/11/25/supporting-software-freedom-conservancy/">Jono
8600 Bacon</a>, myself and
8601 <a href="https://sfconservancy.org/sponsors/#supporters">others</a> in
8602 becoming a
8603 <a href="https://sfconservancy.org/supporter/">supporter</a>. For the
8604 next week your donation will be
8605 <a href="https://sfconservancy.org/news/2015/nov/27/black-friday/">matched</a>
8606 by an anonymous donor. Please also consider asking your employer to
8607 match your donation or become a sponsor of SFC. Don't forget to
8608 spread the word about your support for SFC via email, your blog and or
8609 social media accounts.</p>
8610
8611 </blockquote>
8612
8613 <p>I agree with Paul on this topic and just signed up as a Supporter
8614 of Software Freedom Conservancy myself. Perhaps you should be a
8615 supporter too?</p>
8616
8617 </div>
8618 <div class="tags">
8619
8620
8621 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>.
8622
8623
8624 </div>
8625 </div>
8626 <div class="padding"></div>
8627
8628 <div class="entry">
8629 <div class="title">
8630 <a href="http://people.skolelinux.org/pere/blog/PGP_key_transition_statement_for_key_EE4E02F9.html">PGP key transition statement for key EE4E02F9</a>
8631 </div>
8632 <div class="date">
8633 17th November 2015
8634 </div>
8635 <div class="body">
8636 <p>I've needed a new OpenPGP key for a while, but have not had time to
8637 set it up properly. I wanted to generate it offline and have it
8638 available on <a href="http://shop.kernelconcepts.de/#openpgp">a OpenPGP
8639 smart card</a> for daily use, and learning how to do it and finding
8640 time to sit down with an offline machine almost took forever. But
8641 finally I've been able to complete the process, and have now moved
8642 from my old GPG key to a new GPG key. See
8643 <a href="http://people.skolelinux.org/pere/blog/images/2015-11-17-new-gpg-key-transition.txt">the
8644 full transition statement, signed with both my old and new key</a> for
8645 the details. This is my new key:</p>
8646
8647 <pre>
8648 pub 3936R/<a href="http://pgp.cs.uu.nl/stats/111D6B29EE4E02F9.html">111D6B29EE4E02F9</a> 2015-11-03 [expires: 2019-11-14]
8649 Key fingerprint = 3AC7 B2E3 ACA5 DF87 78F1 D827 111D 6B29 EE4E 02F9
8650 uid Petter Reinholdtsen &lt;pere@hungry.com&gt;
8651 uid Petter Reinholdtsen &lt;pere@debian.org&gt;
8652 sub 4096R/87BAFB0E 2015-11-03 [expires: 2019-11-02]
8653 sub 4096R/F91E6DE9 2015-11-03 [expires: 2019-11-02]
8654 sub 4096R/A0439BAB 2015-11-03 [expires: 2019-11-02]
8655 </pre>
8656
8657 <p>The key can be downloaded from the OpenPGP key servers, signed by
8658 my old key.</p>
8659
8660 <p>If you signed my old key
8661 (<a href="http://pgp.cs.uu.nl/stats/DB4CCC4B2A30D729.html">DB4CCC4B2A30D729</a>),
8662 I'd very much appreciate a signature on my new key, details and
8663 instructions in the transition statement. I m happy to reciprocate if
8664 you have a similarly signed transition statement to present.</p>
8665
8666 </div>
8667 <div class="tags">
8668
8669
8670 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>.
8671
8672
8673 </div>
8674 </div>
8675 <div class="padding"></div>
8676
8677 <div class="entry">
8678 <div class="title">
8679 <a href="http://people.skolelinux.org/pere/blog/Is_Pentagon_deciding_the_Norwegian_negotiating_position_on_Internet_governance_.html">Is Pentagon deciding the Norwegian negotiating position on Internet governance?</a>
8680 </div>
8681 <div class="date">
8682 3rd November 2015
8683 </div>
8684 <div class="body">
8685 <p>In Norway, all government offices are required by law to keep a
8686 list of every document or letter arriving and leaving their offices.
8687 Internal notes should also be documented. The document list (called a mail
8688 journal - "postjournal" in Norwegian) is public information and thanks
8689 to the Norwegian Freedom of Information Act (Offentleglova) the mail
8690 journal is available for everyone. Most offices even publish the mail
8691 journal on their web pages, as PDFs or tables in web pages. The state-level offices even have a shared web based search service (called
8692 <a href="https://www.oep.no/">Offentlig Elektronisk Postjournal -
8693 OEP</a>) to make it possible to search the entries in the list. Not
8694 all journal entries show up on OEP, and the search service is hard to
8695 use, but OEP does make it easier to find at least some interesting
8696 journal entries .</p>
8697
8698 <p>In 2012 I came across a document in the mail journal for the
8699 Norwegian Ministry of Transport and Communications on OEP that
8700 piqued my interest. The title of the document was
8701 "<a href="https://www.oep.no/search/resultSingle.html?journalPostId=4192362">Internet
8702 Governance and how it affects national security</a>" (Norwegian:
8703 "Internet Governance og påvirkning på nasjonal sikkerhet"). The
8704 document date was 2012-05-22, and it was said to be sent from the
8705 "Permanent Mission of Norway to the United Nations". I asked for a
8706 copy, but my request was rejected with a reference to a legal clause said to authorize them to reject it
8707 (<a href="http://lovdata.no/lov/2006-05-19-1620">offentleglova § 20,
8708 letter c</a>) and an explanation that the document was exempt because
8709 of foreign policy interests as it contained information related to the
8710 Norwegian negotiating position, negotiating strategies or similar. I
8711 was told the information in the document related to the ongoing
8712 negotiation in the International Telecommunications Union (ITU). The
8713 explanation made sense to me in early January 2013, as a ITU
8714 conference in Dubay discussing Internet Governance
8715 (<a href="https://en.wikipedia.org/wiki/International_Telecommunication_Union#World_Conference_on_International_Telecommunications_2012_.28WCIT-12.29">World
8716 Conference on International Telecommunications - WCIT-12</a>) had just
8717 ended,
8718 <a href="http://www.digi.no/kommentarer/2012/12/18/tvil-om-usas-rolle-pa-teletoppmote">reportedly
8719 in chaos</a> when USA walked out of the negotiations and 25 countries
8720 including Norway refused to sign the new treaty. It seemed
8721 reasonable to believe talks were still going on a few weeks later.
8722 Norway was represented at the ITU meeting by two authorities, the
8723 <a href="http://www.nkom.no/">Norwegian Communications Authority</a>
8724 and the <a href="https://www.regjeringen.no/no/dep/sd/">Ministry of
8725 Transport and Communications</a>. This might be the reason the letter
8726 was sent to the ministry. As I was unable to find the document in the
8727 mail journal of any Norwegian UN mission, I asked the ministry who had
8728 sent the document to the ministry, and was told that it was the Deputy
8729 Permanent Representative with the Permanent Mission of Norway in
8730 Geneva.</p>
8731
8732 <p>Three years later, I was still curious about the content of that
8733 document, and again asked for a copy, believing the negotiation was
8734 over now. This time
8735 <a href="https://mimesbronn.no/request/kopi_av_dokumenter_i_sak_2012914">I
8736 asked both the Ministry of Transport and Communications as the
8737 receiver</a> and
8738 <a href="https://mimesbronn.no/request/brev_om_internet_governance_og_p">asked
8739 the Permanent Mission of Norway in Geneva as the sender</a> for a
8740 copy, to see if they both agreed that it should be withheld from the
8741 public. The ministry upheld its rejection quoting the same law
8742 reference as before, while the permanent mission rejected it quoting a
8743 different clause
8744 (<a href="http://lovdata.no/lov/2006-05-19-1620">offentleglova § 20
8745 letter b</a>), claiming that they were required to keep the
8746 content of the document from the public because it contained
8747 information given to Norway with the expressed or implied expectation
8748 that the information should not be made public. I asked the permanent
8749 mission for an explanation, and was told that the document contained
8750 an account from a meeting held in the Pentagon for a limited group of NATO
8751 nations where the organiser of the meeting did not intend the content
8752 of the meeting to be publicly known. They explained that giving me a
8753 copy might cause Norway to not get access to similar information in
8754 the future and thus hurt the future foreign interests of Norway. They
8755 also explained that the Permanent Mission of Norway in Geneva was not
8756 the author of the document, they only got a copy of it, and because of
8757 this had not listed it in their mail journal.</p>
8758
8759 <p>Armed with this
8760 knowledge I asked the Ministry to reconsider and asked who was the
8761 author of the document, now realising that it was not same as the
8762 "sender" according to Ministry of Transport and Communications. The
8763 ministry upheld its rejection but told me the name of the author of
8764 the document. According to
8765 <a href="https://www.regjeringen.no/no/aktuelt/unga69_rapport1/id2001204/">a
8766 government report</a> the author was with the Permanent Mission of
8767 Norway in New York a bit more than a year later (2014-09-22), so I
8768 guessed that might be the office responsible for writing and sending
8769 the report initially and
8770 <a href="https://www.mimesbronn.no/request/mote_2012_i_pentagon_om_itu">asked
8771 them for a copy</a> but I was obviously wrong as I was told that the
8772 document was unknown to them and that the author did not work there
8773 when the document was written. Next, I asked the Permanent Mission of
8774 Norway in Geneva and the Foreign Ministry to reconsider and at least
8775 tell me who sent the document to Deputy Permanent Representative with
8776 the Permanent Mission of Norway in Geneva. The Foreign Ministry also
8777 upheld its rejection, but told me that the person sending the document
8778 to Permanent Mission of Norway in Geneva was the defence attaché with
8779 the Norwegian Embassy in Washington. I do not know if this is the
8780 same person as the author of the document.</p>
8781
8782 <p>If I understand the situation correctly, someone capable of
8783 inviting selected NATO nations to a meeting in Pentagon organised a
8784 meeting where someone representing the Norwegian defence attaché in
8785 Washington attended, and the account from this meeting is interpreted
8786 by the Ministry of Transport and Communications to expose Norways
8787 negotiating position, negotiating strategies and similar regarding the
8788 ITU negotiations on Internet Governance. It is truly amazing what can
8789 be derived from mere meta-data.</p>
8790
8791 <p>I wonder which NATO countries besides Norway attended this meeting?
8792 And what exactly was said and done at the meeting? Anyone know?</p>
8793
8794 </div>
8795 <div class="tags">
8796
8797
8798 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>.
8799
8800
8801 </div>
8802 </div>
8803 <div class="padding"></div>
8804
8805 <div class="entry">
8806 <div class="title">
8807 <a href="http://people.skolelinux.org/pere/blog/New_book___Fri_kultur__by__lessig__a_Norwegian_Bokm_l_translation_of__Free_Culture__from_2004.html">New book, "Fri kultur" by @lessig, a Norwegian Bokmål translation of "Free Culture" from 2004</a>
8808 </div>
8809 <div class="date">
8810 31st October 2015
8811 </div>
8812 <div class="body">
8813 <p>People keep asking me where to get the various forms of the book I
8814 published last week, the Norwegian Bokmål edition of Lawrence Lessigs
8815 book <a href="http://www.free-culture.cc/">Free Culture</a>. It was
8816 published on paper via lulu.com, and is also available in PDF, ePub
8817 and MOBI format. I currently sell the paper edition for self cost
8818 from lulu.com, but might extend the distribution to book stores like
8819 Amazon and Barnes & Noble later. This will double the price and force
8820 me to make a profit from selling the book. Anyway, here are links to
8821 get the book in different formats:</p>
8822
8823 <ul>
8824
8825 <li><a href="http://www.lulu.com/shop/lawrence-lessig/fri-kultur/paperback/product-22406445.html">Buy
8826 paper edition from lulu.com</a></li>
8827
8828 <li><a href="https://github.com/petterreinholdtsen/free-culture-lessig/raw/master/archive/freeculture.nb.pdf">Download
8829 PDF, size 7.9 MiB</a> (gratis/free)</li>
8830
8831 <li><a href="https://github.com/petterreinholdtsen/free-culture-lessig/raw/master/archive/freeculture.nb.epub">Download
8832 ePub, size 11 MiB</a> (gratis/free)</li>
8833
8834 <li><a href="https://github.com/petterreinholdtsen/free-culture-lessig/raw/master/archive/freeculture.nb.mobi">Download
8835 MOBI, size 3.8 MiB</a> (gratis/free)</li>
8836
8837 </ul>
8838
8839 <p>Note that the MOBI version have problems with the table of content,
8840 at least with the viewers I have been able to test. And the ePub file
8841 have several problems according to
8842 <a href="https://github.com/IDPF/epubcheck">epubcheck</a>, but seem
8843 to display fine in the viewers I have tested. All the files needed to
8844 create the book in various forms are available from
8845 <a href="https://github.com/petterreinholdtsen/free-culture-lessig">the
8846 github project page</a>.</p>
8847
8848 <p>The project got press coverage from the Norwegian IT news site
8849 digi.no. Check out the article
8850 "<a href="http://www.digi.no/juss_og_samfunn/2015/10/29/vil-apne-politikernes-oyne-for-creative-commons">Vil
8851 åpne politikernes øyne for Creative Commons</a>".</li>
8852
8853 <p>I've <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">blogged
8854 about the project</a> as it moved along. The blogs document the translation
8855 progress and insights I had along the way.</p>
8856
8857 </div>
8858 <div class="tags">
8859
8860
8861 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>.
8862
8863
8864 </div>
8865 </div>
8866 <div class="padding"></div>
8867
8868 <div class="entry">
8869 <div class="title">
8870 <a href="http://people.skolelinux.org/pere/blog/_Free_Culture__by__lessig___The_background_story_for_Creative_Commons___new_edition_available.html">"Free Culture" by @lessig - The background story for Creative Commons - new edition available</a>
8871 </div>
8872 <div class="date">
8873 23rd October 2015
8874 </div>
8875 <div class="body">
8876 <p><a href="http://www.lulu.com/shop/lawrence-lessig/free-culture/paperback/product-22402863.html">Click
8877 here to buy the book</a>.</p>
8878
8879 <p>In 2004, as the <a href="https://creativecommons.org/">Creative Commons
8880 movement</a> gained momentum, its creator Lawrence Lessig wrote the
8881 book <a href="https://en.wikipedia.org/wiki/Free_Culture_(book)">Free
8882 Culture</a> to explain the problems with increasing copyright
8883 regulation and suggest some solutions. I read the book back then and
8884 was very moved by it. Reading the book inspired me and changed the
8885 way I looked on copyright law, and I would love it if more people
8886 would read it too.</p>
8887
8888 <p>Because of this, I decided in the summer of 2012 to translate it to
8889 Norwegian Bokmål and publish it for those of my friends and family
8890 that prefer to read books in Norwegian. I translated the book using
8891 docbook and a gettext PO file, and a byproduct of this process is a
8892 new edition of the English original. I've been in touch with the
8893 author during by work, and he said it was fine with him if I also
8894 published an English version. So I decided to do so. Today, I made
8895 this edition
8896 <a href="http://www.lulu.com/shop/lawrence-lessig/free-culture/paperback/product-22402863.html">available
8897 for sale on Lulu.com</a>, for those interested in a paper book. This
8898 is the cover:
8899
8900 <p align="center"><a href="http://www.lulu.com/shop/lawrence-lessig/free-culture/paperback/product-22402863.html"><img align="center" src="http://people.skolelinux.org/pere/blog/images/2015-10-23-free-culture-english-published-cover.png"/></a></p>
8901
8902 <p>The Norwegian Bokmål version will be available for purchase in a
8903 few days. I also plan to publish a French version in a few weeks or
8904 months, depending on the amount of people with knowledge of French to
8905 join the translation project. So far there is only one active
8906 person, but the French book is almost completely translated but
8907 need some proof reading.</p>
8908
8909 <p>The book is also available in PDF, ePub and MOBI formats from
8910 <a href="https://github.com/petterreinholdtsen/free-culture-lessig">my
8911 github project page</a>. Note the ePub and MOBI versions have some
8912 formatting problems I believe is due to bugs in the docbook tool
8913 dbtoepub (Debian BTS issues
8914 <a href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=795842">#795842</a>
8915 and
8916 <a href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=796871">#796871</a>),
8917 but I have not taken the time to investigate. I recommend the PDF and
8918 ePub version for now, as they seem to show up fine in the viewers I
8919 have available.</p>
8920
8921 <p>After the translation to Norwegian Bokmål was complete, I was able
8922 to secure some sponsoring from
8923 <a href="http://www.nuugfoundation.no/">the NUUG Foundation</a> to
8924 print the book. This is the reason their logo is located on the back
8925 cover. I am very grateful for their contribution, and will use it to
8926 give a copy of the Norwegian edition to members of the Norwegian
8927 Parliament and other decision makers here in Norway.</p>
8928
8929 </div>
8930 <div class="tags">
8931
8932
8933 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>.
8934
8935
8936 </div>
8937 </div>
8938 <div class="padding"></div>
8939
8940 <div class="entry">
8941 <div class="title">
8942 <a href="http://people.skolelinux.org/pere/blog/Lawrence_Lessig_interviewed_Edward_Snowden_a_year_ago.html">Lawrence Lessig interviewed Edward Snowden a year ago</a>
8943 </div>
8944 <div class="date">
8945 19th October 2015
8946 </div>
8947 <div class="body">
8948 <p>Last year, <a href="https://lessig2016.us/">US president candidate
8949 in the Democratic Party</a> Lawrence interviewed Edward Snowden. The
8950 one hour interview was
8951 <a href="https://www.youtube.com/watch?v=o_Sr96TFQQE">published by
8952 Harvard Law School 2014-10-23 on Youtube</a>, and the meeting took
8953 place 2014-10-20.</p>
8954
8955 <p>The questions are very good, and there is lots of useful
8956 information to be learned and very interesting issues to think about
8957 being raised. Please check it out.</p>
8958
8959 <iframe width="560" height="315" src="https://www.youtube.com/embed/o_Sr96TFQQE" frameborder="0" allowfullscreen></iframe>
8960
8961 <p>I find it especially interesting to hear again that Snowden did try
8962 to bring up his reservations through the official channels without any
8963 luck. It is in sharp contrast to the answers made 2013-11-06 by the
8964 Norwegian prime minister Erna Solberg to the Norwegian Parliament,
8965 <a href="https://tale.holderdeord.no/speeches/s131106/68">claiming
8966 Snowden is no Whistle-Blower</a> because he should have taken up his
8967 concerns internally and using official channels. It make me sad
8968 that this is the political leadership we have here in Norway.</p>
8969
8970 </div>
8971 <div class="tags">
8972
8973
8974 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>.
8975
8976
8977 </div>
8978 </div>
8979 <div class="padding"></div>
8980
8981 <div class="entry">
8982 <div class="title">
8983 <a href="http://people.skolelinux.org/pere/blog/The_Story_of_Aaron_Swartz___Let_us_all_weep_.html">The Story of Aaron Swartz - Let us all weep!</a>
8984 </div>
8985 <div class="date">
8986 8th October 2015
8987 </div>
8988 <div class="body">
8989 <p>The movie "<a href="http://www.takepart.com/internets-own-boy">The
8990 Internet's Own Boy: The Story of Aaron Swartz</a>" is both inspiring
8991 and depressing at the same time. The work of Aaron Swartz has
8992 inspired me in my work, and I am grateful of all the improvements he
8993 was able to initiate or complete. I wish I am able to do as much good
8994 in my life as he did in his. Every minute of this 1:45 long movie is
8995 inspiring in documenting how much impact a single person can have on
8996 improving the society and this world. And it is depressing in
8997 documenting how the law enforcement of USA (and other countries) is
8998 corrupted to a point where they can push a bright kid to his death for
8999 downloading too many scientific articles. Aaron is dead. Let us all
9000 weep.</p>
9001
9002 <p>The movie is also available on
9003 <a href="https://www.youtube.com/watch?v=vXr-2hwTk58">Youtube</a>. I
9004 wish there were Norwegian subtitles available, so I could show it to
9005 my parents.</p>
9006
9007 </div>
9008 <div class="tags">
9009
9010
9011 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>.
9012
9013
9014 </div>
9015 </div>
9016 <div class="padding"></div>
9017
9018 <div class="entry">
9019 <div class="title">
9020 <a href="http://people.skolelinux.org/pere/blog/French_Docbook_PDF_EPUB_MOBI_edition_of_the_Free_Culture_book.html">French Docbook/PDF/EPUB/MOBI edition of the Free Culture book</a>
9021 </div>
9022 <div class="date">
9023 1st October 2015
9024 </div>
9025 <div class="body">
9026 <p>As I wrap up the Norwegian version of
9027 <a href="https://github.com/petterreinholdtsen/free-culture-lessig">Free
9028 Culture</a> book by Lawrence Lessig (still waiting for my final proof
9029 reading copy to arrive in the mail), my great
9030 <a href="http://dblatex.sourceforge.net/">dblatex</a> helper and
9031 developer of the dblatex docbook processor, Benoît Guillon, decided a
9032 to try to create a French version of the book. He started with the
9033 French translation available from the
9034 <a href="http://www.wikilivres.ca/wiki/Culture_libre">Wikilivres wiki
9035 pages</a>, and wrote a program to convert it into a PO file, allowing
9036 the translation to be integrated into the po4a based framework I use
9037 to create the Norwegian translation from the English edition. We meet
9038 on the <a href="irc://irc.freenode.net/%23dblatex">#dblatex IRC
9039 channel</a> to discuss the work. If you want to help create a French
9040 edition, check out
9041 <a href="https://github.com/marsgui/free-culture-lessig">his git
9042 repository</a> and join us on IRC. If the French edition look good,
9043 we might publish it as a paper book on lulu.com. A French version of
9044 the drawings and the cover need to be provided for this to happen.</p>
9045
9046 </div>
9047 <div class="tags">
9048
9049
9050 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>.
9051
9052
9053 </div>
9054 </div>
9055 <div class="padding"></div>
9056
9057 <div class="entry">
9058 <div class="title">
9059 <a href="http://people.skolelinux.org/pere/blog/The_life_and_death_of_a_laptop_battery.html">The life and death of a laptop battery</a>
9060 </div>
9061 <div class="date">
9062 24th September 2015
9063 </div>
9064 <div class="body">
9065 <p>When I get a new laptop, the battery life time at the start is OK.
9066 But this do not last. The last few laptops gave me a feeling that
9067 within a year, the life time is just a fraction of what it used to be,
9068 and it slowly become painful to use the laptop without power connected
9069 all the time. Because of this, when I got a new Thinkpad X230 laptop
9070 about two years ago, I decided to monitor its battery state to have
9071 more hard facts when the battery started to fail.</p>
9072
9073 <img src="http://people.skolelinux.org/pere/blog/images/2015-09-24-laptop-battery-graph.png"/>
9074
9075 <p>First I tried to find a sensible Debian package to record the
9076 battery status, assuming that this must be a problem already handled
9077 by someone else. I found
9078 <a href="https://tracker.debian.org/pkg/battery-stats">battery-stats</a>,
9079 which collects statistics from the battery, but it was completely
9080 broken. I sent a few suggestions to the maintainer, but decided to
9081 write my own collector as a shell script while I waited for feedback
9082 from him. Via
9083 <a href="http://www.ifweassume.com/2013/08/the-de-evolution-of-my-laptop-battery.html">a
9084 blog post about the battery development on a MacBook Air</a> I also
9085 discovered
9086 <a href="https://github.com/jradavenport/batlog.git">batlog</a>, not
9087 available in Debian.</p>
9088
9089 <p>I started my collector 2013-07-15, and it has been collecting
9090 battery stats ever since. Now my
9091 /var/log/hjemmenett-battery-status.log file contain around 115,000
9092 measurements, from the time the battery was working great until now,
9093 when it is unable to charge above 7% of original capacity. My
9094 collector shell script is quite simple and look like this:</p>
9095
9096 <pre>
9097 #!/bin/sh
9098 # Inspired by
9099 # http://www.ifweassume.com/2013/08/the-de-evolution-of-my-laptop-battery.html
9100 # See also
9101 # http://blog.sleeplessbeastie.eu/2013/01/02/debian-how-to-monitor-battery-capacity/
9102 logfile=/var/log/hjemmenett-battery-status.log
9103
9104 files="manufacturer model_name technology serial_number \
9105 energy_full energy_full_design energy_now cycle_count status"
9106
9107 if [ ! -e "$logfile" ] ; then
9108 (
9109 printf "timestamp,"
9110 for f in $files; do
9111 printf "%s," $f
9112 done
9113 echo
9114 ) > "$logfile"
9115 fi
9116
9117 log_battery() {
9118 # Print complete message in one echo call, to avoid race condition
9119 # when several log processes run in parallel.
9120 msg=$(printf "%s," $(date +%s); \
9121 for f in $files; do \
9122 printf "%s," $(cat $f); \
9123 done)
9124 echo "$msg"
9125 }
9126
9127 cd /sys/class/power_supply
9128
9129 for bat in BAT*; do
9130 (cd $bat && log_battery >> "$logfile")
9131 done
9132 </pre>
9133
9134 <p>The script is called when the power management system detect a
9135 change in the power status (power plug in or out), and when going into
9136 and out of hibernation and suspend. In addition, it collect a value
9137 every 10 minutes. This make it possible for me know when the battery
9138 is discharging, charging and how the maximum charge change over time.
9139 The code for the Debian package
9140 <a href="https://github.com/petterreinholdtsen/battery-status">is now
9141 available on github</a>.</p>
9142
9143 <p>The collected log file look like this:</p>
9144
9145 <pre>
9146 timestamp,manufacturer,model_name,technology,serial_number,energy_full,energy_full_design,energy_now,cycle_count,status,
9147 1376591133,LGC,45N1025,Li-ion,974,62800000,62160000,39050000,0,Discharging,
9148 [...]
9149 1443090528,LGC,45N1025,Li-ion,974,4900000,62160000,4900000,0,Full,
9150 1443090601,LGC,45N1025,Li-ion,974,4900000,62160000,4900000,0,Full,
9151 </pre>
9152
9153 <p>I wrote a small script to create a graph of the charge development
9154 over time. This graph depicted above show the slow death of my laptop
9155 battery.</p>
9156
9157 <p>But why is this happening? Why are my laptop batteries always
9158 dying in a year or two, while the batteries of space probes and
9159 satellites keep working year after year. If we are to believe
9160 <a href="http://batteryuniversity.com/learn/article/how_to_prolong_lithium_based_batteries">Battery
9161 University</a>, the cause is me charging the battery whenever I have a
9162 chance, and the fix is to not charge the Lithium-ion batteries to 100%
9163 all the time, but to stay below 90% of full charge most of the time.
9164 I've been told that the Tesla electric cars
9165 <a href="http://my.teslamotors.com/de_CH/forum/forums/battery-charge-limit">limit
9166 the charge of their batteries to 80%</a>, with the option to charge to
9167 100% when preparing for a longer trip (not that I would want a car
9168 like Tesla where rights to privacy is abandoned, but that is another
9169 story), which I guess is the option we should have for laptops on
9170 Linux too.</p>
9171
9172 <p>Is there a good and generic way with Linux to tell the battery to
9173 stop charging at 80%, unless requested to charge to 100% once in
9174 preparation for a longer trip? I found
9175 <a href="http://askubuntu.com/questions/34452/how-can-i-limit-battery-charging-to-80-capacity">one
9176 recipe on askubuntu for Ubuntu to limit charging on Thinkpad to
9177 80%</a>, but could not get it to work (kernel module refused to
9178 load).</p>
9179
9180 <p>I wonder why the battery capacity was reported to be more than 100%
9181 at the start. I also wonder why the "full capacity" increases some
9182 times, and if it is possible to repeat the process to get the battery
9183 back to design capacity. And I wonder if the discharge and charge
9184 speed change over time, or if this stay the same. I did not yet try
9185 to write a tool to calculate the derivative values of the battery
9186 level, but suspect some interesting insights might be learned from
9187 those.</p>
9188
9189 <p>Update 2015-09-24: I got a tip to install the packages
9190 acpi-call-dkms and tlp (unfortunately missing in Debian stable)
9191 packages instead of the tp-smapi-dkms package I had tried to use
9192 initially, and use 'tlp setcharge 40 80' to change when charging start
9193 and stop. I've done so now, but expect my existing battery is toast
9194 and need to be replaced. The proposal is unfortunately Thinkpad
9195 specific.</p>
9196
9197 </div>
9198 <div class="tags">
9199
9200
9201 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>.
9202
9203
9204 </div>
9205 </div>
9206 <div class="padding"></div>
9207
9208 <div class="entry">
9209 <div class="title">
9210 <a href="http://people.skolelinux.org/pere/blog/Book_cover_for_the_Free_Culture_book_finally_done.html">Book cover for the Free Culture book finally done</a>
9211 </div>
9212 <div class="date">
9213 3rd September 2015
9214 </div>
9215 <div class="body">
9216 <p>Creating a good looking book cover proved harder than I expected.
9217 I wanted to create a cover looking similar to the original cover of
9218 the
9219 <a href="https://github.com/petterreinholdtsen/free-culture-lessig">Free
9220 Culture</a> book we are translating to Norwegian, and I wanted it in
9221 vector format for high resolution printing. But my inkscape knowledge
9222 were not nearly good enough to pull that off.
9223
9224 <p>But thanks to the great inkscape community, I was able to wrap up
9225 the cover yesterday evening. I asked on the
9226 <a href="irc://irc.freenode.net/%23inkscape">#inkscape IRC channel</a>
9227 on Freenode for help and clues, and Marc Jeanmougin (Mc-) volunteered
9228 to try to recreate it based on the PDF of the cover from the HTML
9229 version. Not only did he create a
9230 <a href="https://marc.jeanmougin.fr/share/copy1.svg ">SVG document with
9231 the original and his vector version side by side</a>, he even provided
9232 an <a href="https://marc.jeanmougin.fr/share/out-1.ogv">instruction
9233 video</a> explaining how he did it</a>. But the instruction video is
9234 not easy to follow for an untrained inkscape user. The video is a
9235 recording on how he did it, and he is obviously very experienced as
9236 the menu selections are very quick and he mentioned on IRC that he did
9237 use some keyboard shortcuts that can't be seen on the video, but it
9238 give a good idea about the inkscape operations to use to create the
9239 stripes with the embossed copyright sign in the center.</p>
9240
9241 <p>I took his SVG file, copied the vector image and re-sized it to fit
9242 on the cover I was drawing. I am happy with the end result, and the
9243 current english version look like this:</p>
9244
9245 <img src="http://people.skolelinux.org/pere/blog/images/2015-09-03-free-culture-cover.png" width="70%" align="center"/>
9246
9247 <p>I am not quite sure about the text on the back, but guess it will
9248 do. I picked three quotes from the official site for the book, and
9249 hope it will work to trigger the interest of potential readers. The
9250 Norwegian cover will look the same, but with the texts and bar code
9251 replaced with the Norwegian version.</p>
9252
9253 <p>The book is very close to being ready for publication, and I expect
9254 to upload the final draft to Lulu in the next few days and order a
9255 final proof reading copy to verify that everything look like it should
9256 before allowing everyone to order their own copy of Free Culture, in
9257 English or Norwegian Bokmål. I'm waiting to give the the productive
9258 proof readers a chance to complete their work.</p>
9259
9260 </div>
9261 <div class="tags">
9262
9263
9264 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>.
9265
9266
9267 </div>
9268 </div>
9269 <div class="padding"></div>
9270
9271 <div class="entry">
9272 <div class="title">
9273 <a href="http://people.skolelinux.org/pere/blog/In_my_hand__a_pocket_book_edition_of_the_Norwegian_Free_Culture_book_.html">In my hand, a pocket book edition of the Norwegian Free Culture book!</a>
9274 </div>
9275 <div class="date">
9276 19th August 2015
9277 </div>
9278 <div class="body">
9279 <p>Today, finally, my first printed draft edition of the Norwegian
9280 translation of Free Culture I have been working on for the last few
9281 years arrived in the mail. I had to fake a cover to get the interior
9282 printed, and the exterior of the book look awful, but that is
9283 irrelevant at this point. I asked for a printed pocket book version
9284 to get an idea about the font sizes and paper format as well as how
9285 good the figures and images look in print, but also to test what the
9286 pocket book version would look like. After receiving the 500 page
9287 pocket book, it became obvious to me that that pocket book size is too
9288 small for this book. I believe the book is too thick, and several
9289 tables and figures do not look good in the size they get with that
9290 small page sizes. I believe I will go with the 5.5x8.5 inch size
9291 instead. A surprise discovery from the paper version was how bad the
9292 URLs look in print. They are very hard to read in the colophon page.
9293 The URLs are red in the PDF, but light gray on paper. I need to
9294 change the color of links somehow to look better. But there is a
9295 printed book in my hand, and it feels great. :)</p>
9296
9297 <p>Now I only need to fix the cover, wrap up the postscript with the
9298 store behind the book, and collect the last corrections from the proof
9299 readers before the book is ready for proper printing. Cover artists
9300 willing to work for free and create a Creative Commons licensed vector
9301 file looking similar to the original is most welcome, as my skills as
9302 a graphics designer are mostly missing.</p>
9303
9304 </div>
9305 <div class="tags">
9306
9307
9308 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>.
9309
9310
9311 </div>
9312 </div>
9313 <div class="padding"></div>
9314
9315 <div class="entry">
9316 <div class="title">
9317 <a href="http://people.skolelinux.org/pere/blog/First_paper_version_of_the_Norwegian_Free_Culture_book_heading_my_way.html">First paper version of the Norwegian Free Culture book heading my way</a>
9318 </div>
9319 <div class="date">
9320 9th August 2015
9321 </div>
9322 <div class="body">
9323 <p>Typesetting a book is harder than I hoped. As the translation is
9324 mostly done, and a volunteer proof reader was going to check the text
9325 on paper, it was time this summer to focus on formatting my translated
9326 <a href="http://www.docbook.org/">docbook</a> based version of the
9327 <a href="http://free-culture.cc/">Free Culture</a> book by Lawrence
9328 Lessig. I've been trying to get both docboox-xsl+fop and dblatex to
9329 give me a good looking PDF, but in the end I went with dblatex, because
9330 its Debian maintainer and upstream developer were responsive and very
9331 helpful in solving my formatting challenges.</p>
9332
9333 <p>Last night, I finally managed to create a PDF that no longer made
9334 <a href="http://www.lulu.com/">Lulu.com</a> complain after uploading,
9335 and I ordered a text version of the book on paper. It is lacking a
9336 proper book cover and is not tagged with the correct ISBN number, but
9337 should give me an idea what the finished book will look like.</p>
9338
9339 <p>Instead of using Lulu, I did consider printing the book using
9340 <a href="http://www.createspace.com/">CreateSpace</a>, but ended up
9341 using Lulu because it had smaller book size options (CreateSpace seem
9342 to lack pocket book with extended distribution). I looked for a
9343 similar service in Norway, but have not seen anything so far. Please
9344 let me know if I am missing out on something here.</p>
9345
9346 <p>But I still struggle to decide the book size. Should I go for
9347 pocket book (4.25x6.875 inches / 10.8x17.5 cm) with 556 pages, Digest
9348 (5.5x8.5 inches / 14x21.6 cm) with 323 pages or US Trade (6x8 inches /
9349 15.3x22.9 cm) with 280 pages? Fewer pager give a cheaper book, and a
9350 smaller book is easier to carry around. The test book I ordered was
9351 pocket book sized, to give me an idea how well that fit in my hand,
9352 but I suspect I will end up using a digest sized book in the end to
9353 bring the prize down further.</p>
9354
9355 <p>My biggest challenge at the moment is making nice cover art. My
9356 inkscape skills are not yet up to the task of replicating the original
9357 cover in SVG format. I also need to figure out what to write about
9358 the book on the back (will most likely use the same text as the
9359 description on web based book stores). I would love help with this,
9360 if you are willing to license the art source and final version using
9361 the same CC license as the book. My artistic skills are not really up
9362 to the task.</p>
9363
9364 <p>I plan to publish the book in both English and Norwegian and on
9365 paper, in PDF form as well as EPUB and MOBI format. The current
9366 status can as usual be found on
9367 <a href="https://github.com/petterreinholdtsen/free-culture-lessig">github</a>
9368 in the archive/ directory. So far I have spent all time on making the
9369 PDF version look good. Someone should probably do the same with the
9370 dbtoepub generated e-book. Help is definitely needed here, as I
9371 expect to run out of steem before I find time to improve the epub
9372 formatting.</p>
9373
9374 <p>Please let me know via github if you find typos in the book or
9375 discover translations that should be improved. The final proof
9376 reading is being done right now, and I expect to publish the finished
9377 result in a few months.</p>
9378
9379 </div>
9380 <div class="tags">
9381
9382
9383 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>.
9384
9385
9386 </div>
9387 </div>
9388 <div class="padding"></div>
9389
9390 <div class="entry">
9391 <div class="title">
9392 <a href="http://people.skolelinux.org/pere/blog/Typesetting_DocBook_footnotes_as_endnotes_with_dblatex.html">Typesetting DocBook footnotes as endnotes with dblatex</a>
9393 </div>
9394 <div class="date">
9395 16th July 2015
9396 </div>
9397 <div class="body">
9398 <p>I'm still working on the Norwegian version of the
9399 <a href="http://free-culture.cc/">Free Culture book by Lawrence
9400 Lessig</a>, and is now working on the final typesetting and layout.
9401 One of the features I want to get the structure similar to the
9402 original book is to typeset the footnotes as endnotes in the notes
9403 chapter. Based on the
9404 <a href="https://bugs.debian.org/685063">feedback from the Debian
9405 maintainer and the dblatex developer</a>, I came up with this recipe I
9406 would like to share with you. The proposal was to create a new LaTeX
9407 class file and add the LaTeX code there, but this is not always
9408 practical, when I want to be able to replace the class using a make
9409 file variable. So my proposal misuses the latex.begindocument XSL
9410 parameter value, to get a small fragment into the correct location in
9411 the generated LaTeX File.</p>
9412
9413 <p>First, decide where in the DocBook document to place the endnotes,
9414 and add this text there:</p>
9415
9416 <pre>
9417 &lt;?latex \theendnotes ?&gt;
9418 </pre>
9419
9420 <p>Next, create a xsl stylesheet file dblatex-endnotes.xsl to add the
9421 code needed to add the endnote instructions in the preamble of the
9422 generated LaTeX document, with content like this:</p>
9423
9424 <pre>
9425 &lt;?xml version='1.0'?&gt;
9426 &lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'&gt;
9427 &lt;xsl:param name="latex.begindocument"&gt;
9428 &lt;xsl:text&gt;
9429 \usepackage{endnotes}
9430 \let\footnote=\endnote
9431 \def\enoteheading{\mbox{}\par\vskip-\baselineskip }
9432 \begin{document}
9433 &lt;/xsl:text&gt;
9434 &lt;/xsl:param&gt;
9435 &lt;/xsl:stylesheet&gt;
9436 </pre>
9437
9438 <p>Finally, load this xsl file when running dblatex, for example like
9439 this:</p>
9440
9441 <pre>
9442 dblatex --xsl-user=dblatex-endnotes.xsl freeculture.nb.xml
9443 </pre>
9444
9445 <p>The end result can be seen on github, where
9446 <a href="https://github.com/petterreinholdtsen/free-culture-lessig">my
9447 book project</a> is located.</p>
9448
9449 </div>
9450 <div class="tags">
9451
9452
9453 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>.
9454
9455
9456 </div>
9457 </div>
9458 <div class="padding"></div>
9459
9460 <div class="entry">
9461 <div class="title">
9462 <a href="http://people.skolelinux.org/pere/blog/MPEG_LA_on__Internet_Broadcast_AVC_Video__licensing_and_non_private_use.html">MPEG LA on "Internet Broadcast AVC Video" licensing and non-private use</a>
9463 </div>
9464 <div class="date">
9465 7th July 2015
9466 </div>
9467 <div class="body">
9468 <p>After asking the Norwegian Broadcasting Company (NRK)
9469 <a href="http://people.skolelinux.org/pere/blog/Hva_gj_r_at_NRK_kan_distribuere_H_264_video_uten_patentavtale_med_MPEG_LA_.html">why
9470 they can broadcast and stream H.264 video without an agreement with
9471 the MPEG LA</a>, I was wiser, but still confused. So I asked MPEG LA
9472 if their understanding matched that of NRK. As far as I can tell, it
9473 does not.</p>
9474
9475 <p>I started by asking for more information about the various
9476 licensing classes and what exactly is covered by the "Internet
9477 Broadcast AVC Video" class that NRK pointed me at to explain why NRK
9478 did not need a license for streaming H.264 video:
9479
9480 <p><blockquote>
9481
9482 <p>According to
9483 <a href="http://www.mpegla.com/Lists/MPEG%20LA%20News%20List/Attachments/226/n-10-02-02.pdf">a
9484 MPEG LA press release dated 2010-02-02</a>, there is no charge when
9485 using MPEG AVC/H.264 according to the terms of "Internet Broadcast AVC
9486 Video". I am trying to understand exactly what the terms of "Internet
9487 Broadcast AVC Video" is, and wondered if you could help me. What
9488 exactly is covered by these terms, and what is not?</p>
9489
9490 <p>The only source of more information I have been able to find is a
9491 PDF named
9492 <a href="http://www.mpegla.com/main/programs/avc/Documents/avcweb.pdf">AVC
9493 Patent Portfolio License Briefing</a>, which states this about the
9494 fees:</p>
9495
9496 <ul>
9497 <li>Where End User pays for AVC Video
9498 <ul>
9499 <li>Subscription (not limited by title) – 100,000 or fewer
9500 subscribers/yr = no royalty; &gt; 100,000 to 250,000 subscribers/yr =
9501 $25,000; &gt;250,000 to 500,000 subscribers/yr = $50,000; &gt;500,000 to
9502 1M subscribers/yr = $75,000; &gt;1M subscribers/yr = $100,000</li>
9503
9504 <li>Title-by-Title - 12 minutes or less = no royalty; &gt;12 minutes in
9505 length = lower of (a) 2% or (b) $0.02 per title</li>
9506 </ul></li>
9507
9508 <li>Where remuneration is from other sources
9509 <ul>
9510 <li>Free Television - (a) one-time $2,500 per transmission encoder or
9511 (b) annual fee starting at $2,500 for &gt; 100,000 HH rising to
9512 maximum $10,000 for &gt;1,000,000 HH</li>
9513
9514 <li>Internet Broadcast AVC Video (not title-by-title, not subscription)
9515 – no royalty for life of the AVC Patent Portfolio License</li>
9516 </ul></li>
9517 </ul>
9518
9519 <p>Am I correct in assuming that the four categories listed is the
9520 categories used when selecting licensing terms, and that "Internet
9521 Broadcast AVC Video" is the category for things that do not fall into
9522 one of the other three categories? Can you point me to a good source
9523 explaining what is ment by "title-by-title" and "Free Television" in
9524 the license terms for AVC/H.264?</p>
9525
9526 <p>Will a web service providing H.264 encoded video content in a
9527 "video on demand" fashing similar to Youtube and Vimeo, where no
9528 subscription is required and no payment is required from end users to
9529 get access to the videos, fall under the terms of the "Internet
9530 Broadcast AVC Video", ie no royalty for life of the AVC Patent
9531 Portfolio license? Does it matter if some users are subscribed to get
9532 access to personalized services?</p>
9533
9534 <p>Note, this request and all answers will be published on the
9535 Internet.</p>
9536 </blockquote></p>
9537
9538 <p>The answer came quickly from Benjamin J. Myers, Licensing Associate
9539 with the MPEG LA:</p>
9540
9541 <p><blockquote>
9542 <p>Thank you for your message and for your interest in MPEG LA. We
9543 appreciate hearing from you and I will be happy to assist you.</p>
9544
9545 <p>As you are aware, MPEG LA offers our AVC Patent Portfolio License
9546 which provides coverage under patents that are essential for use of
9547 the AVC/H.264 Standard (MPEG-4 Part 10). Specifically, coverage is
9548 provided for end products and video content that make use of AVC/H.264
9549 technology. Accordingly, the party offering such end products and
9550 video to End Users concludes the AVC License and is responsible for
9551 paying the applicable royalties.</p>
9552
9553 <p>Regarding Internet Broadcast AVC Video, the AVC License generally
9554 defines such content to be video that is distributed to End Users over
9555 the Internet free-of-charge. Therefore, if a party offers a service
9556 which allows users to upload AVC/H.264 video to its website, and such
9557 AVC Video is delivered to End Users for free, then such video would
9558 receive coverage under the sublicense for Internet Broadcast AVC
9559 Video, which is not subject to any royalties for the life of the AVC
9560 License. This would also apply in the scenario where a user creates a
9561 free online account in order to receive a customized offering of free
9562 AVC Video content. In other words, as long as the End User is given
9563 access to or views AVC Video content at no cost to the End User, then
9564 no royalties would be payable under our AVC License.</p>
9565
9566 <p>On the other hand, if End Users pay for access to AVC Video for a
9567 specific period of time (e.g., one month, one year, etc.), then such
9568 video would constitute Subscription AVC Video. In cases where AVC
9569 Video is delivered to End Users on a pay-per-view basis, then such
9570 content would constitute Title-by-Title AVC Video. If a party offers
9571 Subscription or Title-by-Title AVC Video to End Users, then they would
9572 be responsible for paying the applicable royalties you noted below.</p>
9573
9574 <p>Finally, in the case where AVC Video is distributed for free
9575 through an "over-the-air, satellite and/or cable transmission", then
9576 such content would constitute Free Television AVC Video and would be
9577 subject to the applicable royalties.</p>
9578
9579 <p>For your reference, I have attached
9580 <a href="http://people.skolelinux.org/pere/blog/images/2015-07-07-mpegla.pdf">a
9581 .pdf copy of the AVC License</a>. You will find the relevant
9582 sublicense information regarding AVC Video in Sections 2.2 through
9583 2.5, and the corresponding royalties in Section 3.1.2 through 3.1.4.
9584 You will also find the definitions of Title-by-Title AVC Video,
9585 Subscription AVC Video, Free Television AVC Video, and Internet
9586 Broadcast AVC Video in Section 1 of the License. Please note that the
9587 electronic copy is provided for informational purposes only and cannot
9588 be used for execution.</p>
9589
9590 <p>I hope the above information is helpful. If you have additional
9591 questions or need further assistance with the AVC License, please feel
9592 free to contact me directly.</p>
9593 </blockquote></p>
9594
9595 <p>Having a fresh copy of the license text was useful, and knowing
9596 that the definition of Title-by-Title required payment per title made
9597 me aware that my earlier understanding of that phrase had been wrong.
9598 But I still had a few questions:</p>
9599
9600 <p><blockquote>
9601 <p>I have a small followup question. Would it be possible for me to get
9602 a license with MPEG LA even if there are no royalties to be paid? The
9603 reason I ask, is that some video related products have a copyright
9604 clause limiting their use without a license with MPEG LA. The clauses
9605 typically look similar to this:
9606
9607 <p><blockquote>
9608 This product is licensed under the AVC patent portfolio license for
9609 the personal and non-commercial use of a consumer to (a) encode
9610 video in compliance with the AVC standard ("AVC video") and/or (b)
9611 decode AVC video that was encoded by a consumer engaged in a
9612 personal and non-commercial activity and/or AVC video that was
9613 obtained from a video provider licensed to provide AVC video. No
9614 license is granted or shall be implied for any other use. additional
9615 information may be obtained from MPEG LA L.L.C.
9616 </blockquote></p>
9617
9618 <p>It is unclear to me if this clause mean that I need to enter into
9619 an agreement with MPEG LA to use the product in question, even if
9620 there are no royalties to be paid to MPEG LA. I suspect it will
9621 differ depending on the jurisdiction, and mine is Norway. What is
9622 MPEG LAs view on this?</p>
9623 </blockquote></p>
9624
9625 <p>According to the answer, MPEG LA believe those using such tools for
9626 non-personal or commercial use need a license with them:</p>
9627
9628 <p><blockquote>
9629
9630 <p>With regard to the Notice to Customers, I would like to begin by
9631 clarifying that the Notice from Section 7.1 of the AVC License
9632 reads:</p>
9633
9634 <p>THIS PRODUCT IS LICENSED UNDER THE AVC PATENT PORTFOLIO LICENSE FOR
9635 THE PERSONAL USE OF A CONSUMER OR OTHER USES IN WHICH IT DOES NOT
9636 RECEIVE REMUNERATION TO (i) ENCODE VIDEO IN COMPLIANCE WITH THE AVC
9637 STANDARD ("AVC VIDEO") AND/OR (ii) DECODE AVC VIDEO THAT WAS ENCODED
9638 BY A CONSUMER ENGAGED IN A PERSONAL ACTIVITY AND/OR WAS OBTAINED FROM
9639 A VIDEO PROVIDER LICENSED TO PROVIDE AVC VIDEO. NO LICENSE IS GRANTED
9640 OR SHALL BE IMPLIED FOR ANY OTHER USE. ADDITIONAL INFORMATION MAY BE
9641 OBTAINED FROM MPEG LA, L.L.C. SEE HTTP://WWW.MPEGLA.COM</p>
9642
9643 <p>The Notice to Customers is intended to inform End Users of the
9644 personal usage rights (for example, to watch video content) included
9645 with the product they purchased, and to encourage any party using the
9646 product for commercial purposes to contact MPEG LA in order to become
9647 licensed for such use (for example, when they use an AVC Product to
9648 deliver Title-by-Title, Subscription, Free Television or Internet
9649 Broadcast AVC Video to End Users, or to re-Sell a third party's AVC
9650 Product as their own branded AVC Product).</p>
9651
9652 <p>Therefore, if a party is to be licensed for its use of an AVC
9653 Product to Sell AVC Video on a Title-by-Title, Subscription, Free
9654 Television or Internet Broadcast basis, that party would need to
9655 conclude the AVC License, even in the case where no royalties were
9656 payable under the License. On the other hand, if that party (either a
9657 Consumer or business customer) simply uses an AVC Product for their
9658 own internal purposes and not for the commercial purposes referenced
9659 above, then such use would be included in the royalty paid for the AVC
9660 Products by the licensed supplier.</p>
9661
9662 <p>Finally, I note that our AVC License provides worldwide coverage in
9663 countries that have AVC Patent Portfolio Patents, including
9664 Norway.</p>
9665
9666 <p>I hope this clarification is helpful. If I may be of any further
9667 assistance, just let me know.</p>
9668 </blockquote></p>
9669
9670 <p>The mentioning of Norwegian patents made me a bit confused, so I
9671 asked for more information:</p>
9672
9673 <p><blockquote>
9674
9675 <p>But one minor question at the end. If I understand you correctly,
9676 you state in the quote above that there are patents in the AVC Patent
9677 Portfolio that are valid in Norway. This make me believe I read the
9678 list available from &lt;URL:
9679 <a href="http://www.mpegla.com/main/programs/AVC/Pages/PatentList.aspx">http://www.mpegla.com/main/programs/AVC/Pages/PatentList.aspx</a>
9680 &gt; incorrectly, as I believed the "NO" prefix in front of patents
9681 were Norwegian patents, and the only one I could find under Mitsubishi
9682 Electric Corporation expired in 2012. Which patents are you referring
9683 to that are relevant for Norway?</p>
9684
9685 </blockquote></p>
9686
9687 <p>Again, the quick answer explained how to read the list of patents
9688 in that list:</p>
9689
9690 <p><blockquote>
9691
9692 <p>Your understanding is correct that the last AVC Patent Portfolio
9693 Patent in Norway expired on 21 October 2012. Therefore, where AVC
9694 Video is both made and Sold in Norway after that date, then no
9695 royalties would be payable for such AVC Video under the AVC License.
9696 With that said, our AVC License provides historic coverage for AVC
9697 Products and AVC Video that may have been manufactured or Sold before
9698 the last Norwegian AVC patent expired. I would also like to clarify
9699 that coverage is provided for the country of manufacture and the
9700 country of Sale that has active AVC Patent Portfolio Patents.</p>
9701
9702 <p>Therefore, if a party offers AVC Products or AVC Video for Sale in
9703 a country with active AVC Patent Portfolio Patents (for example,
9704 Sweden, Denmark, Finland, etc.), then that party would still need
9705 coverage under the AVC License even if such products or video are
9706 initially made in a country without active AVC Patent Portfolio
9707 Patents (for example, Norway). Similarly, a party would need to
9708 conclude the AVC License if they make AVC Products or AVC Video in a
9709 country with active AVC Patent Portfolio Patents, but eventually Sell
9710 such AVC Products or AVC Video in a country without active AVC Patent
9711 Portfolio Patents.</p>
9712 </blockquote></p>
9713
9714 <p>As far as I understand it, MPEG LA believe anyone using Adobe
9715 Premiere and other video related software with a H.264 distribution
9716 license need a license agreement with MPEG LA to use such tools for
9717 anything non-private or commercial, while it is OK to set up a
9718 Youtube-like service as long as no-one pays to get access to the
9719 content. I still have no clear idea how this applies to Norway, where
9720 none of the patents MPEG LA is licensing are valid. Will the
9721 copyright terms take precedence or can those terms be ignored because
9722 the patents are not valid in Norway?</p>
9723
9724 </div>
9725 <div class="tags">
9726
9727
9728 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/h264">h264</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</a>.
9729
9730
9731 </div>
9732 </div>
9733 <div class="padding"></div>
9734
9735 <div class="entry">
9736 <div class="title">
9737 <a href="http://people.skolelinux.org/pere/blog/New_laptop___some_more_clues_and_ideas_based_on_feedback.html">New laptop - some more clues and ideas based on feedback</a>
9738 </div>
9739 <div class="date">
9740 5th July 2015
9741 </div>
9742 <div class="body">
9743 <p>Several people contacted me after my previous blog post about my
9744 need for a new laptop, and provided very useful feedback. I wish to
9745 thank every one of these. Several pointed me to the possibility of
9746 fixing my X230, and I am already in the process of getting Lenovo to
9747 do so thanks to the on site, next day support contract covering the
9748 machine. But the battery is almost useless (I expect to replace it
9749 with a non-official battery) and I do not expect the machine to live
9750 for many more years, so it is time to plan its replacement. If I did
9751 not have a support contract, it was suggested to find replacement parts
9752 using <a href="http://www.francecrans.com/">FrancEcrans</a>, but it
9753 might present a language barrier as I do not understand French.</p>
9754
9755 <p>One tip I got was to use the
9756 <a href="https://skinflint.co.uk/?cat=nb">Skinflint</a> web service to
9757 compare laptop models. It seem to have more models available than
9758 prisjakt.no. Another tip I got from someone I know have similar
9759 keyboard preferences was that the HP EliteBook 840 keyboard is not
9760 very good, and this matches my experience with earlier EliteBook
9761 keyboards I tested. Because of this, I will not consider it any further.
9762
9763 <p>When I wrote my blog post, I was not aware of Thinkpad X250, the
9764 newest Thinkpad X model. The keyboard reintroduces mouse buttons
9765 (which is missing from the X240), and is working fairly well with
9766 Debian Sid/Unstable according to
9767 <a href="http://www.corsac.net/X250/">Corsac.net</a>. The reports I
9768 got on the keyboard quality are not consistent. Some say the keyboard
9769 is good, others say it is ok, while others say it is not very good.
9770 Those with experience from X41 and and X60 agree that the X250
9771 keyboard is not as good as those trusty old laptops, and suggest I
9772 keep and fix my X230 instead of upgrading, or get a used X230 to
9773 replace it. I'm also told that the X250 lack leds for caps lock, disk
9774 activity and battery status, which is very convenient on my X230. I'm
9775 also told that the CPU fan is running very often, making it a bit
9776 noisy. In any case, the X250 do not work out of the box with Debian
9777 Stable/Jessie, one of my requirements.</p>
9778
9779 <p>I have also gotten a few vendor proposals, one was
9780 <a href="http://pro-star.com">Pro-Star</a>, another was
9781 <a href="http://shop.gluglug.org.uk/product/libreboot-x200/">Libreboot</a>.
9782 The latter look very attractive to me.</p>
9783
9784 <p>Again, thank you all for the very useful feedback. It help a lot
9785 as I keep looking for a replacement.</p>
9786
9787 <p>Update 2015-07-06: I was recommended to check out the
9788 <a href="">lapstore.de</a> web shop for used laptops. They got several
9789 different
9790 <a href="http://www.lapstore.de/f.php/shop/lapstore/f/411/lang/x/kw/Lenovo_ThinkPad_X_Serie/">old
9791 thinkpad X models</a>, and provide one year warranty.</p>
9792
9793 </div>
9794 <div class="tags">
9795
9796
9797 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>.
9798
9799
9800 </div>
9801 </div>
9802 <div class="padding"></div>
9803
9804 <div class="entry">
9805 <div class="title">
9806 <a href="http://people.skolelinux.org/pere/blog/Time_to_find_a_new_laptop__as_the_old_one_is_broken_after_only_two_years.html">Time to find a new laptop, as the old one is broken after only two years</a>
9807 </div>
9808 <div class="date">
9809 3rd July 2015
9810 </div>
9811 <div class="body">
9812 <p>My primary work horse laptop is failing, and will need a
9813 replacement soon. The left 5 cm of the screen on my Thinkpad X230
9814 started flickering yesterday, and I suspect the cause is a broken
9815 cable, as changing the angle of the screen some times get rid of the
9816 flickering.</p>
9817
9818 <p>My requirements have not really changed since I bought it, and is
9819 still as
9820 <a href="http://people.skolelinux.org/pere/blog/Thank_you_Thinkpad_X41__for_your_long_and_trustworthy_service.html">I
9821 described them in 2013</a>. The last time I bought a laptop, I had
9822 good help from
9823 <a href="http://www.prisjakt.no/category.php?k=353">prisjakt.no</a>
9824 where I could select at least a few of the requirements (mouse pin,
9825 wifi, weight) and go through the rest manually. Three button mouse
9826 and a good keyboard is not available as an option, and all the three
9827 laptop models proposed today (Thinkpad X240, HP EliteBook 820 G1 and
9828 G2) lack three mouse buttons). It is also unclear to me how good the
9829 keyboard on the HP EliteBooks are. I hope Lenovo have not messed up
9830 the keyboard, even if the quality and robustness in the X series have
9831 deteriorated since X41.</p>
9832
9833 <p>I wonder how I can find a sensible laptop when none of the options
9834 seem sensible to me? Are there better services around to search the
9835 set of available laptops for features? Please send me an email if you
9836 have suggestions.</p>
9837
9838 <p>Update 2015-07-23: I got a suggestion to check out the FSF
9839 <a href="http://www.fsf.org/resources/hw/endorsement/respects-your-freedom">list
9840 of endorsed hardware</a>, which is useful background information.</p>
9841
9842 </div>
9843 <div class="tags">
9844
9845
9846 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>.
9847
9848
9849 </div>
9850 </div>
9851 <div class="padding"></div>
9852
9853 <div class="entry">
9854 <div class="title">
9855 <a href="http://people.skolelinux.org/pere/blog/MakerCon_Nordic_videos_now_available_on_Frikanalen.html">MakerCon Nordic videos now available on Frikanalen</a>
9856 </div>
9857 <div class="date">
9858 2nd July 2015
9859 </div>
9860 <div class="body">
9861 <p>Last oktober I was involved on behalf of
9862 <a href="http://www.nuug.no/">NUUG</a> with recording the talks at
9863 <a href="http://www.makercon.no/">MakerCon Nordic</a>, a conference for
9864 the Maker movement. Since then it has been the plan to publish the
9865 recordings on <a href="http://www.frikanalen.no/">Frikanalen</a>, which
9866 finally happened the last few days. A few talks are missing because
9867 the speakers asked the organizers to not publish them, but most of the
9868 talks are available. The talks are being broadcasted on RiksTV
9869 channel 50 and using multicast on Uninett, as well as being available
9870 from the Frikanalen web site. The unedited recordings are
9871 <a href="https://www.youtube.com/user/MakerConNordic/">available on
9872 Youtube too</a>.</p>
9873
9874 <p>This is the list of talks available at the moment. Visit the
9875 <a href="http://beta.frikanalen.no/video/?q=makercon">Frikanalen video
9876 pages</a> to view them.</p>
9877
9878 <ul>
9879
9880 <li>Evolutionary algorithms as a design tool - from art
9881 to robotics (Kyrre Glette)</li>
9882
9883 <li>Make and break (Hans Gerhard Meier)</li>
9884
9885 <li>Making a one year school course for young makers
9886 (Olav Helland)</li>
9887
9888 <li>Innovation Inspiration - IPR Databases as a Source of
9889 Inspiration (Hege Langlo)</li>
9890
9891 <li>Making a toy for makers (Erik Torstensson)</li>
9892
9893 <li>How to make 3D printer electronics (Elias Bakken)</li>
9894
9895 <li>Hovering Clouds: Looking at online tool offerings for Product
9896 Design and 3D Printing (William Kempton)</li>
9897
9898 <li>Travelling maker stories (Øyvind Nydal Dahl)</li>
9899
9900 <li>Making the first Maker Faire in Sweden (Nils Olander)</li>
9901
9902 <li>Breaking the mold: Printing 1000’s of parts (Espen Sivertsen)</li>
9903
9904 <li>Ultimaker — and open source 3D printing (Erik de Bruijn)</li>
9905
9906 <li>Autodesk’s 3D Printing Platform: Sparking innovation (Hilde
9907 Sevens)</li>
9908
9909 <li>How Making is Changing the World – and How You Can Too!
9910 (Jennifer Turliuk)</li>
9911
9912 <li>Open-Source Adventuring: OpenROV, OpenExplorer and the Future of
9913 Connected Exploration (David Lang)</li>
9914
9915 <li>Making in Norway (Haakon Karlsen Jr., Graham Hayward and Jens
9916 Dyvik)</li>
9917
9918 <li>The Impact of the Maker Movement (Mike Senese)</li>
9919
9920 </ul>
9921
9922 <p>Part of the reason this took so long was that the scripts NUUG had
9923 to prepare a recording for publication were five years old and no
9924 longer worked with the current video processing tools (command line
9925 argument changes). In addition, we needed better audio normalization,
9926 which sent me on a detour to
9927 <a href="http://people.skolelinux.org/pere/blog/Measuring_and_adjusting_the_loudness_of_a_TV_channel_using_bs1770gain.html">package
9928 bs1770gain for Debian</a>. Now this is in place and it became a lot
9929 easier to publish NUUG videos on Frikanalen.</p>
9930
9931 </div>
9932 <div class="tags">
9933
9934
9935 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
9936
9937
9938 </div>
9939 </div>
9940 <div class="padding"></div>
9941
9942 <div class="entry">
9943 <div class="title">
9944 <a href="http://people.skolelinux.org/pere/blog/Graphing_the_Norwegian_company_ownership_structure.html">Graphing the Norwegian company ownership structure</a>
9945 </div>
9946 <div class="date">
9947 15th June 2015
9948 </div>
9949 <div class="body">
9950 <p>It is a bit work to figure out the ownership structure of companies
9951 in Norway. The information is publicly available, but one need to
9952 recursively look up ownership for all owners to figure out the complete
9953 ownership graph of a given set of companies. To save me the work in
9954 the future, I wrote a script to do this automatically, outputting the
9955 ownership structure using the Graphviz/dotty format. The data source
9956 is web scraping from <a href="http://www.proff.no/">Proff</a>, because
9957 I failed to find a useful source directly from the official keepers of
9958 the ownership data, <a href="http://www.brreg.no/">Brønnøysundsregistrene</a>.</p>
9959
9960 <p>To get an ownership graph for a set of companies, fetch
9961 <a href="https://github.com/petterreinholdtsen/brreg-norway-ownership-graph">the code from git</a> and run it using the organisation number. I'm
9962 using the Norwegian newspaper Dagbladet as an example here, as its
9963 ownership structure is very simple:</p>
9964
9965 <pre>
9966 % time ./bin/eierskap-dotty 958033540 > dagbladet.dot
9967
9968 real 0m2.841s
9969 user 0m0.184s
9970 sys 0m0.036s
9971 %
9972 </pre>
9973
9974 <p>The script accept several organisation numbers on the command line,
9975 allowing a cluster of companies to be graphed in the same image. The
9976 resulting dot file for the example above look like this. The edges
9977 are labeled with the ownership percentage, and the nodes uses the
9978 organisation number as their name and the name as the label:</p>
9979
9980 <pre>
9981 digraph ownership {
9982 rankdir = LR;
9983 "Aller Holding A/s" -> "910119877" [label="100%"]
9984 "910119877" -> "998689015" [label="100%"]
9985 "998689015" -> "958033540" [label="99%"]
9986 "974530600" -> "958033540" [label="1%"]
9987 "958033540" [label="AS DAGBLADET"]
9988 "998689015" [label="Berner Media Holding AS"]
9989 "974530600" [label="Dagbladets Stiftelse"]
9990 "910119877" [label="Aller Media AS"]
9991 }
9992 </pre>
9993
9994 <p>To view the ownership graph, run "<tt>dotty dagbladet.dot</tt>" or
9995 convert it to a PNG using "<tt>dot -T png dagbladet.dot >
9996 dagbladet.png</tt>". The result can be seen below:</p>
9997
9998 <img src="http://people.skolelinux.org/pere/blog/images/2015-06-15-ownership-graphs-norway-dagbladet.png" width="80%">
9999
10000 <p>Note that I suspect the "Aller Holding A/S" entry to be incorrect
10001 data in the official ownership register, as that name is not
10002 registered in the official company register for Norway. The ownership
10003 register is sensitive to typos and there seem to be no strict checking
10004 of the ownership links.</p>
10005
10006 <p>Let me know if you improve the script or find better data sources.
10007 The code is licensed according to GPL 2 or newer.</p>
10008
10009 <p>Update 2015-06-15: Since the initial post I've been told that
10010 "<a href="http://www.proff.dk/firma/carl-allers-etablissement-aktieselskab/københavn-v/hovedkontorer/13624518-3/">Aller
10011 Holding A/S</a>" is a Danish company, which explain why it did not
10012 have a Norwegian organisation number. I've also been told that there
10013 is a <a href="http://www.brreg.no/automatiske/webservices/">web
10014 services API available</a> from Brønnøysundsregistrene, for those
10015 willing to accept the terms or pay the price.</p>
10016
10017 </div>
10018 <div class="tags">
10019
10020
10021 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn</a>.
10022
10023
10024 </div>
10025 </div>
10026 <div class="padding"></div>
10027
10028 <div class="entry">
10029 <div class="title">
10030 <a href="http://people.skolelinux.org/pere/blog/Measuring_and_adjusting_the_loudness_of_a_TV_channel_using_bs1770gain.html">Measuring and adjusting the loudness of a TV channel using bs1770gain</a>
10031 </div>
10032 <div class="date">
10033 11th June 2015
10034 </div>
10035 <div class="body">
10036 <p>Television loudness is the source of frustration for viewers
10037 everywhere. Some channels are very load, others are less loud, and
10038 ads tend to shout very high to get the attention of the viewers, and
10039 the viewers do not like this. This fact is well known to the TV
10040 channels. See for example the BBC white paper
10041 "<a href="http://downloads.bbc.co.uk/rd/pubs/whp/whp-pdf-files/WHP202.pdf">Terminology
10042 for loudness and level dBTP, LU, and all that</a>" from 2011 for a
10043 summary of the problem domain. To better address the need for even
10044 loadness, the TV channels got together several years ago to agree on a
10045 new way to measure loudness in digital files as one step in
10046 standardizing loudness. From this came the ITU-R standard BS.1770,
10047 "<a href="http://www.itu.int/rec/R-REC-BS.1770/en">Algorithms to
10048 measure audio programme loudness and true-peak audio level</a>".</p>
10049
10050 <p>The ITU-R BS.1770 specification describe an algorithm to measure
10051 loadness in LUFS (Loudness Units, referenced to Full Scale). But
10052 having a way to measure is not enough. To get the same loudness
10053 across TV channels, one also need to decide which value to standardize
10054 on. For European TV channels, this was done in the EBU Recommondaton
10055 R128, "<a href="https://tech.ebu.ch/docs/r/r128.pdf">Loudness
10056 normalisation and permitted maximum level of audio signals</a>", which
10057 specifies a recommended level of -23 LUFS. In Norway, I have been
10058 told that NRK, TV2, MTG and SBS have decided among themselves to
10059 follow the R128 recommondation for playout from 2016-03-01.</p>
10060
10061 <p>There are free software available to measure and adjust the loudness
10062 level using the LUFS. In Debian, I am aware of a library named
10063 <a href="https://tracker.debian.org/pkg/libebur128">libebur128</a>
10064 able to measure the loudness and since yesterday morning a new binary
10065 named <a href="http://bs1770gain.sourceforge.net">bs1770gain</a>
10066 capable of both measuring and adjusting was uploaded and is waiting
10067 for NEW processing. I plan to maintain the latter in Debian under the
10068 <a href="https://qa.debian.org/developer.php?email=pkg-multimedia-maintainers%40lists.alioth.debian.org">Debian
10069 multimedia</a> umbrella.</p>
10070
10071 <p>The free software based TV channel I am involved in,
10072 <a href="http://www.frikanalen.no/">Frikanalen</a>, plan to follow the
10073 R128 recommondation ourself as soon as we can adjust the software to
10074 do so, and the bs1770gain tool seem like a good fit for that part of
10075 the puzzle to measure loudness on new video uploaded to Frikanalen.
10076 Personally, I plan to use bs1770gain to adjust the loudness of videos
10077 I upload to Frikanalen on behalf of <a href="http://www.nuug.no/">the
10078 NUUG member organisation</a>. The program seem to be able to measure
10079 the LUFS value of any media file handled by ffmpeg, but I've only
10080 successfully adjusted the LUFS value of WAV files. I suspect it
10081 should be able to adjust it for all the formats handled by ffmpeg.</p>
10082
10083 </div>
10084 <div class="tags">
10085
10086
10087 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
10088
10089
10090 </div>
10091 </div>
10092 <div class="padding"></div>
10093
10094 <div class="entry">
10095 <div class="title">
10096 <a href="http://people.skolelinux.org/pere/blog/Norwegian_citizens_now_required_by_law_to_give_their_fingerprint_to_the_police.html">Norwegian citizens now required by law to give their fingerprint to the police</a>
10097 </div>
10098 <div class="date">
10099 10th May 2015
10100 </div>
10101 <div class="body">
10102 <p>5 days ago, the Norwegian Parliament decided, unanimously, that all
10103 citizens of Norway, no matter if they are suspected of something
10104 criminal or not, are
10105 <a href="https://www.holderdeord.no/votes/1430838871e">required to
10106 give fingerprints to the police</a> (vote details from Holder de
10107 ord). The law make it sound like it will be optional, but in a few
10108 years there will be no option any more. The ID will be required to
10109 vote, to get a bank account, a bank card, to change address on the
10110 post office, to receive an electronic ID or to get a drivers license
10111 and many other tasks required to function in Norway. The banks plan
10112 to stop providing their own ID on the bank cards when this new
10113 national ID is introduced, and the national road authorities plan to
10114 change the drivers license to no longer be usable as identity cards.
10115 In effect, to function as a citizen in Norway a national ID card will
10116 be required, and to get it one need to provide the fingerprints to
10117 the police.</p>
10118
10119 <p>In addition to handing the fingerprint to the police (which
10120 promised to not make a copy of the fingerprint image at that point in
10121 time, but say nothing about doing it later), a picture of the
10122 fingerprint will be stored on the RFID chip, along with a picture of
10123 the face and other information about the person. Some of the
10124 information will be encrypted, but the encryption will be the same
10125 system as currently used in the passports. The codes to decrypt will
10126 be available to a lot of government offices and their suppliers around
10127 the globe, but for those that do not know anyone in those circles it
10128 is good to know that
10129 <a href="http://www.theguardian.com/technology/2006/nov/17/news.homeaffairs">the
10130 encryption is already broken</a>. And they
10131 <a href="http://www.networkworld.com/article/2215057/wireless/bad-guys-could-read-rfid-passports-at-217-feet--maybe-a-lot-more.html">can
10132 be read from 70 meters away</a>. This can be mitigated a bit by
10133 keeping it in a Faraday cage (metal box or metal wire container), but
10134 one will be required to take it out of there often enough to expose
10135 ones private and personal information to a lot of people that have no
10136 business getting access to that information.</p>
10137
10138 <p>The new Norwegian national IDs are a vehicle for identity theft,
10139 and I feel sorry for us all having politicians accepting such invasion
10140 of privacy without any objections. So are the Norwegian passports,
10141 but it has been possible to function in Norway without those so far.
10142 That option is going away with the passing of the new law. In this, I
10143 envy the Germans, because for them it is optional how much biometric
10144 information is stored in their national ID.</p>
10145
10146 <p>And if forced collection of fingerprints was not bad enough, the
10147 information collected in the national ID card register can be handed
10148 over to foreign intelligence services and police authorities, "when
10149 extradition is not considered disproportionate".</p>
10150
10151 <p>Update 2015-05-12: For those unable to believe that the Parliament
10152 really could make such decision, I wrote
10153 <a href="http://people.skolelinux.org/pere/blog/Blir_det_virkelig_krav_om_fingeravtrykk_i_nasjonale_ID_kort_.html">a
10154 summary of the sources I have</a> for concluding the way I do
10155 (Norwegian Only, as the sources are all in Norwegian).</p>
10156
10157 </div>
10158 <div class="tags">
10159
10160
10161 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>.
10162
10163
10164 </div>
10165 </div>
10166 <div class="padding"></div>
10167
10168 <div class="entry">
10169 <div class="title">
10170 <a href="http://people.skolelinux.org/pere/blog/What_would_it_cost_to_store_all_phone_calls_in_Norway_.html">What would it cost to store all phone calls in Norway?</a>
10171 </div>
10172 <div class="date">
10173 1st May 2015
10174 </div>
10175 <div class="body">
10176 <p>Many years ago, a friend of mine calculated how much it would cost
10177 to store the sound of all phone calls in Norway, and came up with the
10178 cost of around 20 million NOK (2.4 mill EUR) for all the calls in a
10179 year. I got curious and wondered what the same calculation would look
10180 like today. To do so one need an idea of how much data storage is
10181 needed for each minute of sound, how many minutes all the calls in
10182 Norway sums up to, and the cost of data storage.</p>
10183
10184 <p>The 2005 numbers are from
10185 <a href="http://www.digi.no/analyser/2005/10/04/vi-prater-stadig-mindre-i-roret">digi.no</a>,
10186 the 2012 numbers are from
10187 <a href="http://www.nkom.no/aktuelt/nyheter/fortsatt-vekst-i-det-norske-ekommarkedet">a
10188 NKOM report</a>, and I got the 2013 numbers after asking NKOM via
10189 email. I was told the numbers for 2014 will be presented May 20th,
10190 and decided not to wait for those, as I doubt they will be very
10191 different from the numbers from 2013.</p>
10192
10193 <p>The amount of data storage per minute sound depend on the wanted
10194 quality, and for phone calls it is generally believed that 8 Kbit/s is
10195 enough. See for example a
10196 <a href="http://www.cisco.com/c/en/us/support/docs/voice/voice-quality/7934-bwidth-consume.html#topic1">summary
10197 on voice quality from Cisco</a> for some alternatives. 8 Kbit/s is 60
10198 Kbytes/min, and this can be multiplied with the number of call minutes
10199 to get the storage requirements.</p>
10200
10201 <p>Storage prices varies a lot, depending on speed, backup strategies,
10202 availability requirements etc. But a simple way to calculate can be
10203 to use the price of a TiB-disk (around 1000 NOK / 120 EUR) and double
10204 it to take space, power and redundancy into account. It could be much
10205 higher with high speed and good redundancy requirements.</p>
10206
10207 <p>But back to the question, What would it cost to store all phone
10208 calls in Norway? Not much. Here is a small table showing the
10209 estimated cost, which is within the budget constraint of most medium
10210 and large organisations:</p>
10211
10212 <table border="1">
10213 <tr><th>Year</th><th>Call minutes</th><th>Size</th><th>Price in NOK / EUR</th></tr>
10214 <tr><td>2005</td><td align="right">24 000 000 000</td><td align="right">1.3 PiB</td><td align="right">3 mill / 358 000</td></tr>
10215 <tr><td>2012</td><td align="right">18 000 000 000</td><td align="right">1.0 PiB</td><td align="right">2.2 mill / 262 000</td></tr>
10216 <tr><td>2013</td><td align="right">17 000 000 000</td><td align="right">950 TiB</td><td align="right">2.1 mill / 250 000</td></tr>
10217 </table>
10218
10219 <p>This is the cost of buying the storage. Maintenance need to be
10220 taken into account too, but calculating that is left as an exercise
10221 for the reader. But it is obvious to me from those numbers that
10222 recording the sound of all phone calls in Norway is not going to be
10223 stopped because it is too expensive. I wonder if someone already is
10224 collecting the data?</p>
10225
10226 </div>
10227 <div class="tags">
10228
10229
10230 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>.
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/First_Jessie_based_Debian_Edu_beta_release.html">First Jessie based Debian Edu beta release</a>
10240 </div>
10241 <div class="date">
10242 26th April 2015
10243 </div>
10244 <div class="body">
10245 <p>I am happy to report that the Debian Edu team sent out
10246 <a href="https://lists.debian.org/debian-edu-announce/2015/04/msg00000.html">this
10247 announcement today</a>:</p>
10248
10249 <pre>
10250 the Debian Edu / Skolelinux project is pleased to announce the first
10251 *beta* release of Debian Edu "Jessie" 8.0+edu0~b1, which for the first
10252 time is composed entirely of packages from the current Debian stable
10253 release, Debian 8 "Jessie".
10254
10255 (As most reading this will know, Debian "Jessie" hasn't actually been
10256 released by now. The release is still in progress but should finish
10257 later today ;)
10258
10259 We expect to make a final release of Debian Edu "Jessie" in the coming
10260 weeks, timed with the first point release of Debian Jessie. Upgrades
10261 from this beta release of Debian Edu Jessie to the final release will
10262 be possible and encouraged!
10263
10264 Please report feedback to debian-edu@lists.debian.org and/or submit
10265 bugs: http://wiki.debian.org/DebianEdu/HowTo/ReportBugs
10266
10267 Debian Edu - sometimes also known as "Skolelinux" - is a complete
10268 operating system for schools, universities and other
10269 organisations. Through its pre- prepared installation profiles
10270 administrators can install servers, workstations and laptops which
10271 will work in harmony on the school network. With Debian Edu, the
10272 teachers themselves or their technical support staff can roll out a
10273 complete multi-user, multi-machine study environment within hours or
10274 days.
10275
10276 Debian Edu is already in use at several hundred schools all over the
10277 world, particularly in Germany, Spain and Norway. Installations come
10278 with hundreds of applications pre-installed, plus the whole Debian
10279 archive of thousands of compatible packages within easy reach.
10280
10281 For those who want to give Debian Edu Jessie a try, download and
10282 installation instructions are available, including detailed
10283 instructions in the manual explaining the first steps, such as setting
10284 up a network or adding users. Please note that the password for the
10285 user your prompted for during installation must have a length of at
10286 least 5 characters!
10287
10288 == Where to download ==
10289
10290 A multi-architecture CD / usbstick image (649 MiB) for network booting
10291 can be downloaded at the following locations:
10292
10293 http://ftp.skolelinux.org/skolelinux-cd/debian-edu-8.0+edu0~b1-CD.iso
10294 rsync -avzP ftp.skolelinux.org::skolelinux-cd/debian-edu-8.0+edu0~b1-CD.iso .
10295
10296 The SHA1SUM of this image is: 54a524d16246cddd8d2cfd6ea52f2dd78c47ee0a
10297
10298 Alternatively an extended DVD / usbstick image (4.9 GiB) is also
10299 available, with more software included (saving additional download
10300 time):
10301
10302 http://ftp.skolelinux.org/skolelinux-cd/debian-edu-8.0+edu0~b1-USB.iso
10303 rsync -avzP ftp.skolelinux.org::skolelinux-cd/debian-edu-8.0+edu0~b1-USB.iso
10304
10305 The SHA1SUM of this image is: fb1f1504a490c077a48653898f9d6a461cb3c636
10306
10307 Sources are available from the Debian archive, see
10308 http://ftp.debian.org/debian-cd/8.0.0/source/ for some download
10309 options.
10310
10311 == Debian Edu Jessie manual in seven languages ==
10312
10313 Please see https://wiki.debian.org/DebianEdu/Documentation/Jessie/ for
10314 the English version of the Debian Edu jessie manual.
10315
10316 This manual has been fully translated to German, French, Italian,
10317 Danish, Dutch and Norwegian Bokmål. A partly translated version exists
10318 for Spanish. See http://maintainer.skolelinux.org/debian-edu-doc/ for
10319 online version of the translated manual.
10320
10321 More information about Debian 8 "Jessie" itself is provided in the
10322 release notes and the installation manual:
10323 - http://www.debian.org/releases/jessie/releasenotes
10324 - http://www.debian.org/releases/jessie/installmanual
10325
10326
10327 == Errata / known problems ==
10328
10329 It takes up to 15 minutes for a changed hostname to be updated via
10330 DHCP (#780461).
10331
10332 The hostname script fails to update LTSP server hostname (#783087).
10333
10334 Workaround: run update-hostname-from-ip on the client to update the
10335 hostname immediately.
10336
10337 Check https://wiki.debian.org/DebianEdu/Status/Jessie for a possibly
10338 more current and complete list.
10339
10340 == Some more details about Debian Edu 8.0+edu0~b1 Codename Jessie released 2015-04-25 ==
10341
10342 === Software updates ===
10343
10344 Everything which is new in Debian 8 Jessie, e.g.:
10345
10346 * Linux kernel 3.16.7-ctk9; for the i386 architecture, support for
10347 i486 processors has been dropped; oldest supported ones: i586 (like
10348 Intel Pentium and AMD K5).
10349
10350 * Desktop environments KDE Plasma Workspaces 4.11.13, GNOME 3.14,
10351 Xfce 4.12, LXDE 0.5.6
10352 * new optional desktop environment: MATE 1.8
10353 * KDE Plasma Workspaces is installed by default; to choose one of
10354 the others see the manual.
10355 * the browsers Iceweasel 31 ESR and Chromium 41
10356 * LibreOffice 4.3.3
10357 * GOsa 2.7.4
10358 * LTSP 5.5.4
10359 * CUPS print system 1.7.5
10360 * new boot framework: systemd
10361 * Educational toolbox GCompris 14.12
10362 * Music creator Rosegarden 14.02
10363 * Image editor Gimp 2.8.14
10364 * Virtual stargazer Stellarium 0.13.1
10365 * golearn 0.9
10366 * tuxpaint 0.9.22
10367 * New version of debian-installer from Debian Jessie.
10368 * Debian Jessie includes about 43000 packages available for installation.
10369 * More information about Debian 8 Jessie is provided in its release
10370 notes and the installation manual, see the link above.
10371
10372 === Installation changes ===
10373
10374 Installations done via PXE now also install firmware automatically
10375 for the hardware present.
10376
10377 === Fixed bugs ===
10378
10379 A number of bugs have been fixed in this release; the most noticeable
10380 from a user perspective:
10381
10382 * Inserting incorrect DNS information in Gosa will no longer break
10383 DNS completely, but instead stop DNS updates until the incorrect
10384 information is corrected (710362)
10385
10386 * shutdown-at-night now shuts the system down if gdm3 is used (775608).
10387
10388 === Sugar desktop removed ===
10389
10390 As the Sugar desktop was removed from Debian Jessie, it is also not
10391 available in Debian Edu jessie.
10392
10393
10394 == About Debian Edu / Skolelinux ==
10395
10396 Debian Edu, also known as Skolelinux, is a Linux distribution based on
10397 Debian providing an out-of-the box environment of a completely
10398 configured school network. Directly after installation a school server
10399 running all services needed for a school network is set up just
10400 waiting for users and machines being added via GOsa², a comfortable
10401 Web-UI. A netbooting environment is prepared using PXE, so after
10402 initial installation of the main server from CD or USB stick all other
10403 machines can be installed via the network. The provided school server
10404 provides LDAP database and Kerberos authentication service,
10405 centralized home directories, DHCP server, web proxy and many other
10406 services. The desktop contains more than 60 educational software
10407 packages and more are available from the Debian archive, and schools
10408 can choose between KDE, GNOME, LXDE, Xfce and MATE desktop
10409 environment.
10410
10411 == About Debian ==
10412
10413 The Debian Project was founded in 1993 by Ian Murdock to be a truly
10414 free community project. Since then the project has grown to be one of
10415 the largest and most influential open source projects. Thousands of
10416 volunteers from all over the world work together to create and
10417 maintain Debian software. Available in 70 languages, and supporting a
10418 huge range of computer types, Debian calls itself the universal
10419 operating system.
10420
10421 == Thanks ==
10422
10423 Thanks to everyone making Debian and Debian Edu / Skolelinux happen!
10424 You rock.
10425 </pre>
10426
10427 </div>
10428 <div class="tags">
10429
10430
10431 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>.
10432
10433
10434 </div>
10435 </div>
10436 <div class="padding"></div>
10437
10438 <div class="entry">
10439 <div class="title">
10440 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Shirish_Agarwal.html">Debian Edu interview: Shirish Agarwal</a>
10441 </div>
10442 <div class="date">
10443 15th April 2015
10444 </div>
10445 <div class="body">
10446 <p>It was a surprise to me to learn that project to create a complete
10447 computer system for schools I've involved in,
10448 <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a>, was
10449 being used in India. But apparently it is, and I managed to get an
10450 interview with one of the friends of the project there, Shirish
10451 Agarwal.</p>
10452
10453 <p><strong>Who are you, and how do you spend your days?</strong></p>
10454
10455 <p>My name is Shirish Agarwal. Based out of the educational and
10456 historical city of Pune, from the western state of Maharashtra, India.
10457 My bread comes from giving training, giving policy tips,
10458 installations on free software to mom and pop shops in different
10459 fields from Desktop publishing to retail shops as well as work with
10460 few software start-ups as well.</p>
10461
10462 <p><strong>How did you get in contact with the Skolelinux / Debian Edu
10463 project?</strong></p>
10464
10465 <p>It started innocently enough. I have been using Debian for a few
10466 years and in one local minidebconf / debutsav I was asked if there was
10467 anything for schools or education. I had worked / played with free
10468 educational softwares such as Gcompris and Stellarium for my many
10469 nieces and nephews so researched and found Debian Edu or Skolelinux as
10470 it was known then. Since then I have started using the various
10471 education meta-packages provided by the project.</p>
10472
10473 <p><strong>What do you see as the advantages of Skolelinux / Debian
10474 Edu?</strong></p>
10475
10476 <p>It's closest I have seen where a package full of educational
10477 software are packed, which are free and open (both literally and
10478 figuratively). Even if I take the simplest software which is
10479 gcompris, the number of activities therein are amazing. Another one of
10480 the softwares that I have liked for a long time is stellarium. Even
10481 pysycache is cool except for couple of issues I encountered
10482 <a href="https://bugs.debian.org/781841">#781841</a> and
10483 <a href="https://bugs.debian.org/781842">#781842</a>.</p>
10484
10485 <p>I prefer software installed on the system over web based solutions,
10486 as a web site can disappear any time but the software on disk has the
10487 possibility of a larger life span. Of course with both it's more a
10488 question if it has enough users who make it fun or sustainable or both
10489 for the developer per-se.</p>
10490
10491 <p><strong>What do you see as the disadvantages of Skolelinux / Debian
10492 Edu?</strong></p>
10493
10494 <p>I do see that the Debian Edu team seems to be short-handed and I
10495 think more efforts should be made to make it popular and ask and take
10496 help from people and the larger community wherever possible.</p>
10497
10498 <p>I don't see any disadvantage to use Skolelinux apart from the fact
10499 that most apps. are generic which is good or bad how you see it.
10500 However, saying that I do acknowledge the fact that the canvas is
10501 pretty big and there are lot of interesting ideas that could be done
10502 but for reasons not known not done or if done I don't know about them.
10503 Let me share some of the ideas (these are more upstream based but
10504 still) I have had for a long time :</p>
10505
10506 <p>1. Classical maths question of two trains in opposing directions
10507 each running @x kmph/mph at y distance, when they will meet and how
10508 far would each travel and similar questions like these.
10509
10510 <p>The computer is a fantastic system where questions like these can
10511 be drawn, animated and the methodology and answers teased out in
10512 interactive manner. While sites such as the
10513 <a href="http://mathforum.org/dr.math/faq/faq.two.trains.html">Ask
10514 Dr. Math FAQ on The Two Trains problem</a> (as an example or point of
10515 inspiration) can be used there is lot more that can be done. I dunno
10516 if there is a free software which does something like this. The idea
10517 being a blend of objects + animation + interaction which does
10518 this. The whole interaction could be gamified with points or sounds or
10519 colourful celebration whenever the user gets even part of the question
10520 or/and methodology right. That would help reinforce good behaviour.
10521 This understanding could be used to share/showcase everything from how
10522 the first wheel came to be, to evolution to how astronomy started,
10523 psychics and everything in-between.</p>
10524
10525 <p>One specific idea in the train part was having the Linux mascot on
10526 one train and the BSD or GNU mascot on the other train and they
10527 meeting somewhere in-between. Characters from blender movies could
10528 also be used.</p>
10529
10530 <p>2. Loads of crossword-puzzles with reference to subjects: We have
10531 enormous data sets in Wikipedia and Wikitionary. I don't think it
10532 should be a big job to design crossword puzzles. Using categories and
10533 sub-categories it should be doable to have Q&A single word answers
10534 from the existing data-sets. What would make it easy or hard could be
10535 the length of the word + existence of many or few vowels depending on
10536 the user's input.</p>
10537
10538 <p>3. Jigsaw puzzles - We already have a great software called
10539 palapeli with number of slicers making it pretty interesting. What
10540 needs to be done is to download large number of public domain and
10541 copyleft images, tease and use IPTC tags to categorise them into
10542 nature, history etc. and let it loose. This could turn to be really
10543 huge collection of images. One source could be taken from
10544 commons.wikimedia.org, others could be huge collection of royalty-free
10545 stock photos. Potential is immense.</p>
10546
10547 <p>Apart from this, free software suffers in two directions, we lag
10548 both in development (of using new features per-se) and maintenance a
10549 lot. This is more so in educational software as these applications
10550 need to be timely and the opportunity cost of missing deadlines is
10551 immense. If we are able to solve issues of funding for development and
10552 maintenance of such software I don't see any big difficulties. I know
10553 of few start-ups in and around India who would love to develop and
10554 maintain such software if funding issues could be solved.</p>
10555
10556 <p><strong>Which free software do you use daily?</strong></p>
10557
10558 <p>That would be huge list. Some of the softwares are obviously apt,
10559 aptitude, debdelta, leafpad, the shell of course (zsh nowadays),
10560 quassel for IRC. In games I use shisen-sho while card-games are evenly
10561 between kpat and Aiselriot. In desktops it's a tie between
10562 gnome-flashback and mate.</p>
10563
10564 <p><strong>Which strategy do you believe is the right one to use to
10565 get schools to use free software?</strong></p>
10566
10567 <p>I think it should first start with using specific FOSS apps. in
10568 whatever environment they are. If it's MS-Windows or Mac so be it.
10569 Once they are habitual with the apps. and there is buy-in from the
10570 school management then it could be installed anywhere. Most of the
10571 people now understand the concept of a repository because of the
10572 various online stores so it isn't hard to convince on that front.</p>
10573
10574 <p>What is harder is having enough people with technical skills and
10575 passion to service them. If you get buy-in from one or two teachers
10576 then ideas like above could also be asked to be done as a project as
10577 well.</p>
10578
10579 <p>I think where we fall short more than anything is in marketing. For
10580 instance, Debian has this whole range of fonts in its archive but
10581 there isn't even a page where all those different fonts in the La
10582 Ipsum format could be tried out for newcomers.</p>
10583
10584 <p>One of the issues faced constantly in installations is with updates
10585 and upgrades. People have this myth that each update and upgrade
10586 means the user interface will / has to change. I have seen this
10587 innumerable times. That perhaps is one of the reasons which browsers
10588 like Iceweasel / Firefox change user interfaces so much, not because
10589 it might be needed or be functional but because people believe that
10590 changed user interfaces are better. This, can easily be pointed with
10591 the user interfaces changed with almost every MS-Windows and Mac OS
10592 releases.</p>
10593
10594 <p>The problems with Debian Edu for deployment are many. The biggest
10595 is the huge gap between what is taught in schools and what Debian Edu
10596 is aimed at.
10597
10598 <p>Me and my friends did teach on week-ends in a government school for
10599 around 2 years, and
10600 <a href="https://flossexperiences.wordpress.com/2012/10/08/sharings/">gathered
10601 some experience</a> there. Some of the things we learnt/discovered
10602 there was :</p>
10603
10604 <ol>
10605
10606 <li>Most of the teachers are very territorial about their subjects
10607 and they do not want you to teach anything out of the
10608 portion/syllabus given.</li>
10609
10610 <li>They want any activity on the system in accordance to whatever
10611 is in the syllabus.</li>
10612
10613 <li>There are huge barriers both with the English language and at
10614 times with objects or whatever. An example, let's say in gcompris
10615 you have objects falling down and you have to name them and let's
10616 say the falling object is a hat or a fedora hat, this would not be
10617 as recognizable as say a
10618 <a href="https://en.wikipedia.org/wiki/Puneri_Pagadi">Puneri
10619 Pagdi</a> so there is need to inject local objects, words wherever
10620 possible. Especially for word-games there are so many hindi words
10621 which have become part of english vocabulary (for instance in
10622 parley), those could be made into a hinglish collection or
10623 something but that is something for upstream to do.</li>
10624
10625 </ol>
10626
10627 </div>
10628 <div class="tags">
10629
10630
10631 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju</a>.
10632
10633
10634 </div>
10635 </div>
10636 <div class="padding"></div>
10637
10638 <div class="entry">
10639 <div class="title">
10640 <a href="http://people.skolelinux.org/pere/blog/I_m_going_to_the_Open_Source_Developers__Conference_Nordic_2015_.html">I'm going to the Open Source Developers' Conference Nordic 2015!</a>
10641 </div>
10642 <div class="date">
10643 7th April 2015
10644 </div>
10645 <div class="body">
10646 <p>I am happy to let you all know that I'm going to the <a
10647 href="http://act.osdc.no/osdc2015no/">Open Source Developers'
10648 Conference Nordic 2015</a>!</p>
10649
10650 <p>It take place Friday 8th to Sunday 10th of May in Oslo next to
10651 where I work, and I finally got around to submitting
10652 <a href="http://act.osdc.no/osdc2015no/talk/6192">a talk proposal for
10653 it</a> (dead link for most people until the talk is accepted). As
10654 part of my involvement with the
10655 <a href="http://www.nuug.no/">Norwegian Unix User Group member
10656 association</a> I have been slightly involved in the planning of this
10657 conference for a while now, with a focus on organising a Civic Hacking
10658 Hackathon with our friends
10659 over at <a href="http://www.mysociety.org/">mySociety</a> and
10660 <a href="http://www.holderdeord.no/">Holder de ord</a>. This part is
10661 named the 'My Society' track in the program. There is still space for
10662 more talks and participants. I hope to see you there.</p>
10663
10664 <p>Check out <a href="http://act.osdc.no/osdc2015no/talks">the talks
10665 submitted and accepted so far</a>.</p>
10666
10667 </div>
10668 <div class="tags">
10669
10670
10671 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn</a>.
10672
10673
10674 </div>
10675 </div>
10676 <div class="padding"></div>
10677
10678 <div class="entry">
10679 <div class="title">
10680 <a href="http://people.skolelinux.org/pere/blog/Proof_reading_the_Norwegian_translation_of_Free_Culture_by_Lessig.html">Proof reading the Norwegian translation of Free Culture by Lessig</a>
10681 </div>
10682 <div class="date">
10683 4th April 2015
10684 </div>
10685 <div class="body">
10686 <p>During eastern I had some time to continue working on the Norwegian
10687 <a href="http://www.docbook.org/">docbook</a> version of the 2004 book
10688 <a href="http://free-culture.cc/">Free Culture</a> by Lawrence Lessig.
10689 At the moment I am proof reading the finished text, looking for typos,
10690 inconsistent wordings and sentences that do not flow as they should.
10691 I'm more than two thirds done with the text, and welcome others to
10692 check the text up to chapter 13. The current status is available on the
10693 <a href="https://github.com/petterreinholdtsen/free-culture-lessig">github</a>
10694 project pages. You can also check out the
10695 <a href="https://github.com/petterreinholdtsen/free-culture-lessig/blob/master/archive/freeculture.nb.pdf?raw=true">PDF</a>,
10696 <a href="https://github.com/petterreinholdtsen/free-culture-lessig/blob/master/archive/freeculture.nb.epub?raw=true">EPUB</a>
10697 and HTML version available in the
10698 <a href="https://github.com/petterreinholdtsen/free-culture-lessig/tree/master/archive">archive
10699 directory</a>.</p>
10700
10701 <p>Please report typos, bugs and improvements to the github project if
10702 you find any.</p>
10703
10704 </div>
10705 <div class="tags">
10706
10707
10708 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>.
10709
10710
10711 </div>
10712 </div>
10713 <div class="padding"></div>
10714
10715 <div class="entry">
10716 <div class="title">
10717 <a href="http://people.skolelinux.org/pere/blog/Frikanalen__Norwegian_TV_channel_for_technical_topics.html">Frikanalen, Norwegian TV channel for technical topics</a>
10718 </div>
10719 <div class="date">
10720 9th March 2015
10721 </div>
10722 <div class="body">
10723 <p>The <a href="http://www.nuug.no/">Norwegian Unix User Group</a>,
10724 where I am a member, and where people interested in free software,
10725 open standards and UNIX like operating systems like Linux and the BSDs
10726 come together, record our monthly technical presentations on video.
10727 The purpose is to document the talks and spread them to a wider
10728 audience. For this, the the Norwegian nationwide open channel
10729 <a href="http://www.frikanalen.no/">Frikanalen</a> is a useful venue.
10730 Since a few days ago, when I figured out the
10731 <a href="http://beta.frikanalen.no/api/">REST API</a> to program the
10732 <a href="http://beta.frikanalen.tv/guide/">channel time schedule</a>,
10733 the channel has been filled with NUUG talks, related recordings and
10734 some Creative Commons licensed TED talks (from archive.org). I fill
10735 all "leftover bits" on the channel with content from NUUG, which at
10736 the moment is almost 17 of 24 hours every day.</p>
10737
10738 <p>The list of NUUG videos
10739 <a href="http://beta.frikanalen.tv/organization/82">uploaded so far</a>
10740 include things like a
10741 <a href="http://beta.frikanalen.tv/video/625090">one hour talk by John
10742 Perry Barlow when he visited Oslo</a>, a presentation of
10743 <a href="http://beta.frikanalen.tv/video/624275">Haiku, the BeOS
10744 re-implementation</a>, the
10745 <a href="http://beta.frikanalen.tv/video/624493">history of FiksGataMi,
10746 the Norwegian version of FixMyStreet</a>, the good old
10747 <a href="http://beta.frikanalen.tv/video/623566">Warriors of the net
10748 video</A> and many others.</p>
10749
10750 <p>We have a large backlog of NUUG talks not yet uploaded to
10751 Frikanalen, and plan to upload every useful bit to the channel to
10752 spread the word there. I also hope to find useful recordings from the
10753 Chaos Computer Club and Debian conferences and spread them on the
10754 channel as well. But this require locating the videos and their meta
10755 information (title, description, license, etc), and preparing the
10756 recordings for broadcast, and I have not yet had the spare time to
10757 focus on this. Perhaps you want to help. Please join us on IRC,
10758 <a href="irc://irc.freenode.net/%23nuug">#nuug on irc.freenode.net</a>
10759 if you want to help make this happen.</p>
10760
10761 <p>But as I said, already the channel is already almost exclusively
10762 filled with technical topics, and if you want to learn something new
10763 today, check out the <a href="http://www.frikanalen.tv/se">Ogg Theora
10764 web stream</a> or use one of the other ways to get access to the
10765 channel. Unfortunately the Ogg Theora recoding for distribution still
10766 do not properly sync the video and sound. It is generated by recoding
10767 a internal MPEG transport stream with MPEG4 coded video (ie H.264) to
10768 Ogg Theora / Vorbis, and we have not been able to find a way that
10769 produces acceptable quality. Help needed, please get in touch if you
10770 know how to fix it using free software.</p>
10771
10772 </div>
10773 <div class="tags">
10774
10775
10776 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen</a>, <a href="http://people.skolelinux.org/pere/blog/tags/h264">h264</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
10777
10778
10779 </div>
10780 </div>
10781 <div class="padding"></div>
10782
10783 <div class="entry">
10784 <div class="title">
10785 <a href="http://people.skolelinux.org/pere/blog/The_Citizenfour_documentary_on_the_Snowden_confirmations_to_Norway.html">The Citizenfour documentary on the Snowden confirmations to Norway</a>
10786 </div>
10787 <div class="date">
10788 28th February 2015
10789 </div>
10790 <div class="body">
10791 <p>Today I was happy to learn that the documentary
10792 <a href="https://citizenfourfilm.com/">Citizenfour</a> by
10793 <a href="https://en.wikipedia.org/wiki/Laura_Poitras">Laura Poitras</a>
10794 finally will show up in Norway. According to the magazine
10795 <a href="http://montages.no/">Montages</a>, a deal has finally been
10796 made for
10797 <a href="http://montages.no/nyheter/snowden-dokumentaren-citizenfour-far-norsk-kinodistribusjon/">Cinema
10798 distribution in Norway</a> and the movie will have its premiere soon.
10799 This is great news. As part of my involvement with
10800 <a href="http://www.nuug.no/">the Norwegian Unix User Group</a>, me and
10801 a friend have
10802 <a href="http://www.nuug.no/news/Dokumentar_om_Snowdenbekreftelsene_til_Norge_.shtml">tried
10803 to get the movie to Norway</a> ourselves, but obviously
10804 <a href="http://www.nuug.no/news/Dokumentar_om_Snowdenbekreftelsene_endelig_til_Norge_.shtml">we
10805 were too late</a> and Tor Fosse beat us to it. I am happy he did, as
10806 the movie will make its way to the public and we do not have to make
10807 it happen ourselves.
10808 <a href="https://www.youtube.com/watch?v=XiGwAvd5mvM">The trailer</a>
10809 can be seen on youtube, if you are curious what kind of film this
10810 is.</p>
10811
10812 <p>The whistle blower Edward Snowden really deserve political asylum
10813 here in Norway, but I am afraid he would not be safe.</p>
10814
10815 </div>
10816 <div class="tags">
10817
10818
10819 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>.
10820
10821
10822 </div>
10823 </div>
10824 <div class="padding"></div>
10825
10826 <div class="entry">
10827 <div class="title">
10828 <a href="http://people.skolelinux.org/pere/blog/The_Norwegian_open_channel_Frikanalen___24x7_on_the_Internet.html">The Norwegian open channel Frikanalen - 24x7 on the Internet</a>
10829 </div>
10830 <div class="date">
10831 25th February 2015
10832 </div>
10833 <div class="body">
10834 <p>The Norwegian nationwide open channel
10835 <a href="http://www.frikanalen.no/">Frikanalen</a> is still going
10836 strong. It allow everyone to send the video they want on national
10837 television. It is a TV station administrated completely using a web
10838 browser, running only <ahref="https://github.com/Frikanalen">Free
10839 Software</a>, providing <ahref="http://beta.frikanalen.tv/api">a REST
10840 api</a> for administrators and members, and with distribution on the
10841 national DVB-T distribution network RiksTV. But only between 12:00
10842 and 17:30 Norwegian time. This has finally changed, after many years
10843 with limited distribution. A few weeks ago, we set up a Ogg Theora
10844 stream via icecast to allow everyone with Internet access to check out
10845 the channel the rest of the day. This is presented on
10846 <a href="http://www.frikanalen.tv/se">the Frikanalen web site now</a>. And
10847 since a few days ago, the channel is also available
10848 via <a href="https://www.uninett.no/iptv-tilgang">multicast on
10849 UNINETT</a>, available for those using IPTV TVs and set-top boxes in
10850 the Norwegian National Research and Education network.</p>
10851
10852 <p>If you want to see what is on the channel, point your media player
10853 to one of these sources. The first should work with most players and
10854 browsers, while as far as I know, the multicast UDP stream only work
10855 with VLC.</p>
10856
10857 <ul>
10858 <li><a href="http://video.nuug.no/frikanalen.ogv">http://video.nuug.no/frikanalen.ogv</a></li>
10859 <li>udp://@224.17.43.129:1234</li>
10860 </ul>
10861
10862 <p>The Ogg Theora / icecast stream is not working well, as the video
10863 and audio is slightly out of sync. We have not been able to figure
10864 out how to fix it. It is generated by recoding a internal MPEG
10865 transport stream with MPEG4 coded video (ie H.264) to Ogg Theora /
10866 Vorbis, and the result is less then stellar. If you have ideas how to
10867 fix it, please let us know on frikanalen (at) nuug.no. We currently
10868 use this with ffmpeg2theora 0.29:</p>
10869
10870 <blockquote><pre>
10871 ./ffmpeg2theora.linux &lt;OBE_gemini_URL.ts&gt; -F 25 -x 720 -y 405 \
10872 --deinterlace --inputfps 25 -c 1 -H 48000 --keyint 8 --buf-delay 100 \
10873 --nosync -V 700 -o - | oggfwd video.nuug.no 8000 &lt;pw&gt; /frikanalen.ogv
10874 </pre></blockquote>
10875
10876 <p>If you get the multicast UDP stream working, please let me know, as
10877 I am curious how far the multicast stream reach. It do not make it to
10878 my home network, nor any other commercially available network in
10879 Norway that I am aware of.</p>
10880
10881 </div>
10882 <div class="tags">
10883
10884
10885 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen</a>, <a href="http://people.skolelinux.org/pere/blog/tags/h264">h264</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
10886
10887
10888 </div>
10889 </div>
10890 <div class="padding"></div>
10891
10892 <div class="entry">
10893 <div class="title">
10894 <a href="http://people.skolelinux.org/pere/blog/Nude_body_scanner_now_present_on_Norwegian_airport.html">Nude body scanner now present on Norwegian airport</a>
10895 </div>
10896 <div class="date">
10897 10th February 2015
10898 </div>
10899 <div class="body">
10900 <p>Aftenposten, one of the largest newspapers in Norway, today report
10901 that
10902 <a href="http://www.aftenposten.no/reise/Slik-skannes-kroppen-din-i-fremtidens-sikkerhetskontroll-490666_1.snd">three
10903 of the nude body scanners now is put to use at Gardermoen</a>, the
10904 main airport in Norway. This way the travelers can have their body
10905 photographed without cloths when visiting Norway. Of course this
10906 horrible news is presented with a positive spin, stating that "now
10907 travelers can move past the security check point faster and more
10908 efficiently", but fail to mention that the machines in question take
10909 pictures of their nude bodies and store them internally in the
10910 computer, while only presenting sketch figure of the body to the
10911 public. The article is written in a way that leave the impression
10912 that the new machines do not take these nude pictures and only create
10913 the sketch figures. In reality the same nude pictures are still
10914 taken, but not presented to everyone. They are still available for
10915 the owners of the system and the people doing maintenance of the
10916 scanners, as long as they are taken and stored.</p>
10917
10918 <p>Wikipedia have a more on
10919 <a href="https://en.wikipedia.org/wiki/Full_body_scanner">Full body
10920 scanners</a>, including example images and a summary of the
10921 controversy about these scanners.</p>
10922
10923 <p>Personally I will decline to use these machines, as I believe strip
10924 searches of my body is a very intrusive attack on my privacy, and not
10925 something everyone should have to accept to travel.</p>
10926
10927 </div>
10928 <div class="tags">
10929
10930
10931 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>.
10932
10933
10934 </div>
10935 </div>
10936 <div class="padding"></div>
10937
10938 <div class="entry">
10939 <div class="title">
10940 <a href="http://people.skolelinux.org/pere/blog/Nagios_module_to_check_if_the_Frikanalen_video_stream_is_working.html">Nagios module to check if the Frikanalen video stream is working</a>
10941 </div>
10942 <div class="date">
10943 8th February 2015
10944 </div>
10945 <div class="body">
10946 <p>When running a TV station with both broadcast and web stream
10947 distribution, it is useful to know that the stream is working. As I
10948 am involved in the Norwegian open channel
10949 <a href="http://www.frikanalen.no/">Frikanalen</a> as part of my
10950 activity in the <a href="http://www.nuug.no/">NUUG member
10951 organisation</a>, I wrote a script to use mplayer to connect to a
10952 video stream, pick two images 35 seconds apart and compare them. If
10953 the images are missing or identical, something is probably wrong with
10954 the stream and an alarm should be triggered. The script is written as
10955 a Nagios plugin, allowing us to use Nagios to run the check regularly
10956 and sound the alarm when something is wrong. It is able to detect
10957 both a hanging and a broken video stream.</p>
10958
10959 <p>I just uploaded the code for the script into the
10960 <a href="https://github.com/Frikanalen/frikanalen/blob/master/nagios-plugin/check_video_stream_images">Frikanalen
10961 git repository</a> on github. If you run a TV station with web
10962 streaming, perhaps you can find it useful too.</p>
10963
10964 <p>Last year, the Frikanalen public TV station transformed into using
10965 only Linux based free software to administrate, schedule and
10966 distribute the TV content. The
10967 <a href="https://github.com/Frikanalen">source code for the entire TV
10968 station</a> is available from the Github project page. Everyone can
10969 use it to send their content on national TV, and we provide both a web
10970 GUI and <a href="http://beta.frikanalen.tv/api/">a web API</a> to
10971 <a href="http://beta.frikanalen.tv/login/?next=/members/video/">add</a>
10972 and <a href="http://beta.frikanalen.tv/members/plan/">schedule
10973 content</a>. And thanks to last weeks developer gathering and
10974 following activity, we now have the schedule
10975 <a href="http://beta.frikanalen.tv/xmltv/2015/01/01">available as
10976 XMLTV</a> too. Still a lot of work left to do, especially with the
10977 process to add videos and with the scheduling, so your contribution is
10978 most welcome. Perhaps you want to set up your own TV station?</p>
10979
10980 <p>Update 2015-02-25: Got a tip from Uninett about their
10981 <a href="https://scm.uninett.no/maalepaaler/qstream/">qstream
10982 monitoring system</a>, which gather connection time, jitter, packet
10983 loss and burst bandwidth usage. It look useful to check if UDP
10984 streams are working as they should.</p>
10985
10986 </div>
10987 <div class="tags">
10988
10989
10990 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
10991
10992
10993 </div>
10994 </div>
10995 <div class="padding"></div>
10996
10997 <div class="entry">
10998 <div class="title">
10999 <a href="http://people.skolelinux.org/pere/blog/Norwegian_Bokm_l_subtitles_for_the_FSF_video_User_Liberation.html">Norwegian Bokmål subtitles for the FSF video User Liberation</a>
11000 </div>
11001 <div class="date">
11002 12th January 2015
11003 </div>
11004 <div class="body">
11005 <p>A few days ago, the <a href="https://www.fsf.org/">Free Software
11006 Foundation</a> announced a new video
11007 <a href="https://www.fsf.org/blogs/community/user-liberation-watch-and-share-our-new-video">explaining
11008 Free software</a> in simple terms. The video named User Liberation is
11009 3 minutes long, and I recommend showing it to everyone you know as a
11010 way to explain what Free Software is all about. Unfortunately several
11011 of the people I know do not understand English and Spanish, so it did
11012 not make sense to show it to them.</p>
11013
11014 <p>But today I was told that
11015 <a href="https://www.fsf.org/blogs/community/user-liberation-watch-and-share-our-new-video">English
11016 subtitles were available</a> and set out to provide Norwegian Bokmål
11017 subtitles based on these. The result has been sent to FSF and made
11018 available in
11019 <a href="https://github.com/petterreinholdtsen/fsf-video-user-liberation-subtitles">a
11020 git repository</a> provided by Github. Please let me know if you find
11021 errors or have improvements to the subtitles.</p>
11022
11023 <p>Update 2015-02-03: Since I publised this post, FSF created a
11024 Libreplanet
11025 <a href="http://libreplanet.org/wiki/Group:FSF/User_Liberation_Video_Translation">project
11026 to track subtitles</A> for the video.</p>
11027
11028 </div>
11029 <div class="tags">
11030
11031
11032 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
11033
11034
11035 </div>
11036 </div>
11037 <div class="padding"></div>
11038
11039 <div class="entry">
11040 <div class="title">
11041 <a href="http://people.skolelinux.org/pere/blog/Updated_version_of_the_Norwegian_web_service_FiksGataMi.html">Updated version of the Norwegian web service FiksGataMi</a>
11042 </div>
11043 <div class="date">
11044 30th December 2014
11045 </div>
11046 <div class="body">
11047 <p>I am very happy that we in the
11048 <a href="http://www.nuug.no/">Norwegian Unix User group (NUUG)</a>,
11049 spearheaded by Marius Halden from NUUG and Matthew Somerville from
11050 <a href="http://www.mysociety.org/">mySociety</a>, finally managed to
11051 upgrade the code base for the Norwegian version of
11052 <a href="http://fixmystreet.org/">FixMyStreet</a>. This
11053 was the first major update since 2011. The refurbished
11054 <a href="http://www.fiksgatami.no/">FiksGataMi</a> is already live, and
11055 seem to hold up the pressure. The
11056 <a href="http://www.nuug.no/news/Pressemelding__FiksGataMi_i_oppdatert_og_mobilvennlig_klesdrakt.shtml">press
11057 release and announcement</a> went out this morning.</p>
11058
11059 <p>FixMyStreet is a web platform for allowing the citizens to easily
11060 report problems with public infrastructure to the responsible
11061 authorities. Think of it as a shared mail client with map support,
11062 allowing everyone to see what already was reported and comment on the
11063 reports in public.</p>
11064
11065 </div>
11066 <div class="tags">
11067
11068
11069 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>.
11070
11071
11072 </div>
11073 </div>
11074 <div class="padding"></div>
11075
11076 <div class="entry">
11077 <div class="title">
11078 <a href="http://people.skolelinux.org/pere/blog/Of_course_USA_loses_in_cyber_war___NSA_and_friends_made_sure_it_would_happen.html">Of course USA loses in cyber war - NSA and friends made sure it would happen</a>
11079 </div>
11080 <div class="date">
11081 19th December 2014
11082 </div>
11083 <div class="body">
11084 <p>So, Sony caved in
11085 (<a href="https://twitter.com/RobLowe/status/545338568512917504">according
11086 to Rob Lowe</a>) and demonstrated that America lost its first cyberwar
11087 (<a href="https://twitter.com/newtgingrich/status/545339074975109122">according
11088 to Newt Gingrich</a>). It should not surprise anyone, after the
11089 whistle blower Edward Snowden documented that the government of USA
11090 and their allies for many years have done their best to make sure the
11091 technology used by its citizens is filled with security holes allowing
11092 the secret services to spy on its own population. No one in their
11093 right minds could believe that the ability to snoop on the people all
11094 over the globe could only be used by the personnel authorized to do so
11095 by the president of the United States of America. If the capabilities
11096 are there, they will be used by friend and foe alike, and now they are
11097 being used to bring Sony on its knees.</p>
11098
11099 <p>I doubt it will a lesson learned, and expect USA to lose its next
11100 cyber war too, given how eager the western intelligence communities
11101 (and probably the non-western too, but it is less in the news) seem to
11102 be to continue its current dragnet surveillance practice.</p>
11103
11104 <p>There is a reason why China and others are trying to move away from
11105 Windows to Linux and other alternatives, and it is not to avoid
11106 sending its hard earned dollars to Cayman Islands (or whatever
11107 <a href="https://en.wikipedia.org/wiki/Tax_haven">tax haven</a>
11108 Microsoft is using these days to collect the majority of its
11109 income. :)</p>
11110
11111 </div>
11112 <div class="tags">
11113
11114
11115 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>.
11116
11117
11118 </div>
11119 </div>
11120 <div class="padding"></div>
11121
11122 <div class="entry">
11123 <div class="title">
11124 <a href="http://people.skolelinux.org/pere/blog/How_to_stay_with_sysvinit_in_Debian_Jessie.html">How to stay with sysvinit in Debian Jessie</a>
11125 </div>
11126 <div class="date">
11127 22nd November 2014
11128 </div>
11129 <div class="body">
11130 <p>By now, it is well known that Debian Jessie will not be using
11131 sysvinit as its boot system by default. But how can one keep using
11132 sysvinit in Jessie? It is fairly easy, and here are a few recipes,
11133 courtesy of
11134 <a href="http://www.vitavonni.de/blog/201410/2014102101-avoiding-systemd.html">Erich
11135 Schubert</a> and
11136 <a href="http://smcv.pseudorandom.co.uk/2014/still_universal/">Simon
11137 McVittie</a>.
11138
11139 <p>If you already are using Wheezy and want to upgrade to Jessie and
11140 keep sysvinit as your boot system, create a file
11141 <tt>/etc/apt/preferences.d/use-sysvinit</tt> with this content before
11142 you upgrade:</p>
11143
11144 <p><blockquote><pre>
11145 Package: systemd-sysv
11146 Pin: release o=Debian
11147 Pin-Priority: -1
11148 </pre></blockquote><p>
11149
11150 <p>This file content will tell apt and aptitude to not consider
11151 installing systemd-sysv as part of any installation and upgrade
11152 solution when resolving dependencies, and thus tell it to avoid
11153 systemd as a default boot system. The end result should be that the
11154 upgraded system keep using sysvinit.</p>
11155
11156 <p>If you are installing Jessie for the first time, there is no way to
11157 get sysvinit installed by default (debootstrap used by
11158 debian-installer have no option for this), but one can tell the
11159 installer to switch to sysvinit before the first boot. Either by
11160 using a kernel argument to the installer, or by adding a line to the
11161 preseed file used. First, the kernel command line argument:
11162
11163 <p><blockquote><pre>
11164 preseed/late_command="in-target apt-get install --purge -y sysvinit-core"
11165 </pre></blockquote><p>
11166
11167 <p>Next, the line to use in a preseed file:</p>
11168
11169 <p><blockquote><pre>
11170 d-i preseed/late_command string in-target apt-get install -y sysvinit-core
11171 </pre></blockquote><p>
11172
11173 <p>One can of course also do this after the first boot by installing
11174 the sysvinit-core package.</p>
11175
11176 <p>I recommend only using sysvinit if you really need it, as the
11177 sysvinit boot sequence in Debian have several hardware specific bugs
11178 on Linux caused by the fact that it is unpredictable when hardware
11179 devices show up during boot. But on the other hand, the new default
11180 boot system still have a few rough edges I hope will be fixed before
11181 Jessie is released.</p>
11182
11183 <p>Update 2014-11-26: Inspired by
11184 <ahref="https://www.mirbsd.org/permalinks/wlog-10-tg_e20141125-tg.htm#e20141125-tg_wlog-10-tg">a
11185 blog post by Torsten Glaser</a>, added --purge to the preseed
11186 line.</p>
11187
11188 </div>
11189 <div class="tags">
11190
11191
11192 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>.
11193
11194
11195 </div>
11196 </div>
11197 <div class="padding"></div>
11198
11199 <div class="entry">
11200 <div class="title">
11201 <a href="http://people.skolelinux.org/pere/blog/A_Debian_package_for_SMTP_via_Tor__aka_SMTorP__using_exim4.html">A Debian package for SMTP via Tor (aka SMTorP) using exim4</a>
11202 </div>
11203 <div class="date">
11204 10th November 2014
11205 </div>
11206 <div class="body">
11207 <p>The right to communicate with your friends and family in private,
11208 without anyone snooping, is a right every citicen have in a liberal
11209 democracy. But this right is under serious attack these days.</p>
11210
11211 <p>A while back it occurred to me that one way to make the dragnet
11212 surveillance conducted by NSA, GCHQ, FRA and others (and confirmed by
11213 the whisleblower Snowden) more expensive for Internet email,
11214 is to deliver all email using SMTP via Tor. Such SMTP option would be
11215 a nice addition to the FreedomBox project if we could send email
11216 between FreedomBox machines without leaking metadata about the emails
11217 to the people peeking on the wire. I
11218 <a href="http://lists.alioth.debian.org/pipermail/freedombox-discuss/2014-October/006493.html">proposed
11219 this on the FreedomBox project mailing list in October</a> and got a
11220 lot of useful feedback and suggestions. It also became obvious to me
11221 that this was not a novel idea, as the same idea was tested and
11222 documented by Johannes Berg as early as 2006, and both
11223 <a href="https://github.com/pagekite/Mailpile/wiki/SMTorP">the
11224 Mailpile</a> and <a href="http://dee.su/cables">the Cables</a> systems
11225 propose a similar method / protocol to pass emails between users.</p>
11226
11227 <p>To implement such system one need to set up a Tor hidden service
11228 providing the SMTP protocol on port 25, and use email addresses
11229 looking like username@hidden-service-name.onion. With such addresses
11230 the connections to port 25 on hidden-service-name.onion using Tor will
11231 go to the correct SMTP server. To do this, one need to configure the
11232 Tor daemon to provide the hidden service and the mail server to accept
11233 emails for this .onion domain. To learn more about Exim configuration
11234 in Debian and test the design provided by Johannes Berg in his FAQ, I
11235 set out yesterday to create a Debian package for making it trivial to
11236 set up such SMTP over Tor service based on Debian. Getting it to work
11237 were fairly easy, and
11238 <a href="https://github.com/petterreinholdtsen/exim4-smtorp">the
11239 source code for the Debian package</a> is available from github. I
11240 plan to move it into Debian if further testing prove this to be a
11241 useful approach.</p>
11242
11243 <p>If you want to test this, set up a blank Debian machine without any
11244 mail system installed (or run <tt>apt-get purge exim4-config</tt> to
11245 get rid of exim4). Install tor, clone the git repository mentioned
11246 above, build the deb and install it on the machine. Next, run
11247 <tt>/usr/lib/exim4-smtorp/setup-exim-hidden-service</tt> and follow
11248 the instructions to get the service up and running. Restart tor and
11249 exim when it is done, and test mail delivery using swaks like
11250 this:</p>
11251
11252 <p><blockquote><pre>
11253 torsocks swaks --server dutlqrrmjhtfa3vp.onion \
11254 --to fbx@dutlqrrmjhtfa3vp.onion
11255 </pre></blockquote></p>
11256
11257 <p>This will test the SMTP delivery using tor. Replace the email
11258 address with your own address to test your server. :)</p>
11259
11260 <p>The setup procedure is still to complex, and I hope it can be made
11261 easier and more automatic. Especially the tor setup need more work.
11262 Also, the package include a tor-smtp tool written in C, but its task
11263 should probably be rewritten in some script language to make the deb
11264 architecture independent. It would probably also make the code easier
11265 to review. The tor-smtp tool currently need to listen on a socket for
11266 exim to talk to it and is started using xinetd. It would be better if
11267 no daemon and no socket is needed. I suspect it is possible to get
11268 exim to run a command line tool for delivery instead of talking to a
11269 socket, and hope to figure out how in a future version of this
11270 system.</p>
11271
11272 <p>Until I wipe my test machine, I can be reached using the
11273 <tt>fbx@dutlqrrmjhtfa3vp.onion</tt> mail address, deliverable over
11274 SMTorP. :)</p>
11275
11276 </div>
11277 <div class="tags">
11278
11279
11280 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>.
11281
11282
11283 </div>
11284 </div>
11285 <div class="padding"></div>
11286
11287 <div class="entry">
11288 <div class="title">
11289 <a href="http://people.skolelinux.org/pere/blog/First_Jessie_based_Debian_Edu_released__alpha0_.html">First Jessie based Debian Edu released (alpha0)</a>
11290 </div>
11291 <div class="date">
11292 27th October 2014
11293 </div>
11294 <div class="body">
11295 <p>I am happy to report that I on behalf of the Debian Edu team just
11296 sent out
11297 <a href="https://lists.debian.org/debian-edu-announce/2014/10/msg00000.html">this
11298 announcement</a>:</p>
11299
11300 <pre>
11301 The Debian Edu Team is pleased to announce the release of Debian Edu
11302 Jessie 8.0+edu0~alpha0
11303
11304 Debian Edu is a complete operating system for schools. Through its
11305 various installation profiles you can install servers, workstations
11306 and laptops which will work together on the school network. With
11307 Debian Edu, the teachers themselves or their technical support can
11308 roll out a complete multi-user multi-machine study environment within
11309 hours or a few days. Debian Edu comes with hundreds of applications
11310 pre-installed, but you can always add more packages from Debian.
11311
11312 For those who want to give Debian Edu Jessie a try, download and
11313 installation instructions are available, including detailed
11314 instructions in the manual[1] explaining the first steps, such as
11315 setting up a network or adding users. Please note that the password
11316 for the user your prompted for during installation must have a length
11317 of at least 5 characters!
11318
11319 [1] &lt;URL: <a href="https://wiki.debian.org/DebianEdu/Documentation/Jessie">https://wiki.debian.org/DebianEdu/Documentation/Jessie</a> &gt;
11320
11321 Would you like to give your school's computer a longer life? Are you
11322 tired of sneaker administration, running from computer to computer
11323 reinstalling the operating system? Would you like to administrate all
11324 the computers in your school using only a couple of hours every week?
11325 Check out Debian Edu Jessie!
11326
11327 Skolelinux is used by at least two hundred schools all over the world,
11328 mostly in Germany and Norway.
11329
11330 About Debian Edu and Skolelinux
11331 ===============================
11332
11333 Debian Edu, also known as Skolelinux[2], is a Linux distribution based
11334 on Debian providing an out-of-the box environment of a completely
11335 configured school network. Immediately after installation a school
11336 server running all services needed for a school network is set up just
11337 waiting for users and machines being added via GOsa², a comfortable
11338 Web-UI. A netbooting environment is prepared using PXE, so after
11339 initial installation of the main server from CD or USB stick all other
11340 machines can be installed via the network. The provided school server
11341 provides LDAP database and Kerberos authentication service,
11342 centralized home directories, DHCP server, web proxy and many other
11343 services. The desktop contains more than 60 educational software
11344 packages[3] and more are available from the Debian archive, and
11345 schools can choose between KDE, Gnome, LXDE, Xfce and MATE desktop
11346 environment.
11347
11348 [2] &lt;URL: <a href="http://www.skolelinux.org/">http://www.skolelinux.org/</a> &gt;
11349 [3] &lt;URL: <a href="http://people.skolelinux.org/pere/blog/Educational_applications_included_in_Debian_Edu___Skolelinux__the_screenshot_collection____.html">http://people.skolelinux.org/pere/blog/Educational_applications_included_in_Debian_Edu___Skolelinux__the_screenshot_collection____.html</a> &gt;
11350
11351 Full release notes and manual
11352 =============================
11353
11354 Below the download URLs there is a list of some of the new features
11355 and bugfixes of Debian Edu 8.0+edu0~alpha0 Codename Jessie. The full
11356 list is part of the manual. (See the feature list in the manual[4] for
11357 the English version.) For some languages manual translations are
11358 available, see the manual translation overview[5].
11359
11360 [4] &lt;URL: <a href="https://wiki.debian.org/DebianEdu/Documentation/Jessie/Features">https://wiki.debian.org/DebianEdu/Documentation/Jessie/Features</a> &gt;
11361 [5] &lt;URL: <a href="http://maintainer.skolelinux.org/debian-edu-doc/">http://maintainer.skolelinux.org/debian-edu-doc/</a> &gt;
11362
11363 Where to get it
11364 ---------------
11365
11366 To download the multiarch netinstall CD release (624 MiB) you can use
11367
11368 * <a href="ftp://ftp.skolelinux.org/skolelinux-cd/debian-edu-8.0+edu0~alpha0-CD.iso">ftp://ftp.skolelinux.org/skolelinux-cd/debian-edu-8.0+edu0~alpha0-CD.iso</a>
11369 * <a href="http://ftp.skolelinux.org/skolelinux-cd/debian-edu-8.0+edu0~alpha0-CD.iso">http://ftp.skolelinux.org/skolelinux-cd/debian-edu-8.0+edu0~alpha0-CD.iso</a>
11370 * rsync -avzP ftp.skolelinux.org::skolelinux-cd/debian-edu-8.0+edu0~alpha0-CD.iso .
11371
11372 The SHA1SUM of this image is: 361188818e036ce67280a572f757de82ebfeb095
11373
11374 New features for Debian Edu 8.0+edu0~alpha0 Codename Jessie released 2014-10-27
11375 ===============================================================================
11376
11377
11378 Installation changes
11379 --------------------
11380
11381 * PXE installation now installs firmware automatically for the hardware present.
11382
11383 Software updates
11384 ----------------
11385
11386 Everything which is new in Debian Jessie 8.0, eg:
11387
11388 * Linux kernel 3.16.x
11389 * Desktop environments KDE "Plasma" 4.11.12, GNOME 3.14, Xfce 4.10,
11390 LXDE 0.5.6 and MATE 1.8 (KDE "Plasma" is installed by default; to
11391 choose one of the others see manual.)
11392 * the browsers Iceweasel 31 ESR and Chromium 38
11393 * !LibreOffice 4.3.3
11394 * GOsa 2.7.4
11395 * LTSP 5.5.4
11396 * CUPS print system 1.7.5
11397 * new boot framework: systemd
11398 * Educational toolbox GCompris 14.07
11399 * Music creator Rosegarden 14.02
11400 * Image editor Gimp 2.8.14
11401 * Virtual stargazer Stellarium 0.13.0
11402 * golearn 0.9
11403 * tuxpaint 0.9.22
11404 * New version of debian-installer from Debian Jessie.
11405 * Debian Jessie includes about 42000 packages available for
11406 installation.
11407 * More information about Debian Jessie 8.0 is provided in the release
11408 notes[6] and the installation manual[7].
11409
11410 [6] &lt;URL: <a href="http://www.debian.org/releases/jessie/releasenotes">http://www.debian.org/releases/jessie/releasenotes</a> &gt;
11411 [7] &lt;URL: <a href="http://www.debian.org/releases/jessie/installmanual">http://www.debian.org/releases/jessie/installmanual</a> &gt;
11412
11413 Fixed bugs
11414 ----------
11415
11416 * Inserting incorrect DNS information in Gosa will no longer break
11417 DNS completely, but instead stop DNS updates until the incorrect
11418 information is corrected (Debian bug #710362)
11419 * and many others.
11420
11421 Documentation and translation updates
11422 -------------------------------------
11423
11424 * The Debian Edu Jessie Manual is fully translated to German, French,
11425 Italian, Danish and Dutch. Partly translated versions exist for
11426 Norwegian Bokmal and Spanish.
11427
11428 Other changes
11429 -------------
11430
11431 * Due to new Squid settings, powering off or rebooting the main
11432 server takes more time.
11433 * To manage printers localhost:631 has to be used, currently www:631
11434 doesn't work.
11435
11436 Regressions / known problems
11437 ----------------------------
11438
11439 * Installing LTSP chroot fails with a bug related to eatmydata about
11440 exim4-config failing to run its postinst (see Debian bug #765694
11441 and Debian bug #762103).
11442 * Munin collection is not properly configured on clients (Debian bug
11443 #764594). The fix is available in a newer version of munin-node.
11444 * PXE setup for Main Server and Thin Client Server setup does not
11445 work when installing on a machine without direct Internet access.
11446 Will be fixed when Debian bug #766960 is fixed in Jessie.
11447
11448 See the status page[8] for the complete list.
11449
11450 [8] &lt;URL: <a href="https://wiki.debian.org/DebianEdu/Status/Jessie">https://wiki.debian.org/DebianEdu/Status/Jessie</a> &gt;
11451
11452 How to report bugs
11453 ------------------
11454
11455 &lt;URL: <a href="http://wiki.debian.org/DebianEdu/HowTo/ReportBugs">http://wiki.debian.org/DebianEdu/HowTo/ReportBugs</a> &gt;
11456
11457 About Debian
11458 ============
11459
11460 The Debian Project was founded in 1993 by Ian Murdock to be a truly
11461 free community project. Since then the project has grown to be one of
11462 the largest and most influential open source projects. Thousands of
11463 volunteers from all over the world work together to create and
11464 maintain Debian software. Available in 70 languages, and supporting a
11465 huge range of computer types, Debian calls itself the universal
11466 operating system.
11467
11468 Contact Information
11469 For further information, please visit the Debian web pages[9] or send
11470 mail to press@debian.org.
11471
11472 [9] &lt;URL: <a href="http://www.debian.org/">http://www.debian.org/</a> &gt;
11473 </pre>
11474
11475 </div>
11476 <div class="tags">
11477
11478
11479 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>.
11480
11481
11482 </div>
11483 </div>
11484 <div class="padding"></div>
11485
11486 <div class="entry">
11487 <div class="title">
11488 <a href="http://people.skolelinux.org/pere/blog/I_spent_last_weekend_recording_MakerCon_Nordic.html">I spent last weekend recording MakerCon Nordic</a>
11489 </div>
11490 <div class="date">
11491 23rd October 2014
11492 </div>
11493 <div class="body">
11494 <p>I spent last weekend at <a href="http://www.makercon.no/">Makercon
11495 Nordic</a>, a great conference and workshop for makers in Norway and
11496 the surrounding countries. I had volunteered on behalf of the
11497 Norwegian Unix Users Group (NUUG) to video record the talks, and we
11498 had a great and exhausting time recording the entire day, two days in
11499 a row. There were only two of us, Hans-Petter and me, and we used the
11500 regular video equipment for NUUG, with a
11501 <a href="http://dvswitch.alioth.debian.org/wiki/">dvswitch</a>, a
11502 camera and a VGA to DV convert box, and mixed video and slides
11503 live.</p>
11504
11505 <p>Hans-Petter did the post-processing, consisting of uploading the
11506 around 180 GiB of raw video to Youtube, and the result is
11507 <a href="https://www.youtube.com/user/MakerConNordic/">now becoming
11508 public</a> on the MakerConNordic account. The videos have the license
11509 NUUG always use on our recordings, which is
11510 <a href="http://creativecommons.org/licenses/by-sa/3.0/no/">Creative
11511 Commons Navngivelse-Del på samme vilkår 3.0 Norge</a>. Many great
11512 talks available. Check it out! :)</p>
11513
11514 </div>
11515 <div class="tags">
11516
11517
11518 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>.
11519
11520
11521 </div>
11522 </div>
11523 <div class="padding"></div>
11524
11525 <div class="entry">
11526 <div class="title">
11527 <a href="http://people.skolelinux.org/pere/blog/listadmin__the_quick_way_to_moderate_mailman_lists___nice_free_software.html">listadmin, the quick way to moderate mailman lists - nice free software</a>
11528 </div>
11529 <div class="date">
11530 22nd October 2014
11531 </div>
11532 <div class="body">
11533 <p>If you ever had to moderate a mailman list, like the ones on
11534 alioth.debian.org, you know the web interface is fairly slow to
11535 operate. First you visit one web page, enter the moderation password
11536 and get a new page shown with a list of all the messages to moderate
11537 and various options for each email address. This take a while for
11538 every list you moderate, and you need to do it regularly to do a good
11539 job as a list moderator. But there is a quick alternative,
11540 <a href="http://heim.ifi.uio.no/kjetilho/hacks/#listadmin">the
11541 listadmin program</a>. It allow you to check lists for new messages
11542 to moderate in a fraction of a second. Here is a test run on two
11543 lists I recently took over:</p>
11544
11545 <p><blockquote><pre>
11546 % time listadmin xiph
11547 fetching data for pkg-xiph-commits@lists.alioth.debian.org ... nothing in queue
11548 fetching data for pkg-xiph-maint@lists.alioth.debian.org ... nothing in queue
11549
11550 real 0m1.709s
11551 user 0m0.232s
11552 sys 0m0.012s
11553 %
11554 </pre></blockquote></p>
11555
11556 <p>In 1.7 seconds I had checked two mailing lists and confirmed that
11557 there are no message in the moderation queue. Every morning I
11558 currently moderate 68 mailman lists, and it normally take around two
11559 minutes. When I took over the two pkg-xiph lists above a few days
11560 ago, there were 400 emails waiting in the moderator queue. It took me
11561 less than 15 minutes to process them all using the listadmin
11562 program.</p>
11563
11564 <p>If you install
11565 <a href="https://tracker.debian.org/pkg/listadmin">the listadmin
11566 package</a> from Debian and create a file <tt>~/.listadmin.ini</tt>
11567 with content like this, the moderation task is a breeze:</p>
11568
11569 <p><blockquote><pre>
11570 username username@example.org
11571 spamlevel 23
11572 default discard
11573 discard_if_reason "Posting restricted to members only. Remove us from your mail list."
11574
11575 password secret
11576 adminurl https://{domain}/mailman/admindb/{list}
11577 mailman-list@lists.example.com
11578
11579 password hidden
11580 other-list@otherserver.example.org
11581 </pre></blockquote></p>
11582
11583 <p>There are other options to set as well. Check the manual page to
11584 learn the details.</p>
11585
11586 <p>If you are forced to moderate lists on a mailman installation where
11587 the SSL certificate is self signed or not properly signed by a
11588 generally accepted signing authority, you can set a environment
11589 variable when calling listadmin to disable SSL verification:</p>
11590
11591 <p><blockquote><pre>
11592 PERL_LWP_SSL_VERIFY_HOSTNAME=0 listadmin
11593 </pre></blockquote></p>
11594
11595 <p>If you want to moderate a subset of the lists you take care of, you
11596 can provide an argument to the listadmin script like I do in the
11597 initial screen dump (the xiph argument). Using an argument, only
11598 lists matching the argument string will be processed. This make it
11599 quick to accept messages if you notice the moderation request in your
11600 email.</p>
11601
11602 <p>Without the listadmin program, I would never be the moderator of 68
11603 mailing lists, as I simply do not have time to spend on that if the
11604 process was any slower. The listadmin program have saved me hours of
11605 time I could spend elsewhere over the years. It truly is nice free
11606 software.</p>
11607
11608 <p>As usual, if you use Bitcoin and want to show your support of my
11609 activities, please send Bitcoin donations to my address
11610 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
11611
11612 <p>Update 2014-10-27: Added missing 'username' statement in
11613 configuration example. Also, I've been told that the
11614 PERL_LWP_SSL_VERIFY_HOSTNAME=0 setting do not work for everyone. Not
11615 sure why.</p>
11616
11617 </div>
11618 <div class="tags">
11619
11620
11621 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software</a>.
11622
11623
11624 </div>
11625 </div>
11626 <div class="padding"></div>
11627
11628 <div class="entry">
11629 <div class="title">
11630 <a href="http://people.skolelinux.org/pere/blog/Debian_Jessie__PXE_and_automatic_firmware_installation.html">Debian Jessie, PXE and automatic firmware installation</a>
11631 </div>
11632 <div class="date">
11633 17th October 2014
11634 </div>
11635 <div class="body">
11636 <p>When PXE installing laptops with Debian, I often run into the
11637 problem that the WiFi card require some firmware to work properly.
11638 And it has been a pain to fix this using preseeding in Debian.
11639 Normally something more is needed. But thanks to
11640 <a href="https://packages.qa.debian.org/i/isenkram.html">my isenkram
11641 package</a> and its recent tasksel extension, it has now become easy
11642 to do this using simple preseeding.</p>
11643
11644 <p>The isenkram-cli package provide tasksel tasks which will install
11645 firmware for the hardware found in the machine (actually, requested by
11646 the kernel modules for the hardware). (It can also install user space
11647 programs supporting the hardware detected, but that is not the focus
11648 of this story.)</p>
11649
11650 <p>To get this working in the default installation, two preeseding
11651 values are needed. First, the isenkram-cli package must be installed
11652 into the target chroot (aka the hard drive) before tasksel is executed
11653 in the pkgsel step of the debian-installer system. This is done by
11654 preseeding the base-installer/includes debconf value to include the
11655 isenkram-cli package. The package name is next passed to debootstrap
11656 for installation. With the isenkram-cli package in place, tasksel
11657 will automatically use the isenkram tasks to detect hardware specific
11658 packages for the machine being installed and install them, because
11659 isenkram-cli contain tasksel tasks.</p>
11660
11661 <p>Second, one need to enable the non-free APT repository, because
11662 most firmware unfortunately is non-free. This is done by preseeding
11663 the apt-mirror-setup step. This is unfortunate, but for a lot of
11664 hardware it is the only option in Debian.</p>
11665
11666 <p>The end result is two lines needed in your preseeding file to get
11667 firmware installed automatically by the installer:</p>
11668
11669 <p><blockquote><pre>
11670 base-installer base-installer/includes string isenkram-cli
11671 apt-mirror-setup apt-setup/non-free boolean true
11672 </pre></blockquote></p>
11673
11674 <p>The current version of isenkram-cli in testing/jessie will install
11675 both firmware and user space packages when using this method. It also
11676 do not work well, so use version 0.15 or later. Installing both
11677 firmware and user space packages might give you a bit more than you
11678 want, so I decided to split the tasksel task in two, one for firmware
11679 and one for user space programs. The firmware task is enabled by
11680 default, while the one for user space programs is not. This split is
11681 implemented in the package currently in unstable.</p>
11682
11683 <p>If you decide to give this a go, please let me know (via email) how
11684 this recipe work for you. :)</p>
11685
11686 <p>So, I bet you are wondering, how can this work. First and
11687 foremost, it work because tasksel is modular, and driven by whatever
11688 files it find in /usr/lib/tasksel/ and /usr/share/tasksel/. So the
11689 isenkram-cli package place two files for tasksel to find. First there
11690 is the task description file (/usr/share/tasksel/descs/isenkram.desc):</p>
11691
11692 <p><blockquote><pre>
11693 Task: isenkram-packages
11694 Section: hardware
11695 Description: Hardware specific packages (autodetected by isenkram)
11696 Based on the detected hardware various hardware specific packages are
11697 proposed.
11698 Test-new-install: show show
11699 Relevance: 8
11700 Packages: for-current-hardware
11701
11702 Task: isenkram-firmware
11703 Section: hardware
11704 Description: Hardware specific firmware packages (autodetected by isenkram)
11705 Based on the detected hardware various hardware specific firmware
11706 packages are proposed.
11707 Test-new-install: mark show
11708 Relevance: 8
11709 Packages: for-current-hardware-firmware
11710 </pre></blockquote></p>
11711
11712 <p>The key parts are Test-new-install which indicate how the task
11713 should be handled and the Packages line referencing to a script in
11714 /usr/lib/tasksel/packages/. The scripts use other scripts to get a
11715 list of packages to install. The for-current-hardware-firmware script
11716 look like this to list relevant firmware for the machine:
11717
11718 <p><blockquote><pre>
11719 #!/bin/sh
11720 #
11721 PATH=/usr/sbin:$PATH
11722 export PATH
11723 isenkram-autoinstall-firmware -l
11724 </pre></blockquote></p>
11725
11726 <p>With those two pieces in place, the firmware is installed by
11727 tasksel during the normal d-i run. :)</p>
11728
11729 <p>If you want to test what tasksel will install when isenkram-cli is
11730 installed, run <tt>DEBIAN_PRIORITY=critical tasksel --test
11731 --new-install</tt> to get the list of packages that tasksel would
11732 install.</p>
11733
11734 <p><a href="https://wiki.debian.org/DebianEdu/">Debian Edu</a> will be
11735 pilots in testing this feature, as isenkram is used there now to
11736 install firmware, replacing the earlier scripts.</p>
11737
11738 </div>
11739 <div class="tags">
11740
11741
11742 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin</a>.
11743
11744
11745 </div>
11746 </div>
11747 <div class="padding"></div>
11748
11749 <div class="entry">
11750 <div class="title">
11751 <a href="http://people.skolelinux.org/pere/blog/Ubuntu_used_to_show_the_bread_prizes_at_ICA_Storo.html">Ubuntu used to show the bread prizes at ICA Storo</a>
11752 </div>
11753 <div class="date">
11754 4th October 2014
11755 </div>
11756 <div class="body">
11757 <p>Today I came across an unexpected Ubuntu boot screen. Above the
11758 bread shelf on the ICA shop at Storo in Oslo, the grub menu of Ubuntu
11759 with Linux kernel 3.2.0-23 (ie probably version 12.04 LTS) was stuck
11760 on a screen normally showing the bread types and prizes:</p>
11761
11762 <p align="center"><img width="70%" src="http://people.skolelinux.org/pere/blog/images/2014-10-04-ubuntu-ica-storo-crop.jpeg"></p>
11763
11764 <p>If it had booted as it was supposed to, I would never had known
11765 about this hidden Linux installation. It is interesting what
11766 <a href="http://revealingerrors.com/">errors can reveal</a>.</p>
11767
11768 </div>
11769 <div class="tags">
11770
11771
11772 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>.
11773
11774
11775 </div>
11776 </div>
11777 <div class="padding"></div>
11778
11779 <div class="entry">
11780 <div class="title">
11781 <a href="http://people.skolelinux.org/pere/blog/New_lsdvd_release_version_0_17_is_ready.html">New lsdvd release version 0.17 is ready</a>
11782 </div>
11783 <div class="date">
11784 4th October 2014
11785 </div>
11786 <div class="body">
11787 <p>The <a href="https://sourceforge.net/p/lsdvd/">lsdvd project</a>
11788 got a new set of developers a few weeks ago, after the original
11789 developer decided to step down and pass the project to fresh blood.
11790 This project is now maintained by Petter Reinholdtsen and Steve
11791 Dibb.</p>
11792
11793 <p>I just wrapped up
11794 <a href="https://sourceforge.net/p/lsdvd/mailman/message/32896061/">a
11795 new lsdvd release</a>, available in git or from
11796 <a href="https://sourceforge.net/projects/lsdvd/files/lsdvd/">the
11797 download page</a>. This is the changelog dated 2014-10-03 for version
11798 0.17.</p>
11799
11800 <ul>
11801
11802 <li>Ignore 'phantom' audio, subtitle tracks</li>
11803 <li>Check for garbage in the program chains, which indicate that a track is
11804 non-existant, to work around additional copy protection</li>
11805 <li>Fix displaying content type for audio tracks, subtitles</li>
11806 <li>Fix pallete display of first entry</li>
11807 <li>Fix include orders</li>
11808 <li>Ignore read errors in titles that would not be displayed anyway</li>
11809 <li>Fix the chapter count</li>
11810 <li>Make sure the array size and the array limit used when initialising
11811 the palette size is the same.</li>
11812 <li>Fix array printing.</li>
11813 <li>Correct subsecond calculations.</li>
11814 <li>Add sector information to the output format.</li>
11815 <li>Clean up code to be closer to ANSI C and compile without warnings
11816 with more GCC compiler warnings.</li>
11817
11818 </ul>
11819
11820 <p>This change bring together patches for lsdvd in use in various
11821 Linux and Unix distributions, as well as patches submitted to the
11822 project the last nine years. Please check it out. :)</p>
11823
11824 </div>
11825 <div class="tags">
11826
11827
11828 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/lsdvd">lsdvd</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>.
11829
11830
11831 </div>
11832 </div>
11833 <div class="padding"></div>
11834
11835 <div class="entry">
11836 <div class="title">
11837 <a href="http://people.skolelinux.org/pere/blog/How_to_test_Debian_Edu_Jessie_despite_some_fatal_problems_with_the_installer.html">How to test Debian Edu Jessie despite some fatal problems with the installer</a>
11838 </div>
11839 <div class="date">
11840 26th September 2014
11841 </div>
11842 <div class="body">
11843 <p>The <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux
11844 project</a> provide a Linux solution for schools, including a
11845 powerful desktop with education software, a central server providing
11846 web pages, user database, user home directories, central login and PXE
11847 boot of both clients without disk and the installation to install Debian
11848 Edu on machines with disk (and a few other services perhaps to small
11849 to mention here). We in the Debian Edu team are currently working on
11850 the Jessie based version, trying to get everything in shape before the
11851 freeze, to avoid having to maintain our own package repository in the
11852 future. The
11853 <a href="https://wiki.debian.org/DebianEdu/Status/Jessie">current
11854 status</a> can be seen on the Debian wiki, and there is still heaps of
11855 work left. Some fatal problems block testing, breaking the installer,
11856 but it is possible to work around these to get anyway. Here is a
11857 recipe on how to get the installation limping along.</p>
11858
11859 <p>First, download the test ISO via
11860 <a href="ftp://ftp.skolelinux.no/cd-edu-testing-nolocal-netinst/debian-edu-amd64-i386-NETINST-1.iso">ftp</a>,
11861 <a href="http://ftp.skolelinux.no/cd-edu-testing-nolocal-netinst/debian-edu-amd64-i386-NETINST-1.iso">http</a>
11862 or rsync (use
11863 ftp.skolelinux.org::cd-edu-testing-nolocal-netinst/debian-edu-amd64-i386-NETINST-1.iso).
11864 The ISO build was broken on Tuesday, so we do not get a new ISO every
11865 12 hours or so, but thankfully the ISO we already got we are able to
11866 install with some tweaking.</p>
11867
11868 <p>When you get to the Debian Edu profile question, go to tty2
11869 (use Alt-Ctrl-F2), run</p>
11870
11871 <p><blockquote><pre>
11872 nano /usr/bin/edu-eatmydata-install
11873 </pre></blockquote></p>
11874
11875 <p>and add 'exit 0' as the second line, disabling the eatmydata
11876 optimization. Return to the installation, select the profile you want
11877 and continue. Without this change, exim4-config will fail to install
11878 due to a known bug in eatmydata.</p>
11879
11880 <p>When you get the grub question at the end, answer /dev/sda (or if
11881 this do not work, figure out what your correct value would be. All my
11882 test machines need /dev/sda, so I have no advice if it do not fit
11883 your need.</p>
11884
11885 <p>If you installed a profile including a graphical desktop, log in as
11886 root after the initial boot from hard drive, and install the
11887 education-desktop-XXX metapackage. XXX can be kde, gnome, lxde, xfce
11888 or mate. If you want several desktop options, install more than one
11889 metapackage. Once this is done, reboot and you should have a working
11890 graphical login screen. This workaround should no longer be needed
11891 once the education-tasks package version 1.801 enter testing in two
11892 days.</p>
11893
11894 <p>I believe the ISO build will start working on two days when the new
11895 tasksel package enter testing and Steve McIntyre get a chance to
11896 update the debian-cd git repository. The eatmydata, grub and desktop
11897 issues are already fixed in unstable and testing, and should show up
11898 on the ISO as soon as the ISO build start working again. Well the
11899 eatmydata optimization is really just disabled. The proper fix
11900 require an upload by the eatmydata maintainer applying the patch
11901 provided in bug <a href="https://bugs.debian.org/702711">#702711</a>.
11902 The rest have proper fixes in unstable.</p>
11903
11904 <p>I hope this get you going with the installation testing, as we are
11905 quickly running out of time trying to get our Jessie based
11906 installation ready before the distribution freeze in a month.</p>
11907
11908 </div>
11909 <div class="tags">
11910
11911
11912 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>.
11913
11914
11915 </div>
11916 </div>
11917 <div class="padding"></div>
11918
11919 <div class="entry">
11920 <div class="title">
11921 <a href="http://people.skolelinux.org/pere/blog/Suddenly_I_am_the_new_upstream_of_the_lsdvd_command_line_tool.html">Suddenly I am the new upstream of the lsdvd command line tool</a>
11922 </div>
11923 <div class="date">
11924 25th September 2014
11925 </div>
11926 <div class="body">
11927 <p>I use the <a href="https://sourceforge.net/p/lsdvd/">lsdvd tool</a>
11928 to handle my fairly large DVD collection. It is a nice command line
11929 tool to get details about a DVD, like title, tracks, track length,
11930 etc, in XML, Perl or human readable format. But lsdvd have not seen
11931 any new development since 2006 and had a few irritating bugs affecting
11932 its use with some DVDs. Upstream seemed to be dead, and in January I
11933 sent a small probe asking for a version control repository for the
11934 project, without any reply. But I use it regularly and would like to
11935 get <a href="https://packages.qa.debian.org/lsdvd">an updated version
11936 into Debian</a>. So two weeks ago I tried harder to get in touch with
11937 the project admin, and after getting a reply from him explaining that
11938 he was no longer interested in the project, I asked if I could take
11939 over. And yesterday, I became project admin.</p>
11940
11941 <p>I've been in touch with a Gentoo developer and the Debian
11942 maintainer interested in joining forces to maintain the upstream
11943 project, and I hope we can get a new release out fairly quickly,
11944 collecting the patches spread around on the internet into on place.
11945 I've added the relevant Debian patches to the freshly created git
11946 repository, and expect the Gentoo patches to make it too. If you got
11947 a DVD collection and care about command line tools, check out
11948 <a href="https://sourceforge.net/p/lsdvd/git/ci/master/tree/">the git source</a> and join
11949 <a href="https://sourceforge.net/p/lsdvd/mailman/">the project mailing
11950 list</a>. :)</p>
11951
11952 </div>
11953 <div class="tags">
11954
11955
11956 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/lsdvd">lsdvd</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>.
11957
11958
11959 </div>
11960 </div>
11961 <div class="padding"></div>
11962
11963 <div class="entry">
11964 <div class="title">
11965 <a href="http://people.skolelinux.org/pere/blog/Speeding_up_the_Debian_installer_using_eatmydata_and_dpkg_divert.html">Speeding up the Debian installer using eatmydata and dpkg-divert</a>
11966 </div>
11967 <div class="date">
11968 16th September 2014
11969 </div>
11970 <div class="body">
11971 <p>The <a href="https://www.debian.org/">Debian</a> installer could be
11972 a lot quicker. When we install more than 2000 packages in
11973 <a href="http://www.skolelinux.org/">Skolelinux / Debian Edu</a> using
11974 tasksel in the installer, unpacking the binary packages take forever.
11975 A part of the slow I/O issue was discussed in
11976 <a href="https://bugs.debian.org/613428">bug #613428</a> about too
11977 much file system sync-ing done by dpkg, which is the package
11978 responsible for unpacking the binary packages. Other parts (like code
11979 executed by postinst scripts) might also sync to disk during
11980 installation. All this sync-ing to disk do not really make sense to
11981 me. If the machine crash half-way through, I start over, I do not try
11982 to salvage the half installed system. So the failure sync-ing is
11983 supposed to protect against, hardware or system crash, is not really
11984 relevant while the installer is running.</p>
11985
11986 <p>A few days ago, I thought of a way to get rid of all the file
11987 system sync()-ing in a fairly non-intrusive way, without the need to
11988 change the code in several packages. The idea is not new, but I have
11989 not heard anyone propose the approach using dpkg-divert before. It
11990 depend on the small and clever package
11991 <a href="https://packages.qa.debian.org/eatmydata">eatmydata</a>, which
11992 uses LD_PRELOAD to replace the system functions for syncing data to
11993 disk with functions doing nothing, thus allowing programs to live
11994 dangerous while speeding up disk I/O significantly. Instead of
11995 modifying the implementation of dpkg, apt and tasksel (which are the
11996 packages responsible for selecting, fetching and installing packages),
11997 it occurred to me that we could just divert the programs away, replace
11998 them with a simple shell wrapper calling
11999 "eatmydata&nbsp;$program&nbsp;$@", to get the same effect.
12000 Two days ago I decided to test the idea, and wrapped up a simple
12001 implementation for the Debian Edu udeb.</p>
12002
12003 <p>The effect was stunning. In my first test it reduced the running
12004 time of the pkgsel step (installing tasks) from 64 to less than 44
12005 minutes (20 minutes shaved off the installation) on an old Dell
12006 Latitude D505 machine. I am not quite sure what the optimised time
12007 would have been, as I messed up the testing a bit, causing the debconf
12008 priority to get low enough for two questions to pop up during
12009 installation. As soon as I saw the questions I moved the installation
12010 along, but do not know how long the question were holding up the
12011 installation. I did some more measurements using Debian Edu Jessie,
12012 and got these results. The time measured is the time stamp in
12013 /var/log/syslog between the "pkgsel: starting tasksel" and the
12014 "pkgsel: finishing up" lines, if you want to do the same measurement
12015 yourself. In Debian Edu, the tasksel dialog do not show up, and the
12016 timing thus do not depend on how quickly the user handle the tasksel
12017 dialog.</p>
12018
12019 <p><table>
12020
12021 <tr>
12022 <th>Machine/setup</th>
12023 <th>Original tasksel</th>
12024 <th>Optimised tasksel</th>
12025 <th>Reduction</th>
12026 </tr>
12027
12028 <tr>
12029 <td>Latitude D505 Main+LTSP LXDE</td>
12030 <td>64 min (07:46-08:50)</td>
12031 <td><44 min (11:27-12:11)</td>
12032 <td>>20 min 18%</td>
12033 </tr>
12034
12035 <tr>
12036 <td>Latitude D505 Roaming LXDE</td>
12037 <td>57 min (08:48-09:45)</td>
12038 <td>34 min (07:43-08:17)</td>
12039 <td>23 min 40%</td>
12040 </tr>
12041
12042 <tr>
12043 <td>Latitude D505 Minimal</td>
12044 <td>22 min (10:37-10:59)</td>
12045 <td>11 min (11:16-11:27)</td>
12046 <td>11 min 50%</td>
12047 </tr>
12048
12049 <tr>
12050 <td>Thinkpad X200 Minimal</td>
12051 <td>6 min (08:19-08:25)</td>
12052 <td>4 min (08:04-08:08)</td>
12053 <td>2 min 33%</td>
12054 </tr>
12055
12056 <tr>
12057 <td>Thinkpad X200 Roaming KDE</td>
12058 <td>19 min (09:21-09:40)</td>
12059 <td>15 min (10:25-10:40)</td>
12060 <td>4 min 21%</td>
12061 </tr>
12062
12063 </table></p>
12064
12065 <p>The test is done using a netinst ISO on a USB stick, so some of the
12066 time is spent downloading packages. The connection to the Internet
12067 was 100Mbit/s during testing, so downloading should not be a
12068 significant factor in the measurement. Download typically took a few
12069 seconds to a few minutes, depending on the amount of packages being
12070 installed.</p>
12071
12072 <p>The speedup is implemented by using two hooks in
12073 <a href="https://www.debian.org/devel/debian-installer/">Debian
12074 Installer</a>, the pre-pkgsel.d hook to set up the diverts, and the
12075 finish-install.d hook to remove the divert at the end of the
12076 installation. I picked the pre-pkgsel.d hook instead of the
12077 post-base-installer.d hook because I test using an ISO without the
12078 eatmydata package included, and the post-base-installer.d hook in
12079 Debian Edu can only operate on packages included in the ISO. The
12080 negative effect of this is that I am unable to activate this
12081 optimization for the kernel installation step in d-i. If the code is
12082 moved to the post-base-installer.d hook, the speedup would be larger
12083 for the entire installation.</p>
12084
12085 <p>I've implemented this in the
12086 <a href="https://packages.qa.debian.org/debian-edu-install">debian-edu-install</a>
12087 git repository, and plan to provide the optimization as part of the
12088 Debian Edu installation. If you want to test this yourself, you can
12089 create two files in the installer (or in an udeb). One shell script
12090 need do go into /usr/lib/pre-pkgsel.d/, with content like this:</p>
12091
12092 <p><blockquote><pre>
12093 #!/bin/sh
12094 set -e
12095 . /usr/share/debconf/confmodule
12096 info() {
12097 logger -t my-pkgsel "info: $*"
12098 }
12099 error() {
12100 logger -t my-pkgsel "error: $*"
12101 }
12102 override_install() {
12103 apt-install eatmydata || true
12104 if [ -x /target/usr/bin/eatmydata ] ; then
12105 for bin in dpkg apt-get aptitude tasksel ; do
12106 file=/usr/bin/$bin
12107 # Test that the file exist and have not been diverted already.
12108 if [ -f /target$file ] ; then
12109 info "diverting $file using eatmydata"
12110 printf "#!/bin/sh\neatmydata $bin.distrib \"\$@\"\n" \
12111 > /target$file.edu
12112 chmod 755 /target$file.edu
12113 in-target dpkg-divert --package debian-edu-config \
12114 --rename --quiet --add $file
12115 ln -sf ./$bin.edu /target$file
12116 else
12117 error "unable to divert $file, as it is missing."
12118 fi
12119 done
12120 else
12121 error "unable to find /usr/bin/eatmydata after installing the eatmydata pacage"
12122 fi
12123 }
12124
12125 override_install
12126 </pre></blockquote></p>
12127
12128 <p>To clean up, another shell script should go into
12129 /usr/lib/finish-install.d/ with code like this:
12130
12131 <p><blockquote><pre>
12132 #! /bin/sh -e
12133 . /usr/share/debconf/confmodule
12134 error() {
12135 logger -t my-finish-install "error: $@"
12136 }
12137 remove_install_override() {
12138 for bin in dpkg apt-get aptitude tasksel ; do
12139 file=/usr/bin/$bin
12140 if [ -x /target$file.edu ] ; then
12141 rm /target$file
12142 in-target dpkg-divert --package debian-edu-config \
12143 --rename --quiet --remove $file
12144 rm /target$file.edu
12145 else
12146 error "Missing divert for $file."
12147 fi
12148 done
12149 sync # Flush file buffers before continuing
12150 }
12151
12152 remove_install_override
12153 </pre></blockquote></p>
12154
12155 <p>In Debian Edu, I placed both code fragments in a separate script
12156 edu-eatmydata-install and call it from the pre-pkgsel.d and
12157 finish-install.d scripts.</p>
12158
12159 <p>By now you might ask if this change should get into the normal
12160 Debian installer too? I suspect it should, but am not sure the
12161 current debian-installer coordinators find it useful enough. It also
12162 depend on the side effects of the change. I'm not aware of any, but I
12163 guess we will see if the change is safe after some more testing.
12164 Perhaps there is some package in Debian depending on sync() and
12165 fsync() having effect? Perhaps it should go into its own udeb, to
12166 allow those of us wanting to enable it to do so without affecting
12167 everyone.</p>
12168
12169 <p>Update 2014-09-24: Since a few days ago, enabling this optimization
12170 will break installation of all programs using gnutls because of
12171 <a href="https://bugs.debian.org/702711">bug #702711</a>. An updated
12172 eatmydata package in Debian will solve it.</p>
12173
12174 <p>Update 2014-10-17: The bug mentioned above is fixed in testing and
12175 the optimization work again. And I have discovered that the
12176 dpkg-divert trick is not really needed and implemented a slightly
12177 simpler approach as part of the debian-edu-install package. See
12178 tools/edu-eatmydata-install in the source package.</p>
12179
12180 <p>Update 2014-11-11: Unfortunately, a new
12181 <a href="http://bugs.debian.org/765738">bug #765738</a> in eatmydata only
12182 triggering on i386 made it into testing, and broke this installation
12183 optimization again. If <a href="http://bugs.debian.org/768893">unblock
12184 request 768893</a> is accepted, it should be working again.</p>
12185
12186 </div>
12187 <div class="tags">
12188
12189
12190 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>.
12191
12192
12193 </div>
12194 </div>
12195 <div class="padding"></div>
12196
12197 <div class="entry">
12198 <div class="title">
12199 <a href="http://people.skolelinux.org/pere/blog/Good_bye_subkeys_pgp_net__welcome_pool_sks_keyservers_net.html">Good bye subkeys.pgp.net, welcome pool.sks-keyservers.net</a>
12200 </div>
12201 <div class="date">
12202 10th September 2014
12203 </div>
12204 <div class="body">
12205 <p>Yesterday, I had the pleasure of attending a talk with the
12206 <a href="http://www.nuug.no/">Norwegian Unix User Group</a> about
12207 <a href="http://www.nuug.no/aktiviteter/20140909-sks-keyservers/">the
12208 OpenPGP keyserver pool sks-keyservers.net</a>, and was very happy to
12209 learn that there is a large set of publicly available key servers to
12210 use when looking for peoples public key. So far I have used
12211 subkeys.pgp.net, and some times wwwkeys.nl.pgp.net when the former
12212 were misbehaving, but those days are ended. The servers I have used
12213 up until yesterday have been slow and some times unavailable. I hope
12214 those problems are gone now.</p>
12215
12216 <p>Behind the round robin DNS entry of the
12217 <a href="https://sks-keyservers.net/">sks-keyservers.net</a> service
12218 there is a pool of more than 100 keyservers which are checked every
12219 day to ensure they are well connected and up to date. It must be
12220 better than what I have used so far. :)</p>
12221
12222 <p>Yesterdays speaker told me that the service is the default
12223 keyserver provided by the default configuration in GnuPG, but this do
12224 not seem to be used in Debian. Perhaps it should?</p>
12225
12226 <p>Anyway, I've updated my ~/.gnupg/options file to now include this
12227 line:</p>
12228
12229 <p><blockquote><pre>
12230 keyserver pool.sks-keyservers.net
12231 </pre></blockquote></p>
12232
12233 <p>With GnuPG version 2 one can also locate the keyserver using SRV
12234 entries in DNS. Just for fun, I did just that at work, so now every
12235 user of GnuPG at the University of Oslo should find a OpenGPG
12236 keyserver automatically should their need it:</p>
12237
12238 <p><blockquote><pre>
12239 % host -t srv _pgpkey-http._tcp.uio.no
12240 _pgpkey-http._tcp.uio.no has SRV record 0 100 11371 pool.sks-keyservers.net.
12241 %
12242 </pre></blockquote></p>
12243
12244 <p>Now if only
12245 <a href="http://ietfreport.isoc.org/idref/draft-shaw-openpgp-hkp/">the
12246 HKP lookup protocol</a> supported finding signature paths, I would be
12247 very happy. It can look up a given key or search for a user ID, but I
12248 normally do not want that, but to find a trust path from my key to
12249 another key. Given a user ID or key ID, I would like to find (and
12250 download) the keys representing a signature path from my key to the
12251 key in question, to be able to get a trust path between the two keys.
12252 This is as far as I can tell not possible today. Perhaps something
12253 for a future version of the protocol?</p>
12254
12255 </div>
12256 <div class="tags">
12257
12258
12259 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>.
12260
12261
12262 </div>
12263 </div>
12264 <div class="padding"></div>
12265
12266 <div class="entry">
12267 <div class="title">
12268 <a href="http://people.skolelinux.org/pere/blog/Do_you_need_an_agreement_with_MPEG_LA_to_publish_and_broadcast_H_264_video_in_Norway_.html">Do you need an agreement with MPEG-LA to publish and broadcast H.264 video in Norway?</a>
12269 </div>
12270 <div class="date">
12271 25th August 2014
12272 </div>
12273 <div class="body">
12274 <p>Two years later, I am still not sure if it is legal here in Norway
12275 to use or publish a video in H.264 or MPEG4 format edited by the
12276 commercially licensed video editors, without limiting the use to
12277 create "personal" or "non-commercial" videos or get a license
12278 agreement with <a href="http://www.mpegla.com">MPEG LA</a>. If one
12279 want to publish and broadcast video in a non-personal or commercial
12280 setting, it might be that those tools can not be used, or that video
12281 format can not be used, without breaking their copyright license. I
12282 am not sure.
12283 <a href="http://people.skolelinux.org/pere/blog/Trenger_en_avtale_med_MPEG_LA_for___publisere_og_kringkaste_H_264_video_.html">Back
12284 then</a>, I found that the copyright license terms for Adobe Premiere
12285 and Apple Final Cut Pro both specified that one could not use the
12286 program to produce anything else without a patent license from MPEG
12287 LA. The issue is not limited to those two products, though. Other
12288 much used products like those from Avid and Sorenson Media have terms
12289 of use are similar to those from Adobe and Apple. The complicating
12290 factor making me unsure if those terms have effect in Norway or not is
12291 that the patents in question are not valid in Norway, but copyright
12292 licenses are.</p>
12293
12294 <p>These are the terms for Avid Artist Suite, according to their
12295 <a href="http://www.avid.com/US/about-avid/legal-notices/legal-enduserlicense2">published
12296 end user</a>
12297 <a href="http://www.avid.com/static/resources/common/documents/corporate/LICENSE.pdf">license
12298 text</a> (converted to lower case text for easier reading):</p>
12299
12300 <p><blockquote>
12301 <p>18.2. MPEG-4. MPEG-4 technology may be included with the
12302 software. MPEG LA, L.L.C. requires this notice: </p>
12303
12304 <p>This product is licensed under the MPEG-4 visual patent portfolio
12305 license for the personal and non-commercial use of a consumer for (i)
12306 encoding video in compliance with the MPEG-4 visual standard (“MPEG-4
12307 video”) and/or (ii) decoding MPEG-4 video that was encoded by a
12308 consumer engaged in a personal and non-commercial activity and/or was
12309 obtained from a video provider licensed by MPEG LA to provide MPEG-4
12310 video. No license is granted or shall be implied for any other
12311 use. Additional information including that relating to promotional,
12312 internal and commercial uses and licensing may be obtained from MPEG
12313 LA, LLC. See http://www.mpegla.com. This product is licensed under
12314 the MPEG-4 systems patent portfolio license for encoding in compliance
12315 with the MPEG-4 systems standard, except that an additional license
12316 and payment of royalties are necessary for encoding in connection with
12317 (i) data stored or replicated in physical media which is paid for on a
12318 title by title basis and/or (ii) data which is paid for on a title by
12319 title basis and is transmitted to an end user for permanent storage
12320 and/or use, such additional license may be obtained from MPEG LA,
12321 LLC. See http://www.mpegla.com for additional details.</p>
12322
12323 <p>18.3. H.264/AVC. H.264/AVC technology may be included with the
12324 software. MPEG LA, L.L.C. requires this notice:</p>
12325
12326 <p>This product is licensed under the AVC patent portfolio license for
12327 the personal use of a consumer or other uses in which it does not
12328 receive remuneration to (i) encode video in compliance with the AVC
12329 standard (“AVC video”) and/or (ii) decode AVC video that was encoded
12330 by a consumer engaged in a personal activity and/or was obtained from
12331 a video provider licensed to provide AVC video. No license is granted
12332 or shall be implied for any other use. Additional information may be
12333 obtained from MPEG LA, L.L.C. See http://www.mpegla.com.</p>
12334 </blockquote></p>
12335
12336 <p>Note the requirement that the videos created can only be used for
12337 personal or non-commercial purposes.</p>
12338
12339 <p>The Sorenson Media software have
12340 <a href="http://www.sorensonmedia.com/terms/">similar terms</a>:</p>
12341
12342 <p><blockquote>
12343
12344 <p>With respect to a license from Sorenson pertaining to MPEG-4 Video
12345 Decoders and/or Encoders: Any such product is licensed under the
12346 MPEG-4 visual patent portfolio license for the personal and
12347 non-commercial use of a consumer for (i) encoding video in compliance
12348 with the MPEG-4 visual standard (“MPEG-4 video”) and/or (ii) decoding
12349 MPEG-4 video that was encoded by a consumer engaged in a personal and
12350 non-commercial activity and/or was obtained from a video provider
12351 licensed by MPEG LA to provide MPEG-4 video. No license is granted or
12352 shall be implied for any other use. Additional information including
12353 that relating to promotional, internal and commercial uses and
12354 licensing may be obtained from MPEG LA, LLC. See
12355 http://www.mpegla.com.</p>
12356
12357 <p>With respect to a license from Sorenson pertaining to MPEG-4
12358 Consumer Recorded Data Encoder, MPEG-4 Systems Internet Data Encoder,
12359 MPEG-4 Mobile Data Encoder, and/or MPEG-4 Unique Use Encoder: Any such
12360 product is licensed under the MPEG-4 systems patent portfolio license
12361 for encoding in compliance with the MPEG-4 systems standard, except
12362 that an additional license and payment of royalties are necessary for
12363 encoding in connection with (i) data stored or replicated in physical
12364 media which is paid for on a title by title basis and/or (ii) data
12365 which is paid for on a title by title basis and is transmitted to an
12366 end user for permanent storage and/or use. Such additional license may
12367 be obtained from MPEG LA, LLC. See http://www.mpegla.com for
12368 additional details.</p>
12369
12370 </blockquote></p>
12371
12372 <p>Some free software like
12373 <a href="https://handbrake.fr/">Handbrake</A> and
12374 <a href="http://ffmpeg.org/">FFMPEG</a> uses GPL/LGPL licenses and do
12375 not have any such terms included, so for those, there is no
12376 requirement to limit the use to personal and non-commercial.</p>
12377
12378 </div>
12379 <div class="tags">
12380
12381
12382 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/h264">h264</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</a>.
12383
12384
12385 </div>
12386 </div>
12387 <div class="padding"></div>
12388
12389 <div class="entry">
12390 <div class="title">
12391 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Bernd_Zeitzen.html">Debian Edu interview: Bernd Zeitzen</a>
12392 </div>
12393 <div class="date">
12394 31st July 2014
12395 </div>
12396 <div class="body">
12397 <p>The complete and free “out of the box” software solution for
12398 schools, <a href="http://www.skolelinux.org/">Debian Edu /
12399 Skolelinux</a>, is used quite a lot in Germany, and one of the people
12400 involved is Bernd Zeitzen, who show up on the project mailing lists
12401 from time to time with interesting questions and tips on how to adjust
12402 the setup. I managed to interview him this summer.</p>
12403
12404 <p><strong>Who are you, and how do you spend your days?</strong></p>
12405
12406 <p>My name is Bernd Zeitzen and I'm married with Hedda, a self
12407 employed physiotherapist. My former profession is tool maker, but I
12408 haven't worked for 30 years in this job. 30 years ago I started to
12409 support my wife and become her officeworker and a few years later the
12410 administrator for a small computer network, today based on Ubuntu
12411 Server (Samba, OpenVPN). For her daily work she has to use Windows
12412 Desktops because the software she needs to organize her business only
12413 works with Windows . :-(</p>
12414
12415 <p>In 1988 we started with one PC and DOS, then I learned to use
12416 Windows 98, 2000, XP, …, 8, Ubuntu, MacOSX. Today we are running a
12417 Linux server with 6 Windows clients and 10 persons (teacher of
12418 children with special needs, speech therapist, occupational therapist,
12419 psychologist and officeworkers) using our Samba shares via OpenVPN to
12420 work with the documentations of our patients.</p>
12421
12422 <p><strong>How did you get in contact with the Skolelinux / Debian Edu
12423 project?</strong></p>
12424
12425 <p>Two years ago a friend of mine asked me, if I want to get a job in
12426 his school (<a href="http://www.gymnasium-harsewinkel.de/">Gymnasium
12427 Harsewinkel</a>). They started with Skolelinux / Debian Edu and they
12428 were looking for people to give support to the teachers using the
12429 software and the network and teaching the pupils increasing their
12430 computer skills in optional lessons. I'm spending 4-6 hours a week
12431 with this job.</p>
12432
12433 <p><strong>What do you see as the advantages of Skolelinux / Debian
12434 Edu?</strong></p>
12435
12436 <p>The independence.</p>
12437
12438 <p>First: Every person is allowed to use, share and develop the
12439 software. Even if you are poor, you are allowed to use the software
12440 included in Skolelinux/Debian Edu and all the other Free Software.</p>
12441
12442 <p>Second: The software runs on old machines and this gives us the
12443 possibility to recycle computers, weeded out from offices. The
12444 servers and desktops are running for more than two years and they are
12445 working reliable. </p>
12446
12447 <p>We have two servers (one tjener and one terminal server), 45
12448 workstations in three classrooms and seven laptops as a mobile
12449 solution for all classrooms. These machines are all booting from the
12450 terminal server. In the moment we are installing 30 laptops as mobile
12451 workstations. Then the pupils have the possibility to work with these
12452 machines in their classrooms. Internet access is realized by a WLAN
12453 router, connected to the schools network. This is all done without a
12454 dedicated system administrator or a computer science teacher.</p>
12455
12456 <p><strong>What do you see as the disadvantages of Skolelinux / Debian
12457 Edu?</strong></p>
12458
12459 <p>Teachers and pupils are Windows users. &lt;Irony on&gt; And Linux
12460 isn't cool. It's software for freaks using the command line. &lt;Irony
12461 off&gt; They don't realize the stability of the system. </p>
12462
12463 <p><strong>Which free software do you use daily?</strong></p>
12464
12465 <p>Firefox, Thunderbird, LibreOffice, Ubuntu Server 12.04 (Samba,
12466 Apache, MySQL, Joomla!, … and Skolelinux / Debian Edu)</p>
12467
12468 <p><strong>Which strategy do you believe is the right one to use to
12469 get schools to use free software?</strong></p>
12470
12471 <p>In Germany we have the situation: every school is free to decide
12472 which software they want to use. This decision is influenced by
12473 teachers who learned to use Windows and MS Office. They buy a PC with
12474 Windows preinstalled and an additional testing version of MS
12475 Office. They don't know about the possibility to use Free Software
12476 instead. Another problem are the publisher of school books. They
12477 develop their software, added to the school books, for Windows.</p>
12478
12479 </div>
12480 <div class="tags">
12481
12482
12483 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>.
12484
12485
12486 </div>
12487 </div>
12488 <div class="padding"></div>
12489
12490 <div class="entry">
12491 <div class="title">
12492 <a href="http://people.skolelinux.org/pere/blog/98_6_percent_done_with_the_Norwegian_draft_translation_of_Free_Culture.html">98.6 percent done with the Norwegian draft translation of Free Culture</a>
12493 </div>
12494 <div class="date">
12495 23rd July 2014
12496 </div>
12497 <div class="body">
12498 <p>This summer I finally had time to continue working on the Norwegian
12499 <a href="http://www.docbook.org/">docbook</a> version of the 2004 book
12500 <a href="http://free-culture.cc/">Free Culture</a> by Lawrence Lessig,
12501 to get a Norwegian text explaining the problems with todays copyright
12502 law. Yesterday, I finally completed translated the book text. There
12503 are still some foot/end notes left to translate, the colophon page
12504 need to be rewritten, and a few words and phrases still need to be
12505 translated, but the Norwegian text is ready for the first proof
12506 reading. :) More spell checking is needed, and several illustrations
12507 need to be cleaned up. The work stopped up because I had to give
12508 priority to other projects the last year, and the progress graph of
12509 the translation show this very well:</p>
12510
12511 <p><img width="80%" align="center" src="https://github.com/petterreinholdtsen/free-culture-lessig/raw/master/progress.png"></p>
12512
12513 <p>If you want to read the result, check out the
12514 <a href="https://github.com/petterreinholdtsen/free-culture-lessig">github</a>
12515 project pages and the
12516 <a href="https://github.com/petterreinholdtsen/free-culture-lessig/blob/master/archive/freeculture.nb.pdf?raw=true">PDF</a>,
12517 <a href="https://github.com/petterreinholdtsen/free-culture-lessig/blob/master/archive/freeculture.nb.epub?raw=true">EPUB</a>
12518 and HTML version available in the
12519 <a href="https://github.com/petterreinholdtsen/free-culture-lessig/tree/master/archive">archive
12520 directory</a>.</p>
12521
12522 <p>Please report typos, bugs and improvements to the github project if
12523 you find any.</p>
12524
12525 </div>
12526 <div class="tags">
12527
12528
12529 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>.
12530
12531
12532 </div>
12533 </div>
12534 <div class="padding"></div>
12535
12536 <div class="entry">
12537 <div class="title">
12538 <a href="http://people.skolelinux.org/pere/blog/From_English_wiki_to_translated_PDF_and_epub_via_Docbook.html">From English wiki to translated PDF and epub via Docbook</a>
12539 </div>
12540 <div class="date">
12541 17th June 2014
12542 </div>
12543 <div class="body">
12544 <p>The <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux
12545 project</a> provide an instruction manual for teachers, system
12546 administrators and other users that contain useful tips for setting up
12547 and maintaining a Debian Edu installation. This text is about how the
12548 text processing of this manual is handled in the project.</p>
12549
12550 <p>One goal of the project is to provide information in the native
12551 language of its users, and for this we need to handle translations.
12552 But we also want to make sure each language contain the same
12553 information, so for this we need a good way to keep the translations
12554 in sync. And we want it to be easy for our users to improve the
12555 documentation, avoiding the need to learn special formats or tools to
12556 contribute, and the obvious way to do this is to make it possible to
12557 edit the documentation using a web browser. We also want it to be
12558 easy for translators to keep the translation up to date, and give them
12559 help in figuring out what need to be translated. Here is the list of
12560 tools and the process we have found trying to reach all these
12561 goals.</p>
12562
12563 <p>We maintain the authoritative source of our manual in the
12564 <a href="https://wiki.debian.org/DebianEdu/Documentation/Wheezy/">Debian
12565 wiki</a>, as several wiki pages written in English. It consist of one
12566 front page with references to the different chapters, several pages
12567 for each chapter, and finally one "collection page" gluing all the
12568 chapters together into one large web page (aka
12569 <a href="https://wiki.debian.org/DebianEdu/Documentation/Wheezy/AllInOne">the
12570 AllInOne page</a>). The AllInOne page is the one used for further
12571 processing and translations. Thanks to the fact that the
12572 <a href="http://moinmo.in/">MoinMoin</a> installation on
12573 wiki.debian.org support exporting pages in
12574 <a href="http://www.docbook.org/">the Docbook format</a>, we can fetch
12575 the list of pages to export using the raw version of the AllInOne
12576 page, loop over each of them to generate a Docbook XML version of the
12577 manual. This process also download images and transform image
12578 references to use the locally downloaded images. The generated
12579 Docbook XML files are slightly broken, so some post-processing is done
12580 using the <tt>documentation/scripts/get_manual</tt> program, and the
12581 result is a nice Docbook XML file (debian-edu-wheezy-manual.xml) and
12582 a handfull of images. The XML file can now be used to generate PDF, HTML
12583 and epub versions of the English manual. This is the basic step of
12584 our process, making PDF (using dblatex), HTML (using xsltproc) and
12585 epub (using dbtoepub) version from Docbook XML, and the resulting files
12586 are placed in the debian-edu-doc-en binary package.</p>
12587
12588 <p>But English documentation is not enough for us. We want translated
12589 documentation too, and we want to make it easy for translators to
12590 track the English original. For this we use the
12591 <a href="http://packages.qa.debian.org/p/poxml.html">poxml</a> package,
12592 which allow us to transform the English Docbook XML file into a
12593 translation file (a .pot file), usable with the normal gettext based
12594 translation tools used by those translating free software. The pot
12595 file is used to create and maintain translation files (several .po
12596 files), which the translations update with the native language
12597 translations of all titles, paragraphs and blocks of text in the
12598 original. The next step is combining the original English Docbook XML
12599 and the translation file (say debian-edu-wheezy-manual.nb.po), to
12600 create a translated Docbook XML file (in this case
12601 debian-edu-wheezy-manual.nb.xml). This translated (or partly
12602 translated, if the translation is not complete) Docbook XML file can
12603 then be used like the original to create a PDF, HTML and epub version
12604 of the documentation.</p>
12605
12606 <p>The translators use different tools to edit the .po files. We
12607 recommend using
12608 <a href="http://www.kde.org/applications/development/lokalize/">lokalize</a>,
12609 while some use emacs and vi, others can use web based editors like
12610 <a href="http://pootle.translatehouse.org/">Poodle</a> or
12611 <a href="https://www.transifex.com/">Transifex</a>. All we care about
12612 is where the .po file end up, in our git repository. Updated
12613 translations can either be committed directly to git, or submitted as
12614 <a href="https://bugs.debian.org/src:debian-edu-doc">bug reports
12615 against the debian-edu-doc package</a>.</p>
12616
12617 <p>One challenge is images, which both might need to be translated (if
12618 they show translated user applications), and are needed in different
12619 formats when creating PDF and HTML versions (epub is a HTML version in
12620 this regard). For this we transform the original PNG images to the
12621 needed density and format during build, and have a way to provide
12622 translated images by storing translated versions in
12623 images/$LANGUAGECODE/. I am a bit unsure about the details here. The
12624 package maintainers know more.</p>
12625
12626 <p>If you wonder what the result look like, we provide
12627 <a href="http://maintainer.skolelinux.org/debian-edu-doc/">the content
12628 of the documentation packages on the web</a>. See for example the
12629 <a href="http://maintainer.skolelinux.org/debian-edu-doc/it/debian-edu-wheezy-manual.pdf">Italian
12630 PDF version</a> or the
12631 <a href="http://maintainer.skolelinux.org/debian-edu-doc/de/debian-edu-wheezy-manual.html">German
12632 HTML version</a>. We do not yet build the epub version by default,
12633 but perhaps it will be done in the future.</p>
12634
12635 <p>To learn more, check out
12636 <a href="http://packages.qa.debian.org/d/debian-edu-doc.html">the
12637 debian-edu-doc package</a>,
12638 <a href="https://wiki.debian.org/DebianEdu/Documentation/Wheezy/">the
12639 manual on the wiki</a> and
12640 <a href="https://wiki.debian.org/DebianEdu/Documentation/Wheezy/Translations">the
12641 translation instructions</a> in the manual.</p>
12642
12643 </div>
12644 <div class="tags">
12645
12646
12647 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
12648
12649
12650 </div>
12651 </div>
12652 <div class="padding"></div>
12653
12654 <div class="entry">
12655 <div class="title">
12656 <a href="http://people.skolelinux.org/pere/blog/Free_software_car_computer_solution_.html">Free software car computer solution?</a>
12657 </div>
12658 <div class="date">
12659 29th May 2014
12660 </div>
12661 <div class="body">
12662 <p>Dear lazyweb. I'm planning to set up a small Raspberry Pi computer
12663 in my car, connected to
12664 <a href="http://www.dx.com/p/400a-4-0-tft-lcd-digital-monitor-for-vehicle-parking-reverse-camera-1440x272-12v-dc-57776">a
12665 small screen</a> next to the rear mirror. I plan to hook it up with a
12666 GPS and a USB wifi card too. The idea is to get my own
12667 "<a href="http://en.wikipedia.org/wiki/Carputer">Carputer</a>". But I
12668 wonder if someone already created a good free software solution for
12669 such car computer.</p>
12670
12671 <p>This is my current wish list for such system:</p>
12672
12673 <ul>
12674
12675 <li>Work on Raspberry Pi.</li>
12676
12677 <li>Show current speed limit based on location, and warn if going too
12678 fast (for example using color codes yellow and red on the screen,
12679 or make a sound). This could be done either using either data from
12680 <a href="http://www.openstreetmap.org/">Openstreetmap</a> or OCR
12681 info gathered from a dashboard camera.</li>
12682
12683 <li>Track automatic toll road passes and their cost, show total spent
12684 and make it possible to calculate toll costs for planned
12685 route.</li>
12686
12687 <li>Collect GPX tracks for use with OpenStreetMap.</li>
12688
12689 <li>Automatically detect and use any wireless connection to connect
12690 to home server. Try IP over DNS
12691 (<a href="http://dev.kryo.se/iodine/">iodine</a>) or ICMP
12692 (<a href="http://code.gerade.org/hans/">Hans</a>) if direct
12693 connection do not work.</li>
12694
12695 <li>Set up mesh network to talk to other cars with the same system,
12696 or some standard car mesh protocol.</li>
12697
12698 <li>Warn when approaching speed cameras and speed camera ranges
12699 (speed calculated between two cameras).</li>
12700
12701 <li>Suport dashboard/front facing camera to discover speed limits and
12702 run OCR to track registration number of passing cars.</li>
12703
12704 </ul>
12705
12706 <p>If you know of any free software car computer system supporting
12707 some or all of these features, please let me know.</p>
12708
12709 </div>
12710 <div class="tags">
12711
12712
12713 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
12714
12715
12716 </div>
12717 </div>
12718 <div class="padding"></div>
12719
12720 <div class="entry">
12721 <div class="title">
12722 <a href="http://people.skolelinux.org/pere/blog/Half_the_Coverity_issues_in_Gnash_fixed_in_the_next_release.html">Half the Coverity issues in Gnash fixed in the next release</a>
12723 </div>
12724 <div class="date">
12725 29th April 2014
12726 </div>
12727 <div class="body">
12728 <p>I've been following <a href="http://www.getgnash.org/">the Gnash
12729 project</a> for quite a while now. It is a free software
12730 implementation of Adobe Flash, both a standalone player and a browser
12731 plugin. Gnash implement support for the AVM1 format (and not the
12732 newer AVM2 format - see
12733 <a href="http://lightspark.github.io/">Lightspark</a> for that one),
12734 allowing several flash based sites to work. Thanks to the friendly
12735 developers at Youtube, it also work with Youtube videos, because the
12736 Javascript code at Youtube detect Gnash and serve a AVM1 player to
12737 those users. :) Would be great if someone found time to implement AVM2
12738 support, but it has not happened yet. If you install both Lightspark
12739 and Gnash, Lightspark will invoke Gnash if it find a AVM1 flash file,
12740 so you can get both handled as free software. Unfortunately,
12741 Lightspark so far only implement a small subset of AVM2, and many
12742 sites do not work yet.</p>
12743
12744 <p>A few months ago, I started looking at
12745 <a href="http://scan.coverity.com/">Coverity</a>, the static source
12746 checker used to find heaps and heaps of bugs in free software (thanks
12747 to the donation of a scanning service to free software projects by the
12748 company developing this non-free code checker), and Gnash was one of
12749 the projects I decided to check out. Coverity is able to find lock
12750 errors, memory errors, dead code and more. A few days ago they even
12751 extended it to also be able to find the heartbleed bug in OpenSSL.
12752 There are heaps of checks being done on the instrumented code, and the
12753 amount of bogus warnings is quite low compared to the other static
12754 code checkers I have tested over the years.</p>
12755
12756 <p>Since a few weeks ago, I've been working with the other Gnash
12757 developers squashing bugs discovered by Coverity. I was quite happy
12758 today when I checked the current status and saw that of the 777 issues
12759 detected so far, 374 are marked as fixed. This make me confident that
12760 the next Gnash release will be more stable and more dependable than
12761 the previous one. Most of the reported issues were and are in the
12762 test suite, but it also found a few in the rest of the code.</p>
12763
12764 <p>If you want to help out, you find us on
12765 <a href="https://lists.gnu.org/mailman/listinfo/gnash-dev">the
12766 gnash-dev mailing list</a> and on
12767 <a href="irc://irc.freenode.net/#gnash">the #gnash channel on
12768 irc.freenode.net IRC server</a>.</p>
12769
12770 </div>
12771 <div class="tags">
12772
12773
12774 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>.
12775
12776
12777 </div>
12778 </div>
12779 <div class="padding"></div>
12780
12781 <div class="entry">
12782 <div class="title">
12783 <a href="http://people.skolelinux.org/pere/blog/Install_hardware_dependent_packages_using_tasksel__Isenkram_0_7_.html">Install hardware dependent packages using tasksel (Isenkram 0.7)</a>
12784 </div>
12785 <div class="date">
12786 23rd April 2014
12787 </div>
12788 <div class="body">
12789 <p>It would be nice if it was easier in Debian to get all the hardware
12790 related packages relevant for the computer installed automatically.
12791 So I implemented one, using
12792 <a href="http://packages.qa.debian.org/isenkram">my Isenkram
12793 package</a>. To use it, install the tasksel and isenkram packages and
12794 run tasksel as user root. You should be presented with a new option,
12795 "Hardware specific packages (autodetected by isenkram)". When you
12796 select it, tasksel will install the packages isenkram claim is fit for
12797 the current hardware, hot pluggable or not.<p>
12798
12799 <p>The implementation is in two files, one is the tasksel menu entry
12800 description, and the other is the script used to extract the list of
12801 packages to install. The first part is in
12802 <tt>/usr/share/tasksel/descs/isenkram.desc</tt> and look like
12803 this:</p>
12804
12805 <p><blockquote><pre>
12806 Task: isenkram
12807 Section: hardware
12808 Description: Hardware specific packages (autodetected by isenkram)
12809 Based on the detected hardware various hardware specific packages are
12810 proposed.
12811 Test-new-install: mark show
12812 Relevance: 8
12813 Packages: for-current-hardware
12814 </pre></blockquote></p>
12815
12816 <p>The second part is in
12817 <tt>/usr/lib/tasksel/packages/for-current-hardware</tt> and look like
12818 this:</p>
12819
12820 <p><blockquote><pre>
12821 #!/bin/sh
12822 #
12823 (
12824 isenkram-lookup
12825 isenkram-autoinstall-firmware -l
12826 ) | sort -u
12827 </pre></blockquote></p>
12828
12829 <p>All in all, a very short and simple implementation making it
12830 trivial to install the hardware dependent package we all may want to
12831 have installed on our machines. I've not been able to find a way to
12832 get tasksel to tell you exactly which packages it plan to install
12833 before doing the installation. So if you are curious or careful,
12834 check the output from the isenkram-* command line tools first.</p>
12835
12836 <p>The information about which packages are handling which hardware is
12837 fetched either from the isenkram package itself in
12838 /usr/share/isenkram/, from git.debian.org or from the APT package
12839 database (using the Modaliases header). The APT package database
12840 parsing have caused a nasty resource leak in the isenkram daemon (bugs
12841 <a href="http://bugs.debian.org/719837">#719837</a> and
12842 <a href="http://bugs.debian.org/730704">#730704</a>). The cause is in
12843 the python-apt code (bug
12844 <a href="http://bugs.debian.org/745487">#745487</a>), but using a
12845 workaround I was able to get rid of the file descriptor leak and
12846 reduce the memory leak from ~30 MiB per hardware detection down to
12847 around 2 MiB per hardware detection. It should make the desktop
12848 daemon a lot more useful. The fix is in version 0.7 uploaded to
12849 unstable today.</p>
12850
12851 <p>I believe the current way of mapping hardware to packages in
12852 Isenkram is is a good draft, but in the future I expect isenkram to
12853 use the AppStream data source for this. A proposal for getting proper
12854 AppStream support into Debian is floating around as
12855 <a href="https://wiki.debian.org/DEP-11">DEP-11</a>, and
12856 <a href="https://wiki.debian.org/SummerOfCode2014/Projects#SummerOfCode2014.2FProjects.2FAppStreamDEP11Implementation.AppStream.2FDEP-11_for_the_Debian_Archive">GSoC
12857 project</a> will take place this summer to improve the situation. I
12858 look forward to seeing the result, and welcome patches for isenkram to
12859 start using the information when it is ready.</p>
12860
12861 <p>If you want your package to map to some specific hardware, either
12862 add a "Xb-Modaliases" header to your control file like I did in
12863 <a href="http://packages.qa.debian.org/pymissile">the pymissile
12864 package</a> or submit a bug report with the details to the isenkram
12865 package. See also
12866 <a href="http://people.skolelinux.org/pere/blog/tags/isenkram/">all my
12867 blog posts tagged isenkram</a> for details on the notation. I expect
12868 the information will be migrated to AppStream eventually, but for the
12869 moment I got no better place to store it.</p>
12870
12871 </div>
12872 <div class="tags">
12873
12874
12875 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram</a>.
12876
12877
12878 </div>
12879 </div>
12880 <div class="padding"></div>
12881
12882 <div class="entry">
12883 <div class="title">
12884 <a href="http://people.skolelinux.org/pere/blog/FreedomBox_milestone___all_packages_now_in_Debian_Sid.html">FreedomBox milestone - all packages now in Debian Sid</a>
12885 </div>
12886 <div class="date">
12887 15th April 2014
12888 </div>
12889 <div class="body">
12890 <p>The <a href="https://wiki.debian.org/FreedomBox">Freedombox
12891 project</a> is working on providing the software and hardware to make
12892 it easy for non-technical people to host their data and communication
12893 at home, and being able to communicate with their friends and family
12894 encrypted and away from prying eyes. It is still going strong, and
12895 today a major mile stone was reached.</p>
12896
12897 <p>Today, the last of the packages currently used by the project to
12898 created the system images were accepted into Debian Unstable. It was
12899 the freedombox-setup package, which is used to configure the images
12900 during build and on the first boot. Now all one need to get going is
12901 the build code from the freedom-maker git repository and packages from
12902 Debian. And once the freedombox-setup package enter testing, we can
12903 build everything directly from Debian. :)</p>
12904
12905 <p>Some key packages used by Freedombox are
12906 <a href="http://packages.qa.debian.org/freedombox-setup">freedombox-setup</a>,
12907 <a href="http://packages.qa.debian.org/plinth">plinth</a>,
12908 <a href="http://packages.qa.debian.org/pagekite">pagekite</a>,
12909 <a href="http://packages.qa.debian.org/tor">tor</a>,
12910 <a href="http://packages.qa.debian.org/privoxy">privoxy</a>,
12911 <a href="http://packages.qa.debian.org/owncloud">owncloud</a> and
12912 <a href="http://packages.qa.debian.org/dnsmasq">dnsmasq</a>. There
12913 are plans to integrate more packages into the setup. User
12914 documentation is maintained on the Debian wiki. Please
12915 <a href="https://wiki.debian.org/FreedomBox/Manual/Jessie">check out
12916 the manual</a> and help us improve it.</p>
12917
12918 <p>To test for yourself and create boot images with the FreedomBox
12919 setup, run this on a Debian machine using a user with sudo rights to
12920 become root:</p>
12921
12922 <p><pre>
12923 sudo apt-get install git vmdebootstrap mercurial python-docutils \
12924 mktorrent extlinux virtualbox qemu-user-static binfmt-support \
12925 u-boot-tools
12926 git clone http://anonscm.debian.org/git/freedombox/freedom-maker.git \
12927 freedom-maker
12928 make -C freedom-maker dreamplug-image raspberry-image virtualbox-image
12929 </pre></p>
12930
12931 <p>Root access is needed to run debootstrap and mount loopback
12932 devices. See the README in the freedom-maker git repo for more
12933 details on the build. If you do not want all three images, trim the
12934 make line. Note that the virtualbox-image target is not really
12935 virtualbox specific. It create a x86 image usable in kvm, qemu,
12936 vmware and any other x86 virtual machine environment. You might need
12937 the version of vmdebootstrap in Jessie to get the build working, as it
12938 include fixes for a race condition with kpartx.</p>
12939
12940 <p>If you instead want to install using a Debian CD and the preseed
12941 method, boot a Debian Wheezy ISO and use this boot argument to load
12942 the preseed values:</p>
12943
12944 <p><pre>
12945 url=<a href="http://www.reinholdtsen.name/freedombox/preseed-jessie.dat">http://www.reinholdtsen.name/freedombox/preseed-jessie.dat</a>
12946 </pre></p>
12947
12948 <p>I have not tested it myself the last few weeks, so I do not know if
12949 it still work.</p>
12950
12951 <p>If you wonder how to help, one task you could look at is using
12952 systemd as the boot system. It will become the default for Linux in
12953 Jessie, so we need to make sure it is usable on the Freedombox. I did
12954 a simple test a few weeks ago, and noticed dnsmasq failed to start
12955 during boot when using systemd. I suspect there are other problems
12956 too. :) To detect problems, there is a test suite included, which can
12957 be run from the plinth web interface.</p>
12958
12959 <p>Give it a go and let us know how it goes on the mailing list, and help
12960 us get the new release published. :) Please join us on
12961 <a href="irc://irc.debian.org:6667/%23freedombox">IRC (#freedombox on
12962 irc.debian.org)</a> and
12963 <a href="http://lists.alioth.debian.org/mailman/listinfo/freedombox-discuss">the
12964 mailing list</a> if you want to help make this vision come true.</p>
12965
12966 </div>
12967 <div class="tags">
12968
12969
12970 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</a>.
12971
12972
12973 </div>
12974 </div>
12975 <div class="padding"></div>
12976
12977 <div class="entry">
12978 <div class="title">
12979 <a href="http://people.skolelinux.org/pere/blog/S3QL__a_locally_mounted_cloud_file_system___nice_free_software.html">S3QL, a locally mounted cloud file system - nice free software</a>
12980 </div>
12981 <div class="date">
12982 9th April 2014
12983 </div>
12984 <div class="body">
12985 <p>For a while now, I have been looking for a sensible offsite backup
12986 solution for use at home. My requirements are simple, it must be
12987 cheap and locally encrypted (in other words, I keep the encryption
12988 keys, the storage provider do not have access to my private files).
12989 One idea me and my friends had many years ago, before the cloud
12990 storage providers showed up, was to use Google mail as storage,
12991 writing a Linux block device storing blocks as emails in the mail
12992 service provided by Google, and thus get heaps of free space. On top
12993 of this one can add encryption, RAID and volume management to have
12994 lots of (fairly slow, I admit that) cheap and encrypted storage. But
12995 I never found time to implement such system. But the last few weeks I
12996 have looked at a system called
12997 <a href="https://bitbucket.org/nikratio/s3ql/">S3QL</a>, a locally
12998 mounted network backed file system with the features I need.</p>
12999
13000 <p>S3QL is a fuse file system with a local cache and cloud storage,
13001 handling several different storage providers, any with Amazon S3,
13002 Google Drive or OpenStack API. There are heaps of such storage
13003 providers. S3QL can also use a local directory as storage, which
13004 combined with sshfs allow for file storage on any ssh server. S3QL
13005 include support for encryption, compression, de-duplication, snapshots
13006 and immutable file systems, allowing me to mount the remote storage as
13007 a local mount point, look at and use the files as if they were local,
13008 while the content is stored in the cloud as well. This allow me to
13009 have a backup that should survive fire. The file system can not be
13010 shared between several machines at the same time, as only one can
13011 mount it at the time, but any machine with the encryption key and
13012 access to the storage service can mount it if it is unmounted.</p>
13013
13014 <p>It is simple to use. I'm using it on Debian Wheezy, where the
13015 package is included already. So to get started, run <tt>apt-get
13016 install s3ql</tt>. Next, pick a storage provider. I ended up picking
13017 Greenqloud, after reading their nice recipe on
13018 <a href="https://greenqloud.zendesk.com/entries/44611757-How-To-Use-S3QL-to-mount-a-StorageQloud-bucket-on-Debian-Wheezy">how
13019 to use S3QL with their Amazon S3 service</a>, because I trust the laws
13020 in Iceland more than those in USA when it come to keeping my personal
13021 data safe and private, and thus would rather spend money on a company
13022 in Iceland. Another nice recipe is available from the article
13023 <a href="http://www.admin-magazine.com/HPC/Articles/HPC-Cloud-Storage">S3QL
13024 Filesystem for HPC Storage</a> by Jeff Layton in the HPC section of
13025 Admin magazine. When the provider is picked, figure out how to get
13026 the API key needed to connect to the storage API. With Greencloud,
13027 the key did not show up until I had added payment details to my
13028 account.</p>
13029
13030 <p>Armed with the API access details, it is time to create the file
13031 system. First, create a new bucket in the cloud. This bucket is the
13032 file system storage area. I picked a bucket name reflecting the
13033 machine that was going to store data there, but any name will do.
13034 I'll refer to it as <tt>bucket-name</tt> below. In addition, one need
13035 the API login and password, and a locally created password. Store it
13036 all in ~root/.s3ql/authinfo2 like this:
13037
13038 <p><blockquote><pre>
13039 [s3c]
13040 storage-url: s3c://s.greenqloud.com:443/bucket-name
13041 backend-login: API-login
13042 backend-password: API-password
13043 fs-passphrase: local-password
13044 </pre></blockquote></p>
13045
13046 <p>I create my local passphrase using <tt>pwget 50</tt> or similar,
13047 but any sensible way to create a fairly random password should do it.
13048 Armed with these details, it is now time to run mkfs, entering the API
13049 details and password to create it:</p>
13050
13051 <p><blockquote><pre>
13052 # mkdir -m 700 /var/lib/s3ql-cache
13053 # mkfs.s3ql --cachedir /var/lib/s3ql-cache --authfile /root/.s3ql/authinfo2 \
13054 --ssl s3c://s.greenqloud.com:443/bucket-name
13055 Enter backend login:
13056 Enter backend password:
13057 Before using S3QL, make sure to read the user's guide, especially
13058 the 'Important Rules to Avoid Loosing Data' section.
13059 Enter encryption password:
13060 Confirm encryption password:
13061 Generating random encryption key...
13062 Creating metadata tables...
13063 Dumping metadata...
13064 ..objects..
13065 ..blocks..
13066 ..inodes..
13067 ..inode_blocks..
13068 ..symlink_targets..
13069 ..names..
13070 ..contents..
13071 ..ext_attributes..
13072 Compressing and uploading metadata...
13073 Wrote 0.00 MB of compressed metadata.
13074 # </pre></blockquote></p>
13075
13076 <p>The next step is mounting the file system to make the storage available.
13077
13078 <p><blockquote><pre>
13079 # mount.s3ql --cachedir /var/lib/s3ql-cache --authfile /root/.s3ql/authinfo2 \
13080 --ssl --allow-root s3c://s.greenqloud.com:443/bucket-name /s3ql
13081 Using 4 upload threads.
13082 Downloading and decompressing metadata...
13083 Reading metadata...
13084 ..objects..
13085 ..blocks..
13086 ..inodes..
13087 ..inode_blocks..
13088 ..symlink_targets..
13089 ..names..
13090 ..contents..
13091 ..ext_attributes..
13092 Mounting filesystem...
13093 # df -h /s3ql
13094 Filesystem Size Used Avail Use% Mounted on
13095 s3c://s.greenqloud.com:443/bucket-name 1.0T 0 1.0T 0% /s3ql
13096 #
13097 </pre></blockquote></p>
13098
13099 <p>The file system is now ready for use. I use rsync to store my
13100 backups in it, and as the metadata used by rsync is downloaded at
13101 mount time, no network traffic (and storage cost) is triggered by
13102 running rsync. To unmount, one should not use the normal umount
13103 command, as this will not flush the cache to the cloud storage, but
13104 instead running the umount.s3ql command like this:
13105
13106 <p><blockquote><pre>
13107 # umount.s3ql /s3ql
13108 #
13109 </pre></blockquote></p>
13110
13111 <p>There is a fsck command available to check the file system and
13112 correct any problems detected. This can be used if the local server
13113 crashes while the file system is mounted, to reset the "already
13114 mounted" flag. This is what it look like when processing a working
13115 file system:</p>
13116
13117 <p><blockquote><pre>
13118 # fsck.s3ql --force --ssl s3c://s.greenqloud.com:443/bucket-name
13119 Using cached metadata.
13120 File system seems clean, checking anyway.
13121 Checking DB integrity...
13122 Creating temporary extra indices...
13123 Checking lost+found...
13124 Checking cached objects...
13125 Checking names (refcounts)...
13126 Checking contents (names)...
13127 Checking contents (inodes)...
13128 Checking contents (parent inodes)...
13129 Checking objects (reference counts)...
13130 Checking objects (backend)...
13131 ..processed 5000 objects so far..
13132 ..processed 10000 objects so far..
13133 ..processed 15000 objects so far..
13134 Checking objects (sizes)...
13135 Checking blocks (referenced objects)...
13136 Checking blocks (refcounts)...
13137 Checking inode-block mapping (blocks)...
13138 Checking inode-block mapping (inodes)...
13139 Checking inodes (refcounts)...
13140 Checking inodes (sizes)...
13141 Checking extended attributes (names)...
13142 Checking extended attributes (inodes)...
13143 Checking symlinks (inodes)...
13144 Checking directory reachability...
13145 Checking unix conventions...
13146 Checking referential integrity...
13147 Dropping temporary indices...
13148 Backing up old metadata...
13149 Dumping metadata...
13150 ..objects..
13151 ..blocks..
13152 ..inodes..
13153 ..inode_blocks..
13154 ..symlink_targets..
13155 ..names..
13156 ..contents..
13157 ..ext_attributes..
13158 Compressing and uploading metadata...
13159 Wrote 0.89 MB of compressed metadata.
13160 #
13161 </pre></blockquote></p>
13162
13163 <p>Thanks to the cache, working on files that fit in the cache is very
13164 quick, about the same speed as local file access. Uploading large
13165 amount of data is to me limited by the bandwidth out of and into my
13166 house. Uploading 685 MiB with a 100 MiB cache gave me 305 kiB/s,
13167 which is very close to my upload speed, and downloading the same
13168 Debian installation ISO gave me 610 kiB/s, close to my download speed.
13169 Both were measured using <tt>dd</tt>. So for me, the bottleneck is my
13170 network, not the file system code. I do not know what a good cache
13171 size would be, but suspect that the cache should e larger than your
13172 working set.</p>
13173
13174 <p>I mentioned that only one machine can mount the file system at the
13175 time. If another machine try, it is told that the file system is
13176 busy:</p>
13177
13178 <p><blockquote><pre>
13179 # mount.s3ql --cachedir /var/lib/s3ql-cache --authfile /root/.s3ql/authinfo2 \
13180 --ssl --allow-root s3c://s.greenqloud.com:443/bucket-name /s3ql
13181 Using 8 upload threads.
13182 Backend reports that fs is still mounted elsewhere, aborting.
13183 #
13184 </pre></blockquote></p>
13185
13186 <p>The file content is uploaded when the cache is full, while the
13187 metadata is uploaded once every 24 hour by default. To ensure the
13188 file system content is flushed to the cloud, one can either umount the
13189 file system, or ask S3QL to flush the cache and metadata using
13190 s3qlctrl:
13191
13192 <p><blockquote><pre>
13193 # s3qlctrl upload-meta /s3ql
13194 # s3qlctrl flushcache /s3ql
13195 #
13196 </pre></blockquote></p>
13197
13198 <p>If you are curious about how much space your data uses in the
13199 cloud, and how much compression and deduplication cut down on the
13200 storage usage, you can use s3qlstat on the mounted file system to get
13201 a report:</p>
13202
13203 <p><blockquote><pre>
13204 # s3qlstat /s3ql
13205 Directory entries: 9141
13206 Inodes: 9143
13207 Data blocks: 8851
13208 Total data size: 22049.38 MB
13209 After de-duplication: 21955.46 MB (99.57% of total)
13210 After compression: 21877.28 MB (99.22% of total, 99.64% of de-duplicated)
13211 Database size: 2.39 MB (uncompressed)
13212 (some values do not take into account not-yet-uploaded dirty blocks in cache)
13213 #
13214 </pre></blockquote></p>
13215
13216 <p>I mentioned earlier that there are several possible suppliers of
13217 storage. I did not try to locate them all, but am aware of at least
13218 <a href="https://www.greenqloud.com/">Greenqloud</a>,
13219 <a href="http://drive.google.com/">Google Drive</a>,
13220 <a href="http://aws.amazon.com/s3/">Amazon S3 web serivces</a>,
13221 <a href="http://www.rackspace.com/">Rackspace</a> and
13222 <a href="http://crowncloud.net/">Crowncloud</A>. The latter even
13223 accept payment in Bitcoin. Pick one that suit your need. Some of
13224 them provide several GiB of free storage, but the prize models are
13225 quite different and you will have to figure out what suits you
13226 best.</p>
13227
13228 <p>While researching this blog post, I had a look at research papers
13229 and posters discussing the S3QL file system. There are several, which
13230 told me that the file system is getting a critical check by the
13231 science community and increased my confidence in using it. One nice
13232 poster is titled
13233 "<a href="http://www.lanl.gov/orgs/adtsc/publications/science_highlights_2013/docs/pg68_69.pdf">An
13234 Innovative Parallel Cloud Storage System using OpenStack’s SwiftObject
13235 Store and Transformative Parallel I/O Approach</a>" by Hsing-Bung
13236 Chen, Benjamin McClelland, David Sherrill, Alfred Torrez, Parks Fields
13237 and Pamela Smith. Please have a look.</p>
13238
13239 <p>Given my problems with different file systems earlier, I decided to
13240 check out the mounted S3QL file system to see if it would be usable as
13241 a home directory (in other word, that it provided POSIX semantics when
13242 it come to locking and umask handling etc). Running
13243 <a href="http://people.skolelinux.org/pere/blog/Testing_if_a_file_system_can_be_used_for_home_directories___.html">my
13244 test code to check file system semantics</a>, I was happy to discover that
13245 no error was found. So the file system can be used for home
13246 directories, if one chooses to do so.</p>
13247
13248 <p>If you do not want a locally file system, and want something that
13249 work without the Linux fuse file system, I would like to mention the
13250 <a href="http://www.tarsnap.com/">Tarsnap service</a>, which also
13251 provide locally encrypted backup using a command line client. It have
13252 a nicer access control system, where one can split out read and write
13253 access, allowing some systems to write to the backup and others to
13254 only read from it.</p>
13255
13256 <p>As usual, if you use Bitcoin and want to show your support of my
13257 activities, please send Bitcoin donations to my address
13258 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
13259
13260 </div>
13261 <div class="tags">
13262
13263
13264 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>.
13265
13266
13267 </div>
13268 </div>
13269 <div class="padding"></div>
13270
13271 <div class="entry">
13272 <div class="title">
13273 <a href="http://people.skolelinux.org/pere/blog/ReactOS_Windows_clone___nice_free_software.html">ReactOS Windows clone - nice free software</a>
13274 </div>
13275 <div class="date">
13276 1st April 2014
13277 </div>
13278 <div class="body">
13279 <p>Microsoft have announced that Windows XP reaches its end of life
13280 2014-04-08, in 7 days. But there are heaps of machines still running
13281 Windows XP, and depending on Windows XP to run their applications, and
13282 upgrading will be expensive, both when it comes to money and when it
13283 comes to the amount of effort needed to migrate from Windows XP to a
13284 new operating system. Some obvious options (buy new a Windows
13285 machine, buy a MacOSX machine, install Linux on the existing machine)
13286 are already well known and covered elsewhere. Most of them involve
13287 leaving the user applications installed on Windows XP behind and
13288 trying out replacements or updated versions. In this blog post I want
13289 to mention one strange bird that allow people to keep the hardware and
13290 the existing Windows XP applications and run them on a free software
13291 operating system that is Windows XP compatible.</p>
13292
13293 <p><a href="http://www.reactos.org/">ReactOS</a> is a free software
13294 operating system (GNU GPL licensed) working on providing a operating
13295 system that is binary compatible with Windows, able to run windows
13296 programs directly and to use Windows drivers for hardware directly.
13297 The project goal is for Windows user to keep their existing machines,
13298 drivers and software, and gain the advantages from user a operating
13299 system without usage limitations caused by non-free licensing. It is
13300 a Windows clone running directly on the hardware, so quite different
13301 from the approach taken by <a href="http://www.winehq.org/">the Wine
13302 project</a>, which make it possible to run Windows binaries on
13303 Linux.</p>
13304
13305 <p>The ReactOS project share code with the Wine project, so most
13306 shared libraries available on Windows are already implemented already.
13307 There is also a software manager like the one we are used to on Linux,
13308 allowing the user to install free software applications with a simple
13309 click directly from the Internet. Check out the
13310 <a href="http://www.reactos.org/screenshots">screen shots on the
13311 project web site</a> for an idea what it look like (it looks just like
13312 Windows before metro).</p>
13313
13314 <p>I do not use ReactOS myself, preferring Linux and Unix like
13315 operating systems. I've tested it, and it work fine in a virt-manager
13316 virtual machine. The browser, minesweeper, notepad etc is working
13317 fine as far as I can tell. Unfortunately, my main test application
13318 is the software included on a CD with the Lego Mindstorms NXT, which
13319 seem to install just fine from CD but fail to leave any binaries on
13320 the disk after the installation. So no luck with that test software.
13321 No idea why, but hope someone else figure out and fix the problem.
13322 I've tried the ReactOS Live ISO on a physical machine, and it seemed
13323 to work just fine. If you like Windows and want to keep running your
13324 old Windows binaries, check it out by
13325 <a href="http://www.reactos.org/download">downloading</a> the
13326 installation CD, the live CD or the preinstalled virtual machine
13327 image.</p>
13328
13329 </div>
13330 <div class="tags">
13331
13332
13333 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software</a>, <a href="http://people.skolelinux.org/pere/blog/tags/reactos">reactos</a>.
13334
13335
13336 </div>
13337 </div>
13338 <div class="padding"></div>
13339
13340 <div class="entry">
13341 <div class="title">
13342 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Roger_Marsal.html">Debian Edu interview: Roger Marsal</a>
13343 </div>
13344 <div class="date">
13345 30th March 2014
13346 </div>
13347 <div class="body">
13348 <p><a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a>
13349 keep gaining new users. Some weeks ago, a person showed up on IRC,
13350 <a href="irc://irc.debian.org/#debian-edu">#debian-edu</a>, with a
13351 wish to contribute, and I managed to get a interview with this great
13352 contributor Roger Marsal to learn more about his background.</p>
13353
13354 <p><strong>Who are you, and how do you spend your days?</strong></p>
13355
13356 <p>My name is Roger Marsal, I'm 27 years old (1986 generation) and I
13357 live in Barcelona, Spain. I've got a strong business background and I
13358 work as a patrimony manager and as a real estate agent. Additionally,
13359 I've co-founded a British based tech company that is nowadays on the
13360 last development phase of a new social networking concept.</p>
13361
13362 <p>I'm a Linux enthusiast that started its journey with Ubuntu four years
13363 ago and have recently switched to Debian seeking rock solid stability
13364 and as a necessary step to gain expertise.</p>
13365
13366 <p>In a nutshell, I spend my days working and learning as much as I
13367 can to face both my job, entrepreneur project and feed my Linux
13368 hunger.</p>
13369
13370 <p><strong>How did you get in contact with the Skolelinux / Debian Edu
13371 project?</strong></p>
13372
13373 <p>I discovered the <a href="http://www.ltsp.org/">LTSP</a> advantages
13374 with "Ubuntu 12.04 alternate install" and after a year of use I
13375 started looking for an alternative. Even though I highly value and
13376 respect the Ubuntu project, I thought it was necessary for me to
13377 change to a more robust and stable alternative. As far as I was using
13378 Debian on my personal laptop I thought it would be fine to install
13379 Debian and configure an LTSP server myself. Surprised, I discovered
13380 that the Debian project also supported a kind of Edubuntu equivalent,
13381 and after having some pain I obtained a Debian Edu network up and
13382 running. I just loved it.</p>
13383
13384 <p><strong>What do you see as the advantages of Skolelinux / Debian
13385 Edu?</strong></p>
13386
13387 <p>I found a main advantage in that, once you know "the tips and
13388 tricks", a new installation just works out of the box. It's the most
13389 complete alternative I've found to create an LTSP network. All the
13390 other distributions seems to be made of plastic, Debian Edu seems to
13391 be made of steel.</p>
13392
13393 <p><strong>What do you see as the disadvantages of Skolelinux / Debian
13394 Edu?</strong></p>
13395
13396 <p>I found two main disadvantages.</p>
13397
13398 <p>I'm not an expert but I've got notions and I had to spent a considerable
13399 amount of time trying to bring up a standard network topology. I'm quite
13400 stubborn and I just worked until I did but I'm sure many people with few
13401 resources (not big schools, but academies for example) would have switched
13402 or dropped.</p>
13403
13404 <p>It's amazing how such a complex system like Debian Edu has achieved
13405 this out-of-the-box state. Even though tweaking without breaking gets
13406 more difficult, as more factors have to be considered. This can
13407 discourage many people too.</p>
13408
13409 <p><strong>Which free software do you use daily?</strong></p>
13410
13411 <p>I use Debian, Firefox, Okular, Inkscape, LibreOffice and
13412 Virtualbox.</p>
13413
13414
13415 <p><strong>Which strategy do you believe is the right one to use to
13416 get schools to use free software?</strong></p>
13417
13418 <p>I don't think there is a need for a particular strategy. The free
13419 attribute in both "freedom" and "no price" meanings is what will
13420 really bring free software to schools. In my experience I can think of
13421 the <a href="http://www.r-project.org/">"R" statistical language</a>; a
13422 few years a ago was an extremely nerd tool for university people.
13423 Today it's being increasingly used to teach statistics at many
13424 different level of studies. I believe free and open software will
13425 increasingly gain popularity, but I'm sure schools will be one of the
13426 first scenarios where this will happen.</p>
13427
13428 </div>
13429 <div class="tags">
13430
13431
13432 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>.
13433
13434
13435 </div>
13436 </div>
13437 <div class="padding"></div>
13438
13439 <div class="entry">
13440 <div class="title">
13441 <a href="http://people.skolelinux.org/pere/blog/Public_Trusted_Timestamping_services_for_everyone.html">Public Trusted Timestamping services for everyone</a>
13442 </div>
13443 <div class="date">
13444 25th March 2014
13445 </div>
13446 <div class="body">
13447 <p>Did you ever need to store logs or other files in a way that would
13448 allow it to be used as evidence in court, and needed a way to
13449 demonstrate without reasonable doubt that the file had not been
13450 changed since it was created? Or, did you ever need to document that
13451 a given document was received at some point in time, like some
13452 archived document or the answer to an exam, and not changed after it
13453 was received? The problem in these settings is to remove the need to
13454 trust yourself and your computers, while still being able to prove
13455 that a file is the same as it was at some given time in the past.</p>
13456
13457 <p>A solution to these problems is to have a trusted third party
13458 "stamp" the document and verify that at some given time the document
13459 looked a given way. Such
13460 <a href="https://en.wikipedia.org/wiki/Notarius">notarius</a> service
13461 have been around for thousands of years, and its digital equivalent is
13462 called a
13463 <a href="http://en.wikipedia.org/wiki/Trusted_timestamping">trusted
13464 timestamping service</a>. <a href="http://www.ietf.org/">The Internet
13465 Engineering Task Force</a> standardised how such service could work a
13466 few years ago as <a href="http://tools.ietf.org/html/rfc3161">RFC
13467 3161</a>. The mechanism is simple. Create a hash of the file in
13468 question, send it to a trusted third party which add a time stamp to
13469 the hash and sign the result with its private key, and send back the
13470 signed hash + timestamp. Both email, FTP and HTTP can be used to
13471 request such signature, depending on what is provided by the service
13472 used. Anyone with the document and the signature can then verify that
13473 the document matches the signature by creating their own hash and
13474 checking the signature using the trusted third party public key.
13475 There are several commercial services around providing such
13476 timestamping. A quick search for
13477 "<a href="https://duckduckgo.com/?q=rfc+3161+service">rfc 3161
13478 service</a>" pointed me to at least
13479 <a href="https://www.digistamp.com/technical/how-a-digital-time-stamp-works/">DigiStamp</a>,
13480 <a href="http://www.quovadisglobal.co.uk/CertificateServices/SigningServices/TimeStamp.aspx">Quo
13481 Vadis</a>,
13482 <a href="https://www.globalsign.com/timestamp-service/">Global Sign</a>
13483 and <a href="http://www.globaltrustfinder.com/TSADefault.aspx">Global
13484 Trust Finder</a>. The system work as long as the private key of the
13485 trusted third party is not compromised.</p>
13486
13487 <p>But as far as I can tell, there are very few public trusted
13488 timestamp services available for everyone. I've been looking for one
13489 for a while now. But yesterday I found one over at
13490 <a href="https://www.pki.dfn.de/zeitstempeldienst/">Deutches
13491 Forschungsnetz</a> mentioned in
13492 <a href="http://www.d-mueller.de/blog/dealing-with-trusted-timestamps-in-php-rfc-3161/">a
13493 blog by David Müller</a>. I then found
13494 <a href="http://www.rz.uni-greifswald.de/support/dfn-pki-zertifikate/zeitstempeldienst.html">a
13495 good recipe on how to use the service</a> over at the University of
13496 Greifswald.</p>
13497
13498 <p><a href="http://www.openssl.org/">The OpenSSL library</a> contain
13499 both server and tools to use and set up your own signing service. See
13500 the ts(1SSL), tsget(1SSL) manual pages for more details. The
13501 following shell script demonstrate how to extract a signed timestamp
13502 for any file on the disk in a Debian environment:</p>
13503
13504 <p><blockquote><pre>
13505 #!/bin/sh
13506 set -e
13507 url="http://zeitstempel.dfn.de"
13508 caurl="https://pki.pca.dfn.de/global-services-ca/pub/cacert/chain.txt"
13509 reqfile=$(mktemp -t tmp.XXXXXXXXXX.tsq)
13510 resfile=$(mktemp -t tmp.XXXXXXXXXX.tsr)
13511 cafile=chain.txt
13512 if [ ! -f $cafile ] ; then
13513 wget -O $cafile "$caurl"
13514 fi
13515 openssl ts -query -data "$1" -cert | tee "$reqfile" \
13516 | /usr/lib/ssl/misc/tsget -h "$url" -o "$resfile"
13517 openssl ts -reply -in "$resfile" -text 1>&2
13518 openssl ts -verify -data "$1" -in "$resfile" -CAfile "$cafile" 1>&2
13519 base64 < "$resfile"
13520 rm "$reqfile" "$resfile"
13521 </pre></blockquote></p>
13522
13523 <p>The argument to the script is the file to timestamp, and the output
13524 is a base64 encoded version of the signature to STDOUT and details
13525 about the signature to STDERR. Note that due to
13526 <a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=742553">a bug
13527 in the tsget script</a>, you might need to modify the included script
13528 and remove the last line. Or just write your own HTTP uploader using
13529 curl. :) Now you too can prove and verify that files have not been
13530 changed.</p>
13531
13532 <p>But the Internet need more public trusted timestamp services.
13533 Perhaps something for <a href="http://www.uninett.no/">Uninett</a> or
13534 my work place the <a href="http://www.uio.no/">University of Oslo</a>
13535 to set up?</p>
13536
13537 </div>
13538 <div class="tags">
13539
13540
13541 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>.
13542
13543
13544 </div>
13545 </div>
13546 <div class="padding"></div>
13547
13548 <div class="entry">
13549 <div class="title">
13550 <a href="http://people.skolelinux.org/pere/blog/Video_DVD_reader_library___python_dvdvideo___nice_free_software.html">Video DVD reader library / python-dvdvideo - nice free software</a>
13551 </div>
13552 <div class="date">
13553 21st March 2014
13554 </div>
13555 <div class="body">
13556 <p>Keeping your DVD collection safe from scratches and curious
13557 children fingers while still having it available when you want to see a
13558 movie is not straight forward. My preferred method at the moment is
13559 to store a full copy of the ISO on a hard drive, and use VLC, Popcorn
13560 Hour or other useful players to view the resulting file. This way the
13561 subtitles and bonus material are still available and using the ISO is
13562 just like inserting the original DVD record in the DVD player.</p>
13563
13564 <p>Earlier I used dd for taking security copies, but it do not handle
13565 DVDs giving read errors (which are quite a few of them). I've also
13566 tried using
13567 <a href="http://people.skolelinux.org/pere/blog/Ripping_problematic_DVDs_using_dvdbackup_and_genisoimage.html">dvdbackup
13568 and genisoimage</a>, but these days I use the marvellous python library
13569 and program
13570 <a href="http://bblank.thinkmo.de/blog/new-software-python-dvdvideo">python-dvdvideo</a>
13571 written by Bastian Blank. It is
13572 <a href="http://packages.qa.debian.org/p/python-dvdvideo.html">in Debian
13573 already</a> and the binary package name is python3-dvdvideo. Instead
13574 of trying to read every block from the DVD, it parses the file
13575 structure and figure out which block on the DVD is actually in used,
13576 and only read those blocks from the DVD. This work surprisingly well,
13577 and I have been able to almost backup my entire DVD collection using
13578 this method.</p>
13579
13580 <p>So far, python-dvdvideo have failed on between 10 and
13581 20 DVDs, which is a small fraction of my collection. The most common
13582 problem is
13583 <a href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=720831">DVDs
13584 using UTF-16 instead of UTF-8 characters</a>, which according to
13585 Bastian is against the DVD specification (and seem to cause some
13586 players to fail too). A rarer problem is what seem to be inconsistent
13587 DVD structures, as the python library
13588 <a href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=723079">claim
13589 there is a overlap between objects</a>. An equally rare problem claim
13590 <a href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=741878">some
13591 value is out of range</a>. No idea what is going on there. I wish I
13592 knew enough about the DVD format to fix these, to ensure my movie
13593 collection will stay with me in the future.</p>
13594
13595 <p>So, if you need to keep your DVDs safe, back them up using
13596 python-dvdvideo. :)</p>
13597
13598 </div>
13599 <div class="tags">
13600
13601
13602 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
13603
13604
13605 </div>
13606 </div>
13607 <div class="padding"></div>
13608
13609 <div class="entry">
13610 <div class="title">
13611 <a href="http://people.skolelinux.org/pere/blog/Freedombox_on_Dreamplug__Raspberry_Pi_and_virtual_x86_machine.html">Freedombox on Dreamplug, Raspberry Pi and virtual x86 machine</a>
13612 </div>
13613 <div class="date">
13614 14th March 2014
13615 </div>
13616 <div class="body">
13617 <p>The <a href="https://wiki.debian.org/FreedomBox">Freedombox
13618 project</a> is working on providing the software and hardware for
13619 making it easy for non-technical people to host their data and
13620 communication at home, and being able to communicate with their
13621 friends and family encrypted and away from prying eyes. It has been
13622 going on for a while, and is slowly progressing towards a new test
13623 release (0.2).</p>
13624
13625 <p>And what day could be better than the Pi day to announce that the
13626 new version will provide "hard drive" / SD card / USB stick images for
13627 Dreamplug, Raspberry Pi and VirtualBox (or any other virtualization
13628 system), and can also be installed using a Debian installer preseed
13629 file. The Debian based Freedombox is now based on Debian Jessie,
13630 where most of the needed packages used are already present. Only one,
13631 the freedombox-setup package, is missing. To try to build your own
13632 boot image to test the current status, fetch the freedom-maker scripts
13633 and build using
13634 <a href="http://packages.qa.debian.org/vmdebootstrap">vmdebootstrap</a>
13635 with a user with sudo access to become root:
13636
13637 <pre>
13638 git clone http://anonscm.debian.org/git/freedombox/freedom-maker.git \
13639 freedom-maker
13640 sudo apt-get install git vmdebootstrap mercurial python-docutils \
13641 mktorrent extlinux virtualbox qemu-user-static binfmt-support \
13642 u-boot-tools
13643 make -C freedom-maker dreamplug-image raspberry-image virtualbox-image
13644 </pre>
13645
13646 <p>Root access is needed to run debootstrap and mount loopback
13647 devices. See the README for more details on the build. If you do not
13648 want all three images, trim the make line. But note that thanks to <a
13649 href="https://bugs.debian.org/741407">a race condition in
13650 vmdebootstrap</a>, the build might fail without the patch to the
13651 kpartx call.</p>
13652
13653 <p>If you instead want to install using a Debian CD and the preseed
13654 method, boot a Debian Wheezy ISO and use this boot argument to load
13655 the preseed values:</p>
13656
13657 <pre>
13658 url=<a href="http://www.reinholdtsen.name/freedombox/preseed-jessie.dat">http://www.reinholdtsen.name/freedombox/preseed-jessie.dat</a>
13659 </pre>
13660
13661 <p>But note that due to <a href="https://bugs.debian.org/740673">a
13662 recently introduced bug in apt in Jessie</a>, the installer will
13663 currently hang while setting up APT sources. Killing the
13664 '<tt>apt-cdrom ident</tt>' process when it hang a few times during the
13665 installation will get the installation going. This affect all
13666 installations in Jessie, and I expect it will be fixed soon.</p>
13667
13668 <p>Give it a go and let us know how it goes on the mailing list, and help
13669 us get the new release published. :) Please join us on
13670 <a href="irc://irc.debian.org:6667/%23freedombox">IRC (#freedombox on
13671 irc.debian.org)</a> and
13672 <a href="http://lists.alioth.debian.org/mailman/listinfo/freedombox-discuss">the
13673 mailing list</a> if you want to help make this vision come true.</p>
13674
13675 </div>
13676 <div class="tags">
13677
13678
13679 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</a>.
13680
13681
13682 </div>
13683 </div>
13684 <div class="padding"></div>
13685
13686 <div class="entry">
13687 <div class="title">
13688 <a href="http://people.skolelinux.org/pere/blog/How_to_add_extra_storage_servers_in_Debian_Edu___Skolelinux.html">How to add extra storage servers in Debian Edu / Skolelinux</a>
13689 </div>
13690 <div class="date">
13691 12th March 2014
13692 </div>
13693 <div class="body">
13694 <p>On larger sites, it is useful to use a dedicated storage server for
13695 storing user home directories and data. The design for handling this
13696 in <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a>, is
13697 to update the automount rules in LDAP and let the automount daemon on
13698 the clients take care of the rest. I was reminded about the need to
13699 document this better when one of the customers of
13700 <a href="http://www.slxdrift.no/">Skolelinux Drift AS</a>, where I am
13701 on the board of directors, asked about how to do this. The steps to
13702 get this working are the following:</p>
13703
13704 <p><ol>
13705
13706 <li>Add new storage server in DNS. I use nas-server.intern as the
13707 example host here.</li>
13708
13709 <li>Add automoun LDAP information about this server in LDAP, to allow
13710 all clients to automatically mount it on reqeust.</li>
13711
13712 <li>Add the relevant entries in tjener.intern:/etc/fstab, because
13713 tjener.intern do not use automount to avoid mounting loops.</li>
13714
13715 </ol></p>
13716
13717 <p>DNS entries are added in GOsa², and not described here. Follow the
13718 <a href="https://wiki.debian.org/DebianEdu/Documentation/Wheezy/GettingStarted">instructions
13719 in the manual</a> (Machine Management with GOsa² in section Getting
13720 started).</p>
13721
13722 <p>Ensure that the NFS export points on the server are exported to the
13723 relevant subnets or machines:</p>
13724
13725 <p><blockquote><pre>
13726 root@tjener:~# showmount -e nas-server
13727 Export list for nas-server:
13728 /storage 10.0.0.0/8
13729 root@tjener:~#
13730 </pre></blockquote></p>
13731
13732 <p>Here everything on the backbone network is granted access to the
13733 /storage export. With NFSv3 it is slightly better to limit it to
13734 netgroup membership or single IP addresses to have some limits on the
13735 NFS access.</p>
13736
13737 <p>The next step is to update LDAP. This can not be done using GOsa²,
13738 because it lack a module for automount. Instead, use ldapvi and add
13739 the required LDAP objects using an editor.</p>
13740
13741 <p><blockquote><pre>
13742 ldapvi --ldap-conf -ZD '(cn=admin)' -b ou=automount,dc=skole,dc=skolelinux,dc=no
13743 </pre></blockquote></p>
13744
13745 <p>When the editor show up, add the following LDAP objects at the
13746 bottom of the document. The "/&" part in the last LDAP object is a
13747 wild card matching everything the nas-server exports, removing the
13748 need to list individual mount points in LDAP.</p>
13749
13750 <p><blockquote><pre>
13751 add cn=nas-server,ou=auto.skole,ou=automount,dc=skole,dc=skolelinux,dc=no
13752 objectClass: automount
13753 cn: nas-server
13754 automountInformation: -fstype=autofs --timeout=60 ldap:ou=auto.nas-server,ou=automount,dc=skole,dc=skolelinux,dc=no
13755
13756 add ou=auto.nas-server,ou=automount,dc=skole,dc=skolelinux,dc=no
13757 objectClass: top
13758 objectClass: automountMap
13759 ou: auto.nas-server
13760
13761 add cn=/,ou=auto.nas-server,ou=automount,dc=skole,dc=skolelinux,dc=no
13762 objectClass: automount
13763 cn: /
13764 automountInformation: -fstype=nfs,tcp,rsize=32768,wsize=32768,rw,intr,hard,nodev,nosuid,noatime nas-server.intern:/&
13765 </pre></blockquote></p>
13766
13767 <p>The last step to remember is to mount the relevant mount points in
13768 tjener.intern by adding them to /etc/fstab, creating the mount
13769 directories using mkdir and running "mount -a" to mount them.</p>
13770
13771 <p>When this is done, your users should be able to access the files on
13772 the storage server directly by just visiting the
13773 /tjener/nas-server/storage/ directory using any application on any
13774 workstation, LTSP client or LTSP server.</p>
13775
13776 </div>
13777 <div class="tags">
13778
13779
13780 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>.
13781
13782
13783 </div>
13784 </div>
13785 <div class="padding"></div>
13786
13787 <div class="entry">
13788 <div class="title">
13789 <a href="http://people.skolelinux.org/pere/blog/New_home_and_release_1_0_for_netgroup_and_innetgr__aka_ng_utils_.html">New home and release 1.0 for netgroup and innetgr (aka ng-utils)</a>
13790 </div>
13791 <div class="date">
13792 22nd February 2014
13793 </div>
13794 <div class="body">
13795 <p>Many years ago, I wrote a GPL licensed version of the netgroup and
13796 innetgr tools, because I needed them in
13797 <a href="http://www.skolelinux.org/">Skolelinux</a>. I called the project
13798 ng-utils, and it has served me well. I placed the project under the
13799 <a href="http://www.hungry.com/">Hungry Programmer</a> umbrella, and it was maintained in our CVS
13800 repository. But many years ago, the CVS repository was dropped (lost,
13801 not migrated to new hardware, not sure), and the project have lacked a
13802 proper home since then.</p>
13803
13804 <p>Last summer, I had a look at the package and made a new release
13805 fixing a irritating crash bug, but was unable to store the changes in
13806 a proper source control system. I applied for a project on
13807 <a href="https://alioth.debian.org/">Alioth</a>, but did not have time
13808 to follow up on it. Until today. :)</p>
13809
13810 <p>After many hours of cleaning and migration, the ng-utils project
13811 now have a new home, and a git repository with the highlight of the
13812 history of the project. I published all release tarballs and imported
13813 them into the git repository. As the project is really stable and not
13814 expected to gain new features any time soon, I decided to make a new
13815 release and call it 1.0. Visit the new project home on
13816 <a href="https://alioth.debian.org/projects/ng-utils/">https://alioth.debian.org/projects/ng-utils/</a>
13817 if you want to check it out. The new version is also uploaded into
13818 <a href="http://packages.qa.debian.org/n/ng-utils.html">Debian Unstable</a>.</p>
13819
13820 </div>
13821 <div class="tags">
13822
13823
13824 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>.
13825
13826
13827 </div>
13828 </div>
13829 <div class="padding"></div>
13830
13831 <div class="entry">
13832 <div class="title">
13833 <a href="http://people.skolelinux.org/pere/blog/Testing_sysvinit_from_experimental_in_Debian_Hurd.html">Testing sysvinit from experimental in Debian Hurd</a>
13834 </div>
13835 <div class="date">
13836 3rd February 2014
13837 </div>
13838 <div class="body">
13839 <p>A few days ago I decided to try to help the Hurd people to get
13840 their changes into sysvinit, to allow them to use the normal sysvinit
13841 boot system instead of their old one. This follow up on the
13842 <a href="https://teythoon.cryptobitch.de//categories/gsoc.html">great
13843 Google Summer of Code work</a> done last summer by Justus Winter to
13844 get Debian on Hurd working more like Debian on Linux. To get started,
13845 I downloaded a prebuilt hard disk image from
13846 <a href="http://ftp.debian-ports.org/debian-cd/hurd-i386/current/debian-hurd.img.tar.gz">http://ftp.debian-ports.org/debian-cd/hurd-i386/current/debian-hurd.img.tar.gz</a>,
13847 and started it using virt-manager.</p>
13848
13849 <p>The first think I had to do after logging in (root without any
13850 password) was to get the network operational. I followed
13851 <a href="https://www.debian.org/ports/hurd/hurd-install">the
13852 instructions on the Debian GNU/Hurd ports page</a> and ran these
13853 commands as root to get the machine to accept a IP address from the
13854 kvm internal DHCP server:</p>
13855
13856 <p><blockquote><pre>
13857 settrans -fgap /dev/netdde /hurd/netdde
13858 kill $(ps -ef|awk '/[p]finet/ { print $2}')
13859 kill $(ps -ef|awk '/[d]evnode/ { print $2}')
13860 dhclient /dev/eth0
13861 </pre></blockquote></p>
13862
13863 <p>After this, the machine had internet connectivity, and I could
13864 upgrade it and install the sysvinit packages from experimental and
13865 enable it as the default boot system in Hurd.</p>
13866
13867 <p>But before I did that, I set a password on the root user, as ssh is
13868 running on the machine it for ssh login to work a password need to be
13869 set. Also, note that a bug somewhere in openssh on Hurd block
13870 compression from working. Remember to turn that off on the client
13871 side.</p>
13872
13873 <p>Run these commands as root to upgrade and test the new sysvinit
13874 stuff:</p>
13875
13876 <p><blockquote><pre>
13877 cat > /etc/apt/sources.list.d/experimental.list &lt;&lt;EOF
13878 deb http://http.debian.net/debian/ experimental main
13879 EOF
13880 apt-get update
13881 apt-get dist-upgrade
13882 apt-get install -t experimental initscripts sysv-rc sysvinit \
13883 sysvinit-core sysvinit-utils
13884 update-alternatives --config runsystem
13885 </pre></blockquote></p>
13886
13887 <p>To reboot after switching boot system, you have to use
13888 <tt>reboot-hurd</tt> instead of just <tt>reboot</tt>, as there is not
13889 yet a sysvinit process able to receive the signals from the normal
13890 'reboot' command. After switching to sysvinit as the boot system,
13891 upgrading every package and rebooting, the network come up with DHCP
13892 after boot as it should, and the settrans/pkill hack mentioned at the
13893 start is no longer needed. But for some strange reason, there are no
13894 longer any login prompt in the virtual console, so I logged in using
13895 ssh instead.
13896
13897 <p>Note that there are some race conditions in Hurd making the boot
13898 fail some times. No idea what the cause is, but hope the Hurd porters
13899 figure it out. At least Justus said on IRC (#debian-hurd on
13900 irc.debian.org) that they are aware of the problem. A way to reduce
13901 the impact is to upgrade to the Hurd packages built by Justus by
13902 adding this repository to the machine:</p>
13903
13904 <p><blockquote><pre>
13905 cat > /etc/apt/sources.list.d/hurd-ci.list &lt;&lt;EOF
13906 deb http://darnassus.sceen.net/~teythoon/hurd-ci/ sid main
13907 EOF
13908 </pre></blockquote></p>
13909
13910 <p>At the moment the prebuilt virtual machine get some packages from
13911 http://ftp.debian-ports.org/debian, because some of the packages in
13912 unstable do not yet include the required patches that are lingering in
13913 BTS. This is the completely list of "unofficial" packages installed:</p>
13914
13915 <p><blockquote><pre>
13916 # aptitude search '?narrow(?version(CURRENT),?origin(Debian Ports))'
13917 i emacs - GNU Emacs editor (metapackage)
13918 i gdb - GNU Debugger
13919 i hurd-recommended - Miscellaneous translators
13920 i isc-dhcp-client - ISC DHCP client
13921 i isc-dhcp-common - common files used by all the isc-dhcp* packages
13922 i libc-bin - Embedded GNU C Library: Binaries
13923 i libc-dev-bin - Embedded GNU C Library: Development binaries
13924 i libc0.3 - Embedded GNU C Library: Shared libraries
13925 i A libc0.3-dbg - Embedded GNU C Library: detached debugging symbols
13926 i libc0.3-dev - Embedded GNU C Library: Development Libraries and Hea
13927 i multiarch-support - Transitional package to ensure multiarch compatibilit
13928 i A x11-common - X Window System (X.Org) infrastructure
13929 i xorg - X.Org X Window System
13930 i A xserver-xorg - X.Org X server
13931 i A xserver-xorg-input-all - X.Org X server -- input driver metapackage
13932 #
13933 </pre></blockquote></p>
13934
13935 <p>All in all, testing hurd has been an interesting experience. :)
13936 X.org did not work out of the box and I never took the time to follow
13937 the porters instructions to fix it. This time I was interested in the
13938 command line stuff.<p>
13939
13940 </div>
13941 <div class="tags">
13942
13943
13944 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>.
13945
13946
13947 </div>
13948 </div>
13949 <div class="padding"></div>
13950
13951 <div class="entry">
13952 <div class="title">
13953 <a href="http://people.skolelinux.org/pere/blog/A_fist_full_of_non_anonymous_Bitcoins.html">A fist full of non-anonymous Bitcoins</a>
13954 </div>
13955 <div class="date">
13956 29th January 2014
13957 </div>
13958 <div class="body">
13959 <p>Bitcoin is a incredible use of peer to peer communication and
13960 encryption, allowing direct and immediate money transfer without any
13961 central control. It is sometimes claimed to be ideal for illegal
13962 activity, which I believe is quite a long way from the truth. At least
13963 I would not conduct illegal money transfers using a system where the
13964 details of every transaction are kept forever. This point is
13965 investigated in
13966 <a href="https://www.usenix.org/publications/login">USENIX ;login:</a>
13967 from December 2013, in the article
13968 "<a href="https://www.usenix.org/system/files/login/articles/03_meiklejohn-online.pdf">A
13969 Fistful of Bitcoins - Characterizing Payments Among Men with No
13970 Names</a>" by Sarah Meiklejohn, Marjori Pomarole,Grant Jordan, Kirill
13971 Levchenko, Damon McCoy, Geoffrey M. Voelker, and Stefan Savage. They
13972 analyse the transaction log in the Bitcoin system, using it to find
13973 addresses belong to individuals and organisations and follow the flow
13974 of money from both Bitcoin theft and trades on Silk Road to where the
13975 money end up. This is how they wrap up their article:</p>
13976
13977 <p><blockquote>
13978 <p>"To demonstrate the usefulness of this type of analysis, we turned
13979 our attention to criminal activity. In the Bitcoin economy, criminal
13980 activity can appear in a number of forms, such as dealing drugs on
13981 Silk Road or simply stealing someone else’s bitcoins. We followed the
13982 flow of bitcoins out of Silk Road (in particular, from one notorious
13983 address) and from a number of highly publicized thefts to see whether
13984 we could track the bitcoins to known services. Although some of the
13985 thieves attempted to use sophisticated mixing techniques (or possibly
13986 mix services) to obscure the flow of bitcoins, for the most part
13987 tracking the bitcoins was quite straightforward, and we ultimately saw
13988 large quantities of bitcoins flow to a variety of exchanges directly
13989 from the point of theft (or the withdrawal from Silk Road).</p>
13990
13991 <p>As acknowledged above, following stolen bitcoins to the point at
13992 which they are deposited into an exchange does not in itself identify
13993 the thief; however, it does enable further de-anonymization in the
13994 case in which certain agencies can determine (through, for example,
13995 subpoena power) the real-world owner of the account into which the
13996 stolen bitcoins were deposited. Because such exchanges seem to serve
13997 as chokepoints into and out of the Bitcoin economy (i.e., there are
13998 few alternative ways to cash out), we conclude that using Bitcoin for
13999 money laundering or other illicit purposes does not (at least at
14000 present) seem to be particularly attractive."</p>
14001 </blockquote><p>
14002
14003 <p>These researches are not the first to analyse the Bitcoin
14004 transaction log. The 2011 paper
14005 "<a href="http://arxiv.org/abs/1107.4524">An Analysis of Anonymity in
14006 the Bitcoin System</A>" by Fergal Reid and Martin Harrigan is
14007 summarized like this:</p>
14008
14009 <p><blockquote>
14010 "Anonymity in Bitcoin, a peer-to-peer electronic currency system, is a
14011 complicated issue. Within the system, users are identified by
14012 public-keys only. An attacker wishing to de-anonymize its users will
14013 attempt to construct the one-to-many mapping between users and
14014 public-keys and associate information external to the system with the
14015 users. Bitcoin tries to prevent this attack by storing the mapping of
14016 a user to his or her public-keys on that user's node only and by
14017 allowing each user to generate as many public-keys as required. In
14018 this chapter we consider the topological structure of two networks
14019 derived from Bitcoin's public transaction history. We show that the
14020 two networks have a non-trivial topological structure, provide
14021 complementary views of the Bitcoin system and have implications for
14022 anonymity. We combine these structures with external information and
14023 techniques such as context discovery and flow analysis to investigate
14024 an alleged theft of Bitcoins, which, at the time of the theft, had a
14025 market value of approximately half a million U.S. dollars."
14026 </blockquote></p>
14027
14028 <p>I hope these references can help kill the urban myth that Bitcoin
14029 is anonymous. It isn't really a good fit for illegal activites. Use
14030 cash if you need to stay anonymous, at least until regular DNA
14031 sampling of notes and coins become the norm. :)</p>
14032
14033 <p>As usual, if you use Bitcoin and want to show your support of my
14034 activities, please send Bitcoin donations to my address
14035 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
14036
14037 </div>
14038 <div class="tags">
14039
14040
14041 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>, <a href="http://people.skolelinux.org/pere/blog/tags/usenix">usenix</a>.
14042
14043
14044 </div>
14045 </div>
14046 <div class="padding"></div>
14047
14048 <div class="entry">
14049 <div class="title">
14050 <a href="http://people.skolelinux.org/pere/blog/New_chrpath_release_0_16.html">New chrpath release 0.16</a>
14051 </div>
14052 <div class="date">
14053 14th January 2014
14054 </div>
14055 <div class="body">
14056 <p><a href="http://www.coverity.com/">Coverity</a> is a nice tool to
14057 find problems in C, C++ and Java code using static source code
14058 analysis. It can detect a lot of different problems, and is very
14059 useful to find memory and locking bugs in the error handling part of
14060 the source. The company behind it provide
14061 <a href="https://scan.coverity.com/">check of free software projects as
14062 a community service</a>, and many hundred free software projects are
14063 already checked. A few days ago I decided to have a closer look at
14064 the Coverity system, and discovered that the
14065 <a href="http://www.gnu.org/software/gnash/">gnash</a> and
14066 <a href="http://sourceforge.net/projects/ipmitool/">ipmitool</a>
14067 projects I am involved with was already registered. But these are
14068 fairly big, and I would also like to have a small and easy project to
14069 check, and decided to <a href="http://scan.coverity.com/projects/1179">request
14070 checking of the chrpath project</a>. It was
14071 added to the checker and discovered seven potential defects. Six of
14072 these were real, mostly resource "leak" when the program detected an
14073 error. Nothing serious, as the resources would be released a fraction
14074 of a second later when the program exited because of the error, but it
14075 is nice to do it right in case the source of the program some time in
14076 the future end up in a library. Having fixed all defects and added
14077 <a href="https://lists.alioth.debian.org/mailman/listinfo/chrpath-devel">a
14078 mailing list for the chrpath developers</a>, I decided it was time to
14079 publish a new release. These are the release notes:</p>
14080
14081 <p>New in 0.16 released 2014-01-14:</p>
14082
14083 <ul>
14084
14085 <li>Fixed all minor bugs discovered by Coverity.</li>
14086 <li>Updated config.sub and config.guess from the GNU project.</li>
14087 <li>Mention new project mailing list in the documentation.</li>
14088
14089 </ul>
14090
14091 <p>You can
14092 <a href="https://alioth.debian.org/frs/?group_id=31052">download the
14093 new version 0.16 from alioth</a>. Please let us know via the Alioth
14094 project if something is wrong with the new release. The test suite
14095 did not discover any old errors, so if you find a new one, please also
14096 include a test suite check.</p>
14097
14098 </div>
14099 <div class="tags">
14100
14101
14102 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/chrpath">chrpath</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
14103
14104
14105 </div>
14106 </div>
14107 <div class="padding"></div>
14108
14109 <div class="entry">
14110 <div class="title">
14111 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Dominik_George.html">Debian Edu interview: Dominik George</a>
14112 </div>
14113 <div class="date">
14114 25th December 2013
14115 </div>
14116 <div class="body">
14117 <p>The <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux
14118 project</a> consist of both newcomers and old timers, and this time I
14119 was able to get an interview with a newcomer in the project who showed
14120 up on the IRC channel a few weeks ago to let us know about his
14121 successful installation of Debian Edu Wheezy in his School. Say hello
14122 to <a href="https://www.ohloh.net/accounts/Natureshadow">Dominik
14123 George</a>.</p>
14124
14125 <!-- http://www.dominik-george.de/images/foto.jpg -->
14126
14127 <p><strong>Who are you, and how do you spend your days?</strong></p>
14128
14129 <p>I am a 23 year-old student from Germany who has spent half of his
14130 life with open source. In "real life", I am, as already mentioned, a
14131 student in the fields of Computer Science, Electrical Engineering,
14132 Information Technologies and Anglistics. Due to my (only partially
14133 voluntary) huge engagement in the open source world, these things are
14134 a bit vacant right now however.</p>
14135
14136 <p>I also have been working as a project teacher at a Gymasnium
14137 (public school) for various years now. I took up that work some time
14138 around 2005 when still attending that school myself and have continued
14139 it until today. I also had been running the (kind of very advanced)
14140 network of that school together with a team of very interested and
14141 talented students in the age of 11 to 15 years, who took the chance to
14142 learn a lot about open source and networking before I left the school
14143 to help building another school's informational education concept from
14144 scratch.</p>
14145
14146 <p>That said, one might see me as a kind of "glue" between school kids
14147 and the elderly of teachers as well as between the open source
14148 ecosystem and the (even more complex) educational ecosystem.</p>
14149
14150 <p>When I am not busy with open source or education, I like Geocaching
14151 and cycling.</p>
14152
14153 <p><strong>How did you get in contact with the Skolelinux / Debian Edu
14154 project?</strong></p>
14155
14156 <p>I think that happened some time around 2009 when I first attended
14157 <a href="http://www.froscon.org">FrOSCon</a> and visited the project
14158 booth. I think I wasn't too interested back then because I used to
14159 have an attitude of disliking software that does too much stuff on its
14160 own. Maybe I was too inexperienced to realise the upsides of an
14161 "out-of-the-box" solution ;).</p>
14162
14163 <p>The first time I actively talked to Skolelinux people was at
14164 <a href="http://www.openrheinruhr.de">OpenRheinRuhr</a> 2011 when the
14165 BiscuIT project, a home-grewn software used by my school for various
14166 really cool things from timetables and class contact lists to lunch
14167 ordering, student ID card printing and project elections first got to
14168 a stage where it could have been published. I asked the Skolelinux
14169 guys running the booth if the project were interested in it and gave a
14170 small demonstration, but there wasn't any real feedback and the guys
14171 seemed rather uninterested.</p>
14172
14173 <p>After I left the school where I developed the software, it got
14174 mostly lost, but I am now reimplementing it for my new school. I have
14175 reusability and compatibility in mind, and I hop there will be a new
14176 basis for contributing it to the Skolelinux project ;)!</p>
14177
14178 <p><strong>What do you see as the advantages of Skolelinux / Debian
14179 Edu?</strong></p>
14180
14181 <p>The most important advantage seems to be that it "just
14182 works". After overcoming some minor (but still very annoying) glitches
14183 in the installer, I got a fully functional, working school network,
14184 without the month-long hassle I experienced when setting all that up
14185 from scratch in earlier years. And above that, it rocked - I didn't
14186 have any real hardware at hand, because the school was just founded
14187 and has no money whatsoever, so I installed a combined server (main
14188 server, terminal services and workstation) in a VM on my personal
14189 notebook, bridging the LTSP network interface to the ethernet port,
14190 and then PXE-booted the Windows notebooks that were lying around from
14191 it. I could use 8 clients without any performance issues, by using a
14192 tiny little VM on a tiny little notebook. I think that's enough to say
14193 that it rocks!</p>
14194
14195 <p>Secondly, there are marketing reasons. Life's bad, and so no
14196 politician will ever permit a setup described as "Debian, an universal
14197 operating system, with some really cool educational tools" while they
14198 will be jsut fine with "Skolelinux, a single-purpose solution for your
14199 school network", even if both turn out to be the very same thing (yes,
14200 this is unfair towards the Skolelinux project, and must not be taken
14201 too seriously - you get the idea, anyway).</p>
14202
14203 <p><strong>What do you see as the disadvantages of Skolelinux / Debian
14204 Edu?</strong></p>
14205
14206 <p>I have not been involved with Skolelinux long enough to really
14207 answer this question in a fair way. Thus, please allow me to put it in
14208 other words: "What do you expect from Skolelinux to keep liking it?" I
14209 can list a few points about that:</p>
14210
14211 <ul>
14212
14213 <li>always strive to get all things integrated into Debian upstream
14214 <li>be open to discussion about changes and the like, even with newcomers
14215 <li>be helpful at being helpful ;)
14216
14217 </ul>
14218
14219 <p>I'm really sorry I cannot say much more about that :(!</p>
14220
14221 <p><strong>Which free software do you use daily?</strong></p>
14222
14223 <p>First of all, all software I use is free and open. I have abandoned
14224 all non-free software (except for firmware on my darned phone) this
14225 year.</p>
14226
14227 <p>I run Debian GNU/Linux on all PC systems I use. On that, I mostly
14228 run text tools. I use
14229 <a href="https://www.mirbsd.org/mksh.htm">mksh</a> as shell,
14230 <a href="https://www.mirbsd.org/jupp.htm">jupp</a> as very advanced
14231 text editor (I even got the developer to help me write a script/macro
14232 based full-featured student management software with the two),
14233 <a href="http://mcabber.com/">mcabber</a> for XMPP and
14234 <a href="http://www.irssi.org/">irssi</a> for IRC. For that overly
14235 coloured world called the WWW, I use
14236 <a href="https://www.mozilla.org/en-US/firefox/new/">Iceweasel
14237 (Firefox)</a>. Oh, and <a href="http://www.mutt.org/">mutt</a> for
14238 e-mail.</p>
14239
14240 <p>However, while I am personally aware of the fact that text tools
14241 are more efficient and powerful than anything else, I also use (or at
14242 least operate) some tools that are suitable to bring open source to
14243 kids. One of these things is <a href="http://jappix.org/">Jappix</a>,
14244 which I already introduced to some kids even before they got aware of
14245 Facebook, making them see for themselves that they do not need
14246 Facebook now ;).</p>
14247
14248 <p><strong>Which strategy do you believe is the right one to use to
14249 get schools to use free software?</strong></p>
14250
14251 <p>Well, that's a two-sided thing. One side is what I believe, and one
14252 side is what I have experienced.</p>
14253
14254 <p>I believe that the right strategy is showing them the benefits. But
14255 that won't work out as long as the acceptance of free alternatives
14256 grows globally. What I mean is that if all the kids are almost forced
14257 to use Windows, Facebook, Skype, you name it at home, they will not
14258 see why they would want to use alternatives at school. I have seen
14259 students take seat in front of a fully-functional, modern Debian
14260 desktop that could do anything their Windows at home could do, and
14261 they jsut refused to use it because "Linux sucks". It is something
14262 that makes the council of our city spend around 600000 € to buy
14263 software - not including hardware, mind you - for operating school
14264 networks, and for installing a system that, as has been proved, does
14265 not work. For those of you readers who are good at maths, have you
14266 already found out how many lives could have been saved with that money
14267 if we had instead used it to bring education to parts of the world
14268 that need it? I have, and found it to be nothing less dramatic than
14269 plain criminal.</p>
14270
14271 <p>That said, the only feasible way appears to be the bottom up
14272 method. We have to bring free software to kids and parents. I have
14273 founded an association named
14274 <a href="https://www.teckids.org">Teckids</a> here in Germany that does
14275 just that. We organise several events for kids and adolescents in the
14276 area of free and open source software, for example the
14277 <a href="http://kids.froscon.org">FrogLabs</a>, which share staff with
14278 Teckids and are the youth programme of
14279 <a href="http://www.froscon.org">the Free and Open Source Software
14280 Conference (FrOSCon)</a>. We do a lot more than most other conferences
14281 - this year, we first offered the FrogLabs as a holiday camp for kids
14282 aged 10 to 16. It was a huge success, with approx. 30 kids taking part
14283 and learning with and about free software through a whole weekend. All
14284 of us had a lot of fun, and the results were really exciting.</p>
14285
14286 <p>Apart from that, we are preparing a campaign that is supposed to bring
14287 the message of free alternatives to stuff kids use every day to them and
14288 their parents, e.g. the use of Jabber / Jappix instead of Facebook and
14289 Skype. To make that possible, we are planning to get together a team of
14290 clever kids who understand very well what their peers need and can bring
14291 it across to them. So we will have a peer-driven network of adolescents
14292 who teach each other and collect feedback from the community of minors.
14293 We then take that feedback and our own experience to work closely with
14294 open source projects, such as Skolelinux or Jappix, at improving their
14295 software in a way that makes it more and more attractive for the target
14296 group. At least I hope that we will have good cooperation with
14297 Skolelinux in the future ;)!</p>
14298
14299 <p>So in conclusion, what I believe is that, if it weren't for the world
14300 being so bad, it should be very clear to the political decision makers
14301 that the only way to go nowadays is free software for various reasons,
14302 but I have learnt that the only way that seems to work is bottom up.</p>
14303
14304 <!--
14305
14306 > * Who should be interviewed with this questions in the future?
14307
14308 That's probably the hardest question of them all, as I do not know the
14309 community. However, I would be willing to do the following:
14310
14311 <li>Run an interview with a German headteacher who is very open to
14312 free software, and also prefers it, but cannot really use it because
14313 of the decision makers above;
14314 <li>Run interviews with some kids, both with and without previous
14315 knowledge about free software
14316
14317 If that is wanted, just let me know ;).
14318
14319 -->
14320
14321 </div>
14322 <div class="tags">
14323
14324
14325 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>.
14326
14327
14328 </div>
14329 </div>
14330 <div class="padding"></div>
14331
14332 <div class="entry">
14333 <div class="title">
14334 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Klaus_Knopper.html">Debian Edu interview: Klaus Knopper</a>
14335 </div>
14336 <div class="date">
14337 6th December 2013
14338 </div>
14339 <div class="body">
14340 <p>It has been a while since I managed to publish the last interview,
14341 but the <a href="http://www.skolelinux.org/">Debian Edu /
14342 Skolelinux</a> community is still going strong, and yesterday we even
14343 had a new school administrator show up on
14344 <a href="irc://irc.debian.org/#debian-edu">#debian-edu</a> to share
14345 his success story with installing Debian Edu at their school. This
14346 time I have been able to get some helpful comments from the creator of
14347 Knoppix, Klaus Knopper, who was involved in a Skolelinux project in
14348 Germany a few years ago.</p>
14349
14350 <p><strong>Who are you, and how do you spend your days?</strong></p>
14351
14352 <p>I am Klaus Knopper. I have a master degree in electrical
14353 engineering, and is currently professor in information management at
14354 the university of applied sciences Kaiserslautern / Germany and
14355 freelance Open Source software developer and consultant.</p>
14356
14357 <p>All of this is pretty much of the work I spend my days with. Apart
14358 from teaching, I'm also conducting some more or less experimental
14359 projects like the <a href="http://www.knoppix.org">Knoppix GNU/Linux live
14360 system</a> (Debian-based like Skolelinux),
14361 <a href="http://www.knopper.net/knoppix-adriane/index-en.html">ADRIANE</a>
14362 (a blind-friendly talking desktop system) and
14363 <a href="http://www.knopper.net/linbo/index-en.html">LINBO</a>
14364 (Linux-based network boot console, a fast remote install and repair
14365 system supporting various operating systems).</p>
14366
14367 <p><strong>How did you get in contact with the Skolelinux / Debian Edu
14368 project?</strong></p>
14369
14370 <p>The credit for this have to go to Kurt Gramlich, who is the German
14371 coordinator for Skolelinux. We were looking for an all-in-one open
14372 source community-supported distribution for schools, and Kurt
14373 introduced us to Skolelinux for this purpose.</p>
14374
14375 <p><strong>What do you see as the advantages of Skolelinux / Debian
14376 Edu?</strong></p>
14377
14378 <ul>
14379 <li>Quick installation,</li>
14380 <li>works (almost) out of the box,</li>
14381 <li>contains many useful software packages for teaching and learning,</li>
14382 <li>is a purely community-based distro and not controlled by a
14383 single company,</li>
14384 <li>has a large number of supporters and teachers who share their
14385 experience and problem solutions.</li>
14386 </ul>
14387
14388 <p><strong>What do you see as the disadvantages of Skolelinux / Debian
14389 Edu?</strong></p>
14390
14391 <ul>
14392 <li>Skolelinux is - as we had to learn - not easily upgradable to
14393 the next version. Opposed to its genuine Debian base, upgrading to
14394 a new version means a full new installation from scratch to get it
14395 working again reliably.
14396
14397 <li>Skolelinux is based on Debian/stable, and therefore always a
14398 little outdated in terms of program versions compared to Edubuntu or
14399 similar educational Linux distros, which rather use Debian/testing
14400 as their base.
14401
14402 <li>Skolelinux has some very self-opinionated and stubborn default
14403 configuration which in my opinion adds unnecessary complexity and is
14404 not always suitable for a schools needs, the preset network
14405 configuration is actually a core definition feature of Skolelinux
14406 and not easy to change, so schools sometimes have to change their
14407 network configuration to make it "Skolelinux-compatible".
14408
14409 <li>Some proposed extensions, which were made available as
14410 contribution, like secure examination mode and lecture material
14411 distribution and collection, were not accepted into the mainline
14412 Skolelinux development and are now not easy to maintain in the
14413 future because of Skolelinux somewhat undeterministic update
14414 schemes.</li>
14415
14416 <li>Skolelinux has only a very tiny number of base developers
14417 compared to Debian.</li>
14418
14419 </ul>
14420
14421 <p>For these reasons and experience from our project, I would now
14422 rather consider using plain Debian for schools next time, until
14423 Skolelinux is more closely integrated into Debian and becomes
14424 upgradeable without reinstallation.</p>
14425
14426 <p><strong>Which free software do you use daily?</strong></p>
14427
14428 <p>GNU/Linux with LXDE desktop, bash for interactive dialog and
14429 programming, texlive for documentation and correspondence,
14430 occasionally LibreOffice for document format conversion. Various
14431 programming languages for teaching.</p>
14432
14433 <p><strong>Which strategy do you believe is the right one to use to
14434 get schools to use free software?</strong></p>
14435
14436 <p>Strong arguments are</p>
14437
14438 <ul>
14439
14440 <li>Knowledge is free, and so should be methods and tools for
14441 teaching and learning.</li>
14442
14443 <li>Students can learn with and use the same software at school, at
14444 home, and at their working place without running into license or
14445 conversion problems.</li>
14446
14447 <li>Closed source or proprietary software hides knowledge rather
14448 than exposing it, and proprietary software vendors try to bind
14449 customers to certain products. But teachers need to teach
14450 science, not products.</li>
14451
14452 <li>If you have everything you for daily work as open source, what
14453 would you need proprietary software for?</li>
14454
14455 </ul>
14456
14457 </div>
14458 <div class="tags">
14459
14460
14461 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>.
14462
14463
14464 </div>
14465 </div>
14466 <div class="padding"></div>
14467
14468 <div class="entry">
14469 <div class="title">
14470 <a href="http://people.skolelinux.org/pere/blog/Dugnadsnett_for_alle__a_wireless_community_network_in_Oslo__take_shape.html">Dugnadsnett for alle, a wireless community network in Oslo, take shape</a>
14471 </div>
14472 <div class="date">
14473 30th November 2013
14474 </div>
14475 <div class="body">
14476 <p>If you want the ability to electronically communicate directly with
14477 your neighbors and friends using a network controlled by your peers in
14478 stead of centrally controlled by a few corporations, or would like to
14479 experiment with interesting network technology, the
14480 <a href="http://www.dugnadsnett.no/">Dugnasnett for alle i Oslo</a>
14481 might be project for you. 39 mesh nodes are currently being planned,
14482 in the freshly started initiative from NUUG and Hackeriet to create a
14483 wireless community network. The work is inspired by
14484 <a href="http://freifunk.net/">Freifunk</a>,
14485 <a href="http://www.awmn.net/">Athens Wireless Metropolitan
14486 Network</a>, <a href="http://en.wikipedia.org/wiki/Roofnet">Roofnet</a>
14487 and other successful mesh networks around the globe. Two days ago we
14488 held a workshop to try to get people started on setting up their own
14489 mesh node, and there we decided to create a new mailing list
14490 <a href="http://lists.nuug.no/mailman/listinfo/dugnadsnett">dugnadsnett
14491 (at) nuug.no</a> and IRC channel
14492 <a href="irc://irc.freenode.net/#dugnadsnett.no">#dugnadsnett.no</a> to
14493 coordinate the work. See also the NUUG blog post
14494 <a href="http://www.nuug.no/news/E_postliste_og_IRC_kanal_for_Dugnadsnett_for_alle_i_Oslo.shtml">announcing
14495 the mailing list and IRC channel</a>.</p>
14496
14497 </div>
14498 <div class="tags">
14499
14500
14501 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
14502
14503
14504 </div>
14505 </div>
14506 <div class="padding"></div>
14507
14508 <div class="entry">
14509 <div class="title">
14510 <a href="http://people.skolelinux.org/pere/blog/New_chrpath_release_0_15.html">New chrpath release 0.15</a>
14511 </div>
14512 <div class="date">
14513 24th November 2013
14514 </div>
14515 <div class="body">
14516 <p>After many years break from the package and a vain hope that
14517 development would be continued by someone else, I finally pulled my
14518 acts together this morning and wrapped up a new release of chrpath,
14519 the command line tool to modify the rpath and runpath of already
14520 compiled ELF programs. The update was triggered by the persistence of
14521 Isha Vishnoi at IBM, which needed a new config.guess file to get
14522 support for the ppc64le architecture (powerpc 64-bit Little Endian) he
14523 is working on. I checked the
14524 <a href="http://packages.qa.debian.org/chrpath">Debian</a>,
14525 <a href="https://launchpad.net/ubuntu/+source/chrpath">Ubuntu</a> and
14526 <a href="https://admin.fedoraproject.org/pkgdb/acls/name/chrpath">Fedora</a>
14527 packages for interesting patches (failed to find the source from
14528 OpenSUSE and Mandriva packages), and found quite a few nice fixes.
14529 These are the release notes:</p>
14530
14531 <p>New in 0.15 released 2013-11-24:</p>
14532
14533 <ul>
14534
14535 <li>Updated config.sub and config.guess from the GNU project to work
14536 with newer architectures. Thanks to isha vishnoi for the heads
14537 up.</li>
14538
14539 <li>Updated README with current URLs.</li>
14540
14541 <li>Added byteswap fix found in Ubuntu, credited Jeremy Kerr and
14542 Matthias Klose.</li>
14543
14544 <li>Added missing help for -k|--keepgoing option, using patch by
14545 Petr Machata found in Fedora.</li>
14546
14547 <li>Rewrite removal of RPATH/RUNPATH to make sure the entry in
14548 .dynamic is a NULL terminated string. Based on patch found in
14549 Fedora credited Axel Thimm and Christian Krause.</li>
14550
14551 </ul>
14552
14553 <p>You can
14554 <a href="https://alioth.debian.org/frs/?group_id=31052">download the
14555 new version 0.15 from alioth</a>. Please let us know via the Alioth
14556 project if something is wrong with the new release. The test suite
14557 did not discover any old errors, so if you find a new one, please also
14558 include a testsuite check.</p>
14559
14560 </div>
14561 <div class="tags">
14562
14563
14564 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/chrpath">chrpath</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
14565
14566
14567 </div>
14568 </div>
14569 <div class="padding"></div>
14570
14571 <div class="entry">
14572 <div class="title">
14573 <a href="http://people.skolelinux.org/pere/blog/All_drones_should_be_radio_marked_with_what_they_do_and_who_they_belong_to.html">All drones should be radio marked with what they do and who they belong to</a>
14574 </div>
14575 <div class="date">
14576 21st November 2013
14577 </div>
14578 <div class="body">
14579 <p>Drones, flying robots, are getting more and more popular. The most
14580 know ones are the killer drones used by some government to murder
14581 people they do not like without giving them the chance of a fair
14582 trial, but the technology have many good uses too, from mapping and
14583 forest maintenance to photography and search and rescue. I am sure it
14584 is just a question of time before "bad drones" are in the hands of
14585 private enterprises and not only state criminals but petty criminals
14586 too. The drone technology is very useful and very dangerous. To have
14587 some control over the use of drones, I agree with Daniel Suarez in his
14588 TED talk
14589 "<a href="https://archive.org/details/DanielSuarez_2013G">The kill
14590 decision shouldn't belong to a robot</a>", where he suggested this
14591 little gem to keep the good while limiting the bad use of drones:</p>
14592
14593 <blockquote>
14594
14595 <p>Each robot and drone should have a cryptographically signed
14596 I.D. burned in at the factory that can be used to track its movement
14597 through public spaces. We have license plates on cars, tail numbers on
14598 aircraft. This is no different. And every citizen should be able to
14599 download an app that shows the population of drones and autonomous
14600 vehicles moving through public spaces around them, both right now and
14601 historically. And civic leaders should deploy sensors and civic drones
14602 to detect rogue drones, and instead of sending killer drones of their
14603 own up to shoot them down, they should notify humans to their
14604 presence. And in certain very high-security areas, perhaps civic
14605 drones would snare them and drag them off to a bomb disposal facility.</p>
14606
14607 <p>But notice, this is more an immune system than a weapons system. It
14608 would allow us to avail ourselves of the use of autonomous vehicles
14609 and drones while still preserving our open, civil society.</p>
14610
14611 </blockquote>
14612
14613 <p>The key is that <em>every citizen</em> should be able to read the
14614 radio beacons sent from the drones in the area, to be able to check
14615 both the government and others use of drones. For such control to be
14616 effective, everyone must be able to do it. What should such beacon
14617 contain? At least formal owner, purpose, contact information and GPS
14618 location. Probably also the origin and target position of the current
14619 flight. And perhaps some registration number to be able to look up
14620 the drone in a central database tracking their movement. Robots
14621 should not have privacy. It is people who need privacy.</p>
14622
14623 </div>
14624 <div class="tags">
14625
14626
14627 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/robot">robot</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>.
14628
14629
14630 </div>
14631 </div>
14632 <div class="padding"></div>
14633
14634 <div class="entry">
14635 <div class="title">
14636 <a href="http://people.skolelinux.org/pere/blog/Lets_make_a_wireless_community_network_in_Oslo_.html">Lets make a wireless community network in Oslo!</a>
14637 </div>
14638 <div class="date">
14639 13th November 2013
14640 </div>
14641 <div class="body">
14642 <p>Today NUUG and Hackeriet announced
14643 <a href="http://www.nuug.no/news/Bli_med___bygge_dugnadsnett_for_alle_i_Oslo.shtml">our
14644 plans to join forces and create a wireless community network in
14645 Oslo</a>. The workshop to help people get started will take place
14646 Thursday 2013-11-28, but we already are collecting the geolocation of
14647 people joining forces to make this happen. We have
14648 <a href="https://github.com/petterreinholdtsen/meshfx-node/blob/master/oslo-nodes.geojson">9
14649 locations plotted on the map</a>, but we will need more before we have
14650 a connected mesh spread across Oslo. If this sound interesting to
14651 you, please join us at the workshop. If you are too impatient to wait
14652 15 days, please join us on the IRC channel
14653 <a href="irc://irc.freenode.net/%23nuug">#nuug on irc.freenode.net</a>
14654 right away. :)</p>
14655
14656 </div>
14657 <div class="tags">
14658
14659
14660 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
14661
14662
14663 </div>
14664 </div>
14665 <div class="padding"></div>
14666
14667 <div class="entry">
14668 <div class="title">
14669 <a href="http://people.skolelinux.org/pere/blog/Running_TP_Link_MR3040_as_a_batman_adv_mesh_node_using_openwrt.html">Running TP-Link MR3040 as a batman-adv mesh node using openwrt</a>
14670 </div>
14671 <div class="date">
14672 10th November 2013
14673 </div>
14674 <div class="body">
14675 <p>Continuing my research into mesh networking, I was recommended to
14676 use TP-Link 3040 and 3600 access points as mesh nodes, and the pair I
14677 bought arrived on Friday. Here are my notes on how to set up the
14678 MR3040 as a mesh node using
14679 <a href="http://www.openwrt.org/">OpenWrt</a>.</p>
14680
14681 <p>I started by following the instructions on the OpenWRT wiki for
14682 <a href="http://wiki.openwrt.org/toh/tp-link/tl-mr3040">TL-MR3040</a>,
14683 and downloaded
14684 <a href="http://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-tl-mr3040-v2-squashfs-factory.bin">the
14685 recommended firmware image</a>
14686 (openwrt-ar71xx-generic-tl-mr3040-v2-squashfs-factory.bin) and
14687 uploaded it into the original web interface. The flashing went fine,
14688 and the machine was available via telnet on the ethernet port. After
14689 logging in and setting the root password, ssh was available and I
14690 could start to set it up as a batman-adv mesh node.</p>
14691
14692 <p>I started off by reading the instructions from
14693 <a href="http://wirelessafrica.meraka.org.za/wiki/index.php?title=Antoine's_Research">Wireless
14694 Africa</a>, which had quite a lot of useful information, but
14695 eventually I followed the recipe from the Open Mesh wiki for
14696 <a href="http://www.open-mesh.org/projects/batman-adv/wiki/Batman-adv-openwrt-config">using
14697 batman-adv on OpenWrt</a>. A small snag was the fact that the
14698 <tt>opkg install kmod-batman-adv</tt> command did not work as it
14699 should. The batman-adv kernel module would fail to load because its
14700 dependency crc16 was not already loaded. I
14701 <a href="https://dev.openwrt.org/ticket/14452">reported the bug</a> to
14702 the openwrt project and hope it will be fixed soon. But the problem
14703 only seem to affect initial testing of batman-adv, as configuration
14704 seem to work when booting from scratch.</p>
14705
14706 <p>The setup is done using files in /etc/config/. I did not bridge
14707 the Ethernet and mesh interfaces this time, to be able to hook up the
14708 box on my local network and log into it for configuration updates.
14709 The following files were changed and look like this after modifying
14710 them:</p>
14711
14712 <p><tt>/etc/config/network</tt></p>
14713
14714 <pre>
14715
14716 config interface 'loopback'
14717 option ifname 'lo'
14718 option proto 'static'
14719 option ipaddr '127.0.0.1'
14720 option netmask '255.0.0.0'
14721
14722 config globals 'globals'
14723 option ula_prefix 'fdbf:4c12:3fed::/48'
14724
14725 config interface 'lan'
14726 option ifname 'eth0'
14727 option type 'bridge'
14728 option proto 'dhcp'
14729 option ipaddr '192.168.1.1'
14730 option netmask '255.255.255.0'
14731 option hostname 'tl-mr3040'
14732 option ip6assign '60'
14733
14734 config interface 'mesh'
14735 option ifname 'adhoc0'
14736 option mtu '1528'
14737 option proto 'batadv'
14738 option mesh 'bat0'
14739 </pre>
14740
14741 <p><tt>/etc/config/wireless</tt></p>
14742 <pre>
14743
14744 config wifi-device 'radio0'
14745 option type 'mac80211'
14746 option channel '11'
14747 option hwmode '11ng'
14748 option path 'platform/ar933x_wmac'
14749 option htmode 'HT20'
14750 list ht_capab 'SHORT-GI-20'
14751 list ht_capab 'SHORT-GI-40'
14752 list ht_capab 'RX-STBC1'
14753 list ht_capab 'DSSS_CCK-40'
14754 option disabled '0'
14755
14756 config wifi-iface 'wmesh'
14757 option device 'radio0'
14758 option ifname 'adhoc0'
14759 option network 'mesh'
14760 option encryption 'none'
14761 option mode 'adhoc'
14762 option bssid '02:BA:00:00:00:01'
14763 option ssid 'meshfx@hackeriet'
14764 </pre>
14765 <p><tt>/etc/config/batman-adv</tt></p>
14766 <pre>
14767
14768 config 'mesh' 'bat0'
14769 option interfaces 'adhoc0'
14770 option 'aggregated_ogms'
14771 option 'ap_isolation'
14772 option 'bonding'
14773 option 'fragmentation'
14774 option 'gw_bandwidth'
14775 option 'gw_mode'
14776 option 'gw_sel_class'
14777 option 'log_level'
14778 option 'orig_interval'
14779 option 'vis_mode'
14780 option 'bridge_loop_avoidance'
14781 option 'distributed_arp_table'
14782 option 'network_coding'
14783 option 'hop_penalty'
14784
14785 # yet another batX instance
14786 # config 'mesh' 'bat5'
14787 # option 'interfaces' 'second_mesh'
14788 </pre>
14789
14790 <p>The mesh node is now operational. I have yet to test its range,
14791 but I hope it is good. I have not yet tested the TP-Link 3600 box
14792 still wrapped up in plastic.</p>
14793
14794 </div>
14795 <div class="tags">
14796
14797
14798 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
14799
14800
14801 </div>
14802 </div>
14803 <div class="padding"></div>
14804
14805 <div class="entry">
14806 <div class="title">
14807 <a href="http://people.skolelinux.org/pere/blog/Debian_init_d_boot_script_example_for_rsyslog.html">Debian init.d boot script example for rsyslog</a>
14808 </div>
14809 <div class="date">
14810 2nd November 2013
14811 </div>
14812 <div class="body">
14813 <p>If one of the points of switching to a new init system in Debian is
14814 <a href="http://thomas.goirand.fr/blog/?p=147">to get rid of huge
14815 init.d scripts</a>, I doubt we need to switch away from sysvinit and
14816 init.d scripts at all. Here is an example init.d script, ie a rewrite
14817 of /etc/init.d/rsyslog:</p>
14818
14819 <p><pre>
14820 #!/lib/init/init-d-script
14821 ### BEGIN INIT INFO
14822 # Provides: rsyslog
14823 # Required-Start: $remote_fs $time
14824 # Required-Stop: umountnfs $time
14825 # X-Stop-After: sendsigs
14826 # Default-Start: 2 3 4 5
14827 # Default-Stop: 0 1 6
14828 # Short-Description: enhanced syslogd
14829 # Description: Rsyslog is an enhanced multi-threaded syslogd.
14830 # It is quite compatible to stock sysklogd and can be
14831 # used as a drop-in replacement.
14832 ### END INIT INFO
14833 DESC="enhanced syslogd"
14834 DAEMON=/usr/sbin/rsyslogd
14835 </pre></p>
14836
14837 <p>Pretty minimalistic to me... For the record, the original sysv-rc
14838 script was 137 lines, and the above is just 15 lines, most of it meta
14839 info/comments.</p>
14840
14841 <p>How to do this, you ask? Well, one create a new script
14842 /lib/init/init-d-script looking something like this:
14843
14844 <p><pre>
14845 #!/bin/sh
14846
14847 # Define LSB log_* functions.
14848 # Depend on lsb-base (>= 3.2-14) to ensure that this file is present
14849 # and status_of_proc is working.
14850 . /lib/lsb/init-functions
14851
14852 #
14853 # Function that starts the daemon/service
14854
14855 #
14856 do_start()
14857 {
14858 # Return
14859 # 0 if daemon has been started
14860 # 1 if daemon was already running
14861 # 2 if daemon could not be started
14862 start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
14863 || return 1
14864 start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
14865 $DAEMON_ARGS \
14866 || return 2
14867 # Add code here, if necessary, that waits for the process to be ready
14868 # to handle requests from services started subsequently which depend
14869 # on this one. As a last resort, sleep for some time.
14870 }
14871
14872 #
14873 # Function that stops the daemon/service
14874 #
14875 do_stop()
14876 {
14877 # Return
14878 # 0 if daemon has been stopped
14879 # 1 if daemon was already stopped
14880 # 2 if daemon could not be stopped
14881 # other if a failure occurred
14882 start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
14883 RETVAL="$?"
14884 [ "$RETVAL" = 2 ] && return 2
14885 # Wait for children to finish too if this is a daemon that forks
14886 # and if the daemon is only ever run from this initscript.
14887 # If the above conditions are not satisfied then add some other code
14888 # that waits for the process to drop all resources that could be
14889 # needed by services started subsequently. A last resort is to
14890 # sleep for some time.
14891 start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
14892 [ "$?" = 2 ] && return 2
14893 # Many daemons don't delete their pidfiles when they exit.
14894 rm -f $PIDFILE
14895 return "$RETVAL"
14896 }
14897
14898 #
14899 # Function that sends a SIGHUP to the daemon/service
14900 #
14901 do_reload() {
14902 #
14903 # If the daemon can reload its configuration without
14904 # restarting (for example, when it is sent a SIGHUP),
14905 # then implement that here.
14906 #
14907 start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
14908 return 0
14909 }
14910
14911 SCRIPTNAME=$1
14912 scriptbasename="$(basename $1)"
14913 echo "SN: $scriptbasename"
14914 if [ "$scriptbasename" != "init-d-library" ] ; then
14915 script="$1"
14916 shift
14917 . $script
14918 else
14919 exit 0
14920 fi
14921
14922 NAME=$(basename $DAEMON)
14923 PIDFILE=/var/run/$NAME.pid
14924
14925 # Exit if the package is not installed
14926 #[ -x "$DAEMON" ] || exit 0
14927
14928 # Read configuration variable file if it is present
14929 [ -r /etc/default/$NAME ] && . /etc/default/$NAME
14930
14931 # Load the VERBOSE setting and other rcS variables
14932 . /lib/init/vars.sh
14933
14934 case "$1" in
14935 start)
14936 [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
14937 do_start
14938 case "$?" in
14939 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
14940 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
14941 esac
14942 ;;
14943 stop)
14944 [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
14945 do_stop
14946 case "$?" in
14947 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
14948 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
14949 esac
14950 ;;
14951 status)
14952 status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
14953 ;;
14954 #reload|force-reload)
14955 #
14956 # If do_reload() is not implemented then leave this commented out
14957 # and leave 'force-reload' as an alias for 'restart'.
14958 #
14959 #log_daemon_msg "Reloading $DESC" "$NAME"
14960 #do_reload
14961 #log_end_msg $?
14962 #;;
14963 restart|force-reload)
14964 #
14965 # If the "reload" option is implemented then remove the
14966 # 'force-reload' alias
14967 #
14968 log_daemon_msg "Restarting $DESC" "$NAME"
14969 do_stop
14970 case "$?" in
14971 0|1)
14972 do_start
14973 case "$?" in
14974 0) log_end_msg 0 ;;
14975 1) log_end_msg 1 ;; # Old process is still running
14976 *) log_end_msg 1 ;; # Failed to start
14977 esac
14978 ;;
14979 *)
14980 # Failed to stop
14981 log_end_msg 1
14982 ;;
14983 esac
14984 ;;
14985 *)
14986 echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
14987 exit 3
14988 ;;
14989 esac
14990
14991 :
14992 </pre></p>
14993
14994 <p>It is based on /etc/init.d/skeleton, and could be improved quite a
14995 lot. I did not really polish the approach, so it might not always
14996 work out of the box, but you get the idea. I did not try very hard to
14997 optimize it nor make it more robust either.</p>
14998
14999 <p>A better argument for switching init system in Debian than reducing
15000 the size of init scripts (which is a good thing to do anyway), is to
15001 get boot system that is able to handle the kernel events sensibly and
15002 robustly, and do not depend on the boot to run sequentially. The boot
15003 and the kernel have not behaved sequentially in years.</p>
15004
15005 </div>
15006 <div class="tags">
15007
15008
15009 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>.
15010
15011
15012 </div>
15013 </div>
15014 <div class="padding"></div>
15015
15016 <div class="entry">
15017 <div class="title">
15018 <a href="http://people.skolelinux.org/pere/blog/Browser_plugin_for_SPICE__spice_xpi__uploaded_to_Debian.html">Browser plugin for SPICE (spice-xpi) uploaded to Debian</a>
15019 </div>
15020 <div class="date">
15021 1st November 2013
15022 </div>
15023 <div class="body">
15024 <p><a href="http://www.spice-space.org/">The SPICE protocol</a> for
15025 remote display access is the preferred solution with oVirt and RedHat
15026 Enterprise Virtualization, and I was sad to discover the other day
15027 that the browser plugin needed to use these systems seamlessly was
15028 missing in Debian. The <a href="http://bugs.debian.org/668284">request
15029 for a package</a> was from 2012-04-10 with no progress since
15030 2013-04-01, so I decided to wrap up a package based on the great work
15031 from Cajus Pollmeier and put it in a collab-maint maintained git
15032 repository to get a package I could use. I would very much like
15033 others to help me maintain the package (or just take over, I do not
15034 mind), but as no-one had volunteered so far, I just uploaded it to
15035 NEW. I hope it will be available in Debian in a few days.</p>
15036
15037 <p>The source is now available from
15038 <a href="http://anonscm.debian.org/gitweb/?p=collab-maint/spice-xpi.git;a=summary">http://anonscm.debian.org/gitweb/?p=collab-maint/spice-xpi.git;a=summary</a>.</p>
15039
15040 </div>
15041 <div class="tags">
15042
15043
15044 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>.
15045
15046
15047 </div>
15048 </div>
15049 <div class="padding"></div>
15050
15051 <div class="entry">
15052 <div class="title">
15053 <a href="http://people.skolelinux.org/pere/blog/Teaching_vmdebootstrap_to_create_Raspberry_Pi_SD_card_images.html">Teaching vmdebootstrap to create Raspberry Pi SD card images</a>
15054 </div>
15055 <div class="date">
15056 27th October 2013
15057 </div>
15058 <div class="body">
15059 <p>The
15060 <a href="http://packages.qa.debian.org/v/vmdebootstrap.html">vmdebootstrap</a>
15061 program is a a very nice system to create virtual machine images. It
15062 create a image file, add a partition table, mount it and run
15063 debootstrap in the mounted directory to create a Debian system on a
15064 stick. Yesterday, I decided to try to teach it how to make images for
15065 <a href="https://wiki.debian.org/RaspberryPi">Raspberry Pi</a>, as part
15066 of a plan to simplify the build system for
15067 <a href="https://wiki.debian.org/FreedomBox">the FreedomBox
15068 project</a>. The FreedomBox project already uses vmdebootstrap for
15069 the virtualbox images, but its current build system made multistrap
15070 based system for Dreamplug images, and it is lacking support for
15071 Raspberry Pi.</p>
15072
15073 <p>Armed with the knowledge on how to build "foreign" (aka non-native
15074 architecture) chroots for Raspberry Pi, I dived into the vmdebootstrap
15075 code and adjusted it to be able to build armel images on my amd64
15076 Debian laptop. I ended up giving vmdebootstrap five new options,
15077 allowing me to replicate the image creation process I use to make
15078 <a href="http://people.skolelinux.org/pere/blog/A_Raspberry_Pi_based_batman_adv_Mesh_network_node.html">Debian
15079 Jessie based mesh node images for the Raspberry Pi</a>. First, the
15080 <tt>--foreign /path/to/binfm_handler</tt> option tell vmdebootstrap to
15081 call debootstrap with --foreign and to copy the handler into the
15082 generated chroot before running the second stage. This allow
15083 vmdebootstrap to create armel images on an amd64 host. Next I added
15084 two new options <tt>--bootsize size</tt> and <tt>--boottype
15085 fstype</tt> to teach it to create a separate /boot/ partition with the
15086 given file system type, allowing me to create an image with a vfat
15087 partition for the /boot/ stuff. I also added a <tt>--variant
15088 variant</tt> option to allow me to create smaller images without the
15089 Debian base system packages installed. Finally, I added an option
15090 <tt>--no-extlinux</tt> to tell vmdebootstrap to not install extlinux
15091 as a boot loader. It is not needed on the Raspberry Pi and probably
15092 most other non-x86 architectures. The changes were accepted by the
15093 upstream author of vmdebootstrap yesterday and today, and is now
15094 available from
15095 <a href="http://git.liw.fi/cgi-bin/cgit/cgit.cgi/vmdebootstrap/">the
15096 upstream project page</a>.</p>
15097
15098 <p>To use it to build a Raspberry Pi image using Debian Jessie, first
15099 create a small script (the customize script) to add the non-free
15100 binary blob needed to boot the Raspberry Pi and the APT source
15101 list:</p>
15102
15103 <p><pre>
15104 #!/bin/sh
15105 set -e # Exit on first error
15106 rootdir="$1"
15107 cd "$rootdir"
15108 cat &lt;&lt;EOF > etc/apt/sources.list
15109 deb http://http.debian.net/debian/ jessie main contrib non-free
15110 EOF
15111 # Install non-free binary blob needed to boot Raspberry Pi. This
15112 # install a kernel somewhere too.
15113 wget https://raw.github.com/Hexxeh/rpi-update/master/rpi-update \
15114 -O $rootdir/usr/bin/rpi-update
15115 chmod a+x $rootdir/usr/bin/rpi-update
15116 mkdir -p $rootdir/lib/modules
15117 touch $rootdir/boot/start.elf
15118 chroot $rootdir rpi-update
15119 </pre></p>
15120
15121 <p>Next, fetch the latest vmdebootstrap script and call it like this
15122 to build the image:</p>
15123
15124 <pre>
15125 sudo ./vmdebootstrap \
15126 --variant minbase \
15127 --arch armel \
15128 --distribution jessie \
15129 --mirror http://http.debian.net/debian \
15130 --image test.img \
15131 --size 600M \
15132 --bootsize 64M \
15133 --boottype vfat \
15134 --log-level debug \
15135 --verbose \
15136 --no-kernel \
15137 --no-extlinux \
15138 --root-password raspberry \
15139 --hostname raspberrypi \
15140 --foreign /usr/bin/qemu-arm-static \
15141 --customize `pwd`/customize \
15142 --package netbase \
15143 --package git-core \
15144 --package binutils \
15145 --package ca-certificates \
15146 --package wget \
15147 --package kmod
15148 </pre></p>
15149
15150 <p>The list of packages being installed are the ones needed by
15151 rpi-update to make the image bootable on the Raspberry Pi, with the
15152 exception of netbase, which is needed by debootstrap to find
15153 /etc/hosts with the minbase variant. I really wish there was a way to
15154 set up an Raspberry Pi using only packages in the Debian archive, but
15155 that is not possible as far as I know, because it boots from the GPU
15156 using a non-free binary blob.</p>
15157
15158 <p>The build host need debootstrap, kpartx and qemu-user-static and
15159 probably a few others installed. I have not checked the complete
15160 build dependency list.</p>
15161
15162 <p>The resulting image will not use the hardware floating point unit
15163 on the Raspberry PI, because the armel architecture in Debian is not
15164 optimized for that use. So the images created will be a bit slower
15165 than <a href="http://www.raspbian.org/">Raspbian</a> based images.</p>
15166
15167 </div>
15168 <div class="tags">
15169
15170
15171 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox</a>, <a href="http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network</a>.
15172
15173
15174 </div>
15175 </div>
15176 <div class="padding"></div>
15177
15178 <div class="entry">
15179 <div class="title">
15180 <a href="http://people.skolelinux.org/pere/blog/A_Raspberry_Pi_based_batman_adv_Mesh_network_node.html">A Raspberry Pi based batman-adv Mesh network node</a>
15181 </div>
15182 <div class="date">
15183 21st October 2013
15184 </div>
15185 <div class="body">
15186 <p>The last few days I have been experimenting with
15187 <a href="http://www.open-mesh.org/projects/batman-adv/wiki">the
15188 batman-adv mesh technology</a>. I want to gain some experience to see
15189 if it will fit <a href="https://wiki.debian.org/FreedomBox">the
15190 Freedombox project</a>, and together with my neighbors try to build a
15191 mesh network around the park where I live. Batman-adv is a layer 2
15192 mesh system ("ethernet" in other words), where the mesh network appear
15193 as if all the mesh clients are connected to the same switch.</p>
15194
15195 <p>My hardware of choice was the Linksys WRT54GL routers I had lying
15196 around, but I've been unable to get them working with batman-adv. So
15197 instead, I started playing with a
15198 <a href="http://www.raspberrypi.org/">Raspberry Pi</a>, and tried to
15199 get it working as a mesh node. My idea is to use it to create a mesh
15200 node which function as a switch port, where everything connected to
15201 the Raspberry Pi ethernet plug is connected (bridged) to the mesh
15202 network. This allow me to hook a wifi base station like the Linksys
15203 WRT54GL to the mesh by plugging it into a Raspberry Pi, and allow
15204 non-mesh clients to hook up to the mesh. This in turn is useful for
15205 Android phones using <a href="http://servalproject.org/">the Serval
15206 Project</a> voip client, allowing every one around the playground to
15207 phone and message each other for free. The reason is that Android
15208 phones do not see ad-hoc wifi networks (they are filtered away from
15209 the GUI view), and can not join the mesh without being rooted. But if
15210 they are connected using a normal wifi base station, they can talk to
15211 every client on the local network.</p>
15212
15213 <p>To get this working, I've created a debian package
15214 <a href="https://github.com/petterreinholdtsen/meshfx-node">meshfx-node</a>
15215 and a script
15216 <a href="https://github.com/petterreinholdtsen/meshfx-node/blob/master/build-rpi-mesh-node">build-rpi-mesh-node</a>
15217 to create the Raspberry Pi boot image. I'm using Debian Jessie (and
15218 not Raspbian), to get more control over the packages available.
15219 Unfortunately a huge binary blob need to be inserted into the boot
15220 image to get it booting, but I'll ignore that for now. Also, as
15221 Debian lack support for the CPU features available in the Raspberry
15222 Pi, the system do not use the hardware floating point unit. I hope
15223 the routing performance isn't affected by the lack of hardware FPU
15224 support.</p>
15225
15226 <p>To create an image, run the following with a sudo enabled user
15227 after inserting the target SD card into the build machine:</p>
15228
15229 <p><pre>
15230 % wget -O build-rpi-mesh-node \
15231 https://raw.github.com/petterreinholdtsen/meshfx-node/master/build-rpi-mesh-node
15232 % sudo bash -x ./build-rpi-mesh-node > build.log 2>&1
15233 % dd if=/root/rpi/rpi_basic_jessie_$(date +%Y%m%d).img of=/dev/mmcblk0 bs=1M
15234 %
15235 </pre></p>
15236
15237 <p>Booting with the resulting SD card on a Raspberry PI with a USB
15238 wifi card inserted should give you a mesh node. At least it does for
15239 me with a the wifi card I am using. The default mesh settings are the
15240 ones used by the Oslo mesh project at Hackeriet, as I mentioned in
15241 <a href="http://people.skolelinux.org/pere/blog/Oslo_community_mesh_network___with_NUUG_and_Hackeriet_at_Hausmania.html">an
15242 earlier blog post about this mesh testing</a>.</p>
15243
15244 <p>The mesh node was not horribly expensive either. I bought
15245 everything over the counter in shops nearby. If I had ordered online
15246 from the lowest bidder, the price should be significantly lower:</p>
15247
15248 <p><table>
15249
15250 <tr><th>Supplier</th><th>Model</th><th>NOK</th></tr>
15251 <tr><td>Teknikkmagasinet</td><td>Raspberry Pi model B</td><td>349.90</td></tr>
15252 <tr><td>Teknikkmagasinet</td><td>Raspberry Pi type B case</td><td>99.90</td></tr>
15253 <tr><td>Lefdal</td><td>Jensen Air:Link 25150</td><td>295.-</td></tr>
15254 <tr><td>Clas Ohlson</td><td>Kingston 16 GB SD card</td><td>199.-</td></tr>
15255 <tr><td>Total cost</td><td></td><td>943.80</td></tr>
15256
15257 </table></p>
15258
15259 <p>Now my mesh network at home consist of one laptop in the basement
15260 connected to my production network, one Raspberry Pi node on the 1th
15261 floor that can be seen by my neighbor across the park, and one
15262 play-node I use to develop the image building script. And some times
15263 I hook up my work horse laptop to the mesh to test it. I look forward
15264 to figuring out what kind of latency the batman-adv setup will give,
15265 and how much packet loss we will experience around the park. :)</p>
15266
15267 </div>
15268 <div class="tags">
15269
15270
15271 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox</a>, <a href="http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
15272
15273
15274 </div>
15275 </div>
15276 <div class="padding"></div>
15277
15278 <div class="entry">
15279 <div class="title">
15280 <a href="http://people.skolelinux.org/pere/blog/Perl_library_to_control_the_Spykee_robot_moved_to_github.html">Perl library to control the Spykee robot moved to github</a>
15281 </div>
15282 <div class="date">
15283 19th October 2013
15284 </div>
15285 <div class="body">
15286 <p>Back in 2010, I created a Perl library to talk to
15287 <a href="http://en.wikipedia.org/wiki/Spykee">the Spykee robot</a>
15288 (with two belts, wifi, USB and Linux) and made it available from my
15289 web page. Today I concluded that it should move to a site that is
15290 easier to use to cooperate with others, and moved it to github. If
15291 you got a Spykee robot, you might want to check out
15292 <a href="https://github.com/petterreinholdtsen/libspykee-perl">the
15293 libspykee-perl github repository</a>.</p>
15294
15295 </div>
15296 <div class="tags">
15297
15298
15299 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>.
15300
15301
15302 </div>
15303 </div>
15304 <div class="padding"></div>
15305
15306 <div class="entry">
15307 <div class="title">
15308 <a href="http://people.skolelinux.org/pere/blog/Good_causes__Debian_Outreach_Program_for_Women__EFF_documenting_the_spying_and_Open_access_in_Norway.html">Good causes: Debian Outreach Program for Women, EFF documenting the spying and Open access in Norway</a>
15309 </div>
15310 <div class="date">
15311 15th October 2013
15312 </div>
15313 <div class="body">
15314 <p>The last few days I came across a few good causes that should get
15315 wider attention. I recommend signing and donating to each one of
15316 these. :)</p>
15317
15318 <p>Via <a href="http://www.debian.org/News/weekly/2013/18/">Debian
15319 Project News for 2013-10-14</a> I came across the Outreach Program for
15320 Women program which is a Google Summer of Code like initiative to get
15321 more women involved in free software. One debian sponsor has offered
15322 to match <a href="http://debian.ch/opw2013">any donation done to Debian
15323 earmarked</a> for this initiative. I donated a few minutes ago, and
15324 hope you will to. :)</p>
15325
15326 <p>And the Electronic Frontier Foundation just announced plans to
15327 create <a href="https://supporters.eff.org/donate/nsa-videos">video
15328 documentaries about the excessive spying</a> on every Internet user that
15329 take place these days, and their need to fund the work. I've already
15330 donated. Are you next?</p>
15331
15332 <p>For my Norwegian audience, the organisation Studentenes og
15333 Akademikernes Internasjonale Hjelpefond is collecting signatures for a
15334 statement under the heading
15335 <a href="http://saih.no/Bloggers_United/">Bloggers United for Open
15336 Access</a> for those of us asking for more focus on open access in the
15337 Norwegian government. So far 499 signatures. I hope you will sign it
15338 too.</p>
15339
15340 </div>
15341 <div class="tags">
15342
15343
15344 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>.
15345
15346
15347 </div>
15348 </div>
15349 <div class="padding"></div>
15350
15351 <div class="entry">
15352 <div class="title">
15353 <a href="http://people.skolelinux.org/pere/blog/Oslo_community_mesh_network___with_NUUG_and_Hackeriet_at_Hausmania.html">Oslo community mesh network - with NUUG and Hackeriet at Hausmania</a>
15354 </div>
15355 <div class="date">
15356 11th October 2013
15357 </div>
15358 <div class="body">
15359 <p>Wireless mesh networks are self organising and self healing
15360 networks that can be used to connect computers across small and large
15361 areas, depending on the radio technology used. Normal wifi equipment
15362 can be used to create home made radio networks, and there are several
15363 successful examples like
15364 <a href="http://www.freifunk.net/">Freifunk</a> and
15365 <a href="http://www.awmn.net/">Athens Wireless Metropolitan Network</a>
15366 (see
15367 <a href="http://en.wikipedia.org/wiki/List_of_wireless_community_networks_by_region#Greece">wikipedia
15368 for a large list</a>) around the globe. To give you an idea how it
15369 work, check out the nice overview of the Kiel Freifunk community which
15370 can be seen from their
15371 <a href="http://freifunk.in-kiel.de/ffmap/nodes.html">dynamically
15372 updated node graph and map</a>, where one can see how the mesh nodes
15373 automatically handle routing and recover from nodes disappearing.
15374 There is also a small community mesh network group in Oslo, Norway,
15375 and that is the main topic of this blog post.</p>
15376
15377 <p>I've wanted to check out mesh networks for a while now, and hoped
15378 to do it as part of my involvement with the <a
15379 href="http://www.nuug.no/">NUUG member organisation</a> community, and
15380 my recent involvement in
15381 <a href="https://wiki.debian.org/FreedomBox">the Freedombox project</a>
15382 finally lead me to give mesh networks some priority, as I suspect a
15383 Freedombox should use mesh networks to connect neighbours and family
15384 when possible, given that most communication between people are
15385 between those nearby (as shown for example by research on Facebook
15386 communication patterns). It also allow people to communicate without
15387 any central hub to tap into for those that want to listen in on the
15388 private communication of citizens, which have become more and more
15389 important over the years.</p>
15390
15391 <p>So far I have only been able to find one group of people in Oslo
15392 working on community mesh networks, over at the hack space
15393 <a href="http://hackeriet.no/">Hackeriet</a> at Husmania. They seem to
15394 have started with some Freifunk based effort using OLSR, called
15395 <a href="http://oslo.freifunk.net/index.php?title=Main_Page">the Oslo
15396 Freifunk project</a>, but that effort is now dead and the people
15397 behind it have moved on to a batman-adv based system called
15398 <a href="http://meshfx.org/trac">meshfx</a>. Unfortunately the wiki
15399 site for the Oslo Freifunk project is no longer possible to update to
15400 reflect this fact, so the old project page can't be updated to point to
15401 the new project. A while back, the people at Hackeriet invited people
15402 from the Freifunk community to Oslo to talk about mesh networks. I
15403 came across this video where Hans Jørgen Lysglimt interview the
15404 speakers about this talk (from
15405 <a href="https://www.youtube.com/watch?v=N2Kd7CLkhSY">youtube</a>):</p>
15406
15407 <p><iframe width="420" height="315" src="https://www.youtube.com/embed/N2Kd7CLkhSY" frameborder="0" allowfullscreen></iframe></p>
15408
15409 <p>I mentioned OLSR and batman-adv, which are mesh routing protocols.
15410 There are heaps of different protocols, and I am still struggling to
15411 figure out which one would be "best" for some definitions of best, but
15412 given that the community mesh group in Oslo is so small, I believe it
15413 is best to hook up with the existing one instead of trying to create a
15414 completely different setup, and thus I have decided to focus on
15415 batman-adv for now. It sure help me to know that the very cool
15416 <a href="http://www.servalproject.org/">Serval project in Australia</a>
15417 is using batman-adv as their meshing technology when it create a self
15418 organizing and self healing telephony system for disaster areas and
15419 less industrialized communities. Check out this cool video presenting
15420 that project (from
15421 <a href="https://www.youtube.com/watch?v=30qNfzJCQOA">youtube</a>):</p>
15422
15423 <p><iframe width="560" height="315" src="https://www.youtube.com/embed/30qNfzJCQOA" frameborder="0" allowfullscreen></iframe></p>
15424
15425 <p>According to the wikipedia page on
15426 <a href="http://en.wikipedia.org/wiki/Wireless_mesh_network">Wireless
15427 mesh network</a> there are around 70 competing schemes for routing
15428 packets across mesh networks, and OLSR, B.A.T.M.A.N. and
15429 B.A.T.M.A.N. advanced are protocols used by several free software
15430 based community mesh networks.</p>
15431
15432 <p>The batman-adv protocol is a bit special, as it provide layer 2
15433 (as in ethernet ) routing, allowing ipv4 and ipv6 to work on the same
15434 network. One way to think about it is that it provide a mesh based
15435 vlan you can bridge to or handle like any other vlan connected to your
15436 computer. The required drivers are already in the Linux kernel at
15437 least since Debian Wheezy, and it is fairly easy to set up. A
15438 <a href="http://www.open-mesh.org/projects/batman-adv/wiki/Quick-start-guide">good
15439 introduction</a> is available from the Open Mesh project. These are
15440 the key settings needed to join the Oslo meshfx network:</p>
15441
15442 <p><table>
15443 <tr><th>Setting</th><th>Value</th></tr>
15444 <tr><td>Protocol / kernel module</td><td>batman-adv</td></tr>
15445 <tr><td>ESSID</td><td>meshfx@hackeriet</td></tr>
15446 <td>Channel / Frequency</td><td>11 / 2462</td></tr>
15447 <td>Cell ID</td><td>02:BA:00:00:00:01</td>
15448 </table></p>
15449
15450 <p>The reason for setting ad-hoc wifi Cell ID is to work around bugs
15451 in firmware used in wifi card and wifi drivers. (See a nice post from
15452 VillageTelco about
15453 "<a href="http://tiebing.blogspot.no/2009/12/ad-hoc-cell-splitting-re-post-original.html">Information
15454 about cell-id splitting, stuck beacons, and failed IBSS merges!</a>
15455 for details.) When these settings are activated and you have some
15456 other mesh node nearby, your computer will be connected to the mesh
15457 network and can communicate with any mesh node that is connected to
15458 any of the nodes in your network of nodes. :)</p>
15459
15460 <p>My initial plan was to reuse my old Linksys WRT54GL as a mesh node,
15461 but that seem to be very hard, as I have not been able to locate a
15462 firmware supporting batman-adv. If anyone know how to use that old
15463 wifi access point with batman-adv these days, please let me know.</p>
15464
15465 <p>If you find this project interesting and want to join, please join
15466 us on IRC, either channel
15467 <a href="irc://irc.freenode.net/#oslohackerspace">#oslohackerspace</a>
15468 or <a href="irc://irc.freenode.net/#nuug">#nuug</a> on
15469 irc.freenode.net.</p>
15470
15471 <p>While investigating mesh networks in Oslo, I came across an old
15472 research paper from the university of Stavanger and Telenor Research
15473 and Innovation called
15474 <a href="http://folk.uio.no/paalee/publications/netrel-egeland-iswcs-2008.pdf">The
15475 reliability of wireless backhaul mesh networks</a> and elsewhere
15476 learned that Telenor have been experimenting with mesh networks at
15477 Grünerløkka in Oslo. So mesh networks are also interesting for
15478 commercial companies, even though Telenor discovered that it was hard
15479 to figure out a good business plan for mesh networking and as far as I
15480 know have closed down the experiment. Perhaps Telenor or others would
15481 be interested in a cooperation?</p>
15482
15483 <p><strong>Update 2013-10-12</strong>: I was just
15484 <a href="http://lists.alioth.debian.org/pipermail/freedombox-discuss/2013-October/005900.html">told
15485 by the Serval project developers</a> that they no longer use
15486 batman-adv (but are compatible with it), but their own crypto based
15487 mesh system.</p>
15488
15489 </div>
15490 <div class="tags">
15491
15492
15493 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox</a>, <a href="http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
15494
15495
15496 </div>
15497 </div>
15498 <div class="padding"></div>
15499
15500 <div class="entry">
15501 <div class="title">
15502 <a href="http://people.skolelinux.org/pere/blog/Skolelinux___Debian_Edu_7_1_install_and_overview_video_from_Marcelo_Salvador.html">Skolelinux / Debian Edu 7.1 install and overview video from Marcelo Salvador</a>
15503 </div>
15504 <div class="date">
15505 8th October 2013
15506 </div>
15507 <div class="body">
15508 <p>The other day I was pleased and surprised to discover that Marcelo
15509 Salvador had published a
15510 <a href="https://www.youtube.com/watch?v=w-GgpdqgLFc">video on
15511 Youtube</a> showing how to install the standalone Debian Edu /
15512 Skolelinux profile. This is the profile intended for use at home or
15513 on laptops that should not be integrated into the provided network
15514 services (no central home directory, no Kerberos / LDAP directory etc,
15515 in other word a single user machine). The result is 11 minutes long,
15516 and show some user applications (seem to be rather randomly picked).
15517 Missed a few of my favorites like celestia, planets and chromium
15518 showing the <a href="http://www.zygotebody.com/">Zygote Body 3D model
15519 of the human body</a>, but I guess he did not know about those or find
15520 other programs more interesting. :) And the video do not show the
15521 advantages I believe is one of the most valuable featuers in Debian
15522 Edu, its central school server making it possible to run hundreds of
15523 computers without hard drives by installing one central
15524 <a href="http://www.ltsp.org/">LTSP server</a>.</p>
15525
15526 <p>Anyway, check out the video, embedded below and linked to above:</p>
15527
15528 <iframe width="420" height="315" src="http://www.youtube.com/embed/w-GgpdqgLFc" frameborder="0" allowfullscreen></iframe>
15529
15530 <p>Are there other nice videos demonstrating Skolelinux? Please let
15531 me know. :)</p>
15532
15533 </div>
15534 <div class="tags">
15535
15536
15537 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>.
15538
15539
15540 </div>
15541 </div>
15542 <div class="padding"></div>
15543
15544 <div class="entry">
15545 <div class="title">
15546 <a href="http://people.skolelinux.org/pere/blog/Finally__Debian_Edu_Wheezy_is_released_today_.html">Finally, Debian Edu Wheezy is released today!</a>
15547 </div>
15548 <div class="date">
15549 29th September 2013
15550 </div>
15551 <div class="body">
15552 <p>A few hours ago, the announcement for the first stable release of
15553 Debian Edu Wheezy went out from the Debian publicity team. The
15554 complete announcement text can be found at
15555 <a href="http://www.debian.org/News/2013/20130928">the Debian News
15556 section</a>, translated to several languages. Please check it out.</p>
15557
15558 <p>There is one minor known problem that we will fix very soon. One
15559 can not install a amd64 Thin Client Server using PXE, as the /var/
15560 partition is too small. A workaround is to extend the partition (use
15561 lvresize + resize2fs in tty 2 while installing).</p>
15562
15563 </div>
15564 <div class="tags">
15565
15566
15567 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>.
15568
15569
15570 </div>
15571 </div>
15572 <div class="padding"></div>
15573
15574 <div class="entry">
15575 <div class="title">
15576 <a href="http://people.skolelinux.org/pere/blog/Videos_about_the_Freedombox_project___for_inspiration_and_learning.html">Videos about the Freedombox project - for inspiration and learning</a>
15577 </div>
15578 <div class="date">
15579 27th September 2013
15580 </div>
15581 <div class="body">
15582 <p>The <a href="http://www.freedomboxfoundation.org/">Freedombox
15583 project</a> have been going on for a while, and have presented the
15584 vision, ideas and solution several places. Here is a little
15585 collection of videos of talks and presentation of the project.</p>
15586
15587 <ul>
15588
15589 <li><a href="http://www.youtube.com/watch?v=ukvUz5taxvA">FreedomBox -
15590 2,5 minute marketing film</a> (Youtube)</li>
15591
15592 <li><a href="http://www.youtube.com/watch?v=SzW25QTVWsE">Eben Moglen
15593 discusses the Freedombox on CBS news 2011</a> (Youtube)</li>
15594
15595 <li><a href="http://www.youtube.com/watch?v=Ae8SZbxfE0g">Eben Moglen -
15596 Freedom in the Cloud - Software Freedom, Privacy and and Security for
15597 Web 2.0 and Cloud computing at ISOC-NY Public Meeting 2010</a>
15598 (Youtube)</li>
15599
15600 <li><a href="http://www.youtube.com/watch?v=vNaIji_3xBE">Fosdem 2011
15601 Keynote by Eben Moglen presenting the Freedombox</a> (Youtube)</li>
15602
15603 <li><a href="http://www.youtube.com/watch?v=9bDDUyJSQ9s">Presentation of
15604 the Freedombox by James Vasile at Elevate in Gratz 2011</a> (Youtube)</li>
15605
15606 <li><a href="http://www.youtube.com/watch?v=zQTmnk27g9s"> Freedombox -
15607 Discovery, Identity, and Trust by Nick Daly at Freedombox Hackfest New
15608 York City in 2012</a> (Youtube)</li>
15609
15610 <li><a href="http://www.youtube.com/watch?v=tkbSB4Ba7Ck">Introduction
15611 to the Freedombox at Freedombox Hackfest New York City in 2012</a>
15612 (Youtube)</li>
15613
15614 <li><a href="http://www.youtube.com/watch?v=z-P2Jaeg0aQ">Freedom, Out
15615 of the Box! by Bdale Garbee at linux.conf.au Ballarat, 2012</a> (Youtube) </li>
15616
15617 <li><a href="https://archive.fosdem.org/2013/schedule/event/freedombox/">Freedombox
15618 1.0 by Eben Moglen and Bdale Garbee at Fosdem 2013</a> (FOSDEM) </li>
15619
15620 <li><a href="http://www.youtube.com/watch?v=e1LpYX2zVYg">What is the
15621 FreedomBox today by Bdale Garbee at Debconf13 in Vaumarcus
15622 2013</a> (Youtube)</li>
15623
15624 </ul>
15625
15626 <p>A larger list is available from
15627 <a href="https://wiki.debian.org/FreedomBox/TalksAndPresentations">the
15628 Freedombox Wiki</a>.</p>
15629
15630 <p>On other news, I am happy to report that Freedombox based on Debian
15631 Jessie is coming along quite well, and soon both Owncloud and using
15632 Tor should be available for testers of the Freedombox solution. :) In
15633 a few weeks I hope everything needed to test it is included in Debian.
15634 The withsqlite package is already in Debian, and the plinth package is
15635 pending in NEW. The third and vital part of that puzzle is the
15636 metapackage/setup framework, which is still pending an upload. Join
15637 us on <a href="irc://irc.debian.org:6667/%23freedombox">IRC
15638 (#freedombox on irc.debian.org)</a> and
15639 <a href="http://lists.alioth.debian.org/mailman/listinfo/freedombox-discuss">the
15640 mailing list</a> if you want to help make this vision come true.</p>
15641
15642 </div>
15643 <div class="tags">
15644
15645
15646 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</a>.
15647
15648
15649 </div>
15650 </div>
15651 <div class="padding"></div>
15652
15653 <div class="entry">
15654 <div class="title">
15655 <a href="http://people.skolelinux.org/pere/blog/Third_and_probably_last_beta_release_of_Debian_Edu_Wheezy.html">Third and probably last beta release of Debian Edu Wheezy</a>
15656 </div>
15657 <div class="date">
15658 16th September 2013
15659 </div>
15660 <div class="body">
15661 <p>The third wheezy based beta release of Debian Edu was wrapped up
15662 today. This is the release announcement from Holger Levsen:</p>
15663
15664 <blockquote>
15665 <p>Hi,</p>
15666
15667 <p>it is my pleasure to announce the third beta release (beta 2 for
15668 short) of <a href="http://www.skolelinux.org/">Debian Edu /
15669 Skolelinux</a> based on Debian Wheezy!</p>
15670
15671 <p>Please test these images extensivly, if no new problems are found
15672 we plan to do this final Debian Edu Wheezy release this coming
15673 weekend. We are not aware of any major problems or blockers in beta2,
15674 if you find something, please notify us immediately!</p>
15675
15676 <p>(More about the remaining steps for the Edu Wheezy release in
15677 another mail to the edu list tonight or tomorrow...)</p>
15678
15679 <p>Noteworthy changes and software updates for Debian Edu 7.1+edu0~b2
15680 compared to beta1:</p>
15681
15682 <ul>
15683
15684 <li>The KDE proxy setup has been adjusted to use the provided wpad.dat. This
15685 also gets Chromium to use this proxy.</li>
15686 <li>Install kdepim-groupware with KDE desktops to make sure korganizer
15687 understand ical/dav sources.</li>
15688 <li>Increased default maximum size of /var/spool/squid and /skole/backup on the
15689 main server.</li>
15690 <li>A source DVD image containing all source packages is now available as well.</li>
15691 <li>Updates for chromium (29.0.1547.57-1~deb7u1), imagemagick
15692 (6.7.7.10-5+deb7u2), php5 (5.4.4-14+deb7u4), libmodplug
15693 (0.8.8.4-3+deb7u1+git20130828), tiff (4.0.2-6+deb7u2), linux-image
15694 (3.2.0-4-486_3.2.46-1+deb7u1).</li>
15695
15696 </ul>
15697
15698 <p>Where to get it:</p>
15699
15700 <p>To download the multiarch netinstall CD release you can use</p>
15701
15702 <ul>
15703 <li><a href="ftp://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b2-CD.iso">ftp://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b2-CD.iso</a></li>
15704 <li><a href="http://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b2-CD.iso">http://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b2-CD.iso</a></li>
15705 <li>rsync -avzP ftp.skolelinux.org::skolelinux-cd/wheezy/debian-edu-7.1+edu0~b2-CD.iso .</li>
15706 </ul>
15707
15708 <p>The SHA1SUM of this image is: 3a1c89f4666df80eebcd46c5bf5fedb866f9472f</p>
15709
15710 <p>To download the multiarch USB stick ISO release you can use
15711 <ul>
15712 <li><a href="ftp://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b2-USB.iso">ftp://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b2-USB.iso</a></li>
15713 <li><a href="http://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b2-USB.iso">http://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b2-USB.iso</a></li>
15714 <li>rsync -avzP ftp.skolelinux.org::skolelinux-cd/wheezy/debian-edu-7.1+edu0~b2-USB.iso .</li>
15715 </ul>
15716
15717 <p>The SHA1SUM of this image is: 702d1718548f401c74bfa6df9f032cc3ee16597e</p>
15718
15719 <p>The Source DVD image has the filename
15720 debian-edu-7.1+edu0~b2-source-DVD.iso and the SHA1SUM
15721 089eed8b3f962db47aae1f6a9685e9bb2fa30ca5 and is available the same way
15722 as the other isos.</p>
15723
15724 <p>How to report bugs</p>
15725
15726 <p>For information how to report bugs please see
15727 <br><a href="http://wiki.debian.org/DebianEdu/HowTo/ReportBugs">http://wiki.debian.org/DebianEdu/HowTo/ReportBugs</a></p>
15728
15729
15730 <p>About Debian Edu and Skolelinux</p>
15731
15732 <p>Debian Edu, also known as Skolelinux, is a Linux distribution based
15733 on Debian providing an out-of-the box environment of a completely
15734 configured school network. Immediately after installation a school
15735 server running all services needed for a school network is set up just
15736 waiting for users and machines being added via GOsa², a comfortable
15737 Web-UI. A netbooting environment is prepared using PXE, so after
15738 initial installation of the main server from CD or USB stick all other
15739 machines can be installed via the network. The provided school server
15740 provides LDAP database and Kerberos authentication service,
15741 centralized home directories, DHCP server, web proxy and many other
15742 services. The desktop contains more than 60 educational software
15743 packages and more are available from the Debian archive, and schools
15744 can choose between KDE, Gnome, LXDE and Xfce desktop environment.</p>
15745
15746 <p>This is the seventh test release based on Debian Wheezy. Basically
15747 this is an updated and slightly improved version compared to the
15748 Squeeze release.</p>
15749
15750 <p>Notes for upgrades from Alpha Prereleases</p>
15751
15752 <p>Alpha based installations should reinstall or downgrade the
15753 versions of gosa and libpam-mklocaluser to the ones used in this beta
15754 release. Both alpha and beta0 based installations should reinstall or
15755 deal with gosa.conf manually; there are two options: (1) Keep
15756 gosa.conf and edit this file as outlined on the mailing list. (2)
15757 Accept the new version of gosa.conf and replace both contained admin
15758 password placeholders with the password hashes found in the old one
15759 (backup copy!). In both cases all users need to change their password
15760 to make sure a password is set for CIFS access to their home
15761 directory.</p>
15762
15763
15764 <p>cheers,
15765 <br> Holger</p>
15766 </blockquote>
15767
15768 </div>
15769 <div class="tags">
15770
15771
15772 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>.
15773
15774
15775 </div>
15776 </div>
15777 <div class="padding"></div>
15778
15779 <div class="entry">
15780 <div class="title">
15781 <a href="http://people.skolelinux.org/pere/blog/Recipe_to_test_the_Freedombox_project_on_amd64_or_Raspberry_Pi.html">Recipe to test the Freedombox project on amd64 or Raspberry Pi</a>
15782 </div>
15783 <div class="date">
15784 10th September 2013
15785 </div>
15786 <div class="body">
15787 <p>I was introduced to the
15788 <a href="http://www.freedomboxfoundation.org/">Freedombox project</a>
15789 in 2010, when Eben Moglen presented his vision about serving the need
15790 of non-technical people to keep their personal information private and
15791 within the legal protection of their own homes. The idea is to give
15792 people back the power over their network and machines, and return
15793 Internet back to its intended peer-to-peer architecture. Instead of
15794 depending on a central service, the Freedombox will give everyone
15795 control over their own basic infrastructure.</p>
15796
15797 <p>I've intended to join the effort since then, but other tasks have
15798 taken priority. But this summers nasty news about the misuse of trust
15799 and privilege exercised by the "western" intelligence gathering
15800 communities increased my eagerness to contribute to a point where I
15801 actually started working on the project a while back.</p>
15802
15803 <p>The <a href="https://alioth.debian.org/projects/freedombox/">initial
15804 Debian initiative</a> based on the vision from Eben Moglen, is to
15805 create a simple and cheap Debian based appliance that anyone can hook
15806 up in their home and get access to secure and private services and
15807 communication. The initial deployment platform have been the
15808 <a href="http://www.globalscaletechnologies.com/t-dreamplugdetails.aspx">Dreamplug</a>,
15809 which is a piece of hardware I do not own. So to be able to test what
15810 the current Freedombox setup look like, I had to come up with a way to install
15811 it on some hardware I do have access to. I have rewritten the
15812 <a href="https://github.com/NickDaly/freedom-maker">freedom-maker</a>
15813 image build framework to use .deb packages instead of only copying
15814 setup into the boot images, and thanks to this rewrite I am able to
15815 set up any machine supported by Debian Wheezy as a Freedombox, using
15816 the previously mentioned deb (and a few support debs for packages
15817 missing in Debian).</p>
15818
15819 <p>The current Freedombox setup consist of a set of bootstrapping
15820 scripts
15821 (<a href="https://github.com/petterreinholdtsen/freedombox-setup">freedombox-setup</a>),
15822 and a administrative web interface
15823 (<a href="https://github.com/NickDaly/Plinth">plinth</a> + exmachina +
15824 withsqlite), as well as a privacy enhancing proxy based on
15825 <a href="http://packages.qa.debian.org/privoxy">privoxy</a>
15826 (freedombox-privoxy). There is also a web/javascript based XMPP
15827 client (<a href="http://packages.qa.debian.org/jwchat">jwchat</a>)
15828 trying (unsuccessfully so far) to talk to the XMPP server
15829 (<a href="http://packages.qa.debian.org/ejabberd">ejabberd</a>). The
15830 web interface is pluggable, and the goal is to use it to enable OpenID
15831 services, mesh network connectivity, use of TOR, etc, etc. Not much of
15832 this is really working yet, see
15833 <a href="https://github.com/NickDaly/freedombox-todos/blob/master/TODO">the
15834 project TODO</a> for links to GIT repositories. Most of the code is
15835 on github at the moment. The HTTP proxy is operational out of the
15836 box, and the admin web interface can be used to add/remove plinth
15837 users. I've not been able to do anything else with it so far, but
15838 know there are several branches spread around github and other places
15839 with lots of half baked features.</p>
15840
15841 <p>Anyway, if you want to have a look at the current state, the
15842 following recipes should work to give you a test machine to poke
15843 at.</p>
15844
15845 <p><strong>Debian Wheezy amd64</strong></p>
15846
15847 <ol>
15848
15849 <li>Fetch normal Debian Wheezy installation ISO.</li>
15850 <li>Boot from it, either as CD or USB stick.</li>
15851 <li><p>Press [tab] on the boot prompt and add this as a boot argument
15852 to the Debian installer:<p>
15853 <pre>url=<a href="http://www.reinholdtsen.name/freedombox/preseed-wheezy.dat">http://www.reinholdtsen.name/freedombox/preseed-wheezy.dat</a></pre></li>
15854
15855 <li>Answer the few language/region/password questions and pick disk to
15856 install on.</li>
15857
15858 <li>When the installation is finished and the machine have rebooted a
15859 few times, your Freedombox is ready for testing.</li>
15860
15861 </ol>
15862
15863 <p><strong>Raspberry Pi Raspbian</strong></p>
15864
15865 <ol>
15866
15867 <li>Fetch a Raspbian SD card image, create SD card.</li>
15868 <li>Boot from SD card, extend file system to fill the card completely.</li>
15869 <li><p>Log in and add this to /etc/sources.list:</p>
15870 <pre>
15871 deb <a href="http://www.reinholdtsen.name/freedombox/">http://www.reinholdtsen.name/freedombox</a> wheezy main
15872 </pre></li>
15873 <li><p>Run this as root:</p>
15874 <pre>
15875 wget -O - http://www.reinholdtsen.name/freedombox/BE1A583D.asc | \
15876 apt-key add -
15877 apt-get update
15878 apt-get install freedombox-setup
15879 /usr/lib/freedombox/setup
15880 </pre></li>
15881 <li>Reboot into your freshly created Freedombox.</li>
15882
15883 </ol>
15884
15885 <p>You can test it on other architectures too, but because the
15886 freedombox-privoxy package is binary, it will only work as intended on
15887 the architectures where I have had time to build the binary and put it
15888 in my APT repository. But do not let this stop you. It is only a
15889 short "<tt>apt-get source -b freedombox-privoxy</tt>" away. :)</p>
15890
15891 <p>Note that by default Freedombox is a DHCP server on the
15892 192.168.1.0/24 subnet, so if this is your subnet be careful and turn
15893 off the DHCP server by running "<tt>update-rc.d isc-dhcp-server
15894 disable</tt>" as root.</p>
15895
15896 <p>Please let me know if this works for you, or if you have any
15897 problems. We gather on the IRC channel
15898 <a href="irc://irc.debian.org:6667/%23freedombox">#freedombox</a> on
15899 irc.debian.org and the
15900 <a href="http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/freedombox-discuss">project
15901 mailing list</a>.</p>
15902
15903 <p>Once you get your freedombox operational, you can visit
15904 <tt>http://your-host-name:8001/</tt> to see the state of the plint
15905 welcome screen (dead end - do not be surprised if you are unable to
15906 get past it), and next visit <tt>http://your-host-name:8001/help/</tt>
15907 to look at the rest of plinth. The default user is 'admin' and the
15908 default password is 'secret'.</p>
15909
15910 </div>
15911 <div class="tags">
15912
15913
15914 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</a>.
15915
15916
15917 </div>
15918 </div>
15919 <div class="padding"></div>
15920
15921 <div class="entry">
15922 <div class="title">
15923 <a href="http://people.skolelinux.org/pere/blog/Second_beta_release__beta_1__of_Debian_Edu_Skolelinux_based_on_Debian_Wheezy.html">Second beta release (beta 1) of Debian Edu/Skolelinux based on Debian Wheezy</a>
15924 </div>
15925 <div class="date">
15926 22nd August 2013
15927 </div>
15928 <div class="body">
15929 <p>The second wheezy based beta release of Debian Edu was wrapped up
15930 today, slightly delayed because of some bugs in the initial Windows
15931 integration fixes . This is the release announcement:</p>
15932
15933 <p><strong>New features for Debian Edu 7.1+edu0~b1 released 2013-08-22</strong></p>
15934
15935 <p>These are the release notes for Debian Edu / Skolelinux
15936 7.1+edu0~b1, based on Debian with codename "Wheezy".</p>
15937
15938 <p><strong>About Debian Edu and Skolelinux</strong></p>
15939
15940 <p><a href="http://www.skolelinux.org/">Debian Edu, also known as
15941 Skolelinux</a>, is a Linux distribution based on Debian providing an
15942 out-of-the box environment of a completely configured school
15943 network. Immediately after installation a school server running all
15944 services needed for a school network is set up just waiting for users
15945 and machines being added via GOsa², a comfortable Web-UI. A netbooting
15946 environment is prepared using PXE, so after initial installation of
15947 the main server from CD or USB stick all other machines can be
15948 installed via the network. The provided school server provides LDAP
15949 database and Kerberos authentication service, centralized home
15950 directories, DHCP server, web proxy and many other services. The
15951 desktop contains
15952 <a href="http://people.skolelinux.org/pere/blog/Educational_applications_included_in_Debian_Edu___Skolelinux__the_screenshot_collection____.html">more
15953 than 60 educational software packages</a> and more are available from
15954 the Debian archive, and schools can choose between KDE, Gnome, LXDE
15955 and Xfce desktop environment.</p>
15956
15957 <p>This is the sixth test release based on Debian Wheezy. Basically this
15958 is an updated and slightly improved version compared to the Squeeze
15959 release.</p>
15960
15961 <p>ALERT: Alpha based installations should reinstall or downgrade the
15962 versions of gosa and libpam-mklocaluser to the ones used in this beta
15963 release. Both alpha and beta0 based installations should reinstall or
15964 deal with gosa.conf manually; there are two options: (1) Keep
15965 gosa.conf and edit this file as outlined
15966 <a href="http://lists.debian.org/debian-edu/2013/08/msg00127.html">on
15967 the mailing list</a>. (2) Accept the new version of gosa.conf and
15968 replace both contained admin password placeholders with the password
15969 hashes found in the old one (backup copy!). In both cases every user
15970 need to change their their password to make sure a password is set for
15971 CIFS access to their home directory.</p>
15972
15973 <p><strong>Software updates</strong></p>
15974
15975 <ul>
15976
15977 <li>Added ssh askpass packages to default installation, to ensure ssh
15978 work also without a attached tty.</li>
15979 <li>Add the command-not-found package to the default installation to
15980 make it easier to figure out where to find missing command line
15981 tools. Please note, that the command 'update-command-not-found'
15982 has to be run as root to actually make it useful (internet access
15983 required).</li>
15984
15985 </ul>
15986
15987 <p><strong>Other changes</strong></p>
15988
15989 <ul>
15990
15991 <li>Adjusted the USB stick ISO image build to include every tool
15992 needed for desktop=xfce installations.</li>
15993 <li>Adjust thin-client-server task to work when installing from USB
15994 stick ISO image.</li>
15995 <li>Made new grub artwork (changed png from indexed to RGB format).</li>
15996 <li>Minor cleanup in the CUPS setup.</li>
15997 <li>Make sure that bootstrapping of the Samba domain really happens
15998 during installation of the main server and adjust SID handling to
15999 cope with this.</li>
16000 <li>Make Samba passwords changeable (again) via GOsa².</li>
16001 <li>Fix generation of LM and NT password hashes via GOsa² to avoid
16002 empty password hashes.</li>
16003 <li>Adapted Samba machine domain joining to latest change in the
16004 smbldap-tools Perl package, fixing bugs blocking Windows machines
16005 from joining the Samba domain.</li>
16006
16007 </ul>
16008
16009 <p><strong>Known issues</strong></p>
16010
16011 <ul>
16012
16013 <li>KDE fails to understand the wpad.dat file provided, causing it to
16014 not use the http proxy as it should.</li>
16015 <li>Chromium also fails to use the proxy when using the KDE desktop
16016 (using the KDE configuration).</li>
16017
16018 </ul>
16019
16020 <p><strong>Where to get it</strong></p>
16021
16022 <p>To download the multiarch netinstall CD release you can use</p>
16023
16024 <ul>
16025
16026 <li><a href="ftp://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b1-CD.iso">ftp://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b1-CD.iso</a></li>
16027
16028 <li><a href="http://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b1-CD.iso">http://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b1-CD.iso</a></li>
16029
16030 <li>rsync -avzP ftp.skolelinux.org::skolelinux-cd/wheezy/debian-edu-7.1+edu0~b1-CD.iso .</li>
16031
16032 </ul>
16033
16034 <p>The MD5SUM of this image is: 1e357f80b55e703523f2254adde6d78b
16035 <br>The SHA1SUM of this image is: 7157f9be5fd27c7694d713c6ecfed61c3edda3b2</p>
16036
16037 <p>To download the multiarch USB stick ISO release you can use</p>
16038
16039 <ul>
16040
16041 <li><a href="ftp://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b1-USB.iso">ftp://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b1-USB.iso</a></li>
16042 <li><a href="http://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b1-USB.iso">http://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b1-USB.iso</a></li>
16043 <li>rsync -avzP ftp.skolelinux.org::skolelinux-cd/wheezy/debian-edu-7.1+edu0~b1-USB.iso .</li>
16044
16045 </ul>
16046
16047 <p>The MD5SUM of this image is: 7a8408ead59cf7e3cef25afb6e91590b
16048 <br>The SHA1SUM of this image is: f1817c031f02790d5edb3bfa0dcf8451088ad119</p>
16049
16050
16051 <p><strong>How to report bugs</strong></p>
16052
16053 <p><a href="http://wiki.debian.org/DebianEdu/HowTo/ReportBugs">http://wiki.debian.org/DebianEdu/HowTo/ReportBugs</a>
16054
16055 </div>
16056 <div class="tags">
16057
16058
16059 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>.
16060
16061
16062 </div>
16063 </div>
16064 <div class="padding"></div>
16065
16066 <div class="entry">
16067 <div class="title">
16068 <a href="http://people.skolelinux.org/pere/blog/Intel_180_SSD_disk_with_Lenovo_firmware_can_not_use_Intel_firmware.html">Intel 180 SSD disk with Lenovo firmware can not use Intel firmware</a>
16069 </div>
16070 <div class="date">
16071 18th August 2013
16072 </div>
16073 <div class="body">
16074 <p>Earlier, I reported about
16075 <a href="http://people.skolelinux.org/pere/blog/How_to_fix_a_Thinkpad_X230_with_a_broken_180_GB_SSD_disk.html">my
16076 problems using an Intel SSD 520 Series 180 GB disk</a>. Friday I was
16077 told by IBM that the original disk should be thrown away. And as
16078 there no longer was a problem if I bricked the firmware, I decided
16079 today to try to install Intel firmware to replace the Lenovo firmware
16080 currently on the disk.</p>
16081
16082 <p>I searched the Intel site for firmware, and found
16083 <a href="https://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&ProdId=3472&DwnldID=18363&ProductFamily=Solid-State+Drives+and+Caching&ProductLine=Intel%c2%ae+High+Performance+Solid-State+Drive&ProductProduct=Intel%c2%ae+SSD+520+Series+(180GB%2c+2.5in+SATA+6Gb%2fs%2c+25nm%2c+MLC)&lang=eng">issdfut_2.0.4.iso</a>
16084 (aka Intel SATA Solid-State Drive Firmware Update Tool) which
16085 according to the site should contain the latest firmware for SSD
16086 disks. I inserted the broken disk in one of my spare laptops and
16087 booted the ISO from a USB stick. The disk was recognized, but the
16088 program claimed the newest firmware already were installed and refused
16089 to insert any Intel firmware. So no change, and the disk is still
16090 unable to handle write load. :( I guess the only way to get them
16091 working would be if Lenovo releases new firmware. No idea how likely
16092 that is. Anyway, just blogging about this test for completeness. I
16093 got a working Samsung disk, and see no point in spending more time on
16094 the broken disks.</p>
16095
16096 </div>
16097 <div class="tags">
16098
16099
16100 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>.
16101
16102
16103 </div>
16104 </div>
16105 <div class="padding"></div>
16106
16107 <div class="entry">
16108 <div class="title">
16109 <a href="http://people.skolelinux.org/pere/blog/90_percent_done_with_the_Norwegian_draft_translation_of_Free_Culture.html">90 percent done with the Norwegian draft translation of Free Culture</a>
16110 </div>
16111 <div class="date">
16112 2nd August 2013
16113 </div>
16114 <div class="body">
16115 <p>It has been a while since my last update. Since last summer, I
16116 have worked on a Norwegian
16117 <a href="http://www.docbook.org/">docbook</a> version of the 2004 book
16118 <a href="http://free-culture.cc/">Free Culture</a> by Lawrence Lessig,
16119 to get a Norwegian text explaining the problems with the copyright
16120 law. Yesterday, I finally broken the 90% mark, when counting the
16121 number of strings to translate. Due to real life constraints, I have
16122 not had time to work on it since March, but when the summer broke out,
16123 I found time to work on it again. Still lots of work left, but the
16124 first draft is nearing completion. I created a graph to show the
16125 progress of the translation:</p>
16126
16127 <p><img width="80%" align="center" src="https://github.com/petterreinholdtsen/free-culture-lessig/raw/master/progress.png"></p>
16128
16129 <p>When the first draft is done, the translated text need to be
16130 proof read, and the remaining formatting problems with images and SVG
16131 drawings need to be fixed. There are probably also some index entries
16132 missing that need to be added. This can be done by comparing the
16133 index entries listed in the SiSU version of the book, or comparing the
16134 English docbook version with the paper version. Last, the colophon
16135 page with ISBN numbers etc need to be wrapped up before the release is
16136 done. I should also figure out how to get correct Norwegian sorting
16137 of the index pages. All docbook tools I have tried so far (xmlto,
16138 docbook-xsl, dblatex) get the order of symbols and the special
16139 Norwegian letters ÆØÅ wrong.</p>
16140
16141 <p>There is still need for translators and people with docbook
16142 knowledge, to be able to get a good looking book (I still struggle
16143 with dblatex, xmlto and docbook-xsl) as well as to do the draft
16144 translation and proof reading. And I would like the figures to be
16145 redrawn as SVGs to make it easy to translate them. Any SVG master
16146 around? There are also some legal terms that are unfamiliar to me.
16147 If you want to help, please get in touch with me, and check out the
16148 project files currently available from
16149 <a href="https://github.com/petterreinholdtsen/free-culture-lessig">github</a>.</p>
16150
16151 <p>If you are curious what the translated book currently look like,
16152 the updated
16153 <a href="https://github.com/petterreinholdtsen/free-culture-lessig/blob/master/archive/freeculture.nb.pdf?raw=true">PDF</a>
16154 and
16155 <a href="https://github.com/petterreinholdtsen/free-culture-lessig/blob/master/archive/freeculture.nb.epub?raw=true">EPUB</a>
16156 are published on github. The HTML version is published as well, but
16157 github hand it out with MIME type text/plain, confusing browsers, so I
16158 saw no point in linking to that version.</p>
16159
16160 </div>
16161 <div class="tags">
16162
16163
16164 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>.
16165
16166
16167 </div>
16168 </div>
16169 <div class="padding"></div>
16170
16171 <div class="entry">
16172 <div class="title">
16173 <a href="http://people.skolelinux.org/pere/blog/First_beta_release_of_Debian_Edu_Skolelinux_based_on_Debian_Wheezy.html">First beta release of Debian Edu/Skolelinux based on Debian Wheezy</a>
16174 </div>
16175 <div class="date">
16176 27th July 2013
16177 </div>
16178 <div class="body">
16179 <p>The first wheezy based beta release of Debian Edu was wrapped up
16180 today. This is the release announcement:</p>
16181
16182 <p><strong>New features for Debian Edu 7.1+edu0~b0 released
16183 2013-07-27</strong></p>
16184
16185 <p>These are the release notes for for Debian Edu / Skolelinux
16186 7.1+edu0~b0, based on Debian with codename "Wheezy".</p>
16187
16188 <p><strong>About Debian Edu and Skolelinux</strong></p>
16189
16190 <p><a href="http://www.skolelinux.org/">Debian Edu, also known as
16191 Skolelinux</a>, is a Linux distribution based on Debian providing an
16192 out-of-the box environment of a completely configured school
16193 network. Immediately after installation a school server running all
16194 services needed for a school network is set up just waiting for users
16195 and machines being added via GOsa², a comfortable Web-UI. A netbooting
16196 environment is prepared using PXE, so after initial installation of
16197 the main server from CD, DVD or USB stick all other machines can be
16198 installed via the network. The provided school server provides LDAP
16199 database and Kerberos authentication service, centralized home
16200 directories, DHCP server, web proxy and many other services. The
16201 desktop contains
16202 <a href="http://people.skolelinux.org/pere/blog/Educational_applications_included_in_Debian_Edu___Skolelinux__the_screenshot_collection____.html">more
16203 than 60 educational software packages</a> and more are available from
16204 the Debian archive, and schools can choose between KDE, Gnome, LXDE
16205 and Xfce desktop environment.</p>
16206
16207 <p>This is the fifth test release based on Debian Wheezy. Basically
16208 this is an updated and slightly improved version compared to the
16209 Squeeze release.</p>
16210
16211 <p>ALERT: Alpha based installations should reinstall or downgrade the
16212 versions of gosa and libpam-mklocaluser to the ones used in this beta
16213 release.</p>
16214
16215 <p><strong>Software updates</strong></p>
16216
16217 <ul>
16218
16219 <li>Switched roaming workstation profiles from wicd to network-manager
16220 for network configuration, as wicd didn't work any more.</li>
16221 <li>Changed version numbers of patched gosa and libpam-mklocaluser
16222 packages to make sure our locally patched versions will be replaced
16223 by the official packages when they are released from Debian. Those
16224 installing alpha version need to reinstall or manually downgrade gosa
16225 and libpam-mklocaluser.</li>
16226 <li>Added bluetooth tools to the default desktop (bluedevil, blueman).</li>
16227 <li>Added tools for sharing the desktop on KDE (krdc, krfb).</li>
16228 <li>Added valgrind to the default installation for easier debugging of
16229 crash bugs.</li>
16230
16231 </ul>
16232
16233 <p><strong>Other changes</strong></p>
16234
16235 <ul>
16236
16237 <li>Fixed artwork package to work with gnome, no longer break
16238 desktop=gnome installations.</li>
16239 <li>Adjusted installer to now work when forced to use a proxy with the
16240 netinst CD.</li>
16241 <li>Fixed code detecting and setting/loading hardware specific
16242 setup/firmware to work more robust out of the box.</li>
16243 <li>Adjusted Kerberos setup to detect realm and server settings at
16244 install time instead of dynamically at run time. This avoid a crash
16245 with krb5-auth-dialog on diskless workstations without a DNS name.</li>
16246 <li>Worked around misfeature in network-manager not calling the dhclient
16247 exit hooks, causing automatic proxy configuration and automatic host
16248 name setting at run time to work again.</li>
16249 <li>Fixed feature setting the default Iceweasel start page from URL
16250 fetched from LDAP, to allow schools to set the global default by
16251 updating the dc=skole,dc=skolelinux,dc=no LDAP object.</li>
16252 <li>Changed default host name on all networked machines to be unique
16253 (generated from MAC or reverse DNS) after boot.</li>
16254 <li>Adjusted partition sizes to make sure they are big enough.</li>
16255
16256 </ul>
16257
16258 <p><strong>Known issues</strong></p>
16259
16260 <ul>
16261
16262 <li>Grub is missing the new artwork.</li>
16263 <li>KDE fail to understand the wpad.dat file provided, causing it to
16264 not use the http proxy as it should.</li>
16265 <li>Chromium also fail to use the proxy.</li>
16266
16267 </ul>
16268
16269 <p><strong>Where to get it</strong></p>
16270
16271 <p>To download the multiarch netinstall CD release you can use</p>
16272
16273 <ul>
16274
16275 <li><a href="ftp://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b0-CD.iso">ftp://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b0-CD.iso</a></li>
16276
16277 <li><a href="http://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b0-CD.iso">http://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b0-CD.iso</a></li>
16278
16279 <li>rsync -avzP ftp.skolelinux.org::skolelinux-cd/wheezy/debian-edu-7.1+edu0~b0-CD.iso .</li>
16280
16281 </ul>
16282
16283 <p>The MD5SUM of this image is: 55d5de9765b6dccd5d9ec33cf1a07109
16284 <br>The SHA1SUM of this image is: 996a1d9517740e4d627d100de2d12b23dd545a3f</p>
16285
16286 <p>To download the multiarch USB stick ISO release you can use</p>
16287
16288 <ul>
16289
16290 <li><a href="ftp://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b0-USB.iso">ftp://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b0-USB.iso</a></li>
16291 <li><a href="http://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b0-USB.iso">http://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~b0-USB.iso</a></li>
16292 <li>rsync -avzP ftp.skolelinux.org::skolelinux-cd/wheezy/debian-edu-7.1+edu0~b0-USB.iso .</li>
16293
16294 </ul>
16295
16296 <p>The MD5SUM of this image is: d8f0818c51a78d357de794066f289f69
16297 <br>The SHA1SUM of this image is: 49185ca354e8d0543240423746924f76a6cee733</p>
16298
16299
16300 <p><strong>How to report bugs</strong></p>
16301
16302 <p><a href="http://wiki.debian.org/DebianEdu/HowTo/ReportBugs">http://wiki.debian.org/DebianEdu/HowTo/ReportBugs</a>
16303
16304 </div>
16305 <div class="tags">
16306
16307
16308 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>.
16309
16310
16311 </div>
16312 </div>
16313 <div class="padding"></div>
16314
16315 <div class="entry">
16316 <div class="title">
16317 <a href="http://people.skolelinux.org/pere/blog/How_to_fix_a_Thinkpad_X230_with_a_broken_180_GB_SSD_disk.html">How to fix a Thinkpad X230 with a broken 180 GB SSD disk</a>
16318 </div>
16319 <div class="date">
16320 17th July 2013
16321 </div>
16322 <div class="body">
16323 <p>Today I switched to
16324 <a href="http://people.skolelinux.org/pere/blog/The_Thinkpad_is_dead__long_live_the_Thinkpad_X230_.html">my
16325 new laptop</a>. I've previously written about the problems I had with
16326 my new Thinkpad X230, which was delivered with an
16327 <a href="http://people.skolelinux.org/pere/blog/Intel_SSD_520_Series_180_GB_with_Lenovo_firmware_still_lock_up_from_sustained_writes.html">180
16328 GB Intel SSD disk with Lenovo firmware</a> that did not handle
16329 sustained writes. My hardware supplier have been very forthcoming in
16330 trying to find a solution, and after first trying with another
16331 identical 180 GB disks they decided to send me a 256 GB Samsung SSD
16332 disk instead to fix it once and for all. The Samsung disk survived
16333 the installation of Debian with encrypted disks (filling the disk with
16334 random data during installation killed the first two), and I thus
16335 decided to trust it with my data. I have installed it as a Debian Edu
16336 Wheezy roaming workstation hooked up with my Debian Edu Squeeze main
16337 server at home using Kerberos and LDAP, and will use it as my work
16338 station from now on.</p>
16339
16340 <p>As this is a solid state disk with no moving parts, I believe the
16341 Debian Wheezy default installation need to be tuned a bit to increase
16342 performance and increase life time of the disk. The Linux kernel and
16343 user space applications do not yet adjust automatically to such
16344 environment. To make it easier for my self, I created a draft Debian
16345 package <tt>ssd-setup</tt> to handle this tuning. The
16346 <a href="http://anonscm.debian.org/gitweb/?p=collab-maint/ssd-setup.git">source
16347 for the ssd-setup package</a> is available from collab-maint, and it
16348 is set up to adjust the setup of the machine by just installing the
16349 package. If there is any non-SSD disk in the machine, the package
16350 will refuse to install, as I did not try to write any logic to sort
16351 file systems in SSD and non-SSD file systems.</p>
16352
16353 <p>I consider the package a draft, as I am a bit unsure how to best
16354 set up Debian Wheezy with an SSD. It is adjusted to my use case,
16355 where I set up the machine with one large encrypted partition (in
16356 addition to /boot), put LVM on top of this and set up partitions on
16357 top of this again. See the README file in the package source for the
16358 references I used to pick the settings. At the moment these
16359 parameters are tuned:</p>
16360
16361 <ul>
16362
16363 <li>Set up cryptsetup to pass TRIM commands to the physical disk
16364 (adding discard to /etc/crypttab)</li>
16365
16366 <li>Set up LVM to pass on TRIM commands to the underlying device (in
16367 this case a cryptsetup partition) by changing issue_discards from
16368 0 to 1 in /etc/lvm/lvm.conf.</li>
16369
16370 <li>Set relatime as a file system option for ext3 and ext4 file
16371 systems.</li>
16372
16373 <li>Tell swap to use TRIM commands by adding 'discard' to
16374 /etc/fstab.</li>
16375
16376 <li>Change I/O scheduler from cfq to deadline using a udev rule.</li>
16377
16378 <li>Run fstrim on every ext3 and ext4 file system every night (from
16379 cron.daily).</li>
16380
16381 <li>Adjust sysctl values vm.swappiness to 1 and vm.vfs_cache_pressure
16382 to 50 to reduce the kernel eagerness to swap out processes.</li>
16383
16384 </ul>
16385
16386 <p>During installation, I cancelled the part where the installer fill
16387 the disk with random data, as this would kill the SSD performance for
16388 little gain. My goal with the encrypted file system is to ensure
16389 those stealing my laptop end up with a brick and not a working
16390 computer. I have no hope in keeping the really resourceful people
16391 from getting the data on the disk (see
16392 <a href="http://xkcd.com/538/">XKCD #538</a> for an explanation why).
16393 Thus I concluded that adding the discard option to crypttab is the
16394 right thing to do.</p>
16395
16396 <p>I considered using the noop I/O scheduler, as several recommended
16397 it for SSD, but others recommended deadline and a benchmark I found
16398 indicated that deadline might be better for interactive use.</p>
16399
16400 <p>I also considered using the 'discard' file system option for ext3
16401 and ext4, but read that it would give a performance hit ever time a
16402 file is removed, and thought it best to that that slowdown once a day
16403 instead of during my work.</p>
16404
16405 <p>My package do not set up tmpfs on /var/run, /var/lock and /tmp, as
16406 this is already done by Debian Edu.</p>
16407
16408 <p>I have not yet started on the user space tuning. I expect
16409 iceweasel need some tuning, and perhaps other applications too, but
16410 have not yet had time to investigate those parts.</p>
16411
16412 <p>The package should work on Ubuntu too, but I have not yet tested it
16413 there.</p>
16414
16415 <p>As for the answer to the question in the title of this blog post,
16416 as far as I know, the only solution I know about is to replace the
16417 disk. It might be possible to flash it with Intel firmware instead of
16418 the Lenovo firmware. But I have not tried and did not want to do so
16419 without approval from Lenovo as I wanted to keep the warranty on the
16420 disk until a solution was found and they wanted the broken disks
16421 back.</p>
16422
16423 </div>
16424 <div class="tags">
16425
16426
16427 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>.
16428
16429
16430 </div>
16431 </div>
16432 <div class="padding"></div>
16433
16434 <div class="entry">
16435 <div class="title">
16436 <a href="http://people.skolelinux.org/pere/blog/Intel_SSD_520_Series_180_GB_with_Lenovo_firmware_still_lock_up_from_sustained_writes.html">Intel SSD 520 Series 180 GB with Lenovo firmware still lock up from sustained writes</a>
16437 </div>
16438 <div class="date">
16439 10th July 2013
16440 </div>
16441 <div class="body">
16442 <p>A few days ago, I wrote about
16443 <a href="http://people.skolelinux.org/pere/blog/The_Thinkpad_is_dead__long_live_the_Thinkpad_X230_.html">the
16444 problems I experienced with my new X230 and its SSD disk</a>, which
16445 was dying during installation because it is unable to cope with
16446 sustained write. My supplier is in contact with
16447 <a href="http://www.lenovo.com/">Lenovo</a>, and they wanted to send a
16448 replacement disk to try to fix the problem. They decided to send an
16449 identical model, so my hopes for a permanent fix was slim.</p>
16450
16451 <p>Anyway, today I got the replacement disk and tried to install
16452 Debian Edu Wheezy with encrypted disk on it. The new disk have the
16453 same firmware version as the original. This time my hope raised
16454 slightly as the installation progressed, as the original disk used to
16455 die after 4-7% of the disk was written to, while this time it kept
16456 going past 10%, 20%, 40% and even past 50%. But around 60%, the disk
16457 died again and I was back on square one. I still do not have a new
16458 laptop with a disk I can trust. I can not live with a disk that might
16459 lock up when I download a new
16460 <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a> ISO or
16461 other large files. I look forward to hearing from my supplier with
16462 the next proposal from Lenovo.</p>
16463
16464 <p>The original disk is marked Intel SSD 520 Series 180 GB,
16465 11S0C38722Z1ZNME35X1TR, ISN: CVCV321407HB180EGN, SA: G57560302, FW:
16466 LF1i, 29MAY2013, PBA: G39779-300, LBA 351,651,888, LI P/N: 0C38722,
16467 Pb-free 2LI, LC P/N: 16-200366, WWN: 55CD2E40002756C4, Model:
16468 SSDSC2BW180A3L 2.5" 6Gb/s SATA SSD 180G 5V 1A, ASM P/N 0C38732, FRU
16469 P/N 45N8295, P0C38732.</p>
16470
16471 <p>The replacement disk is marked Intel SSD 520 Series 180 GB,
16472 11S0C38722Z1ZNDE34N0L0, ISN: CVCV315306RK180EGN, SA: G57560-302, FW:
16473 LF1i, 22APR2013, PBA: G39779-300, LBA 351,651,888, LI P/N: 0C38722,
16474 Pb-free 2LI, LC P/N: 16-200366, WWN: 55CD2E40000AB69E, Model:
16475 SSDSC2BW180A3L 2.5" 6Gb/s SATA SSD 180G 5V 1A, ASM P/N 0C38732, FRU
16476 P/N 45N8295, P0C38732.</p>
16477
16478 <p>The only difference is in the first number (serial number?), ISN,
16479 SA, date and WNPP values. Mentioning all the details here in case
16480 someone is able to use the information to find a way to identify the
16481 failing disk among working ones (if any such working disk actually
16482 exist).</p>
16483
16484 </div>
16485 <div class="tags">
16486
16487
16488 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>.
16489
16490
16491 </div>
16492 </div>
16493 <div class="padding"></div>
16494
16495 <div class="entry">
16496 <div class="title">
16497 <a href="http://people.skolelinux.org/pere/blog/July_13th__Debian_Ubuntu_BSP_and_Skolelinux_Debian_Edu_developer_gathering_in_Oslo.html">July 13th: Debian/Ubuntu BSP and Skolelinux/Debian Edu developer gathering in Oslo</a>
16498 </div>
16499 <div class="date">
16500 9th July 2013
16501 </div>
16502 <div class="body">
16503 <p>The upcoming Saturday, 2013-07-13, we are organising a combined
16504 Debian Edu developer gathering and Debian and Ubuntu bug squashing
16505 party in Oslo. It is organised by <a href="http://www.nuug.no/">the
16506 member assosiation NUUG</a> and
16507 <a href="http://www.skolelinux.org/">the Debian Edu / Skolelinux
16508 project</a> together with <a href="http://bitraf.no/">the hack space
16509 Bitraf</a>.</p>
16510
16511 <p>It starts 10:00 and continue until late evening. Everyone is
16512 welcome, and there is no fee to participate. There is on the other
16513 hand limited space, and only room for 30 people. Please put your name
16514 on <a href="http://wiki.debian.org/BSP/2013/07/13/no/Oslo">the event
16515 wiki page</a> if you plan to join us.</p>
16516
16517 </div>
16518 <div class="tags">
16519
16520
16521 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>.
16522
16523
16524 </div>
16525 </div>
16526 <div class="padding"></div>
16527
16528 <div class="entry">
16529 <div class="title">
16530 <a href="http://people.skolelinux.org/pere/blog/The_Thinkpad_is_dead__long_live_the_Thinkpad_X230_.html">The Thinkpad is dead, long live the Thinkpad X230?</a>
16531 </div>
16532 <div class="date">
16533 5th July 2013
16534 </div>
16535 <div class="body">
16536 <p>Half a year ago, I reported that I had to find a
16537 <a href="http://people.skolelinux.org/pere/blog/Thank_you_Thinkpad_X41__for_your_long_and_trustworthy_service.html">replacement
16538 for my trusty old Thinkpad X41</a>. Unfortunately I did not have much
16539 time to spend on it, and it took a while to find a model I believe
16540 will do the job, but two days ago the replacement finally arrived. I
16541 ended up picking a
16542 <a href="http://www.linlap.com/lenovo_thinkpad_x230">Thinkpad X230</a>
16543 with SSD disk (NZDAJMN). I first test installed Debian Edu Wheezy as
16544 a roaming workstation, and it seemed to work flawlessly. But my
16545 second installation with encrypted disk was not as successful. More
16546 on that below.</p>
16547
16548 <p>I had a hard time trying to track down a good laptop, as my most
16549 important requirements (robust and with a good keyboard) are never
16550 listed in the feature list. But I did get good help from the search
16551 feature at <a href="http://www.prisjakt.no/">Prisjakt</a>, which
16552 allowed me to limit the list of interesting laptops based on my other
16553 requirements. A bit surprising that SSD disk are not disks according
16554 to that search interface, so I had to drop specifying the number of
16555 disks from my search parameters. I also asked around among friends to
16556 get their impression on keyboards and robustness.</p>
16557
16558 <p>So the new laptop arrived, and it is quite a lot wider than the
16559 X41. I am not quite convinced about the keyboard, as it is
16560 significantly wider than my old keyboard, and I have to stretch my
16561 hand a lot more to reach the edges. But the key response is fairly
16562 good and the individual key shape is fairly easy to handle, so I hope
16563 I will get used to it. My old X40 was starting to fail, and I really
16564 needed a new laptop now. :)</p>
16565
16566 <p>Turning off the touch pad was simple. All it took was a quick
16567 visit to the BIOS during boot it disable it.</p>
16568
16569 <p>But there is a fatal problem with the laptop. The 180 GB SSD disk
16570 lock up during load. And this happen when installing Debian Wheezy
16571 with encrypted disk, while the disk is being filled with random data.
16572 I also tested to install Ubuntu Raring, and it happen there too if I
16573 reenable the code to fill the disk with random data (it is disabled by
16574 default in Ubuntu). And the bug with is already known. It was
16575 reported to Debian as <a href="http://bugs.debian.org/691427">BTS
16576 report #691427 2012-10-25</a> (journal commit I/O error on brand-new
16577 Thinkpad T430s ext4 on lvm on SSD). It is also reported to the Linux
16578 kernel developers as
16579 <a href="https://bugzilla.kernel.org/show_bug.cgi?id=51861">Kernel bugzilla
16580 report #51861 2012-12-20</a> (Intel SSD 520 stops working under load
16581 (SSDSC2BW180A3L in Lenovo ThinkPad T430s)). It is also reported on the
16582 Lenovo forums, both for
16583 <a href="http://forums.lenovo.com/t5/T400-T500-and-newer-T-series/T430s-Intel-SSD-520-180GB-issue/m-p/1070549">T430
16584 2012-11-10</a> and for
16585 <a href="http://forums.lenovo.com/t5/X-Series-ThinkPad-Laptops/x230-SATA-errors-with-180GB-Intel-520-SSD-under-heavy-write-load/m-p/1068147">X230
16586 03-20-2013</a>. The problem do not only affect installation. The
16587 reports state that the disk lock up during use if many writes are done
16588 on the disk, so it is much no use to work around the installation
16589 problem and end up with a computer that can lock up at any moment.
16590 There is even a
16591 <a href="https://git.efficios.com/?p=test-ssd.git">small C program
16592 available</a> that will lock up the hard drive after running a few
16593 minutes by writing to a file.</p>
16594
16595 <p>I've contacted my supplier and asked how to handle this, and after
16596 contacting PCHELP Norway (request 01D1FDP) which handle support
16597 requests for Lenovo, his first suggestion was to upgrade the disk
16598 firmware. Unfortunately there is no newer firmware available from
16599 Lenovo, as my disk already have the most recent one (version LF1i). I
16600 hope to hear more from him today and hope the problem can be
16601 fixed. :)</p>
16602
16603 </div>
16604 <div class="tags">
16605
16606
16607 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>.
16608
16609
16610 </div>
16611 </div>
16612 <div class="padding"></div>
16613
16614 <div class="entry">
16615 <div class="title">
16616 <a href="http://people.skolelinux.org/pere/blog/The_Thinkpad_is_dead__long_live_the_Thinkpad_X230.html">The Thinkpad is dead, long live the Thinkpad X230</a>
16617 </div>
16618 <div class="date">
16619 4th July 2013
16620 </div>
16621 <div class="body">
16622 <p>Half a year ago, I reported that I had to find a replacement for my
16623 trusty old Thinkpad X41. Unfortunately I did not have much time to
16624 spend on it, but today the replacement finally arrived. I ended up
16625 picking a <a href="http://www.linlap.com/lenovo_thinkpad_x230">Thinkpad
16626 X230</a> with SSD disk (NZDAJMN). I first test installed Debian Edu
16627 Wheezy as a roaming workstation, and it worked flawlessly. As I write
16628 this, it is installing what I hope will be a more final installation,
16629 with a encrypted hard drive to ensure any dope head stealing it end up
16630 with an expencive door stop.</p>
16631
16632 <p>I had a hard time trying to track down a good laptop, as my most
16633 important requirements (robust and with a good keyboard) are never
16634 listed in the feature list. But I did get good help from the search
16635 feature at <ahref="http://www.prisjakt.no/">Prisjakt</a>, which
16636 allowed me to limit the list of interesting laptops based on my other
16637 requirements. A bit surprising that SSD disk are not disks, so I had
16638 to drop number of disks from my search parameters.</p>
16639
16640 <p>I am not quite convinced about the keyboard, as it is significantly
16641 wider than my old keyboard, and I have to stretch my hand a lot more
16642 to reach the edges. But the key response is fairly good and the
16643 individual key shape is fairly easy to handle, so I hope I will get
16644 used to it. My old X40 was starting to fail, and I really needed a
16645 new laptop now. :)</p>
16646
16647 <p>I look forward to figuring out how to turn off the touch pad.</p>
16648
16649 </div>
16650 <div class="tags">
16651
16652
16653 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>.
16654
16655
16656 </div>
16657 </div>
16658 <div class="padding"></div>
16659
16660 <div class="entry">
16661 <div class="title">
16662 <a href="http://people.skolelinux.org/pere/blog/Fourth_alpha_release_of_Debian_Edu_Skolelinux_based_on_Debian_Wheezy.html">Fourth alpha release of Debian Edu/Skolelinux based on Debian Wheezy</a>
16663 </div>
16664 <div class="date">
16665 3rd July 2013
16666 </div>
16667 <div class="body">
16668 <p>The fourth wheezy based alpha release of Debian Edu was wrapped up
16669 today. This is the release announcement:</p>
16670
16671 <p><strong>New features for Debian Edu 7.1+edu0~alpha3 released
16672 2013-07-03</strong></p>
16673
16674 <p>These are the release notes for for Debian Edu / Skolelinux
16675 7.1+edu0~alpha3, based on Debian with codename "Wheezy".</p>
16676
16677 <p><strong>About Debian Edu and Skolelinux</strong></p>
16678
16679 <p><a href="http://www.skolelinux.org/">Debian Edu, also known as
16680 Skolelinux</a>, is a Linux distribution based on Debian providing an
16681 out-of-the box environment of a completely configured school
16682 network. Immediately after installation a school server running all
16683 services needed for a school network is set up just waiting for users
16684 and machines being added via GOsa², a comfortable Web-UI. A netbooting
16685 environment is prepared using PXE, so after initial installation of
16686 the main server from CD, DVD or USB stick all other machines can be
16687 installed via the network. The provided school server provides LDAP
16688 database and Kerberos authentication service, centralized home
16689 directories, DHCP server, web proxy and many other services. The
16690 desktop contains
16691 <a href="http://people.skolelinux.org/pere/blog/Educational_applications_included_in_Debian_Edu___Skolelinux__the_screenshot_collection____.html">more
16692 than 60 educational software packages</a> and more are available from
16693 the Debian archive, and schools can choose between KDE, Gnome, LXDE
16694 and Xfce desktop environment.</p>
16695
16696 <p>This is the fourth test release based on Debian Wheezy. Basically
16697 this is an updated and slightly improved version compared to the
16698 Squeeze release.</p>
16699
16700 <p><strong>Software updates</strong></p>
16701 <ul>
16702 <li>Dropped ispell dictionaries from our default installation.</li>
16703 <li>Dropped menu-xdg from the KDE desktop option, to drop the Debian
16704 submenu. It was not included with Gnome, LXDE or Xfce, so this
16705 brings KDE in line with the others.</li>
16706 <li>Dropped xdrawchem, xjig and xsok from our default installation as
16707 they don't have a desktop menu entry and thus won't show up in the
16708 menu now that menu-xdg was removed.</li>
16709 <li>Removed the killer system to kill left behind processes on
16710 multi-user machines, as it was no longer able to understand when a
16711 X display was in use and killed the processes of the active users
16712 too.</li>
16713 <li>Dropped the golearn (from goplay) package as the debtags in wheezy
16714 are too few to make the package useful.</li>
16715 </ul>
16716 <p><strong>Other changes</strong></p>
16717 <ul>
16718 <li>Updated artwork matching http://wiki.debian.org/DebianArt/Themes/Joy
16719 <li>Multi-arch i386/amd64 USB stick ISO available.</li>
16720 <li>Got rid of ispell/wordlist related debconf questions that showed
16721 up for some language options.</li>
16722 <li>Switched to using http.debian.net as APT source by default.</li>
16723 <li>Fixed proxy configuration on Main Server installations.</li>
16724 <li>Changed LTSP setup to ask dpkg to use force-unsafe-io the same way
16725 d-i is doing it.</li>
16726 <li>Made sure root and user passwords were not left behind in the
16727 debconf database after installation on Main Server installations.</li>
16728 <li>Made Roaming Workstation dynamic setup more robust and added draft
16729 script setup-ad-client to hook a Roaming Workstation up to a
16730 Active Directory server instead of a Debian Edu Main Server.</li>
16731 <li>Update system to install needed firmware packages during
16732 installation, to work properly in Wheezy.</li>
16733 <li>Update system to handle hardware quirks (debian-edu-hwsetup).</li>
16734 <li>Corrected PXE installation setup to properly pass selected desktop
16735 and keymap settings to PXE installation clients.</li>
16736 <li>LTSP diskless workstations use sshfs by default, allowing them to
16737 work without adding them to DNS and NIS netgroups for NFS access.</li>
16738 </ul>
16739 <p><strong>Known issues</strong></p>
16740 <ul>
16741 <li>No mass import of user account data in GOsa (ldif or csv)
16742 available yet (698840).</li>
16743 <li>Artwork not enabled for all desktops.</li>
16744 </ul>
16745 <p><strong>Where to get it</strong></p>
16746
16747 <p>To download the multiarch netinstall CD release you can use</p>
16748 <ul>
16749 <li><a href="ftp://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~a3-CD.iso">ftp://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~a3-CD.iso</a></li>
16750 <li><a href="http://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~a3-CD.iso">http://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~a3-CD.iso</a></li>
16751 <li>rsync -avzP ftp.skolelinux.org::skolelinux-cd/wheezy/debian-edu-7.1+edu0~a3-CD.iso .</li>
16752 </ul>
16753
16754 <p>The MD5SUM of this image is: 2b161a99d2a848c376d8d04e3854e30c
16755 <br>The SHA1SUM of this image is: 498922e9c508c0a7ee9dbe1dfe5bf830d779c3c8</p>
16756
16757 <p>To download the multiarch USB stick ISO release you can use</p>
16758 <ul>
16759 <li><a href="ftp://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~a3-USB.iso">ftp://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~a3-USB.iso</a></li>
16760 <li><a href="http://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~a3-USB.iso">http://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.1+edu0~a3-USB.iso</a></li>
16761 <li>rsync -avzP ftp.skolelinux.org::skolelinux-cd/wheezy/debian-edu-7.1+edu0~a3-USB.iso .</li>
16762 </ul>
16763
16764 <p>The MD5SUM of this image is: 25e808e403a4c15dbef1d13c37d572ac
16765 <br>The SHA1SUM of this image is: 15ecfc93eb6b4f453b7eb0bc04b6a279262d9721</p>
16766
16767 <p><strong>How to report bugs</strong></p>
16768
16769 <p><a href="http://wiki.debian.org/DebianEdu/HowTo/ReportBugs">http://wiki.debian.org/DebianEdu/HowTo/ReportBugs</a></p>
16770
16771 </div>
16772 <div class="tags">
16773
16774
16775 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>.
16776
16777
16778 </div>
16779 </div>
16780 <div class="padding"></div>
16781
16782 <div class="entry">
16783 <div class="title">
16784 <a href="http://people.skolelinux.org/pere/blog/Automatically_locate_and_install_required_firmware_packages_on_Debian__Isenkram_0_4_.html">Automatically locate and install required firmware packages on Debian (Isenkram 0.4)</a>
16785 </div>
16786 <div class="date">
16787 25th June 2013
16788 </div>
16789 <div class="body">
16790 <p>It annoys me when the computer fail to do automatically what it is
16791 perfectly capable of, and I have to do it manually to get things
16792 working. One such task is to find out what firmware packages are
16793 needed to get the hardware on my computer working. Most often this
16794 affect the wifi card, but some times it even affect the RAID
16795 controller or the ethernet card. Today I pushed version 0.4 of the
16796 <a href="http://packages.qa.debian.org/isenkram">Isenkram package</a>
16797 including a new script isenkram-autoinstall-firmware handling the
16798 process of asking all the loaded kernel modules what firmware files
16799 they want, find debian packages providing these files and install the
16800 debian packages. Here is a test run on my laptop:</p>
16801
16802 <p><pre>
16803 # isenkram-autoinstall-firmware
16804 info: kernel drivers requested extra firmware: ipw2200-bss.fw ipw2200-ibss.fw ipw2200-sniffer.fw
16805 info: fetching http://http.debian.net/debian/dists/squeeze/Contents-i386.gz
16806 info: locating packages with the requested firmware files
16807 info: Updating APT sources after adding non-free APT source
16808 info: trying to install firmware-ipw2x00
16809 firmware-ipw2x00
16810 firmware-ipw2x00
16811 Preconfiguring packages ...
16812 Selecting previously deselected package firmware-ipw2x00.
16813 (Reading database ... 259727 files and directories currently installed.)
16814 Unpacking firmware-ipw2x00 (from .../firmware-ipw2x00_0.28+squeeze1_all.deb) ...
16815 Setting up firmware-ipw2x00 (0.28+squeeze1) ...
16816 #
16817 </pre></p>
16818
16819 <p>When all the requested firmware is present, a simple message is
16820 printed instead:</p>
16821
16822 <p><pre>
16823 # isenkram-autoinstall-firmware
16824 info: did not find any firmware files requested by loaded kernel modules. exiting
16825 #
16826 </pre></p>
16827
16828 <p>It could use some polish, but it is already working well and saving
16829 me some time when setting up new machines. :)</p>
16830
16831 <p>So, how does it work? It look at the set of currently loaded
16832 kernel modules, and look up each one of them using modinfo, to find
16833 the firmware files listed in the module meta-information. Next, it
16834 download the Contents file from a nearby APT mirror, and search for
16835 the firmware files in this file to locate the package with the
16836 requested firmware file. If the package is in the non-free section, a
16837 non-free APT source is added and the package is installed using
16838 <tt>apt-get install</tt>. The end result is a slightly better working
16839 machine.</p>
16840
16841 <p>I hope someone find time to implement a more polished version of
16842 this script as part of the hw-detect debian-installer module, to
16843 finally fix <a href="http://bugs.debian.org/655507">BTS report
16844 #655507</a>. There really is no need to insert USB sticks with
16845 firmware during a PXE install when the packages already are available
16846 from the nearby Debian mirror.</p>
16847
16848 </div>
16849 <div class="tags">
16850
16851
16852 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram</a>.
16853
16854
16855 </div>
16856 </div>
16857 <div class="padding"></div>
16858
16859 <div class="entry">
16860 <div class="title">
16861 <a href="http://people.skolelinux.org/pere/blog/The_value_of_a_good_distro_wide_test_suite___.html">The value of a good distro wide test suite...</a>
16862 </div>
16863 <div class="date">
16864 22nd June 2013
16865 </div>
16866 <div class="body">
16867 <p>In the <a href="http://www.skolelinux.org/">Debian Edu /
16868 Skolelinux</a> project, we include a post-installation test suite,
16869 which check that services are running, working, and return the
16870 expected results. It runs automatically just after the first boot on
16871 test installations (using test ISOs), but not on production
16872 installations (using non-test ISOs). It test that the LDAP service is
16873 operating, Kerberos is responding, DNS is replying, file systems are
16874 online resizable, etc, etc. And it check that the PXE service is
16875 configured, which is the topic of this post.</p>
16876
16877 <p>The last week I've fixed the DVD and USB stick ISOs for our Debian
16878 Edu Wheezy release. These ISOs are supposed to be able to install a
16879 complete system without any Internet connection, but for that to
16880 happen all the needed packages need to be on them. Thanks to our test
16881 suite, I discovered that we had forgotten to adjust our PXE setup to
16882 cope with the new names and paths used by the netboot d-i packages.
16883 When Internet connectivity was available, the installer fall back to
16884 using wget to fetch d-i boot images, but when offline it require
16885 working packages to get it working. And the packages changed name
16886 from debian-installer-6.0-netboot-$arch to
16887 debian-installer-7.0-netboot-$arch, we no longer pulled in the
16888 packages during installation. Without our test suite, I suspect we
16889 would never have discovered this before release. Now it is fixed
16890 right after we got the ISOs operational.</p>
16891
16892 <p>Another by-product of the test suite is that we can ask system
16893 administrators with problems getting Debian Edu to work, to run the
16894 test suite using <tt>/usr/sbin/debian-edu-test-install</tt> and see if
16895 any errors are detected. This usually pinpoint the subsystem causing
16896 the problem.</p>
16897
16898 <p>If you want to help us help kids learn how to share and create,
16899 please join us on
16900 <a href="irc://irc.debian.org/%23debian-edu">#debian-edu on
16901 irc.debian.org</a> and the
16902 <a href="http://lists.debian.org/debian-edu/">debian-edu@</a> mailing
16903 list.</p>
16904
16905 </div>
16906 <div class="tags">
16907
16908
16909 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>.
16910
16911
16912 </div>
16913 </div>
16914 <div class="padding"></div>
16915
16916 <div class="entry">
16917 <div class="title">
16918 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Victor_Ni_u.html">Debian Edu interview: Victor Nițu</a>
16919 </div>
16920 <div class="date">
16921 17th June 2013
16922 </div>
16923 <div class="body">
16924 <p>The <a href="http://www.skolelinux.org/">Debian Edu and
16925 Skolelinux</a> distribution have users and contributors all around the
16926 globe. And a while back, an enterprising young man showed up on
16927 <a href="irc://irc.debian.org/%23debian-edu">our IRC channel
16928 #debian-edu</a> and started asking questions about how Debian Edu
16929 worked. We answered as good as we could, and even convinced him to
16930 help us with translations. And today I managed to get an interview
16931 with him, to learn more about him.</p>
16932
16933 <p><strong>Who are you, and how do you spend your days?</strong></p>
16934
16935 <p>I'm a 25 year old free software enthusiast, living in Romania,
16936 which is also my country of origin. Back in 2009, at a New Year's Eve
16937 party, I had a very nice <strike>beer</strike> discussion with a
16938 friend, when we realized we have no organised Debian community in our
16939 country. A few days later, we put together the infrastructure for such
16940 community and even gathered a nice Debian-ish crowd. Since then, I
16941 began my quest as a free software hacker and activist and I am
16942 constantly trying to cover as much ground as possible on that
16943 field.</p>
16944
16945 <p>A few years ago I founded a small web development company, which
16946 provided me the flexible schedule I needed so much for my
16947 activities. For the last 13 months, I have been the Technical Director
16948 of <a href="http://ceata.org/">Fundația Ceata</a>, which is a free
16949 software activist organisation endorsed by the FSF and the FSFE, and
16950 the only one we have in our country.</p>
16951
16952 <p><strong>How did you get in contact with the Skolelinux / Debian Edu
16953 project?</strong></p>
16954
16955 <p>The idea of participating in the Debian Edu project was a surprise
16956 even to me, since I never used it before I began getting involved in
16957 it. This year I had a great opportunity to deliver a talk on
16958 educational software, and I knew immediately where to look. It was a
16959 love at first sight, since I was previously involved with some of the
16960 technologies the project incorporates, and I rapidly found a lot of
16961 ways to contribute.</p>
16962
16963 <p>My first contributions consisted in translating the installer and
16964 configuration dialogs, then I found some bugs to squash (I still
16965 haven't fixed them yet though), and I even got my eyes on some other
16966 areas where I can prove myself helpful. Since the appetite for free
16967 software in my country is pretty low, I'll be happy to be the first
16968 one around here advocating for the project's adoption in educational
16969 environments, and maybe even get my hands dirty in creating a flavour
16970 for our own needs. I am not used to make very advanced plannings, so
16971 from now on, time will tell what I'll be doing next, but I think I
16972 have a pretty consistent starting point.</p>
16973
16974 <p><strong>What do you see as the advantages of Skolelinux/Debian
16975 Edu?</strong></p>
16976
16977 <p>Not a long time ago, I was in the position of configuring and
16978 maintaining a LDAP server on some Debian derivative, and I must say it
16979 took me a while. A long time ago, I was maintaining a bigger
16980 Samba-powered infrastructure, and I must say I spent quite a lot of
16981 time on it. I have similar stories about many of the services included
16982 with Skolelinux, and the main advantage I see about it is the
16983 out-of-the box availability of them, making it quite competitive when
16984 it comes to managing a school's network, for example.</p>
16985
16986 <p>Of course, there is more to say about Skolelinux than the
16987 availability of the software included, its flexibility in various
16988 scenarios is something I can't wait to experiment "into the wild" (I
16989 only played with virtual machines so far). And I am sure there is a
16990 lot more I haven't discovered yet about it, being so new within the
16991 project.</p>
16992
16993 <p><strong>What do you see as the disadvantages of Skolelinux / Debian
16994 Edu?</strong></p>
16995
16996 <p>As usual, when it comes to Debian Blends, I see as the biggest
16997 disadvantage the lack of a numerous team dedicated to the
16998 project. Every day I see the same names in the changelogs, and I have
16999 a constantly fear of the bus factor in this story. I'd like to see
17000 Debian Edu advertised more as an entry point into the Debian
17001 ecosystem, especially amongst newcomers and students. IMHO there are a
17002 lot low-hanging fruits in terms of bug squashing, and enough
17003 opportunities to get the feeling of the Debian Project's dynamics. Not
17004 to mention it's a very fun blend to work on!</p>
17005
17006 <p>Derived from the previous statement, is the delay in catching up
17007 with the main Debian release and documentation. This is common though
17008 to all blends and derivatives, but it's an issue we can all work
17009 on.</p>
17010
17011 <p><strong>Which free software do you use daily?</strong></p>
17012
17013 <p>I can hardly imagine myself spending a day without Vim, since my
17014 daily routine covers writing code and hacking configuration files. I
17015 am a fan of the Awesome window manager (but I also like the
17016 Enlightenment project a lot!),
17017 <a href="http://www.claws-mail.org/‎">Claws Mail</a> due to its ease of
17018 use and very configurable behaviour. Recently I fell in love with
17019 <a href="https://launchpad.net/redshift">Redshift</a>, which helps me
17020 get through the night without headaches. Of course, there is much more
17021 stuff in this bag, but I'll need a blog on my own for doing this!</p>
17022
17023 <p><strong>Which strategy do you believe is the right one to use to
17024 get schools to use free software?</strong></p>
17025
17026 <p>Well, on this field, I cannot do much more than experiment right
17027 now. So, being far from having a recipe for success, I can only assume
17028 that:</p>
17029
17030 <ul>
17031
17032 <li>schools would like to get rid of proprietary software</li>
17033
17034 <li>students will love the openness of the system, and will want to
17035 experiment with it - maybe we need to harvest the native curiosity
17036 of teenagers more?</li>
17037
17038 <li>there is no "right one" when it comes to strategies, but it would
17039 be useful to have some success stories published somewhere, so
17040 other can get some inspiration from them (I know I'd promote
17041 them!)</li>
17042
17043 <li>more active promotion - talks, conferences, even small school
17044 lectures can do magical things if they encounter at least one
17045 person interested. Who knows who that person might be? ;-)</li>
17046
17047 </ul>
17048
17049 <p>I also see some problems in getting Skolelinux into schools; for
17050 example, in our country we have a great deal of corruption issues, so
17051 it might be hard(er) to fight against proprietary solutions. Also,
17052 people who relied on commercial software for all their lives, would be
17053 very hard to convert against their will.</p>
17054
17055 </div>
17056 <div class="tags">
17057
17058
17059 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>.
17060
17061
17062 </div>
17063 </div>
17064 <div class="padding"></div>
17065
17066 <div class="entry">
17067 <div class="title">
17068 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Jonathan_Carter.html">Debian Edu interview: Jonathan Carter</a>
17069 </div>
17070 <div class="date">
17071 12th June 2013
17072 </div>
17073 <div class="body">
17074 <p>There is a certain cross-over between the
17075 <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux
17076 project</a> and <a href="http://www.edubuntu.org/">the Edubuntu
17077 project</a>, and for example the LTSP packages in Debian are a joint
17078 effort between the projects. One person with a foot in both camps is
17079 Jonathan Carter, which I am now happy to present to you.</p>
17080
17081 <p><strong>Who are you, and how do you spend your days?</strong></p>
17082
17083 <p>I'm a South-African free software geek who lives in Cape Town. My
17084 days vary quite a bit since I'm involved in too many things. As I'm
17085 getting older I'm learning how to focus a bit more :)</p>
17086
17087 <p>I'm also an Edubuntu contributor and I love when there are
17088 opportunities for the Edubuntu and Debian Edu projects to benefit from
17089 each other.</p>
17090
17091 <p><strong>How did you get in contact with the Skolelinux / Debian Edu
17092 project?</strong></p>
17093
17094 <p>I've been somewhat familiar with the project before, but I think my
17095 first direct exposure to the project was when I met Petter
17096 [Reinholdtsen] and Knut [Yrvin] at the Edubuntu summit in 2005 in
17097 London. They provided great feedback that helped the bootstrapping of
17098 Edubuntu. Back then Edubuntu (and even Ubuntu) was still very new and
17099 it was great getting input from people who have been around longer. I
17100 was also still very excitable and said yes to everything and to this
17101 day I have a big todo list backlog that I'm catching up with. I think
17102 over the years the relationship between Edubuntu and Debian-Edu has
17103 been gradually improving, although I think there's a lot that we could
17104 still improve on in terms of working together on packages. I'm sure
17105 we'll get there one day.</p>
17106
17107 <p><strong>What do you see as the advantages of Skolelinux / Debian
17108 Edu?</strong></p>
17109
17110 <p>Debian itself already has so many advantages. I could go on about
17111 it for pages, but in essence I love that it's a very honest project
17112 that puts its users first with no hidden agendas and also produces
17113 very high quality work.</p>
17114
17115 <p>I think the advantage of Debian Edu is that it makes many common
17116 set-up tasks simpler so that administrators can get up and running
17117 with a lot less effort and frustration. At the same time I think it
17118 helps to standardise installations in schools so that it's easier for
17119 community members and commercial suppliers to support.</p>
17120
17121 <p><strong>What do you see as the disadvantages of Skolelinux / Debian
17122 Edu?</strong></p>
17123
17124 <p>I had to re-type this one a few times because I'm trying to
17125 separate "disadvantages" from "areas that need improvement" (which is
17126 what I originally rambled on about)</p>
17127
17128 <p>The biggest disadvantage I can think of is lack of manpower. The
17129 project could do so much more if there were more good contributors. I
17130 think some of the problems are external too. Free software and free
17131 content in education is a no-brainer but it takes some time to catch
17132 on. When you've been working with the same proprietary eco-system for
17133 years and have gotten used to it, it can be hard to adjust to some
17134 concepts in the free software world. It would be nice if there were
17135 more Debian Edu consultants across the world. I'd love to be one
17136 myself but I'm already so over-committed that it's just not possible
17137 currently.</p>
17138
17139 <p>I think the best short-term solution to that large-scale problem is
17140 for schools to be pro-active and share their experiences and grow
17141 their skills in-house. I'm often saddened to see how much money
17142 educational institutions spend on 3rd party solutions that they don't
17143 have access to after the service has ended and they could've gotten so
17144 much more value otherwise by being more self-sustainable and
17145 autonomous.</p>
17146
17147 <p><strong>Which free software do you use daily?</strong></p>
17148
17149 <p>My main laptop dual-boots between Debian and Windows 7. I was
17150 Windows free for years but started dual-booting again last year for
17151 some games which help me focus and relax (Starcraft II in
17152 particular). Gaming support on Linux is improving in leaps and bounds
17153 so I suppose I'll soon be able to regain that disk space :)</p>
17154
17155 <p>Besides that I rely on Icedove, Chromium, Terminator, Byobu, irssi,
17156 git, Tomboy, KVM, VLC and LibreOffice. Recently I've been torn on
17157 which desktop environment I like and I'm taking some refuge in Xfce
17158 while I figure that out. I like tools that keep things simple. I enjoy
17159 Python and shell scripting. I went to an Arduino workshop recently and
17160 it was awesome seeing how easy and simple the IDE software was to get
17161 up and running in Debian compared to the users running Windows and OS
17162 X.</p>
17163
17164 <p>I also use mc which some people frown upon slightly. I got used to
17165 using Norton Commander in the early 90's and it stuck (I think the
17166 people who sneer at it is just jealous that they don't know how to use
17167 it :p)
17168
17169 <p><strong>Which strategy do you believe is the right one to use to
17170 get schools to use free software?</strong></p>
17171
17172 <p>I think trying to force it is unproductive. I also think that in
17173 many cases it's appropriate for schools to use non-free systems and I
17174 don't think that there's any particular moral or ethical problem with
17175 that.</p>
17176
17177 <p>I do think though that free software can already solve so so many
17178 problems in educational institutions and it's just a shame not taking
17179 advantage of that.</p>
17180
17181 <p>I also think that some curricula need serious review. For example,
17182 some areas of the world rely heavily on very specific versions of MS
17183 Office, teaching students to parrot menu items instead of learning the
17184 general concepts. I think that's very unproductive because firstly, MS
17185 Office's interface changes drastically every few years and on top of
17186 that it also locks in a generation to a product that might not be the
17187 best solution for them.</p>
17188
17189 <p>To answer your question, I believe that the right strategy is to
17190 educate and inform, giving someone the information they require to
17191 make a decision that would work for them.</p>
17192
17193 </div>
17194 <div class="tags">
17195
17196
17197 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>.
17198
17199
17200 </div>
17201 </div>
17202 <div class="padding"></div>
17203
17204 <div class="entry">
17205 <div class="title">
17206 <a href="http://people.skolelinux.org/pere/blog/Fixing_the_Linux_black_screen_of_death_on_machines_with_Intel_HD_video.html">Fixing the Linux black screen of death on machines with Intel HD video</a>
17207 </div>
17208 <div class="date">
17209 11th June 2013
17210 </div>
17211 <div class="body">
17212 <p>When installing RedHat, Fedora, Debian and Ubuntu on some machines,
17213 the screen just turn black when Linux boot, either during installation
17214 or on first boot from the hard disk. I've seen it once in a while the
17215 last few years, but only recently understood the cause. I've seen it
17216 on HP laptops, and on my latest acquaintance the Packard Bell laptop.
17217 The reason seem to be in the wiring of some laptops. The system to
17218 control the screen background light is inverted, so when Linux try to
17219 turn the brightness fully on, it end up turning it off instead. I do
17220 not know which Linux drivers are affected, but this post is about the
17221 i915 driver used by the
17222 <a href="http://www.linlap.com/packard_bell_easynote_lv">Packard Bell
17223 EasyNote LV</a>, Thinkpad X40 and many other laptops.</p>
17224
17225 <p>The problem can be worked around two ways. Either by adding
17226 i915.invert_brightness=1 as a kernel option, or by adding a file in
17227 /etc/modprobe.d/ to tell modprobe to add the invert_brightness=1
17228 option when it load the i915 kernel module. On Debian and Ubuntu, it
17229 can be done by running these commands as root:</p>
17230
17231 <pre>
17232 echo options i915 invert_brightness=1 | tee /etc/modprobe.d/i915.conf
17233 update-initramfs -u -k all
17234 </pre>
17235
17236 <p>Since March 2012 there is
17237 <a href="http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=4dca20efb1a9c2efefc28ad2867e5d6c3f5e1955">a
17238 mechanism in the Linux kernel</a> to tell the i915 driver which
17239 hardware have this problem, and get the driver to invert the
17240 brightness setting automatically. To use it, one need to add a row in
17241 <a href="http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/gpu/drm/i915/intel_display.c">the
17242 intel_quirks array</a> in the driver source
17243 <tt>drivers/gpu/drm/i915/intel_display.c</tt> (look for "<tt>static
17244 struct intel_quirk intel_quirks</tt>"), specifying the PCI device
17245 number (vendor number 8086 is assumed) and subdevice vendor and device
17246 number.</p>
17247
17248 <p>My Packard Bell EasyNote LV got this output from <tt>lspci
17249 -vvnn</tt> for the video card in question:</p>
17250
17251 <p><pre>
17252 00:02.0 VGA compatible controller [0300]: Intel Corporation \
17253 3rd Gen Core processor Graphics Controller [8086:0156] \
17254 (rev 09) (prog-if 00 [VGA controller])
17255 Subsystem: Acer Incorporated [ALI] Device [1025:0688]
17256 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- \
17257 ParErr- Stepping- SE RR- FastB2B- DisINTx+
17258 Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- \
17259 <TAbort- <MAbort->SERR- <PERR- INTx-
17260 Latency: 0
17261 Interrupt: pin A routed to IRQ 42
17262 Region 0: Memory at c2000000 (64-bit, non-prefetchable) [size=4M]
17263 Region 2: Memory at b0000000 (64-bit, prefetchable) [size=256M]
17264 Region 4: I/O ports at 4000 [size=64]
17265 Expansion ROM at <unassigned> [disabled]
17266 Capabilities: <access denied>
17267 Kernel driver in use: i915
17268 </pre></p>
17269
17270 <p>The resulting intel_quirks entry would then look like this:</p>
17271
17272 <p><pre>
17273 struct intel_quirk intel_quirks[] = {
17274 ...
17275 /* Packard Bell EasyNote LV11HC needs invert brightness quirk */
17276 { 0x0156, 0x1025, 0x0688, quirk_invert_brightness },
17277 ...
17278 }
17279 </pre></p>
17280
17281 <p>According to the kernel module instructions (as seen using
17282 <tt>modinfo i915</tt>), information about hardware needing the
17283 invert_brightness flag should be sent to the
17284 <a href="http://lists.freedesktop.org/mailman/listinfo/dri-devel">dri-devel
17285 (at) lists.freedesktop.org</a> mailing list to reach the kernel
17286 developers. But my email about the laptop sent 2013-06-03 have not
17287 yet shown up in
17288 <a href="http://lists.freedesktop.org/archives/dri-devel/2013-June/thread.html">the
17289 web archive for the mailing list</a>, so I suspect they do not accept
17290 emails from non-subscribers. Because of this, I sent my patch also to
17291 the Debian bug tracking system instead as
17292 <a href="http://bugs.debian.org/710938">BTS report #710938</a>, to make
17293 sure the patch is not lost.</p>
17294
17295 <p>Unfortunately, it is not enough to fix the kernel to get Laptops
17296 with this problem working properly with Linux. If you use Gnome, your
17297 worries should be over at this point. But if you use KDE, there is
17298 something in KDE ignoring the invert_brightness setting and turning on
17299 the screen during login. I've reported it to Debian as
17300 <a href="http://bugs.debian.org/711237">BTS report #711237</a>, and
17301 have no idea yet how to figure out exactly what subsystem is doing
17302 this. Perhaps you can help? Perhaps you know what the Gnome
17303 developers did to handle this, and this can give a clue to the KDE
17304 developers? Or you know where in KDE the screen brightness is changed
17305 during login? If so, please update the BTS report (or get in touch if
17306 you do not know how to update BTS).</p>
17307
17308 <p>Update 2013-07-19: The correct fix for this machine seem to be
17309 acpi_backlight=vendor, to disable ACPI backlight support completely,
17310 as the ACPI information on the machine is trash and it is better to
17311 leave it to the intel video driver to control the screen
17312 backlight.</p>
17313
17314 </div>
17315 <div class="tags">
17316
17317
17318 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>.
17319
17320
17321 </div>
17322 </div>
17323 <div class="padding"></div>
17324
17325 <div class="entry">
17326 <div class="title">
17327 <a href="http://people.skolelinux.org/pere/blog/Third_alpha_release_of_Debian_Edu___Skolelinux_based_on_Debian_Wheezy.html">Third alpha release of Debian Edu / Skolelinux based on Debian Wheezy</a>
17328 </div>
17329 <div class="date">
17330 10th June 2013
17331 </div>
17332 <div class="body">
17333 <p>The third wheezy based alpha release of Debian Edu was wrapped up
17334 today. This is the release announcement:</p>
17335
17336 <p><strong>New features for Debian Edu 7.0.0 alpha2 released
17337 2013-06-10</strong></p>
17338
17339 <p>This is the release notes for for Debian Edu / Skolelinux 7.0.0 edu
17340 alpha2, based on Debian with codename "Wheezy".</p>
17341
17342 <p><strong>About Debian Edu and Skolelinux</strong></p>
17343
17344 <p><a href="http://www.skolelinux.org/">Debian Edu, also known as
17345 Skolelinux</a>, is a Linux distribution based on Debian providing an
17346 out-of-the box environment of a completely configured school
17347 network. Immediately after installation a school server running all
17348 services needed for a school network is set up just waiting for users
17349 and machines being added via GOsa², a comfortable Web-UI. A netbooting
17350 environment is prepared using PXE, so after initial installation of
17351 the main server from CD, DVD or USB stick all other machines can be
17352 installed via the network. The provided school server provides LDAP
17353 database and Kerberos authentication service, centralized home
17354 directories, DHCP server, web proxy and many other services. The
17355 desktop contains
17356 <a href="http://people.skolelinux.org/pere/blog/Educational_applications_included_in_Debian_Edu___Skolelinux__the_screenshot_collection____.html">more
17357 than 60 educational software packages</a> and more are available from
17358 the Debian archive, and schools can choose between KDE, Gnome, LXDE
17359 and Xfce desktop environment.</p>
17360
17361 <p>This is the third test release based on Debian Wheezy. Basically
17362 this is an updated and slightly improved version compared to the
17363 Squeeze release.</p>
17364
17365 <p><strong>Software updates</strong></p>
17366
17367 <ul>
17368
17369 <li>Iceweasel was updated from 10 to 17. (DSA 2699-1)
17370 <li>Updated libxv (DSA-2674), libxvmc (DSA-2675), libxfixes (DSA-2676), libxrender (DSA-2677), mesa (DSA-2678), xserver-xorg-video-openchrome (DSA-2679), libxt (DSA-2680), libxcursor (DSA-2681), libxext (DSA-2682), libxi (DSA-2683), libxrandr (DSA-2684), libxp (DSA-2685), libxcb (DSA-2686), libfs (DSA-2687), libxres (DSA-2688), libxtst (DSA-2689), libxxf86dga (DSA-2690), libxinerama (DSA-2691), libxxf86vm (DSA-2692), libx11 (DSA-2693), chromium-browser (DSA-2695), gnutls26 (DSA-2697), wireshark (DSA-2700), krb5 (DSA-2701), telepathy-gabble (DSA-2702) and subversion (DSA-2703).
17371 <li>Switched xrdp on thin client servers to use tightvncserver instead of xvnc4.
17372 <li>Now install software oscilloscope xoscope by default.
17373 <li>Now install music tools gtick, lingot and pianobooster by default.
17374
17375 </ul>
17376
17377 <p><strong>Other changes</strong></p>
17378
17379 <ul>
17380
17381 <li>The subnet-change script is now able to change all files needing a change on the main-server when changing the IP network used.
17382 <li>Updated translation of the installation.
17383 <li>New Romanian translation.
17384 <li>Fix security problem causing root and first user password to no longer show up in /var/cache/debconf/templates.dat.
17385 <li>Fix roaming workstation setup (Closed in libpam-mklocaluser/0.8, libpam-mklocaluser/0.8~deb7u1: #706753: libpam-mklocaluser: Fail to create local user during first login).
17386 <li>Made roaming workstation setup more robust in non-Debian Edu environments.
17387 <li>New script debian-edu-bless to transform a Debian installation to a Debian Edu profile.
17388 <li>Adjust Iceweasel setup to improve performance when $HOME is on NFS.
17389 <li>More testsuite tests.
17390 <li>Make automatic proxy configuration more robust.
17391 <li>Adjust GOsa² GUI configuration.
17392
17393 <li>Update thin client and diskless workstation setup to work with
17394 LTSP in Wheezy.</li>
17395
17396 <li>Diskless workstations now run out of the box -- no need to set
17397 them up with GOsa².</li>
17398
17399 <li>Update IMAP server setup. </li>
17400
17401 <li>Fix login into Skolelinux Backup Tool (Closed in
17402 slbackup-php/0.4.4-1: #700257: slbackup-php: Fails to submit correctly
17403 entered password). </li>
17404
17405 </ul>
17406
17407 <p><strong>Known issues</strong></p>
17408
17409 <ul>
17410
17411 <li>DVD binary and source images are not yet ready.</li>
17412
17413 <li>No mass import of user account data in GOsa (ldif or csv)
17414 available yet (Open in gosa/2.7.4-4: #698840: gosa-plugin-ldapmanager:
17415 missing import feature).</li>
17416
17417 <li>Missing artwork for the KDE desktop (and probably a few others). </li>
17418
17419 <li>KDE Debian submenu lacks icons (Closed: #502192: menu-xdg: invents
17420 own icon names instead of using existing). This will remain
17421 unfixed.</li>
17422
17423 </ul>
17424
17425 <p><strong>Where to get it</strong></p>
17426
17427 <p>To download the multiarch netinstall CD release you can use</p>
17428
17429 <ul>
17430
17431 <li><a href="ftp://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.0+edu0~a2-CD.iso">ftp://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.0+edu0~a2-CD.iso</a></li>
17432
17433 <li><a href="http://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.0+edu0~a2-CD.iso">http://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.0+edu0~a2-CD.iso</a></li>
17434
17435 <li>rsync -avzP ftp.skolelinux.org::skolelinux-cd/wheezy/debian-edu-7.0+edu0~a2-CD.iso .</li>
17436
17437 </ul>
17438
17439 <p>The MD5SUM of this image is: 27bbcace407743382f3c42c08dbe8178
17440 <br>The SHA1SUM of this image is: e35f7d7908566cd3075375b3721fa10ee420d419</p>
17441
17442 <p><strong>How to report bugs</strong></p>
17443
17444 <p><a href="http://wiki.debian.org/DebianEdu/HowTo/ReportBugs">http://wiki.debian.org/DebianEdu/HowTo/ReportBugs</a>
17445
17446 </div>
17447 <div class="tags">
17448
17449
17450 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>.
17451
17452
17453 </div>
17454 </div>
17455 <div class="padding"></div>
17456
17457 <div class="entry">
17458 <div class="title">
17459 <a href="http://people.skolelinux.org/pere/blog/Is_there_a_PHP_expert_in_the_building___Debian_Edu_need_help_.html">Is there a PHP expert in the building? Debian Edu need help!</a>
17460 </div>
17461 <div class="date">
17462 5th June 2013
17463 </div>
17464 <div class="body">
17465 <p>Here is a call for help from the Debian Edu / Skolelinux project.
17466 We have two problems blocking the release of the Wheezy version we
17467 hope to get released soon. The two problems require some with PHP
17468 skills, and we seem to lack anyone with both time and PHP skills in
17469 the project:
17470
17471 <ol>
17472
17473 <li>It is impossible to log into the slbackup web interface
17474 (slbackup-php) using the root user and password. This is
17475 <a href="http://bugs.debian.org/700257">BTS report #700257</a>.
17476 This used to work, but stopped working some time since Squeeze.
17477 Perhaps some obsolete PHP feature was used?</li>
17478
17479 <li>It is not possible to "mass import" user lists in Gosa, neither
17480 using ldif nor using CSV files. The feature was disabled after a
17481 major rewrite of Gosa, and need to be ported to the new system.
17482 This is <a href="http://bugs.debian.org/698840">BTS report
17483 #698840</a>.</li>
17484
17485 </ol>
17486
17487 <p>If you can help us, please join us on IRC
17488 (<a href="irc://irc.debian.org/%23debian-edu">#debian-edu on
17489 irc.debian.org</a>) and provide patches via the BTS.</p>
17490
17491 </div>
17492 <div class="tags">
17493
17494
17495 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>.
17496
17497
17498 </div>
17499 </div>
17500 <div class="padding"></div>
17501
17502 <div class="entry">
17503 <div class="title">
17504 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__C_dric_Boutillier.html">Debian Edu interview: Cédric Boutillier</a>
17505 </div>
17506 <div class="date">
17507 4th June 2013
17508 </div>
17509 <div class="body">
17510 <p>It has been a while since my last English
17511 <a href="http://www.skolelinux.org/">Debian Edu and Skolelinux</a>
17512 interview last November. But the developers and translators are still
17513 pulling along to get the Wheezy based release out the door, and this
17514 time I managed to get an interview from one of the French translators
17515 in the project, Cédric Boutillier.</p>
17516
17517 <p><strong>Who are you, and how do you spend your days?</strong></p>
17518
17519 <p>I am 34 year old. I live near Paris, France. I am an assistant
17520 professor in probability theory. I spend my daytime teaching
17521 mathematics at the university and doing fundamental research in
17522 probability in connexion with combinatorics and statistical physics.</p>
17523
17524 <p>I have been involved in the Debian project for a couple of years
17525 and became Debian Developer a few months ago. I am working on Ruby
17526 packaging, publicity and translation.</p>
17527
17528 <p><strong>How did you get in contact with the Skolelinux / Debian Edu
17529 project?</strong></p>
17530
17531 <p>I came to the Debian Edu project after a call for translation of
17532 <a href="http://wiki.debian.org/DebianEdu/Documentation/Manuals">the
17533 Debian Edu manual</a> for the release of Debian Edu Squeeze. Since
17534 then, I have been working on updating the French translation of the
17535 manual.
17536
17537 <p>I had the opportunity to make an installation of Debian Edu in a
17538 virtual machine when I was preparing localised version of some screen
17539 shots for the manual. I was amazed to see it worked out of the box and
17540 how comprehensive the list of software installed by default was.</p>
17541
17542 <p>What amazed me was the complete network infrastructure directly
17543 ready to use, which can and the nice administration interface provided
17544 by <a href="https://oss.gonicus.de/labs/gosa/">GOsa²</a>. What pleased
17545 me also was the fact that among the software installed by default,
17546 there were many "traditional" educative software to learn languages,
17547 to count, to program... but also software to develop creativity and
17548 artistic skills with music (<a href="http://ardour.org/">Ardour</a>,
17549 <a href="http://audacity.sourceforge.net/">Audacity</a>) and
17550 movies/animation (I was especially thinking of
17551 <a href="http://linuxstopmotion.sourceforge.net/">Stopmotion</a>).</p>
17552
17553 <p>I am following the development of Debian Edu and am hanging out on
17554 <a href="irc://irc.debian.org/%23debian-edu">#debian-edu</a>.
17555 Unfortunately, I don't much time to get more involved in this
17556 beautiful project.</p>
17557
17558 <p><strong>What do you see as the advantages of Skolelinux / Debian
17559 Edu?</strong></p>
17560
17561 <p>For me, the main advantages of Skolelinux/Debian Edu are its
17562 community of experts and its precise documentation, as well as the
17563 fact that it provides a solution ready to use.</p>
17564
17565 <p>I would add also the fact that it is based on the rock solid Debian
17566 distribution, which ensures stability and provides a huge collection
17567 of educational free software.</p>
17568
17569 <p><strong>What do you see as the disadvantages of Skolelinux / Debian
17570 Edu?</strong></p>
17571
17572 <p>Maybe the lack of manpower to do lobbying on the
17573 project. Sometimes, people who need to take decisions concerning IT do
17574 not have all the elements to evaluate properly free software
17575 solutions. The fact that support by a company may be difficult to find
17576 is probably a problem if the school does not have IT personnel.</p>
17577
17578 <p>One can find support from a company by looking at
17579 <a href="http://wiki.debian.org/DebianEdu/Help/ProfessionalHelp">the
17580 wiki dokumentation</a>, where some countries already have a number of
17581 companies providing support for Debian Edu, like Germany or
17582 Norway. This list is easy to find readily from the manual. However,
17583 for other countries, like France, the list is empty. I guess that
17584 consultants proposing support for Debian would be able to provide some
17585 support for Debian Edu as well.</p>
17586
17587 <p><strong>Which free software do you use daily?</strong></p>
17588
17589 <p>I am using the KDE Plasma Desktop. But the pieces of software I use
17590 most runs in a terminal: Mutt and OfflineIMAP for emails, latex for
17591 scientific documents, mpd for music. VIM is my editor of choice. I am
17592 also using the mathematical software
17593 <a href="http://www.scilab.org/en/scilab/about‎">Scilab</a> and
17594 <a href="http://www.sagemath.org/index.html‎">Sage</a> (built from
17595 source as not completely packaged for Debian, yet).
17596
17597 <p><strong>Do you have any suggestions for teachers interested in
17598 using the free software in Debian to teach mathematics and
17599 statistics?</strong></p>
17600
17601 <p>I do not have any "nice" recommendations for statistics. At our
17602 university, we use both <a href="http://www.r-project.org/‎">R</a> and
17603 Scilab to teach statistics and probabilistic simulations. For
17604 geometry, there are nice programs:</p>
17605
17606 <ul>
17607
17608 <li><a href="http://www.drgeo.eu/">drgeo</a> and
17609 <a href="http://edu.kde.org/applications/all/kig‎">kig</a> to do
17610 constructions in planar geometry
17611
17612 <li><a href="http://www.geom.uiuc.edu/software/download/kali.html">kali</a>
17613 to discover symmetry groups (the so-called wallpapers and frieze
17614 groups), although the interface looks a bit old.</li>
17615
17616 </ul>
17617
17618 <p>I like also
17619 <a href="http://edu.kde.org/applications/all/cantor">cantor</a>, which
17620 provides a uniform interface to SciLab, Sage,
17621 <a href="http://directory.fsf.org/wiki/Octave‎">Octave</a>, etc...</p>
17622
17623 <p><strong>Which strategy do you believe is the right one to use to
17624 get schools to use free software?</strong></p>
17625
17626 <p>My suggestions would be to</p>
17627
17628 <ul>
17629
17630 <li>advertise the reduction of costs when free software is used.</li>
17631
17632 <li>communicate about the quality of free software projects, using
17633 well known examples like Firefox, ThunderBird and
17634 OpenOffice.org/LibreOffice.</li>
17635
17636 <li>advertise the living and strong community around the project.</li>
17637
17638 <li>show that it is not more difficult to use than any other
17639 system.</li>
17640
17641 </ul>
17642
17643 </div>
17644 <div class="tags">
17645
17646
17647 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju</a>.
17648
17649
17650 </div>
17651 </div>
17652 <div class="padding"></div>
17653
17654 <div class="entry">
17655 <div class="title">
17656 <a href="http://people.skolelinux.org/pere/blog/Educational_applications_included_in_Debian_Edu___Skolelinux__the_screenshot_collection____.html">Educational applications included in Debian Edu / Skolelinux (the screenshot collection :-)</a>
17657 </div>
17658 <div class="date">
17659 1st June 2013
17660 </div>
17661 <div class="body">
17662 <p>Included in <a href="http://www.skolelinux.org/">Debian Edu /
17663 Skolelinux</a>, there are quite a lot of educational software.
17664 Created to help teachers teach, and pupils learn. We have tried to
17665 tag them all using debtags use::learning and role::program, and using
17666 the debtags I was happy to be able to create a collage of the
17667 educational software packages installed by default, sorted by the
17668 debtag field. Here it is. Click on a image to learn more about the
17669 program.</p>
17670
17671 <!-- for f in $(debtags tagcat|grep field::|awk '{print $2}'); do echo; echo "<p><strong>$f</strong></p>"; echo "<p>"; ( for p in $(debtags search --names "use::learning && interface::x11 && role::program && $f"); do img="<img src='http://screenshots.debian.net/thumbnail/$p' alt='$p'>"; if dpkg -s $p > /dev/null 2>&1; then echo "<a href='http://packages.qa.debian.org/$p'>$img</a>"; fi; done; ) | LANG=C sort; echo "</p>"; done -->
17672
17673 <p><strong>field::arts</strong></p>
17674 <p>
17675 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=audacity'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/audacity.png' alt='audacity'></a>
17676 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=childsplay'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/childsplay.png' alt='childsplay'></a>
17677 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=denemo'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/denemo.png' alt='denemo'></a>
17678 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=freebirth'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/freebirth.png' alt='freebirth'></a>
17679 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=gcompris'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/gcompris.png' alt='gcompris'></a>
17680 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=gimp'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/gimp.png' alt='gimp'></a>
17681 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=hydrogen'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/hydrogen.png' alt='hydrogen'></a>
17682 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=lilypond'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/lilypond.png' alt='lilypond'></a>
17683 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=lmms'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/lmms.png' alt='lmms'></a>
17684 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=rosegarden'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/rosegarden.png' alt='rosegarden'></a>
17685 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=scribus'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/scribus.png' alt='scribus'></a>
17686 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=solfege'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/solfege.png' alt='solfege'></a>
17687 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=stopmotion'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/stopmotion.png' alt='stopmotion'></a>
17688 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=tuxpaint'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/tuxpaint.png' alt='tuxpaint'></a>
17689 </p>
17690
17691 <p><strong>field::astronomy</strong></p>
17692 <p>
17693 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=celestia-gnome'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/celestia-gnome.png' alt='celestia-gnome'></a>
17694 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=gpredict'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/gpredict.png' alt='gpredict'></a>
17695 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=kstars'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/kstars.png' alt='kstars'></a>
17696 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=planets'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/planets.png' alt='planets'></a>
17697 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=stellarium'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/stellarium.png' alt='stellarium'></a>
17698 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=xplanet'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/xplanet.png' alt='xplanet'></a>
17699 </p>
17700
17701 <p><strong>field::biology:structural</strong></p>
17702 <p>
17703 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=pymol'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/pymol.png' alt='pymol'></a>
17704 </p>
17705
17706 <p><strong>field::chemistry</strong></p>
17707 <p>
17708 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=atomix'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/atomix.png' alt='atomix'></a>
17709 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=chemtool'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/chemtool.png' alt='chemtool'></a>
17710 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=easychem'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/easychem.png' alt='easychem'></a>
17711 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=gchempaint'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/gchempaint.png' alt='gchempaint'></a>
17712 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=gdis'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/gdis.png' alt='gdis'></a>
17713 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=ghemical'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/ghemical.png' alt='ghemical'></a>
17714 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=gperiodic'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/gperiodic.png' alt='gperiodic'></a>
17715 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=kalzium'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/kalzium.png' alt='kalzium'></a>
17716 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=pymol'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/pymol.png' alt='pymol'></a>
17717 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=viewmol'>[viewmol]</a>
17718 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=xdrawchem'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/xdrawchem.png' alt='xdrawchem'></a>
17719 </p>
17720
17721 <p><strong>field::electronics</strong></p>
17722 <p>
17723 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=gcompris'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/gcompris.png' alt='gcompris'></a>
17724 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=gpsim'>[gpsim]</a>
17725 </p>
17726
17727 <p><strong>field::geography</strong></p>
17728 <p>
17729 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=kgeography'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/kgeography.png' alt='kgeography'></a>
17730 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=marble'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/marble.png' alt='marble'></a>
17731 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=xplanet'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/xplanet.png' alt='xplanet'></a>
17732 </p>
17733
17734 <p><strong>field::linguistics</strong></p>
17735 <p>
17736 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=gcompris'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/gcompris.png' alt='gcompris'></a>
17737 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=kanagram'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/kanagram.png' alt='kanagram'></a>
17738 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=khangman'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/khangman.png' alt='khangman'></a>
17739 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=klettres'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/klettres.png' alt='klettres'></a>
17740 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=parley'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/parley.png' alt='parley'></a>
17741 </p>
17742
17743 <p><strong>field::mathematics</strong></p>
17744 <p>
17745 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=childsplay'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/childsplay.png' alt='childsplay'></a>
17746 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=drgeo'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/drgeo.png' alt='drgeo'></a>
17747 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=gcompris'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/gcompris.png' alt='gcompris'></a>
17748 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=geogebra'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/geogebra.png' alt='geogebra'></a>
17749 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=geomview'>[geomview]</a>
17750 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=grace'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/grace.png' alt='grace'></a>
17751 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=graphmonkey'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/graphmonkey.png' alt='graphmonkey'></a>
17752 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=graphthing'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/graphthing.png' alt='graphthing'></a>
17753 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=kalgebra'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/kalgebra.png' alt='kalgebra'></a>
17754 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=kbruch'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/kbruch.png' alt='kbruch'></a>
17755 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=kig'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/kig.png' alt='kig'></a>
17756 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=kmplot'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/kmplot.png' alt='kmplot'></a>
17757 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=mathwar'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/mathwar.png' alt='mathwar'></a>
17758 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=rocs'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/rocs.png' alt='rocs'></a>
17759 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=scratch'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/scratch.png' alt='scratch'></a>
17760 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=tuxmath'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/tuxmath.png' alt='tuxmath'></a>
17761 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=xabacus'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/xabacus.png' alt='xabacus'></a>
17762 </p>
17763
17764 <p><strong>field::physics</strong></p>
17765 <p>
17766 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=gcompris'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/gcompris.png' alt='gcompris'></a>
17767 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=step'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/step.png' alt='step'></a>
17768 </p>
17769
17770 <p><strong>field::TODO</strong></p>
17771 <p>
17772 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=blinken'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/blinken.png' alt='blinken'></a>
17773 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=cgoban'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/cgoban.png' alt='cgoban'></a>
17774 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=childsplay'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/childsplay.png' alt='childsplay'></a>
17775 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=gcompris'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/gcompris.png' alt='gcompris'></a>
17776 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=gnuchess'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/gnuchess.png' alt='gnuchess'></a>
17777 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=gnugo'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/gnugo.png' alt='gnugo'></a>
17778 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=gtans'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/gtans.png' alt='gtans'></a>
17779 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=ktouch'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/ktouch.png' alt='ktouch'></a>
17780 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=librecad'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/librecad.png' alt='librecad'></a>
17781 <a href='http://packages.debian.org/search?searchon=names&exact=1&suite=all&section=all&keywords=scratch'><img src='http://people.skolelinux.org/pere/blog/images/2013-06-01-debian-edu-apps/scratch.png' alt='scratch'></a>
17782 </p>
17783
17784 <p>In total, 61 applications. 3 of them lacked screen shots on
17785 <a href="http://screenshot.debian.net">screenshot.debian.net</a>. If
17786 you know of some packages we should install by default, please let us
17787 know on <a href="irc://irc.debian.org/%23debian-edu">IRC, #debian-edu
17788 on irc.debian.org</a>, or our
17789 <a href="http://lists.debian.org/debian-edu/">mailing list
17790 debian-edu@</a>.</p>
17791
17792 </div>
17793 <div class="tags">
17794
17795
17796 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>.
17797
17798
17799 </div>
17800 </div>
17801 <div class="padding"></div>
17802
17803 <div class="entry">
17804 <div class="title">
17805 <a href="http://people.skolelinux.org/pere/blog/How_to_install_Linux_on_a_Packard_Bell_Easynote_LV_preinstalled_with_Windows_8.html">How to install Linux on a Packard Bell Easynote LV preinstalled with Windows 8</a>
17806 </div>
17807 <div class="date">
17808 27th May 2013
17809 </div>
17810 <div class="body">
17811 <p>Two days ago, I asked
17812 <a href="http://people.skolelinux.org/pere/blog/How_can_I_install_Linux_on_a_Packard_Bell_Easynote_LV_preinstalled_with_Windows_8_.html">how
17813 I could install Linux on a Packard Bell EasyNote LV computer
17814 preinstalled with Windows 8</a>. I found a solution, but am horrified
17815 with the obstacles put in the way of Linux users on a laptop with UEFI
17816 and Windows 8.</p>
17817
17818 <p>I never found out if the cause of my problems were the use of UEFI
17819 secure booting or fast boot. I suspect fast boot was the problem,
17820 causing the firmware to boot directly from HD without considering any
17821 key presses and alternative devices, but do not know UEFI settings
17822 enough to tell.</p>
17823
17824 <p>There is no way to install Linux on the machine in question without
17825 opening the box and disconnecting the hard drive! This is as far as I
17826 can tell, the only way to get access to the firmware setup menu
17827 without accepting the Windows 8 license agreement. I am told (and
17828 found description on how to) that it is possible to configure the
17829 firmware setup once booted into Windows 8. But as I believe the terms
17830 of that agreement are completely unacceptable, accepting the license
17831 was never an alternative. I do not enter agreements I do not intend
17832 to follow.</p>
17833
17834 <p>I feared I had to return the laptops and ask for a refund, and
17835 waste many hours on this, but luckily there was a way to get it to
17836 work. But I would not recommend it to anyone planning to run Linux on
17837 it, and I have become sceptical to Windows 8 certified laptops. Is
17838 this the way Linux will be forced out of the market place, by making
17839 it close to impossible for "normal" users to install Linux without
17840 accepting the Microsoft Windows license terms? Or at least not
17841 without risking to loose the warranty?</p>
17842
17843 <p>I've updated the
17844 <a href="http://www.linlap.com/packard_bell_easynote_lv">Linux Laptop
17845 wiki page for Packard Bell EasyNote LV</a>, to ensure the next person
17846 do not have to struggle as much as I did to get Linux into the
17847 machine.</p>
17848
17849 <p>Thanks to Bob Rosbag, Florian Weimer, Philipp Kern, Ben Hutching,
17850 Michael Tokarev and others for feedback and ideas.</p>
17851
17852 </div>
17853 <div class="tags">
17854
17855
17856 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>.
17857
17858
17859 </div>
17860 </div>
17861 <div class="padding"></div>
17862
17863 <div class="entry">
17864 <div class="title">
17865 <a href="http://people.skolelinux.org/pere/blog/How_can_I_install_Linux_on_a_Packard_Bell_Easynote_LV_preinstalled_with_Windows_8_.html">How can I install Linux on a Packard Bell Easynote LV preinstalled with Windows 8?</a>
17866 </div>
17867 <div class="date">
17868 25th May 2013
17869 </div>
17870 <div class="body">
17871 <p>I've run into quite a problem the last few days. I bought three
17872 new laptops for my parents and a few others. I bought Packard Bell
17873 Easynote LV to run Kubuntu on and use as their home computer. But I
17874 am completely unable to figure out how to install Linux on it. The
17875 computer is preinstalled with Windows 8, and I suspect it uses UEFI
17876 instead of a BIOS to boot.</p>
17877
17878 <p>The problem is that I am unable to get it to PXE boot, and unable
17879 to get it to boot the Linux installer from my USB stick. I have yet
17880 to try the DVD install, and still hope it will work. when I turn on
17881 the computer, there is no information on what buttons to press to get
17882 the normal boot menu. I expect to get some boot menu to select PXE or
17883 USB stick booting. When booting, it first ask for the language to
17884 use, then for some regional settings, and finally if I will accept the
17885 Windows 8 terms of use. As these terms are completely unacceptable to
17886 me, I have no other choice but to turn off the computer and try again
17887 to get it to boot the Linux installer.</p>
17888
17889 <p>I have gathered my findings so far on a Linlap page about the
17890 <a href="http://www.linlap.com/packard_bell_easynote_lv">Packard Bell
17891 EasyNote LV</a> model. If you have any idea how to get Linux
17892 installed on this machine, please get in touch or update that wiki
17893 page. If I can't find a way to install Linux, I will have to return
17894 the laptop to the seller and find another machine for my parents.</p>
17895
17896 <p>I wonder, is this the way Linux will be forced out of the market
17897 using UEFI and "secure boot" by making it impossible to install Linux
17898 on new Laptops?</p>
17899
17900 </div>
17901 <div class="tags">
17902
17903
17904 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>.
17905
17906
17907 </div>
17908 </div>
17909 <div class="padding"></div>
17910
17911 <div class="entry">
17912 <div class="title">
17913 <a href="http://people.skolelinux.org/pere/blog/How_to_transform_a_Debian_based_system_to_a_Debian_Edu_installation.html">How to transform a Debian based system to a Debian Edu installation</a>
17914 </div>
17915 <div class="date">
17916 17th May 2013
17917 </div>
17918 <div class="body">
17919 <p><a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a> is
17920 an operating system based on Debian intended for use in schools. It
17921 contain a turn-key solution for the computer network provided to
17922 pupils in the primary schools. It provide both the central server,
17923 network boot servers and desktop environments with heaps of
17924 educational software. The project was founded almost 12 years ago,
17925 2001-07-02. If you want to support the project, which is in need for
17926 cash to fund developer gatherings and other project related activity,
17927 <a href="http://www.linuxiskolen.no/slxdebianlabs/donations.html">please
17928 donate some money</a>.
17929
17930 <p>A topic that come up again and again on the Debian Edu mailing
17931 lists and elsewhere, is the question on how to transform a Debian or
17932 Ubuntu installation into a Debian Edu installation. It isn't very
17933 hard, and last week I wrote a script to replicate the steps done by
17934 the Debian Edu installer.</p>
17935
17936 <p>The script,
17937 <a href="http://anonscm.debian.org/viewvc/debian-edu/branches/wheezy/debian-edu-config/share/debian-edu-config/tools/debian-edu-bless?view=markup">debian-edu-bless<a/>
17938 in the debian-edu-config package, will go through these six steps and
17939 transform an existing Debian Wheezy or Ubuntu (untested) installation
17940 into a Debian Edu Workstation:</p>
17941
17942 <ol>
17943
17944 <li>Add skolelinux related APT sources.</li>
17945 <li>Create /etc/debian-edu/config with the wanted configuration.</li>
17946 <li>Install debian-edu-install to load preseeding values and pull in
17947 our configuration.</li>
17948 <li>Preseed debconf database with profile setup in
17949 /etc/debian-edu/config, and run tasksel to install packages
17950 according to the profile specified in the config above,
17951 overriding some of the Debian automation machinery.</li>
17952 <li>Run debian-edu-cfengine-D installation to configure everything
17953 that could not be done using preseeding.</li>
17954 <li>Ask for a reboot to enable all the configuration changes.</li>
17955
17956 </ol>
17957
17958 <p>There are some steps in the Debian Edu installation that can not be
17959 replicated like this. Disk partitioning and LVM setup, for example.
17960 So this script just assume there is enough disk space to install all
17961 the needed packages.</p>
17962
17963 <p>The script was created to help a Debian Edu student working on
17964 setting up <a href="http://www.raspberrypi.org">Raspberry Pi</a> as a
17965 Debian Edu client, and using it he can take the existing
17966 <a href="http://www.raspbian.org/FrontPage‎">Raspbian</a> installation and
17967 transform it into a fully functioning Debian Edu Workstation (or
17968 Roaming Workstation, or whatever :).</p>
17969
17970 <p>The default setting in the script is to create a KDE Workstation.
17971 If a LXDE based Roaming workstation is wanted instead, modify the
17972 PROFILE and DESKTOP values at the top to look like this instead:</p>
17973
17974 <p><pre>
17975 PROFILE="Roaming-Workstation"
17976 DESKTOP="lxde"
17977 </pre></p>
17978
17979 <p>The script could even become useful to set up Debian Edu servers in
17980 the cloud, by starting with a virtual Debian installation at some
17981 virtual hosting service and setting up all the services on first
17982 boot.</p>
17983
17984 </div>
17985 <div class="tags">
17986
17987
17988 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>.
17989
17990
17991 </div>
17992 </div>
17993 <div class="padding"></div>
17994
17995 <div class="entry">
17996 <div class="title">
17997 <a href="http://people.skolelinux.org/pere/blog/Second_alpha_release_of_Debian_Edu___Skolelinux_based_on_Debian_Wheezy.html">Second alpha release of Debian Edu / Skolelinux based on Debian Wheezy</a>
17998 </div>
17999 <div class="date">
18000 14th May 2013
18001 </div>
18002 <div class="body">
18003 <p>The <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux
18004 project</a> is making great progress and made its second Wheezy based
18005 release today. This is the release announcement:</p>
18006
18007 <p><strong>New features for Debian Edu 7.0.0 alpha1 released
18008 2013-05-14</strong></p>
18009
18010 <p>This is the release notes for for Debian Edu / Skolelinux 7.0.0 edu
18011 alpha1, based on <a href="http://www.debian.org">Debian</a> with
18012 codename "Wheezy".</p>
18013
18014 <p><strong>About Debian Edu and Skolelinux</strong></p>
18015
18016 <p>Debian Edu, also known as Skolelinux, is a Linux distribution based
18017 on Debian providing an out-of-the box environment of a completely
18018 configured school network. Immediatly after installation a school
18019 server running all services needed for a school network is set up just
18020 waiting for users and machines being added via GOsa², a comfortable
18021 Web-UI. A netbooting environment is prepared using PXE, so after
18022 initial installation of the main server from CD, DVD or USB stick all
18023 other machines can be installed via the network.</p>
18024
18025 <p>This is the first test release based on Wheezy (which currently is
18026 not released yet). Basically this is an updated and slightly improved
18027 version compared to the Squeeze release.</p>
18028
18029 <p><strong>Software updates</strong></p>
18030 <ul>
18031 <li>Install freemind (0.9.0) by default, and stop installing vym by
18032 default.</li>
18033 <li>Install chromium (26.0.1410.43) by default.</li>
18034 <li>Install goplay (0.5-1.1) to make golearn available by default.</li>
18035 <li>Updated support for Japanese input methods, now based on
18036 ibus-anthy.</li>
18037 </ul>
18038
18039 <p><strong>Other changes</strong></p>
18040 <ul>
18041
18042 <li>Switched default file system from ext3 to ext4 for speed and
18043 reliability improvements.</li>
18044 <li>Got rid of unwanted winbind daemon and PAM setup activated because
18045 of <a href="http://bugs.debian.org/706434">706434</a>.</li>
18046 <li>Extended and improved the testsuite tests to detect more possible
18047 problems.</li>
18048 <li>Corrected proxy handling to not set http_proxy to a bogus
18049 direct:// URL.</li>
18050 <li>Corrected proxy setup for diskless workstations.</li>
18051 <li>Corrected PXE setup to use our updated udebs during installation.</li>
18052 <li>Made installation handling of low entropy level more robust.</li>
18053 <li>Create larger partitions for Roaming workstations and Thin client
18054 servers, to make room for all the software installed.</li>
18055 <li>Fix bug in Roaming workstation PAM setup, making it impossible to
18056 log in (<a href="http://bugs.debian.org/706753">706753</a>).</li>
18057 </ul>
18058
18059 <p><strong>Known issues</strong></p>
18060 <ul>
18061
18062 <li>IP resolution for the local hostname give useless IPv6 address
18063 (<a href="http://bugs.debian.org/705900">705900</a>). Only install
18064 libnss-myhostname on roaming workstations until it is fixed.</li>
18065 <li>DVD images are not yet ready.</li>
18066 <li>No mass import of user account data in GOsa (ldif or csv)
18067 available yet (<a href="http://bugs.debian.org/698840">698840</a>).</li>
18068 <li>Missing artwork for the KDE desktop (and probably a few others).</li>
18069 <li>KDE Debian submenu lacks icons.</li>
18070 <li>LXDE menu lacks entry for changing GOsa password
18071 (website). Installing gosa-desktop will be an option.</li>
18072 <li>Backup configuration via web interface is impossible due to
18073 password submission problem
18074 (<a href="http://bugs.debian.org/700257">700257</a>).</li>
18075
18076 </ul>
18077
18078 <p><strong>Where to get it</strong></p>
18079
18080 <p>To download the multiarch netinstall CD release you can use</p>
18081 <ul>
18082
18083 <li><a href="ftp://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu~7.0+edu0~a1-CD.iso">ftp://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu~7.0+edu0~a1-CD.iso</a></li>
18084 <li><a href="http://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu~7.0+edu0~a1-CD.iso">http://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu~7.0+edu0~a1-CD.iso</a></li>
18085 <li>rsync -avzP ftp.skolelinux.org::skolelinux-cd/wheezy/debian-edu~7.0+edu0~a1-CD.iso debian-edu~7.0+edu0~a1-CD.iso</li>
18086
18087 </ul>
18088
18089 <p>The MD5SUM of this image is: 685ed76c1aa8e44b12d3fde21faf450b</p>
18090
18091 <p>The SHA1SUM of this image is: 6c874de157024da13e115bab29c068080a11ec4c</p>
18092
18093 <p><strong>How to report bugs</strong></p>
18094
18095 <p><a href="http://wiki.debian.org/DebianEdu/HowTo/ReportBugs">http://wiki.debian.org/DebianEdu/HowTo/ReportBugs</a></p>
18096
18097 </div>
18098 <div class="tags">
18099
18100
18101 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>.
18102
18103
18104 </div>
18105 </div>
18106 <div class="padding"></div>
18107
18108 <div class="entry">
18109 <div class="title">
18110 <a href="http://people.skolelinux.org/pere/blog/Debian__the_Linux_distribution_of_choice_for_LEGO_designers_.html">Debian, the Linux distribution of choice for LEGO designers?</a>
18111 </div>
18112 <div class="date">
18113 11th May 2013
18114 </div>
18115 <div class="body">
18116 <P>In January,
18117 <a href="http://people.skolelinux.org/pere/blog/New_IRC_channel_for_LEGO_designers_using_Debian.html">I
18118 announced a</a> new <a href="irc://irc.debian.org/%23debian-lego">IRC
18119 channel #debian-lego</a>, for those of us in the Debian and Linux
18120 community interested in <a href="http://www.lego.com/">LEGO</a>, the
18121 marvellous construction system from Denmark. We also created
18122 <a href="http://wiki.debian.org/LegoDesigners">a wiki page</a> to have
18123 a place to take notes and write down our plans and hopes. And several
18124 people showed up to help. I was very happy to see the effect of my
18125 call. Since the small start, we have a debtags tag
18126 <a href="http://debtags.debian.net/search/bytag?wl=hardware::hobby:lego">hardware::hobby:lego</a>
18127 tag for LEGO related packages, and now count 10 packages related to
18128 LEGO and <a href="http://mindstorms.lego.com/">Mindstorms</a>:</p>
18129
18130 <p><table>
18131 <tr><td><a href="http://packages.qa.debian.org/brickos">brickos</a></td><td>alternative OS for LEGO Mindstorms RCX. Supports development in C/C++</td></tr>
18132 <tr><td><a href="http://packages.qa.debian.org/leocad">leocad</a></td><td>virtual brick CAD software</td></tr>
18133 <tr><td><a href="http://packages.qa.debian.org/libnxt">libnxt</a></td><td>utility library for talking to the LEGO Mindstorms NX</td></tr>
18134 <tr><td><a href="http://packages.qa.debian.org/lnpd">lnpd</a></td><td>daemon for LNP communication with BrickOS</td></tr>
18135 <tr><td><a href="http://packages.qa.debian.org/nbc">nbc</a></td><td>compiler for LEGO Mindstorms NXT bricks</td></tr>
18136 <tr><td><a href="http://packages.qa.debian.org/nqc">nqc</a></td><td>Not Quite C compiler for LEGO Mindstorms RCX</td></tr>
18137 <tr><td><a href="http://packages.qa.debian.org/python-nxt">python-nxt</a></td><td>python driver/interface/wrapper for the Lego Mindstorms NXT robot</td></tr>
18138 <tr><td><a href="http://packages.qa.debian.org/python-nxt-filer">python-nxt-filer</a></td><td>simple GUI to manage files on a LEGO Mindstorms NXT</td></tr>
18139 <tr><td><a href="http://packages.qa.debian.org/scratch">scratch</a></td><td>easy to use programming environment for ages 8 and up</td></tr>
18140 <tr><td><a href="http://packages.qa.debian.org/t2n">t2n</a></td><td>simple command-line tool for Lego NXT</td></tr>
18141 </table></p>
18142
18143 <p>Some of these are available in Wheezy, and all but one are
18144 currently available in Jessie/testing. leocad is so far only
18145 available in experimental.</p>
18146
18147 <p>If you care about LEGO in Debian, please join us on IRC and help
18148 adding the rest of the great free software tools available on Linux
18149 for LEGO designers.</p>
18150
18151 </div>
18152 <div class="tags">
18153
18154
18155 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/lego">lego</a>, <a href="http://people.skolelinux.org/pere/blog/tags/robot">robot</a>.
18156
18157
18158 </div>
18159 </div>
18160 <div class="padding"></div>
18161
18162 <div class="entry">
18163 <div class="title">
18164 <a href="http://people.skolelinux.org/pere/blog/Debian_Wheezy_is_out___and_Debian_Edu___Skolelinux_should_soon_follow___newinwheezy.html">Debian Wheezy is out - and Debian Edu / Skolelinux should soon follow! #newinwheezy</a>
18165 </div>
18166 <div class="date">
18167 5th May 2013
18168 </div>
18169 <div class="body">
18170 <p>When I woke up this morning, I was very happy to see that the
18171 <a href="http://www.debian.org/News/2013/20130504">release announcement
18172 for Debian Wheezy</a> was waiting in my mail box. This is a great
18173 Debian release, and I expect to move my machines at home over to it fairly
18174 soon.</p>
18175
18176 <p>The new debian release contain heaps of new stuff, and one program
18177 in particular make me very happy to see included. The
18178 <a href="http://scratch.mit.edu/">Scratch</a> program, made famous by
18179 the <a href="http://www.code.org/">Teach kids code</a> movement, is
18180 included for the first time. Alongside similar programs like
18181 <a href="http://edu.kde.org/kturtle/">kturtle</a> and
18182 <a href="http://wiki.sugarlabs.org/go/Activities/Turtle_Art">turtleart</a>,
18183 it allow for visual programming where syntax errors can not happen,
18184 and a friendly programming environment for learning to control the
18185 computer. Scratch will also be included in the next release of Debian
18186 Edu.</a>
18187
18188 <p>And now that Wheezy is wrapped up, we can wrap up the next Debian
18189 Edu/Skolelinux release too. The
18190 <a href="http://lists.debian.org/debian-edu/2013/04/msg00132.html">first
18191 alpha release</a> went out last week, and the next should soon
18192 follow.<p>
18193
18194 </div>
18195 <div class="tags">
18196
18197
18198 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>.
18199
18200
18201 </div>
18202 </div>
18203 <div class="padding"></div>
18204
18205 <div class="entry">
18206 <div class="title">
18207 <a href="http://people.skolelinux.org/pere/blog/First_alpha_release_of_Debian_Edu___Skolelinux_based_on_Debian_Wheezy.html">First alpha release of Debian Edu / Skolelinux based on Debian Wheezy</a>
18208 </div>
18209 <div class="date">
18210 26th April 2013
18211 </div>
18212 <div class="body">
18213 <p>The Debian Edu / Skolelinux project is still going strong and made
18214 its first Wheezy based release today. This is the release
18215 announcement:</p>
18216
18217 <p><strong>New features for Debian Edu ~7.0.0 alpha0 released
18218 2013-04-26</strong></p>
18219
18220 <p>This is the release notes for for Debian Edu / Skolelinux ~7.0.0
18221 edu alpha0, based on Debian with codename "Wheezy".</p>
18222
18223 <p><strong>About Debian Edu and Skolelinux</strong></p>
18224
18225 <p><a href="http://www.skolelinux.org/">Debian Edu, also known as
18226 Skolelinux</a>, is a Linux distribution based on Debian providing an
18227 out-of-the box environment of a completely configured school
18228 network. Immediatly after installation a school server running all
18229 services needed for a school network is set up just waiting for users
18230 and machines being added via GOsa², a comfortable Web-UI. A netbooting
18231 environment is prepared using PXE, so after initial installation of
18232 the main server from CD, DVD or USB stick all other machines can be
18233 installed via the network.</p>
18234
18235 <p>This is the first test release based on Wheezy (which currently is
18236 not released yet). Basically this is an updated and slightly improved
18237 version compared to the Squeeze release.</p>
18238
18239 <p><strong>Software updates</strong></p>
18240
18241 <ul>
18242 <li>Everything which is new in Debian Wheezy, eg:
18243 <ul>
18244 <li>Linux kernel 3.2.x</li>
18245 <li>Desktop environments KDE "Plasma" 4.8.4, GNOME 3.4, and LXDE 4
18246 (KDE is installed by default; to choose GNOME or LXDE: see
18247 manual.)</li>
18248 <li>Web browser Iceweasel 10 ESR</li>
18249 <li>LibreOffice 3.5.4</li>
18250 <li>LTSP 5.4.2</li>
18251 <li>GOsa 2.7.4</li>
18252 <li>CUPS print system 1.5.3</li>
18253 <li>Educational toolbox GCompris 12.01</li>
18254 <li>Music creator Rosegarden 12.04</li>
18255 <li>Image editor Gimp 2.8.2</li>
18256 <li>Virtual universe Celestia 1.6.1</li>
18257 <li>Virtual stargazer Stellarium 0.11.3</li>
18258 <li>Scratch visual programming environment 1.4.0.6</li>
18259 <li>New version of debian-installer from Debian Wheezy, see
18260 <a href="http://www.debian.org/releases/wheezy/installmanual">installation
18261 manual</a> for more details.</li>
18262 <li>Debian Wheezy includes about 37000 packages available for
18263 installation.</li>
18264 <li>More information about Debian Wheezy 7.0 is provided in the
18265 <a href="http://www.debian.org/releases/wheezy/releasenotes">release notes</a> and the <a href="http://www.debian.org/releases/wheezy/installmanual">installation manual</a>.</li>
18266 </ul></li>
18267 </ul>
18268
18269 <p><strong>Documentation</strong></p>
18270 <ul>
18271 <li>The (<a href="http://wiki.debian.org/DebianEdu/Documentation/Wheezy">English</a>) Debian Edu Wheezy Manual is fully translated to
18272 German, French, Italian and Danish. Partly translated versions exist
18273 for Norwegian Bokmal and Spanish.</li>
18274 </ul>
18275
18276 <p><Strong>LDAP related changes</strong></p>
18277 <ul>
18278 <li>Slight changes to some objects and acls to have more types to
18279 choose from when adding systems in GOsa. Now systems can be of type
18280 server, workstation, printer, terminal or netdevice.</li>
18281 </ul>
18282
18283 <p><strong>Other changes</strong></p>
18284 <ul>
18285 <li>LTSP clients start as diskless workstation / thin client can be
18286 configured via command line argument -- or individually adding an
18287 entry in lts.conf or LDAP.<li>
18288 <li>GOsa gui: Now some options that seemed to be available, but are non
18289 functional, are greyed out (or are not clickable). Some tabs are
18290 completely hidden to the end user, others even to the GOsa admin.</li>
18291 </ul>
18292
18293 <p><strong>Regressions</strong></p>
18294 <ul>
18295 <li>No mass import of user account data in GOsa (ldif or csv) available
18296 yet.</li>
18297 </ul>
18298
18299 <p><strong>No updated artwork</strong></p>
18300
18301 <ul>
18302 <li>Updated artwork which is visible during installation, in the login
18303 screen and as desktop wallpaper is still missing or the same as we
18304 had for our Squeeze based release.</li>
18305 </ul>
18306
18307 <p><strong>Where to get it</strong></p>
18308
18309 To download the multiarch netinstall CD release you can use
18310 <ul>
18311 <li><a href="ftp://ftp.skolelinux.org/skolelinux-cd/wheezy/">ftp://ftp.skolelinux.org/skolelinux-cd/wheezy/</a></li>
18312 <li><a href="http://ftp.skolelinux.org/skolelinux-cd/wheezy/">http://ftp.skolelinux.org/skolelinux-cd/wheezy/</a></li>
18313 <li>rsync -avzP ftp.skolelinux.org::skolelinux-cd/wheezy/</li>
18314 </ul>
18315
18316 <p>The MD5SUM of this image is: c5e773ddafdaa4f48c409c682f598b6c</p>
18317
18318 <p>The SHA1SUM of this image is: 25934fabb9b7d20235499a0a51f08ce6c54215f2</p>
18319
18320 <p><strong>How to report bugs</strong></p>
18321
18322 <p><a href="http://wiki.debian.org/DebianEdu/HowTo/ReportBugs">http://wiki.debian.org/DebianEdu/HowTo/ReportBugs</a></p>
18323
18324 </div>
18325 <div class="tags">
18326
18327
18328 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>.
18329
18330
18331 </div>
18332 </div>
18333 <div class="padding"></div>
18334
18335 <div class="entry">
18336 <div class="title">
18337 <a href="http://people.skolelinux.org/pere/blog/First_Debian_Edu___Skolelinux_developer_gathering_in_2013_take_place_in_Trondheim.html">First Debian Edu / Skolelinux developer gathering in 2013 take place in Trondheim</a>
18338 </div>
18339 <div class="date">
18340 16th April 2013
18341 </div>
18342 <div class="body">
18343 <p>This years first <a href="http://www.skolelinux.org/">Skolelinux /
18344 Debian Edu</a> developer gathering take place the coming weekend in Trondheim.
18345 Details about the gathering can be found
18346 <a href="http://www.friprogramvareiskolen.no/Gathering/2013-04-19-21-Trondheim">on
18347 the FRiSK wiki</a>. The dates are 19-21th of April 2013, and online
18348 participation for those unable to make it in person is very welcome,
18349 and I plan to participate online myself as I could not leave Oslo this
18350 weekend.</p>
18351
18352 <p>The focus of the gathering is to work on the web pages and project
18353 infrastructure, and to continue the work on the Wheezy based Debian
18354 Edu release.</p>
18355
18356 <p>See you on <a href="irc://irc.debian.org/%23debian-edu">IRC, #debian-edu on irc.debian.org,</a> then?</p>
18357
18358 </div>
18359 <div class="tags">
18360
18361
18362 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>.
18363
18364
18365 </div>
18366 </div>
18367 <div class="padding"></div>
18368
18369 <div class="entry">
18370 <div class="title">
18371 <a href="http://people.skolelinux.org/pere/blog/Isenkram_0_2_finally_in_the_Debian_archive.html">Isenkram 0.2 finally in the Debian archive</a>
18372 </div>
18373 <div class="date">
18374 3rd April 2013
18375 </div>
18376 <div class="body">
18377 <p>Today the <a href="http://packages.qa.debian.org/isenkram">Isenkram
18378 package</a> finally made it into the archive, after lingering in NEW
18379 for many months. I uploaded it to the Debian experimental suite
18380 2013-01-27, and today it was accepted into the archive.</p>
18381
18382 <p>Isenkram is a system for suggesting to users what packages to
18383 install to work with a pluggable hardware device. The suggestion pop
18384 up when the device is plugged in. For example if a Lego Mindstorm NXT
18385 is inserted, it will suggest to install the program needed to program
18386 the NXT controller. Give it a go, and report bugs and suggestions to
18387 BTS. :)</p>
18388
18389 </div>
18390 <div class="tags">
18391
18392
18393 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram</a>.
18394
18395
18396 </div>
18397 </div>
18398 <div class="padding"></div>
18399
18400 <div class="entry">
18401 <div class="title">
18402 <a href="http://people.skolelinux.org/pere/blog/Change_the_font__save_the_world__and_save_some_money_in_the_process_.html">Change the font, save the world (and save some money in the process)</a>
18403 </div>
18404 <div class="date">
18405 26th March 2013
18406 </div>
18407 <div class="body">
18408 <p>Would you like to help the environment and save money at the same
18409 time, without much sacrifice? A small step could be to change the
18410 font you use when printing.</p>
18411
18412 <p>Three years ago,
18413 <a href="http://arstechnica.com/business/2010/04/last-year-printer-comparison-website/">Ars
18414 Technica</a> reported how the University of Wisconsin-Green Bay
18415 changed their default front from
18416 <a href="http://en.wikipedia.org/wiki/Arial">Arial</a> to
18417 <a href="http://en.wikipedia.org/wiki/Century_Gothic">Century
18418 Gothic</a> to save money. The Century Gothic font uses 30% less toner
18419 than Arial to print the same text. In other word, you could cut your
18420 toner costs by 30% (or actually, increase your toner supply life time
18421 by more than 30%), by simply changing the default font used in your
18422 prints.</p>
18423
18424 <p>But it is not quite obvious how much one will save by switching.
18425 The University of Wisconsin-Green Bay said it used $100,000 per year
18426 on ink and toner cartridges, according to
18427 <a href="http://www.twincities.com/ci_14833097">a report from
18428 TwinCities.com</a>, and expected to save between $5,000 and $10,000
18429 per year by asking staff and students to use a different font. Not
18430 all PDFs and documents are created internally, and those from external
18431 sources will most likely still use a different font. Also, the
18432 Century Gothic font is slightly wider than Arial, and thus might use
18433 more sheets of paper to print the same text, so the total saving
18434 depend on the documents printed.</p>
18435
18436 <p>But it is definitely something to consider, if you want to reduce
18437 the amount of trash, decrease the amount of toner used in the world,
18438 and save some money in the process.</p>
18439
18440 <p>Update 2013-04-10: If you want to know how much ink/toner could be
18441 saved when switching between fonts, Inkfarm got a
18442 <a href="http://www.inkfarm.com/What-the-Font">service to calculate the
18443 difference between font pairs</a>. They also
18444 <a href="http://www.inkfarm.com/Recommended-Ink-Saving-Fonts---">recommend
18445 which fonts to use</a> to save ink. Check it out. :) While updating
18446 this blog post, I also came across a blog post from InkCloners,
18447 <a href="http://inkcloners.com/blog/ink-cartridges/change-fonts-to-save-ink-costs/">listing
18448 the fonts they recommend</a>, with Centory Gothic at the top.</p>
18449
18450 </div>
18451 <div class="tags">
18452
18453
18454 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
18455
18456
18457 </div>
18458 </div>
18459 <div class="padding"></div>
18460
18461 <div class="entry">
18462 <div class="title">
18463 <a href="http://people.skolelinux.org/pere/blog/Typesetting_a_short_story_using_docbook_for_PDF__HTML_and_EPUB.html">Typesetting a short story using docbook for PDF, HTML and EPUB</a>
18464 </div>
18465 <div class="date">
18466 24th March 2013
18467 </div>
18468 <div class="body">
18469 <p>A few days ago, during a discussion in
18470 <a href="http://www.efn.no/">EFN</a> about interesting books to read
18471 about copyright and the data retention directive, a suggestion to read
18472 the 1968 short story Kodémus by
18473 <a href="http://web2.gyldendal.no/toraage/">Tore Åge Bringsværd</a>
18474 came up. The text was only available in old paper books, and thus not
18475 easily available for current and future generations. Some of the
18476 people participating in the discussion contacted the author, and
18477 reported back 2013-03-19 that the author was OK with releasing the
18478 short story using a <a href="http://www.creativecommons.org/">Creative
18479 Commons</a> license. The text was quickly scanned and OCR-ed, and we
18480 were ready to start on the editing and typesetting.</p>
18481
18482 <p>As I already had some experience formatting text in my project to
18483 provide a Norwegian version of the Free Culture book by Lawrence
18484 Lessig, I chipped in and set up a
18485 <a href="http://www.docbook.org/">DocBook</a> processing framework to
18486 generate PDF, HTML and EPUB version of the short story. The tools to
18487 transform DocBook to different formats are already in my Linux
18488 distribution of choice, <a href="http://www.debian.org/">Debian</a>, so
18489 all I had to do was to use the
18490 <a href="http://dblatex.sourceforge.net/">dblatex</a>,
18491 <a href="http://docbook.sourceforge.net/release/xsl/current/epub/README">dbtoepub</a>
18492 and <a href="https://fedorahosted.org/xmlto/">xmlto</a> tools to do the
18493 conversion. After a few days, we decided to replace dblatex with
18494 xsltproc/fop (aka
18495 <a href="http://wiki.docbook.org/DocBookXslStylesheets">docbook-xsl</a>),
18496 to get the copyright information to show up in the PDF and to get a
18497 nicer &lt;variablelist&gt; typesetting, but that is just a minor
18498 technical detail.</p>
18499
18500 <p>There were a few challenges, of course. We want to typeset the
18501 short story to look like the original, and that require fairly good
18502 control over the layout. The original short story have three
18503 parts/scenes separated by a single horizontally centred star (*), and
18504 the paragraphs do not contain only flowing text, but dialogs and text
18505 that started on a new line in the middle of the paragraph.</p>
18506
18507 <p>I initially solved the first challenge by using a paragraph with a
18508 single star in it, ie &lt;para&gt;*&lt;/para&gt;, but it made sure a
18509 placeholder indicated where the scene shifted. This did not look too
18510 good without the centring. The next approach was to create a new
18511 preprocessor directive &lt;?newscene?&gt;, mapping to "&lt;hr/&gt;"
18512 for HTML and "&lt;fo:block text-align="center"&gt;&lt;fo:leader
18513 leader-pattern="rule" rule-thickness="0.5pt"/&gt;&lt;/fo:block&gt;"
18514 for FO/PDF output (did not try to implement this in dblatex, as we had
18515 switched at this time). The HTML XSL file looked like this:</p>
18516
18517 <p><blockquote><pre>
18518 &lt;?xml version='1.0'?&gt;
18519 &lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'&gt;
18520 &lt;xsl:template match="processing-instruction('newscene')"&gt;
18521 &lt;hr/&gt;
18522 &lt;/xsl:template&gt;
18523 &lt;/xsl:stylesheet&gt;
18524 </pre></blockquote></p>
18525
18526 <p>And the FO/PDF XSL file looked like this:</p>
18527
18528 <p><blockquote><pre>
18529 &lt;?xml version='1.0'?&gt;
18530 &lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'&gt;
18531 &lt;xsl:template match="processing-instruction('newscene')"&gt;
18532 &lt;fo:block text-align="center"&gt;
18533 &lt;fo:leader leader-pattern="rule" rule-thickness="0.5pt"/&gt;
18534 &lt;/fo:block&gt;
18535 &lt;/xsl:template&gt;
18536 &lt;/xsl:stylesheet&gt;
18537 </pre></blockquote></p>
18538
18539 <p>Finally, I came across the &lt;bridgehead&gt; tag, which seem to be
18540 a good fit for the task at hand, and I replaced &lt;?newscene?&gt;
18541 with &lt;bridgehead&gt;*&lt;/bridgehead&gt;. It isn't centred, but we
18542 can fix it with some XSL rule if the current visual layout isn't
18543 enough.</p>
18544
18545 <p>I did not find a good DocBook compliant way to solve the
18546 linebreak/paragraph challenge, so I ended up creating a new processor
18547 directive &lt;?linebreak?&gt;, mapping to &lt;br/&gt; in HTML, and
18548 &lt;fo:block/&gt; in FO/PDF. I suspect there are better ways to do
18549 this, and welcome ideas and patches on github. The HTML XSL file now
18550 look like this:</p>
18551
18552 <p><blockquote><pre>
18553 &lt;?xml version='1.0'?&gt;
18554 &lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'&gt;
18555 &lt;xsl:template match="processing-instruction('linebreak)"&gt;
18556 &lt;br/&gt;
18557 &lt;/xsl:template&gt;
18558 &lt;/xsl:stylesheet&gt;
18559 </pre></blockquote></p>
18560
18561 <p>And the FO/PDF XSL file looked like this:</p>
18562
18563 <p><blockquote><pre>
18564 &lt;?xml version='1.0'?&gt;
18565 &lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'
18566 xmlns:fo="http://www.w3.org/1999/XSL/Format"&gt;
18567 &lt;xsl:template match="processing-instruction('linebreak)"&gt;
18568 &lt;fo:block/&gt;
18569 &lt;/xsl:template&gt;
18570 &lt;/xsl:stylesheet&gt;
18571 </pre></blockquote></p>
18572
18573 <p>One unsolved challenge is our wish to expose different ISBN numbers
18574 per publication format, while keeping all of them in some conditional
18575 structure in the DocBook source. No idea how to do this, so we ended
18576 up listing all the ISBN numbers next to their format in the colophon
18577 page.</p>
18578
18579 <p>If you want to check out the finished result, check out the
18580 <a href="https://github.com/sickel/kodemus">source repository at
18581 github</a>
18582 (<a href="https://github.com/EFN/kodemus">future/new/official
18583 repository</a>). We expect it to be ready and announced in a few
18584 days.</p>
18585
18586 </div>
18587 <div class="tags">
18588
18589
18590 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>.
18591
18592
18593 </div>
18594 </div>
18595 <div class="padding"></div>
18596
18597 <div class="entry">
18598 <div class="title">
18599 <a href="http://people.skolelinux.org/pere/blog/Skolelinux_6_got_a_video_review_from_Pcwizz.html">Skolelinux 6 got a video review from Pcwizz</a>
18600 </div>
18601 <div class="date">
18602 17th March 2013
18603 </div>
18604 <div class="body">
18605 <p>Via
18606 <a href="https://twitter.com/pcwizz/status/313044373262716930">twitter</a>
18607 I just discovered that <a href="http://pcwizz.net/">Pcwizz</a> have
18608 done a <a href="http://www.youtube.com/watch?v=wPzTZ61Pcuc">video
18609 review</a> on Youtube of <a href="http://www.skolelinux.org/">Skolelinux
18610 / Debian Edu</a> version 6. He installed the standalone profile and
18611 the video show a walk-through of of the menu content, demonstration of
18612 a few programs and his view of our distribution.</p>
18613
18614 <p>There is also some really nice quotes (transcribed by me, might
18615 have heard wrong). While looking thought the Graphics menu:</p>
18616
18617 <blockquote>
18618 "Basically everything you ever need in a school environment."
18619 </blockquote>
18620
18621 <p>And as a general evaluation of the entire distribution:</p>
18622
18623 <blockquote>
18624 "So, yeah, a bit bloated. It kept all the Debian stuff in there, just
18625 to keep it nice and GNU. So, I do not want to go on about it, but
18626 lets give it 7 out of 10. I am not going to use it. That is because
18627 I am not deploying a school network. There may be some mythical
18628 feature to help you deploy Skolelinux on a school network."
18629 </blockquote>
18630
18631 <p>To bad he did not test the server profile, and discovered the PXE
18632 installation option. It make it possible to install only the main
18633 server from CD, and the rest of the machines via the net, and might be
18634 considered the mythical feature he talk about. :)</p>
18635
18636 <p>While looking through the menus, there is also this funny comment
18637 about the part of the K menu generated from the Debian menu subsystem:
18638
18639 <blockquote>
18640 "[The K menu] have a special Debian section for software that no-one
18641 is going to look at, because it contain lots of junky stuff that you
18642 actually don't need in the education distribution, but have just been
18643 included because it isn't stripped out for some reason."
18644 </blockquote>
18645
18646 <p>I guess it is yet another argument for merging the Debian menu and
18647 Gnome/KDE desktop menu entries into
18648 <a href="http://wiki.debian.org/Proposals/DebianMenuUsingDesktopEntries">one
18649 consistent menu system</a> instead of two incomplete and partly
18650 inconsistent menu systems.</p>
18651
18652 <p>The entire video is available below for those accepting iframe
18653 embedding:</p>
18654
18655 <iframe width="560" height="315" src="http://www.youtube.com/embed/wPzTZ61Pcuc" frameborder="0" allowfullscreen></iframe>
18656
18657 </div>
18658 <div class="tags">
18659
18660
18661 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>.
18662
18663
18664 </div>
18665 </div>
18666 <div class="padding"></div>
18667
18668 <div class="entry">
18669 <div class="title">
18670 <a href="http://people.skolelinux.org/pere/blog/First_Skolelinux___Debian_Edu_Squeeze_update_released.html">First Skolelinux / Debian Edu Squeeze update released</a>
18671 </div>
18672 <div class="date">
18673 8th March 2013
18674 </div>
18675 <div class="body">
18676 <p>Last Sunday, 2013-03-03,, Holger Levsen announced the first update
18677 of <a href="http://www.skolelinux.org/">Skolelinux / Debian Edu</a>
18678 based on Debian Squeeze. This is the first update since
18679 <a href="http://lists.debian.org/debian-edu-announce/2012/03/msg00001.html">the
18680 initial release 2012-03-11</a>. This is the
18681 <a href="http://lists.debian.org/debian-edu-announce/2013/03/msg00000.html">release
18682 announcement email from Holger</a>:</p>
18683
18684 <blockquote><p>Hi,</p>
18685
18686 <p>it's my pleasure to announce the immediate availability of Debian
18687 Edu 6.0.7+r1 ("Debian Edu Squeeze").</p>
18688
18689 <p>Debian Edu 6.0.7+r1 is an incremental update to Debian Edu
18690 6.0.4+r0, containing all the changes between Debian 6.0.4 and 6.0.7 as
18691 well Debian Edu specific bugfixes and enhancements. See below (in this
18692 mail) for the full list of (edu) changes. Please see
18693 <a href="http://www.debian.org/News/2012/20120311">http://www.debian.org/News/2012/20120311</a>
18694 for more information on "Debian Edu Squeeze".</p>
18695
18696 <p>Images are available for download at
18697 <a href="http://ftp.skolelinux.org/skolelinux-cd/">http://ftp.skolelinux.org/skolelinux-cd/</a></p>
18698
18699 <p>md5sums:
18700 <br>1fe79eb4f0f9ae1c58fc318e26cc1e2e debian-edu-6.0.7+r1-CD.iso
18701 <br>a6ddd924a8bd9a1b5ca122e8fe1c34ec debian-edu-6.0.7+r1-DVD.iso
18702 <br>ac6c72cd7925ccec51bfbf58e2a7c69c debian-edu-6.0.7+r1-source-DVD.iso</p>
18703
18704 <p>sha1sums:
18705 <br>a4b58233b672a99c7df8dc24fb6de3327654a5c3 debian-edu-6.0.7+r1-CD.iso
18706 <br>9b524915e0ff2aa793f13d93123e5bd2bab2dbaa debian-edu-6.0.7+r1-DVD.iso
18707 <br>43997614893fc5e9e59ad6ce066b05d07fd836fa debian-edu-6.0.7+r1-source-DVD.iso</p>
18708
18709 <p>These images are suitable for amd64+i386.</p>
18710
18711 <p>Changes for Debian Edu 6.0.7+r1 Codename "Squeeze", released
18712 2013-03-03:</p>
18713
18714 <ul>
18715 <li>sitesummary was updated from 0.1.3 to 0.1.8
18716 <ul>
18717 <li>Make Nagios configuration more robust and efficient</li>
18718 <li>Comply with 3.X kernel</li>
18719 </ul></li>
18720 <li>debian-edu-doc from 1.4~20120310~6.0.4+r0 to 1.4~20130228~6.0.7+r1
18721 <ul>
18722 <li>Minor updates from the wiki</li>
18723 <li>Danish translation now complete</li>
18724 </ul></li>
18725 <li>debian-edu-config from 1.453 to 1.455
18726 <ul>
18727 <li>Fix /etc/hosts for LTSP diskless workstations. Closes: #699880</li>
18728 <li>Make ltsp_local_mount script work for multiple devices.</li>
18729 <li>Correct Kerberos user policy: don't expire password after 2 days.
18730 Closes: #664596</li>
18731 <li>Handle '#' characters in the root or first users password.
18732 Closes: #664976</li>
18733 <li>Fixes for gosa-sync:
18734 <ul>
18735 <li>Don't fail if password contains "</li>
18736 <li>Don't disclose new password string in syslog</li>
18737 </ul></li>
18738 <li>Fixes for gosa-create:
18739 <ul>
18740 <li>Invalidate libnss cache before applying changes</li>
18741 <li>Multiple failures during mass user import into GOsa²</li>
18742 <li>gosa-netgroups plugin: don't erase entries of attribute type
18743 "memberNisNetgroup". Closes: #687256</li>
18744 <li>First user now uses the same Kerberos policy as all other users</li>
18745 </ul></li>
18746 <li>Add Danish web page</li>
18747 </ul>
18748 <li>debian-edu-install from 1.528 to 1.530
18749 <ul>
18750 <li>Improve preseeding support and documentation</li>
18751 </ul></li>
18752 </ul>
18753
18754 <p>End-user documentation in English is available at
18755 <a href="http://wiki.debian.org/DebianEdu/Documentation/Squeeze/">http://wiki.debian.org/DebianEdu/Documentation/Squeeze/</a>
18756 - translations to French, Italian, Danish and German are available in
18757 the debian-edu-doc package. (Other languages could use your help!)</p>
18758
18759 <p>If you want to contribute to Debian Edu, please join our
18760 mailinglist
18761 <a href="http://lists.debian.org/debian-edu/">debian-edu@lists.debian.org</a>!
18762 </p></blockquote>
18763
18764 <p>I am very happy to see the fruits of a year of hard work. :)</p>
18765
18766 </div>
18767 <div class="tags">
18768
18769
18770 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>.
18771
18772
18773 </div>
18774 </div>
18775 <div class="padding"></div>
18776
18777 <div class="entry">
18778 <div class="title">
18779 <a href="http://people.skolelinux.org/pere/blog/Frikanalen___Complete_TV_station_organised_using_the_web.html">Frikanalen - Complete TV station organised using the web</a>
18780 </div>
18781 <div class="date">
18782 3rd March 2013
18783 </div>
18784 <div class="body">
18785 <p>Do you want to set up your own TV station, schedule videos and
18786 broadcast them on the air? Using free software? With video on demand
18787 support using
18788 <a href="http://www.digistan.org/open-standard:definition">free and
18789 open standards</a>? Included a web based video stream as well? And
18790 administrate it all in your web browser from anywhere in the world? A
18791 few years now the Norwegian public access TV-channel
18792 <a href="http://www.frikanalen.no/">Frikanalen</a> have been building a
18793 system to do just this. The source code for the solution is licensed
18794 using the GNU LGPL, and
18795 <a href="http://github.com/Frikanalen">available from github</a>.</p>
18796
18797 <p>The idea is simple. You upload a video file over the web, and
18798 attach meta information to the file. You select a time slot in the
18799 program schedule, and when the time come it is played on the air and
18800 in the web stream. It is also made available in a video on demand
18801 solution for anyone to see it also outside its scheduled time. All
18802 you need to run a TV station - using your web browser.</p>
18803
18804 <p>There are several parts to this web based solution. I'll mention
18805 the three most important ones. The first part is the database of
18806 videos and the schedule. This is written in Django and include a REST
18807 API. The current database is SQLite, but the plan is to migrate it to
18808 PostgreSQL. At the moment this system can be tested on
18809 <a href="http://beta.frikanalen.tv/">beta.frikanalen.tv</a>. The
18810 second part is the video playout, taking the schedule information from
18811 the database and providing a video stream to broadcast. This is done
18812 using <a href="http://www.casparcg.com/">CasparCG from SVT</a> and
18813 <a href="http://www.mltframework.org/">Media Lovin' Toolkit</a>. Video
18814 signal distribution is handled using
18815 <a href="http://www.ob-encoder.com/">Open Broadcast Encoder</a>. The
18816 third part is the converter, handling the transformation of uploaded
18817 video files to a format useful for broadcasting, streaming and video
18818 on demand. It is still very much work in progress, so it is not yet
18819 decided what it will end up using. Note that the source of the latter
18820 two parts are not yet pushed to github. The lead author want to clean
18821 them up a bit more first.</p>
18822
18823 <p>The development is coordinated on the
18824 <a href="irc://irc.freenode.net/%23frikanalen">#frikanalen IRC
18825 channel</a> (irc.freenode.net), and discussed on
18826 <a href="http://lists.nuug.no/mailman/listinfo/frikanalen">the
18827 frikanalen mailing list</a>. The lead developer is Benjamin Bruheim
18828 (phed on IRC). Anyone is welcome to participate in the
18829 development.</p>
18830
18831 </div>
18832 <div class="tags">
18833
18834
18835 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
18836
18837
18838 </div>
18839 </div>
18840 <div class="padding"></div>
18841
18842 <div class="entry">
18843 <div class="title">
18844 <a href="http://people.skolelinux.org/pere/blog/Dr__Richard_Stallman__founder_of_Free_Software_Foundation__give_a_talk_in_Oslo_March_1st_2013.html">Dr. Richard Stallman, founder of Free Software Foundation, give a talk in Oslo March 1st 2013</a>
18845 </div>
18846 <div class="date">
18847 27th February 2013
18848 </div>
18849 <div class="body">
18850 <p>Dr. <a href="http://www.stallman.org/">Richard Stallman</a>,
18851 founder of <a href="http://www.fsf.org/">Free Software Foundation</a>,
18852 is giving <a href="http://www.nuug.no/aktiviteter/20130301-rms/">a
18853 talk in Oslo March 1st 2013 17:00 to 19:00</a>. The event is public
18854 and organised by <a href="">Norwegian Unix Users Group (NUUG)</a>
18855 (where I am the chair of the board) and
18856 <a href="http://www.friprog.no/">The Norwegian Open Source Competence
18857 Center</a>. The title of the talk is «The Free Software Movement and
18858 GNU», with this description:
18859
18860 <p><blockquote>
18861 The Free Software Movement campaigns for computer users' freedom to
18862 cooperate and control their own computing. The Free Software Movement
18863 developed the GNU operating system, typically used together with the
18864 kernel Linux, specifically to make these freedoms possible.
18865 </blockquote></p>
18866
18867 <p>The meeting is open for everyone. Due to space limitations, the
18868 doors opens for NUUG members at 16:15, and everyone else at 16:45. I
18869 am really curious how many will show up. See
18870 <a href="http://www.nuug.no/aktiviteter/20130301-rms/">the event
18871 page</a> for the location details.</p>
18872
18873 </div>
18874 <div class="tags">
18875
18876
18877 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>.
18878
18879
18880 </div>
18881 </div>
18882 <div class="padding"></div>
18883
18884 <div class="entry">
18885 <div class="title">
18886 <a href="http://people.skolelinux.org/pere/blog/Frikart___Free_Garmin_maps_for_European_countries_based_on_OpenStreetmap.html">Frikart - Free Garmin maps for European countries based on OpenStreetmap</a>
18887 </div>
18888 <div class="date">
18889 15th February 2013
18890 </div>
18891 <div class="body">
18892 <p>If you, like me, want an updated a map for your Garmin GPS, there is
18893 now a great source of free maps available from
18894 <a href="http://www.frikart.no/garmin/index.html">Frikart</a>. To
18895 download a map, just click on the country you are interested in, and
18896 download the map type you want. There are 8 different maps available,
18897 using different colours and data selection. Pick one of Roadmap, Topo
18898 Summer, Topo Winter, Roadmap II, Topo Summer II, Topo Winter II,
18899 "Trails - overlay map" and "Cross country - overlay map" (see the web
18900 page for descriptions).</p>
18901
18902 <p>The maps are updated weekly, so if you find something wrong in the
18903 map you can just edit the
18904 <a href="http://www.openstreetmap.org/">OpenStreetmap</a> map source
18905 (anyone can contribute) and fetch a fixed map a week later. :)</p>
18906
18907 </div>
18908 <div class="tags">
18909
18910
18911 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>.
18912
18913
18914 </div>
18915 </div>
18916 <div class="padding"></div>
18917
18918 <div class="entry">
18919 <div class="title">
18920 <a href="http://people.skolelinux.org/pere/blog/_Electronic__paper_invoices___using_vCard_in_a_QR_code.html">"Electronic" paper invoices - using vCard in a QR code</a>
18921 </div>
18922 <div class="date">
18923 12th February 2013
18924 </div>
18925 <div class="body">
18926 <p>Here in Norway, electronic invoices are spreading, and the
18927 <a href="http://www.anskaffelser.no/e-handel/faktura">solution promoted
18928 by the Norwegian government</a> require that invoices are sent through
18929 one of the approved facilitators, and it is not possible to send
18930 electronic invoices without an agreement with one of these
18931 facilitators. This seem like a needless limitation to be able to
18932 transfer invoice information between buyers and sellers. My preferred
18933 solution would be to just transfer the invoice information directly
18934 between seller and buyer, for example using SMTP, or some HTTP based
18935 protocol like REST or SOAP. But this might also be overkill, as the
18936 "electronic" information can be transferred using paper invoices too,
18937 using a simple bar code. My bar code encoding of choice would be QR
18938 codes, as this encoding can be read by any smart phone out there. The
18939 content of the code could be anything, but I would go with
18940 <a href="http://en.wikipedia.org/wiki/VCard">the vCard format</a>, as
18941 it too is supported by a lot of computer equipment these days.</p>
18942
18943 <p>The vCard format support extentions, and the invoice specific
18944 information can be included using such extentions. For example an
18945 invoice from SLX Debian Labs (picked because we
18946 <a href="http://www.linuxiskolen.no/slxdebianlabs/donations.html">ask
18947 for donations to the Debian Edu project</a> and thus have bank account
18948 information publicly available) for NOK 1000.00 could have these extra
18949 fields:</p>
18950
18951 <p><pre>
18952 X-INVOICE-NUMBER:1
18953 X-INVOICE-AMOUNT:NOK1000.00
18954 X-INVOICE-KID:123412341234
18955 X-INVOICE-MSG:Donation to Debian Edu
18956 X-BANK-ACCOUNT-NUMBER:16040884339
18957 X-BANK-IBAN-NUMBER:NO8516040884339
18958 X-BANK-SWIFT-NUMBER:DNBANOKKXXX
18959 </pre></p>
18960
18961 <p>The X-BANK-ACCOUNT-NUMBER field was proposed in a stackoverflow
18962 answer regarding
18963 <a href="http://stackoverflow.com/questions/10045664/storing-bank-account-in-vcard-file">how
18964 to put bank account information into a vCard</a>. For payments in
18965 Norway, either X-INVOICE-KID (payment ID) or X-INVOICE-MSG could be
18966 used to pass on information to the seller when paying the invoice.</p>
18967
18968 <p>The complete vCard could look like this:</p>
18969
18970 <p><pre>
18971 BEGIN:VCARD
18972 VERSION:2.1
18973 ORG:SLX Debian Labs Foundation
18974 ADR;WORK:;;Gunnar Schjelderups vei 29D;OSLO;;0485;Norway
18975 URL;WORK:http://www.linuxiskolen.no/slxdebianlabs/
18976 EMAIL;PREF;INTERNET:sdl-styret@rt.nuug.no
18977 REV:20130212T095000Z
18978 X-INVOICE-NUMBER:1
18979 X-INVOICE-AMOUNT:NOK1000.00
18980 X-INVOICE-MSG:Donation to Debian Edu
18981 X-BANK-ACCOUNT-NUMBER:16040884339
18982 X-BANK-IBAN-NUMBER:NO8516040884339
18983 X-BANK-SWIFT-NUMBER:DNBANOKKXXX
18984 END:VCARD
18985 </pre></p>
18986
18987 <p>The resulting QR code created using
18988 <a href="http://fukuchi.org/works/qrencode/">qrencode</a> would look
18989 like this, and should be readable (and thus checkable) by any smart
18990 phone, or for example the <a href="http://zbar.sourceforge.net/">zbar
18991 bar code reader</a> and feed right into the approval and accounting
18992 system.</p>
18993
18994 <p><img src="http://people.skolelinux.org/pere/blog/images/2013-02-12-qr-invoice.png"></p>
18995
18996 <p>The extension fields will most likely not show up in any normal
18997 vCard reader, so those parts would have to go directly into a system
18998 handling invoices. I am a bit unsure how vCards without name parts
18999 are handled, but a simple test indicate that this work just fine.</p>
19000
19001 <p><strong>Update 2013-02-12 11:30</strong>: Added KID to the proposal
19002 based on feedback from Sturle Sunde.</p>
19003
19004 </div>
19005 <div class="tags">
19006
19007
19008 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>.
19009
19010
19011 </div>
19012 </div>
19013 <div class="padding"></div>
19014
19015 <div class="entry">
19016 <div class="title">
19017 <a href="http://people.skolelinux.org/pere/blog/Sleep_until_morning___home_automation_for_the_kids.html">Sleep until morning - home automation for the kids</a>
19018 </div>
19019 <div class="date">
19020 10th February 2013
19021 </div>
19022 <div class="body">
19023 <p><img align="left" style="margin-right:25px;" src="http://people.skolelinux.org/pere/blog/images/2013-02-10-morning-light.jpeg"></p>
19024
19025 <p>With kids in the house, one challenge is getting them to sleep
19026 during the night and wake up when it is morning. I mean, when I
19027 believe it is morning, and not two hours earlier. In our household we
19028 have decided that 07:00 is the turning point, but getting the kids to
19029 sleep until 07:00 is a small challenge every day. They have adapted
19030 quite well, and rarely wake up at 05:00 any more, but some times wake
19031 up at times like 05:50, 06:15, 06:30 or 06:45, and it is hard to put
19032 the awake one to bed again without disturbing and waking the rest.
19033 And I understand perfectly well that they fail to sleep until 07:00
19034 some times, as there is no way for them to know if it is before or
19035 after the magic moment without coming and asking us parents.</p>
19036
19037 <p>But yesterday I came up with a method to solve this problem. It
19038 involve home automation. A few years ago I bought a
19039 <a href="http://www.telldus.se/products/tellstick">Tellstick</a> and RF
19040 switches at the local <a href="http://www.clasohlson.com/">Clas
19041 Ohlson</a> shop, allowing me to control lights and other electrical
19042 gadgets using my Linux server. When I moved from the old flat to a
19043 small house, I put away all this equipment as most of the lighting in
19044 the house was not using wall sockets and thus not easy to connect to
19045 the gadgets I had. But recently I bought a
19046 <a href="http://www.telldus.se/products/tellstick_net">Tellstick
19047 Net</a> to be able to read sensor input as well as control power
19048 sockets. I want to control ovens in the basement to avoid the pipes
19049 to freeze, and monitor the humidity to detect flooding. The default
19050 setup for Tellstick Net is to be controlled by the vendor web service,
19051 which to me is a security problem, but it is also possible to build
19052 ones own
19053 <a href="http://developer.telldus.com/blog/2012/03/02/help-us-develop-local-access-using-tellstick-net-build-your-own-firmware">firmware
19054 with local access</A> instead of being controlled by a Swedish
19055 company, thanks to the release of the GPL licensed firmware source
19056 code. I plan to get that running before I let it control anything
19057 important. But while working on this, one idea to make it easier for
19058 the kids came to me yesterday. We can set up a night light controlled
19059 by the computer, and turn it automatically on at 07:00. The kids can
19060 then check the light in the morning to know if they are supposed to
19061 get up or not. They joined me in setting everything up, and I
19062 repeated the concept several times before bed times to make sure they
19063 remembered to check the light before getting up in the morning.</p>
19064
19065 <p>We tested it this morning, and all the kids stayed in bed until
19066 after 07:00, and every one of them commented on the fact that the
19067 "morning light" was turned on and signalled that the morning had
19068 arrived. So this look like a success, and I am excited to see how
19069 this develops the next few days. :) I really hope this can allow us
19070 all to sleep a bit longer in the morning.</p>
19071
19072 <p>A nice advantage of this setup is that we can remote control when
19073 to tell the kids to get up. We do not have to wait until 07:00, and
19074 can also delay it if we want to.</p>
19075
19076 </div>
19077 <div class="tags">
19078
19079
19080 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
19081
19082
19083 </div>
19084 </div>
19085 <div class="padding"></div>
19086
19087 <div class="entry">
19088 <div class="title">
19089 <a href="http://people.skolelinux.org/pere/blog/Bitcoin_GUI_now_available_from_Debian_unstable__and_Ubuntu_raring_.html">Bitcoin GUI now available from Debian/unstable (and Ubuntu/raring)</a>
19090 </div>
19091 <div class="date">
19092 2nd February 2013
19093 </div>
19094 <div class="body">
19095 <p>My
19096 <a href="http://people.skolelinux.org/pere/blog/How_to_backport_bitcoin_qt_version_0_7_2_2_to_Debian_Squeeze.html">last
19097 bitcoin related blog post</a> mentioned that the new
19098 <a href="http://packages.qa.debian.org/bitcoin">bitcoin package</a> for
19099 Debian was waiting in NEW. It was accepted by the Debian ftp-masters
19100 2013-01-19, and have been available in unstable since then. It was
19101 automatically copied to Ubuntu, and is available in their Raring
19102 version too.</p>
19103
19104 <p>But there is a strange problem with the build that block this new
19105 version from being available on the i386 and kfreebsd-i386
19106 architectures. For some strange reason, the autobuilders in Debian
19107 for these architectures fail to run the test suite on these
19108 architectures (<a href="http://bugs.debian.org/672524">BTS #672524</a>).
19109 We are so far unable to reproduce it when building it manually, and
19110 no-one have been able to propose a fix. If you got an idea what is
19111 failing, please let us know via the BTS.</p>
19112
19113 <p>One feature that is annoying me with of the bitcoin client, because
19114 I often run low on disk space, is the fact that the client will exit
19115 if it run short on space (<a href="http://bugs.debian.org/696715">BTS
19116 #696715</a>). So make sure you have enough disk space when you run
19117 it. :)</p>
19118
19119 <p>As usual, if you use bitcoin and want to show your support of my
19120 activities, please send Bitcoin donations to my address
19121 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
19122
19123 </div>
19124 <div class="tags">
19125
19126
19127 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>.
19128
19129
19130 </div>
19131 </div>
19132 <div class="padding"></div>
19133
19134 <div class="entry">
19135 <div class="title">
19136 <a href="http://people.skolelinux.org/pere/blog/Welcome_to_the_world__Isenkram_.html">Welcome to the world, Isenkram!</a>
19137 </div>
19138 <div class="date">
19139 22nd January 2013
19140 </div>
19141 <div class="body">
19142 <p>Yesterday, I
19143 <a href="http://people.skolelinux.org/pere/blog/First_prototype_ready_making_hardware_easier_to_use_in_Debian.html">asked
19144 for testers</a> for my prototype for making Debian better at handling
19145 pluggable hardware devices, which I
19146 <a href="http://people.skolelinux.org/pere/blog/Lets_make_hardware_dongles_easier_to_use_in_Debian.html">set
19147 out to create</a> earlier this month. Several valuable testers showed
19148 up, and caused me to really want to to open up the development to more
19149 people. But before I did this, I want to come up with a sensible name
19150 for this project. Today I finally decided on a new name, and I have
19151 renamed the project from hw-support-handler to this new name. In the
19152 process, I moved the source to git and made it available as a
19153 <a href="http://anonscm.debian.org/gitweb/?p=collab-maint/isenkram.git">collab-maint</a>
19154 repository in Debian. The new name? It is <strong>Isenkram</strong>.
19155 To fetch and build the latest version of the source, use</p>
19156
19157 <pre>
19158 git clone http://anonscm.debian.org/git/collab-maint/isenkram.git
19159 cd isenkram && git-buildpackage -us -uc
19160 </pre>
19161
19162 <p>I have not yet adjusted all files to use the new name yet. If you
19163 want to hack on the source or improve the package, please go ahead.
19164 But please talk to me first on IRC or via email before you do major
19165 changes, to make sure we do not step on each others toes. :)</p>
19166
19167 <p>If you wonder what 'isenkram' is, it is a Norwegian word for iron
19168 stuff, typically meaning tools, nails, screws, etc. Typical hardware
19169 stuff, in other words. I've been told it is the Norwegian variant of
19170 the German word eisenkram, for those that are familiar with that
19171 word.</p>
19172
19173 <p><strong>Update 2013-01-26</strong>: Added -us -us to build
19174 instructions, to avoid confusing people with an error from the signing
19175 process.</p>
19176
19177 <p><strong>Update 2013-01-27</strong>: Switch to HTTP URL for the git
19178 clone argument to avoid the need for authentication.</p>
19179
19180 </div>
19181 <div class="tags">
19182
19183
19184 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram</a>.
19185
19186
19187 </div>
19188 </div>
19189 <div class="padding"></div>
19190
19191 <div class="entry">
19192 <div class="title">
19193 <a href="http://people.skolelinux.org/pere/blog/First_prototype_ready_making_hardware_easier_to_use_in_Debian.html">First prototype ready making hardware easier to use in Debian</a>
19194 </div>
19195 <div class="date">
19196 21st January 2013
19197 </div>
19198 <div class="body">
19199 <p>Early this month I set out to try to
19200 <a href="http://people.skolelinux.org/pere/blog/Lets_make_hardware_dongles_easier_to_use_in_Debian.html">improve
19201 the Debian support for pluggable hardware devices</a>. Now my
19202 prototype is working, and it is ready for a larger audience. To test
19203 it, fetch the
19204 <a href="http://anonscm.debian.org/viewvc/debian-edu/trunk/src/hw-support-handler/">source
19205 from the Debian Edu subversion repository</a>, build and install the
19206 package. You might have to log out and in again activate the
19207 autostart script.</p>
19208
19209 <p>The design is simple:</p>
19210
19211 <ul>
19212
19213 <li>Add desktop entry in /usr/share/autostart/ causing a program
19214 hw-support-handlerd to start when the user log in.</li>
19215
19216 <li>This program listen for kernel events about new hardware (directly
19217 from the kernel like udev does), not using HAL dbus events as I
19218 initially did.</li>
19219
19220 <li>When new hardware is inserted, look up the hardware modalias in
19221 the APT database, a database
19222 <a href="http://anonscm.debian.org/viewvc/debian-edu/trunk/src/hw-support-handler/modaliases?view=markup">available
19223 via HTTP</a> and a database available as part of the package.</li>
19224
19225 <li>If a package is mapped to the hardware in question, the package
19226 isn't installed yet and this is the first time the hardware was
19227 plugged in, show a desktop notification suggesting to install the
19228 package or packages.</li>
19229
19230 <li>If the user click on the 'install package now' button, ask
19231 aptdaemon via the PackageKit API to install the requrired package.</li>
19232
19233 <li>aptdaemon ask for root password or sudo password, and install the
19234 package while showing progress information in a window.</li>
19235
19236 </ul>
19237
19238 <p>I still need to come up with a better name for the system. Here
19239 are some screen shots showing the prototype in action. First the
19240 notification, then the password request, and finally the request to
19241 approve all the dependencies. Sorry for the Norwegian Bokmål GUI.</p>
19242
19243 <p><img src="http://people.skolelinux.org/pere/blog/images/2013-01-21-hw-support-1-notification.png">
19244 <br><img src="http://people.skolelinux.org/pere/blog/images/2013-01-21-hw-support-2-password.png">
19245 <br><img src="http://people.skolelinux.org/pere/blog/images/2013-01-21-hw-support-3-dependencies.png">
19246 <br><img src="http://people.skolelinux.org/pere/blog/images/2013-01-21-hw-support-4-installing.png">
19247 <br><img src="http://people.skolelinux.org/pere/blog/images/2013-01-21-hw-support-5-installing-details.png" width="70%"></p>
19248
19249 <p>The prototype still need to be improved with longer timeouts, but
19250 is already useful. The database of hardware to package mappings also
19251 need more work. It is currently compatible with the Ubuntu way of
19252 storing such information in the package control file, but could be
19253 changed to use other formats instead or in addition to the current
19254 method. I've dropped the use of discover for this mapping, as the
19255 modalias approach is more flexible and easier to use on Linux as long
19256 as the Linux kernel expose its modalias strings directly.</p>
19257
19258 <p><strong>Update 2013-01-21 16:50</strong>: Due to popular demand,
19259 here is the command required to check out and build the source: Use
19260 '<tt>svn checkout
19261 svn://svn.debian.org/debian-edu/trunk/src/hw-support-handler/; cd
19262 hw-support-handler; debuild</tt>'. If you lack debuild, install the
19263 devscripts package.</p>
19264
19265 <p><strong>Update 2013-01-23 12:00</strong>: The project is now
19266 renamed to Isenkram and the source moved from the Debian Edu
19267 subversion repository to a Debian collab-maint git repository. See
19268 <a href="http://people.skolelinux.org/pere/blog/Welcome_to_the_world__Isenkram_.html">build
19269 instructions</a> for details.</p>
19270
19271 </div>
19272 <div class="tags">
19273
19274
19275 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram</a>.
19276
19277
19278 </div>
19279 </div>
19280 <div class="padding"></div>
19281
19282 <div class="entry">
19283 <div class="title">
19284 <a href="http://people.skolelinux.org/pere/blog/Thank_you_Thinkpad_X41__for_your_long_and_trustworthy_service.html">Thank you Thinkpad X41, for your long and trustworthy service</a>
19285 </div>
19286 <div class="date">
19287 19th January 2013
19288 </div>
19289 <div class="body">
19290 <p>This Christmas my trusty old laptop died. It died quietly and
19291 suddenly in bed. With a quiet whimper, it went completely quiet and
19292 black. The power button was no longer able to turn it on. It was a
19293 IBM Thinkpad X41, and the best laptop I ever had. Better than both
19294 Thinkpads X30, X31, X40, X60, X61 and X61S. Far better than the
19295 Compaq I had before that. Now I need to find a replacement. To keep
19296 going during Christmas, I moved the one year old SSD disk to my old
19297 X40 where it fitted (only one I had left that could use it), but it is
19298 not a durable solution.
19299
19300 <p>My laptop needs are fairly modest. This is my wishlist from when I
19301 got a new one more than 10 years ago. It still holds true.:)</p>
19302
19303 <ul>
19304
19305 <li>Lightweight (around 1 kg) and small volume (preferably smaller
19306 than A4).</li>
19307 <li>Robust, it will be in my backpack every day.</li>
19308 <li>Three button mouse and a mouse pin instead of touch pad.</li>
19309 <li>Long battery life time. Preferable a week.</li>
19310 <li>Internal WIFI network card.</li>
19311 <li>Internal Twisted Pair network card.</li>
19312 <li>Some USB slots (2-3 is plenty)</li>
19313 <li>Good keyboard - similar to the Thinkpad.</li>
19314 <li>Video resolution at least 1024x768, with size around 12" (A4 paper
19315 size).</li>
19316 <li>Hardware supported by Debian Stable, ie the default kernel and
19317 X.org packages.</li>
19318 <li>Quiet, preferably fan free (or at least not using the fan most of
19319 the time).
19320
19321 </ul>
19322
19323 <p>You will notice that there are no RAM and CPU requirements in the
19324 list. The reason is simply that the specifications on laptops the
19325 last 10-15 years have been sufficient for my needs, and I have to look
19326 at other features to choose my laptop. But are there still made as
19327 robust laptops as my X41? The Thinkpad X60/X61 proved to be less
19328 robust, and Thinkpads seem to be heading in the wrong direction since
19329 Lenovo took over. But I've been told that X220 and X1 Carbon might
19330 still be useful.</p>
19331
19332 <p>Perhaps I should rethink my needs, and look for a pad with an
19333 external keyboard? I'll have to check the
19334 <a href="http://www.linux-laptop.net/">Linux Laptops site</a> for
19335 well-supported laptops, or perhaps just buy one preinstalled from one
19336 of the vendors listed on the <a href="http://linuxpreloaded.com/">Linux
19337 Pre-loaded site</a>.</p>
19338
19339 </div>
19340 <div class="tags">
19341
19342
19343 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>.
19344
19345
19346 </div>
19347 </div>
19348 <div class="padding"></div>
19349
19350 <div class="entry">
19351 <div class="title">
19352 <a href="http://people.skolelinux.org/pere/blog/How_to_find_a_browser_plugin_supporting_a_given_MIME_type.html">How to find a browser plugin supporting a given MIME type</a>
19353 </div>
19354 <div class="date">
19355 18th January 2013
19356 </div>
19357 <div class="body">
19358 <p>Some times I try to figure out which Iceweasel browser plugin to
19359 install to get support for a given MIME type. Thanks to
19360 <a href="https://wiki.ubuntu.com/MozillaTeam/Plugins">specifications
19361 done by Ubuntu</a> and Mozilla, it is possible to do this in Debian.
19362 Unfortunately, not very many packages provide the needed meta
19363 information, Anyway, here is a small script to look up all browser
19364 plugin packages announcing ther MIME support using this specification:</p>
19365
19366 <pre>
19367 #!/usr/bin/python
19368 import sys
19369 import apt
19370 def pkgs_handling_mimetype(mimetype):
19371 cache = apt.Cache()
19372 cache.open(None)
19373 thepkgs = []
19374 for pkg in cache:
19375 version = pkg.candidate
19376 if version is None:
19377 version = pkg.installed
19378 if version is None:
19379 continue
19380 record = version.record
19381 if not record.has_key('Npp-MimeType'):
19382 continue
19383 mime_types = record['Npp-MimeType'].split(',')
19384 for t in mime_types:
19385 t = t.rstrip().strip()
19386 if t == mimetype:
19387 thepkgs.append(pkg.name)
19388 return thepkgs
19389 mimetype = "audio/ogg"
19390 if 1 < len(sys.argv):
19391 mimetype = sys.argv[1]
19392 print "Browser plugin packages supporting %s:" % mimetype
19393 for pkg in pkgs_handling_mimetype(mimetype):
19394 print " %s" %pkg
19395 </pre>
19396
19397 <p>It can be used like this to look up a given MIME type:</p>
19398
19399 <pre>
19400 % ./apt-find-browserplug-for-mimetype
19401 Browser plugin packages supporting audio/ogg:
19402 gecko-mediaplayer
19403 % ./apt-find-browserplug-for-mimetype application/x-shockwave-flash
19404 Browser plugin packages supporting application/x-shockwave-flash:
19405 browser-plugin-gnash
19406 %
19407 </pre>
19408
19409 <p>In Ubuntu this mechanism is combined with support in the browser
19410 itself to query for plugins and propose to install the needed
19411 packages. It would be great if Debian supported such feature too. Is
19412 anyone working on adding it?</p>
19413
19414 <p><strong>Update 2013-01-18 14:20</strong>: The Debian BTS
19415 request for icweasel support for this feature is
19416 <a href="http://bugs.debian.org/484010">#484010</a> from 2008 (and
19417 <a href="http://bugs.debian.org/698426">#698426</a> from today). Lack
19418 of manpower and wish for a different design is the reason thus feature
19419 is not yet in iceweasel from Debian.</p>
19420
19421 </div>
19422 <div class="tags">
19423
19424
19425 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>.
19426
19427
19428 </div>
19429 </div>
19430 <div class="padding"></div>
19431
19432 <div class="entry">
19433 <div class="title">
19434 <a href="http://people.skolelinux.org/pere/blog/What_is_the_most_supported_MIME_type_in_Debian_.html">What is the most supported MIME type in Debian?</a>
19435 </div>
19436 <div class="date">
19437 16th January 2013
19438 </div>
19439 <div class="body">
19440 <p>The <a href="http://wiki.debian.org/AppStreamDebianProposal">DEP-11
19441 proposal to add AppStream information to the Debian archive</a>, is a
19442 proposal to make it possible for a Desktop application to propose to
19443 the user some package to install to gain support for a given MIME
19444 type, font, library etc. that is currently missing. With such
19445 mechanism in place, it would be possible for the desktop to
19446 automatically propose and install leocad if some LDraw file is
19447 downloaded by the browser.</p>
19448
19449 <p>To get some idea about the current content of the archive, I decided
19450 to write a simple program to extract all .desktop files from the
19451 Debian archive and look up the claimed MIME support there. The result
19452 can be found on the
19453 <a href="http://ftp.skolelinux.org/pub/AppStreamTest">Skolelinux FTP
19454 site</a>. Using the collected information, it become possible to
19455 answer the question in the title. Here are the 20 most supported MIME
19456 types in Debian stable (Squeeze), testing (Wheezy) and unstable (Sid).
19457 The complete list is available from the link above.</p>
19458
19459 <p><strong>Debian Stable:</strong></p>
19460
19461 <pre>
19462 count MIME type
19463 ----- -----------------------
19464 32 text/plain
19465 30 audio/mpeg
19466 29 image/png
19467 28 image/jpeg
19468 27 application/ogg
19469 26 audio/x-mp3
19470 25 image/tiff
19471 25 image/gif
19472 22 image/bmp
19473 22 audio/x-wav
19474 20 audio/x-flac
19475 19 audio/x-mpegurl
19476 18 video/x-ms-asf
19477 18 audio/x-musepack
19478 18 audio/x-mpeg
19479 18 application/x-ogg
19480 17 video/mpeg
19481 17 audio/x-scpls
19482 17 audio/ogg
19483 16 video/x-ms-wmv
19484 </pre>
19485
19486 <p><strong>Debian Testing:</strong></p>
19487
19488 <pre>
19489 count MIME type
19490 ----- -----------------------
19491 33 text/plain
19492 32 image/png
19493 32 image/jpeg
19494 29 audio/mpeg
19495 27 image/gif
19496 26 image/tiff
19497 26 application/ogg
19498 25 audio/x-mp3
19499 22 image/bmp
19500 21 audio/x-wav
19501 19 audio/x-mpegurl
19502 19 audio/x-mpeg
19503 18 video/mpeg
19504 18 audio/x-scpls
19505 18 audio/x-flac
19506 18 application/x-ogg
19507 17 video/x-ms-asf
19508 17 text/html
19509 17 audio/x-musepack
19510 16 image/x-xbitmap
19511 </pre>
19512
19513 <p><strong>Debian Unstable:</strong></p>
19514
19515 <pre>
19516 count MIME type
19517 ----- -----------------------
19518 31 text/plain
19519 31 image/png
19520 31 image/jpeg
19521 29 audio/mpeg
19522 28 application/ogg
19523 27 image/gif
19524 26 image/tiff
19525 26 audio/x-mp3
19526 23 audio/x-wav
19527 22 image/bmp
19528 21 audio/x-flac
19529 20 audio/x-mpegurl
19530 19 audio/x-mpeg
19531 18 video/x-ms-asf
19532 18 video/mpeg
19533 18 audio/x-scpls
19534 18 application/x-ogg
19535 17 audio/x-musepack
19536 16 video/x-ms-wmv
19537 16 video/x-msvideo
19538 </pre>
19539
19540 <p>I am told that PackageKit can provide an API to access the kind of
19541 information mentioned in DEP-11. I have not yet had time to look at
19542 it, but hope the PackageKit people in Debian are on top of these
19543 issues.</p>
19544
19545 <p><strong>Update 2013-01-16 13:35</strong>: Updated numbers after
19546 discovering a typo in my script.</p>
19547
19548 </div>
19549 <div class="tags">
19550
19551
19552 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>.
19553
19554
19555 </div>
19556 </div>
19557 <div class="padding"></div>
19558
19559 <div class="entry">
19560 <div class="title">
19561 <a href="http://people.skolelinux.org/pere/blog/Using_modalias_info_to_find_packages_handling_my_hardware.html">Using modalias info to find packages handling my hardware</a>
19562 </div>
19563 <div class="date">
19564 15th January 2013
19565 </div>
19566 <div class="body">
19567 <p>Yesterday, I wrote about the
19568 <a href="http://people.skolelinux.org/pere/blog/Modalias_strings___a_practical_way_to_map__stuff__to_hardware.html">modalias
19569 values provided by the Linux kernel</a> following my hope for
19570 <a href="http://people.skolelinux.org/pere/blog/Lets_make_hardware_dongles_easier_to_use_in_Debian.html">better
19571 dongle support in Debian</a>. Using this knowledge, I have tested how
19572 modalias values attached to package names can be used to map packages
19573 to hardware. This allow the system to look up and suggest relevant
19574 packages when I plug in some new hardware into my machine, and replace
19575 discover and discover-data as the database used to map hardware to
19576 packages.</p>
19577
19578 <p>I create a modaliases file with entries like the following,
19579 containing package name, kernel module name (if relevant, otherwise
19580 the package name) and globs matching the relevant hardware
19581 modalias.</p>
19582
19583 <p><blockquote>
19584 Package: package-name
19585 <br>Modaliases: module(modaliasglob, modaliasglob, modaliasglob)</p>
19586 </blockquote></p>
19587
19588 <p>It is fairly trivial to write code to find the relevant packages
19589 for a given modalias value using this file.</p>
19590
19591 <p>An entry like this would suggest the video and picture application
19592 cheese for many USB web cameras (interface bus class 0E01):</p>
19593
19594 <p><blockquote>
19595 Package: cheese
19596 <br>Modaliases: cheese(usb:v*p*d*dc*dsc*dp*ic0Eisc01ip*)</p>
19597 </blockquote></p>
19598
19599 <p>An entry like this would suggest the pcmciautils package when a
19600 CardBus bridge (bus class 0607) PCI device is present:</p>
19601
19602 <p><blockquote>
19603 Package: pcmciautils
19604 <br>Modaliases: pcmciautils(pci:v*d*sv*sd*bc06sc07i*)
19605 </blockquote></p>
19606
19607 <p>An entry like this would suggest the package colorhug-client when
19608 plugging in a ColorHug with USB IDs 04D8:F8DA:</p>
19609
19610 <p><blockquote>
19611 Package: colorhug-client
19612 <br>Modaliases: colorhug-client(usb:v04D8pF8DAd*)</p>
19613 </blockquote></p>
19614
19615 <p>I believe the format is compatible with the format of the Packages
19616 file in the Debian archive. Ubuntu already uses their Packages file
19617 to store their mappings from packages to hardware.</p>
19618
19619 <p>By adding a XB-Modaliases: header in debian/control, any .deb can
19620 announce the hardware it support in a way my prototype understand.
19621 This allow those publishing packages in an APT source outside the
19622 Debian archive as well as those backporting packages to make sure the
19623 hardware mapping are included in the package meta information. I've
19624 tested such header in the pymissile package, and its modalias mapping
19625 is working as it should with my prototype. It even made it to Ubuntu
19626 Raring.</p>
19627
19628 <p>To test if it was possible to look up supported hardware using only
19629 the shell tools available in the Debian installer, I wrote a shell
19630 implementation of the lookup code. The idea is to create files for
19631 each modalias and let the shell do the matching. Please check out and
19632 try the
19633 <a href="http://anonscm.debian.org/viewvc/debian-edu/trunk/src/hw-support-handler/hw-support-lookup?view=co">hw-support-lookup</a>
19634 shell script. It run without any extra dependencies and fetch the
19635 hardware mappings from the Debian archive and the subversion
19636 repository where I currently work on my prototype.</p>
19637
19638 <p>When I use it on a machine with a yubikey inserted, it suggest to
19639 install yubikey-personalization:</p>
19640
19641 <p><blockquote>
19642 % ./hw-support-lookup
19643 <br>yubikey-personalization
19644 <br>%
19645 </blockquote></p>
19646
19647 <p>When I run it on my Thinkpad X40 with a PCMCIA/CardBus slot, it
19648 propose to install the pcmciautils package:</p>
19649
19650 <p><blockquote>
19651 % ./hw-support-lookup
19652 <br>pcmciautils
19653 <br>%
19654 </blockquote></p>
19655
19656 <p>If you know of any hardware-package mapping that should be added to
19657 <a href="http://anonscm.debian.org/viewvc/debian-edu/trunk/src/hw-support-handler/modaliases?view=co">my
19658 database</a>, please tell me about it.</p>
19659
19660 <p>It could be possible to generate several of the mappings between
19661 packages and hardware. One source would be to look at packages with
19662 kernel modules, ie packages with *.ko files in /lib/modules/, and
19663 extract their modalias information. Another would be to look at
19664 packages with udev rules, ie packages with files in
19665 /lib/udev/rules.d/, and extract their vendor/model information to
19666 generate a modalias matching rule. I have not tested any of these to
19667 see if it work.</p>
19668
19669 <p>If you want to help implementing a system to let us propose what
19670 packages to install when new hardware is plugged into a Debian
19671 machine, please send me an email or talk to me on
19672 <a href="irc://irc.debian.org/%23debian-devel">#debian-devel</a>.</p>
19673
19674 </div>
19675 <div class="tags">
19676
19677
19678 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram</a>.
19679
19680
19681 </div>
19682 </div>
19683 <div class="padding"></div>
19684
19685 <div class="entry">
19686 <div class="title">
19687 <a href="http://people.skolelinux.org/pere/blog/Modalias_strings___a_practical_way_to_map__stuff__to_hardware.html">Modalias strings - a practical way to map "stuff" to hardware</a>
19688 </div>
19689 <div class="date">
19690 14th January 2013
19691 </div>
19692 <div class="body">
19693 <p>While looking into how to look up Debian packages based on hardware
19694 information, to find the packages that support a given piece of
19695 hardware, I refreshed my memory regarding modalias values, and decided
19696 to document the details. Here are my findings so far, also available
19697 in
19698 <a href="http://anonscm.debian.org/viewvc/debian-edu/trunk/src/hw-support-handler/">the
19699 Debian Edu subversion repository</a>:
19700
19701 <p><strong>Modalias decoded</strong></p>
19702
19703 <p>This document try to explain what the different types of modalias
19704 values stands for. It is in part based on information from
19705 &lt;URL: <a href="https://wiki.archlinux.org/index.php/Modalias">https://wiki.archlinux.org/index.php/Modalias</a> &gt;,
19706 &lt;URL: <a href="http://unix.stackexchange.com/questions/26132/how-to-assign-usb-driver-to-device">http://unix.stackexchange.com/questions/26132/how-to-assign-usb-driver-to-device</a> &gt;,
19707 &lt;URL: <a href="http://code.metager.de/source/history/linux/stable/scripts/mod/file2alias.c">http://code.metager.de/source/history/linux/stable/scripts/mod/file2alias.c</a> &gt; and
19708 &lt;URL: <a href="http://cvs.savannah.gnu.org/viewvc/dmidecode/dmidecode.c?root=dmidecode&view=markup">http://cvs.savannah.gnu.org/viewvc/dmidecode/dmidecode.c?root=dmidecode&view=markup</a> &gt;.
19709
19710 <p>The modalias entries for a given Linux machine can be found using
19711 this shell script:</p>
19712
19713 <pre>
19714 find /sys -name modalias -print0 | xargs -0 cat | sort -u
19715 </pre>
19716
19717 <p>The supported modalias globs for a given kernel module can be found
19718 using modinfo:</p>
19719
19720 <pre>
19721 % /sbin/modinfo psmouse | grep alias:
19722 alias: serio:ty05pr*id*ex*
19723 alias: serio:ty01pr*id*ex*
19724 %
19725 </pre>
19726
19727 <p><strong>PCI subtype</strong></p>
19728
19729 <p>A typical PCI entry can look like this. This is an Intel Host
19730 Bridge memory controller:</p>
19731
19732 <p><blockquote>
19733 pci:v00008086d00002770sv00001028sd000001ADbc06sc00i00
19734 </blockquote></p>
19735
19736 <p>This represent these values:</p>
19737
19738 <pre>
19739 v 00008086 (vendor)
19740 d 00002770 (device)
19741 sv 00001028 (subvendor)
19742 sd 000001AD (subdevice)
19743 bc 06 (bus class)
19744 sc 00 (bus subclass)
19745 i 00 (interface)
19746 </pre>
19747
19748 <p>The vendor/device values are the same values outputted from 'lspci
19749 -n' as 8086:2770. The bus class/subclass is also shown by lspci as
19750 0600. The 0600 class is a host bridge. Other useful bus values are
19751 0300 (VGA compatible card) and 0200 (Ethernet controller).</p>
19752
19753 <p>Not sure how to figure out the interface value, nor what it
19754 means.</p>
19755
19756 <p><strong>USB subtype</strong></p>
19757
19758 <p>Some typical USB entries can look like this. This is an internal
19759 USB hub in a laptop:</p>
19760
19761 <p><blockquote>
19762 usb:v1D6Bp0001d0206dc09dsc00dp00ic09isc00ip00
19763 </blockquote></p>
19764
19765 <p>Here is the values included in this alias:</p>
19766
19767 <pre>
19768 v 1D6B (device vendor)
19769 p 0001 (device product)
19770 d 0206 (bcddevice)
19771 dc 09 (device class)
19772 dsc 00 (device subclass)
19773 dp 00 (device protocol)
19774 ic 09 (interface class)
19775 isc 00 (interface subclass)
19776 ip 00 (interface protocol)
19777 </pre>
19778
19779 <p>The 0900 device class/subclass means hub. Some times the relevant
19780 class is in the interface class section. For a simple USB web camera,
19781 these alias entries show up:</p>
19782
19783 <p><blockquote>
19784 usb:v0AC8p3420d5000dcEFdsc02dp01ic01isc01ip00
19785 <br>usb:v0AC8p3420d5000dcEFdsc02dp01ic01isc02ip00
19786 <br>usb:v0AC8p3420d5000dcEFdsc02dp01ic0Eisc01ip00
19787 <br>usb:v0AC8p3420d5000dcEFdsc02dp01ic0Eisc02ip00
19788 </blockquote></p>
19789
19790 <p>Interface class 0E01 is video control, 0E02 is video streaming (aka
19791 camera), 0101 is audio control device and 0102 is audio streaming (aka
19792 microphone). Thus this is a camera with microphone included.</p>
19793
19794 <p><strong>ACPI subtype</strong></p>
19795
19796 <p>The ACPI type is used for several non-PCI/USB stuff. This is an IR
19797 receiver in a Thinkpad X40:</p>
19798
19799 <p><blockquote>
19800 acpi:IBM0071:PNP0511:
19801 </blockquote></p>
19802
19803 <p>The values between the colons are IDs.</p>
19804
19805 <p><strong>DMI subtype</strong></p>
19806
19807 <p>The DMI table contain lots of information about the computer case
19808 and model. This is an entry for a IBM Thinkpad X40, fetched from
19809 /sys/devices/virtual/dmi/id/modalias:</p>
19810
19811 <p><blockquote>
19812 dmi:bvnIBM:bvr1UETB6WW(1.66):bd06/15/2005:svnIBM:pn2371H4G:pvrThinkPadX40:rvnIBM:rn2371H4G:rvrNotAvailable:cvnIBM:ct10:cvrNotAvailable:
19813 </blockquote></p>
19814
19815 <p>The values present are</p>
19816
19817 <pre>
19818 bvn IBM (BIOS vendor)
19819 bvr 1UETB6WW(1.66) (BIOS version)
19820 bd 06/15/2005 (BIOS date)
19821 svn IBM (system vendor)
19822 pn 2371H4G (product name)
19823 pvr ThinkPadX40 (product version)
19824 rvn IBM (board vendor)
19825 rn 2371H4G (board name)
19826 rvr NotAvailable (board version)
19827 cvn IBM (chassis vendor)
19828 ct 10 (chassis type)
19829 cvr NotAvailable (chassis version)
19830 </pre>
19831
19832 <p>The chassis type 10 is Notebook. Other interesting values can be
19833 found in the dmidecode source:</p>
19834
19835 <pre>
19836 3 Desktop
19837 4 Low Profile Desktop
19838 5 Pizza Box
19839 6 Mini Tower
19840 7 Tower
19841 8 Portable
19842 9 Laptop
19843 10 Notebook
19844 11 Hand Held
19845 12 Docking Station
19846 13 All In One
19847 14 Sub Notebook
19848 15 Space-saving
19849 16 Lunch Box
19850 17 Main Server Chassis
19851 18 Expansion Chassis
19852 19 Sub Chassis
19853 20 Bus Expansion Chassis
19854 21 Peripheral Chassis
19855 22 RAID Chassis
19856 23 Rack Mount Chassis
19857 24 Sealed-case PC
19858 25 Multi-system
19859 26 CompactPCI
19860 27 AdvancedTCA
19861 28 Blade
19862 29 Blade Enclosing
19863 </pre>
19864
19865 <p>The chassis type values are not always accurately set in the DMI
19866 table. For example my home server is a tower, but the DMI modalias
19867 claim it is a desktop.</p>
19868
19869 <p><strong>SerIO subtype</strong></p>
19870
19871 <p>This type is used for PS/2 mouse plugs. One example is from my
19872 test machine:</p>
19873
19874 <p><blockquote>
19875 serio:ty01pr00id00ex00
19876 </blockquote></p>
19877
19878 <p>The values present are</p>
19879
19880 <pre>
19881 ty 01 (type)
19882 pr 00 (prototype)
19883 id 00 (id)
19884 ex 00 (extra)
19885 </pre>
19886
19887 <p>This type is supported by the psmouse driver. I am not sure what
19888 the valid values are.</p>
19889
19890 <p><strong>Other subtypes</strong></p>
19891
19892 <p>There are heaps of other modalias subtypes according to
19893 file2alias.c. There is the rest of the list from that source: amba,
19894 ap, bcma, ccw, css, eisa, hid, i2c, ieee1394, input, ipack, isapnp,
19895 mdio, of, parisc, pcmcia, platform, scsi, sdio, spi, ssb, vio, virtio,
19896 vmbus, x86cpu and zorro. I did not spend time documenting all of
19897 these, as they do not seem relevant for my intended use with mapping
19898 hardware to packages when new stuff is inserted during run time.</p>
19899
19900 <p><strong>Looking up kernel modules using modalias values</strong></p>
19901
19902 <p>To check which kernel modules provide support for a given modalias,
19903 one can use the following shell script:</p>
19904
19905 <pre>
19906 for id in $(find /sys -name modalias -print0 | xargs -0 cat | sort -u); do \
19907 echo "$id" ; \
19908 /sbin/modprobe --show-depends "$id"|sed 's/^/ /' ; \
19909 done
19910 </pre>
19911
19912 <p>The output can look like this (only the first few entries as the
19913 list is very long on my test machine):</p>
19914
19915 <pre>
19916 acpi:ACPI0003:
19917 insmod /lib/modules/2.6.32-5-686/kernel/drivers/acpi/ac.ko
19918 acpi:device:
19919 FATAL: Module acpi:device: not found.
19920 acpi:IBM0068:
19921 insmod /lib/modules/2.6.32-5-686/kernel/drivers/char/nvram.ko
19922 insmod /lib/modules/2.6.32-5-686/kernel/drivers/leds/led-class.ko
19923 insmod /lib/modules/2.6.32-5-686/kernel/net/rfkill/rfkill.ko
19924 insmod /lib/modules/2.6.32-5-686/kernel/drivers/platform/x86/thinkpad_acpi.ko
19925 acpi:IBM0071:PNP0511:
19926 insmod /lib/modules/2.6.32-5-686/kernel/lib/crc-ccitt.ko
19927 insmod /lib/modules/2.6.32-5-686/kernel/net/irda/irda.ko
19928 insmod /lib/modules/2.6.32-5-686/kernel/drivers/net/irda/nsc-ircc.ko
19929 [...]
19930 </pre>
19931
19932 <p>If you want to help implementing a system to let us propose what
19933 packages to install when new hardware is plugged into a Debian
19934 machine, please send me an email or talk to me on
19935 <a href="irc://irc.debian.org/%23debian-devel">#debian-devel</a>.</p>
19936
19937 <p><strong>Update 2013-01-15:</strong> Rewrite "cat $(find ...)" to
19938 "find ... -print0 | xargs -0 cat" to make sure it handle directories
19939 in /sys/ with space in them.</p>
19940
19941 </div>
19942 <div class="tags">
19943
19944
19945 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram</a>.
19946
19947
19948 </div>
19949 </div>
19950 <div class="padding"></div>
19951
19952 <div class="entry">
19953 <div class="title">
19954 <a href="http://people.skolelinux.org/pere/blog/Moved_the_pymissile_Debian_packaging_to_collab_maint.html">Moved the pymissile Debian packaging to collab-maint</a>
19955 </div>
19956 <div class="date">
19957 10th January 2013
19958 </div>
19959 <div class="body">
19960 <p>As part of my investigation on how to improve the support in Debian
19961 for hardware dongles, I dug up my old Mark and Spencer USB Rocket
19962 Launcher and updated the Debian package
19963 <a href="http://packages.qa.debian.org/pymissile">pymissile</a> to make
19964 sure udev will fix the device permissions when it is plugged in. I
19965 also added a "Modaliases" header to test it in the Debian archive and
19966 hopefully make the package be proposed by jockey in Ubuntu when a user
19967 plug in his rocket launcher. In the process I moved the source to a
19968 git repository under collab-maint, to make it easier for any DD to
19969 contribute. <a href="http://code.google.com/p/pymissile/">Upstream</a>
19970 is not very active, but the software still work for me even after five
19971 years of relative silence. The new git repository is not listed in
19972 the uploaded package yet, because I want to test the other changes a
19973 bit more before I upload the new version. If you want to check out
19974 the new version with a .desktop file included, visit the
19975 <a href="http://anonscm.debian.org/gitweb/?p=collab-maint/pymissile.git">gitweb
19976 view</a> or use "<tt>git clone
19977 git://anonscm.debian.org/collab-maint/pymissile.git</tt>".</p>
19978
19979 </div>
19980 <div class="tags">
19981
19982
19983 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram</a>, <a href="http://people.skolelinux.org/pere/blog/tags/robot">robot</a>.
19984
19985
19986 </div>
19987 </div>
19988 <div class="padding"></div>
19989
19990 <div class="entry">
19991 <div class="title">
19992 <a href="http://people.skolelinux.org/pere/blog/Lets_make_hardware_dongles_easier_to_use_in_Debian.html">Lets make hardware dongles easier to use in Debian</a>
19993 </div>
19994 <div class="date">
19995 9th January 2013
19996 </div>
19997 <div class="body">
19998 <p>One thing that annoys me with Debian and Linux distributions in
19999 general, is that there is a great package management system with the
20000 ability to automatically install software packages by downloading them
20001 from the distribution mirrors, but no way to get it to automatically
20002 install the packages I need to use the hardware I plug into my
20003 machine. Even if the package to use it is easily available from the
20004 Linux distribution. When I plug in a LEGO Mindstorms NXT, it could
20005 suggest to automatically install the python-nxt, nbc and t2n packages
20006 I need to talk to it. When I plug in a Yubikey, it could propose the
20007 yubikey-personalization package. The information required to do this
20008 is available, but no-one have pulled all the pieces together.</p>
20009
20010 <p>Some years ago, I proposed to
20011 <a href="http://lists.debian.org/debian-devel/2010/05/msg01206.html">use
20012 the discover subsystem to implement this</a>. The idea is fairly
20013 simple:
20014
20015 <ul>
20016
20017 <li>Add a desktop entry in /usr/share/autostart/ pointing to a program
20018 starting when a user log in.</li>
20019
20020 <li>Set this program up to listen for kernel events emitted when new
20021 hardware is inserted into the computer.</li>
20022
20023 <li>When new hardware is inserted, look up the hardware ID in a
20024 database mapping to packages, and take note of any non-installed
20025 packages.</li>
20026
20027 <li>Show a message to the user proposing to install the discovered
20028 package, and make it easy to install it.</li>
20029
20030 </ul>
20031
20032 <p>I am not sure what the best way to implement this is, but my
20033 initial idea was to use dbus events to discover new hardware, the
20034 discover database to find packages and
20035 <a href="http://www.packagekit.org/">PackageKit</a> to install
20036 packages.</p>
20037
20038 <p>Yesterday, I found time to try to implement this idea, and the
20039 draft package is now checked into
20040 <a href="http://anonscm.debian.org/viewvc/debian-edu/trunk/src/hw-support-handler/">the
20041 Debian Edu subversion repository</a>. In the process, I updated the
20042 <a href="http://packages.qa.debian.org/d/discover-data.html">discover-data</a>
20043 package to map the USB ids of LEGO Mindstorms and Yubikey devices to
20044 the relevant packages in Debian, and uploaded a new version
20045 2.2013.01.09 to unstable. I also discovered that the current
20046 <a href="http://packages.qa.debian.org/d/discover.html">discover</a>
20047 package in Debian no longer discovered any USB devices, because
20048 /proc/bus/usb/devices is no longer present. I ported it to use
20049 libusb as a fall back option to get it working. The fixed package
20050 version 2.1.2-6 is now in experimental (didn't upload it to unstable
20051 because of the freeze).</p>
20052
20053 <p>With this prototype in place, I can insert my Yubikey, and get this
20054 desktop notification to show up (only once, the first time it is
20055 inserted):</p>
20056
20057 <p align="center"><img src="http://people.skolelinux.org/pere/blog/images/2013-01-09-hw-autoinstall.png"></p>
20058
20059 <p>For this prototype to be really useful, some way to automatically
20060 install the proposed packages by pressing the "Please install
20061 program(s)" button should to be implemented.</p>
20062
20063 <p>If this idea seem useful to you, and you want to help make it
20064 happen, please help me update the discover-data database with mappings
20065 from hardware to Debian packages. Check if 'discover-pkginstall -l'
20066 list the package you would like to have installed when a given
20067 hardware device is inserted into your computer, and report bugs using
20068 reportbug if it isn't. Or, if you know of a better way to provide
20069 such mapping, please let me know.</p>
20070
20071 <p>This prototype need more work, and there are several questions that
20072 should be considered before it is ready for production use. Is dbus
20073 the correct way to detect new hardware? At the moment I look for HAL
20074 dbus events on the system bus, because that is the events I could see
20075 on my Debian Squeeze KDE desktop. Are there better events to use?
20076 How should the user be notified? Is the desktop notification
20077 mechanism the best option, or should the background daemon raise a
20078 popup instead? How should packages be installed? When should they
20079 not be installed?</p>
20080
20081 <p>If you want to help getting such feature implemented in Debian,
20082 please send me an email. :)</p>
20083
20084 </div>
20085 <div class="tags">
20086
20087
20088 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram</a>.
20089
20090
20091 </div>
20092 </div>
20093 <div class="padding"></div>
20094
20095 <div class="entry">
20096 <div class="title">
20097 <a href="http://people.skolelinux.org/pere/blog/New_IRC_channel_for_LEGO_designers_using_Debian.html">New IRC channel for LEGO designers using Debian</a>
20098 </div>
20099 <div class="date">
20100 2nd January 2013
20101 </div>
20102 <div class="body">
20103 <p>During Christmas, I have worked a bit on the Debian support for
20104 <a href="http://mindstorms.lego.com/en-us/Default.aspx">LEGO Mindstorm
20105 NXT</a>. My son and I have played a bit with my NXT set, and I
20106 discovered I had to build all the tools myself because none were
20107 already in Debian Squeeze. If Debian support for LEGO is something
20108 you care about, please join me on the IRC channel
20109 <a href="irc://irc.debian.org/%23debian-lego">#debian-lego</a> (server
20110 irc.debian.org). There is a lot that could be done to improve the
20111 Debian support for LEGO designers. For example both CAD software
20112 and Mindstorm compilers are missing. :)</p>
20113
20114 <p>Update 2012-01-03: A
20115 <a href="http://wiki.debian.org/LegoDesigners">project page</a>
20116 including links to Lego related packages is now available.</p>
20117
20118 </div>
20119 <div class="tags">
20120
20121
20122 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/lego">lego</a>, <a href="http://people.skolelinux.org/pere/blog/tags/robot">robot</a>.
20123
20124
20125 </div>
20126 </div>
20127 <div class="padding"></div>
20128
20129 <div class="entry">
20130 <div class="title">
20131 <a href="http://people.skolelinux.org/pere/blog/A_Christmas_present_for_Skolelinux___Debian_Edu.html">A Christmas present for Skolelinux / Debian Edu</a>
20132 </div>
20133 <div class="date">
20134 28th December 2012
20135 </div>
20136 <div class="body">
20137 <p>I was happy to discover a few days ago that the
20138 <a href="http://www.skolelinux.org/">Skolelinux / Debian Edu</a>
20139 project also this year received a Christmas present from Another
20140 Agency in Trondheim. NOK 1000,- showed up on our donation account
20141 December 24th. I want to express our thanks for this very welcome
20142 present. As the Debian Edu / Skolelinux project is very short on
20143 funding these days, and thus lack the money to do regular developer
20144 gatherings, this donation was most welcome. One developer gathering
20145 cost around NOK 15&nbsp;000,-, so we need quite a lot more to keep the
20146 development pace we want. Thus, I hope their example this year is
20147 followed by many others. :)</p>
20148
20149 <p>The public list of donors can be found on
20150 <a href="http://www.linuxiskolen.no/slxdebianlabs/donations.html">the
20151 donation page</a> for the project, which also contain instructions if
20152 you want to donate to the project.</p>
20153
20154 </div>
20155 <div class="tags">
20156
20157
20158 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>.
20159
20160
20161 </div>
20162 </div>
20163 <div class="padding"></div>
20164
20165 <div class="entry">
20166 <div class="title">
20167 <a href="http://people.skolelinux.org/pere/blog/How_to_backport_bitcoin_qt_version_0_7_2_2_to_Debian_Squeeze.html">How to backport bitcoin-qt version 0.7.2-2 to Debian Squeeze</a>
20168 </div>
20169 <div class="date">
20170 25th December 2012
20171 </div>
20172 <div class="body">
20173 <p>Let me start by wishing you all marry Christmas and a happy new
20174 year! I hope next year will prove to be a good year.</p>
20175
20176 <p><a href="http://www.bitcoin.org/">Bitcoin</a>, the digital
20177 decentralised "currency" that allow people to transfer bitcoins
20178 between each other with minimal overhead, is a very interesting
20179 experiment. And as I wrote a few days ago, the bitcoin situation in
20180 <a href="http://www.debian.org/">Debian</a> is about to improve a bit.
20181 The <a href="http://packages.qa.debian.org/bitcoin">new debian source
20182 package</a> (version 0.7.2-2) was uploaded yesterday, and is waiting
20183 in <a href="http://ftp-master.debian.org/new.html">the NEW queue</A>
20184 for one of the ftpmasters to approve the new bitcoin-qt package
20185 name.</p>
20186
20187 <p>And thanks to the great work of Jonas and the rest of the bitcoin
20188 team in Debian, you can easily test the package in Debian Squeeze
20189 using the following steps to get a set of working packages:</p>
20190
20191 <blockquote><pre>
20192 git clone git://git.debian.org/git/collab-maint/bitcoin
20193 cd bitcoin
20194 DEB_MAINTAINER_MODE=1 DEB_BUILD_OPTIONS=noupnp fakeroot debian/rules clean
20195 DEB_BUILD_OPTIONS=noupnp git-buildpackage --git-ignore-new
20196 </pre></blockquote>
20197
20198 <p>You might have to install some build dependencies as well. The
20199 list of commands should give you two packages, bitcoind and
20200 bitcoin-qt, ready for use in a Squeeze environment. Note that the
20201 client will download the complete set of bitcoin "blocks", which need
20202 around 5.6 GiB of data on my machine at the moment. Make sure your
20203 ~/.bitcoin/ directory have lots of spare room if you want to download
20204 all the blocks. The client will warn if the disk is getting full, so
20205 there is not really a problem if you got too little room, but you will
20206 not be able to get all the features out of the client.</p>
20207
20208 <p>As usual, if you use bitcoin and want to show your support of my
20209 activities, please send Bitcoin donations to my address
20210 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
20211
20212 </div>
20213 <div class="tags">
20214
20215
20216 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>.
20217
20218
20219 </div>
20220 </div>
20221 <div class="padding"></div>
20222
20223 <div class="entry">
20224 <div class="title">
20225 <a href="http://people.skolelinux.org/pere/blog/A_word_on_bitcoin_support_in_Debian.html">A word on bitcoin support in Debian</a>
20226 </div>
20227 <div class="date">
20228 21st December 2012
20229 </div>
20230 <div class="body">
20231 <p>It has been a while since I wrote about
20232 <a href="http://www.bitcoin.org/">bitcoin</a>, the decentralised
20233 peer-to-peer based crypto-currency, and the reason is simply that I
20234 have been busy elsewhere. But two days ago, I started looking at the
20235 state of <a href="http://packages.qa.debian.org/bitcoin">bitcoin in
20236 Debian</a> again to try to recover my old bitcoin wallet. The package
20237 is now maintained by a
20238 <a href="https://alioth.debian.org/projects/pkg-bitcoin/">team of
20239 people</a>, and the grunt work had already been done by this team. We
20240 owe a huge thank you to all these team members. :)
20241 But I was sad to discover that the bitcoin client is missing in
20242 Wheezy. It is only available in Sid (and an outdated client from
20243 backports). The client had several RC bugs registered in BTS blocking
20244 it from entering testing. To try to help the team and improve the
20245 situation, I spent some time providing patches and triaging the bug
20246 reports. I also had a look at the bitcoin package available from Matt
20247 Corallo in a
20248 <a href="https://launchpad.net/~bitcoin/+archive/bitcoin">PPA for
20249 Ubuntu</a>, and moved the useful pieces from that version into the
20250 Debian package.</p>
20251
20252 <p>After checking with the main package maintainer Jonas Smedegaard on
20253 IRC, I pushed several patches into the collab-maint git repository to
20254 improve the package. It now contains fixes for the RC issues (not from
20255 me, but fixed by Scott Howard), build rules for a Qt GUI client
20256 package, konqueror support for the bitcoin: URI and bash completion
20257 setup. As I work on Debian Squeeze, I also created
20258 <a href="http://lists.alioth.debian.org/pipermail/pkg-bitcoin-devel/Week-of-Mon-20121217/000041.html">a
20259 patch to backport</a> the latest version. Jonas is going to look at
20260 it and try to integrate it into the git repository before uploading a
20261 new version to unstable.
20262
20263 <p>I would very much like bitcoin to succeed, to get rid of the
20264 centralized control currently exercised in the monetary system. I
20265 find it completely unacceptable that the USA government is collecting
20266 transaction data for almost all international money transfers (most are done in USD and transaction logs shipped to the spooks), and
20267 that the major credit card companies can block legal money
20268 transactions to Wikileaks. But for bitcoin to succeed, more people
20269 need to use bitcoins, and more people need to accept bitcoins when
20270 they sell products and services. Improving the bitcoin support in
20271 Debian is a small step in the right direction, but not enough.
20272 Unfortunately the user experience when browsing the web and wanting to
20273 pay with bitcoin is still not very good. The bitcoin: URI is a step
20274 in the right direction, but need to work in most or every browser in
20275 use. Also the bitcoin-qt client is too heavy to fire up to do a
20276 quick transaction. I believe there are other clients available, but
20277 have not tested them.</p>
20278
20279 <p>My
20280 <a href="http://people.skolelinux.org/pere/blog/Now_accepting_bitcoins___anonymous_and_distributed_p2p_crypto_money.html">experiment
20281 with bitcoins</a> showed that at least some of my readers use bitcoin.
20282 I received 20.15 BTC so far on the address I provided in my blog two
20283 years ago, as can be
20284 <a href="http://blockexplorer.com/address/15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">seen
20285 on the blockexplorer service</a>. Thank you everyone for your
20286 donation. The blockexplorer service demonstrates quite well that
20287 bitcoin is not quite anonymous and untracked. :) I wonder if the
20288 number of users have gone up since then. If you use bitcoin and want
20289 to show your support of my activity, please send Bitcoin donations to
20290 the same address as last time,
20291 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
20292
20293 </div>
20294 <div class="tags">
20295
20296
20297 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>.
20298
20299
20300 </div>
20301 </div>
20302 <div class="padding"></div>
20303
20304 <div class="entry">
20305 <div class="title">
20306 <a href="http://people.skolelinux.org/pere/blog/Ledger___double_entry_accounting_using_text_based_storage_format.html">Ledger - double-entry accounting using text based storage format</a>
20307 </div>
20308 <div class="date">
20309 18th December 2012
20310 </div>
20311 <div class="body">
20312 <p>A few days ago I came across
20313 <a href="http://joeyh.name/blog/entry/hledger/">a blog post from Joey
20314 Hess</a> describing <a href="http://ledger-cli.org/">ledger</a> and
20315 hledger, a text based system for double-entry accounting. I found it
20316 interesting, as I am involved with several organizations where
20317 accounting is an issue, and I have not really become too friendly with
20318 the different web based systems we use. I find it hard to find what I
20319 look for in the menus and even harder try to get sensible data out of
20320 the systems. Ledger seem different. The accounting data is kept in
20321 text files that can be stored in a version control system, and there
20322
20323 are at least <a href="https://github.com/ledger/ledger/wiki/Ports">five
20324 different implementations</a> able to read the format. An example
20325 entry look like this, and is simple enough that it will be trivial to
20326 generate entries based on CVS files fetched from the bank:</p>
20327
20328 <blockquote><pre>
20329 2004-05-27 Book Store
20330 Expenses:Books $20.00
20331 Liabilities:Visa
20332 </pre></blockquote>
20333
20334 <p>The concept seemed interesting enough for me to check it out and
20335 look for others using it. I found blog posts from
20336 <a href="http://blog.spang.cc/posts/hledger_rocks_my_world/">Christine
20337 Spang</a>,
20338 <a href="http://bugsplat.info/2010-05-23-keeping-finances-with-ledger.html">Pete
20339 Keen</a>,
20340 <a href="http://blog.andrewcantino.com/blog/2010/11/06/command-line-accounting-with-ledger-and-reckon/">Andrew
20341 Cantino</a> and
20342 <a href="http://blog.iphoting.com/blog/2012/11/29/command-line-double-entry-accounting/">Ronald
20343 Ip</a> describing how they use it, as well as a post from
20344 <a href="https://groups.google.com/forum/?fromgroups=#!topic/ledger-cli/r0oWjwbQ9Bo">Bradley
20345 M. Kuhn</a> at the Software Freedom Conservancy. All seemed like good
20346 recommendations fitting my need.</p>
20347
20348 <p>The <a href="http://packages.qa.debian.org/l/ledger.html">ledger</a>
20349 package is available in Debian Squeeze, while the
20350 <a href="http://packages.qa.debian.org/h/haskell-hledger.html">hledger</a>
20351 package only is available in Debian Sid. As I use Squeeze, ledger
20352 seemed the best choice to get started.</p>
20353
20354 <p>To get some real data to test on, I wrote a
20355 <a href="http://www.nuug.no/tools/lodo2ledger">web scraper</a> for
20356 <a href="http://www.lodo.no/">LODO</a>, the accounting system used by
20357 the <a href="http://www.nuug.no/">NUUG</a> association, and started to
20358 play with the data set. I'm not really deeply into accounting, but I
20359 am able to get a simple balance and accounting status for example
20360 using the "<tt>ledger balance</tt>" command. But I will have to
20361 gather more experience before I know if the ledger way is a good fit
20362 for the organisations I am involved in.</p>
20363
20364 </div>
20365 <div class="tags">
20366
20367
20368 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>.
20369
20370
20371 </div>
20372 </div>
20373 <div class="padding"></div>
20374
20375 <div class="entry">
20376 <div class="title">
20377 <a href="http://people.skolelinux.org/pere/blog/Scripting_the_Cerebrum_bofhd_user_administration_system_using_XML_RPC.html">Scripting the Cerebrum/bofhd user administration system using XML-RPC</a>
20378 </div>
20379 <div class="date">
20380 6th December 2012
20381 </div>
20382 <div class="body">
20383 <p>Where I work at the <a href="http://www.uio.no/">University of
20384 Oslo</a>, we use the
20385 <a href="http://sourceforge.net/projects/cerebrum/">Cerebrum user
20386 administration system</a> to maintain users, groups, DNS, DHCP, etc.
20387 I've known since the system was written that the server is providing
20388 an <a href="http://en.wikipedia.org/wiki/XML-RPC">XML-RPC</a> API, but
20389 I have never spent time to try to figure out how to use it, as we
20390 always use the bofh command line client at work. Until today. I want
20391 to script the updating of DNS and DHCP to make it easier to set up
20392 virtual machines. Here are a few notes on how to use it with
20393 Python.</p>
20394
20395 <p>I started by looking at the source of the Java
20396 <a href="http://cerebrum.svn.sourceforge.net/viewvc/cerebrum/trunk/cerebrum/clients/jbofh/">bofh
20397 client</a>, to figure out how it connected to the API server. I also
20398 googled for python examples on how to use XML-RPC, and found
20399 <a href="http://tldp.org/HOWTO/XML-RPC-HOWTO/xmlrpc-howto-python.html">a
20400 simple example in</a> the XML-RPC howto.</p>
20401
20402 <p>This simple example code show how to connect, get the list of
20403 commands (as a JSON dump), and how to get the information about the
20404 user currently logged in:</p>
20405
20406 <blockquote><pre>
20407 #!/usr/bin/env python
20408 import getpass
20409 import xmlrpclib
20410 server_url = 'https://cerebrum-uio.uio.no:8000';
20411 username = getpass.getuser()
20412 password = getpass.getpass()
20413 server = xmlrpclib.Server(server_url);
20414 #print server.get_commands(sessionid)
20415 sessionid = server.login(username, password)
20416 print server.run_command(sessionid, "user_info", username)
20417 result = server.logout(sessionid)
20418 print result
20419 </pre></blockquote>
20420
20421 <p>Armed with this knowledge I can now move forward and script the DNS
20422 and DHCP updates I wanted to do.</p>
20423
20424 </div>
20425 <div class="tags">
20426
20427
20428 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin</a>.
20429
20430
20431 </div>
20432 </div>
20433 <div class="padding"></div>
20434
20435 <div class="entry">
20436 <div class="title">
20437 <a href="http://people.skolelinux.org/pere/blog/Why_isn_t_the_value_of_copyright_taxed_.html">Why isn't the value of copyright taxed?</a>
20438 </div>
20439 <div class="date">
20440 17th November 2012
20441 </div>
20442 <div class="body">
20443 <p>While working on a
20444 <a href="https://github.com/petterreinholdtsen/free-culture-lessig">Norwegian
20445 translation of the Free Culture by Lawrence Lessig</a> (76% done),
20446 which cover the problems with todays copyright law and how it stifles
20447 creativity, one idea occurred to me. The idea is to get the tax
20448 office to help make more works enter the public domain and also help
20449 make it easier to clear rights for using copyrighted works.</p>
20450
20451 <p>I mentioned this idea briefly during Yesterdays
20452 <a href="http://www.farmann.no/2012/11/14/john-perry-barlow-in-oslo-friday-nov-16
20453 -15-30-19-00/">presentation
20454 by John Perry Barlow</a>, and concluded that it was best to put it
20455 in writing for a wider audience. The idea is not really based on the
20456 argument that copyrighted works are "intellectual property", as the
20457 core requirement is that copyrighted work have value for the copyright
20458 holder and the tax office like to collect their share from any value
20459 controlled by the citizens in a country. I'm sharing the idea here to
20460 let others consider it and perhaps shoot it down with a fresh set of
20461 arguments.</p>
20462
20463 <p>Most valuables are taxed by the government. At least here in
20464 Norway, the amount of money you have, the value of our land property,
20465 the value of your house, the value of your car, the value of our
20466 stocks and other valuables are all added together. If the tax value
20467 of these values exceed your debt, you have to pay the tax office some
20468 taxes for these values. And copyrighted work have value. It have
20469 value for the rights holder, who can earn money selling access to the
20470 work. But it is not included in the tax calculations? Why not?</p>
20471
20472 <p>If the government want to tax copyrighted works, it would want to
20473 maintain a database of all the copyrighted works and who are the
20474 rights holders for a given works, to be able to associate the works
20475 value to the right citizen or company for tax purposes. If such
20476 database exist, it will become a lot easier to find out who to talk to
20477 for clearing permissions to use a copyrighted work, which is a very
20478 hard operation with todays copyright law. To ensure that copyright
20479 holders keep the database up-to-date, it would have to become a
20480 requirement to be able to collect money for granting access to
20481 copyrighted works that the work is listed in the database with the
20482 correct right holder.</p>
20483
20484 <p>If copyright causes copyright holders to have to pay more taxes,
20485 they will have a small incentive to "disown" their copyright, and let
20486 the work enter the public domain. For works with several right holders
20487 one of the right holders could state (and get it registered in the
20488 database) that she do not need to be consulted when clearing rights to
20489 use the work in question and thus will not get any income from that
20490 work. Stating this would have to be impossible to revert and stop the
20491 tax office from adding the value of that work to the given citizens
20492 tax calculation. I assume the copyright law would stay the same,
20493 allowing creators to pick a license of their choosing, and also
20494 allowing them to put their work directly in the public domain. The
20495 existence of such database will make it even easier to clear rights,
20496 and if the right holders listed in the database is taxed, this system
20497 would increase the amount of works that enter the public domain.</p>
20498
20499 <p>The effect would be that the tax office help to make it easier to
20500 get rights to use the works that have not yet entered the public
20501 domain and help to get more work into the public domain.</p>
20502
20503 <p>Why have such taxing not happened yet? I am sure the tax office
20504 would like to tax copyrighted work values if they could.</p>
20505
20506 </div>
20507 <div class="tags">
20508
20509
20510 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>, <a href="http://people.skolelinux.org/pere/blog/tags/verkidetfri">verkidetfri</a>.
20511
20512
20513 </div>
20514 </div>
20515 <div class="padding"></div>
20516
20517 <div class="entry">
20518 <div class="title">
20519 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Angela_Fu_.html">Debian Edu interview: Angela Fuß</a>
20520 </div>
20521 <div class="date">
20522 14th November 2012
20523 </div>
20524 <div class="body">
20525 <p>Here is another interview with one of the people in the <a
20526 href="http://www.skolelinux.org/">Debian Edu and Skolelinux</a>
20527 community. I am running short on people willing to be interviewed, so
20528 if you know about someone I should interview, Please send me an email.
20529 After asking for many months, I finally managed to lure another one of
20530 the people behind the German
20531 "<a href="http://wiki.it-zukunft-schule.de/">IT-Zukunft Schule</a>"
20532 project out from maternity leave to conduct an interview. Give a warm
20533 welcome to Angela Fuß. :)</p>
20534
20535 <p><strong>Who are you, and how do you spend your days?</strong></p>
20536
20537 <p>I am a 39-year-old woman living in the very north of Germany near
20538 Denmark. I live in a patchwork family with "my man" Mike Gabriel, my
20539 two daughters, Mikes daughter and Mikes and my rather newborn son.
20540
20541 <p>At the moment - because of our little baby - I am spending most of
20542 the day by being a caring and organising mom for all the kids.
20543 Besides that I am really involved into and occupied with several inner
20544 growth processes: New born souls always bring the whole familiar
20545 system into movement and that needs time and focus ;-). We are also
20546 in the middle of buying a house and moving to it.</p>
20547
20548 <p>In 2013 I will work again in my job in a German foundation for
20549 nature conservation. I am doing public relation work there. Besides
20550 that - and that is the connection to Skolelinux / Debian Edu - I am
20551 working in our own school project "IT-Zukunft Schule" in North
20552 Germany. I am responsible for the quality assurance, the customer
20553 relationship management and the communication processes in the
20554 project.</p>
20555
20556 <p>Since 2001 I constantly have been training myself in communication
20557 and leadership. Besides that I am a forester, a landscaping gardener
20558 and a yoga teacher.</p>
20559
20560 <p><strong>How did you get in contact with the Skolelinux / Debian Edu
20561 project?</strong></p>
20562
20563 <p>I fell in love with Mike ;-).</p>
20564
20565 <p>Very soon after getting to know him I was completely enrolled into
20566 Free Software. At this time Mike did IT-services for one newly
20567 founded school in Kiel. Other schools in Kiel needed concepts for
20568 their IT environment. Often when Mike came home from working at the
20569 newly founded school I found myself listening to his complaints about
20570 several points where the communication with the schools head or the
20571 teachers did not work. So we were clear that he would not work for
20572 one more school if we did not set up a structure for communication
20573 between him, the schools head, the teachers, the students and the
20574 parents.</p>
20575
20576 <p>Together with our friend and hardware supplier Andreas Buchholz we
20577 started to get an overview of free software solutions suitable for
20578 schools. One day before Christmas 2010 Mike and I had a date with Kurt
20579 Gramlich in Gütersloh. As Kurt and I are really interested in building
20580 networks of people and in being in communication we dived into
20581 Skolelinux and brought it to the first grammar schools in Northern
20582 Germany.</p>
20583
20584 <p>For information about our school project you can read
20585 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Mike_Gabriel.html">the
20586 interview with Mike Gabriel</a>.</p>
20587
20588 <p><strong>What do you see as the advantages of Skolelinux / Debian
20589 Edu?</strong></p>
20590
20591 <p>First I have to say: I cannot answer this question technically. My
20592 answer comes rather from a social point of view.</p>
20593
20594 <p>The biggest advantage of Skolelinux / Debian Edu I see is the large
20595 and strong international community of Debian Developers in the
20596 background which is very alive and connected over mailinglists, blogs
20597 and meetings. My constant feeling for the Debian Community is: If
20598 something does not work they will somehow fix it. All is well
20599 ;-). This is of course a user experience. What I also get as a big
20600 advantage of Skolelinux / Debian Edu is that everybody who uses it and
20601 works with it can also contribute to it - that includes students,
20602 teachers, parents...</p>
20603
20604 <p><strong>What do you see as the disadvantages of Skolelinux / Debian
20605 Edu?</strong></p>
20606
20607 <p>I will answer this question relating to the internal structure of
20608 Skolelinux / Debian Edu.</p>
20609
20610 <p>What I see as a major disadvantage is that there is a gap between
20611 the group of developers for Debian Edu and the people who make the
20612 marketing, that means the people that bring Skolelinux to the
20613 schools. There is a lack of communication between these two groups and
20614 I think that does not really work for Skolelinux / Debian Edu.</p>
20615
20616 <p>Further I appreciate that Skolelinux / Debian Edu is known as a
20617 do-ocracy. Nevertheless I keep asking myself if at some points a
20618 democracy or some kind of hierarchical project structure would be good
20619 and helpful. I am also missing some kind of contact between the
20620 Skolelinux / Debian Edu communities in Europe or on an international
20621 level. I think it would be good if there was more sharing between the
20622 different countries using Skolelinux / Debian Edu.</p>
20623
20624 <p><strong>Which free software do you use daily?</strong></p>
20625
20626 <p>On my laptop I am still using an Ubuntu 10.04 with a Gnome Desktop
20627 on. As applications I use Openoffice.org, Gedit, Firefox, Pidgin,
20628 LaTeX and GnuCash. For mails I am using Horde. And I am really fond of
20629 my N900 running with Maemo.</p>
20630
20631 <p><strong>Which strategy do you believe is the right one to use to
20632 get schools to use free software?</strong></p>
20633
20634 <p>I am really convinced that in our school project "IT-Zukunft
20635 Schule" we have developed (and keep developing) a great way to get
20636 schools to use Free Software. We have written a detailed concept for
20637 that so I cannot explain the whole thing here. But in a nutshell the
20638 strategy has three crucial pillars:</p>
20639
20640 <ul>
20641
20642 <li>We really take time to get what sort of stories, questions and
20643 concerns the schools head and the teachers have about using different
20644 kinds of IT and we take time to enrol them into Free Software.</li>
20645
20646 <li>Our solution for schools is never just technical. In the centre
20647 are always the people who are going to use the software. From the very
20648 beginning of the planning for a school, we tell the schools head that
20649 they are paying us not only for a technical solution for their school,
20650 they also pay us for leading all the communication processes
20651 needed. If they do not want that, we are not working with them because
20652 we cannot give a guarantee for the quality of our work then.</li>
20653
20654 <li>Another focus lies in the training of teachers and students in
20655 co-administrating the IT-System at their school. They start getting in
20656 contact with the Skolelinux / Debian Edu community and they get the
20657 offer to become more and more independent from us.</li>
20658
20659 </ul>
20660
20661 </div>
20662 <div class="tags">
20663
20664
20665 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>.
20666
20667
20668 </div>
20669 </div>
20670 <div class="padding"></div>
20671
20672 <div class="entry">
20673 <div class="title">
20674 <a href="http://people.skolelinux.org/pere/blog/The_European_Central_Bank__ECB__take_a_look_at_bitcoin.html">The European Central Bank (ECB) take a look at bitcoin</a>
20675 </div>
20676 <div class="date">
20677 4th November 2012
20678 </div>
20679 <div class="body">
20680 <p>Slashdot just ran a story about the European Central Bank (ECB)
20681 <a href="http://www.ecb.europa.eu/pub/pdf/other/virtualcurrencyschemes201210en.pdf">releasing
20682 a report (PDF)</a> about virtual currencies and
20683 <a href="http://www.bitcoin.org/">bitcoin</a>. It is interesting to
20684 see how a member of the bitcoin community
20685 <a href="http://blog.bitinstant.com/blog/2012/10/30/the-ecb-report-on-bitcoin-and-virtual-currencies.html">receive
20686 the report</a>. As for the future, I suspect the central banks and
20687 the governments will outlaw bitcoin if it gain any popularity, to avoid
20688 competition. My thoughts go to the
20689 <a href="http://en.wikipedia.org/wiki/Wörgl">Wörgl experiment</a> with
20690 negative inflation on cash which was such a success that it was
20691 terminated by the Austrian National Bank in 1933. A successful
20692 alternative would be a threat to the current money system and gain
20693 powerful forces to work against it.</p>
20694
20695 <p>While checking out the current status of bitcoin, I also discovered
20696 that the community already seem to have
20697 <a href="http://www.theverge.com/2012/8/27/3271637/bitcoin-savings-trust-pyramid-scheme-shuts-down">experienced
20698 its first pyramid game / Ponzi scheme</a>. Not very surprising, given
20699 how members of "small" communities tend to trust each other. I guess
20700 enterprising crocks will try again and again, as they do anywhere
20701 wealth is available.</p>
20702
20703 </div>
20704 <div class="tags">
20705
20706
20707 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>.
20708
20709
20710 </div>
20711 </div>
20712 <div class="padding"></div>
20713
20714 <div class="entry">
20715 <div class="title">
20716 <a href="http://people.skolelinux.org/pere/blog/12_years_of_outages___summarised_by_Stuart_Kendrick.html">12 years of outages - summarised by Stuart Kendrick</a>
20717 </div>
20718 <div class="date">
20719 26th October 2012
20720 </div>
20721 <div class="body">
20722 <p>I work at the <a href="http://www.uio.no/">University of Oslo</a>
20723 looking after the computers, mostly on the unix side, but in general
20724 all over the place. I am also a member (and currently leader) of
20725 <a href="http://www.nuug.no/">the NUUG association</a>, which in turn
20726 make me a member of <a href="http://www.usenix.org/">USENIX</a>. NUUG
20727 is an member organisation for us in Norway interested in free
20728 software, open standards and unix like operating systems, and USENIX
20729 is a US based member organisation with similar targets. And thanks to
20730 these memberships, I get all issues of the great USENIX magazine
20731 <a href="https://www.usenix.org/publications/login">;login:</a> in the
20732 mail several times a year. The magazine is great, and I read most of
20733 it every time.</p>
20734
20735 <p>In the last issue of the USENIX magazine ;login:, there is an
20736 article by <a href="http://www.skendric.com/">Stuart Kendrick</a> from
20737 Fred Hutchinson Cancer Research Center titled
20738 "<a href="https://www.usenix.org/publications/login/october-2012-volume-37-number-5/what-takes-us-down">What
20739 Takes Us Down</a>" (longer version also
20740 <a href="http://www.skendric.com/problem/incident-analysis/2012-06-30/What-Takes-Us-Down.pdf">available
20741 from his own site</a>), where he report what he found when he
20742 processed the outage reports (both planned and unplanned) from the
20743 last twelve years and classified them according to cause, time of day,
20744 etc etc. The article is a good read to get some empirical data on
20745 what kind of problems affect a data centre, but what really inspired
20746 me was the kind of reporting they had put in place since 2000.<p>
20747
20748 <p>The centre set up a mailing list, and started to send fairly
20749 standardised messages to this list when a outage was planned or when
20750 it already occurred, to announce the plan and get feedback on the
20751 assumtions on scope and user impact. Here is the two example from the
20752 article: First the unplanned outage:
20753
20754 <blockquote><pre>
20755 Subject: Exchange 2003 Cluster Issues
20756 Severity: Critical (Unplanned)
20757 Start: Monday, May 7, 2012, 11:58
20758 End: Monday, May 7, 2012, 12:38
20759 Duration: 40 minutes
20760 Scope: Exchange 2003
20761 Description: The HTTPS service on the Exchange cluster crashed, triggering
20762 a cluster failover.
20763
20764 User Impact: During this period, all Exchange users were unable to
20765 access e-mail. Zimbra users were unaffected.
20766 Technician: [xxx]
20767 </pre></blockquote>
20768
20769 Next the planned outage:
20770
20771 <blockquote><pre>
20772 Subject: H Building Switch Upgrades
20773 Severity: Major (Planned)
20774 Start: Saturday, June 16, 2012, 06:00
20775 End: Saturday, June 16, 2012, 16:00
20776 Duration: 10 hours
20777 Scope: H2 Transport
20778 Description: Currently, Catalyst 4006s provide 10/100 Ethernet to end-
20779 stations. We will replace these with newer Catalyst
20780 4510s.
20781 User Impact: All users on H2 will be isolated from the network during
20782 this work. Afterward, they will have gigabit
20783 connectivity.
20784 Technician: [xxx]
20785 </pre></blockquote>
20786
20787 <p>He notes in his article that the date formats and other fields have
20788 been a bit too free form to make it easy to automatically process them
20789 into a database for further analysis, and I would have used ISO 8601
20790 dates myself to make it easier to process (in other words I would ask
20791 people to write '2012-06-16 06:00 +0000' instead of the start time
20792 format listed above). There are also other issues with the format
20793 that could be improved, read the article for the details.</p>
20794
20795 <p>I find the idea of standardising outage messages seem to be such a
20796 good idea that I would like to get it implemented here at the
20797 university too. We do register
20798 <a href="http://www.uio.no/tjenester/it/aktuelt/planlagte-tjenesteavbrudd/">planned
20799 changes and outages in a calendar</a>, and report the to a mailing
20800 list, but we do not do so in a structured format and there is not a
20801 report to the same location for unplanned outages. Perhaps something
20802 for other sites to consider too?</p>
20803
20804 </div>
20805 <div class="tags">
20806
20807
20808 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>, <a href="http://people.skolelinux.org/pere/blog/tags/usenix">usenix</a>.
20809
20810
20811 </div>
20812 </div>
20813 <div class="padding"></div>
20814
20815 <div class="entry">
20816 <div class="title">
20817 <a href="http://people.skolelinux.org/pere/blog/Amazon_steal_books_from_customer_and_throw_out_her_out_without_any_explanation.html">Amazon steal books from customer and throw out her out without any explanation</a>
20818 </div>
20819 <div class="date">
20820 22nd October 2012
20821 </div>
20822 <div class="body">
20823 <p>A blog post from Martin Bekkelund today tell the story of
20824 <a href="http://www.bekkelund.net/2012/10/22/outlawed-by-amazon-drm/">how
20825 Amazon erased the books from a customer's kindle, locked the account
20826 and refuse to tell the customer why</a>. If a real book store did
20827 this to a customer, it would be called breaking into private property
20828 and theft. The story has spread around the net today. A bit more
20829 background information is available in Norwegian from
20830 <a href="http://www.digi.no/904658/hun-ble-kastet-ut-av-amazon">digi.no</a>.
20831 It is no surprise that digital restriction mechanisms (DRM) are used
20832 this way, as it has been warned about such abuse since DRM was
20833 introduced many years back. And Amazon proved in 2009 that it was
20834 willing to
20835 <a href="http://boingboing.net/2009/07/20/amazons-orwellian-de.html">
20836 break into customers equipment and remove the books</a> people had
20837 bought, when it removed the book 1984 by George Orwell from all the
20838 customers who had bought it. From the official comments, it even
20839 sounded like
20840 <a href="http://www.nytimes.com/2009/07/18/technology/companies/18amazon.html">Amazon
20841 would never do that again</a>. And here we are, three years
20842 later.</p>
20843
20844 <p>And thought this action is
20845 <a href="http://www.itavisen.no/904648/forbrukerraadet-helt-haarreisende">against
20846 Norwegian regulations and law</a>, it is according to the terms of use
20847 as written by Amazon, and it is hard to hold Amazon accountable to
20848 Norwegian laws. It is just yet another example of unacceptable terms
20849 of use on the web, and how they are used to remove customer
20850 rights.</p>
20851
20852 <p>Luckily for electronic books, there are alternatives without
20853 unacceptable terms. For example
20854 <a href="http://www.gutenberg.org/">Project Gutenberg</a> (about 40,000
20855 books), <a href="http://runeberg.org/">Project Runenberg</a> (1,652
20856 books) and <a href="http://www.archive.org/details/texts">The Internet
20857 Archive</a> (3,641,797 books) have heaps of books without DRM, which
20858 can read by anyone and shared with anyone.</p>
20859
20860 <p>Update 2012-10-23: This story broke in the morning on Monday. In
20861 the evening after the story had spread all across the Internet, Amazon
20862 restored the account of the user, as reported by
20863 <a href="http://www.digi.no/904675/helomvending-fra-amazon">digi.no</a>
20864 and <a href="http://nrk.no/kultur-og-underholdning/1.8368487">NRK</a>.
20865 Apparently public pressure work. The story from Martin have seen
20866 several twitter messages per minute the last 24 hours, which is quite
20867 a lot, and is still drawing a lot of attention. But even when the
20868 account is restored, the fundamental problem still exist. I recommend
20869 reading two opinions from
20870 <a href="http://blogs.computerworlduk.com/simon-says/2012/10/rights-you-have-no-right-to-your-ebooks/index.htm">Simon
20871 Phipps</a> and
20872 <a href="http://blogs.computerworlduk.com/open-enterprise/2012/10/is-amazon-playing-fair/index.htm">Glen
20873 Moody</a> if you want to learn more about the fundamentals and more
20874 details about the original story.</p>
20875
20876 </div>
20877 <div class="tags">
20878
20879
20880 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>.
20881
20882
20883 </div>
20884 </div>
20885 <div class="padding"></div>
20886
20887 <div class="entry">
20888 <div class="title">
20889 <a href="http://people.skolelinux.org/pere/blog/The_fight_for_freedom_and_privacy.html">The fight for freedom and privacy</a>
20890 </div>
20891 <div class="date">
20892 18th October 2012
20893 </div>
20894 <div class="body">
20895 <p>Civil liberties and privacy in the western world are going down the
20896 drain, and it is hard to fight against it. I try to do my best, but
20897 time is limited. I hope you do your best too. A few years ago I came
20898 across a marvellous drawing by
20899 <a href="http://www.claybennett.com/about.html">Clay Bennett</a>
20900 visualising some of what is going on.
20901
20902 <p><a href="http://www.claybennett.com/pages/security_fence.html">
20903 <img src="http://www.claybennett.com/images/archivetoons/security_fence.jpg"></a></p>
20904
20905 <blockquote>
20906 «They who can give up essential liberty to obtain a little temporary
20907 safety, deserve neither liberty nor safety.» - Benjamin Franklin
20908 </blockquote>
20909
20910 <p>Do you feel safe at the airport? I do not. Do you feel safe when
20911 you see a surveillance camera? I do not. Do you feel safe when you
20912 leave electronic traces of your behaviour and opinions? I do not. I
20913 just remember <a href="http://en.wikipedia.org/wiki/Panopticon">the
20914 Panopticon</a>, and can not help to think that we are slowly
20915 transforming our society to a huge Panopticon on our own.</p>
20916
20917 </div>
20918 <div class="tags">
20919
20920
20921 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>.
20922
20923
20924 </div>
20925 </div>
20926 <div class="padding"></div>
20927
20928 <div class="entry">
20929 <div class="title">
20930 <a href="http://people.skolelinux.org/pere/blog/ColonHelp_produser_sue_WordPress_to_silence_critic.html">ColonHelp produser sue WordPress to silence critic</a>
20931 </div>
20932 <div class="date">
20933 12th October 2012
20934 </div>
20935 <div class="body">
20936 <p>Thanks to a blog post by
20937 <a href="http://ramblingfoo.blogspot.no/2012/10/a-shitstorm-is-comming.html">Eddy
20938 Petrișor</a>, I became aware of yet another "alternative medicine"
20939 company using legal intimidation tactics to scare off critics.
20940 According to the originating blog post about the detox "cure"
20941 <a href="http://insulaindoielii.wordpress.com/2012/10/11/colon-help-sues-wordpress/">ColonHelp
20942 and its producers Zenyth Pharmaceuticals actions</a>, the producer
20943 sues Wordpress to get rid of the critical information. To check if
20944 the story was for real, I contacted Automattic, the company behind
20945 wordpress.com, and they reply was "We can confirm that Zenyth is
20946 seeking a court order against WordPress / Automattic. However, we
20947 don't believe the Terms of Service have been violated in this
20948 matter".</p>
20949
20950 <p>The story seem to be simply that a blogger checked the scientific
20951 foundation for a popular health product in Rumania, ColonHelp, and
20952 reported that there was no reason at all to believe it improved the
20953 health of its users. This caused the company behind the product,
20954 Zenyth Pharmaceuticals, to use legal intimidation to try to silence
20955 the critic, instead of presenting its views and scientific foundation
20956 to argue its side.</p>
20957
20958 <p>This is the usual story, and the Zenyth Pharmaceuticals company
20959 deserve everyone to know how it failed to act properly. Lets hope the
20960 <a href="http://en.wikipedia.org/wiki/Streisand_effect">Streisand
20961 effect</a> can make it rethink its strategy.</p>
20962
20963 <p>What is the harm, you might think. I suggest you take a look at
20964 <a href="http://www.whatstheharm.net/detoxification.html">a list of
20965 victims of detoxification</a>.</p>
20966
20967 </div>
20968 <div class="tags">
20969
20970
20971 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis</a>.
20972
20973
20974 </div>
20975 </div>
20976 <div class="padding"></div>
20977
20978 <div class="entry">
20979 <div class="title">
20980 <a href="http://people.skolelinux.org/pere/blog/Why_is_your_local_library_collecting_the__wrong__computer_books_.html">Why is your local library collecting the "wrong" computer books?</a>
20981 </div>
20982 <div class="date">
20983 3rd October 2012
20984 </div>
20985 <div class="body">
20986 <p>I just read the blog post from Tim Retout
20987 <a href="http://retout.co.uk/blog/2012/10/02/the-library-challenge">about
20988 the computer science book collection available in his local
20989 library</a>, and just wanted to share my comment on his theory about
20990 computer books becoming obsolete so soon. That is part of the reason
20991 why the selection is so sad in almost any local library (it is in mine
20992 too), but I believe the major contributing factor is that the people
20993 buying books to the library have no way to know a good and future
20994 computer classic from trash. And they need to know which one will
20995 become a classic in the future, as they would normally buy one of the
20996 recently published books.</p>
20997
20998 <p>During my university years, I worked for a while at the university
20999 library, and even there the person in charge of buying computer
21000 related books (and in fact any natural science related book), did not
21001 know enough about computers to make a good educated guess. Once, just
21002 before Christmas, they had some leftover money on the book budget and
21003 I was asked if I could pick out a lot of computer books in the
21004 university book store, for the library to buy for their collection. I
21005 had a great time picking all the books I dreamt of buying and reading,
21006 and the books I knew were classics (like most of the
21007 <a href="http://en.wikipedia.org/wiki/W._Richard_Stevens">Stevens
21008 collection</a>). I picked several of the generic O'Reilly books (ie
21009 documenting protocols, formats and systems, not specific versions of
21010 products) and stayed away from the 'teach yourself X in N days' class.
21011 I had a great time, and probably picked out more than a hundred books
21012 for the library that evening.</p>
21013
21014 <p>The sad fact is that there is no way a overworked librarian is
21015 going to know that for example
21016 <a href="http://en.wikipedia.org/wiki/The_Practice_of_Programming">The
21017 Practice of Programming</a> is a must-have in any computer library,
21018 and they will most of the time end up picking the wrong books to buy.
21019 Perhaps you can help your local library make better choices by giving
21020 the suggestions for books to get? I know they would love to hear from
21021 you, even if their budget might block them from getting your favourite
21022 book right away.</p>
21023
21024 </div>
21025 <div class="tags">
21026
21027
21028 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
21029
21030
21031 </div>
21032 </div>
21033 <div class="padding"></div>
21034
21035 <div class="entry">
21036 <div class="title">
21037 <a href="http://people.skolelinux.org/pere/blog/Seventy_percent_done_with_Norwegian_docbook_version_of_Free_Culture.html">Seventy percent done with Norwegian docbook version of Free Culture</a>
21038 </div>
21039 <div class="date">
21040 23rd September 2012
21041 </div>
21042 <div class="body">
21043 <p>Since this summer, I have worked in my spare time on a Norwegian <a
21044 href="http://www.docbook.org/">docbook</a> version of the 2004 book <a
21045 href="http://free-culture.cc/">Free Culture</a> by Lawrence Lessig.
21046 The reason is that this book is a great primer on what problems exist
21047 in the current copyright laws, and I want it to be available also for
21048 those that are reluctant do read an English book.
21049
21050 When I started, I
21051 <a href="http://people.skolelinux.org/pere/blog/Dugnad_for___sende_norsk_versjon_av_Free_Culture_til_stortingets_representanter_.html">called
21052 for volunteers</a> to help me, but too few have volunteered so far,
21053 and progress is a bit slow. Anyway, today I broken the 70 percent
21054 mark for the first rough translation. At the moment, less than 700
21055 strings (paragraphs, index terms, titles) are left to translate. With
21056 my current progress of 10-20 strings per day, it will take a while to
21057 complete the translation. This graph show the updated progress:</p>
21058
21059 <img width="80%" align="center" src="https://github.com/petterreinholdtsen/free-culture-lessig/raw/master/progress.png">
21060
21061 <p>Progress have slowed down lately due to family and work
21062 commitments. If you want to help, please get in touch, and check out
21063 the project files currently available from
21064 <a href="https://github.com/petterreinholdtsen/free-culture-lessig">github</a>.</p>
21065
21066 <p>If you are curious what the translated book currently look like,
21067 the updated
21068 <a href="https://github.com/petterreinholdtsen/free-culture-lessig/blob/master/archive/freeculture.nb.pdf?raw=true">PDF</a>
21069 and
21070 <a href="https://github.com/petterreinholdtsen/free-culture-lessig/blob/master/archive/freeculture.nb.epub?raw=true">EPUB</a>
21071 are published on github. The HTML version is published as well, but
21072 github hand it out with MIME type text/plain, confusing browsers, so I
21073 saw no point in linking to that version.</p>
21074
21075 </div>
21076 <div class="tags">
21077
21078
21079 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>.
21080
21081
21082 </div>
21083 </div>
21084 <div class="padding"></div>
21085
21086 <div class="entry">
21087 <div class="title">
21088 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Giorgio_Pioda.html">Debian Edu interview: Giorgio Pioda</a>
21089 </div>
21090 <div class="date">
21091 17th September 2012
21092 </div>
21093 <div class="body">
21094 <p>After a long break in my row of interviews with people in the
21095 <a href="http://www.skolelinux.org/">Debian Edu and Skolelinux</a>
21096 community, I finally found time to wrap up another. This time it is
21097 Giorgio Pioda, which showed up on the mailing list at the start of
21098 this year, asking questions and inspiring us to improve the first time
21099 administrators experience with Skolelinux. :) The interview was
21100 conduced in May, but I only found time to publish it now.</p>
21101
21102 <p><strong>Who are you, and how do you spend your days?</strong></p>
21103
21104 <p>I have a PhD in chemistry but since several years I work as teacher
21105 in secondary (15-18 year old students) and tertiary (a kind of "light"
21106 university) schools. Five years ago I started to manage a Learning
21107 Management Service server and slowly I got more and more involved with
21108 IT. 3 years ago the graduating schools moved completely to Linux and I
21109 got the head of the IT for this. The experience collected in chemistry
21110 labs computers (for example NMR analysis of protein folding) and in
21111 the IT-courses during university where sufficient to start. Self
21112 training is anyway very important</p>
21113
21114 <p>I live in the Italian speaking part of Switzerland, and the
21115 <a href="http://www.spse.ch/">SPSE school</a> (secondary) is a very
21116 special sport school for young people who try to became sport pro (for
21117 all sports, we have dozens of disciplines represented) and we are
21118 recognised by the Olympic Swiss Organisation.
21119
21120 <p><strong>How did you get in contact with the Skolelinux/Debian Edu
21121 project?</strong></p>
21122
21123 <p>Looking for Linux / Primary Domain Controller (PDC) I found it
21124 already several years ago. But since the system was still not
21125 Kerberized and since our schools relies strongly on laptops I didn't
21126 use it. I plan to introduce it in the next future, probably for the
21127 next school year, since the squeeze release solved this security
21128 hole.</p>
21129
21130 <p><strong>What do you see as the advantages of Skolelinux/Debian
21131 Edu?</strong></p>
21132
21133 <p>Many. First of all there is a strong and living community that is
21134 very generous for help and hints. Chat help is crucial, together with
21135 the mailing list. Second. With Skolelinux you get an already well
21136 engineered platform and you don't have to start to build up your PDC
21137 and your clients from GNU/scratch; I've already done this once and I
21138 can tell it, it is hard. Third, since Skolelinux is a standard
21139 platform, it is way easier to educate other IT people and even if the
21140 head IT is sick another one could pick up the task without too much
21141 hassle.</p>
21142
21143 <p><strong>What do you see as the disadvantages of Skolelinux/Debian
21144 Edu?</strong></p>
21145
21146 <p>The only real problem I see is that it is a little too less
21147 flexible at client level. Debian stable is rocky and desirable, but
21148 there are many reasons that force for another choice. For example the
21149 need of new drivers for new PC, or the need for a specific OS for some
21150 devices that have specific software packages for another specific
21151 distribution (I have such a case for whiteboards that have only
21152 Ubuntu packages). Thus, I prepared compatibility packages educlient
21153 and eduroaming, hoping not to use them ;-)</p>
21154
21155 <p><strong>Which free software do you use daily?</strong></p>
21156
21157 <p>I have a Debian Stable PDC at school (Kerberos, NIS, NFS) with
21158 mixed Debian and Ubuntu clients. If you think that this triad
21159 combination is exotic... well I discovered right yesterday that
21160 <a href="http://moo.nac.uci.edu/~hjm/Perceus-Report.html">Perceus</a>
21161 has the same...</p>
21162
21163 <p>For myself I run Debian wheezy/sid, but this combination is good
21164 only I you have enough competence to fix stuff for yourself, if
21165 something breaks. Daily I use texmacs, gnumeric, a little bit of R
21166 statistics, kmplot, and less frequently OpenOffice.org.</p>
21167
21168 <p><strong>Which strategy do you believe is the right one to use to
21169 get schools to use free software?</strong></p>
21170
21171 <P>I think that the only real argument that school managers "hear" is
21172 cost reduction. They don't give too much weight on quality, stability,
21173 just because they are normally not open to change.</p>
21174
21175 <p>Students adapts very quickly to GNU/Linux (and for them being able
21176 to switch between different OS is a plus value); teachers and managers
21177 don't.</p>
21178
21179 <p>We decided to move to Linux because students at our school have own
21180 laptop and we have the responsibility to keep the laptop ready to use;
21181 we were really unsatisfied with Microsoft since every Monday we had 20
21182 machine to fix for viral infections... With Linux this has been
21183 reduced to zero, since people installs almost only from official
21184 repositories. I think that our special needs brought us to Linux.
21185 Those who don't have such needs will hardly move to Linux.</p>
21186
21187 </div>
21188 <div class="tags">
21189
21190
21191 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>.
21192
21193
21194 </div>
21195 </div>
21196 <div class="padding"></div>
21197
21198 <div class="entry">
21199 <div class="title">
21200 <a href="http://people.skolelinux.org/pere/blog/IETF_activity_to_standardise_video_codec.html">IETF activity to standardise video codec</a>
21201 </div>
21202 <div class="date">
21203 15th September 2012
21204 </div>
21205 <div class="body">
21206 <p>After the
21207 <a href="http://people.skolelinux.org/pere/blog/IETF_standardize_its_first_multimedia_codec__Opus.html">Opus
21208 codec made</a> it into <a href="http://www.ietf.org/">IETF</a> as
21209 <a href="http://tools.ietf.org/html/rfc6716">RFC 6716</a>, I had a look
21210 to see if there is any activity in IETF to standardise a video codec
21211 too, and I was happy to discover that there is some activity in this
21212 area. A non-"working group" mailing list
21213 <a href="https://www.ietf.org/mailman/listinfo/video-codec">video-codec</a>
21214 was
21215 <a href="http://ietf.10.n7.nabble.com/New-Non-WG-Mailing-List-video-codec-Video-codec-BoF-discussion-list-td119548.html">created 2012-08-20</a>. It is intended to discuss the topic and if a
21216 formal working group should be formed.</p>
21217
21218 <p>I look forward to see how this plays out. There is already
21219 <a href="http://www.ietf.org/mail-archive/web/video-codec/current/msg00003.html">an
21220 email from someone</a> in the MPEG group at ISO asking people to
21221 participate in the ISO group. Given how ISO failed with OOXML and given
21222 that it so far (as far as I can remember) only have produced
21223 multimedia formats requiring royalty payments, I suspect
21224 joining the ISO group would be a complete waste of time, but I am not
21225 involved in any codec work and my opinion will not matter much.</p>
21226
21227 <p>If one of my readers is involved with codec work, I hope she will
21228 join this work to standardise a royalty free video codec within
21229 IETF.</p>
21230
21231 </div>
21232 <div class="tags">
21233
21234
21235 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
21236
21237
21238 </div>
21239 </div>
21240 <div class="padding"></div>
21241
21242 <div class="entry">
21243 <div class="title">
21244 <a href="http://people.skolelinux.org/pere/blog/IETF_standardize_its_first_multimedia_codec__Opus.html">IETF standardize its first multimedia codec: Opus</a>
21245 </div>
21246 <div class="date">
21247 12th September 2012
21248 </div>
21249 <div class="body">
21250 <p>Yesterday, <a href="http://www.ietf.org/">IETF</a> announced the
21251 publication of of
21252 <a href="http://tools.ietf.org/html/rfc6716">RFC 6716, the Definition
21253 of the Opus Audio Codec</a>, a low latency, variable bandwidth, codec
21254 intended for both VoIP, film and music. This is the first time, as
21255 far as I know, that IETF have standardized a multimedia codec. In
21256 <a href="http://tools.ietf.org/html/rfc3533">RFC 3533</a>, IETF
21257 standardized the OGG container format, and it has proven to be a great
21258 royalty free container for audio, video and movies. I hope IETF will
21259 continue to standardize more royalty free codeces, after ISO and MPEG
21260 have proven incapable of securing everyone equal rights to publish
21261 multimedia content on the Internet.</p>
21262
21263 <p>IETF require two interoperating independent implementations to
21264 ratify a standard, and have so far ensured to only standardize royalty
21265 free specifications. Both are key factors to allow everyone (rich and
21266 poor), to compete on equal terms on the Internet.</p>
21267
21268 <p>Visit the <a href="http://opus-codec.org/">Opus project page</a> if
21269 you want to learn more about the solution.</p>
21270
21271 </div>
21272 <div class="tags">
21273
21274
21275 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
21276
21277
21278 </div>
21279 </div>
21280 <div class="padding"></div>
21281
21282 <div class="entry">
21283 <div class="title">
21284 <a href="http://people.skolelinux.org/pere/blog/Git_repository_for_song_book_for_Computer_Scientists.html">Git repository for song book for Computer Scientists</a>
21285 </div>
21286 <div class="date">
21287 7th September 2012
21288 </div>
21289 <div class="body">
21290 <p>As I
21291 <a href="http://people.skolelinux.org/pere/blog/Song_book_for_Computer_Scientists.html">mentioned
21292 this summer</a>, I have created a Computer Science song book a few
21293 years ago, and today I finally found time to create a public
21294 <a href="https://gitorious.org/pere-cs-songbook/pere-cs-songbook">Gitorious
21295 repository for the project</a>.</p>
21296
21297 <p>If you want to help out, please clone the source and submit patches
21298 to the HTML version. To generate the PDF and PostScript version,
21299 please use prince XML, or let me know about a useful free software
21300 processor capable of creating a good looking PDF from the HTML.</p>
21301
21302 <p>Want to sing? You can still find the song book in HTML, PDF and
21303 PostScript formats at
21304 <a href="http://www.hungry.com/~pere/cs-songbook/">Petter's Computer
21305 Science Songbook</a>.</p>
21306
21307 </div>
21308 <div class="tags">
21309
21310
21311 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>.
21312
21313
21314 </div>
21315 </div>
21316 <div class="padding"></div>
21317
21318 <div class="entry">
21319 <div class="title">
21320 <a href="http://people.skolelinux.org/pere/blog/Free_software_forced_Microsoft_to_open_Office__and_don_t_forget_Officeshots_.html">Free software forced Microsoft to open Office (and don't forget Officeshots)</a>
21321 </div>
21322 <div class="date">
21323 23rd August 2012
21324 </div>
21325 <div class="body">
21326 <p>I came across a great comment from Simon Phipps today, about how
21327 <a href="http://www.infoworld.com/d/open-source-software/how-microsoft-was-forced-open-office-200233">Microsoft
21328 have been forced to open Office</a>, and it made me remember and
21329 revisit the great site
21330 <a href="http://www.officeshots.org/">officeshots</a> which allow you
21331 to check out how different programs present the ODF file format. I
21332 recommend both to those of my readers interested in ODF. :)</p>
21333
21334 </div>
21335 <div class="tags">
21336
21337
21338 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>.
21339
21340
21341 </div>
21342 </div>
21343 <div class="padding"></div>
21344
21345 <div class="entry">
21346 <div class="title">
21347 <a href="http://people.skolelinux.org/pere/blog/Half_way_there_with_translated_docbook_version_of_Free_Culture.html">Half way there with translated docbook version of Free Culture</a>
21348 </div>
21349 <div class="date">
21350 17th August 2012
21351 </div>
21352 <div class="body">
21353 <p>In my spare time, I currently work on a Norwegian
21354 <a href="http://www.docbook.org/">docbook</a> version of the 2004 book
21355 <a href="http://free-culture.cc/">Free Culture</a> by Lawrence Lessig,
21356 to get a Norwegian text explaining the problems with the copyright law
21357 I can give to my parents and others that are reluctant to read an
21358 English book. It is a marvellous set of examples on how the ever
21359 expanding copyright regulations hurt culture and society. When the
21360 translation is done, I hope to find funding to print and ship a copy
21361 to all the members of the Norwegian parliament, before they sit down
21362 to debate the latest revisions to the Norwegian copyright law. This
21363 summer I
21364 <a href="http://people.skolelinux.org/pere/blog/Dugnad_for___sende_norsk_versjon_av_Free_Culture_til_stortingets_representanter_.html">called
21365 for volunteers</a> to help me, and I have been able to secure the
21366 valuable contribution from at least one other Norwegian.</p>
21367
21368 <p>Two days ago, we finally broke the 50% mark. Then more than 50% of
21369 the number of strings to translate (normally paragraphs, but also
21370 titles and index entries are also counted). All parts from the
21371 beginning up to and including chapter four is translated. So is
21372 chapters six, seven and the conclusion. I created a graph to show the
21373 progress:</p>
21374
21375 <img width="80%" align="center" src="https://github.com/petterreinholdtsen/free-culture-lessig/raw/master/progress.png">
21376
21377 <p>The number of strings to translate increase as I insert the index
21378 entries into the docbook. They were missing with the docbook version
21379 I initially started with. There are still quite a few index entries
21380 missing, but everyone starting with A, B, O, Z and Y are done. I
21381 currently focus on completing the index entries, to get a complete
21382 english version of the docbook source.</p>
21383
21384 <p>There is still need for translators and people with docbook
21385 knowledge, to be able to get a good looking book (I still struggle
21386 with dblatex, xmlto and docbook-xsl) as well as to do the draft
21387 translation and proof reading. And I would like the figures to be
21388 redrawn as SVGs to make it easy to translate them. Any SVG master
21389 around? I am sure there are some legal terms that are unfamiliar to
21390 me. If you want to help, please get in touch, and check out the
21391 project files currently available from <a
21392 href="https://github.com/petterreinholdtsen/free-culture-lessig">github</a>.</p>
21393
21394 <p>If you are curious what the translated book currently look like,
21395 the updated
21396 <a href="https://github.com/petterreinholdtsen/free-culture-lessig/blob/master/archive/freeculture.nb.pdf?raw=true">PDF</a>
21397 and
21398 <a href="https://github.com/petterreinholdtsen/free-culture-lessig/blob/master/archive/freeculture.nb.epub?raw=true">EPUB</a>
21399 are published on github. The HTML version is published as well, but
21400 github hand it out with MIME type text/plain, confusing browsers, so I
21401 saw no point in linking to that version.</p>
21402
21403 </div>
21404 <div class="tags">
21405
21406
21407 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>.
21408
21409
21410 </div>
21411 </div>
21412 <div class="padding"></div>
21413
21414 <div class="entry">
21415 <div class="title">
21416 <a href="http://people.skolelinux.org/pere/blog/Notes_on_language_codes_for_Norwegian_docbook_processing___.html">Notes on language codes for Norwegian docbook processing...</a>
21417 </div>
21418 <div class="date">
21419 10th August 2012
21420 </div>
21421 <div class="body">
21422 <p>In <a href="http://www.docbook.org/">docbook</a> one can specify
21423 the language used at the top, and the processing pipeline will use
21424 this information to pick the correct translations for 'chapter', 'see
21425 also', 'index' etc. And for most languages used with docbook, I guess
21426 this work just fine. For example a German user can start the document
21427 with &lt;book lang="de"&gt;, and the document will show up with the
21428 correct content with any of the docbook processors. This is not the
21429 case for the language
21430 <a href="http://people.skolelinux.org/pere/blog/Free_Culture_in_Norwegian___5_chapters_done__74_percent_left_to_do.html">I
21431 am working with at the moment</a>, Norwegian Bokmål.</p>
21432
21433 <p>For a while, I was confused about which language code to use,
21434 because I was unable to find any language code that would work across
21435 all tools. I am currently testing dblatex, xmlto, docbook-xsl, and
21436 dbtoepub, and they do not handle Norwegian Bokmål the same way. Some
21437 of them do not handle it at all.</p>
21438
21439 <p>A bit of background information is probably needed to understand
21440 this mess. Norwegian is not one, but two written variants. The
21441 variants are Norwegian Nynorsk and Norwegian Bokmål. There are three
21442 two letter language codes associated with these languages, Norwegian
21443 is 'no', Norwegian Nynorsk is 'nn' and Norwegian Bokmål is 'nb'.
21444 Historically the 'no' language code was used for Norwegian Bokmål, but
21445 many years ago this was found to be å bad idea, and the recommendation
21446 is to use the most specific language code instead, to avoid confusion.
21447 In the transition period it is a good idea to make sure 'no' was an
21448 alias for 'nb'.</p>
21449
21450 <p>Back to docbook processing tools in Debian. The dblatex tool only
21451 understand 'nn'. There are translations for 'no', but not 'nb' (BTS
21452 <a href="http://bugs.debian.org/684391">#684391</a>), but due to a bug
21453 (BTS <a href="http://bugs.debian.org/682936">#682936</a>) the 'no'
21454 language code is not recognised. The docbook-xsl tool chain only
21455 recognise 'nn' and 'nb', but not 'no'. The xmlto tool only recognise
21456 'nn' and 'nb', but not 'no'. The end result that there is no language
21457 code I can use to get the docbook file working with all of these tools
21458 at the same time. :(</p>
21459
21460 <p>The correct solution is to use &lt;book lang="nb"&gt;, but it will
21461 take time before that will work with all the free software docbook
21462 processors. :(</p>
21463
21464 <p>Oh, the joy of well integrated tools. :/</p>
21465
21466 </div>
21467 <div class="tags">
21468
21469
21470 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>.
21471
21472
21473 </div>
21474 </div>
21475 <div class="padding"></div>
21476
21477 <div class="entry">
21478 <div class="title">
21479 <a href="http://people.skolelinux.org/pere/blog/Best_way_to_create_a_docbook_book_.html">Best way to create a docbook book?</a>
21480 </div>
21481 <div class="date">
21482 31st July 2012
21483 </div>
21484 <div class="body">
21485 <p>I tried to send this text to the
21486 <a href="https://lists.oasis-open.org/archives/docbook-apps/">docbook-apps
21487 mailing list at lists.oasis-open.org</a>, but it only accept messages
21488 from subscribers and rejected my post, and I completely lack the
21489 bandwidth required to subscribe to another mailing list, so instead I
21490 try to post my message here and hope my blog readers can help me
21491 out.</p>
21492
21493 <p>I am quite new to docbook processing, and am climbing a steep
21494 learning curve at the moment.</p>
21495
21496 <p>To give you some background, I am working on a Norwegian
21497 translation of the book Free Culture by Lawrence Lessig, and I use
21498 docbook to handle the process. The files to build the book are
21499 available from
21500 <a href="https://github.com/petterreinholdtsen/free-culture-lessig">github</a>.
21501 The book got around 400 pages with parts, images, footnotes, tables,
21502 index entries etc, which has proven to be a challenge for the free
21503 software docbook processors. My build platform is Debian GNU/Linux
21504 Squeeze.</p>
21505
21506 <p>I want to build PDF, EPUB and HTML version of the book, and have
21507 tried different tool chains to do the conversion from docbook to these
21508 formats. I am currently focusing on the PDF version, and have a few
21509 problems.</p>
21510
21511 <ul>
21512
21513 <li>Using dblatex, the &lt;part&gt; handling is not the way I want to,
21514 as &lt;/part&gt; do not really end the &lt;part&gt;. (See
21515 <a href="http://bugs.debian.org/683166">BTS report #683166</a>), the
21516 xetex backend (needed to process UTF-8) give incorrect hyphens in
21517 index references spanning several pages (See
21518 <a href="http://bugs.debian.org/682901">BTS report #682901</a>), and
21519 I am unable to get the norwegian template texts (See
21520 <a href="http://bugs.debian.org/682936">BTS report #682936</a>).</li>
21521
21522 <li>Using straight xmlto fail with some latex error (See
21523 <a href="http://bugs.debian.org/683163">BTS report
21524 #683163</a>).</li>
21525
21526 <li>Using xmlto with the fop backend fail to handle images (do not
21527 show up in the PDF), fail to handle a long footnote (overlap
21528 footnote and text body, see
21529 <a href="http://bugs.debian.org/683197">BTS report #683197</a>), and
21530 fail to create a correct index (some lack page ref, and the page
21531 refs listed are not right).</li>
21532
21533 <li>Using xmlto with the dblatex backend behave like dblatex.</li>
21534
21535 <li>Using docbook-xls with xsltproc + fop have the same footnote and
21536 index problems the xmlto + fop processing.</li>
21537
21538 </ul>
21539
21540 <p>So I wonder, what would be the best way to create the PDF version
21541 of this book? Are some of the bugs found above solved in new or
21542 experimental versions of some docbook tool chain?</p>
21543
21544 <p>What about HTML and EPUB versions?</p>
21545
21546 </div>
21547 <div class="tags">
21548
21549
21550 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>.
21551
21552
21553 </div>
21554 </div>
21555 <div class="padding"></div>
21556
21557 <div class="entry">
21558 <div class="title">
21559 <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>
21560 </div>
21561 <div class="date">
21562 21st July 2012
21563 </div>
21564 <div class="body">
21565 <p>I reported earlier that I am working on
21566 <a href="http://people.skolelinux.org/pere/blog/Dugnad_for___sende_norsk_versjon_av_Free_Culture_til_stortingets_representanter_.html">a
21567 norwegian version</a> of the book
21568 <a href="http://free-culture.cc/">Free Culture</a> by Lawrence Lessig.
21569 Progress is good, and yesterday I got a major contribution from Anders
21570 Hagen Jarmund completing chapter six. The source files as well as a
21571 PDF and EPUB version of this book are available from
21572 <a href="https://github.com/petterreinholdtsen/free-culture-lessig">github</a>.</p>
21573
21574 <p>I am happy to report that the draft for the first two chapters
21575 (preface, introduction) is complete, and three other chapters are also
21576 completely translated. This completes 26 percent of the number of
21577 strings (equivalent to paragraphs) in the book, and there is thus 74
21578 percent left to translate. A graph of the progress is present at the
21579 bottom of the github project page. There is still room for more
21580 contributors. Get in touch or send github pull requests with fixes if
21581 you got time and are willing to help make this book make it to
21582 print. :)</p>
21583
21584 <p>The book translation framework could also be a good basis for other
21585 translations, if you want the book to be available in your
21586 language.</p>
21587
21588 </div>
21589 <div class="tags">
21590
21591
21592 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>.
21593
21594
21595 </div>
21596 </div>
21597 <div class="padding"></div>
21598
21599 <div class="entry">
21600 <div class="title">
21601 <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>
21602 </div>
21603 <div class="date">
21604 16th July 2012
21605 </div>
21606 <div class="body">
21607 <p>I am currently working on a
21608 <a href="http://people.skolelinux.org/pere/blog/Dugnad_for___sende_norsk_versjon_av_Free_Culture_til_stortingets_representanter_.html">project
21609 to translate</a> the book
21610 <a href="http://free-culture.cc/">Free Culture</a> by Lawrence Lessig
21611 to Norwegian. And the source we base our translation on is the
21612 <a href="http://en.wikipedia.org/wiki/DocBook">docbook</a> version, to
21613 allow us to use po4a and .po files to handle the translation, and for
21614 this to work well the docbook source document need to be properly
21615 tagged. The source files of this project is available from
21616 <a href="https://github.com/petterreinholdtsen/free-culture-lessig">github</a>.</p>
21617
21618 <p>The problem is that the docbook source have flaws, and we have
21619 no-one involved in the project that is a docbook expert. Is there a
21620 docbook expert somewhere that is interested in helping us create a
21621 well tagged docbook version of the book, and adjust our build process
21622 for the PDF, EPUB and HTML version of the book? This will provide a
21623 well tagged English version (our source document), and make it a lot
21624 easier for us to create a good Norwegian version. If you can and want
21625 to help, please get in touch with me or fork the github project and
21626 send pull requests with fixes. :)</p>
21627
21628 </div>
21629 <div class="tags">
21630
21631
21632 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>.
21633
21634
21635 </div>
21636 </div>
21637 <div class="padding"></div>
21638
21639 <div class="entry">
21640 <div class="title">
21641 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__George_Bredberg.html">Debian Edu interview: George Bredberg</a>
21642 </div>
21643 <div class="date">
21644 9th July 2012
21645 </div>
21646 <div class="body">
21647 <p>The <a href="http://www.skolelinux.org/">Debian Edu /
21648 Skolelinux</a> project have users all over the globe, but until
21649 recently we have not known about any users in Norway's neighbour
21650 country Sweden. This changed when George Bredberg showed up in March
21651 this year on the mailing list, asking interesting questions about how
21652 to adjust and scale the just released
21653 <a href="http://www.debian.org/News/2012/20120311.html">Debian Edu
21654 Wheezy</a> setup to his liking. He granted me an interview, and I am
21655 happy to share his answers with you here.</p>
21656
21657 <p><strong>Who are you, and how do you spend your days?</strong></p>
21658
21659 <p>I'm a 44 year old country guy that have been working 12 years at
21660 the same school as 50% IT-manager and 50% Teacher. My educational
21661 background is fil.kand in history and religious beliefs, an exam as a
21662 "folkhighschool" teacher, that is, for teaching grownups. In
21663 Norwegian I believe it's called "Vuxenupplaring". I also have a master
21664 in "Technology and social change". So I'm not really a tech guy, I
21665 just like to study how humans and technology interact and that is my
21666 perspective when working with IT.</p>
21667
21668 <p><strong>How did you get in contact with the Skolelinux/Debian Edu
21669 project?</strong></p>
21670
21671 I have followed the Skolelinux project for quite some time by
21672 now. Earlier I tested out the K12-LTSP project, which we used for some
21673 time, but I really like the idea of having a distribution aimed to be
21674 a complete solution for schools with necessary tools integrated. When
21675 K12-LTSP abandoned that idea some years ago, I started to look more
21676 seriously into Skolelinux instead.
21677
21678 <p><strong>What do you see as the advantages of Skolelinux/Debian
21679 Edu?</strong></p>
21680
21681 The big point of Skolelinux to me is that it is a complete
21682 distribution, ready to install. It has LDAP-support, MS Windows
21683 integration tools and so forth already configured, saving an
21684 administrator a lot of time and headache. We were using another Linux
21685 based thin-client system called Thinlinc, that has served us very
21686 well. But that Skolelinux is based on VNC and LTSP, to me, is better
21687 when it comes to the kind of multimedia used in schools. That is
21688 showing videos from Youtube or educational TV. It is also easier to
21689 mix thin clients with workstations, since the user settings will be the
21690 same. In our VNC-based solution you had to "beat around the bush" by
21691 setting up a second, hidden, home-directory for user settings for the
21692 workstations, because they will be different from the ones used on the
21693 thin clients. Skolelinux support for diskless workstations are very
21694 convenient since a school today often need to use a class room
21695 projector showing videos in full screen. That is easily done with a
21696 small integrated media computer running as a diskless workstation. You
21697 have only two installs to update and configure. One for the thin
21698 clients and one for the workstations. Also saving a lot of time. Our
21699 old system was also based on Redhat and CentOS. They are both very
21700 nice distributions, but they are sometimes painfully slow when it
21701 comes to updating multimedia support and multimedia programs (even
21702 such as Gimp), leaving us with a bit "oldish" applications. Debian is
21703 quicker to update.
21704
21705 <p><strong>What do you see as the disadvantages of Skolelinux/Debian
21706 Edu?</strong></p>
21707
21708 <p>Debian is a bit too quick when it comes to updating. As an example
21709 we use old HP terminals as thinclients, and two times already this
21710 year (2012) the updates you get from the repositories has stopped
21711 sound from working with them. It's a kernel/ALSA issue. So you have
21712 to be more careful properly testing the updates before you run them in
21713 a production environment. This has never happened with CentOS.</p>
21714
21715 <p>I also would like to be able to set my own domain-settings at
21716 install time. In Skolelinux they are kind of hard coded into the
21717 distribution, when it comes to LDAP and at least samba integration.
21718 That is more a cosmetic/translation issue, and not a real problem.
21719 Running MS Windows applications within the Skolelinux environment needs
21720 to be better supported. That is, running them seamlessly via RDP, and
21721 support for single-sign on. That will make the transition to free
21722 software easier, because you can keep the applications you really
21723 need. No support will make it impossible if you work in a school where
21724 some applications can't be open source. As for us we really need to
21725 run Adobe InDesign in our journalist classes. We run a journalist
21726 education, and is one of the very few non university ones that is ok:d
21727 by Svenska journalistförbundet (Swedish journalist association). Our
21728 education gives the pupils the right of membership there, once they
21729 are done. This is important if you want to get a job.</p>
21730
21731 <p>Adobe InDesign is the program most commonly used in newspapers and
21732 magazines. We used Quark Express before, but they seem to loose there
21733 market to Adobe. The only "equivalent" to InDesign in the opensource
21734 world is Scribus, and its not advanced enough. At least not according
21735 to the teacher. I think it would be possible to use it, because they
21736 are not supposed to learn a program, they are supposed to learn how to
21737 edit and compile a newspaper. But politically at our school we are not
21738 there yet. And Scribus lacks a lot of things you find i InDesign.</p>
21739
21740 <p>We used even a windows program for sound editing when it comes to
21741 the radio-journalist part. The year to come we are going to try
21742 Audacity. That software has the same kind of limitations compared to
21743 Adobe Audition, but that teacher is a bit more open minded. We have
21744 tried Ardour also, but that instead is more like a music studio
21745 program, not intended for the kind of editing taking place in a radio
21746 studio. Its way to complex and the GUI is to scattered when you only
21747 want to cut, make pass-overs, add extra channels and normalise. Those
21748 things you can do in Audacity, but its not as easy as in Audition. You
21749 have to do more things manually with envelopes, and that is a bit old
21750 fashion and timewasting. Its also harder to cut and move sound from
21751 one channel to another, which is a thing that you do frequently
21752 because you often find yourself needing to rearrange parts of the
21753 sound file.</p>
21754
21755 <p>So, I am not sure we will succeed in replacing even Audition, but we
21756 will try. The problem is the students have certain expectations when
21757 they start an education towards a profession. So the programs has to
21758 look and feel professional. Good thing with radio, there are many
21759 programs out there, that radio studios use, so its not as standardised
21760 as Newspaper editing. That means, it does not really matter what
21761 program they learn, because once they start working they still have to
21762 learn the program the studio uses, so instead focus has to be to learn
21763 the editing part without to much focus on a specific software.</p>
21764
21765 <p><strong>Which free software do you use daily?</strong></p>
21766
21767 <p>Myself I'm running Linux Mint, or Ubuntu these days. I use almost
21768 only open source software, and preferably Linux based. When it comes
21769 to most used applications its OpenOffice, and Firefox (of course ;)
21770 )</p>
21771
21772 <p><strong>Which strategy do you believe is the right one to use to
21773 get schools to use free software?</strong></p>
21774
21775 <p>To get schools to use free software there has to be good open
21776 source software that are windows based, to ease the transition. But
21777 it's also very important that the multimedia support is working
21778 flawlessly. The problems with Youtube, Twitter, Facebook and whatever
21779 will create problems when it comes to both teachers and
21780 students. Economy are also important for schools, so using thin
21781 clients, as long as they have good multimedia support, is a very good
21782 idea. It's also important that the open source software works even for
21783 the administration. It's hard to convince the teachers to stick with
21784 open source, if the principal has to run Windows. It also creates a
21785 problem if some classes has to use Windows for there tasks, since that
21786 will create a difference in "status" between classes, so a good
21787 support for running windows applications via the thin client (Linux)
21788 desktop is essential. At least at our school, where we have mixed
21789 level of educations, from high-school to journalist-school.</p>
21790
21791 <p>Update 2012-07-09 08:30: Paul Wise tipped me on IRC about three
21792 useful sources related to Free Software for radio stations: the LWN
21793 article <a href="https://lwn.net/Articles/481607/">Radio station
21794 management with Airtime</a>,
21795 <a href="http://www.sourcefabric.org/en/airtime/">Airtime</a> which
21796 claim to be a Free open source radio automation software and
21797 <a href="http://www.rivendellaudio.org/">Rivendell</a> which claim to
21798 be complete radio broadcast automation solution. All of them seem
21799 useful to the aspiring radio producer.</p>
21800
21801 </div>
21802 <div class="tags">
21803
21804
21805 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>.
21806
21807
21808 </div>
21809 </div>
21810 <div class="padding"></div>
21811
21812 <div class="entry">
21813 <div class="title">
21814 <a href="http://people.skolelinux.org/pere/blog/Why_do_schools_waste_money_on_IT_.html">Why do schools waste money on IT?</a>
21815 </div>
21816 <div class="date">
21817 8th July 2012
21818 </div>
21819 <div class="body">
21820 <p>In the Debian Edu / Skolelinux project, we have realised that one
21821 of the major blockers for the project success is the purchasing skills
21822 in schools and municipalities. We provide what the happy users of
21823 Debian Edu / Skolelinux say they need and to a lower cost than the
21824 alternatives, and yet so few schools decide to use our solution. I
21825 was pleased to discover the same observation done by mySociety and Tom
21826 Steinberg in his blog post
21827 "<a href="http://www.mysociety.org/2012/06/19/can-you-recognize-the-million-pound-chair/">Can
21828 you recognize the million pound chair?</a>". Read it and weep for the
21829 spending of your tax money.</p>
21830
21831 <p>Of course there are other factors involved as well, like our
21832 projects bad marketing skills and the Linux community fragmentation
21833 causing worry with the people on the outside, so we as a project need
21834 to keep working hard to gain users, but it is a up-hill battle when
21835 public decision makers are unable to understand computer system
21836 purchases.</p>
21837
21838 </div>
21839 <div class="tags">
21840
21841
21842 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>.
21843
21844
21845 </div>
21846 </div>
21847 <div class="padding"></div>
21848
21849 <div class="entry">
21850 <div class="title">
21851 <a href="http://people.skolelinux.org/pere/blog/Free_Timetabling_Software___nice_free_software.html">Free Timetabling Software - nice free software</a>
21852 </div>
21853 <div class="date">
21854 7th July 2012
21855 </div>
21856 <div class="body">
21857 <p>Included in <a href="http://www.skolelinux.org/">Debian Edu /
21858 Skolelinux</a> is a large collection of end user and school specific
21859 software. It is one of the packages not installed by default but
21860 provided in the Debian archive for schools to install if they want to,
21861 is a system to automatically plan the school time table using
21862 information about available teachers, classes and rooms, combined with
21863 the list of required courses and how many hours each topic should
21864 receive. The software is
21865
21866 <a href="http://lalescu.ro/liviu/fet/">named FET</a>, and it provide a
21867 graphical user interface to input the required information, save the
21868 result in a fairly simple XML format, and generate time tables for
21869 both teachers and students. It is available both for
21870 <a href="http://lalescu.ro/liviu/fet/download.html">Linux, MacOSX and
21871 Windows</a>.</p>
21872
21873 <p>This is <a href="http://lalescu.ro/liviu/fet/features.html">the
21874 feature list</a>, liftet from the project web site:</p>
21875
21876 <p><ul>
21877
21878 <li>FET is free software, licensed under the GNU GPL v2 or later.
21879 You can freely use, copy, modify and redistribute it </li>
21880
21881 <li>Localized to en_US (US English, default), ar (Arabic), ca
21882 (Catalan), da (Danish), de (German), el (Greek), es (Spanish), fa
21883 (Persian), fr (French), gl (Galician), he (Hebrew), hu
21884 (Hungarian), id (Indonesian), it (Italian), lt (Lithuanian), mk
21885 (Macedonian), ms (Malay), nl (Dutch), pl (Polish), pt_BR
21886 (Brazilian Portuguese), ro (Romanian), ru (Russian), si (Sinhala),
21887 sk (Slovak), sr (Serbian), tr (Turkish), uk (Ukrainian), uz
21888 (Uzbek) and vi (Vietnamese) (incompletely for some languages)
21889 </li>
21890
21891 <li>Fully automatic generation algorithm, allowing also
21892 semi-automatic or manual allocation</li>
21893
21894 <li>Platform independent implementation, allowing running on
21895 GNU/Linux, Windows, Mac and any system that Qt supports </li>
21896
21897 <li>Flexible modular XML format for the input file, allowing editing
21898 with an XML editor or by hand (besides FET interface)</li>
21899
21900 <li>Import/export from CSV format</li>
21901
21902 <li>The resulted timetables are exported into HTML, XML and CSV
21903 formats </li>
21904
21905 <li>Flexible students structure, organized into sets: years, groups
21906 and subgroups. FET allows overlapping years and groups and
21907 non-overlapping subgroups. You can even define individual students
21908 (as separate sets)</li>
21909
21910 <li>Each constraint has a weight percentage, from 0.0% to 100.0%
21911 (but some special constraints are allowed to have only 100% weight
21912 percentage)</li>
21913
21914 <li>Limits for the algorithm (all these limits can be increased on
21915 demand, as a custom version, because this would require a bit more
21916 memory):
21917 <ul>
21918 <li>Maximum total number of hours (periods) per day: 60</li>
21919 <li>Maximum number of working days per week: 35</li>
21920 <li>Maximum total number of teachers: 6000</li>
21921 <li>Maximum total number of sets of students: 30000</li>
21922 <li>Maximum total number of subjects: 6000</li>
21923 <li>Virtually unlimited number of activity tags</li>
21924 <li>Maximum number of activities: 30000</li>
21925 <li>Maximum number of rooms: 6000</li>
21926 <li>Maximum number of buildings: 6000</li>
21927 <li>Possibility of adding multiple teachers and
21928 students sets for each activity. (it is possible
21929 also to have no teachers or no students sets for an
21930 activity)</li>
21931 <li>Virtually unlimited number of time constraints</li>
21932 <li>Virtually unlimited number of space constraints</li>
21933 </ul></li>
21934
21935 <li>A large and flexible palette of time constraints:
21936 <ul>
21937 <li>Break periods</li>
21938 <li>For teacher(s):
21939 <ul>
21940 <li>Not available periods</li>
21941 <li>Max/min days per week</li>
21942 <li>Max gaps per day/week</li>
21943 <li>Max hours daily/continuously</li>
21944 <li>Min hours daily</li>
21945 <li>Max hours daily/continuously with an activity tag</li>
21946
21947 <li>Respect working in an hourly interval a max number of
21948 days per week</li>
21949 </ul></li>
21950 <li>For students (sets):
21951 <ul>
21952 <li>Not available periods</li>
21953 <li>Begins early (specify max allowed beginnings at second hour)</li>
21954 <li>Max gaps per day/week</li>
21955 <li>Max hours daily/continuously</li>
21956 <li>Min hours daily</li>
21957 <li>Max hours daily/continuously with an activity tag</li>
21958
21959 <li>Respect working in an hourly interval a max number of
21960 days per week</li>
21961 </ul></li>
21962 <li>For an activity or a set of activities/subactivities:
21963 <ul>
21964 <li>A single preferred starting time</li>
21965 <li>A set of preferred starting times</li>
21966 <li>A set of preferred time slots</li>
21967 <li>Min/max days between them</li>
21968 <li>End(s) students day</li>
21969 <li>Same starting time/day/hour</li>
21970 <li>Occupy max time slots from selection (a complex and
21971 flexible constraint, useful in many situations)</li>
21972 <li>Consecutive, ordered, grouped (for 2 or 3 (sub)activities)</li>
21973 <li>Not overlapping</li>
21974 <li>Max simultaneous in selected time slots</li>
21975 <li>Min gaps between a set of (sub)activities</li>
21976 </ul></li>
21977 </ul></li>
21978
21979 <li>A large and flexible palette of space constraints:
21980 <ul>
21981 <li>Room not available periods</li>
21982 <li>For teacher(s):
21983 <ul>
21984 <li>Home room(s)</li>
21985 <li>Max building changes per day/week</li>
21986 <li>Min gaps between building changes</li>
21987 </ul>
21988 </li>
21989
21990 <li>For students (sets):
21991 <ul>
21992 <li>Home room(s)</li>
21993 <li>Max building changes per day/week</li>
21994 <li>Min gaps between building changes</li>
21995 </ul>
21996 </li>
21997 <li>Preferred room(s):
21998 <ul>
21999 <li>For a subject</li>
22000 <li>For an activity tag</li>
22001 <li>For a subject and an activity tag</li>
22002 <li>Individually for a (sub)activity</li>
22003 </ul>
22004 </li>
22005
22006 <li>For a set of activities:
22007 <ul>
22008 <li>Occupy a maximum number of different rooms</li>
22009 </ul>
22010 </li>
22011 </ul>
22012 </li>
22013 </ul></p>
22014
22015 <p>I have not used it myself, as I am not involved in time table
22016 planning at a school, but it seem to work fine when I test it. If you
22017 need to set up your schools time table, and is tired of doing it
22018 manually, check it out.
22019
22020 A quick summary on how to use it can be found in
22021 <a href="http://marvelsoft.co.in/wp/2012/03/generate-timetable-for-state-cbse-icse-igcse-schools-free/">a
22022 blog post from MarvelSoft</a>. If you find FET useful, please provide
22023 a recipe for the Debian Edu project in the
22024 <a href="http://wiki.debian.org/DebianEdu#Howtos">Debian Edu HowTo
22025 section</a>.</p>
22026
22027 </div>
22028 <div class="tags">
22029
22030
22031 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software</a>.
22032
22033
22034 </div>
22035 </div>
22036 <div class="padding"></div>
22037
22038 <div class="entry">
22039 <div class="title">
22040 <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>
22041 </div>
22042 <div class="date">
22043 3rd July 2012
22044 </div>
22045 <div class="body">
22046 <p>In the NUUG <a href="http://www.fiksgatami.no/">FiksGataMi</a>
22047 project (Norwegian version of
22048 <a href="http://www.fixmystreet.com/">FixMyStreet</a> from
22049 <a href="http://www.mysociety.org/">mySociety</a>), we have discovered
22050 a problem with the municipalities using
22051 <a href="http://www.zimbra.com/">Zimbra</a>. When FiksGataMi send a
22052 problem report to the government, the email From: address is set to
22053 the address of the person reporting the problem, while envelope sender
22054 is set to the FiksGataMi contact address. The intention is to make
22055 sure the municipality send any replies to the person reporting the
22056 problem, while any email delivery problems are sent to us in NUUG.
22057 This work well in most cases, but not for Karmøy municipality using
22058 Zimbra. Karmøy is using the vacation message function in Zimbra to
22059 send an automatic reply to report that the message has been received,
22060 and this message is sent to the envelope sender and not the address in
22061 the From: header.</p>
22062
22063 <p>This causes the automatic message from Karmøy to go to NUUGs
22064 request-tracker instance instead of to the person reporting the
22065 problem. We can not really change the envelope sender address, as
22066 this would make it impossible for us to discover when there are
22067 problems with the MTAs receiving problem reports. We have been in
22068 contact with the people at Karmøy municipality, and they are willing
22069 to adjust Zimbra if something can be changed there to get a better
22070 behaviour.</p>
22071
22072 <p>The default behaviour of Zimbra is as far as I can tell according
22073 to the specification in RFC 3834, which recommend that vacation
22074 messages are sent to the envelope sender and not to the From: address.
22075 But I wonder if it is possible to adjust or configure Zimbra to behave
22076 differently. Anyone know? Please let us know at
22077 <a href="http://lists.nuug.no/mailman/listinfo/fiksgatami">fiksgatami
22078 (at) nuug.no</a>.</p>
22079
22080 </div>
22081 <div class="tags">
22082
22083
22084 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>.
22085
22086
22087 </div>
22088 </div>
22089 <div class="padding"></div>
22090
22091 <div class="entry">
22092 <div class="title">
22093 <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>
22094 </div>
22095 <div class="date">
22096 26th June 2012
22097 </div>
22098 <div class="body">
22099 <p>I've been too busy at home, but finally I found time to wrap up
22100 another interview with the people behind
22101 <a href="http://www.skolelinux.org/">Debian Edu and Skolelinux</a>.
22102 This time we get to know José Luis Redrejo Rodríguez, one of our great
22103 helpers from Spain. His effort was the reason we added support for
22104 several desktop types (KDE, Gnome and most recently LXDE) in Debian
22105 Edu, and have all of these available in the recently published
22106 <a href="http://www.debian.org/News/2012/20120311.html">Debian Edu
22107 Squeeze</a> version.</p>
22108
22109 <p><strong>Who are you, and how do you spend your days?</strong></p>
22110
22111 <p>I'm a father, teacher and engineer who is working for the Education
22112 ministry of the Region of Extremadura (Spain) in the implementation of
22113 ICT in schools</p>
22114
22115 <p><strong>How did you get in contact with the Skolelinux/Debian Edu
22116 project?</strong></p>
22117
22118 <p>At 2006, I verified that both, we in Extremadura and Skolelinux
22119 project, had been working in parallel for some years, doing very
22120 similar things, using very similar tools and with similar targets, so
22121 I decided it was time to join forces as much as possible.</p>
22122
22123 <p><strong>What do you see as the advantages of Skolelinux/Debian
22124 Edu?</strong></p>
22125
22126 <p>A community of highly skilled experts working together, with a
22127 really open schema of collaboration and work. I really love the
22128 concepts of Do-ocracy and Merit-ocracy and the way these concepts are
22129 been used everyday inside Debian Edu.</p>
22130
22131 <p><strong>What do you see as the disadvantages of Skolelinux/Debian
22132 Edu?</strong></p>
22133
22134 <p>Sometimes the differences in the implementations, laws or
22135 economical and technical resources in the different countries don't
22136 allow us to agree in the same solution for all of us, and several
22137 approaches are needed, what is a waste of effort. Also, there is a
22138 lack of more man power to be able to follow the fast evolution of the
22139 technologies in school.</p>
22140
22141 <p><strong>Which free software do you use daily?</strong></p>
22142
22143 <p>Debian, of course, and due to my kind of job I am most of my time
22144 between Iceweasel, <a href="http://www.geany.org/">Geany</a> and
22145 <a href="http://www.ohloh.net/p/gnome-terminator">Terminator</a>.</p>
22146
22147 <p><strong>Which strategy do you believe is the right one to use to
22148 get schools to use free software?</strong></p>
22149
22150 <p>I think there is not a single strategy because there are very
22151 different scenarios: schools with mixed proprietary and free
22152 environments, schools using only workstations, other schools using
22153 laptops, netbooks, tablets, interactive white-boards, etc.</p>
22154
22155 <p>Also the range of ages of the students is very broad and you can
22156 not use the same solutions for primary schools and secondary or even
22157 universities. So different strategies are needed.</p>
22158
22159 <p>But, looking at these differences, and looking back to the things
22160 we've done and implemented, and the places were we have spent most of
22161 our forces, I think we should focus as much as possible in free
22162 multi-platform environments, using only standards tools, and moving
22163 more and more to Internet or network solutions that could be deployed
22164 using wireless. I think we'll see more and more personal devices in
22165 the schools, devices the students and teachers will take home with
22166 them, so the solutions must be able to be taken at home and continue
22167 working there.</p>
22168
22169 </div>
22170 <div class="tags">
22171
22172
22173 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju</a>.
22174
22175
22176 </div>
22177 </div>
22178 <div class="padding"></div>
22179
22180 <div class="entry">
22181 <div class="title">
22182 <a href="http://people.skolelinux.org/pere/blog/Song_book_for_Computer_Scientists.html">Song book for Computer Scientists</a>
22183 </div>
22184 <div class="date">
22185 24th June 2012
22186 </div>
22187 <div class="body">
22188 <p>Many years ago, while studying Computer Science at the
22189 <a href="http://www.uit.no/">University of Tromsø</a>, I started
22190 collecting computer related songs for use at parties. The original
22191 version was written in LaTeX, but a few years ago I got help from
22192 Håkon W. Lie, one of the inventors of W3C CSS, to convert it to HTML
22193 while keeping the ability to create a nice book in PDF format. I have
22194 not had time to maintain the book for a while now, and guess I should
22195 put it up on some public version control repository where others can
22196 help me extend and update the book. If anyone is volunteering to help
22197 me with this, send me an email. Also let me know if there are songs
22198 missing in my book.</p>
22199
22200 <p>I have not mentioned the book on my blog so far, and it occured to
22201 me today that I really should let all my readers share the joys of
22202 singing out load about programming, computers and computer networks.
22203 Especially now that <a href="http://debconf12.debconf.org/">Debconf
22204 12</a> is about to start (and I am not going). Want to sing? Check
22205 out <a href="http://www.hungry.com/~pere/cs-songbook/">Petter's
22206 Computer Science Songbook</a>.
22207
22208 </div>
22209 <div class="tags">
22210
22211
22212 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>.
22213
22214
22215 </div>
22216 </div>
22217 <div class="padding"></div>
22218
22219 <div class="entry">
22220 <div class="title">
22221 <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>
22222 </div>
22223 <div class="date">
22224 11th June 2012
22225 </div>
22226 <div class="body">
22227 <p>During my work on
22228 <a href="http://www.debian.org/News/2012/20120311.nb.html">Debian Edu
22229 based on Squeeze</a>, I came across some issues that should be
22230 addressed in the Wheezy release. I finally found time to wrap up my
22231 notes and provide quick summary of what I found, with a bit
22232 explanation.</p>
22233
22234 <p><ul>
22235
22236 <li>We need to rewrite our package installation framework, as tasksel
22237 changed from using tasksel tasks to using meta packages (aka packages
22238 with dependencies like our education-* packages), and our installation
22239 system depend on tasksel tasks in
22240 /usr/share/tasksel/debian-edu-tasks.desc for package
22241 installation.</li>
22242
22243 <li>Enable Kerberos login for more services. Now with the Kerberos
22244 foundation in place, we should use it to get single sign on with more
22245 services, and avoiding unneeded password / login questions. We should
22246 at least try to enable it for these services:
22247 <ul>
22248
22249 <li>CUPS for admins to add/configure printers and users when using
22250 quotas.</li>
22251 <li>Nagios for admins checking the system status.</li>
22252 <li>GOsa for admins updating LDAP and users changing their passwords.</li>
22253 <li>LDAP for admins updating LDAP.</li>
22254 <li>Squid for users when exam mode / filtering is active.</li>
22255 <li>ssh for admins and users to save a password prompt.</li>
22256
22257 </ul></li>
22258
22259 <li>When we move GOsa to use Kerberos instead of LDAP bind to
22260 authenticate users, we should try to block or at least limit access to
22261 use LDAP bind for authentication, to ensure Kerberos is used when it
22262 is intended, and nothing fall back to using the less safe LDAP bind</li>
22263
22264 <li>Merge debian-edu-config and debian-edu-install. The split made
22265 sense when d-e-install did a lot more, but these days it is just an
22266 inconvenience when we update the debconf preseeding values.</li>
22267
22268 <li>Fix partman-auto to allow us to abort the installation before
22269 touching the disk if the disk is too small. This is
22270 <a href="http://bugs.debian.org/653305">BTS report #653305</a> and the
22271 d-i developers are fine with the patch and someone just need to apply
22272 it and upload. After this is done we need to adjust
22273 debian-edu-install to use this new hook.</li>
22274
22275 <li>Adjust to new LTSP framework (boot time config instead of install
22276 time config). LTSP changed its design, and our hooks to install
22277 packages and update the configuration is most likely not going to work
22278 in Wheezy.
22279
22280 <li>Consider switching to NBD instead of NFS for LTSP root, to allow
22281 the Kernel to cache files in its normal file cache, possibly speeding
22282 up KDE login on slow networks.</li>
22283
22284 <li>Make it possible to create expired user passwords that need to
22285 change on first login. This is useful when handing out password on
22286 paper, to make sure only the user know the password. This require
22287 fixes to the PAM handling of kdm and gdm.</li>
22288
22289 <li>Make GUI for adding new machines automatically from sitesummary.
22290 The current command line script is not very friendly to people most
22291 familiar with GUIs. This should probably be integrated into GOsa to
22292 have it available where the admin will be looking for it..</li>
22293
22294 <li>We should find way for Nagios to check that the DHCP service
22295 actually is working (as in handling out IP addresses). None of the
22296 Nagios checks I have found so far have been working for me.</li>
22297
22298 <li>We should switch from libpam-nss-ldapd to sssd for all profiles
22299 using LDAP, and not only on for roaming workstations, to have less
22300 packages to configure and consistent setup across all profiles.</li>
22301
22302 <li>We should configure Kerberos to update LDAP and Samba password
22303 when changing password using the Kerberos protocol. The hook was
22304 requested in <a href="http://bugs.debian.org/588968">BTS report
22305 #588968</a> and is now available in Wheezy. We might need to write a
22306 MIT Kerberos plugin in C to get this.</li>
22307
22308 <li>We should clean up the set of applications installed by default.
22309 <ul>
22310
22311 <li>reduce the number of chemistry visualisers</li>
22312 <li>consider dropping xpaint</li>
22313 <li>and probably more?</li>
22314 </ul></li>
22315
22316 <li>Some hardware need external firmware to work properly. This is
22317 mostly the case for WiFi network cards, but there are some other
22318 examples too. For popular laptops to work out of the box, such
22319 firmware need to be installed from non-free, and we should provide
22320 some GUI to do this. Ubuntu already have this implemented, and we
22321 could consider using their packages. At the moment we have some
22322 command line script to do this (one for the running system, another
22323 for the LTSP chroot).</li>
22324
22325
22326 <li>In Squeeze, we provide KDE, Gnome and LXDE as desktop options. We
22327 should extend the list to Xfce and Sugar, and preferably find a way to
22328 install several and allow the admin or the user to select which one to
22329 use.</li>
22330
22331 <li>The golearn tool from the goplay package make it easy to check out
22332 interesting educational packages. We should work on the package
22333 tagging in Debian to ensure it represent all the useful educational
22334 packages, and extend the tool to allow it to use packagekit to install
22335 new applications with a simple mouse click.</li>
22336
22337 <li>The Squeeze version got half a exam solution already in place,
22338 with the introduction of iptable based network blocking, but for it to
22339 be a complete exam solution the Squid proxy need to enable
22340 filtering/blocking as well when the exam mode is enabled. We should
22341 implement a way to easily enable this for the schools that want it,
22342 instead of the "it is documented" method of today.</li>
22343
22344 <li>A feature used in several schools is the ability for a teacher to
22345 "take over" the desktop of individual or all computers in the room.
22346 There are at least three implementations,
22347 <a href="italc.sourceforge.net/">italc</a>,
22348 <a href="http://www.itais.net/help/en/">controlaula</a> og
22349 <a href="http://www.epoptes.org/">epoptes</a> and we should pick one of
22350 them and make it trivial to set it up in a school. The challenges is
22351 how to distribute crypto keys and how to group computers in one room
22352 and how to set up which machine/user can control the machines in a
22353 given room.</li>
22354
22355 <li>Tablets and surf boards are getting more and more popular, and we
22356 should look into providing a good solution for integrating these into
22357 the Debian Edu network. Not quite sure how. Perhaps we should
22358 provide a installation profile with better touch screen support for
22359 them, or add some sync services to allow them to exchange
22360 configuration and data with the central server. This should be
22361 investigated.</li>
22362
22363 </ul></p>
22364
22365 <p>I guess we will discover more as we continue to work on the Wheezy
22366 version.</p>
22367
22368 </div>
22369 <div class="tags">
22370
22371
22372 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>.
22373
22374
22375 </div>
22376 </div>
22377 <div class="padding"></div>
22378
22379 <div class="entry">
22380 <div class="title">
22381 <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>
22382 </div>
22383 <div class="date">
22384 9th June 2012
22385 </div>
22386 <div class="body">
22387 <p>Slashdot got a story about Intel planning a
22388 <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
22389 with face recognition</a> to recognise the viewer, and it occurred to
22390 me that it would be more interesting to turn it around, and do face
22391 recognition on the TV image itself. It could let the viewer know who
22392 is present on the screen, and perhaps look up their credibility,
22393 company affiliation, previous appearances etc for the viewer to better
22394 evaluate what is being said and done. That would be a feature I would
22395 be willing to pay for.</p>
22396
22397 <p>I would not be willing to pay for a TV that point a camera on my
22398 household, like the big brother feature apparently proposed by Intel.
22399 It is the telescreen idea fetched straight out of the book
22400 <a href="http://gutenberg.net.au/ebooks01/0100021.txt">1984 by George
22401 Orwell</a>.</p>
22402
22403 </div>
22404 <div class="tags">
22405
22406
22407 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>.
22408
22409
22410 </div>
22411 </div>
22412 <div class="padding"></div>
22413
22414 <div class="entry">
22415 <div class="title">
22416 <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>
22417 </div>
22418 <div class="date">
22419 6th June 2012
22420 </div>
22421 <div class="body">
22422 <p>A few days ago
22423 <a href="http://people.skolelinux.org/pere/blog/SOAP_based_webservice_from_Dell_to_check_server_support_status.html">I
22424 reported how to get</a> the support status out of Dell using an
22425 unofficial and undocumented SOAP API, which I since have found out was
22426 <a href="http://lists.us.dell.com/pipermail/linux-poweredge/2012-February/045959.html">discovered
22427 by Daniel De Marco in february</a>. Combined with my web scraping
22428 code for HP, Dell and IBM
22429 <a href="http://people.skolelinux.org/pere/blog/Checking_server_hardware_support_status_for_Dell__HP_and_IBM_servers.html">from
22430 2009</a>, I got inspired and wrote
22431 <a href="https://views.scraperwiki.com/run/computer-hardware-support-status/">a
22432 web service</a> based on Scraperwiki to make it easy to look up the
22433 support status and get a machine readable result back.</p>
22434
22435 <p>This is what it look like at the moment when asking for the JSON
22436 output:
22437
22438 <blockquote><pre>
22439 % 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>
22440 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": ""})
22441 %
22442 </pre></blockquote>
22443
22444 <p>It currently support Dell and HP, and I am hoping for help to add
22445 support for other vendors. The python source is available on
22446 Scraperwiki and I welcome help with adding more features.</p>
22447
22448 </div>
22449 <div class="tags">
22450
22451
22452 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>.
22453
22454
22455 </div>
22456 </div>
22457 <div class="padding"></div>
22458
22459 <div class="entry">
22460 <div class="title">
22461 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Mike_Gabriel.html">Debian Edu interview: Mike Gabriel</a>
22462 </div>
22463 <div class="date">
22464 2nd June 2012
22465 </div>
22466 <div class="body">
22467 <p>Back in 2010, Mike Gabriel showed up on the
22468 <a href="http://www.skolelinux.org/">Debian Edu and Skolelinux</a>
22469 mailing list. He quickly proved to be a valuable developer, and
22470 thanks to his tireless effort we now have Kerberos integrated into the
22471 <a href="http://www.debian.org/News/2012/20120311.html">Debian Edu
22472 Squeeze</a> version.</p>
22473
22474 <p><strong>Who are you, and how do you spend your days?</strong></p>
22475
22476 <p>My name is Mike Gabriel, I am 38 years old and live near Kiel,
22477 Schleswig-Holstein, Germany. I live together with a wonderful partner
22478 (Angela Fuß) and two own children and two bonus children (contributed
22479 by Angela).</p>
22480
22481 <p>During the day I am part-time employed as a system administrator
22482 and part-time working as an IT consultant. The consultancy work
22483 touches free software topics wherever and whenever possible. During
22484 the nights I am a free software developer. In the gaps I also train in
22485 becoming an osteopath.</p>
22486
22487 <p>Starting in 2010 we (Andreas Buchholz, Angela Fuß, Mike Gabriel)
22488 have set up a free software project in the area of Kiel that aims at
22489 introducing free software into schools. The project's name is
22490 "IT-Zukunft Schule" (IT future for schools). The project links IT
22491 skills with communication skills.</p>
22492
22493 <p><strong>How did you get in contact with the Skolelinux/Debian Edu
22494 project?</strong></p>
22495
22496 <p>While preparing our own customised Linux distribution for
22497 "IT-Zukunft Schule" we were repeatedly asked if we really wanted to
22498 reinvent the wheel. What schools really need is already available,
22499 people said. From this impulse we started evaluating other Linux
22500 distributions that target being used for school networks.</p>
22501
22502 <p>At the end we short-listed two approaches and compared them: a
22503 commercial Linux distribution developed by a company in Bremen,
22504 Germany, and Skolelinux / Debian Edu. Between 12/2010 and 03/2011 we
22505 went to several events and met people being responsible for marketing
22506 and development of either of the distributions. Skolelinux / Debian
22507 Edu was by far much more convincing compared to the other product that
22508 got short-listed beforehand--across the full spectrum. What was most
22509 attractive for me personally: the perspective of collaboration within
22510 the developmental branch of the Debian Edu project itself.</p>
22511
22512 <p>In parallel with this, we talked to many local and not-so-local
22513 people. People teaching at schools, headmasters, politicians, data
22514 protection experts, other IT professionals.</p>
22515
22516 <p>We came to two conclusions:</p>
22517
22518 <p>First, a technical conclusion: What schools need is available in
22519 bits and pieces here and there, and none of the solutions really fit
22520 by 100%. Any school we have seen has a very individual IT setup
22521 whereas most of each school's requirements could mapped by a standard
22522 IT solution. The requirement to this IT solution is flexibility and
22523 customisability, so that individual adaptations here and there are
22524 possible. In terms of re-distributing and rolling out such a
22525 standardised IT system for schools (a system that is still to some
22526 degree customisable) there is still a lot of work to do here
22527 locally. Debian Edu / Skolelinux has been our choice as the starting
22528 point.</p>
22529
22530 <p>Second, a holistic conclusion: What schools need does not exist at
22531 all (or we missed it so far). There are several technical solutions
22532 for handling IT at schools that tend to make a good impression. What
22533 has been missing completely here in Germany, though, is the enrolment
22534 of people into using IT and teaching with IT. "IT-Zukunft Schule"
22535 tries to provide an approach for this.</p>
22536
22537 <p>Only some schools have some sort of a media concept which explains,
22538 defines and gives guidance on how to use IT in class. Most schools in
22539 Northern Germany do not have an IT service provider, the school's IT
22540 equipment is managed by one or (if the school is lucky) two (admin)
22541 teachers, most of the workload these admin teachers get done in there
22542 spare time.</p>
22543
22544 <p>We were surprised that only a very few admin teachers were
22545 networked with colleagues from other schools. Basically, every school
22546 here around has its individual approach of providing IT equipment to
22547 teachers and students and the exchange of ideas has been quasi
22548 non-existent until 2010/2011.</p>
22549
22550 <p>Quite some (non-admin) teachers try to avoid using IT technology in
22551 class as a learning medium completely. Several reasons for this
22552 avoidance do exist.</p>
22553
22554 <p>We discovered that no-one has ever taken a closer look at this
22555 social part of IT management in schools, so far. On our quest journey
22556 for a technical IT solution for schools, we discussed this issue with
22557 several teachers, headmasters, politicians, other IT professionals and
22558 they all confirmed: a holistic approach of considering IT management
22559 at schools, an approach that includes the people in place, will be new
22560 and probably a gain for all.</p>
22561
22562 <p><strong>What do you see as the advantages of Skolelinux/Debian
22563 Edu?</strong></p>
22564
22565 <p>There is a list of advantages: international context, openness to
22566 any kind of contributions, do-ocracy policy, the closeness to Debian,
22567 the different installation scenarios possible (from stand-alone
22568 workstation to complex multi-server sites), the transparency within
22569 project communication, honest communication within the group of
22570 developers, etc.</p>
22571
22572 <p><strong>What do you see as the disadvantages of Skolelinux/Debian
22573 Edu?</strong></p>
22574
22575 <p>Every coin has two sides:</p>
22576
22577 <p>Technically: <a href="http://bugs.debian.org/311188">BTS issue
22578 #311188</a>, tricky upgradability of a Debian Edu main server, network
22579 client installations on top of a plain vanilla Debian installation
22580 should become possible sometime in the near future, one could think
22581 about splitting the very complex package debian-edu-config into
22582 several portions (to make it easier for new developers to
22583 contribute).</p>
22584
22585 <p>Another issue I see is that we (as Debian Edu developers) should
22586 find out more about the network of people who do the marketing for
22587 Debian Edu / Skolelinux. There is a very active group in Germany
22588 promoting Skolelinux on the bigger Linux Days within Germany. Are
22589 there other groups like that in other countries? How can we bring
22590 these marketing people together (marketing group A with group B and
22591 all of them with the group of Debian Edu developers)? During the last
22592 meeting of the German Skolelinux group, I got the impression of people
22593 there being rather disconnected from the development department of
22594 Debian Edu / Skolelinux.</p>
22595
22596 <p><strong>Which free software do you use daily?</strong></p>
22597
22598 <p>For my daily business, I do not use commercial software at all.</p>
22599
22600 <p>For normal stuff I use Iceweasel/Firefox, Libreoffice.org. For
22601 serious text writing I prefer LaTeX. I use gimp, inkscape, scribus for
22602 more artistic tasks. I run virtual machines in KVM and Virtualbox.</p>
22603
22604 <p>I am one of the upstream developers of X2Go. In 2010 I started the
22605 development of a Python based X2Go Client, called PyHoca-GUI.
22606 PyHoca-GUI has brought forth a Python X2Go Client API that currently
22607 is being integrated in Ubuntu's software center.</p>
22608
22609 <p>For communications I have my own Kolab server running using Horde
22610 as web-based groupware client. For IRC I love to use irssi, for Jabber
22611 I have several clients that I use, mostly pidgin, though. I am also
22612 the Debian maintainer of Coccinella, a Jabber-based interactive
22613 whiteboard.</p>
22614
22615 <p>My favourite terminal emulator is KDE's Yakuake.</p>
22616
22617 <p><strong>Which strategy do you believe is the right one to use to
22618 get schools to use free software?</strong></p>
22619
22620 <p>Communicate, communicate, communicate. Enrol people, enrol people,
22621 enrol people.</p>
22622
22623 </div>
22624 <div class="tags">
22625
22626
22627 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>.
22628
22629
22630 </div>
22631 </div>
22632 <div class="padding"></div>
22633
22634 <div class="entry">
22635 <div class="title">
22636 <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>
22637 </div>
22638 <div class="date">
22639 1st June 2012
22640 </div>
22641 <div class="body">
22642 <p>A few years ago I wrote
22643 <a href="http://people.skolelinux.org/pere/blog/Checking_server_hardware_support_status_for_Dell__HP_and_IBM_servers.html">how
22644 to extract support status</a> for your Dell and HP servers. Recently
22645 I have learned from colleges here at the
22646 <a href="http://www.uio.no/">University of Oslo</a> that Dell have
22647 made this even easier, by providing a SOAP based web service. Given
22648 the service tag, one can now query the Dell servers and get machine
22649 readable information about the support status. This perl code
22650 demonstrate how to do it:</p>
22651
22652 <p><pre>
22653 use strict;
22654 use warnings;
22655 use SOAP::Lite;
22656 use Data::Dumper;
22657 my $GUID = '11111111-1111-1111-1111-111111111111';
22658 my $App = 'test';
22659 my $servicetag = $ARGV[0] or die "Please supply a servicetag. $!\n";
22660 my ($deal, $latest, @dates);
22661 my $s = SOAP::Lite
22662 -> uri('http://support.dell.com/WebServices/')
22663 -> on_action( sub { join '', @_ } )
22664 -> proxy('http://xserv.dell.com/services/assetservice.asmx')
22665 ;
22666 my $a = $s->GetAssetInformation(
22667 SOAP::Data->name('guid')->value($GUID)->type(''),
22668 SOAP::Data->name('applicationName')->value($App)->type(''),
22669 SOAP::Data->name('serviceTags')->value($servicetag)->type(''),
22670 );
22671 print Dumper($a -> result) ;
22672 </pre></p>
22673
22674 <p>The output can look like this:</p>
22675
22676 <p><pre>
22677 $VAR1 = {
22678 'Asset' => {
22679 'Entitlements' => {
22680 'EntitlementData' => [
22681 {
22682 'EntitlementType' => 'Expired',
22683 'EndDate' => '2009-07-29T00:00:00',
22684 'Provider' => '',
22685 'StartDate' => '2006-07-29T00:00:00',
22686 'DaysLeft' => '0'
22687 },
22688 {
22689 'EntitlementType' => 'Expired',
22690 'EndDate' => '2009-07-29T00:00:00',
22691 'Provider' => '',
22692 'StartDate' => '2006-07-29T00:00:00',
22693 'DaysLeft' => '0'
22694 },
22695 {
22696 'EntitlementType' => 'Expired',
22697 'EndDate' => '2007-07-29T00:00:00',
22698 'Provider' => '',
22699 'StartDate' => '2006-07-29T00:00:00',
22700 'DaysLeft' => '0'
22701 }
22702 ]
22703 },
22704 'AssetHeaderData' => {
22705 'SystemModel' => 'GX620',
22706 'ServiceTag' => '8DSGD2J',
22707 'SystemShipDate' => '2006-07-29T19:00:00-05:00',
22708 'Buid' => '2323',
22709 'Region' => 'Europe',
22710 'SystemID' => 'PLX_GX620',
22711 'SystemType' => 'OptiPlex'
22712 }
22713 }
22714 };
22715 </pre></p>
22716
22717 <p>I have not been able to find any documentation from Dell about this
22718 service outside the
22719 <a href="http://xserv.dell.com/services/assetservice.asmx?op=GetAssetInformation">inline
22720 documentation</a>, and according to
22721 <a href="http://iboyd.net/index.php/2012/02/14/updated-dell-warranty-information-script/">one
22722 comment</a> it can have stability issues, but it is a lot better than
22723 scraping HTML pages. :)</p>
22724
22725 <p>Wonder if HP and other server vendors have a similar service. If
22726 you know of one, drop me an email. :)</p>
22727
22728 </div>
22729 <div class="tags">
22730
22731
22732 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>.
22733
22734
22735 </div>
22736 </div>
22737 <div class="padding"></div>
22738
22739 <div class="entry">
22740 <div class="title">
22741 <a href="http://people.skolelinux.org/pere/blog/First_monitor_calibration_using_ColorHug.html">First monitor calibration using ColorHug</a>
22742 </div>
22743 <div class="date">
22744 31st May 2012
22745 </div>
22746 <div class="body">
22747 <p>A few days ago my color calibration gadget
22748 <a href="http://www.hughski.com/index.html">ColorHug</a> arrived in the
22749 mail, and I've had a few days to test it. As all my machines are
22750 running Debian Squeeze, where
22751 <a href="http://packages.qa.debian.org/c/colorhug-client.html">the
22752 calibration software</a> is missing (it is present in Wheezy and Sid),
22753 I ran the calibration using the Fedora based live CD. This worked
22754 just fine. So far I have only done the quick calibration. It was
22755 slow enough for me, so I will leave the more extensive calibration for
22756 another day.</p>
22757
22758 <p>After calibration, I get a
22759 <a href="http://en.wikipedia.org/wiki/ICC_profile">ICC color
22760 profile</a> file that can be passed to programs understanding such
22761 tools. KDE do not seem to understand it out of the box, so I searched
22762 for command line tools to use to load the color profile into X.
22763 xcalib was the first one I found, and it seem to work fine for single
22764 monitor setups. But for my video player, a laptop with a flat screen
22765 attached, it was unable to load the color profile for the correct
22766 monitor. After searching a bit, I
22767 <a href="http://ubuntuforums.org/showthread.php?t=1347896">discovered</a>
22768 that the dispwin tool from the argyll package would do what I wanted,
22769 and a simple</p>
22770
22771 <p><pre>
22772 dispwin -d 1 profile.icc
22773 </pre></p>
22774
22775 <p>later I had the color profile loaded for the correct monitor. The
22776 result was a bit more pink than I expected. I guess I picked the
22777 wrong monitor type for the "led" monitor I got, but the result is good
22778 enough for now.</p>
22779
22780 </div>
22781 <div class="tags">
22782
22783
22784 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
22785
22786
22787 </div>
22788 </div>
22789 <div class="padding"></div>
22790
22791 <div class="entry">
22792 <div class="title">
22793 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Ralf_Gesellensetter.html">Debian Edu interview: Ralf Gesellensetter</a>
22794 </div>
22795 <div class="date">
22796 27th May 2012
22797 </div>
22798 <div class="body">
22799 <p>In 2003, a German teacher showed up on the
22800 <a href="http://www.skolelinux.org/">Debian Edu and Skolelinux</a>
22801 mailing list with interesting problems and reports proving he setting
22802 up Linux for a (for us at the time) lot of pupils. His name was Ralf
22803 Gesellensetter, and he has been an important tester and contributor
22804 since then, helping to make sure the
22805 <a href="http://www.debian.org/News/2012/20120311.html">Debian Edu
22806 Squeeze</a> release became as good as it is..</p>
22807
22808 <p><strong>Who are you, and how do you spend your days?</strong></p>
22809
22810 <p>I am a teacher from Germany, and my subjects are Geography,
22811 Mathematics, and Computer Science ("Informatik"). During the past 12
22812 years (since 2000), I have been working for a comprehensive (and soon,
22813 also inclusive) school leading to all kind of general levels, such as
22814 O- or A-level ("Abitur"). For quite as long, I've been taking care of
22815 our computer network.</p>
22816
22817 <p>Now, in my early 40s, I enjoy the privilege of spending a lot of my
22818 spare time together with my wife, our son (3 years) and our daughter
22819 (4 months).</p>
22820
22821 <p><strong>How did you get in contact with the Skolelinux/Debian Edu
22822 project?</strong></p>
22823
22824 <p>We had tried different Linux based school servers, when members of
22825 my local Linux User Group (LUG OWL) detected Skolelinux. I remember
22826 very well, being part of a party celebrating the Linux New Media Award
22827 ("Best Newcomer Distribution", also nominated: Ubuntu) that was given
22828 to Skolelinux at Linux World Exposition in Frankfurt, 2005 (IIRC). Few
22829 months later, I had the chance to join a developer meeting in Ulsrud
22830 (Oslo) and to hand out the award to Knut Yrvin and others. For more
22831 than 7 years, Skolelinux is part of our schools infrastructure, namely
22832 our main server (tjener), one LTSP (today without thin clients), and
22833 approximately 50 work stations. Most of these have the option to boot a
22834 locally installed Skolelinux image. As a consequence, I joined quite
22835 a few events dealing with free software or Linux, and met many Debian
22836 (Edu) developers. All of them seemed quite nice and competent to me,
22837 one more reason to stick to Skolelinux.</p>
22838
22839 <p><strong>What do you see as the advantages of Skolelinux/Debian
22840 Edu?</strong></p>
22841
22842 <p>Debian driven, you are given all the advantages of a community
22843 project including well maintained updates. Once, you are familiar with
22844 the network layout, you can easily roll out an entire educational
22845 computer infrastructure, from just one installation media. As only
22846 free software (FOSS) is used, that supports even elderly hardware,
22847 up-sizing your IT equipment is only limited by space (i.e. available
22848 labs). Especially if you run a LTSP thin client server, your
22849 administration costs tend towards zero.</p>
22850
22851 <p><strong>What do you see as the disadvantages of Skolelinux/Debian
22852 Edu?</strong></p>
22853
22854 <p>While Debian's stability has loads of advantages for servers, this
22855 might be different in some cases for clients: Schools with unlimited
22856 budget might buy new hardware with components that are not yet
22857 supported by Debian stable, or wish to use more recent versions of
22858 office packages or desktop environments. These schools have the
22859 option to run Debian testing or other distributions - if they have the
22860 capacity to do so. Another issue is that Debian release cycles
22861 include a wide range of changes; therefor a high percentage of human
22862 power seems to be absorbed by just keeping the features of Skolelinux
22863 within the new setting of the version to come. During this process,
22864 the cogs of Debian Edu are getting more and more professional,
22865 i.e. harder to understand for novices.</p>
22866
22867 <p><strong>Which free software do you use daily?</strong></p>
22868
22869 <p>LibreOffice, Wikipedia, Openstreetmap, Iceweasel (Mozilla Firefox),
22870 KMail, Gimp, Inkscape - and of course the Linux Kernel (not only on
22871 PC, Laptop, Mobile, but also our SAT receiver)</p>
22872
22873 <p><strong>Which strategy do you believe is the right one to use to
22874 get schools to use free software?</strong></p>
22875
22876 <p><ol>
22877
22878 <li>Support computer science as regular subject in schools to make
22879 people really "own" their hardware, to make them understand the
22880 difference between proprietary software products, and free software
22881 developing.</li>
22882
22883 <li>Make budget baskets corresponding: In Germany's public schools
22884 there are more or less fixed budgets for IT equipment (including
22885 licenses), so schools won't benefit from any savings here. This
22886 privilege is left to private schools which have consequently a large
22887 share among German Skolelinux schools.</li>
22888
22889 <li>Get free software in the seminars where would-be teachers are
22890 trained. In many cases, teachers' software customs are respected by
22891 decision makers rather than the expertise of any IT experts.</li>
22892
22893 <li>Don't limit ourself to free software run natively. Everybody uses
22894 free software or free licenses (for instance Wikipedia), and this
22895 general concept should get expanded to free educational content to be
22896 shared world wide (school books e.g.).</li>
22897
22898 <li>Make clear where ever you can that the market share of free (libre)
22899 office suites is much above 20 p.c. today, and that you pupils don't
22900 need to know the "ribbon menu" in order to get employed.</li>
22901
22902 <li>Talk about the difference between freeware and free software.</li>
22903
22904 <li>Spread free software, or even collections of portable free apps
22905 for USB pen drives. Endorse students to get a legal copy of
22906 Libreoffice rather than accepting them to use illegal serials. And
22907 keep sending documents in ODF formats.</li>
22908
22909 </ol></p>
22910
22911 </div>
22912 <div class="tags">
22913
22914
22915 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>.
22916
22917
22918 </div>
22919 </div>
22920 <div class="padding"></div>
22921
22922 <div class="entry">
22923 <div class="title">
22924 <a href="http://people.skolelinux.org/pere/blog/The_cost_of_ODF_and_OOXML.html">The cost of ODF and OOXML</a>
22925 </div>
22926 <div class="date">
22927 26th May 2012
22928 </div>
22929 <div class="body">
22930 <p>I just come across a blog post from Glyn Moody reporting the
22931 claimed cost from Microsoft on requiring ODF to be used by the UK
22932 government. I just sent him an email to let him know that his
22933 assumption are most likely wrong. Sharing it here in case some of my
22934 blog readers have seem the same numbers float around in the UK.</p>
22935
22936 <p><blockquote> <p>Hi. I just noted your
22937 <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>
22938 comment:</p>
22939
22940 <p><blockquote>"They're all in Danish, not unreasonably, but even
22941 with the help of Google Translate I can't find any figures about the
22942 savings of "moving to a flexible two standard" as claimed by the
22943 Microsoft email. But I assume it is backed up somewhere, so let's take
22944 it, and the £500 million figure for the UK, on trust."
22945 </blockquote></p>
22946
22947 <p>I can tell you that the Danish reports are inflated. I believe it is
22948 the same reports that were used in the Norwegian debate around 2007,
22949 and Gisle Hannemyr (a well known IT commentator in Norway) had a look
22950 at the content. In short, the reason it is claimed that using ODF
22951 will be so costly, is based on the assumption that this mean every
22952 existing document need to be converted from one of the MS Office
22953 formats to ODF, transferred to the receiver, and converted back from
22954 ODF to one of the MS Office formats, and that the conversion will cost
22955 10 minutes of work time for both the sender and the receiver. In
22956 reality the sender would have a tool capable of saving to ODF, and the
22957 receiver would have a tool capable of reading it, and the time spent
22958 would at most be a few seconds for saving and loading, not 20 minutes
22959 of wasted effort.</p>
22960
22961 <p>Microsoft claimed all these costs were saved by allowing people to
22962 transfer the original files from MS Office instead of spending 10
22963 minutes converting to ODF. :)</p>
22964
22965 <p>See
22966 <a href="http://hannemyr.com/no/ms12_vl02.php">http://hannemyr.com/no/ms12_vl02.php</a>
22967 and
22968 <a href="http://hannemyr.com/no/ms12.php">http://hannemyr.com/no/ms12.php</a>
22969 for background information. Norwegian only, sorry. :)</p>
22970 </blockquote></p>
22971
22972 </div>
22973 <div class="tags">
22974
22975
22976 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>.
22977
22978
22979 </div>
22980 </div>
22981 <div class="padding"></div>
22982
22983 <div class="entry">
22984 <div class="title">
22985 <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>
22986 </div>
22987 <div class="date">
22988 18th May 2012
22989 </div>
22990 <div class="body">
22991 <p>In january, I
22992 <a href="http://blog.cihar.com/archives/2012/01/17/colorhug-has-arrived/">discovered
22993 the ColorHug</a>, a USB dongle from
22994 <a href="http://www.hughski.com/index.html">Hughski</a> to calibrate
22995 the color on a computer screen. The software required is
22996 <a href="http://packages.qa.debian.org/c/colorhug-client.html">included
22997 in Debian</a>, and I decided back then to preorder from the next
22998 batch. Yesterday I finally heard back from them, and got the
22999 opportunity to order. Today I ordered mine, and eagerly await the
23000 delivery. I hope it arrive next week, as I got a confirmation that it
23001 should go in the mail on monday. :)</p>
23002
23003 <p>If you want to ensure the colors on the screen match the intended
23004 colors, I suggest you check out this cheap tool with free software
23005 drivers. :)</p>
23006
23007 </div>
23008 <div class="tags">
23009
23010
23011 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
23012
23013
23014 </div>
23015 </div>
23016 <div class="padding"></div>
23017
23018 <div class="entry">
23019 <div class="title">
23020 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__J_rgen_Leibner.html">Debian Edu interview: Jürgen Leibner</a>
23021 </div>
23022 <div class="date">
23023 13th May 2012
23024 </div>
23025 <div class="body">
23026 <p>It has been a few busy weeks for me, but I am finally back to
23027 publish another interview with the people behind
23028 <a href="http://www.skolelinux.org/">Debian Edu and Skolelinux</a>.
23029 This time it is one of our German developers, who have helped out over the
23030 years to make sure both a lot of major but also a lot of the minor
23031 details get right before release.
23032
23033 <p><strong>Who are you, and how do you spend your days?</strong></p>
23034
23035 <p>My name is Jürgen Leibner, I'm 49 years old and living in
23036 Bielefeld, a town in northern Germany. I worked nearly 20 years as
23037 certified engineer in the department for plant design and layout of an
23038 international company for machinery and equipment. Since 2011 I'm a
23039 certified technical writer (tekom e.V.) and doing technical
23040 documentations for a steam turbine manufacturer. From April this year
23041 I will manage the department of technical documentation at a
23042 manufacturer of automation and assembly line engineering.</p>
23043
23044 <p>My first contact with linux was around 1993. Since that time I used
23045 it at work and at home repeatedly but not exclusively as I do now at
23046 home since 2006.</p>
23047
23048 <p><strong>How did you get in contact with the Skolelinux/Debian Edu
23049 project?</strong></p>
23050
23051 <p>Once a day in the early year of 2001 when I wanted to fetch my
23052 daughter from primary school, there was a teacher sitting in the
23053 middle of 20 old computers trying to boot them and he failed. I helped
23054 him to get them booting. That was seen by the school director and she
23055 asked me if I would like to manage that the school gets all that old
23056 computers in use. I answered: "Yes".</p>
23057
23058 <p>Some weeks later every of the 10 classrooms had one computer
23059 running Windows98. I began to collect old computers and equipment as
23060 gifts and installed the first computer room with a peer-to-peer
23061 network. I did my work at school without being payed in my spare time
23062 and with a lot of fun. About one year later the school was connected
23063 to Internet and a local area network was installed in the school
23064 building. That was the time to have a server and I knew it must be a
23065 Linux server to be able to fulfil all the wishes of the teachers and
23066 being able to do this in a transparent and economic way, without extra
23067 costs for things like licence and software. So I searched for a
23068 school server system running under Linux and I found a couple of
23069 people nearby who founded 'skolelinux.de'. It was the Skolelinux
23070 prerelease 32 I first tried out for being used at the school. I
23071 managed the IT of that school until the municipal authority took over
23072 the IT management and centralised the services for all schools in
23073 Bielefeld in December of 2006.</p>
23074
23075 <p><strong>What do you see as the advantages of Skolelinux/Debian
23076 Edu?</strong></p>
23077
23078 <p>When I'm looking back to the beginning, there were other advantages
23079 for me as today.</p>
23080
23081 <p>In the past there were advantages like:</p>
23082
23083 <p><ul>
23084
23085 <li>I don't need to buy it so it generates no costs to the school as
23086 they had little money to spent for computers and software.</li>
23087
23088 <li>It has a licence which grands all rights to use it without
23089 cost.</li>
23090
23091 <li>It was more able to fit all requirements of a server system for
23092 schools than a Microsoft server system, even if there are only Windows
23093 clients because of it's preconfigured overall concept of being a
23094 infrastructure solution and community for schools, not only a
23095 server</li>
23096
23097 <li>I was able to configure the server to the needs of the
23098 school.</li>
23099
23100 </ul></p>
23101
23102 <p>Today some of the advantages has been lost, changed or new ones
23103 came up in this way:</p>
23104
23105 <p><ul>
23106
23107 <li>Most schools here do have money to buy hardware and software
23108 now.</li>
23109
23110 <li>They are today mostly managed from central IT departments which
23111 have own concepts which often do not fit to Debian Edu concepts
23112 because they are to close to Microsoft ideology.</li>
23113
23114 <li>With the Squeeze version of Debian Edu which now uses GOsa² for
23115 management I feel more able to manage the daily tasks than with the
23116 interfaces used in the past.</li>
23117
23118 <li>It is more modular than in the past and fits even better to the
23119 different needs.</li>
23120
23121 <li>The documentation is usable and gets better every day.</li>
23122
23123 <li>More people than ever before are using Debian Edu all over the
23124 world and so the community, which is an very important part I think,
23125 is sharing knowledge and minds.</li>
23126
23127 <li>Most, maybe all, of the technical requirements for schools are
23128 solved today by Debian Edu. </li>
23129
23130 </ul></p>
23131
23132 <p><strong>What do you see as the disadvantages of Skolelinux/Debian
23133 Edu?</strong></p>
23134
23135 <p><ul>
23136
23137 <li>There are too few IT companies able to integrate Debian Edu into
23138 their product portfolio for serving schools with concepts or even
23139 whole municipality areas.</li>
23140
23141 <li>Debian Edu has beside other free and open software projects not
23142 enough lobbyists which promote free and open software to
23143 politicians.</li>
23144
23145 <li>Technically there are no disadvantages I'm aware of.</li>
23146
23147 </ul></p>
23148
23149 <p><strong>Which free software do you use daily?</strong></p>
23150
23151 <p>I use Debian stable on my home server and on my little desktop
23152 computer. On my laptop I use Debian testing/sid. The applications I
23153 use on my laptop and my desktop are Open/Libre-office, Iceweasel,
23154 KMail, DigiKam, Amarok, Dolphin, okular and all the other programs I
23155 need from the KDE environment. On console I use newsbeuter, mutt,
23156 screen, irssi and all the other famous and useful tools.</p>
23157
23158 <p>My home server provides mail services with exim, dovecot, roundcube
23159 and mutt over ssh on the console, file services with samba, NFS,
23160 rsync, web services with apache, moinmoin-wiki, multimedia services
23161 with gallery2 and mediatomb and database services with MySQL for me
23162 and the whole family. I probably forgot something.</p>
23163
23164 <p><strong>Which strategy do you believe is the right one to use to
23165 get schools to use free software?</strong></p>
23166
23167 <p>I believe, we should provide concepts for IT companies to integrate
23168 Debian Edu into their product portfolio with use cases for different
23169 countries and areas all over the world.</p>
23170
23171 </div>
23172 <div class="tags">
23173
23174
23175 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>.
23176
23177
23178 </div>
23179 </div>
23180 <div class="padding"></div>
23181
23182 <div class="entry">
23183 <div class="title">
23184 <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>
23185 </div>
23186 <div class="date">
23187 30th April 2012
23188 </div>
23189 <div class="body">
23190 <p><!-- IMG_5869.JPG -->
23191 <img src="http://people.skolelinux.org/pere/blog/images/panasonic-er-1611.jpeg"></p>
23192
23193 <p>I normally cut my hair short, and my tool of choice has been a
23194 common hair/beard cutter, bought in a electrical shop here in Norway.
23195 But the last ones have not really been up to the task. My last
23196 cutter, some model from Braun, could only cut a few of my hairs at the
23197 time, and cutting my head took forever. And the one before that did
23198 not work very well either. We have looked for something better for a
23199 while, but it was not until I ended up visiting a hairdresser that we
23200 discovered that there are indeed better tools available. But these
23201 are not marketed and sold to "regular consumers". The hair saloons
23202 can get them through their suppliers, but their suppliers only sell
23203 companies. The models they sell, are very different from the ones
23204 available from Elkjøp and Lefdal. The main difference is their
23205 efficiency. It would cut my hair in 5 minutes, instead of the 30-40
23206 minutes required by my impotent Braun. The hairdresser I visited had
23207 a Panasonic ER160, which unfortunately is no longer available from the
23208 producer. But I found it had a successor, the Panasonic ER1611.</p>
23209
23210 <p>The next step was to find somewhere to buy it. This was not
23211 straight forward. The list of suppliers I got from the hairdresser
23212 did not want to sell anything to me. But searching for the model on
23213 the web we found a supplier in Norway willing to sell it to us for
23214 around NOK 4000,-. This was a bit much. We kept searching and
23215 finally found a Danish supplier
23216 <a href="http://nicehair.dk/panasonic-er-1611-professionel-hartrimmer.html">selling
23217 it for around NOK 1800,-</a>. We ordered one, and it arrived a few
23218 days ago.</p>
23219
23220 <p>The instructions said it had to charge for 8 hours when we started
23221 to use it, so we left it charging over night. Normally it will only
23222 need one hour to charge. The following evening we successfully tested
23223 it, and I can warmly recommend it to anyone looking for a real hair
23224 cutter. The ones we have used until now have been hair cutter
23225 toys.</p>
23226
23227 </div>
23228 <div class="tags">
23229
23230
23231 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
23232
23233
23234 </div>
23235 </div>
23236 <div class="padding"></div>
23237
23238 <div class="entry">
23239 <div class="title">
23240 <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>
23241 </div>
23242 <div class="date">
23243 26th April 2012
23244 </div>
23245 <div class="body">
23246 <p>In <a href="http://www.idg.no/computerworld/article243690.ece">an
23247 article today</a> published by Computerworld Norway, the photographer
23248 <a href="http://www.urke.com/eirik/">Eirik Helland Urke</a> reports
23249 that the video editor application included with
23250 <a href="http://www.htc.com/www/smartphones/htc-one-x/#specs">HTC One
23251 X</a> have some quite surprising terms of use. The article is mostly
23252 based on the twitter message from mister Urke, stating:
23253
23254 <p><blockquote>
23255 "<a href="http://twitter.com/urke/status/194062269724897280">Drøy
23256 brukeravtale: HTC kan bruke MINE redigerte videoer kommersielt. Selv
23257 kan jeg KUN bruke dem privat.</a>"
23258 </blockquote></p>
23259
23260 <p>I quickly translated it to this English message:</p>
23261
23262 <p><blockquote>
23263 "Arrogant user agreement: HTC can use MY edited videos
23264 commercially. Although I can ONLY use them privately."
23265 </blockquote></p>
23266
23267 <p>I've been unable to find the text of the license term myself, but
23268 suspect it is a variation of the MPEG-LA terms I
23269 <a href="http://people.skolelinux.org/pere/blog/Terms_of_use_for_video_produced_by_a_Canon_IXUS_130_digital_camera.html">discovered
23270 with my Canon IXUS 130</a>. The HTC One X specification specifies that
23271 the recording format of the phone is .amr for audio and .mp3 for
23272 video. AMR is
23273 <a href="http://en.wikipedia.org/wiki/Adaptive_Multi-Rate_audio_codec#Licensing_and_patent_issues">Adaptive
23274 Multi-Rate audio codec</a> with patents which according to the
23275 Wikipedia article require an license agreement with
23276 <a href="http://www.voiceage.com/">VoiceAge</a>. MP4 is
23277 <a href="http://en.wikipedia.org/wiki/H.264/MPEG-4_AVC#Patent_licensing">MPEG4 with
23278 H.264</a>, which according to Wikipedia require a licence agreement
23279 with <a href="http://www.mpegla.com/">MPEG-LA</a>.</p>
23280
23281 <p>I know why I prefer
23282 <a href="http://www.digistan.org/open-standard:definition">free and open
23283 standards</a> also for video.</p>
23284
23285 </div>
23286 <div class="tags">
23287
23288
23289 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/h264">h264</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</a>.
23290
23291
23292 </div>
23293 </div>
23294 <div class="padding"></div>
23295
23296 <div class="entry">
23297 <div class="title">
23298 <a href="http://people.skolelinux.org/pere/blog/RAND_terms___non_reasonable_and_discriminatory.html">RAND terms - non-reasonable and discriminatory</a>
23299 </div>
23300 <div class="date">
23301 19th April 2012
23302 </div>
23303 <div class="body">
23304 <p>Here in Norway, the
23305 <a href="http://www.regjeringen.no/nb/dep/fad.html?id=339"> Ministry of
23306 Government Administration, Reform and Church Affairs</a> is behind
23307 a <a href="http://standard.difi.no/forvaltningsstandarder">directory of
23308 standards</a> that are recommended or mandatory for use by the
23309 government. When the directory was created, the people behind it made
23310 an effort to ensure that everyone would be able to implement the
23311 standards and compete on equal terms to supply software and solutions
23312 to the government. Free software and non-free software could compete
23313 on the same level.</p>
23314
23315 <p>But recently, some standards with RAND
23316 (<a href="http://en.wikipedia.org/wiki/Reasonable_and_non-discriminatory_licensing">Reasonable
23317 And Non-Discriminatory</a>) terms have made their way into the
23318 directory. And while this might not sound too bad, the fact is that
23319 standard specifications with RAND terms often block free software from
23320 implementing them. The reasonable part of RAND mean that the cost per
23321 user/unit is low,and the non-discriminatory part mean that everyone
23322 willing to pay will get a license. Both sound great in theory. In
23323 practice, to get such license one need to be able to count users, and
23324 be able to pay a small amount of money per unit or user. By
23325 definition, users of free software do not need to register their use.
23326 So counting users or units is not possible for free software projects.
23327 And given that people will use the software without handing any money
23328 to the author, it is not really economically possible for a free
23329 software author to pay a small amount of money to license the rights
23330 to implement a standard when the income available is zero. The result
23331 in these situations is that free software are locked out from
23332 implementing standards with RAND terms.</p>
23333
23334 <p>Because of this, when I see someone claiming the terms of a
23335 standard is reasonable and non-discriminatory, all I can think of is
23336 how this really is non-reasonable and discriminatory. Because free
23337 software developers are working in a global market, it does not really
23338 help to know that software patents are not supposed to be enforceable
23339 in Norway. The patent regimes in other countries affect us even here.
23340 I really hope the people behind the standard directory will pay more
23341 attention to these issues in the future.</p>
23342
23343 <p>You can find more on the issues with RAND, FRAND and RAND-Z terms
23344 from Simon Phipps
23345 (<a href="http://blogs.computerworlduk.com/simon-says/2010/11/rand-not-so-reasonable/">RAND:
23346 Not So Reasonable?</a>).</p>
23347
23348 <p>Update 2012-04-21: Just came across a
23349 <a href="http://blogs.computerworlduk.com/open-enterprise/2012/04/of-microsoft-netscape-patents-and-open-standards/index.htm">blog
23350 post from Glyn Moody</a> over at Computer World UK warning about the
23351 same issue, and urging people to speak out to the UK government. I
23352 can only urge Norwegian users to do the same for
23353 <a href="http://www.standard.difi.no/hoyring/hoyring-om-nye-anbefalte-it-standarder">the
23354 hearing taking place at the moment</a> (respond before 2012-04-27).
23355 It proposes to require video conferencing standards including
23356 specifications with RAND terms.</p>
23357
23358 </div>
23359 <div class="tags">
23360
23361
23362 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>.
23363
23364
23365 </div>
23366 </div>
23367 <div class="padding"></div>
23368
23369 <div class="entry">
23370 <div class="title">
23371 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Andreas_Mundt.html">Debian Edu interview: Andreas Mundt</a>
23372 </div>
23373 <div class="date">
23374 15th April 2012
23375 </div>
23376 <div class="body">
23377 <p>Behind <a href="http://www.skolelinux.org/">Debian Edu and
23378 Skolelinux</a> there are a lot of people doing the hard work of
23379 setting together all the pieces. This time I present to you Andreas
23380 Mundt, who have been part of the technical development team several
23381 years. He was also a key contributor in getting GOsa and Kerberos set
23382 up in the recently released
23383 <a href="http://wiki.debian.org/DebianEdu/Documentation/Squeeze">Debian
23384 Edu Squeeze</a> version.</p>
23385
23386 <p><strong>Who are you, and how do you spend your days?</strong></p>
23387
23388 <p>My name is Andreas Mundt, I grew up in south Germany. After
23389 studying Physics I spent several years at university doing research in
23390 Quantum Optics. After that I worked some years in an optics company.
23391 Finally I decided to turn over a new leaf in my life and started
23392 teaching 10 to 19 years old kids at school. I teach math, physics,
23393 information technology and science/technology.</p>
23394
23395 <p><strong>How did you get in contact with the Skolelinux/Debian Edu
23396 project?</strong></p>
23397
23398 <p>Already before I switched to teaching, I followed the Debian Edu
23399 project because of my interest in education and Debian. Within the
23400 qualification/training period for the teaching, I started
23401 contributing.</p>
23402
23403 <p><strong>What do you see as the advantages of Skolelinux/Debian
23404 Edu?</strong></p>
23405
23406 <p>The advantages of Debian Edu are the well known name, the
23407 out-of-the-box philosophy and of course the great free software of the
23408 Debian Project!</p>
23409
23410 <p><strong>What do you see as the disadvantages of Skolelinux/Debian
23411 Edu?</strong></p>
23412
23413 <p>As every coin has two sides, the out-of-the-box philosophy has its
23414 downside, too. In my opinion, it is hard to modify and tweak the
23415 setup, if you need or want that. Further more, it is not easily
23416 possible to upgrade the system to a new release. It takes much too
23417 long after a Debian release to prepare the -Edu release, perhaps
23418 because the number of developers working on the core of the code is
23419 rather small and often busy elsewhere.</p>
23420
23421 <p>The <a href="http://wiki.debian.org/DebianLAN">Debian LAN</a>
23422 project might fill the use case of a more flexible system.</p>
23423
23424 <p><strong>Which free software do you use daily?</strong></p>
23425
23426 <p>I am only using non-free software if I am forced to and run Debian
23427 on all my machines. For documents I prefer LaTeX and PGF/TikZ, then
23428 mutt and iceweasel for email respectively web browsing. At school I
23429 have Arduino and Fritzing in use for a micro controller project.</p>
23430
23431 <p><strong>Which strategy do you believe is the right one to use to
23432 get schools to use free software?</strong></p>
23433
23434 <p>One of the major problems is the vendor lock-in from top to bottom:
23435 Especially in combination with ignorant government employees and
23436 politicians, this works out great for the "market-leader". The school
23437 administration here in Baden-Wuerttemberg is occupied by that vendor.
23438 Documents have to be prepared in non-free, proprietary formats. Even
23439 free browsers do not work for the school administration. Publishers
23440 of school books provide software only for proprietary platforms.</p>
23441
23442 <p>To change this, political work is very important. Parts of the
23443 political spectrum have become aware of the problem in the last years.
23444 However it takes quite some time and courageous politicians to 'free'
23445 the system. There is currently some discussion about "Open Data" and
23446 "Free/Open Standards". I am not sure if all the involved parties have
23447 a clue about the potential of these ideas, and probably only a
23448 fraction takes them seriously. However it might slowly make free
23449 software and the philosophy behind it more known and popular.</p>
23450
23451 </div>
23452 <div class="tags">
23453
23454
23455 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>.
23456
23457
23458 </div>
23459 </div>
23460 <div class="padding"></div>
23461
23462 <div class="entry">
23463 <div class="title">
23464 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Justin_B__Rye.html">Debian Edu interview: Justin B. Rye</a>
23465 </div>
23466 <div class="date">
23467 8th April 2012
23468 </div>
23469 <div class="body">
23470 <p>It take all kind of contributions to create a Linux distribution
23471 like <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a>,
23472 and this time I lend the ear to Justin B. Rye, who is listed as a big
23473 contributor to the
23474 <a href="http://wiki.debian.org/DebianEdu/Documentation/Squeeze">Debian
23475 Edu Squeeze release manual</a>.
23476
23477 <p><strong>Who are you, and how do you spend your days?</strong></p>
23478
23479 <p>I'm a 44-year-old linguistics graduate living in Edinburgh who has
23480 occasionally been employed as a sysadmin.</p>
23481
23482 <p><strong>How did you get in contact with the Skolelinux/Debian Edu
23483 project?</strong></p>
23484
23485 <p>I'm neither a developer nor a Skolelinux/Debian Edu user! The only
23486 reason my name's in the credits for the documentation is that I hang
23487 around on debian-l10n-english waiting for people to mention things
23488 they'd like a native English speaker to proofread... So I did a sweep
23489 through the wiki for typos and Norglish and inconsistent spellings of
23490 "localisation".</p>
23491
23492 <p><strong>What do you see as the advantages of Skolelinux/Debian
23493 Edu?</strong></p>
23494
23495 <p><strong>What do you see as the disadvantages of Skolelinux/Debian
23496 Edu?</strong></p>
23497
23498 <p>These questions are too hard for me - I don't use it! In fact I
23499 had hardly any contact with I.T. until long after I'd got out of the
23500 education system.</p>
23501
23502 <p>I can tell you the advantages of Debian for me though: it soaks up
23503 as much of my free time as I want and no more, and lets me do
23504 everything I want a computer for without ever forcing me to spend
23505 money on the latest hardware.</p>
23506
23507 <p><strong>Which free software do you use daily?</strong></p>
23508
23509 <p>I've been using Debian since Rex; popularity-contest says the
23510 software that I use most is xinit, xterm, and xulrunner (in other
23511 words, I use a distinctly retro sort of desktop).</p>
23512
23513 <p><strong>Which strategy do you believe is the right one to use to
23514 get schools to use free software?</strong></p>
23515
23516 <p>Well, I don't know. I suppose I'd be inclined to try reasoning
23517 with the people who make the decisions, but obviously if that worked
23518 you would hardly need a strategy.</p>
23519
23520 </div>
23521 <div class="tags">
23522
23523
23524 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>.
23525
23526
23527 </div>
23528 </div>
23529 <div class="padding"></div>
23530
23531 <div class="entry">
23532 <div class="title">
23533 <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>
23534 </div>
23535 <div class="date">
23536 6th April 2012
23537 </div>
23538 <div class="body">
23539 <p>Recently I have spent time with
23540 <a href="http://www.slxdrift.no/">Skolelinux Drift AS</a> on speeding
23541 up a <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a>
23542 Lenny installation using LTSP diskless workstations, and in the
23543 process I discovered something very surprising. The reason the KDE
23544 menu was responding slow when using it for the first time, was mostly
23545 due to the way KDE find application icons. I discovered that showing
23546 the Multimedia menu would cause more than 20 000 IP packages to be
23547 passed between the LTSP client and the NFS server. Most of these were
23548
23549 NFS LOOKUP calls, resulting in a NFS3ERR_NOENT response. Because the
23550 ping times between the client and the server were in the range 2-20
23551 ms, the menus would be very slow. Looking at the strace of kicker in
23552 Lenny (or plasma-desktop i Squeeze - same problem there), I see that
23553 the source of these NFS calls are access(2) system calls for
23554 non-existing files. KDE can do hundreds of access(2) calls to find
23555 one icon file. In my example, just finding the mplayer icon required
23556 around 230 access(2) calls.</p>
23557
23558 <p>The KDE code seem to search for icons using a list of icon
23559 directories, and the list of possible directories is large. In
23560 (almost) each directory, it look for files ending in .png, .svgz, .svg
23561 and .xpm. The result is a very slow KDE menu when /usr/ is NFS
23562 mounted. Showing a single sub menu may result in thousands of NFS
23563 requests. I am not the first one to discover this. I found a
23564 <a href="https://bugs.kde.org/show_bug.cgi?id=211416">KDE bug report
23565 from 2009</a> about this problem, and it is still unsolved.</p>
23566
23567 <p>My solution to speed up the KDE menu was to create a package
23568 kde-icon-cache that upon installation will look at all .desktop files
23569 used to generate the KDE menu, find their icons, search the icon paths
23570 for the file that KDE will end up finding at run time, and copying the
23571 icon file to /var/lib/kde-icon-cache/. Finally, I add symlinks to
23572 these icon files in one of the first directories where KDE will look
23573 for them. This cut down the number of file accesses required to find
23574 one icon from several hundred to less than 5, and make the KDE menu
23575 almost instantaneous. I'm not quite sure where to make the package
23576 publicly available, so for now it is only available on request.</p>
23577
23578 <p>The bug report mention that this do not only affect the KDE menu
23579 and icon handling, but also the login process. Not quite sure how to
23580 speed up that part without replacing NFS with for example NBD, and
23581 that is not really an option at the moment.</p>
23582
23583 <p>If you got feedback on this issue, please let us know on debian-edu
23584 (at) lists.debian.org.</p>
23585
23586 <p>Update 2015-08-04: The
23587 <a href="http://anonscm.debian.org/cgit/debian-edu/upstream/kde-icon-cache.git/">source
23588 of the scripts and associated Debian package</a> is available from the
23589 Debian Edu github repository.</p>
23590
23591 </div>
23592 <div class="tags">
23593
23594
23595 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>.
23596
23597
23598 </div>
23599 </div>
23600 <div class="padding"></div>
23601
23602 <div class="entry">
23603 <div class="title">
23604 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_in_the_Linux_Weekly_News.html">Debian Edu in the Linux Weekly News</a>
23605 </div>
23606 <div class="date">
23607 5th April 2012
23608 </div>
23609 <div class="body">
23610 <p>About two weeks ago, I was interviewed via email about
23611 <a href="http://www.skolelinux.org/">Debian Edu and Skolelinux</a> by
23612 Bruce Byfield in Linux Weekly News. The result was made public for
23613 non-subscribers today. I am pleased to see liked our Linux solution
23614 for schools. Check out his article
23615 <a href="https://lwn.net/Articles/488805/">Debian Edu/Skolelinux: A
23616 distribution for education</a> if you want to learn more.</p>
23617
23618 </div>
23619 <div class="tags">
23620
23621
23622 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>.
23623
23624
23625 </div>
23626 </div>
23627 <div class="padding"></div>
23628
23629 <div class="entry">
23630 <div class="title">
23631 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Wolfgang_Schweer.html">Debian Edu interview: Wolfgang Schweer</a>
23632 </div>
23633 <div class="date">
23634 1st April 2012
23635 </div>
23636 <div class="body">
23637 <p>Germany is a core area for the
23638 <a href="http://www.skolelinux.org/">Debian Edu and Skolelinux</a>
23639 user community, and this time I managed to get hold of Wolfgang
23640 Schweer, a valuable contributor to the project from Germany.
23641
23642 <p><strong>Who are you, and how do you spend your days?</strong></p>
23643
23644 <p>I've studied Mathematics at the university 'Ruhr-Universität' in
23645 Bochum, Germany. Since 1981 I'm working as a teacher at the school
23646 "<a href="http://www.westfalenkolleg-dortmund.de/">Westfalen-Kolleg
23647 Dortmund</a>", a second chance school. Here, young adults is given
23648 the opportunity to get further education in order to do the school
23649 examination 'Abitur', which will allow to study at a university. This
23650 second chance is of value for those who want a better job perspective
23651 or failed to get a higher school examination being teens.</p>
23652
23653 <p>Besides teaching I was involved in developing online courses for a
23654 blended learning project called 'abitur-online.nrw' and in some other
23655 information technology related projects. For about ten years I've been
23656 teacher and coordinator for the 'abitur-online' project at my
23657 school. Being now in my early sixties, I've decided to leave school at
23658 the end of April this year.</p>
23659
23660 <p><strong>How did you get in contact with the Skolelinux/Debian Edu
23661 project?</strong></p>
23662
23663 <p>The first information about Skolelinux must have come to my
23664 attention years ago and somehow related to LTSP (Linux Terminal Server
23665 Project). At school, we had set up a network at the beginning of 1997
23666 using Suse Linux on the desktop, replacing a Novell network. Since
23667 2002, we used old machines from the city council of Dortmund as thin
23668 clients (LTSP, later Ubuntu/Lessdisks) cause new hardware was out of
23669 reach. At home I'm using Debian since years and - subscribed to the
23670 Debian news letter - heard from time to time about Skolelinux. About
23671 two years ago I proposed to replace the (somehow undocumented and only
23672 known to me) system at school by a well known Debian based system:
23673 Skolelinux.</p>
23674
23675 <p>Students and teachers appreciated the new system because of a
23676 better look and feel and an enhanced access to local media on thin
23677 clients. The possibility to alter and/or reset passwords using a GUI
23678 was welcomed, too. Being able to do administrative tasks using a GUI
23679 and to easily set up workstations using PXE was of very high value for
23680 the admin teachers.</p>
23681
23682 <p><strong>What do you see as the advantages of Skolelinux/Debian
23683 Edu?</strong></p>
23684
23685 <p>It's open source, easy to set up, stable and flexible due to it's
23686 Debian base. It integrates LTSP out-of-the-box. And it is documented!
23687 So it was a perfect choice.</p>
23688
23689 <p>Being open source, there are no license problems and so it's
23690 possible to point teachers and students to programs like
23691 OpenOffice.org, ViewYourMind (mind mapping) and The Gimp. It's of
23692 high value to be able to adapt parts of the system to special needs of
23693 a school and to choose where to get support for this.</p>
23694
23695 <p><strong>What do you see as the disadvantages of Skolelinux/Debian
23696 Edu?</strong></p>
23697
23698 <p>Nothing yet.</p>
23699
23700 <p><strong>Which free software do you use daily?</strong></p>
23701
23702 <p>At home (Debian Sid with Gnome Desktop): Iceweasel, LibreOffice,
23703 Mutt, Gedit, Document Viewer, Midnight Commander, flpsed (PDF
23704 Annotator). At school (Skolelinux Lenny): Iceweasel, Gedit,
23705 LibreOffice.</p>
23706
23707 <p><strong>Which strategy do you believe is the right one to use to
23708 get schools to use free software?</strong></p>
23709
23710 <p>Some time ago I thought it was enough to tell people about it. But
23711 that doesn't seem to work quite well. Now I concentrate on those more
23712 interested and hope to get multiplicators that way.</p>
23713
23714 </div>
23715 <div class="tags">
23716
23717
23718 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>.
23719
23720
23721 </div>
23722 </div>
23723 <div class="padding"></div>
23724
23725 <div class="entry">
23726 <div class="title">
23727 <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>
23728 </div>
23729 <div class="date">
23730 25th March 2012
23731 </div>
23732 <div class="body">
23733 <!-- Video HTML based on http://www.diveintohtml5.net/video.html -->
23734
23735 <p>The same Debian Edu developer that did the last screen cast I
23736 published, Wolfgang Schweer, has created a new screen cast showing how
23737 to set up Kmail in Debian Edu Squeze to authenticate using Kerberos,
23738 allowing users to check their local email account without providing
23739 any password. The video is embedded here in quarter size,
23740 and also available from <a href="https://vimeo.com/38601767">vimeo</a>
23741 and download as a
23742 <a href="http://ftp.skolelinux.org/skolelinux/press/screencasts/2012-03-14-Debian-Edu_Configure_Kmail_for_internal_usage.ogv">Ogg
23743 Theora</a> file. Check it out below.</p>
23744
23745 <p><video id="kmail-kerberos-movie" width="256" height="184" preload controls>
23746 <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"' />
23747 <p>Download video as
23748 <a href="http://ftp.skolelinux.org/skolelinux/press/screencasts/2012-03-14-Debian-Edu_Configure_Kmail_for_internal_usage.ogv">Ogg</a>.</p>
23749 </video></p>
23750
23751 </div>
23752 <div class="tags">
23753
23754
23755 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>.
23756
23757
23758 </div>
23759 </div>
23760 <div class="padding"></div>
23761
23762 <div class="entry">
23763 <div class="title">
23764 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__John_Ingleby.html">Debian Edu interview: John Ingleby</a>
23765 </div>
23766 <div class="date">
23767 19th March 2012
23768 </div>
23769 <div class="body">
23770 <p><a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a>
23771 users are spread all across the globe. The second inteview after
23772 <a href="http://lists.debian.org/debian-edu-announce/2012/03/msg00001.html">the
23773 Squeeze release</a> was publised is with John Ingleby, a teacher and
23774 long time Linux user in United Kingdom.</p>
23775
23776 <p><strong>Who are you, and how do you spend your days?</strong></p>
23777
23778 <p>I teach ICT part time at the Rudolf Steiner School in Kings
23779 Langley, near London, UK. Previously I worked as a technical
23780 author/trainer while my children attended the school, and I also
23781 contributed to the Schoolforge UK community with the aim of
23782 encouraging UK schools to adopt free/open source software. Five or six
23783 years ago we had about 50 schools interested in some way, but we
23784 weren't able to convert many of them into sustainable
23785 installations.</p>
23786
23787 <p><strong>How did you get in contact with the Skolelinux/Debian Edu
23788 project?</strong></p>
23789
23790 <p>Skolelinux had two representatives at an early Edubuntu meeting in
23791 London which I attended. However at that time our school network had
23792 just been installed using CentOS, LTSP 4 and GNOME. When LTSP 5 came
23793 along we switched to Edubuntu thin client servers so now we have a
23794 mixed environment which includes Windows PCs and student laptops, as
23795 well as their MacBooks and iPads. However, the proprietary systems
23796 have always been rather problematic, and we never built a GUI for the
23797 LDAP server, so when I discovered Skolelinux is configured for all
23798 these things we decided to try it.</p>
23799
23800 <p><strong>What do you see as the advantages of Skolelinux/Debian
23801 Edu?</strong></p>
23802
23803 <p>By far the biggest advantage is the Debian Edu community. Apart
23804 from that I have always believed in the same "sustainable computing"
23805 goals that Skolelinux is built on: installing Linux on computers which
23806 would otherwise be thrown away, to provide a reliable, secure and
23807 low-cost IT environment for schools. From my own experience I know
23808 that a part-time person can teach and manage a network of about 25
23809 Linux computers, but it would take much more of my time if we had
23810 proprietary software everywhere.</p>
23811
23812 <p><strong>What do you see as the disadvantages of Skolelinux/Debian
23813 Edu?</strong></p>
23814
23815 <p>As a newcomer I'm just finding out who's who in the community and
23816 how you're organised, and what your procedures are for dealing with
23817 various things such as editing manual pages and so-on. The only
23818 English language mailing list seems to be for developers as well as
23819 users, so my inbox needs heavy pruning each day!</p>
23820
23821 <p><strong>Which free software do you use daily?</strong></p>
23822
23823 <p>Besides the software already mentioned at school we use Samba,
23824 OpenLDAP, CUPS, Nagios and Dansguardian for the network, and on the
23825 desktops we have LibreOffice, Firefox, GIMP and Inkscape. At home I
23826 use Ubuntu and an Android 4 eePad Transformer (but I'm not sure if
23827 that counts...)</p>
23828
23829 <p><strong>Which strategy do you believe is the right one to use to
23830 get schools to use free software?</strong></p>
23831
23832 <p>That's a tough question! For very many years UK schools installed
23833 and taught only proprietary software, so that at the highest levels
23834 the notion of "computer" means simply "proprietary office
23835 applications". However, schools today are experiencing budget
23836 constraints, and many are having to think hard about upgrading Windows
23837 XP. At the same time, we have students showing teachers how to use
23838 iPads, MacBooks and Android, so the choice of operating system is no
23839 longer quite so automatic. What is more, our government at last
23840 realised that we need people with programming skills, so they're
23841 putting coding back in the curriculum! And it's encouraging that the
23842 first 10,000 Raspberry Pi units sold out in 2 hours.</p>
23843
23844 <p>I don't really know what strategy is going to get UK schools to use
23845 free software, but building an active community of Skolelinux/Debian
23846 Edu users in this country has to be part of it.</p>
23847
23848 </div>
23849 <div class="tags">
23850
23851
23852 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>.
23853
23854
23855 </div>
23856 </div>
23857 <div class="padding"></div>
23858
23859 <div class="entry">
23860 <div class="title">
23861 <a href="http://people.skolelinux.org/pere/blog/Writing_and_translating_documentation_in_Debian_Edu.html">Writing and translating documentation in Debian Edu</a>
23862 </div>
23863 <div class="date">
23864 16th March 2012
23865 </div>
23866 <div class="body">
23867 <p>Documentation in Debian Edu is provided in several languages, and
23868 it is important to make it both easy to contribute and to keep the
23869 translated versions in sync. To do this we have come up with what we
23870 believe is a very efficient work flow.</p>
23871
23872 <ol>
23873
23874 <li>The documentation is written in a
23875 <a href="http://moinmo.in">moinmoin wiki</a> (see for example
23876 <a href="http://wiki.debian.org/DebianEdu/Documentation/Squeeze">the
23877 Squeeze release manual</a>) with support for exporting the content as
23878 docbook XML.</li>
23879
23880 <li>This docbook document is given to po4a to extract a gettext style
23881 .pot file with the content, which in turn is used to create .po files
23882 with the translated text.</li>
23883
23884 <li>The .po files are given to translators, and they can always tell
23885 which part of the original wiki document is new or changed. They can
23886 use their normal translation tools like lokalize or poedit to write
23887 the translation. There is even a system in place to handle translated
23888 images.</li>
23889
23890 <li>The translated .po files are combined with the original docbook
23891 XML document using po4a to create a translated docbook document.</li>
23892
23893 <li>The final step is to use all the generated docbook files and
23894 create PDF and HTML version of the original and translated documents.</li>
23895
23896 </ol>
23897
23898 <p>This setup work very well, but have a few issues. The biggest
23899 issue is that <a href="http://moinmo.in/DocBook">the docbook support
23900 we use in moinmoin</a> is not actively maintained. The docbook
23901 support is also buggy, and our build system contain workarounds to
23902 make sure the generated docbook is usable despite these bugs.</p>
23903
23904 <p>If you want to have a look at our setup, it is all there in the
23905 <a href="http://packages.qa.debian.org/debian-edu-doc">debian-edu-doc
23906 package</a>.</p>
23907
23908 </div>
23909 <div class="tags">
23910
23911
23912 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>.
23913
23914
23915 </div>
23916 </div>
23917 <div class="padding"></div>
23918
23919 <div class="entry">
23920 <div class="title">
23921 <a href="http://people.skolelinux.org/pere/blog/Skolelinux___Debian_Edu_Squeeze_is_out_.html">Skolelinux / Debian Edu Squeeze is out!</a>
23922 </div>
23923 <div class="date">
23924 11th March 2012
23925 </div>
23926 <div class="body">
23927 <p>This weekend we finally published the first stable release of
23928 <a href="http://www.skolelinux.org/">Skolelinux / Debian Edu</a> based
23929 on Debian/Squeeze. The full announcement is
23930 <a href="http://lists.debian.org/debian-edu-announce/2012/03/msg00001.html">available</a>
23931 from the project announcement list. Now is a good time to test if it
23932 you have not done so already.</p>
23933
23934 <p>I plan to present the new version at
23935 <a href="http://www.nuug.no/aktiviteter/20120313-skolelinux/">a NUUG
23936 meeting</a> on tuesday. I look forward to seeing you there if you are
23937 in Oslo, Norway.</p>
23938
23939 </div>
23940 <div class="tags">
23941
23942
23943 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>.
23944
23945
23946 </div>
23947 </div>
23948 <div class="padding"></div>
23949
23950 <div class="entry">
23951 <div class="title">
23952 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Nigel_Barker.html">Debian Edu interview: Nigel Barker</a>
23953 </div>
23954 <div class="date">
23955 9th March 2012
23956 </div>
23957 <div class="body">
23958 <p>Inspired by <a href="http://raphaelhertzog.com/tag/interview/">the
23959 interview series</a> conducted by Raphael, I started a Norwegian
23960 interview series with people involved in the Debian Edu / Skolelinux
23961 community. This was so popular that I believe it is time to move to a
23962 more international audience.</p>
23963
23964 <p>While <a href="http://www.skolelinux.org/">Debian Edu and
23965 Skolelinux</a> originated in France and Norway, and have most users in
23966 Europe, there are users all around the globe. One of those far away
23967 from me is Nigel Barker, a long time Debian Edu system administrator
23968 and contributor. It is thanks to him that Debian Edu is adjusted to
23969 work out of the box in Japan. I got him to answer a few questions,
23970 and am happy to share the response with you. :)
23971
23972
23973 <p><strong>Who are you, and how do you spend your days?</strong></p>
23974
23975 <p>My name is Nigel Barker, and I am British. I am married to Yumiko,
23976 and we have three lovely children, aged 15, 14 and 4(!) I am the IT
23977 Coordinator at Hiroshima International School, Japan. I am also a
23978 teacher, and in fact I spend most of my day teaching Mathematics,
23979 Science, IT, and Chemistry. I was originally a Chemistry teacher, but
23980 I have always had an interest in computers. Another teacher teaches
23981 primary school IT, but apart from that I am the only computer person,
23982 so that means I am the network manager, technician and webmaster,
23983 also, and I help people with their computer problems. I teach python
23984 to beginners in an after-school club. I am way too busy, so I really
23985 appreciate the simplicity of Skolelinux.</p>
23986
23987 <p><strong>How did you get in contact with the Skolelinux/Debian Edu
23988 project?</strong></p>
23989
23990 <p>In around 2004 or 5 I discovered the ltsp project, and set up a
23991 server in the IT lab. I wanted some way to connect it to our central
23992 samba server, which I was also quite poor at configuring. I discovered
23993 Edubuntu when it came out, but it didn't really improve my setup. I
23994 did various desperate searches for things like "school Linux server"
23995 and ended up in a document called "Drift" something or other. Reading
23996 there it became clear that Skolelinux was going to solve all my
23997 problems in one go. I was very excited, but apprehensive, because my
23998 previous attempts to install Debian had ended in failure (I used
23999 Mandrake for everything - ltsp, samba, apache, mail, ns...). I
24000 downloaded a beta version, had some problems, so subscribed to the
24001 Debian Edu list for help. I have remained subscribed ever since, and
24002 my school has run a Skolelinux network since Sarge.</p>
24003
24004 <p><strong>What do you see as the advantages of Skolelinux/Debian
24005 Edu?</strong></p>
24006
24007 <p>For me the integrated setup. This is not just the server, or the
24008 workstation, or the ltsp. Its all of them, and its all configured
24009 ready to go. I read somewhere in the early documentation that it is
24010 designed to be setup and managed by the Maths or Science teacher, who
24011 doesn't necessarily know much about computers, in a small Norwegian
24012 school. That describes me perfectly if you replace Norway with
24013 Japan.</p>
24014
24015 <p><strong>What do you see as the disadvantages of Skolelinux/Debian
24016 Edu?</strong></p>
24017
24018 <p>The desktop is fairly plain. If you compare it with Edubuntu, who
24019 have fun themes for children, or with distributions such as Mint, who
24020 make the desktop beautiful. They create a good impression on people
24021 who don't need to understand how to use any of it, but who might be
24022 important to the school. School administrators or directors, for
24023 instance, or parents. Even kids. Debian itself usually has ugly
24024 default theme settings. It was my dream a few years back that some
24025 kind of integration would allow Edubuntu to do the desktop stuff and
24026 Debian Edu the servers, but now I realise how impossible that is. A
24027 second disadvantage is that if something goes wrong, or you need to
24028 customise something, then suddenly the level of expertise required
24029 multiplies. For example, backup wasn't working properly in Lenny. It
24030 took me ages to learn how to set up my own server to do rsync backups.
24031 I am afraid of anything to do with ldap, but perhaps Gosa will
24032 help.</p>
24033
24034 <p><strong>Which free software do you use daily?</strong></p>
24035
24036 <p>Nowadays I only use Debian on my personal computers. I have one for
24037 studio work (I play guitar and write songs), running AV Linux
24038 (customised Debian) a netbook running Squeeze, and a bigger laptop
24039 still running Skolelinux Lenny workstation. I have a Tjener in my
24040 house, that's very useful for the family photos and music. At school
24041 the students only use Skolelinux. (Some teachers and the office still
24042 have windows). So that means we only use free software all day every
24043 day. Open office, The GIMP, Firefox/Iceweasel, VLC and Audacity are
24044 installed on every computer in school, irrespective of OS. We also
24045 have Koha on Debian for the library, and Apache, Moodle, b2evolution
24046 and Etomite on Debian for the www. The firewall is Untangle.</p>
24047
24048 <p><strong>Which strategy do you believe is the right one to use to
24049 get schools to use free software?</strong></p>
24050
24051 <p>Current trends are in our favour. Open source is big in industry,
24052 and ordinary people have heard of it. The spread of Android and the
24053 popularity of Apple have helped to weaken the impression that you have
24054 to have Microsoft on everything. People complain to me much less about
24055 file formats and Word than they did 5 years ago. The Edu aspect is
24056 also a selling point. This is all customised for schools. Where is the
24057 Windows-edu, or the Mac-edu? But of course the main attraction is
24058 budget.The trick is to convince people that the quality is not
24059 compromised when you stop paying and use free software instead. That
24060 is one reason why I say the desktop experience is a weakness. People
24061 are not impressed when their USB drive doesn't work, or their browser
24062 doesn't play flash, for example.</p>
24063
24064 </div>
24065 <div class="tags">
24066
24067
24068 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>.
24069
24070
24071 </div>
24072 </div>
24073 <div class="padding"></div>
24074
24075 <div class="entry">
24076 <div class="title">
24077 <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>
24078 </div>
24079 <div class="date">
24080 7th March 2012
24081 </div>
24082 <div class="body">
24083 <!-- Video HTML based on http://www.diveintohtml5.net/video.html -->
24084
24085 <p>One of the Debian Edu developers, Wolfgang Schweer, just created a
24086 screen cast documenting how to create a lot of new users in LDAP on
24087 Debian Edu Squeeze. The video is embedded here in quarter size, and
24088 also available from <a href="http://vimeo.com/37675399">vimeo</a> and
24089 download as a
24090 <a href="http://ftp.skolelinux.org/skolelinux/press/screencasts/2012-02-29-debian_edu_mass_create_user_accounts.ogv">Ogg
24091 Theora</a> file. Check it out below.</p>
24092
24093 <p><video id="gosa-mass-user-create-movie" width="256" height="184" preload controls>
24094 <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"' />
24095 <p>Download video as
24096 <a href="http://ftp.skolelinux.org/skolelinux/press/screencasts/2012-02-29-debian_edu_mass_create_user_accounts.ogv">Ogg</a>.</p>
24097 </video></p>
24098
24099 </div>
24100 <div class="tags">
24101
24102
24103 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>.
24104
24105
24106 </div>
24107 </div>
24108 <div class="padding"></div>
24109
24110 <div class="entry">
24111 <div class="title">
24112 <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>
24113 </div>
24114 <div class="date">
24115 4th March 2012
24116 </div>
24117 <div class="body">
24118 <p>This weekend we wrapped up and published the third release
24119 candidate for <a href="http://www.skolelinux.org/">Debian Edu /
24120 Skolelinux</a> based on Squeeze. The full announcement is
24121 <a href="http://lists.debian.org/debian-edu-announce/2012/03/msg00000.html">available</a>
24122 from the project announcement list. Check it out if you
24123 need a software solution for your school.</p>
24124
24125 </div>
24126 <div class="tags">
24127
24128
24129 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>.
24130
24131
24132 </div>
24133 </div>
24134 <div class="padding"></div>
24135
24136 <div class="entry">
24137 <div class="title">
24138 <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>
24139 </div>
24140 <div class="date">
24141 3rd March 2012
24142 </div>
24143 <div class="body">
24144 <p>Many years ago, the <a href="http://www.skolelinux.org/">Skolelinux
24145 / Debian Edu project</a> initiated a student project to create a tool
24146 for making stop motion movies. The proposal came from a teacher
24147 needing such tool on Skolelinux. The project, called "stopmotion",
24148 was manned by two extraordinary students and won a school award and a
24149 national aware with this great project. The project was initiated and
24150 mentored by Herman Robak, and manned by the students Bjørn Erik Nilsen
24151 and Fredrik Berg Kjølstad. They got in touch with people at Aardman
24152 Animation studio and received feedback on how professionals would like
24153 such stopmotion tool to work, and the end result was and is used by
24154 animators around the globe. But as is usual after studying, both got
24155 jobs and went elsewhere, and did not have time to properly tend to the
24156 project, and it has been lingering for a few years now. Until last
24157 year...</p>
24158
24159 <p>Last year some of the users got together with Herman, and moved the
24160 project to Sourceforge and in effect restarted the project under a new
24161 name,
24162 <a href="http://sourceforge.net/projects/linuxstopmotion/">linuxstopmotion</a>.
24163 The name change was done to make it possible to find the project using
24164 Internet search engines (try to search for 'stopmotion' to see what I
24165 mean). I've been following
24166 <a href="https://lists.sourceforge.net/lists/listinfo/linuxstopmotion-community">the
24167 mailing list</a> and the improvement already in place and planned for
24168 the future is encouraging. If you want to make stop motion movies.
24169 Check it out. :)</p>
24170
24171 </div>
24172 <div class="tags">
24173
24174
24175 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>.
24176
24177
24178 </div>
24179 </div>
24180 <div class="padding"></div>
24181
24182 <div class="entry">
24183 <div class="title">
24184 <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>
24185 </div>
24186 <div class="date">
24187 27th February 2012
24188 </div>
24189 <div class="body">
24190 <p>This weekend we wrapped up and published the second release
24191 candidate for <a href="http://www.skolelinux.org/">Debian Edu /
24192 Skolelinux</a> based on Squeeze. The full announcement did for some
24193 reason not make it the project announcement list, but is
24194 <a href="http://lists.debian.org/debian-devel-announce/2012/02/msg00015.html">available</a>
24195 from the Debian development announcement list. Check it out if you
24196 need a software solution for your school.</p>
24197
24198 </div>
24199 <div class="tags">
24200
24201
24202 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>.
24203
24204
24205 </div>
24206 </div>
24207 <div class="padding"></div>
24208
24209 <div class="entry">
24210 <div class="title">
24211 <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>
24212 </div>
24213 <div class="date">
24214 19th February 2012
24215 </div>
24216 <div class="body">
24217 <p>One week delayed due to DVD build problems, we managed today to
24218 wrap up and publish the first release candidate for
24219 <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a> based
24220 on Squeeze. The full announcement is
24221 <a href="http://lists.debian.org/debian-edu-announce/2012/02/msg00001.html">available</a>
24222 on the project announcement list. Check it out if you need a software
24223 solution for your school.</p>
24224
24225 </div>
24226 <div class="tags">
24227
24228
24229 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>.
24230
24231
24232 </div>
24233 </div>
24234 <div class="padding"></div>
24235
24236 <div class="entry">
24237 <div class="title">
24238 <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>
24239 </div>
24240 <div class="date">
24241 14th February 2012
24242 </div>
24243 <div class="body">
24244 <p>Once in a while my home server have disk problems. Thanks to Linux
24245 Software RAID, I have not lost data yet (but
24246 <a href="http://comments.gmane.org/gmane.linux.raid/34532">I was
24247 close</a> this summer :). But once a disk is starting to behave
24248 funny, a practical problem present itself. How to get from the Linux
24249 device name (like /dev/sdd) to something that can be used to identify
24250 the disk when the computer is turned off? In my case I have SATA
24251 disks with a unique ID printed on the label. All I need is a way to
24252 figure out how to query the disk to get the ID out.</p>
24253
24254 <p>After fumbling a bit, I
24255 <a href="http://www.cyberciti.biz/faq/linux-getting-scsi-ide-harddisk-information/">found
24256 that hdparm -I</a> will report the disk serial number, which is
24257 printed on the disk label. The following (almost) one-liner can be
24258 used to look up the ID of all the failed disks:</p>
24259
24260 <blockquote><pre>
24261 for d in $(cat /proc/mdstat |grep '(F)'|tr ' ' "\n"|grep '(F)'|cut -d\[ -f1|sort -u);
24262 do
24263 printf "Failed disk $d: "
24264 hdparm -I /dev/$d |grep 'Serial Num'
24265 done
24266 </blockquote></pre>
24267
24268 <p>Putting it here to make sure I do not have to search for it the
24269 next time, and in case other find it useful.</p>
24270
24271 <p>At the moment I have two failing disk. :(</p>
24272
24273 <blockquote><pre>
24274 Failed disk sdd1: Serial Number: WD-WCASJ1860823
24275 Failed disk sdd2: Serial Number: WD-WCASJ1860823
24276 Failed disk sde2: Serial Number: WD-WCASJ1840589
24277 </blockquote></pre>
24278
24279 <p>The last time I had failing disks, I added the serial number on
24280 labels I printed and stuck on the short sides of each disk, to be able
24281 to figure out which disk to take out of the box without having to
24282 remove each disk to look at the physical vendor label. The vendor
24283 label is at the top of the disk, which is hidden when the disks are
24284 mounted inside my box.</p>
24285
24286 <p>I really wish the check_linux_raid Nagios plugin for checking Linux
24287 Software RAID in the
24288 <a href="http://packages.qa.debian.org/n/nagios-plugins.html">nagios-plugins-standard</a>
24289 debian package would look up this value automatically, as it would
24290 make the plugin a lot more useful when my disks fail. At the moment
24291 it only report a failure when there are no more spares left (it really
24292 should warn as soon as a disk is failing), and it do not tell me which
24293 disk(s) is failing when the RAID is running short on disks.</p>
24294
24295 </div>
24296 <div class="tags">
24297
24298
24299 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>.
24300
24301
24302 </div>
24303 </div>
24304 <div class="padding"></div>
24305
24306 <div class="entry">
24307 <div class="title">
24308 <a href="http://people.skolelinux.org/pere/blog/Automatic_proxy_configuration_with_Debian_Edu___Skolelinux.html">Automatic proxy configuration with Debian Edu / Skolelinux</a>
24309 </div>
24310 <div class="date">
24311 13th February 2012
24312 </div>
24313 <div class="body">
24314 <p>New in the Squeeze version of
24315 <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a> is the
24316 ability for clients to automatically configure their proxy settings
24317 based on their environment. We want all systems on the client to use
24318 the WPAD based proxy definition fetched from <tt>http://wpad/wpad.dat</tt>, to
24319 allow sites to control the proxy setting from a central place and make
24320 sure clients do not have hard coded proxy settings. The schools can
24321 change the global proxy setting by editing
24322 <tt>tjener:/etc/debian-edu/www/wpad.dat</tt> and the change propagate
24323 to all Debian Edu clients in the network.</p>
24324
24325 <p>The problem is that some systems do not understand the WPAD system.
24326 In other words, how do one get from a WPAD file like this (this is a
24327 simple one, they can run arbitrary code):</p>
24328
24329 <blockquote><pre>
24330 function FindProxyForURL(url, host)
24331 {
24332 if (!isResolvable(host) ||
24333 isPlainHostName(host) ||
24334 dnsDomainIs(host, ".intern"))
24335 return "DIRECT";
24336 else
24337 return "PROXY webcache:3128; DIRECT";
24338 }
24339 </pre></blockquote>
24340
24341 <p>to a proxy setting in the process environment looking like this:</p>
24342
24343 <blockquote><pre>
24344 http_proxy=http://webcache:3128/
24345 ftp_proxy=http://webcache:3128/
24346 </pre></blockquote>
24347
24348 <p>To do this conversion I developed a perl script that will execute
24349 the javascript fragment in the WPAD file and return the proxy that
24350 would be used for
24351 <tt><a href="http://www.debian.org/">http://www.debian.org/</a></tt>,
24352 and insert this extracted proxy URL in <tt>/etc/environment</tt> and
24353 <tt>/etc/apt/apt.conf</tt>. The perl script wpad-extract work just
24354 fine in Squeeze, but in Wheezy the library it need to run the
24355 javascript code is <a href="http://bugs.debian.org/631045">no longer
24356 able to build</a> because the C library it depended on is now a C++
24357 library. I hope someone find a solution to that problem before Wheezy
24358 is frozen. An alternative would be for us to rewrite wpad-extract to
24359 use some other javascript library currently working in Wheezy, but no
24360 known alternative is known at the moment.</p>
24361
24362 <p>This automatic proxy system allow the roaming workstation (aka
24363 laptop) setup in Debian Edu/Squeeze to use the proxy when the laptop
24364 is connected to the backbone network in a Debian Edu setup, and to
24365 automatically use any proxy present and announced using the WPAD
24366 feature when it is connected to other networks. And if no proxy is
24367 announced, direct connections will be used instead.</p>
24368
24369 <p>Silently using a proxy announced on the network might be a privacy
24370 or security problem. But those controlling DHCP and DNS on a network
24371 could just as easily set up a transparent proxy, and force all HTTP
24372 and FTP connections to use a proxy anyway, so I consider that
24373 distinction to be academic. If you are afraid of using the wrong
24374 proxy, you should avoid connecting to the network in question in the
24375 first place. In Debian Edu, the proxy setup is updated using dhcp and
24376 ifupdown hooks, to make sure the configuration is updated every time
24377 the network setup changes.</p>
24378
24379 <p>The WPAD system is documented in a
24380 <a href="http://tools.ietf.org/html/draft-ietf-wrec-wpad-01">IETF
24381 draft</a> and a
24382 <a href="http://en.wikipedia.org/wiki/Web_Proxy_Autodiscovery_Protocol">Wikipedia
24383 page</a> for those that want to learn more.</p>
24384
24385 </div>
24386 <div class="tags">
24387
24388
24389 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>.
24390
24391
24392 </div>
24393 </div>
24394 <div class="padding"></div>
24395
24396 <div class="entry">
24397 <div class="title">
24398 <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>
24399 </div>
24400 <div class="date">
24401 5th February 2012
24402 </div>
24403 <div class="body">
24404 <p>Since the Lenny version of
24405 <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a>, a
24406 feature to save power have been included. It is as simple as it is
24407 practical: Shut down unused clients at night, and turn them on again
24408 in the morning. This is done using the
24409 <a href="http://packages.qa.debian.org/s/shutdown-at-night.html">shutdown-at-night</a> Debian package.</p>
24410
24411 <p>To enable this feature on a client, the machine need to be added to
24412 the netgroup shutdown-at-night-hosts. For Debian Edu, this is done in
24413 LDAP, and once this is in place, the machine in question will check
24414 every hour from 16:00 until 06:00 to see if the machine is unused, and
24415 shut it down if it is. If the hardware in question is supported by
24416 the
24417 <a href="http://packages.qa.debian.org/n/nvram-wakeup.html">nvram-wakeup</a>
24418 package, the BIOS is told to turn the machine back on around 07:00 +-
24419 10 minutes. If this isn't working, one can configure wake-on-lan to
24420 try to turn on the client. The wake-on-lan option is only documented
24421 and not enabled by default in Debian Edu.</p>
24422
24423 <p>It is important to not turn all machines on at once, as this can
24424 blow a fuse if several computers are connected to the same fuse like
24425 the common setup for a classroom. The nvram-wakeup method only work
24426 for machines with a functioning hardware/BIOS clock. I've seen old
24427 machines where the BIOS battery were dead and the hardware clock were
24428 starting from 0 (or was it 1990?) every boot. If you have one of
24429 those, you have to turn on the computer manually.</p>
24430
24431 <p>The shutdown-at-night package is completely self contained, and can
24432 also be used outside the Debian Edu environment. For those without a
24433 central LDAP server with netgroups, one can instead touch the file
24434 <tt>/etc/shutdown-at-night/shutdown-at-night</tt> to enable it.
24435 Perhaps you too can use it to save some power?</p>
24436
24437 </div>
24438 <div class="tags">
24439
24440
24441 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>.
24442
24443
24444 </div>
24445 </div>
24446 <div class="padding"></div>
24447
24448 <div class="entry">
24449 <div class="title">
24450 <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>
24451 </div>
24452 <div class="date">
24453 4th February 2012
24454 </div>
24455 <div class="body">
24456 <p>I am happy to announce that finally we managed today to wrap up and
24457 publish the third beta version of
24458 <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a> based
24459 on Squeeze. If you want to test a LDAP backed Kerberos server with
24460 out of the box PXE configuration for running diskless machines and
24461 installing new machines, check it out. If you need a software
24462 solution for your school, check it out too. The full announcement is
24463 <a href="http://lists.debian.org/debian-edu-announce/2012/02/msg00000.html">available</a>
24464 on the project announcement list.</p>
24465
24466 <p>I am very happy to report these changes and improvements since
24467 beta2 (there are more, see announcement for full list):</p>
24468
24469 <ul>
24470
24471 <li>It is now possible to change the pre-configured IP subnet from
24472 10.0.0.0/8 to something else by using the subnet-change tool after
24473 the installation.</li>
24474
24475 <li>Too full partitions are now automatically extended on the Main
24476 Server, based on the rules specified in /etc/fsautoresizetab.</li>
24477
24478 <li>The CUPS queues are now automatically flushed every night, and all
24479 disabled queues are restarted every hour. This should cut down on
24480 the amount of manual administration needed for printers.</li>
24481
24482 <li>The set of initial users have been changed. Now a personal user
24483 for the local system administrator is created during installation
24484 instead of the previously created localadmin and super-admin users,
24485 and this user is granted administrative privileges using group
24486 membership. This reduces the number of passwords one need to keep
24487 up to date on the system.</li>
24488
24489 </ul>
24490
24491 <p>The new main server seem to work so well that I am testing it as my
24492 private DNS/LDAP/Kerberos/PXE/LTSP server at home. I will use it look
24493 for issues we could fix to polish Debian Edu even further before the
24494 final Squeeze release is published.</p>
24495
24496 <p>Next weekend the project organise a
24497 <a href="http://lists.debian.org/debian-edu-announce/2012/01/msg00001.html">developer
24498 gathering</a> in Oslo. We will continue the work on the Squeeze
24499 version, and start initial planning for the Wheezy version. Perhaps I
24500 will see you there?</p>
24501
24502 </div>
24503 <div class="tags">
24504
24505
24506 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>.
24507
24508
24509 </div>
24510 </div>
24511 <div class="padding"></div>
24512
24513 <div class="entry">
24514 <div class="title">
24515 <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>
24516 </div>
24517 <div class="date">
24518 27th January 2012
24519 </div>
24520 <div class="body">
24521 <p>With some computer hardware, one need non-free firmware blobs.
24522 This is the sad fact of todays computers. In the next version of
24523 <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a> based
24524 on Squeeze, we provide several scripts and modifications to make
24525 firmware blobs easier to handle. The common use case I run into is a
24526 laptop with a wireless network card requiring non-free firmware to
24527 work, but there are other use cases as well.</p>
24528
24529 <p>First and foremost, Debian Edu provide ISO images for DVD and CD
24530 with all firmware packages in the Debian sections main and non-free
24531 included, to ensure debian-installer find and can install all of them
24532 during installation. This take care firmware for network devices used
24533 by the installer when installing from from local media. But for
24534 example multimedia devices are not activated in the installer and are
24535 not taken care of by this.</p>
24536
24537 <p>For non-network devices, we provide the script
24538 <tt>/usr/share/debian-edu-config/tools/auto-addfirmware</tt> which
24539 search through the <tt>dmesg</tt> output for drivers requesting extra
24540 firmware. The firmware file name is looked up in the Contents-ARCH.gz
24541 file available in the package repository, and the packages providing
24542 the requested firmware file(s) is installed. I have proposed to do
24543 something similar in debian-installer (BTS report
24544 <a href="http://bugs.debian.org/655507">#655507</a>), to allow PXE
24545 installs of Debian to handle firmware installation better. Run the
24546 script as root from the command line to fetch and install the needed
24547 firmware packages.</p>
24548
24549 <p>Debian Edu provide PXE installation of Debian out of the box, and
24550 because some machines need firmware to get their network cards
24551 working, the installation initrd some times need extra firmware
24552 included to be able to install at all. To fill the PXE installation
24553 initrd with extra firmware, the
24554 <tt>/usr/share/debian-edu-config/tools/pxe-addfirmware</tt> script is
24555 provided. Again, just run it as root on the command line to fill the
24556 PXE initrd with firmware packages.</p>
24557
24558 <p>Last, some LTSP clients might also need firmware to get their
24559 network cards working. For this,
24560 <tt>/usr/share/debian-edu-config/tools/ltsp-addfirmware</tt> is
24561 provided to update the LTSP initrd with firmware blobs. It is used
24562 the same way as the other firmware related tools.</p>
24563
24564 <p>At the moment, we do not run any of these during installation. We
24565 do not know if this is acceptable for the local administrator to use
24566 non-free software, and it is their choice.</p>
24567
24568 <p>We plan to release beta3 this weekend. You might want to give it a
24569 try.</p>
24570
24571 </div>
24572 <div class="tags">
24573
24574
24575 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>.
24576
24577
24578 </div>
24579 </div>
24580 <div class="padding"></div>
24581
24582 <div class="entry">
24583 <div class="title">
24584 <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>
24585 </div>
24586 <div class="date">
24587 25th January 2012
24588 </div>
24589 <div class="body">
24590 <p>The next version of <a href="http://www.skolelinux.org/">Debian Edu
24591 / Skolelinux</a> will include a new tool
24592 <tt>sitesummary2ldapdhcp</tt>, which can be used to quickly set up all
24593 the computers in a school without much manual labour. Here is a short
24594 summary on how to use it to set up a new school.</p>
24595
24596 <p>First, install a combined Main Server and Thin Client Server as the
24597 central server in the network. Next, PXE boot all the client machines
24598 as thin clients and wait 5 minutes after the last client booted to
24599 allow the clients to report their existence to the central server. When
24600 this is done, log on to the central server and run
24601 <tt>sitesummary2ldapdhcp -a</tt> in the <tt>konsole</tt> to use the
24602 collected information to generate system objects in LDAP. The output
24603 will look similar to this:</p>
24604
24605 <p><blockquote><pre>
24606 % sitesummary2ldapdhcp -a
24607 info: Updating machine tjener.intern [10.0.2.2] id ether-00:01:02:03:04:05.
24608 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.
24609
24610 Enter password if you want to activate these changes, and ^c to abort.
24611
24612 Connecting to LDAP as cn=admin,ou=ldap-access,dc=skole,dc=skolelinux,dc=no
24613 enter password: *******
24614 %
24615 </pre></blockquote></p>
24616
24617 <p>After providing the LDAP administrative password (the same as the
24618 root password set during installation), the LDAP database will be
24619 populated with system objects for each PXE booted machine with
24620 automatically generated names. The final step to set up the school is
24621 then to log into <a href="https://oss.gonicus.de/labs/gosa/">GOsa</a>,
24622 the web based user, group and system administration system to change
24623 system names, add systems to the correct host groups and finally
24624 enable DHCP and DNS for the systems. All clients that should be used
24625 as diskless workstations should be added to the workstation-hosts
24626 group. After this is done, all computers can be booted again via PXE
24627 and get their assigned names and group based configuration
24628 automatically.</p>
24629
24630 <p>We plan to release beta3 with the updated version of this feature
24631 enabled this weekend. You might want to give it a try.</p>
24632
24633 <p>Update 2012-01-28: When calling sitesummary2ldapdhcp to add new
24634 hosts, one need to add the option -a. I forgot to mention this in my
24635 original text, and have added it to the text now.</p>
24636
24637 </div>
24638 <div class="tags">
24639
24640
24641 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>.
24642
24643
24644 </div>
24645 </div>
24646 <div class="padding"></div>
24647
24648 <div class="entry">
24649 <div class="title">
24650 <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>
24651 </div>
24652 <div class="date">
24653 10th January 2012
24654 </div>
24655 <div class="body">
24656 <p>In the Squeeze version of
24657 <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a> soon
24658 to be released, users of the system will get their default browser
24659 start page set from LDAP, allowing the system administrator to point
24660 all users to the school web page by updating one setting in LDAP. In
24661 addition to setting the default start page when a machine boots, users
24662 are shown the same page as a welcome page when they log in for the
24663 first time.</p>
24664
24665 <p>The LDAP object dc=skole,dc=skolelinux,dc=no have an attribute
24666 labeledURI with "http://www/ LDAP for Debian Edu/Skolelinux" as the
24667 default content. By changing this value to another URL, all users get
24668 to see the page behind this new URL.</p>
24669
24670 <p>An easy way to update it is by using the ldapvi tool. It can be
24671 called as "<tt>ldapvi -ZD '(cn=admin)'</tt>' to update LDAP with the
24672 new setting.</p>
24673
24674 <p>We have written the code to adjust the default start page and show
24675 the welcome page, and I wonder if there is an easier way to do this
24676 from within Iceweasel instead.</p>
24677
24678 </div>
24679 <div class="tags">
24680
24681
24682 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>.
24683
24684
24685 </div>
24686 </div>
24687 <div class="padding"></div>
24688
24689 <div class="entry">
24690 <div class="title">
24691 <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>
24692 </div>
24693 <div class="date">
24694 7th January 2012
24695 </div>
24696 <div class="body">
24697 <p>I am happy to announce that today we managed to wrap up and publish
24698 the second beta version of
24699 <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a>. If
24700 you want to test a LDAP backed Kerberos server with out of the box PXE
24701 configuration for running diskless machines and installing new
24702 machines, check it out. If you need a software solution for your
24703 school, check it out too. The full announcement is
24704 <a href="http://lists.debian.org/debian-edu-announce/2012/01/msg00000.html">available</a>
24705 on the project announcement list.</p>
24706
24707 </div>
24708 <div class="tags">
24709
24710
24711 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>.
24712
24713
24714 </div>
24715 </div>
24716 <div class="padding"></div>
24717
24718 <div class="entry">
24719 <div class="title">
24720 <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>
24721 </div>
24722 <div class="date">
24723 3rd January 2012
24724 </div>
24725 <div class="body">
24726 <p>During christmas, I have been working getting the next version of
24727 <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a> ready
24728 for release. The initial problem I looked at was particularly
24729 interesting.</p>
24730
24731 <P>The installer would hang at the end when it was doing it
24732 post-installation configuration, and whatevery I did to try to find
24733 the cause and fix it always worked while I tested it, but never when I
24734 integrated it into the installer and ran the installation from
24735 scratch. I would try to restart processes, close file descriptors,
24736 remove or create files, and the installer would always unblock and
24737 wrap up its tasks.</p>
24738
24739 <p>Eventually the cause was found. The kernel was simply running out
24740 of entropy, causing the Kerberos setup to hang waiting for more.
24741 Pressing keys was adding entropy to the kernel, and thus all my tries
24742 to fix the problem worked not because what I was typing to fix it, but
24743 because I was typing.</P>
24744
24745 <p>The fix I implemented was to add a background process looking at
24746 the level of entropy in the kernel (by checking
24747 /proc/sys/kernel/random/entropy_avail), and if it was too small, the
24748 installer will flush the kernel file buffers and do 'find /' to
24749 generate some disk IO. Disk IO generate entropy in the kernel, and is
24750 one of the few things that can be initated from within the system to
24751 generate entropy.</p>
24752
24753 <p>The fix is in
24754 <a href="http://wiki.debian.org/DebianEdu/Documentation/Squeeze/Installation">beta1
24755 of the Debian Edu/Squeeze</a> version, and we
24756 <a href="http://wiki.debian.org/DebianEdu">welcome more testers and
24757 developers</a>. We plan to release beta2 this weekend.</p>
24758
24759 </div>
24760 <div class="tags">
24761
24762
24763 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>.
24764
24765
24766 </div>
24767 </div>
24768 <div class="padding"></div>
24769
24770 <div class="entry">
24771 <div class="title">
24772 <a href="http://people.skolelinux.org/pere/blog/Automatically_upgrading_server_firmware_on_Dell_PowerEdge.html">Automatically upgrading server firmware on Dell PowerEdge</a>
24773 </div>
24774 <div class="date">
24775 21st November 2011
24776 </div>
24777 <div class="body">
24778 <p>At work we have heaps of servers. I believe the total count is
24779 around 1000 at the moment. To be able to get help from the vendors
24780 when something go wrong, we want to keep the firmware on the servers
24781 up to date. If the firmware isn't the latest and greatest, the
24782 vendors typically refuse to start debugging any problems until the
24783 firmware is upgraded. So before every reboot, we want to upgrade the
24784 firmware, and we would really like everyone handling servers at the
24785 university to do this themselves when they plan to reboot a machine.
24786 For that to happen we at the unix server admin group need to provide
24787 the tools to do so.</p>
24788
24789 <p>To make firmware upgrading easier, I am working on a script to
24790 fetch and install the latest firmware for the servers we got. Most of
24791 our hardware are from Dell and HP, so I have focused on these servers
24792 so far. This blog post is about the Dell part.</P>
24793
24794 <p>On the Dell FTP site I was lucky enough to find
24795 <a href="ftp://ftp.us.dell.com/catalog/Catalog.xml.gz">an XML file</a>
24796 with firmware information for all 11th generation servers, listing
24797 which firmware should be used on a given model and where on the FTP
24798 site I can find it. Using a simple perl XML parser I can then
24799 download the shell scripts Dell provides to do firmware upgrades from
24800 within Linux and reboot when all the firmware is primed and ready to
24801 be activated on the first reboot.</p>
24802
24803 <p>This is the Dell related fragment of the perl code I am working on.
24804 Are there anyone working on similar tools for firmware upgrading all
24805 servers at a site? Please get in touch and lets share resources.</p>
24806
24807 <p><pre>
24808 #!/usr/bin/perl
24809 use strict;
24810 use warnings;
24811 use File::Temp qw(tempdir);
24812 BEGIN {
24813 # Install needed RHEL packages if missing
24814 my %rhelmodules = (
24815 'XML::Simple' => 'perl-XML-Simple',
24816 );
24817 for my $module (keys %rhelmodules) {
24818 eval "use $module;";
24819 if ($@) {
24820 my $pkg = $rhelmodules{$module};
24821 system("yum install -y $pkg");
24822 eval "use $module;";
24823 }
24824 }
24825 }
24826 my $errorsto = 'pere@hungry.com';
24827
24828 upgrade_dell();
24829
24830 exit 0;
24831
24832 sub run_firmware_script {
24833 my ($opts, $script) = @_;
24834 unless ($script) {
24835 print STDERR "fail: missing script name\n";
24836 exit 1
24837 }
24838 print STDERR "Running $script\n\n";
24839
24840 if (0 == system("sh $script $opts")) { # FIXME correct exit code handling
24841 print STDERR "success: firmware script ran succcessfully\n";
24842 } else {
24843 print STDERR "fail: firmware script returned error\n";
24844 }
24845 }
24846
24847 sub run_firmware_scripts {
24848 my ($opts, @dirs) = @_;
24849 # Run firmware packages
24850 for my $dir (@dirs) {
24851 print STDERR "info: Running scripts in $dir\n";
24852 opendir(my $dh, $dir) or die "Unable to open directory $dir: $!";
24853 while (my $s = readdir $dh) {
24854 next if $s =~ m/^\.\.?/;
24855 run_firmware_script($opts, "$dir/$s");
24856 }
24857 closedir $dh;
24858 }
24859 }
24860
24861 sub download {
24862 my $url = shift;
24863 print STDERR "info: Downloading $url\n";
24864 system("wget --quiet \"$url\"");
24865 }
24866
24867 sub upgrade_dell {
24868 my @dirs;
24869 my $product = `dmidecode -s system-product-name`;
24870 chomp $product;
24871
24872 if ($product =~ m/PowerEdge/) {
24873
24874 # on RHEL, these pacakges are needed by the firwmare upgrade scripts
24875 system('yum install -y compat-libstdc++-33.i686 libstdc++.i686 libxml2.i686 procmail');
24876
24877 my $tmpdir = tempdir(
24878 CLEANUP => 1
24879 );
24880 chdir($tmpdir);
24881 fetch_dell_fw('catalog/Catalog.xml.gz');
24882 system('gunzip Catalog.xml.gz');
24883 my @paths = fetch_dell_fw_list('Catalog.xml');
24884 # -q is quiet, disabling interactivity and reducing console output
24885 my $fwopts = "-q";
24886 if (@paths) {
24887 for my $url (@paths) {
24888 fetch_dell_fw($url);
24889 }
24890 run_firmware_scripts($fwopts, $tmpdir);
24891 } else {
24892 print STDERR "error: Unsupported Dell model '$product'.\n";
24893 print STDERR "error: Please report to $errorsto.\n";
24894 }
24895 chdir('/');
24896 } else {
24897 print STDERR "error: Unsupported Dell model '$product'.\n";
24898 print STDERR "error: Please report to $errorsto.\n";
24899 }
24900 }
24901
24902 sub fetch_dell_fw {
24903 my $path = shift;
24904 my $url = "ftp://ftp.us.dell.com/$path";
24905 download($url);
24906 }
24907
24908 # Using ftp://ftp.us.dell.com/catalog/Catalog.xml.gz, figure out which
24909 # firmware packages to download from Dell. Only work for Linux
24910 # machines and 11th generation Dell servers.
24911 sub fetch_dell_fw_list {
24912 my $filename = shift;
24913
24914 my $product = `dmidecode -s system-product-name`;
24915 chomp $product;
24916 my ($mybrand, $mymodel) = split(/\s+/, $product);
24917
24918 print STDERR "Finding firmware bundles for $mybrand $mymodel\n";
24919
24920 my $xml = XMLin($filename);
24921 my @paths;
24922 for my $bundle (@{$xml->{SoftwareBundle}}) {
24923 my $brand = $bundle->{TargetSystems}->{Brand}->{Display}->{content};
24924 my $model = $bundle->{TargetSystems}->{Brand}->{Model}->{Display}->{content};
24925 my $oscode;
24926 if ("ARRAY" eq ref $bundle->{TargetOSes}->{OperatingSystem}) {
24927 $oscode = $bundle->{TargetOSes}->{OperatingSystem}[0]->{osCode};
24928 } else {
24929 $oscode = $bundle->{TargetOSes}->{OperatingSystem}->{osCode};
24930 }
24931 if ($mybrand eq $brand && $mymodel eq $model && "LIN" eq $oscode)
24932 {
24933 @paths = map { $_->{path} } @{$bundle->{Contents}->{Package}};
24934 }
24935 }
24936 for my $component (@{$xml->{SoftwareComponent}}) {
24937 my $componenttype = $component->{ComponentType}->{value};
24938
24939 # Drop application packages, only firmware and BIOS
24940 next if 'APAC' eq $componenttype;
24941
24942 my $cpath = $component->{path};
24943 for my $path (@paths) {
24944 if ($cpath =~ m%/$path$%) {
24945 push(@paths, $cpath);
24946 }
24947 }
24948 }
24949 return @paths;
24950 }
24951 </pre>
24952
24953 <p>The code is only tested on RedHat Enterprise Linux, but I suspect
24954 it could work on other platforms with some tweaking. Anyone know a
24955 index like Catalog.xml is available from HP for HP servers? At the
24956 moment I maintain a similar list manually and it is quickly getting
24957 outdated.</p>
24958
24959 </div>
24960 <div class="tags">
24961
24962
24963 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>.
24964
24965
24966 </div>
24967 </div>
24968 <div class="padding"></div>
24969
24970 <div class="entry">
24971 <div class="title">
24972 <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>
24973 </div>
24974 <div class="date">
24975 7th October 2011
24976 </div>
24977 <div class="body">
24978 <p>Here in Norway the public libraries are debating with the
24979 publishing houses how to handle electronic books. Surprisingly, the
24980 libraries seem to be willing to accept digital restriction mechanisms
24981 (DRM) on books and renting e-books with artificial scarcity from the
24982 publishing houses. Time limited renting (2-3 years) is one proposed
24983 model, and only allowing X borrowers for each book is another.
24984 Personally I find it amazing that libraries are even considering such
24985 models.</p>
24986
24987 <p>Anyway, while reading <a href="http://boklaben.no/?p=220">part of
24988 this debate</a>, it occurred to me that someone should present a more
24989 sensible approach to the libraries, to allow its borrowers to get used
24990 to a better model. The idea is simple:</p>
24991
24992 <p>Create a computer system for the libraries, either in the form of a
24993 Live DVD or a installable distribution, that provide a simple kiosk
24994 solution to hand out free e-books. As a start, the books distributed
24995 by <a href="http://www.gutenberg.org/">Project Gutenberg</a> (about
24996 36,000 books), <a href="http://runeberg.org/">Project Runenberg</a>
24997 (1149 books) and <a href="http://www.archive.org/details/texts">The
24998 Internet Archive</a> (3,033,748 books) could be included, but any book
24999 where the copyright has expired or with a free licence could be
25000 distributed.</p>
25001
25002 <p>The computer system would make it easy to:</p>
25003
25004 <ul>
25005
25006 <li>Copy e-books into a USB stick, reading tablets, cell phones and
25007 other relevant equipment.</li>
25008
25009 <li>Show the books for reading on the the screen in the library.</li>
25010
25011 </ul>
25012
25013 <p>In addition to such kiosk solution, there should probably be a web
25014 site as well to allow people easy access to these books without
25015 visiting the library. The site would be the distribution point for
25016 the kiosk systems, which would connect regularly to fetch any new
25017 books available.</p>
25018
25019 <p>Are there anyone working on a system like this? I guess it would
25020 fit any library in the world, and not just the Norwegian public
25021 libraries. :)</p>
25022
25023 </div>
25024 <div class="tags">
25025
25026
25027 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>.
25028
25029
25030 </div>
25031 </div>
25032 <div class="padding"></div>
25033
25034 <div class="entry">
25035 <div class="title">
25036 <a href="http://people.skolelinux.org/pere/blog/Ripping_problematic_DVDs_using_dvdbackup_and_genisoimage.html">Ripping problematic DVDs using dvdbackup and genisoimage</a>
25037 </div>
25038 <div class="date">
25039 17th September 2011
25040 </div>
25041 <div class="body">
25042 <p>For convenience, I want to store copies of all my DVDs on my file
25043 server. It allow me to save shelf space flat while still having my
25044 movie collection easily available. It also make it possible to let
25045 the kids see their favourite DVDs without wearing the physical copies
25046 down. I prefer to store the DVDs as ISOs to keep the DVD menu and
25047 subtitle options intact. It also ensure that the entire film is one
25048 file on the disk. As this is for personal use, the ripping is
25049 perfectly legal here in Norway.</p>
25050
25051 <p>Normally I rip the DVDs using dd like this:</p>
25052
25053 <blockquote><pre>
25054 #!/bin/sh
25055 # apt-get install lsdvd
25056 title=$(lsdvd 2>/dev/null|awk '/Disc Title: / {print $3}')
25057 dd if=/dev/dvd of=/storage/dvds/$title.iso bs=1M
25058 </pre></blockquote>
25059
25060 <p>But some DVDs give a input/output error when I read it, and I have
25061 been looking for a better alternative. I have no idea why this I/O
25062 error occur, but suspect my DVD drive, the Linux kernel driver or
25063 something fishy with the DVDs in question. Or perhaps all three.</p>
25064
25065 <p>Anyway, I believe I found a solution today using dvdbackup and
25066 genisoimage. This script gave me a working ISO for a problematic
25067 movie by first extracting the DVD file system and then re-packing it
25068 back as an ISO.
25069
25070 <blockquote><pre>
25071 #!/bin/sh
25072 # apt-get install lsdvd dvdbackup genisoimage
25073 set -e
25074 tmpdir=/storage/dvds/
25075 title=$(lsdvd 2>/dev/null|awk '/Disc Title: / {print $3}')
25076 dvdbackup -i /dev/dvd -M -o $tmpdir -n$title
25077 genisoimage -dvd-video -o $tmpdir/$title.iso $tmpdir/$title
25078 rm -rf $tmpdir/$title
25079 </pre></blockquote>
25080
25081 <p>Anyone know of a better way available in Debian/Squeeze?</p>
25082
25083 <p>Update 2011-09-18: I got a tip from Konstantin Khomoutov about the
25084 readom program from the wodim package. It is specially written to
25085 read optical media, and is called like this: <tt>readom dev=/dev/dvd
25086 f=image.iso</tt>. It got 6 GB along with the problematic Cars DVD
25087 before it failed, and failed right away with a Timmy Time DVD.</p>
25088
25089 <p>Next, I got a tip from Bastian Blank about
25090 <a href="http://bblank.thinkmo.de/blog/new-software-python-dvdvideo">his
25091 program python-dvdvideo</a>, which seem to be just what I am looking
25092 for. Tested it with my problematic Timmy Time DVD, and it succeeded
25093 creating a ISO image. The git source built and installed just fine in
25094 Squeeze, so I guess this will be my tool of choice in the future.</p>
25095
25096 </div>
25097 <div class="tags">
25098
25099
25100 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
25101
25102
25103 </div>
25104 </div>
25105 <div class="padding"></div>
25106
25107 <div class="entry">
25108 <div class="title">
25109 <a href="http://people.skolelinux.org/pere/blog/How_is_booting_into_runlevel_1_different_from_single_user_boots_.html">How is booting into runlevel 1 different from single user boots?</a>
25110 </div>
25111 <div class="date">
25112 4th August 2011
25113 </div>
25114 <div class="body">
25115 <p>Wouter Verhelst have some
25116 <a href="http://grep.be/blog/en/retorts/pere_kubuntu_boot">interesting
25117 comments and opinions</a> on my blog post on
25118 <a href="http://people.skolelinux.org/pere/blog/What_should_start_from__etc_rcS_d__in_Debian____almost_nothing.html">the
25119 need to clean up /etc/rcS.d/ in Debian</a> and my blog post about
25120 <a href="http://people.skolelinux.org/pere/blog/What_is_missing_in_the_Debian_desktop__or_why_my_parents_use_Kubuntu.html">the
25121 default KDE desktop in Debian</a>. I only have time to address one
25122 small piece of his comment now, and though it best to address the
25123 misunderstanding he bring forward:</p>
25124
25125 <p><blockquote>
25126 Currently, a system admin has four options: [...] boot to a
25127 single-user system (by adding 'single' to the kernel command line;
25128 this runs rcS and rc1 scripts)
25129 </blockquote></p>
25130
25131 <p>This make me believe Wouter believe booting into single user mode
25132 and booting into runlevel 1 is the same. I am not surprised he
25133 believe this, because it would make sense and is a quite sensible
25134 thing to believe. But because the boot in Debian is slightly broken,
25135 runlevel 1 do not work properly and it isn't the same as single user
25136 mode. I'll try to explain what is actually happing, but it is a bit
25137 hard to explain.</p>
25138
25139 <p>Single user mode is defined like this in /etc/inittab:
25140 "<tt>~~:S:wait:/sbin/sulogin</tt>". This means the only thing that is
25141 executed in single user mode is sulogin. Single user mode is a boot
25142 state "between" the runlevels, and when booting into single user mode,
25143 only the scripts in /etc/rcS.d/ are executed before the init process
25144 enters the single user state. When switching to runlevel 1, the state
25145 is in fact not ending in runlevel 1, but it passes through runlevel 1
25146 and end up in the single user mode (see /etc/rc1.d/S03single, which
25147 runs "init -t1 S" to switch to single user mode at the end of runlevel
25148 1. It is confusing that the 'S' (single user) init mode is not the
25149 mode enabled by /etc/rcS.d/ (which is more like the initial boot
25150 mode).</p>
25151
25152 <p>This summary might make it clearer. When booting for the first
25153 time into single user mode, the following commands are executed:
25154 "<tt>/etc/init.d/rc S; /sbin/sulogin</tt>". When booting into
25155 runlevel 1, the following commands are executed: "<tt>/etc/init.d/rc
25156 S; /etc/init.d/rc 1; /sbin/sulogin</tt>". A problem show up when
25157 trying to continue after visiting single user mode. Not all services
25158 are started again as they should, causing the machine to end up in an
25159 unpredicatble state. This is why Debian admins recommend rebooting
25160 after visiting single user mode.</p>
25161
25162 <p>A similar problem with runlevel 1 is caused by the amount of
25163 scripts executed from /etc/rcS.d/. When switching from say runlevel 2
25164 to runlevel 1, the services started from /etc/rcS.d/ are not properly
25165 stopped when passing through the scripts in /etc/rc1.d/, and not
25166 started again when switching away from runlevel 1 to the runlevels
25167 2-5. I believe the problem is best fixed by moving all the scripts
25168 out of /etc/rcS.d/ that are not <strong>required</strong> to get a
25169 functioning single user mode during boot.</p>
25170
25171 <p>I have spent several years investigating the Debian boot system,
25172 and discovered this problem a few years ago. I suspect it originates
25173 from when sysvinit was introduced into Debian, a long time ago.</p>
25174
25175 </div>
25176 <div class="tags">
25177
25178
25179 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>.
25180
25181
25182 </div>
25183 </div>
25184 <div class="padding"></div>
25185
25186 <div class="entry">
25187 <div class="title">
25188 <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>
25189 </div>
25190 <div class="date">
25191 30th July 2011
25192 </div>
25193 <div class="body">
25194 <p>In the Debian boot system, several packages include scripts that
25195 are started from /etc/rcS.d/. In fact, there is a bite more of them
25196 than make sense, and this causes a few problems. What kind of
25197 problems, you might ask. There are at least two problems. The first
25198 is that it is not possible to recover a machine after switching to
25199 runlevel 1. One need to actually reboot to get the machine back to
25200 the expected state. The other is that single user boot will sometimes
25201 run into problems because some of the subsystems are activated before
25202 the root login is presented, causing problems when trying to recover a
25203 machine from a problem in that subsystem. A minor additional point is
25204 that moving more scripts out of rcS.d/ and into the other rc#.d/
25205 directories will increase the amount of scripts that can run in
25206 parallel during boot, and thus decrease the boot time.</p>
25207
25208 <p>So, which scripts should start from rcS.d/. In short, only the
25209 scripts that _have_ to execute before the root login prompt is
25210 presented during a single user boot should go there. Everything else
25211 should go into the numeric runlevels. This means things like
25212 lm-sensors, fuse and x11-common should not run from rcS.d, but from
25213 the numeric runlevels. Today in Debian, there are around 115 init.d
25214 scripts that are started from rcS.d/, and most of them should be moved
25215 out. Do your package have one of them? Please help us make single
25216 user and runlevel 1 better by moving it.</p>
25217
25218 <p>Scripts setting up the screen, keyboard, system partitions
25219 etc. should still be started from rcS.d/, but there is for example no
25220 need to have the network enabled before the single user login prompt
25221 is presented.</p>
25222
25223 <p>As always, things are not so easy to fix as they sound. To keep
25224 Debian systems working while scripts migrate and during upgrades, the
25225 scripts need to be moved from rcS.d/ to rc2.d/ in reverse dependency
25226 order, ie the scripts that nothing in rcS.d/ depend on can be moved,
25227 and the next ones can only be moved when their dependencies have been
25228 moved first. This migration must be done sequentially while we ensure
25229 that the package system upgrade packages in the right order to keep
25230 the system state correct. This will require some coordination when it
25231 comes to network related packages, but most of the packages with
25232 scripts that should migrate do not have anything in rcS.d/ depending
25233 on them. Some packages have already been updated, like the sudo
25234 package, while others are still left to do. I wish I had time to work
25235 on this myself, but real live constrains make it unlikely that I will
25236 find time to push this forward.</p>
25237
25238 </div>
25239 <div class="tags">
25240
25241
25242 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>.
25243
25244
25245 </div>
25246 </div>
25247 <div class="padding"></div>
25248
25249 <div class="entry">
25250 <div class="title">
25251 <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>
25252 </div>
25253 <div class="date">
25254 29th July 2011
25255 </div>
25256 <div class="body">
25257 <p>While at Debconf11, I have several times during discussions
25258 mentioned the issues I believe should be improved in Debian for its
25259 desktop to be useful for more people. The use case for this is my
25260 parents, which are currently running Kubuntu which solve the
25261 issues.</p>
25262
25263 <p>I suspect these four missing features are not very hard to
25264 implement. After all, they are present in Ubuntu, so if we wanted to
25265 do this in Debian we would have a source.</p>
25266
25267 <ol>
25268
25269 <li><strong>Simple GUI based upgrade of packages.</strong> When there
25270 are new packages available for upgrades, a icon in the KDE status bar
25271 indicate this, and clicking on it will activate the simple upgrade
25272 tool to handle it. I have no problem guiding both of my parents
25273 through the process over the phone. If a kernel reboot is required,
25274 this too is indicated by the status bars and the upgrade tool. Last
25275 time I checked, nothing with the same features was working in KDE in
25276 Debian.</li>
25277
25278 <li><strong>Simple handling of missing Firefox browser
25279 plugins.</strong> When the browser encounter a MIME type it do not
25280 currently have a handler for, it will ask the user if the system
25281 should search for a package that would add support for this MIME type,
25282 and if the user say yes, the APT sources will be searched for packages
25283 advertising the MIME type in their control file (visible in the
25284 Packages file in the APT archive). If one or more packages are found,
25285 it is a simple click of the mouse to add support for the missing mime
25286 type. If the package require the user to accept some non-free
25287 license, this is explained to the user. The entire process make it
25288 more clear to the user why something do not work in the browser, and
25289 make the chances higher for the user to blame the web page authors and
25290 not the browser for any missing features.</li>
25291
25292 <li><strong>Simple handling of missing multimedia codec/format
25293 handlers.</strong> When the media players encounter a format or codec
25294 it is not supporting, a dialog pop up asking the user if the system
25295 should search for a package that would add support for it. This
25296 happen with things like MP3, Windows Media or H.264. The selection
25297 and installation procedure is very similar to the Firefox browser
25298 plugin handling. This is as far as I know implemented using a
25299 gstreamer hook. The end result is that the user easily get access to
25300 the codecs that are present from the APT archives available, while
25301 explaining more on why a given format is unsupported by Ubuntu.</li>
25302
25303 <li><strong>Better browser handling of some MIME types.</strong> When
25304 displaying a text/plain file in my Debian browser, it will propose to
25305 start emacs to show it. If I remember correctly, when doing the same
25306 in Kunbutu it show the file as a text file in the browser. At least I
25307 know Opera will show text files within the browser. I much prefer the
25308 latter behaviour.</li>
25309
25310 </ol>
25311
25312 <p>There are other nice features as well, like the simplified suite
25313 upgrader, but given that I am the one mostly doing the dist-upgrade,
25314 it do not matter much.</p>
25315
25316 <p>I really hope we could get these features in place for the next
25317 Debian release. It would require the coordinated effort of several
25318 maintainers, but would make the end user experience a lot better.</p>
25319
25320 </div>
25321 <div class="tags">
25322
25323
25324 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/h264">h264</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</a>.
25325
25326
25327 </div>
25328 </div>
25329 <div class="padding"></div>
25330
25331 <div class="entry">
25332 <div class="title">
25333 <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>
25334 </div>
25335 <div class="date">
25336 26th July 2011
25337 </div>
25338 <div class="body">
25339 <p>The Norwegian <a href="http://www.fiksgatami.no/">FiksGataMi</A>
25340 site is build on Debian/Squeeze, and this platform was chosen because
25341 I am most familiar with Debian (being a Debian Developer for around 10
25342 years) because it is the latest stable Debian release which should get
25343 security support for a few years.</p>
25344
25345 <p>The web service is written in Perl, and depend on some perl modules
25346 that are missing in Debian at the moment. It would be great if these
25347 modules were added to the Debian archive, allowing anyone to set up
25348 their own <a href="http://www.fixmystreet.com">FixMyStreet</a> clone
25349 in their own country using only Debian packages. The list of modules
25350 missing in Debian/Squeeze isn't very long, and I hope the perl group
25351 will find time to package the 12 modules Catalyst::Plugin::SmartURI,
25352 Catalyst::Plugin::Unicode::Encoding, Catalyst::View::TT, Devel::Hide,
25353 Sort::Key, Statistics::Distributions, Template::Plugin::Comma,
25354 Template::Plugin::DateTime::Format, Term::Size::Any, Term::Size::Perl,
25355 URI::SmartURI and Web::Scraper to make the maintenance of FixMyStreet
25356 easier in the future.</p>
25357
25358 <p>Thanks to the great tools in Debian, getting the missing modules
25359 installed on my server was a simple call to 'cpan2deb Module::Name'
25360 and 'dpkg -i' to install the resulting package. But this leave me
25361 with the responsibility of tracking security problems, which I really
25362 do not have time for.</p>
25363
25364 </div>
25365 <div class="tags">
25366
25367
25368 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>.
25369
25370
25371 </div>
25372 </div>
25373 <div class="padding"></div>
25374
25375 <div class="entry">
25376 <div class="title">
25377 <a href="http://people.skolelinux.org/pere/blog/Free_Software_vs__proprietary_softare___.html">Free Software vs. proprietary softare...</a>
25378 </div>
25379 <div class="date">
25380 20th June 2011
25381 </div>
25382 <div class="body">
25383 <p>Reading
25384 <a href="http://blog.thingiverse.com/2011/06/20/open-source-vs-closed-source-eulas/">the
25385 thingiverse blog</a>, I came across two highlights of interesting
25386 parts of the
25387 <a href="http://wiki.blender.org/index.php/Autodesk_EULA">Autodesk</a>
25388 and
25389 <a href="http://blog.makezine.com/archive/2011/06/things-you-cant-do-with-the-microsoft-kinect-sdk.html">Microsoft
25390 Kinect</a> End User License Agreements (EULAs), which illustrates
25391 quite well why I stay away from software with EULAs. Whenever I take
25392 the time to read their content, the terms are simply unacceptable.</p>
25393
25394 </div>
25395 <div class="tags">
25396
25397
25398 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>.
25399
25400
25401 </div>
25402 </div>
25403 <div class="padding"></div>
25404
25405 <div class="entry">
25406 <div class="title">
25407 <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>
25408 </div>
25409 <div class="date">
25410 30th April 2011
25411 </div>
25412 <div class="body">
25413 <p>Today, the first draft implementation of an
25414 <a href="http://www.open311.org/">Open311 API</a> for the Norwegian
25415 service <a href="http://www.fiksgatami.no/">FiksGataMi</a> started to
25416 work. It is only available on the developer server for now, and I
25417 have not tested it using any existing Open311 client (I lack the
25418 platforms needed to run the clients I have found so far), but it is
25419 able to query the database and extract a list of open and closed
25420 requests within a given category and reported to a given municipality.
25421 I believe that is a good start to create a useful service for those
25422 that want to do data mining on the requests submitted so far.</p>
25423
25424 <p>Where is it? Visit
25425 <a href="http://fiksgatami-dev.nuug.no/open311.cgi/v2/">http://fiksgatami-dev.nuug.no/open311.cgi/v2/</a>
25426 to have a look. Please send feedback to the
25427 <a href="http://lists.nuug.no/mailman/listinfo/fiksgatami">fiksgatami
25428 (at) nuug.no</a> mailing list.</p>
25429
25430 </div>
25431 <div class="tags">
25432
25433
25434 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>.
25435
25436
25437 </div>
25438 </div>
25439 <div class="padding"></div>
25440
25441 <div class="entry">
25442 <div class="title">
25443 <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>
25444 </div>
25445 <div class="date">
25446 29th April 2011
25447 </div>
25448 <div class="body">
25449 <p>The last few days I have spent some time trying to add support for
25450 the <a href="http://www.open311.org/">Open311 API</a> in the
25451 <a href="http://www.fiksgatami.no/">Norwegian FixMyStreet service</a>.
25452 Earlier I believed Open311 would be a useful API to use to submit
25453 reports to the municipalities, but when I noticed that the
25454 <a href="http://fixmystreet.org.nz/">New Zealand version</a> of
25455 FixMyStreet had implemented Open311 on the server side, it occurred to
25456 me that this was a nice way to allow the public, press and
25457 municipalities to do data mining directly in the FixMyStreet service.
25458 Thus I went to work implementing the Open311 specification for
25459 FixMyStreet. The implementation is not yet ready, but I am starting
25460 to get a draft limping along. In the process, I have discovered a few
25461 issues with the Open311 specification.</p>
25462
25463 <p>One obvious missing feature is the lack of natural language
25464 handling in the specification. The specification seem to assume all
25465 reports will be written in English, and do not provide a way for the
25466 receiving end to specify which languages are understood there. To be
25467 able to use the same client and submit to several Open311 receivers,
25468 it would be useful to know which language to use when writing reports.
25469 I believe the specification should be extended to allow the receivers
25470 of problem reports to specify which language they accept, and the
25471 submitter to specify which language the report is written in.
25472 Language of a text can also be automatically guessed using statistical
25473 methods, but for multi-lingual persons like myself, it is useful to
25474 know which language to use when writing a problem report. I suspect
25475 some lang=nb,nn kind of attribute would solve it.</p>
25476
25477 <p>A key part of the Open311 API is the list of services provided,
25478 which is similar to the categories used by FixMyStreet. One issue I
25479 run into is the need to specify both name and unique identifier for
25480 each category. The specification do not state that the identifier
25481 should be numeric, but all example implementations have used numbers
25482 here. In FixMyStreet, there is no number associated with each
25483 category. As the specification do not forbid it, I will use the name
25484 as the unique identifier for now and see how open311 clients handle
25485 it.</p>
25486
25487 <p>The report format in open311 and the report format in FixMyStreet
25488 differ in a key part. FixMyStreet have a title and a description,
25489 while Open311 only have a description and lack the title. I'm not
25490 quite sure how to best handle this yet. When asking for a FixMyStreet
25491 report in Open311 format, I just merge title an description into the
25492 open311 description, but this is not going to work if the open311 API
25493 should be used for submitting new reports to FixMyStreet.</p>
25494
25495 <p>The search feature in Open311 is missing a way to ask for problems
25496 near a geographic location. I believe this is important if one is to
25497 use Open311 as the query language for mobile units. The specification
25498 should be extended to handle this, probably using some new lat=, lon=
25499 and range= options.</p>
25500
25501 <p>The final challenge I see is that the FixMyStreet code handle
25502 several administrations in one interface, while the Open311 API seem
25503 to assume only one administration. For FixMyStreet, this mean a
25504 report can be sent to several administrations, and the categories
25505 available depend on the location of the problem. Not quite sure how
25506 to best handle this. I've noticed
25507 <a href="http://seeclickfix.com/open311/">SeeClickFix</a> added
25508 latitude and longitude options to the services request, but it do not
25509 solve the problem of what to return when no location is specified.
25510 Will have to investigate this a bit more.</p>
25511
25512 <p>My distaste for web forums have kept me from bringing these issues
25513 up with the open311 developer group. I really wish they had a email
25514 list available via <a href="http://www.gmane.org/">Gmane</a> to use for
25515 discussions instead of only
25516 <a href="http://lists.open311.org/groups/discuss">a forum<a/>. Oh,
25517 well. That will probably resolve itself, one way or another. I've
25518 also tried visiting the IRC channel #open311 on FreeNode, but no-one
25519 seem to reply to my questions there. This make me wonder if I just
25520 fail to understand how the open311 community work. It sure do not
25521 work like the free software project communities I am used to.</p>
25522
25523 </div>
25524 <div class="tags">
25525
25526
25527 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>.
25528
25529
25530 </div>
25531 </div>
25532 <div class="padding"></div>
25533
25534 <div class="entry">
25535 <div class="title">
25536 <a href="http://people.skolelinux.org/pere/blog/Gnash_enteres_Google_Summer_of_Code_2011.html">Gnash enteres Google Summer of Code 2011</a>
25537 </div>
25538 <div class="date">
25539 6th April 2011
25540 </div>
25541 <div class="body">
25542 <p><a href="http://www.getgnash.org/">The Gnash project</a> is still
25543 the most promising solution for a Free Software Flash implementation.
25544 A few days ago the project
25545 <a href="http://lists.gnu.org/archive/html/gnash-dev/2011-04/msg00011.html">announced</a>
25546 that it will participate in Google Summer of Code. I hope many
25547 students apply, and that some of them succeed in getting AVM2 support
25548 into Gnash.</p>
25549
25550 </div>
25551 <div class="tags">
25552
25553
25554 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>.
25555
25556
25557 </div>
25558 </div>
25559 <div class="padding"></div>
25560
25561 <div class="entry">
25562 <div class="title">
25563 <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>
25564 </div>
25565 <div class="date">
25566 3rd April 2011
25567 </div>
25568 <div class="body">
25569 <p>Here is a small update for my English readers. Most of my blog
25570 posts have been in Norwegian the last few weeks, so here is a short
25571 update in English.</p>
25572
25573 <p>The kids still keep me too busy to get much free software work
25574 done, but I did manage to organise a project to get a Norwegian port
25575 of the British service
25576 <a href="http://www.fixmystreet.com/">FixMyStreet</a> up and running,
25577 and it has been running for a month now. The entire project has been
25578 organised by me and two others. Around Christmas we gathered sponsors
25579 to fund the development work. In January I drafted a contract with
25580 <a href="http://www.mysociety.org/">mySociety</a> on what to develop,
25581 and in February the development took place. Most of it involved
25582 converting the source to use GPS coordinates instead of British
25583 easting/northing, and the resulting code should be a lot easier to get
25584 running in any country by now. The Norwegian
25585 <a href="http://www.fiksgatami.no/">FiksGataMi</a> is using
25586 <a href="http://www.openstreetmap.org/">OpenStreetmap</a> as the map
25587 source and the source for administrative borders in Norway, and
25588 support for this had to be added/fixed.</p>
25589
25590 <p>The Norwegian version went live March 3th, and we spent the weekend
25591 polishing the system before we announced it March 7th. The system is
25592 running on a KVM instance of Debian/Squeeze, and has seen almost 3000
25593 problem reports in a few weeks. Soon we hope to announce the Android
25594 and iPhone versions making it even easier to report problems with the
25595 public infrastructure.</p>
25596
25597 <p>Perhaps something to consider for those of you in countries without
25598 such service?</p>
25599
25600 </div>
25601 <div class="tags">
25602
25603
25604 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>.
25605
25606
25607 </div>
25608 </div>
25609 <div class="padding"></div>
25610
25611 <div class="entry">
25612 <div class="title">
25613 <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>
25614 </div>
25615 <div class="date">
25616 28th January 2011
25617 </div>
25618 <div class="body">
25619 <p>The last few days I have looked at ways to track open security
25620 issues here at my work with the University of Oslo. My idea is that
25621 it should be possible to use the information about security issues
25622 available on the Internet, and check our locally
25623 maintained/distributed software against this information. It should
25624 allow us to verify that no known security issues are forgotten. The
25625 CVE database listing vulnerabilities seem like a great central point,
25626 and by using the package lists from Debian mapped to CVEs provided by
25627 the testing security team, I believed it should be possible to figure
25628 out which security holes were present in our free software
25629 collection.</p>
25630
25631 <p>After reading up on the topic, it became obvious that the first
25632 building block is to be able to name software packages in a unique and
25633 consistent way across data sources. I considered several ways to do
25634 this, for example coming up with my own naming scheme like using URLs
25635 to project home pages or URLs to the Freshmeat entries, or using some
25636 existing naming scheme. And it seem like I am not the first one to
25637 come across this problem, as MITRE already proposed and implemented a
25638 solution. Enter the <a href="http://cpe.mitre.org/index.html">Common
25639 Platform Enumeration</a> dictionary, a vocabulary for referring to
25640 software, hardware and other platform components. The CPE ids are
25641 mapped to CVEs in the <a href="http://web.nvd.nist.gov/">National
25642 Vulnerability Database</a>, allowing me to look up know security
25643 issues for any CPE name. With this in place, all I need to do is to
25644 locate the CPE id for the software packages we use at the university.
25645 This is fairly trivial (I google for 'cve cpe $package' and check the
25646 NVD entry if a CVE for the package exist).</p>
25647
25648 <p>To give you an example. The GNU gzip source package have the CPE
25649 name cpe:/a:gnu:gzip. If the old version 1.3.3 was the package to
25650 check out, one could look up
25651 <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
25652 in NVD</a> and get a list of 6 security holes with public CVE entries.
25653 The most recent one is
25654 <a href="http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2010-0001">CVE-2010-0001</a>,
25655 and at the bottom of the NVD page for this vulnerability the complete
25656 list of affected versions is provided.</p>
25657
25658 <p>The NVD database of CVEs is also available as a XML dump, allowing
25659 for offline processing of issues. Using this dump, I've written a
25660 small script taking a list of CPEs as input and list all CVEs
25661 affecting the packages represented by these CPEs. One give it CPEs
25662 with version numbers as specified above and get a list of open
25663 security issues out.</p>
25664
25665 <p>Of course for this approach to be useful, the quality of the NVD
25666 information need to be high. For that to happen, I believe as many as
25667 possible need to use and contribute to the NVD database. I notice
25668 RHEL is providing
25669 <a href="https://www.redhat.com/security/data/metrics/rhsamapcpe.txt">a
25670 map from CVE to CPE</a>, indicating that they are using the CPE
25671 information. I'm not aware of Debian and Ubuntu doing the same.</p>
25672
25673 <p>To get an idea about the quality for free software, I spent some
25674 time making it possible to compare the CVE database from Debian with
25675 the CVE database in NVD. The result look fairly good, but there are
25676 some inconsistencies in NVD (same software package having several
25677 CPEs), and some inaccuracies (NVD not mentioning buggy packages that
25678 Debian believe are affected by a CVE). Hope to find time to improve
25679 the quality of NVD, but that require being able to get in touch with
25680 someone maintaining it. So far my three emails with questions and
25681 corrections have not seen any reply, but I hope contact can be
25682 established soon.</p>
25683
25684 <p>An interesting application for CPEs is cross platform package
25685 mapping. It would be useful to know which packages in for example
25686 RHEL, OpenSuSe and Mandriva are missing from Debian and Ubuntu, and
25687 this would be trivial if all linux distributions provided CPE entries
25688 for their packages.</p>
25689
25690 </div>
25691 <div class="tags">
25692
25693
25694 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>.
25695
25696
25697 </div>
25698 </div>
25699 <div class="padding"></div>
25700
25701 <div class="entry">
25702 <div class="title">
25703 <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>
25704 </div>
25705 <div class="date">
25706 23rd January 2011
25707 </div>
25708 <div class="body">
25709 <p>In the
25710 <a href="http://packages.qa.debian.org/discover-data">discover-data</a>
25711 package in Debian, there is a script to report useful information
25712 about the running hardware for use when people report missing
25713 information. One part of this script that I find very useful when
25714 debugging hardware problems, is the part mapping loaded kernel module
25715 to the PCI device it claims. It allow me to quickly see if the kernel
25716 module I expect is driving the hardware I am struggling with. To see
25717 the output, make sure discover-data is installed and run
25718 <tt>/usr/share/bug/discover-data 3>&1</tt>. The relevant output on
25719 one of my machines like this:</p>
25720
25721 <pre>
25722 loaded modules:
25723 10de:03eb i2c_nforce2
25724 10de:03f1 ohci_hcd
25725 10de:03f2 ehci_hcd
25726 10de:03f0 snd_hda_intel
25727 10de:03ec pata_amd
25728 10de:03f6 sata_nv
25729 1022:1103 k8temp
25730 109e:036e bttv
25731 109e:0878 snd_bt87x
25732 11ab:4364 sky2
25733 </pre>
25734
25735 <p>The code in question look like this, slightly modified for
25736 readability and to drop the output to file descriptor 3:</p>
25737
25738 <pre>
25739 if [ -d /sys/bus/pci/devices/ ] ; then
25740 echo loaded pci modules:
25741 (
25742 cd /sys/bus/pci/devices/
25743 for address in * ; do
25744 if [ -d "$address/driver/module" ] ; then
25745 module=`cd $address/driver/module ; pwd -P | xargs basename`
25746 if grep -q "^$module " /proc/modules ; then
25747 address=$(echo $address |sed s/0000://)
25748 id=`lspci -n -s $address | tail -n 1 | awk '{print $3}'`
25749 echo "$id $module"
25750 fi
25751 fi
25752 done
25753 )
25754 echo
25755 fi
25756 </pre>
25757
25758 <p>Similar code could be used to extract USB device module
25759 mappings:</p>
25760
25761 <pre>
25762 if [ -d /sys/bus/usb/devices/ ] ; then
25763 echo loaded usb modules:
25764 (
25765 cd /sys/bus/usb/devices/
25766 for address in * ; do
25767 if [ -d "$address/driver/module" ] ; then
25768 module=`cd $address/driver/module ; pwd -P | xargs basename`
25769 if grep -q "^$module " /proc/modules ; then
25770 address=$(echo $address |sed s/0000://)
25771 id=$(lsusb -s $address | tail -n 1 | awk '{print $6}')
25772 if [ "$id" ] ; then
25773 echo "$id $module"
25774 fi
25775 fi
25776 fi
25777 done
25778 )
25779 echo
25780 fi
25781 </pre>
25782
25783 <p>This might perhaps be something to include in other tools as
25784 well.</p>
25785
25786 </div>
25787 <div class="tags">
25788
25789
25790 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>.
25791
25792
25793 </div>
25794 </div>
25795 <div class="padding"></div>
25796
25797 <div class="entry">
25798 <div class="title">
25799 <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>
25800 </div>
25801 <div class="date">
25802 16th January 2011
25803 </div>
25804 <div class="body">
25805 <p>The video format struggle on the web continues, and the three
25806 contenders seem to be Ogg Theora, H.264 and WebM. Most video sites
25807 seem to use H.264, while others use Ogg Theora. Interestingly enough,
25808 the comments I see give me the feeling that a lot of people believe
25809 H.264 is the most supported video format in browsers, but according to
25810 the Wikipedia article on
25811 <a href="http://en.wikipedia.org/wiki/HTML5_video">HTML5 video</a>,
25812 this is not true. Check out the nice table of supprted formats in
25813 different browsers there. The format supported by most browsers is
25814 Ogg Theora, supported by released versions of Mozilla Firefox, Google
25815 Chrome, Chromium, Opera, Konqueror, Epiphany, Origyn Web Browser and
25816 BOLT browser, while not supported by Internet Explorer nor Safari.
25817 The runner up is WebM supported by released versions of Google Chrome
25818 Chromium Opera and Origyn Web Browser, and test versions of Mozilla
25819 Firefox. H.264 is supported by released versions of Safari, Origyn
25820 Web Browser and BOLT browser, and the test version of Internet
25821 Explorer. Those wanting Ogg Theora support in Internet Explorer and
25822 Safari can install plugins to get it.</p>
25823
25824 <p>To me, the simple conclusion from this is that to reach most users
25825 without any extra software installed, one uses Ogg Theora with the
25826 HTML5 video tag. Of course to reach all those without a browser
25827 handling HTML5, one need fallback mechanisms. In
25828 <a href="http://www.nuug.no/">NUUG</a>, we provide first fallback to a
25829 plugin capable of playing MPEG1 video, and those without such support
25830 we have a second fallback to the Cortado java applet playing Ogg
25831 Theora. This seem to work quite well, as can be seen in an <a
25832 href="http://www.nuug.no/aktiviteter/20110111-semantic-web/">example
25833 from last week</a>.</p>
25834
25835 <p>The reason Ogg Theora is the most supported format, and H.264 is
25836 the least supported is simple. Implementing and using H.264
25837 require royalty payment to MPEG-LA, and the terms of use from MPEG-LA
25838 are incompatible with free software licensing. If you believed H.264
25839 was without royalties and license terms, check out
25840 "<a href="http://webmink.com/essays/h-264/">H.264 – Not The Kind Of
25841 Free That Matters</a>" by Simon Phipps.</p>
25842
25843 <p>A incomplete list of sites providing video in Ogg Theora is
25844 available from
25845 <a href="http://wiki.xiph.org/index.php/List_of_Theora_videos">the
25846 Xiph.org wiki</a>, if you want to have a look. I'm not aware of a
25847 similar list for WebM nor H.264.</p>
25848
25849 <p>Update 2011-01-16 09:40: A question from Tollef on IRC made me
25850 realise that I failed to make it clear enough this text is about the
25851 &lt;video&gt; tag support in browsers and not the video support
25852 provided by external plugins like the Flash plugins.</p>
25853
25854 </div>
25855 <div class="tags">
25856
25857
25858 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/h264">h264</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
25859
25860
25861 </div>
25862 </div>
25863 <div class="padding"></div>
25864
25865 <div class="entry">
25866 <div class="title">
25867 <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>
25868 </div>
25869 <div class="date">
25870 12th January 2011
25871 </div>
25872 <div class="body">
25873 <p>Today I discovered
25874 <a href="http://www.digi.no/860070/google-dropper-h264-stotten-i-chrome">via
25875 digi.no</a> that the Chrome developers, in a surprising announcement,
25876 <a href="http://blog.chromium.org/2011/01/html-video-codec-support-in-chrome.html">yesterday
25877 announced</a> plans to drop H.264 support for HTML5 &lt;video&gt; in
25878 the browser. The argument used is that H.264 is not a "completely
25879 open" codec technology. If you believe H.264 was free for everyone
25880 to use, I recommend having a look at the essay
25881 "<a href="http://webmink.com/essays/h-264/">H.264 – Not The Kind Of
25882 Free That Matters</a>". It is not free of cost for creators of video
25883 tools, nor those of us that want to publish on the Internet, and the
25884 terms provided by MPEG-LA excludes free software projects from
25885 licensing the patents needed for H.264. Some background information
25886 on the Google announcement is available from
25887 <a href="http://www.osnews.com/story/24243/Google_To_Drop_H264_Support_from_Chrome">OSnews</a>.
25888 A good read. :)</p>
25889
25890 <p>Personally, I believe it is great that Google is taking a stand to
25891 promote equal terms for everyone when it comes to video publishing on
25892 the Internet. This can only be done by publishing using free and open
25893 standards, which is only possible if the web browsers provide support
25894 for these free and open standards. At the moment there seem to be two
25895 camps in the web browser world when it come to video support. Some
25896 browsers support H.264, and others support
25897 <a href="http://www.theora.org/">Ogg Theora</a> and
25898 <a href="http://www.webmproject.org/">WebM</a>
25899 (<a href="http://www.diracvideo.org/">Dirac</a> is not really an option
25900 yet), forcing those of us that want to publish video on the Internet
25901 and which can not accept the terms of use presented by MPEG-LA for
25902 H.264 to not reach all potential viewers.
25903 Wikipedia keep <a href="http://en.wikipedia.org/wiki/HTML5_video">an
25904 updated summary</a> of the current browser support.</p>
25905
25906 <p>Not surprising, several people would prefer Google to keep
25907 promoting H.264, and John Gruber
25908 <a href="http://daringfireball.net/2011/01/simple_questions">presents
25909 the mind set</a> of these people quite well. His rhetorical questions
25910 provoked a reply from Thom Holwerda with another set of questions
25911 <a href="http://www.osnews.com/story/24245/10_Questions_for_John_Gruber_Regarding_H_264_WebM">presenting
25912 the issues with H.264</a>. Both are worth a read.</p>
25913
25914 <p>Some argue that if Google is dropping H.264 because it isn't free,
25915 they should also drop support for the Adobe Flash plugin. This
25916 argument was covered by Simon Phipps in
25917 <a href="http://blogs.computerworlduk.com/simon-says/2011/01/google-and-h264---far-from-hypocritical/index.htm">todays
25918 blog post</a>, which I find to put the issue in context. To me it
25919 make perfect sense to drop native H.264 support for HTML5 in the
25920 browser while still allowing plugins.</p>
25921
25922 <p>I suspect the reason this announcement make so many people protest,
25923 is that all the users and promoters of H.264 suddenly get an uneasy
25924 feeling that they might be backing the wrong horse. A lot of TV
25925 broadcasters have been moving to H.264 the last few years, and a lot
25926 of money has been invested in hardware based on the belief that they
25927 could use the same video format for both broadcasting and web
25928 publishing. Suddenly this belief is shaken.</p>
25929
25930 <p>An interesting question is why Google is doing this. While the
25931 presented argument might be true enough, I believe Google would only
25932 present the argument if the change make sense from a business
25933 perspective. One reason might be that they are currently negotiating
25934 with MPEG-LA over royalties or usage terms, and giving MPEG-LA the
25935 feeling that dropping H.264 completely from Chroome, Youtube and
25936 Google Video would improve the negotiation position of Google.
25937 Another reason might be that Google want to save money by not having
25938 to pay the video tax to MPEG-LA at all, and thus want to move to a
25939 video format not requiring royalties at all. A third reason might be
25940 that the Chrome development team simply want to avoid the
25941 Chrome/Chromium split to get more help with the development of Chrome.
25942 I guess time will tell.</p>
25943
25944 <p>Update 2011-01-15: The Google Chrome team provided
25945 <a href="http://blog.chromium.org/2011/01/more-about-chrome-html-video-codec.html">more
25946 background and information on the move</a> it a blog post yesterday.</p>
25947
25948 </div>
25949 <div class="tags">
25950
25951
25952 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/h264">h264</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
25953
25954
25955 </div>
25956 </div>
25957 <div class="padding"></div>
25958
25959 <div class="entry">
25960 <div class="title">
25961 <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>
25962 </div>
25963 <div class="date">
25964 30th December 2010
25965 </div>
25966 <div class="body">
25967 <p>After trying to
25968 <a href="http://people.skolelinux.org/pere/blog/Is_Ogg_Theora_a_free_and_open_standard_.html">compare
25969 Ogg Theora</a> to
25970 <a href="http://www.digistan.org/open-standard:definition">the Digistan
25971 definition</a> of a free and open standard, I concluded that this need
25972 to be done for more standards and started on a framework for doing
25973 this. As a start, I want to get the status for all the standards in
25974 the Norwegian reference directory, which include UTF-8, HTML, PDF, ODF,
25975 JPEG, PNG, SVG and others. But to be able to complete this in a
25976 reasonable time frame, I will need help.</p>
25977
25978 <p>If you want to help out with this work, please visit
25979 <a href="http://wiki.nuug.no/grupper/standard/digistan-analyse">the
25980 wiki pages I have set up for this</a>, and let me know that you want
25981 to help out. The IRC channel #nuug on irc.freenode.net is a good
25982 place to coordinate this for now, as it is the IRC channel for the
25983 NUUG association where I have created the framework (I am the leader
25984 of the Norwegian Unix User Group).</p>
25985
25986 <p>The framework is still forming, and a lot is left to do. Do not be
25987 scared by the sketchy form of the current pages. :)</p>
25988
25989 </div>
25990 <div class="tags">
25991
25992
25993 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>.
25994
25995
25996 </div>
25997 </div>
25998 <div class="padding"></div>
25999
26000 <div class="entry">
26001 <div class="title">
26002 <a href="http://people.skolelinux.org/pere/blog/The_many_definitions_of_a_open_standard.html">The many definitions of a open standard</a>
26003 </div>
26004 <div class="date">
26005 27th December 2010
26006 </div>
26007 <div class="body">
26008 <p>One of the reasons I like the Digistan definition of
26009 "<a href="http://www.digistan.org/open-standard:definition">Free and
26010 Open Standard</a>" is that this is a new term, and thus the meaning of
26011 the term has been decided by Digistan. The term "Open Standard" has
26012 become so misunderstood that it is no longer very useful when talking
26013 about standards. One end up discussing which definition is the best
26014 one and with such frame the only one gaining are the proponents of
26015 de-facto standards and proprietary solutions.</p>
26016
26017 <p>But to give us an idea about the diversity of definitions of open
26018 standards, here are a few that I know about. This list is not
26019 complete, but can be a starting point for those that want to do a
26020 complete survey. More definitions are available on the
26021 <a href="http://en.wikipedia.org/wiki/Open_standard">wikipedia
26022 page</a>.</p>
26023
26024 <p>First off is my favourite, the definition from the European
26025 Interoperability Framework version 1.0. Really sad to notice that BSA
26026 and others has succeeded in getting it removed from version 2.0 of the
26027 framework by stacking the committee drafting the new version with
26028 their own people. Anyway, the definition is still available and it
26029 include the key properties needed to make sure everyone can use a
26030 specification on equal terms.</p>
26031
26032 <blockquote>
26033
26034 <p>The following are the minimal characteristics that a specification
26035 and its attendant documents must have in order to be considered an
26036 open standard:</p>
26037
26038 <ul>
26039
26040 <li>The standard is adopted and will be maintained by a not-for-profit
26041 organisation, and its ongoing development occurs on the basis of an
26042 open decision-making procedure available to all interested parties
26043 (consensus or majority decision etc.).</li>
26044
26045 <li>The standard has been published and the standard specification
26046 document is available either freely or at a nominal charge. It must be
26047 permissible to all to copy, distribute and use it for no fee or at a
26048 nominal fee.</li>
26049
26050 <li>The intellectual property - i.e. patents possibly present - of
26051 (parts of) the standard is made irrevocably available on a royalty-
26052 free basis.</li>
26053
26054 <li>There are no constraints on the re-use of the standard.</li>
26055
26056 </ul>
26057 </blockquote>
26058
26059 <p>Another one originates from my friends over at
26060 <a href="http://www.dkuug.dk/">DKUUG</a>, who coined and gathered
26061 support for <a href="http://www.aaben-standard.dk/">this
26062 definition</a> in 2004. It even made it into the Danish parlament as
26063 <a href="http://www.ft.dk/dokumenter/tingdok.aspx?/samling/20051/beslutningsforslag/B103/som_fremsat.htm">their
26064 definition of a open standard</a>. Another from a different part of
26065 the Danish government is available from the wikipedia page.</p>
26066
26067 <blockquote>
26068
26069 <p>En åben standard opfylder følgende krav:</p>
26070
26071 <ol>
26072
26073 <li>Veldokumenteret med den fuldstændige specifikation offentligt
26074 tilgængelig.</li>
26075
26076 <li>Frit implementerbar uden økonomiske, politiske eller juridiske
26077 begrænsninger på implementation og anvendelse.</li>
26078
26079 <li>Standardiseret og vedligeholdt i et åbent forum (en såkaldt
26080 "standardiseringsorganisation") via en åben proces.</li>
26081
26082 </ol>
26083
26084 </blockquote>
26085
26086 <p>Then there is <a href="http://www.fsfe.org/projects/os/def.html">the
26087 definition</a> from Free Software Foundation Europe.</p>
26088
26089 <blockquote>
26090
26091 <p>An Open Standard refers to a format or protocol that is</p>
26092
26093 <ol>
26094
26095 <li>subject to full public assessment and use without constraints in a
26096 manner equally available to all parties;</li>
26097
26098 <li>without any components or extensions that have dependencies on
26099 formats or protocols that do not meet the definition of an Open
26100 Standard themselves;</li>
26101
26102 <li>free from legal or technical clauses that limit its utilisation by
26103 any party or in any business model;</li>
26104
26105 <li>managed and further developed independently of any single vendor
26106 in a process open to the equal participation of competitors and third
26107 parties;</li>
26108
26109 <li>available in multiple complete implementations by competing
26110 vendors, or as a complete implementation equally available to all
26111 parties.</li>
26112
26113 </ol>
26114
26115 </blockquote>
26116
26117 <p>A long time ago, SUN Microsystems, now bought by Oracle, created
26118 its
26119 <a href="http://blogs.sun.com/dennisding/resource/Open%20Standard%20Definition.pdf">Open
26120 Standards Checklist</a> with a fairly detailed description.</p>
26121
26122 <blockquote>
26123 <p>Creation and Management of an Open Standard
26124
26125 <ul>
26126
26127 <li>Its development and management process must be collaborative and
26128 democratic:
26129
26130 <ul>
26131
26132 <li>Participation must be accessible to all those who wish to
26133 participate and can meet fair and reasonable criteria
26134 imposed by the organization under which it is developed
26135 and managed.</li>
26136
26137 <li>The processes must be documented and, through a known
26138 method, can be changed through input from all
26139 participants.</li>
26140
26141 <li>The process must be based on formal and binding commitments for
26142 the disclosure and licensing of intellectual property rights.</li>
26143
26144 <li>Development and management should strive for consensus,
26145 and an appeals process must be clearly outlined.</li>
26146
26147 <li>The standard specification must be open to extensive
26148 public review at least once in its life-cycle, with
26149 comments duly discussed and acted upon, if required.</li>
26150
26151 </ul>
26152
26153 </li>
26154
26155 </ul>
26156
26157 <p>Use and Licensing of an Open Standard</p>
26158 <ul>
26159
26160 <li>The standard must describe an interface, not an implementation,
26161 and the industry must be capable of creating multiple, competing
26162 implementations to the interface described in the standard without
26163 undue or restrictive constraints. Interfaces include APIs,
26164 protocols, schemas, data formats and their encoding.</li>
26165
26166 <li> The standard must not contain any proprietary "hooks" that create
26167 a technical or economic barriers</li>
26168
26169 <li>Faithful implementations of the standard must
26170 interoperate. Interoperability means the ability of a computer
26171 program to communicate and exchange information with other computer
26172 programs and mutually to use the information which has been
26173 exchanged. This includes the ability to use, convert, or exchange
26174 file formats, protocols, schemas, interface information or
26175 conventions, so as to permit the computer program to work with other
26176 computer programs and users in all the ways in which they are
26177 intended to function.</li>
26178
26179 <li>It must be permissible for anyone to copy, distribute and read the
26180 standard for a nominal fee, or even no fee. If there is a fee, it
26181 must be low enough to not preclude widespread use.</li>
26182
26183 <li>It must be possible for anyone to obtain free (no royalties or
26184 fees; also known as "royalty free"), worldwide, non-exclusive and
26185 perpetual licenses to all essential patent claims to make, use and
26186 sell products based on the standard. The only exceptions are
26187 terminations per the reciprocity and defensive suspension terms
26188 outlined below. Essential patent claims include pending, unpublished
26189 patents, published patents, and patent applications. The license is
26190 only for the exact scope of the standard in question.
26191
26192 <ul>
26193
26194 <li> May be conditioned only on reciprocal licenses to any of
26195 licensees' patent claims essential to practice that standard
26196 (also known as a reciprocity clause)</li>
26197
26198 <li> May be terminated as to any licensee who sues the licensor
26199 or any other licensee for infringement of patent claims
26200 essential to practice that standard (also known as a
26201 "defensive suspension" clause)</li>
26202
26203 <li> The same licensing terms are available to every potential
26204 licensor</li>
26205
26206 </ul>
26207 </li>
26208
26209 <li>The licensing terms of an open standards must not preclude
26210 implementations of that standard under open source licensing terms
26211 or restricted licensing terms</li>
26212
26213 </ul>
26214
26215 </blockquote>
26216
26217 <p>It is said that one of the nice things about standards is that
26218 there are so many of them. As you can see, the same holds true for
26219 open standard definitions. Most of the definitions have a lot in
26220 common, and it is not really controversial what properties a open
26221 standard should have, but the diversity of definitions have made it
26222 possible for those that want to avoid a level marked field and real
26223 competition to downplay the significance of open standards. I hope we
26224 can turn this tide by focusing on the advantages of Free and Open
26225 Standards.</p>
26226
26227 </div>
26228 <div class="tags">
26229
26230
26231 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>.
26232
26233
26234 </div>
26235 </div>
26236 <div class="padding"></div>
26237
26238 <div class="entry">
26239 <div class="title">
26240 <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>
26241 </div>
26242 <div class="date">
26243 25th December 2010
26244 </div>
26245 <div class="body">
26246 <p><a href="http://www.digistan.org/open-standard:definition">The
26247 Digistan definition</a> of a free and open standard reads like this:</p>
26248
26249 <blockquote>
26250
26251 <p>The Digital Standards Organization defines free and open standard
26252 as follows:</p>
26253
26254 <ol>
26255
26256 <li>A free and open standard is immune to vendor capture at all stages
26257 in its life-cycle. Immunity from vendor capture makes it possible to
26258 freely use, improve upon, trust, and extend a standard over time.</li>
26259
26260 <li>The standard is adopted and will be maintained by a not-for-profit
26261 organisation, and its ongoing development occurs on the basis of an
26262 open decision-making procedure available to all interested
26263 parties.</li>
26264
26265 <li>The standard has been published and the standard specification
26266 document is available freely. It must be permissible to all to copy,
26267 distribute, and use it freely.</li>
26268
26269 <li>The patents possibly present on (parts of) the standard are made
26270 irrevocably available on a royalty-free basis.</li>
26271
26272 <li>There are no constraints on the re-use of the standard.</li>
26273
26274 </ol>
26275
26276 <p>The economic outcome of a free and open standard, which can be
26277 measured, is that it enables perfect competition between suppliers of
26278 products based on the standard.</p>
26279 </blockquote>
26280
26281 <p>For a while now I have tried to figure out of Ogg Theora is a free
26282 and open standard according to this definition. Here is a short
26283 writeup of what I have been able to gather so far. I brought up the
26284 topic on the Xiph advocacy mailing list
26285 <a href="http://lists.xiph.org/pipermail/advocacy/2009-July/001632.html">in
26286 July 2009</a>, for those that want to see some background information.
26287 According to Ivo Emanuel Gonçalves and Monty Montgomery on that list
26288 the Ogg Theora specification fulfils the Digistan definition.</p>
26289
26290 <p><strong>Free from vendor capture?</strong></p>
26291
26292 <p>As far as I can see, there is no single vendor that can control the
26293 Ogg Theora specification. It can be argued that the
26294 <a href="http://www.xiph.org/">Xiph foundation</A> is such vendor, but
26295 given that it is a non-profit foundation with the expressed goal
26296 making free and open protocols and standards available, it is not
26297 obvious that this is a real risk. One issue with the Xiph
26298 foundation is that its inner working (as in board member list, or who
26299 control the foundation) are not easily available on the web. I've
26300 been unable to find out who is in the foundation board, and have not
26301 seen any accounting information documenting how money is handled nor
26302 where is is spent in the foundation. It is thus not obvious for an
26303 external observer who control The Xiph foundation, and for all I know
26304 it is possible for a single vendor to take control over the
26305 specification. But it seem unlikely.</p>
26306
26307 <p><strong>Maintained by open not-for-profit organisation?</strong></p>
26308
26309 <p>Assuming that the Xiph foundation is the organisation its web pages
26310 claim it to be, this point is fulfilled. If Xiph foundation is
26311 controlled by a single vendor, it isn't, but I have not found any
26312 documentation indicating this.</p>
26313
26314 <p>According to
26315 <a href="http://media.hiof.no/diverse/fad/rapport_4.pdf">a report</a>
26316 prepared by Audun Vaaler og Børre Ludvigsen for the Norwegian
26317 government, the Xiph foundation is a non-commercial organisation and
26318 the development process is open, transparent and non-Discrimatory.
26319 Until proven otherwise, I believe it make most sense to believe the
26320 report is correct.</p>
26321
26322 <p><strong>Specification freely available?</strong></p>
26323
26324 <p>The specification for the <a href="http://www.xiph.org/ogg/doc/">Ogg
26325 container format</a> and both the
26326 <a href="http://www.xiph.org/vorbis/doc/">Vorbis</a> and
26327 <a href="http://theora.org/doc/">Theora</a> codeces are available on
26328 the web. This are the terms in the Vorbis and Theora specification:
26329
26330 <blockquote>
26331
26332 Anyone may freely use and distribute the Ogg and [Vorbis/Theora]
26333 specifications, whether in private, public, or corporate
26334 capacity. However, the Xiph.Org Foundation and the Ogg project reserve
26335 the right to set the Ogg [Vorbis/Theora] specification and certify
26336 specification compliance.
26337
26338 </blockquote>
26339
26340 <p>The Ogg container format is specified in IETF
26341 <a href="http://www.xiph.org/ogg/doc/rfc3533.txt">RFC 3533</a>, and
26342 this is the term:<p>
26343
26344 <blockquote>
26345
26346 <p>This document and translations of it may be copied and furnished to
26347 others, and derivative works that comment on or otherwise explain it
26348 or assist in its implementation may be prepared, copied, published and
26349 distributed, in whole or in part, without restriction of any kind,
26350 provided that the above copyright notice and this paragraph are
26351 included on all such copies and derivative works. However, this
26352 document itself may not be modified in any way, such as by removing
26353 the copyright notice or references to the Internet Society or other
26354 Internet organizations, except as needed for the purpose of developing
26355 Internet standards in which case the procedures for copyrights defined
26356 in the Internet Standards process must be followed, or as required to
26357 translate it into languages other than English.</p>
26358
26359 <p>The limited permissions granted above are perpetual and will not be
26360 revoked by the Internet Society or its successors or assigns.</p>
26361 </blockquote>
26362
26363 <p>All these terms seem to allow unlimited distribution and use, an
26364 this term seem to be fulfilled. There might be a problem with the
26365 missing permission to distribute modified versions of the text, and
26366 thus reuse it in other specifications. Not quite sure if that is a
26367 requirement for the Digistan definition.</p>
26368
26369 <p><strong>Royalty-free?</strong></p>
26370
26371 <p>There are no known patent claims requiring royalties for the Ogg
26372 Theora format.
26373 <a href="http://www.streamingmedia.com/Articles/ReadArticle.aspx?ArticleID=65782">MPEG-LA</a>
26374 and
26375 <a href="http://yro.slashdot.org/story/10/04/30/237238/Steve-Jobs-Hints-At-Theora-Lawsuit">Steve
26376 Jobs</a> in Apple claim to know about some patent claims (submarine
26377 patents) against the Theora format, but no-one else seem to believe
26378 them. Both Opera Software and the Mozilla Foundation have looked into
26379 this and decided to implement Ogg Theora support in their browsers
26380 without paying any royalties. For now the claims from MPEG-LA and
26381 Steve Jobs seem more like FUD to scare people to use the H.264 codec
26382 than any real problem with Ogg Theora.</p>
26383
26384 <p><strong>No constraints on re-use?</strong></p>
26385
26386 <p>I am not aware of any constraints on re-use.</p>
26387
26388 <p><strong>Conclusion</strong></p>
26389
26390 <p>3 of 5 requirements seem obviously fulfilled, and the remaining 2
26391 depend on the governing structure of the Xiph foundation. Given the
26392 background report used by the Norwegian government, I believe it is
26393 safe to assume the last two requirements are fulfilled too, but it
26394 would be nice if the Xiph foundation web site made it easier to verify
26395 this.</p>
26396
26397 <p>It would be nice to see other analysis of other specifications to
26398 see if they are free and open standards.</p>
26399
26400 </div>
26401 <div class="tags">
26402
26403
26404 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/h264">h264</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
26405
26406
26407 </div>
26408 </div>
26409 <div class="padding"></div>
26410
26411 <div class="entry">
26412 <div class="title">
26413 <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>
26414 </div>
26415 <div class="date">
26416 25th December 2010
26417 </div>
26418 <div class="body">
26419 <p>A few days ago
26420 <a href="http://www.idg.no/computerworld/article189879.ece">an
26421 article</a> in the Norwegian Computerworld magazine about how version
26422 2.0 of
26423 <a href="http://en.wikipedia.org/wiki/European_Interoperability_Framework">European
26424 Interoperability Framework</a> has been successfully lobbied by the
26425 proprietary software industry to remove the focus on free software.
26426 Nothing very surprising there, given
26427 <a href="http://news.slashdot.org/story/10/03/29/2115235/Open-Source-Open-Standards-Under-Attack-In-Europe">earlier
26428 reports</a> on how Microsoft and others have stacked the committees in
26429 this work. But I find this very sad. The definition of
26430 <a href="http://www.nuug.no/dokumenter/standard-presse-def-200506.txt">an
26431 open standard from version 1</a> was very good, and something I
26432 believe should be used also in the future, alongside
26433 <a href="http://www.digistan.org/open-standard:definition">the
26434 definition from Digistan</A>. Version 2 have removed the open
26435 standard definition from its content.</p>
26436
26437 <p>Anyway, the news reminded me of the great reply sent by Dr. Edgar
26438 Villanueva, congressman in Peru at the time, to Microsoft as a reply
26439 to Microsofts attack on his proposal regarding the use of free software
26440 in the public sector in Peru. As the text was not available from a
26441 few of the URLs where it used to be available, I copy it here from
26442 <a href="http://gnuwin.epfl.ch/articles/en/reponseperou/villanueva_to_ms.html">my
26443 source</a> to ensure it is available also in the future. Some
26444 background information about that story is available in
26445 <a href="http://www.linuxjournal.com/article/6099">an article</a> from
26446 Linux Journal in 2002.</p>
26447
26448 <blockquote>
26449 <p>Lima, 8th of April, 2002<br>
26450 To: Señor JUAN ALBERTO GONZÁLEZ<br>
26451 General Manager of Microsoft Perú</p>
26452
26453 <p>Dear Sir:</p>
26454
26455 <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>
26456
26457 <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>
26458
26459 <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>
26460
26461 <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>
26462
26463 <p>
26464 <ul>
26465 <li>Free access to public information by the citizen. </li>
26466 <li>Permanence of public data. </li>
26467 <li>Security of the State and citizens.</li>
26468 </ul>
26469 </p>
26470
26471 <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>
26472
26473 <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>
26474
26475 <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>
26476
26477 <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>
26478
26479 <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>
26480
26481
26482 <p>From reading the Bill it will be clear that once passed:<br>
26483 <li>the law does not forbid the production of proprietary software</li>
26484 <li>the law does not forbid the sale of proprietary software</li>
26485 <li>the law does not specify which concrete software to use</li>
26486 <li>the law does not dictate the supplier from whom software will be bought</li>
26487 <li>the law does not limit the terms under which a software product can be licensed.</li>
26488
26489 </p>
26490
26491 <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>
26492
26493 <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>
26494
26495 <p>As for the observations you have made, we will now go on to analyze them in detail:</p>
26496
26497 <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>
26498
26499 <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>
26500
26501 <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>
26502
26503 <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>
26504
26505 <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>
26506
26507 <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>
26508
26509 <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>
26510
26511 <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>
26512
26513 <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>
26514
26515 <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>
26516
26517 <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>
26518
26519 <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>
26520
26521 <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>
26522
26523 <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>
26524
26525 <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>
26526
26527 <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>
26528
26529 <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>
26530
26531 <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>
26532
26533 <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>
26534
26535 <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>
26536
26537 <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>
26538
26539 <p>On security:</p>
26540
26541 <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>
26542
26543 <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>
26544
26545 <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>
26546
26547 <p>In respect of the guarantee:</p>
26548
26549 <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>
26550
26551 <p>On Intellectual Property:</p>
26552
26553 <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>
26554
26555 <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>
26556
26557 <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>
26558
26559 <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>
26560
26561 <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>
26562
26563 <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>
26564
26565 <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>
26566
26567 <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>
26568
26569 <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>
26570
26571 <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>
26572
26573 <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>
26574
26575 <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>
26576
26577 <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>
26578
26579 <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>
26580
26581 <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>
26582
26583 <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>
26584
26585 <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>
26586
26587 <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>
26588
26589 <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>
26590
26591 <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>
26592
26593 <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>
26594
26595 <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>
26596
26597 <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>
26598
26599 <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>
26600
26601 <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>
26602
26603 <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>
26604
26605 <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>
26606
26607 <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>
26608
26609 <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>
26610
26611 <p>Cordially,<br>
26612 DR. EDGAR DAVID VILLANUEVA NUÑEZ<br>
26613 Congressman of the Republic of Perú.</p>
26614 </blockquote>
26615
26616 </div>
26617 <div class="tags">
26618
26619
26620 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>.
26621
26622
26623 </div>
26624 </div>
26625 <div class="padding"></div>
26626
26627 <div class="entry">
26628 <div class="title">
26629 <a href="http://people.skolelinux.org/pere/blog/Officeshots_still_going_strong.html">Officeshots still going strong</a>
26630 </div>
26631 <div class="date">
26632 25th December 2010
26633 </div>
26634 <div class="body">
26635 <p>Half a year ago I
26636 <a href="http://people.skolelinux.org/pere/blog/Officeshots_taking_shape.html">wrote
26637 a bit</a> about <a href="http://www.officeshots.org/">OfficeShots</a>,
26638 a web service to allow anyone to test how ODF documents are handled by
26639 the different programs reading and writing the ODF format.</p>
26640
26641 <p>I just had a look at the service, and it seem to be going strong.
26642 Very interesting to see the results reported in the gallery, how
26643 different Office implementations handle different ODF features. Sad
26644 to see that KOffice was not doing it very well, and happy to see that
26645 LibreOffice has been tested already (but sadly not listed as a option
26646 for OfficeShots users yet). I am glad to see that the ODF community
26647 got such a great test tool available.</p>
26648
26649 </div>
26650 <div class="tags">
26651
26652
26653 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>.
26654
26655
26656 </div>
26657 </div>
26658 <div class="padding"></div>
26659
26660 <div class="entry">
26661 <div class="title">
26662 <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>
26663 </div>
26664 <div class="date">
26665 22nd December 2010
26666 </div>
26667 <div class="body">
26668 <p>The last few days I have spent at work here at the <a
26669 href="http://www.uio.no/">University of Oslo</a> testing if the new
26670 batch of computers will work with Linux. Every year for the last few
26671 years the university have organised shared bid of a few thousand
26672 computers, and this year HP won the bid. Two different desktops and
26673 five different laptops are on the list this year. We in the UNIX
26674 group want to know which one of these computers work well with RHEL
26675 and Ubuntu, the two Linux distributions we currently handle at the
26676 university.</p>
26677
26678 <p>My test method is simple, and I share it here to get feedback and
26679 perhaps inspire others to test hardware as well. To test, I PXE
26680 install the OS version of choice, and log in as my normal user and run
26681 a few applications and plug in selected pieces of hardware. When
26682 something fail, I make a note about this in the test matrix and move
26683 on. If I have some spare time I try to report the bug to the OS
26684 vendor, but as I only have the machines for a short time, I rarely
26685 have the time to do this for all the problems I find.</p>
26686
26687 <p>Anyway, to get to the point of this post. Here is the simple tests
26688 I perform on a new model.</p>
26689
26690 <ul>
26691
26692 <li>Is PXE installation working? I'm testing with RHEL6, Ubuntu Lucid
26693 and Ubuntu Maverik at the moment. If I feel like it, I also test with
26694 RHEL5 and Debian Edu/Squeeze.</li>
26695
26696 <li>Is X.org working? If the graphical login screen show up after
26697 installation, X.org is working.</li>
26698
26699 <li>Is hardware accelerated OpenGL working? Running glxgears (in
26700 package mesa-utils on Ubuntu) and writing down the frames per second
26701 reported by the program.</li>
26702
26703 <li>Is sound working? With Gnome and KDE, a sound is played when
26704 logging in, and if I can hear this the test is successful. If there
26705 are several audio exits on the machine, I try them all and check if
26706 the Gnome/KDE audio mixer can control where to send the sound. I
26707 normally test this by playing
26708 <a href="http://www.nuug.no/aktiviteter/20101012-chef/ ">a HTML5
26709 video</a> in Firefox/Iceweasel.</li>
26710
26711 <li>Is the USB subsystem working? I test this by plugging in a USB
26712 memory stick and see if Gnome/KDE notices this.</li>
26713
26714 <li>Is the CD/DVD player working? I test this by inserting any CD/DVD
26715 I have lying around, and see if Gnome/KDE notices this.</li>
26716
26717 <li>Is any built in camera working? Test using cheese, and see if a
26718 picture from the v4l device show up.</li>
26719
26720 <li>Is bluetooth working? Use the Gnome/KDE browsing tool to see if
26721 any bluetooth devices are discovered. In my office, I normally see a
26722 few.</li>
26723
26724 <li>For laptops, is the SD or Compaq Flash reader working. I have
26725 memory modules lying around, and stick them in and see if Gnome/KDE
26726 notice this.</li>
26727
26728 <li>For laptops, is suspend/hibernate working? I'm testing if the
26729 special button work, and if the laptop continue to work after
26730 resume.</li>
26731
26732 <li>For laptops, is the extra buttons working, like audio level,
26733 adjusting background light, switching on/off external video output,
26734 switching on/off wifi, bluetooth, etc? The set of buttons differ from
26735 laptop to laptop, so I just write down which are working and which are
26736 not.</li>
26737
26738 <li>Some laptops have smart card readers, finger print readers,
26739 acceleration sensors etc. I rarely test these, as I do not know how
26740 to quickly test if they are working or not, so I only document their
26741 existence.</li>
26742
26743 </ul>
26744
26745 <p>By now I suspect you are really curious what the test results are
26746 for the HP machines I am testing. I'm not done yet, so I will report
26747 the test results later. For now I can report that HP 8100 Elite work
26748 fine, and hibernation fail with HP EliteBook 8440p on Ubuntu Lucid,
26749 and audio fail on RHEL6. Ubuntu Maverik worked with 8440p. As you
26750 can see, I have most machines left to test. One interesting
26751 observation is that Ubuntu Lucid has almost twice the frame rate than
26752 RHEL6 with glxgears. No idea why.</p>
26753
26754 </div>
26755 <div class="tags">
26756
26757
26758 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>.
26759
26760
26761 </div>
26762 </div>
26763 <div class="padding"></div>
26764
26765 <div class="entry">
26766 <div class="title">
26767 <a href="http://people.skolelinux.org/pere/blog/Some_thoughts_on_BitCoins.html">Some thoughts on BitCoins</a>
26768 </div>
26769 <div class="date">
26770 11th December 2010
26771 </div>
26772 <div class="body">
26773 <p>As I continue to explore
26774 <a href="http://www.bitcoin.org/">BitCoin</a>, I've starting to wonder
26775 what properties the system have, and how it will be affected by laws
26776 and regulations here in Norway. Here are some random notes.</p>
26777
26778 <p>One interesting thing to note is that since the transactions are
26779 verified using a peer to peer network, all details about a transaction
26780 is known to everyone. This means that if a BitCoin address has been
26781 published like I did with mine in my initial post about BitCoin, it is
26782 possible for everyone to see how many BitCoins have been transfered to
26783 that address. There is even a web service to look at the details for
26784 all transactions. There I can see that my address
26785 <a href="http://blockexplorer.com/address/15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a>
26786 have received 16.06 Bitcoin, the
26787 <a href="http://blockexplorer.com/address/1LfdGnGuWkpSJgbQySxxCWhv8MHqvwst3">1LfdGnGuWkpSJgbQySxxCWhv8MHqvwst3</a>
26788 address of Simon Phipps have received 181.97 BitCoin and the address
26789 <a href="http://blockexplorer.com/address/1MCwBbhNGp5hRm5rC1Aims2YFRe2SXPYKt">1MCwBbhNGp5hRm5rC1Aims2YFRe2SXPYKt</A>
26790 of EFF have received 2447.38 BitCoins so far. Thank you to each and
26791 every one of you that donated bitcoins to support my activity. The
26792 fact that anyone can see how much money was transfered to a given
26793 address make it more obvious why the BitCoin community recommend to
26794 generate and hand out a new address for each transaction. I'm told
26795 there is no way to track which addresses belong to a given person or
26796 organisation without the person or organisation revealing it
26797 themselves, as Simon, EFF and I have done.</p>
26798
26799 <p>In Norway, and in most other countries, there are laws and
26800 regulations limiting how much money one can transfer across the border
26801 without declaring it. There are money laundering, tax and accounting
26802 laws and regulations I would expect to apply to the use of BitCoin.
26803 If the Skolelinux foundation
26804 (<a href="http://linuxiskolen.no/slxdebianlabs/donations.html">SLX
26805 Debian Labs</a>) were to accept donations in BitCoin in addition to
26806 normal bank transfers like EFF is doing, how should this be accounted?
26807 Given that it is impossible to know if money can cross the border or
26808 not, should everything or nothing be declared? What exchange rate
26809 should be used when calculating taxes? Would receivers have to pay
26810 income tax if the foundation were to pay Skolelinux contributors in
26811 BitCoin? I have no idea, but it would be interesting to know.</p>
26812
26813 <p>For a currency to be useful and successful, it must be trusted and
26814 accepted by a lot of users. It must be possible to get easy access to
26815 the currency (as a wage or using currency exchanges), and it must be
26816 easy to spend it. At the moment BitCoin seem fairly easy to get
26817 access to, but there are very few places to spend it. I am not really
26818 a regular user of any of the vendor types currently accepting BitCoin,
26819 so I wonder when my kind of shop would start accepting BitCoins. I
26820 would like to buy electronics, travels and subway tickets, not herbs
26821 and books. :) The currency is young, and this will improve over time
26822 if it become popular, but I suspect regular banks will start to lobby
26823 to get BitCoin declared illegal if it become popular. I'm sure they
26824 will claim it is helping fund terrorism and money laundering (which
26825 probably would be true, as is any currency in existence), but I
26826 believe the problems should be solved elsewhere and not by blaming
26827 currencies.</p>
26828
26829 <p>The process of creating new BitCoins is called mining, and it is
26830 CPU intensive process that depend on a bit of luck as well (as one is
26831 competing against all the other miners currently spending CPU cycles
26832 to see which one get the next lump of cash). The "winner" get 50
26833 BitCoin when this happen. Yesterday I came across the obvious way to
26834 join forces to increase ones changes of getting at least some coins,
26835 by coordinating the work on mining BitCoins across several machines
26836 and people, and sharing the result if one is lucky and get the 50
26837 BitCoins. Check out
26838 <a href="http://www.bluishcoder.co.nz/bitcoin-pool/">BitCoin Pool</a>
26839 if this sounds interesting. I have not had time to try to set up a
26840 machine to participate there yet, but have seen that running on ones
26841 own for a few days have not yield any BitCoins througth mining
26842 yet.</p>
26843
26844 <p>Update 2010-12-15: Found an <a
26845 href="http://inertia.posterous.com/reply-to-the-underground-economist-why-bitcoi">interesting
26846 criticism</a> of bitcoin. Not quite sure how valid it is, but thought
26847 it was interesting to read. The arguments presented seem to be
26848 equally valid for gold, which was used as a currency for many years.</p>
26849
26850 </div>
26851 <div class="tags">
26852
26853
26854 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>.
26855
26856
26857 </div>
26858 </div>
26859 <div class="padding"></div>
26860
26861 <div class="entry">
26862 <div class="title">
26863 <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>
26864 </div>
26865 <div class="date">
26866 10th December 2010
26867 </div>
26868 <div class="body">
26869 <p>With this weeks lawless
26870 <a href="http://www.salon.com/news/opinion/glenn_greenwald/2010/12/06/wikileaks/index.html">governmental
26871 attacks</a> on Wikileak and
26872 <a href="http://www.salon.com/technology/dan_gillmor/2010/12/06/war_on_speech">free
26873 speech</a>, it has become obvious that PayPal, visa and mastercard can
26874 not be trusted to handle money transactions.
26875 A blog post from
26876 <a href="http://webmink.com/2010/12/06/now-accepting-bitcoin/">Simon
26877 Phipps on bitcoin</a> reminded me about a project that a friend of
26878 mine mentioned earlier. I decided to follow Simon's example, and get
26879 involved with <a href="http://www.bitcoin.org/">BitCoin</a>. I got
26880 some help from my friend to get it all running, and he even handed me
26881 some bitcoins to get started. I even donated a few bitcoins to Simon
26882 for helping me remember BitCoin.</p>
26883
26884 <p>So, what is bitcoins, you probably wonder? It is a digital
26885 crypto-currency, decentralised and handled using peer-to-peer
26886 networks. It allows anonymous transactions and prohibits central
26887 control over the transactions, making it impossible for governments
26888 and companies alike to block donations and other transactions. The
26889 source is free software, and while the key dependency wxWidgets 2.9
26890 for the graphical user interface is missing in Debian, the command
26891 line client builds just fine. Hopefully Jonas
26892 <a href="http://bugs.debian.org/578157">will get the package into
26893 Debian</a> soon.</p>
26894
26895 <p>Bitcoins can be converted to other currencies, like USD and EUR.
26896 There are <a href="http://www.bitcoin.org/trade">companies accepting
26897 bitcoins</a> when selling services and goods, and there are even
26898 currency "stock" markets where the exchange rate is decided. There
26899 are not many users so far, but the concept seems promising. If you
26900 want to get started and lack a friend with any bitcoins to spare,
26901 you can even get
26902 <a href="https://freebitcoins.appspot.com/">some for free</a> (0.05
26903 bitcoin at the time of writing). Use
26904 <a href="http://www.bitcoinwatch.com/">BitcoinWatch</a> to keep an eye
26905 on the current exchange rates.</p>
26906
26907 <p>As an experiment, I have decided to set up bitcoind on one of my
26908 machines. If you want to support my activity, please send Bitcoin
26909 donations to the address
26910 <b>15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</b>. Thank you!</p>
26911
26912 </div>
26913 <div class="tags">
26914
26915
26916 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>.
26917
26918
26919 </div>
26920 </div>
26921 <div class="padding"></div>
26922
26923 <div class="entry">
26924 <div class="title">
26925 <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>
26926 </div>
26927 <div class="date">
26928 9th December 2010
26929 </div>
26930 <div class="body">
26931 <p>A few days ago, I was introduces to some students in the robot
26932 student assosiation <a href="http://www.robotica.no/">Robotica
26933 Osloensis</a> at the University of Oslo where I work, who planned to
26934 get their own 3D printer. They wanted to learn from me based on my
26935 work in the area. After having a short lunch meeting with them, I
26936 offered them to borrow my reprap kit, as I never had time to complete
26937 the build and this seem unlike to change any time soon. I look
26938 forward to see how this goes. This monday their volunteer driver
26939 picked up my kit and drove it to their lab, and tomorrow I am told the
26940 last exam is over so they can start work on getting the 3D printer
26941 operational.</p>
26942
26943 <p>The robotic group have already build several robots on their own,
26944 and seem capable of getting the reprap operational. I really look
26945 forward to being able to print all the cool 3D designs published on
26946 <a href="http://www.thingiverse.com/">Thingiverse</a>. I even got
26947 some 3D scans I got made during Dagen@IFI when one of the groups at
26948 the computer science department at the university demonstrated their
26949 very cool 3D scanner.</p>
26950
26951 </div>
26952 <div class="tags">
26953
26954
26955 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>.
26956
26957
26958 </div>
26959 </div>
26960 <div class="padding"></div>
26961
26962 <div class="entry">
26963 <div class="title">
26964 <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>
26965 </div>
26966 <div class="date">
26967 29th November 2010
26968 </div>
26969 <div class="body">
26970 <p>On friday, the first Debian Edu / Skolelinux
26971 <a href="http://www.friprogramvareiskolen.no/Gathering/2010-12-03-05-Oslo">development
26972 gathering</a> in a long time take place here in Oslo, Norway. I
26973 really look forward to seeing all the good people working on the
26974 Squeeze release. The gathering is open for everyone interested in
26975 learning more about Debian Edu / Skolelinux.</p>
26976
26977 <p>On Saturday, the Norwegian member organization taking care of
26978 organizing these development gatherings, Fri Programvare i Skolen,
26979 will hold its
26980 <a href="http://friprogramvareiskolen.no/Genfors/2010">General Assembly
26981 for 2010</a>. Membership is open for all, and currently there are 388
26982 people registered as members. Last year 32 members cast their vote in
26983 the memberdb based election system. I hope more people find time to
26984 vote this year.</p>
26985
26986 </div>
26987 <div class="tags">
26988
26989
26990 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>.
26991
26992
26993 </div>
26994 </div>
26995 <div class="padding"></div>
26996
26997 <div class="entry">
26998 <div class="title">
26999 <a href="http://people.skolelinux.org/pere/blog/Why_isn_t_Debian_Edu_using_VLC_.html">Why isn't Debian Edu using VLC?</a>
27000 </div>
27001 <div class="date">
27002 27th November 2010
27003 </div>
27004 <div class="body">
27005 <p>In the latest issue of Linux Journal, the readers choices were
27006 presented, and the winner among the multimedia player were VLC.
27007 Personally, I like VLC, and it is my player of choice when I first try
27008 to play a video file or stream. Only if VLC fail will I drag out
27009 gmplayer to see if it can do better. The reason is mostly the failure
27010 model and trust. When VLC fail, it normally pop up a error message
27011 reporting the problem. When mplayer fail, it normally segfault or
27012 just hangs. The latter failure mode drain my trust in the program.<p>
27013
27014 <p>But even if VLC is my player of choice, we have choosen to use
27015 mplayer in <a href="http://www.skolelinux.org/">Debian
27016 Edu/Skolelinux</a>. The reason is simple. We need a good browser
27017 plugin to play web videos seamlessly, and the VLC browser plugin is
27018 not very good. For example, it lack in-line control buttons, so there
27019 is no way for the user to pause the video. Also, when I
27020 <a href="http://wiki.debian.org/DebianEdu/BrowserMultimedia">last
27021 tested the browser plugins</a> available in Debian, the VLC plugin
27022 failed on several video pages where mplayer based plugins worked. If
27023 the browser plugin for VLC was as good as the gecko-mediaplayer
27024 package (which uses mplayer), we would switch.</P>
27025
27026 <p>While VLC is a good player, its user interface is slightly
27027 annoying. The most annoying feature is its inconsistent use of
27028 keyboard shortcuts. When the player is in full screen mode, its
27029 shortcuts are different from when it is playing the video in a window.
27030 For example, space only work as pause when in full screen mode. I
27031 wish it had consisten shortcuts and that space also would work when in
27032 window mode. Another nice shortcut in gmplayer is [enter] to restart
27033 the current video. It is very nice when playing short videos from the
27034 web and want to restart it when new people arrive to have a look at
27035 what is going on.</p>
27036
27037 </div>
27038 <div class="tags">
27039
27040
27041 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>.
27042
27043
27044 </div>
27045 </div>
27046 <div class="padding"></div>
27047
27048 <div class="entry">
27049 <div class="title">
27050 <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>
27051 </div>
27052 <div class="date">
27053 22nd November 2010
27054 </div>
27055 <div class="body">
27056 <p>Michael Biebl suggested to me on IRC, that I changed my automated
27057 upgrade testing of the
27058 <a href="http://people.skolelinux.org/~pere/debian-upgrade-testing/">Lenny
27059 Gnome and KDE Desktop</a> to do <tt>apt-get autoremove</tt> when using apt-get.
27060 This seem like a very good idea, so I adjusted by test scripts and
27061 can now present the updated result from today:</p>
27062
27063 <p>This is for Gnome:</p>
27064
27065 <p>Installed using apt-get, missing with aptitude</p>
27066
27067 <blockquote><p>
27068 apache2.2-bin
27069 aptdaemon
27070 baobab
27071 binfmt-support
27072 browser-plugin-gnash
27073 cheese-common
27074 cli-common
27075 cups-pk-helper
27076 dmz-cursor-theme
27077 empathy
27078 empathy-common
27079 freedesktop-sound-theme
27080 freeglut3
27081 gconf-defaults-service
27082 gdm-themes
27083 gedit-plugins
27084 geoclue
27085 geoclue-hostip
27086 geoclue-localnet
27087 geoclue-manual
27088 geoclue-yahoo
27089 gnash
27090 gnash-common
27091 gnome
27092 gnome-backgrounds
27093 gnome-cards-data
27094 gnome-codec-install
27095 gnome-core
27096 gnome-desktop-environment
27097 gnome-disk-utility
27098 gnome-screenshot
27099 gnome-search-tool
27100 gnome-session-canberra
27101 gnome-system-log
27102 gnome-themes-extras
27103 gnome-themes-more
27104 gnome-user-share
27105 gstreamer0.10-fluendo-mp3
27106 gstreamer0.10-tools
27107 gtk2-engines
27108 gtk2-engines-pixbuf
27109 gtk2-engines-smooth
27110 hamster-applet
27111 libapache2-mod-dnssd
27112 libapr1
27113 libaprutil1
27114 libaprutil1-dbd-sqlite3
27115 libaprutil1-ldap
27116 libart2.0-cil
27117 libboost-date-time1.42.0
27118 libboost-python1.42.0
27119 libboost-thread1.42.0
27120 libchamplain-0.4-0
27121 libchamplain-gtk-0.4-0
27122 libcheese-gtk18
27123 libclutter-gtk-0.10-0
27124 libcryptui0
27125 libdiscid0
27126 libelf1
27127 libepc-1.0-2
27128 libepc-common
27129 libepc-ui-1.0-2
27130 libfreerdp-plugins-standard
27131 libfreerdp0
27132 libgconf2.0-cil
27133 libgdata-common
27134 libgdata7
27135 libgdu-gtk0
27136 libgee2
27137 libgeoclue0
27138 libgexiv2-0
27139 libgif4
27140 libglade2.0-cil
27141 libglib2.0-cil
27142 libgmime2.4-cil
27143 libgnome-vfs2.0-cil
27144 libgnome2.24-cil
27145 libgnomepanel2.24-cil
27146 libgpod-common
27147 libgpod4
27148 libgtk2.0-cil
27149 libgtkglext1
27150 libgtksourceview2.0-common
27151 libmono-addins-gui0.2-cil
27152 libmono-addins0.2-cil
27153 libmono-cairo2.0-cil
27154 libmono-corlib2.0-cil
27155 libmono-i18n-west2.0-cil
27156 libmono-posix2.0-cil
27157 libmono-security2.0-cil
27158 libmono-sharpzip2.84-cil
27159 libmono-system2.0-cil
27160 libmtp8
27161 libmusicbrainz3-6
27162 libndesk-dbus-glib1.0-cil
27163 libndesk-dbus1.0-cil
27164 libopal3.6.8
27165 libpolkit-gtk-1-0
27166 libpt2.6.7
27167 libpython2.6
27168 librpm1
27169 librpmio1
27170 libsdl1.2debian
27171 libsrtp0
27172 libssh-4
27173 libtelepathy-farsight0
27174 libtelepathy-glib0
27175 libtidy-0.99-0
27176 media-player-info
27177 mesa-utils
27178 mono-2.0-gac
27179 mono-gac
27180 mono-runtime
27181 nautilus-sendto
27182 nautilus-sendto-empathy
27183 p7zip-full
27184 pkg-config
27185 python-aptdaemon
27186 python-aptdaemon-gtk
27187 python-axiom
27188 python-beautifulsoup
27189 python-bugbuddy
27190 python-clientform
27191 python-coherence
27192 python-configobj
27193 python-crypto
27194 python-cupshelpers
27195 python-elementtree
27196 python-epsilon
27197 python-evolution
27198 python-feedparser
27199 python-gdata
27200 python-gdbm
27201 python-gst0.10
27202 python-gtkglext1
27203 python-gtksourceview2
27204 python-httplib2
27205 python-louie
27206 python-mako
27207 python-markupsafe
27208 python-mechanize
27209 python-nevow
27210 python-notify
27211 python-opengl
27212 python-openssl
27213 python-pam
27214 python-pkg-resources
27215 python-pyasn1
27216 python-pysqlite2
27217 python-rdflib
27218 python-serial
27219 python-tagpy
27220 python-twisted-bin
27221 python-twisted-conch
27222 python-twisted-core
27223 python-twisted-web
27224 python-utidylib
27225 python-webkit
27226 python-xdg
27227 python-zope.interface
27228 remmina
27229 remmina-plugin-data
27230 remmina-plugin-rdp
27231 remmina-plugin-vnc
27232 rhythmbox-plugin-cdrecorder
27233 rhythmbox-plugins
27234 rpm-common
27235 rpm2cpio
27236 seahorse-plugins
27237 shotwell
27238 software-center
27239 system-config-printer-udev
27240 telepathy-gabble
27241 telepathy-mission-control-5
27242 telepathy-salut
27243 tomboy
27244 totem
27245 totem-coherence
27246 totem-mozilla
27247 totem-plugins
27248 transmission-common
27249 xdg-user-dirs
27250 xdg-user-dirs-gtk
27251 xserver-xephyr
27252 </p></blockquote>
27253
27254 <p>Installed using apt-get, removed with aptitude</p>
27255
27256 <blockquote><p>
27257 cheese
27258 ekiga
27259 eog
27260 epiphany-extensions
27261 evolution-exchange
27262 fast-user-switch-applet
27263 file-roller
27264 gcalctool
27265 gconf-editor
27266 gdm
27267 gedit
27268 gedit-common
27269 gnome-games
27270 gnome-games-data
27271 gnome-nettool
27272 gnome-system-tools
27273 gnome-themes
27274 gnuchess
27275 gucharmap
27276 guile-1.8-libs
27277 libavahi-ui0
27278 libdmx1
27279 libgalago3
27280 libgtk-vnc-1.0-0
27281 libgtksourceview2.0-0
27282 liblircclient0
27283 libsdl1.2debian-alsa
27284 libspeexdsp1
27285 libsvga1
27286 rhythmbox
27287 seahorse
27288 sound-juicer
27289 system-config-printer
27290 totem-common
27291 transmission-gtk
27292 vinagre
27293 vino
27294 </p></blockquote>
27295
27296 <p>Installed using aptitude, missing with apt-get</p>
27297
27298 <blockquote><p>
27299 gstreamer0.10-gnomevfs
27300 </p></blockquote>
27301
27302 <p>Installed using aptitude, removed with apt-get</p>
27303
27304 <blockquote><p>
27305 [nothing]
27306 </p></blockquote>
27307
27308 <p>This is for KDE:</p>
27309
27310 <p>Installed using apt-get, missing with aptitude</p>
27311
27312 <blockquote><p>
27313 ksmserver
27314 </p></blockquote>
27315
27316 <p>Installed using apt-get, removed with aptitude</p>
27317
27318 <blockquote><p>
27319 kwin
27320 network-manager-kde
27321 </p></blockquote>
27322
27323 <p>Installed using aptitude, missing with apt-get</p>
27324
27325 <blockquote><p>
27326 arts
27327 dolphin
27328 freespacenotifier
27329 google-gadgets-gst
27330 google-gadgets-xul
27331 kappfinder
27332 kcalc
27333 kcharselect
27334 kde-core
27335 kde-plasma-desktop
27336 kde-standard
27337 kde-window-manager
27338 kdeartwork
27339 kdeartwork-emoticons
27340 kdeartwork-style
27341 kdeartwork-theme-icon
27342 kdebase
27343 kdebase-apps
27344 kdebase-workspace
27345 kdebase-workspace-bin
27346 kdebase-workspace-data
27347 kdeeject
27348 kdelibs
27349 kdeplasma-addons
27350 kdeutils
27351 kdewallpapers
27352 kdf
27353 kfloppy
27354 kgpg
27355 khelpcenter4
27356 kinfocenter
27357 konq-plugins-l10n
27358 konqueror-nsplugins
27359 kscreensaver
27360 kscreensaver-xsavers
27361 ktimer
27362 kwrite
27363 libgle3
27364 libkde4-ruby1.8
27365 libkonq5
27366 libkonq5-templates
27367 libnetpbm10
27368 libplasma-ruby
27369 libplasma-ruby1.8
27370 libqt4-ruby1.8
27371 marble-data
27372 marble-plugins
27373 netpbm
27374 nuvola-icon-theme
27375 plasma-dataengines-workspace
27376 plasma-desktop
27377 plasma-desktopthemes-artwork
27378 plasma-runners-addons
27379 plasma-scriptengine-googlegadgets
27380 plasma-scriptengine-python
27381 plasma-scriptengine-qedje
27382 plasma-scriptengine-ruby
27383 plasma-scriptengine-webkit
27384 plasma-scriptengines
27385 plasma-wallpapers-addons
27386 plasma-widget-folderview
27387 plasma-widget-networkmanagement
27388 ruby
27389 sweeper
27390 update-notifier-kde
27391 xscreensaver-data-extra
27392 xscreensaver-gl
27393 xscreensaver-gl-extra
27394 xscreensaver-screensaver-bsod
27395 </p></blockquote>
27396
27397 <p>Installed using aptitude, removed with apt-get</p>
27398
27399 <blockquote><p>
27400 ark
27401 google-gadgets-common
27402 google-gadgets-qt
27403 htdig
27404 kate
27405 kdebase-bin
27406 kdebase-data
27407 kdepasswd
27408 kfind
27409 klipper
27410 konq-plugins
27411 konqueror
27412 ksysguard
27413 ksysguardd
27414 libarchive1
27415 libcln6
27416 libeet1
27417 libeina-svn-06
27418 libggadget-1.0-0b
27419 libggadget-qt-1.0-0b
27420 libgps19
27421 libkdecorations4
27422 libkephal4
27423 libkonq4
27424 libkonqsidebarplugin4a
27425 libkscreensaver5
27426 libksgrd4
27427 libksignalplotter4
27428 libkunitconversion4
27429 libkwineffects1a
27430 libmarblewidget4
27431 libntrack-qt4-1
27432 libntrack0
27433 libplasma-geolocation-interface4
27434 libplasmaclock4a
27435 libplasmagenericshell4
27436 libprocesscore4a
27437 libprocessui4a
27438 libqalculate5
27439 libqedje0a
27440 libqtruby4shared2
27441 libqzion0a
27442 libruby1.8
27443 libscim8c2a
27444 libsmokekdecore4-3
27445 libsmokekdeui4-3
27446 libsmokekfile3
27447 libsmokekhtml3
27448 libsmokekio3
27449 libsmokeknewstuff2-3
27450 libsmokeknewstuff3-3
27451 libsmokekparts3
27452 libsmokektexteditor3
27453 libsmokekutils3
27454 libsmokenepomuk3
27455 libsmokephonon3
27456 libsmokeplasma3
27457 libsmokeqtcore4-3
27458 libsmokeqtdbus4-3
27459 libsmokeqtgui4-3
27460 libsmokeqtnetwork4-3
27461 libsmokeqtopengl4-3
27462 libsmokeqtscript4-3
27463 libsmokeqtsql4-3
27464 libsmokeqtsvg4-3
27465 libsmokeqttest4-3
27466 libsmokeqtuitools4-3
27467 libsmokeqtwebkit4-3
27468 libsmokeqtxml4-3
27469 libsmokesolid3
27470 libsmokesoprano3
27471 libtaskmanager4a
27472 libtidy-0.99-0
27473 libweather-ion4a
27474 libxklavier16
27475 libxxf86misc1
27476 okteta
27477 oxygencursors
27478 plasma-dataengines-addons
27479 plasma-scriptengine-superkaramba
27480 plasma-widget-lancelot
27481 plasma-widgets-addons
27482 plasma-widgets-workspace
27483 polkit-kde-1
27484 ruby1.8
27485 systemsettings
27486 update-notifier-common
27487 </p></blockquote>
27488
27489 <p>Running apt-get autoremove made the results using apt-get and
27490 aptitude a bit more similar, but there are still quite a lott of
27491 differences. I have no idea what packages should be installed after
27492 the upgrade, but hope those that do can have a look.</p>
27493
27494 </div>
27495 <div class="tags">
27496
27497
27498 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>.
27499
27500
27501 </div>
27502 </div>
27503 <div class="padding"></div>
27504
27505 <div class="entry">
27506 <div class="title">
27507 <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>
27508 </div>
27509 <div class="date">
27510 22nd November 2010
27511 </div>
27512 <div class="body">
27513 <p>Most of the computers in use by the
27514 <a href="http://www.skolelinux.org/">Debian Edu/Skolelinux project</a>
27515 are virtual machines. And they have been Xen machines running on a
27516 fairly old IBM eserver xseries 345 machine, and we wanted to migrate
27517 them to KVM on a newer Dell PowerEdge 2950 host machine. This was a
27518 bit harder that it could have been, because we set up the Xen virtual
27519 machines to get the virtual partitions from LVM, which as far as I
27520 know is not supported by KVM. So to migrate, we had to convert
27521 several LVM logical volumes to partitions on a virtual disk file.</p>
27522
27523 <p>I found
27524 <a href="http://searchnetworking.techtarget.com.au/articles/35011-Six-steps-for-migrating-Xen-virtual-machines-to-KVM">a
27525 nice recipe</a> to do this, and wrote the following script to do the
27526 migration. It uses qemu-img from the qemu package to make the disk
27527 image, parted to partition it, losetup and kpartx to present the disk
27528 image partions as devices, and dd to copy the data. I NFS mounted the
27529 new servers storage area on the old server to do the migration.</p>
27530
27531 <pre>
27532 #!/bin/sh
27533
27534 # Based on
27535 # http://searchnetworking.techtarget.com.au/articles/35011-Six-steps-for-migrating-Xen-virtual-machines-to-KVM
27536
27537 set -e
27538 set -x
27539
27540 if [ -z "$1" ] ; then
27541 echo "Usage: $0 &lt;hostname&gt;"
27542 exit 1
27543 else
27544 host="$1"
27545 fi
27546
27547 if [ ! -e /dev/vg_data/$host-disk ] ; then
27548 echo "error: unable to find LVM volume for $host"
27549 exit 1
27550 fi
27551
27552 # Partitions need to be a bit bigger than the LVM LVs. not sure why.
27553 disksize=$( lvs --units m | grep $host-disk | awk '{sum = sum + $4} END { print int(sum * 1.05) }')
27554 swapsize=$( lvs --units m | grep $host-swap | awk '{sum = sum + $4} END { print int(sum * 1.05) }')
27555 totalsize=$(( ( $disksize + $swapsize ) ))
27556
27557 img=$host.img
27558 #dd if=/dev/zero of=$img bs=1M count=$(( $disksize + $swapsize ))
27559 qemu-img create $img ${totalsize}MMaking room on the Debian Edu/Sqeeze DVD
27560
27561 parted $img mklabel msdos
27562 parted $img mkpart primary linux-swap 0 $disksize
27563 parted $img mkpart primary ext2 $disksize $totalsize
27564 parted $img set 1 boot on
27565
27566 modprobe dm-mod
27567 losetup /dev/loop0 $img
27568 kpartx -a /dev/loop0
27569
27570 dd if=/dev/vg_data/$host-disk of=/dev/mapper/loop0p1 bs=1M
27571 fsck.ext3 -f /dev/mapper/loop0p1 || true
27572 mkswap /dev/mapper/loop0p2
27573
27574 kpartx -d /dev/loop0
27575 losetup -d /dev/loop0
27576 </pre>
27577
27578 <p>The script is perhaps so simple that it is not copyrightable, but
27579 if it is, it is licenced using GPL v2 or later at your discretion.</p>
27580
27581 <p>After doing this, I booted a Debian CD in rescue mode in KVM with
27582 the new disk image attached, installed grub-pc and linux-image-686 and
27583 set up grub to boot from the disk image. After this, the KVM machines
27584 seem to work just fine.</p>
27585
27586 </div>
27587 <div class="tags">
27588
27589
27590 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>.
27591
27592
27593 </div>
27594 </div>
27595 <div class="padding"></div>
27596
27597 <div class="entry">
27598 <div class="title">
27599 <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>
27600 </div>
27601 <div class="date">
27602 20th November 2010
27603 </div>
27604 <div class="body">
27605 <p>I'm still running upgrade testing of the
27606 <a href="http://people.skolelinux.org/~pere/debian-upgrade-testing/">Lenny
27607 Gnome and KDE Desktop</a>, but have not had time to spend on reporting the
27608 status. Here is a short update based on a test I ran 20101118.</p>
27609
27610 <p>I still do not know what a correct migration should look like, so I
27611 report any differences between apt and aptitude and hope someone else
27612 can see if anything should be changed.</p>
27613
27614 <p>This is for Gnome:</p>
27615
27616 <p>Installed using apt-get, missing with aptitude</p>
27617
27618 <blockquote><p>
27619 apache2.2-bin aptdaemon at-spi baobab binfmt-support
27620 browser-plugin-gnash cheese-common cli-common cpp-4.3 cups-pk-helper
27621 dmz-cursor-theme empathy empathy-common finger
27622 freedesktop-sound-theme freeglut3 gconf-defaults-service gdm-themes
27623 gedit-plugins geoclue geoclue-hostip geoclue-localnet geoclue-manual
27624 geoclue-yahoo gnash gnash-common gnome gnome-backgrounds
27625 gnome-cards-data gnome-codec-install gnome-core
27626 gnome-desktop-environment gnome-disk-utility gnome-screenshot
27627 gnome-search-tool gnome-session-canberra gnome-spell
27628 gnome-system-log gnome-themes-extras gnome-themes-more
27629 gnome-user-share gs-common gstreamer0.10-fluendo-mp3
27630 gstreamer0.10-tools gtk2-engines gtk2-engines-pixbuf
27631 gtk2-engines-smooth hal-info hamster-applet libapache2-mod-dnssd
27632 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap
27633 libart2.0-cil libatspi1.0-0 libboost-date-time1.42.0
27634 libboost-python1.42.0 libboost-thread1.42.0 libchamplain-0.4-0
27635 libchamplain-gtk-0.4-0 libcheese-gtk18 libclutter-gtk-0.10-0
27636 libcryptui0 libcupsys2 libdiscid0 libeel2-data libelf1 libepc-1.0-2
27637 libepc-common libepc-ui-1.0-2 libfreerdp-plugins-standard
27638 libfreerdp0 libgail-common libgconf2.0-cil libgdata-common libgdata7
27639 libgdl-1-common libgdu-gtk0 libgee2 libgeoclue0 libgexiv2-0 libgif4
27640 libglade2.0-cil libglib2.0-cil libgmime2.4-cil libgnome-vfs2.0-cil
27641 libgnome2.24-cil libgnomepanel2.24-cil libgnomeprint2.2-data
27642 libgnomeprintui2.2-common libgnomevfs2-bin libgpod-common libgpod4
27643 libgtk2.0-cil libgtkglext1 libgtksourceview-common
27644 libgtksourceview2.0-common libmono-addins-gui0.2-cil
27645 libmono-addins0.2-cil libmono-cairo2.0-cil libmono-corlib2.0-cil
27646 libmono-i18n-west2.0-cil libmono-posix2.0-cil
27647 libmono-security2.0-cil libmono-sharpzip2.84-cil
27648 libmono-system2.0-cil libmtp8 libmusicbrainz3-6
27649 libndesk-dbus-glib1.0-cil libndesk-dbus1.0-cil libopal3.6.8
27650 libpolkit-gtk-1-0 libpt-1.10.10-plugins-alsa
27651 libpt-1.10.10-plugins-v4l libpt2.6.7 libpython2.6 librpm1 librpmio1
27652 libsdl1.2debian libservlet2.4-java libsrtp0 libssh-4
27653 libtelepathy-farsight0 libtelepathy-glib0 libtidy-0.99-0
27654 libxalan2-java libxerces2-java media-player-info mesa-utils
27655 mono-2.0-gac mono-gac mono-runtime nautilus-sendto
27656 nautilus-sendto-empathy openoffice.org-writer2latex
27657 openssl-blacklist p7zip p7zip-full pkg-config python-4suite-xml
27658 python-aptdaemon python-aptdaemon-gtk python-axiom
27659 python-beautifulsoup python-bugbuddy python-clientform
27660 python-coherence python-configobj python-crypto python-cupshelpers
27661 python-cupsutils python-eggtrayicon python-elementtree
27662 python-epsilon python-evolution python-feedparser python-gdata
27663 python-gdbm python-gst0.10 python-gtkglext1 python-gtkmozembed
27664 python-gtksourceview2 python-httplib2 python-louie python-mako
27665 python-markupsafe python-mechanize python-nevow python-notify
27666 python-opengl python-openssl python-pam python-pkg-resources
27667 python-pyasn1 python-pysqlite2 python-rdflib python-serial
27668 python-tagpy python-twisted-bin python-twisted-conch
27669 python-twisted-core python-twisted-web python-utidylib python-webkit
27670 python-xdg python-zope.interface remmina remmina-plugin-data
27671 remmina-plugin-rdp remmina-plugin-vnc rhythmbox-plugin-cdrecorder
27672 rhythmbox-plugins rpm-common rpm2cpio seahorse-plugins shotwell
27673 software-center svgalibg1 system-config-printer-udev
27674 telepathy-gabble telepathy-mission-control-5 telepathy-salut tomboy
27675 totem totem-coherence totem-mozilla totem-plugins
27676 transmission-common xdg-user-dirs xdg-user-dirs-gtk xserver-xephyr
27677 zip
27678 </p></blockquote>
27679
27680 Installed using apt-get, removed with aptitude
27681
27682 <blockquote><p>
27683 arj bluez-utils cheese dhcdbd djvulibre-desktop ekiga eog
27684 epiphany-extensions epiphany-gecko evolution-exchange
27685 fast-user-switch-applet file-roller gcalctool gconf-editor gdm gedit
27686 gedit-common gnome-app-install gnome-games gnome-games-data
27687 gnome-nettool gnome-system-tools gnome-themes gnome-utils
27688 gnome-vfs-obexftp gnome-volume-manager gnuchess gucharmap
27689 guile-1.8-libs hal libavahi-compat-libdnssd1 libavahi-core5
27690 libavahi-ui0 libbind9-50 libbluetooth2 libcamel1.2-11 libcdio7
27691 libcucul0 libcurl3 libdirectfb-1.0-0 libdmx1 libdvdread3
27692 libedata-cal1.2-6 libedataserver1.2-9 libeel2-2.20 libepc-1.0-1
27693 libepc-ui-1.0-1 libexchange-storage1.2-3 libfaad0 libgadu3
27694 libgalago3 libgd2-noxpm libgda3-3 libgda3-common libggz2 libggzcore9
27695 libggzmod4 libgksu1.2-0 libgksuui1.0-1 libgmyth0 libgnome-desktop-2
27696 libgnome-pilot2 libgnomecups1.0-1 libgnomeprint2.2-0
27697 libgnomeprintui2.2-0 libgpod3 libgraphviz4 libgtk-vnc-1.0-0
27698 libgtkhtml2-0 libgtksourceview1.0-0 libgtksourceview2.0-0
27699 libgucharmap6 libhesiod0 libicu38 libisccc50 libisccfg50 libiw29
27700 libjaxp1.3-java-gcj libkpathsea4 liblircclient0 libltdl3 liblwres50
27701 libmagick++10 libmagick10 libmalaga7 libmozjs1d libmpfr1ldbl libmtp7
27702 libmysqlclient15off libnautilus-burn4 libneon27 libnm-glib0
27703 libnm-util0 libopal-2.2 libosp5 libparted1.8-10 libpisock9
27704 libpisync1 libpoppler-glib3 libpoppler3 libpt-1.10.10 libraw1394-8
27705 libsdl1.2debian-alsa libsensors3 libsexy2 libsmbios2 libsoup2.2-8
27706 libspeexdsp1 libssh2-1 libsuitesparse-3.1.0 libsvga1
27707 libswfdec-0.6-90 libtalloc1 libtotem-plparser10 libtrackerclient0
27708 libvoikko1 libxalan2-java-gcj libxerces2-java-gcj libxklavier12
27709 libxtrap6 libxxf86misc1 libzephyr3 mysql-common rhythmbox seahorse
27710 sound-juicer swfdec-gnome system-config-printer totem-common
27711 totem-gstreamer transmission-gtk vinagre vino w3c-dtd-xhtml wodim
27712 </p></blockquote>
27713
27714 <p>Installed using aptitude, missing with apt-get</p>
27715
27716 <blockquote><p>
27717 gstreamer0.10-gnomevfs
27718 </p></blockquote>
27719
27720 <p>Installed using aptitude, removed with apt-get</p>
27721
27722 <blockquote><p>
27723 [nothing]
27724 </p></blockquote>
27725
27726 <p>This is for KDE:</p>
27727
27728 <p>Installed using apt-get, missing with aptitude</p>
27729
27730 <blockquote><p>
27731 autopoint bomber bovo cantor cantor-backend-kalgebra cpp-4.3 dcoprss
27732 edict espeak espeak-data eyesapplet fifteenapplet finger gettext
27733 ghostscript-x git gnome-audio gnugo granatier gs-common
27734 gstreamer0.10-pulseaudio indi kaddressbook-plugins kalgebra
27735 kalzium-data kanjidic kapman kate-plugins kblocks kbreakout kbstate
27736 kde-icons-mono kdeaccessibility kdeaddons-kfile-plugins
27737 kdeadmin-kfile-plugins kdeartwork-misc kdeartwork-theme-window
27738 kdeedu kdeedu-data kdeedu-kvtml-data kdegames kdegames-card-data
27739 kdegames-mahjongg-data kdegraphics-kfile-plugins kdelirc
27740 kdemultimedia-kfile-plugins kdenetwork-kfile-plugins
27741 kdepim-kfile-plugins kdepim-kio-plugins kdessh kdetoys kdewebdev
27742 kdiamond kdnssd kfilereplace kfourinline kgeography-data kigo
27743 killbots kiriki klettres-data kmoon kmrml knewsticker-scripts
27744 kollision kpf krosspython ksirk ksmserver ksquares kstars-data
27745 ksudoku kubrick kweather libasound2-plugins libboost-python1.42.0
27746 libcfitsio3 libconvert-binhex-perl libcrypt-ssleay-perl libdb4.6++
27747 libdjvulibre-text libdotconf1.0 liberror-perl libespeak1
27748 libfinance-quote-perl libgail-common libgsl0ldbl libhtml-parser-perl
27749 libhtml-tableextract-perl libhtml-tagset-perl libhtml-tree-perl
27750 libio-stringy-perl libkdeedu4 libkdegames5 libkiten4 libkpathsea5
27751 libkrossui4 libmailtools-perl libmime-tools-perl
27752 libnews-nntpclient-perl libopenbabel3 libportaudio2 libpulse-browse0
27753 libservlet2.4-java libspeechd2 libtiff-tools libtimedate-perl
27754 libunistring0 liburi-perl libwww-perl libxalan2-java libxerces2-java
27755 lirc luatex marble networkstatus noatun-plugins
27756 openoffice.org-writer2latex palapeli palapeli-data parley
27757 parley-data poster psutils pulseaudio pulseaudio-esound-compat
27758 pulseaudio-module-x11 pulseaudio-utils quanta-data rocs rsync
27759 speech-dispatcher step svgalibg1 texlive-binaries texlive-luatex
27760 ttf-sazanami-gothic
27761 </p></blockquote>
27762
27763 <p>Installed using apt-get, removed with aptitude</p>
27764
27765 <blockquote><p>
27766 amor artsbuilder atlantik atlantikdesigner blinken bluez-utils cvs
27767 dhcdbd djvulibre-desktop imlib-base imlib11 kalzium kanagram kandy
27768 kasteroids katomic kbackgammon kbattleship kblackbox kbounce kbruch
27769 kcron kdat kdemultimedia-kappfinder-data kdeprint kdict kdvi kedit
27770 keduca kenolaba kfax kfaxview kfouleggs kgeography kghostview
27771 kgoldrunner khangman khexedit kiconedit kig kimagemapeditor
27772 kitchensync kiten kjumpingcube klatin klettres klickety klines
27773 klinkstatus kmag kmahjongg kmailcvt kmenuedit kmid kmilo kmines
27774 kmousetool kmouth kmplot knetwalk kodo kolf kommander konquest kooka
27775 kpager kpat kpdf kpercentage kpilot kpoker kpovmodeler krec
27776 kregexpeditor kreversi ksame ksayit kshisen ksig ksim ksirc ksirtet
27777 ksmiletris ksnake ksokoban kspaceduel kstars ksvg ksysv kteatime
27778 ktip ktnef ktouch ktron kttsd ktuberling kturtle ktux kuickshow
27779 kverbos kview kviewshell kvoctrain kwifimanager kwin kwin4 kwordquiz
27780 kworldclock kxsldbg libakode2 libarts1-akode libarts1-audiofile
27781 libarts1-mpeglib libarts1-xine libavahi-compat-libdnssd1
27782 libavahi-core5 libavc1394-0 libbind9-50 libbluetooth2
27783 libboost-python1.34.1 libcucul0 libcurl3 libcvsservice0
27784 libdirectfb-1.0-0 libdjvulibre21 libdvdread3 libfaad0 libfreebob0
27785 libgd2-noxpm libgraphviz4 libgsmme1c2a libgtkhtml2-0 libicu38
27786 libiec61883-0 libindex0 libisccc50 libisccfg50 libiw29
27787 libjaxp1.3-java-gcj libk3b3 libkcal2b libkcddb1 libkdeedu3
27788 libkdegames1 libkdepim1a libkgantt0 libkleopatra1 libkmime2
27789 libkpathsea4 libkpimexchange1 libkpimidentities1 libkscan1
27790 libksieve0 libktnef1 liblockdev1 libltdl3 liblwres50 libmagick10
27791 libmimelib1c2a libmodplug0c2 libmozjs1d libmpcdec3 libmpfr1ldbl
27792 libneon27 libnm-util0 libopensync0 libpisock9 libpoppler-glib3
27793 libpoppler-qt2 libpoppler3 libraw1394-8 librss1 libsensors3
27794 libsmbios2 libssh2-1 libsuitesparse-3.1.0 libswfdec-0.6-90
27795 libtalloc1 libxalan2-java-gcj libxerces2-java-gcj libxtrap6 lskat
27796 mpeglib network-manager-kde noatun pmount tex-common texlive-base
27797 texlive-common texlive-doc-base texlive-fonts-recommended tidy
27798 ttf-dustin ttf-kochi-gothic ttf-sjfonts
27799 </p></blockquote>
27800
27801 <p>Installed using aptitude, missing with apt-get</p>
27802
27803 <blockquote><p>
27804 dolphin kde-core kde-plasma-desktop kde-standard kde-window-manager
27805 kdeartwork kdebase kdebase-apps kdebase-workspace
27806 kdebase-workspace-bin kdebase-workspace-data kdeutils kscreensaver
27807 kscreensaver-xsavers libgle3 libkonq5 libkonq5-templates libnetpbm10
27808 netpbm plasma-widget-folderview plasma-widget-networkmanagement
27809 xscreensaver-data-extra xscreensaver-gl xscreensaver-gl-extra
27810 xscreensaver-screensaver-bsod
27811 </p></blockquote>
27812
27813 <p>Installed using aptitude, removed with apt-get</p>
27814
27815 <blockquote><p>
27816 kdebase-bin konq-plugins konqueror
27817 </p></blockquote>
27818
27819 </div>
27820 <div class="tags">
27821
27822
27823 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>.
27824
27825
27826 </div>
27827 </div>
27828 <div class="padding"></div>
27829
27830 <div class="entry">
27831 <div class="title">
27832 <a href="http://people.skolelinux.org/pere/blog/Gnash_buildbot_slave_and_Debian_kfreebsd.html">Gnash buildbot slave and Debian kfreebsd</a>
27833 </div>
27834 <div class="date">
27835 20th November 2010
27836 </div>
27837 <div class="body">
27838 <p>Answering
27839 <a href="http://www.listware.net/201011/gnash-dev/67431-gnash-dev-buildbot-looking-for-slaves.html">the
27840 call from the Gnash project</a> for
27841 <a href="http://www.gnashdev.org:8010">buildbot</a> slaves to test the
27842 current source, I have set up a virtual KVM machine on the Debian
27843 Edu/Skolelinux virtualization host to test the git source on
27844 Debian/Squeeze. I hope this can help the developers in getting new
27845 releases out more often.</p>
27846
27847 <p>As the developers want less main-stream build platforms tested to,
27848 I have considered setting up a <a
27849 href="http://www.debian.org/ports/kfreebsd-gnu/">Debian/kfreebsd</a>
27850 machine as well. I have also considered using the kfreebsd
27851 architecture in Debian as a file server in NUUG to get access to the 5
27852 TB zfs volume we currently use to store DV video. Because of this, I
27853 finally got around to do a test installation of Debian/Squeeze with
27854 kfreebsd. Installation went fairly smooth, thought I noticed some
27855 visual glitches in the cdebconf dialogs (black cursor left on the
27856 screen at random locations). Have not gotten very far with the
27857 testing. Noticed cfdisk did not work, but fdisk did so it was not a
27858 fatal problem. Have to spend some more time on it to see if it is
27859 useful as a file server for NUUG. Will try to find time to set up a
27860 gnash buildbot slave on the Debian Edu/Skolelinux this weekend.</p>
27861
27862 </div>
27863 <div class="tags">
27864
27865
27866 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>.
27867
27868
27869 </div>
27870 </div>
27871 <div class="padding"></div>
27872
27873 <div class="entry">
27874 <div class="title">
27875 <a href="http://people.skolelinux.org/pere/blog/Debian_in_3D.html">Debian in 3D</a>
27876 </div>
27877 <div class="date">
27878 9th November 2010
27879 </div>
27880 <div class="body">
27881 <p><img src="http://thingiverse-production.s3.amazonaws.com/renders/23/e0/c4/f9/2b/debswagtdose_preview_medium.jpg"></p>
27882
27883 <p>3D printing is just great. I just came across this Debian logo in
27884 3D linked in from
27885 <a href="http://blog.thingiverse.com/2010/11/09/participatory-branding/">the
27886 thingiverse blog</a>.</p>
27887
27888 </div>
27889 <div class="tags">
27890
27891
27892 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>.
27893
27894
27895 </div>
27896 </div>
27897 <div class="padding"></div>
27898
27899 <div class="entry">
27900 <div class="title">
27901 <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>
27902 </div>
27903 <div class="date">
27904 7th November 2010
27905 </div>
27906 <div class="body">
27907 <p>Prioritising packages for the Debian Edu /
27908 <a href="http://www.skolelinux.org/">Skolelinux</a> DVD, which is
27909 supposed provide a school with all the services and user applications
27910 needed on the pupils computer network has always been hard. Even
27911 schools without Internet connections should be able to get Debian Edu
27912 working using this DVD.</p>
27913
27914 <p>The job became a lot harder when apt and aptitude started
27915 installing recommended packages by default. We want the same set of
27916 packages to be installed when using the DVD and the netinst CD, and
27917 that means all recommended packages need to be on the DVD. I created
27918 a patch for debian-cd in <a href="http://bugs.debian.org/601203">BTS
27919 report #601203</a> to do this, and since this change was applied to
27920 the Debian Edu DVD build, we have been seriously short on space.</p>
27921
27922 <p>A few days ago we decided to drop blender, wxmaxima and kicad from
27923 the default installation to save space on the DVD, believing that
27924 those needing these applications are few and can get them from the
27925 Debian archive.</p>
27926
27927 <p>Yesterday, I had a look what source packages to see which packages
27928 were using most space. A few large packages are well know;
27929 openoffice.org, openclipart and fluid-soundfont. But I also
27930 discovered that lilypond used 106 MiB and fglrx-driver used 53 MiB.
27931 The lilypond package is pulled in as a dependency for rosegarden, and
27932 when looking a bit closer I discovered that 99 MiB of the 106 MiB were
27933 the documentation package, which is recommended by the binary package.
27934 I decided to drop this documentation package from our DVD, as most of
27935 our users will use the GUI front-ends and do not need the lilypond
27936 documentation. Similarly, I dropped the non-free fglrx-driver package
27937 which might be installed by d-i when its hardware is detected, as the
27938 free X driver should work.</p>
27939
27940 <p>With this change, we finally got space for the LXDE and Gnome
27941 desktop packages as well as the language specific packages making the
27942 DVD more useful again.</p>
27943
27944 </div>
27945 <div class="tags">
27946
27947
27948 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>.
27949
27950
27951 </div>
27952 </div>
27953 <div class="padding"></div>
27954
27955 <div class="entry">
27956 <div class="title">
27957 <a href="http://people.skolelinux.org/pere/blog/Software_updates_2010_10_24.html">Software updates 2010-10-24</a>
27958 </div>
27959 <div class="date">
27960 24th October 2010
27961 </div>
27962 <div class="body">
27963 <p>Some updates.</p>
27964
27965 <p>My <a href="http://pledgebank.com/gnash-avm2">gnash pledge</a> to
27966 raise money for the project is going well. The lower limit of 10
27967 signers was reached in 24 hours, and so far 13 people have signed it.
27968 More signers and more funding is most welcome, and I am really curious
27969 how far we can get before the time limit of December 24 is reached.
27970 :)</p>
27971
27972 <p>On the #gnash IRC channel on irc.freenode.net, I was just tipped
27973 about what appear to be a great code coverage tool capable of
27974 generating code coverage stats without any changes to the source code.
27975 It is called
27976 <a href="http://simonkagstrom.github.com/kcov/index.html">kcov</a>,
27977 and can be used using <tt>kcov &lt;directory&gt; &lt;binary&gt;</tt>.
27978 It is missing in Debian, but the git source built just fine in Squeeze
27979 after I installed libelf-dev, libdwarf-dev, pkg-config and
27980 libglib2.0-dev. Failed to build in Lenny, but suspect that is
27981 solvable. I hope kcov make it into Debian soon.</p>
27982
27983 <p>Finally found time to wrap up the release notes for <a
27984 href="http://lists.debian.org/debian-edu-announce/2010/10/msg00002.html">a
27985 new alpha release of Debian Edu</a>, and just published the second
27986 alpha test release of the Squeeze based Debian Edu /
27987 <a href="http://www.skolelinux.org/">Skolelinux</a>
27988 release. Give it a try if you need a complete linux solution for your
27989 school, including central infrastructure server, workstations, thin
27990 client servers and diskless workstations. A nice touch added
27991 yesterday is RDP support on the thin client servers, for windows
27992 clients to get a Linux desktop on request.</p>
27993
27994 </div>
27995 <div class="tags">
27996
27997
27998 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>.
27999
28000
28001 </div>
28002 </div>
28003 <div class="padding"></div>
28004
28005 <div class="entry">
28006 <div class="title">
28007 <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>
28008 </div>
28009 <div class="date">
28010 19th October 2010
28011 </div>
28012 <div class="body">
28013 <p><a href="http://www.getgnash.org/">The Gnash project</a> is the
28014 most promising solution for a Free Software Flash implementation. It
28015 has done great so far, but there is still far to go, and recently its
28016 funding has dried up. I believe AVM2 support in Gnash is vital to the
28017 continued progress of the project, as more and more sites show up with
28018 AVM2 flash files.</p>
28019
28020 <p>To try to get funding for developing such support, I have started
28021 <a href="http://www.pledgebank.com/gnash-avm2">a pledge</a> with the
28022 following text:</P>
28023
28024 <p><blockquote>
28025
28026 <p>"I will pay 100$ to the Gnash project to develop AVM2 support but
28027 only if 10 other people will do the same."</p>
28028
28029 <p>- Petter Reinholdtsen, free software developer</p>
28030
28031 <p>Deadline to sign up by: 24th December 2010</p>
28032
28033 <p>The Gnash project need to get support for the new Flash file
28034 format AVM2 to work with a lot of sites using Flash on the
28035 web. Gnash already work with a lot of Flash sites using the old AVM1
28036 format, but more and more sites are using the AVM2 format these
28037 days. The project web page is available from
28038 http://www.getgnash.org/ . Gnash is a free software implementation
28039 of Adobe Flash, allowing those of us that do not accept the terms of
28040 the Adobe Flash license to get access to Flash sites.</p>
28041
28042 <p>The project need funding to get developers to put aside enough
28043 time to develop the AVM2 support, and this pledge is my way to try
28044 to get this to happen.</p>
28045
28046 <p>The project accept donations via the OpenMediaNow foundation,
28047 <a href="http://www.openmedianow.org/?q=node/32">http://www.openmedianow.org/?q=node/32</a> .</p>
28048
28049 </blockquote></p>
28050
28051 <p>I hope you will support this effort too. I hope more than 10
28052 people will participate to make this happen. The more money the
28053 project gets, the more features it can develop using these funds.
28054 :)</p>
28055
28056 </div>
28057 <div class="tags">
28058
28059
28060 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>.
28061
28062
28063 </div>
28064 </div>
28065 <div class="padding"></div>
28066
28067 <div class="entry">
28068 <div class="title">
28069 <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>
28070 </div>
28071 <div class="date">
28072 9th October 2010
28073 </div>
28074 <div class="body">
28075 <p>This summer I got the chance to buy cheap Spykee robots, and since
28076 then I have worked on getting Linux software in place to control them.
28077 The firmware for the robot is available from the producer, and using
28078 that source it was trivial to figure out the protocol specification.
28079 I've started on a perl library to control it, and made some demo
28080 programs using this perl library to allow one to control the
28081 robots.</p>
28082
28083 <p>The library is quite functional already, and capable of controlling
28084 the driving, fetching video, uploading MP3s and play them. There are
28085 a few less important features too.</p>
28086
28087 <p>Since a few weeks ago, I ran out of time to spend on this project,
28088 but I never got around to releasing the current source. I decided
28089 today that it was time to do something about it, and uploaded the
28090 source to my Debian package store at people.skolelinux.org.</p>
28091
28092 <p>Because it was simpler for me, I made a Debian package and
28093 published the source and deb. If you got a spykee robot, grab the
28094 source or binary package:</p>
28095
28096 <p><ul>
28097 <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>
28098 <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>
28099 <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>
28100 </ul></p>
28101
28102 <p>If you are interested in helping out with developing this library,
28103 please let me know.</p>
28104
28105 </div>
28106 <div class="tags">
28107
28108
28109 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>.
28110
28111
28112 </div>
28113 </div>
28114 <div class="padding"></div>
28115
28116 <div class="entry">
28117 <div class="title">
28118 <a href="http://people.skolelinux.org/pere/blog/Links_for_2010_10_03.html">Links for 2010-10-03</a>
28119 </div>
28120 <div class="date">
28121 3rd October 2010
28122 </div>
28123 <div class="body">
28124 <p><ul>
28125
28126 <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
28127 is no Plan B: why the IPv4-to-IPv6 transition will be ugly</a></li>
28128
28129 <li>Scanner looking under clothes
28130 <a href="http://www.dagbladet.no/2010/10/03/nyheter/utenriks/reise/overvakingskamera/flyplasser/13667192/">has
28131 already been misused at Heathrow</a>.</li>
28132
28133 <li><a href="http://wiki.softwarelivre.org/Landell">Landell
28134 Webcasting</a> - interesting alternative for
28135 <ahref="http://dvswitch.alioth.debian.org/wiki/">DVSwitch</a> with
28136 simple setup.
28137
28138 </ul></p>
28139
28140 </div>
28141 <div class="tags">
28142
28143
28144 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>.
28145
28146
28147 </div>
28148 </div>
28149 <div class="padding"></div>
28150
28151 <div class="entry">
28152 <div class="title">
28153 <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>
28154 </div>
28155 <div class="date">
28156 9th September 2010
28157 </div>
28158 <div class="body">
28159 <p>A few days ago I had the mixed pleasure of bying a new digital
28160 camera, a Canon IXUS 130. It was instructive and very disturbing to
28161 be able to verify that also this camera producer have the nerve to
28162 specify how I can or can not use the videos produced with the camera.
28163 Even thought I was aware of the issue, the options with new cameras
28164 are limited and I ended up bying the camera anyway. What is the
28165 problem, you might ask? It is software patents, MPEG-4, H.264 and the
28166 MPEG-LA that is the problem, and our right to record our experiences
28167 without asking for permissions that is at risk.
28168
28169 <p>On page 27 of the Danish instruction manual, this section is
28170 written:</p>
28171
28172 <blockquote>
28173 <p>This product is licensed under AT&T patents for the MPEG-4 standard
28174 and may be used for encoding MPEG-4 compliant video and/or decoding
28175 MPEG-4 compliant video that was encoded only (1) for a personal and
28176 non-commercial purpose or (2) by a video provider licensed under the
28177 AT&T patents to provide MPEG-4 compliant video.</p>
28178
28179 <p>No license is granted or implied for any other use for MPEG-4
28180 standard.</p>
28181 </blockquote>
28182
28183 <p>In short, the camera producer have chosen to use technology
28184 (MPEG-4/H.264) that is only provided if I used it for personal and
28185 non-commercial purposes, or ask for permission from the organisations
28186 holding the knowledge monopoly (patent) for technology used.</p>
28187
28188 <p>This issue has been brewing for a while, and I recommend you to
28189 read
28190 "<a href="http://www.osnews.com/story/23236/Why_Our_Civilization_s_Video_Art_and_Culture_is_Threatened_by_the_MPEG-LA">Why
28191 Our Civilization's Video Art and Culture is Threatened by the
28192 MPEG-LA</a>" by Eugenia Loli-Queru and
28193 "<a href="http://webmink.com/2010/09/03/h-264-and-foss/">H.264 Is Not
28194 The Sort Of Free That Matters</a>" by Simon Phipps to learn more about
28195 the issue. The solution is to support the
28196 <a href="http://www.digistan.org/open-standard:definition">free and
28197 open standards</a> for video, like <a href="http://www.theora.org/">Ogg
28198 Theora</a>, and avoid MPEG-4 and H.264 if you can.</p>
28199
28200 </div>
28201 <div class="tags">
28202
28203
28204 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling</a>, <a href="http://people.skolelinux.org/pere/blog/tags/h264">h264</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</a>.
28205
28206
28207 </div>
28208 </div>
28209 <div class="padding"></div>
28210
28211 <div class="entry">
28212 <div class="title">
28213 <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>
28214 </div>
28215 <div class="date">
28216 4th September 2010
28217 </div>
28218 <div class="body">
28219 <p>In the <a href="http://popcon.debian.org/unknown/by_vote">Debian
28220 popularity-contest numbers</a>, the adobe-flashplugin package the
28221 second most popular used package that is missing in Debian. The sixth
28222 most popular is flashplayer-mozilla. This is a clear indication that
28223 working flash is important for Debian users. Around 10 percent of the
28224 users submitting data to popcon.debian.org have this package
28225 installed.</p>
28226
28227 <p>In the report written by Lars Risan in August 2008
28228 («<a href="http://wiki.skolelinux.no/Dokumentasjon/Rapporter?action=AttachFile&do=view&target=Skolelinux_i_bruk_rapport_1.0.pdf">Skolelinux
28229 i bruk – Rapport for Hurum kommune, Universitetet i Agder og
28230 stiftelsen SLX Debian Labs</a>»), one of the most important problems
28231 schools experienced with <a href="http://www.skolelinux.org/">Debian
28232 Edu/Skolelinux</a> was the lack of working Flash. A lot of educational
28233 web sites require Flash to work, and lacking working Flash support in
28234 the web browser and the problems with installing it was perceived as a
28235 good reason to stay with Windows.</p>
28236
28237 <p>I once saw a funny and sad comment in a web forum, where Linux was
28238 said to be the retarded cousin that did not really understand
28239 everything you told him but could work fairly well. This was a
28240 comment regarding the problems Linux have with proprietary formats and
28241 non-standard web pages, and is sad because it exposes a fairly common
28242 understanding of whose fault it is if web pages that only work in for
28243 example Internet Explorer 6 fail to work on Firefox, and funny because
28244 it explain very well how annoying it is for users when Linux
28245 distributions do not work with the documents they receive or the web
28246 pages they want to visit.</p>
28247
28248 <p>This is part of the reason why I believe it is important for Debian
28249 and Debian Edu to have a well working Flash implementation in the
28250 distribution, to get at least popular sites as Youtube and Google
28251 Video to working out of the box. For Squeeze, Debian have the chance
28252 to include the latest version of Gnash that will make this happen, as
28253 the new release 0.8.8 was published a few weeks ago and is resting in
28254 unstable. The new version work with more sites that version 0.8.7.
28255 The Gnash maintainers have asked for a freeze exception, but the
28256 release team have not had time to reply to it yet. I hope they agree
28257 with me that Flash is important for the Debian desktop users, and thus
28258 accept the new package into Squeeze.</p>
28259
28260 </div>
28261 <div class="tags">
28262
28263
28264 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>.
28265
28266
28267 </div>
28268 </div>
28269 <div class="padding"></div>
28270
28271 <div class="entry">
28272 <div class="title">
28273 <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>
28274 </div>
28275 <div class="date">
28276 1st September 2010
28277 </div>
28278 <div class="body">
28279 <p>This evening I made my first Perl GUI application. The last few
28280 days I have worked on a Perl module for controlling my recently
28281 aquired Spykee robots, and the module is now getting complete enought
28282 that it is possible to use it to control the robot driving at least.
28283 It was now time to figure out how to use it to create some GUI to
28284 allow me to drive the robot around. I picked PerlQt as I have had
28285 positive experiences with the Qt API before, and spent a few minutes
28286 browsing the web for examples. Using Qt Designer seemed like a short
28287 cut, so I ended up writing the perl GUI using Qt Designer and
28288 compiling it into a perl program using the puic program from
28289 libqt-perl. Nothing fancy yet, but it got buttons to connect and
28290 drive around.</p>
28291
28292 <p>The perl module I have written provide a object oriented API for
28293 controlling the robot. Here is an small example on how to use it:</p>
28294
28295 <p><pre>
28296 use Spykee;
28297 Spykee::discover(sub {$robot{$_[0]} = $_[1]});
28298 my $host = (keys %robot)[0];
28299 my $spykee = Spykee->new();
28300 $spykee->contact($host, "admin", "admin");
28301 $spykee->left();
28302 sleep 2;
28303 $spykee->right();
28304 sleep 2;
28305 $spykee->forward();
28306 sleep 2;
28307 $spykee->back();
28308 sleep 2;
28309 $spykee->stop();
28310 </pre></p>
28311
28312 <p>Thanks to the release of the source of the robot firmware, I could
28313 peek into the implementation at the other end to figure out how to
28314 implement the protocol used by the robot. I've implemented several of
28315 the commands the robot understand, but is still missing the camera
28316 support to make it possible to control the robot from remote. First I
28317 want to implement support for uploading new firmware and configuring
28318 the wireless network, to make it possible to bootstrap a Spykee robot
28319 without the producers Windows and MacOSX software (I only have Linux,
28320 so I had to ask a friend to come over to get the robot testing
28321 going. :).</p>
28322
28323 <p>Will release the source to the public soon, but need to figure out
28324 where to make it available first. I will add a link to
28325 <a href="http://wiki.nuug.no/grupper/robot/">the NUUG wiki</a> for
28326 those that want to check back later to find it.</p>
28327
28328 </div>
28329 <div class="tags">
28330
28331
28332 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>.
28333
28334
28335 </div>
28336 </div>
28337 <div class="padding"></div>
28338
28339 <div class="entry">
28340 <div class="title">
28341 <a href="http://people.skolelinux.org/pere/blog/Broken_hard_link_handling_with_sshfs.html">Broken hard link handling with sshfs</a>
28342 </div>
28343 <div class="date">
28344 30th August 2010
28345 </div>
28346 <div class="body">
28347 <p>Just got an email from Tobias Gruetzmacher as a followup on my
28348 <a href="http://people.skolelinux.org/pere/blog/Broken_umask_handling_with_sshfs.html">previous
28349 post about sshfs</a>. He reported another problem with sshfs. It
28350 fail to handle hard links properly. A simple way to spot this is to
28351 look at the . and .. entries in the directory tree. These should have
28352 a link count >1, but on sshfs the count is 1. I just tested to see
28353 what happen when trying to hardlink, and this fail as well:</p>
28354
28355 <pre>
28356 % ln foo bar
28357 ln: creating hard link `bar' => `foo': Function not implemented
28358 %
28359 </pre>
28360
28361 <p>I have not yet found time to implement a test for this in my file
28362 system test code, but believe having working hard links is useful to
28363 avoid surprised unix programs. Not as useful as working file locking
28364 and symlinks, which are required to get a working desktop, but useful
28365 nevertheless. :)</p>
28366
28367 <p>The latest version of the file system test code is available via
28368 git from
28369 <a href="http://github.com/gebi/fs-test">http://github.com/gebi/fs-test</a></p>
28370
28371 </div>
28372 <div class="tags">
28373
28374
28375 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>.
28376
28377
28378 </div>
28379 </div>
28380 <div class="padding"></div>
28381
28382 <div class="entry">
28383 <div class="title">
28384 <a href="http://people.skolelinux.org/pere/blog/Broken_umask_handling_with_sshfs.html">Broken umask handling with sshfs</a>
28385 </div>
28386 <div class="date">
28387 26th August 2010
28388 </div>
28389 <div class="body">
28390 <p>My file system sematics program
28391 <a href="http://people.skolelinux.org/pere/blog/Testing_if_a_file_system_can_be_used_for_home_directories___.html">presented
28392 a few days ago</a> is very useful to verify that a file system can
28393 work as a unix home directory,and today I had to extend it a bit. I'm
28394 looking into alternatives for home directory access here at the
28395 University of Oslo, and one of the options is sshfs. My friend
28396 Finn-Arne mentioned a while back that they had used sshfs with Debian
28397 Edu, but stopped because of problems. I asked today what the problems
28398 where, and he mentioned that sshfs failed to handle umask properly.
28399 Trying to detect the problem I wrote this addition to my fs testing
28400 script:</p>
28401
28402 <pre>
28403 mode_t touch_get_mode(const char *name, mode_t mode) {
28404 mode_t retval = 0;
28405 int fd = open(name, O_RDWR|O_CREAT|O_LARGEFILE, mode);
28406 if (-1 != fd) {
28407 unlink(name);
28408 struct stat statbuf;
28409 if (-1 != fstat(fd, &statbuf)) {
28410 retval = statbuf.st_mode & 0x1ff;
28411 }
28412 close(fd);
28413 }
28414 return retval;
28415 }
28416
28417 /* Try to detect problem discovered using sshfs */
28418 int test_umask(void) {
28419 printf("info: testing umask effect on file creation\n");
28420
28421 mode_t orig_umask = umask(000);
28422 mode_t newmode;
28423 if (0666 != (newmode = touch_get_mode("foobar", 0666))) {
28424 printf(" error: Wrong file mode %o when creating using mode 666 and umask 000\n",
28425 newmode);
28426 }
28427 umask(007);
28428 if (0660 != (newmode = touch_get_mode("foobar", 0666))) {
28429 printf(" error: Wrong file mode %o when creating using mode 666 and umask 007\n",
28430 newmode);
28431 }
28432
28433 umask (orig_umask);
28434 return 0;
28435 }
28436
28437 int main(int argc, char **argv) {
28438 [...]
28439 test_umask();
28440 return 0;
28441 }
28442 </pre>
28443
28444 <p>Sure enough. On NFS to a netapp, I get this result:</p>
28445
28446 <pre>
28447 Testing POSIX/Unix sematics on file system
28448 info: testing symlink creation
28449 info: testing subdirectory creation
28450 info: testing fcntl locking
28451 Read-locking 1 byte from 1073741824
28452 Read-locking 510 byte from 1073741826
28453 Unlocking 1 byte from 1073741824
28454 Write-locking 1 byte from 1073741824
28455 Write-locking 510 byte from 1073741826
28456 Unlocking 2 byte from 1073741824
28457 info: testing umask effect on file creation
28458 </pre>
28459
28460 <p>When mounting the same directory using sshfs, I get this
28461 result:</p>
28462
28463 <pre>
28464 Testing POSIX/Unix sematics on file system
28465 info: testing symlink creation
28466 info: testing subdirectory creation
28467 info: testing fcntl locking
28468 Read-locking 1 byte from 1073741824
28469 Read-locking 510 byte from 1073741826
28470 Unlocking 1 byte from 1073741824
28471 Write-locking 1 byte from 1073741824
28472 Write-locking 510 byte from 1073741826
28473 Unlocking 2 byte from 1073741824
28474 info: testing umask effect on file creation
28475 error: Wrong file mode 644 when creating using mode 666 and umask 000
28476 error: Wrong file mode 640 when creating using mode 666 and umask 007
28477 </pre>
28478
28479 <p>So, I can conclude that sshfs is better than smb to a Netapp or a
28480 Windows server, but not good enough to be used as a home
28481 directory.</p>
28482
28483 <p>Update 2010-08-26: Reported the issue in
28484 <a href="http://bugs.debian.org/594498">BTS report #594498</a></p>
28485
28486 <p>Update 2010-08-27: Michael Gebetsroither report that he found the
28487 script so useful that he created a GIT repository and stored it in
28488 <a href="http://github.com/gebi/fs-test">http://github.com/gebi/fs-test</a>.</p>
28489
28490 </div>
28491 <div class="tags">
28492
28493
28494 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>.
28495
28496
28497 </div>
28498 </div>
28499 <div class="padding"></div>
28500
28501 <div class="entry">
28502 <div class="title">
28503 <a href="http://people.skolelinux.org/pere/blog/Rob_Weir__How_to_Crush_Dissent.html">Rob Weir: How to Crush Dissent</a>
28504 </div>
28505 <div class="date">
28506 15th August 2010
28507 </div>
28508 <div class="body">
28509 <p>I found the notes from Rob Weir on
28510 <a href="http://feedproxy.google.com/~r/robweir/antic-atom/~3/VGb23-kta8c/how-to-crush-dissent.html">how
28511 to crush dissent</a> matching my own thoughts on the matter quite
28512 well. Highly recommended for those wondering which road our society
28513 should go down. In my view we have been heading the wrong way for a
28514 long time.</p>
28515
28516 </div>
28517 <div class="tags">
28518
28519
28520 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>.
28521
28522
28523 </div>
28524 </div>
28525 <div class="padding"></div>
28526
28527 <div class="entry">
28528 <div class="title">
28529 <a href="http://people.skolelinux.org/pere/blog/No_hardcoded_config_on_Debian_Edu_clients.html">No hardcoded config on Debian Edu clients</a>
28530 </div>
28531 <div class="date">
28532 9th August 2010
28533 </div>
28534 <div class="body">
28535 <p>As reported earlier, the last few days I have looked at how Debian
28536 Edu clients are configured, and tried to get rid of all hardcoded
28537 configuration settings on the clients. I believe the work to be
28538 mostly done, and the clients seem to work just fine with dynamically
28539 generated configuration.</p>
28540
28541 <p>What is the point, you might ask? The point is to allow a Debian
28542 Edu desktop to integrate into an existing network infrastructure
28543 without any manual configuration.</p>
28544
28545 <p>This is what happens when installing a Debian Edu client here at
28546 the University of Oslo using PXE. With the PXE installation, I am
28547 asked for language (Norwegian Bokmål), locality (Norway) and keyboard
28548 layout (no-latin1), Debian Edu profile (Roaming Workstation), if I
28549 accept to reformat the hard drive (yes), if I want to submit info to
28550 popcon.debian.org (no) and root password (secret). After answering
28551 these questions, the installer goes ahead and does its thing, and
28552 after around 50 minutes it is done. I press enter to finish the
28553 installation, and the machine reboots into KDE. When the machine is
28554 ready and kdm asks for login information, I enter my university
28555 username and password, am told by kdm that a local home directory has
28556 been created and that I must log in again, and finally log in with the
28557 same username and password to the KDE 4.4 desktop. At no point during
28558 this process did it ask for university specific settings, and all the
28559 required configuration was dynamically detected using information
28560 fetched via DHCP and DNS. The roaming workstation is now ready for
28561 use.</p>
28562
28563 <p>How was this done, you might wonder? First of all, here is the
28564 list of things that need to be configured on the client to get it
28565 working properly out of the box:</p>
28566
28567 <ul>
28568 <li>IP address/netmask and DNS server.</li>
28569 <li>Web proxy URL.</li>
28570 <li>LDAP server for NSS directory information (user, group, etc).</li>
28571 <li>Kerberos server for PAM password checking.</li>
28572 <li>SMB mount point to access the network home directory. (*)</li>
28573 <li>Central syslog server to send syslog messages to. (*)</li>
28574 <li>Sitesummary collector URL to submit info to central server. (*)</li>
28575 </ul>
28576
28577 <p>(Hm, did I forget anything? Let me knew if I did.)</p>
28578
28579 <p>The points marked (*) are not required to be able to use the
28580 machine, but needed to provide central storage and allowing system
28581 administrators to track their machines. Since yesterday, everything
28582 but the sitesummary collector URL is dynamically discovered at boot
28583 and installation time in the svn version of Debian Edu.</p>
28584
28585 <p>The IP and DNS setup is fetched during boot using DHCP as usual.
28586 When a DHCP update arrives, the proxy setup is updated by looking for
28587 http://wpat/wpad.dat and using the content of this WPAD file to
28588 configure the http and ftp proxy in /etc/environment and
28589 /etc/apt/apt.conf. I decided to update the proxy setup using a DHCP
28590 hook to ensure that the client stops using the Debian Edu proxy when
28591 it is moved outside the Debian Edu network, and instead uses any local
28592 proxy present on the new network when it moves around.</p>
28593
28594 <p>The DNS names of the LDAP, Kerberos and syslog server and related
28595 configuration are generated using DNS information at boot. First the
28596 installer looks for a host named ldap in the current DNS domain. If
28597 not found, it looks for _ldap._tcp SRV records in DNS instead. If an
28598 LDAP server is found, its root DSE entry is requested and the
28599 attributes namingContexts and defaultNamingContext are used to
28600 determine which LDAP base to use for NSS. If there are several
28601 namingContexts attibutes and the defaultNamingContext is present, that
28602 LDAP subtree is used as the base. If defaultNamingContext is missing,
28603 the subtrees listed as namingContexts are searched in sequence for any
28604 object with class posixAccount or posixGroup, and the first one with
28605 such an object is used as the LDAP base. For Kerberos, a similar
28606 search is done by first looking for a host named kerberos, and then
28607 for the _kerberos._tcp SRV record. I've been unable to find a way to
28608 look up the Kerberos realm, so for this the upper case string of the
28609 current DNS domain is used.</p>
28610
28611 <p>For the syslog server, the hosts syslog and loghost are searched
28612 for, and the _syslog._udp SRV record is consulted if no such host is
28613 found. This algorithm works for both Debian Edu and the University of
28614 Oslo. A similar strategy would work for locating the sitesummary
28615 server, but have not been implemented yet. I decided to fetch and
28616 save these settings during installation, to make sure moving to a
28617 different network does not change the set of users being allowed to
28618 log in nor the passwords required to log in. Usernames and passwords
28619 will be cached by sssd when the user logs in on the Debian Edu
28620 network, and will not change as the laptop move around. For a
28621 non-roaming machine, there is no caching, but given that it is
28622 supposed to stay in place it should not matter much. Perhaps we
28623 should switch those to use sssd too?</p>
28624
28625 <p>The user's SMB mount point for the network home directory is
28626 located when the user logs in for the first time. The LDAP server is
28627 consulted to look for the user's LDAP object and the sambaHomePath
28628 attribute is used if found. If it isn't found, the home directory
28629 path fetched from NSS is used instead. Assuming the path is of the
28630 form /site/server/directory/username, the second part is looked up in
28631 DNS and used to generate a SMB URL of the form
28632 smb://server.domain/username. This algorithm works for both Debian
28633 edu and the University of Oslo. Perhaps there are better attributes
28634 to use or a better algorithm that works for more sites, but this will
28635 do for now. :)</p>
28636
28637 <p>This work should make it easier to integrate the Debian Edu clients
28638 into any LDAP/Kerberos infrastructure, and make the current setup even
28639 more flexible than before. I suspect it will also work for thin
28640 client servers, allowing one to easily set up LTSP and hook it into a
28641 existing network infrastructure, but I have not had time to test this
28642 yet.</p>
28643
28644 <p>If you want to help out with implementing these things for Debian
28645 Edu, please contact us on debian-edu@lists.debian.org.</p>
28646
28647 <p>Update 2010-08-09: Simon Farnsworth gave me a heads-up on how to
28648 detect Kerberos realm from DNS, by looking for _kerberos TXT entries
28649 before falling back to the upper case DNS domain name. Will have to
28650 implement it for Debian Edu. :)</p>
28651
28652 </div>
28653 <div class="tags">
28654
28655
28656 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>.
28657
28658
28659 </div>
28660 </div>
28661 <div class="padding"></div>
28662
28663 <div class="entry">
28664 <div class="title">
28665 <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>
28666 </div>
28667 <div class="date">
28668 8th August 2010
28669 </div>
28670 <div class="body">
28671 <p>A few years ago, I was involved in a project planning to use
28672 Windows file servers as home directory servers for Debian
28673 Edu/Skolelinux machines. This was thought to be no problem, as the
28674 access would be through the SMB network file system protocol, and we
28675 knew other sites used SMB with unix and samba as the file server to
28676 mount home directories without any problems. But, after months of
28677 struggling, we had to conclude that our goal was impossible.</p>
28678
28679 <p>The reason is simply that while SMB can be used for home
28680 directories when the file server is Samba running on Unix, this only
28681 work because of Samba have some extensions and the fact that the
28682 underlying file system is a unix file system. When using a Windows
28683 file server, the underlying file system do not have POSIX semantics,
28684 and several programs will fail if the users home directory where they
28685 want to store their configuration lack POSIX semantics.</p>
28686
28687 <p>As part of this work, I wrote a small C program I want to share
28688 with you all, to replicate a few of the problematic applications (like
28689 OpenOffice.org and GCompris) and see if the file system was working as
28690 it should. If you find yourself in spooky file system land, it might
28691 help you find your way out again. This is the fs-test.c source:</p>
28692
28693 <pre>
28694 /*
28695 * Some tests to check the file system sematics. Used to verify that
28696 * CIFS from a windows server do not work properly as a linux home
28697 * directory.
28698 * License: GPL v2 or later
28699 *
28700 * needs libsqlite3-dev and build-essential installed
28701 * compile with: gcc -Wall -lsqlite3 -DTEST_SQLITE fs-test.c -o fs-test
28702 */
28703
28704 #define _FILE_OFFSET_BITS 64
28705 #define _LARGEFILE_SOURCE 1
28706 #define _LARGEFILE64_SOURCE 1
28707
28708 #define _GNU_SOURCE /* for asprintf() */
28709
28710 #include &lt;errno.h>
28711 #include &lt;fcntl.h>
28712 #include &lt;stdio.h>
28713 #include &lt;string.h>
28714 #include &lt;stdlib.h>
28715 #include &lt;sys/file.h>
28716 #include &lt;sys/stat.h>
28717 #include &lt;sys/types.h>
28718 #include &lt;unistd.h>
28719
28720 #ifdef TEST_SQLITE
28721 /*
28722 * Test sqlite open, as done by gcompris require the libsqlite3-dev
28723 * package and linking with -lsqlite3. A more low level test is
28724 * below.
28725 * See also &lt;URL: http://www.sqlite.org./faq.html#q5 >.
28726 */
28727 #include &lt;sqlite3.h>
28728 #define CREATE_TABLE_USERS \
28729 "CREATE TABLE users (user_id INT UNIQUE, login TEXT, lastname TEXT, firstname TEXT, birthdate TEXT, class_id INT ); "
28730 int test_sqlite_open(void) {
28731 char *zErrMsg;
28732 char *name = "testsqlite.db";
28733 sqlite3 *db=NULL;
28734 unlink(name);
28735 int rc = sqlite3_open(name, &db);
28736 if( rc ){
28737 printf("error: sqlite open of %s failed: %s\n", name, sqlite3_errmsg(db));
28738 sqlite3_close(db);
28739 return -1;
28740 }
28741
28742 /* create tables */
28743 rc = sqlite3_exec(db,CREATE_TABLE_USERS, NULL, 0, &zErrMsg);
28744 if( rc != SQLITE_OK ){
28745 printf("error: sqlite table create failed: %s\n", zErrMsg);
28746 sqlite3_close(db);
28747 return -1;
28748 }
28749 printf("info: sqlite worked\n");
28750 sqlite3_close(db);
28751 return 0;
28752 }
28753 #endif /* TEST_SQLITE */
28754
28755 /*
28756 * Demonstrate locking issue found in gcompris using sqlite3. This
28757 * work with ext3, but not with cifs server on Windows 2003. This is
28758 * done in the sqlite3 library.
28759 * See also
28760 * &lt;URL:http://www.cygwin.com/ml/cygwin/2001-08/msg00854.html> and the
28761 * POSIX specification
28762 * &lt;URL:http://www.opengroup.org/onlinepubs/009695399/functions/fcntl.html>.
28763 */
28764 int test_gcompris_locking(void) {
28765 struct flock fl;
28766 char *name = "testsqlite.db";
28767 unlink(name);
28768 int fd = open(name, O_RDWR|O_CREAT|O_LARGEFILE, 0644);
28769 printf("info: testing fcntl locking\n");
28770
28771 fl.l_whence = SEEK_SET;
28772 fl.l_pid = getpid();
28773 printf(" Read-locking 1 byte from 1073741824");
28774 fl.l_start = 1073741824;
28775 fl.l_len = 1;
28776 fl.l_type = F_RDLCK;
28777 if (0 != fcntl(fd, F_SETLK, &fl) ) printf(" - error!\n"); else printf("\n");
28778
28779 printf(" Read-locking 510 byte from 1073741826");
28780 fl.l_start = 1073741826;
28781 fl.l_len = 510;
28782 fl.l_type = F_RDLCK;
28783 if (0 != fcntl(fd, F_SETLK, &fl) ) printf(" - error!\n"); else printf("\n");
28784
28785 printf(" Unlocking 1 byte from 1073741824");
28786 fl.l_start = 1073741824;
28787 fl.l_len = 1;
28788 fl.l_type = F_UNLCK;
28789 if (0 != fcntl(fd, F_SETLK, &fl) ) printf(" - error!\n"); else printf("\n");
28790
28791 printf(" Write-locking 1 byte from 1073741824");
28792 fl.l_start = 1073741824;
28793 fl.l_len = 1;
28794 fl.l_type = F_WRLCK;
28795 if (0 != fcntl(fd, F_SETLK, &fl) ) printf(" - error!\n"); else printf("\n");
28796
28797 printf(" Write-locking 510 byte from 1073741826");
28798 fl.l_start = 1073741826;
28799 fl.l_len = 510;
28800 if (0 != fcntl(fd, F_SETLK, &fl) ) printf(" - error!\n"); else printf("\n");
28801
28802 printf(" Unlocking 2 byte from 1073741824");
28803 fl.l_start = 1073741824;
28804 fl.l_len = 2;
28805 fl.l_type = F_UNLCK;
28806 if (0 != fcntl(fd, F_SETLK, &fl) ) printf(" - error!\n"); else printf("\n");
28807
28808 close(fd);
28809 return 0;
28810 }
28811
28812 /*
28813 * Test if permissions of freshly created directories allow entries
28814 * below them. This was a problem with OpenOffice.org and gcompris.
28815 * Mounting with option 'sync' seem to solve this problem while
28816 * slowing down file operations.
28817 */
28818 int test_subdirectory_creation(void) {
28819 #define LEVELS 5
28820 char *path = strdup("test");
28821 char *dirs[LEVELS];
28822 int level;
28823 printf("info: testing subdirectory creation\n");
28824 for (level = 0; level &lt; LEVELS; level++) {
28825 char *newpath = NULL;
28826 if (-1 == mkdir(path, 0777)) {
28827 printf(" error: Unable to create directory '%s': %s\n",
28828 path, strerror(errno));
28829 break;
28830 }
28831 asprintf(&newpath, "%s/%s", path, "test");
28832 free(path);
28833 path = newpath;
28834 }
28835 return 0;
28836 }
28837
28838 /*
28839 * Test if symlinks can be created. This was a problem detected with
28840 * KDE.
28841 */
28842 int test_symlinks(void) {
28843 printf("info: testing symlink creation\n");
28844 unlink("symlink");
28845 if (-1 == symlink("file", "symlink"))
28846 printf(" error: Unable to create symlink\n");
28847 return 0;
28848 }
28849
28850 int main(int argc, char **argv) {
28851 printf("Testing POSIX/Unix sematics on file system\n");
28852 test_symlinks();
28853 test_subdirectory_creation();
28854 #ifdef TEST_SQLITE
28855 test_sqlite_open();
28856 #endif /* TEST_SQLITE */
28857 test_gcompris_locking();
28858 return 0;
28859 }
28860 </pre>
28861
28862 <p>When everything is working, it should print something like
28863 this:</p>
28864
28865 <pre>
28866 Testing POSIX/Unix sematics on file system
28867 info: testing symlink creation
28868 info: testing subdirectory creation
28869 info: sqlite worked
28870 info: testing fcntl locking
28871 Read-locking 1 byte from 1073741824
28872 Read-locking 510 byte from 1073741826
28873 Unlocking 1 byte from 1073741824
28874 Write-locking 1 byte from 1073741824
28875 Write-locking 510 byte from 1073741826
28876 Unlocking 2 byte from 1073741824
28877 </pre>
28878
28879 <p>I do not remember the exact details of the problems we saw, but one
28880 of them was with locking, where if I remember correctly, POSIX allow a
28881 read-only lock to be upgraded to a read-write lock without unlocking
28882 the read-only lock (while Windows do not). Another was a bug in the
28883 CIFS/SMB client implementation in the Linux kernel where directory
28884 meta information would be wrong for a fraction of a second, making
28885 OpenOffice.org fail to create its deep directory tree because it was
28886 not allowed to create files in its freshly created directory.</p>
28887
28888 <p>Anyway, here is a nice tool for your tool box, might you never need
28889 it. :)</p>
28890
28891 <p>Update 2010-08-27: Michael Gebetsroither report that he found the
28892 script so useful that he created a GIT repository and stored it in
28893 <a href="http://github.com/gebi/fs-test">http://github.com/gebi/fs-test</a>.</p>
28894
28895 </div>
28896 <div class="tags">
28897
28898
28899 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>.
28900
28901
28902 </div>
28903 </div>
28904 <div class="padding"></div>
28905
28906 <div class="entry">
28907 <div class="title">
28908 <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>
28909 </div>
28910 <div class="date">
28911 7th August 2010
28912 </div>
28913 <div class="body">
28914 <p>A few days ago, I
28915 <a href="http://people.skolelinux.org/pere/blog/Debian_Edu_roaming_workstation___at_the_university_of_Oslo.html">tried
28916 to install</a> a Roaming workation profile from Debian Edu/Squeeze
28917 while on the university network here at the University of Oslo, and
28918 noticed how much had to change to get it operational using the
28919 university infrastructure. It was fairly easy, but it occured to me
28920 that Debian Edu would improve a lot if I could get the client to
28921 connect without any changes at all, and thus let the client configure
28922 itself during installation and first boot to use the infrastructure
28923 around it. Now I am a huge step further along that road.</p>
28924
28925 <p>With our current squeeze-test packages, I can select the roaming
28926 workstation profile and get a working laptop connecting to the
28927 university LDAP server for user and group and our active directory
28928 servers for Kerberos authentication. All this without any
28929 configuration at all during installation. My users home directory got
28930 a bookmark in the KDE menu to mount it via SMB, with the correct URL.
28931 In short, openldap and sssd is correctly configured. In addition to
28932 this, the client look for http://wpad/wpad.dat to configure a web
28933 proxy, and when it fail to find it no proxy settings are stored in
28934 /etc/environment and /etc/apt/apt.conf. Iceweasel and KDE is
28935 configured to look for the same wpad configuration and also do not use
28936 a proxy when at the university network. If the machine is moved to a
28937 network with such wpad setup, it would automatically use it when DHCP
28938 gave it a IP address.</p>
28939
28940 <p>The LDAP server is located using DNS, by first looking for the DNS
28941 entry ldap.$domain. If this do not exist, it look for the
28942 _ldap._tcp.$domain SRV records and use the first one as the LDAP
28943 server. Next, it connects to the LDAP server and search all
28944 namingContexts entries for posixAccount or posixGroup objects, and
28945 pick the first one as the LDAP base. For Kerberos, a similar
28946 algorithm is used to locate the LDAP server, and the realm is the
28947 uppercase version of $domain.</p>
28948
28949 <p>So, what is not working, you might ask. SMB mounting my home
28950 directory do not work. No idea why, but suspected the incorrect
28951 Kerberos settings in /etc/krb5.conf and /etc/samba/smb.conf might be
28952 the cause. These are not properly configured during installation, and
28953 had to be hand-edited to get the correct Kerberos realm and server,
28954 but SMB mounting still do not work. :(</p>
28955
28956 <p>With this automatic configuration in place, I expect a Debian Edu
28957 roaming profile installation would be able to automatically detect and
28958 connect to any site using LDAP and Kerberos for NSS directory and PAM
28959 authentication. It should also work out of the box in a Active
28960 Directory environment providing posixAccount and posixGroup objects
28961 with UID and GID values.</p>
28962
28963 <p>If you want to help out with implementing these things for Debian
28964 Edu, please contact us on debian-edu@lists.debian.org.</p>
28965
28966 </div>
28967 <div class="tags">
28968
28969
28970 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>.
28971
28972
28973 </div>
28974 </div>
28975 <div class="padding"></div>
28976
28977 <div class="entry">
28978 <div class="title">
28979 <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>
28980 </div>
28981 <div class="date">
28982 3rd August 2010
28983 </div>
28984 <div class="body">
28985 <p>The new roaming workstation profile in Debian Edu/Squeeze is fairly
28986 similar to the laptop setup am I working on using Ubuntu for the
28987 University of Oslo, and just for the heck of it, I tested today how
28988 hard it would be to integrate that profile into the university
28989 infrastructure. In this case, it is the university LDAP server,
28990 Active Directory Kerberos server and SMB mounting from the Netapp file
28991 servers.</p>
28992
28993 <p>I was pleasantly surprised that the only three files needed to be
28994 changed (/etc/sssd/sssd.conf, /etc/ldap.conf and
28995 /etc/mklocaluser.d/20-debian-edu-config) and one file had to be added
28996 (/usr/share/perl5/Debian/Edu_Local.pm), to get the client working.
28997 Most of the changes were to get the client to use the university LDAP
28998 for NSS and Kerberos server for PAM, but one was to change a hard
28999 coded DNS domain name in the mklocaluser hook from .intern to
29000 .uio.no.</p>
29001
29002 <p>This testing was so encouraging, that I went ahead and adjusted the
29003 Debian Edu scripts and setup in subversion to centralise the roaming
29004 workstation setup a bit more and avoid the hardcoded DNS domain name,
29005 so that when I test this tomorrow, I expect to get away with modifying
29006 only /etc/sssd/sssd.conf and /etc/ldap.conf to get it to use the
29007 university servers.</p>
29008
29009 <p>My goal is to get the clients to have no hardcoded settings and
29010 fetch all their initial setup during installation and first boot, to
29011 allow them to be inserted also into environments where the default
29012 setup in Debian Edu has been changed or as with the university, where
29013 the environment is different but provides the protocols Debian Edu
29014 uses.</p>
29015
29016 </div>
29017 <div class="tags">
29018
29019
29020 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>.
29021
29022
29023 </div>
29024 </div>
29025 <div class="padding"></div>
29026
29027 <div class="entry">
29028 <div class="title">
29029 <a href="http://people.skolelinux.org/pere/blog/Circular_package_dependencies_harms_apt_recovery.html">Circular package dependencies harms apt recovery</a>
29030 </div>
29031 <div class="date">
29032 27th July 2010
29033 </div>
29034 <div class="body">
29035 <p>I discovered this while doing
29036 <a href="http://people.skolelinux.org/pere/blog/Automatic_upgrade_testing_from_Lenny_to_Squeeze.html">automated
29037 testing of upgrades from Debian Lenny to Squeeze</a>. A few packages
29038 in Debian still got circular dependencies, and it is often claimed
29039 that apt and aptitude should be able to handle this just fine, but
29040 some times these dependency loops causes apt to fail.</p>
29041
29042 <p>An example is from todays
29043 <a href="http://people.skolelinux.org/~pere/debian-upgrade-testing//test-20100727-lenny-squeeze-kde-aptitude.txt">upgrade
29044 of KDE using aptitude</a>. In it, a bug in kdebase-workspace-data
29045 causes perl-modules to fail to upgrade. The cause is simple. If a
29046 package fail to unpack, then only part of packages with the circular
29047 dependency might end up being unpacked when unpacking aborts, and the
29048 ones already unpacked will fail to configure in the recovery phase
29049 because its dependencies are unavailable.</p>
29050
29051 <p>In this log, the problem manifest itself with this error:</p>
29052
29053 <blockquote><pre>
29054 dpkg: dependency problems prevent configuration of perl-modules:
29055 perl-modules depends on perl (>= 5.10.1-1); however:
29056 Version of perl on system is 5.10.0-19lenny2.
29057 dpkg: error processing perl-modules (--configure):
29058 dependency problems - leaving unconfigured
29059 </pre></blockquote>
29060
29061 <p>The perl/perl-modules circular dependency is already
29062 <a href="http://bugs.debian.org/527917">reported as a bug</a>, and will
29063 hopefully be solved as soon as possible, but it is not the only one,
29064 and each one of these loops in the dependency tree can cause similar
29065 failures. Of course, they only occur when there are bugs in other
29066 packages causing the unpacking to fail, but it is rather nasty when
29067 the failure of one package causes the problem to become worse because
29068 of dependency loops.</p>
29069
29070 <p>Thanks to
29071 <a href="http://lists.debian.org/debian-devel/2010/06/msg00116.html">the
29072 tireless effort by Bill Allombert</a>, the number of circular
29073 dependencies
29074 <a href="http://debian.semistable.com/debgraph.out.html">left in Debian
29075 is dropping</a>, and perhaps it will reach zero one day. :)</p>
29076
29077 <p>Todays testing also exposed a bug in
29078 <a href="http://bugs.debian.org/590605">update-notifier</a> and
29079 <a href="http://bugs.debian.org/590604">different behaviour</a> between
29080 apt-get and aptitude, the latter possibly caused by some circular
29081 dependency. Reported both to BTS to try to get someone to look at
29082 it.</p>
29083
29084 </div>
29085 <div class="tags">
29086
29087
29088 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>.
29089
29090
29091 </div>
29092 </div>
29093 <div class="padding"></div>
29094
29095 <div class="entry">
29096 <div class="title">
29097 <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>
29098 </div>
29099 <div class="date">
29100 27th July 2010
29101 </div>
29102 <div class="body">
29103 <p>I just posted this announcement culminating several months of work
29104 with the next Debian Edu release. Not nearly done, but one major step
29105 completed.</p>
29106
29107 <blockquote>
29108 <p>This is the first test release based on Squeeze. The focus of this
29109 release is to test the user application selection. To have a look,
29110 install the standalone profile and let the developers know if the set
29111 of installed packages i.e. applications should be modified. If some
29112 user application is missing, or if there are some applications that no
29113 longer make sense to be included in Debian Edu, please let us know.
29114 Also, if a useful application is missing the translation for your
29115 language of choice, please let us know too.</p>
29116
29117 <p>In addition, feedback and help to polish the desktop (menus,
29118 artwork, starters, etc.) is appreciated. We would like to ship a nice
29119 and handy KDE4 desktop targeted for schools out of the box.</p>
29120
29121 <p>The other profiles should be installable, but there is a lot more
29122 work left to be done before they are ready, so do not expect to
29123 much.</p>
29124
29125 <p>Changes compared to the lenny based version</p>
29126
29127 <ul>
29128 <li>Everything from Debian Squeeze
29129 <ul>
29130 <li>Desktop environment KDE 4.4 => the new KDE desktop in
29131 combination with some new artwork
29132 <li>Web browser Iceweasel 3.5
29133 <li>OpenOffice.org 3.2
29134 <li>Educational toolbox GCompris 9.3
29135 <li>Music creator Rosegarden 10.04.2
29136 <li>Image editor Gimp 2.6.10
29137 <li>Virtual universe Celestia 1.6.0
29138 <li>Virtual stargazer Stellarium 0.10.4
29139 <li>3D modeler Blender 2.49.2 (new application)
29140 <li>Video editor Kdenlive 0.7.7 (new application)
29141 </ul></li>
29142 <li>Now using Kerberos for password checking (migration not finished).
29143 Enabled for:
29144 <ul>
29145 <li>PAM
29146 <li>LDAP
29147 <li>IMAP
29148 <li>SMTP (sender verification)
29149 </ul>
29150 </li>
29151 <li>New experimental roaming workstation profile for laptops.</li>
29152 <li>Show welcome page to users when they first log in. The URL is
29153 fetched from LDAP.</li>
29154 <li>New LXDE desktop option, in addition to KDE (default) and Gnome.</li>
29155 <li>General cleanup (not finished)</li>
29156 </ul>
29157 <p>The following features are not working as they should</p>
29158
29159 <ul>
29160 <li>No web based administration tool for creating users and groups. The
29161 scripts ldap-createuser-krb and ldap-add-user-to-group can be used
29162 for testing.</li>
29163 <li>DVD installs are missing debian-installer images for the PXE boot,
29164 and do not set up the PXE menu on eth0 because of this. LTSP
29165 clients should still boot from eth1 on thin client servers.</li>
29166 <li>The restructured KDE menu is not implemented.</li>
29167 <li>The LDAP server setup need to be reviewed for security.</li>
29168 <li>The LDAP directory structure need to be reworked.</li>
29169 <li>Different sets of packages are installed when using the DVD and the
29170 netinst CD. More packages are installed using the netinst CD.</li>
29171 <li>The jackd package fail to install. This is believed to be caused by
29172 some ongoing transition, and hopefully should be solved soon. The
29173 jackd1 package can be installed manually for those that need it.</li>
29174 <li>Some packages lack translations. See
29175 http://wiki.debian.org/DebianEdu/Status/Squeeze for updated status,
29176 and help out with translations.</li>
29177 </ul>
29178
29179 <p>To download this multiarch netinstall release you can use</p>
29180
29181 <ul>
29182 <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>
29183 <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>
29184 <li>rsync -avzP ftp.skolelinux.org::skolelinux-cd/squeeze-alpha/debian-edu-6.0.0+edua0-CD.iso</li>
29185 </ul>
29186 <p>To download this multiarch dvd release you can use</p>
29187
29188 <ul>
29189 <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>
29190 <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>
29191 <li>rsync -avzP ftp.skolelinux.org::skolelinux-cd/squeeze-alpha/debian-edu-6.0.0+edua0-DVD.iso</li>
29192 </ul>
29193
29194 <p>There is no source DVD available yet. It will be prepared when we
29195 get closer to the final release.</p>
29196
29197 <p>The MD5SUM of these images are</p>
29198
29199 <ul>
29200 <li>3dbf45d59f42a53518b6e3c9ec3b5eb6 debian-edu-6.0.0+edua0-CD.iso</li>
29201 <li>22f2cbfce281d1c6e478be452638675d debian-edu-6.0.0+edua0-DVD.iso</li>
29202 </ul>
29203
29204 <p>The SHA1SUM of these images are</p>
29205 <ul>
29206 <li>c53d1b69b40cf37cd27aefaf33f6f6a3821bedf0 debian-edu-6.0.0+edua0-CD.iso</li>
29207 <li>2ec29d7db676d59d32197b05c277ffe16348376c debian-edu-6.0.0+edua0-DVD.iso</li>
29208 </ul>
29209 <p>How to report bugs:
29210 http://wiki.debian.org/DebianEdu/HowTo/ReportBugsInBugzilla</p>
29211
29212 <p>Please direct replies to debian-edu@lists.debian.org</p>
29213 </blockquote>
29214
29215 </div>
29216 <div class="tags">
29217
29218
29219 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>.
29220
29221
29222 </div>
29223 </div>
29224 <div class="padding"></div>
29225
29226 <div class="entry">
29227 <div class="title">
29228 <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>
29229 </div>
29230 <div class="date">
29231 25th July 2010
29232 </div>
29233 <div class="body">
29234 <p>The last few months me and the other Debian Edu developers have
29235 been working hard to get the Debian/Squeeze based version of Debian
29236 Edu/Skolelinux into shape. This future version will use Kerberos for
29237 authentication, and services are slowly migrated to single signon,
29238 getting rid of password questions one at the time.</p>
29239
29240 <p>It will also feature a roaming workstation profile with local home
29241 directory, for laptops that are only some times on the Skolelinux
29242 network, and for this profile a shortcut is created in Gnome and KDE
29243 to gain access to the users home directory on the file server. This
29244 shortcut uses SMB at the moment, and yesterday I had time to test if
29245 SMB mounting had started working in KDE after we added the cifs-utils
29246 package. I was pleasantly surprised how well it worked.</p>
29247
29248 <p>Thanks to the recent changes to our samba configuration to get it
29249 to use Kerberos for authentication, there were no question about user
29250 password when mounting the SMB volume. A simple click on the shortcut
29251 in the KDE menu, and a window with the home directory popped
29252 up. :)</p>
29253
29254 <p>One step closer to a single signon solution out of the box in
29255 Debian Edu. We already had PAM, LDAP, IMAP and SMTP in place, and now
29256 also Samba. Next step is Cups and hopefully also NFS.</p>
29257
29258 <p>We had planned a alpha0 release of Debian Edu for today, but thanks
29259 to the autobuilder administrators for some architectures being slow to
29260 sign packages, we are still missing the fixed LTSP package we need for
29261 the release. It was uploaded three days ago with urgency=high, and if
29262 it had entered testing yesterday we would have been able to test it in
29263 time for a alpha0 release today. As the binaries for ia64 and powerpc
29264 still not uploaded to the Debian archive, we need to delay the alpha
29265 release another day.</p>
29266
29267 <p>If you want to help out with implementing Kerberos for Debian Edu,
29268 please contact us on debian-edu@lists.debian.org.</p>
29269
29270 </div>
29271 <div class="tags">
29272
29273
29274 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>.
29275
29276
29277 </div>
29278 </div>
29279 <div class="padding"></div>
29280
29281 <div class="entry">
29282 <div class="title">
29283 <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>
29284 </div>
29285 <div class="date">
29286 18th July 2010
29287 </div>
29288 <div class="body">
29289 <p>Thanks to
29290 <a href="http://feedproxy.google.com/~r/Opengeodata/~3/wUTCzDZk3lc/project-of-the-week-which-way-home">todays
29291 opengeodata blog entry</a>, I just discovered that the
29292 OpenStreetmap.org site have gotten
29293 <a href="http://nroets.dev.openstreetmap.org/demo/index.html?layers=B000FTFTT">support
29294 for calculating routes</a>. The support is still experimental and
29295 only available from the development server, until more experience is
29296 gathered on the user interface and any scalability issues.</p>
29297
29298 <p>Earlier, the routing I knew about using the OpenStreetmap.org data
29299 was provided by <a href="http://maps.cloudmade.com/">Cloudmade</a>,
29300 but having it on the main page is required to make everyone aware of
29301 the issue. I've had people reject Openstreetmap.org as a viable
29302 alternative for them because the front page lacked routing support,
29303 and I hope their needs will be catered for when routing show up on the
29304 www.openstreetmap.org front page.</p>
29305
29306 </div>
29307 <div class="tags">
29308
29309
29310 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>.
29311
29312
29313 </div>
29314 </div>
29315 <div class="padding"></div>
29316
29317 <div class="entry">
29318 <div class="title">
29319 <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>
29320 </div>
29321 <div class="date">
29322 17th July 2010
29323 </div>
29324 <div class="body">
29325 <p>This is a
29326 <a href="http://people.skolelinux.org/pere/blog/Time_for_new__LDAP_schemas_replacing_RFC_2307_.html">followup</a>
29327 on my
29328 <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
29329 work</a> on
29330 <a href="http://people.skolelinux.org/pere/blog/Combining_PowerDNS_and_ISC_DHCP_LDAP_objects.html">merging
29331 all</a> the computer related LDAP objects in Debian Edu.</p>
29332
29333 <p>As a step to try to see if it possible to merge the DNS and DHCP
29334 LDAP objects, I have had a look at how the packages pdns-backend-ldap
29335 and dhcp3-server-ldap in Debian use the LDAP server. The two
29336 implementations are quite different in how they use LDAP.</p>
29337
29338 To get this information, I started slapd with debugging enabled and
29339 dumped the debug output to a file to get the LDAP searches performed
29340 on a Debian Edu main-server. Here is a summary.
29341
29342 <p><strong>powerdns</strong></p>
29343
29344 <a href="http://www.linuxnetworks.de/doc/index.php/PowerDNS_LDAP_Backend">Clues
29345 on how to</a> set up PowerDNS to use a LDAP backend is available on
29346 the web.
29347
29348 <p>PowerDNS have two modes of operation using LDAP as its backend.
29349 One "strict" mode where the forward and reverse DNS lookups are done
29350 using the same LDAP objects, and a "tree" mode where the forward and
29351 reverse entries are in two different subtrees in LDAP with a structure
29352 based on the DNS names, as in tjener.intern and
29353 2.2.0.10.in-addr.arpa.</p>
29354
29355 <p>In tree mode, the server is set up to use a LDAP subtree as its
29356 base, and uses a "base" scoped search for the DNS name by adding
29357 "dc=tjener,dc=intern," to the base with a filter for
29358 "(associateddomain=tjener.intern)" for the forward entry and
29359 "dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa," with a filter for
29360 "(associateddomain=2.2.0.10.in-addr.arpa)" for the reverse entry. For
29361 forward entries, it is looking for attributes named dnsttl, arecord,
29362 nsrecord, cnamerecord, soarecord, ptrrecord, hinforecord, mxrecord,
29363 txtrecord, rprecord, afsdbrecord, keyrecord, aaaarecord, locrecord,
29364 srvrecord, naptrrecord, kxrecord, certrecord, dsrecord, sshfprecord,
29365 ipseckeyrecord, rrsigrecord, nsecrecord, dnskeyrecord, dhcidrecord,
29366 spfrecord and modifytimestamp. For reverse entries it is looking for
29367 the attributes dnsttl, arecord, nsrecord, cnamerecord, soarecord,
29368 ptrrecord, hinforecord, mxrecord, txtrecord, rprecord, aaaarecord,
29369 locrecord, srvrecord, naptrrecord and modifytimestamp. The equivalent
29370 ldapsearch commands could look like this:</p>
29371
29372 <blockquote><pre>
29373 ldapsearch -h ldap \
29374 -b dc=tjener,dc=intern,ou=hosts,dc=skole,dc=skolelinux,dc=no \
29375 -s base -x '(associateddomain=tjener.intern)' dNSTTL aRecord nSRecord \
29376 cNAMERecord sOARecord pTRRecord hInfoRecord mXRecord tXTRecord \
29377 rPRecord aFSDBRecord KeyRecord aAAARecord lOCRecord sRVRecord \
29378 nAPTRRecord kXRecord certRecord dSRecord sSHFPRecord iPSecKeyRecord \
29379 rRSIGRecord nSECRecord dNSKeyRecord dHCIDRecord sPFRecord modifyTimestamp
29380
29381 ldapsearch -h ldap \
29382 -b dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa,ou=hosts,dc=skole,dc=skolelinux,dc=no \
29383 -s base -x '(associateddomain=2.2.0.10.in-addr.arpa)'
29384 dnsttl, arecord, nsrecord, cnamerecord soarecord ptrrecord \
29385 hinforecord mxrecord txtrecord rprecord aaaarecord locrecord \
29386 srvrecord naptrrecord modifytimestamp
29387 </pre></blockquote>
29388
29389 <p>In Debian Edu/Lenny, the PowerDNS tree mode is used with
29390 ou=hosts,dc=skole,dc=skolelinux,dc=no as the base, and these are two
29391 example LDAP objects used there. In addition to these objects, the
29392 parent objects all th way up to ou=hosts,dc=skole,dc=skolelinux,dc=no
29393 also exist.</p>
29394
29395 <blockquote><pre>
29396 dn: dc=tjener,dc=intern,ou=hosts,dc=skole,dc=skolelinux,dc=no
29397 objectclass: top
29398 objectclass: dnsdomain
29399 objectclass: domainrelatedobject
29400 dc: tjener
29401 arecord: 10.0.2.2
29402 associateddomain: tjener.intern
29403
29404 dn: dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa,ou=hosts,dc=skole,dc=skolelinux,dc=no
29405 objectclass: top
29406 objectclass: dnsdomain2
29407 objectclass: domainrelatedobject
29408 dc: 2
29409 ptrrecord: tjener.intern
29410 associateddomain: 2.2.0.10.in-addr.arpa
29411 </pre></blockquote>
29412
29413 <p>In strict mode, the server behaves differently. When looking for
29414 forward DNS entries, it is doing a "subtree" scoped search with the
29415 same base as in the tree mode for a object with filter
29416 "(associateddomain=tjener.intern)" and requests the attributes dnsttl,
29417 arecord, nsrecord, cnamerecord, soarecord, ptrrecord, hinforecord,
29418 mxrecord, txtrecord, rprecord, aaaarecord, locrecord, srvrecord,
29419 naptrrecord and modifytimestamp. For reverse entires it also do a
29420 subtree scoped search but this time the filter is "(arecord=10.0.2.2)"
29421 and the requested attributes are associateddomain, dnsttl and
29422 modifytimestamp. In short, in strict mode the objects with ptrrecord
29423 go away, and the arecord attribute in the forward object is used
29424 instead.</p>
29425
29426 <p>The forward and reverse searches can be simulated using ldapsearch
29427 like this:</p>
29428
29429 <blockquote><pre>
29430 ldapsearch -h ldap -b ou=hosts,dc=skole,dc=skolelinux,dc=no -s sub -x \
29431 '(associateddomain=tjener.intern)' dNSTTL aRecord nSRecord \
29432 cNAMERecord sOARecord pTRRecord hInfoRecord mXRecord tXTRecord \
29433 rPRecord aFSDBRecord KeyRecord aAAARecord lOCRecord sRVRecord \
29434 nAPTRRecord kXRecord certRecord dSRecord sSHFPRecord iPSecKeyRecord \
29435 rRSIGRecord nSECRecord dNSKeyRecord dHCIDRecord sPFRecord modifyTimestamp
29436
29437 ldapsearch -h ldap -b ou=hosts,dc=skole,dc=skolelinux,dc=no -s sub -x \
29438 '(arecord=10.0.2.2)' associateddomain dnsttl modifytimestamp
29439 </pre></blockquote>
29440
29441 <p>In addition to the forward and reverse searches , there is also a
29442 search for SOA records, which behave similar to the forward and
29443 reverse lookups.</p>
29444
29445 <p>A thing to note with the PowerDNS behaviour is that it do not
29446 specify any objectclass names, and instead look for the attributes it
29447 need to generate a DNS reply. This make it able to work with any
29448 objectclass that provide the needed attributes.</p>
29449
29450 <p>The attributes are normally provided in the cosine (RFC 1274) and
29451 dnsdomain2 schemas. The latter is used for reverse entries like
29452 ptrrecord and recent DNS additions like aaaarecord and srvrecord.</p>
29453
29454 <p>In Debian Edu, we have created DNS objects using the object classes
29455 dcobject (for dc), dnsdomain or dnsdomain2 (structural, for the DNS
29456 attributes) and domainrelatedobject (for associatedDomain). The use
29457 of structural object classes make it impossible to combine these
29458 classes with the object classes used by DHCP.</p>
29459
29460 <p>There are other schemas that could be used too, for example the
29461 dnszone structural object class used by Gosa and bind-sdb for the DNS
29462 attributes combined with the domainrelatedobject object class, but in
29463 this case some unused attributes would have to be included as well
29464 (zonename and relativedomainname).</p>
29465
29466 <p>My proposal for Debian Edu would be to switch PowerDNS to strict
29467 mode and not use any of the existing objectclasses (dnsdomain,
29468 dnsdomain2 and dnszone) when one want to combine the DNS information
29469 with DHCP information, and instead create a auxiliary object class
29470 defined something like this (using the attributes defined for
29471 dnsdomain and dnsdomain2 or dnszone):</p>
29472
29473 <blockquote><pre>
29474 objectclass ( some-oid NAME 'dnsDomainAux'
29475 SUP top
29476 AUXILIARY
29477 MAY ( ARecord $ MDRecord $ MXRecord $ NSRecord $ SOARecord $ CNAMERecord $
29478 DNSTTL $ DNSClass $ PTRRecord $ HINFORecord $ MINFORecord $
29479 TXTRecord $ SIGRecord $ KEYRecord $ AAAARecord $ LOCRecord $
29480 NXTRecord $ SRVRecord $ NAPTRRecord $ KXRecord $ CERTRecord $
29481 A6Record $ DNAMERecord
29482 ))
29483 </pre></blockquote>
29484
29485 <p>This will allow any object to become a DNS entry when combined with
29486 the domainrelatedobject object class, and allow any entity to include
29487 all the attributes PowerDNS wants. I've sent an email to the PowerDNS
29488 developers asking for their view on this schema and if they are
29489 interested in providing such schema with PowerDNS, and I hope my
29490 message will be accepted into their mailing list soon.</p>
29491
29492 <p><strong>ISC dhcp</strong></p>
29493
29494 <p>The DHCP server searches for specific objectclass and requests all
29495 the object attributes, and then uses the attributes it want. This
29496 make it harder to figure out exactly what attributes are used, but
29497 thanks to the working example in Debian Edu I can at least get an idea
29498 what is needed without having to read the source code.</p>
29499
29500 <p>In the DHCP server configuration, the LDAP base to use and the
29501 search filter to use to locate the correct dhcpServer entity is
29502 stored. These are the relevant entries from
29503 /etc/dhcp3/dhcpd.conf:</p>
29504
29505 <blockquote><pre>
29506 ldap-base-dn "dc=skole,dc=skolelinux,dc=no";
29507 ldap-dhcp-server-cn "dhcp";
29508 </pre></blockquote>
29509
29510 <p>The DHCP server uses this information to nest all the DHCP
29511 configuration it need. The cn "dhcp" is located using the given LDAP
29512 base and the filter "(&(objectClass=dhcpServer)(cn=dhcp))". The
29513 search result is this entry:</p>
29514
29515 <blockquote><pre>
29516 dn: cn=dhcp,dc=skole,dc=skolelinux,dc=no
29517 cn: dhcp
29518 objectClass: top
29519 objectClass: dhcpServer
29520 dhcpServiceDN: cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
29521 </pre></blockquote>
29522
29523 <p>The content of the dhcpServiceDN attribute is next used to locate the
29524 subtree with DHCP configuration. The DHCP configuration subtree base
29525 is located using a base scope search with base "cn=DHCP
29526 Config,dc=skole,dc=skolelinux,dc=no" and filter
29527 "(&(objectClass=dhcpService)(|(dhcpPrimaryDN=cn=dhcp,dc=skole,dc=skolelinux,dc=no)(dhcpSecondaryDN=cn=dhcp,dc=skole,dc=skolelinux,dc=no)))".
29528 The search result is this entry:</p>
29529
29530 <blockquote><pre>
29531 dn: cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
29532 cn: DHCP Config
29533 objectClass: top
29534 objectClass: dhcpService
29535 objectClass: dhcpOptions
29536 dhcpPrimaryDN: cn=dhcp, dc=skole,dc=skolelinux,dc=no
29537 dhcpStatements: ddns-update-style none
29538 dhcpStatements: authoritative
29539 dhcpOption: smtp-server code 69 = array of ip-address
29540 dhcpOption: www-server code 72 = array of ip-address
29541 dhcpOption: wpad-url code 252 = text
29542 </pre></blockquote>
29543
29544 <p>Next, the entire subtree is processed, one level at the time. When
29545 all the DHCP configuration is loaded, it is ready to receive requests.
29546 The subtree in Debian Edu contain objects with object classes
29547 top/dhcpService/dhcpOptions, top/dhcpSharedNetwork/dhcpOptions,
29548 top/dhcpSubnet, top/dhcpGroup and top/dhcpHost. These provide options
29549 and information about netmasks, dynamic range etc. Leaving out the
29550 details here because it is not relevant for the focus of my
29551 investigation, which is to see if it is possible to merge dns and dhcp
29552 related computer objects.</p>
29553
29554 <p>When a DHCP request come in, LDAP is searched for the MAC address
29555 of the client (00:00:00:00:00:00 in this example), using a subtree
29556 scoped search with "cn=DHCP Config,dc=skole,dc=skolelinux,dc=no" as
29557 the base and "(&(objectClass=dhcpHost)(dhcpHWAddress=ethernet
29558 00:00:00:00:00:00))" as the filter. This is what a host object look
29559 like:</p>
29560
29561 <blockquote><pre>
29562 dn: cn=hostname,cn=group1,cn=THINCLIENTS,cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
29563 cn: hostname
29564 objectClass: top
29565 objectClass: dhcpHost
29566 dhcpHWAddress: ethernet 00:00:00:00:00:00
29567 dhcpStatements: fixed-address hostname
29568 </pre></blockquote>
29569
29570 <p>There is less flexiblity in the way LDAP searches are done here.
29571 The object classes need to have fixed names, and the configuration
29572 need to be stored in a fairly specific LDAP structure. On the
29573 positive side, the invidiual dhcpHost entires can be anywhere without
29574 the DN pointed to by the dhcpServer entries. The latter should make
29575 it possible to group all host entries in a subtree next to the
29576 configuration entries, and this subtree can also be shared with the
29577 DNS server if the schema proposed above is combined with the dhcpHost
29578 structural object class.
29579
29580 <p><strong>Conclusion</strong></p>
29581
29582 <p>The PowerDNS implementation seem to be very flexible when it come
29583 to which LDAP schemas to use. While its "tree" mode is rigid when it
29584 come to the the LDAP structure, the "strict" mode is very flexible,
29585 allowing DNS objects to be stored anywhere under the base cn specified
29586 in the configuration.</p>
29587
29588 <p>The DHCP implementation on the other hand is very inflexible, both
29589 regarding which LDAP schemas to use and which LDAP structure to use.
29590 I guess one could implement ones own schema, as long as the
29591 objectclasses and attributes have the names used, but this do not
29592 really help when the DHCP subtree need to have a fairly fixed
29593 structure.</p>
29594
29595 <p>Based on the observed behaviour, I suspect a LDAP structure like
29596 this might work for Debian Edu:</p>
29597
29598 <blockquote><pre>
29599 ou=services
29600 cn=machine-info (dhcpService) - dhcpServiceDN points here
29601 cn=dhcp (dhcpServer)
29602 cn=dhcp-internal (dhcpSharedNetwork/dhcpOptions)
29603 cn=10.0.2.0 (dhcpSubnet)
29604 cn=group1 (dhcpGroup/dhcpOptions)
29605 cn=dhcp-thinclients (dhcpSharedNetwork/dhcpOptions)
29606 cn=192.168.0.0 (dhcpSubnet)
29607 cn=group1 (dhcpGroup/dhcpOptions)
29608 ou=machines - PowerDNS base points here
29609 cn=hostname (dhcpHost/domainrelatedobject/dnsDomainAux)
29610 </pre></blockquote>
29611
29612 <P>This is not tested yet. If the DHCP server require the dhcpHost
29613 entries to be in the dhcpGroup subtrees, the entries can be stored
29614 there instead of a common machines subtree, and the PowerDNS base
29615 would have to be moved one level up to the machine-info subtree.</p>
29616
29617 <p>The combined object under the machines subtree would look something
29618 like this:</p>
29619
29620 <blockquote><pre>
29621 dn: dc=hostname,ou=machines,cn=machine-info,dc=skole,dc=skolelinux,dc=no
29622 dc: hostname
29623 objectClass: top
29624 objectClass: dhcpHost
29625 objectclass: domainrelatedobject
29626 objectclass: dnsDomainAux
29627 associateddomain: hostname.intern
29628 arecord: 10.11.12.13
29629 dhcpHWAddress: ethernet 00:00:00:00:00:00
29630 dhcpStatements: fixed-address hostname.intern
29631 </pre></blockquote>
29632
29633 </p>One could even add the LTSP configuration associated with a given
29634 machine, as long as the required attributes are available in a
29635 auxiliary object class.</p>
29636
29637 </div>
29638 <div class="tags">
29639
29640
29641 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>.
29642
29643
29644 </div>
29645 </div>
29646 <div class="padding"></div>
29647
29648 <div class="entry">
29649 <div class="title">
29650 <a href="http://people.skolelinux.org/pere/blog/Combining_PowerDNS_and_ISC_DHCP_LDAP_objects.html">Combining PowerDNS and ISC DHCP LDAP objects</a>
29651 </div>
29652 <div class="date">
29653 14th July 2010
29654 </div>
29655 <div class="body">
29656 <p>For a while now, I have wanted to find a way to change the DNS and
29657 DHCP services in Debian Edu to use the same LDAP objects for a given
29658 computer, to avoid the possibility of having a inconsistent state for
29659 a computer in LDAP (as in DHCP but no DNS entry or the other way
29660 around) and make it easier to add computers to LDAP.</p>
29661
29662 <p>I've looked at how powerdns and dhcpd is using LDAP, and using this
29663 information finally found a solution that seem to work.</p>
29664
29665 <p>The old setup required three LDAP objects for a given computer.
29666 One forward DNS entry, one reverse DNS entry and one DHCP entry. If
29667 we switch powerdns to use its strict LDAP method (ldap-method=strict
29668 in pdns-debian-edu.conf), the forward and reverse DNS entries are
29669 merged into one while making it impossible to transfer the reverse map
29670 to a slave DNS server.</p>
29671
29672 <p>If we also replace the object class used to get the DNS related
29673 attributes to one allowing these attributes to be combined with the
29674 dhcphost object class, we can merge the DNS and DHCP entries into one.
29675 I've written such object class in the dnsdomainaux.schema file (need
29676 proper OIDs, but that is a minor issue), and tested the setup. It
29677 seem to work.</p>
29678
29679 <p>With this test setup in place, we can get away with one LDAP object
29680 for both DNS and DHCP, and even the LTSP configuration I suggested in
29681 an earlier email. The combined LDAP object will look something like
29682 this:</p>
29683
29684 <blockquote><pre>
29685 dn: cn=hostname,cn=group1,cn=THINCLIENTS,cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
29686 cn: hostname
29687 objectClass: dhcphost
29688 objectclass: domainrelatedobject
29689 objectclass: dnsdomainaux
29690 associateddomain: hostname.intern
29691 arecord: 10.11.12.13
29692 dhcphwaddress: ethernet 00:00:00:00:00:00
29693 dhcpstatements: fixed-address hostname
29694 ldapconfigsound: Y
29695 </pre></blockquote>
29696
29697 <p>The DNS server uses the associateddomain and arecord entries, while
29698 the DHCP server uses the dhcphwaddress and dhcpstatements entries
29699 before asking DNS to resolve the fixed-adddress. LTSP will use
29700 dhcphwaddress or associateddomain and the ldapconfig* attributes.</p>
29701
29702 <p>I am not yet sure if I can get the DHCP server to look for its
29703 dhcphost in a different location, to allow us to put the objects
29704 outside the "DHCP Config" subtree, but hope to figure out a way to do
29705 that. If I can't figure out a way to do that, we can still get rid of
29706 the hosts subtree and move all its content into the DHCP Config tree
29707 (which probably should be renamed to be more related to the new
29708 content. I suspect cn=dnsdhcp,ou=services or something like that
29709 might be a good place to put it.</p>
29710
29711 <p>If you want to help out with implementing this for Debian Edu,
29712 please contact us on debian-edu@lists.debian.org.</p>
29713
29714 </div>
29715 <div class="tags">
29716
29717
29718 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>.
29719
29720
29721 </div>
29722 </div>
29723 <div class="padding"></div>
29724
29725 <div class="entry">
29726 <div class="title">
29727 <a href="http://people.skolelinux.org/pere/blog/Idea_for_storing_LTSP_configuration_in_LDAP.html">Idea for storing LTSP configuration in LDAP</a>
29728 </div>
29729 <div class="date">
29730 11th July 2010
29731 </div>
29732 <div class="body">
29733 <p>Vagrant mentioned on IRC today that ltsp_config now support
29734 sourcing files from /usr/share/ltsp/ltsp_config.d/ on the thin
29735 clients, and that this can be used to fetch configuration from LDAP if
29736 Debian Edu choose to store configuration there.</p>
29737
29738 <p>Armed with this information, I got inspired and wrote a test module
29739 to get configuration from LDAP. The idea is to look up the MAC
29740 address of the client in LDAP, and look for attributes on the form
29741 ltspconfigsetting=value, and use this to export SETTING=value to the
29742 LTSP clients.</p>
29743
29744 <p>The goal is to be able to store the LTSP configuration attributes
29745 in a "computer" LDAP object used by both DNS and DHCP, and thus
29746 allowing us to store all information about a computer in one place.</p>
29747
29748 <p>This is a untested draft implementation, and I welcome feedback on
29749 this approach. A real LDAP schema for the ltspClientAux objectclass
29750 need to be written. Comments, suggestions, etc?</p>
29751
29752 <blockquote><pre>
29753 # Store in /opt/ltsp/$arch/usr/share/ltsp/ltsp_config.d/ldap-config
29754 #
29755 # Fetch LTSP client settings from LDAP based on MAC address
29756 #
29757 # Uses ethernet address as stored in the dhcpHost objectclass using
29758 # the dhcpHWAddress attribute or ethernet address stored in the
29759 # ieee802Device objectclass with the macAddress attribute.
29760 #
29761 # This module is written to be schema agnostic, and only depend on the
29762 # existence of attribute names.
29763 #
29764 # The LTSP configuration variables are saved directly using a
29765 # ltspConfig prefix and uppercasing the rest of the attribute name.
29766 # To set the SERVER variable, set the ltspConfigServer attribute.
29767 #
29768 # Some LDAP schema should be created with all the relevant
29769 # configuration settings. Something like this should work:
29770 #
29771 # objectclass ( 1.1.2.2 NAME 'ltspClientAux'
29772 # SUP top
29773 # AUXILIARY
29774 # MAY ( ltspConfigServer $ ltsConfigSound $ ... )
29775
29776 LDAPSERVER=$(debian-edu-ldapserver)
29777 if [ "$LDAPSERVER" ] ; then
29778 LDAPBASE=$(debian-edu-ldapserver -b)
29779 for MAC in $(LANG=C ifconfig |grep -i hwaddr| awk '{print $5}'|sort -u) ; do
29780 filter="(|(dhcpHWAddress=ethernet $MAC)(macAddress=$MAC))"
29781 ldapsearch -h "$LDAPSERVER" -b "$LDAPBASE" -v -x "$filter" | \
29782 grep '^ltspConfig' | while read attr value ; do
29783 # Remove prefix and convert to upper case
29784 attr=$(echo $attr | sed 's/^ltspConfig//i' | tr a-z A-Z)
29785 # bass value on to clients
29786 eval "$attr=$value; export $attr"
29787 done
29788 done
29789 fi
29790 </pre></blockquote>
29791
29792 <p>I'm not sure this shell construction will work, because I suspect
29793 the while block might end up in a subshell causing the variables set
29794 there to not show up in ltsp-config, but if that is the case I am sure
29795 the code can be restructured to make sure the variables are passed on.
29796 I expect that can be solved with some testing. :)</p>
29797
29798 <p>If you want to help out with implementing this for Debian Edu,
29799 please contact us on debian-edu@lists.debian.org.</p>
29800
29801 <p>Update 2010-07-17: I am aware of another effort to store LTSP
29802 configuration in LDAP that was created around year 2000 by
29803 <a href="http://www.pcxperience.com/thinclient/documentation/ldap.html">PC
29804 Xperience, Inc., 2000</a>. I found its
29805 <a href="http://people.redhat.com/alikins/ltsp/ldap/">files</a> on a
29806 personal home page over at redhat.com.</p>
29807
29808 </div>
29809 <div class="tags">
29810
29811
29812 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>.
29813
29814
29815 </div>
29816 </div>
29817 <div class="padding"></div>
29818
29819 <div class="entry">
29820 <div class="title">
29821 <a href="http://people.skolelinux.org/pere/blog/jXplorer__a_very_nice_LDAP_GUI.html">jXplorer, a very nice LDAP GUI</a>
29822 </div>
29823 <div class="date">
29824 9th July 2010
29825 </div>
29826 <div class="body">
29827 <p>Since
29828 <a href="http://people.skolelinux.org/pere/blog/LUMA__a_very_nice_LDAP_GUI.html">my
29829 last post</a> about available LDAP tools in Debian, I was told about a
29830 LDAP GUI that is even better than luma. The java application
29831 <a href="http://jxplorer.org/">jXplorer</a> is claimed to be capable of
29832 moving LDAP objects and subtrees using drag-and-drop, and can
29833 authenticate using Kerberos. I have only tested the Kerberos
29834 authentication, but do not have a LDAP setup allowing me to rewrite
29835 LDAP with my test user yet. It is
29836 <a href="http://packages.qa.debian.org/j/jxplorer.html">available in
29837 Debian</a> testing and unstable at the moment. The only problem I
29838 have with it is how it handle errors. If something go wrong, its
29839 non-intuitive behaviour require me to go through some query work list
29840 and remove the failing query. Nothing big, but very annoying.</p>
29841
29842 </div>
29843 <div class="tags">
29844
29845
29846 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>.
29847
29848
29849 </div>
29850 </div>
29851 <div class="padding"></div>
29852
29853 <div class="entry">
29854 <div class="title">
29855 <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>
29856 </div>
29857 <div class="date">
29858 3rd July 2010
29859 </div>
29860 <div class="body">
29861 <p>Here is a short update on my <a
29862 href="http://people.skolelinux.org/~pere/debian-upgrade-testing/">my
29863 Debian Lenny->Squeeze upgrade testing</a>. Here is a summary of the
29864 difference for Gnome when it is upgraded by apt-get and aptitude. I'm
29865 not reporting the status for KDE, because the upgrade crashes when
29866 aptitude try because of missing conflicts
29867 (<a href="http://bugs.debian.org/584861">#584861</a> and
29868 <a href="http://bugs.debian.org/585716">#585716</a>).</p>
29869
29870 <p>At the end of the upgrade test script, dpkg -l is executed to get a
29871 complete list of the installed packages. Based on this I see these
29872 differences when I did a test run today. As usual, I do not really
29873 know what the correct set of packages would be, but thought it best to
29874 publish the difference.</p>
29875
29876 <p>Installed using apt-get, missing with aptitude</p>
29877
29878 <blockquote><p>
29879 at-spi cpp-4.3 finger gnome-spell gstreamer0.10-gnomevfs
29880 libatspi1.0-0 libcupsys2 libeel2-data libgail-common libgdl-1-common
29881 libgnomeprint2.2-data libgnomeprintui2.2-common libgnomevfs2-bin
29882 libgtksourceview-common libpt-1.10.10-plugins-alsa
29883 libpt-1.10.10-plugins-v4l libservlet2.4-java libxalan2-java
29884 libxerces2-java openoffice.org-writer2latex openssl-blacklist p7zip
29885 python-4suite-xml python-eggtrayicon python-gtkhtml2
29886 python-gtkmozembed svgalibg1 xserver-xephyr zip
29887 </p></blockquote>
29888
29889 <p>Installed using apt-get, removed with aptitude</p>
29890
29891 <blockquote><p>
29892 bluez-utils dhcdbd djvulibre-desktop epiphany-gecko
29893 gnome-app-install gnome-mount gnome-vfs-obexftp gnome-volume-manager
29894 libao2 libavahi-compat-libdnssd1 libavahi-core5 libbind9-50
29895 libbluetooth2 libcamel1.2-11 libcdio7 libcucul0 libcurl3
29896 libdirectfb-1.0-0 libdvdread3 libedata-cal1.2-6 libedataserver1.2-9
29897 libeel2-2.20 libepc-1.0-1 libepc-ui-1.0-1 libexchange-storage1.2-3
29898 libfaad0 libgd2-noxpm libgda3-3 libgda3-common libggz2 libggzcore9
29899 libggzmod4 libgksu1.2-0 libgksuui1.0-1 libgmyth0 libgnome-desktop-2
29900 libgnome-pilot2 libgnomecups1.0-1 libgnomeprint2.2-0
29901 libgnomeprintui2.2-0 libgpod3 libgraphviz4 libgtkhtml2-0
29902 libgtksourceview1.0-0 libgucharmap6 libhesiod0 libicu38 libisccc50
29903 libisccfg50 libiw29 libkpathsea4 libltdl3 liblwres50 libmagick++10
29904 libmagick10 libmalaga7 libmtp7 libmysqlclient15off libnautilus-burn4
29905 libneon27 libnm-glib0 libnm-util0 libopal-2.2 libosp5
29906 libparted1.8-10 libpisock9 libpisync1 libpoppler-glib3 libpoppler3
29907 libpt-1.10.10 libraw1394-8 libsensors3 libsmbios2 libsoup2.2-8
29908 libssh2-1 libsuitesparse-3.1.0 libswfdec-0.6-90 libtalloc1
29909 libtotem-plparser10 libtrackerclient0 libvoikko1 libxalan2-java-gcj
29910 libxerces2-java-gcj libxklavier12 libxtrap6 libxxf86misc1 libzephyr3
29911 mysql-common swfdec-gnome totem-gstreamer wodim
29912 </p></blockquote>
29913
29914 <p>Installed using aptitude, missing with apt-get</p>
29915
29916 <blockquote><p>
29917 gnome gnome-desktop-environment hamster-applet python-gnomeapplet
29918 python-gnomekeyring python-wnck rhythmbox-plugins xorg
29919 xserver-xorg-input-all xserver-xorg-input-evdev
29920 xserver-xorg-input-kbd xserver-xorg-input-mouse
29921 xserver-xorg-input-synaptics xserver-xorg-video-all
29922 xserver-xorg-video-apm xserver-xorg-video-ark xserver-xorg-video-ati
29923 xserver-xorg-video-chips xserver-xorg-video-cirrus
29924 xserver-xorg-video-dummy xserver-xorg-video-fbdev
29925 xserver-xorg-video-glint xserver-xorg-video-i128
29926 xserver-xorg-video-i740 xserver-xorg-video-mach64
29927 xserver-xorg-video-mga xserver-xorg-video-neomagic
29928 xserver-xorg-video-nouveau xserver-xorg-video-nv
29929 xserver-xorg-video-r128 xserver-xorg-video-radeon
29930 xserver-xorg-video-radeonhd xserver-xorg-video-rendition
29931 xserver-xorg-video-s3 xserver-xorg-video-s3virge
29932 xserver-xorg-video-savage xserver-xorg-video-siliconmotion
29933 xserver-xorg-video-sis xserver-xorg-video-sisusb
29934 xserver-xorg-video-tdfx xserver-xorg-video-tga
29935 xserver-xorg-video-trident xserver-xorg-video-tseng
29936 xserver-xorg-video-vesa xserver-xorg-video-vmware
29937 xserver-xorg-video-voodoo
29938 </p></blockquote>
29939
29940 <p>Installed using aptitude, removed with apt-get</p>
29941
29942 <blockquote><p>
29943 deskbar-applet xserver-xorg xserver-xorg-core
29944 xserver-xorg-input-wacom xserver-xorg-video-intel
29945 xserver-xorg-video-openchrome
29946 </p></blockquote>
29947
29948 <p>I was told on IRC that the xorg-xserver package was
29949 <a href="http://git.debian.org/?p=pkg-xorg/xserver/xorg-server.git;a=commit;h=9c8080d06c457932d3bfec021c69ac000aa60120">changed
29950 in git</a> today to try to get apt-get to not remove xorg completely.
29951 No idea when it hits Squeeze, but when it does I hope it will reduce
29952 the difference somewhat.
29953
29954 </div>
29955 <div class="tags">
29956
29957
29958 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>.
29959
29960
29961 </div>
29962 </div>
29963 <div class="padding"></div>
29964
29965 <div class="entry">
29966 <div class="title">
29967 <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>
29968 </div>
29969 <div class="date">
29970 1st July 2010
29971 </div>
29972 <div class="body">
29973 <p>For a laptop, centralized user directories and password checking is
29974 a bit troubling. Laptops are typically used also when not connected
29975 to the network, and it is vital for a user to be able to log in or
29976 unlock the screen saver also when a central server is unavailable.
29977 This is possible by caching passwords and directory information (user
29978 and group attributes) locally, and the packages to do so are available
29979 in Debian. Here follow two recipes to set this up in Debian/Squeeze.
29980 It is also possible to set up in Debian/Lenny, but require more manual
29981 setup there because pam-auth-update is missing in Lenny.</p>
29982
29983 <h2>LDAP/Kerberos + nscd + libpam-ccreds + libpam-mklocaluser/pam_mkhomedir</h2>
29984
29985 This is the traditional method with a twist. The password caching is
29986 provided by libpam-ccreds (version 10-4 or later is needed on
29987 Squeeze), and the directory caching is done by nscd. The directory
29988 lookup and password checking is done using LDAP. If one want to use
29989 Kerberos for password checking the libpam-ldapd package can be
29990 replaced with libpam-krb5 or libpam-heimdal. If one is happy having a
29991 local home directory with the path listed in LDAP, one can use the
29992 pam_mkhomedir module from pam-modules to make this happen instead of
29993 using libpam-mklocaluser. A setup for pam-auth-update to enable
29994 pam_mkhomedir will have to be written until a fix for
29995 <a href="http://bugs.debian.org/568577">bug #568577</a> is in the
29996 archive. Because I believe it is a bad idea to have local home
29997 directories using misleading paths like /site/server/partition/, I
29998 prefer to create a local user with the home directory in /home/. This
29999 is done using the libpam-mklocaluser package.</p>
30000
30001 <p>These packages need to be installed and configured</p>
30002
30003 <blockquote><pre>
30004 libnss-ldapd libpam-ldapd nscd libpam-ccreds libpam-mklocaluser
30005 </pre></blockquote>
30006
30007 <p>The ldapd packages will ask for LDAP connection information, and
30008 one have to fill in the values that fits ones own site. Make sure the
30009 PAM part uses encrypted connections, to make sure the password is not
30010 sent in clear text to the LDAP server. I've been unable to get TLS
30011 certificate checking for a self signed certificate working, which make
30012 LDAP authentication unsafe for Debian Edu (nslcd is not checking if it
30013 is talking to the correct LDAP server), and very much welcome feedback
30014 on how to get this working.</p>
30015
30016 <p>Because nscd do not have a default configuration fit for offline
30017 caching until <a href="http://bugs.debian.org/485282">bug #485282</a>
30018 is fixed, this configuration should be used instead of the one
30019 currently in /etc/nscd.conf. The changes are in the fields
30020 reload-count and positive-time-to-live, and is based on the
30021 instructions I found in the
30022 <a href="http://www.flyn.org/laptopldap/">LDAP for Mobile Laptops</a>
30023 instructions by Flyn Computing.</p>
30024
30025 <blockquote><pre>
30026 debug-level 0
30027 reload-count unlimited
30028 paranoia no
30029
30030 enable-cache passwd yes
30031 positive-time-to-live passwd 2592000
30032 negative-time-to-live passwd 20
30033 suggested-size passwd 211
30034 check-files passwd yes
30035 persistent passwd yes
30036 shared passwd yes
30037 max-db-size passwd 33554432
30038 auto-propagate passwd yes
30039
30040 enable-cache group yes
30041 positive-time-to-live group 2592000
30042 negative-time-to-live group 20
30043 suggested-size group 211
30044 check-files group yes
30045 persistent group yes
30046 shared group yes
30047 max-db-size group 33554432
30048 auto-propagate group yes
30049
30050 enable-cache hosts no
30051 positive-time-to-live hosts 2592000
30052 negative-time-to-live hosts 20
30053 suggested-size hosts 211
30054 check-files hosts yes
30055 persistent hosts yes
30056 shared hosts yes
30057 max-db-size hosts 33554432
30058
30059 enable-cache services yes
30060 positive-time-to-live services 2592000
30061 negative-time-to-live services 20
30062 suggested-size services 211
30063 check-files services yes
30064 persistent services yes
30065 shared services yes
30066 max-db-size services 33554432
30067 </pre></blockquote>
30068
30069 <p>While we wait for a mechanism to update /etc/nsswitch.conf
30070 automatically like the one provided in
30071 <a href="http://bugs.debian.org/496915">bug #496915</a>, the file
30072 content need to be manually replaced to ensure LDAP is used as the
30073 directory service on the machine. /etc/nsswitch.conf should normally
30074 look like this:</p>
30075
30076 <blockquote><pre>
30077 passwd: files ldap
30078 group: files ldap
30079 shadow: files ldap
30080 hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
30081 networks: files
30082 protocols: files
30083 services: files
30084 ethers: files
30085 rpc: files
30086 netgroup: files ldap
30087 </pre></blockquote>
30088
30089 <p>The important parts are that ldap is listed last for passwd, group,
30090 shadow and netgroup.</p>
30091
30092 <p>With these changes in place, any user in LDAP will be able to log
30093 in locally on the machine using for example kdm, get a local home
30094 directory created and have the password as well as user and group
30095 attributes cached.
30096
30097 <h2>LDAP/Kerberos + nss-updatedb + libpam-ccreds +
30098 libpam-mklocaluser/pam_mkhomedir</h2>
30099
30100 <p>Because nscd have had its share of problems, and seem to have
30101 problems doing proper caching, I've seen suggestions and recipes to
30102 use nss-updatedb to copy parts of the LDAP database locally when the
30103 LDAP database is available. I have not tested such setup, because I
30104 discovered sssd.</p>
30105
30106 <h2>LDAP/Kerberos + sssd + libpam-mklocaluser</h2>
30107
30108 <p>A more flexible and robust setup than the nscd combination
30109 mentioned earlier that has shown up recently, is the
30110 <a href="https://fedorahosted.org/sssd/">sssd</a> package from Redhat.
30111 It is part of the <a href="http://www.freeipa.org/">FreeIPA</A> project
30112 to provide a Active Directory like directory service for Linux
30113 machines. The sssd system combines the caching of passwords and user
30114 information into one package, and remove the need for nscd and
30115 libpam-ccreds. It support LDAP and Kerberos, but not NIS. Version
30116 1.2 do not support netgroups, but it is said that it will support this
30117 in version 1.5 expected to show up later in 2010. Because the
30118 <a href="http://packages.qa.debian.org/s/sssd.html">sssd package</a>
30119 was missing in Debian, I ended up co-maintaining it with Werner, and
30120 version 1.2 is now in testing.
30121
30122 <p>These packages need to be installed and configured to get the
30123 roaming setup I want</p>
30124
30125 <blockquote><pre>
30126 libpam-sss libnss-sss libpam-mklocaluser
30127 </pre></blockquote>
30128
30129 The complete setup of sssd is done by editing/creating
30130 <tt>/etc/sssd/sssd.conf</tt>.
30131
30132 <blockquote><pre>
30133 [sssd]
30134 config_file_version = 2
30135 reconnection_retries = 3
30136 sbus_timeout = 30
30137 services = nss, pam
30138 domains = INTERN
30139
30140 [nss]
30141 filter_groups = root
30142 filter_users = root
30143 reconnection_retries = 3
30144
30145 [pam]
30146 reconnection_retries = 3
30147
30148 [domain/INTERN]
30149 enumerate = false
30150 cache_credentials = true
30151
30152 id_provider = ldap
30153 auth_provider = ldap
30154 chpass_provider = ldap
30155
30156 ldap_uri = ldap://ldap
30157 ldap_search_base = dc=skole,dc=skolelinux,dc=no
30158 ldap_tls_reqcert = never
30159 ldap_tls_cacert = /etc/ssl/certs/ca-certificates.crt
30160 </pre></blockquote>
30161
30162 <p>I got the same problem here with certificate checking. Had to set
30163 "ldap_tls_reqcert = never" to get it working.</p>
30164
30165 <p>With the libnss-sss package in testing at the moment, the
30166 nsswitch.conf file is update automatically, so there is no need to
30167 modify it manually.</p>
30168
30169 <p>If you want to help out with implementing this for Debian Edu,
30170 please contact us on debian-edu@lists.debian.org.</p>
30171
30172 </div>
30173 <div class="tags">
30174
30175
30176 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>.
30177
30178
30179 </div>
30180 </div>
30181 <div class="padding"></div>
30182
30183 <div class="entry">
30184 <div class="title">
30185 <a href="http://people.skolelinux.org/pere/blog/LUMA__a_very_nice_LDAP_GUI.html">LUMA, a very nice LDAP GUI</a>
30186 </div>
30187 <div class="date">
30188 28th June 2010
30189 </div>
30190 <div class="body">
30191 <p>The last few days I have been looking into the status of the LDAP
30192 directory in Debian Edu, and in the process I started to miss a GUI
30193 tool to browse the LDAP tree. The only one I was able to find in
30194 Debian/Squeeze and Lenny is
30195 <a href="http://luma.sourceforge.net/">LUMA</a>, which has proved to
30196 be a great tool to get a overview of the current LDAP directory
30197 populated by default in Skolelinux. Thanks to it, I have been able to
30198 find empty and obsolete subtrees, misplaced objects and duplicate
30199 objects. It will be installed by default in Debian/Squeeze. If you
30200 are working with LDAP, give it a go. :)</p>
30201
30202 <p>I did notice one problem with it I have not had time to report to
30203 the BTS yet. There is no .desktop file in the package, so the tool do
30204 not show up in the Gnome and KDE menus, but only deep down in in the
30205 Debian submenu in KDE. I hope that can be fixed before Squeeze is
30206 released.</p>
30207
30208 <p>I have not yet been able to get it to modify the tree yet. I would
30209 like to move objects and remove subtrees directly in the GUI, but have
30210 not found a way to do that with LUMA yet. So in the mean time, I use
30211 <a href="http://www.lichteblau.com/ldapvi/">ldapvi</a> for that.</p>
30212
30213 <p>If you have tips on other GUI tools for LDAP that might be useful
30214 in Debian Edu, please contact us on debian-edu@lists.debian.org.</p>
30215
30216 <p>Update 2010-06-29: Ross Reedstrom tipped us about the
30217 <a href="http://packages.qa.debian.org/g/gq.html">gq</a> package as a
30218 useful GUI alternative. It seem like a good tool, but is unmaintained
30219 in Debian and got a RC bug keeping it out of Squeeze. Unless that
30220 changes, it will not be an option for Debian Edu based on Squeeze.</p>
30221
30222 </div>
30223 <div class="tags">
30224
30225
30226 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>.
30227
30228
30229 </div>
30230 </div>
30231 <div class="padding"></div>
30232
30233 <div class="entry">
30234 <div class="title">
30235 <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>
30236 </div>
30237 <div class="date">
30238 24th June 2010
30239 </div>
30240 <div class="body">
30241 <p>A while back, I
30242 <a href="http://people.skolelinux.org/pere/blog/Time_for_new__LDAP_schemas_replacing_RFC_2307_.html">complained
30243 about the fact</a> that it is not possible with the provided schemas
30244 for storing DNS and DHCP information in LDAP to combine the two sets
30245 of information into one LDAP object representing a computer.</p>
30246
30247 <p>In the mean time, I discovered that a simple fix would be to make
30248 the dhcpHost object class auxiliary, to allow it to be combined with
30249 the dNSDomain object class, and thus forming one object for one
30250 computer when storing both DHCP and DNS information in LDAP.</p>
30251
30252 <p>If I understand this correctly, it is not safe to do this change
30253 without also changing the assigned number for the object class, and I
30254 do not know enough about LDAP schema design to do that properly for
30255 Debian Edu.</p>
30256
30257 <p>Anyway, for future reference, this is how I believe we could change
30258 the
30259 <a href="http://tools.ietf.org/html/draft-ietf-dhc-ldap-schema-00">DHCP
30260 schema</a> to solve at least part of the problem with the LDAP schemas
30261 available today from IETF.</p>
30262
30263 <pre>
30264 --- dhcp.schema (revision 65192)
30265 +++ dhcp.schema (working copy)
30266 @@ -376,7 +376,7 @@
30267 objectclass ( 2.16.840.1.113719.1.203.6.6
30268 NAME 'dhcpHost'
30269 DESC 'This represents information about a particular client'
30270 - SUP top
30271 + SUP top AUXILIARY
30272 MUST cn
30273 MAY (dhcpLeaseDN $ dhcpHWAddress $ dhcpOptionsDN $ dhcpStatements $ dhcpComments $ dhcpOption)
30274 X-NDS_CONTAINMENT ('dhcpService' 'dhcpSubnet' 'dhcpGroup') )
30275 </pre>
30276
30277 <p>I very much welcome clues on how to do this properly for Debian
30278 Edu/Squeeze. We provide the DHCP schema in our debian-edu-config
30279 package, and should thus be free to rewrite it as we see fit.</p>
30280
30281 <p>If you want to help out with implementing this for Debian Edu,
30282 please contact us on debian-edu@lists.debian.org.</p>
30283
30284 </div>
30285 <div class="tags">
30286
30287
30288 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>.
30289
30290
30291 </div>
30292 </div>
30293 <div class="padding"></div>
30294
30295 <div class="entry">
30296 <div class="title">
30297 <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>
30298 </div>
30299 <div class="date">
30300 16th June 2010
30301 </div>
30302 <div class="body">
30303 <p>A few times I have had the need to simulate the way tasksel
30304 installs packages during the normal debian-installer run. Until now,
30305 I have ended up letting tasksel do the work, with the annoying problem
30306 of not getting any feedback at all when something fails (like a
30307 conffile question from dpkg or a download that fails), using code like
30308 this:
30309
30310 <blockquote><pre>
30311 export DEBIAN_FRONTEND=noninteractive
30312 tasksel --new-install
30313 </pre></blockquote>
30314
30315 This would invoke tasksel, let its automatic task selection pick the
30316 tasks to install, and continue to install the requested tasks without
30317 any output what so ever.
30318
30319 Recently I revisited this problem while working on the automatic
30320 package upgrade testing, because tasksel would some times hang without
30321 any useful feedback, and I want to see what is going on when it
30322 happen. Then it occured to me, I can parse the output from tasksel
30323 when asked to run in test mode, and use that aptitude command line
30324 printed by tasksel then to simulate the tasksel run. I ended up using
30325 code like this:
30326
30327 <blockquote><pre>
30328 export DEBIAN_FRONTEND=noninteractive
30329 cmd="$(in_target tasksel -t --new-install | sed 's/debconf-apt-progress -- //')"
30330 $cmd
30331 </pre></blockquote>
30332
30333 <p>The content of $cmd is typically something like "<tt>aptitude -q
30334 --without-recommends -o APT::Install-Recommends=no -y install
30335 ~t^desktop$ ~t^gnome-desktop$ ~t^laptop$ ~pstandard ~prequired
30336 ~pimportant</tt>", which will install the gnome desktop task, the
30337 laptop task and all packages with priority standard , required and
30338 important, just like tasksel would have done it during
30339 installation.</p>
30340
30341 <p>A better approach is probably to extend tasksel to be able to
30342 install packages without using debconf-apt-progress, for use cases
30343 like this.</p>
30344
30345 </div>
30346 <div class="tags">
30347
30348
30349 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>.
30350
30351
30352 </div>
30353 </div>
30354 <div class="padding"></div>
30355
30356 <div class="entry">
30357 <div class="title">
30358 <a href="http://people.skolelinux.org/pere/blog/Officeshots_taking_shape.html">Officeshots taking shape</a>
30359 </div>
30360 <div class="date">
30361 13th June 2010
30362 </div>
30363 <div class="body">
30364 <p>For those of us caring about document exchange and
30365 interoperability, <a href="http://www.officeshots.org/">OfficeShots</a>
30366 is a great service. It is to ODF documents what
30367 <a href="http://browsershots.org/">BrowserShots</a> is for web
30368 pages.</p>
30369
30370 <p>A while back, I was contacted by Knut Yrvin at the part of Nokia
30371 that used to be Trolltech, who wanted to help the OfficeShots project
30372 and wondered if the University of Oslo where I work would be
30373 interested in supporting the project. I helped him to navigate his
30374 request to the right people at work, and his request was answered with
30375 a spot in the machine room with power and network connected, and Knut
30376 arranged funding for a machine to fill the spot. The machine is
30377 administrated by the OfficeShots people, so I do not have daily
30378 contact with its progress, and thus from time to time check back to
30379 see how the project is doing.</p>
30380
30381 <p>Today I had a look, and was happy to see that the Dell box in our
30382 machine room now is the host for several virtual machines running as
30383 OfficeShots factories, and the project is able to render ODF documents
30384 in 17 different document processing implementation on Linux and
30385 Windows. This is great.</p>
30386
30387 </div>
30388 <div class="tags">
30389
30390
30391 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>.
30392
30393
30394 </div>
30395 </div>
30396 <div class="padding"></div>
30397
30398 <div class="entry">
30399 <div class="title">
30400 <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>
30401 </div>
30402 <div class="date">
30403 13th June 2010
30404 </div>
30405 <div class="body">
30406 <p>My
30407 <a href="http://people.skolelinux.org/pere/blog/Automatic_upgrade_testing_from_Lenny_to_Squeeze.html">testing
30408 of Debian upgrades</a> from Lenny to Squeeze continues, and I've
30409 finally made the upgrade logs available from
30410 <a href="http://people.skolelinux.org/pere/debian-upgrade-testing/">http://people.skolelinux.org/pere/debian-upgrade-testing/</a>.
30411 I am now testing dist-upgrade of Gnome and KDE in a chroot using both
30412 apt and aptitude, and found their differences interesting. This time
30413 I will only focus on their removal plans.</p>
30414
30415 <p>After installing a Gnome desktop and the laptop task, apt-get wants
30416 to remove 72 packages when dist-upgrading from Lenny to Squeeze. The
30417 surprising part is that it want to remove xorg and all
30418 xserver-xorg-video* drivers. Clearly not a good choice, but I am not
30419 sure why. When asking aptitude to do the same, it want to remove 129
30420 packages, but most of them are library packages I suspect are no
30421 longer needed. Both of them want to remove bluetooth packages, which
30422 I do not know. Perhaps these bluetooth packages are obsolete?</p>
30423
30424 <p>For KDE, apt-get want to remove 82 packages, among them kdebase
30425 which seem like a bad idea and xorg the same way as with Gnome. Asking
30426 aptitude for the same, it wants to remove 192 packages, none which are
30427 too surprising.</p>
30428
30429 <p>I guess the removal of xorg during upgrades should be investigated
30430 and avoided, and perhaps others as well. Here are the complete list
30431 of planned removals. The complete logs is available from the URL
30432 above. Note if you want to repeat these tests, that the upgrade test
30433 for kde+apt-get hung in the tasksel setup because of dpkg asking
30434 conffile questions. No idea why. I worked around it by using
30435 '<tt>echo >> /proc/<em>pidofdpkg</em>/fd/0</tt>' to tell dpkg to
30436 continue.</p>
30437
30438 <p><b>apt-get gnome 72</b>
30439 <br>bluez-gnome cupsddk-drivers deskbar-applet gnome
30440 gnome-desktop-environment gnome-network-admin gtkhtml3.14
30441 iceweasel-gnome-support libavcodec51 libdatrie0 libgdl-1-0
30442 libgnomekbd2 libgnomekbdui2 libmetacity0 libslab0 libxcb-xlib0
30443 nautilus-cd-burner python-gnome2-desktop python-gnome2-extras
30444 serpentine swfdec-mozilla update-manager xorg xserver-xorg
30445 xserver-xorg-core xserver-xorg-input-all xserver-xorg-input-evdev
30446 xserver-xorg-input-kbd xserver-xorg-input-mouse
30447 xserver-xorg-input-synaptics xserver-xorg-input-wacom
30448 xserver-xorg-video-all xserver-xorg-video-apm xserver-xorg-video-ark
30449 xserver-xorg-video-ati xserver-xorg-video-chips
30450 xserver-xorg-video-cirrus xserver-xorg-video-cyrix
30451 xserver-xorg-video-dummy xserver-xorg-video-fbdev
30452 xserver-xorg-video-glint xserver-xorg-video-i128
30453 xserver-xorg-video-i740 xserver-xorg-video-imstt
30454 xserver-xorg-video-intel xserver-xorg-video-mach64
30455 xserver-xorg-video-mga xserver-xorg-video-neomagic
30456 xserver-xorg-video-nsc xserver-xorg-video-nv
30457 xserver-xorg-video-openchrome xserver-xorg-video-r128
30458 xserver-xorg-video-radeon xserver-xorg-video-radeonhd
30459 xserver-xorg-video-rendition xserver-xorg-video-s3
30460 xserver-xorg-video-s3virge xserver-xorg-video-savage
30461 xserver-xorg-video-siliconmotion xserver-xorg-video-sis
30462 xserver-xorg-video-sisusb xserver-xorg-video-tdfx
30463 xserver-xorg-video-tga xserver-xorg-video-trident
30464 xserver-xorg-video-tseng xserver-xorg-video-v4l
30465 xserver-xorg-video-vesa xserver-xorg-video-vga
30466 xserver-xorg-video-vmware xserver-xorg-video-voodoo xulrunner-1.9
30467 xulrunner-1.9-gnome-support</p>
30468
30469 <p><b>aptitude gnome 129</b>
30470
30471 <br>bluez-gnome bluez-utils cpp-4.3 cupsddk-drivers dhcdbd
30472 djvulibre-desktop finger gnome-app-install gnome-mount
30473 gnome-network-admin gnome-spell gnome-vfs-obexftp
30474 gnome-volume-manager gstreamer0.10-gnomevfs gtkhtml3.14 libao2
30475 libavahi-compat-libdnssd1 libavahi-core5 libavcodec51 libbluetooth2
30476 libcamel1.2-11 libcdio7 libcucul0 libcupsys2 libcurl3 libdatrie0
30477 libdirectfb-1.0-0 libdvdread3 libedataserver1.2-9 libeel2-2.20
30478 libeel2-data libepc-1.0-1 libepc-ui-1.0-1 libfaad0 libgail-common
30479 libgd2-noxpm libgda3-3 libgda3-common libgdl-1-0 libgdl-1-common
30480 libggz2 libggzcore9 libggzmod4 libgksu1.2-0 libgksuui1.0-1 libgmyth0
30481 libgnomecups1.0-1 libgnomekbd2 libgnomekbdui2 libgnomeprint2.2-0
30482 libgnomeprint2.2-data libgnomeprintui2.2-0 libgnomeprintui2.2-common
30483 libgnomevfs2-bin libgpod3 libgraphviz4 libgtkhtml2-0
30484 libgtksourceview-common libgtksourceview1.0-0 libgucharmap6
30485 libhesiod0 libicu38 libiw29 libkpathsea4 libltdl3 libmagick++10
30486 libmagick10 libmalaga7 libmetacity0 libmtp7 libmysqlclient15off
30487 libnautilus-burn4 libneon27 libnm-glib0 libnm-util0 libopal-2.2
30488 libosp5 libparted1.8-10 libpoppler-glib3 libpoppler3 libpt-1.10.10
30489 libpt-1.10.10-plugins-alsa libpt-1.10.10-plugins-v4l libraw1394-8
30490 libsensors3 libslab0 libsmbios2 libsoup2.2-8 libssh2-1
30491 libsuitesparse-3.1.0 libswfdec-0.6-90 libtalloc1 libtotem-plparser10
30492 libtrackerclient0 libxalan2-java libxalan2-java-gcj libxcb-xlib0
30493 libxerces2-java libxerces2-java-gcj libxklavier12 libxtrap6
30494 libxxf86misc1 libzephyr3 mysql-common nautilus-cd-burner
30495 openoffice.org-writer2latex openssl-blacklist p7zip
30496 python-4suite-xml python-eggtrayicon python-gnome2-desktop
30497 python-gnome2-extras python-gtkhtml2 python-gtkmozembed
30498 python-numeric python-sexy serpentine svgalibg1 swfdec-gnome
30499 swfdec-mozilla totem-gstreamer update-manager wodim
30500 xserver-xorg-video-cyrix xserver-xorg-video-imstt
30501 xserver-xorg-video-nsc xserver-xorg-video-v4l xserver-xorg-video-vga
30502 zip</p>
30503
30504 <p><b>apt-get kde 82</b>
30505
30506 <br>cupsddk-drivers karm kaudiocreator kcoloredit kcontrol kde kde-core
30507 kdeaddons kdeartwork kdebase kdebase-bin kdebase-bin-kde3
30508 kdebase-kio-plugins kdesktop kdeutils khelpcenter kicker
30509 kicker-applets knewsticker kolourpaint konq-plugins konqueror korn
30510 kpersonalizer kscreensaver ksplash libavcodec51 libdatrie0 libkiten1
30511 libxcb-xlib0 quanta superkaramba texlive-base-bin xorg xserver-xorg
30512 xserver-xorg-core xserver-xorg-input-all xserver-xorg-input-evdev
30513 xserver-xorg-input-kbd xserver-xorg-input-mouse
30514 xserver-xorg-input-synaptics xserver-xorg-input-wacom
30515 xserver-xorg-video-all xserver-xorg-video-apm xserver-xorg-video-ark
30516 xserver-xorg-video-ati xserver-xorg-video-chips
30517 xserver-xorg-video-cirrus xserver-xorg-video-cyrix
30518 xserver-xorg-video-dummy xserver-xorg-video-fbdev
30519 xserver-xorg-video-glint xserver-xorg-video-i128
30520 xserver-xorg-video-i740 xserver-xorg-video-imstt
30521 xserver-xorg-video-intel xserver-xorg-video-mach64
30522 xserver-xorg-video-mga xserver-xorg-video-neomagic
30523 xserver-xorg-video-nsc xserver-xorg-video-nv
30524 xserver-xorg-video-openchrome xserver-xorg-video-r128
30525 xserver-xorg-video-radeon xserver-xorg-video-radeonhd
30526 xserver-xorg-video-rendition xserver-xorg-video-s3
30527 xserver-xorg-video-s3virge xserver-xorg-video-savage
30528 xserver-xorg-video-siliconmotion xserver-xorg-video-sis
30529 xserver-xorg-video-sisusb xserver-xorg-video-tdfx
30530 xserver-xorg-video-tga xserver-xorg-video-trident
30531 xserver-xorg-video-tseng xserver-xorg-video-v4l
30532 xserver-xorg-video-vesa xserver-xorg-video-vga
30533 xserver-xorg-video-vmware xserver-xorg-video-voodoo xulrunner-1.9</p>
30534
30535 <p><b>aptitude kde 192</b>
30536 <br>bluez-utils cpp-4.3 cupsddk-drivers cvs dcoprss dhcdbd
30537 djvulibre-desktop dosfstools eyesapplet fifteenapplet finger gettext
30538 ghostscript-x imlib-base imlib11 indi kandy karm kasteroids
30539 kaudiocreator kbackgammon kbstate kcoloredit kcontrol kcron kdat
30540 kdeadmin-kfile-plugins kdeartwork-misc kdeartwork-theme-window
30541 kdebase-bin-kde3 kdebase-kio-plugins kdeedu-data
30542 kdegraphics-kfile-plugins kdelirc kdemultimedia-kappfinder-data
30543 kdemultimedia-kfile-plugins kdenetwork-kfile-plugins
30544 kdepim-kfile-plugins kdepim-kio-plugins kdeprint kdesktop kdessh
30545 kdict kdnssd kdvi kedit keduca kenolaba kfax kfaxview kfouleggs
30546 kghostview khelpcenter khexedit kiconedit kitchensync klatin
30547 klickety kmailcvt kmenuedit kmid kmilo kmoon kmrml kodo kolourpaint
30548 kooka korn kpager kpdf kpercentage kpf kpilot kpoker kpovmodeler
30549 krec kregexpeditor ksayit ksim ksirc ksirtet ksmiletris ksmserver
30550 ksnake ksokoban ksplash ksvg ksysv ktip ktnef kuickshow kverbos
30551 kview kviewshell kvoctrain kwifimanager kwin kwin4 kworldclock
30552 kxsldbg libakode2 libao2 libarts1-akode libarts1-audiofile
30553 libarts1-mpeglib libarts1-xine libavahi-compat-libdnssd1
30554 libavahi-core5 libavc1394-0 libavcodec51 libbluetooth2
30555 libboost-python1.34.1 libcucul0 libcurl3 libcvsservice0 libdatrie0
30556 libdirectfb-1.0-0 libdjvulibre21 libdvdread3 libfaad0 libfreebob0
30557 libgail-common libgd2-noxpm libgraphviz4 libgsmme1c2a libgtkhtml2-0
30558 libicu38 libiec61883-0 libindex0 libiw29 libk3b3 libkcal2b libkcddb1
30559 libkdeedu3 libkdepim1a libkgantt0 libkiten1 libkleopatra1 libkmime2
30560 libkpathsea4 libkpimexchange1 libkpimidentities1 libkscan1
30561 libksieve0 libktnef1 liblockdev1 libltdl3 libmagick10 libmimelib1c2a
30562 libmozjs1d libmpcdec3 libneon27 libnm-util0 libopensync0 libpisock9
30563 libpoppler-glib3 libpoppler-qt2 libpoppler3 libraw1394-8 libsmbios2
30564 libssh2-1 libsuitesparse-3.1.0 libtalloc1 libtiff-tools
30565 libxalan2-java libxalan2-java-gcj libxcb-xlib0 libxerces2-java
30566 libxerces2-java-gcj libxtrap6 mpeglib networkstatus
30567 openoffice.org-writer2latex pmount poster psutils quanta quanta-data
30568 superkaramba svgalibg1 tex-common texlive-base texlive-base-bin
30569 texlive-common texlive-doc-base texlive-fonts-recommended
30570 xserver-xorg-video-cyrix xserver-xorg-video-imstt
30571 xserver-xorg-video-nsc xserver-xorg-video-v4l xserver-xorg-video-vga
30572 xulrunner-1.9</p>
30573
30574
30575 </div>
30576 <div class="tags">
30577
30578
30579 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>.
30580
30581
30582 </div>
30583 </div>
30584 <div class="padding"></div>
30585
30586 <div class="entry">
30587 <div class="title">
30588 <a href="http://people.skolelinux.org/pere/blog/Automatic_upgrade_testing_from_Lenny_to_Squeeze.html">Automatic upgrade testing from Lenny to Squeeze</a>
30589 </div>
30590 <div class="date">
30591 11th June 2010
30592 </div>
30593 <div class="body">
30594 <p>The last few days I have done some upgrade testing in Debian, to
30595 see if the upgrade from Lenny to Squeeze will go smoothly. A few bugs
30596 have been discovered and reported in the process
30597 (<a href="http://bugs.debian.org/585410">#585410</a> in nagios3-cgi,
30598 <a href="http://bugs.debian.org/584879">#584879</a> already fixed in
30599 enscript and <a href="http://bugs.debian.org/584861">#584861</a> in
30600 kdebase-workspace-data), and to get a more regular testing going on, I
30601 am working on a script to automate the test.</p>
30602
30603 <p>The idea is to create a Lenny chroot and use tasksel to install a
30604 Gnome or KDE desktop installation inside the chroot before upgrading
30605 it. To ensure no services are started in the chroot, a policy-rc.d
30606 script is inserted. To make sure tasksel believe it is to install a
30607 desktop on a laptop, the tasksel tests are replaced in the chroot
30608 (only acceptable because this is a throw-away chroot).</p>
30609
30610 <p>A naive upgrade from Lenny to Squeeze using aptitude dist-upgrade
30611 currently always fail because udev refuses to upgrade with the kernel
30612 in Lenny, so to avoid that problem the file /etc/udev/kernel-upgrade
30613 is created. The bug report
30614 <a href="http://bugs.debian.org/566000">#566000</a> make me suspect
30615 this problem do not trigger in a chroot, but I touch the file anyway
30616 to make sure the upgrade go well. Testing on virtual and real
30617 hardware have failed me because of udev so far, and creating this file
30618 do the trick in such settings anyway. This is a
30619 <a href="http://www.linuxquestions.org/questions/debian-26/failed-dist-upgrade-due-to-udev-config_sysfs_deprecated-nonsense-804130/">known
30620 issue</a> and the current udev behaviour is intended by the udev
30621 maintainer because he lack the resources to rewrite udev to keep
30622 working with old kernels or something like that. I really wish the
30623 udev upstream would keep udev backwards compatible, to avoid such
30624 upgrade problem, but given that they fail to do so, I guess
30625 documenting the way out of this mess is the best option we got for
30626 Debian Squeeze.</p>
30627
30628 <p>Anyway, back to the task at hand, testing upgrades. This test
30629 script, which I call <tt>upgrade-test</tt> for now, is doing the
30630 trick:</p>
30631
30632 <blockquote><pre>
30633 #!/bin/sh
30634 set -ex
30635
30636 if [ "$1" ] ; then
30637 desktop=$1
30638 else
30639 desktop=gnome
30640 fi
30641
30642 from=lenny
30643 to=squeeze
30644
30645 exec &lt; /dev/null
30646 unset LANG
30647 mirror=http://ftp.skolelinux.org/debian
30648 tmpdir=chroot-$from-upgrade-$to-$desktop
30649 fuser -mv .
30650 debootstrap $from $tmpdir $mirror
30651 chroot $tmpdir aptitude update
30652 cat > $tmpdir/usr/sbin/policy-rc.d &lt;&lt;EOF
30653 #!/bin/sh
30654 exit 101
30655 EOF
30656 chmod a+rx $tmpdir/usr/sbin/policy-rc.d
30657 exit_cleanup() {
30658 umount $tmpdir/proc
30659 }
30660 mount -t proc proc $tmpdir/proc
30661 # Make sure proc is unmounted also on failure
30662 trap exit_cleanup EXIT INT
30663
30664 chroot $tmpdir aptitude -y install debconf-utils
30665
30666 # Make sure tasksel autoselection trigger. It need the test scripts
30667 # to return the correct answers.
30668 echo tasksel tasksel/desktop multiselect $desktop | \
30669 chroot $tmpdir debconf-set-selections
30670
30671 # Include the desktop and laptop task
30672 for test in desktop laptop ; do
30673 echo > $tmpdir/usr/lib/tasksel/tests/$test &lt;&lt;EOF
30674 #!/bin/sh
30675 exit 2
30676 EOF
30677 chmod a+rx $tmpdir/usr/lib/tasksel/tests/$test
30678 done
30679
30680 DEBIAN_FRONTEND=noninteractive
30681 DEBIAN_PRIORITY=critical
30682 export DEBIAN_FRONTEND DEBIAN_PRIORITY
30683 chroot $tmpdir tasksel --new-install
30684
30685 echo deb $mirror $to main > $tmpdir/etc/apt/sources.list
30686 chroot $tmpdir aptitude update
30687 touch $tmpdir/etc/udev/kernel-upgrade
30688 chroot $tmpdir aptitude -y dist-upgrade
30689 fuser -mv
30690 </pre></blockquote>
30691
30692 <p>I suspect it would be useful to test upgrades with both apt-get and
30693 with aptitude, but I have not had time to look at how they behave
30694 differently so far. I hope to get a cron job running to do the test
30695 regularly and post the result on the web. The Gnome upgrade currently
30696 work, while the KDE upgrade fail because of the bug in
30697 kdebase-workspace-data</p>
30698
30699 <p>I am not quite sure what kind of extract from the huge upgrade logs
30700 (KDE 167 KiB, Gnome 516 KiB) it make sense to include in this blog
30701 post, so I will refrain from trying. I can report that for Gnome,
30702 aptitude report 760 packages upgraded, 448 newly installed, 129 to
30703 remove and 1 not upgraded and 1024MB need to be downloaded while for
30704 KDE the same numbers are 702 packages upgraded, 507 newly installed,
30705 193 to remove and 0 not upgraded and 1117MB need to be downloaded</p>
30706
30707 <p>I am very happy to notice that the Gnome desktop + laptop upgrade
30708 is able to migrate to dependency based boot sequencing and parallel
30709 booting without a hitch. Was unsure if there were still bugs with
30710 packages failing to clean up their obsolete init.d script during
30711 upgrades, and no such problem seem to affect the Gnome desktop+laptop
30712 packages.</p>
30713
30714 </div>
30715 <div class="tags">
30716
30717
30718 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>.
30719
30720
30721 </div>
30722 </div>
30723 <div class="padding"></div>
30724
30725 <div class="entry">
30726 <div class="title">
30727 <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>
30728 </div>
30729 <div class="date">
30730 6th June 2010
30731 </div>
30732 <div class="body">
30733 <p>If Debian is to migrate to upstart on Linux, I expect some init.d
30734 scripts to migrate (some of) their operations to upstart job while
30735 keeping the init.d for hurd and kfreebsd. The packages with such
30736 needs will need a way to get their init.d scripts to behave
30737 differently when used with sysvinit and with upstart. Because of
30738 this, I had a look at the environment variables set when a init.d
30739 script is running under upstart, and when it is not.</p>
30740
30741 <p>With upstart, I notice these environment variables are set when a
30742 script is started from rcS.d/ (ignoring some irrelevant ones like
30743 COLUMNS):</p>
30744
30745 <blockquote><pre>
30746 DEFAULT_RUNLEVEL=2
30747 previous=N
30748 PREVLEVEL=
30749 RUNLEVEL=
30750 runlevel=S
30751 UPSTART_EVENTS=startup
30752 UPSTART_INSTANCE=
30753 UPSTART_JOB=rc-sysinit
30754 </pre></blockquote>
30755
30756 <p>With sysvinit, these environment variables are set for the same
30757 script.</p>
30758
30759 <blockquote><pre>
30760 INIT_VERSION=sysvinit-2.88
30761 previous=N
30762 PREVLEVEL=N
30763 RUNLEVEL=S
30764 runlevel=S
30765 </pre></blockquote>
30766
30767 <p>The RUNLEVEL and PREVLEVEL environment variables passed on from
30768 sysvinit are not set by upstart. Not sure if it is intentional or not
30769 to not be compatible with sysvinit in this regard.</p>
30770
30771 <p>For scripts needing to behave differently when upstart is used,
30772 looking for the UPSTART_JOB environment variable seem to be a good
30773 choice.</p>
30774
30775 </div>
30776 <div class="tags">
30777
30778
30779 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>.
30780
30781
30782 </div>
30783 </div>
30784 <div class="padding"></div>
30785
30786 <div class="entry">
30787 <div class="title">
30788 <a href="http://people.skolelinux.org/pere/blog/A_manual_for_standards_wars___.html">A manual for standards wars...</a>
30789 </div>
30790 <div class="date">
30791 6th June 2010
30792 </div>
30793 <div class="body">
30794 <p>Via the
30795 <a href="http://feedproxy.google.com/~r/robweir/antic-atom/~3/QzU4RgoAGMg/weekly-links-10.html">blog
30796 of Rob Weir</a> I came across the very interesting essay named
30797 <a href="http://faculty.haas.berkeley.edu/shapiro/wars.pdf">The Art of
30798 Standards Wars</a> (PDF 25 pages). I recommend it for everyone
30799 following the standards wars of today.</p>
30800
30801 </div>
30802 <div class="tags">
30803
30804
30805 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>.
30806
30807
30808 </div>
30809 </div>
30810 <div class="padding"></div>
30811
30812 <div class="entry">
30813 <div class="title">
30814 <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>
30815 </div>
30816 <div class="date">
30817 3rd June 2010
30818 </div>
30819 <div class="body">
30820 <p>When using sitesummary at a site to track machines, it is possible
30821 to get a list of the machine types in use thanks to the DMI
30822 information extracted from each machine. The script to do so is
30823 included in the sitesummary package, and here is example output from
30824 the Skolelinux build servers:</p>
30825
30826 <blockquote><pre>
30827 maintainer:~# /usr/lib/sitesummary/hardware-model-summary
30828 vendor count
30829 Dell Computer Corporation 1
30830 PowerEdge 1750 1
30831 IBM 1
30832 eserver xSeries 345 -[8670M1X]- 1
30833 Intel 2
30834 [no-dmi-info] 3
30835 maintainer:~#
30836 </pre></blockquote>
30837
30838 <p>The quality of the report depend on the quality of the DMI tables
30839 provided in each machine. Here there are Intel machines without model
30840 information listed with Intel as vendor and no model, and virtual Xen
30841 machines listed as [no-dmi-info]. One can add -l as a command line
30842 option to list the individual machines.</p>
30843
30844 <p>A larger list is
30845 <a href="http://narvikskolen.no/sitesummary/">available from the the
30846 city of Narvik</a>, which uses Skolelinux on all their shools and also
30847 provide the basic sitesummary report publicly. In their report there
30848 are ~1400 machines. I know they use both Ubuntu and Skolelinux on
30849 their machines, and as sitesummary is available in both distributions,
30850 it is trivial to get all of them to report to the same central
30851 collector.</p>
30852
30853 </div>
30854 <div class="tags">
30855
30856
30857 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>.
30858
30859
30860 </div>
30861 </div>
30862 <div class="padding"></div>
30863
30864 <div class="entry">
30865 <div class="title">
30866 <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>
30867 </div>
30868 <div class="date">
30869 1st June 2010
30870 </div>
30871 <div class="body">
30872 <p>It is strange to watch how a bug in Debian causing KDM to fail to
30873 start at boot when an NVidia video card is used is handled. The
30874 problem seem to be that the nvidia X.org driver uses a long time to
30875 initialize, and this duration is longer than kdm is configured to
30876 wait.</p>
30877
30878 <p>I came across two bugs related to this issue,
30879 <a href="http://bugs.debian.org/583312">#583312</a> initially filed
30880 against initscripts and passed on to nvidia-glx when it became obvious
30881 that the nvidia drivers were involved, and
30882 <a href="http://bugs.debian.org/524751">#524751</a> initially filed against
30883 kdm and passed on to src:nvidia-graphics-drivers for unknown reasons.</p>
30884
30885 <p>To me, it seem that no-one is interested in actually solving the
30886 problem nvidia video card owners experience and make sure the Debian
30887 distribution work out of the box for these users. The nvidia driver
30888 maintainers expect kdm to be set up to wait longer, while kdm expect
30889 the nvidia driver maintainers to fix the driver to start faster, and
30890 while they wait for each other I guess the users end up switching to a
30891 distribution that work for them. I have no idea what the solution is,
30892 but I am pretty sure that waiting for each other is not it.</p>
30893
30894 <p>I wonder why we end up handling bugs this way.</p>
30895
30896 </div>
30897 <div class="tags">
30898
30899
30900 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>.
30901
30902
30903 </div>
30904 </div>
30905 <div class="padding"></div>
30906
30907 <div class="entry">
30908 <div class="title">
30909 <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>
30910 </div>
30911 <div class="date">
30912 27th May 2010
30913 </div>
30914 <div class="body">
30915 <p>A few days ago, parallel booting was enabled in Debian/testing.
30916 The feature seem to hold up pretty well, but three fairly serious
30917 issues are known and should be solved:
30918
30919 <p><ul>
30920
30921 <li>The wicd package seen to
30922 <a href="http://bugs.debian.org/508289">break NFS mounting</a> and
30923 <a href="http://bugs.debian.org/581586">network setup</a> when
30924 parallel booting is enabled. No idea why, but the wicd maintainer
30925 seem to be on the case.</li>
30926
30927 <li>The nvidia X driver seem to
30928 <a href="http://bugs.debian.org/583312">have a race condition</a>
30929 triggered more easily when parallel booting is in effect. The
30930 maintainer is on the case.</li>
30931
30932 <li>The sysv-rc package fail to properly enable dependency based boot
30933 sequencing (the shutdown is broken) when old file-rc users
30934 <a href="http://bugs.debian.org/575080">try to switch back</a> to
30935 sysv-rc. One way to solve it would be for file-rc to create
30936 /etc/init.d/.legacy-bootordering, and another is to try to make
30937 sysv-rc more robust. Will investigate some more and probably upload a
30938 workaround in sysv-rc to help those trying to move from file-rc to
30939 sysv-rc get a working shutdown.</li>
30940
30941 </ul></p>
30942
30943 <p>All in all not many surprising issues, and all of them seem
30944 solvable before Squeeze is released. In addition to these there are
30945 some packages with bugs in their dependencies and run level settings,
30946 which I expect will be fixed in a reasonable time span.</p>
30947
30948 <p>If you report any problems with dependencies in init.d scripts to
30949 the BTS, please usertag the report to get it to show up at
30950 <a href="http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=initscripts-ng-devel@lists.alioth.debian.org">the
30951 list of usertagged bugs related to this</a>.</p>
30952
30953 <p>Update: Correct bug number to file-rc issue.</p>
30954
30955 </div>
30956 <div class="tags">
30957
30958
30959 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>.
30960
30961
30962 </div>
30963 </div>
30964 <div class="padding"></div>
30965
30966 <div class="entry">
30967 <div class="title">
30968 <a href="http://people.skolelinux.org/pere/blog/More_flexible_firmware_handling_in_debian_installer.html">More flexible firmware handling in debian-installer</a>
30969 </div>
30970 <div class="date">
30971 22nd May 2010
30972 </div>
30973 <div class="body">
30974 <p>After a long break from debian-installer development, I finally
30975 found time today to return to the project. Having to spend less time
30976 working dependency based boot in debian, as it is almost complete now,
30977 definitely helped freeing some time.</p>
30978
30979 <p>A while back, I ran into a problem while working on Debian Edu. We
30980 include some firmware packages on the Debian Edu CDs, those needed to
30981 get disk and network controllers working. Without having these
30982 firmware packages available during installation, it is impossible to
30983 install Debian Edu on the given machine, and because our target group
30984 are non-technical people, asking them to provide firmware packages on
30985 an external medium is a support pain. Initially, I expected it to be
30986 enough to include the firmware packages on the CD to get
30987 debian-installer to find and use them. This proved to be wrong.
30988 Next, I hoped it was enough to symlink the relevant firmware packages
30989 to some useful location on the CD (tried /cdrom/ and
30990 /cdrom/firmware/). This also proved to not work, and at this point I
30991 found time to look at the debian-installer code to figure out what was
30992 going to work.</p>
30993
30994 <p>The firmware loading code is in the hw-detect package, and a closer
30995 look revealed that it would only look for firmware packages outside
30996 the installation media, so the CD was never checked for firmware
30997 packages. It would only check USB sticks, floppies and other
30998 "external" media devices. Today I changed it to also look in the
30999 /cdrom/firmware/ directory on the mounted CD or DVD, which should
31000 solve the problem I ran into with Debian edu. I also changed it to
31001 look in /firmware/, to make sure the installer also find firmware
31002 provided in the initrd when booting the installer via PXE, to allow us
31003 to provide the same feature in the PXE setup included in Debian
31004 Edu.</p>
31005
31006 <p>To make sure firmware deb packages with a license questions are not
31007 activated without asking if the license is accepted, I extended
31008 hw-detect to look for preinst scripts in the firmware packages, and
31009 run these before activating the firmware during installation. The
31010 license question is asked using debconf in the preinst, so this should
31011 solve the issue for the firmware packages I have looked at so far.</p>
31012
31013 <p>If you want to discuss the details of these features, please
31014 contact us on debian-boot@lists.debian.org.</p>
31015
31016 </div>
31017 <div class="tags">
31018
31019
31020 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>.
31021
31022
31023 </div>
31024 </div>
31025 <div class="padding"></div>
31026
31027 <div class="entry">
31028 <div class="title">
31029 <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>
31030 </div>
31031 <div class="date">
31032 19th May 2010
31033 </div>
31034 <div class="body">
31035 <p>Today, the last piece of the puzzle for roaming laptops in Debian
31036 Edu finally entered the Debian archive. Today, the new
31037 <a href="http://packages.qa.debian.org/libp/libpam-mklocaluser.html">libpam-mklocaluser</a>
31038 package was accepted. Two days ago, two other pieces was accepted
31039 into unstable. The
31040 <a href="http://packages.qa.debian.org/p/pam-python.html">pam-python</a>
31041 package needed by libpam-mklocaluser, and the
31042 <a href="http://packages.qa.debian.org/s/sssd.html">sssd</a> package
31043 passed NEW on Monday. In addition, the
31044 <a href="http://packages.qa.debian.org/libp/libpam-ccreds.html">libpam-ccreds</a>
31045 package we need is in experimental (version 10-4) since Saturday, and
31046 hopefully will be moved to unstable soon.</p>
31047
31048 <p>This collection of packages allow for two different setups for
31049 roaming laptops. The traditional setup would be using libpam-ccreds,
31050 nscd and libpam-mklocaluser with LDAP or Kerberos authentication,
31051 which should work out of the box if the configuration changes proposed
31052 for nscd in <a href="http://bugs.debian.org/485282">BTS report
31053 #485282</a> is implemented. The alternative setup is to use sssd with
31054 libpam-mklocaluser to connect to LDAP or Kerberos and let sssd take
31055 care of the caching of passwords and group information.</p>
31056
31057 <p>I have so far been unable to get sssd to work with the LDAP server
31058 at the University, but suspect the issue is some SSL/GnuTLS related
31059 problem with the server certificate. I plan to update the Debian
31060 package to version 1.2, which is scheduled for next week, and hope to
31061 find time to make sure the next release will include both the
31062 Debian/Ubuntu specific patches. Upstream is friendly and responsive,
31063 and I am sure we will find a good solution.</p>
31064
31065 <p>The idea is to set up the roaming laptops to authenticate using
31066 LDAP or Kerberos and create a local user with home directory in /home/
31067 when a usre in LDAP logs in via KDM or GDM for the first time, and
31068 cache the password for offline checking, as well as caching group
31069 memberhips and other relevant LDAP information. The
31070 libpam-mklocaluser package was created to make sure the local home
31071 directory is in /home/, instead of /site/server/directory/ which would
31072 be the home directory if pam_mkhomedir was used. To avoid confusion
31073 with support requests and configuration, we do not want local laptops
31074 to have users in a path that is used for the same users home directory
31075 on the home directory servers.</p>
31076
31077 <p>One annoying problem with gdm is that it do not show the PAM
31078 message passed to the user from libpam-mklocaluser when the local user
31079 is created. Instead gdm simply reject the login with some generic
31080 message. The message is shown in kdm, ssh and login, so I guess it is
31081 a bug in gdm. Have not investigated if there is some other message
31082 type that can be used instead to get gdm to also show the message.</p>
31083
31084 <p>If you want to help out with implementing this for Debian Edu,
31085 please contact us on debian-edu@lists.debian.org.</p>
31086
31087 </div>
31088 <div class="tags">
31089
31090
31091 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>.
31092
31093
31094 </div>
31095 </div>
31096 <div class="padding"></div>
31097
31098 <div class="entry">
31099 <div class="title">
31100 <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>
31101 </div>
31102 <div class="date">
31103 14th May 2010
31104 </div>
31105 <div class="body">
31106 <p>Since this evening, parallel booting is the default in
31107 Debian/unstable for machines using dependency based boot sequencing.
31108 Apparently the testing of concurrent booting has been wider than
31109 expected, if I am to believe the
31110 <a href="http://lists.debian.org/debian-devel/2010/05/msg00122.html">input
31111 on debian-devel@</a>, and I concluded a few days ago to move forward
31112 with the feature this weekend, to give us some time to detect any
31113 remaining problems before Squeeze is frozen. If serious problems are
31114 detected, it is simple to change the default back to sequential boot.
31115 The upload of the new sysvinit package also activate a new upstream
31116 version.</p>
31117
31118 More information about
31119 <a href="http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot">dependency
31120 based boot sequencing</a> is available from the Debian wiki. It is
31121 currently possible to disable parallel booting when one run into
31122 problems caused by it, by adding this line to /etc/default/rcS:</p>
31123
31124 <blockquote><pre>
31125 CONCURRENCY=none
31126 </pre></blockquote>
31127
31128 <p>If you report any problems with dependencies in init.d scripts to
31129 the BTS, please usertag the report to get it to show up at
31130 <a href="http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=initscripts-ng-devel@lists.alioth.debian.org">the
31131 list of usertagged bugs related to this</a>.</p>
31132
31133 </div>
31134 <div class="tags">
31135
31136
31137 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>.
31138
31139
31140 </div>
31141 </div>
31142 <div class="padding"></div>
31143
31144 <div class="entry">
31145 <div class="title">
31146 <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>
31147 </div>
31148 <div class="date">
31149 14th May 2010
31150 </div>
31151 <div class="body">
31152 <p>In the recent Debian Edu versions, the
31153 <a href="http://wiki.debian.org/DebianEdu/HowTo/SiteSummary">sitesummary
31154 system</a> is used to keep track of the machines in the school
31155 network. Each machine will automatically report its status to the
31156 central server after boot and once per night. The network setup is
31157 also reported, and using this information it is possible to get the
31158 MAC address of all network interfaces in the machines. This is useful
31159 to update the DHCP configuration.</p>
31160
31161 <p>To give some idea how to use sitesummary, here is a one-liner to
31162 ist all MAC addresses of all machines reporting to sitesummary. Run
31163 this on the collector host:</p>
31164
31165 <blockquote><pre>
31166 perl -MSiteSummary -e 'for_all_hosts(sub { print join(" ", get_macaddresses(shift)), "\n"; });'
31167 </pre></blockquote>
31168
31169 <p>This will list all MAC addresses assosiated with all machine, one
31170 line per machine and with space between the MAC addresses.</p>
31171
31172 <p>To allow system administrators easier job at adding static DHCP
31173 addresses for hosts, it would be possible to extend this to fetch
31174 machine information from sitesummary and update the DHCP and DNS
31175 tables in LDAP using this information. Such tool is unfortunately not
31176 written yet.</p>
31177
31178 </div>
31179 <div class="tags">
31180
31181
31182 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>.
31183
31184
31185 </div>
31186 </div>
31187 <div class="padding"></div>
31188
31189 <div class="entry">
31190 <div class="title">
31191 <a href="http://people.skolelinux.org/pere/blog/systemd__an_interesting_alternative_to_upstart.html">systemd, an interesting alternative to upstart</a>
31192 </div>
31193 <div class="date">
31194 13th May 2010
31195 </div>
31196 <div class="body">
31197 <p>The last few days a new boot system called
31198 <a href="http://www.freedesktop.org/wiki/Software/systemd">systemd</a>
31199 has been
31200 <a href="http://0pointer.de/blog/projects/systemd.html">introduced</a>
31201
31202 to the free software world. I have not yet had time to play around
31203 with it, but it seem to be a very interesting alternative to
31204 <a href="http://upstart.ubuntu.com/">upstart</a>, and might prove to be
31205 a good alternative for Debian when we are able to switch to an event
31206 based boot system. Tollef is
31207 <a href="http://bugs.debian.org/580814">in the process</a> of getting
31208 systemd into Debian, and I look forward to seeing how well it work. I
31209 like the fact that systemd handles init.d scripts with dependency
31210 information natively, allowing them to run in parallel where upstart
31211 at the moment do not.</p>
31212
31213 <p>Unfortunately do systemd have the same problem as upstart regarding
31214 platform support. It only work on recent Linux kernels, and also need
31215 some new kernel features enabled to function properly. This means
31216 kFreeBSD and Hurd ports of Debian will need a port or a different boot
31217 system. Not sure how that will be handled if systemd proves to be the
31218 way forward.</p>
31219
31220 <p>In the mean time, based on the
31221 <a href="http://lists.debian.org/debian-devel/2010/05/msg00122.html">input
31222 on debian-devel@</a> regarding parallel booting in Debian, I have
31223 decided to enable full parallel booting as the default in Debian as
31224 soon as possible (probably this weekend or early next week), to see if
31225 there are any remaining serious bugs in the init.d dependencies. A
31226 new version of the sysvinit package implementing this change is
31227 already in experimental. If all go well, Squeeze will be released
31228 with parallel booting enabled by default.</p>
31229
31230 </div>
31231 <div class="tags">
31232
31233
31234 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>.
31235
31236
31237 </div>
31238 </div>
31239 <div class="padding"></div>
31240
31241 <div class="entry">
31242 <div class="title">
31243 <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>
31244 </div>
31245 <div class="date">
31246 6th May 2010
31247 </div>
31248 <div class="body">
31249 <p>These days, the init.d script dependencies in Squeeze are quite
31250 complete, so complete that it is actually possible to run all the
31251 init.d scripts in parallell based on these dependencies. If you want
31252 to test your Squeeze system, make sure
31253 <a href="http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot">dependency
31254 based boot sequencing</a> is enabled, and add this line to
31255 /etc/default/rcS:</p>
31256
31257 <blockquote><pre>
31258 CONCURRENCY=makefile
31259 </pre></blockquote>
31260
31261 <p>That is it. It will cause sysv-rc to use the startpar tool to run
31262 scripts in parallel using the dependency information stored in
31263 /etc/init.d/.depend.boot, /etc/init.d/.depend.start and
31264 /etc/init.d/.depend.stop to order the scripts. Startpar is configured
31265 to try to start the kdm and gdm scripts as early as possible, and will
31266 start the facilities required by kdm or gdm as early as possible to
31267 make this happen.</p>
31268
31269 <p>Give it a try, and see if you like the result. If some services
31270 fail to start properly, it is most likely because they have incomplete
31271 init.d script dependencies in their startup script (or some of their
31272 dependent scripts have incomplete dependencies). Report bugs and get
31273 the package maintainers to fix it. :)</p>
31274
31275 <p>Running scripts in parallel could be the default in Debian when we
31276 manage to get the init.d script dependencies complete and correct. I
31277 expect we will get there in Squeeze+1, if we get manage to test and
31278 fix the remaining issues.</p>
31279
31280 <p>If you report any problems with dependencies in init.d scripts to
31281 the BTS, please usertag the report to get it to show up at
31282 <a href="http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=initscripts-ng-devel@lists.alioth.debian.org">the
31283 list of usertagged bugs related to this</a>.</p>
31284
31285 </div>
31286 <div class="tags">
31287
31288
31289 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>.
31290
31291
31292 </div>
31293 </div>
31294 <div class="padding"></div>
31295
31296 <div class="entry">
31297 <div class="title">
31298 <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>
31299 </div>
31300 <div class="date">
31301 2nd May 2010
31302 </div>
31303 <div class="body">
31304 <p>One interesting feature in Active Directory, is the ability to
31305 create a new user with an expired password, and thus force the user to
31306 change the password on the first login attempt.</p>
31307
31308 <p>I'm not quite sure how to do that with the LDAP setup in Debian
31309 Edu, but did some initial testing with a local account. The account
31310 and password aging information is available in /etc/shadow, but
31311 unfortunately, it is not possible to specify an expiration time for
31312 passwords, only a maximum age for passwords.</p>
31313
31314 <p>A freshly created account (using adduser test) will have these
31315 settings in /etc/shadow:</p>
31316
31317 <blockquote><pre>
31318 root@tjener:~# chage -l test
31319 Last password change : May 02, 2010
31320 Password expires : never
31321 Password inactive : never
31322 Account expires : never
31323 Minimum number of days between password change : 0
31324 Maximum number of days between password change : 99999
31325 Number of days of warning before password expires : 7
31326 root@tjener:~#
31327 </pre></blockquote>
31328
31329 <p>The only way I could come up with to create a user with an expired
31330 account, is to change the date of the last password change to the
31331 lowest value possible (January 1th 1970), and the maximum password age
31332 to the difference in days between that date and today. To make it
31333 simple, I went for 30 years (30 * 365 = 10950) and January 2th (to
31334 avoid testing if 0 is a valid value).</p>
31335
31336 <p>After using these commands to set it up, it seem to work as
31337 intended:</p>
31338
31339 <blockquote><pre>
31340 root@tjener:~# chage -d 1 test; chage -M 10950 test
31341 root@tjener:~# chage -l test
31342 Last password change : Jan 02, 1970
31343 Password expires : never
31344 Password inactive : never
31345 Account expires : never
31346 Minimum number of days between password change : 0
31347 Maximum number of days between password change : 10950
31348 Number of days of warning before password expires : 7
31349 root@tjener:~#
31350 </pre></blockquote>
31351
31352 <p>So far I have tested this with ssh and console, and kdm (in
31353 Squeeze) login, and all ask for a new password before login in the
31354 user (with ssh, I was thrown out and had to log in again).</p>
31355
31356 <p>Perhaps we should set up something similar for Debian Edu, to make
31357 sure only the user itself have the account password?</p>
31358
31359 <p>If you want to comment on or help out with implementing this for
31360 Debian Edu, please contact us on debian-edu@lists.debian.org.</p>
31361
31362 <p>Update 2010-05-02 17:20: Paul Tötterman tells me on IRC that the
31363 shadow(8) page in Debian/testing now state that setting the date of
31364 last password change to zero (0) will force the password to be changed
31365 on the first login. This was not mentioned in the manual in Lenny, so
31366 I did not notice this in my initial testing. I have tested it on
31367 Squeeze, and '<tt>chage -d 0 username</tt>' do work there. I have not
31368 tested it on Lenny yet.</p>
31369
31370 <p>Update 2010-05-02-19:05: Jim Paris tells me via email that an
31371 equivalent command to expire a password is '<tt>passwd -e
31372 username</tt>', which insert zero into the date of the last password
31373 change.</p>
31374
31375 </div>
31376 <div class="tags">
31377
31378
31379 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>.
31380
31381
31382 </div>
31383 </div>
31384 <div class="padding"></div>
31385
31386 <div class="entry">
31387 <div class="title">
31388 <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>
31389 </div>
31390 <div class="date">
31391 28th April 2010
31392 </div>
31393 <div class="body">
31394 <p>For some years now, I have wondered how we should handle laptops in
31395 Debian Edu. The Debian Edu infrastructure is mostly designed to
31396 handle stationary computers, and less suited for computers that come
31397 and go.</p>
31398
31399 <p>Now I finally believe I have an sensible idea on how to adjust
31400 Debian Edu for laptops, by introducing a new profile for them, for
31401 example called Roaming Workstations. Here are my thought on this.
31402 The setup would consist of the following:</p>
31403
31404 <ul>
31405
31406 <li>During installation, the user name of the owner / primary user of
31407 the laptop is requested and a local home directory is set up for
31408 the user, with uid and gid information fetched from the LDAP
31409 server. This allow the user to work also when offline. The
31410 central home directory can be available in a subdirectory on
31411 request, for example mounted via CIFS. It could be mounted
31412 automatically when a user log in while on the Debian Edu network,
31413 and unmounted when the machine is taken away (network down,
31414 hibernate, etc), it can be set up to do automatic mounting on
31415 request (using autofs), or perhaps some GUI button on the desktop
31416 can be used to access it when needed. Perhaps it is enough to use
31417 the fish protocol in KDE?</li>
31418
31419 <li>Password checking is set up to use LDAP or Kerberos
31420 authentication when the machine is on the Debian Edu network, and
31421 to cache the password for offline checking when the machine unable
31422 to reach the LDAP or Kerberos server. This can be done using
31423 <a href="http://www.padl.com/OSS/pam_ccreds.html">libpam-ccreds</a>
31424 or the Fedora developed
31425 <a href="https://fedoraproject.org/wiki/Features/SSSD">System
31426 Security Services Daemon</a> packages.</li>
31427
31428 <li>File synchronisation with the central home directory is set up
31429 using a shared directory in both the local and the central home
31430 directory, using unison.</li>
31431
31432 <li>Printing should be set up to print to all printers broadcasting
31433 their existence on the local network, and should then work out of
31434 the box with CUPS. For sites needing accurate printer quotas, some
31435 system with Kerberos authentication or printing via ssh could be
31436 implemented.</li>
31437
31438 <li>For users that should have local root access to their laptop,
31439 sudo should be used to allow this to the local user.</li>
31440
31441 <li>It would be nice if user and group information from LDAP is
31442 cached on the client, but given that there are entries for the
31443 local user and primary group in /etc/, it should not be needed.</li>
31444
31445 </ul>
31446
31447 <p>I believe all the pieces to implement this are in Debian/testing at
31448 the moment. If we work quickly, we should be able to get this ready
31449 in time for the Squeeze release to freeze. Some of the pieces need
31450 tweaking, like libpam-ccreds should get support for pam-auth-update
31451 (<a href="http://bugs.debian.org/566718">#566718</a>) and nslcd (or
31452 perhaps debian-edu-config) should get some integration code to stop
31453 its daemon when the LDAP server is unavailable to avoid long timeouts
31454 when disconnected from the net. If we get Kerberos enabled, we need
31455 to make sure we avoid long timeouts there too.</p>
31456
31457 <p>If you want to help out with implementing this for Debian Edu,
31458 please contact us on debian-edu@lists.debian.org.</p>
31459
31460 </div>
31461 <div class="tags">
31462
31463
31464 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>.
31465
31466
31467 </div>
31468 </div>
31469 <div class="padding"></div>
31470
31471 <div class="entry">
31472 <div class="title">
31473 <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>
31474 </div>
31475 <div class="date">
31476 19th April 2010
31477 </div>
31478 <div class="body">
31479 <p>The last few weeks i have had the pleasure of reading a
31480 thought-provoking collection of essays by Cory Doctorow, on topics
31481 touching copyright, virtual worlds, the future of man when the
31482 conscience mind can be duplicated into a computer and many more. The
31483 book titled "Content: Selected Essays on Technology, Creativity,
31484 Copyright, and the Future of the Future" is available with few
31485 restrictions on the web, for example from
31486 <a href="http://craphound.com/content/">his own site</a>. I read the
31487 epub-version from
31488 <a href="http://www.feedbooks.com/book/2883">feedbooks</a> using
31489 <a href="http://www.fbreader.org/">fbreader</a> and my N810. I
31490 strongly recommend this book.</p>
31491
31492 </div>
31493 <div class="tags">
31494
31495
31496 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>.
31497
31498
31499 </div>
31500 </div>
31501 <div class="padding"></div>
31502
31503 <div class="entry">
31504 <div class="title">
31505 <a href="http://people.skolelinux.org/pere/blog/Kerberos_for_Debian_Edu_Squeeze_.html">Kerberos for Debian Edu/Squeeze?</a>
31506 </div>
31507 <div class="date">
31508 14th April 2010
31509 </div>
31510 <div class="body">
31511 <p><a href="http://www.nuug.no/aktiviteter/20100413-kerberos/">Yesterdays
31512 NUUG presentation</a> about Kerberos was inspiring, and reminded me
31513 about the need to start using Kerberos in Skolelinux. Setting up a
31514 Kerberos server seem to be straight forward, and if we get this in
31515 place a long time before the Squeeze version of Debian freezes, we
31516 have a chance to migrate Skolelinux away from NFSv3 for the home
31517 directories, and over to an architecture where the infrastructure do
31518 not have to trust IP addresses and machines, and instead can trust
31519 users and cryptographic keys instead.</p>
31520
31521 <p>A challenge will be integration and administration. Is there a
31522 Kerberos implementation for Debian where one can control the
31523 administration access in Kerberos using LDAP groups? With it, the
31524 school administration will have to maintain access control using flat
31525 files on the main server, which give a huge potential for errors.</p>
31526
31527 <p>A related question I would like to know is how well Kerberos and
31528 pam-ccreds (offline password check) work together. Anyone know?</p>
31529
31530 <p>Next step will be to use Kerberos for access control in Lwat and
31531 Nagios. I have no idea how much work that will be to implement. We
31532 would also need to document how to integrate with Windows AD, as such
31533 shared network will require two Kerberos realms that need to cooperate
31534 to work properly.</p>
31535
31536 <p>I believe a good start would be to start using Kerberos on the
31537 skolelinux.no machines, and this way get ourselves experience with
31538 configuration and integration. A natural starting point would be
31539 setting up ldap.skolelinux.no as the Kerberos server, and migrate the
31540 rest of the machines from PAM via LDAP to PAM via Kerberos one at the
31541 time.</p>
31542
31543 <p>If you would like to contribute to get this working in Skolelinux,
31544 I recommend you to see the video recording from yesterdays NUUG
31545 presentation, and start using Kerberos at home. The video show show
31546 up in a few days.</p>
31547
31548 </div>
31549 <div class="tags">
31550
31551
31552 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>.
31553
31554
31555 </div>
31556 </div>
31557 <div class="padding"></div>
31558
31559 <div class="entry">
31560 <div class="title">
31561 <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>
31562 </div>
31563 <div class="date">
31564 6th March 2010
31565 </div>
31566 <div class="body">
31567 <p>6 years ago, as part of the Debian Edu development I am involved
31568 in, I asked for a hook in the kdm and gdm setup to run scripts as root
31569 when the user log out. A bug was submitted against the xfree86-common
31570 package in 2004 (<a href="http://bugs.debian.org/230422">#230422</a>),
31571 and revisited every time Debian Edu was working on a new release.
31572 Today, this finally paid off.</p>
31573
31574 <p>The framework for this feature was today commited to the git
31575 repositry for the xorg package, and the git repository for xdm has
31576 been updated to use this framework. Next on my agenda is to make sure
31577 kdm and gdm also add code to use this framework.</p>
31578
31579 <p>In Debian Edu, we want to ability to run commands as root when the
31580 user log out, to get rid of runaway processes and do general cleanup
31581 after a user. With this framework in place, we finally can do that in
31582 a generic way that work with all display managers using this
31583 framework. My goal is to get all display managers in Debian use it,
31584 similar to how they use the Xsession.d framework today.<p>
31585
31586 </div>
31587 <div class="tags">
31588
31589
31590 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>.
31591
31592
31593 </div>
31594 </div>
31595 <div class="padding"></div>
31596
31597 <div class="entry">
31598 <div class="title">
31599 <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>
31600 </div>
31601 <div class="date">
31602 11th February 2010
31603 </div>
31604 <div class="body">
31605 <p>On Tuesday, the Debian/Lenny based version of
31606 <a href="http://www.skolelinux.org/">Skolelinux</a> was finally
31607 shipped. This was a major leap forward for the project, and I am very
31608 pleased that we finally got the release wrapped up. Work on the first
31609 point release starts imediately, as we plan to get that one out a
31610 month after the major release, to include all fixes for bugs we found
31611 and fixed too late in the release process to include last Tuesday.</p>
31612
31613 <p>Perhaps it even is time for some partying?</p>
31614
31615 <p>After this first point release, my plan is to focus again on the
31616 next major release, based on Squeeze. We will try to get as many of
31617 the fixes we need into the official Debian packages before the freeze,
31618 and have just a few weeks or months to make it happen.</p>
31619
31620 </div>
31621 <div class="tags">
31622
31623
31624 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>.
31625
31626
31627 </div>
31628 </div>
31629 <div class="padding"></div>
31630
31631 <div class="entry">
31632 <div class="title">
31633 <a href="http://people.skolelinux.org/pere/blog/Automatic_Munin_and_Nagios_configuration.html">Automatic Munin and Nagios configuration</a>
31634 </div>
31635 <div class="date">
31636 27th January 2010
31637 </div>
31638 <div class="body">
31639 <p>One of the new features in the next Debian/Lenny based release of
31640 Debian Edu/Skolelinux, which is scheduled for release in the next few
31641 days, is automatic configuration of the service monitoring system
31642 Nagios. The previous release had automatic configuration of trend
31643 analysis using Munin, and this Lenny based release take that a step
31644 further.</p>
31645
31646 <p>When installing a Debian Edu Main-server, it is automatically
31647 configured as a Munin and Nagios server. In addition, it is
31648 configured to be a server for the
31649 <a href="http://wiki.debian.org/DebianEdu/HowTo/SiteSummary">SiteSummary
31650 system</a> I have written for use in Debian Edu. The SiteSummary
31651 system is inspired by a system used by the University of Oslo where I
31652 work. In short, the system provide a centralised collector of
31653 information about the computers on the network, and a client on each
31654 computer submitting information to this collector. This allow for
31655 automatic information on which packages are installed on each machine,
31656 which kernel the machines are using, what kind of configuration the
31657 packages got etc. This also allow us to automatically generate Munin
31658 and Nagios configuration.</p>
31659
31660 <p>All computers reporting to the sitesummary collector with the
31661 munin-node package installed is automatically enabled as a Munin
31662 client and graphs from the statistics collected from that machine show
31663 up automatically on http://www/munin/ on the Main-server.</p>
31664
31665 <p>All non-laptop computers reporting to the sitesummary collector are
31666 automatically monitored for network presence (ping and any network
31667 services detected). In addition, all computers (also laptops) with
31668 the nagios-nrpe-server package installed and configured the way
31669 sitesummary would configure it, are monitored for full disks, software
31670 raid status, swap free and other checks that need to run locally on
31671 the machine.</p>
31672
31673 <p>The result is that the administrator on a school using Debian Edu
31674 based on Lenny will be able to check the health of his installation
31675 with one look at the Nagios settings, without having to spend any time
31676 keeping the Nagios configuration up-to-date.</p>
31677
31678 <p>The only configuration one need to do to get Nagios up and running
31679 is to set the password used to get access via HTTP. The system
31680 administrator need to run "<tt>htpasswd /etc/nagios3/htpasswd.users
31681 nagiosadmin</tt>" to create a nagiosadmin user and set a password for
31682 it to be able to log into the Nagios web pages. After that,
31683 everything is taken care of.</p>
31684
31685 </div>
31686 <div class="tags">
31687
31688
31689 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>.
31690
31691
31692 </div>
31693 </div>
31694 <div class="padding"></div>
31695
31696 <div class="entry">
31697 <div class="title">
31698 <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>
31699 </div>
31700 <div class="date">
31701 12th August 2009
31702 </div>
31703 <div class="body">
31704 <p>Just for fun, I did a search right now on Google for a few file ODF
31705 and MS Office based formats (not to be mistaken for ISO or ECMA
31706 OOXML), to get an idea of their relative usage. I searched using
31707 'filetype:odt' and equvalent terms, and got these results:</P>
31708
31709 <table>
31710 <tr><th>Type</th><th>ODF</th><th>MS Office</th></tr>
31711 <tr><td>Tekst</td> <td>odt:282000</td> <td>docx:308000</td></tr>
31712 <tr><td>Presentasjon</td> <td>odp:75600</td> <td>pptx:183000</td></tr>
31713 <tr><td>Regneark</td> <td>ods:26500 </td> <td>xlsx:145000</td></tr>
31714 </table>
31715
31716 <p>Next, I added a 'site:no' limit to get the numbers for Norway, and
31717 got these numbers:</p>
31718
31719 <table>
31720 <tr><th>Type</th><th>ODF</th><th>MS Office</th></tr>
31721 <tr><td>Tekst</td> <td>odt:2480 </td> <td>docx:4460</td></tr>
31722 <tr><td>Presentasjon</td> <td>odp:299 </td> <td>pptx:741</td></tr>
31723 <tr><td>Regneark</td> <td>ods:187 </td> <td>xlsx:372</td></tr>
31724 </table>
31725
31726 <p>I wonder how these numbers change over time.</p>
31727
31728 <p>I am aware of Google returning different results and numbers based
31729 on where the search is done, so I guess these numbers will differ if
31730 they are conduced in another country. Because of this, I did the same
31731 search from a machine in California, USA, a few minutes after the
31732 search done from a machine here in Norway.</p>
31733
31734
31735 <table>
31736 <tr><th>Type</th><th>ODF</th><th>MS Office</th></tr>
31737 <tr><td>Tekst</td> <td>odt:129000</td> <td>docx:308000</td></tr>
31738 <tr><td>Presentasjon</td> <td>odp:44200</td> <td>pptx:93900</td></tr>
31739 <tr><td>Regneark</td> <td>ods:26500 </td> <td>xlsx:82400</td></tr>
31740 </table>
31741
31742 <p>And with 'site:no':
31743
31744 <table>
31745 <tr><th>Type</th><th>ODF</th><th>MS Office</th></tr>
31746 <tr><td>Tekst</td> <td>odt:2480</td> <td>docx:3410</td></tr>
31747 <tr><td>Presentasjon</td> <td>odp:175</td> <td>pptx:604</td></tr>
31748 <tr><td>Regneark</td> <td>ods:186 </td> <td>xlsx:296</td></tr>
31749 </table>
31750
31751 <p>Interesting difference, not sure what to conclude from these
31752 numbers.</p>
31753
31754 </div>
31755 <div class="tags">
31756
31757
31758 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>.
31759
31760
31761 </div>
31762 </div>
31763 <div class="padding"></div>
31764
31765 <div class="entry">
31766 <div class="title">
31767 <a href="http://people.skolelinux.org/pere/blog/ISO_still_hope_to_fix_OOXML.html">ISO still hope to fix OOXML</a>
31768 </div>
31769 <div class="date">
31770 8th August 2009
31771 </div>
31772 <div class="body">
31773 <p>According to <a
31774 href="http://twerner.blogspot.com/2009/08/defects-of-office-open-xml.html">a
31775 blog post from Torsten Werner</a>, the current defect report for ISO
31776 29500 (ISO OOXML) is 809 pages. His interesting point is that the
31777 defect report is 71 pages more than the full ODF 1.1 specification.
31778 Personally I find it more interesting that ISO still believe ISO OOXML
31779 can be fixed in ISO. Personally, I believe it is broken beyon repair,
31780 and I completely lack any trust in ISO for being able to get anywhere
31781 close to solving the problems. I was part of the Norwegian committee
31782 involved in the OOXML fast track process, and was not impressed with
31783 Standard Norway and ISO in how they handled it.</p>
31784
31785 <p>These days I focus on ODF instead, which seem like a specification
31786 with the future ahead of it. We are working in NUUG to organise a ODF
31787 seminar this autumn.</p>
31788
31789 </div>
31790 <div class="tags">
31791
31792
31793 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>.
31794
31795
31796 </div>
31797 </div>
31798 <div class="padding"></div>
31799
31800 <div class="entry">
31801 <div class="title">
31802 <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>
31803 </div>
31804 <div class="date">
31805 27th July 2009
31806 </div>
31807 <div class="body">
31808 <p>Since this evening, with the upload of sysvinit version 2.87dsf-2,
31809 and the upload of insserv version 1.12.0-10 yesterday, Debian unstable
31810 have been migrated to using dependency based boot sequencing. This
31811 conclude work me and others have been doing for the last three days.
31812 It feels great to see this finally part of the default Debian
31813 installation. Now we just need to weed out the last few problems that
31814 are bound to show up, to get everything ready for Squeeze.</p>
31815
31816 <p>The next step is migrating /sbin/init from sysvinit to upstart, and
31817 fixing the more fundamental problem of handing the event based
31818 non-predictable kernel in the early boot.</p>
31819
31820 </div>
31821 <div class="tags">
31822
31823
31824 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>.
31825
31826
31827 </div>
31828 </div>
31829 <div class="padding"></div>
31830
31831 <div class="entry">
31832 <div class="title">
31833 <a href="http://people.skolelinux.org/pere/blog/Taking_over_sysvinit_development.html">Taking over sysvinit development</a>
31834 </div>
31835 <div class="date">
31836 22nd July 2009
31837 </div>
31838 <div class="body">
31839 <p>After several years of frustration with the lack of activity from
31840 the existing sysvinit upstream developer, I decided a few weeks ago to
31841 take over the package and become the new upstream. The number of
31842 patches to track for the Debian package was becoming a burden, and the
31843 lack of synchronization between the distribution made it hard to keep
31844 the package up to date.</p>
31845
31846 <p>On the new sysvinit team is the SuSe maintainer Dr. Werner Fink,
31847 and my Debian co-maintainer Kel Modderman. About 10 days ago, I made
31848 a new upstream tarball with version number 2.87dsf (for Debian, SuSe
31849 and Fedora), based on the patches currently in use in these
31850 distributions. We Debian maintainers plan to move to this tarball as
31851 the new upstream as soon as we find time to do the merge. Since the
31852 new tarball was created, we agreed with Werner at SuSe to make a new
31853 upstream project at <a href="http://savannah.nongnu.org/">Savannah</a>, and continue
31854 development there. The project is registered and currently waiting
31855 for approval by the Savannah administrators, and as soon as it is
31856 approved, we will import the old versions from svn and continue
31857 working on the future release.</p>
31858
31859 <p>It is a bit ironic that this is done now, when some of the involved
31860 distributions are moving to upstart as a syvinit replacement.</p>
31861
31862 </div>
31863 <div class="tags">
31864
31865
31866 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>.
31867
31868
31869 </div>
31870 </div>
31871 <div class="padding"></div>
31872
31873 <div class="entry">
31874 <div class="title">
31875 <a href="http://people.skolelinux.org/pere/blog/Debian_boots_quicker_and_quicker.html">Debian boots quicker and quicker</a>
31876 </div>
31877 <div class="date">
31878 24th June 2009
31879 </div>
31880 <div class="body">
31881 <p>I spent Monday and tuesday this week in London with a lot of the
31882 people involved in the boot system on Debian and Ubuntu, to see if we
31883 could find more ways to speed up the boot system. This was an Ubuntu
31884 funded
31885 <a href="https://wiki.ubuntu.com/FoundationsTeam/BootPerformance/DebianUbuntuSprint">developer
31886 gathering</a>. It was quite productive. We also discussed the future
31887 of boot systems, and ways to handle the increasing number of boot
31888 issues introduced by the Linux kernel becoming more and more
31889 asynchronous and event base. The Ubuntu approach using udev and
31890 upstart might be a good way forward. Time will show.</p>
31891
31892 <p>Anyway, there are a few ways at the moment to speed up the boot
31893 process in Debian. All of these should be applied to get a quick
31894 boot:</p>
31895
31896 <ul>
31897
31898 <li>Use dash as /bin/sh.</li>
31899
31900 <li>Disable the init.d/hwclock*.sh scripts and make sure the hardware
31901 clock is in UTC.</li>
31902
31903 <li>Install and activate the insserv package to enable
31904 <a href="http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot">dependency
31905 based boot sequencing</a>, and enable concurrent booting.</li>
31906
31907 </ul>
31908
31909 These points are based on the Google summer of code work done by
31910 <a href="http://initscripts-ng.alioth.debian.org/soc2006-bootsystem/">Carlos
31911 Villegas</a>.
31912
31913 <p>Support for makefile-style concurrency during boot was uploaded to
31914 unstable yesterday. When we tested it, we were able to cut 6 seconds
31915 from the boot sequence. It depend on very correct dependency
31916 declaration in all init.d scripts, so I expect us to find edge cases
31917 where the dependences in some scripts are slightly wrong when we start
31918 using this.</p>
31919
31920 <p>On our IRC channel for this effort, #pkg-sysvinit, a new idea was
31921 introduced by Raphael Geissert today, one that could affect the
31922 startup speed as well. Instead of starting some scripts concurrently
31923 from rcS.d/ and another set of scripts from rc2.d/, it would be
31924 possible to run a of them in the same process. A quick way to test
31925 this would be to enable insserv and run 'mv /etc/rc2.d/S* /etc/rcS.d/;
31926 insserv'. Will need to test if that work. :)</p>
31927
31928 </div>
31929 <div class="tags">
31930
31931
31932 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>.
31933
31934
31935 </div>
31936 </div>
31937 <div class="padding"></div>
31938
31939 <div class="entry">
31940 <div class="title">
31941 <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>
31942 </div>
31943 <div class="date">
31944 2nd May 2009
31945 </div>
31946 <div class="body">
31947 <p>There are two software projects that have had huge influence on the
31948 quality of free software, and I wanted to mention both in case someone
31949 do not yet know them.</p>
31950
31951 <p>The first one is <a href="http://valgrind.org/">valgrind</a>, a
31952 tool to detect and expose errors in the memory handling of programs.
31953 It is easy to use, all one need to do is to run 'valgrind program',
31954 and it will report any problems on stdout. It is even better if the
31955 program include debug information. With debug information, it is able
31956 to report the source file name and line number where the problem
31957 occurs. It can report things like 'reading past memory block in file
31958 X line N, the memory block was allocated in file Y, line M', and
31959 'using uninitialised value in control logic'. This tool has made it
31960 trivial to investigate reproducible crash bugs in programs, and have
31961 reduced the number of this kind of bugs in free software a lot.
31962
31963 <p>The second one is
31964 <a href="http://en.wikipedia.org/wiki/Coverity">Coverity</a> which is
31965 a source code checker. It is able to process the source of a program
31966 and find problems in the logic without running the program. It
31967 started out as the Stanford Checker and became well known when it was
31968 used to find bugs in the Linux kernel. It is now a commercial tool
31969 and the company behind it is running
31970 <a href="http://www.scan.coverity.com/">a community service</a> for the
31971 free software community, where a lot of free software projects get
31972 their source checked for free. Several thousand defects have been
31973 found and fixed so far. It can find errors like 'lock L taken in file
31974 X line N is never released if exiting in line M', or 'the code in file
31975 Y lines O to P can never be executed'. The projects included in the
31976 community service project have managed to get rid of a lot of
31977 reliability problems thanks to Coverity.</p>
31978
31979 <p>I believe tools like this, that are able to automatically find
31980 errors in the source, are vital to improve the quality of software and
31981 make sure we can get rid of the crashing and failing software we are
31982 surrounded by today.</p>
31983
31984 </div>
31985 <div class="tags">
31986
31987
31988 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>.
31989
31990
31991 </div>
31992 </div>
31993 <div class="padding"></div>
31994
31995 <div class="entry">
31996 <div class="title">
31997 <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>
31998 </div>
31999 <div class="date">
32000 28th April 2009
32001 </div>
32002 <div class="body">
32003 <p>Julien Blache
32004 <a href="http://blog.technologeek.org/2009/04/12/214">claim that no
32005 patch is better than a useless patch</a>. I completely disagree, as a
32006 patch allow one to discuss a concrete and proposed solution, and also
32007 prove that the issue at hand is important enough for someone to spent
32008 time on fixing it. No patch do not provide any of these positive
32009 properties.</p>
32010
32011 </div>
32012 <div class="tags">
32013
32014
32015 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>.
32016
32017
32018 </div>
32019 </div>
32020 <div class="padding"></div>
32021
32022 <div class="entry">
32023 <div class="title">
32024 <a href="http://people.skolelinux.org/pere/blog/Recording_video_from_cron_using_VLC.html">Recording video from cron using VLC</a>
32025 </div>
32026 <div class="date">
32027 5th April 2009
32028 </div>
32029 <div class="body">
32030 <p>One think I have wanted to figure out for a along time is how to
32031 run vlc from cron to do recording of video streams on the net. The
32032 task is trivial with mplayer, but I do not really trust the security
32033 of mplayer (it crashes too often on strange input), and thus prefer
32034 vlc. I finally found a way to do it today. I spent an hour or so
32035 searching the web for recipes and reading the documentation. The
32036 hardest part was to get rid of the GUI window, but after finding the
32037 dummy interface, the command line finally presented itself:</p>
32038
32039 <blockquote><pre>URL=http://www.ping.uio.no/video/rms-oslo_2009.ogg
32040 SAVEFILE=rms.ogg
32041 DISPLAY= vlc -q $URL \
32042 --sout="#duplicate{dst=std{access=file,url='$SAVEFILE'},dst=nodisplay}" \
32043 --intf=dummy</pre></blockquote>
32044
32045 <p>The command stream the URL and store it in the SAVEFILE by
32046 duplicating the output stream to "nodisplay" and the file, using the
32047 dummy interface. The dummy interface and the nodisplay output make
32048 sure no X interface is needed.</p>
32049
32050 <p>The cron job then need to start this job with the appropriate URL
32051 and file name to save, sleep for the duration wanted, and then kill
32052 the vlc process with SIGTERM. Here is a complete script
32053 <tt>vlc-record</tt> to use from <tt>at</tt> or <tt>cron</tt>:</p>
32054
32055 <blockquote><pre>#!/bin/sh
32056 set -e
32057 URL="$1"
32058 SAVEFILE="$2"
32059 DURATION="$3"
32060 DISPLAY= vlc -q "$URL" \
32061 --sout="#duplicate{dst=std{access=file,url='$SAVEFILE'},dst=nodisplay}" \
32062 --intf=dummy < /dev/null > /dev/null 2>&1 &
32063 pid=$!
32064 sleep $DURATION
32065 kill $pid
32066 wait $pid</pre></blockquote>
32067
32068 </div>
32069 <div class="tags">
32070
32071
32072 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>.
32073
32074
32075 </div>
32076 </div>
32077 <div class="padding"></div>
32078
32079 <div class="entry">
32080 <div class="title">
32081 <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>
32082 </div>
32083 <div class="date">
32084 30th March 2009
32085 </div>
32086 <div class="body">
32087 <p>Where I work at the University of Oslo, one decision stand out as a
32088 very good one to form a long lived computer infrastructure. It is the
32089 simple one, lost by many in todays computer industry: Standardize on
32090 open network protocols and open exchange/storage formats, not applications.
32091 Applications come and go, while protocols and files tend to stay, and
32092 thus one want to make it easy to change application and vendor, while
32093 avoiding conversion costs and locking users to a specific platform or
32094 application.</p>
32095
32096 <p>This approach make it possible to replace the client applications
32097 independently of the server applications. One can even allow users to
32098 use several different applications as long as they handle the selected
32099 protocol and format. In the normal case, only one client application
32100 is recommended and users only get help if they choose to use this
32101 application, but those that want to deviate from the easy path are not
32102 blocked from doing so.</p>
32103
32104 <p>It also allow us to replace the server side without forcing the
32105 users to replace their applications, and thus allow us to select the
32106 best server implementation at any moment, when scale and resouce
32107 requirements change.</p>
32108
32109 <p>I strongly recommend standardizing - on open network protocols and
32110 open formats, but I would never recommend standardizing on a single
32111 application that do not use open network protocol or open formats.</p>
32112
32113 </div>
32114 <div class="tags">
32115
32116
32117 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>.
32118
32119
32120 </div>
32121 </div>
32122 <div class="padding"></div>
32123
32124 <div class="entry">
32125 <div class="title">
32126 <a href="http://people.skolelinux.org/pere/blog/Returning_from_Skolelinux_developer_gathering.html">Returning from Skolelinux developer gathering</a>
32127 </div>
32128 <div class="date">
32129 29th March 2009
32130 </div>
32131 <div class="body">
32132 <p>I'm sitting on the train going home from this weekends Debian
32133 Edu/Skolelinux development gathering. I got a bit done tuning the
32134 desktop, and looked into the dynamic service location protocol
32135 implementation avahi. It look like it could be useful for us. Almost
32136 30 people participated, and I believe it was a great environment to
32137 get to know the Skolelinux system. Walter Bender, involved in the
32138 development of the Sugar educational platform, presented his stuff and
32139 also helped me improve my OLPC installation. He also showed me that
32140 his Turtle Art application can be used in standalone mode, and we
32141 agreed that I would help getting it packaged for Debian. As a
32142 standalone application it would be great for Debian Edu. We also
32143 tried to get the video conferencing working with two OLPCs, but that
32144 proved to be too hard for us. The application seem to need more work
32145 before it is ready for me. I look forward to getting home and relax
32146 now. :)</p>
32147
32148 </div>
32149 <div class="tags">
32150
32151
32152 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>.
32153
32154
32155 </div>
32156 </div>
32157 <div class="padding"></div>
32158
32159 <div class="entry">
32160 <div class="title">
32161 <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>
32162 </div>
32163 <div class="date">
32164 29th March 2009
32165 </div>
32166 <div class="body">
32167 <p>The state of standardized LDAP schemas on Linux is far from
32168 optimal. There is RFC 2307 documenting one way to store NIS maps in
32169 LDAP, and a modified version of this normally called RFC 2307bis, with
32170 some modifications to be compatible with Active Directory. The RFC
32171 specification handle the content of a lot of system databases, but do
32172 not handle DNS zones and DHCP configuration.</p>
32173
32174 <p>In <a href="http://www.skolelinux.org/">Debian Edu/Skolelinux</a>,
32175 we would like to store information about users, SMB clients/hosts,
32176 filegroups, netgroups (users and hosts), DHCP and DNS configuration,
32177 and LTSP configuration in LDAP. These objects have a lot in common,
32178 but with the current LDAP schemas it is not possible to have one
32179 object per entity. For example, one need to have at least three LDAP
32180 objects for a given computer, one with the SMB related stuff, one with
32181 DNS information and another with DHCP information. The schemas
32182 provided for DNS and DHCP are impossible to combine into one LDAP
32183 object. In addition, it is impossible to implement quick queries for
32184 netgroup membership, because of the way NIS triples are implemented.
32185 It just do not scale. I believe it is time for a few RFC
32186 specifications to cleam up this mess.</p>
32187
32188 <p>I would like to have one LDAP object representing each computer in
32189 the network, and this object can then keep the SMB (ie host key), DHCP
32190 (mac address/name) and DNS (name/IP address) settings in one place.
32191 It need to be efficently stored to make sure it scale well.</p>
32192
32193 <p>I would also like to have a quick way to map from a user or
32194 computer and to the net group this user or computer is a member.</p>
32195
32196 <p>Active Directory have done a better job than unix heads like myself
32197 in this regard, and the unix side need to catch up. Time to start a
32198 new IETF work group?</p>
32199
32200 </div>
32201 <div class="tags">
32202
32203
32204 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>.
32205
32206
32207 </div>
32208 </div>
32209 <div class="padding"></div>
32210
32211 <div class="entry">
32212 <div class="title">
32213 <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>
32214 </div>
32215 <div class="date">
32216 28th February 2009
32217 </div>
32218 <div class="body">
32219 <p>At work, we have a few hundred Linux servers, and with that amount
32220 of hardware it is important to keep track of when the hardware support
32221 contract expire for each server. We have a machine (and service)
32222 register, which until recently did not contain much useful besides the
32223 machine room location and contact information for the system owner for
32224 each machine. To make it easier for us to track support contract
32225 status, I've recently spent time on extending the machine register to
32226 include information about when the support contract expire, and to tag
32227 machines with expired contracts to make it easy to get a list of such
32228 machines. I extended a perl script already being used to import
32229 information about machines into the register, to also do some screen
32230 scraping off the sites of Dell, HP and IBM (our majority of machines
32231 are from these vendors), and automatically check the support status
32232 for the relevant machines. This make the support status information
32233 easily available and I hope it will make it easier for the computer
32234 owner to know when to get new hardware or renew the support contract.
32235 The result of this work documented that 27% of the machines in the
32236 registry is without a support contract, and made it very easy to find
32237 them. 27% might seem like a lot, but I see it more as the case of us
32238 using machines a bit longer than the 3 years a normal support contract
32239 last, to have test machines and a platform for less important
32240 services. After all, the machines without a contract are working fine
32241 at the moment and the lack of contract is only a problem if any of
32242 them break down. When that happen, we can either fix it using spare
32243 parts from other machines or move the service to another old
32244 machine.</p>
32245
32246 <p>I believe the code for screen scraping the Dell site was originally
32247 written by Trond Hasle Amundsen, and later adjusted by me and Morten
32248 Werner Forsbring. The HP scraping was written by me after reading a
32249 nice article in ;login: about how to use WWW::Mechanize, and the IBM
32250 scraping was written by me based on the Dell code. I know the HTML
32251 parsing could be done using nice libraries, but did not want to
32252 introduce more dependencies. This is the current incarnation:</p>
32253
32254 <pre>
32255 use LWP::Simple;
32256 use POSIX;
32257 use WWW::Mechanize;
32258 use Date::Parse;
32259 [...]
32260 sub get_support_info {
32261 my ($machine, $model, $serial, $productnumber) = @_;
32262 my $str;
32263
32264 if ( $model =~ m/^Dell / ) {
32265 # fetch website from Dell support
32266 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";
32267 my $webpage = get($url);
32268 return undef unless ($webpage);
32269
32270 my $daysleft = -1;
32271 my @lines = split(/\n/, $webpage);
32272 foreach my $line (@lines) {
32273 next unless ($line =~ m/Beskrivelse/);
32274 $line =~ s/&lt;[^>]+?>/;/gm;
32275 $line =~ s/^.+?;(Beskrivelse;)/$1/;
32276
32277 my @f = split(/\;/, $line);
32278 @f = @f[13 .. $#f];
32279 my $lastend = "";
32280 while ($f[3] eq "DELL") {
32281 my ($type, $startstr, $endstr, $days) = @f[0, 5, 7, 10];
32282
32283 my $start = POSIX::strftime("%Y-%m-%d",
32284 localtime(str2time($startstr)));
32285 my $end = POSIX::strftime("%Y-%m-%d",
32286 localtime(str2time($endstr)));
32287 $str .= "$type $start -> $end ";
32288 @f = @f[14 .. $#f];
32289 $lastend = $end if ($end gt $lastend);
32290 }
32291 my $today = POSIX::strftime("%Y-%m-%d", localtime(time));
32292 tag_machine_unsupported($machine)
32293 if ($lastend lt $today);
32294 }
32295 } elsif ( $model =~ m/^HP / ) {
32296 my $mech = WWW::Mechanize->new();
32297 my $url =
32298 'http://www1.itrc.hp.com/service/ewarranty/warrantyInput.do';
32299 $mech->get($url);
32300 my $fields = {
32301 'BODServiceID' => 'NA',
32302 'RegisteredPurchaseDate' => '',
32303 'country' => 'NO',
32304 'productNumber' => $productnumber,
32305 'serialNumber1' => $serial,
32306 };
32307 $mech->submit_form( form_number => 2,
32308 fields => $fields );
32309 # Next step is screen scraping
32310 my $content = $mech->content();
32311
32312 $content =~ s/&lt;[^>]+?>/;/gm;
32313 $content =~ s/\s+/ /gm;
32314 $content =~ s/;\s*;/;;/gm;
32315 $content =~ s/;[\s;]+/;/gm;
32316
32317 my $today = POSIX::strftime("%Y-%m-%d", localtime(time));
32318
32319 while ($content =~ m/;Warranty Type;/) {
32320 my ($type, $status, $startstr, $stopstr) = $content =~
32321 m/;Warranty Type;([^;]+);.+?;Status;(\w+);Start Date;([^;]+);End Date;([^;]+);/;
32322 $content =~ s/^.+?;Warranty Type;//;
32323 my $start = POSIX::strftime("%Y-%m-%d",
32324 localtime(str2time($startstr)));
32325 my $end = POSIX::strftime("%Y-%m-%d",
32326 localtime(str2time($stopstr)));
32327
32328 $str .= "$type ($status) $start -> $end ";
32329
32330 tag_machine_unsupported($machine)
32331 if ($end lt $today);
32332 }
32333 } elsif ( $model =~ m/^IBM / ) {
32334 # This code ignore extended support contracts.
32335 my ($producttype) = $model =~ m/.*-\[(.{4}).+\]-/;
32336 if ($producttype &amp;&amp; $serial) {
32337 my $content =
32338 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");
32339 if ($content) {
32340 $content =~ s/&lt;[^>]+?>/;/gm;
32341 $content =~ s/\s+/ /gm;
32342 $content =~ s/;\s*;/;;/gm;
32343 $content =~ s/;[\s;]+/;/gm;
32344
32345 $content =~ s/^.+?;Warranty status;//;
32346 my ($status, $end) = $content =~ m/;Warranty status;([^;]+)\s*;Expiration date;(\S+) ;/;
32347
32348 $str .= "($status) -> $end ";
32349
32350 my $today = POSIX::strftime("%Y-%m-%d", localtime(time));
32351 tag_machine_unsupported($machine)
32352 if ($end lt $today);
32353 }
32354 }
32355 }
32356 return $str;
32357 }
32358 </pre>
32359
32360 <p>Here are some examples on how to use the function, using fake
32361 serial numbers. The information passed in as arguments are fetched
32362 from dmidecode.</p>
32363
32364 <pre>
32365 print get_support_info("hp.host", "HP ProLiant BL460c G1", "1234567890"
32366 "447707-B21");
32367 print get_support_info("dell.host", "Dell Inc. PowerEdge 2950", "1234567");
32368 print get_support_info("ibm.host", "IBM eserver xSeries 345 -[867061X]-",
32369 "1234567");
32370 </pre>
32371
32372 <p>I would recommend this approach for tracking support contracts for
32373 everyone with more than a few computers to administer. :)</p>
32374
32375 <p>Update 2009-03-06: The IBM page do not include extended support
32376 contracts, so it is useless in that case. The original Dell code do
32377 not handle extended support contracts either, but has been updated to
32378 do so.</p>
32379
32380 </div>
32381 <div class="tags">
32382
32383
32384 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>.
32385
32386
32387 </div>
32388 </div>
32389 <div class="padding"></div>
32390
32391 <div class="entry">
32392 <div class="title">
32393 <a href="http://people.skolelinux.org/pere/blog/Using_bar_codes_at_a_computing_center.html">Using bar codes at a computing center</a>
32394 </div>
32395 <div class="date">
32396 20th February 2009
32397 </div>
32398 <div class="body">
32399 <p>At work with the University of Oslo, we have several hundred computers
32400 in our computing center. This give us a challenge in tracking the
32401 location and cabling of the computers, when they are added, moved and
32402 removed. Some times the location register is not updated when a
32403 computer is inserted or moved and we then have to search the room for
32404 the "missing" computer.</p>
32405
32406 <p>In the last issue of Linux Journal, I came across a project
32407 <a href="http://www.libdmtx.org/">libdmtx</a> to write and read bar
32408 code blocks as defined in the
32409 <a href="http://en.wikipedia.org/wiki/Data_Matrix">The Data Matrix
32410 Standard</a>. This is bar codes that can be read with a normal
32411 digital camera, for example that on a cell phone, and several such bar
32412 codes can be read by libdmtx from one picture. The bar code standard
32413 allow up to 2 KiB to be written in the tag. There is another project
32414 with <a href="http://www.terryburton.co.uk/barcodewriter/">a bar code
32415 writer written in postscript</a> capable of creating such bar codes,
32416 but this was the first time I found a tool to read these bar
32417 codes.</p>
32418
32419 <p>It occurred to me that this could be used to tag and track the
32420 machines in our computing center. If both racks and computers are
32421 tagged this way, we can use a picture of the rack and all its
32422 computers to detect the rack location of any computer in that rack.
32423 If we do this regularly for the entire room, we will find all
32424 locations, and can detect movements and removals.</p>
32425
32426 <p>I decided to test if this would work in practice, and picked a
32427 random rack and tagged all the machines with their names. Next, I
32428 took pictures with my digital camera, and gave the dmtxread program
32429 these JPEG pictures to see how many tags it could read. This worked
32430 fairly well. If the pictures was well focused and not taken from the
32431 side, all tags in the image could be read. Because of limited space
32432 between the racks, I was unable to get a good picture of the entire
32433 rack, but could without problem read all tags from a picture covering
32434 about half the rack. I had to limit the search time used by dmtxread
32435 to 60000 ms to make sure it terminated in a reasonable time frame.</p>
32436
32437 <p>My conclusion is that this could work, and we should probably look
32438 at adjusting our computer tagging procedures to use bar codes for
32439 easier automatic tracking of computers.</p>
32440
32441 </div>
32442 <div class="tags">
32443
32444
32445 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>.
32446
32447
32448 </div>
32449 </div>
32450 <div class="padding"></div>
32451
32452 <div class="entry">
32453 <div class="title">
32454 <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>
32455 </div>
32456 <div class="date">
32457 17th January 2009
32458 </div>
32459 <div class="body">
32460 <p>As part of the work we do in <a href="http://www.nuug.no">NUUG</a>
32461 to publish video recordings of our monthly presentations, we provide a
32462 page with embedded video for easy access to the recording. Putting a
32463 good set of HTML tags together to get working embedded video in all
32464 browsers and across all operating systems is not easy. I hope this
32465 will become easier when the &lt;video&gt; tag is implemented in all
32466 browsers, but I am not sure. We provide the recordings in several
32467 formats, MPEG1, Ogg Theora, H.264 and Quicktime, and want the
32468 browser/media plugin to pick one it support and use it to play the
32469 recording, using whatever embed mechanism the browser understand.
32470 There is at least four different tags to use for this, the new HTML5
32471 &lt;video&gt; tag, the &lt;object&gt; tag, the &lt;embed&gt; tag and
32472 the &lt;applet&gt; tag. All of these take a lot of options, and
32473 finding the best options is a major challenge.</p>
32474
32475 <p>I just tested the experimental Opera browser available from <a
32476 href="http://labs.opera.com">labs.opera.com</a>, to see how it handled
32477 a &lt;video&gt; tag with a few video sources and no extra attributes.
32478 I was not very impressed. The browser start by fetching a picture
32479 from the video stream. Not sure if it is the first frame, but it is
32480 definitely very early in the recording. So far, so good. Next,
32481 instead of streaming the 76 MiB video file, it start to download all
32482 of it, but do not start to play the video. This mean I have to wait
32483 for several minutes for the downloading to finish. When the download
32484 is done, the playing of the video do not start! Waiting for the
32485 download, but I do not get to see the video? Some testing later, I
32486 discover that I have to add the controls="true" attribute to be able
32487 to get a play button to pres to start the video. Adding
32488 autoplay="true" did not help. I sure hope this is a misfeature of the
32489 test version of Opera, and that future implementations of the
32490 &lt;video&gt; tag will stream recordings by default, or at least start
32491 playing when the download is done.</p>
32492
32493 <p>The test page I used (since changed to add more attributes) is
32494 <a href="http://www.nuug.no/aktiviteter/20090113-foredrag-om-foredrag/">available
32495 from the nuug site</a>. Will have to test it with the new Firefox
32496 too.</p>
32497
32498 <p>In the test process, I discovered a missing feature. I was unable
32499 to find a way to get the URL of the playing video out of Opera, so I
32500 am not quite sure it picked the Ogg Theora version of the video. I
32501 sure hope it was using the announced Ogg Theora support. :)</p>
32502
32503 </div>
32504 <div class="tags">
32505
32506
32507 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/h264">h264</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</a>.
32508
32509
32510 </div>
32511 </div>
32512 <div class="padding"></div>
32513
32514 <div class="entry">
32515 <div class="title">
32516 <a href="http://people.skolelinux.org/pere/blog/Software_video_mixer_on_a_USB_stick.html">Software video mixer on a USB stick</a>
32517 </div>
32518 <div class="date">
32519 28th December 2008
32520 </div>
32521 <div class="body">
32522 <p>The <a href="http://www.nuug.no/">Norwegian Unix User Group</a> is
32523 recording our montly presentation on video, and recently we have
32524 worked on improving the quality of the recordings by mixing the slides
32525 directly with the video stream. For this, we use the
32526 <a href="http://dvswitch.alioth.debian.org/">dvswitch</a> package from
32527 the Debian video team. As this require quite one computer per video
32528 source, and NUUG do not have enough laptops available, we need to
32529 borrow laptops. And to avoid having to install extra software on
32530 these borrwed laptops, I have wrapped up all the programs needed on a
32531 bootable USB stick. The software required is dvswitch with assosiated
32532 source, sink and mixer applications and
32533 <a href="http://www.kinodv.org/">dvgrab</a>. To allow this setup to
32534 work without any configuration, I've patched dvswitch to use
32535 <a href="http://www.avahi.org/">avahi</a> to connect the various parts
32536 together. And to allow us to use laptops without firewire plugs, I
32537 upgraded dvgrab to the one from Debian/unstable to get one that work
32538 with USB sources. We have not yet tested this setup in a production
32539 setup, but I hope it will work properly, and allow us to set up a
32540 video mixer in a very short time frame. We will need it for
32541 <a href="http://www.goopen.no/">Go Open 2009</a>.</p>
32542
32543 <p><a href="http://www.nuug.no/pub/video/bin/usbstick-dvswitch.img.gz">The
32544 USB image</a> is for a 1 GB memory stick, but can be used on any
32545 larger stick as well.</p>
32546
32547 </div>
32548 <div class="tags">
32549
32550
32551 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>.
32552
32553
32554 </div>
32555 </div>
32556 <div class="padding"></div>
32557
32558 <div class="entry">
32559 <div class="title">
32560 <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>
32561 </div>
32562 <div class="date">
32563 7th December 2008
32564 </div>
32565 <div class="body">
32566 <p>This weekend we had a small developer gathering for Debian Edu in
32567 Oslo. Most of Saturday was used for the general assemly for the
32568 member organization, but the rest of the weekend I used to tune the
32569 LTSP installation. LTSP now work out of the box on the 10-network.
32570 Acer Aspire One proved to be a very nice thin client, with both
32571 screen, mouse and keybard in a small box. Was working on getting the
32572 diskless workstation setup configured out of the box, but did not
32573 finish it before the weekend was up.</p>
32574
32575 <p>Did not find time to look at the 4 VGA cards in one box we got from
32576 the Brazilian group, so that will have to wait for the next
32577 development gathering. Would love to have the Debian Edu installer
32578 automatically detect and configure a multiseat setup when it find one
32579 of these cards.</p>
32580
32581 </div>
32582 <div class="tags">
32583
32584
32585 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>.
32586
32587
32588 </div>
32589 </div>
32590 <div class="padding"></div>
32591
32592 <div class="entry">
32593 <div class="title">
32594 <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>
32595 </div>
32596 <div class="date">
32597 25th November 2008
32598 </div>
32599 <div class="body">
32600 <p>Recently I have spent some time evaluating the multimedia browser
32601 plugins available in Debian Lenny, to see which one we should use by
32602 default in Debian Edu. We need an embedded video playing plugin with
32603 control buttons to pause or stop the video, and capable of streaming
32604 all the multimedia content available on the web. The test results and
32605 notes are available on
32606 <a href="http://wiki.debian.org/DebianEdu/BrowserMultimedia">the
32607 Debian wiki</a>. I was surprised how few of the plugins are able to
32608 fill this need. My personal video player favorite, VLC, has a really
32609 bad plugin which fail on a lot of the test pages. A lot of the MIME
32610 types I would expect to work with any free software player (like
32611 video/ogg), just do not work. And simple formats like the
32612 audio/x-mplegurl format (m3u playlists), just isn't supported by the
32613 totem and vlc plugins. I hope the situation will improve soon. No
32614 wonder sites use the proprietary Adobe flash to play video.</p>
32615
32616 <p>For Lenny, we seem to end up with the mplayer plugin. It seem to
32617 be the only one fitting our needs. :/</p>
32618
32619 </div>
32620 <div class="tags">
32621
32622
32623 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>.
32624
32625
32626 </div>
32627 </div>
32628 <div class="padding"></div>
32629
32630 <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>
32631 <div id="sidebar">
32632
32633
32634
32635 <h2>Archive</h2>
32636 <ul>
32637
32638 <li>2019
32639 <ul>
32640
32641 <li><a href="http://people.skolelinux.org/pere/blog/archive/2019/01/">January (4)</a></li>
32642
32643 <li><a href="http://people.skolelinux.org/pere/blog/archive/2019/02/">February (3)</a></li>
32644
32645 <li><a href="http://people.skolelinux.org/pere/blog/archive/2019/03/">March (3)</a></li>
32646
32647 <li><a href="http://people.skolelinux.org/pere/blog/archive/2019/05/">May (2)</a></li>
32648
32649 <li><a href="http://people.skolelinux.org/pere/blog/archive/2019/06/">June (1)</a></li>
32650
32651 </ul></li>
32652
32653 <li>2018
32654 <ul>
32655
32656 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/01/">January (1)</a></li>
32657
32658 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/02/">February (5)</a></li>
32659
32660 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/03/">March (5)</a></li>
32661
32662 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/04/">April (3)</a></li>
32663
32664 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/06/">June (2)</a></li>
32665
32666 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/07/">July (5)</a></li>
32667
32668 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/08/">August (3)</a></li>
32669
32670 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/09/">September (3)</a></li>
32671
32672 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/10/">October (5)</a></li>
32673
32674 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/11/">November (2)</a></li>
32675
32676 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/12/">December (4)</a></li>
32677
32678 </ul></li>
32679
32680 <li>2017
32681 <ul>
32682
32683 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/01/">January (4)</a></li>
32684
32685 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/02/">February (3)</a></li>
32686
32687 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/03/">March (5)</a></li>
32688
32689 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/04/">April (2)</a></li>
32690
32691 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/06/">June (5)</a></li>
32692
32693 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/07/">July (1)</a></li>
32694
32695 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/08/">August (1)</a></li>
32696
32697 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/09/">September (3)</a></li>
32698
32699 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/10/">October (5)</a></li>
32700
32701 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/11/">November (3)</a></li>
32702
32703 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/12/">December (4)</a></li>
32704
32705 </ul></li>
32706
32707 <li>2016
32708 <ul>
32709
32710 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/01/">January (3)</a></li>
32711
32712 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/02/">February (2)</a></li>
32713
32714 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/03/">March (3)</a></li>
32715
32716 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/04/">April (8)</a></li>
32717
32718 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/05/">May (8)</a></li>
32719
32720 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/06/">June (2)</a></li>
32721
32722 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/07/">July (2)</a></li>
32723
32724 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/08/">August (5)</a></li>
32725
32726 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/09/">September (2)</a></li>
32727
32728 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/10/">October (3)</a></li>
32729
32730 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/11/">November (8)</a></li>
32731
32732 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/12/">December (5)</a></li>
32733
32734 </ul></li>
32735
32736 <li>2015
32737 <ul>
32738
32739 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/01/">January (7)</a></li>
32740
32741 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/02/">February (6)</a></li>
32742
32743 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/03/">March (1)</a></li>
32744
32745 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/04/">April (4)</a></li>
32746
32747 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/05/">May (3)</a></li>
32748
32749 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/06/">June (4)</a></li>
32750
32751 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/07/">July (6)</a></li>
32752
32753 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/08/">August (2)</a></li>
32754
32755 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/09/">September (2)</a></li>
32756
32757 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/10/">October (9)</a></li>
32758
32759 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/11/">November (6)</a></li>
32760
32761 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/12/">December (3)</a></li>
32762
32763 </ul></li>
32764
32765 <li>2014
32766 <ul>
32767
32768 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/01/">January (2)</a></li>
32769
32770 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/02/">February (3)</a></li>
32771
32772 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/03/">March (8)</a></li>
32773
32774 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/04/">April (7)</a></li>
32775
32776 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/05/">May (1)</a></li>
32777
32778 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/06/">June (2)</a></li>
32779
32780 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/07/">July (2)</a></li>
32781
32782 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/08/">August (2)</a></li>
32783
32784 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/09/">September (5)</a></li>
32785
32786 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/10/">October (6)</a></li>
32787
32788 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/11/">November (3)</a></li>
32789
32790 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/12/">December (5)</a></li>
32791
32792 </ul></li>
32793
32794 <li>2013
32795 <ul>
32796
32797 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/01/">January (11)</a></li>
32798
32799 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/02/">February (9)</a></li>
32800
32801 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/03/">March (9)</a></li>
32802
32803 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/04/">April (6)</a></li>
32804
32805 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/05/">May (9)</a></li>
32806
32807 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/06/">June (10)</a></li>
32808
32809 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/07/">July (7)</a></li>
32810
32811 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/08/">August (3)</a></li>
32812
32813 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/09/">September (5)</a></li>
32814
32815 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/10/">October (7)</a></li>
32816
32817 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/11/">November (9)</a></li>
32818
32819 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/12/">December (3)</a></li>
32820
32821 </ul></li>
32822
32823 <li>2012
32824 <ul>
32825
32826 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/01/">January (7)</a></li>
32827
32828 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/02/">February (10)</a></li>
32829
32830 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/03/">March (17)</a></li>
32831
32832 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/04/">April (12)</a></li>
32833
32834 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/05/">May (12)</a></li>
32835
32836 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/06/">June (20)</a></li>
32837
32838 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/07/">July (17)</a></li>
32839
32840 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/08/">August (6)</a></li>
32841
32842 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/09/">September (9)</a></li>
32843
32844 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/10/">October (17)</a></li>
32845
32846 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/11/">November (10)</a></li>
32847
32848 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/12/">December (7)</a></li>
32849
32850 </ul></li>
32851
32852 <li>2011
32853 <ul>
32854
32855 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/01/">January (16)</a></li>
32856
32857 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/02/">February (6)</a></li>
32858
32859 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/03/">March (6)</a></li>
32860
32861 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/04/">April (7)</a></li>
32862
32863 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/05/">May (3)</a></li>
32864
32865 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/06/">June (2)</a></li>
32866
32867 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/07/">July (7)</a></li>
32868
32869 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/08/">August (6)</a></li>
32870
32871 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/09/">September (4)</a></li>
32872
32873 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/10/">October (2)</a></li>
32874
32875 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/11/">November (3)</a></li>
32876
32877 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/12/">December (1)</a></li>
32878
32879 </ul></li>
32880
32881 <li>2010
32882 <ul>
32883
32884 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/01/">January (2)</a></li>
32885
32886 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/02/">February (1)</a></li>
32887
32888 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/03/">March (3)</a></li>
32889
32890 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/04/">April (3)</a></li>
32891
32892 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/05/">May (9)</a></li>
32893
32894 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/06/">June (14)</a></li>
32895
32896 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/07/">July (12)</a></li>
32897
32898 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/08/">August (13)</a></li>
32899
32900 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/09/">September (7)</a></li>
32901
32902 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/10/">October (9)</a></li>
32903
32904 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/11/">November (13)</a></li>
32905
32906 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/12/">December (12)</a></li>
32907
32908 </ul></li>
32909
32910 <li>2009
32911 <ul>
32912
32913 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/01/">January (8)</a></li>
32914
32915 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/02/">February (8)</a></li>
32916
32917 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/03/">March (12)</a></li>
32918
32919 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/04/">April (10)</a></li>
32920
32921 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/05/">May (9)</a></li>
32922
32923 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/06/">June (3)</a></li>
32924
32925 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/07/">July (4)</a></li>
32926
32927 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/08/">August (3)</a></li>
32928
32929 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/09/">September (1)</a></li>
32930
32931 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/10/">October (2)</a></li>
32932
32933 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/11/">November (3)</a></li>
32934
32935 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/12/">December (3)</a></li>
32936
32937 </ul></li>
32938
32939 <li>2008
32940 <ul>
32941
32942 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/11/">November (5)</a></li>
32943
32944 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/12/">December (7)</a></li>
32945
32946 </ul></li>
32947
32948 </ul>
32949
32950
32951
32952 <h2>Tags</h2>
32953 <ul>
32954
32955 <li><a href="http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (16)</a></li>
32956
32957 <li><a href="http://people.skolelinux.org/pere/blog/tags/amiga">amiga (1)</a></li>
32958
32959 <li><a href="http://people.skolelinux.org/pere/blog/tags/aros">aros (1)</a></li>
32960
32961 <li><a href="http://people.skolelinux.org/pere/blog/tags/bankid">bankid (4)</a></li>
32962
32963 <li><a href="http://people.skolelinux.org/pere/blog/tags/betalkontant">betalkontant (8)</a></li>
32964
32965 <li><a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (11)</a></li>
32966
32967 <li><a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (17)</a></li>
32968
32969 <li><a href="http://people.skolelinux.org/pere/blog/tags/bsa">bsa (2)</a></li>
32970
32971 <li><a href="http://people.skolelinux.org/pere/blog/tags/chrpath">chrpath (2)</a></li>
32972
32973 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian">debian (167)</a></li>
32974
32975 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (158)</a></li>
32976
32977 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian-handbook">debian-handbook (4)</a></li>
32978
32979 <li><a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan (11)</a></li>
32980
32981 <li><a href="http://people.skolelinux.org/pere/blog/tags/dld">dld (17)</a></li>
32982
32983 <li><a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook (25)</a></li>
32984
32985 <li><a href="http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
32986
32987 <li><a href="http://people.skolelinux.org/pere/blog/tags/english">english (403)</a></li>
32988
32989 <li><a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (23)</a></li>
32990
32991 <li><a href="http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (14)</a></li>
32992
32993 <li><a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (33)</a></li>
32994
32995 <li><a href="http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox (9)</a></li>
32996
32997 <li><a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (20)</a></li>
32998
32999 <li><a href="http://people.skolelinux.org/pere/blog/tags/h264">h264 (20)</a></li>
33000
33001 <li><a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju (42)</a></li>
33002
33003 <li><a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram (16)</a></li>
33004
33005 <li><a href="http://people.skolelinux.org/pere/blog/tags/kart">kart (21)</a></li>
33006
33007 <li><a href="http://people.skolelinux.org/pere/blog/tags/kodi">kodi (4)</a></li>
33008
33009 <li><a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap (9)</a></li>
33010
33011 <li><a href="http://people.skolelinux.org/pere/blog/tags/lego">lego (4)</a></li>
33012
33013 <li><a href="http://people.skolelinux.org/pere/blog/tags/lenker">lenker (8)</a></li>
33014
33015 <li><a href="http://people.skolelinux.org/pere/blog/tags/lsdvd">lsdvd (2)</a></li>
33016
33017 <li><a href="http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (1)</a></li>
33018
33019 <li><a href="http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network (8)</a></li>
33020
33021 <li><a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (42)</a></li>
33022
33023 <li><a href="http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software (12)</a></li>
33024
33025 <li><a href="http://people.skolelinux.org/pere/blog/tags/noark5">noark5 (14)</a></li>
33026
33027 <li><a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk (305)</a></li>
33028
33029 <li><a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug (195)</a></li>
33030
33031 <li><a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (37)</a></li>
33032
33033 <li><a href="http://people.skolelinux.org/pere/blog/tags/open311">open311 (2)</a></li>
33034
33035 <li><a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (73)</a></li>
33036
33037 <li><a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern (108)</a></li>
33038
33039 <li><a href="http://people.skolelinux.org/pere/blog/tags/raid">raid (2)</a></li>
33040
33041 <li><a href="http://people.skolelinux.org/pere/blog/tags/reactos">reactos (1)</a></li>
33042
33043 <li><a href="http://people.skolelinux.org/pere/blog/tags/reprap">reprap (11)</a></li>
33044
33045 <li><a href="http://people.skolelinux.org/pere/blog/tags/rfid">rfid (3)</a></li>
33046
33047 <li><a href="http://people.skolelinux.org/pere/blog/tags/robot">robot (12)</a></li>
33048
33049 <li><a href="http://people.skolelinux.org/pere/blog/tags/rss">rss (1)</a></li>
33050
33051 <li><a href="http://people.skolelinux.org/pere/blog/tags/ruter">ruter (7)</a></li>
33052
33053 <li><a href="http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (2)</a></li>
33054
33055 <li><a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (55)</a></li>
33056
33057 <li><a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (4)</a></li>
33058
33059 <li><a href="http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (5)</a></li>
33060
33061 <li><a href="http://people.skolelinux.org/pere/blog/tags/standard">standard (63)</a></li>
33062
33063 <li><a href="http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (6)</a></li>
33064
33065 <li><a href="http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (12)</a></li>
33066
33067 <li><a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (55)</a></li>
33068
33069 <li><a href="http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (4)</a></li>
33070
33071 <li><a href="http://people.skolelinux.org/pere/blog/tags/usenix">usenix (2)</a></li>
33072
33073 <li><a href="http://people.skolelinux.org/pere/blog/tags/valg">valg (9)</a></li>
33074
33075 <li><a href="http://people.skolelinux.org/pere/blog/tags/verkidetfri">verkidetfri (15)</a></li>
33076
33077 <li><a href="http://people.skolelinux.org/pere/blog/tags/video">video (73)</a></li>
33078
33079 <li><a href="http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (4)</a></li>
33080
33081 <li><a href="http://people.skolelinux.org/pere/blog/tags/web">web (42)</a></li>
33082
33083 </ul>
33084
33085
33086 </div>
33087 <p style="text-align: right">
33088 Created by <a href="http://steve.org.uk/Software/chronicle">Chronicle v4.6</a>
33089 </p>
33090
33091 </body>
33092 </html>