1 <?xml version=
"1.0" encoding=
"utf-8"?>
2 <rss version='
2.0' xmlns:lj='http://www.livejournal.org/rss/lj/
1.0/' xmlns:
atom=
"http://www.w3.org/2005/Atom">
4 <title>Petter Reinholdtsen
</title>
5 <description></description>
6 <link>http://people.skolelinux.org/pere/blog/
</link>
7 <atom:link href=
"http://people.skolelinux.org/pere/blog/index.rss" rel=
"self" type=
"application/rss+xml" />
10 <title>listadmin, the quick way to moderate mailman lists - nice free software
</title>
11 <link>http://people.skolelinux.org/pere/blog/listadmin__the_quick_way_to_moderate_mailman_lists___nice_free_software.html
</link>
12 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/listadmin__the_quick_way_to_moderate_mailman_lists___nice_free_software.html
</guid>
13 <pubDate>Wed,
22 Oct
2014 20:
00:
00 +
0200</pubDate>
14 <description><p
>If you ever had to moderate a mailman list, like the ones on
15 alioth.debian.org, you know the web interface is fairly slow to
16 operate. First you visit one web page, enter the moderation password
17 and get a new page shown with a list of all the messages to moderate
18 and various options for each email address. This take a while for
19 every list you moderate, and you need to do it regularly to do a good
20 job as a list moderator. But there is a quick alternative,
21 <a href=
"http://heim.ifi.uio.no/kjetilho/hacks/#listadmin
">the
22 listadmin program
</a
>. It allow you to check lists for new messages
23 to moderate in a fraction of a second. Here is a test run on two
24 lists I recently took over:
</p
>
26 <p
><blockquote
><pre
>
28 fetching data for pkg-xiph-commits@lists.alioth.debian.org ... nothing in queue
29 fetching data for pkg-xiph-maint@lists.alioth.debian.org ... nothing in queue
35 </pre
></blockquote
></p
>
37 <p
>In
1.7 seconds I had checked two mailing lists and confirmed that
38 there are no message in the moderation queue. Every morning I
39 currently moderate
68 mailman lists, and it normally take around two
40 minutes. When I took over the two pkg-xiph lists above a few days
41 ago, there were
400 emails waiting in the moderator queue. It took me
42 less than
15 minutes to process them all using the listadmin
45 <p
>If you install
46 <a href=
"https://tracker.debian.org/pkg/listadmin
">the listadmin
47 package
</a
> from Debian and create a file
<tt
>~/.listadmin.ini
</tt
>
48 with content like this, the moderation task is a breeze:
</p
>
50 <p
><blockquote
><pre
>
54 discard_if_reason
"Posting restricted to members only. Remove us from your mail list.
"
57 adminurl https://{domain}/mailman/admindb/{list}
58 mailman-list@lists.example.com
61 other-list@otherserver.example.org
62 </pre
></blockquote
></p
>
64 <p
>There are other options to set as well. Check the manual page to
65 learn the details.
</p
>
67 <p
>If you are forced to moderate lists on a mailman installation where
68 the SSL certificate is self signed or not properly signed by a
69 generally accepted signing authority, you can set a environment
70 variable when calling listadmin to disable SSL verification:
</p
>
72 <p
><blockquote
><pre
>
73 PERL_LWP_SSL_VERIFY_HOSTNAME=
0 listadmin
74 </pre
></blockquote
></p
>
76 <p
>If you want to moderate a subset of the lists you take care of, you
77 can provide an argument to the listadmin script like I do in the
78 initial screen dump (the xiph argument). Using an argument, only
79 lists matching the argument string will be processed. This make it
80 quick to accept messages if you notice the moderation request in your
83 <p
>Without the listadmin program, I would never be the moderator of
68
84 mailing lists, as I simply do not have time to spend on that if the
85 process was any slower. The listadmin program have saved me hours of
86 time I could spend elsewhere over the years. It truly is nice free
89 <p
>As usual, if you use Bitcoin and want to show your support of my
90 activities, please send Bitcoin donations to my address
91 <b
><a href=
"bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
&label=PetterReinholdtsenBlog
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a
></b
>.
</p
>
96 <title>Debian Jessie, PXE and automatic firmware installation
</title>
97 <link>http://people.skolelinux.org/pere/blog/Debian_Jessie__PXE_and_automatic_firmware_installation.html
</link>
98 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Debian_Jessie__PXE_and_automatic_firmware_installation.html
</guid>
99 <pubDate>Fri,
17 Oct
2014 14:
10:
00 +
0200</pubDate>
100 <description><p
>When PXE installing laptops with Debian, I often run into the
101 problem that the WiFi card require some firmware to work properly.
102 And it has been a pain to fix this using preseeding in Debian.
103 Normally something more is needed. But thanks to
104 <a href=
"https://packages.qa.debian.org/i/isenkram.html
">my isenkram
105 package
</a
> and its recent tasksel extension, it has now become easy
106 to do this using simple preseeding.
</p
>
108 <p
>The isenkram-cli package provide tasksel tasks which will install
109 firmware for the hardware found in the machine (actually, requested by
110 the kernel modules for the hardware). (It can also install user space
111 programs supporting the hardware detected, but that is not the focus
112 of this story.)
</p
>
114 <p
>To get this working in the default installation, two preeseding
115 values are needed. First, the isenkram-cli package must be installed
116 into the target chroot (aka the hard drive) before tasksel is executed
117 in the pkgsel step of the debian-installer system. This is done by
118 preseeding the base-installer/includes debconf value to include the
119 isenkram-cli package. The package name is next passed to debootstrap
120 for installation. With the isenkram-cli package in place, tasksel
121 will automatically use the isenkram tasks to detect hardware specific
122 packages for the machine being installed and install them, because
123 isenkram-cli contain tasksel tasks.
</p
>
125 <p
>Second, one need to enable the non-free APT repository, because
126 most firmware unfortunately is non-free. This is done by preseeding
127 the apt-mirror-setup step. This is unfortunate, but for a lot of
128 hardware it is the only option in Debian.
</p
>
130 <p
>The end result is two lines needed in your preseeding file to get
131 firmware installed automatically by the installer:
</p
>
133 <p
><blockquote
><pre
>
134 base-installer base-installer/includes string isenkram-cli
135 apt-mirror-setup apt-setup/non-free boolean true
136 </pre
></blockquote
></p
>
138 <p
>The current version of isenkram-cli in testing/jessie will install
139 both firmware and user space packages when using this method. It also
140 do not work well, so use version
0.15 or later. Installing both
141 firmware and user space packages might give you a bit more than you
142 want, so I decided to split the tasksel task in two, one for firmware
143 and one for user space programs. The firmware task is enabled by
144 default, while the one for user space programs is not. This split is
145 implemented in the package currently in unstable.
</p
>
147 <p
>If you decide to give this a go, please let me know (via email) how
148 this recipe work for you. :)
</p
>
150 <p
>So, I bet you are wondering, how can this work. First and
151 foremost, it work because tasksel is modular, and driven by whatever
152 files it find in /usr/lib/tasksel/ and /usr/share/tasksel/. So the
153 isenkram-cli package place two files for tasksel to find. First there
154 is the task description file (/usr/share/tasksel/descs/isenkram.desc):
</p
>
156 <p
><blockquote
><pre
>
157 Task: isenkram-packages
159 Description: Hardware specific packages (autodetected by isenkram)
160 Based on the detected hardware various hardware specific packages are
162 Test-new-install: show show
164 Packages: for-current-hardware
166 Task: isenkram-firmware
168 Description: Hardware specific firmware packages (autodetected by isenkram)
169 Based on the detected hardware various hardware specific firmware
170 packages are proposed.
171 Test-new-install: mark show
173 Packages: for-current-hardware-firmware
174 </pre
></blockquote
></p
>
176 <p
>The key parts are Test-new-install which indicate how the task
177 should be handled and the Packages line referencing to a script in
178 /usr/lib/tasksel/packages/. The scripts use other scripts to get a
179 list of packages to install. The for-current-hardware-firmware script
180 look like this to list relevant firmware for the machine:
182 <p
><blockquote
><pre
>
187 isenkram-autoinstall-firmware -l
188 </pre
></blockquote
></p
>
190 <p
>With those two pieces in place, the firmware is installed by
191 tasksel during the normal d-i run. :)
</p
>
193 <p
>If you want to test what tasksel will install when isenkram-cli is
194 installed, run
<tt
>DEBIAN_PRIORITY=critical tasksel --test
195 --new-install
</tt
> to get the list of packages that tasksel would
198 <p
><a href=
"https://wiki.debian.org/DebianEdu/
">Debian Edu
</a
> will be
199 pilots in testing this feature, as isenkram is used there now to
200 install firmware, replacing the earlier scripts.
</p
>
205 <title>Ubuntu used to show the bread prizes at ICA Storo
</title>
206 <link>http://people.skolelinux.org/pere/blog/Ubuntu_used_to_show_the_bread_prizes_at_ICA_Storo.html
</link>
207 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Ubuntu_used_to_show_the_bread_prizes_at_ICA_Storo.html
</guid>
208 <pubDate>Sat,
4 Oct
2014 15:
20:
00 +
0200</pubDate>
209 <description><p
>Today I came across an unexpected Ubuntu boot screen. Above the
210 bread shelf on the ICA shop at Storo in Oslo, the grub menu of Ubuntu
211 with Linux kernel
3.2.0-
23 (ie probably version
12.04 LTS) was stuck
212 on a screen normally showing the bread types and prizes:
</p
>
214 <p align=
"center
"><img width=
"70%
" src=
"http://people.skolelinux.org/pere/blog/images/
2014-
10-
04-ubuntu-ica-storo-crop.jpeg
"></p
>
216 <p
>If it had booted as it was supposed to, I would never had known
217 about this hidden Linux installation. It is interesting what
218 <a href=
"http://revealingerrors.com/
">errors can reveal
</a
>.
</p
>
223 <title>New lsdvd release version
0.17 is ready
</title>
224 <link>http://people.skolelinux.org/pere/blog/New_lsdvd_release_version_0_17_is_ready.html
</link>
225 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/New_lsdvd_release_version_0_17_is_ready.html
</guid>
226 <pubDate>Sat,
4 Oct
2014 08:
40:
00 +
0200</pubDate>
227 <description><p
>The
<a href=
"https://sourceforge.net/p/lsdvd/
">lsdvd project
</a
>
228 got a new set of developers a few weeks ago, after the original
229 developer decided to step down and pass the project to fresh blood.
230 This project is now maintained by Petter Reinholdtsen and Steve
233 <p
>I just wrapped up
234 <a href=
"https://sourceforge.net/p/lsdvd/mailman/message/
32896061/
">a
235 new lsdvd release
</a
>, available in git or from
236 <a href=
"https://sourceforge.net/projects/lsdvd/files/lsdvd/
">the
237 download page
</a
>. This is the changelog dated
2014-
10-
03 for version
242 <li
>Ignore
'phantom
' audio, subtitle tracks
</li
>
243 <li
>Check for garbage in the program chains, which indicate that a track is
244 non-existant, to work around additional copy protection
</li
>
245 <li
>Fix displaying content type for audio tracks, subtitles
</li
>
246 <li
>Fix pallete display of first entry
</li
>
247 <li
>Fix include orders
</li
>
248 <li
>Ignore read errors in titles that would not be displayed anyway
</li
>
249 <li
>Fix the chapter count
</li
>
250 <li
>Make sure the array size and the array limit used when initialising
251 the palette size is the same.
</li
>
252 <li
>Fix array printing.
</li
>
253 <li
>Correct subsecond calculations.
</li
>
254 <li
>Add sector information to the output format.
</li
>
255 <li
>Clean up code to be closer to ANSI C and compile without warnings
256 with more GCC compiler warnings.
</li
>
260 <p
>This change bring together patches for lsdvd in use in various
261 Linux and Unix distributions, as well as patches submitted to the
262 project the last nine years. Please check it out. :)
</p
>
267 <title>How to test Debian Edu Jessie despite some fatal problems with the installer
</title>
268 <link>http://people.skolelinux.org/pere/blog/How_to_test_Debian_Edu_Jessie_despite_some_fatal_problems_with_the_installer.html
</link>
269 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/How_to_test_Debian_Edu_Jessie_despite_some_fatal_problems_with_the_installer.html
</guid>
270 <pubDate>Fri,
26 Sep
2014 12:
20:
00 +
0200</pubDate>
271 <description><p
>The
<a href=
"http://www.skolelinux.org/
">Debian Edu / Skolelinux
272 project
</a
> provide a Linux solution for schools, including a
273 powerful desktop with education software, a central server providing
274 web pages, user database, user home directories, central login and PXE
275 boot of both clients without disk and the installation to install Debian
276 Edu on machines with disk (and a few other services perhaps to small
277 to mention here). We in the Debian Edu team are currently working on
278 the Jessie based version, trying to get everything in shape before the
279 freeze, to avoid having to maintain our own package repository in the
281 <a href=
"https://wiki.debian.org/DebianEdu/Status/Jessie
">current
282 status
</a
> can be seen on the Debian wiki, and there is still heaps of
283 work left. Some fatal problems block testing, breaking the installer,
284 but it is possible to work around these to get anyway. Here is a
285 recipe on how to get the installation limping along.
</p
>
287 <p
>First, download the test ISO via
288 <a href=
"ftp://ftp.skolelinux.no/cd-edu-testing-nolocal-netinst/debian-edu-amd64-i386-NETINST-
1.iso
">ftp
</a
>,
289 <a href=
"http://ftp.skolelinux.no/cd-edu-testing-nolocal-netinst/debian-edu-amd64-i386-NETINST-
1.iso
">http
</a
>
291 ftp.skolelinux.org::cd-edu-testing-nolocal-netinst/debian-edu-amd64-i386-NETINST-
1.iso).
292 The ISO build was broken on Tuesday, so we do not get a new ISO every
293 12 hours or so, but thankfully the ISO we already got we are able to
294 install with some tweaking.
</p
>
296 <p
>When you get to the Debian Edu profile question, go to tty2
297 (use Alt-Ctrl-F2), run
</p
>
299 <p
><blockquote
><pre
>
300 nano /usr/bin/edu-eatmydata-install
301 </pre
></blockquote
></p
>
303 <p
>and add
'exit
0' as the second line, disabling the eatmydata
304 optimization. Return to the installation, select the profile you want
305 and continue. Without this change, exim4-config will fail to install
306 due to a known bug in eatmydata.
</p
>
308 <p
>When you get the grub question at the end, answer /dev/sda (or if
309 this do not work, figure out what your correct value would be. All my
310 test machines need /dev/sda, so I have no advice if it do not fit
313 <p
>If you installed a profile including a graphical desktop, log in as
314 root after the initial boot from hard drive, and install the
315 education-desktop-XXX metapackage. XXX can be kde, gnome, lxde, xfce
316 or mate. If you want several desktop options, install more than one
317 metapackage. Once this is done, reboot and you should have a working
318 graphical login screen. This workaround should no longer be needed
319 once the education-tasks package version
1.801 enter testing in two
322 <p
>I believe the ISO build will start working on two days when the new
323 tasksel package enter testing and Steve McIntyre get a chance to
324 update the debian-cd git repository. The eatmydata, grub and desktop
325 issues are already fixed in unstable and testing, and should show up
326 on the ISO as soon as the ISO build start working again. Well the
327 eatmydata optimization is really just disabled. The proper fix
328 require an upload by the eatmydata maintainer applying the patch
329 provided in bug
<a href=
"https://bugs.debian.org/
702711">#
702711</a
>.
330 The rest have proper fixes in unstable.
</p
>
332 <p
>I hope this get you going with the installation testing, as we are
333 quickly running out of time trying to get our Jessie based
334 installation ready before the distribution freeze in a month.
</p
>
339 <title>Suddenly I am the new upstream of the lsdvd command line tool
</title>
340 <link>http://people.skolelinux.org/pere/blog/Suddenly_I_am_the_new_upstream_of_the_lsdvd_command_line_tool.html
</link>
341 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Suddenly_I_am_the_new_upstream_of_the_lsdvd_command_line_tool.html
</guid>
342 <pubDate>Thu,
25 Sep
2014 11:
20:
00 +
0200</pubDate>
343 <description><p
>I use the
<a href=
"https://sourceforge.net/p/lsdvd/
">lsdvd tool
</a
>
344 to handle my fairly large DVD collection. It is a nice command line
345 tool to get details about a DVD, like title, tracks, track length,
346 etc, in XML, Perl or human readable format. But lsdvd have not seen
347 any new development since
2006 and had a few irritating bugs affecting
348 its use with some DVDs. Upstream seemed to be dead, and in January I
349 sent a small probe asking for a version control repository for the
350 project, without any reply. But I use it regularly and would like to
351 get
<a href=
"https://packages.qa.debian.org/lsdvd
">an updated version
352 into Debian
</a
>. So two weeks ago I tried harder to get in touch with
353 the project admin, and after getting a reply from him explaining that
354 he was no longer interested in the project, I asked if I could take
355 over. And yesterday, I became project admin.
</p
>
357 <p
>I
've been in touch with a Gentoo developer and the Debian
358 maintainer interested in joining forces to maintain the upstream
359 project, and I hope we can get a new release out fairly quickly,
360 collecting the patches spread around on the internet into on place.
361 I
've added the relevant Debian patches to the freshly created git
362 repository, and expect the Gentoo patches to make it too. If you got
363 a DVD collection and care about command line tools, check out
364 <a href=
"https://sourceforge.net/p/lsdvd/git/ci/master/tree/
">the git source
</a
> and join
365 <a href=
"https://sourceforge.net/p/lsdvd/mailman/
">the project mailing
366 list
</a
>. :)
</p
>
371 <title>Hva henger under skibrua over E16 på Sollihøgda?
</title>
372 <link>http://people.skolelinux.org/pere/blog/Hva_henger_under_skibrua_over_E16_p__Sollih_gda_.html
</link>
373 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Hva_henger_under_skibrua_over_E16_p__Sollih_gda_.html
</guid>
374 <pubDate>Sun,
21 Sep
2014 09:
50:
00 +
0200</pubDate>
375 <description><p
>Rundt omkring i Oslo og Østlandsområdet henger det bokser over
376 veiene som jeg har lurt på hva gjør. De har ut fra plassering og
377 vinkling sett ut som bokser som sniffer ut et eller annet fra
378 forbipasserende trafikk, men det har vært uklart for meg hva det er de
379 leser av. Her om dagen tok jeg bilde av en slik boks som henger under
380 <a href=
"http://www.openstreetmap.no/?zoom=
19&mlat=
59.96396&mlon=
10.34443&layers=B00000
">ei
381 skibru på Sollihøgda
</a
>:
</p
>
383 <p align=
"center
"><img width=
"60%
" src=
"http://people.skolelinux.org/pere/blog/images/
2014-
09-
13-kapsch-sollihogda-crop.jpeg
"></p
>
385 <p
>Boksen er tydelig merket «Kapsch
>>>», logoen til
386 <a href=
"http://www.kapsch.net/
">det sveitsiske selskapet Kapsch
</a
> som
387 blant annet lager sensorsystemer for veitrafikk. Men de lager mye
388 forskjellig, og jeg kjente ikke igjen boksen på utseendet etter en
389 kjapp titt på produktlista til selskapet.
</p
>
391 <p
>I og med at boksen henger over veien E16, en riksvei vedlikeholdt
392 av Statens Vegvesen, så antok jeg at det burde være mulig å bruke
393 REST-API-et som gir tilgang til vegvesenets database over veier,
394 skilter og annet veirelatert til å finne ut hva i alle dager dette
395 kunne være. De har både
396 <a href=
"https://www.vegvesen.no/nvdb/api/dokumentasjon/datakatalog
">en
397 datakatalog
</a
> og
398 <a href=
"https://www.vegvesen.no/nvdb/api/dokumentasjon/sok
">et
399 søk
</a
>, der en kan søke etter ulike typer oppføringer innen for et
400 gitt geografisk område. Jeg laget et enkelt shell-script for å hente
401 ut antall av en gitt type innenfor området skibrua dekker, og listet
402 opp navnet på typene som ble funnet. Orket ikke slå opp hvordan
403 URL-koding av aktuelle strenger kunne gjøres mer generisk, og brukte
404 en stygg sed-linje i stedet.
</p
>
406 <blockquote
><pre
>
410 -e
's/ / /g
' -e
's/{/%
7B/g
' \
411 -e
's/}/%
7D/g
' -e
's/\[/%
5B/g
' \
412 -e
's/\]/%
5D/g
' -e
's/ /%
20/g
' \
413 -e
's/,/%
2C/g
' -e
's/\
"/%
22/g
' \
414 -e
's/:/%
3A/g
'
419 curl -s -H
'Accept: application/vnd.vegvesen.nvdb-v1+xml
' \
420 "https://www.vegvesen.no/nvdb/api$url
" | xmllint --format -
423 for id in $(seq
1 874) ; do
426 bbox: \
"10.34425,
59.96386,
10.34458,
59.96409\
",
427 srid: \
"WGS84\
"
434 query=/sok?kriterie=$(echo $search | urlmap)
435 if lookup
"$query
" |
436 grep -q
'&lt;totaltAntallReturnert
>0&lt;
'
441 lookup
"/datakatalog/objekttyper/$id
" |grep
'^
&lt;navn
>'
446 </pre
></blockquote
>
448 Aktuelt ID-område
1-
874 var riktig i datakatalogen da jeg laget
449 scriptet. Det vil endre seg over tid. Skriptet listet så opp
450 aktuelle typer i og rundt skibrua:
452 <blockquote
><pre
>
454 &lt;navn
>Rekkverk
&lt;/navn
>
456 &lt;navn
>Rekkverksende
&lt;/navn
>
458 &lt;navn
>Trafikklomme
&lt;/navn
>
460 &lt;navn
>Trafikkøy
&lt;/navn
>
462 &lt;navn
>Bru
&lt;/navn
>
464 &lt;navn
>Stikkrenne/Kulvert
&lt;/navn
>
466 &lt;navn
>Grøft, åpen
&lt;/navn
>
468 &lt;navn
>Belysningsstrekning
&lt;/navn
>
470 &lt;navn
>Skiltpunkt
&lt;/navn
>
472 &lt;navn
>Skiltplate
&lt;/navn
>
474 &lt;navn
>Referansestolpe
&lt;/navn
>
476 &lt;navn
>Vegoppmerking, langsgående
&lt;/navn
>
478 &lt;navn
>Fartsgrense
&lt;/navn
>
480 &lt;navn
>Vinterdriftsstrategi
&lt;/navn
>
482 &lt;navn
>Trafikkdeler
&lt;/navn
>
484 &lt;navn
>Vegdekke
&lt;/navn
>
486 &lt;navn
>Breddemåling
&lt;/navn
>
488 &lt;navn
>Kantklippareal
&lt;/navn
>
490 &lt;navn
>Snø-/isrydding
&lt;/navn
>
492 &lt;navn
>Skred
&lt;/navn
>
494 &lt;navn
>Dokumentasjon
&lt;/navn
>
496 &lt;navn
>Undergang
&lt;/navn
>
498 &lt;navn
>Tverrprofil
&lt;/navn
>
500 &lt;navn
>Vegreferanse
&lt;/navn
>
502 &lt;navn
>Region
&lt;/navn
>
504 &lt;navn
>Fylke
&lt;/navn
>
506 &lt;navn
>Kommune
&lt;/navn
>
508 &lt;navn
>Gate
&lt;/navn
>
510 &lt;navn
>Transportlenke
&lt;/navn
>
512 &lt;navn
>Trafikkmengde
&lt;/navn
>
514 &lt;navn
>Trafikkulykke
&lt;/navn
>
516 &lt;navn
>Ulykkesinvolvert enhet
&lt;/navn
>
518 &lt;navn
>Ulykkesinvolvert person
&lt;/navn
>
520 &lt;navn
>Politidistrikt
&lt;/navn
>
522 &lt;navn
>Vegbredde
&lt;/navn
>
524 &lt;navn
>Høydebegrensning
&lt;/navn
>
526 &lt;navn
>Nedbøyningsmåling
&lt;/navn
>
528 &lt;navn
>Støy-luft, Strekningsdata
&lt;/navn
>
530 &lt;navn
>Oppgravingsdata
&lt;/navn
>
532 &lt;navn
>Oppgravingslag
&lt;/navn
>
534 &lt;navn
>PMS-parsell
&lt;/navn
>
536 &lt;navn
>Vegnormalstrekning
&lt;/navn
>
538 &lt;navn
>Værrelatert strekning
&lt;/navn
>
540 &lt;navn
>Feltstrekning
&lt;/navn
>
542 &lt;navn
>Adressepunkt
&lt;/navn
>
544 &lt;navn
>Friksjonsmåleserie
&lt;/navn
>
546 &lt;navn
>Vegdekke, flatelapping
&lt;/navn
>
548 &lt;navn
>Kurvatur, horisontalelement
&lt;/navn
>
550 &lt;navn
>Kurvatur, vertikalelement
&lt;/navn
>
552 &lt;navn
>Kurvatur, vertikalpunkt
&lt;/navn
>
554 &lt;navn
>Statistikk, trafikkmengde
&lt;/navn
>
556 &lt;navn
>Statistikk, vegbredde
&lt;/navn
>
558 &lt;navn
>Nedbøyningsmåleserie
&lt;/navn
>
560 &lt;navn
>ATK, influensstrekning
&lt;/navn
>
562 &lt;navn
>Systemobjekt
&lt;/navn
>
564 &lt;navn
>Vinterdriftsklasse
&lt;/navn
>
566 &lt;navn
>Funksjonell vegklasse
&lt;/navn
>
568 &lt;navn
>Kurvatur, stigning
&lt;/navn
>
570 &lt;navn
>Vegbredde, beregnet
&lt;/navn
>
572 &lt;navn
>Reisetidsregistreringspunkt
&lt;/navn
>
574 &lt;navn
>Bruksklasse
&lt;/navn
>
575 </pre
></blockquote
>
577 <p
>Av disse ser ID
775 og
862 mest relevant ut. ID
775 antar jeg
578 refererer til fotoboksen som står like ved brua, mens
579 «Reisetidsregistreringspunkt» kanskje kan være boksen som henger der.
580 Hvordan finner jeg så ut hva dette kan være for noe. En titt på
581 <a href=
"http://labs.vegdata.no/nvdb-datakatalog/
862-Reisetidsregistreringspunkt/
">datakatalogsiden
582 for ID
862/Reisetidsregistreringspunkt
</a
> viser at det er finnes
53
583 slike målere i Norge, og hvor de er plassert, men gir ellers få
584 detaljer. Det er plassert
40 på østlandet og
13 i Trondheimsregionen.
585 Men siden nevner «AutoPASS», og hvis en slår opp oppføringen på
586 Sollihøgda nevner den «Ciber AS» som ID for eksternt system. (Kan det
588 <a href=
"http://www.proff.no/selskap/ciber-norge-as/oslo/internettdesign-og-programmering/Z0I3KMF4/
">Ciber
589 Norge AS
</a
>, et selskap eid av Ciber Europe Bv?) Et nettsøk på
590 «Ciber AS autopass» fører meg til en artikkel fra NRK Trøndelag i
592 «
<a href=
"http://www.nrk.no/trondelag/sjekk-dette-hvis-du-vil-unnga-ko-
1.11327947">Sjekk
593 dette hvis du vil unngå kø
</a
>». Artikkelen henviser til vegvesenets
595 <a href=
"http://www.reisetider.no/reisetid/forside.html
">reisetider.no
</a
>
597 <a href=
"http://www.reisetider.no/reisetid/omrade.html?omrade=
5">kartside
598 for Østlandet
</a
> som viser at det måles mellom Sandvika og Sollihøgda.
599 Det kan dermed se ut til at jeg har funnet ut hva boksene gjør.
</p
>
601 <p
>Hvis det stemmer, så er dette bokser som leser av AutoPASS-ID-en
602 til alle passerende biler med AutoPASS-brikke, og dermed gjør det mulig
603 for de som kontrollerer boksene å holde rede på hvor en gitt bil er
604 når den passerte et slikt målepunkt. NRK-artikkelen forteller at
605 denne informasjonen i dag kun brukes til å koble to
606 AutoPASS-brikkepasseringer passeringer sammen for å beregne
607 reisetiden, og at bruken er godkjent av Datatilsynet. Det er desverre
608 ikke mulig for en sjåfør som passerer under en slik boks å kontrollere
609 at AutoPASS-ID-en kun brukes til dette i dag og i fremtiden.
</p
>
611 <p
>I tillegg til denne type AutoPASS-sniffere vet jeg at det også
612 finnes mange automatiske stasjoner som tar betalt pr. passering (aka
613 bomstasjoner), og der lagres informasjon om tid, sted og bilnummer i
614 10 år. Finnes det andre slike sniffere plassert ut på veiene?
</p
>
616 <p
>Personlig har jeg valgt å ikke bruke AutoPASS-brikke, for å gjøre
617 det vanskeligere og mer kostbart for de som vil invadere privatsfæren
618 og holde rede på hvor bilen min beveger seg til enhver tid. Jeg håper
619 flere vil gjøre det samme, selv om det gir litt høyere private
620 utgifter (dyrere bompassering). Vern om privatsfæren koster i disse
623 <p
>Takk til Jan Kristian Jensen i Statens Vegvesen for tips om
624 dokumentasjon på vegvesenets REST-API.
</p
>
629 <title>Speeding up the Debian installer using eatmydata and dpkg-divert
</title>
630 <link>http://people.skolelinux.org/pere/blog/Speeding_up_the_Debian_installer_using_eatmydata_and_dpkg_divert.html
</link>
631 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Speeding_up_the_Debian_installer_using_eatmydata_and_dpkg_divert.html
</guid>
632 <pubDate>Tue,
16 Sep
2014 14:
00:
00 +
0200</pubDate>
633 <description><p
>The
<a href=
"https://www.debian.org/
">Debian
</a
> installer could be
634 a lot quicker. When we install more than
2000 packages in
635 <a href=
"http://www.skolelinux.org/
">Skolelinux / Debian Edu
</a
> using
636 tasksel in the installer, unpacking the binary packages take forever.
637 A part of the slow I/O issue was discussed in
638 <a href=
"https://bugs.debian.org/
613428">bug #
613428</a
> about too
639 much file system sync-ing done by dpkg, which is the package
640 responsible for unpacking the binary packages. Other parts (like code
641 executed by postinst scripts) might also sync to disk during
642 installation. All this sync-ing to disk do not really make sense to
643 me. If the machine crash half-way through, I start over, I do not try
644 to salvage the half installed system. So the failure sync-ing is
645 supposed to protect against, hardware or system crash, is not really
646 relevant while the installer is running.
</p
>
648 <p
>A few days ago, I thought of a way to get rid of all the file
649 system sync()-ing in a fairly non-intrusive way, without the need to
650 change the code in several packages. The idea is not new, but I have
651 not heard anyone propose the approach using dpkg-divert before. It
652 depend on the small and clever package
653 <a href=
"https://packages.qa.debian.org/eatmydata
">eatmydata
</a
>, which
654 uses LD_PRELOAD to replace the system functions for syncing data to
655 disk with functions doing nothing, thus allowing programs to live
656 dangerous while speeding up disk I/O significantly. Instead of
657 modifying the implementation of dpkg, apt and tasksel (which are the
658 packages responsible for selecting, fetching and installing packages),
659 it occurred to me that we could just divert the programs away, replace
660 them with a simple shell wrapper calling
661 "eatmydata
&nbsp;$program
&nbsp;$@
", to get the same effect.
662 Two days ago I decided to test the idea, and wrapped up a simple
663 implementation for the Debian Edu udeb.
</p
>
665 <p
>The effect was stunning. In my first test it reduced the running
666 time of the pkgsel step (installing tasks) from
64 to less than
44
667 minutes (
20 minutes shaved off the installation) on an old Dell
668 Latitude D505 machine. I am not quite sure what the optimised time
669 would have been, as I messed up the testing a bit, causing the debconf
670 priority to get low enough for two questions to pop up during
671 installation. As soon as I saw the questions I moved the installation
672 along, but do not know how long the question were holding up the
673 installation. I did some more measurements using Debian Edu Jessie,
674 and got these results. The time measured is the time stamp in
675 /var/log/syslog between the
"pkgsel: starting tasksel
" and the
676 "pkgsel: finishing up
" lines, if you want to do the same measurement
677 yourself. In Debian Edu, the tasksel dialog do not show up, and the
678 timing thus do not depend on how quickly the user handle the tasksel
681 <p
><table
>
684 <th
>Machine/setup
</th
>
685 <th
>Original tasksel
</th
>
686 <th
>Optimised tasksel
</th
>
687 <th
>Reduction
</th
>
691 <td
>Latitude D505 Main+LTSP LXDE
</td
>
692 <td
>64 min (
07:
46-
08:
50)
</td
>
693 <td
><44 min (
11:
27-
12:
11)
</td
>
694 <td
>>20 min
18%
</td
>
698 <td
>Latitude D505 Roaming LXDE
</td
>
699 <td
>57 min (
08:
48-
09:
45)
</td
>
700 <td
>34 min (
07:
43-
08:
17)
</td
>
701 <td
>23 min
40%
</td
>
705 <td
>Latitude D505 Minimal
</td
>
706 <td
>22 min (
10:
37-
10:
59)
</td
>
707 <td
>11 min (
11:
16-
11:
27)
</td
>
708 <td
>11 min
50%
</td
>
712 <td
>Thinkpad X200 Minimal
</td
>
713 <td
>6 min (
08:
19-
08:
25)
</td
>
714 <td
>4 min (
08:
04-
08:
08)
</td
>
715 <td
>2 min
33%
</td
>
719 <td
>Thinkpad X200 Roaming KDE
</td
>
720 <td
>19 min (
09:
21-
09:
40)
</td
>
721 <td
>15 min (
10:
25-
10:
40)
</td
>
722 <td
>4 min
21%
</td
>
725 </table
></p
>
727 <p
>The test is done using a netinst ISO on a USB stick, so some of the
728 time is spent downloading packages. The connection to the Internet
729 was
100Mbit/s during testing, so downloading should not be a
730 significant factor in the measurement. Download typically took a few
731 seconds to a few minutes, depending on the amount of packages being
734 <p
>The speedup is implemented by using two hooks in
735 <a href=
"https://www.debian.org/devel/debian-installer/
">Debian
736 Installer
</a
>, the pre-pkgsel.d hook to set up the diverts, and the
737 finish-install.d hook to remove the divert at the end of the
738 installation. I picked the pre-pkgsel.d hook instead of the
739 post-base-installer.d hook because I test using an ISO without the
740 eatmydata package included, and the post-base-installer.d hook in
741 Debian Edu can only operate on packages included in the ISO. The
742 negative effect of this is that I am unable to activate this
743 optimization for the kernel installation step in d-i. If the code is
744 moved to the post-base-installer.d hook, the speedup would be larger
745 for the entire installation.
</p
>
747 <p
>I
've implemented this in the
748 <a href=
"https://packages.qa.debian.org/debian-edu-install
">debian-edu-install
</a
>
749 git repository, and plan to provide the optimization as part of the
750 Debian Edu installation. If you want to test this yourself, you can
751 create two files in the installer (or in an udeb). One shell script
752 need do go into /usr/lib/pre-pkgsel.d/, with content like this:
</p
>
754 <p
><blockquote
><pre
>
757 . /usr/share/debconf/confmodule
759 logger -t my-pkgsel
"info: $*
"
762 logger -t my-pkgsel
"error: $*
"
765 apt-install eatmydata || true
766 if [ -x /target/usr/bin/eatmydata ] ; then
767 for bin in dpkg apt-get aptitude tasksel ; do
769 # Test that the file exist and have not been diverted already.
770 if [ -f /target$file ] ; then
771 info
"diverting $file using eatmydata
"
772 printf
"#!/bin/sh\neatmydata $bin.distrib \
"\$@\
"\n
" \
773 > /target$file.edu
774 chmod
755 /target$file.edu
775 in-target dpkg-divert --package debian-edu-config \
776 --rename --quiet --add $file
777 ln -sf ./$bin.edu /target$file
779 error
"unable to divert $file, as it is missing.
"
783 error
"unable to find /usr/bin/eatmydata after installing the eatmydata pacage
"
788 </pre
></blockquote
></p
>
790 <p
>To clean up, another shell script should go into
791 /usr/lib/finish-install.d/ with code like this:
793 <p
><blockquote
><pre
>
795 . /usr/share/debconf/confmodule
797 logger -t my-finish-install
"error: $@
"
799 remove_install_override() {
800 for bin in dpkg apt-get aptitude tasksel ; do
802 if [ -x /target$file.edu ] ; then
804 in-target dpkg-divert --package debian-edu-config \
805 --rename --quiet --remove $file
808 error
"Missing divert for $file.
"
811 sync # Flush file buffers before continuing
814 remove_install_override
815 </pre
></blockquote
></p
>
817 <p
>In Debian Edu, I placed both code fragments in a separate script
818 edu-eatmydata-install and call it from the pre-pkgsel.d and
819 finish-install.d scripts.
</p
>
821 <p
>By now you might ask if this change should get into the normal
822 Debian installer too? I suspect it should, but am not sure the
823 current debian-installer coordinators find it useful enough. It also
824 depend on the side effects of the change. I
'm not aware of any, but I
825 guess we will see if the change is safe after some more testing.
826 Perhaps there is some package in Debian depending on sync() and
827 fsync() having effect? Perhaps it should go into its own udeb, to
828 allow those of us wanting to enable it to do so without affecting
831 <p
>Update
2014-
09-
24: Since a few days ago, enabling this optimization
832 will break installation of all programs using gnutls because of
833 <a href=
"https://bugs.debian.org/
702711">bug #
702711</a
>. An updated
834 eatmydata package in Debian will solve it.
</p
>
836 <p
>Update
2014-
10-
17: The bug mentioned above is fixed in testing and
837 the optimization work again. And I have discovered that the
838 dpkg-divert trick is not really needed and implemented a slightly
839 simpler approach as part of the debian-edu-install package. See
840 tools/edu-eatmydata-install in the source package.
</p
>
845 <title>Good bye subkeys.pgp.net, welcome pool.sks-keyservers.net
</title>
846 <link>http://people.skolelinux.org/pere/blog/Good_bye_subkeys_pgp_net__welcome_pool_sks_keyservers_net.html
</link>
847 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Good_bye_subkeys_pgp_net__welcome_pool_sks_keyservers_net.html
</guid>
848 <pubDate>Wed,
10 Sep
2014 13:
10:
00 +
0200</pubDate>
849 <description><p
>Yesterday, I had the pleasure of attending a talk with the
850 <a href=
"http://www.nuug.no/
">Norwegian Unix User Group
</a
> about
851 <a href=
"http://www.nuug.no/aktiviteter/
20140909-sks-keyservers/
">the
852 OpenPGP keyserver pool sks-keyservers.net
</a
>, and was very happy to
853 learn that there is a large set of publicly available key servers to
854 use when looking for peoples public key. So far I have used
855 subkeys.pgp.net, and some times wwwkeys.nl.pgp.net when the former
856 were misbehaving, but those days are ended. The servers I have used
857 up until yesterday have been slow and some times unavailable. I hope
858 those problems are gone now.
</p
>
860 <p
>Behind the round robin DNS entry of the
861 <a href=
"https://sks-keyservers.net/
">sks-keyservers.net
</a
> service
862 there is a pool of more than
100 keyservers which are checked every
863 day to ensure they are well connected and up to date. It must be
864 better than what I have used so far. :)
</p
>
866 <p
>Yesterdays speaker told me that the service is the default
867 keyserver provided by the default configuration in GnuPG, but this do
868 not seem to be used in Debian. Perhaps it should?
</p
>
870 <p
>Anyway, I
've updated my ~/.gnupg/options file to now include this
873 <p
><blockquote
><pre
>
874 keyserver pool.sks-keyservers.net
875 </pre
></blockquote
></p
>
877 <p
>With GnuPG version
2 one can also locate the keyserver using SRV
878 entries in DNS. Just for fun, I did just that at work, so now every
879 user of GnuPG at the University of Oslo should find a OpenGPG
880 keyserver automatically should their need it:
</p
>
882 <p
><blockquote
><pre
>
883 % host -t srv _pgpkey-http._tcp.uio.no
884 _pgpkey-http._tcp.uio.no has SRV record
0 100 11371 pool.sks-keyservers.net.
886 </pre
></blockquote
></p
>
889 <a href=
"http://ietfreport.isoc.org/idref/draft-shaw-openpgp-hkp/
">the
890 HKP lookup protocol
</a
> supported finding signature paths, I would be
891 very happy. It can look up a given key or search for a user ID, but I
892 normally do not want that, but to find a trust path from my key to
893 another key. Given a user ID or key ID, I would like to find (and
894 download) the keys representing a signature path from my key to the
895 key in question, to be able to get a trust path between the two keys.
896 This is as far as I can tell not possible today. Perhaps something
897 for a future version of the protocol?
</p
>
902 <title>Do you need an agreement with MPEG-LA to publish and broadcast H
.264 video in Norway?
</title>
903 <link>http://people.skolelinux.org/pere/blog/Do_you_need_an_agreement_with_MPEG_LA_to_publish_and_broadcast_H_264_video_in_Norway_.html
</link>
904 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Do_you_need_an_agreement_with_MPEG_LA_to_publish_and_broadcast_H_264_video_in_Norway_.html
</guid>
905 <pubDate>Mon,
25 Aug
2014 22:
10:
00 +
0200</pubDate>
906 <description><p
>Two years later, I am still not sure if it is legal here in Norway
907 to use or publish a video in H
.264 or MPEG4 format edited by the
908 commercially licensed video editors, without limiting the use to
909 create
"personal
" or
"non-commercial
" videos or get a license
910 agreement with
<a href=
"http://www.mpegla.com
">MPEG LA
</a
>. If one
911 want to publish and broadcast video in a non-personal or commercial
912 setting, it might be that those tools can not be used, or that video
913 format can not be used, without breaking their copyright license. I
915 <a href=
"http://people.skolelinux.org/pere/blog/Trenger_en_avtale_med_MPEG_LA_for___publisere_og_kringkaste_H_264_video_.html
">Back
916 then
</a
>, I found that the copyright license terms for Adobe Premiere
917 and Apple Final Cut Pro both specified that one could not use the
918 program to produce anything else without a patent license from MPEG
919 LA. The issue is not limited to those two products, though. Other
920 much used products like those from Avid and Sorenson Media have terms
921 of use are similar to those from Adobe and Apple. The complicating
922 factor making me unsure if those terms have effect in Norway or not is
923 that the patents in question are not valid in Norway, but copyright
924 licenses are.
</p
>
926 <p
>These are the terms for Avid Artist Suite, according to their
927 <a href=
"http://www.avid.com/US/about-avid/legal-notices/legal-enduserlicense2
">published
929 <a href=
"http://www.avid.com/static/resources/common/documents/corporate/LICENSE.pdf
">license
930 text
</a
> (converted to lower case text for easier reading):
</p
>
932 <p
><blockquote
>
933 <p
>18.2. MPEG-
4. MPEG-
4 technology may be included with the
934 software. MPEG LA, L.L.C. requires this notice:
</p
>
936 <p
>This product is licensed under the MPEG-
4 visual patent portfolio
937 license for the personal and non-commercial use of a consumer for (i)
938 encoding video in compliance with the MPEG-
4 visual standard (“MPEG-
4
939 video”) and/or (ii) decoding MPEG-
4 video that was encoded by a
940 consumer engaged in a personal and non-commercial activity and/or was
941 obtained from a video provider licensed by MPEG LA to provide MPEG-
4
942 video. No license is granted or shall be implied for any other
943 use. Additional information including that relating to promotional,
944 internal and commercial uses and licensing may be obtained from MPEG
945 LA, LLC. See http://www.mpegla.com. This product is licensed under
946 the MPEG-
4 systems patent portfolio license for encoding in compliance
947 with the MPEG-
4 systems standard, except that an additional license
948 and payment of royalties are necessary for encoding in connection with
949 (i) data stored or replicated in physical media which is paid for on a
950 title by title basis and/or (ii) data which is paid for on a title by
951 title basis and is transmitted to an end user for permanent storage
952 and/or use, such additional license may be obtained from MPEG LA,
953 LLC. See http://www.mpegla.com for additional details.
</p
>
955 <p
>18.3. H
.264/AVC. H
.264/AVC technology may be included with the
956 software. MPEG LA, L.L.C. requires this notice:
</p
>
958 <p
>This product is licensed under the AVC patent portfolio license for
959 the personal use of a consumer or other uses in which it does not
960 receive remuneration to (i) encode video in compliance with the AVC
961 standard (“AVC video”) and/or (ii) decode AVC video that was encoded
962 by a consumer engaged in a personal activity and/or was obtained from
963 a video provider licensed to provide AVC video. No license is granted
964 or shall be implied for any other use. Additional information may be
965 obtained from MPEG LA, L.L.C. See http://www.mpegla.com.
</p
>
966 </blockquote
></p
>
968 <p
>Note the requirement that the videos created can only be used for
969 personal or non-commercial purposes.
</p
>
971 <p
>The Sorenson Media software have
972 <a href=
"http://www.sorensonmedia.com/terms/
">similar terms
</a
>:
</p
>
974 <p
><blockquote
>
976 <p
>With respect to a license from Sorenson pertaining to MPEG-
4 Video
977 Decoders and/or Encoders: Any such product is licensed under the
978 MPEG-
4 visual patent portfolio license for the personal and
979 non-commercial use of a consumer for (i) encoding video in compliance
980 with the MPEG-
4 visual standard (“MPEG-
4 video”) and/or (ii) decoding
981 MPEG-
4 video that was encoded by a consumer engaged in a personal and
982 non-commercial activity and/or was obtained from a video provider
983 licensed by MPEG LA to provide MPEG-
4 video. No license is granted or
984 shall be implied for any other use. Additional information including
985 that relating to promotional, internal and commercial uses and
986 licensing may be obtained from MPEG LA, LLC. See
987 http://www.mpegla.com.
</p
>
989 <p
>With respect to a license from Sorenson pertaining to MPEG-
4
990 Consumer Recorded Data Encoder, MPEG-
4 Systems Internet Data Encoder,
991 MPEG-
4 Mobile Data Encoder, and/or MPEG-
4 Unique Use Encoder: Any such
992 product is licensed under the MPEG-
4 systems patent portfolio license
993 for encoding in compliance with the MPEG-
4 systems standard, except
994 that an additional license and payment of royalties are necessary for
995 encoding in connection with (i) data stored or replicated in physical
996 media which is paid for on a title by title basis and/or (ii) data
997 which is paid for on a title by title basis and is transmitted to an
998 end user for permanent storage and/or use. Such additional license may
999 be obtained from MPEG LA, LLC. See http://www.mpegla.com for
1000 additional details.
</p
>
1002 </blockquote
></p
>
1004 <p
>Some free software like
1005 <a href=
"https://handbrake.fr/
">Handbrake
</A
> and
1006 <a href=
"http://ffmpeg.org/
">FFMPEG
</a
> uses GPL/LGPL licenses and do
1007 not have any such terms included, so for those, there is no
1008 requirement to limit the use to personal and non-commercial.
</p
>