]> 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/New_chrpath_release_0_15.html">New chrpath release 0.15</a></div>
24 <div class="date">24th November 2013</div>
25 <div class="body"><p>After many years break from the package and a vain hope that
26 development would be continued by someone else, I finally pulled my
27 acts together this morning and wrapped up a new release of chrpath,
28 the command line tool to modify the rpath and runpath of already
29 compiled ELF programs. The update was triggered by the persistence of
30 Isha Vishnoi at IBM, which needed a new config.guess file to get
31 support for the ppc64le architecture (powerpc 64-bit Little Endian) he
32 is working on. I checked the
33 <a href="http://packages.qa.debian.org/chrpath">Debian</a>,
34 <a href="https://launchpad.net/ubuntu/+source/chrpath">Ubuntu</a> and
35 <a href="https://admin.fedoraproject.org/pkgdb/acls/name/chrpath">Fedora</a>
36 packages for interesting patches (failed to find the source from
37 OpenSUSE and Mandriva packages), and found quite a few nice fixes.
38 These are the release notes:</p>
39
40 <p>New in 0.15 released 2013-11-24:</p>
41
42 <ul>
43
44 <li>Updated config.sub and config.guess from the GNU project to work
45 with newer architectures. Thanks to isha vishnoi for the heads
46 up.</li>
47
48 <li>Updated README with current URLs.</li>
49
50 <li>Added byteswap fix found in Ubuntu, credited Jeremy Kerr and
51 Matthias Klose.</li>
52
53 <li>Added missing help for -k|--keepgoing option, using patch by
54 Petr Machata found in Fedora.</li>
55
56 <li>Rewrite removal of RPATH/RUNPATH to make sure the entry in
57 .dynamic is a NULL terminated string. Based on patch found in
58 Fedora credited Axel Thimm and Christian Krause.</li>
59
60 </ul>
61
62 <p>You can
63 <a href="https://alioth.debian.org/frs/?group_id=31052">download the
64 new version 0.15 from alioth</a>. Please let us know via the Alioth
65 project if something is wrong with the new release. The test suite
66 did not discover any old errors, so if you find a new one, please also
67 include a testsuite check.</p>
68 </div>
69 <div class="tags">
70
71
72 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>.
73
74
75 </div>
76 </div>
77 <div class="padding"></div>
78
79 <div class="entry">
80 <div class="title"><a href="http://people.skolelinux.org/pere/blog/RSS_kilde_for_friteksts_k_i_offentlige_anbud_hos_Doffin.html">RSS-kilde for fritekstsøk i offentlige anbud hos Doffin</a></div>
81 <div class="date">22nd November 2013</div>
82 <div class="body"><p>I fjor sommer lagde jeg en
83 <a href="http://people.skolelinux.org/pere/blog/SQL_database_med_anbud_publisert_p__Doffin.html">offentlig
84 tilgjengelig SQL-database over offentlig anbud</a> basert på skraping
85 av HTML-data fra Doffin. Den har stått og gått siden da, og har nå
86 ca. 28000 oppføringer. Jeg oppdaget da jeg tittet innom at noen
87 oppføringer var ikke blitt med, antagelig på grunn av at de fikk
88 tildelt sekvensnummer i Doffin en godt stund før de ble publisert,
89 slik at min nettsideskraper som fortsatte skrapingen der den slapp
90 sist ikke fikk dem med seg. Jeg har fikset litt slik at skraperen nå
91 ser litt tilbake i tid for å se om den har gått glipp av noen
92 oppføringer, og har skrapet på nytt fra midten av september 2013 og
93 fremover. Det bør dermed bli en mer komplett database for kommende
94 måneder. Hvis jeg får tid skal jeg forsøke å skrape "glemte" data fra
95 før midten av september 2013, men tør ikke garantere at det blir
96 prioritert med det første. </p>
97
98 <p>Men målet med denne bloggposten er å vise hvordan denne
99 Doffin-databasen kan brukes og integreres med en RSS-leser, slik at en
100 kan la datamaskinen holde et øye med Doffin-annonseringer etter
101 nøkkelord. En kan lage sitt eget søk ved å besøke
102 <ahref="https://classic.scraperwiki.com/docs/api?name=norwegian-doffin#sqlite">API-et
103 hos Scraperwiki</a>, velge format rss2 og så legge inn noe ala dette i
104 "query in SQL":</p>
105
106 <p><pre>
107 select title, scrapedurl as link, abstract as description,
108 publishdate as pubDate from 'swdata'
109 where abstract like '%linux%' or title like '%linux%'
110 order by seq desc limit 20
111 </pre></p>
112
113 <p>Dette vil søke opp alle anbud med ordet linux i oppsummering eller
114 tittel. En kan lage mer avanserte søk hvis en ønsker det. URL-en som
115 dukker opp nederst på siden kan en så gi til sin RSS-leser (jeg bruker
116 akregator selv), og så automatisk få beskjed hvis det dukker opp anbud
117 med det aktuelle nøkkelordet i teksten. Merk at kapasiteten og
118 ytelsen hos Scraperwiki er begrenset, så ikke be RSS-leseren hente ned
119 oftere enn en gang hver dag.</p>
120
121 <p>Du lurer kanskje på hva slags informasjon en kan få ut fra denne
122 databasen. Her er to RSS-kilder, med søkeordet
123 "<a href="https://api.scraperwiki.com/api/1.0/datastore/sqlite?format=rss2&name=norwegian-doffin&query=select%20title%2C%20scrapedurl%20as%20link%2C%20abstract%20as%20description%2C%0A%20%20%20%20%20%20%20publishdate%20as%20pubDate%20from%20'swdata'%0A%20%20%20where%20abstract%20like%20'%25linux%25'%20or%20title%20like%20'%25linux%25'%0A%20%20%20order%20by%20seq%20desc%20limit%2020">linux</a>",
124 søkeordet
125 "<a href="https://api.scraperwiki.com/api/1.0/datastore/sqlite?format=rss2&name=norwegian-doffin&query=select%20title%2C%20scrapedurl%20as%20link%2C%20abstract%20as%20description%2C%0A%20%20%20%20%20%20%20publishdate%20as%20pubDate%20from%20'swdata'%0A%20%20%20where%20abstract%20like%20'%25fri%20programvare%25'%20or%20title%20like%20'%25fri%20programvare%25'%0A%20%20%20order%20by%20seq%20desc%20limit%2020">fri
126 programvare</a>"
127 og søkeordet
128 "<a href="https://api.scraperwiki.com/api/1.0/datastore/sqlite?format=rss2&name=norwegian-doffin&query=select%20title%2C%20scrapedurl%20as%20link%2C%20abstract%20as%20description%2C%0A%20%20%20%20%20%20%20publishdate%20as%20pubDate%20from%20'swdata'%0A%20%20%20where%20abstract%20like%20'%25odf%25'%20or%20title%20like%20'%25odf%25'%0A%20%20%20order%20by%20seq%20desc%20limit%2020">odf</a>".
129 Det er bare å søke på det en er interessert i. Kopier gjerne
130 datasettet og sett opp din egen tjeneste hvis du vil gjøre mer
131 avanserte søk. SQLite-filen med Doffin-oppføringer kan lastes med fra
132 Scraperwiki for de som vil grave dypere.</p>
133 </div>
134 <div class="tags">
135
136
137 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn</a>.
138
139
140 </div>
141 </div>
142 <div class="padding"></div>
143
144 <div class="entry">
145 <div class="title"><a href="http://people.skolelinux.org/pere/blog/All_drones_should_be_radio_marked_with_what_they_do_and_who_they_belong_to.html">All drones should be radio marked with what they do and who they belong to</a></div>
146 <div class="date">21st November 2013</div>
147 <div class="body"><p>Drones, flying robots, are getting more and more popular. The most
148 know ones are the killer drones used by some government to murder
149 people they do not like without giving them the chance of a fair
150 trial, but the technology have many good uses too, from mapping and
151 forest maintenance to photography and search and rescue. I am sure it
152 is just a question of time before "bad drones" are in the hands of
153 private enterprises and not only state criminals but petty criminals
154 too. The drone technology is very useful and very dangerous. To have
155 some control over the use of drones, I agree with Daniel Suarez in his
156 TED talk
157 "<a href="https://archive.org/details/DanielSuarez_2013G">The kill
158 decision shouldn't belong to a robot</a>", where he suggested this
159 little gem to keep the good while limiting the bad use of drones:</p>
160
161 <blockquote>
162
163 <p>Each robot and drone should have a cryptographically signed
164 I.D. burned in at the factory that can be used to track its movement
165 through public spaces. We have license plates on cars, tail numbers on
166 aircraft. This is no different. And every citizen should be able to
167 download an app that shows the population of drones and autonomous
168 vehicles moving through public spaces around them, both right now and
169 historically. And civic leaders should deploy sensors and civic drones
170 to detect rogue drones, and instead of sending killer drones of their
171 own up to shoot them down, they should notify humans to their
172 presence. And in certain very high-security areas, perhaps civic
173 drones would snare them and drag them off to a bomb disposal facility.</p>
174
175 <p>But notice, this is more an immune system than a weapons system. It
176 would allow us to avail ourselves of the use of autonomous vehicles
177 and drones while still preserving our open, civil society.</p>
178
179 </blockquote>
180
181 <p>The key is that <em>every citizen</em> should be able to read the
182 radio beacons sent from the drones in the area, to be able to check
183 both the government and others use of drones. For such control to be
184 effective, everyone must be able to do it. What should such beacon
185 contain? At least formal owner, purpose, contact information and GPS
186 location. Probably also the origin and target position of the current
187 flight. And perhaps some registration number to be able to look up
188 the drone in a central database tracking their movement. Robots
189 should not have privacy. It is people who need privacy.</p>
190 </div>
191 <div class="tags">
192
193
194 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/robot">robot</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>.
195
196
197 </div>
198 </div>
199 <div class="padding"></div>
200
201 <div class="entry">
202 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Lets_make_a_wireless_community_network_in_Oslo_.html">Lets make a wireless community network in Oslo!</a></div>
203 <div class="date">13th November 2013</div>
204 <div class="body"><p>Today NUUG and Hackeriet announced
205 <a href="http://www.nuug.no/news/Bli_med___bygge_dugnadsnett_for_alle_i_Oslo.shtml">our
206 plans to join forces and create a wireless community network in
207 Oslo</a>. The workshop to help people get started will take place
208 Thursday 2013-11-28, but we already are collecting the geolocation of
209 people joining forces to make this happen. We have
210 <a href="https://github.com/petterreinholdtsen/meshfx-node/blob/master/oslo-nodes.geojson">9
211 locations plotted on the map</a>, but we will need more before we have
212 a connected mesh spread across Oslo. If this sound interesting to
213 you, please join us at the workshop. If you are too impatient to wait
214 15 days, please join us on the IRC channel
215 <a href="irc://irc.freenode.net/%23nuug">#nuug on irc.freenode.net</a>
216 right away. :)</p>
217 </div>
218 <div class="tags">
219
220
221 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
222
223
224 </div>
225 </div>
226 <div class="padding"></div>
227
228 <div class="entry">
229 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Running_TP_Link_MR3040_as_a_batman_adv_mesh_node_using_openwrt.html">Running TP-Link MR3040 as a batman-adv mesh node using openwrt</a></div>
230 <div class="date">10th November 2013</div>
231 <div class="body"><p>Continuing my research into mesh networking, I was recommended to
232 use TP-Link 3040 and 3600 access points as mesh nodes, and the pair I
233 bought arrived on Friday. Here are my notes on how to set up the
234 MR3040 as a mesh node using
235 <a href="http://www.openwrt.org/">OpenWrt</a>.</p>
236
237 <p>I started by following the instructions on the OpenWRT wiki for
238 <a href="http://wiki.openwrt.org/toh/tp-link/tl-mr3040">TL-MR3040</a>,
239 and downloaded
240 <a href="http://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-tl-mr3040-v2-squashfs-factory.bin">the
241 recommended firmware image</a>
242 (openwrt-ar71xx-generic-tl-mr3040-v2-squashfs-factory.bin) and
243 uploaded it into the original web interface. The flashing went fine,
244 and the machine was available via telnet on the ethernet port. After
245 logging in and setting the root password, ssh was available and I
246 could start to set it up as a batman-adv mesh node.</p>
247
248 <p>I started off by reading the instructions from
249 <a href="http://wirelessafrica.meraka.org.za/wiki/index.php?title=Antoine's_Research">Wireless
250 Africa</a>, which had quite a lot of useful information, but
251 eventually I followed the recipe from the Open Mesh wiki for
252 <a href="http://www.open-mesh.org/projects/batman-adv/wiki/Batman-adv-openwrt-config">using
253 batman-adv on OpenWrt</a>. A small snag was the fact that the
254 <tt>opkg install kmod-batman-adv</tt> command did not work as it
255 should. The batman-adv kernel module would fail to load because its
256 dependency crc16 was not already loaded. I
257 <a href="https://dev.openwrt.org/ticket/14452">reported the bug</a> to
258 the openwrt project and hope it will be fixed soon. But the problem
259 only seem to affect initial testing of batman-adv, as configuration
260 seem to work when booting from scratch.</p>
261
262 <p>The setup is done using files in /etc/config/. I did not bridge
263 the Ethernet and mesh interfaces this time, to be able to hook up the
264 box on my local network and log into it for configuration updates.
265 The following files were changed and look like this after modifying
266 them:</p>
267
268 <p><tt>/etc/config/network</tt></p>
269
270 <pre>
271
272 config interface 'loopback'
273 option ifname 'lo'
274 option proto 'static'
275 option ipaddr '127.0.0.1'
276 option netmask '255.0.0.0'
277
278 config globals 'globals'
279 option ula_prefix 'fdbf:4c12:3fed::/48'
280
281 config interface 'lan'
282 option ifname 'eth0'
283 option type 'bridge'
284 option proto 'dhcp'
285 option ipaddr '192.168.1.1'
286 option netmask '255.255.255.0'
287 option hostname 'tl-mr3040'
288 option ip6assign '60'
289
290 config interface 'mesh'
291 option ifname 'adhoc0'
292 option mtu '1528'
293 option proto 'batadv'
294 option mesh 'bat0'
295 </pre>
296
297 <p><tt>/etc/config/wireless</tt></p>
298 <pre>
299
300 config wifi-device 'radio0'
301 option type 'mac80211'
302 option channel '11'
303 option hwmode '11ng'
304 option path 'platform/ar933x_wmac'
305 option htmode 'HT20'
306 list ht_capab 'SHORT-GI-20'
307 list ht_capab 'SHORT-GI-40'
308 list ht_capab 'RX-STBC1'
309 list ht_capab 'DSSS_CCK-40'
310 option disabled '0'
311
312 config wifi-iface 'wmesh'
313 option device 'radio0'
314 option ifname 'adhoc0'
315 option network 'mesh'
316 option encryption 'none'
317 option mode 'adhoc'
318 option bssid '02:BA:00:00:00:01'
319 option ssid 'meshfx@hackeriet'
320 </pre>
321 <p><tt>/etc/config/batman-adv</tt></p>
322 <pre>
323
324 config 'mesh' 'bat0'
325 option interfaces 'adhoc0'
326 option 'aggregated_ogms'
327 option 'ap_isolation'
328 option 'bonding'
329 option 'fragmentation'
330 option 'gw_bandwidth'
331 option 'gw_mode'
332 option 'gw_sel_class'
333 option 'log_level'
334 option 'orig_interval'
335 option 'vis_mode'
336 option 'bridge_loop_avoidance'
337 option 'distributed_arp_table'
338 option 'network_coding'
339 option 'hop_penalty'
340
341 # yet another batX instance
342 # config 'mesh' 'bat5'
343 # option 'interfaces' 'second_mesh'
344 </pre>
345
346 <p>The mesh node is now operational. I have yet to test its range,
347 but I hope it is good. I have not yet tested the TP-Link 3600 box
348 still wrapped up in plastic.</p>
349 </div>
350 <div class="tags">
351
352
353 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
354
355
356 </div>
357 </div>
358 <div class="padding"></div>
359
360 <div class="entry">
361 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Debian_init_d_boot_script_example_for_rsyslog.html">Debian init.d boot script example for rsyslog</a></div>
362 <div class="date"> 2nd November 2013</div>
363 <div class="body"><p>If one of the points of switching to a new init system in Debian is
364 <a href="http://thomas.goirand.fr/blog/?p=147">to get rid of huge
365 init.d scripts</a>, I doubt we need to switch away from sysvinit and
366 init.d scripts at all. Here is an example init.d script, ie a rewrite
367 of /etc/init.d/rsyslog:</p>
368
369 <p><pre>
370 #!/lib/init/init-d-script
371 ### BEGIN INIT INFO
372 # Provides: rsyslog
373 # Required-Start: $remote_fs $time
374 # Required-Stop: umountnfs $time
375 # X-Stop-After: sendsigs
376 # Default-Start: 2 3 4 5
377 # Default-Stop: 0 1 6
378 # Short-Description: enhanced syslogd
379 # Description: Rsyslog is an enhanced multi-threaded syslogd.
380 # It is quite compatible to stock sysklogd and can be
381 # used as a drop-in replacement.
382 ### END INIT INFO
383 DESC="enhanced syslogd"
384 DAEMON=/usr/sbin/rsyslogd
385 </pre></p>
386
387 <p>Pretty minimalistic to me... For the record, the original sysv-rc
388 script was 137 lines, and the above is just 15 lines, most of it meta
389 info/comments.</p>
390
391 <p>How to do this, you ask? Well, one create a new script
392 /lib/init/init-d-script looking something like this:
393
394 <p><pre>
395 #!/bin/sh
396
397 # Define LSB log_* functions.
398 # Depend on lsb-base (>= 3.2-14) to ensure that this file is present
399 # and status_of_proc is working.
400 . /lib/lsb/init-functions
401
402 #
403 # Function that starts the daemon/service
404
405 #
406 do_start()
407 {
408 # Return
409 # 0 if daemon has been started
410 # 1 if daemon was already running
411 # 2 if daemon could not be started
412 start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
413 || return 1
414 start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
415 $DAEMON_ARGS \
416 || return 2
417 # Add code here, if necessary, that waits for the process to be ready
418 # to handle requests from services started subsequently which depend
419 # on this one. As a last resort, sleep for some time.
420 }
421
422 #
423 # Function that stops the daemon/service
424 #
425 do_stop()
426 {
427 # Return
428 # 0 if daemon has been stopped
429 # 1 if daemon was already stopped
430 # 2 if daemon could not be stopped
431 # other if a failure occurred
432 start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
433 RETVAL="$?"
434 [ "$RETVAL" = 2 ] && return 2
435 # Wait for children to finish too if this is a daemon that forks
436 # and if the daemon is only ever run from this initscript.
437 # If the above conditions are not satisfied then add some other code
438 # that waits for the process to drop all resources that could be
439 # needed by services started subsequently. A last resort is to
440 # sleep for some time.
441 start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
442 [ "$?" = 2 ] && return 2
443 # Many daemons don't delete their pidfiles when they exit.
444 rm -f $PIDFILE
445 return "$RETVAL"
446 }
447
448 #
449 # Function that sends a SIGHUP to the daemon/service
450 #
451 do_reload() {
452 #
453 # If the daemon can reload its configuration without
454 # restarting (for example, when it is sent a SIGHUP),
455 # then implement that here.
456 #
457 start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
458 return 0
459 }
460
461 SCRIPTNAME=$1
462 scriptbasename="$(basename $1)"
463 echo "SN: $scriptbasename"
464 if [ "$scriptbasename" != "init-d-library" ] ; then
465 script="$1"
466 shift
467 . $script
468 else
469 exit 0
470 fi
471
472 NAME=$(basename $DAEMON)
473 PIDFILE=/var/run/$NAME.pid
474
475 # Exit if the package is not installed
476 #[ -x "$DAEMON" ] || exit 0
477
478 # Read configuration variable file if it is present
479 [ -r /etc/default/$NAME ] && . /etc/default/$NAME
480
481 # Load the VERBOSE setting and other rcS variables
482 . /lib/init/vars.sh
483
484 case "$1" in
485 start)
486 [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
487 do_start
488 case "$?" in
489 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
490 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
491 esac
492 ;;
493 stop)
494 [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
495 do_stop
496 case "$?" in
497 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
498 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
499 esac
500 ;;
501 status)
502 status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
503 ;;
504 #reload|force-reload)
505 #
506 # If do_reload() is not implemented then leave this commented out
507 # and leave 'force-reload' as an alias for 'restart'.
508 #
509 #log_daemon_msg "Reloading $DESC" "$NAME"
510 #do_reload
511 #log_end_msg $?
512 #;;
513 restart|force-reload)
514 #
515 # If the "reload" option is implemented then remove the
516 # 'force-reload' alias
517 #
518 log_daemon_msg "Restarting $DESC" "$NAME"
519 do_stop
520 case "$?" in
521 0|1)
522 do_start
523 case "$?" in
524 0) log_end_msg 0 ;;
525 1) log_end_msg 1 ;; # Old process is still running
526 *) log_end_msg 1 ;; # Failed to start
527 esac
528 ;;
529 *)
530 # Failed to stop
531 log_end_msg 1
532 ;;
533 esac
534 ;;
535 *)
536 echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
537 exit 3
538 ;;
539 esac
540
541 :
542 </pre></p>
543
544 <p>It is based on /etc/init.d/skeleton, and could be improved quite a
545 lot. I did not really polish the approach, so it might not always
546 work out of the box, but you get the idea. I did not try very hard to
547 optimize it nor make it more robust either.</p>
548
549 <p>A better argument for switching init system in Debian than reducing
550 the size of init scripts (which is a good thing to do anyway), is to
551 get boot system that is able to handle the kernel events sensibly and
552 robustly, and do not depend on the boot to run sequentially. The boot
553 and the kernel have not behaved sequentially in years.</p>
554 </div>
555 <div class="tags">
556
557
558 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
559
560
561 </div>
562 </div>
563 <div class="padding"></div>
564
565 <div class="entry">
566 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Browser_plugin_for_SPICE__spice_xpi__uploaded_to_Debian.html">Browser plugin for SPICE (spice-xpi) uploaded to Debian</a></div>
567 <div class="date"> 1st November 2013</div>
568 <div class="body"><p><a href="http://www.spice-space.org/">The SPICE protocol</a> for
569 remote display access is the preferred solution with oVirt and RedHat
570 Enterprise Virtualization, and I was sad to discover the other day
571 that the browser plugin needed to use these systems seamlessly was
572 missing in Debian. The <a href="http://bugs.debian.org/668284">request
573 for a package</a> was from 2012-04-10 with no progress since
574 2013-04-01, so I decided to wrap up a package based on the great work
575 from Cajus Pollmeier and put it in a collab-maint maintained git
576 repository to get a package I could use. I would very much like
577 others to help me maintain the package (or just take over, I do not
578 mind), but as no-one had volunteered so far, I just uploaded it to
579 NEW. I hope it will be available in Debian in a few days.</p>
580
581 <p>The source is now available from
582 <a href="http://anonscm.debian.org/gitweb/?p=collab-maint/spice-xpi.git;a=summary">http://anonscm.debian.org/gitweb/?p=collab-maint/spice-xpi.git;a=summary</a>.</p>
583 </div>
584 <div class="tags">
585
586
587 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>.
588
589
590 </div>
591 </div>
592 <div class="padding"></div>
593
594 <div class="entry">
595 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Teaching_vmdebootstrap_to_create_Raspberry_Pi_SD_card_images.html">Teaching vmdebootstrap to create Raspberry Pi SD card images</a></div>
596 <div class="date">27th October 2013</div>
597 <div class="body"><p>The
598 <a href="http://packages.qa.debian.org/v/vmdebootstrap.html">vmdebootstrap</a>
599 program is a a very nice system to create virtual machine images. It
600 create a image file, add a partition table, mount it and run
601 debootstrap in the mounted directory to create a Debian system on a
602 stick. Yesterday, I decided to try to teach it how to make images for
603 <a href="https://wiki.debian.org/RaspberryPi">Raspberry Pi</a>, as part
604 of a plan to simplify the build system for
605 <a href="https://wiki.debian.org/FreedomBox">the FreedomBox
606 project</a>. The FreedomBox project already uses vmdebootstrap for
607 the virtualbox images, but its current build system made multistrap
608 based system for Dreamplug images, and it is lacking support for
609 Raspberry Pi.</p>
610
611 <p>Armed with the knowledge on how to build "foreign" (aka non-native
612 architecture) chroots for Raspberry Pi, I dived into the vmdebootstrap
613 code and adjusted it to be able to build armel images on my amd64
614 Debian laptop. I ended up giving vmdebootstrap five new options,
615 allowing me to replicate the image creation process I use to make
616 <a href="http://people.skolelinux.org/pere/blog/A_Raspberry_Pi_based_batman_adv_Mesh_network_node.html">Debian
617 Jessie based mesh node images for the Raspberry Pi</a>. First, the
618 <tt>--foreign /path/to/binfm_handler</tt> option tell vmdebootstrap to
619 call debootstrap with --foreign and to copy the handler into the
620 generated chroot before running the second stage. This allow
621 vmdebootstrap to create armel images on an amd64 host. Next I added
622 two new options <tt>--bootsize size</tt> and <tt>--boottype
623 fstype</tt> to teach it to create a separate /boot/ partition with the
624 given file system type, allowing me to create an image with a vfat
625 partition for the /boot/ stuff. I also added a <tt>--variant
626 variant</tt> option to allow me to create smaller images without the
627 Debian base system packages installed. Finally, I added an option
628 <tt>--no-extlinux</tt> to tell vmdebootstrap to not install extlinux
629 as a boot loader. It is not needed on the Raspberry Pi and probably
630 most other non-x86 architectures. The changes were accepted by the
631 upstream author of vmdebootstrap yesterday and today, and is now
632 available from
633 <a href="http://git.liw.fi/cgi-bin/cgit/cgit.cgi/vmdebootstrap/">the
634 upstream project page</a>.</p>
635
636 <p>To use it to build a Raspberry Pi image using Debian Jessie, first
637 create a small script (the customize script) to add the non-free
638 binary blob needed to boot the Raspberry Pi and the APT source
639 list:</p>
640
641 <p><pre>
642 #!/bin/sh
643 set -e # Exit on first error
644 rootdir="$1"
645 cd "$rootdir"
646 cat &lt;&lt;EOF > etc/apt/sources.list
647 deb http://http.debian.net/debian/ jessie main contrib non-free
648 EOF
649 # Install non-free binary blob needed to boot Raspberry Pi. This
650 # install a kernel somewhere too.
651 wget https://raw.github.com/Hexxeh/rpi-update/master/rpi-update \
652 -O $rootdir/usr/bin/rpi-update
653 chmod a+x $rootdir/usr/bin/rpi-update
654 mkdir -p $rootdir/lib/modules
655 touch $rootdir/boot/start.elf
656 chroot $rootdir rpi-update
657 </pre></p>
658
659 <p>Next, fetch the latest vmdebootstrap script and call it like this
660 to build the image:</p>
661
662 <pre>
663 sudo ./vmdebootstrap \
664 --variant minbase \
665 --arch armel \
666 --distribution jessie \
667 --mirror http://http.debian.net/debian \
668 --image test.img \
669 --size 600M \
670 --bootsize 64M \
671 --boottype vfat \
672 --log-level debug \
673 --verbose \
674 --no-kernel \
675 --no-extlinux \
676 --root-password raspberry \
677 --hostname raspberrypi \
678 --foreign /usr/bin/qemu-arm-static \
679 --customize `pwd`/customize \
680 --package netbase \
681 --package git-core \
682 --package binutils \
683 --package ca-certificates \
684 --package wget \
685 --package kmod
686 </pre></p>
687
688 <p>The list of packages being installed are the ones needed by
689 rpi-update to make the image bootable on the Raspberry Pi, with the
690 exception of netbase, which is needed by debootstrap to find
691 /etc/hosts with the minbase variant. I really wish there was a way to
692 set up an Raspberry Pi using only packages in the Debian archive, but
693 that is not possible as far as I know, because it boots from the GPU
694 using a non-free binary blob.</p>
695
696 <p>The build host need debootstrap, kpartx and qemu-user-static and
697 probably a few others installed. I have not checked the complete
698 build dependency list.</p>
699
700 <p>The resulting image will not use the hardware floating point unit
701 on the Raspberry PI, because the armel architecture in Debian is not
702 optimized for that use. So the images created will be a bit slower
703 than <a href="http://www.raspbian.org/">Raspbian</a> based images.</p>
704 </div>
705 <div class="tags">
706
707
708 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/freedombox">freedombox</a>, <a href="http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network</a>.
709
710
711 </div>
712 </div>
713 <div class="padding"></div>
714
715 <div class="entry">
716 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Det_er_jo_makta_som_er_mest_s_rbar_ved_massiv_overv_kning_av_Internett.html">Det er jo makta som er mest sårbar ved massiv overvåkning av Internett</a></div>
717 <div class="date">26th October 2013</div>
718 <div class="body"><p>De siste måneders eksponering av
719 <a href="http://www.aftenposten.no/nyheter/uriks/Her-er-Edvard-Snowdens-mest-omtalte-avsloringer-7351734.html">den
720 totale overvåkningen som foregår i den vestlige verden dokumenterer
721 hvor sårbare vi er</a>. Men det slår meg at de som er mest sårbare
722 for dette, myndighetspersoner på alle nivåer, neppe har innsett at de
723 selv er de mest interessante personene å lage profiler på, for å kunne
724 påvirke dem.</p>
725
726 <p>For å ta et lite eksempel: Stortingets nettsted,
727 <a href="http://www.stortinget.no/">www.stortinget.no</a> (og
728 forsåvidt også
729 <a href="http://data.stortinget.no/">data.stortinget.no</a>),
730 inneholder informasjon om det som foregår på Stortinget, og jeg antar
731 de største brukerne av informasjonen der er representanter og
732 rådgivere på Stortinget. Intet overraskende med det. Det som derimot
733 er mer skjult er at Stortingets nettsted bruker
734 <a href="http://en.wikipedia.org/wiki/Google_Analytics">Google
735 Analytics</a>, hvilket gjør at enhver som besøker nettsidene der også
736 rapporterer om besøket via Internett-linjer som passerer Sverige,
737 England og videre til USA. Det betyr at informasjon om ethvert besøk
738 på stortingets nettsider kan snappes opp av svensk, britisk og USAs
739 etterretningsvesen. De kan dermed holde et øye med hvilke
740 Stortingssaker stortingsrepresentantene synes er interessante å sjekke
741 ut, og hvilke sider rådgivere og andre på stortinget synes er
742 interessant å besøke, når de gjør det og hvilke andre representanter
743 som sjekker de samme sidene omtrent samtidig. Stortingets bruk av
744 Google Analytics gjør det dermed enkelt for utenlands etteretning å
745 spore representantenes aktivitet og interesse. Hvis noen av
746 representantene bruker Google Mail eller noen andre tjenestene som
747 krever innlogging, så vil det være enda enklere å finne ut nøyaktig
748 hvilke personer som bruker hvilke nettlesere og dermed knytte
749 informasjonen opp til enkeltpersoner på Stortinget.</p>
750
751 <p>Og jo flere nettsteder som bruker Google Analytics, jo bedre
752 oversikt over stortingsrepresentantenes lesevaner og interesse blir
753 tilgjengelig for svensk, britisk og USAs etterretning. Hva de kan
754 bruke den informasjonen til overlater jeg til leseren å undres
755 over.</p>
756 </div>
757 <div class="tags">
758
759
760 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>, <a href="http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>.
761
762
763 </div>
764 </div>
765 <div class="padding"></div>
766
767 <div class="entry">
768 <div class="title"><a href="http://people.skolelinux.org/pere/blog/A_Raspberry_Pi_based_batman_adv_Mesh_network_node.html">A Raspberry Pi based batman-adv Mesh network node</a></div>
769 <div class="date">21st October 2013</div>
770 <div class="body"><p>The last few days I have been experimenting with
771 <a href="http://www.open-mesh.org/projects/batman-adv/wiki">the
772 batman-adv mesh technology</a>. I want to gain some experience to see
773 if it will fit <a href="https://wiki.debian.org/FreedomBox">the
774 Freedombox project</a>, and together with my neighbors try to build a
775 mesh network around the park where I live. Batman-adv is a layer 2
776 mesh system ("ethernet" in other words), where the mesh network appear
777 as if all the mesh clients are connected to the same switch.</p>
778
779 <p>My hardware of choice was the Linksys WRT54GL routers I had lying
780 around, but I've been unable to get them working with batman-adv. So
781 instead, I started playing with a
782 <a href="http://www.raspberrypi.org/">Raspberry Pi</a>, and tried to
783 get it working as a mesh node. My idea is to use it to create a mesh
784 node which function as a switch port, where everything connected to
785 the Raspberry Pi ethernet plug is connected (bridged) to the mesh
786 network. This allow me to hook a wifi base station like the Linksys
787 WRT54GL to the mesh by plugging it into a Raspberry Pi, and allow
788 non-mesh clients to hook up to the mesh. This in turn is useful for
789 Android phones using <a href="http://servalproject.org/">the Serval
790 Project</a> voip client, allowing every one around the playground to
791 phone and message each other for free. The reason is that Android
792 phones do not see ad-hoc wifi networks (they are filtered away from
793 the GUI view), and can not join the mesh without being rooted. But if
794 they are connected using a normal wifi base station, they can talk to
795 every client on the local network.</p>
796
797 <p>To get this working, I've created a debian package
798 <a href="https://github.com/petterreinholdtsen/meshfx-node">meshfx-node</a>
799 and a script
800 <a href="https://github.com/petterreinholdtsen/meshfx-node/blob/master/build-rpi-mesh-node">build-rpi-mesh-node</a>
801 to create the Raspberry Pi boot image. I'm using Debian Jessie (and
802 not Raspbian), to get more control over the packages available.
803 Unfortunately a huge binary blob need to be inserted into the boot
804 image to get it booting, but I'll ignore that for now. Also, as
805 Debian lack support for the CPU features available in the Raspberry
806 Pi, the system do not use the hardware floating point unit. I hope
807 the routing performance isn't affected by the lack of hardware FPU
808 support.</p>
809
810 <p>To create an image, run the following with a sudo enabled user
811 after inserting the target SD card into the build machine:</p>
812
813 <p><pre>
814 % wget -O build-rpi-mesh-node \
815 https://raw.github.com/petterreinholdtsen/meshfx-node/master/build-rpi-mesh-node
816 % sudo bash -x ./build-rpi-mesh-node > build.log 2>&1
817 % dd if=/root/rpi/rpi_basic_jessie_$(date +%Y%m%d).img of=/dev/mmcblk0 bs=1M
818 %
819 </pre></p>
820
821 <p>Booting with the resulting SD card on a Raspberry PI with a USB
822 wifi card inserted should give you a mesh node. At least it does for
823 me with a the wifi card I am using. The default mesh settings are the
824 ones used by the Oslo mesh project at Hackeriet, as I mentioned in
825 <a href="http://people.skolelinux.org/pere/blog/Oslo_community_mesh_network___with_NUUG_and_Hackeriet_at_Hausmania.html">an
826 earlier blog post about this mesh testing</a>.</p>
827
828 <p>The mesh node was not horribly expensive either. I bought
829 everything over the counter in shops nearby. If I had ordered online
830 from the lowest bidder, the price should be significantly lower:</p>
831
832 <p><table>
833
834 <tr><th>Supplier</th><th>Model</th><th>NOK</th></tr>
835 <tr><td>Teknikkmagasinet</td><td>Raspberry Pi model B</td><td>349.90</td></tr>
836 <tr><td>Teknikkmagasinet</td><td>Raspberry Pi type B case</td><td>99.90</td></tr>
837 <tr><td>Lefdal</td><td>Jensen Air:Link 25150</td><td>295.-</td></tr>
838 <tr><td>Clas Ohlson</td><td>Kingston 16 GB SD card</td><td>199.-</td></tr>
839 <tr><td>Total cost</td><td></td><td>943.80</td></tr>
840
841 </table></p>
842
843 <p>Now my mesh network at home consist of one laptop in the basement
844 connected to my production network, one Raspberry Pi node on the 1th
845 floor that can be seen by my neighbor across the park, and one
846 play-node I use to develop the image building script. And some times
847 I hook up my work horse laptop to the mesh to test it. I look forward
848 to figuring out what kind of latency the batman-adv setup will give,
849 and how much packet loss we will experience around the park. :)</p>
850 </div>
851 <div class="tags">
852
853
854 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox</a>, <a href="http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
855
856
857 </div>
858 </div>
859 <div class="padding"></div>
860
861 <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>
862 <div id="sidebar">
863
864
865
866 <h2>Archive</h2>
867 <ul>
868
869 <li>2013
870 <ul>
871
872 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/01/">January (11)</a></li>
873
874 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/02/">February (9)</a></li>
875
876 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/03/">March (9)</a></li>
877
878 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/04/">April (6)</a></li>
879
880 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/05/">May (9)</a></li>
881
882 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/06/">June (10)</a></li>
883
884 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/07/">July (7)</a></li>
885
886 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/08/">August (3)</a></li>
887
888 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/09/">September (5)</a></li>
889
890 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/10/">October (7)</a></li>
891
892 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/11/">November (7)</a></li>
893
894 </ul></li>
895
896 <li>2012
897 <ul>
898
899 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/01/">January (7)</a></li>
900
901 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/02/">February (10)</a></li>
902
903 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/03/">March (17)</a></li>
904
905 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/04/">April (12)</a></li>
906
907 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/05/">May (12)</a></li>
908
909 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/06/">June (20)</a></li>
910
911 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/07/">July (17)</a></li>
912
913 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/08/">August (6)</a></li>
914
915 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/09/">September (9)</a></li>
916
917 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/10/">October (17)</a></li>
918
919 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/11/">November (10)</a></li>
920
921 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/12/">December (7)</a></li>
922
923 </ul></li>
924
925 <li>2011
926 <ul>
927
928 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/01/">January (16)</a></li>
929
930 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/02/">February (6)</a></li>
931
932 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/03/">March (6)</a></li>
933
934 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/04/">April (7)</a></li>
935
936 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/05/">May (3)</a></li>
937
938 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/06/">June (2)</a></li>
939
940 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/07/">July (7)</a></li>
941
942 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/08/">August (6)</a></li>
943
944 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/09/">September (4)</a></li>
945
946 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/10/">October (2)</a></li>
947
948 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/11/">November (3)</a></li>
949
950 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/12/">December (1)</a></li>
951
952 </ul></li>
953
954 <li>2010
955 <ul>
956
957 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/01/">January (2)</a></li>
958
959 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/02/">February (1)</a></li>
960
961 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/03/">March (3)</a></li>
962
963 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/04/">April (3)</a></li>
964
965 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/05/">May (9)</a></li>
966
967 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/06/">June (14)</a></li>
968
969 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/07/">July (12)</a></li>
970
971 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/08/">August (13)</a></li>
972
973 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/09/">September (7)</a></li>
974
975 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/10/">October (9)</a></li>
976
977 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/11/">November (13)</a></li>
978
979 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/12/">December (12)</a></li>
980
981 </ul></li>
982
983 <li>2009
984 <ul>
985
986 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/01/">January (8)</a></li>
987
988 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/02/">February (8)</a></li>
989
990 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/03/">March (12)</a></li>
991
992 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/04/">April (10)</a></li>
993
994 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/05/">May (9)</a></li>
995
996 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/06/">June (3)</a></li>
997
998 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/07/">July (4)</a></li>
999
1000 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/08/">August (3)</a></li>
1001
1002 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/09/">September (1)</a></li>
1003
1004 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/10/">October (2)</a></li>
1005
1006 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/11/">November (3)</a></li>
1007
1008 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/12/">December (3)</a></li>
1009
1010 </ul></li>
1011
1012 <li>2008
1013 <ul>
1014
1015 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/11/">November (5)</a></li>
1016
1017 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/12/">December (7)</a></li>
1018
1019 </ul></li>
1020
1021 </ul>
1022
1023
1024
1025 <h2>Tags</h2>
1026 <ul>
1027
1028 <li><a href="http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (13)</a></li>
1029
1030 <li><a href="http://people.skolelinux.org/pere/blog/tags/amiga">amiga (1)</a></li>
1031
1032 <li><a href="http://people.skolelinux.org/pere/blog/tags/aros">aros (1)</a></li>
1033
1034 <li><a href="http://people.skolelinux.org/pere/blog/tags/bankid">bankid (4)</a></li>
1035
1036 <li><a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (7)</a></li>
1037
1038 <li><a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (13)</a></li>
1039
1040 <li><a href="http://people.skolelinux.org/pere/blog/tags/bsa">bsa (2)</a></li>
1041
1042 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian">debian (91)</a></li>
1043
1044 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (142)</a></li>
1045
1046 <li><a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan (10)</a></li>
1047
1048 <li><a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook (10)</a></li>
1049
1050 <li><a href="http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
1051
1052 <li><a href="http://people.skolelinux.org/pere/blog/tags/english">english (229)</a></li>
1053
1054 <li><a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (21)</a></li>
1055
1056 <li><a href="http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (12)</a></li>
1057
1058 <li><a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (12)</a></li>
1059
1060 <li><a href="http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox (5)</a></li>
1061
1062 <li><a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (11)</a></li>
1063
1064 <li><a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju (37)</a></li>
1065
1066 <li><a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram (7)</a></li>
1067
1068 <li><a href="http://people.skolelinux.org/pere/blog/tags/kart">kart (18)</a></li>
1069
1070 <li><a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap (8)</a></li>
1071
1072 <li><a href="http://people.skolelinux.org/pere/blog/tags/lenker">lenker (6)</a></li>
1073
1074 <li><a href="http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (1)</a></li>
1075
1076 <li><a href="http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network (5)</a></li>
1077
1078 <li><a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (25)</a></li>
1079
1080 <li><a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk (237)</a></li>
1081
1082 <li><a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug (159)</a></li>
1083
1084 <li><a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (9)</a></li>
1085
1086 <li><a href="http://people.skolelinux.org/pere/blog/tags/open311">open311 (2)</a></li>
1087
1088 <li><a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (45)</a></li>
1089
1090 <li><a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern (67)</a></li>
1091
1092 <li><a href="http://people.skolelinux.org/pere/blog/tags/raid">raid (1)</a></li>
1093
1094 <li><a href="http://people.skolelinux.org/pere/blog/tags/reprap">reprap (11)</a></li>
1095
1096 <li><a href="http://people.skolelinux.org/pere/blog/tags/rfid">rfid (2)</a></li>
1097
1098 <li><a href="http://people.skolelinux.org/pere/blog/tags/robot">robot (9)</a></li>
1099
1100 <li><a href="http://people.skolelinux.org/pere/blog/tags/rss">rss (1)</a></li>
1101
1102 <li><a href="http://people.skolelinux.org/pere/blog/tags/ruter">ruter (4)</a></li>
1103
1104 <li><a href="http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (2)</a></li>
1105
1106 <li><a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (33)</a></li>
1107
1108 <li><a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (4)</a></li>
1109
1110 <li><a href="http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (4)</a></li>
1111
1112 <li><a href="http://people.skolelinux.org/pere/blog/tags/standard">standard (43)</a></li>
1113
1114 <li><a href="http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (3)</a></li>
1115
1116 <li><a href="http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (9)</a></li>
1117
1118 <li><a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (21)</a></li>
1119
1120 <li><a href="http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (1)</a></li>
1121
1122 <li><a href="http://people.skolelinux.org/pere/blog/tags/valg">valg (8)</a></li>
1123
1124 <li><a href="http://people.skolelinux.org/pere/blog/tags/video">video (39)</a></li>
1125
1126 <li><a href="http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (4)</a></li>
1127
1128 <li><a href="http://people.skolelinux.org/pere/blog/tags/web">web (28)</a></li>
1129
1130 </ul>
1131
1132
1133 </div>
1134 <p style="text-align: right">
1135 Created by <a href="http://steve.org.uk/Software/chronicle">Chronicle v4.6</a>
1136 </p>
1137
1138 </body>
1139 </html>