1 <?xml version=
"1.0" encoding=
"utf-8"?>
2 <rss version='
2.0' xmlns:lj='http://www.livejournal.org/rss/lj/
1.0/' xmlns:
atom=
"http://www.w3.org/2005/Atom">
4 <title>Petter Reinholdtsen
</title>
5 <description></description>
6 <link>http://people.skolelinux.org/pere/blog/
</link>
7 <atom:link href=
"http://people.skolelinux.org/pere/blog/index.rss" rel=
"self" type=
"application/rss+xml" />
10 <title>Debian Edu interview: Bernd Zeitzen
</title>
11 <link>http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Bernd_Zeitzen.html
</link>
12 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Bernd_Zeitzen.html
</guid>
13 <pubDate>Thu,
31 Jul
2014 08:
30:
00 +
0200</pubDate>
14 <description><p
>The complete and free “out of the box” software solution for
15 schools,
<a href=
"http://www.skolelinux.org/
">Debian Edu /
16 Skolelinux
</a
>, is used quite a lot in Germany, and one of the people
17 involved is Bernd Zeitzen, who show up on the project mailing lists
18 from time to time with interesting questions and tips on how to adjust
19 the setup. I managed to interview him this summer.
</p
>
21 <p
><strong
>Who are you, and how do you spend your days?
</strong
></p
>
23 <p
>My name is Bernd Zeitzen and I
'm married with Hedda, a self
24 employed physiotherapist. My former profession is tool maker, but I
25 haven
't worked for
30 years in this job.
30 years ago I started to
26 support my wife and become her officeworker and a few years later the
27 administrator for a small computer network, today based on Ubuntu
28 Server (Samba, OpenVPN). For her daily work she has to use Windows
29 Desktops because the software she needs to organize her business only
30 works with Windows . :-(
</p
>
32 <p
>In
1988 we started with one PC and DOS, then I learned to use
33 Windows
98,
2000, XP, …,
8, Ubuntu, MacOSX. Today we are running a
34 Linux server with
6 Windows clients and
10 persons (teacher of
35 children with special needs, speech therapist, occupational therapist,
36 psychologist and officeworkers) using our Samba shares via OpenVPN to
37 work with the documentations of our patients.
</p
>
39 <p
><strong
>How did you get in contact with the Skolelinux / Debian Edu
40 project?
</strong
></p
>
42 <p
>Two years ago a friend of mine asked me, if I want to get a job in
43 his school (
<a href=
"http://www.gymnasium-harsewinkel.de/
">Gymnasium
44 Harsewinkel
</a
>). They started with Skolelinux / Debian Edu and they
45 were looking for people to give support to the teachers using the
46 software and the network and teaching the pupils increasing their
47 computer skills in optional lessons. I
'm spending
4-
6 hours a week
48 with this job.
</p
>
50 <p
><strong
>What do you see as the advantages of Skolelinux / Debian
51 Edu?
</strong
></p
>
53 <p
>The independence.
</p
>
55 <p
>First: Every person is allowed to use, share and develop the
56 software. Even if you are poor, you are allowed to use the software
57 included in Skolelinux/Debian Edu and all the other Free Software.
</p
>
59 <p
>Second: The software runs on old machines and this gives us the
60 possibility to recycle computers, weeded out from offices. The
61 servers and desktops are running for more than two years and they are
62 working reliable.
</p
>
64 <p
>We have two servers (one tjener and one terminal server),
45
65 workstations in three classrooms and seven laptops as a mobile
66 solution for all classrooms. These machines are all booting from the
67 terminal server. In the moment we are installing
30 laptops as mobile
68 workstations. Then the pupils have the possibility to work with these
69 machines in their classrooms. Internet access is realized by a WLAN
70 router, connected to the schools network. This is all done without a
71 dedicated system administrator or a computer science teacher.
</p
>
73 <p
><strong
>What do you see as the disadvantages of Skolelinux / Debian
74 Edu?
</strong
></p
>
76 <p
>Teachers and pupils are Windows users.
&lt;Irony on
&gt; And Linux
77 isn
't cool. It
's software for freaks using the command line.
&lt;Irony
78 off
&gt; They don
't realize the stability of the system.
</p
>
80 <p
><strong
>Which free software do you use daily?
</strong
></p
>
82 <p
>Firefox, Thunderbird, LibreOffice, Ubuntu Server
12.04 (Samba,
83 Apache, MySQL, Joomla!, … and Skolelinux / Debian Edu)
</p
>
85 <p
><strong
>Which strategy do you believe is the right one to use to
86 get schools to use free software?
</strong
></p
>
88 <p
>In Germany we have the situation: every school is free to decide
89 which software they want to use. This decision is influenced by
90 teachers who learned to use Windows and MS Office. They buy a PC with
91 Windows preinstalled and an additional testing version of MS
92 Office. They don
't know about the possibility to use Free Software
93 instead. Another problem are the publisher of school books. They
94 develop their software, added to the school books, for Windows.
</p
>
99 <title>98.6 percent done with the Norwegian draft translation of Free Culture
</title>
100 <link>http://people.skolelinux.org/pere/blog/
98_6_percent_done_with_the_Norwegian_draft_translation_of_Free_Culture.html
</link>
101 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/
98_6_percent_done_with_the_Norwegian_draft_translation_of_Free_Culture.html
</guid>
102 <pubDate>Wed,
23 Jul
2014 22:
40:
00 +
0200</pubDate>
103 <description><p
>This summer I finally had time to continue working on the Norwegian
104 <a href=
"http://www.docbook.org/
">docbook
</a
> version of the
2004 book
105 <a href=
"http://free-culture.cc/
">Free Culture
</a
> by Lawrence Lessig,
106 to get a Norwegian text explaining the problems with todays copyright
107 law. Yesterday, I finally completed translated the book text. There
108 are still some foot/end notes left to translate, the colophon page
109 need to be rewritten, and a few words and phrases still need to be
110 translated, but the Norwegian text is ready for the first proof
111 reading. :) More spell checking is needed, and several illustrations
112 need to be cleaned up. The work stopped up because I had to give
113 priority to other projects the last year, and the progress graph of
114 the translation show this very well:
</p
>
116 <p
><img width=
"80%
" align=
"center
" src=
"https://github.com/petterreinholdtsen/free-culture-lessig/raw/master/progress.png
"></p
>
118 <p
>If you want to read the result, check out the
119 <a href=
"https://github.com/petterreinholdtsen/free-culture-lessig
">github
</a
>
120 project pages and the
121 <a href=
"https://github.com/petterreinholdtsen/free-culture-lessig/blob/master/archive/freeculture.nb.pdf?raw=true
">PDF
</a
>,
122 <a href=
"https://github.com/petterreinholdtsen/free-culture-lessig/blob/master/archive/freeculture.nb.epub?raw=true
">EPUB
</a
>
123 and HTML version available in the
124 <a href=
"https://github.com/petterreinholdtsen/free-culture-lessig/tree/master/archive
">archive
125 directory
</a
>.
</p
>
127 <p
>Please report typos, bugs and improvements to the github project if
128 you find any.
</p
>
133 <title>From English wiki to translated PDF and epub via Docbook
</title>
134 <link>http://people.skolelinux.org/pere/blog/From_English_wiki_to_translated_PDF_and_epub_via_Docbook.html
</link>
135 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/From_English_wiki_to_translated_PDF_and_epub_via_Docbook.html
</guid>
136 <pubDate>Tue,
17 Jun
2014 11:
30:
00 +
0200</pubDate>
137 <description><p
>The
<a href=
"http://www.skolelinux.org/
">Debian Edu / Skolelinux
138 project
</a
> provide an instruction manual for teachers, system
139 administrators and other users that contain useful tips for setting up
140 and maintaining a Debian Edu installation. This text is about how the
141 text processing of this manual is handled in the project.
</p
>
143 <p
>One goal of the project is to provide information in the native
144 language of its users, and for this we need to handle translations.
145 But we also want to make sure each language contain the same
146 information, so for this we need a good way to keep the translations
147 in sync. And we want it to be easy for our users to improve the
148 documentation, avoiding the need to learn special formats or tools to
149 contribute, and the obvious way to do this is to make it possible to
150 edit the documentation using a web browser. We also want it to be
151 easy for translators to keep the translation up to date, and give them
152 help in figuring out what need to be translated. Here is the list of
153 tools and the process we have found trying to reach all these
156 <p
>We maintain the authoritative source of our manual in the
157 <a href=
"https://wiki.debian.org/DebianEdu/Documentation/Wheezy/
">Debian
158 wiki
</a
>, as several wiki pages written in English. It consist of one
159 front page with references to the different chapters, several pages
160 for each chapter, and finally one
"collection page
" gluing all the
161 chapters together into one large web page (aka
162 <a href=
"https://wiki.debian.org/DebianEdu/Documentation/Wheezy/AllInOne
">the
163 AllInOne page
</a
>). The AllInOne page is the one used for further
164 processing and translations. Thanks to the fact that the
165 <a href=
"http://moinmo.in/
">MoinMoin
</a
> installation on
166 wiki.debian.org support exporting pages in
167 <a href=
"http://www.docbook.org/
">the Docbook format
</a
>, we can fetch
168 the list of pages to export using the raw version of the AllInOne
169 page, loop over each of them to generate a Docbook XML version of the
170 manual. This process also download images and transform image
171 references to use the locally downloaded images. The generated
172 Docbook XML files are slightly broken, so some post-processing is done
173 using the
<tt
>documentation/scripts/get_manual
</tt
> program, and the
174 result is a nice Docbook XML file (debian-edu-wheezy-manual.xml) and
175 a handfull of images. The XML file can now be used to generate PDF, HTML
176 and epub versions of the English manual. This is the basic step of
177 our process, making PDF (using dblatex), HTML (using xsltproc) and
178 epub (using dbtoepub) version from Docbook XML, and the resulting files
179 are placed in the debian-edu-doc-en binary package.
</p
>
181 <p
>But English documentation is not enough for us. We want translated
182 documentation too, and we want to make it easy for translators to
183 track the English original. For this we use the
184 <a href=
"http://packages.qa.debian.org/p/poxml.html
">poxml
</a
> package,
185 which allow us to transform the English Docbook XML file into a
186 translation file (a .pot file), usable with the normal gettext based
187 translation tools used by those translating free software. The pot
188 file is used to create and maintain translation files (several .po
189 files), which the translations update with the native language
190 translations of all titles, paragraphs and blocks of text in the
191 original. The next step is combining the original English Docbook XML
192 and the translation file (say debian-edu-wheezy-manual.nb.po), to
193 create a translated Docbook XML file (in this case
194 debian-edu-wheezy-manual.nb.xml). This translated (or partly
195 translated, if the translation is not complete) Docbook XML file can
196 then be used like the original to create a PDF, HTML and epub version
197 of the documentation.
</p
>
199 <p
>The translators use different tools to edit the .po files. We
201 <a href=
"http://www.kde.org/applications/development/lokalize/
">lokalize
</a
>,
202 while some use emacs and vi, others can use web based editors like
203 <a href=
"http://pootle.translatehouse.org/
">Poodle
</a
> or
204 <a href=
"https://www.transifex.com/
">Transifex
</a
>. All we care about
205 is where the .po file end up, in our git repository. Updated
206 translations can either be committed directly to git, or submitted as
207 <a href=
"https://bugs.debian.org/src:debian-edu-doc
">bug reports
208 against the debian-edu-doc package
</a
>.
</p
>
210 <p
>One challenge is images, which both might need to be translated (if
211 they show translated user applications), and are needed in different
212 formats when creating PDF and HTML versions (epub is a HTML version in
213 this regard). For this we transform the original PNG images to the
214 needed density and format during build, and have a way to provide
215 translated images by storing translated versions in
216 images/$LANGUAGECODE/. I am a bit unsure about the details here. The
217 package maintainers know more.
</p
>
219 <p
>If you wonder what the result look like, we provide
220 <a href=
"http://maintainer.skolelinux.org/debian-edu-doc/
">the content
221 of the documentation packages on the web
</a
>. See for example the
222 <a href=
"http://maintainer.skolelinux.org/debian-edu-doc/it/debian-edu-wheezy-manual.pdf
">Italian
223 PDF version
</a
> or the
224 <a href=
"http://maintainer.skolelinux.org/debian-edu-doc/de/debian-edu-wheezy-manual.html
">German
225 HTML version
</a
>. We do not yet build the epub version by default,
226 but perhaps it will be done in the future.
</p
>
228 <p
>To learn more, check out
229 <a href=
"http://packages.qa.debian.org/d/debian-edu-doc.html
">the
230 debian-edu-doc package
</a
>,
231 <a href=
"https://wiki.debian.org/DebianEdu/Documentation/Wheezy/
">the
232 manual on the wiki
</a
> and
233 <a href=
"https://wiki.debian.org/DebianEdu/Documentation/Wheezy/Translations
">the
234 translation instructions
</a
> in the manual.
</p
>
239 <title>Hvordan enkelt laste ned filmer fra NRK med den
"nye
" løsningen
</title>
240 <link>http://people.skolelinux.org/pere/blog/Hvordan_enkelt_laste_ned_filmer_fra_NRK_med_den__nye__l_sningen.html
</link>
241 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Hvordan_enkelt_laste_ned_filmer_fra_NRK_med_den__nye__l_sningen.html
</guid>
242 <pubDate>Mon,
16 Jun
2014 19:
20:
00 +
0200</pubDate>
243 <description><p
>Jeg har fortsatt behov for å kunne laste ned innslag fra NRKs
244 nettsted av og til for å se senere når jeg ikke er på nett, men
245 <a href=
"http://people.skolelinux.org/pere/blog/Hvordan_enkelt_laste_ned_filmer_fra_NRK.html
">min
246 oppskrift fra
2011</a
> sluttet å fungere da NRK byttet
247 avspillermetode. I dag fikk jeg endelig lett etter oppdatert løsning,
248 og jeg er veldig glad for å fortelle at den enkleste måten å laste ned
249 innslag er å bruke siste versjon
2014.06.07 av
250 <a href=
"http://rg3.github.io/youtube-dl/
">youtube-dl
</a
>. Støtten i
251 youtube-dl
<a href=
"https://github.com/rg3/youtube-dl/issues/
2980">kom
252 inn for
23 dager siden
</a
> og
253 <a href=
"http://packages.qa.debian.org/y/youtube-dl.html
">versjonen i
254 Debian
</a
> fungerer fint også som backport til Debian Wheezy. Det er
255 et lite problem, det håndterer kun URLer med små bokstaver, men hvis
256 en har en URL med store bokstaver kan en bare gjøre alle store om til
257 små bokstaver for å få youtube-dl til å laste ned. Rapporterte
259 <a href=
"https://github.com/rg3/youtube-dl/issues/
2980">problemet til
260 utviklerne
</a
>, og antar de får fikset det snart.
</p
>
262 <p
>Dermed er alt klart til å laste ned dokumentarene om
263 <a href=
"http://tv.nrk.no/program/KOID23005014/usas-hemmelige-avlytting
">USAs
264 hemmelige avlytting
</a
> og
265 <a href=
"http://tv.nrk.no/program/KOID23005114/selskapene-bak-usas-avlytting
">Selskapene
266 bak USAs avlytting
</a
>, i tillegg til
267 <a href=
"http://tv.nrk.no/program/KOID20005814/et-moete-med-edward-snowden
">intervjuet
268 med Edward Snowden gjort av den tyske tv-kanalen ARD
</a
>. Anbefaler
269 alle å se disse, sammen med
270 <a href=
"http://media.ccc.de/browse/congress/
2013/
30C3_-_5713_-_en_-_saal_2_-_201312301130_-_to_protect_and_infect_part_2_-_jacob.html
">foredraget
271 til Jacob Appelbaum på siste CCC-konferanse
</a
>, for å forstå mer om
272 hvordan overvåkningen av borgerne brer om seg.
</p
>
274 <p
>Takk til gode venner på foreningen NUUGs IRC-kanal
275 <a href=
"irc://irc.freenode.net/%
23nuug
">#nuug på irc.freenode.net
</a
>
276 for tipsene som fikk meg i mål
</a
>.
</p
>
278 <p
><strong
>Oppdatering
2014-
06-
17</strong
>: Etter at jeg publiserte
279 denne, ble jeg tipset om bloggposten
280 "<a href=
"http://ingvar.blog.redpill-linpro.com/
2012/
05/
31/downloading-hd-content-from-tv-nrk-no/
">Downloading
281 HD content from tv.nrk.no
</a
>" av Ingvar Hagelund, som har alternativ
282 implementasjon og tips for å lage mkv-fil med undertekstene inkludert.
283 Kanskje den passer bedre for deg? I tillegg ble feilen i youtube-dl
284 ble fikset litt senere ut på dagen i går, samt at youtube-dl fikk
285 støtte for å laste ned undertitler. Takk til Anders Einar Hilden for
286 god innsats og youtube-dl-utviklerne for rask respons.
</p
>
291 <title>Free software car computer solution?
</title>
292 <link>http://people.skolelinux.org/pere/blog/Free_software_car_computer_solution_.html
</link>
293 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Free_software_car_computer_solution_.html
</guid>
294 <pubDate>Thu,
29 May
2014 18:
45:
00 +
0200</pubDate>
295 <description><p
>Dear lazyweb. I
'm planning to set up a small Raspberry Pi computer
296 in my car, connected to
297 <a href=
"http://www.dx.com/p/
400a-
4-
0-tft-lcd-digital-monitor-for-vehicle-parking-reverse-camera-
1440x272-
12v-dc-
57776">a
298 small screen
</a
> next to the rear mirror. I plan to hook it up with a
299 GPS and a USB wifi card too. The idea is to get my own
300 "<a href=
"http://en.wikipedia.org/wiki/Carputer
">Carputer
</a
>". But I
301 wonder if someone already created a good free software solution for
302 such car computer.
</p
>
304 <p
>This is my current wish list for such system:
</p
>
308 <li
>Work on Raspberry Pi.
</li
>
310 <li
>Show current speed limit based on location, and warn if going too
311 fast (for example using color codes yellow and red on the screen,
312 or make a sound). This could be done either using either data from
313 <a href=
"http://www.openstreetmap.org/
">Openstreetmap
</a
> or OCR
314 info gathered from a dashboard camera.
</li
>
316 <li
>Track automatic toll road passes and their cost, show total spent
317 and make it possible to calculate toll costs for planned
320 <li
>Collect GPX tracks for use with OpenStreetMap.
</li
>
322 <li
>Automatically detect and use any wireless connection to connect
323 to home server. Try IP over DNS
324 (
<a href=
"http://dev.kryo.se/iodine/
">iodine
</a
>) or ICMP
325 (
<a href=
"http://code.gerade.org/hans/
">Hans
</a
>) if direct
326 connection do not work.
</li
>
328 <li
>Set up mesh network to talk to other cars with the same system,
329 or some standard car mesh protocol.
</li
>
331 <li
>Warn when approaching speed cameras and speed camera ranges
332 (speed calculated between two cameras).
</li
>
334 <li
>Suport dashboard/front facing camera to discover speed limits and
335 run OCR to track registration number of passing cars.
</li
>
339 <p
>If you know of any free software car computer system supporting
340 some or all of these features, please let me know.
</p
>
345 <title>Half the Coverity issues in Gnash fixed in the next release
</title>
346 <link>http://people.skolelinux.org/pere/blog/Half_the_Coverity_issues_in_Gnash_fixed_in_the_next_release.html
</link>
347 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Half_the_Coverity_issues_in_Gnash_fixed_in_the_next_release.html
</guid>
348 <pubDate>Tue,
29 Apr
2014 14:
20:
00 +
0200</pubDate>
349 <description><p
>I
've been following
<a href=
"http://www.getgnash.org/
">the Gnash
350 project
</a
> for quite a while now. It is a free software
351 implementation of Adobe Flash, both a standalone player and a browser
352 plugin. Gnash implement support for the AVM1 format (and not the
353 newer AVM2 format - see
354 <a href=
"http://lightspark.github.io/
">Lightspark
</a
> for that one),
355 allowing several flash based sites to work. Thanks to the friendly
356 developers at Youtube, it also work with Youtube videos, because the
357 Javascript code at Youtube detect Gnash and serve a AVM1 player to
358 those users. :) Would be great if someone found time to implement AVM2
359 support, but it has not happened yet. If you install both Lightspark
360 and Gnash, Lightspark will invoke Gnash if it find a AVM1 flash file,
361 so you can get both handled as free software. Unfortunately,
362 Lightspark so far only implement a small subset of AVM2, and many
363 sites do not work yet.
</p
>
365 <p
>A few months ago, I started looking at
366 <a href=
"http://scan.coverity.com/
">Coverity
</a
>, the static source
367 checker used to find heaps and heaps of bugs in free software (thanks
368 to the donation of a scanning service to free software projects by the
369 company developing this non-free code checker), and Gnash was one of
370 the projects I decided to check out. Coverity is able to find lock
371 errors, memory errors, dead code and more. A few days ago they even
372 extended it to also be able to find the heartbleed bug in OpenSSL.
373 There are heaps of checks being done on the instrumented code, and the
374 amount of bogus warnings is quite low compared to the other static
375 code checkers I have tested over the years.
</p
>
377 <p
>Since a few weeks ago, I
've been working with the other Gnash
378 developers squashing bugs discovered by Coverity. I was quite happy
379 today when I checked the current status and saw that of the
777 issues
380 detected so far,
374 are marked as fixed. This make me confident that
381 the next Gnash release will be more stable and more dependable than
382 the previous one. Most of the reported issues were and are in the
383 test suite, but it also found a few in the rest of the code.
</p
>
385 <p
>If you want to help out, you find us on
386 <a href=
"https://lists.gnu.org/mailman/listinfo/gnash-dev
">the
387 gnash-dev mailing list
</a
> and on
388 <a href=
"irc://irc.freenode.net/#gnash
">the #gnash channel on
389 irc.freenode.net IRC server
</a
>.
</p
>
394 <title>Install hardware dependent packages using tasksel (Isenkram
0.7)
</title>
395 <link>http://people.skolelinux.org/pere/blog/Install_hardware_dependent_packages_using_tasksel__Isenkram_0_7_.html
</link>
396 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Install_hardware_dependent_packages_using_tasksel__Isenkram_0_7_.html
</guid>
397 <pubDate>Wed,
23 Apr
2014 14:
50:
00 +
0200</pubDate>
398 <description><p
>It would be nice if it was easier in Debian to get all the hardware
399 related packages relevant for the computer installed automatically.
400 So I implemented one, using
401 <a href=
"http://packages.qa.debian.org/isenkram
">my Isenkram
402 package
</a
>. To use it, install the tasksel and isenkram packages and
403 run tasksel as user root. You should be presented with a new option,
404 "Hardware specific packages (autodetected by isenkram)
". When you
405 select it, tasksel will install the packages isenkram claim is fit for
406 the current hardware, hot pluggable or not.
<p
>
408 <p
>The implementation is in two files, one is the tasksel menu entry
409 description, and the other is the script used to extract the list of
410 packages to install. The first part is in
411 <tt
>/usr/share/tasksel/descs/isenkram.desc
</tt
> and look like
414 <p
><blockquote
><pre
>
417 Description: Hardware specific packages (autodetected by isenkram)
418 Based on the detected hardware various hardware specific packages are
420 Test-new-install: mark show
422 Packages: for-current-hardware
423 </pre
></blockquote
></p
>
425 <p
>The second part is in
426 <tt
>/usr/lib/tasksel/packages/for-current-hardware
</tt
> and look like
429 <p
><blockquote
><pre
>
434 isenkram-autoinstall-firmware -l
436 </pre
></blockquote
></p
>
438 <p
>All in all, a very short and simple implementation making it
439 trivial to install the hardware dependent package we all may want to
440 have installed on our machines. I
've not been able to find a way to
441 get tasksel to tell you exactly which packages it plan to install
442 before doing the installation. So if you are curious or careful,
443 check the output from the isenkram-* command line tools first.
</p
>
445 <p
>The information about which packages are handling which hardware is
446 fetched either from the isenkram package itself in
447 /usr/share/isenkram/, from git.debian.org or from the APT package
448 database (using the Modaliases header). The APT package database
449 parsing have caused a nasty resource leak in the isenkram daemon (bugs
450 <a href=
"http://bugs.debian.org/
719837">#
719837</a
> and
451 <a href=
"http://bugs.debian.org/
730704">#
730704</a
>). The cause is in
452 the python-apt code (bug
453 <a href=
"http://bugs.debian.org/
745487">#
745487</a
>), but using a
454 workaround I was able to get rid of the file descriptor leak and
455 reduce the memory leak from ~
30 MiB per hardware detection down to
456 around
2 MiB per hardware detection. It should make the desktop
457 daemon a lot more useful. The fix is in version
0.7 uploaded to
458 unstable today.
</p
>
460 <p
>I believe the current way of mapping hardware to packages in
461 Isenkram is is a good draft, but in the future I expect isenkram to
462 use the AppStream data source for this. A proposal for getting proper
463 AppStream support into Debian is floating around as
464 <a href=
"https://wiki.debian.org/DEP-
11">DEP-
11</a
>, and
465 <a href=
"https://wiki.debian.org/SummerOfCode2014/Projects#SummerOfCode2014.2FProjects
.2FAppStreamDEP11Implementation.AppStream
.2FDEP-
11_for_the_Debian_Archive
">GSoC
466 project
</a
> will take place this summer to improve the situation. I
467 look forward to seeing the result, and welcome patches for isenkram to
468 start using the information when it is ready.
</p
>
470 <p
>If you want your package to map to some specific hardware, either
471 add a
"Xb-Modaliases
" header to your control file like I did in
472 <a href=
"http://packages.qa.debian.org/pymissile
">the pymissile
473 package
</a
> or submit a bug report with the details to the isenkram
475 <a href=
"http://people.skolelinux.org/pere/blog/tags/isenkram/
">all my
476 blog posts tagged isenkram
</a
> for details on the notation. I expect
477 the information will be migrated to AppStream eventually, but for the
478 moment I got no better place to store it.
</p
>
483 <title>FreedomBox milestone - all packages now in Debian Sid
</title>
484 <link>http://people.skolelinux.org/pere/blog/FreedomBox_milestone___all_packages_now_in_Debian_Sid.html
</link>
485 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/FreedomBox_milestone___all_packages_now_in_Debian_Sid.html
</guid>
486 <pubDate>Tue,
15 Apr
2014 22:
10:
00 +
0200</pubDate>
487 <description><p
>The
<a href=
"https://wiki.debian.org/FreedomBox
">Freedombox
488 project
</a
> is working on providing the software and hardware to make
489 it easy for non-technical people to host their data and communication
490 at home, and being able to communicate with their friends and family
491 encrypted and away from prying eyes. It is still going strong, and
492 today a major mile stone was reached.
</p
>
494 <p
>Today, the last of the packages currently used by the project to
495 created the system images were accepted into Debian Unstable. It was
496 the freedombox-setup package, which is used to configure the images
497 during build and on the first boot. Now all one need to get going is
498 the build code from the freedom-maker git repository and packages from
499 Debian. And once the freedombox-setup package enter testing, we can
500 build everything directly from Debian. :)
</p
>
502 <p
>Some key packages used by Freedombox are
503 <a href=
"http://packages.qa.debian.org/freedombox-setup
">freedombox-setup
</a
>,
504 <a href=
"http://packages.qa.debian.org/plinth
">plinth
</a
>,
505 <a href=
"http://packages.qa.debian.org/pagekite
">pagekite
</a
>,
506 <a href=
"http://packages.qa.debian.org/tor
">tor
</a
>,
507 <a href=
"http://packages.qa.debian.org/privoxy
">privoxy
</a
>,
508 <a href=
"http://packages.qa.debian.org/owncloud
">owncloud
</a
> and
509 <a href=
"http://packages.qa.debian.org/dnsmasq
">dnsmasq
</a
>. There
510 are plans to integrate more packages into the setup. User
511 documentation is maintained on the Debian wiki. Please
512 <a href=
"https://wiki.debian.org/FreedomBox/Manual/Jessie
">check out
513 the manual
</a
> and help us improve it.
</p
>
515 <p
>To test for yourself and create boot images with the FreedomBox
516 setup, run this on a Debian machine using a user with sudo rights to
517 become root:
</p
>
520 sudo apt-get install git vmdebootstrap mercurial python-docutils \
521 mktorrent extlinux virtualbox qemu-user-static binfmt-support \
523 git clone http://anonscm.debian.org/git/freedombox/freedom-maker.git \
525 make -C freedom-maker dreamplug-image raspberry-image virtualbox-image
526 </pre
></p
>
528 <p
>Root access is needed to run debootstrap and mount loopback
529 devices. See the README in the freedom-maker git repo for more
530 details on the build. If you do not want all three images, trim the
531 make line. Note that the virtualbox-image target is not really
532 virtualbox specific. It create a x86 image usable in kvm, qemu,
533 vmware and any other x86 virtual machine environment. You might need
534 the version of vmdebootstrap in Jessie to get the build working, as it
535 include fixes for a race condition with kpartx.
</p
>
537 <p
>If you instead want to install using a Debian CD and the preseed
538 method, boot a Debian Wheezy ISO and use this boot argument to load
539 the preseed values:
</p
>
542 url=
<a href=
"http://www.reinholdtsen.name/freedombox/preseed-jessie.dat
">http://www.reinholdtsen.name/freedombox/preseed-jessie.dat
</a
>
543 </pre
></p
>
545 <p
>I have not tested it myself the last few weeks, so I do not know if
546 it still work.
</p
>
548 <p
>If you wonder how to help, one task you could look at is using
549 systemd as the boot system. It will become the default for Linux in
550 Jessie, so we need to make sure it is usable on the Freedombox. I did
551 a simple test a few weeks ago, and noticed dnsmasq failed to start
552 during boot when using systemd. I suspect there are other problems
553 too. :) To detect problems, there is a test suite included, which can
554 be run from the plinth web interface.
</p
>
556 <p
>Give it a go and let us know how it goes on the mailing list, and help
557 us get the new release published. :) Please join us on
558 <a href=
"irc://irc.debian.org:
6667/%
23freedombox
">IRC (#freedombox on
559 irc.debian.org)
</a
> and
560 <a href=
"http://lists.alioth.debian.org/mailman/listinfo/freedombox-discuss
">the
561 mailing list
</a
> if you want to help make this vision come true.
</p
>
566 <title>Språkkoder for POSIX locale i Norge
</title>
567 <link>http://people.skolelinux.org/pere/blog/Spr_kkoder_for_POSIX_locale_i_Norge.html
</link>
568 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Spr_kkoder_for_POSIX_locale_i_Norge.html
</guid>
569 <pubDate>Fri,
11 Apr
2014 21:
30:
00 +
0200</pubDate>
570 <description><p
>For
12 år siden, skrev jeg et lite notat om
571 <a href=
"http://i18n.skolelinux.no/localekoder.txt
">bruk av språkkoder
572 i Norge
</a
>. Jeg ble nettopp minnet på dette da jeg fikk spørsmål om
573 notatet fortsatt var aktuelt, og tenkte det var greit å repetere hva
574 som fortsatt gjelder. Det jeg skrev da er fortsatt like aktuelt.
</p
>
576 <p
>Når en velger språk i programmer på unix, så velger en blant mange
577 språkkoder. For språk i Norge anbefales følgende språkkoder (anbefalt
578 locale i parantes):
</p
>
581 <dt
>nb (nb_NO)
</dt
><dd
>Bokmål i Norge
</dd
>
582 <dt
>nn (nn_NO)
</dt
><dd
>Nynorsk i Norge
</dd
>
583 <dt
>se (se_NO)
</dt
><dd
>Nordsamisk i Norge
</dd
>
584 </dl
></p
>
586 <p
>Alle programmer som bruker andre koder bør endres.
</p
>
588 <p
>Språkkoden bør brukes når .po-filer navngis og installeres. Dette
589 er ikke det samme som locale-koden. For Norsk Bokmål, så bør filene
590 være navngitt nb.po, mens locale (LANG) bør være nb_NO.
</p
>
592 <p
>Hvis vi ikke får standardisert de kodene i alle programmene med
593 norske oversettelser, så er det umulig å gi LANG-variablen ett innhold
594 som fungerer for alle programmer.
</p
>
596 <p
>Språkkodene er de offisielle kodene fra ISO
639, og bruken av dem i
597 forbindelse med POSIX localer er standardisert i RFC
3066 og ISO
598 15897. Denne anbefalingen er i tråd med de angitte standardene.
</p
>
600 <p
>Følgende koder er eller har vært i bruk som locale-verdier for
601 "norske
" språk. Disse bør unngås, og erstattes når de oppdages:
</p
>
603 <p
><table
>
604 <tr
><td
>norwegian
</td
><td
>-
> nb_NO
</td
></tr
>
605 <tr
><td
>bokmål
</td
><td
>-
> nb_NO
</td
></tr
>
606 <tr
><td
>bokmal
</td
><td
>-
> nb_NO
</td
></tr
>
607 <tr
><td
>nynorsk
</td
><td
>-
> nn_NO
</td
></tr
>
608 <tr
><td
>no
</td
><td
>-
> nb_NO
</td
></tr
>
609 <tr
><td
>no_NO
</td
><td
>-
> nb_NO
</td
></tr
>
610 <tr
><td
>no_NY
</td
><td
>-
> nn_NO
</td
></tr
>
611 <tr
><td
>sme_NO
</td
><td
>-
> se_NO
</td
></tr
>
612 </table
></p
>
614 <p
>Merk at når det gjelder de samiske språkene, at se_NO i praksis
615 henviser til nordsamisk i Norge, mens f.eks. smj_NO henviser til
616 lulesamisk. Dette notatet er dog ikke ment å gi råd rundt samiske
618 <a href=
"http://www.divvun.no/
">Divvun-prosjektet
</a
> en bedre
621 <p
><strong
>Referanser:
</strong
></p
>
625 <li
><a href=
"http://www.rfc-base.org/rfc-
3066.html
">RFC
3066 - Tags
626 for the Identification of Languages
</a
> (Erstatter RFC
1766)
</li
>
628 <li
><a href=
"http://www.loc.gov/standards/iso639-
2/langcodes.html
">ISO
629 639</a
> - Codes for the Representation of Names of Languages
</li
>
631 <li
><a href=
"http://std.dkuug.dk/jtc1/sc22/wg20/docs/n897-
14652w25.pdf
">ISO
632 DTR
14652</a
> - locale-standard Specification method for cultural
633 conventions
</li
>
635 <li
><a href=
"http://std.dkuug.dk/jtc1/sc22/wg20/docs/n610.pdf
">ISO
636 15897: Registration procedures for cultural elements (cultural
638 <a href=
"http://std.dkuug.dk/jtc1/sc22/wg20/docs/n849-
15897wd6.pdf
">(nytt
639 draft)
</a
></li
>
641 <li
><a href=
"http://std.dkuug.dk/jtc1/sc22/wg20/
">ISO/IEC
642 JTC1/SC22/WG20
</a
> - Gruppen for i18n-standardisering i ISO
</li
>
649 <title>S3QL, a locally mounted cloud file system - nice free software
</title>
650 <link>http://people.skolelinux.org/pere/blog/S3QL__a_locally_mounted_cloud_file_system___nice_free_software.html
</link>
651 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/S3QL__a_locally_mounted_cloud_file_system___nice_free_software.html
</guid>
652 <pubDate>Wed,
9 Apr
2014 11:
30:
00 +
0200</pubDate>
653 <description><p
>For a while now, I have been looking for a sensible offsite backup
654 solution for use at home. My requirements are simple, it must be
655 cheap and locally encrypted (in other words, I keep the encryption
656 keys, the storage provider do not have access to my private files).
657 One idea me and my friends had many years ago, before the cloud
658 storage providers showed up, was to use Google mail as storage,
659 writing a Linux block device storing blocks as emails in the mail
660 service provided by Google, and thus get heaps of free space. On top
661 of this one can add encryption, RAID and volume management to have
662 lots of (fairly slow, I admit that) cheap and encrypted storage. But
663 I never found time to implement such system. But the last few weeks I
664 have looked at a system called
665 <a href=
"https://bitbucket.org/nikratio/s3ql/
">S3QL
</a
>, a locally
666 mounted network backed file system with the features I need.
</p
>
668 <p
>S3QL is a fuse file system with a local cache and cloud storage,
669 handling several different storage providers, any with Amazon S3,
670 Google Drive or OpenStack API. There are heaps of such storage
671 providers. S3QL can also use a local directory as storage, which
672 combined with sshfs allow for file storage on any ssh server. S3QL
673 include support for encryption, compression, de-duplication, snapshots
674 and immutable file systems, allowing me to mount the remote storage as
675 a local mount point, look at and use the files as if they were local,
676 while the content is stored in the cloud as well. This allow me to
677 have a backup that should survive fire. The file system can not be
678 shared between several machines at the same time, as only one can
679 mount it at the time, but any machine with the encryption key and
680 access to the storage service can mount it if it is unmounted.
</p
>
682 <p
>It is simple to use. I
'm using it on Debian Wheezy, where the
683 package is included already. So to get started, run
<tt
>apt-get
684 install s3ql
</tt
>. Next, pick a storage provider. I ended up picking
685 Greenqloud, after reading their nice recipe on
686 <a href=
"https://greenqloud.zendesk.com/entries/
44611757-How-To-Use-S3QL-to-mount-a-StorageQloud-bucket-on-Debian-Wheezy
">how
687 to use S3QL with their Amazon S3 service
</a
>, because I trust the laws
688 in Iceland more than those in USA when it come to keeping my personal
689 data safe and private, and thus would rather spend money on a company
690 in Iceland. Another nice recipe is available from the article
691 <a href=
"http://www.admin-magazine.com/HPC/Articles/HPC-Cloud-Storage
">S3QL
692 Filesystem for HPC Storage
</a
> by Jeff Layton in the HPC section of
693 Admin magazine. When the provider is picked, figure out how to get
694 the API key needed to connect to the storage API. With Greencloud,
695 the key did not show up until I had added payment details to my
698 <p
>Armed with the API access details, it is time to create the file
699 system. First, create a new bucket in the cloud. This bucket is the
700 file system storage area. I picked a bucket name reflecting the
701 machine that was going to store data there, but any name will do.
702 I
'll refer to it as
<tt
>bucket-name
</tt
> below. In addition, one need
703 the API login and password, and a locally created password. Store it
704 all in ~root/.s3ql/authinfo2 like this:
706 <p
><blockquote
><pre
>
708 storage-url: s3c://s.greenqloud.com:
443/bucket-name
709 backend-login: API-login
710 backend-password: API-password
711 fs-passphrase: local-password
712 </pre
></blockquote
></p
>
714 <p
>I create my local passphrase using
<tt
>pwget
50</tt
> or similar,
715 but any sensible way to create a fairly random password should do it.
716 Armed with these details, it is now time to run mkfs, entering the API
717 details and password to create it:
</p
>
719 <p
><blockquote
><pre
>
720 # mkdir -m
700 /var/lib/s3ql-cache
721 # mkfs.s3ql --cachedir /var/lib/s3ql-cache --authfile /root/.s3ql/authinfo2 \
722 --ssl s3c://s.greenqloud.com:
443/bucket-name
724 Enter backend password:
725 Before using S3QL, make sure to read the user
's guide, especially
726 the
'Important Rules to Avoid Loosing Data
' section.
727 Enter encryption password:
728 Confirm encryption password:
729 Generating random encryption key...
730 Creating metadata tables...
740 Compressing and uploading metadata...
741 Wrote
0.00 MB of compressed metadata.
742 #
</pre
></blockquote
></p
>
744 <p
>The next step is mounting the file system to make the storage available.
746 <p
><blockquote
><pre
>
747 # mount.s3ql --cachedir /var/lib/s3ql-cache --authfile /root/.s3ql/authinfo2 \
748 --ssl --allow-root s3c://s.greenqloud.com:
443/bucket-name /s3ql
749 Using
4 upload threads.
750 Downloading and decompressing metadata...
760 Mounting filesystem...
762 Filesystem Size Used Avail Use% Mounted on
763 s3c://s.greenqloud.com:
443/bucket-name
1.0T
0 1.0T
0% /s3ql
765 </pre
></blockquote
></p
>
767 <p
>The file system is now ready for use. I use rsync to store my
768 backups in it, and as the metadata used by rsync is downloaded at
769 mount time, no network traffic (and storage cost) is triggered by
770 running rsync. To unmount, one should not use the normal umount
771 command, as this will not flush the cache to the cloud storage, but
772 instead running the umount.s3ql command like this:
774 <p
><blockquote
><pre
>
777 </pre
></blockquote
></p
>
779 <p
>There is a fsck command available to check the file system and
780 correct any problems detected. This can be used if the local server
781 crashes while the file system is mounted, to reset the
"already
782 mounted
" flag. This is what it look like when processing a working
783 file system:
</p
>
785 <p
><blockquote
><pre
>
786 # fsck.s3ql --force --ssl s3c://s.greenqloud.com:
443/bucket-name
787 Using cached metadata.
788 File system seems clean, checking anyway.
789 Checking DB integrity...
790 Creating temporary extra indices...
791 Checking lost+found...
792 Checking cached objects...
793 Checking names (refcounts)...
794 Checking contents (names)...
795 Checking contents (inodes)...
796 Checking contents (parent inodes)...
797 Checking objects (reference counts)...
798 Checking objects (backend)...
799 ..processed
5000 objects so far..
800 ..processed
10000 objects so far..
801 ..processed
15000 objects so far..
802 Checking objects (sizes)...
803 Checking blocks (referenced objects)...
804 Checking blocks (refcounts)...
805 Checking inode-block mapping (blocks)...
806 Checking inode-block mapping (inodes)...
807 Checking inodes (refcounts)...
808 Checking inodes (sizes)...
809 Checking extended attributes (names)...
810 Checking extended attributes (inodes)...
811 Checking symlinks (inodes)...
812 Checking directory reachability...
813 Checking unix conventions...
814 Checking referential integrity...
815 Dropping temporary indices...
816 Backing up old metadata...
826 Compressing and uploading metadata...
827 Wrote
0.89 MB of compressed metadata.
829 </pre
></blockquote
></p
>
831 <p
>Thanks to the cache, working on files that fit in the cache is very
832 quick, about the same speed as local file access. Uploading large
833 amount of data is to me limited by the bandwidth out of and into my
834 house. Uploading
685 MiB with a
100 MiB cache gave me
305 kiB/s,
835 which is very close to my upload speed, and downloading the same
836 Debian installation ISO gave me
610 kiB/s, close to my download speed.
837 Both were measured using
<tt
>dd
</tt
>. So for me, the bottleneck is my
838 network, not the file system code. I do not know what a good cache
839 size would be, but suspect that the cache should e larger than your
840 working set.
</p
>
842 <p
>I mentioned that only one machine can mount the file system at the
843 time. If another machine try, it is told that the file system is
846 <p
><blockquote
><pre
>
847 # mount.s3ql --cachedir /var/lib/s3ql-cache --authfile /root/.s3ql/authinfo2 \
848 --ssl --allow-root s3c://s.greenqloud.com:
443/bucket-name /s3ql
849 Using
8 upload threads.
850 Backend reports that fs is still mounted elsewhere, aborting.
852 </pre
></blockquote
></p
>
854 <p
>The file content is uploaded when the cache is full, while the
855 metadata is uploaded once every
24 hour by default. To ensure the
856 file system content is flushed to the cloud, one can either umount the
857 file system, or ask S3QL to flush the cache and metadata using
860 <p
><blockquote
><pre
>
861 # s3qlctrl upload-meta /s3ql
862 # s3qlctrl flushcache /s3ql
864 </pre
></blockquote
></p
>
866 <p
>If you are curious about how much space your data uses in the
867 cloud, and how much compression and deduplication cut down on the
868 storage usage, you can use s3qlstat on the mounted file system to get
871 <p
><blockquote
><pre
>
873 Directory entries:
9141
876 Total data size:
22049.38 MB
877 After de-duplication:
21955.46 MB (
99.57% of total)
878 After compression:
21877.28 MB (
99.22% of total,
99.64% of de-duplicated)
879 Database size:
2.39 MB (uncompressed)
880 (some values do not take into account not-yet-uploaded dirty blocks in cache)
882 </pre
></blockquote
></p
>
884 <p
>I mentioned earlier that there are several possible suppliers of
885 storage. I did not try to locate them all, but am aware of at least
886 <a href=
"https://www.greenqloud.com/
">Greenqloud
</a
>,
887 <a href=
"http://drive.google.com/
">Google Drive
</a
>,
888 <a href=
"http://aws.amazon.com/s3/
">Amazon S3 web serivces
</a
>,
889 <a href=
"http://www.rackspace.com/
">Rackspace
</a
> and
890 <a href=
"http://crowncloud.net/
">Crowncloud
</A
>. The latter even
891 accept payment in Bitcoin. Pick one that suit your need. Some of
892 them provide several GiB of free storage, but the prize models are
893 quite different and you will have to figure out what suits you
896 <p
>While researching this blog post, I had a look at research papers
897 and posters discussing the S3QL file system. There are several, which
898 told me that the file system is getting a critical check by the
899 science community and increased my confidence in using it. One nice
901 "<a href=
"http://www.lanl.gov/orgs/adtsc/publications/science_highlights_2013/docs/pg68_69.pdf
">An
902 Innovative Parallel Cloud Storage System using OpenStack’s SwiftObject
903 Store and Transformative Parallel I/O Approach
</a
>" by Hsing-Bung
904 Chen, Benjamin McClelland, David Sherrill, Alfred Torrez, Parks Fields
905 and Pamela Smith. Please have a look.
</p
>
907 <p
>Given my problems with different file systems earlier, I decided to
908 check out the mounted S3QL file system to see if it would be usable as
909 a home directory (in other word, that it provided POSIX semantics when
910 it come to locking and umask handling etc). Running
911 <a href=
"http://people.skolelinux.org/pere/blog/Testing_if_a_file_system_can_be_used_for_home_directories___.html
">my
912 test code to check file system semantics
</a
>, I was happy to discover that
913 no error was found. So the file system can be used for home
914 directories, if one chooses to do so.
</p
>
916 <p
>If you do not want a locally file system, and want something that
917 work without the Linux fuse file system, I would like to mention the
918 <a href=
"http://www.tarsnap.com/
">Tarsnap service
</a
>, which also
919 provide locally encrypted backup using a command line client. It have
920 a nicer access control system, where one can split out read and write
921 access, allowing some systems to write to the backup and others to
922 only read from it.
</p
>
924 <p
>As usual, if you use Bitcoin and want to show your support of my
925 activities, please send Bitcoin donations to my address
926 <b
><a href=
"bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
&label=PetterReinholdtsenBlog
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a
></b
>.
</p
>