]> pere.pagekite.me Git - homepage.git/blob - blog/archive/2014/04/04.rss
Generated.
[homepage.git] / blog / archive / 2014 / 04 / 04.rss
1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <rss version='2.0' xmlns:lj='http://www.livejournal.org/rss/lj/1.0/'>
3 <channel>
4 <title>Petter Reinholdtsen - Entries from April 2014</title>
5 <description>Entries from April 2014</description>
6 <link>http://people.skolelinux.org/pere/blog/</link>
7
8
9 <item>
10 <title>Half the Coverity issues in Gnash fixed in the next release</title>
11 <link>http://people.skolelinux.org/pere/blog/Half_the_Coverity_issues_in_Gnash_fixed_in_the_next_release.html</link>
12 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Half_the_Coverity_issues_in_Gnash_fixed_in_the_next_release.html</guid>
13 <pubDate>Tue, 29 Apr 2014 14:20:00 +0200</pubDate>
14 <description>&lt;p&gt;I&#39;ve been following &lt;a href=&quot;http://www.getgnash.org/&quot;&gt;the Gnash
15 project&lt;/a&gt; for quite a while now. It is a free software
16 implementation of Adobe Flash, both a standalone player and a browser
17 plugin. Gnash implement support for the AVM1 format (and not the
18 newer AVM2 format - see
19 &lt;a href=&quot;http://lightspark.github.io/&quot;&gt;Lightspark&lt;/a&gt; for that one),
20 allowing several flash based sites to work. Thanks to the friendly
21 developers at Youtube, it also work with Youtube videos, because the
22 Javascript code at Youtube detect Gnash and serve a AVM1 player to
23 those users. :) Would be great if someone found time to implement AVM2
24 support, but it has not happened yet. If you install both Lightspark
25 and Gnash, Lightspark will invoke Gnash if it find a AVM1 flash file,
26 so you can get both handled as free software. Unfortunately,
27 Lightspark so far only implement a small subset of AVM2, and many
28 sites do not work yet.&lt;/p&gt;
29
30 &lt;p&gt;A few months ago, I started looking at
31 &lt;a href=&quot;http://scan.coverity.com/&quot;&gt;Coverity&lt;/a&gt;, the static source
32 checker used to find heaps and heaps of bugs in free software (thanks
33 to the donation of a scanning service to free software projects by the
34 company developing this non-free code checker), and Gnash was one of
35 the projects I decided to check out. Coverity is able to find lock
36 errors, memory errors, dead code and more. A few days ago they even
37 extended it to also be able to find the heartbleed bug in OpenSSL.
38 There are heaps of checks being done on the instrumented code, and the
39 amount of bogus warnings is quite low compared to the other static
40 code checkers I have tested over the years.&lt;/p&gt;
41
42 &lt;p&gt;Since a few weeks ago, I&#39;ve been working with the other Gnash
43 developers squashing bugs discovered by Coverity. I was quite happy
44 today when I checked the current status and saw that of the 777 issues
45 detected so far, 374 are marked as fixed. This make me confident that
46 the next Gnash release will be more stable and more dependable than
47 the previous one. Most of the reported issues were and are in the
48 test suite, but it also found a few in the rest of the code.&lt;/p&gt;
49
50 &lt;p&gt;If you want to help out, you find us on
51 &lt;a href=&quot;https://lists.gnu.org/mailman/listinfo/gnash-dev&quot;&gt;the
52 gnash-dev mailing list&lt;/a&gt; and on
53 &lt;a href=&quot;irc://irc.freenode.net/#gnash&quot;&gt;the #gnash channel on
54 irc.freenode.net IRC server&lt;/a&gt;.&lt;/p&gt;
55 </description>
56 </item>
57
58 <item>
59 <title>Install hardware dependent packages using tasksel (Isenkram 0.7)</title>
60 <link>http://people.skolelinux.org/pere/blog/Install_hardware_dependent_packages_using_tasksel__Isenkram_0_7_.html</link>
61 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Install_hardware_dependent_packages_using_tasksel__Isenkram_0_7_.html</guid>
62 <pubDate>Wed, 23 Apr 2014 14:50:00 +0200</pubDate>
63 <description>&lt;p&gt;It would be nice if it was easier in Debian to get all the hardware
64 related packages relevant for the computer installed automatically.
65 So I implemented one, using
66 &lt;a href=&quot;http://packages.qa.debian.org/isenkram&quot;&gt;my Isenkram
67 package&lt;/a&gt;. To use it, install the tasksel and isenkram packages and
68 run tasksel as user root. You should be presented with a new option,
69 &quot;Hardware specific packages (autodetected by isenkram)&quot;. When you
70 select it, tasksel will install the packages isenkram claim is fit for
71 the current hardware, hot pluggable or not.&lt;p&gt;
72
73 &lt;p&gt;The implementation is in two files, one is the tasksel menu entry
74 description, and the other is the script used to extract the list of
75 packages to install. The first part is in
76 &lt;tt&gt;/usr/share/tasksel/descs/isenkram.desc&lt;/tt&gt; and look like
77 this:&lt;/p&gt;
78
79 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
80 Task: isenkram
81 Section: hardware
82 Description: Hardware specific packages (autodetected by isenkram)
83 Based on the detected hardware various hardware specific packages are
84 proposed.
85 Test-new-install: mark show
86 Relevance: 8
87 Packages: for-current-hardware
88 &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
89
90 &lt;p&gt;The second part is in
91 &lt;tt&gt;/usr/lib/tasksel/packages/for-current-hardware&lt;/tt&gt; and look like
92 this:&lt;/p&gt;
93
94 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
95 #!/bin/sh
96 #
97 (
98 isenkram-lookup
99 isenkram-autoinstall-firmware -l
100 ) | sort -u
101 &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
102
103 &lt;p&gt;All in all, a very short and simple implementation making it
104 trivial to install the hardware dependent package we all may want to
105 have installed on our machines. I&#39;ve not been able to find a way to
106 get tasksel to tell you exactly which packages it plan to install
107 before doing the installation. So if you are curious or careful,
108 check the output from the isenkram-* command line tools first.&lt;/p&gt;
109
110 &lt;p&gt;The information about which packages are handling which hardware is
111 fetched either from the isenkram package itself in
112 /usr/share/isenkram/, from git.debian.org or from the APT package
113 database (using the Modaliases header). The APT package database
114 parsing have caused a nasty resource leak in the isenkram daemon (bugs
115 &lt;a href=&quot;http://bugs.debian.org/719837&quot;&gt;#719837&lt;/a&gt; and
116 &lt;a href=&quot;http://bugs.debian.org/730704&quot;&gt;#730704&lt;/a&gt;). The cause is in
117 the python-apt code (bug
118 &lt;a href=&quot;http://bugs.debian.org/745487&quot;&gt;#745487&lt;/a&gt;), but using a
119 workaround I was able to get rid of the file descriptor leak and
120 reduce the memory leak from ~30 MiB per hardware detection down to
121 around 2 MiB per hardware detection. It should make the desktop
122 daemon a lot more useful. The fix is in version 0.7 uploaded to
123 unstable today.&lt;/p&gt;
124
125 &lt;p&gt;I believe the current way of mapping hardware to packages in
126 Isenkram is is a good draft, but in the future I expect isenkram to
127 use the AppStream data source for this. A proposal for getting proper
128 AppStream support into Debian is floating around as
129 &lt;a href=&quot;https://wiki.debian.org/DEP-11&quot;&gt;DEP-11&lt;/a&gt;, and
130 &lt;a href=&quot;https://wiki.debian.org/SummerOfCode2014/Projects#SummerOfCode2014.2FProjects.2FAppStreamDEP11Implementation.AppStream.2FDEP-11_for_the_Debian_Archive&quot;&gt;GSoC
131 project&lt;/a&gt; will take place this summer to improve the situation. I
132 look forward to seeing the result, and welcome patches for isenkram to
133 start using the information when it is ready.&lt;/p&gt;
134
135 &lt;p&gt;If you want your package to map to some specific hardware, either
136 add a &quot;Xb-Modaliases&quot; header to your control file like I did in
137 &lt;a href=&quot;http://packages.qa.debian.org/pymissile&quot;&gt;the pymissile
138 package&lt;/a&gt; or submit a bug report with the details to the isenkram
139 package. See also
140 &lt;a href=&quot;http://people.skolelinux.org/pere/blog/tags/isenkram/&quot;&gt;all my
141 blog posts tagged isenkram&lt;/a&gt; for details on the notation. I expect
142 the information will be migrated to AppStream eventually, but for the
143 moment I got no better place to store it.&lt;/p&gt;
144 </description>
145 </item>
146
147 <item>
148 <title>FreedomBox milestone - all packages now in Debian Sid</title>
149 <link>http://people.skolelinux.org/pere/blog/FreedomBox_milestone___all_packages_now_in_Debian_Sid.html</link>
150 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/FreedomBox_milestone___all_packages_now_in_Debian_Sid.html</guid>
151 <pubDate>Tue, 15 Apr 2014 22:10:00 +0200</pubDate>
152 <description>&lt;p&gt;The &lt;a href=&quot;https://wiki.debian.org/FreedomBox&quot;&gt;Freedombox
153 project&lt;/a&gt; is working on providing the software and hardware to make
154 it easy for non-technical people to host their data and communication
155 at home, and being able to communicate with their friends and family
156 encrypted and away from prying eyes. It is still going strong, and
157 today a major mile stone was reached.&lt;/p&gt;
158
159 &lt;p&gt;Today, the last of the packages currently used by the project to
160 created the system images were accepted into Debian Unstable. It was
161 the freedombox-setup package, which is used to configure the images
162 during build and on the first boot. Now all one need to get going is
163 the build code from the freedom-maker git repository and packages from
164 Debian. And once the freedombox-setup package enter testing, we can
165 build everything directly from Debian. :)&lt;/p&gt;
166
167 &lt;p&gt;Some key packages used by Freedombox are
168 &lt;a href=&quot;http://packages.qa.debian.org/freedombox-setup&quot;&gt;freedombox-setup&lt;/a&gt;,
169 &lt;a href=&quot;http://packages.qa.debian.org/plinth&quot;&gt;plinth&lt;/a&gt;,
170 &lt;a href=&quot;http://packages.qa.debian.org/pagekite&quot;&gt;pagekite&lt;/a&gt;,
171 &lt;a href=&quot;http://packages.qa.debian.org/tor&quot;&gt;tor&lt;/a&gt;,
172 &lt;a href=&quot;http://packages.qa.debian.org/privoxy&quot;&gt;privoxy&lt;/a&gt;,
173 &lt;a href=&quot;http://packages.qa.debian.org/owncloud&quot;&gt;owncloud&lt;/a&gt; and
174 &lt;a href=&quot;http://packages.qa.debian.org/dnsmasq&quot;&gt;dnsmasq&lt;/a&gt;. There
175 are plans to integrate more packages into the setup. User
176 documentation is maintained on the Debian wiki. Please
177 &lt;a href=&quot;https://wiki.debian.org/FreedomBox/Manual/Jessie&quot;&gt;check out
178 the manual&lt;/a&gt; and help us improve it.&lt;/p&gt;
179
180 &lt;p&gt;To test for yourself and create boot images with the FreedomBox
181 setup, run this on a Debian machine using a user with sudo rights to
182 become root:&lt;/p&gt;
183
184 &lt;p&gt;&lt;pre&gt;
185 sudo apt-get install git vmdebootstrap mercurial python-docutils \
186 mktorrent extlinux virtualbox qemu-user-static binfmt-support \
187 u-boot-tools
188 git clone http://anonscm.debian.org/git/freedombox/freedom-maker.git \
189 freedom-maker
190 make -C freedom-maker dreamplug-image raspberry-image virtualbox-image
191 &lt;/pre&gt;&lt;/p&gt;
192
193 &lt;p&gt;Root access is needed to run debootstrap and mount loopback
194 devices. See the README in the freedom-maker git repo for more
195 details on the build. If you do not want all three images, trim the
196 make line. Note that the virtualbox-image target is not really
197 virtualbox specific. It create a x86 image usable in kvm, qemu,
198 vmware and any other x86 virtual machine environment. You might need
199 the version of vmdebootstrap in Jessie to get the build working, as it
200 include fixes for a race condition with kpartx.&lt;/p&gt;
201
202 &lt;p&gt;If you instead want to install using a Debian CD and the preseed
203 method, boot a Debian Wheezy ISO and use this boot argument to load
204 the preseed values:&lt;/p&gt;
205
206 &lt;p&gt;&lt;pre&gt;
207 url=&lt;a href=&quot;http://www.reinholdtsen.name/freedombox/preseed-jessie.dat&quot;&gt;http://www.reinholdtsen.name/freedombox/preseed-jessie.dat&lt;/a&gt;
208 &lt;/pre&gt;&lt;/p&gt;
209
210 &lt;p&gt;I have not tested it myself the last few weeks, so I do not know if
211 it still work.&lt;/p&gt;
212
213 &lt;p&gt;If you wonder how to help, one task you could look at is using
214 systemd as the boot system. It will become the default for Linux in
215 Jessie, so we need to make sure it is usable on the Freedombox. I did
216 a simple test a few weeks ago, and noticed dnsmasq failed to start
217 during boot when using systemd. I suspect there are other problems
218 too. :) To detect problems, there is a test suite included, which can
219 be run from the plinth web interface.&lt;/p&gt;
220
221 &lt;p&gt;Give it a go and let us know how it goes on the mailing list, and help
222 us get the new release published. :) Please join us on
223 &lt;a href=&quot;irc://irc.debian.org:6667/%23freedombox&quot;&gt;IRC (#freedombox on
224 irc.debian.org)&lt;/a&gt; and
225 &lt;a href=&quot;http://lists.alioth.debian.org/mailman/listinfo/freedombox-discuss&quot;&gt;the
226 mailing list&lt;/a&gt; if you want to help make this vision come true.&lt;/p&gt;
227 </description>
228 </item>
229
230 <item>
231 <title>Språkkoder for POSIX locale i Norge</title>
232 <link>http://people.skolelinux.org/pere/blog/Spr_kkoder_for_POSIX_locale_i_Norge.html</link>
233 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Spr_kkoder_for_POSIX_locale_i_Norge.html</guid>
234 <pubDate>Fri, 11 Apr 2014 21:30:00 +0200</pubDate>
235 <description>&lt;p&gt;For 12 år siden, skrev jeg et lite notat om
236 &lt;a href=&quot;http://i18n.skolelinux.no/localekoder.txt&quot;&gt;bruk av språkkoder
237 i Norge&lt;/a&gt;. Jeg ble nettopp minnet på dette da jeg fikk spørsmål om
238 notatet fortsatt var aktuelt, og tenkte det var greit å repetere hva
239 som fortsatt gjelder. Det jeg skrev da er fortsatt like aktuelt.&lt;/p&gt;
240
241 &lt;p&gt;Når en velger språk i programmer på unix, så velger en blant mange
242 språkkoder. For språk i Norge anbefales følgende språkkoder (anbefalt
243 locale i parantes):&lt;/p&gt;
244
245 &lt;p&gt;&lt;dl&gt;
246 &lt;dt&gt;nb (nb_NO)&lt;/dt&gt;&lt;dd&gt;Bokmål i Norge&lt;/dd&gt;
247 &lt;dt&gt;nn (nn_NO)&lt;/dt&gt;&lt;dd&gt;Nynorsk i Norge&lt;/dd&gt;
248 &lt;dt&gt;se (se_NO)&lt;/dt&gt;&lt;dd&gt;Nordsamisk i Norge&lt;/dd&gt;
249 &lt;/dl&gt;&lt;/p&gt;
250
251 &lt;p&gt;Alle programmer som bruker andre koder bør endres.&lt;/p&gt;
252
253 &lt;p&gt;Språkkoden bør brukes når .po-filer navngis og installeres. Dette
254 er ikke det samme som locale-koden. For Norsk Bokmål, så bør filene
255 være navngitt nb.po, mens locale (LANG) bør være nb_NO.&lt;/p&gt;
256
257 &lt;p&gt;Hvis vi ikke får standardisert de kodene i alle programmene med
258 norske oversettelser, så er det umulig å gi LANG-variablen ett innhold
259 som fungerer for alle programmer.&lt;/p&gt;
260
261 &lt;p&gt;Språkkodene er de offisielle kodene fra ISO 639, og bruken av dem i
262 forbindelse med POSIX localer er standardisert i RFC 3066 og ISO
263 15897. Denne anbefalingen er i tråd med de angitte standardene.&lt;/p&gt;
264
265 &lt;p&gt;Følgende koder er eller har vært i bruk som locale-verdier for
266 &quot;norske&quot; språk. Disse bør unngås, og erstattes når de oppdages:&lt;/p&gt;
267
268 &lt;p&gt;&lt;table&gt;
269 &lt;tr&gt;&lt;td&gt;norwegian&lt;/td&gt;&lt;td&gt;-&gt; nb_NO&lt;/td&gt;&lt;/tr&gt;
270 &lt;tr&gt;&lt;td&gt;bokmål &lt;/td&gt;&lt;td&gt;-&gt; nb_NO&lt;/td&gt;&lt;/tr&gt;
271 &lt;tr&gt;&lt;td&gt;bokmal &lt;/td&gt;&lt;td&gt;-&gt; nb_NO&lt;/td&gt;&lt;/tr&gt;
272 &lt;tr&gt;&lt;td&gt;nynorsk &lt;/td&gt;&lt;td&gt;-&gt; nn_NO&lt;/td&gt;&lt;/tr&gt;
273 &lt;tr&gt;&lt;td&gt;no &lt;/td&gt;&lt;td&gt;-&gt; nb_NO&lt;/td&gt;&lt;/tr&gt;
274 &lt;tr&gt;&lt;td&gt;no_NO &lt;/td&gt;&lt;td&gt;-&gt; nb_NO&lt;/td&gt;&lt;/tr&gt;
275 &lt;tr&gt;&lt;td&gt;no_NY &lt;/td&gt;&lt;td&gt;-&gt; nn_NO&lt;/td&gt;&lt;/tr&gt;
276 &lt;tr&gt;&lt;td&gt;sme_NO &lt;/td&gt;&lt;td&gt;-&gt; se_NO&lt;/td&gt;&lt;/tr&gt;
277 &lt;/table&gt;&lt;/p&gt;
278
279 &lt;p&gt;Merk at når det gjelder de samiske språkene, at se_NO i praksis
280 henviser til nordsamisk i Norge, mens f.eks. smj_NO henviser til
281 lulesamisk. Dette notatet er dog ikke ment å gi råd rundt samiske
282 språkkoder, der gjør
283 &lt;a href=&quot;http://www.divvun.no/&quot;&gt;Divvun-prosjektet&lt;/a&gt; en bedre
284 jobb.&lt;/p&gt;
285
286 &lt;p&gt;&lt;strong&gt;Referanser:&lt;/strong&gt;&lt;/p&gt;
287
288 &lt;ul&gt;
289
290 &lt;li&gt;&lt;a href=&quot;http://www.rfc-base.org/rfc-3066.html&quot;&gt;RFC 3066 - Tags
291 for the Identification of Languages&lt;/a&gt; (Erstatter RFC 1766)&lt;/li&gt;
292
293 &lt;li&gt;&lt;a href=&quot;http://www.loc.gov/standards/iso639-2/langcodes.html&quot;&gt;ISO
294 639&lt;/a&gt; - Codes for the Representation of Names of Languages&lt;/li&gt;
295
296 &lt;li&gt;&lt;a href=&quot;http://std.dkuug.dk/jtc1/sc22/wg20/docs/n897-14652w25.pdf&quot;&gt;ISO
297 DTR 14652&lt;/a&gt; - locale-standard Specification method for cultural
298 conventions&lt;/li&gt;
299
300 &lt;li&gt;&lt;a href=&quot;http://std.dkuug.dk/jtc1/sc22/wg20/docs/n610.pdf&quot;&gt;ISO
301 15897: Registration procedures for cultural elements (cultural
302 registry)&lt;/a&gt;,
303 &lt;a href=&quot;http://std.dkuug.dk/jtc1/sc22/wg20/docs/n849-15897wd6.pdf&quot;&gt;(nytt
304 draft)&lt;/a&gt;&lt;/li&gt;
305
306 &lt;li&gt;&lt;a href=&quot;http://std.dkuug.dk/jtc1/sc22/wg20/&quot;&gt;ISO/IEC
307 JTC1/SC22/WG20&lt;/a&gt; - Gruppen for i18n-standardisering i ISO&lt;/li&gt;
308
309 &lt;ul&gt;
310 </description>
311 </item>
312
313 <item>
314 <title>S3QL, a locally mounted cloud file system - nice free software</title>
315 <link>http://people.skolelinux.org/pere/blog/S3QL__a_locally_mounted_cloud_file_system___nice_free_software.html</link>
316 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/S3QL__a_locally_mounted_cloud_file_system___nice_free_software.html</guid>
317 <pubDate>Wed, 9 Apr 2014 11:30:00 +0200</pubDate>
318 <description>&lt;p&gt;For a while now, I have been looking for a sensible offsite backup
319 solution for use at home. My requirements are simple, it must be
320 cheap and locally encrypted (in other words, I keep the encryption
321 keys, the storage provider do not have access to my private files).
322 One idea me and my friends had many years ago, before the cloud
323 storage providers showed up, was to use Google mail as storage,
324 writing a Linux block device storing blocks as emails in the mail
325 service provided by Google, and thus get heaps of free space. On top
326 of this one can add encryption, RAID and volume management to have
327 lots of (fairly slow, I admit that) cheap and encrypted storage. But
328 I never found time to implement such system. But the last few weeks I
329 have looked at a system called
330 &lt;a href=&quot;https://bitbucket.org/nikratio/s3ql/&quot;&gt;S3QL&lt;/a&gt;, a locally
331 mounted network backed file system with the features I need.&lt;/p&gt;
332
333 &lt;p&gt;S3QL is a fuse file system with a local cache and cloud storage,
334 handling several different storage providers, any with Amazon S3,
335 Google Drive or OpenStack API. There are heaps of such storage
336 providers. S3QL can also use a local directory as storage, which
337 combined with sshfs allow for file storage on any ssh server. S3QL
338 include support for encryption, compression, de-duplication, snapshots
339 and immutable file systems, allowing me to mount the remote storage as
340 a local mount point, look at and use the files as if they were local,
341 while the content is stored in the cloud as well. This allow me to
342 have a backup that should survive fire. The file system can not be
343 shared between several machines at the same time, as only one can
344 mount it at the time, but any machine with the encryption key and
345 access to the storage service can mount it if it is unmounted.&lt;/p&gt;
346
347 &lt;p&gt;It is simple to use. I&#39;m using it on Debian Wheezy, where the
348 package is included already. So to get started, run &lt;tt&gt;apt-get
349 install s3ql&lt;/tt&gt;. Next, pick a storage provider. I ended up picking
350 Greenqloud, after reading their nice recipe on
351 &lt;a href=&quot;https://greenqloud.zendesk.com/entries/44611757-How-To-Use-S3QL-to-mount-a-StorageQloud-bucket-on-Debian-Wheezy&quot;&gt;how
352 to use S3QL with their Amazon S3 service&lt;/a&gt;, because I trust the laws
353 in Iceland more than those in USA when it come to keeping my personal
354 data safe and private, and thus would rather spend money on a company
355 in Iceland. Another nice recipe is available from the article
356 &lt;a href=&quot;http://www.admin-magazine.com/HPC/Articles/HPC-Cloud-Storage&quot;&gt;S3QL
357 Filesystem for HPC Storage&lt;/a&gt; by Jeff Layton in the HPC section of
358 Admin magazine. When the provider is picked, figure out how to get
359 the API key needed to connect to the storage API. With Greencloud,
360 the key did not show up until I had added payment details to my
361 account.&lt;/p&gt;
362
363 &lt;p&gt;Armed with the API access details, it is time to create the file
364 system. First, create a new bucket in the cloud. This bucket is the
365 file system storage area. I picked a bucket name reflecting the
366 machine that was going to store data there, but any name will do.
367 I&#39;ll refer to it as &lt;tt&gt;bucket-name&lt;/tt&gt; below. In addition, one need
368 the API login and password, and a locally created password. Store it
369 all in ~root/.s3ql/authinfo2 like this:
370
371 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
372 [s3c]
373 storage-url: s3c://s.greenqloud.com:443/bucket-name
374 backend-login: API-login
375 backend-password: API-password
376 fs-passphrase: local-password
377 &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
378
379 &lt;p&gt;I create my local passphrase using &lt;tt&gt;pwget 50&lt;/tt&gt; or similar,
380 but any sensible way to create a fairly random password should do it.
381 Armed with these details, it is now time to run mkfs, entering the API
382 details and password to create it:&lt;/p&gt;
383
384 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
385 # mkdir -m 700 /var/lib/s3ql-cache
386 # mkfs.s3ql --cachedir /var/lib/s3ql-cache --authfile /root/.s3ql/authinfo2 \
387 --ssl s3c://s.greenqloud.com:443/bucket-name
388 Enter backend login:
389 Enter backend password:
390 Before using S3QL, make sure to read the user&#39;s guide, especially
391 the &#39;Important Rules to Avoid Loosing Data&#39; section.
392 Enter encryption password:
393 Confirm encryption password:
394 Generating random encryption key...
395 Creating metadata tables...
396 Dumping metadata...
397 ..objects..
398 ..blocks..
399 ..inodes..
400 ..inode_blocks..
401 ..symlink_targets..
402 ..names..
403 ..contents..
404 ..ext_attributes..
405 Compressing and uploading metadata...
406 Wrote 0.00 MB of compressed metadata.
407 # &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
408
409 &lt;p&gt;The next step is mounting the file system to make the storage available.
410
411 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
412 # mount.s3ql --cachedir /var/lib/s3ql-cache --authfile /root/.s3ql/authinfo2 \
413 --ssl --allow-root s3c://s.greenqloud.com:443/bucket-name /s3ql
414 Using 4 upload threads.
415 Downloading and decompressing metadata...
416 Reading metadata...
417 ..objects..
418 ..blocks..
419 ..inodes..
420 ..inode_blocks..
421 ..symlink_targets..
422 ..names..
423 ..contents..
424 ..ext_attributes..
425 Mounting filesystem...
426 # df -h /s3ql
427 Filesystem Size Used Avail Use% Mounted on
428 s3c://s.greenqloud.com:443/bucket-name 1.0T 0 1.0T 0% /s3ql
429 #
430 &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
431
432 &lt;p&gt;The file system is now ready for use. I use rsync to store my
433 backups in it, and as the metadata used by rsync is downloaded at
434 mount time, no network traffic (and storage cost) is triggered by
435 running rsync. To unmount, one should not use the normal umount
436 command, as this will not flush the cache to the cloud storage, but
437 instead running the umount.s3ql command like this:
438
439 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
440 # umount.s3ql /s3ql
441 #
442 &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
443
444 &lt;p&gt;There is a fsck command available to check the file system and
445 correct any problems detected. This can be used if the local server
446 crashes while the file system is mounted, to reset the &quot;already
447 mounted&quot; flag. This is what it look like when processing a working
448 file system:&lt;/p&gt;
449
450 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
451 # fsck.s3ql --force --ssl s3c://s.greenqloud.com:443/bucket-name
452 Using cached metadata.
453 File system seems clean, checking anyway.
454 Checking DB integrity...
455 Creating temporary extra indices...
456 Checking lost+found...
457 Checking cached objects...
458 Checking names (refcounts)...
459 Checking contents (names)...
460 Checking contents (inodes)...
461 Checking contents (parent inodes)...
462 Checking objects (reference counts)...
463 Checking objects (backend)...
464 ..processed 5000 objects so far..
465 ..processed 10000 objects so far..
466 ..processed 15000 objects so far..
467 Checking objects (sizes)...
468 Checking blocks (referenced objects)...
469 Checking blocks (refcounts)...
470 Checking inode-block mapping (blocks)...
471 Checking inode-block mapping (inodes)...
472 Checking inodes (refcounts)...
473 Checking inodes (sizes)...
474 Checking extended attributes (names)...
475 Checking extended attributes (inodes)...
476 Checking symlinks (inodes)...
477 Checking directory reachability...
478 Checking unix conventions...
479 Checking referential integrity...
480 Dropping temporary indices...
481 Backing up old metadata...
482 Dumping metadata...
483 ..objects..
484 ..blocks..
485 ..inodes..
486 ..inode_blocks..
487 ..symlink_targets..
488 ..names..
489 ..contents..
490 ..ext_attributes..
491 Compressing and uploading metadata...
492 Wrote 0.89 MB of compressed metadata.
493 #
494 &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
495
496 &lt;p&gt;Thanks to the cache, working on files that fit in the cache is very
497 quick, about the same speed as local file access. Uploading large
498 amount of data is to me limited by the bandwidth out of and into my
499 house. Uploading 685 MiB with a 100 MiB cache gave me 305 kiB/s,
500 which is very close to my upload speed, and downloading the same
501 Debian installation ISO gave me 610 kiB/s, close to my download speed.
502 Both were measured using &lt;tt&gt;dd&lt;/tt&gt;. So for me, the bottleneck is my
503 network, not the file system code. I do not know what a good cache
504 size would be, but suspect that the cache should e larger than your
505 working set.&lt;/p&gt;
506
507 &lt;p&gt;I mentioned that only one machine can mount the file system at the
508 time. If another machine try, it is told that the file system is
509 busy:&lt;/p&gt;
510
511 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
512 # mount.s3ql --cachedir /var/lib/s3ql-cache --authfile /root/.s3ql/authinfo2 \
513 --ssl --allow-root s3c://s.greenqloud.com:443/bucket-name /s3ql
514 Using 8 upload threads.
515 Backend reports that fs is still mounted elsewhere, aborting.
516 #
517 &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
518
519 &lt;p&gt;The file content is uploaded when the cache is full, while the
520 metadata is uploaded once every 24 hour by default. To ensure the
521 file system content is flushed to the cloud, one can either umount the
522 file system, or ask S3QL to flush the cache and metadata using
523 s3qlctrl:
524
525 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
526 # s3qlctrl upload-meta /s3ql
527 # s3qlctrl flushcache /s3ql
528 #
529 &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
530
531 &lt;p&gt;If you are curious about how much space your data uses in the
532 cloud, and how much compression and deduplication cut down on the
533 storage usage, you can use s3qlstat on the mounted file system to get
534 a report:&lt;/p&gt;
535
536 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
537 # s3qlstat /s3ql
538 Directory entries: 9141
539 Inodes: 9143
540 Data blocks: 8851
541 Total data size: 22049.38 MB
542 After de-duplication: 21955.46 MB (99.57% of total)
543 After compression: 21877.28 MB (99.22% of total, 99.64% of de-duplicated)
544 Database size: 2.39 MB (uncompressed)
545 (some values do not take into account not-yet-uploaded dirty blocks in cache)
546 #
547 &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
548
549 &lt;p&gt;I mentioned earlier that there are several possible suppliers of
550 storage. I did not try to locate them all, but am aware of at least
551 &lt;a href=&quot;https://www.greenqloud.com/&quot;&gt;Greenqloud&lt;/a&gt;,
552 &lt;a href=&quot;http://drive.google.com/&quot;&gt;Google Drive&lt;/a&gt;,
553 &lt;a href=&quot;http://aws.amazon.com/s3/&quot;&gt;Amazon S3 web serivces&lt;/a&gt;,
554 &lt;a href=&quot;http://www.rackspace.com/&quot;&gt;Rackspace&lt;/a&gt; and
555 &lt;a href=&quot;http://crowncloud.net/&quot;&gt;Crowncloud&lt;/A&gt;. The latter even
556 accept payment in Bitcoin. Pick one that suit your need. Some of
557 them provide several GiB of free storage, but the prize models are
558 quite different and you will have to figure out what suits you
559 best.&lt;/p&gt;
560
561 &lt;p&gt;While researching this blog post, I had a look at research papers
562 and posters discussing the S3QL file system. There are several, which
563 told me that the file system is getting a critical check by the
564 science community and increased my confidence in using it. One nice
565 poster is titled
566 &quot;&lt;a href=&quot;http://www.lanl.gov/orgs/adtsc/publications/science_highlights_2013/docs/pg68_69.pdf&quot;&gt;An
567 Innovative Parallel Cloud Storage System using OpenStack’s SwiftObject
568 Store and Transformative Parallel I/O Approach&lt;/a&gt;&quot; by Hsing-Bung
569 Chen, Benjamin McClelland, David Sherrill, Alfred Torrez, Parks Fields
570 and Pamela Smith. Please have a look.&lt;/p&gt;
571
572 &lt;p&gt;Given my problems with different file systems earlier, I decided to
573 check out the mounted S3QL file system to see if it would be usable as
574 a home directory (in other word, that it provided POSIX semantics when
575 it come to locking and umask handling etc). Running
576 &lt;a href=&quot;http://people.skolelinux.org/pere/blog/Testing_if_a_file_system_can_be_used_for_home_directories___.html&quot;&gt;my
577 test code to check file system semantics&lt;/a&gt;, I was happy to discover that
578 no error was found. So the file system can be used for home
579 directories, if one chooses to do so.&lt;/p&gt;
580
581 &lt;p&gt;If you do not want a locally file system, and want something that
582 work without the Linux fuse file system, I would like to mention the
583 &lt;a href=&quot;http://www.tarsnap.com/&quot;&gt;Tarsnap service&lt;/a&gt;, which also
584 provide locally encrypted backup using a command line client. It have
585 a nicer access control system, where one can split out read and write
586 access, allowing some systems to write to the backup and others to
587 only read from it.&lt;/p&gt;
588
589 &lt;p&gt;As usual, if you use Bitcoin and want to show your support of my
590 activities, please send Bitcoin donations to my address
591 &lt;b&gt;&lt;a href=&quot;bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&quot;&gt;15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&lt;/a&gt;&lt;/b&gt;.&lt;/p&gt;
592 </description>
593 </item>
594
595 <item>
596 <title>EU-domstolen bekreftet i dag at datalagringsdirektivet er ulovlig</title>
597 <link>http://people.skolelinux.org/pere/blog/EU_domstolen_bekreftet_i_dag_at_datalagringsdirektivet_er_ulovlig.html</link>
598 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/EU_domstolen_bekreftet_i_dag_at_datalagringsdirektivet_er_ulovlig.html</guid>
599 <pubDate>Tue, 8 Apr 2014 11:30:00 +0200</pubDate>
600 <description>&lt;p&gt;I dag kom endelig avgjørelsen fra EU-domstolen om
601 datalagringsdirektivet, som ikke overraskende ble dømt ulovlig og i
602 strid med borgernes grunnleggende rettigheter. Hvis du lurer på hva
603 datalagringsdirektivet er for noe, så er det
604 &lt;a href=&quot;http://tv.nrk.no/program/koid75005313/tema-dine-digitale-spor-datalagringsdirektivet&quot;&gt;en
605 flott dokumentar tilgjengelig hos NRK&lt;/a&gt; som jeg tidligere
606 &lt;a href=&quot;http://people.skolelinux.org/pere/blog/Dokumentaren_om_Datalagringsdirektivet_sendes_endelig_p__NRK.html&quot;&gt;har
607 anbefalt&lt;/a&gt; alle å se.&lt;/p&gt;
608
609 &lt;p&gt;Her er et liten knippe nyhetsoppslag om saken, og jeg regner med at
610 det kommer flere ut over dagen. Flere kan finnes
611 &lt;a href=&quot;http://www.mylder.no/?drill=datalagringsdirektivet&amp;intern=1&quot;&gt;via
612 mylder&lt;/a&gt;.&lt;/p&gt;
613
614 &lt;p&gt;&lt;ul&gt;
615
616 &lt;li&gt;&lt;a href=&quot;http://e24.no/digital/eu-domstolen-datalagringsdirektivet-er-ugyldig/22879592&quot;&gt;EU-domstolen:
617 Datalagringsdirektivet er ugyldig&lt;/a&gt; - e24.no 2014-04-08
618
619 &lt;li&gt;&lt;a href=&quot;http://www.aftenposten.no/nyheter/iriks/EU-domstolen-Datalagringsdirektivet-er-ulovlig-7529032.html&quot;&gt;EU-domstolen:
620 Datalagringsdirektivet er ulovlig&lt;/a&gt; - aftenposten.no 2014-04-08
621
622 &lt;li&gt;&lt;a href=&quot;http://www.aftenposten.no/nyheter/iriks/politikk/Krever-DLD-stopp-i-Norge-7530086.html&quot;&gt;Krever
623 DLD-stopp i Norge&lt;/a&gt; - aftenposten.no 2014-04-08
624
625 &lt;li&gt;&lt;a href=&quot;http://www.p4.no/story.aspx?id=566431&quot;&gt;Apenes: - En
626 gledens dag&lt;/a&gt; - p4.no 2014-04-08
627
628 &lt;li&gt;&lt;a href=&quot;http://www.nrk.no/norge/_-datalagringsdirektivet-er-ugyldig-1.11655929&quot;&gt;EU-domstolen:
629 – Datalagringsdirektivet er ugyldig&lt;/a&gt; - nrk.no 2014-04-08&lt;/li&gt;
630
631 &lt;li&gt;&lt;a href=&quot;http://www.vg.no/nyheter/utenriks/data-og-nett/eu-domstolen-datalagringsdirektivet-er-ugyldig/a/10130280/&quot;&gt;EU-domstolen:
632 Datalagringsdirektivet er ugyldig&lt;/a&gt; - vg.no 2014-04-08&lt;/li&gt;
633
634 &lt;li&gt;&lt;a href=&quot;http://www.dagbladet.no/2014/04/08/nyheter/innenriks/datalagringsdirektivet/personvern/32711646/&quot;&gt;-
635 Vi bør skrote hele datalagringsdirektivet&lt;/a&gt; - dagbladet.no
636 2014-04-08&lt;/li&gt;
637
638 &lt;li&gt;&lt;a href=&quot;http://www.digi.no/928137/eu-domstolen-dld-er-ugyldig&quot;&gt;EU-domstolen:
639 DLD er ugyldig&lt;/a&gt; - digi.no 2014-04-08&lt;/li&gt;
640
641 &lt;li&gt;&lt;a href=&quot;http://www.irishtimes.com/business/sectors/technology/european-court-declares-data-retention-directive-invalid-1.1754150&quot;&gt;European
642 court declares data retention directive invalid&lt;/a&gt; - irishtimes.com
643 2014-04-08&lt;/li&gt;
644
645 &lt;li&gt;&lt;a href=&quot;http://www.reuters.com/article/2014/04/08/us-eu-data-ruling-idUSBREA370F020140408?feedType=RSS&quot;&gt;EU
646 court rules against requirement to keep data of telecom users&lt;/a&gt; -
647 reuters.com 2014-04-08&lt;/li&gt;
648
649 &lt;/ul&gt;
650 &lt;/p&gt;
651
652 &lt;p&gt;Jeg synes det er veldig fint at nok en stemme slår fast at
653 totalitær overvåkning av befolkningen er uakseptabelt, men det er
654 fortsatt like viktig å beskytte privatsfæren som før, da de
655 teknologiske mulighetene fortsatt finnes og utnyttes, og jeg tror
656 innsats i prosjekter som
657 &lt;a href=&quot;https://wiki.debian.org/FreedomBox&quot;&gt;Freedombox&lt;/a&gt; og
658 &lt;a href=&quot;http://www.dugnadsnett.no/&quot;&gt;Dugnadsnett&lt;/a&gt; er viktigere enn
659 noen gang.&lt;/p&gt;
660
661 &lt;p&gt;&lt;strong&gt;Update 2014-04-08 12:10&lt;/strong&gt;: Kronerullingen for å
662 stoppe datalagringsdirektivet i Norge gjøres hos foreningen
663 &lt;a href=&quot;http://www.digitaltpersonvern.no/&quot;&gt;Digitalt Personvern&lt;/a&gt;,
664 som har samlet inn 843 215,- så langt men trenger nok mye mer hvis
665
666 ikke Høyre og Arbeiderpartiet bytter mening i saken. Det var
667 &lt;a href=&quot;http://www.holderdeord.no/parliament-issues/48650&quot;&gt;kun
668 partinene Høyre og Arbeiderpartiet&lt;/a&gt; som stemte for
669 Datalagringsdirektivet, og en av dem må bytte mening for at det skal
670 bli flertall mot i Stortinget. Se mer om saken
671 &lt;a href=&quot;http://www.holderdeord.no/issues/69-innfore-datalagringsdirektivet&quot;&gt;Holder
672 de ord&lt;/a&gt;.&lt;/p&gt;
673 </description>
674 </item>
675
676 <item>
677 <title>ReactOS Windows clone - nice free software</title>
678 <link>http://people.skolelinux.org/pere/blog/ReactOS_Windows_clone___nice_free_software.html</link>
679 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/ReactOS_Windows_clone___nice_free_software.html</guid>
680 <pubDate>Tue, 1 Apr 2014 12:10:00 +0200</pubDate>
681 <description>&lt;p&gt;Microsoft have announced that Windows XP reaches its end of life
682 2014-04-08, in 7 days. But there are heaps of machines still running
683 Windows XP, and depending on Windows XP to run their applications, and
684 upgrading will be expensive, both when it comes to money and when it
685 comes to the amount of effort needed to migrate from Windows XP to a
686 new operating system. Some obvious options (buy new a Windows
687 machine, buy a MacOSX machine, install Linux on the existing machine)
688 are already well known and covered elsewhere. Most of them involve
689 leaving the user applications installed on Windows XP behind and
690 trying out replacements or updated versions. In this blog post I want
691 to mention one strange bird that allow people to keep the hardware and
692 the existing Windows XP applications and run them on a free software
693 operating system that is Windows XP compatible.&lt;/p&gt;
694
695 &lt;p&gt;&lt;a href=&quot;http://www.reactos.org/&quot;&gt;ReactOS&lt;/a&gt; is a free software
696 operating system (GNU GPL licensed) working on providing a operating
697 system that is binary compatible with Windows, able to run windows
698 programs directly and to use Windows drivers for hardware directly.
699 The project goal is for Windows user to keep their existing machines,
700 drivers and software, and gain the advantages from user a operating
701 system without usage limitations caused by non-free licensing. It is
702 a Windows clone running directly on the hardware, so quite different
703 from the approach taken by &lt;a href=&quot;http://www.winehq.org/&quot;&gt;the Wine
704 project&lt;/a&gt;, which make it possible to run Windows binaries on
705 Linux.&lt;/p&gt;
706
707 &lt;p&gt;The ReactOS project share code with the Wine project, so most
708 shared libraries available on Windows are already implemented already.
709 There is also a software manager like the one we are used to on Linux,
710 allowing the user to install free software applications with a simple
711 click directly from the Internet. Check out the
712 &lt;a href=&quot;http://www.reactos.org/screenshots&quot;&gt;screen shots on the
713 project web site&lt;/a&gt; for an idea what it look like (it looks just like
714 Windows before metro).&lt;/p&gt;
715
716 &lt;p&gt;I do not use ReactOS myself, preferring Linux and Unix like
717 operating systems. I&#39;ve tested it, and it work fine in a virt-manager
718 virtual machine. The browser, minesweeper, notepad etc is working
719 fine as far as I can tell. Unfortunately, my main test application
720 is the software included on a CD with the Lego Mindstorms NXT, which
721 seem to install just fine from CD but fail to leave any binaries on
722 the disk after the installation. So no luck with that test software.
723 No idea why, but hope someone else figure out and fix the problem.
724 I&#39;ve tried the ReactOS Live ISO on a physical machine, and it seemed
725 to work just fine. If you like Windows and want to keep running your
726 old Windows binaries, check it out by
727 &lt;a href=&quot;http://www.reactos.org/download&quot;&gt;downloading&lt;/a&gt; the
728 installation CD, the live CD or the preinstalled virtual machine
729 image.&lt;/p&gt;
730 </description>
731 </item>
732
733 </channel>
734 </rss>