]> pere.pagekite.me Git - homepage.git/blob - blog/index.html
Generated.
[homepage.git] / blog / 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</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="http://people.skolelinux.org/pere/blog/index.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
22 <div class="entry">
23 <div class="title"><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></div>
24 <div class="date">17th June 2014</div>
25 <div class="body"><p>The <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux
26 project</a> provide an instruction manual for teachers, system
27 administrators and other users that contain useful tips for setting up
28 and maintaining a Debian Edu installation. This text is about how the
29 text processing of this manual is handled in the project.</p>
30
31 <p>One goal of the project is to provide information in the native
32 language of its users, and for this we need to handle translations.
33 But we also want to make sure each language contain the same
34 information, so for this we need a good way to keep the translations
35 in sync. And we want it to be easy for our users to improve the
36 documentation, avoiding the need to learn special formats or tools to
37 contribute, and the obvious way to do this is to make it possible to
38 edit the documentation using a web browser. We also want it to be
39 easy for translators to keep the translation up to date, and give them
40 help in figuring out what need to be translated. Here is the list of
41 tools and the process we have found trying to reach all these
42 goals.</p>
43
44 <p>We maintain the authoritative source of our manual in the
45 <a href="https://wiki.debian.org/DebianEdu/Documentation/Wheezy/">Debian
46 wiki</a>, as several wiki pages written in English. It consist of one
47 front page with references to the different chapters, several pages
48 for each chapter, and finally one "collection page" gluing all the
49 chapters together into one large web page (aka
50 <a href="https://wiki.debian.org/DebianEdu/Documentation/Wheezy/AllInOne">the
51 AllInOne page</a>). The AllInOne page is the one used for further
52 processing and translations. Thanks to the fact that the
53 <a href="http://moinmo.in/">MoinMoin</a> installation on
54 wiki.debian.org support exporting pages in
55 <a href="http://www.docbook.org/">the Docbook format</a>, we can fetch
56 the list of pages to export using the raw version of the AllInOne
57 page, loop over each of them to generate a Docbook XML version of the
58 manual. This process also download images and transform image
59 references to use the locally downloaded images. The generated
60 Docbook XML files are slightly broken, so some post-processing is done
61 using the <tt>documentation/scripts/get_manual</tt> program, and the
62 result is a nice Docbook XML file (debian-edu-wheezy-manual.xml) and
63 a handfull of images. The XML file can now be used to generate PDF, HTML
64 and epub versions of the English manual. This is the basic step of
65 our process, making PDF (using dblatex), HTML (using xsltproc) and
66 epub (using dbtoepub) version from Docbook XML, and the resulting files
67 are placed in the debian-edu-doc-en binary package.</p>
68
69 <p>But English documentation is not enough for us. We want translated
70 documentation too, and we want to make it easy for translators to
71 track the English original. For this we use the
72 <a href="http://packages.qa.debian.org/p/poxml.html">poxml</a> package,
73 which allow us to transform the English Docbook XML file into a
74 translation file (a .pot file), usable with the normal gettext based
75 translation tools used by those translating free software. The pot
76 file is used to create and maintain translation files (several .po
77 files), which the translations update with the native language
78 translations of all titles, paragraphs and blocks of text in the
79 original. The next step is combining the original English Docbook XML
80 and the translation file (say debian-edu-wheezy-manual.nb.po), to
81 create a translated Docbook XML file (in this case
82 debian-edu-wheezy-manual.nb.xml). This translated (or partly
83 translated, if the translation is not complete) Docbook XML file can
84 then be used like the original to create a PDF, HTML and epub version
85 of the documentation.</p>
86
87 <p>The translators use different tools to edit the .po files. We
88 recommend using
89 <a href="http://www.kde.org/applications/development/lokalize/">lokalize</a>,
90 while some use emacs and vi, others can use web based editors like
91 <a href="http://pootle.translatehouse.org/">Poodle</a> or
92 <a href="https://www.transifex.com/">Transifex</a>. All we care about
93 is where the .po file end up, in our git repository. Updated
94 translations can either be committed directly to git, or submitted as
95 <a href="https://bugs.debian.org/src:debian-edu-doc">bug reports
96 against the debian-edu-doc package</a>.</p>
97
98 <p>One challenge is images, which both might need to be translated (if
99 they show translated user applications), and are needed in different
100 formats when creating PDF and HTML versions (epub is a HTML version in
101 this regard). For this we transform the original PNG images to the
102 needed density and format during build, and have a way to provide
103 translated images by storing translated versions in
104 images/$LANGUAGECODE/. I am a bit unsure about the details here. The
105 package maintainers know more.</p>
106
107 <p>If you wonder what the result look like, we provide
108 <a href="http://maintainer.skolelinux.org/debian-edu-doc/">the content
109 of the documentation packages on the web</a>. See for example the
110 <a href="http://maintainer.skolelinux.org/debian-edu-doc/it/debian-edu-wheezy-manual.pdf">Italian
111 PDF version</a> or the
112 <a href="http://maintainer.skolelinux.org/debian-edu-doc/de/debian-edu-wheezy-manual.html">German
113 HTML version</a>. We do not yet build the epub version by default,
114 but perhaps it will be done in the future.</p>
115
116 <p>To learn more, check out
117 <a href="http://packages.qa.debian.org/d/debian-edu-doc.html">the
118 debian-edu-doc package</a>,
119 <a href="https://wiki.debian.org/DebianEdu/Documentation/Wheezy/">the
120 manual on the wiki</a> and
121 <a href="https://wiki.debian.org/DebianEdu/Documentation/Wheezy/Translations">the
122 translation instructions</a> in the manual.</p>
123 </div>
124 <div class="tags">
125
126
127 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>.
128
129
130 </div>
131 </div>
132 <div class="padding"></div>
133
134 <div class="entry">
135 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Hvordan_enkelt_laste_ned_filmer_fra_NRK_med_den__nye__l_sningen.html">Hvordan enkelt laste ned filmer fra NRK med den "nye" løsningen</a></div>
136 <div class="date">16th June 2014</div>
137 <div class="body"><p>Jeg har fortsatt behov for å kunne laste ned innslag fra NRKs
138 nettsted av og til for å se senere når jeg ikke er på nett, men
139 <a href="http://people.skolelinux.org/pere/blog/Hvordan_enkelt_laste_ned_filmer_fra_NRK.html">min
140 oppskrift fra 2011</a> sluttet å fungere da NRK byttet
141 avspillermetode. I dag fikk jeg endelig lett etter oppdatert løsning,
142 og jeg er veldig glad for å fortelle at den enkleste måten å laste ned
143 innslag er å bruke siste versjon 2014.06.07 av
144 <a href="http://rg3.github.io/youtube-dl/">youtube-dl</a>. Støtten i
145 youtube-dl <a href="https://github.com/rg3/youtube-dl/issues/2980">kom
146 inn for 23 dager siden</a> og
147 <a href="http://packages.qa.debian.org/y/youtube-dl.html">versjonen i
148 Debian</a> fungerer fint også som backport til Debian Wheezy. Det er
149 et lite problem, det håndterer kun URLer med små bokstaver, men hvis
150 en har en URL med store bokstaver kan en bare gjøre alle store om til
151 små bokstaver for å få youtube-dl til å laste ned. Rapporterte
152 nettopp
153 <a href="https://github.com/rg3/youtube-dl/issues/2980">problemet til
154 utviklerne</a>, og antar de får fikset det snart.</p>
155
156 <p>Dermed er alt klart til å laste ned dokumentarene om
157 <a href="http://tv.nrk.no/program/KOID23005014/usas-hemmelige-avlytting">USAs
158 hemmelige avlytting</a> og
159 <a href="http://tv.nrk.no/program/KOID23005114/selskapene-bak-usas-avlytting">Selskapene
160 bak USAs avlytting</a>, i tillegg til
161 <a href="http://tv.nrk.no/program/KOID20005814/et-moete-med-edward-snowden">intervjuet
162 med Edward Snowden gjort av den tyske tv-kanalen ARD</a>. Anbefaler
163 alle å se disse, sammen med
164 <a href="http://media.ccc.de/browse/congress/2013/30C3_-_5713_-_en_-_saal_2_-_201312301130_-_to_protect_and_infect_part_2_-_jacob.html">foredraget
165 til Jacob Appelbaum på siste CCC-konferanse</a>, for å forstå mer om
166 hvordan overvåkningen av borgerne brer om seg.</p>
167
168 <p>Takk til gode venner på foreningen NUUGs IRC-kanal
169 <a href="irc://irc.freenode.net/%23nuug">#nuug på irc.freenode.net</a>
170 for tipsene som fikk meg i mål</a>.</p>
171
172 <p><strong>Oppdatering 2014-06-17</strong>: Etter at jeg publiserte
173 denne, ble jeg tipset om bloggposten
174 "<a href="http://ingvar.blog.redpill-linpro.com/2012/05/31/downloading-hd-content-from-tv-nrk-no/">Downloading
175 HD content from tv.nrk.no</a>" av Ingvar Hagelund, som har alternativ
176 implementasjon og tips for å lage mkv-fil med undertekstene inkludert.
177 Kanskje den passer bedre for deg? I tillegg ble feilen i youtube-dl
178 ble fikset litt senere ut på dagen i går, samt at youtube-dl fikk
179 støtte for å laste ned undertitler. Takk til Anders Einar Hilden for
180 god innsats og youtube-dl-utviklerne for rask respons.</p>
181 </div>
182 <div class="tags">
183
184
185 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk</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>.
186
187
188 </div>
189 </div>
190 <div class="padding"></div>
191
192 <div class="entry">
193 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Free_software_car_computer_solution_.html">Free software car computer solution?</a></div>
194 <div class="date">29th May 2014</div>
195 <div class="body"><p>Dear lazyweb. I'm planning to set up a small Raspberry Pi computer
196 in my car, connected to
197 <a href="http://www.dx.com/p/400a-4-0-tft-lcd-digital-monitor-for-vehicle-parking-reverse-camera-1440x272-12v-dc-57776">a
198 small screen</a> next to the rear mirror. I plan to hook it up with a
199 GPS and a USB wifi card too. The idea is to get my own
200 "<a href="http://en.wikipedia.org/wiki/Carputer">Carputer</a>". But I
201 wonder if someone already created a good free software solution for
202 such car computer.</p>
203
204 <p>This is my current wish list for such system:</p>
205
206 <ul>
207
208 <li>Work on Raspberry Pi.</li>
209
210 <li>Show current speed limit based on location, and warn if going too
211 fast (for example using color codes yellow and red on the screen,
212 or make a sound). This could be done either using either data from
213 <a href="http://www.openstreetmap.org/">Openstreetmap</a> or OCR
214 info gathered from a dashboard camera.</li>
215
216 <li>Track automatic toll road passes and their cost, show total spent
217 and make it possible to calculate toll costs for planned
218 route.</li>
219
220 <li>Collect GPX tracks for use with OpenStreetMap.</li>
221
222 <li>Automatically detect and use any wireless connection to connect
223 to home server. Try IP over DNS
224 (<a href="http://dev.kryo.se/iodine/">iodine</a>) or ICMP
225 (<a href="http://code.gerade.org/hans/">Hans</a>) if direct
226 connection do not work.</li>
227
228 <li>Set up mesh network to talk to other cars with the same system,
229 or some standard car mesh protocol.</li>
230
231 <li>Warn when approaching speed cameras and speed camera ranges
232 (speed calculated between two cameras).</li>
233
234 <li>Suport dashboard/front facing camera to discover speed limits and
235 run OCR to track registration number of passing cars.</li>
236
237 </ul>
238
239 <p>If you know of any free software car computer system supporting
240 some or all of these features, please let me know.</p>
241 </div>
242 <div class="tags">
243
244
245 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
246
247
248 </div>
249 </div>
250 <div class="padding"></div>
251
252 <div class="entry">
253 <div class="title"><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></div>
254 <div class="date">29th April 2014</div>
255 <div class="body"><p>I've been following <a href="http://www.getgnash.org/">the Gnash
256 project</a> for quite a while now. It is a free software
257 implementation of Adobe Flash, both a standalone player and a browser
258 plugin. Gnash implement support for the AVM1 format (and not the
259 newer AVM2 format - see
260 <a href="http://lightspark.github.io/">Lightspark</a> for that one),
261 allowing several flash based sites to work. Thanks to the friendly
262 developers at Youtube, it also work with Youtube videos, because the
263 Javascript code at Youtube detect Gnash and serve a AVM1 player to
264 those users. :) Would be great if someone found time to implement AVM2
265 support, but it has not happened yet. If you install both Lightspark
266 and Gnash, Lightspark will invoke Gnash if it find a AVM1 flash file,
267 so you can get both handled as free software. Unfortunately,
268 Lightspark so far only implement a small subset of AVM2, and many
269 sites do not work yet.</p>
270
271 <p>A few months ago, I started looking at
272 <a href="http://scan.coverity.com/">Coverity</a>, the static source
273 checker used to find heaps and heaps of bugs in free software (thanks
274 to the donation of a scanning service to free software projects by the
275 company developing this non-free code checker), and Gnash was one of
276 the projects I decided to check out. Coverity is able to find lock
277 errors, memory errors, dead code and more. A few days ago they even
278 extended it to also be able to find the heartbleed bug in OpenSSL.
279 There are heaps of checks being done on the instrumented code, and the
280 amount of bogus warnings is quite low compared to the other static
281 code checkers I have tested over the years.</p>
282
283 <p>Since a few weeks ago, I've been working with the other Gnash
284 developers squashing bugs discovered by Coverity. I was quite happy
285 today when I checked the current status and saw that of the 777 issues
286 detected so far, 374 are marked as fixed. This make me confident that
287 the next Gnash release will be more stable and more dependable than
288 the previous one. Most of the reported issues were and are in the
289 test suite, but it also found a few in the rest of the code.</p>
290
291 <p>If you want to help out, you find us on
292 <a href="https://lists.gnu.org/mailman/listinfo/gnash-dev">the
293 gnash-dev mailing list</a> and on
294 <a href="irc://irc.freenode.net/#gnash">the #gnash channel on
295 irc.freenode.net IRC server</a>.</p>
296 </div>
297 <div class="tags">
298
299
300 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>.
301
302
303 </div>
304 </div>
305 <div class="padding"></div>
306
307 <div class="entry">
308 <div class="title"><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></div>
309 <div class="date">23rd April 2014</div>
310 <div class="body"><p>It would be nice if it was easier in Debian to get all the hardware
311 related packages relevant for the computer installed automatically.
312 So I implemented one, using
313 <a href="http://packages.qa.debian.org/isenkram">my Isenkram
314 package</a>. To use it, install the tasksel and isenkram packages and
315 run tasksel as user root. You should be presented with a new option,
316 "Hardware specific packages (autodetected by isenkram)". When you
317 select it, tasksel will install the packages isenkram claim is fit for
318 the current hardware, hot pluggable or not.<p>
319
320 <p>The implementation is in two files, one is the tasksel menu entry
321 description, and the other is the script used to extract the list of
322 packages to install. The first part is in
323 <tt>/usr/share/tasksel/descs/isenkram.desc</tt> and look like
324 this:</p>
325
326 <p><blockquote><pre>
327 Task: isenkram
328 Section: hardware
329 Description: Hardware specific packages (autodetected by isenkram)
330 Based on the detected hardware various hardware specific packages are
331 proposed.
332 Test-new-install: mark show
333 Relevance: 8
334 Packages: for-current-hardware
335 </pre></blockquote></p>
336
337 <p>The second part is in
338 <tt>/usr/lib/tasksel/packages/for-current-hardware</tt> and look like
339 this:</p>
340
341 <p><blockquote><pre>
342 #!/bin/sh
343 #
344 (
345 isenkram-lookup
346 isenkram-autoinstall-firmware -l
347 ) | sort -u
348 </pre></blockquote></p>
349
350 <p>All in all, a very short and simple implementation making it
351 trivial to install the hardware dependent package we all may want to
352 have installed on our machines. I've not been able to find a way to
353 get tasksel to tell you exactly which packages it plan to install
354 before doing the installation. So if you are curious or careful,
355 check the output from the isenkram-* command line tools first.</p>
356
357 <p>The information about which packages are handling which hardware is
358 fetched either from the isenkram package itself in
359 /usr/share/isenkram/, from git.debian.org or from the APT package
360 database (using the Modaliases header). The APT package database
361 parsing have caused a nasty resource leak in the isenkram daemon (bugs
362 <a href="http://bugs.debian.org/719837">#719837</a> and
363 <a href="http://bugs.debian.org/730704">#730704</a>). The cause is in
364 the python-apt code (bug
365 <a href="http://bugs.debian.org/745487">#745487</a>), but using a
366 workaround I was able to get rid of the file descriptor leak and
367 reduce the memory leak from ~30 MiB per hardware detection down to
368 around 2 MiB per hardware detection. It should make the desktop
369 daemon a lot more useful. The fix is in version 0.7 uploaded to
370 unstable today.</p>
371
372 <p>I believe the current way of mapping hardware to packages in
373 Isenkram is is a good draft, but in the future I expect isenkram to
374 use the AppStream data source for this. A proposal for getting proper
375 AppStream support into Debian is floating around as
376 <a href="https://wiki.debian.org/DEP-11">DEP-11</a>, and
377 <a href="https://wiki.debian.org/SummerOfCode2014/Projects#SummerOfCode2014.2FProjects.2FAppStreamDEP11Implementation.AppStream.2FDEP-11_for_the_Debian_Archive">GSoC
378 project</a> will take place this summer to improve the situation. I
379 look forward to seeing the result, and welcome patches for isenkram to
380 start using the information when it is ready.</p>
381
382 <p>If you want your package to map to some specific hardware, either
383 add a "Xb-Modaliases" header to your control file like I did in
384 <a href="http://packages.qa.debian.org/pymissile">the pymissile
385 package</a> or submit a bug report with the details to the isenkram
386 package. See also
387 <a href="http://people.skolelinux.org/pere/blog/tags/isenkram/">all my
388 blog posts tagged isenkram</a> for details on the notation. I expect
389 the information will be migrated to AppStream eventually, but for the
390 moment I got no better place to store it.</p>
391 </div>
392 <div class="tags">
393
394
395 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>.
396
397
398 </div>
399 </div>
400 <div class="padding"></div>
401
402 <div class="entry">
403 <div class="title"><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></div>
404 <div class="date">15th April 2014</div>
405 <div class="body"><p>The <a href="https://wiki.debian.org/FreedomBox">Freedombox
406 project</a> is working on providing the software and hardware to make
407 it easy for non-technical people to host their data and communication
408 at home, and being able to communicate with their friends and family
409 encrypted and away from prying eyes. It is still going strong, and
410 today a major mile stone was reached.</p>
411
412 <p>Today, the last of the packages currently used by the project to
413 created the system images were accepted into Debian Unstable. It was
414 the freedombox-setup package, which is used to configure the images
415 during build and on the first boot. Now all one need to get going is
416 the build code from the freedom-maker git repository and packages from
417 Debian. And once the freedombox-setup package enter testing, we can
418 build everything directly from Debian. :)</p>
419
420 <p>Some key packages used by Freedombox are
421 <a href="http://packages.qa.debian.org/freedombox-setup">freedombox-setup</a>,
422 <a href="http://packages.qa.debian.org/plinth">plinth</a>,
423 <a href="http://packages.qa.debian.org/pagekite">pagekite</a>,
424 <a href="http://packages.qa.debian.org/tor">tor</a>,
425 <a href="http://packages.qa.debian.org/privoxy">privoxy</a>,
426 <a href="http://packages.qa.debian.org/owncloud">owncloud</a> and
427 <a href="http://packages.qa.debian.org/dnsmasq">dnsmasq</a>. There
428 are plans to integrate more packages into the setup. User
429 documentation is maintained on the Debian wiki. Please
430 <a href="https://wiki.debian.org/FreedomBox/Manual/Jessie">check out
431 the manual</a> and help us improve it.</p>
432
433 <p>To test for yourself and create boot images with the FreedomBox
434 setup, run this on a Debian machine using a user with sudo rights to
435 become root:</p>
436
437 <p><pre>
438 sudo apt-get install git vmdebootstrap mercurial python-docutils \
439 mktorrent extlinux virtualbox qemu-user-static binfmt-support \
440 u-boot-tools
441 git clone http://anonscm.debian.org/git/freedombox/freedom-maker.git \
442 freedom-maker
443 make -C freedom-maker dreamplug-image raspberry-image virtualbox-image
444 </pre></p>
445
446 <p>Root access is needed to run debootstrap and mount loopback
447 devices. See the README in the freedom-maker git repo for more
448 details on the build. If you do not want all three images, trim the
449 make line. Note that the virtualbox-image target is not really
450 virtualbox specific. It create a x86 image usable in kvm, qemu,
451 vmware and any other x86 virtual machine environment. You might need
452 the version of vmdebootstrap in Jessie to get the build working, as it
453 include fixes for a race condition with kpartx.</p>
454
455 <p>If you instead want to install using a Debian CD and the preseed
456 method, boot a Debian Wheezy ISO and use this boot argument to load
457 the preseed values:</p>
458
459 <p><pre>
460 url=<a href="http://www.reinholdtsen.name/freedombox/preseed-jessie.dat">http://www.reinholdtsen.name/freedombox/preseed-jessie.dat</a>
461 </pre></p>
462
463 <p>I have not tested it myself the last few weeks, so I do not know if
464 it still work.</p>
465
466 <p>If you wonder how to help, one task you could look at is using
467 systemd as the boot system. It will become the default for Linux in
468 Jessie, so we need to make sure it is usable on the Freedombox. I did
469 a simple test a few weeks ago, and noticed dnsmasq failed to start
470 during boot when using systemd. I suspect there are other problems
471 too. :) To detect problems, there is a test suite included, which can
472 be run from the plinth web interface.</p>
473
474 <p>Give it a go and let us know how it goes on the mailing list, and help
475 us get the new release published. :) Please join us on
476 <a href="irc://irc.debian.org:6667/%23freedombox">IRC (#freedombox on
477 irc.debian.org)</a> and
478 <a href="http://lists.alioth.debian.org/mailman/listinfo/freedombox-discuss">the
479 mailing list</a> if you want to help make this vision come true.</p>
480 </div>
481 <div class="tags">
482
483
484 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>.
485
486
487 </div>
488 </div>
489 <div class="padding"></div>
490
491 <div class="entry">
492 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Spr_kkoder_for_POSIX_locale_i_Norge.html">Språkkoder for POSIX locale i Norge</a></div>
493 <div class="date">11th April 2014</div>
494 <div class="body"><p>For 12 år siden, skrev jeg et lite notat om
495 <a href="http://i18n.skolelinux.no/localekoder.txt">bruk av språkkoder
496 i Norge</a>. Jeg ble nettopp minnet på dette da jeg fikk spørsmål om
497 notatet fortsatt var aktuelt, og tenkte det var greit å repetere hva
498 som fortsatt gjelder. Det jeg skrev da er fortsatt like aktuelt.</p>
499
500 <p>Når en velger språk i programmer på unix, så velger en blant mange
501 språkkoder. For språk i Norge anbefales følgende språkkoder (anbefalt
502 locale i parantes):</p>
503
504 <p><dl>
505 <dt>nb (nb_NO)</dt><dd>Bokmål i Norge</dd>
506 <dt>nn (nn_NO)</dt><dd>Nynorsk i Norge</dd>
507 <dt>se (se_NO)</dt><dd>Nordsamisk i Norge</dd>
508 </dl></p>
509
510 <p>Alle programmer som bruker andre koder bør endres.</p>
511
512 <p>Språkkoden bør brukes når .po-filer navngis og installeres. Dette
513 er ikke det samme som locale-koden. For Norsk Bokmål, så bør filene
514 være navngitt nb.po, mens locale (LANG) bør være nb_NO.</p>
515
516 <p>Hvis vi ikke får standardisert de kodene i alle programmene med
517 norske oversettelser, så er det umulig å gi LANG-variablen ett innhold
518 som fungerer for alle programmer.</p>
519
520 <p>Språkkodene er de offisielle kodene fra ISO 639, og bruken av dem i
521 forbindelse med POSIX localer er standardisert i RFC 3066 og ISO
522 15897. Denne anbefalingen er i tråd med de angitte standardene.</p>
523
524 <p>Følgende koder er eller har vært i bruk som locale-verdier for
525 "norske" språk. Disse bør unngås, og erstattes når de oppdages:</p>
526
527 <p><table>
528 <tr><td>norwegian</td><td>-> nb_NO</td></tr>
529 <tr><td>bokmål </td><td>-> nb_NO</td></tr>
530 <tr><td>bokmal </td><td>-> nb_NO</td></tr>
531 <tr><td>nynorsk </td><td>-> nn_NO</td></tr>
532 <tr><td>no </td><td>-> nb_NO</td></tr>
533 <tr><td>no_NO </td><td>-> nb_NO</td></tr>
534 <tr><td>no_NY </td><td>-> nn_NO</td></tr>
535 <tr><td>sme_NO </td><td>-> se_NO</td></tr>
536 </table></p>
537
538 <p>Merk at når det gjelder de samiske språkene, at se_NO i praksis
539 henviser til nordsamisk i Norge, mens f.eks. smj_NO henviser til
540 lulesamisk. Dette notatet er dog ikke ment å gi råd rundt samiske
541 språkkoder, der gjør
542 <a href="http://www.divvun.no/">Divvun-prosjektet</a> en bedre
543 jobb.</p>
544
545 <p><strong>Referanser:</strong></p>
546
547 <ul>
548
549 <li><a href="http://www.rfc-base.org/rfc-3066.html">RFC 3066 - Tags
550 for the Identification of Languages</a> (Erstatter RFC 1766)</li>
551
552 <li><a href="http://www.loc.gov/standards/iso639-2/langcodes.html">ISO
553 639</a> - Codes for the Representation of Names of Languages</li>
554
555 <li><a href="http://std.dkuug.dk/jtc1/sc22/wg20/docs/n897-14652w25.pdf">ISO
556 DTR 14652</a> - locale-standard Specification method for cultural
557 conventions</li>
558
559 <li><a href="http://std.dkuug.dk/jtc1/sc22/wg20/docs/n610.pdf">ISO
560 15897: Registration procedures for cultural elements (cultural
561 registry)</a>,
562 <a href="http://std.dkuug.dk/jtc1/sc22/wg20/docs/n849-15897wd6.pdf">(nytt
563 draft)</a></li>
564
565 <li><a href="http://std.dkuug.dk/jtc1/sc22/wg20/">ISO/IEC
566 JTC1/SC22/WG20</a> - Gruppen for i18n-standardisering i ISO</li>
567
568 <ul>
569 </div>
570 <div class="tags">
571
572
573 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk</a>.
574
575
576 </div>
577 </div>
578 <div class="padding"></div>
579
580 <div class="entry">
581 <div class="title"><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></div>
582 <div class="date"> 9th April 2014</div>
583 <div class="body"><p>For a while now, I have been looking for a sensible offsite backup
584 solution for use at home. My requirements are simple, it must be
585 cheap and locally encrypted (in other words, I keep the encryption
586 keys, the storage provider do not have access to my private files).
587 One idea me and my friends had many years ago, before the cloud
588 storage providers showed up, was to use Google mail as storage,
589 writing a Linux block device storing blocks as emails in the mail
590 service provided by Google, and thus get heaps of free space. On top
591 of this one can add encryption, RAID and volume management to have
592 lots of (fairly slow, I admit that) cheap and encrypted storage. But
593 I never found time to implement such system. But the last few weeks I
594 have looked at a system called
595 <a href="https://bitbucket.org/nikratio/s3ql/">S3QL</a>, a locally
596 mounted network backed file system with the features I need.</p>
597
598 <p>S3QL is a fuse file system with a local cache and cloud storage,
599 handling several different storage providers, any with Amazon S3,
600 Google Drive or OpenStack API. There are heaps of such storage
601 providers. S3QL can also use a local directory as storage, which
602 combined with sshfs allow for file storage on any ssh server. S3QL
603 include support for encryption, compression, de-duplication, snapshots
604 and immutable file systems, allowing me to mount the remote storage as
605 a local mount point, look at and use the files as if they were local,
606 while the content is stored in the cloud as well. This allow me to
607 have a backup that should survive fire. The file system can not be
608 shared between several machines at the same time, as only one can
609 mount it at the time, but any machine with the encryption key and
610 access to the storage service can mount it if it is unmounted.</p>
611
612 <p>It is simple to use. I'm using it on Debian Wheezy, where the
613 package is included already. So to get started, run <tt>apt-get
614 install s3ql</tt>. Next, pick a storage provider. I ended up picking
615 Greenqloud, after reading their nice recipe on
616 <a href="https://greenqloud.zendesk.com/entries/44611757-How-To-Use-S3QL-to-mount-a-StorageQloud-bucket-on-Debian-Wheezy">how
617 to use S3QL with their Amazon S3 service</a>, because I trust the laws
618 in Iceland more than those in USA when it come to keeping my personal
619 data safe and private, and thus would rather spend money on a company
620 in Iceland. Another nice recipe is available from the article
621 <a href="http://www.admin-magazine.com/HPC/Articles/HPC-Cloud-Storage">S3QL
622 Filesystem for HPC Storage</a> by Jeff Layton in the HPC section of
623 Admin magazine. When the provider is picked, figure out how to get
624 the API key needed to connect to the storage API. With Greencloud,
625 the key did not show up until I had added payment details to my
626 account.</p>
627
628 <p>Armed with the API access details, it is time to create the file
629 system. First, create a new bucket in the cloud. This bucket is the
630 file system storage area. I picked a bucket name reflecting the
631 machine that was going to store data there, but any name will do.
632 I'll refer to it as <tt>bucket-name</tt> below. In addition, one need
633 the API login and password, and a locally created password. Store it
634 all in ~root/.s3ql/authinfo2 like this:
635
636 <p><blockquote><pre>
637 [s3c]
638 storage-url: s3c://s.greenqloud.com:443/bucket-name
639 backend-login: API-login
640 backend-password: API-password
641 fs-passphrase: local-password
642 </pre></blockquote></p>
643
644 <p>I create my local passphrase using <tt>pwget 50</tt> or similar,
645 but any sensible way to create a fairly random password should do it.
646 Armed with these details, it is now time to run mkfs, entering the API
647 details and password to create it:</p>
648
649 <p><blockquote><pre>
650 # mkdir -m 700 /var/lib/s3ql-cache
651 # mkfs.s3ql --cachedir /var/lib/s3ql-cache --authfile /root/.s3ql/authinfo2 \
652 --ssl s3c://s.greenqloud.com:443/bucket-name
653 Enter backend login:
654 Enter backend password:
655 Before using S3QL, make sure to read the user's guide, especially
656 the 'Important Rules to Avoid Loosing Data' section.
657 Enter encryption password:
658 Confirm encryption password:
659 Generating random encryption key...
660 Creating metadata tables...
661 Dumping metadata...
662 ..objects..
663 ..blocks..
664 ..inodes..
665 ..inode_blocks..
666 ..symlink_targets..
667 ..names..
668 ..contents..
669 ..ext_attributes..
670 Compressing and uploading metadata...
671 Wrote 0.00 MB of compressed metadata.
672 # </pre></blockquote></p>
673
674 <p>The next step is mounting the file system to make the storage available.
675
676 <p><blockquote><pre>
677 # mount.s3ql --cachedir /var/lib/s3ql-cache --authfile /root/.s3ql/authinfo2 \
678 --ssl --allow-root s3c://s.greenqloud.com:443/bucket-name /s3ql
679 Using 4 upload threads.
680 Downloading and decompressing metadata...
681 Reading metadata...
682 ..objects..
683 ..blocks..
684 ..inodes..
685 ..inode_blocks..
686 ..symlink_targets..
687 ..names..
688 ..contents..
689 ..ext_attributes..
690 Mounting filesystem...
691 # df -h /s3ql
692 Filesystem Size Used Avail Use% Mounted on
693 s3c://s.greenqloud.com:443/bucket-name 1.0T 0 1.0T 0% /s3ql
694 #
695 </pre></blockquote></p>
696
697 <p>The file system is now ready for use. I use rsync to store my
698 backups in it, and as the metadata used by rsync is downloaded at
699 mount time, no network traffic (and storage cost) is triggered by
700 running rsync. To unmount, one should not use the normal umount
701 command, as this will not flush the cache to the cloud storage, but
702 instead running the umount.s3ql command like this:
703
704 <p><blockquote><pre>
705 # umount.s3ql /s3ql
706 #
707 </pre></blockquote></p>
708
709 <p>There is a fsck command available to check the file system and
710 correct any problems detected. This can be used if the local server
711 crashes while the file system is mounted, to reset the "already
712 mounted" flag. This is what it look like when processing a working
713 file system:</p>
714
715 <p><blockquote><pre>
716 # fsck.s3ql --force --ssl s3c://s.greenqloud.com:443/bucket-name
717 Using cached metadata.
718 File system seems clean, checking anyway.
719 Checking DB integrity...
720 Creating temporary extra indices...
721 Checking lost+found...
722 Checking cached objects...
723 Checking names (refcounts)...
724 Checking contents (names)...
725 Checking contents (inodes)...
726 Checking contents (parent inodes)...
727 Checking objects (reference counts)...
728 Checking objects (backend)...
729 ..processed 5000 objects so far..
730 ..processed 10000 objects so far..
731 ..processed 15000 objects so far..
732 Checking objects (sizes)...
733 Checking blocks (referenced objects)...
734 Checking blocks (refcounts)...
735 Checking inode-block mapping (blocks)...
736 Checking inode-block mapping (inodes)...
737 Checking inodes (refcounts)...
738 Checking inodes (sizes)...
739 Checking extended attributes (names)...
740 Checking extended attributes (inodes)...
741 Checking symlinks (inodes)...
742 Checking directory reachability...
743 Checking unix conventions...
744 Checking referential integrity...
745 Dropping temporary indices...
746 Backing up old metadata...
747 Dumping metadata...
748 ..objects..
749 ..blocks..
750 ..inodes..
751 ..inode_blocks..
752 ..symlink_targets..
753 ..names..
754 ..contents..
755 ..ext_attributes..
756 Compressing and uploading metadata...
757 Wrote 0.89 MB of compressed metadata.
758 #
759 </pre></blockquote></p>
760
761 <p>Thanks to the cache, working on files that fit in the cache is very
762 quick, about the same speed as local file access. Uploading large
763 amount of data is to me limited by the bandwidth out of and into my
764 house. Uploading 685 MiB with a 100 MiB cache gave me 305 kiB/s,
765 which is very close to my upload speed, and downloading the same
766 Debian installation ISO gave me 610 kiB/s, close to my download speed.
767 Both were measured using <tt>dd</tt>. So for me, the bottleneck is my
768 network, not the file system code. I do not know what a good cache
769 size would be, but suspect that the cache should e larger than your
770 working set.</p>
771
772 <p>I mentioned that only one machine can mount the file system at the
773 time. If another machine try, it is told that the file system is
774 busy:</p>
775
776 <p><blockquote><pre>
777 # mount.s3ql --cachedir /var/lib/s3ql-cache --authfile /root/.s3ql/authinfo2 \
778 --ssl --allow-root s3c://s.greenqloud.com:443/bucket-name /s3ql
779 Using 8 upload threads.
780 Backend reports that fs is still mounted elsewhere, aborting.
781 #
782 </pre></blockquote></p>
783
784 <p>The file content is uploaded when the cache is full, while the
785 metadata is uploaded once every 24 hour by default. To ensure the
786 file system content is flushed to the cloud, one can either umount the
787 file system, or ask S3QL to flush the cache and metadata using
788 s3qlctrl:
789
790 <p><blockquote><pre>
791 # s3qlctrl upload-meta /s3ql
792 # s3qlctrl flushcache /s3ql
793 #
794 </pre></blockquote></p>
795
796 <p>If you are curious about how much space your data uses in the
797 cloud, and how much compression and deduplication cut down on the
798 storage usage, you can use s3qlstat on the mounted file system to get
799 a report:</p>
800
801 <p><blockquote><pre>
802 # s3qlstat /s3ql
803 Directory entries: 9141
804 Inodes: 9143
805 Data blocks: 8851
806 Total data size: 22049.38 MB
807 After de-duplication: 21955.46 MB (99.57% of total)
808 After compression: 21877.28 MB (99.22% of total, 99.64% of de-duplicated)
809 Database size: 2.39 MB (uncompressed)
810 (some values do not take into account not-yet-uploaded dirty blocks in cache)
811 #
812 </pre></blockquote></p>
813
814 <p>I mentioned earlier that there are several possible suppliers of
815 storage. I did not try to locate them all, but am aware of at least
816 <a href="https://www.greenqloud.com/">Greenqloud</a>,
817 <a href="http://drive.google.com/">Google Drive</a>,
818 <a href="http://aws.amazon.com/s3/">Amazon S3 web serivces</a>,
819 <a href="http://www.rackspace.com/">Rackspace</a> and
820 <a href="http://crowncloud.net/">Crowncloud</A>. The latter even
821 accept payment in Bitcoin. Pick one that suit your need. Some of
822 them provide several GiB of free storage, but the prize models are
823 quite different and you will have to figure out what suits you
824 best.</p>
825
826 <p>While researching this blog post, I had a look at research papers
827 and posters discussing the S3QL file system. There are several, which
828 told me that the file system is getting a critical check by the
829 science community and increased my confidence in using it. One nice
830 poster is titled
831 "<a href="http://www.lanl.gov/orgs/adtsc/publications/science_highlights_2013/docs/pg68_69.pdf">An
832 Innovative Parallel Cloud Storage System using OpenStack’s SwiftObject
833 Store and Transformative Parallel I/O Approach</a>" by Hsing-Bung
834 Chen, Benjamin McClelland, David Sherrill, Alfred Torrez, Parks Fields
835 and Pamela Smith. Please have a look.</p>
836
837 <p>Given my problems with different file systems earlier, I decided to
838 check out the mounted S3QL file system to see if it would be usable as
839 a home directory (in other word, that it provided POSIX semantics when
840 it come to locking and umask handling etc). Running
841 <a href="http://people.skolelinux.org/pere/blog/Testing_if_a_file_system_can_be_used_for_home_directories___.html">my
842 test code to check file system semantics</a>, I was happy to discover that
843 no error was found. So the file system can be used for home
844 directories, if one chooses to do so.</p>
845
846 <p>If you do not want a locally file system, and want something that
847 work without the Linux fuse file system, I would like to mention the
848 <a href="http://www.tarsnap.com/">Tarsnap service</a>, which also
849 provide locally encrypted backup using a command line client. It have
850 a nicer access control system, where one can split out read and write
851 access, allowing some systems to write to the backup and others to
852 only read from it.</p>
853
854 <p>As usual, if you use Bitcoin and want to show your support of my
855 activities, please send Bitcoin donations to my address
856 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&label=PetterReinholdtsenBlog">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
857 </div>
858 <div class="tags">
859
860
861 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>.
862
863
864 </div>
865 </div>
866 <div class="padding"></div>
867
868 <div class="entry">
869 <div class="title"><a href="http://people.skolelinux.org/pere/blog/EU_domstolen_bekreftet_i_dag_at_datalagringsdirektivet_er_ulovlig.html">EU-domstolen bekreftet i dag at datalagringsdirektivet er ulovlig</a></div>
870 <div class="date"> 8th April 2014</div>
871 <div class="body"><p>I dag kom endelig avgjørelsen fra EU-domstolen om
872 datalagringsdirektivet, som ikke overraskende ble dømt ulovlig og i
873 strid med borgernes grunnleggende rettigheter. Hvis du lurer på hva
874 datalagringsdirektivet er for noe, så er det
875 <a href="http://tv.nrk.no/program/koid75005313/tema-dine-digitale-spor-datalagringsdirektivet">en
876 flott dokumentar tilgjengelig hos NRK</a> som jeg tidligere
877 <a href="http://people.skolelinux.org/pere/blog/Dokumentaren_om_Datalagringsdirektivet_sendes_endelig_p__NRK.html">har
878 anbefalt</a> alle å se.</p>
879
880 <p>Her er et liten knippe nyhetsoppslag om saken, og jeg regner med at
881 det kommer flere ut over dagen. Flere kan finnes
882 <a href="http://www.mylder.no/?drill=datalagringsdirektivet&intern=1">via
883 mylder</a>.</p>
884
885 <p><ul>
886
887 <li><a href="http://e24.no/digital/eu-domstolen-datalagringsdirektivet-er-ugyldig/22879592">EU-domstolen:
888 Datalagringsdirektivet er ugyldig</a> - e24.no 2014-04-08
889
890 <li><a href="http://www.aftenposten.no/nyheter/iriks/EU-domstolen-Datalagringsdirektivet-er-ulovlig-7529032.html">EU-domstolen:
891 Datalagringsdirektivet er ulovlig</a> - aftenposten.no 2014-04-08
892
893 <li><a href="http://www.aftenposten.no/nyheter/iriks/politikk/Krever-DLD-stopp-i-Norge-7530086.html">Krever
894 DLD-stopp i Norge</a> - aftenposten.no 2014-04-08
895
896 <li><a href="http://www.p4.no/story.aspx?id=566431">Apenes: - En
897 gledens dag</a> - p4.no 2014-04-08
898
899 <li><a href="http://www.nrk.no/norge/_-datalagringsdirektivet-er-ugyldig-1.11655929">EU-domstolen:
900 – Datalagringsdirektivet er ugyldig</a> - nrk.no 2014-04-08</li>
901
902 <li><a href="http://www.vg.no/nyheter/utenriks/data-og-nett/eu-domstolen-datalagringsdirektivet-er-ugyldig/a/10130280/">EU-domstolen:
903 Datalagringsdirektivet er ugyldig</a> - vg.no 2014-04-08</li>
904
905 <li><a href="http://www.dagbladet.no/2014/04/08/nyheter/innenriks/datalagringsdirektivet/personvern/32711646/">-
906 Vi bør skrote hele datalagringsdirektivet</a> - dagbladet.no
907 2014-04-08</li>
908
909 <li><a href="http://www.digi.no/928137/eu-domstolen-dld-er-ugyldig">EU-domstolen:
910 DLD er ugyldig</a> - digi.no 2014-04-08</li>
911
912 <li><a href="http://www.irishtimes.com/business/sectors/technology/european-court-declares-data-retention-directive-invalid-1.1754150">European
913 court declares data retention directive invalid</a> - irishtimes.com
914 2014-04-08</li>
915
916 <li><a href="http://www.reuters.com/article/2014/04/08/us-eu-data-ruling-idUSBREA370F020140408?feedType=RSS">EU
917 court rules against requirement to keep data of telecom users</a> -
918 reuters.com 2014-04-08</li>
919
920 </ul>
921 </p>
922
923 <p>Jeg synes det er veldig fint at nok en stemme slår fast at
924 totalitær overvåkning av befolkningen er uakseptabelt, men det er
925 fortsatt like viktig å beskytte privatsfæren som før, da de
926 teknologiske mulighetene fortsatt finnes og utnyttes, og jeg tror
927 innsats i prosjekter som
928 <a href="https://wiki.debian.org/FreedomBox">Freedombox</a> og
929 <a href="http://www.dugnadsnett.no/">Dugnadsnett</a> er viktigere enn
930 noen gang.</p>
931
932 <p><strong>Update 2014-04-08 12:10</strong>: Kronerullingen for å
933 stoppe datalagringsdirektivet i Norge gjøres hos foreningen
934 <a href="http://www.digitaltpersonvern.no/">Digitalt Personvern</a>,
935 som har samlet inn 843 215,- så langt men trenger nok mye mer hvis
936
937 ikke Høyre og Arbeiderpartiet bytter mening i saken. Det var
938 <a href="http://www.holderdeord.no/parliament-issues/48650">kun
939 partinene Høyre og Arbeiderpartiet</a> som stemte for
940 Datalagringsdirektivet, og en av dem må bytte mening for at det skal
941 bli flertall mot i Stortinget. Se mer om saken
942 <a href="http://www.holderdeord.no/issues/69-innfore-datalagringsdirektivet">Holder
943 de ord</a>.</p>
944 </div>
945 <div class="tags">
946
947
948 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/dld">dld</a>, <a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk</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>.
949
950
951 </div>
952 </div>
953 <div class="padding"></div>
954
955 <div class="entry">
956 <div class="title"><a href="http://people.skolelinux.org/pere/blog/ReactOS_Windows_clone___nice_free_software.html">ReactOS Windows clone - nice free software</a></div>
957 <div class="date"> 1st April 2014</div>
958 <div class="body"><p>Microsoft have announced that Windows XP reaches its end of life
959 2014-04-08, in 7 days. But there are heaps of machines still running
960 Windows XP, and depending on Windows XP to run their applications, and
961 upgrading will be expensive, both when it comes to money and when it
962 comes to the amount of effort needed to migrate from Windows XP to a
963 new operating system. Some obvious options (buy new a Windows
964 machine, buy a MacOSX machine, install Linux on the existing machine)
965 are already well known and covered elsewhere. Most of them involve
966 leaving the user applications installed on Windows XP behind and
967 trying out replacements or updated versions. In this blog post I want
968 to mention one strange bird that allow people to keep the hardware and
969 the existing Windows XP applications and run them on a free software
970 operating system that is Windows XP compatible.</p>
971
972 <p><a href="http://www.reactos.org/">ReactOS</a> is a free software
973 operating system (GNU GPL licensed) working on providing a operating
974 system that is binary compatible with Windows, able to run windows
975 programs directly and to use Windows drivers for hardware directly.
976 The project goal is for Windows user to keep their existing machines,
977 drivers and software, and gain the advantages from user a operating
978 system without usage limitations caused by non-free licensing. It is
979 a Windows clone running directly on the hardware, so quite different
980 from the approach taken by <a href="http://www.winehq.org/">the Wine
981 project</a>, which make it possible to run Windows binaries on
982 Linux.</p>
983
984 <p>The ReactOS project share code with the Wine project, so most
985 shared libraries available on Windows are already implemented already.
986 There is also a software manager like the one we are used to on Linux,
987 allowing the user to install free software applications with a simple
988 click directly from the Internet. Check out the
989 <a href="http://www.reactos.org/screenshots">screen shots on the
990 project web site</a> for an idea what it look like (it looks just like
991 Windows before metro).</p>
992
993 <p>I do not use ReactOS myself, preferring Linux and Unix like
994 operating systems. I've tested it, and it work fine in a virt-manager
995 virtual machine. The browser, minesweeper, notepad etc is working
996 fine as far as I can tell. Unfortunately, my main test application
997 is the software included on a CD with the Lego Mindstorms NXT, which
998 seem to install just fine from CD but fail to leave any binaries on
999 the disk after the installation. So no luck with that test software.
1000 No idea why, but hope someone else figure out and fix the problem.
1001 I've tried the ReactOS Live ISO on a physical machine, and it seemed
1002 to work just fine. If you like Windows and want to keep running your
1003 old Windows binaries, check it out by
1004 <a href="http://www.reactos.org/download">downloading</a> the
1005 installation CD, the live CD or the preinstalled virtual machine
1006 image.</p>
1007 </div>
1008 <div class="tags">
1009
1010
1011 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/reactos">reactos</a>.
1012
1013
1014 </div>
1015 </div>
1016 <div class="padding"></div>
1017
1018 <p style="text-align: right;"><a href="index.rss"><img src="http://people.skolelinux.org/pere/blog/xml.gif" alt="RSS feed" width="36" height="14" /></a></p>
1019 <div id="sidebar">
1020
1021
1022
1023 <h2>Archive</h2>
1024 <ul>
1025
1026 <li>2014
1027 <ul>
1028
1029 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/01/">January (2)</a></li>
1030
1031 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/02/">February (3)</a></li>
1032
1033 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/03/">March (8)</a></li>
1034
1035 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/04/">April (7)</a></li>
1036
1037 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/05/">May (1)</a></li>
1038
1039 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/06/">June (2)</a></li>
1040
1041 </ul></li>
1042
1043 <li>2013
1044 <ul>
1045
1046 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/01/">January (11)</a></li>
1047
1048 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/02/">February (9)</a></li>
1049
1050 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/03/">March (9)</a></li>
1051
1052 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/04/">April (6)</a></li>
1053
1054 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/05/">May (9)</a></li>
1055
1056 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/06/">June (10)</a></li>
1057
1058 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/07/">July (7)</a></li>
1059
1060 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/08/">August (3)</a></li>
1061
1062 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/09/">September (5)</a></li>
1063
1064 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/10/">October (7)</a></li>
1065
1066 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/11/">November (9)</a></li>
1067
1068 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/12/">December (3)</a></li>
1069
1070 </ul></li>
1071
1072 <li>2012
1073 <ul>
1074
1075 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/01/">January (7)</a></li>
1076
1077 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/02/">February (10)</a></li>
1078
1079 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/03/">March (17)</a></li>
1080
1081 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/04/">April (12)</a></li>
1082
1083 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/05/">May (12)</a></li>
1084
1085 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/06/">June (20)</a></li>
1086
1087 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/07/">July (17)</a></li>
1088
1089 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/08/">August (6)</a></li>
1090
1091 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/09/">September (9)</a></li>
1092
1093 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/10/">October (17)</a></li>
1094
1095 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/11/">November (10)</a></li>
1096
1097 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/12/">December (7)</a></li>
1098
1099 </ul></li>
1100
1101 <li>2011
1102 <ul>
1103
1104 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/01/">January (16)</a></li>
1105
1106 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/02/">February (6)</a></li>
1107
1108 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/03/">March (6)</a></li>
1109
1110 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/04/">April (7)</a></li>
1111
1112 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/05/">May (3)</a></li>
1113
1114 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/06/">June (2)</a></li>
1115
1116 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/07/">July (7)</a></li>
1117
1118 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/08/">August (6)</a></li>
1119
1120 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/09/">September (4)</a></li>
1121
1122 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/10/">October (2)</a></li>
1123
1124 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/11/">November (3)</a></li>
1125
1126 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/12/">December (1)</a></li>
1127
1128 </ul></li>
1129
1130 <li>2010
1131 <ul>
1132
1133 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/01/">January (2)</a></li>
1134
1135 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/02/">February (1)</a></li>
1136
1137 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/03/">March (3)</a></li>
1138
1139 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/04/">April (3)</a></li>
1140
1141 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/05/">May (9)</a></li>
1142
1143 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/06/">June (14)</a></li>
1144
1145 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/07/">July (12)</a></li>
1146
1147 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/08/">August (13)</a></li>
1148
1149 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/09/">September (7)</a></li>
1150
1151 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/10/">October (9)</a></li>
1152
1153 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/11/">November (13)</a></li>
1154
1155 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/12/">December (12)</a></li>
1156
1157 </ul></li>
1158
1159 <li>2009
1160 <ul>
1161
1162 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/01/">January (8)</a></li>
1163
1164 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/02/">February (8)</a></li>
1165
1166 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/03/">March (12)</a></li>
1167
1168 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/04/">April (10)</a></li>
1169
1170 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/05/">May (9)</a></li>
1171
1172 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/06/">June (3)</a></li>
1173
1174 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/07/">July (4)</a></li>
1175
1176 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/08/">August (3)</a></li>
1177
1178 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/09/">September (1)</a></li>
1179
1180 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/10/">October (2)</a></li>
1181
1182 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/11/">November (3)</a></li>
1183
1184 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/12/">December (3)</a></li>
1185
1186 </ul></li>
1187
1188 <li>2008
1189 <ul>
1190
1191 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/11/">November (5)</a></li>
1192
1193 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/12/">December (7)</a></li>
1194
1195 </ul></li>
1196
1197 </ul>
1198
1199
1200
1201 <h2>Tags</h2>
1202 <ul>
1203
1204 <li><a href="http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (13)</a></li>
1205
1206 <li><a href="http://people.skolelinux.org/pere/blog/tags/amiga">amiga (1)</a></li>
1207
1208 <li><a href="http://people.skolelinux.org/pere/blog/tags/aros">aros (1)</a></li>
1209
1210 <li><a href="http://people.skolelinux.org/pere/blog/tags/bankid">bankid (4)</a></li>
1211
1212 <li><a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (8)</a></li>
1213
1214 <li><a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (14)</a></li>
1215
1216 <li><a href="http://people.skolelinux.org/pere/blog/tags/bsa">bsa (2)</a></li>
1217
1218 <li><a href="http://people.skolelinux.org/pere/blog/tags/chrpath">chrpath (2)</a></li>
1219
1220 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian">debian (99)</a></li>
1221
1222 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (147)</a></li>
1223
1224 <li><a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan (10)</a></li>
1225
1226 <li><a href="http://people.skolelinux.org/pere/blog/tags/dld">dld (15)</a></li>
1227
1228 <li><a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook (11)</a></li>
1229
1230 <li><a href="http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
1231
1232 <li><a href="http://people.skolelinux.org/pere/blog/tags/english">english (248)</a></li>
1233
1234 <li><a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (21)</a></li>
1235
1236 <li><a href="http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (12)</a></li>
1237
1238 <li><a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (12)</a></li>
1239
1240 <li><a href="http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox (8)</a></li>
1241
1242 <li><a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (11)</a></li>
1243
1244 <li><a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju (40)</a></li>
1245
1246 <li><a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram (9)</a></li>
1247
1248 <li><a href="http://people.skolelinux.org/pere/blog/tags/kart">kart (18)</a></li>
1249
1250 <li><a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap (9)</a></li>
1251
1252 <li><a href="http://people.skolelinux.org/pere/blog/tags/lenker">lenker (7)</a></li>
1253
1254 <li><a href="http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (1)</a></li>
1255
1256 <li><a href="http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network (8)</a></li>
1257
1258 <li><a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (28)</a></li>
1259
1260 <li><a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk (246)</a></li>
1261
1262 <li><a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug (162)</a></li>
1263
1264 <li><a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (11)</a></li>
1265
1266 <li><a href="http://people.skolelinux.org/pere/blog/tags/open311">open311 (2)</a></li>
1267
1268 <li><a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (46)</a></li>
1269
1270 <li><a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern (72)</a></li>
1271
1272 <li><a href="http://people.skolelinux.org/pere/blog/tags/raid">raid (1)</a></li>
1273
1274 <li><a href="http://people.skolelinux.org/pere/blog/tags/reactos">reactos (1)</a></li>
1275
1276 <li><a href="http://people.skolelinux.org/pere/blog/tags/reprap">reprap (11)</a></li>
1277
1278 <li><a href="http://people.skolelinux.org/pere/blog/tags/rfid">rfid (2)</a></li>
1279
1280 <li><a href="http://people.skolelinux.org/pere/blog/tags/robot">robot (9)</a></li>
1281
1282 <li><a href="http://people.skolelinux.org/pere/blog/tags/rss">rss (1)</a></li>
1283
1284 <li><a href="http://people.skolelinux.org/pere/blog/tags/ruter">ruter (4)</a></li>
1285
1286 <li><a href="http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (2)</a></li>
1287
1288 <li><a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (40)</a></li>
1289
1290 <li><a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (4)</a></li>
1291
1292 <li><a href="http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (4)</a></li>
1293
1294 <li><a href="http://people.skolelinux.org/pere/blog/tags/standard">standard (44)</a></li>
1295
1296 <li><a href="http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (3)</a></li>
1297
1298 <li><a href="http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (9)</a></li>
1299
1300 <li><a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (25)</a></li>
1301
1302 <li><a href="http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (1)</a></li>
1303
1304 <li><a href="http://people.skolelinux.org/pere/blog/tags/valg">valg (8)</a></li>
1305
1306 <li><a href="http://people.skolelinux.org/pere/blog/tags/video">video (42)</a></li>
1307
1308 <li><a href="http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (4)</a></li>
1309
1310 <li><a href="http://people.skolelinux.org/pere/blog/tags/web">web (32)</a></li>
1311
1312 </ul>
1313
1314
1315 </div>
1316 <p style="text-align: right">
1317 Created by <a href="http://steve.org.uk/Software/chronicle">Chronicle v4.6</a>
1318 </p>
1319
1320 </body>
1321 </html>