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>I spent last weekend recording MakerCon Nordic
</title>
11 <link>http://people.skolelinux.org/pere/blog/I_spent_last_weekend_recording_MakerCon_Nordic.html
</link>
12 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/I_spent_last_weekend_recording_MakerCon_Nordic.html
</guid>
13 <pubDate>Thu,
23 Oct
2014 23:
00:
00 +
0200</pubDate>
14 <description><p
>I spent last weekend at
<a href=
"http://www.makercon.no/
">Makercon
15 Nordic
</a
>, a great conference and workshop for makers in Norway and
16 the surrounding countries. I had volunteered on behalf of the
17 Norwegian Unix Users Group (NUUG) to video record the talks, and we
18 had a great and exhausting time recording the entire day, two days in
19 a row. There were only two of us, Hans-Petter and me, and we used the
20 regular video equipment for NUUG, with a
21 <a href=
"http://dvswitch.alioth.debian.org/wiki/
">dvswitch
</a
>, a
22 camera and a VGA to DV convert box, and mixed video and slides
25 <p
>Hans-Petter did the post-processing, consisting of uploading the
26 around
180 GiB of raw video to Youtube, and the result is
27 <a href=
"https://www.youtube.com/user/MakerConNordic/
">now becoming
28 public
</a
> on the MakerConNordic account. The videos have the license
29 NUUG always use on our recordings, which is
30 <a href=
"http://creativecommons.org/licenses/by-sa/
3.0/no/
">Creative
31 Commons Navngivelse-Del på samme vilkår
3.0 Norge
</a
>. Many great
32 talks available. Check it out! :)
</p
>
37 <title>listadmin, the quick way to moderate mailman lists - nice free software
</title>
38 <link>http://people.skolelinux.org/pere/blog/listadmin__the_quick_way_to_moderate_mailman_lists___nice_free_software.html
</link>
39 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/listadmin__the_quick_way_to_moderate_mailman_lists___nice_free_software.html
</guid>
40 <pubDate>Wed,
22 Oct
2014 20:
00:
00 +
0200</pubDate>
41 <description><p
>If you ever had to moderate a mailman list, like the ones on
42 alioth.debian.org, you know the web interface is fairly slow to
43 operate. First you visit one web page, enter the moderation password
44 and get a new page shown with a list of all the messages to moderate
45 and various options for each email address. This take a while for
46 every list you moderate, and you need to do it regularly to do a good
47 job as a list moderator. But there is a quick alternative,
48 <a href=
"http://heim.ifi.uio.no/kjetilho/hacks/#listadmin
">the
49 listadmin program
</a
>. It allow you to check lists for new messages
50 to moderate in a fraction of a second. Here is a test run on two
51 lists I recently took over:
</p
>
53 <p
><blockquote
><pre
>
55 fetching data for pkg-xiph-commits@lists.alioth.debian.org ... nothing in queue
56 fetching data for pkg-xiph-maint@lists.alioth.debian.org ... nothing in queue
62 </pre
></blockquote
></p
>
64 <p
>In
1.7 seconds I had checked two mailing lists and confirmed that
65 there are no message in the moderation queue. Every morning I
66 currently moderate
68 mailman lists, and it normally take around two
67 minutes. When I took over the two pkg-xiph lists above a few days
68 ago, there were
400 emails waiting in the moderator queue. It took me
69 less than
15 minutes to process them all using the listadmin
72 <p
>If you install
73 <a href=
"https://tracker.debian.org/pkg/listadmin
">the listadmin
74 package
</a
> from Debian and create a file
<tt
>~/.listadmin.ini
</tt
>
75 with content like this, the moderation task is a breeze:
</p
>
77 <p
><blockquote
><pre
>
78 username username@example.org
81 discard_if_reason
"Posting restricted to members only. Remove us from your mail list.
"
84 adminurl https://{domain}/mailman/admindb/{list}
85 mailman-list@lists.example.com
88 other-list@otherserver.example.org
89 </pre
></blockquote
></p
>
91 <p
>There are other options to set as well. Check the manual page to
92 learn the details.
</p
>
94 <p
>If you are forced to moderate lists on a mailman installation where
95 the SSL certificate is self signed or not properly signed by a
96 generally accepted signing authority, you can set a environment
97 variable when calling listadmin to disable SSL verification:
</p
>
99 <p
><blockquote
><pre
>
100 PERL_LWP_SSL_VERIFY_HOSTNAME=
0 listadmin
101 </pre
></blockquote
></p
>
103 <p
>If you want to moderate a subset of the lists you take care of, you
104 can provide an argument to the listadmin script like I do in the
105 initial screen dump (the xiph argument). Using an argument, only
106 lists matching the argument string will be processed. This make it
107 quick to accept messages if you notice the moderation request in your
110 <p
>Without the listadmin program, I would never be the moderator of
68
111 mailing lists, as I simply do not have time to spend on that if the
112 process was any slower. The listadmin program have saved me hours of
113 time I could spend elsewhere over the years. It truly is nice free
116 <p
>As usual, if you use Bitcoin and want to show your support of my
117 activities, please send Bitcoin donations to my address
118 <b
><a href=
"bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
&label=PetterReinholdtsenBlog
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a
></b
>.
</p
>
120 <p
>Update
2014-
10-
27: Added missing
'username
' statement in
121 configuration example. Also, I
've been told that the
122 PERL_LWP_SSL_VERIFY_HOSTNAME=
0 setting do not work for everyone. Not
128 <title>Debian Jessie, PXE and automatic firmware installation
</title>
129 <link>http://people.skolelinux.org/pere/blog/Debian_Jessie__PXE_and_automatic_firmware_installation.html
</link>
130 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Debian_Jessie__PXE_and_automatic_firmware_installation.html
</guid>
131 <pubDate>Fri,
17 Oct
2014 14:
10:
00 +
0200</pubDate>
132 <description><p
>When PXE installing laptops with Debian, I often run into the
133 problem that the WiFi card require some firmware to work properly.
134 And it has been a pain to fix this using preseeding in Debian.
135 Normally something more is needed. But thanks to
136 <a href=
"https://packages.qa.debian.org/i/isenkram.html
">my isenkram
137 package
</a
> and its recent tasksel extension, it has now become easy
138 to do this using simple preseeding.
</p
>
140 <p
>The isenkram-cli package provide tasksel tasks which will install
141 firmware for the hardware found in the machine (actually, requested by
142 the kernel modules for the hardware). (It can also install user space
143 programs supporting the hardware detected, but that is not the focus
144 of this story.)
</p
>
146 <p
>To get this working in the default installation, two preeseding
147 values are needed. First, the isenkram-cli package must be installed
148 into the target chroot (aka the hard drive) before tasksel is executed
149 in the pkgsel step of the debian-installer system. This is done by
150 preseeding the base-installer/includes debconf value to include the
151 isenkram-cli package. The package name is next passed to debootstrap
152 for installation. With the isenkram-cli package in place, tasksel
153 will automatically use the isenkram tasks to detect hardware specific
154 packages for the machine being installed and install them, because
155 isenkram-cli contain tasksel tasks.
</p
>
157 <p
>Second, one need to enable the non-free APT repository, because
158 most firmware unfortunately is non-free. This is done by preseeding
159 the apt-mirror-setup step. This is unfortunate, but for a lot of
160 hardware it is the only option in Debian.
</p
>
162 <p
>The end result is two lines needed in your preseeding file to get
163 firmware installed automatically by the installer:
</p
>
165 <p
><blockquote
><pre
>
166 base-installer base-installer/includes string isenkram-cli
167 apt-mirror-setup apt-setup/non-free boolean true
168 </pre
></blockquote
></p
>
170 <p
>The current version of isenkram-cli in testing/jessie will install
171 both firmware and user space packages when using this method. It also
172 do not work well, so use version
0.15 or later. Installing both
173 firmware and user space packages might give you a bit more than you
174 want, so I decided to split the tasksel task in two, one for firmware
175 and one for user space programs. The firmware task is enabled by
176 default, while the one for user space programs is not. This split is
177 implemented in the package currently in unstable.
</p
>
179 <p
>If you decide to give this a go, please let me know (via email) how
180 this recipe work for you. :)
</p
>
182 <p
>So, I bet you are wondering, how can this work. First and
183 foremost, it work because tasksel is modular, and driven by whatever
184 files it find in /usr/lib/tasksel/ and /usr/share/tasksel/. So the
185 isenkram-cli package place two files for tasksel to find. First there
186 is the task description file (/usr/share/tasksel/descs/isenkram.desc):
</p
>
188 <p
><blockquote
><pre
>
189 Task: isenkram-packages
191 Description: Hardware specific packages (autodetected by isenkram)
192 Based on the detected hardware various hardware specific packages are
194 Test-new-install: show show
196 Packages: for-current-hardware
198 Task: isenkram-firmware
200 Description: Hardware specific firmware packages (autodetected by isenkram)
201 Based on the detected hardware various hardware specific firmware
202 packages are proposed.
203 Test-new-install: mark show
205 Packages: for-current-hardware-firmware
206 </pre
></blockquote
></p
>
208 <p
>The key parts are Test-new-install which indicate how the task
209 should be handled and the Packages line referencing to a script in
210 /usr/lib/tasksel/packages/. The scripts use other scripts to get a
211 list of packages to install. The for-current-hardware-firmware script
212 look like this to list relevant firmware for the machine:
214 <p
><blockquote
><pre
>
219 isenkram-autoinstall-firmware -l
220 </pre
></blockquote
></p
>
222 <p
>With those two pieces in place, the firmware is installed by
223 tasksel during the normal d-i run. :)
</p
>
225 <p
>If you want to test what tasksel will install when isenkram-cli is
226 installed, run
<tt
>DEBIAN_PRIORITY=critical tasksel --test
227 --new-install
</tt
> to get the list of packages that tasksel would
230 <p
><a href=
"https://wiki.debian.org/DebianEdu/
">Debian Edu
</a
> will be
231 pilots in testing this feature, as isenkram is used there now to
232 install firmware, replacing the earlier scripts.
</p
>
237 <title>Ubuntu used to show the bread prizes at ICA Storo
</title>
238 <link>http://people.skolelinux.org/pere/blog/Ubuntu_used_to_show_the_bread_prizes_at_ICA_Storo.html
</link>
239 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Ubuntu_used_to_show_the_bread_prizes_at_ICA_Storo.html
</guid>
240 <pubDate>Sat,
4 Oct
2014 15:
20:
00 +
0200</pubDate>
241 <description><p
>Today I came across an unexpected Ubuntu boot screen. Above the
242 bread shelf on the ICA shop at Storo in Oslo, the grub menu of Ubuntu
243 with Linux kernel
3.2.0-
23 (ie probably version
12.04 LTS) was stuck
244 on a screen normally showing the bread types and prizes:
</p
>
246 <p align=
"center
"><img width=
"70%
" src=
"http://people.skolelinux.org/pere/blog/images/
2014-
10-
04-ubuntu-ica-storo-crop.jpeg
"></p
>
248 <p
>If it had booted as it was supposed to, I would never had known
249 about this hidden Linux installation. It is interesting what
250 <a href=
"http://revealingerrors.com/
">errors can reveal
</a
>.
</p
>
255 <title>New lsdvd release version
0.17 is ready
</title>
256 <link>http://people.skolelinux.org/pere/blog/New_lsdvd_release_version_0_17_is_ready.html
</link>
257 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/New_lsdvd_release_version_0_17_is_ready.html
</guid>
258 <pubDate>Sat,
4 Oct
2014 08:
40:
00 +
0200</pubDate>
259 <description><p
>The
<a href=
"https://sourceforge.net/p/lsdvd/
">lsdvd project
</a
>
260 got a new set of developers a few weeks ago, after the original
261 developer decided to step down and pass the project to fresh blood.
262 This project is now maintained by Petter Reinholdtsen and Steve
265 <p
>I just wrapped up
266 <a href=
"https://sourceforge.net/p/lsdvd/mailman/message/
32896061/
">a
267 new lsdvd release
</a
>, available in git or from
268 <a href=
"https://sourceforge.net/projects/lsdvd/files/lsdvd/
">the
269 download page
</a
>. This is the changelog dated
2014-
10-
03 for version
274 <li
>Ignore
'phantom
' audio, subtitle tracks
</li
>
275 <li
>Check for garbage in the program chains, which indicate that a track is
276 non-existant, to work around additional copy protection
</li
>
277 <li
>Fix displaying content type for audio tracks, subtitles
</li
>
278 <li
>Fix pallete display of first entry
</li
>
279 <li
>Fix include orders
</li
>
280 <li
>Ignore read errors in titles that would not be displayed anyway
</li
>
281 <li
>Fix the chapter count
</li
>
282 <li
>Make sure the array size and the array limit used when initialising
283 the palette size is the same.
</li
>
284 <li
>Fix array printing.
</li
>
285 <li
>Correct subsecond calculations.
</li
>
286 <li
>Add sector information to the output format.
</li
>
287 <li
>Clean up code to be closer to ANSI C and compile without warnings
288 with more GCC compiler warnings.
</li
>
292 <p
>This change bring together patches for lsdvd in use in various
293 Linux and Unix distributions, as well as patches submitted to the
294 project the last nine years. Please check it out. :)
</p
>
299 <title>How to test Debian Edu Jessie despite some fatal problems with the installer
</title>
300 <link>http://people.skolelinux.org/pere/blog/How_to_test_Debian_Edu_Jessie_despite_some_fatal_problems_with_the_installer.html
</link>
301 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/How_to_test_Debian_Edu_Jessie_despite_some_fatal_problems_with_the_installer.html
</guid>
302 <pubDate>Fri,
26 Sep
2014 12:
20:
00 +
0200</pubDate>
303 <description><p
>The
<a href=
"http://www.skolelinux.org/
">Debian Edu / Skolelinux
304 project
</a
> provide a Linux solution for schools, including a
305 powerful desktop with education software, a central server providing
306 web pages, user database, user home directories, central login and PXE
307 boot of both clients without disk and the installation to install Debian
308 Edu on machines with disk (and a few other services perhaps to small
309 to mention here). We in the Debian Edu team are currently working on
310 the Jessie based version, trying to get everything in shape before the
311 freeze, to avoid having to maintain our own package repository in the
313 <a href=
"https://wiki.debian.org/DebianEdu/Status/Jessie
">current
314 status
</a
> can be seen on the Debian wiki, and there is still heaps of
315 work left. Some fatal problems block testing, breaking the installer,
316 but it is possible to work around these to get anyway. Here is a
317 recipe on how to get the installation limping along.
</p
>
319 <p
>First, download the test ISO via
320 <a href=
"ftp://ftp.skolelinux.no/cd-edu-testing-nolocal-netinst/debian-edu-amd64-i386-NETINST-
1.iso
">ftp
</a
>,
321 <a href=
"http://ftp.skolelinux.no/cd-edu-testing-nolocal-netinst/debian-edu-amd64-i386-NETINST-
1.iso
">http
</a
>
323 ftp.skolelinux.org::cd-edu-testing-nolocal-netinst/debian-edu-amd64-i386-NETINST-
1.iso).
324 The ISO build was broken on Tuesday, so we do not get a new ISO every
325 12 hours or so, but thankfully the ISO we already got we are able to
326 install with some tweaking.
</p
>
328 <p
>When you get to the Debian Edu profile question, go to tty2
329 (use Alt-Ctrl-F2), run
</p
>
331 <p
><blockquote
><pre
>
332 nano /usr/bin/edu-eatmydata-install
333 </pre
></blockquote
></p
>
335 <p
>and add
'exit
0' as the second line, disabling the eatmydata
336 optimization. Return to the installation, select the profile you want
337 and continue. Without this change, exim4-config will fail to install
338 due to a known bug in eatmydata.
</p
>
340 <p
>When you get the grub question at the end, answer /dev/sda (or if
341 this do not work, figure out what your correct value would be. All my
342 test machines need /dev/sda, so I have no advice if it do not fit
345 <p
>If you installed a profile including a graphical desktop, log in as
346 root after the initial boot from hard drive, and install the
347 education-desktop-XXX metapackage. XXX can be kde, gnome, lxde, xfce
348 or mate. If you want several desktop options, install more than one
349 metapackage. Once this is done, reboot and you should have a working
350 graphical login screen. This workaround should no longer be needed
351 once the education-tasks package version
1.801 enter testing in two
354 <p
>I believe the ISO build will start working on two days when the new
355 tasksel package enter testing and Steve McIntyre get a chance to
356 update the debian-cd git repository. The eatmydata, grub and desktop
357 issues are already fixed in unstable and testing, and should show up
358 on the ISO as soon as the ISO build start working again. Well the
359 eatmydata optimization is really just disabled. The proper fix
360 require an upload by the eatmydata maintainer applying the patch
361 provided in bug
<a href=
"https://bugs.debian.org/
702711">#
702711</a
>.
362 The rest have proper fixes in unstable.
</p
>
364 <p
>I hope this get you going with the installation testing, as we are
365 quickly running out of time trying to get our Jessie based
366 installation ready before the distribution freeze in a month.
</p
>
371 <title>Suddenly I am the new upstream of the lsdvd command line tool
</title>
372 <link>http://people.skolelinux.org/pere/blog/Suddenly_I_am_the_new_upstream_of_the_lsdvd_command_line_tool.html
</link>
373 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Suddenly_I_am_the_new_upstream_of_the_lsdvd_command_line_tool.html
</guid>
374 <pubDate>Thu,
25 Sep
2014 11:
20:
00 +
0200</pubDate>
375 <description><p
>I use the
<a href=
"https://sourceforge.net/p/lsdvd/
">lsdvd tool
</a
>
376 to handle my fairly large DVD collection. It is a nice command line
377 tool to get details about a DVD, like title, tracks, track length,
378 etc, in XML, Perl or human readable format. But lsdvd have not seen
379 any new development since
2006 and had a few irritating bugs affecting
380 its use with some DVDs. Upstream seemed to be dead, and in January I
381 sent a small probe asking for a version control repository for the
382 project, without any reply. But I use it regularly and would like to
383 get
<a href=
"https://packages.qa.debian.org/lsdvd
">an updated version
384 into Debian
</a
>. So two weeks ago I tried harder to get in touch with
385 the project admin, and after getting a reply from him explaining that
386 he was no longer interested in the project, I asked if I could take
387 over. And yesterday, I became project admin.
</p
>
389 <p
>I
've been in touch with a Gentoo developer and the Debian
390 maintainer interested in joining forces to maintain the upstream
391 project, and I hope we can get a new release out fairly quickly,
392 collecting the patches spread around on the internet into on place.
393 I
've added the relevant Debian patches to the freshly created git
394 repository, and expect the Gentoo patches to make it too. If you got
395 a DVD collection and care about command line tools, check out
396 <a href=
"https://sourceforge.net/p/lsdvd/git/ci/master/tree/
">the git source
</a
> and join
397 <a href=
"https://sourceforge.net/p/lsdvd/mailman/
">the project mailing
398 list
</a
>. :)
</p
>
403 <title>Hva henger under skibrua over E16 på Sollihøgda?
</title>
404 <link>http://people.skolelinux.org/pere/blog/Hva_henger_under_skibrua_over_E16_p__Sollih_gda_.html
</link>
405 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Hva_henger_under_skibrua_over_E16_p__Sollih_gda_.html
</guid>
406 <pubDate>Sun,
21 Sep
2014 09:
50:
00 +
0200</pubDate>
407 <description><p
>Rundt omkring i Oslo og Østlandsområdet henger det bokser over
408 veiene som jeg har lurt på hva gjør. De har ut fra plassering og
409 vinkling sett ut som bokser som sniffer ut et eller annet fra
410 forbipasserende trafikk, men det har vært uklart for meg hva det er de
411 leser av. Her om dagen tok jeg bilde av en slik boks som henger under
412 <a href=
"http://www.openstreetmap.no/?zoom=
19&mlat=
59.96396&mlon=
10.34443&layers=B00000
">ei
413 skibru på Sollihøgda
</a
>:
</p
>
415 <p align=
"center
"><img width=
"60%
" src=
"http://people.skolelinux.org/pere/blog/images/
2014-
09-
13-kapsch-sollihogda-crop.jpeg
"></p
>
417 <p
>Boksen er tydelig merket «Kapsch
>>>», logoen til
418 <a href=
"http://www.kapsch.net/
">det sveitsiske selskapet Kapsch
</a
> som
419 blant annet lager sensorsystemer for veitrafikk. Men de lager mye
420 forskjellig, og jeg kjente ikke igjen boksen på utseendet etter en
421 kjapp titt på produktlista til selskapet.
</p
>
423 <p
>I og med at boksen henger over veien E16, en riksvei vedlikeholdt
424 av Statens Vegvesen, så antok jeg at det burde være mulig å bruke
425 REST-API-et som gir tilgang til vegvesenets database over veier,
426 skilter og annet veirelatert til å finne ut hva i alle dager dette
427 kunne være. De har både
428 <a href=
"https://www.vegvesen.no/nvdb/api/dokumentasjon/datakatalog
">en
429 datakatalog
</a
> og
430 <a href=
"https://www.vegvesen.no/nvdb/api/dokumentasjon/sok
">et
431 søk
</a
>, der en kan søke etter ulike typer oppføringer innen for et
432 gitt geografisk område. Jeg laget et enkelt shell-script for å hente
433 ut antall av en gitt type innenfor området skibrua dekker, og listet
434 opp navnet på typene som ble funnet. Orket ikke slå opp hvordan
435 URL-koding av aktuelle strenger kunne gjøres mer generisk, og brukte
436 en stygg sed-linje i stedet.
</p
>
438 <blockquote
><pre
>
442 -e
's/ / /g
' -e
's/{/%
7B/g
' \
443 -e
's/}/%
7D/g
' -e
's/\[/%
5B/g
' \
444 -e
's/\]/%
5D/g
' -e
's/ /%
20/g
' \
445 -e
's/,/%
2C/g
' -e
's/\
"/%
22/g
' \
446 -e
's/:/%
3A/g
'
451 curl -s -H
'Accept: application/vnd.vegvesen.nvdb-v1+xml
' \
452 "https://www.vegvesen.no/nvdb/api$url
" | xmllint --format -
455 for id in $(seq
1 874) ; do
458 bbox: \
"10.34425,
59.96386,
10.34458,
59.96409\
",
459 srid: \
"WGS84\
"
466 query=/sok?kriterie=$(echo $search | urlmap)
467 if lookup
"$query
" |
468 grep -q
'&lt;totaltAntallReturnert
>0&lt;
'
473 lookup
"/datakatalog/objekttyper/$id
" |grep
'^
&lt;navn
>'
478 </pre
></blockquote
>
480 Aktuelt ID-område
1-
874 var riktig i datakatalogen da jeg laget
481 scriptet. Det vil endre seg over tid. Skriptet listet så opp
482 aktuelle typer i og rundt skibrua:
484 <blockquote
><pre
>
486 &lt;navn
>Rekkverk
&lt;/navn
>
488 &lt;navn
>Rekkverksende
&lt;/navn
>
490 &lt;navn
>Trafikklomme
&lt;/navn
>
492 &lt;navn
>Trafikkøy
&lt;/navn
>
494 &lt;navn
>Bru
&lt;/navn
>
496 &lt;navn
>Stikkrenne/Kulvert
&lt;/navn
>
498 &lt;navn
>Grøft, åpen
&lt;/navn
>
500 &lt;navn
>Belysningsstrekning
&lt;/navn
>
502 &lt;navn
>Skiltpunkt
&lt;/navn
>
504 &lt;navn
>Skiltplate
&lt;/navn
>
506 &lt;navn
>Referansestolpe
&lt;/navn
>
508 &lt;navn
>Vegoppmerking, langsgående
&lt;/navn
>
510 &lt;navn
>Fartsgrense
&lt;/navn
>
512 &lt;navn
>Vinterdriftsstrategi
&lt;/navn
>
514 &lt;navn
>Trafikkdeler
&lt;/navn
>
516 &lt;navn
>Vegdekke
&lt;/navn
>
518 &lt;navn
>Breddemåling
&lt;/navn
>
520 &lt;navn
>Kantklippareal
&lt;/navn
>
522 &lt;navn
>Snø-/isrydding
&lt;/navn
>
524 &lt;navn
>Skred
&lt;/navn
>
526 &lt;navn
>Dokumentasjon
&lt;/navn
>
528 &lt;navn
>Undergang
&lt;/navn
>
530 &lt;navn
>Tverrprofil
&lt;/navn
>
532 &lt;navn
>Vegreferanse
&lt;/navn
>
534 &lt;navn
>Region
&lt;/navn
>
536 &lt;navn
>Fylke
&lt;/navn
>
538 &lt;navn
>Kommune
&lt;/navn
>
540 &lt;navn
>Gate
&lt;/navn
>
542 &lt;navn
>Transportlenke
&lt;/navn
>
544 &lt;navn
>Trafikkmengde
&lt;/navn
>
546 &lt;navn
>Trafikkulykke
&lt;/navn
>
548 &lt;navn
>Ulykkesinvolvert enhet
&lt;/navn
>
550 &lt;navn
>Ulykkesinvolvert person
&lt;/navn
>
552 &lt;navn
>Politidistrikt
&lt;/navn
>
554 &lt;navn
>Vegbredde
&lt;/navn
>
556 &lt;navn
>Høydebegrensning
&lt;/navn
>
558 &lt;navn
>Nedbøyningsmåling
&lt;/navn
>
560 &lt;navn
>Støy-luft, Strekningsdata
&lt;/navn
>
562 &lt;navn
>Oppgravingsdata
&lt;/navn
>
564 &lt;navn
>Oppgravingslag
&lt;/navn
>
566 &lt;navn
>PMS-parsell
&lt;/navn
>
568 &lt;navn
>Vegnormalstrekning
&lt;/navn
>
570 &lt;navn
>Værrelatert strekning
&lt;/navn
>
572 &lt;navn
>Feltstrekning
&lt;/navn
>
574 &lt;navn
>Adressepunkt
&lt;/navn
>
576 &lt;navn
>Friksjonsmåleserie
&lt;/navn
>
578 &lt;navn
>Vegdekke, flatelapping
&lt;/navn
>
580 &lt;navn
>Kurvatur, horisontalelement
&lt;/navn
>
582 &lt;navn
>Kurvatur, vertikalelement
&lt;/navn
>
584 &lt;navn
>Kurvatur, vertikalpunkt
&lt;/navn
>
586 &lt;navn
>Statistikk, trafikkmengde
&lt;/navn
>
588 &lt;navn
>Statistikk, vegbredde
&lt;/navn
>
590 &lt;navn
>Nedbøyningsmåleserie
&lt;/navn
>
592 &lt;navn
>ATK, influensstrekning
&lt;/navn
>
594 &lt;navn
>Systemobjekt
&lt;/navn
>
596 &lt;navn
>Vinterdriftsklasse
&lt;/navn
>
598 &lt;navn
>Funksjonell vegklasse
&lt;/navn
>
600 &lt;navn
>Kurvatur, stigning
&lt;/navn
>
602 &lt;navn
>Vegbredde, beregnet
&lt;/navn
>
604 &lt;navn
>Reisetidsregistreringspunkt
&lt;/navn
>
606 &lt;navn
>Bruksklasse
&lt;/navn
>
607 </pre
></blockquote
>
609 <p
>Av disse ser ID
775 og
862 mest relevant ut. ID
775 antar jeg
610 refererer til fotoboksen som står like ved brua, mens
611 «Reisetidsregistreringspunkt» kanskje kan være boksen som henger der.
612 Hvordan finner jeg så ut hva dette kan være for noe. En titt på
613 <a href=
"http://labs.vegdata.no/nvdb-datakatalog/
862-Reisetidsregistreringspunkt/
">datakatalogsiden
614 for ID
862/Reisetidsregistreringspunkt
</a
> viser at det er finnes
53
615 slike målere i Norge, og hvor de er plassert, men gir ellers få
616 detaljer. Det er plassert
40 på østlandet og
13 i Trondheimsregionen.
617 Men siden nevner «AutoPASS», og hvis en slår opp oppføringen på
618 Sollihøgda nevner den «Ciber AS» som ID for eksternt system. (Kan det
620 <a href=
"http://www.proff.no/selskap/ciber-norge-as/oslo/internettdesign-og-programmering/Z0I3KMF4/
">Ciber
621 Norge AS
</a
>, et selskap eid av Ciber Europe Bv?) Et nettsøk på
622 «Ciber AS autopass» fører meg til en artikkel fra NRK Trøndelag i
624 «
<a href=
"http://www.nrk.no/trondelag/sjekk-dette-hvis-du-vil-unnga-ko-
1.11327947">Sjekk
625 dette hvis du vil unngå kø
</a
>». Artikkelen henviser til vegvesenets
627 <a href=
"http://www.reisetider.no/reisetid/forside.html
">reisetider.no
</a
>
629 <a href=
"http://www.reisetider.no/reisetid/omrade.html?omrade=
5">kartside
630 for Østlandet
</a
> som viser at det måles mellom Sandvika og Sollihøgda.
631 Det kan dermed se ut til at jeg har funnet ut hva boksene gjør.
</p
>
633 <p
>Hvis det stemmer, så er dette bokser som leser av AutoPASS-ID-en
634 til alle passerende biler med AutoPASS-brikke, og dermed gjør det mulig
635 for de som kontrollerer boksene å holde rede på hvor en gitt bil er
636 når den passerte et slikt målepunkt. NRK-artikkelen forteller at
637 denne informasjonen i dag kun brukes til å koble to
638 AutoPASS-brikkepasseringer passeringer sammen for å beregne
639 reisetiden, og at bruken er godkjent av Datatilsynet. Det er desverre
640 ikke mulig for en sjåfør som passerer under en slik boks å kontrollere
641 at AutoPASS-ID-en kun brukes til dette i dag og i fremtiden.
</p
>
643 <p
>I tillegg til denne type AutoPASS-sniffere vet jeg at det også
644 finnes mange automatiske stasjoner som tar betalt pr. passering (aka
645 bomstasjoner), og der lagres informasjon om tid, sted og bilnummer i
646 10 år. Finnes det andre slike sniffere plassert ut på veiene?
</p
>
648 <p
>Personlig har jeg valgt å ikke bruke AutoPASS-brikke, for å gjøre
649 det vanskeligere og mer kostbart for de som vil invadere privatsfæren
650 og holde rede på hvor bilen min beveger seg til enhver tid. Jeg håper
651 flere vil gjøre det samme, selv om det gir litt høyere private
652 utgifter (dyrere bompassering). Vern om privatsfæren koster i disse
655 <p
>Takk til Jan Kristian Jensen i Statens Vegvesen for tips om
656 dokumentasjon på vegvesenets REST-API.
</p
>
661 <title>Speeding up the Debian installer using eatmydata and dpkg-divert
</title>
662 <link>http://people.skolelinux.org/pere/blog/Speeding_up_the_Debian_installer_using_eatmydata_and_dpkg_divert.html
</link>
663 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Speeding_up_the_Debian_installer_using_eatmydata_and_dpkg_divert.html
</guid>
664 <pubDate>Tue,
16 Sep
2014 14:
00:
00 +
0200</pubDate>
665 <description><p
>The
<a href=
"https://www.debian.org/
">Debian
</a
> installer could be
666 a lot quicker. When we install more than
2000 packages in
667 <a href=
"http://www.skolelinux.org/
">Skolelinux / Debian Edu
</a
> using
668 tasksel in the installer, unpacking the binary packages take forever.
669 A part of the slow I/O issue was discussed in
670 <a href=
"https://bugs.debian.org/
613428">bug #
613428</a
> about too
671 much file system sync-ing done by dpkg, which is the package
672 responsible for unpacking the binary packages. Other parts (like code
673 executed by postinst scripts) might also sync to disk during
674 installation. All this sync-ing to disk do not really make sense to
675 me. If the machine crash half-way through, I start over, I do not try
676 to salvage the half installed system. So the failure sync-ing is
677 supposed to protect against, hardware or system crash, is not really
678 relevant while the installer is running.
</p
>
680 <p
>A few days ago, I thought of a way to get rid of all the file
681 system sync()-ing in a fairly non-intrusive way, without the need to
682 change the code in several packages. The idea is not new, but I have
683 not heard anyone propose the approach using dpkg-divert before. It
684 depend on the small and clever package
685 <a href=
"https://packages.qa.debian.org/eatmydata
">eatmydata
</a
>, which
686 uses LD_PRELOAD to replace the system functions for syncing data to
687 disk with functions doing nothing, thus allowing programs to live
688 dangerous while speeding up disk I/O significantly. Instead of
689 modifying the implementation of dpkg, apt and tasksel (which are the
690 packages responsible for selecting, fetching and installing packages),
691 it occurred to me that we could just divert the programs away, replace
692 them with a simple shell wrapper calling
693 "eatmydata
&nbsp;$program
&nbsp;$@
", to get the same effect.
694 Two days ago I decided to test the idea, and wrapped up a simple
695 implementation for the Debian Edu udeb.
</p
>
697 <p
>The effect was stunning. In my first test it reduced the running
698 time of the pkgsel step (installing tasks) from
64 to less than
44
699 minutes (
20 minutes shaved off the installation) on an old Dell
700 Latitude D505 machine. I am not quite sure what the optimised time
701 would have been, as I messed up the testing a bit, causing the debconf
702 priority to get low enough for two questions to pop up during
703 installation. As soon as I saw the questions I moved the installation
704 along, but do not know how long the question were holding up the
705 installation. I did some more measurements using Debian Edu Jessie,
706 and got these results. The time measured is the time stamp in
707 /var/log/syslog between the
"pkgsel: starting tasksel
" and the
708 "pkgsel: finishing up
" lines, if you want to do the same measurement
709 yourself. In Debian Edu, the tasksel dialog do not show up, and the
710 timing thus do not depend on how quickly the user handle the tasksel
713 <p
><table
>
716 <th
>Machine/setup
</th
>
717 <th
>Original tasksel
</th
>
718 <th
>Optimised tasksel
</th
>
719 <th
>Reduction
</th
>
723 <td
>Latitude D505 Main+LTSP LXDE
</td
>
724 <td
>64 min (
07:
46-
08:
50)
</td
>
725 <td
><44 min (
11:
27-
12:
11)
</td
>
726 <td
>>20 min
18%
</td
>
730 <td
>Latitude D505 Roaming LXDE
</td
>
731 <td
>57 min (
08:
48-
09:
45)
</td
>
732 <td
>34 min (
07:
43-
08:
17)
</td
>
733 <td
>23 min
40%
</td
>
737 <td
>Latitude D505 Minimal
</td
>
738 <td
>22 min (
10:
37-
10:
59)
</td
>
739 <td
>11 min (
11:
16-
11:
27)
</td
>
740 <td
>11 min
50%
</td
>
744 <td
>Thinkpad X200 Minimal
</td
>
745 <td
>6 min (
08:
19-
08:
25)
</td
>
746 <td
>4 min (
08:
04-
08:
08)
</td
>
747 <td
>2 min
33%
</td
>
751 <td
>Thinkpad X200 Roaming KDE
</td
>
752 <td
>19 min (
09:
21-
09:
40)
</td
>
753 <td
>15 min (
10:
25-
10:
40)
</td
>
754 <td
>4 min
21%
</td
>
757 </table
></p
>
759 <p
>The test is done using a netinst ISO on a USB stick, so some of the
760 time is spent downloading packages. The connection to the Internet
761 was
100Mbit/s during testing, so downloading should not be a
762 significant factor in the measurement. Download typically took a few
763 seconds to a few minutes, depending on the amount of packages being
766 <p
>The speedup is implemented by using two hooks in
767 <a href=
"https://www.debian.org/devel/debian-installer/
">Debian
768 Installer
</a
>, the pre-pkgsel.d hook to set up the diverts, and the
769 finish-install.d hook to remove the divert at the end of the
770 installation. I picked the pre-pkgsel.d hook instead of the
771 post-base-installer.d hook because I test using an ISO without the
772 eatmydata package included, and the post-base-installer.d hook in
773 Debian Edu can only operate on packages included in the ISO. The
774 negative effect of this is that I am unable to activate this
775 optimization for the kernel installation step in d-i. If the code is
776 moved to the post-base-installer.d hook, the speedup would be larger
777 for the entire installation.
</p
>
779 <p
>I
've implemented this in the
780 <a href=
"https://packages.qa.debian.org/debian-edu-install
">debian-edu-install
</a
>
781 git repository, and plan to provide the optimization as part of the
782 Debian Edu installation. If you want to test this yourself, you can
783 create two files in the installer (or in an udeb). One shell script
784 need do go into /usr/lib/pre-pkgsel.d/, with content like this:
</p
>
786 <p
><blockquote
><pre
>
789 . /usr/share/debconf/confmodule
791 logger -t my-pkgsel
"info: $*
"
794 logger -t my-pkgsel
"error: $*
"
797 apt-install eatmydata || true
798 if [ -x /target/usr/bin/eatmydata ] ; then
799 for bin in dpkg apt-get aptitude tasksel ; do
801 # Test that the file exist and have not been diverted already.
802 if [ -f /target$file ] ; then
803 info
"diverting $file using eatmydata
"
804 printf
"#!/bin/sh\neatmydata $bin.distrib \
"\$@\
"\n
" \
805 > /target$file.edu
806 chmod
755 /target$file.edu
807 in-target dpkg-divert --package debian-edu-config \
808 --rename --quiet --add $file
809 ln -sf ./$bin.edu /target$file
811 error
"unable to divert $file, as it is missing.
"
815 error
"unable to find /usr/bin/eatmydata after installing the eatmydata pacage
"
820 </pre
></blockquote
></p
>
822 <p
>To clean up, another shell script should go into
823 /usr/lib/finish-install.d/ with code like this:
825 <p
><blockquote
><pre
>
827 . /usr/share/debconf/confmodule
829 logger -t my-finish-install
"error: $@
"
831 remove_install_override() {
832 for bin in dpkg apt-get aptitude tasksel ; do
834 if [ -x /target$file.edu ] ; then
836 in-target dpkg-divert --package debian-edu-config \
837 --rename --quiet --remove $file
840 error
"Missing divert for $file.
"
843 sync # Flush file buffers before continuing
846 remove_install_override
847 </pre
></blockquote
></p
>
849 <p
>In Debian Edu, I placed both code fragments in a separate script
850 edu-eatmydata-install and call it from the pre-pkgsel.d and
851 finish-install.d scripts.
</p
>
853 <p
>By now you might ask if this change should get into the normal
854 Debian installer too? I suspect it should, but am not sure the
855 current debian-installer coordinators find it useful enough. It also
856 depend on the side effects of the change. I
'm not aware of any, but I
857 guess we will see if the change is safe after some more testing.
858 Perhaps there is some package in Debian depending on sync() and
859 fsync() having effect? Perhaps it should go into its own udeb, to
860 allow those of us wanting to enable it to do so without affecting
863 <p
>Update
2014-
09-
24: Since a few days ago, enabling this optimization
864 will break installation of all programs using gnutls because of
865 <a href=
"https://bugs.debian.org/
702711">bug #
702711</a
>. An updated
866 eatmydata package in Debian will solve it.
</p
>
868 <p
>Update
2014-
10-
17: The bug mentioned above is fixed in testing and
869 the optimization work again. And I have discovered that the
870 dpkg-divert trick is not really needed and implemented a slightly
871 simpler approach as part of the debian-edu-install package. See
872 tools/edu-eatmydata-install in the source package.
</p
>
877 <title>Good bye subkeys.pgp.net, welcome pool.sks-keyservers.net
</title>
878 <link>http://people.skolelinux.org/pere/blog/Good_bye_subkeys_pgp_net__welcome_pool_sks_keyservers_net.html
</link>
879 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Good_bye_subkeys_pgp_net__welcome_pool_sks_keyservers_net.html
</guid>
880 <pubDate>Wed,
10 Sep
2014 13:
10:
00 +
0200</pubDate>
881 <description><p
>Yesterday, I had the pleasure of attending a talk with the
882 <a href=
"http://www.nuug.no/
">Norwegian Unix User Group
</a
> about
883 <a href=
"http://www.nuug.no/aktiviteter/
20140909-sks-keyservers/
">the
884 OpenPGP keyserver pool sks-keyservers.net
</a
>, and was very happy to
885 learn that there is a large set of publicly available key servers to
886 use when looking for peoples public key. So far I have used
887 subkeys.pgp.net, and some times wwwkeys.nl.pgp.net when the former
888 were misbehaving, but those days are ended. The servers I have used
889 up until yesterday have been slow and some times unavailable. I hope
890 those problems are gone now.
</p
>
892 <p
>Behind the round robin DNS entry of the
893 <a href=
"https://sks-keyservers.net/
">sks-keyservers.net
</a
> service
894 there is a pool of more than
100 keyservers which are checked every
895 day to ensure they are well connected and up to date. It must be
896 better than what I have used so far. :)
</p
>
898 <p
>Yesterdays speaker told me that the service is the default
899 keyserver provided by the default configuration in GnuPG, but this do
900 not seem to be used in Debian. Perhaps it should?
</p
>
902 <p
>Anyway, I
've updated my ~/.gnupg/options file to now include this
905 <p
><blockquote
><pre
>
906 keyserver pool.sks-keyservers.net
907 </pre
></blockquote
></p
>
909 <p
>With GnuPG version
2 one can also locate the keyserver using SRV
910 entries in DNS. Just for fun, I did just that at work, so now every
911 user of GnuPG at the University of Oslo should find a OpenGPG
912 keyserver automatically should their need it:
</p
>
914 <p
><blockquote
><pre
>
915 % host -t srv _pgpkey-http._tcp.uio.no
916 _pgpkey-http._tcp.uio.no has SRV record
0 100 11371 pool.sks-keyservers.net.
918 </pre
></blockquote
></p
>
921 <a href=
"http://ietfreport.isoc.org/idref/draft-shaw-openpgp-hkp/
">the
922 HKP lookup protocol
</a
> supported finding signature paths, I would be
923 very happy. It can look up a given key or search for a user ID, but I
924 normally do not want that, but to find a trust path from my key to
925 another key. Given a user ID or key ID, I would like to find (and
926 download) the keys representing a signature path from my key to the
927 key in question, to be able to get a trust path between the two keys.
928 This is as far as I can tell not possible today. Perhaps something
929 for a future version of the protocol?
</p
>