1 <!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Strict//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
5 <title>Petter Reinholdtsen
</title>
6 <link rel=
"stylesheet" type=
"text/css" media=
"screen" href=
"http://people.skolelinux.org/pere/blog/style.css">
7 <link rel=
"alternate" title=
"RSS Feed" href=
"http://people.skolelinux.org/pere/blog/index.rss" type=
"application/rss+xml">
14 <a href=
"http://people.skolelinux.org/pere/blog/">Petter Reinholdtsen
</a>
23 <div class=
"title"><a href=
"http://people.skolelinux.org/pere/blog/Parallellized_boot_is_now_the_default_in_Debian_unstable.html">Parallellized boot is now the default in Debian/unstable
</a></div>
24 <div class=
"date">2010-
05-
14 22:
40</div>
26 <p>Since this evening, parallel booting is the default in
27 Debian/unstable for machines using dependency based boot sequencing.
28 Apparently the testing of concurrent booting has been wider than
29 expected, if I am to believe the
30 <a href=
"http://lists.debian.org/debian-devel/2010/05/msg00122.html">input
31 on debian-devel@
</a>, and I concluded a few days ago to move forward
32 with the feature this weekend, to give us some time to detect any
33 remaining problems before Squeeze is frozen. If serious problems are
34 detected, it is simple to change the default back to sequential boot.
35 The upload of the new sysvinit package also activate a new upstream
38 More information about
39 <a href=
"http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot">dependency
40 based boot sequencing
</a> is available from the Debian wiki. It is
41 currently possible to disable parallel booting when one run into
42 problems caused by it, by adding this line to /etc/default/rcS:
</p>
48 <p>If you report any problems with dependencies in init.d scripts to
49 the BTS, please usertag the report to get it to show up at
50 <a href=
"http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=initscripts-ng-devel@lists.alioth.debian.org">the
51 list of usertagged bugs related to this
</a>.
</p>
57 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/debian">debian
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/english">english
</a>.
61 <div class=
"padding"></div>
64 <div class=
"title"><a href=
"http://people.skolelinux.org/pere/blog/Sitesummary_tip__Listing_MAC_address_of_all_clients.html">Sitesummary tip: Listing MAC address of all clients
</a></div>
65 <div class=
"date">2010-
05-
14 21:
10</div>
67 <p>In the recent Debian Edu versions, the
68 <a href=
"http://wiki.debian.org/DebianEdu/HowTo/SiteSummary">sitesummary
69 system
</a> is used to keep track of the machines in the school
70 network. Each machine will automatically report its status to the
71 central server after boot and once per night. The network setup is
72 also reported, and using this information it is possible to get the
73 MAC address of all network interfaces in the machines. This is useful
74 to update the DHCP configuration.
</p>
76 <p>To give some idea how to use sitesummary, here is a one-liner to
77 ist all MAC addresses of all machines reporting to sitesummary. Run
78 this on the collector host:
</p>
81 perl -MSiteSummary -e 'for_all_hosts(sub { print join(" ", get_macaddresses(shift)), "\n"; });'
84 <p>This will list all MAC addresses assosiated with all machine, one
85 line per machine and with space between the MAC addresses.
</p>
87 <p>To allow system administrators easier job at adding static DHCP
88 addresses for hosts, it would be possible to extend this to fetch
89 machine information from sitesummary and update the DHCP and DNS
90 tables in LDAP using this information. Such tool is unfortunately not
97 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/debian">debian
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/english">english
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary
</a>.
101 <div class=
"padding"></div>
104 <div class=
"title"><a href=
"http://people.skolelinux.org/pere/blog/systemd__an_interesting_alternative_to_upstart.html">systemd, an interesting alternative to upstart
</a></div>
105 <div class=
"date">2010-
05-
13 22:
20</div>
107 <p>The last few days a new boot system called
108 <a href=
"http://www.freedesktop.org/wiki/Software/systemd">systemd
</a>
110 <a href=
"http://0pointer.de/blog/projects/systemd.html">introduced
</a>
112 to the free software world. I have not yet had time to play around
113 with it, but it seem to be a very interesting alternative to
114 <a href=
"http://upstart.ubuntu.com/">upstart
</a>, and might prove to be
115 a good alternative for Debian when we are able to switch to an event
116 based boot system. Tollef is
117 <a href=
"http://bugs.debian.org/580814">in the process
</a> of getting
118 systemd into Debian, and I look forward to seeing how well it work. I
119 like the fact that systemd handles init.d scripts with dependency
120 information natively, allowing them to run in parallel where upstart
121 at the moment do not.
</p>
123 <p>Unfortunately do systemd have the same problem as upstart regarding
124 platform support. It only work on recent Linux kernels, and also need
125 some new kernel features enabled to function properly. This means
126 kFreeBSD and Hurd ports of Debian will need a port or a different boot
127 system. Not sure how that will be handled if systemd proves to be the
130 <p>In the mean time, based on the
131 <a href=
"http://lists.debian.org/debian-devel/2010/05/msg00122.html">input
132 on debian-devel@
</a> regarding parallel booting in Debian, I have
133 decided to enable full parallel booting as the default in Debian as
134 soon as possible (probably this weekend or early next week), to see if
135 there are any remaining serious bugs in the init.d dependencies. A
136 new version of the sysvinit package implementing this change is
137 already in experimental. If all go well, Squeeze will be released
138 with parallel booting enabled by default.
</p>
144 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/nuug">nuug
</a>.
148 <div class=
"padding"></div>
151 <div class=
"title"><a href=
"http://people.skolelinux.org/pere/blog/Parallellizing_the_boot_in_Debian_Squeeze___ready_for_wider_testing.html">Parallellizing the boot in Debian Squeeze - ready for wider testing
</a></div>
152 <div class=
"date">2010-
05-
06 23:
25</div>
154 <p>These days, the init.d script dependencies in Squeeze are quite
155 complete, so complete that it is actually possible to run all the
156 init.d scripts in parallell based on these dependencies. If you want
157 to test your Squeeze system, make sure
158 <a href=
"http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot">dependency
159 based boot sequencing
</a> is enabled, and add this line to
160 /etc/default/rcS:
</p>
166 <p>That is it. It will cause sysv-rc to use the startpar tool to run
167 scripts in parallel using the dependency information stored in
168 /etc/init.d/.depend.boot, /etc/init.d/.depend.start and
169 /etc/init.d/.depend.stop to order the scripts. Startpar is configured
170 to try to start the kdm and gdm scripts as early as possible, and will
171 start the facilities required by kdm or gdm as early as possible to
172 make this happen.
</p>
174 <p>Give it a try, and see if you like the result. If some services
175 fail to start properly, it is most likely because they have incomplete
176 init.d script dependencies in their startup script (or some of their
177 dependent scripts have incomplete dependencies). Report bugs and get
178 the package maintainers to fix it. :)
</p>
180 <p>Running scripts in parallel could be the default in Debian when we
181 manage to get the init.d script dependencies complete and correct. I
182 expect we will get there in Squeeze+
1, if we get manage to test and
183 fix the remaining issues.
</p>
185 <p>If you report any problems with dependencies in init.d scripts to
186 the BTS, please usertag the report to get it to show up at
187 <a href=
"http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=initscripts-ng-devel@lists.alioth.debian.org">the
188 list of usertagged bugs related to this
</a>.
</p>
194 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>.
198 <div class=
"padding"></div>
201 <div class=
"title"><a href=
"http://people.skolelinux.org/pere/blog/Forcing_new_users_to_change_their_password_on_first_login.html">Forcing new users to change their password on first login
</a></div>
202 <div class=
"date">2010-
05-
02 13:
47</div>
204 <p>One interesting feature in Active Directory, is the ability to
205 create a new user with an expired password, and thus force the user to
206 change the password on the first login attempt.
</p>
208 <p>I'm not quite sure how to do that with the LDAP setup in Debian
209 Edu, but did some initial testing with a local account. The account
210 and password aging information is available in /etc/shadow, but
211 unfortunately, it is not possible to specify an expiration time for
212 passwords, only a maximum age for passwords.
</p>
214 <p>A freshly created account (using adduser test) will have these
215 settings in /etc/shadow:
</p>
218 root@tjener:~# chage -l test
219 Last password change : May
02,
2010
220 Password expires : never
221 Password inactive : never
222 Account expires : never
223 Minimum number of days between password change :
0
224 Maximum number of days between password change :
99999
225 Number of days of warning before password expires :
7
229 <p>The only way I could come up with to create a user with an expired
230 account, is to change the date of the last password change to the
231 lowest value possible (January
1th
1970), and the maximum password age
232 to the difference in days between that date and today. To make it
233 simple, I went for
30 years (
30 *
365 =
10950) and January
2th (to
234 avoid testing if
0 is a valid value).
</p>
236 <p>After using these commands to set it up, it seem to work as
240 root@tjener:~# chage -d
1 test; chage -M
10950 test
241 root@tjener:~# chage -l test
242 Last password change : Jan
02,
1970
243 Password expires : never
244 Password inactive : never
245 Account expires : never
246 Minimum number of days between password change :
0
247 Maximum number of days between password change :
10950
248 Number of days of warning before password expires :
7
252 <p>So far I have tested this with ssh and console, and kdm (in
253 Squeeze) login, and all ask for a new password before login in the
254 user (with ssh, I was thrown out and had to log in again).
</p>
256 <p>Perhaps we should set up something similar for Debian Edu, to make
257 sure only the user itself have the account password?
</p>
259 <p>If you want to comment on or help out with implementing this for
260 Debian Edu, please contact us on debian-edu@lists.debian.org.
</p>
262 <p>Update
2010-
05-
02 17:
20: Paul Tötterman tells me on IRC that the
263 shadow(
8) page in Debian/testing now state that setting the date of
264 last password change to zero (
0) will force the password to be changed
265 on the first login. This was not mentioned in the manual in Lenny, so
266 I did not notice this in my initial testing. I have tested it on
267 Squeeze, and '
<tt>chage -d
0 username
</tt>' do work there. I have not
268 tested it on Lenny yet.
</p>
270 <p>Update
2010-
05-
02-
19:
05: Jim Paris tells me via email that an
271 equivalent command to expire a password is '
<tt>passwd -e
272 username
</tt>', which insert zero into the date of the last password
279 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/english">english
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/nuug">nuug
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet
</a>.
283 <div class=
"padding"></div>
286 <div class=
"title"><a href=
"http://people.skolelinux.org/pere/blog/Thoughts_on_roaming_laptop_setup_for_Debian_Edu.html">Thoughts on roaming laptop setup for Debian Edu
</a></div>
287 <div class=
"date">2010-
04-
28 20:
40</div>
289 <p>For some years now, I have wondered how we should handle laptops in
290 Debian Edu. The Debian Edu infrastructure is mostly designed to
291 handle stationary computers, and less suited for computers that come
294 <p>Now I finally believe I have an sensible idea on how to adjust
295 Debian Edu for laptops, by introducing a new profile for them, for
296 example called Roaming Workstations. Here are my thought on this.
297 The setup would consist of the following:
</p>
301 <li>During installation, the user name of the owner / primary user of
302 the laptop is requested and a local home directory is set up for
303 the user, with uid and gid information fetched from the LDAP
304 server. This allow the user to work also when offline. The
305 central home directory can be available in a subdirectory on
306 request, for example mounted via CIFS. It could be mounted
307 automatically when a user log in while on the Debian Edu network,
308 and unmounted when the machine is taken away (network down,
309 hibernate, etc), it can be set up to do automatic mounting on
310 request (using autofs), or perhaps some GUI button on the desktop
311 can be used to access it when needed. Perhaps it is enough to use
312 the fish protocol in KDE?
</li>
314 <li>Password checking is set up to use LDAP or Kerberos
315 authentication when the machine is on the Debian Edu network, and
316 to cache the password for offline checking when the machine unable
317 to reach the LDAP or Kerberos server. This can be done using
318 <a href=
"http://www.padl.com/OSS/pam_ccreds.html">libpam-ccreds
</a>
319 or the Fedora developed
320 <a href=
"https://fedoraproject.org/wiki/Features/SSSD">System
321 Security Services Daemon
</a> packages.
</li>
323 <li>File synchronisation with the central home directory is set up
324 using a shared directory in both the local and the central home
325 directory, using unison.
</li>
327 <li>Printing should be set up to print to all printers broadcasting
328 their existence on the local network, and should then work out of
329 the box with CUPS. For sites needing accurate printer quotas, some
330 system with Kerberos authentication or printing via ssh could be
333 <li>For users that should have local root access to their laptop,
334 sudo should be used to allow this to the local user.
</li>
336 <li>It would be nice if user and group information from LDAP is
337 cached on the client, but given that there are entries for the
338 local user and primary group in /etc/, it should not be needed.
</li>
342 <p>I believe all the pieces to implement this are in Debian/testing at
343 the moment. If we work quickly, we should be able to get this ready
344 in time for the Squeeze release to freeze. Some of the pieces need
345 tweaking, like libpam-ccreds should get support for pam-auth-update
346 (
<a href=
"http://bugs.debian.org/566718">#
566718</a>) and nslcd (or
347 perhaps debian-edu-config) should get some integration code to stop
348 its daemon when the LDAP server is unavailable to avoid long timeouts
349 when disconnected from the net. If we get Kerberos enabled, we need
350 to make sure we avoid long timeouts there too.
</p>
352 <p>If you want to help out with implementing this for Debian Edu,
353 please contact us on debian-edu@lists.debian.org.
</p>
359 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/english">english
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/nuug">nuug
</a>.
363 <div class=
"padding"></div>
366 <div class=
"title"><a href=
"http://people.skolelinux.org/pere/blog/Great_book___Content__Selected_Essays_on_Technology__Creativity__Copyright__and_the_Future_of_the_Future_.html">Great book: "Content: Selected Essays on Technology, Creativity, Copyright, and the Future of the Future"
</a></div>
367 <div class=
"date">2010-
04-
19 17:
10</div>
369 <p>The last few weeks i have had the pleasure of reading a
370 thought-provoking collection of essays by Cory Doctorow, on topics
371 touching copyright, virtual worlds, the future of man when the
372 conscience mind can be duplicated into a computer and many more. The
373 book titled "Content: Selected Essays on Technology, Creativity,
374 Copyright, and the Future of the Future" is available with few
375 restrictions on the web, for example from
376 <a href=
"http://craphound.com/content/">his own site
</a>. I read the
378 <a href=
"http://www.feedbooks.com/book/2883">feedbooks
</a> using
379 <a href=
"http://www.fbreader.org/">fbreader
</a> and my N810. I
380 strongly recommend this book.
</p>
386 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/english">english
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/nuug">nuug
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett
</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/web">web
</a>.
390 <div class=
"padding"></div>
393 <div class=
"title"><a href=
"http://people.skolelinux.org/pere/blog/Kerberos_for_Debian_Edu_Squeeze_.html">Kerberos for Debian Edu/Squeeze?
</a></div>
394 <div class=
"date">2010-
04-
14 17:
20</div>
396 <p><a href=
"http://www.nuug.no/aktiviteter/20100413-kerberos/">Yesterdays
397 NUUG presentation
</a> about Kerberos was inspiring, and reminded me
398 about the need to start using Kerberos in Skolelinux. Setting up a
399 Kerberos server seem to be straight forward, and if we get this in
400 place a long time before the Squeeze version of Debian freezes, we
401 have a chance to migrate Skolelinux away from NFSv3 for the home
402 directories, and over to an architecture where the infrastructure do
403 not have to trust IP addresses and machines, and instead can trust
404 users and cryptographic keys instead.
</p>
406 <p>A challenge will be integration and administration. Is there a
407 Kerberos implementation for Debian where one can control the
408 administration access in Kerberos using LDAP groups? With it, the
409 school administration will have to maintain access control using flat
410 files on the main server, which give a huge potential for errors.
</p>
412 <p>A related question I would like to know is how well Kerberos and
413 pam-ccreds (offline password check) work together. Anyone know?
</p>
415 <p>Next step will be to use Kerberos for access control in Lwat and
416 Nagios. I have no idea how much work that will be to implement. We
417 would also need to document how to integrate with Windows AD, as such
418 shared network will require two Kerberos realms that need to cooperate
419 to work properly.
</p>
421 <p>I believe a good start would be to start using Kerberos on the
422 skolelinux.no machines, and this way get ourselves experience with
423 configuration and integration. A natural starting point would be
424 setting up ldap.skolelinux.no as the Kerberos server, and migrate the
425 rest of the machines from PAM via LDAP to PAM via Kerberos one at the
428 <p>If you would like to contribute to get this working in Skolelinux,
429 I recommend you to see the video recording from yesterdays NUUG
430 presentation, and start using Kerberos at home. The video show show
431 up in a few days.
</p>
437 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/english">english
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/nuug">nuug
</a>.
441 <div class=
"padding"></div>
444 <div class=
"title"><a href=
"http://people.skolelinux.org/pere/blog/P___vegne_av_vanvitting_mange__Aftenposten_.html">På vegne av vanvitting mange, Aftenposten!
</a></div>
445 <div class=
"date">2010-
03-
06 21:
15</div>
447 <p><a href=
"http://fotball.aftenposten.no/incoming/article163000.ece">Aftenposten
448 melder
</a> på forsiden av webavisen sin at de tror Erling Fossen
449 provoserer nordlendinger med sine uttalelser på
450 fotballtinget. Jeg er utflyttet nordlending, og må innrømme at jeg
451 ikke kjennet så mye som et snev av provokasjon fra denne litt morsomme
452 uttalelsen til Hr. Fossen. Lurer på om Aftenposten har noen kilder
453 utenom redaksjonen for sin påstand om at nordledinger er provosert av
454 Hr. Fossen. Må innrømme at jeg tviler på det.
</p>
456 <p>Det hele bringer tankene tilbake til Sture Hansen i Hallo i Uken.
</p>
462 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/norsk">norsk
</a>.
466 <div class=
"padding"></div>
469 <div class=
"title"><a href=
"http://people.skolelinux.org/pere/blog/After_6_years_of_waiting__the_Xreset_d_feature_is_implemented.html">After
6 years of waiting, the Xreset.d feature is implemented
</a></div>
470 <div class=
"date">2010-
03-
06 18:
15</div>
472 <p>6 years ago, as part of the Debian Edu development I am involved
473 in, I asked for a hook in the kdm and gdm setup to run scripts as root
474 when the user log out. A bug was submitted against the xfree86-common
475 package in
2004 (
<a href=
"http://bugs.debian.org/230422">#
230422</a>),
476 and revisited every time Debian Edu was working on a new release.
477 Today, this finally paid off.
</p>
479 <p>The framework for this feature was today commited to the git
480 repositry for the xorg package, and the git repository for xdm has
481 been updated to use this framework. Next on my agenda is to make sure
482 kdm and gdm also add code to use this framework.
</p>
484 <p>In Debian Edu, we want to ability to run commands as root when the
485 user log out, to get rid of runaway processes and do general cleanup
486 after a user. With this framework in place, we finally can do that in
487 a generic way that work with all display managers using this
488 framework. My goal is to get all display managers in Debian use it,
489 similar to how they use the Xsession.d framework today.
<p>
495 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/english">english
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/nuug">nuug
</a>.
499 <div class=
"padding"></div>
501 <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>
515 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/01/">January (
2)
</a></li>
517 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/02/">February (
1)
</a></li>
519 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/03/">March (
3)
</a></li>
521 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/04/">April (
3)
</a></li>
523 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/05/">May (
5)
</a></li>
530 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/01/">January (
8)
</a></li>
532 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/02/">February (
8)
</a></li>
534 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/03/">March (
12)
</a></li>
536 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/04/">April (
10)
</a></li>
538 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/05/">May (
9)
</a></li>
540 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/06/">June (
3)
</a></li>
542 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/07/">July (
4)
</a></li>
544 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/08/">August (
3)
</a></li>
546 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/09/">September (
1)
</a></li>
548 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/10/">October (
2)
</a></li>
550 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/11/">November (
3)
</a></li>
552 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/12/">December (
3)
</a></li>
559 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2008/11/">November (
5)
</a></li>
561 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2008/12/">December (
7)
</a></li>
572 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (
11)
</a></li>
574 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/amiga">amiga (
1)
</a></li>
576 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/aros">aros (
1)
</a></li>
578 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/debian">debian (
18)
</a></li>
580 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (
17)
</a></li>
582 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/english">english (
28)
</a></li>
584 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (
1)
</a></li>
586 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (
6)
</a></li>
588 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/kart">kart (
2)
</a></li>
590 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/lenker">lenker (
1)
</a></li>
592 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (
1)
</a></li>
594 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (
5)
</a></li>
596 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/norsk">norsk (
64)
</a></li>
598 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/nuug">nuug (
72)
</a></li>
600 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (
12)
</a></li>
602 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/personvern">personvern (
11)
</a></li>
604 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/reprap">reprap (
10)
</a></li>
606 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/rss">rss (
1)
</a></li>
608 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (
7)
</a></li>
610 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (
1)
</a></li>
612 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/standard">standard (
11)
</a></li>
614 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (
1)
</a></li>
616 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/video">video (
10)
</a></li>
618 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (
1)
</a></li>
620 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/web">web (
6)
</a></li>
626 <p style=
"text-align: right">
627 Created by
<a href=
"http://steve.org.uk/Software/chronicle">Chronicle v3.7
</a>