]> pere.pagekite.me Git - homepage.git/blob - blog/index.html
New post.
[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/UsingQR____Electronic__paper_invoices_using_JSON_and_QR_codes.html">UsingQR - "Electronic" paper invoices using JSON and QR codes</a></div>
24 <div class="date">19th March 2016</div>
25 <div class="body"><p>Back in 2013 I proposed
26 <a href="http://people.skolelinux.org/pere/blog/_Electronic__paper_invoices___using_vCard_in_a_QR_code.html">a
27 way to make paper and PDF invoices easier to process electronically by
28 adding a QR code with the key information about the invoice</a>. I
29 suggested using vCard field definition, to get some standard format
30 for name and address, but any format would work. I did not do
31 anything about the proposal, but hoped someone one day would make
32 something like it. It would make it possible to efficiently send
33 machine readable invoices directly between seller and buyer.</p>
34
35 <p>This was the background when I came across a proposal and
36 specification from the web based accounting and invoicing supplier
37 <a href="http://www.visma.com/">Visma</a> in Sweden called
38 <a href="http://usingqr.com/">UsingQR</a>. Their PDF invoices contain
39 a QR code with the key information of the invoice in JSON format.
40 This is the typical content of a QR code following the UsingQR
41 specification (based on a real world example, some numbers replaced to
42 get a more bogus entry). I've reformatted the JSON to make it easier
43 to read. Normally this is all on one long line:</p>
44
45 <p><img src="http://people.skolelinux.org/pere/blog/images/2016-03-19-qr-invoice.png" align="right"><pre>
46 {
47 "vh":500.00,
48 "vm":0,
49 "vl":0,
50 "uqr":1,
51 "tp":1,
52 "nme":"Din Leverandør",
53 "cc":"NO",
54 "cid":"997912345 MVA",
55 "iref":"12300001",
56 "idt":"20151022",
57 "ddt":"20151105",
58 "due":2500.0000,
59 "cur":"NOK",
60 "pt":"BBAN",
61 "acc":"17202612345",
62 "bc":"BIENNOK1",
63 "adr":"0313 OSLO"
64 }
65 </pre></p>
66
67 </p>The interpretation of the fields can be found in the
68 <a href="http://usingqr.com/wp-content/uploads/2014/06/UsingQR_specification1.pdf">format
69 specification</a> (revision 2 from june 2014). The format seem to
70 have most of the information needed to handle accounting and payment
71 of invoices, at least the fields I have needed so far here in
72 Norway.</p>
73
74 <p>Unfortunately, the site and document do not mention anything about
75 the patent, trademark and copyright status of the format and the
76 specification. Because of this, I asked the people behind it back in
77 November to clarify. Ann-Christine Savlid (ann-christine.savlid (at)
78 visma.com) replied that Visma had not applied for patent or trademark
79 protection for this format, and that there were no copyright based
80 usage limitations for the format. I urged her to make sure this was
81 explicitly written on the web pages and in the specification, but
82 unfortunately this has not happened yet. So I guess if there is
83 submarine patents, hidden trademarks or a will to sue for copyright
84 infringements, those starting to use the UsingQR format might be at
85 risk, but if this happen there is some legal defense in the fact that
86 the people behind the format claimed it was safe to do so. At least
87 with patents, there is always
88 <a href="http://www.paperspecs.com/paper-news/beware-the-qr-code-patent-trap/">a
89 chance of getting sued...</a></p>
90
91 <p>I also asked if they planned to maintain the format in an
92 independent standard organization to give others more confidence that
93 they would participate in the standardization process on equal terms
94 with Visma, but they had no immediate plans for this. Their plan was
95 to work with banks to try to get more users of the format, and
96 evaluate the way forward if the format proved to be popular. I hope
97 they conclude that using an open standard organisation like
98 <a href="http://www.ietf.org/">IETF</a> is the correct place to
99 maintain such specification.</p>
100
101 <p><strong>Update 2016-03-20</strong>: Via Twitter I became aware of
102 <a href="https://news.ycombinator.com/item?id=11319492">some comments
103 about this blog post</a> that had several useful links and references to
104 similar systems. In the Czech republic, the Czech Banking Association
105 standard #26, with short name SPAYD, uses QR codes with payment
106 information. More information is available from the Wikipedia page on
107 <a href="https://en.wikipedia.org/wiki/Short_Payment_Descriptor">Short
108 Payment Descriptor</a>. And in Germany, there is a system named
109 <a href="http://www.bezahlcode.de/">BezahlCode</a>,
110 (<a href="http://www.bezahlcode.de/wp-content/uploads/BezahlCode_TechDok.pdf">specification
111 v1.8 2013-12-05 available as PDF</a>), which uses QR codes with
112 URL-like formatting using "bank:" as the URI schema/protocol to
113 provide the payment information. There is also the
114 <a href="http://www.ferd-net.de/front_content.php?idcat=231">ZUGFeRD</a>
115 file format that perhaps could be transfered using QR codes, but I am
116 not sure if it is done already. Last, in Bolivia there are reports
117 that tax information since november 2014 need to be printed in QR
118 format on invoices. I have not been able to track down a
119 specification for this format, because of my limited language skill
120 sets.</p>
121 </div>
122 <div class="tags">
123
124
125 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>.
126
127
128 </div>
129 </div>
130 <div class="padding"></div>
131
132 <div class="entry">
133 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Making_battery_measurements_a_little_easier_in_Debian.html">Making battery measurements a little easier in Debian</a></div>
134 <div class="date">15th March 2016</div>
135 <div class="body"><p>Back in September, I blogged about
136 <a href="http://people.skolelinux.org/pere/blog/The_life_and_death_of_a_laptop_battery.html">the
137 system I wrote to collect statistics about my laptop battery</a>, and
138 how it showed the decay and death of this battery (now replaced). I
139 created a simple deb package to handle the collection and graphing,
140 but did not want to upload it to Debian as there were already
141 <a href="https://tracker.debian.org/pkg/battery-stats">a battery-stats
142 package in Debian</a> that should do the same thing, and I did not see
143 a point of uploading a competing package when battery-stats could be
144 fixed instead. I reported a few bugs about its non-function, and
145 hoped someone would step in and fix it. But no-one did.</p>
146
147 <p>I got tired of waiting a few days ago, and took matters in my own
148 hands. The end result is that I am now the new upstream developer of
149 battery stats (<a href="https://github.com/petterreinholdtsen/battery-stats">available from github</a>) and part of the team maintaining
150 battery-stats in Debian, and the package in Debian unstable is finally
151 able to collect battery status using the <tt>/sys/class/power_supply/</tt>
152 information provided by the Linux kernel. If you install the
153 battery-stats package from unstable now, you will be able to get a
154 graph of the current battery fill level, to get some idea about the
155 status of the battery. The source package build and work just fine in
156 Debian testing and stable (and probably oldstable too, but I have not
157 tested). The default graph you get for that system look like this:</p>
158
159 <p align="center"><img src="http://people.skolelinux.org/pere/blog/images/2016-03-15-battery-stats-graph-example.png" width="70%" align="center"></p>
160
161 <p>My plans for the future is to merge my old scripts into the
162 battery-stats package, as my old scripts collected a lot more details
163 about the battery. The scripts are merged into the upstream
164 battery-stats git repository already, but I am not convinced they work
165 yet, as I changed a lot of paths along the way. Will have to test a
166 bit more before I make a new release.</p>
167
168 <p>I will also consider changing the file format slightly, as I
169 suspect the way I combine several values into one field might make it
170 impossible to know the type of the value when using it for processing
171 and graphing.</p>
172
173 <p>If you would like I would like to keep an close eye on your laptop
174 battery, check out the battery-stats package in
175 <a href="https://tracker.debian.org/pkg/battery-stats">Debian</a> and
176 on
177 <a href="https://github.com/petterreinholdtsen/battery-stats">github</a>.
178 I would love some help to improve the system further.</p>
179 </div>
180 <div class="tags">
181
182
183 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>.
184
185
186 </div>
187 </div>
188 <div class="padding"></div>
189
190 <div class="entry">
191 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Creating__updating_and_checking_debian_copyright_semi_automatically.html">Creating, updating and checking debian/copyright semi-automatically</a></div>
192 <div class="date">19th February 2016</div>
193 <div class="body"><p>Making packages for Debian requires quite a lot of attention to
194 details. And one of the details is the content of the
195 debian/copyright file, which should list all relevant licenses used by
196 the code in the package in question, preferably in
197 <a href="https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/">machine
198 readable DEP5 format</a>.</p>
199
200 <p>For large packages with lots of contributors it is hard to write
201 and update this file manually, and if you get some detail wrong, the
202 package is normally rejected by the ftpmasters. So getting it right
203 the first time around get the package into Debian faster, and save
204 both you and the ftpmasters some work.. Today, while trying to figure
205 out what was wrong with
206 <a href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=686447">the
207 zfsonlinux copyright file</a>, I decided to spend some time on
208 figuring out the options for doing this job automatically, or at least
209 semi-automatically.</p>
210
211 <p>Lucikly, there are at least two tools available for generating the
212 file based on the code in the source package,
213 <tt><a href="https://tracker.debian.org/pkg/debmake">debmake</a></tt>
214 and <tt><a href="https://tracker.debian.org/pkg/cme">cme</a></tt>. I'm
215 not sure which one of them came first, but both seem to be able to
216 create a sensible draft file. As far as I can tell, none of them can
217 be trusted to get the result just right, so the content need to be
218 polished a bit before the file is OK to upload. I found the debmake
219 option in
220 <a href="http://goofying-with-debian.blogspot.com/2014/07/debmake-checking-source-against-dep-5.html">a
221 blog posts from 2014</a>.
222
223 <p>To generate using debmake, use the -cc option:
224
225 <p><pre>
226 debmake -cc > debian/copyright
227 </pre></p>
228
229 <p>Note there are some problems with python and non-ASCII names, so
230 this might not be the best option.</p>
231
232 <p>The cme option is based on a config parsing library, and I found
233 this approach in
234 <a href="https://ddumont.wordpress.com/2015/04/05/improving-creation-of-debian-copyright-file/">a
235 blog post from 2015</a>. To generate using cme, use the 'update
236 dpkg-copyright' option:
237
238 <p><pre>
239 cme update dpkg-copyright
240 </pre></p>
241
242 <p>This will create or update debian/copyright. The cme tool seem to
243 handle UTF-8 names better than debmake.</p>
244
245 <p>When the copyright file is created, I would also like some help to
246 check if the file is correct. For this I found two good options,
247 <tt>debmake -k</tt> and <tt>license-reconcile</tt>. The former seem
248 to focus on license types and file matching, and is able to detect
249 ineffective blocks in the copyright file. The latter reports missing
250 copyright holders and years, but was confused by inconsistent license
251 names (like CDDL vs. CDDL-1.0). I suspect it is good to use both and
252 fix all issues reported by them before uploading. But I do not know
253 if the tools and the ftpmasters agree on what is important to fix in a
254 copyright file, so the package might still be rejected.</p>
255
256 <p>The devscripts tool <tt>licensecheck</tt> deserve mentioning. It
257 will read through the source and try to find all copyright statements.
258 It is not comparing the result to the content of debian/copyright, but
259 can be useful when verifying the content of the copyright file.</p>
260
261 <p>Are you aware of better tools in Debian to create and update
262 debian/copyright file. Please let me know, or blog about it on
263 planet.debian.org.</p>
264
265 <p>As usual, if you use Bitcoin and want to show your support of my
266 activities, please send Bitcoin donations to my address
267 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
268
269 <p><strong>Update 2016-02-20</strong>: I got a tip from Mike Gabriel
270 on how to use licensecheck and cdbs to create a draft copyright file
271
272 <p><pre>
273 licensecheck --copyright -r `find * -type f` | \
274 /usr/lib/cdbs/licensecheck2dep5 > debian/copyright.auto
275 </pre></p>
276
277 <p>He mentioned that he normally check the generated file into the
278 version control system to make it easier to discover license and
279 copyright changes in the upstream source. I will try to do the same
280 with my packages in the future.</p>
281
282 <p><strong>Update 2016-02-21</strong>: The cme author recommended
283 against using -quiet for new users, so I removed it from the proposed
284 command line.</p>
285 </div>
286 <div class="tags">
287
288
289 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>.
290
291
292 </div>
293 </div>
294 <div class="padding"></div>
295
296 <div class="entry">
297 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Using_appstream_in_Debian_to_locate_packages_with_firmware_and_mime_type_support.html">Using appstream in Debian to locate packages with firmware and mime type support</a></div>
298 <div class="date"> 4th February 2016</div>
299 <div class="body"><p>The <a href="https://wiki.debian.org/DEP-11">appstream system</a>
300 is taking shape in Debian, and one provided feature is a very
301 convenient way to tell you which package to install to make a given
302 firmware file available when the kernel is looking for it. This can
303 be done using apt-file too, but that is for someone else to blog
304 about. :)</p>
305
306 <p>Here is a small recipe to find the package with a given firmware
307 file, in this example I am looking for ctfw-3.2.3.0.bin, randomly
308 picked from the set of firmware announced using appstream in Debian
309 unstable. In general you would be looking for the firmware requested
310 by the kernel during kernel module loading. To find the package
311 providing the example file, do like this:</p>
312
313 <blockquote><pre>
314 % apt install appstream
315 [...]
316 % apt update
317 [...]
318 % appstreamcli what-provides firmware:runtime ctfw-3.2.3.0.bin | \
319 awk '/Package:/ {print $2}'
320 firmware-qlogic
321 %
322 </pre></blockquote>
323
324 <p>See <a href="https://wiki.debian.org/AppStream/Guidelines">the
325 appstream wiki</a> page to learn how to embed the package metadata in
326 a way appstream can use.</p>
327
328 <p>This same approach can be used to find any package supporting a
329 given MIME type. This is very useful when you get a file you do not
330 know how to handle. First find the mime type using <tt>file
331 --mime-type</tt>, and next look up the package providing support for
332 it. Lets say you got an SVG file. Its MIME type is image/svg+xml,
333 and you can find all packages handling this type like this:</p>
334
335 <blockquote><pre>
336 % apt install appstream
337 [...]
338 % apt update
339 [...]
340 % appstreamcli what-provides mimetype image/svg+xml | \
341 awk '/Package:/ {print $2}'
342 bkchem
343 phototonic
344 inkscape
345 shutter
346 tetzle
347 geeqie
348 xia
349 pinta
350 gthumb
351 karbon
352 comix
353 mirage
354 viewnior
355 postr
356 ristretto
357 kolourpaint4
358 eog
359 eom
360 gimagereader
361 midori
362 %
363 </pre></blockquote>
364
365 <p>I believe the MIME types are fetched from the desktop file for
366 packages providing appstream metadata.</p>
367 </div>
368 <div class="tags">
369
370
371 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>.
372
373
374 </div>
375 </div>
376 <div class="padding"></div>
377
378 <div class="entry">
379 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Creepy__visualise_geotagged_social_media_information___nice_free_software.html">Creepy, visualise geotagged social media information - nice free software</a></div>
380 <div class="date">24th January 2016</div>
381 <div class="body"><p>Most people seem not to realise that every time they walk around
382 with the computerised radio beacon known as a mobile phone their
383 position is tracked by the phone company and often stored for a long
384 time (like every time a SMS is received or sent). And if their
385 computerised radio beacon is capable of running programs (often called
386 mobile apps) downloaded from the Internet, these programs are often
387 also capable of tracking their location (if the app requested access
388 during installation). And when these programs send out information to
389 central collection points, the location is often included, unless
390 extra care is taken to not send the location. The provided
391 information is used by several entities, for good and bad (what is
392 good and bad, depend on your point of view). What is certain, is that
393 the private sphere and the right to free movement is challenged and
394 perhaps even eradicated for those announcing their location this way,
395 when they share their whereabouts with private and public
396 entities.</p>
397
398 <p align="center"><img width="70%" src="http://people.skolelinux.org/pere/blog/images/2016-01-24-nice-creepy-desktop-window.png"></p>
399
400 <p>The phone company logs provide a register of locations to check out
401 when one want to figure out what the tracked person was doing. It is
402 unavailable for most of us, but provided to selected government
403 officials, company staff, those illegally buying information from
404 unfaithful servants and crackers stealing the information. But the
405 public information can be collected and analysed, and a free software
406 tool to do so is called
407 <a href="http://www.geocreepy.com/">Creepy or Cree.py</a>. I
408 discovered it when I read
409 <a href="http://www.aftenposten.no/kultur/Slik-kan-du-bli-overvaket-pa-Twitter-og-Instagram-uten-a-ane-det-7787884.html">an
410 article about Creepy</a> in the Norwegian newspaper Aftenposten i
411 November 2014, and decided to check if it was available in Debian.
412 The python program was in Debian, but
413 <a href="https://tracker.debian.org/pkg/creepy">the version in
414 Debian</a> was completely broken and practically unmaintained. I
415 uploaded a new version which did not work quite right, but did not
416 have time to fix it then. This Christmas I decided to finally try to
417 get Creepy operational in Debian. Now a fixed version is available in
418 Debian unstable and testing, and almost all Debian specific patches
419 are now included
420 <a href="https://github.com/jkakavas/creepy">upstream</a>.</p>
421
422 <p>The Creepy program visualises geolocation information fetched from
423 Twitter, Instagram, Flickr and Google+, and allow one to get a
424 complete picture of every social media message posted recently in a
425 given area, or track the movement of a given individual across all
426 these services. Earlier it was possible to use the search API of at
427 least some of these services without identifying oneself, but these
428 days it is impossible. This mean that to use Creepy, you need to
429 configure it to log in as yourself on these services, and provide
430 information to them about your search interests. This should be taken
431 into account when using Creepy, as it will also share information
432 about yourself with the services.</p>
433
434 <p>The picture above show the twitter messages sent from (or at least
435 geotagged with a position from) the city centre of Oslo, the capital
436 of Norway. One useful way to use Creepy is to first look at
437 information tagged with an area of interest, and next look at all the
438 information provided by one or more individuals who was in the area.
439 I tested it by checking out which celebrity provide their location in
440 twitter messages by checkout out who sent twitter messages near a
441 Norwegian TV station, and next could track their position over time,
442 making it possible to locate their home and work place, among other
443 things. A similar technique have been
444 <a href="http://www.buzzfeed.com/maxseddon/does-this-soldiers-instagram-account-prove-russia-is-covertl">used
445 to locate Russian soldiers in Ukraine</a>, and it is both a powerful
446 tool to discover lying governments, and a useful tool to help people
447 understand the value of the private information they provide to the
448 public.</p>
449
450 <p>The package is not trivial to backport to Debian Stable/Jessie, as
451 it depend on several python modules currently missing in Jessie (at
452 least python-instagram, python-flickrapi and
453 python-requests-toolbelt).</p>
454
455 <p>(I have uploaded
456 <a href="https://screenshots.debian.net/package/creepy">the image to
457 screenshots.debian.net</a> and licensed it under the same terms as the
458 Creepy program in Debian.)</p>
459 </div>
460 <div class="tags">
461
462
463 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software</a>.
464
465
466 </div>
467 </div>
468 <div class="padding"></div>
469
470 <div class="entry">
471 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Always_download_Debian_packages_using_Tor___the_simple_recipe.html">Always download Debian packages using Tor - the simple recipe</a></div>
472 <div class="date">15th January 2016</div>
473 <div class="body"><p>During his DebConf15 keynote, Jacob Appelbaum
474 <a href="https://summit.debconf.org/debconf15/meeting/331/what-is-to-be-done/">observed
475 that those listening on the Internet lines would have good reason to
476 believe a computer have a given security hole</a> if it download a
477 security fix from a Debian mirror. This is a good reason to always
478 use encrypted connections to the Debian mirror, to make sure those
479 listening do not know which IP address to attack. In August, Richard
480 Hartmann observed that encryption was not enough, when it was possible
481 to interfere download size to security patches or the fact that
482 download took place shortly after a security fix was released, and
483 <a href="http://richardhartmann.de/blog/posts/2015/08/24-Tor-enabled_Debian_mirror/">proposed
484 to always use Tor to download packages from the Debian mirror</a>. He
485 was not the first to propose this, as the
486 <tt><a href="https://tracker.debian.org/pkg/apt-transport-tor">apt-transport-tor</a></tt>
487 package by Tim Retout already existed to make it easy to convince apt
488 to use <a href="https://www.torproject.org/">Tor</a>, but I was not
489 aware of that package when I read the blog post from Richard.</p>
490
491 <p>Richard discussed the idea with Peter Palfrader, one of the Debian
492 sysadmins, and he set up a Tor hidden service on one of the central
493 Debian mirrors using the address vwakviie2ienjx6t.onion, thus making
494 it possible to download packages directly between two tor nodes,
495 making sure the network traffic always were encrypted.</p>
496
497 <p>Here is a short recipe for enabling this on your machine, by
498 installing <tt>apt-transport-tor</tt> and replacing http and https
499 urls with tor+http and tor+https, and using the hidden service instead
500 of the official Debian mirror site. I recommend installing
501 <tt>etckeeper</tt> before you start to have a history of the changes
502 done in /etc/.</p>
503
504 <blockquote><pre>
505 apt install apt-transport-tor
506 sed -i 's% http://ftp.debian.org/% tor+http://vwakviie2ienjx6t.onion/%' /etc/apt/sources.list
507 sed -i 's% http% tor+http%' /etc/apt/sources.list
508 </pre></blockquote>
509
510 <p>If you have more sources listed in /etc/apt/sources.list.d/, run
511 the sed commands for these too. The sed command is assuming your are
512 using the ftp.debian.org Debian mirror. Adjust the command (or just
513 edit the file manually) to match your mirror.</p>
514
515 <p>This work in Debian Jessie and later. Note that tools like
516 <tt>apt-file</tt> only recently started using the apt transport
517 system, and do not work with these tor+http URLs. For
518 <tt>apt-file</tt> you need the version currently in experimental,
519 which need a recent apt version currently only in unstable. So if you
520 need a working <tt>apt-file</tt>, this is not for you.</p>
521
522 <p>Another advantage from this change is that your machine will start
523 using Tor regularly and at fairly random intervals (every time you
524 update the package lists or upgrade or install a new package), thus
525 masking other Tor traffic done from the same machine. Using Tor will
526 become normal for the machine in question.</p>
527
528 <p>On <a href="https://wiki.debian.org/FreedomBox">Freedombox</a>, APT
529 is set up by default to use <tt>apt-transport-tor</tt> when Tor is
530 enabled. It would be great if it was the default on any Debian
531 system.</p>
532 </div>
533 <div class="tags">
534
535
536 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>.
537
538
539 </div>
540 </div>
541 <div class="padding"></div>
542
543 <div class="entry">
544 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Nedlasting_fra_NRK__som_Matroska_med_undertekster.html">Nedlasting fra NRK, som Matroska med undertekster</a></div>
545 <div class="date"> 2nd January 2016</div>
546 <div class="body"><p>Det kommer stadig nye løsninger for å ta lagre unna innslag fra NRK
547 for å se på det senere. For en stund tilbake kom jeg over et script
548 nrkopptak laget av Ingvar Hagelund. Han fjernet riktignok sitt script
549 etter forespørsel fra Erik Bolstad i NRK, men noen tok heldigvis og
550 gjorde det <a href="https://github.com/liangqi/nrkopptak">tilgjengelig
551 via github</a>.</p>
552
553 <p>Scriptet kan lagre som MPEG4 eller Matroska, og bake inn
554 undertekster i fila på et vis som blant annet VLC forstår. For å
555 bruke scriptet, kopier ned git-arkivet og kjør</p>
556
557 <p><pre>
558 nrkopptak/bin/nrk-opptak k <ahref="https://tv.nrk.no/serie/bmi-turne/MUHH45000115/sesong-1/episode-1">https://tv.nrk.no/serie/bmi-turne/MUHH45000115/sesong-1/episode-1</a>
559 </pre></p>
560
561 <p>URL-eksemplet er dagens toppsak på tv.nrk.no. Argument 'k' ber
562 scriptet laste ned og lagre som Matroska. Det finnes en rekke andre
563 muligheter for valg av kvalitet og format.</p>
564
565 <p>Jeg foretrekker dette scriptet fremfor youtube-dl, som
566 <a href="http://people.skolelinux.org/pere/blog/Hvordan_enkelt_laste_ned_filmer_fra_NRK_med_den__nye__l_sningen.html">
567 nevnt i 2014 støtter NRK</a> og en rekke andre videokilder, på grunn
568 av at nrkopptak samler undertekster og video i en enkelt fil, hvilket
569 gjør håndtering enklere på disk.</p>
570 </div>
571 <div class="tags">
572
573
574 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</a>.
575
576
577 </div>
578 </div>
579 <div class="padding"></div>
580
581 <div class="entry">
582 <div class="title"><a href="http://people.skolelinux.org/pere/blog/OpenALPR__find_car_license_plates_in_video_streams___nice_free_software.html">OpenALPR, find car license plates in video streams - nice free software</a></div>
583 <div class="date">23rd December 2015</div>
584 <div class="body"><p>When I was a kid, we used to collect "car numbers", as we used to
585 call the car license plate numbers in those days. I would write the
586 numbers down in my little book and compare notes with the other kids
587 to see how many region codes we had seen and if we had seen some
588 exotic or special region codes and numbers. It was a fun game to pass
589 time, as we kids have plenty of it.</p>
590
591 <p>A few days I came across
592 <a href="https://github.com/openalpr/openalpr">the OpenALPR
593 project</a>, a free software project to automatically discover and
594 report license plates in images and video streams, and provide the
595 "car numbers" in a machine readable format. I've been looking for
596 such system for a while now, because I believe it is a bad idea that the
597 <a href="https://en.wikipedia.org/wiki/Automatic_number_plate_recognition">automatic
598 number plate recognition</a> tool only is available in the hands of
599 the powerful, and want it to be available also for the powerless to
600 even the score when it comes to surveillance and sousveillance. I
601 discovered the developer
602 <a href="https://bugs.debian.org/747509">wanted to get the tool into
603 Debian</a>, and as I too wanted it to be in Debian, I volunteered to
604 help him get it into shape to get the package uploaded into the Debian
605 archive.</p>
606
607 <p>Today we finally managed to get the package into shape and uploaded
608 it into Debian, where it currently
609 <a href="https://ftp-master.debian.org//new/openalpr_2.2.1-1.html">waits
610 in the NEW queue</a> for review by the Debian ftpmasters.</p>
611
612 <p>I guess you are wondering why on earth such tool would be useful
613 for the common folks, ie those not running a large government
614 surveillance system? Well, I plan to put it in a computer on my bike
615 and in my car, tracking the cars nearby and allowing me to be notified
616 when number plates on my watch list are discovered. Another use case
617 was suggested by a friend of mine, who wanted to set it up at his home
618 to open the car port automatically when it discovered the plate on his
619 car. When I mentioned it perhaps was a bit foolhardy to allow anyone
620 capable of placing his license plate number of a piece of cardboard to
621 open his car port, men replied that it was always unlocked anyway. I
622 guess for such use case it make sense. I am sure there are other use
623 cases too, for those with imagination and a vision.</p>
624
625 <p>If you want to build your own version of the Debian package, check
626 out the upstream git source and symlink ./distros/debian to ./debian/
627 before running "debuild" to build the source. Or wait a bit until the
628 package show up in unstable.</p>
629 </div>
630 <div class="tags">
631
632
633 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software</a>.
634
635
636 </div>
637 </div>
638 <div class="padding"></div>
639
640 <div class="entry">
641 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Using_appstream_with_isenkram_to_install_hardware_related_packages_in_Debian.html">Using appstream with isenkram to install hardware related packages in Debian</a></div>
642 <div class="date">20th December 2015</div>
643 <div class="body"><p>Around three years ago, I created
644 <a href="http://packages.qa.debian.org/isenkram">the isenkram
645 system</a> to get a more practical solution in Debian for handing
646 hardware related packages. A GUI system in the isenkram package will
647 present a pop-up dialog when some hardware dongle supported by
648 relevant packages in Debian is inserted into the machine. The same
649 lookup mechanism to detect packages is available as command line
650 tools in the isenkram-cli package. In addition to mapping hardware,
651 it will also map kernel firmware files to packages and make it easy to
652 install needed firmware packages automatically. The key for this
653 system to work is a good way to map hardware to packages, in other
654 words, allow packages to announce what hardware they will work
655 with.</p>
656
657 <p>I started by providing data files in the isenkram source, and
658 adding code to download the latest version of these data files at run
659 time, to ensure every user had the most up to date mapping available.
660 I also added support for storing the mapping in the Packages file in
661 the apt repositories, but did not push this approach because while I
662 was trying to figure out how to best store hardware/package mappings,
663 <a href="http://www.freedesktop.org/software/appstream/docs/">the
664 appstream system</a> was announced. I got in touch and suggested to
665 add the hardware mapping into that data set to be able to use
666 appstream as a data source, and this was accepted at least for the
667 Debian version of appstream.</p>
668
669 <p>A few days ago using appstream in Debian for this became possible,
670 and today I uploaded a new version 0.20 of isenkram adding support for
671 appstream as a data source for mapping hardware to packages. The only
672 package so far using appstream to announce its hardware support is my
673 pymissile package. I got help from Matthias Klumpp with figuring out
674 how do add the required
675 <a href="https://appstream.debian.org/html/sid/main/metainfo/pymissile.html">metadata
676 in pymissile</a>. I added a file debian/pymissile.metainfo.xml with
677 this content:</p>
678
679 <blockquote><pre>
680 &lt;?xml version="1.0" encoding="UTF-8"?&gt;
681 &lt;component&gt;
682 &lt;id&gt;pymissile&lt;/id&gt;
683 &lt;metadata_license&gt;MIT&lt;/metadata_license&gt;
684 &lt;name&gt;pymissile&lt;/name&gt;
685 &lt;summary&gt;Control original Striker USB Missile Launcher&lt;/summary&gt;
686 &lt;description&gt;
687 &lt;p&gt;
688 Pymissile provides a curses interface to control an original
689 Marks and Spencer / Striker USB Missile Launcher, as well as a
690 motion control script to allow a webcamera to control the
691 launcher.
692 &lt;/p&gt;
693 &lt;/description&gt;
694 &lt;provides&gt;
695 &lt;modalias&gt;usb:v1130p0202d*&lt;/modalias&gt;
696 &lt;/provides&gt;
697 &lt;/component&gt;
698 </pre></blockquote>
699
700 <p>The key for isenkram is the component/provides/modalias value,
701 which is a glob style match rule for hardware specific strings
702 (modalias strings) provided by the Linux kernel. In this case, it
703 will map to all USB devices with vendor code 1130 and product code
704 0202.</p>
705
706 <p>Note, it is important that the license of all the metadata files
707 are compatible to have permissions to aggregate them into archive wide
708 appstream files. Matthias suggested to use MIT or BSD licenses for
709 these files. A challenge is figuring out a good id for the data, as
710 it is supposed to be globally unique and shared across distributions
711 (in other words, best to coordinate with upstream what to use). But
712 it can be changed later or, so we went with the package name as
713 upstream for this project is dormant.</p>
714
715 <p>To get the metadata file installed in the correct location for the
716 mirror update scripts to pick it up and include its content the
717 appstream data source, the file must be installed in the binary
718 package under /usr/share/appdata/. I did this by adding the following
719 line to debian/pymissile.install:</p>
720
721 <blockquote><pre>
722 debian/pymissile.metainfo.xml usr/share/appdata
723 </pre></blockquote>
724
725 <p>With that in place, the command line tool isenkram-lookup will list
726 all packages useful on the current computer automatically, and the GUI
727 pop-up handler will propose to install the package not already
728 installed if a hardware dongle is inserted into the machine in
729 question.</p>
730
731 <p>Details of the modalias field in appstream is available from the
732 <a href="https://wiki.debian.org/DEP-11">DEP-11</a> proposal.</p>
733
734 <p>To locate the modalias values of all hardware present in a machine,
735 try running this command on the command line:</p>
736
737 <blockquote><pre>
738 cat $(find /sys/devices/|grep modalias)
739 </pre></blockquote>
740
741 <p>To learn more about the isenkram system, please check out
742 <a href="http://people.skolelinux.org/pere/blog/tags/isenkram/">my
743 blog posts tagged isenkram</a>.</p>
744 </div>
745 <div class="tags">
746
747
748 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>.
749
750
751 </div>
752 </div>
753 <div class="padding"></div>
754
755 <div class="entry">
756 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Bokhandeldistribusjon_av_boken_Fri_kultur_av_Lawrence_Lessig.html">Bokhandeldistribusjon av boken Fri kultur av Lawrence Lessig</a></div>
757 <div class="date">14th December 2015</div>
758 <div class="body"><p><strong>Besøk
759 <a href="https://www.lulu.com/shop/lawrence-lessig/fri-kultur/paperback/product-22441576.html">lulu.com</a>
760 eller
761 <a href="https://www.amazon.com/Fri-kultur-Norwegian-Lawrence-Lessig/dp/8269018236/">Amazon</a>
762 for å kjøpe boken på papir, eller last ned ebook som
763 <a href="https://github.com/petterreinholdtsen/free-culture-lessig/raw/master/archive/freeculture.nb.pdf">PDF</a>,
764 <a href="https://github.com/petterreinholdtsen/free-culture-lessig/raw/master/archive/freeculture.nb.epub">ePub</a>
765 eller
766 <a href="https://github.com/petterreinholdtsen/free-culture-lessig/raw/master/archive/freeculture.nb.mobi">MOBI</a>
767 fra
768 <a href="https://github.com/petterreinholdtsen/free-culture-lessig/">github</a>.</strong></p>
769
770 <p>Jeg ble gledelig overrasket i dag da jeg oppdaget at boken jeg har
771 gitt ut
772 <a href="https://www.amazon.com/Fri-kultur-Norwegian-Lawrence-Lessig/dp/8269018236/">hadde
773 dukket opp i Amazon</a>. Jeg hadde trodd det skulle ta lenger tid, da
774 jeg fikk beskjed om at det skulle ta seks til åtte uker.
775 Amazonoppføringen er et resultat av at jeg for noen uker siden
776 diskuterte prissetting og håndtering av profitt med forfatteren. Det
777 måtte avklares da bruksvilkårene til boken har krav om
778 ikke-kommersiell bruk. Vi ble enige om at overskuddet fra salg av
779 boken skal sendes til
780 <a href="https://creativecommons.org/">Creative Commons-stiftelsen</a>.
781 Med det på plass kunne jeg be
782 <a href="https://www.lulu.com/shop/lawrence-lessig/fri-kultur/paperback/product-22441576.html">lulu.com</a>
783 om å gi boken «utvidet» distribusjon. Årsaken til at
784 bokhandeldistribusjon var litt utfordrende er at bokhandlere krever
785 mulighet for profitt på bøkene de selger (selvfølgelig), og dermed
786 måtte de få lov til å selge til høyere pris enn lulu.com. I tillegg
787 er det krav om samme pris på lulu.com og i bokhandlene, dermed blir
788 prisen økt også hos lulu.com. Hva skulle jeg gjøre med den profitten
789 uten å bryte med klausulen om ikkekommersiell? Løsningen var å gi
790 bort profitten til CC-stiftelsen. Prisen på boken ble nesten
791 tredoblet, til $19.99 (ca. 160,-) pluss frakt, men synligheten øker
792 betraktelig når den kan finnes i katalogene til store nettbokhandlere.
793 Det betyr at hvis du allerede har kjøpt boken har du fått den veldig
794 billig, og kjøper du den nå, får du den fortsatt billig samt donerer i
795 tillegg noen tiere til fremme av Creative Commons.</p>
796
797 <p>Mens jeg var i gang med å titte etter informasjon om boken
798 oppdaget jeg at den også var dukket opp på
799 <a href="https://books.google.no/books?id=uKUGCwAAQBAJ">Google
800 Books</a>, der en kan lese den på web. PDF-utgaven har ennå ikke
801 dukket opp hos <a href="https://www.nb.no/">Nasjonalbiblioteket</a>,
802 men det regner jeg med kommer på plass i løpet av noen uker. Boken er
803 heller ikke dukket opp hos
804 <a href="https://www.barnesandnoble.com/">Barnes & Noble</a> ennå, men
805 jeg antar det bare er et tidsspørsmål før dette er på plass.</p>
806
807 <p>Boken er dessverre ikke tilgjengelig fra norske bokhandlere, og
808 kommer neppe til å bli det med det første. Årsaken er at for å få det
809 til måtte jeg personlig håndtere bestilling av bøker, hvilket jeg ikke
810 er interessert i å bruke tid på. Jeg kunne betalt ca 2000,- til
811 <a href="http://www.bokbasen.no/">den norske bokbasen</a>, en felles
812 database over bøker tilgjengelig for norske bokhandlere, for å få en
813 oppføring der, men da måtte jeg tatt imot bestillinger på epost og
814 sendt ut bøker selv. Det ville krevd at jeg var klar til å
815 sende ut bøker på kort varsel, dvs. holdt meg med ekstra bøker,
816 konvolutter og frimerker. Bokbasen har visst ikke opplegg for å be
817 bokhandlene bestille direkte via web, så jeg droppet oppføring der.
818 Jeg har spurt Haugen bok og Tronsmo direkte på epost om de er
819 interessert i å ta inn boken i sin bestillingskatalog, men ikke fått
820 svar, så jeg antar de ikke er interessert. Derimot har jeg fått en
821 hyggelig henvendelse fra Biblioteksentralen som fortalte at de har
822 lagt den inn i sin database slik at deres bibliotekskunder enkelt kan
823 bestille den via dem.</p>
824
825 <p>Boken er i følge
826 <a href="http://bibsys-almaprimo.hosted.exlibrisgroup.com/primo_library/libweb/action/display.do?tabs=detailsTab&ct=display&fn=search&doc=BIBSYS_ILS71518423420002201&indx=1&recIds=BIBSYS_ILS71518423420002201&recIdxs=0&elementId=0&renderMode=poppedOut&displayMode=full&frbrVersion=&dscnt=0&tab=library_catalogue&dstmp=1448543801124&vl(freeText0)=fri%20kultur&vid=UBO&mode=Basic">Bibsys/Oria</a>
827 og bokdatabasen til
828 <a href="https://www.deich.folkebibl.no/cgi-bin/websok?tnr=1819617">Deichmanske</a>
829 tilgjengelig fra flere biblioteker allerede, og alle eksemplarer er
830 visst allerede utlånt med ventetid. Det synes jeg er veldig gledelig
831 å se. Jeg håper mange kommer til å lese boken. Jeg tror den er
832 spesielt egnet for foreldre og bekjente av oss nerder for å forklare
833 hva slags problemer vi ser med dagens opphavsrettsregime.</p>
834 </div>
835 <div class="tags">
836
837
838 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture</a>, <a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk</a>.
839
840
841 </div>
842 </div>
843 <div class="padding"></div>
844
845 <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>
846 <div id="sidebar">
847
848
849
850 <h2>Archive</h2>
851 <ul>
852
853 <li>2016
854 <ul>
855
856 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/01/">January (3)</a></li>
857
858 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/02/">February (2)</a></li>
859
860 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/03/">March (2)</a></li>
861
862 </ul></li>
863
864 <li>2015
865 <ul>
866
867 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/01/">January (7)</a></li>
868
869 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/02/">February (6)</a></li>
870
871 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/03/">March (1)</a></li>
872
873 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/04/">April (4)</a></li>
874
875 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/05/">May (3)</a></li>
876
877 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/06/">June (4)</a></li>
878
879 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/07/">July (6)</a></li>
880
881 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/08/">August (2)</a></li>
882
883 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/09/">September (2)</a></li>
884
885 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/10/">October (9)</a></li>
886
887 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/11/">November (6)</a></li>
888
889 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/12/">December (3)</a></li>
890
891 </ul></li>
892
893 <li>2014
894 <ul>
895
896 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/01/">January (2)</a></li>
897
898 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/02/">February (3)</a></li>
899
900 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/03/">March (8)</a></li>
901
902 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/04/">April (7)</a></li>
903
904 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/05/">May (1)</a></li>
905
906 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/06/">June (2)</a></li>
907
908 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/07/">July (2)</a></li>
909
910 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/08/">August (2)</a></li>
911
912 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/09/">September (5)</a></li>
913
914 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/10/">October (6)</a></li>
915
916 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/11/">November (3)</a></li>
917
918 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/12/">December (5)</a></li>
919
920 </ul></li>
921
922 <li>2013
923 <ul>
924
925 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/01/">January (11)</a></li>
926
927 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/02/">February (9)</a></li>
928
929 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/03/">March (9)</a></li>
930
931 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/04/">April (6)</a></li>
932
933 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/05/">May (9)</a></li>
934
935 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/06/">June (10)</a></li>
936
937 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/07/">July (7)</a></li>
938
939 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/08/">August (3)</a></li>
940
941 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/09/">September (5)</a></li>
942
943 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/10/">October (7)</a></li>
944
945 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/11/">November (9)</a></li>
946
947 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/12/">December (3)</a></li>
948
949 </ul></li>
950
951 <li>2012
952 <ul>
953
954 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/01/">January (7)</a></li>
955
956 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/02/">February (10)</a></li>
957
958 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/03/">March (17)</a></li>
959
960 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/04/">April (12)</a></li>
961
962 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/05/">May (12)</a></li>
963
964 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/06/">June (20)</a></li>
965
966 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/07/">July (17)</a></li>
967
968 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/08/">August (6)</a></li>
969
970 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/09/">September (9)</a></li>
971
972 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/10/">October (17)</a></li>
973
974 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/11/">November (10)</a></li>
975
976 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/12/">December (7)</a></li>
977
978 </ul></li>
979
980 <li>2011
981 <ul>
982
983 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/01/">January (16)</a></li>
984
985 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/02/">February (6)</a></li>
986
987 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/03/">March (6)</a></li>
988
989 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/04/">April (7)</a></li>
990
991 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/05/">May (3)</a></li>
992
993 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/06/">June (2)</a></li>
994
995 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/07/">July (7)</a></li>
996
997 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/08/">August (6)</a></li>
998
999 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/09/">September (4)</a></li>
1000
1001 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/10/">October (2)</a></li>
1002
1003 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/11/">November (3)</a></li>
1004
1005 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/12/">December (1)</a></li>
1006
1007 </ul></li>
1008
1009 <li>2010
1010 <ul>
1011
1012 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/01/">January (2)</a></li>
1013
1014 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/02/">February (1)</a></li>
1015
1016 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/03/">March (3)</a></li>
1017
1018 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/04/">April (3)</a></li>
1019
1020 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/05/">May (9)</a></li>
1021
1022 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/06/">June (14)</a></li>
1023
1024 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/07/">July (12)</a></li>
1025
1026 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/08/">August (13)</a></li>
1027
1028 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/09/">September (7)</a></li>
1029
1030 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/10/">October (9)</a></li>
1031
1032 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/11/">November (13)</a></li>
1033
1034 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/12/">December (12)</a></li>
1035
1036 </ul></li>
1037
1038 <li>2009
1039 <ul>
1040
1041 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/01/">January (8)</a></li>
1042
1043 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/02/">February (8)</a></li>
1044
1045 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/03/">March (12)</a></li>
1046
1047 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/04/">April (10)</a></li>
1048
1049 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/05/">May (9)</a></li>
1050
1051 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/06/">June (3)</a></li>
1052
1053 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/07/">July (4)</a></li>
1054
1055 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/08/">August (3)</a></li>
1056
1057 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/09/">September (1)</a></li>
1058
1059 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/10/">October (2)</a></li>
1060
1061 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/11/">November (3)</a></li>
1062
1063 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/12/">December (3)</a></li>
1064
1065 </ul></li>
1066
1067 <li>2008
1068 <ul>
1069
1070 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/11/">November (5)</a></li>
1071
1072 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/12/">December (7)</a></li>
1073
1074 </ul></li>
1075
1076 </ul>
1077
1078
1079
1080 <h2>Tags</h2>
1081 <ul>
1082
1083 <li><a href="http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (13)</a></li>
1084
1085 <li><a href="http://people.skolelinux.org/pere/blog/tags/amiga">amiga (1)</a></li>
1086
1087 <li><a href="http://people.skolelinux.org/pere/blog/tags/aros">aros (1)</a></li>
1088
1089 <li><a href="http://people.skolelinux.org/pere/blog/tags/bankid">bankid (4)</a></li>
1090
1091 <li><a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (9)</a></li>
1092
1093 <li><a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (15)</a></li>
1094
1095 <li><a href="http://people.skolelinux.org/pere/blog/tags/bsa">bsa (2)</a></li>
1096
1097 <li><a href="http://people.skolelinux.org/pere/blog/tags/chrpath">chrpath (2)</a></li>
1098
1099 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian">debian (121)</a></li>
1100
1101 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (154)</a></li>
1102
1103 <li><a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan (10)</a></li>
1104
1105 <li><a href="http://people.skolelinux.org/pere/blog/tags/dld">dld (15)</a></li>
1106
1107 <li><a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook (20)</a></li>
1108
1109 <li><a href="http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
1110
1111 <li><a href="http://people.skolelinux.org/pere/blog/tags/english">english (304)</a></li>
1112
1113 <li><a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (23)</a></li>
1114
1115 <li><a href="http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (12)</a></li>
1116
1117 <li><a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (25)</a></li>
1118
1119 <li><a href="http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox (9)</a></li>
1120
1121 <li><a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (16)</a></li>
1122
1123 <li><a href="http://people.skolelinux.org/pere/blog/tags/h264">h264 (20)</a></li>
1124
1125 <li><a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju (42)</a></li>
1126
1127 <li><a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram (11)</a></li>
1128
1129 <li><a href="http://people.skolelinux.org/pere/blog/tags/kart">kart (19)</a></li>
1130
1131 <li><a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap (9)</a></li>
1132
1133 <li><a href="http://people.skolelinux.org/pere/blog/tags/lenker">lenker (8)</a></li>
1134
1135 <li><a href="http://people.skolelinux.org/pere/blog/tags/lsdvd">lsdvd (2)</a></li>
1136
1137 <li><a href="http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (1)</a></li>
1138
1139 <li><a href="http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network (8)</a></li>
1140
1141 <li><a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (37)</a></li>
1142
1143 <li><a href="http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software (7)</a></li>
1144
1145 <li><a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk (273)</a></li>
1146
1147 <li><a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug (177)</a></li>
1148
1149 <li><a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (22)</a></li>
1150
1151 <li><a href="http://people.skolelinux.org/pere/blog/tags/open311">open311 (2)</a></li>
1152
1153 <li><a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (58)</a></li>
1154
1155 <li><a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern (92)</a></li>
1156
1157 <li><a href="http://people.skolelinux.org/pere/blog/tags/raid">raid (1)</a></li>
1158
1159 <li><a href="http://people.skolelinux.org/pere/blog/tags/reactos">reactos (1)</a></li>
1160
1161 <li><a href="http://people.skolelinux.org/pere/blog/tags/reprap">reprap (11)</a></li>
1162
1163 <li><a href="http://people.skolelinux.org/pere/blog/tags/rfid">rfid (3)</a></li>
1164
1165 <li><a href="http://people.skolelinux.org/pere/blog/tags/robot">robot (9)</a></li>
1166
1167 <li><a href="http://people.skolelinux.org/pere/blog/tags/rss">rss (1)</a></li>
1168
1169 <li><a href="http://people.skolelinux.org/pere/blog/tags/ruter">ruter (4)</a></li>
1170
1171 <li><a href="http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (2)</a></li>
1172
1173 <li><a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (45)</a></li>
1174
1175 <li><a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (4)</a></li>
1176
1177 <li><a href="http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (4)</a></li>
1178
1179 <li><a href="http://people.skolelinux.org/pere/blog/tags/standard">standard (49)</a></li>
1180
1181 <li><a href="http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (3)</a></li>
1182
1183 <li><a href="http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (10)</a></li>
1184
1185 <li><a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (36)</a></li>
1186
1187 <li><a href="http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (2)</a></li>
1188
1189 <li><a href="http://people.skolelinux.org/pere/blog/tags/usenix">usenix (2)</a></li>
1190
1191 <li><a href="http://people.skolelinux.org/pere/blog/tags/valg">valg (8)</a></li>
1192
1193 <li><a href="http://people.skolelinux.org/pere/blog/tags/video">video (55)</a></li>
1194
1195 <li><a href="http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (4)</a></li>
1196
1197 <li><a href="http://people.skolelinux.org/pere/blog/tags/web">web (38)</a></li>
1198
1199 </ul>
1200
1201
1202 </div>
1203 <p style="text-align: right">
1204 Created by <a href="http://steve.org.uk/Software/chronicle">Chronicle v4.6</a>
1205 </p>
1206
1207 </body>
1208 </html>