]> 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/Install_hardware_dependent_packages_using_tasksel__Isenkram_0_7_.html">Install hardware dependent packages using tasksel (Isenkram 0.7)</a></div>
24 <div class="date">23rd April 2014</div>
25 <div class="body"><p>It would be nice if it was easier in Debian to get all the hardware
26 related packages relevant for the computer installed automatically.
27 So I implemented one, using
28 <a href="http://packages.qa.debian.org/isenkram">my Isenkram
29 package</a>. To use it, install the tasksel and isenkram packages and
30 run tasksel as user root. You should be presented with a new option,
31 "Hardware specific packages (autodetected by isenkram)". When you
32 select it, tasksel will install the packages isenkram claim is fit for
33 the current hardware, hot pluggable or not.<p>
34
35 <p>The implementation is in two files, one is the tasksel menu entry
36 description, and the other is the script used to extract the list of
37 packages to install. The first part is in
38 <tt>/usr/share/tasksel/descs/isenkram.desc</tt> and look like
39 this:</p>
40
41 <p><blockquote><pre>
42 Task: isenkram
43 Section: hardware
44 Description: Hardware specific packages (autodetected by isenkram)
45 Based on the detected hardware various hardware specific packages are
46 proposed.
47 Test-new-install: mark show
48 Relevance: 8
49 Packages: for-current-hardware
50 </pre></blockquote></p>
51
52 <p>The second part is in
53 <tt>/usr/lib/tasksel/packages/for-current-hardware</tt> and look like
54 this:</p>
55
56 <p><blockquote><pre>
57 #!/bin/sh
58 #
59 (
60 isenkram-lookup
61 isenkram-autoinstall-firmware -l
62 ) | sort -u
63 </pre></blockquote></p>
64
65 <p>All in all, a very short and simple implementation making it
66 trivial to install the hardware dependent package we all may want to
67 have installed on our machines. I've not been able to find a way to
68 get tasksel to tell you exactly which packages it plan to install
69 before doing the installation. So if you are curious or careful,
70 check the output from the isenkram-* command line tools first.</p>
71
72 <p>The information about which packages are handling which hardware is
73 fetched either from the isenkram package itself in
74 /usr/share/isenkram/, from git.debian.org or from the APT package
75 database (using the Modaliases header). The APT package database
76 parsing have caused a nasty resource leak in the isenkram daemon (bugs
77 <a href="http://bugs.debian.org/719837">#719837</a> and
78 <a href="http://bugs.debian.org/730704">#730704</a>). The cause is in
79 the python-apt code (bug
80 <a href="http://bugs.debian.org/745487">#745487</a>), but using a
81 workaround I was able to get rid of the file descriptor leak and
82 reduce the memory leak from ~30 MiB per hardware detection down to
83 around 2 miB per hardware detection. It should make the desktop
84 daemon a lot more useful. The fix is in version 0.7 uploaded to
85 unstable today.</p>
86
87 <p>I believe the current way of mapping hardware to packages in
88 Isenkram is is a good draft, but in the future I expect isenkram to
89 use the AppStream data source for this. A proposal for getting proper
90 AppStream support into Debian is floating around as
91 <a href="https://wiki.debian.org/DEP-11">DEP-11</a>, and
92 <a href="https://wiki.debian.org/SummerOfCode2014/Projects#SummerOfCode2014.2FProjects.2FAppStreamDEP11Implementation.AppStream.2FDEP-11_for_the_Debian_Archive">GSoC
93 project</a> will take place this summer to improve the situation. I
94 look forward to seeing the result, and welcome patches for isenkram to
95 start using the information when it is ready.</p>
96
97 <p>If you want your package to map to some specific hardware, either
98 add a "Xb-Modaliases" header to your control file like I did in
99 <a href="http://packages.qa.debian.org/pymissile">the pymissile
100 package</a> or submit a bug report with the details to the isenkram
101 package. See also
102 <a href="http://people.skolelinux.org/pere/blog/tags/isenkram/">all my
103 blog posts tagged isenkram</a> for details on the notation. I expect
104 the information will be migrated to AppStream eventually, but for the
105 moment I got no better place to store it.</p>
106 </div>
107 <div class="tags">
108
109
110 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>.
111
112
113 </div>
114 </div>
115 <div class="padding"></div>
116
117 <div class="entry">
118 <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>
119 <div class="date">15th April 2014</div>
120 <div class="body"><p>The <a href="https://wiki.debian.org/FreedomBox">Freedombox
121 project</a> is working on providing the software and hardware to make
122 it easy for non-technical people to host their data and communication
123 at home, and being able to communicate with their friends and family
124 encrypted and away from prying eyes. It is still going strong, and
125 today a major mile stone was reached.</p>
126
127 <p>Today, the last of the packages currently used by the project to
128 created the system images were accepted into Debian Unstable. It was
129 the freedombox-setup package, which is used to configure the images
130 during build and on the first boot. Now all one need to get going is
131 the build code from the freedom-maker git repository and packages from
132 Debian. And once the freedombox-setup package enter testing, we can
133 build everything directly from Debian. :)</p>
134
135 <p>Some key packages used by Freedombox are
136 <a href="http://packages.qa.debian.org/freedombox-setup">freedombox-setup</a>,
137 <a href="http://packages.qa.debian.org/plinth">plinth</a>,
138 <a href="http://packages.qa.debian.org/pagekite">pagekite</a>,
139 <a href="http://packages.qa.debian.org/tor">tor</a>,
140 <a href="http://packages.qa.debian.org/privoxy">privoxy</a>,
141 <a href="http://packages.qa.debian.org/owncloud">owncloud</a> and
142 <a href="http://packages.qa.debian.org/dnsmasq">dnsmasq</a>. There
143 are plans to integrate more packages into the setup. User
144 documentation is maintained on the Debian wiki. Please
145 <a href="https://wiki.debian.org/FreedomBox/Manual/Jessie">check out
146 the manual</a> and help us improve it.</p>
147
148 <p>To test for yourself and create boot images with the FreedomBox
149 setup, run this on a Debian machine using a user with sudo rights to
150 become root:</p>
151
152 <p><pre>
153 sudo apt-get install git vmdebootstrap mercurial python-docutils \
154 mktorrent extlinux virtualbox qemu-user-static binfmt-support \
155 u-boot-tools
156 git clone http://anonscm.debian.org/git/freedombox/freedom-maker.git \
157 freedom-maker
158 make -C freedom-maker dreamplug-image raspberry-image virtualbox-image
159 </pre></p>
160
161 <p>Root access is needed to run debootstrap and mount loopback
162 devices. See the README in the freedom-maker git repo for more
163 details on the build. If you do not want all three images, trim the
164 make line. Note that the virtualbox-image target is not really
165 virtualbox specific. It create a x86 image usable in kvm, qemu,
166 vmware and any other x86 virtual machine environment. You might need
167 the version of vmdebootstrap in Jessie to get the build working, as it
168 include fixes for a race condition with kpartx.</p>
169
170 <p>If you instead want to install using a Debian CD and the preseed
171 method, boot a Debian Wheezy ISO and use this boot argument to load
172 the preseed values:</p>
173
174 <p><pre>
175 url=<a href="http://www.reinholdtsen.name/freedombox/preseed-jessie.dat">http://www.reinholdtsen.name/freedombox/preseed-jessie.dat</a>
176 </pre></p>
177
178 <p>I have not tested it myself the last few weeks, so I do not know if
179 it still work.</p>
180
181 <p>If you wonder how to help, one task you could look at is using
182 systemd as the boot system. It will become the default for Linux in
183 Jessie, so we need to make sure it is usable on the Freedombox. I did
184 a simple test a few weeks ago, and noticed dnsmasq failed to start
185 during boot when using systemd. I suspect there are other problems
186 too. :) To detect problems, there is a test suite included, which can
187 be run from the plinth web interface.</p>
188
189 <p>Give it a go and let us know how it goes on the mailing list, and help
190 us get the new release published. :) Please join us on
191 <a href="irc://irc.debian.org:6667/%23freedombox">IRC (#freedombox on
192 irc.debian.org)</a> and
193 <a href="http://lists.alioth.debian.org/mailman/listinfo/freedombox-discuss">the
194 mailing list</a> if you want to help make this vision come true.</p>
195 </div>
196 <div class="tags">
197
198
199 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>.
200
201
202 </div>
203 </div>
204 <div class="padding"></div>
205
206 <div class="entry">
207 <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>
208 <div class="date">11th April 2014</div>
209 <div class="body"><p>For 12 år siden, skrev jeg et lite notat om
210 <a href="http://i18n.skolelinux.no/localekoder.txt">bruk av språkkoder
211 i Norge</a>. Jeg ble nettopp minnet på dette da jeg fikk spørsmål om
212 notatet fortsatt var aktuelt, og tenkte det var greit å repetere hva
213 som fortsatt gjelder. Det jeg skrev da er fortsatt like aktuelt.</p>
214
215 <p>Når en velger språk i programmer på unix, så velger en blant mange
216 språkkoder. For språk i Norge anbefales følgende språkkoder (anbefalt
217 locale i parantes):</p>
218
219 <p><dl>
220 <dt>nb (nb_NO)</dt><dd>Bokmål i Norge</dd>
221 <dt>nn (nn_NO)</dt><dd>Nynorsk i Norge</dd>
222 <dt>se (se_NO)</dt><dd>Nordsamisk i Norge</dd>
223 </dl></p>
224
225 <p>Alle programmer som bruker andre koder bør endres.</p>
226
227 <p>Språkkoden bør brukes når .po-filer navngis og installeres. Dette
228 er ikke det samme som locale-koden. For Norsk Bokmål, så bør filene
229 være navngitt nb.po, mens locale (LANG) bør være nb_NO.</p>
230
231 <p>Hvis vi ikke får standardisert de kodene i alle programmene med
232 norske oversettelser, så er det umulig å gi LANG-variablen ett innhold
233 som fungerer for alle programmer.</p>
234
235 <p>Språkkodene er de offisielle kodene fra ISO 639, og bruken av dem i
236 forbindelse med POSIX localer er standardisert i RFC 3066 og ISO
237 15897. Denne anbefalingen er i tråd med de angitte standardene.</p>
238
239 <p>Følgende koder er eller har vært i bruk som locale-verdier for
240 "norske" språk. Disse bør unngås, og erstattes når de oppdages:</p>
241
242 <p><table>
243 <tr><td>norwegian</td><td>-> nb_NO</td></tr>
244 <tr><td>bokmål </td><td>-> nb_NO</td></tr>
245 <tr><td>bokmal </td><td>-> nb_NO</td></tr>
246 <tr><td>nynorsk </td><td>-> nn_NO</td></tr>
247 <tr><td>no </td><td>-> nb_NO</td></tr>
248 <tr><td>no_NO </td><td>-> nb_NO</td></tr>
249 <tr><td>no_NY </td><td>-> nn_NO</td></tr>
250 <tr><td>sme_NO </td><td>-> se_NO</td></tr>
251 </table></p>
252
253 <p>Merk at når det gjelder de samiske språkene, at se_NO i praksis
254 henviser til nordsamisk i Norge, mens f.eks. smj_NO henviser til
255 lulesamisk. Dette notatet er dog ikke ment å gi råd rundt samiske
256 språkkoder, der gjør
257 <a href="http://www.divvun.no/">Divvun-prosjektet</a> en bedre
258 jobb.</p>
259
260 <p><strong>Referanser:</strong></p>
261
262 <ul>
263
264 <li><a href="http://www.rfc-base.org/rfc-3066.html">RFC 3066 - Tags
265 for the Identification of Languages</a> (Erstatter RFC 1766)</li>
266
267 <li><a href="http://www.loc.gov/standards/iso639-2/langcodes.html">ISO
268 639</a> - Codes for the Representation of Names of Languages</li>
269
270 <li><a href="http://std.dkuug.dk/jtc1/sc22/wg20/docs/n897-14652w25.pdf">ISO
271 DTR 14652</a> - locale-standard Specification method for cultural
272 conventions</li>
273
274 <li><a href="http://std.dkuug.dk/jtc1/sc22/wg20/docs/n610.pdf">ISO
275 15897: Registration procedures for cultural elements (cultural
276 registry)</a>,
277 <a href="http://std.dkuug.dk/jtc1/sc22/wg20/docs/n849-15897wd6.pdf">(nytt
278 draft)</a></li>
279
280 <li><a href="http://std.dkuug.dk/jtc1/sc22/wg20/">ISO/IEC
281 JTC1/SC22/WG20</a> - Gruppen for i18n-standardisering i ISO</li>
282
283 <ul>
284 </div>
285 <div class="tags">
286
287
288 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk</a>.
289
290
291 </div>
292 </div>
293 <div class="padding"></div>
294
295 <div class="entry">
296 <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>
297 <div class="date"> 9th April 2014</div>
298 <div class="body"><p>For a while now, I have been looking for a sensible offsite backup
299 solution for use at home. My requirements are simple, it must be
300 cheap and locally encrypted (in other words, I keep the encryption
301 keys, the storage provider do not have access to my private files).
302 One idea me and my friends had many years ago, before the cloud
303 storage providers showed up, was to use Google mail as storage,
304 writing a Linux block device storing blocks as emails in the mail
305 service provided by Google, and thus get heaps of free space. On top
306 of this one can add encryption, RAID and volume management to have
307 lots of (fairly slow, I admit that) cheap and encrypted storage. But
308 I never found time to implement such system. But the last few weeks I
309 have looked at a system called
310 <a href="https://bitbucket.org/nikratio/s3ql/">S3QL</a>, a locally
311 mounted network backed file system with the features I need.</p>
312
313 <p>S3QL is a fuse file system with a local cache and cloud storage,
314 handling several different storage providers, any with Amazon S3,
315 Google Drive or OpenStack API. There are heaps of such storage
316 providers. S3QL can also use a local directory as storage, which
317 combined with sshfs allow for file storage on any ssh server. S3QL
318 include support for encryption, compression, de-duplication, snapshots
319 and immutable file systems, allowing me to mount the remote storage as
320 a local mount point, look at and use the files as if they were local,
321 while the content is stored in the cloud as well. This allow me to
322 have a backup that should survive fire. The file system can not be
323 shared between several machines at the same time, as only one can
324 mount it at the time, but any machine with the encryption key and
325 access to the storage service can mount it if it is unmounted.</p>
326
327 <p>It is simple to use. I'm using it on Debian Wheezy, where the
328 package is included already. So to get started, run <tt>apt-get
329 install s3ql</tt>. Next, pick a storage provider. I ended up picking
330 Greenqloud, after reading their nice recipe on
331 <a href="https://greenqloud.zendesk.com/entries/44611757-How-To-Use-S3QL-to-mount-a-StorageQloud-bucket-on-Debian-Wheezy">how
332 to use S3QL with their Amazon S3 service</a>, because I trust the laws
333 in Iceland more than those in USA when it come to keeping my personal
334 data safe and private, and thus would rather spend money on a company
335 in Iceland. Another nice recipe is available from the article
336 <a href="http://www.admin-magazine.com/HPC/Articles/HPC-Cloud-Storage">S3QL
337 Filesystem for HPC Storage</a> by Jeff Layton in the HPC section of
338 Admin magazine. When the provider is picked, figure out how to get
339 the API key needed to connect to the storage API. With Greencloud,
340 the key did not show up until I had added payment details to my
341 account.</p>
342
343 <p>Armed with the API access details, it is time to create the file
344 system. First, create a new bucket in the cloud. This bucket is the
345 file system storage area. I picked a bucket name reflecting the
346 machine that was going to store data there, but any name will do.
347 I'll refer to it as <tt>bucket-name</tt> below. In addition, one need
348 the API login and password, and a locally created password. Store it
349 all in ~root/.s3ql/authinfo2 like this:
350
351 <p><blockquote><pre>
352 [s3c]
353 storage-url: s3c://s.greenqloud.com:443/bucket-name
354 backend-login: API-login
355 backend-password: API-password
356 fs-passphrase: local-password
357 </pre></blockquote></p>
358
359 <p>I create my local passphrase using <tt>pwget 50</tt> or similar,
360 but any sensible way to create a fairly random password should do it.
361 Armed with these details, it is now time to run mkfs, entering the API
362 details and password to create it:</p>
363
364 <p><blockquote><pre>
365 # mkdir -m 700 /var/lib/s3ql-cache
366 # mkfs.s3ql --cachedir /var/lib/s3ql-cache --authfile /root/.s3ql/authinfo2 \
367 --ssl s3c://s.greenqloud.com:443/bucket-name
368 Enter backend login:
369 Enter backend password:
370 Before using S3QL, make sure to read the user's guide, especially
371 the 'Important Rules to Avoid Loosing Data' section.
372 Enter encryption password:
373 Confirm encryption password:
374 Generating random encryption key...
375 Creating metadata tables...
376 Dumping metadata...
377 ..objects..
378 ..blocks..
379 ..inodes..
380 ..inode_blocks..
381 ..symlink_targets..
382 ..names..
383 ..contents..
384 ..ext_attributes..
385 Compressing and uploading metadata...
386 Wrote 0.00 MB of compressed metadata.
387 # </pre></blockquote></p>
388
389 <p>The next step is mounting the file system to make the storage available.
390
391 <p><blockquote><pre>
392 # mount.s3ql --cachedir /var/lib/s3ql-cache --authfile /root/.s3ql/authinfo2 \
393 --ssl --allow-root s3c://s.greenqloud.com:443/bucket-name /s3ql
394 Using 4 upload threads.
395 Downloading and decompressing metadata...
396 Reading metadata...
397 ..objects..
398 ..blocks..
399 ..inodes..
400 ..inode_blocks..
401 ..symlink_targets..
402 ..names..
403 ..contents..
404 ..ext_attributes..
405 Mounting filesystem...
406 # df -h /s3ql
407 Filesystem Size Used Avail Use% Mounted on
408 s3c://s.greenqloud.com:443/bucket-name 1.0T 0 1.0T 0% /s3ql
409 #
410 </pre></blockquote></p>
411
412 <p>The file system is now ready for use. I use rsync to store my
413 backups in it, and as the metadata used by rsync is downloaded at
414 mount time, no network traffic (and storage cost) is triggered by
415 running rsync. To unmount, one should not use the normal umount
416 command, as this will not flush the cache to the cloud storage, but
417 instead running the umount.s3ql command like this:
418
419 <p><blockquote><pre>
420 # umount.s3ql /s3ql
421 #
422 </pre></blockquote></p>
423
424 <p>There is a fsck command available to check the file system and
425 correct any problems detected. This can be used if the local server
426 crashes while the file system is mounted, to reset the "already
427 mounted" flag. This is what it look like when processing a working
428 file system:</p>
429
430 <p><blockquote><pre>
431 # fsck.s3ql --force --ssl s3c://s.greenqloud.com:443/bucket-name
432 Using cached metadata.
433 File system seems clean, checking anyway.
434 Checking DB integrity...
435 Creating temporary extra indices...
436 Checking lost+found...
437 Checking cached objects...
438 Checking names (refcounts)...
439 Checking contents (names)...
440 Checking contents (inodes)...
441 Checking contents (parent inodes)...
442 Checking objects (reference counts)...
443 Checking objects (backend)...
444 ..processed 5000 objects so far..
445 ..processed 10000 objects so far..
446 ..processed 15000 objects so far..
447 Checking objects (sizes)...
448 Checking blocks (referenced objects)...
449 Checking blocks (refcounts)...
450 Checking inode-block mapping (blocks)...
451 Checking inode-block mapping (inodes)...
452 Checking inodes (refcounts)...
453 Checking inodes (sizes)...
454 Checking extended attributes (names)...
455 Checking extended attributes (inodes)...
456 Checking symlinks (inodes)...
457 Checking directory reachability...
458 Checking unix conventions...
459 Checking referential integrity...
460 Dropping temporary indices...
461 Backing up old metadata...
462 Dumping metadata...
463 ..objects..
464 ..blocks..
465 ..inodes..
466 ..inode_blocks..
467 ..symlink_targets..
468 ..names..
469 ..contents..
470 ..ext_attributes..
471 Compressing and uploading metadata...
472 Wrote 0.89 MB of compressed metadata.
473 #
474 </pre></blockquote></p>
475
476 <p>Thanks to the cache, working on files that fit in the cache is very
477 quick, about the same speed as local file access. Uploading large
478 amount of data is to me limited by the bandwidth out of and into my
479 house. Uploading 685 MiB with a 100 MiB cache gave me 305 kiB/s,
480 which is very close to my upload speed, and downloading the same
481 Debian installation ISO gave me 610 kiB/s, close to my download speed.
482 Both were measured using <tt>dd</tt>. So for me, the bottleneck is my
483 network, not the file system code. I do not know what a good cache
484 size would be, but suspect that the cache should e larger than your
485 working set.</p>
486
487 <p>I mentioned that only one machine can mount the file system at the
488 time. If another machine try, it is told that the file system is
489 busy:</p>
490
491 <p><blockquote><pre>
492 # mount.s3ql --cachedir /var/lib/s3ql-cache --authfile /root/.s3ql/authinfo2 \
493 --ssl --allow-root s3c://s.greenqloud.com:443/bucket-name /s3ql
494 Using 8 upload threads.
495 Backend reports that fs is still mounted elsewhere, aborting.
496 #
497 </pre></blockquote></p>
498
499 <p>The file content is uploaded when the cache is full, while the
500 metadata is uploaded once every 24 hour by default. To ensure the
501 file system content is flushed to the cloud, one can either umount the
502 file system, or ask S3QL to flush the cache and metadata using
503 s3qlctrl:
504
505 <p><blockquote><pre>
506 # s3qlctrl upload-meta /s3ql
507 # s3qlctrl flushcache /s3ql
508 #
509 </pre></blockquote></p>
510
511 <p>If you are curious about how much space your data uses in the
512 cloud, and how much compression and deduplication cut down on the
513 storage usage, you can use s3qlstat on the mounted file system to get
514 a report:</p>
515
516 <p><blockquote><pre>
517 # s3qlstat /s3ql
518 Directory entries: 9141
519 Inodes: 9143
520 Data blocks: 8851
521 Total data size: 22049.38 MB
522 After de-duplication: 21955.46 MB (99.57% of total)
523 After compression: 21877.28 MB (99.22% of total, 99.64% of de-duplicated)
524 Database size: 2.39 MB (uncompressed)
525 (some values do not take into account not-yet-uploaded dirty blocks in cache)
526 #
527 </pre></blockquote></p>
528
529 <p>I mentioned earlier that there are several possible suppliers of
530 storage. I did not try to locate them all, but am aware of at least
531 <a href="https://www.greenqloud.com/">Greenqloud</a>,
532 <a href="http://drive.google.com/">Google Drive</a>,
533 <a href="http://aws.amazon.com/s3/">Amazon S3 web serivces</a>,
534 <a href="http://www.rackspace.com/">Rackspace</a> and
535 <a href="http://crowncloud.net/">Crowncloud</A>. The latter even
536 accept payment in Bitcoin. Pick one that suit your need. Some of
537 them provide several GiB of free storage, but the prize models are
538 quite different and you will have to figure out what suits you
539 best.</p>
540
541 <p>While researching this blog post, I had a look at research papers
542 and posters discussing the S3QL file system. There are several, which
543 told me that the file system is getting a critical check by the
544 science community and increased my confidence in using it. One nice
545 poster is titled
546 "<a href="http://www.lanl.gov/orgs/adtsc/publications/science_highlights_2013/docs/pg68_69.pdf">An
547 Innovative Parallel Cloud Storage System using OpenStack’s SwiftObject
548 Store and Transformative Parallel I/O Approach</a>" by Hsing-Bung
549 Chen, Benjamin McClelland, David Sherrill, Alfred Torrez, Parks Fields
550 and Pamela Smith. Please have a look.</p>
551
552 <p>Given my problems with different file systems earlier, I decided to
553 check out the mounted S3QL file system to see if it would be usable as
554 a home directory (in other word, that it provided POSIX semantics when
555 it come to locking and umask handling etc). Running
556 <a href="http://people.skolelinux.org/pere/blog/Testing_if_a_file_system_can_be_used_for_home_directories___.html">my
557 test code to check file system semantics</a>, I was happy to discover that
558 no error was found. So the file system can be used for home
559 directories, if one chooses to do so.</p>
560
561 <p>If you do not want a locally file system, and want something that
562 work without the Linux fuse file system, I would like to mention the
563 <a href="http://www.tarsnap.com/">Tarsnap service</a>, which also
564 provide locally encrypted backup using a command line client. It have
565 a nicer access control system, where one can split out read and write
566 access, allowing some systems to write to the backup and others to
567 only read from it.</p>
568
569 <p>As usual, if you use Bitcoin and want to show your support of my
570 activities, please send Bitcoin donations to my address
571 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&label=PetterReinholdtsenBlog">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
572 </div>
573 <div class="tags">
574
575
576 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>.
577
578
579 </div>
580 </div>
581 <div class="padding"></div>
582
583 <div class="entry">
584 <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>
585 <div class="date"> 8th April 2014</div>
586 <div class="body"><p>I dag kom endelig avgjørelsen fra EU-domstolen om
587 datalagringsdirektivet, som ikke overraskende ble dømt ulovlig og i
588 strid med borgernes grunnleggende rettigheter. Hvis du lurer på hva
589 datalagringsdirektivet er for noe, så er det
590 <a href="http://tv.nrk.no/program/koid75005313/tema-dine-digitale-spor-datalagringsdirektivet">en
591 flott dokumentar tilgjengelig hos NRK</a> som jeg tidligere
592 <a href="http://people.skolelinux.org/pere/blog/Dokumentaren_om_Datalagringsdirektivet_sendes_endelig_p__NRK.html">har
593 anbefalt</a> alle å se.</p>
594
595 <p>Her er et liten knippe nyhetsoppslag om saken, og jeg regner med at
596 det kommer flere ut over dagen. Flere kan finnes
597 <a href="http://www.mylder.no/?drill=datalagringsdirektivet&intern=1">via
598 mylder</a>.</p>
599
600 <p><ul>
601
602 <li><a href="http://e24.no/digital/eu-domstolen-datalagringsdirektivet-er-ugyldig/22879592">EU-domstolen:
603 Datalagringsdirektivet er ugyldig</a> - e24.no 2014-04-08
604
605 <li><a href="http://www.aftenposten.no/nyheter/iriks/EU-domstolen-Datalagringsdirektivet-er-ulovlig-7529032.html">EU-domstolen:
606 Datalagringsdirektivet er ulovlig</a> - aftenposten.no 2014-04-08
607
608 <li><a href="http://www.aftenposten.no/nyheter/iriks/politikk/Krever-DLD-stopp-i-Norge-7530086.html">Krever
609 DLD-stopp i Norge</a> - aftenposten.no 2014-04-08
610
611 <li><a href="http://www.p4.no/story.aspx?id=566431">Apenes: - En
612 gledens dag</a> - p4.no 2014-04-08
613
614 <li><a href="http://www.nrk.no/norge/_-datalagringsdirektivet-er-ugyldig-1.11655929">EU-domstolen:
615 – Datalagringsdirektivet er ugyldig</a> - nrk.no 2014-04-08</li>
616
617 <li><a href="http://www.vg.no/nyheter/utenriks/data-og-nett/eu-domstolen-datalagringsdirektivet-er-ugyldig/a/10130280/">EU-domstolen:
618 Datalagringsdirektivet er ugyldig</a> - vg.no 2014-04-08</li>
619
620 <li><a href="http://www.dagbladet.no/2014/04/08/nyheter/innenriks/datalagringsdirektivet/personvern/32711646/">-
621 Vi bør skrote hele datalagringsdirektivet</a> - dagbladet.no
622 2014-04-08</li>
623
624 <li><a href="http://www.digi.no/928137/eu-domstolen-dld-er-ugyldig">EU-domstolen:
625 DLD er ugyldig</a> - digi.no 2014-04-08</li>
626
627 <li><a href="http://www.irishtimes.com/business/sectors/technology/european-court-declares-data-retention-directive-invalid-1.1754150">European
628 court declares data retention directive invalid</a> - irishtimes.com
629 2014-04-08</li>
630
631 <li><a href="http://www.reuters.com/article/2014/04/08/us-eu-data-ruling-idUSBREA370F020140408?feedType=RSS">EU
632 court rules against requirement to keep data of telecom users</a> -
633 reuters.com 2014-04-08</li>
634
635 </ul>
636 </p>
637
638 <p>Jeg synes det er veldig fint at nok en stemme slår fast at
639 totalitær overvåkning av befolkningen er uakseptabelt, men det er
640 fortsatt like viktig å beskytte privatsfæren som før, da de
641 teknologiske mulighetene fortsatt finnes og utnyttes, og jeg tror
642 innsats i prosjekter som
643 <a href="https://wiki.debian.org/FreedomBox">Freedombox</a> og
644 <a href="http://www.dugnadsnett.no/">Dugnadsnett</a> er viktigere enn
645 noen gang.</p>
646
647 <p><strong>Update 2014-04-08 12:10</strong>: Kronerullingen for å
648 stoppe datalagringsdirektivet i Norge gjøres hos foreningen
649 <a href="http://www.digitaltpersonvern.no/">Digitalt Personvern</a>,
650 som har samlet inn 843 215,- så langt men trenger nok mye mer hvis
651
652 ikke Høyre og Arbeiderpartiet bytter mening i saken. Det var
653 <a href="http://www.holderdeord.no/parliament-issues/48650">kun
654 partinene Høyre og Arbeiderpartiet</a> som stemte for
655 Datalagringsdirektivet, og en av dem må bytte mening for at det skal
656 bli flertall mot i Stortinget. Se mer om saken
657 <a href="http://www.holderdeord.no/issues/69-innfore-datalagringsdirektivet">Holder
658 de ord</a>.</p>
659 </div>
660 <div class="tags">
661
662
663 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>.
664
665
666 </div>
667 </div>
668 <div class="padding"></div>
669
670 <div class="entry">
671 <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>
672 <div class="date"> 1st April 2014</div>
673 <div class="body"><p>Microsoft have announced that Windows XP reaches its end of life
674 2014-04-08, in 7 days. But there are heaps of machines still running
675 Windows XP, and depending on Windows XP to run their applications, and
676 upgrading will be expensive, both when it comes to money and when it
677 comes to the amount of effort needed to migrate from Windows XP to a
678 new operating system. Some obvious options (buy new a Windows
679 machine, buy a MacOSX machine, install Linux on the existing machine)
680 are already well known and covered elsewhere. Most of them involve
681 leaving the user applications installed on Windows XP behind and
682 trying out replacements or updated versions. In this blog post I want
683 to mention one strange bird that allow people to keep the hardware and
684 the existing Windows XP applications and run them on a free software
685 operating system that is Windows XP compatible.</p>
686
687 <p><a href="http://www.reactos.org/">ReactOS</a> is a free software
688 operating system (GNU GPL licensed) working on providing a operating
689 system that is binary compatible with Windows, able to run windows
690 programs directly and to use Windows drivers for hardware directly.
691 The project goal is for Windows user to keep their existing machines,
692 drivers and software, and gain the advantages from user a operating
693 system without usage limitations caused by non-free licensing. It is
694 a Windows clone running directly on the hardware, so quite different
695 from the approach taken by <a href="http://www.winehq.org/">the Wine
696 project</a>, which make it possible to run Windows binaries on
697 Linux.</p>
698
699 <p>The ReactOS project share code with the Wine project, so most
700 shared libraries available on Windows are already implemented already.
701 There is also a software manager like the one we are used to on Linux,
702 allowing the user to install free software applications with a simple
703 click directly from the Internet. Check out the
704 <a href="http://www.reactos.org/screenshots">screen shots on the
705 project web site</a> for an idea what it look like (it looks just like
706 Windows before metro).</p>
707
708 <p>I do not use ReactOS myself, preferring Linux and Unix like
709 operating systems. I've tested it, and it work fine in a virt-manager
710 virtual machine. The browser, minesweeper, notepad etc is working
711 fine as far as I can tell. Unfortunately, my main test application
712 is the software included on a CD with the Lego Mindstorms NXT, which
713 seem to install just fine from CD but fail to leave any binaries on
714 the disk after the installation. So no luck with that test software.
715 No idea why, but hope someone else figure out and fix the problem.
716 I've tried the ReactOS Live ISO on a physical machine, and it seemed
717 to work just fine. If you like Windows and want to keep running your
718 old Windows binaries, check it out by
719 <a href="http://www.reactos.org/download">downloading</a> the
720 installation CD, the live CD or the preinstalled virtual machine
721 image.</p>
722 </div>
723 <div class="tags">
724
725
726 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>.
727
728
729 </div>
730 </div>
731 <div class="padding"></div>
732
733 <div class="entry">
734 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Roger_Marsal.html">Debian Edu interview: Roger Marsal</a></div>
735 <div class="date">30th March 2014</div>
736 <div class="body"><p><a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a>
737 keep gaining new users. Some weeks ago, a person showed up on IRC,
738 <a href="irc://irc.debian.org/#debian-edu">#debian-edu</a>, with a
739 wish to contribute, and I managed to get a interview with this great
740 contributor Roger Marsal to learn more about his background.</p>
741
742 <p><strong>Who are you, and how do you spend your days?</strong></p>
743
744 <p>My name is Roger Marsal, I'm 27 years old (1986 generation) and I
745 live in Barcelona, Spain. I've got a strong business background and I
746 work as a patrimony manager and as a real estate agent. Additionally,
747 I've co-founded a British based tech company that is nowadays on the
748 last development phase of a new social networking concept.</p>
749
750 <p>I'm a Linux enthusiast that started its journey with Ubuntu four years
751 ago and have recently switched to Debian seeking rock solid stability
752 and as a necessary step to gain expertise.</p>
753
754 <p>In a nutshell, I spend my days working and learning as much as I
755 can to face both my job, entrepreneur project and feed my Linux
756 hunger.</p>
757
758 <p><strong>How did you get in contact with the Skolelinux / Debian Edu
759 project?</strong></p>
760
761 <p>I discovered the <a href="http://www.ltsp.org/">LTSP</a> advantages
762 with "Ubuntu 12.04 alternate install" and after a year of use I
763 started looking for an alternative. Even though I highly value and
764 respect the Ubuntu project, I thought it was necessary for me to
765 change to a more robust and stable alternative. As far as I was using
766 Debian on my personal laptop I thought it would be fine to install
767 Debian and configure an LTSP server myself. Surprised, I discovered
768 that the Debian project also supported a kind of Edubuntu equivalent,
769 and after having some pain I obtained a Debian Edu network up and
770 running. I just loved it.</p>
771
772 <p><strong>What do you see as the advantages of Skolelinux / Debian
773 Edu?</strong></p>
774
775 <p>I found a main advantage in that, once you know "the tips and
776 tricks", a new installation just works out of the box. It's the most
777 complete alternative I've found to create an LTSP network. All the
778 other distributions seems to be made of plastic, Debian Edu seems to
779 be made of steel.</p>
780
781 <p><strong>What do you see as the disadvantages of Skolelinux / Debian
782 Edu?</strong></p>
783
784 <p>I found two main disadvantages.</p>
785
786 <p>I'm not an expert but I've got notions and I had to spent a considerable
787 amount of time trying to bring up a standard network topology. I'm quite
788 stubborn and I just worked until I did but I'm sure many people with few
789 resources (not big schools, but academies for example) would have switched
790 or dropped.</p>
791
792 <p>It's amazing how such a complex system like Debian Edu has achieved
793 this out-of-the-box state. Even though tweaking without breaking gets
794 more difficult, as more factors have to be considered. This can
795 discourage many people too.</p>
796
797 <p><strong>Which free software do you use daily?</strong></p>
798
799 <p>I use Debian, Firefox, Okular, Inkscape, LibreOffice and
800 Virtualbox.</p>
801
802
803 <p><strong>Which strategy do you believe is the right one to use to
804 get schools to use free software?</strong></p>
805
806 <p>I don't think there is a need for a particular strategy. The free
807 attribute in both "freedom" and "no price" meanings is what will
808 really bring free software to schools. In my experience I can think of
809 the <a href="http://www.r-project.org/">"R" statistical language</a>; a
810 few years a ago was an extremely nerd tool for university people.
811 Today it's being increasingly used to teach statistics at many
812 different level of studies. I believe free and open software will
813 increasingly gain popularity, but I'm sure schools will be one of the
814 first scenarios where this will happen.</p>
815 </div>
816 <div class="tags">
817
818
819 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju</a>.
820
821
822 </div>
823 </div>
824 <div class="padding"></div>
825
826 <div class="entry">
827 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Dokumentaren_om_Datalagringsdirektivet_sendes_endelig_p__NRK.html">Dokumentaren om Datalagringsdirektivet sendes endelig på NRK</a></div>
828 <div class="date">26th March 2014</div>
829 <div class="body"><p><a href="http://www.nuug.no/">Foreningen NUUG</a> melder i natt at
830 NRK nå har bestemt seg for
831 <a href="http://www.nuug.no/news/NRK_viser_filmen_om_Datalagringsdirektivet_f_rste_gang_2014_03_31.shtml">når
832 den norske dokumentarfilmen om datalagringsdirektivet skal
833 sendes</a> (se <a href="http://www.imdb.com/title/tt2832844/">IMDB</a>
834 for detaljer om filmen) . Første visning blir på NRK2 mandag
835 2014-03-31 kl. 19:50, og deretter visninger onsdag 2014-04-02
836 kl. 12:30, fredag 2014-04-04 kl. 19:40 og søndag 2014-04-06 kl. 15:10.
837 Jeg har sett dokumentaren, og jeg anbefaler enhver å se den selv. Som
838 oppvarming mens vi venter anbefaler jeg Bjørn Stærks kronikk i
839 Aftenposten fra i går,
840 <a href="http://www.aftenposten.no/meninger/kronikker/Autoritar-gjokunge-7514915.html">Autoritær
841 gjøkunge</a>, der han gir en grei skisse av hvor ille det står til med
842 retten til privatliv og beskyttelsen av demokrati i Norge og resten
843 verden, og helt riktig slår fast at det er vi i databransjen som
844 sitter med nøkkelen til å gjøre noe med dette. Jeg har involvert meg
845 i prosjektene <a href="http://www.dugnadsnett.no/">dugnadsnett.no</a>
846 og <a href="https://wiki.debian.org/FreedomBox">FreedomBox</a> for å
847 forsøke å gjøre litt selv for å bedre situasjonen, men det er mye
848 hardt arbeid fra mange flere enn meg som gjenstår før vi kan sies å ha
849 gjenopprettet balansen.</p>
850
851 <p>Jeg regner med at nettutgaven dukker opp på
852 <a href="http://tv.nrk.no/program/koid75005313/tema-dine-digitale-spor-datalagringsdirektivet">NRKs
853 side om filmen om datalagringsdirektivet</a> om fem dager. Hold et
854 øye med siden, og tips venner og slekt om at de også bør se den.</p>
855 </div>
856 <div class="tags">
857
858
859 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/dld">dld</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox</a>, <a href="http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network</a>, <a href="http://people.skolelinux.org/pere/blog/tags/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>.
860
861
862 </div>
863 </div>
864 <div class="padding"></div>
865
866 <div class="entry">
867 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Public_Trusted_Timestamping_services_for_everyone.html">Public Trusted Timestamping services for everyone</a></div>
868 <div class="date">25th March 2014</div>
869 <div class="body"><p>Did you ever need to store logs or other files in a way that would
870 allow it to be used as evidence in court, and needed a way to
871 demonstrate without reasonable doubt that the file had not been
872 changed since it was created? Or, did you ever need to document that
873 a given document was received at some point in time, like some
874 archived document or the answer to an exam, and not changed after it
875 was received? The problem in these settings is to remove the need to
876 trust yourself and your computers, while still being able to prove
877 that a file is the same as it was at some given time in the past.</p>
878
879 <p>A solution to these problems is to have a trusted third party
880 "stamp" the document and verify that at some given time the document
881 looked a given way. Such
882 <a href="https://en.wikipedia.org/wiki/Notarius">notarius</a> service
883 have been around for thousands of years, and its digital equivalent is
884 called a
885 <a href="http://en.wikipedia.org/wiki/Trusted_timestamping">trusted
886 timestamping service</a>. <a href="http://www.ietf.org/">The Internet
887 Engineering Task Force</a> standardised how such service could work a
888 few years ago as <a href="http://tools.ietf.org/html/rfc3161">RFC
889 3161</a>. The mechanism is simple. Create a hash of the file in
890 question, send it to a trusted third party which add a time stamp to
891 the hash and sign the result with its private key, and send back the
892 signed hash + timestamp. Both email, FTP and HTTP can be used to
893 request such signature, depending on what is provided by the service
894 used. Anyone with the document and the signature can then verify that
895 the document matches the signature by creating their own hash and
896 checking the signature using the trusted third party public key.
897 There are several commercial services around providing such
898 timestamping. A quick search for
899 "<a href="https://duckduckgo.com/?q=rfc+3161+service">rfc 3161
900 service</a>" pointed me to at least
901 <a href="https://www.digistamp.com/technical/how-a-digital-time-stamp-works/">DigiStamp</a>,
902 <a href="http://www.quovadisglobal.co.uk/CertificateServices/SigningServices/TimeStamp.aspx">Quo
903 Vadis</a>,
904 <a href="https://www.globalsign.com/timestamp-service/">Global Sign</a>
905 and <a href="http://www.globaltrustfinder.com/TSADefault.aspx">Global
906 Trust Finder</a>. The system work as long as the private key of the
907 trusted third party is not compromised.</p>
908
909 <p>But as far as I can tell, there are very few public trusted
910 timestamp services available for everyone. I've been looking for one
911 for a while now. But yesterday I found one over at
912 <a href="https://www.pki.dfn.de/zeitstempeldienst/">Deutches
913 Forschungsnetz</a> mentioned in
914 <a href="http://www.d-mueller.de/blog/dealing-with-trusted-timestamps-in-php-rfc-3161/">a
915 blog by David Müller</a>. I then found
916 <a href="http://www.rz.uni-greifswald.de/support/dfn-pki-zertifikate/zeitstempeldienst.html">a
917 good recipe on how to use the service</a> over at the University of
918 Greifswald.</p>
919
920 <p><a href="http://www.openssl.org/">The OpenSSL library</a> contain
921 both server and tools to use and set up your own signing service. See
922 the ts(1SSL), tsget(1SSL) manual pages for more details. The
923 following shell script demonstrate how to extract a signed timestamp
924 for any file on the disk in a Debian environment:</p>
925
926 <p><blockquote><pre>
927 #!/bin/sh
928 set -e
929 url="http://zeitstempel.dfn.de"
930 caurl="https://pki.pca.dfn.de/global-services-ca/pub/cacert/chain.txt"
931 reqfile=$(mktemp -t tmp.XXXXXXXXXX.tsq)
932 resfile=$(mktemp -t tmp.XXXXXXXXXX.tsr)
933 cafile=chain.txt
934 if [ ! -f $cafile ] ; then
935 wget -O $cafile "$caurl"
936 fi
937 openssl ts -query -data "$1" -cert | tee "$reqfile" \
938 | /usr/lib/ssl/misc/tsget -h "$url" -o "$resfile"
939 openssl ts -reply -in "$resfile" -text 1>&2
940 openssl ts -verify -data "$1" -in "$resfile" -CAfile "$cafile" 1>&2
941 base64 < "$resfile"
942 rm "$reqfile" "$resfile"
943 </pre></blockquote></p>
944
945 <p>The argument to the script is the file to timestamp, and the output
946 is a base64 encoded version of the signature to STDOUT and details
947 about the signature to STDERR. Note that due to
948 <a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=742553">a bug
949 in the tsget script</a>, you might need to modify the included script
950 and remove the last line. Or just write your own HTTP uploader using
951 curl. :) Now you too can prove and verify that files have not been
952 changed.</p>
953
954 <p>But the Internet need more public trusted timestamp services.
955 Perhaps something for <a href="http://www.uninett.no/">Uninett</a> or
956 my work place the <a href="http://www.uio.no/">University of Oslo</a>
957 to set up?</p>
958 </div>
959 <div class="tags">
960
961
962 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>.
963
964
965 </div>
966 </div>
967 <div class="padding"></div>
968
969 <div class="entry">
970 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Video_DVD_reader_library___python_dvdvideo___nice_free_software.html">Video DVD reader library / python-dvdvideo - nice free software</a></div>
971 <div class="date">21st March 2014</div>
972 <div class="body"><p>Keeping your DVD collection safe from scratches and curious
973 children fingers while still having it available when you want to see a
974 movie is not straight forward. My preferred method at the moment is
975 to store a full copy of the ISO on a hard drive, and use VLC, Popcorn
976 Hour or other useful players to view the resulting file. This way the
977 subtitles and bonus material are still available and using the ISO is
978 just like inserting the original DVD record in the DVD player.</p>
979
980 <p>Earlier I used dd for taking security copies, but it do not handle
981 DVDs giving read errors (which are quite a few of them). I've also
982 tried using
983 <a href="http://people.skolelinux.org/pere/blog/Ripping_problematic_DVDs_using_dvdbackup_and_genisoimage.html">dvdbackup
984 and genisoimage</a>, but these days I use the marvellous python library
985 and program
986 <a href="http://bblank.thinkmo.de/blog/new-software-python-dvdvideo">python-dvdvideo</a>
987 written by Bastian Blank. It is
988 <a href="http://packages.qa.debian.org/p/python-dvdvideo.html">in Debian
989 already</a> and the binary package name is python3-dvdvideo. Instead
990 of trying to read every block from the DVD, it parses the file
991 structure and figure out which block on the DVD is actually in used,
992 and only read those blocks from the DVD. This work surprisingly well,
993 and I have been able to almost backup my entire DVD collection using
994 this method.</p>
995
996 <p>So far, python-dvdvideo have failed on between 10 and
997 20 DVDs, which is a small fraction of my collection. The most common
998 problem is
999 <a href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=720831">DVDs
1000 using UTF-16 instead of UTF-8 characters</a>, which according to
1001 Bastian is against the DVD specification (and seem to cause some
1002 players to fail too). A rarer problem is what seem to be inconsistent
1003 DVD structures, as the python library
1004 <a href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=723079">claim
1005 there is a overlap between objects</a>. An equally rare problem claim
1006 <a href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=741878">some
1007 value is out of range</a>. No idea what is going on there. I wish I
1008 knew enough about the DVD format to fix these, to ensure my movie
1009 collection will stay with me in the future.</p>
1010
1011 <p>So, if you need to keep your DVDs safe, back them up using
1012 python-dvdvideo. :)</p>
1013 </div>
1014 <div class="tags">
1015
1016
1017 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/opphavsrett">opphavsrett</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
1018
1019
1020 </div>
1021 </div>
1022 <div class="padding"></div>
1023
1024 <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>
1025 <div id="sidebar">
1026
1027
1028
1029 <h2>Archive</h2>
1030 <ul>
1031
1032 <li>2014
1033 <ul>
1034
1035 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/01/">January (2)</a></li>
1036
1037 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/02/">February (3)</a></li>
1038
1039 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/03/">March (8)</a></li>
1040
1041 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/04/">April (6)</a></li>
1042
1043 </ul></li>
1044
1045 <li>2013
1046 <ul>
1047
1048 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/01/">January (11)</a></li>
1049
1050 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/02/">February (9)</a></li>
1051
1052 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/03/">March (9)</a></li>
1053
1054 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/04/">April (6)</a></li>
1055
1056 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/05/">May (9)</a></li>
1057
1058 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/06/">June (10)</a></li>
1059
1060 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/07/">July (7)</a></li>
1061
1062 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/08/">August (3)</a></li>
1063
1064 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/09/">September (5)</a></li>
1065
1066 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/10/">October (7)</a></li>
1067
1068 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/11/">November (9)</a></li>
1069
1070 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/12/">December (3)</a></li>
1071
1072 </ul></li>
1073
1074 <li>2012
1075 <ul>
1076
1077 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/01/">January (7)</a></li>
1078
1079 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/02/">February (10)</a></li>
1080
1081 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/03/">March (17)</a></li>
1082
1083 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/04/">April (12)</a></li>
1084
1085 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/05/">May (12)</a></li>
1086
1087 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/06/">June (20)</a></li>
1088
1089 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/07/">July (17)</a></li>
1090
1091 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/08/">August (6)</a></li>
1092
1093 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/09/">September (9)</a></li>
1094
1095 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/10/">October (17)</a></li>
1096
1097 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/11/">November (10)</a></li>
1098
1099 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/12/">December (7)</a></li>
1100
1101 </ul></li>
1102
1103 <li>2011
1104 <ul>
1105
1106 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/01/">January (16)</a></li>
1107
1108 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/02/">February (6)</a></li>
1109
1110 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/03/">March (6)</a></li>
1111
1112 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/04/">April (7)</a></li>
1113
1114 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/05/">May (3)</a></li>
1115
1116 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/06/">June (2)</a></li>
1117
1118 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/07/">July (7)</a></li>
1119
1120 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/08/">August (6)</a></li>
1121
1122 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/09/">September (4)</a></li>
1123
1124 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/10/">October (2)</a></li>
1125
1126 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/11/">November (3)</a></li>
1127
1128 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/12/">December (1)</a></li>
1129
1130 </ul></li>
1131
1132 <li>2010
1133 <ul>
1134
1135 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/01/">January (2)</a></li>
1136
1137 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/02/">February (1)</a></li>
1138
1139 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/03/">March (3)</a></li>
1140
1141 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/04/">April (3)</a></li>
1142
1143 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/05/">May (9)</a></li>
1144
1145 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/06/">June (14)</a></li>
1146
1147 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/07/">July (12)</a></li>
1148
1149 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/08/">August (13)</a></li>
1150
1151 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/09/">September (7)</a></li>
1152
1153 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/10/">October (9)</a></li>
1154
1155 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/11/">November (13)</a></li>
1156
1157 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/12/">December (12)</a></li>
1158
1159 </ul></li>
1160
1161 <li>2009
1162 <ul>
1163
1164 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/01/">January (8)</a></li>
1165
1166 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/02/">February (8)</a></li>
1167
1168 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/03/">March (12)</a></li>
1169
1170 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/04/">April (10)</a></li>
1171
1172 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/05/">May (9)</a></li>
1173
1174 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/06/">June (3)</a></li>
1175
1176 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/07/">July (4)</a></li>
1177
1178 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/08/">August (3)</a></li>
1179
1180 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/09/">September (1)</a></li>
1181
1182 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/10/">October (2)</a></li>
1183
1184 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/11/">November (3)</a></li>
1185
1186 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/12/">December (3)</a></li>
1187
1188 </ul></li>
1189
1190 <li>2008
1191 <ul>
1192
1193 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/11/">November (5)</a></li>
1194
1195 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/12/">December (7)</a></li>
1196
1197 </ul></li>
1198
1199 </ul>
1200
1201
1202
1203 <h2>Tags</h2>
1204 <ul>
1205
1206 <li><a href="http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (13)</a></li>
1207
1208 <li><a href="http://people.skolelinux.org/pere/blog/tags/amiga">amiga (1)</a></li>
1209
1210 <li><a href="http://people.skolelinux.org/pere/blog/tags/aros">aros (1)</a></li>
1211
1212 <li><a href="http://people.skolelinux.org/pere/blog/tags/bankid">bankid (4)</a></li>
1213
1214 <li><a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (8)</a></li>
1215
1216 <li><a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (14)</a></li>
1217
1218 <li><a href="http://people.skolelinux.org/pere/blog/tags/bsa">bsa (2)</a></li>
1219
1220 <li><a href="http://people.skolelinux.org/pere/blog/tags/chrpath">chrpath (2)</a></li>
1221
1222 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian">debian (98)</a></li>
1223
1224 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (146)</a></li>
1225
1226 <li><a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan (10)</a></li>
1227
1228 <li><a href="http://people.skolelinux.org/pere/blog/tags/dld">dld (15)</a></li>
1229
1230 <li><a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook (10)</a></li>
1231
1232 <li><a href="http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
1233
1234 <li><a href="http://people.skolelinux.org/pere/blog/tags/english">english (245)</a></li>
1235
1236 <li><a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (21)</a></li>
1237
1238 <li><a href="http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (12)</a></li>
1239
1240 <li><a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (12)</a></li>
1241
1242 <li><a href="http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox (8)</a></li>
1243
1244 <li><a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (11)</a></li>
1245
1246 <li><a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju (40)</a></li>
1247
1248 <li><a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram (8)</a></li>
1249
1250 <li><a href="http://people.skolelinux.org/pere/blog/tags/kart">kart (18)</a></li>
1251
1252 <li><a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap (9)</a></li>
1253
1254 <li><a href="http://people.skolelinux.org/pere/blog/tags/lenker">lenker (7)</a></li>
1255
1256 <li><a href="http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (1)</a></li>
1257
1258 <li><a href="http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network (8)</a></li>
1259
1260 <li><a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (26)</a></li>
1261
1262 <li><a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk (245)</a></li>
1263
1264 <li><a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug (162)</a></li>
1265
1266 <li><a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (11)</a></li>
1267
1268 <li><a href="http://people.skolelinux.org/pere/blog/tags/open311">open311 (2)</a></li>
1269
1270 <li><a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (46)</a></li>
1271
1272 <li><a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern (72)</a></li>
1273
1274 <li><a href="http://people.skolelinux.org/pere/blog/tags/raid">raid (1)</a></li>
1275
1276 <li><a href="http://people.skolelinux.org/pere/blog/tags/reactos">reactos (1)</a></li>
1277
1278 <li><a href="http://people.skolelinux.org/pere/blog/tags/reprap">reprap (11)</a></li>
1279
1280 <li><a href="http://people.skolelinux.org/pere/blog/tags/rfid">rfid (2)</a></li>
1281
1282 <li><a href="http://people.skolelinux.org/pere/blog/tags/robot">robot (9)</a></li>
1283
1284 <li><a href="http://people.skolelinux.org/pere/blog/tags/rss">rss (1)</a></li>
1285
1286 <li><a href="http://people.skolelinux.org/pere/blog/tags/ruter">ruter (4)</a></li>
1287
1288 <li><a href="http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (2)</a></li>
1289
1290 <li><a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (40)</a></li>
1291
1292 <li><a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (4)</a></li>
1293
1294 <li><a href="http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (4)</a></li>
1295
1296 <li><a href="http://people.skolelinux.org/pere/blog/tags/standard">standard (44)</a></li>
1297
1298 <li><a href="http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (3)</a></li>
1299
1300 <li><a href="http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (9)</a></li>
1301
1302 <li><a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (25)</a></li>
1303
1304 <li><a href="http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (1)</a></li>
1305
1306 <li><a href="http://people.skolelinux.org/pere/blog/tags/valg">valg (8)</a></li>
1307
1308 <li><a href="http://people.skolelinux.org/pere/blog/tags/video">video (40)</a></li>
1309
1310 <li><a href="http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (4)</a></li>
1311
1312 <li><a href="http://people.skolelinux.org/pere/blog/tags/web">web (30)</a></li>
1313
1314 </ul>
1315
1316
1317 </div>
1318 <p style="text-align: right">
1319 Created by <a href="http://steve.org.uk/Software/chronicle">Chronicle v4.6</a>
1320 </p>
1321
1322 </body>
1323 </html>