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