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=
"style.css">
7 <link rel=
"alternate" title=
"RSS Feed" href=
"index.rss" type=
"application/rss+xml">
14 <a href=
"">Petter Reinholdtsen
</a>
23 <div class=
"title"><a href=
"Frikanalen_og_jul_i_studentr__det.html">Frikanalen og jul i studentrådet
</a></div>
24 <div class=
"date">2009-
03-
11 23:
40</div>
27 <a href=
"http://lists.nuug.no/pipermail/interesserte/2009-March/000387.html">lanserte
</a>
29 <a href=
"http://www.frikanalen.no">Frikanalen
</a> med
30 <a href=
"http://www.nuug.no/pub/video/frikanalen/frontpage.cgi">åpne
31 standarder
</a>, og resultatet av noen intense uker med arbeide kunne
32 endelig presenteres. Jeg har tro på åpen kanalkonseptet som
33 Frikanalen er et eksempel på, der borgerne får anledning til å
34 kringkaste sitt syn på en åpen og demokratisk måte. Jeg er veldig
35 glad vi har fått gjort kanalen tilgjengelig i Ogg Theora, slik at alle
36 kan få tilgang til opptakene på web, og slipper å måtte installere MS
37 Silverlight for å spille av opptakene.
</p>
39 <p>Frikanalen har en brokete historie, og dagens inkarnasjon er ikke
40 helt slik foreningen Åpen kanal planla det for mange år siden, noe som
41 er bakgrunnen for at det fredag
13. mars
2009 kl
09:
00 starter en
42 rettsak i Oslo tingrett der Kringkasterforeningen (tidligere
43 foreningen Åpen kanal) har saksøkt kulturdepartementet over
44 konpsesjonsvilkårene til Frikanalen. Jeg er spent på resultatet.
</p>
46 <p>I arbeidet med Frikanalen med åpne standarder, så har vi hatt glede
47 av å se en rekke av innslagene som er tilgjengelig. Her er mye
48 religiøst sludder, fra
49 <a href=
"http://www.nuug.no/pub/video/frikanalen/fetchvideo.cgi?videoId=720">vandring
51 <a href=
"http://www.nuug.no/pub/video/frikanalen/fetchvideo.cgi?videoId=779">religiøst
52 vinklede nyheter
</a> til
54 href=
"http://www.nuug.no/pub/video/frikanalen/fetchvideo.cgi?videoId=2077">kreasjonisk
55 retorikk
</a>, men også fine
56 <a href=
"http://www.nuug.no/pub/video/frikanalen/fetchvideo.cgi?videoId=407">dokumentarer
57 om redningsselskapet
</a> og
58 <a href=
"http://www.nuug.no/pub/video/frikanalen/fetchvideo.cgi?videoId=2204">interessante
59 tegneserieanmeldelser
</a>. Det jeg derimot har hatt størst glede av,
62 <a href=
"http://www.nuug.no/pub/video/frikanalen/fetchvideo.cgi?videoId=1556">jul
63 i studentrådet
</a>, der hver episode var en fest å se på. Jeg håper
64 NUUG lykkes med å få ut sine opptak med like stor suksess.
</p>
70 Tags:
<a href=
"tags/norsk">norsk
</a>,
<a href=
"tags/nuug">nuug
</a>,
<a href=
"tags/video">video
</a>.
74 <div class=
"padding"></div>
77 <div class=
"title"><a href=
"Lisensvalg_for_NUUG_opptakene_endelig_p___plass.html">Lisensvalg for NUUG-opptakene endelig på plass
</a></div>
78 <div class=
"date">2009-
03-
06 21:
20</div>
80 <p>Etter mange års meditasjon over temaet, har NUUG endelig klart å
81 bestemme seg for hvilken lisens vi skal bruke på videoopptakene som
82 gjøres av NUUGs videogruppe. Ole Kristian har annonsert at lisensen
83 blir
<a href=
"http://creativecommons.org/licenses/by-sa/3.0/no/">Creative
84 Commons Navngivelse-Del på samme vilkår
3.0 Norge
</a>. Jeg er veldig
85 glad for at denne saken endelig er landet. Lisensen for opptaket til
86 Stallman-foredraget ble en annen pga. at lisensvalget ikke var avklart
87 på forhånd og IFI og PING ønsket CC-BY-ND, og må ses på som et unntak
88 i denne sammenhengen.
</p>
94 Tags:
<a href=
"tags/norsk">norsk
</a>,
<a href=
"tags/nuug">nuug
</a>,
<a href=
"tags/video">video
</a>.
98 <div class=
"padding"></div>
101 <div class=
"title"><a href=
"Teknisk_program_for_Go_Open_2009_er_nesten_ferdig.html">Teknisk program for Go Open
2009 er nesten ferdig
</a></div>
102 <div class=
"date">2009-
03-
05 22:
30</div>
104 <p>Etter lang tids jobbing begynner endelig programmet til det
105 tekniske sporet på konferansen
<a href=
"http://www.goopen.no/">Go Open
106 2009</a> å bli ferdig. Det blir
9 punkter på programmet, og etter alt
107 å dømme blir det disse
9:
</p>
111 <li>"Open Telephony: A solution greater than the sum of its parts" med
112 Jon
"maddog" Hall
</li>
113 <li>OpenSolaris-relatert med Ian Murdock fra SUN
</li>
114 <li>"The inner workings of the OpenStreetmap project and the
115 technology used" med Andy Allan
</li>
116 <li>Coreboot-relatert med Peter Stuge
</li>
117 <li>"Gratis værdata fra Meteorologisk institutt" med Trond Michelsen
</li>
118 <li>RRDtool/Nagios-relatert med Tobias Oetiker
</li>
119 <li>"Developers guide to server-side productivity and fun using open
120 source platforms and frameworks" med en gjeng folk fra
122 <li>"G(et)it Nå!" med Marcus Ramberg
</li>
123 <li>Om kontrolltelling av valgresultater med fri programvare med Mitch
128 <p>De siste bekreftelsene og overskrifter mangler og kommer
129 forhåpentlig på plass før mandag, men jeg håper dette blir et program
130 flere enn meg vil sette pris på. Jeg gleder meg i hvert fall
137 Tags:
<a href=
"tags/norsk">norsk
</a>,
<a href=
"tags/nuug">nuug
</a>.
141 <div class=
"padding"></div>
144 <div class=
"title"><a href=
"Checking_server_hardware_support_status_for_Dell__HP_and_IBM_servers.html">Checking server hardware support status for Dell, HP and IBM servers
</a></div>
145 <div class=
"date">2009-
02-
28 23:
50</div>
147 <p>At work, we have a few hundred Linux servers, and with that amount
148 of hardware it is important to keep track of when the hardware support
149 contract expire for each server. We have a machine (and service)
150 register, which until recently did not contain much useful besides the
151 machine room location and contact information for the system owner for
152 each machine. To make it easier for us to track support contract
153 status, I've recently spent time on extending the machine register to
154 include information about when the support contract expire, and to tag
155 machines with expired contracts to make it easy to get a list of such
156 machines. I extended a perl script already being used to import
157 information about machines into the register, to also do some screen
158 scraping off the sites of Dell, HP and IBM (our majority of machines
159 are from these vendors), and automatically check the support status
160 for the relevant machines. This make the support status information
161 easily available and I hope it will make it easier for the computer
162 owner to know when to get new hardware or renew the support contract.
163 The result of this work documented that
27% of the machines in the
164 registry is without a support contract, and made it very easy to find
165 them.
27% might seem like a lot, but I see it more as the case of us
166 using machines a bit longer than the
3 years a normal support contract
167 last, to have test machines and a platform for less important
168 services. After all, the machines without a contract are working fine
169 at the moment and the lack of contract is only a problem if any of
170 them break down. When that happen, we can either fix it using spare
171 parts from other machines or move the service to another old
174 <p>I believe the code for screen scraping the Dell site was originally
175 written by Trond Hasle Amundsen, and later adjusted by me and Morten
176 Werner Forsbring. The HP scraping was written by me after reading a
177 nice article in ;login: about how to use WWW::Mechanize, and the IBM
178 scraping was written by me based on the Dell code. I know the HTML
179 parsing could be done using nice libraries, but did not want to
180 introduce more dependencies. This is the current incarnation:
</p>
188 sub get_support_info {
189 my ($machine, $model, $serial, $productnumber) = @_;
192 if ( $model =~ m/^Dell / ) {
193 # fetch website from Dell support
194 my $url = "http://support.euro.dell.com/support/topics/topic.aspx/emea/shared/support/my_systems_info/no/details?c=no
&cs=nodhs1
&l=no
&s=dhs
&ServiceTag=$serial";
195 my $webpage = get($url);
196 return undef unless ($webpage);
199 my @lines = split(/\n/, $webpage);
200 foreach my $line (@lines) {
201 next unless ($line =~ m/Beskrivelse/);
202 $line =~ s/
<[^
>]+
?>/;/gm;
203 $line =~ s/^.+?;(Beskrivelse;)/$
1/;
205 my @f = split(/\;/, $line);
208 while ($f[
3] eq "DELL") {
209 my ($type, $startstr, $endstr, $days) = @f[
0,
5,
7,
10];
211 my $start = POSIX::strftime("%Y-%m-%d",
212 localtime(str2time($startstr)));
213 my $end = POSIX::strftime("%Y-%m-%d",
214 localtime(str2time($endstr)));
215 $str .= "$type $start -
> $end ";
217 $lastend = $end if ($end gt $lastend);
219 my $today = POSIX::strftime("%Y-%m-%d", localtime(time));
220 tag_machine_unsupported($machine)
221 if ($lastend lt $today);
223 } elsif ( $model =~ m/^HP / ) {
224 my $mech = WWW::Mechanize-
>new();
226 'http://www1.itrc.hp.com/service/ewarranty/warrantyInput.do';
229 'BODServiceID' =
> 'NA',
230 'RegisteredPurchaseDate' =
> '',
232 'productNumber' =
> $productnumber,
233 'serialNumber1' =
> $serial,
235 $mech-
>submit_form( form_number =
> 2,
237 # Next step is screen scraping
238 my $content = $mech-
>content();
240 $content =~ s/
<[^
>]+
?>/;/gm;
241 $content =~ s/\s+/ /gm;
242 $content =~ s/;\s*;/;;/gm;
243 $content =~ s/;[\s;]+/;/gm;
245 my $today = POSIX::strftime("%Y-%m-%d", localtime(time));
247 while ($content =~ m/;Warranty Type;/) {
248 my ($type, $status, $startstr, $stopstr) = $content =~
249 m/;Warranty Type;([^;]+);.+?;Status;(\w+);Start Date;([^;]+);End Date;([^;]+);/;
250 $content =~ s/^.+?;Warranty Type;//;
251 my $start = POSIX::strftime("%Y-%m-%d",
252 localtime(str2time($startstr)));
253 my $end = POSIX::strftime("%Y-%m-%d",
254 localtime(str2time($stopstr)));
256 $str .= "$type ($status) $start -
> $end ";
258 tag_machine_unsupported($machine)
261 } elsif ( $model =~ m/^IBM / ) {
262 # This code ignore extended support contracts.
263 my ($producttype) = $model =~ m/.*-\[(.{
4}).+\]-/;
264 if ($producttype
&& $serial) {
266 get("http://www-
947.ibm.com/systems/support/supportsite.wss/warranty?action=warranty
&brandind=
5000008&Submit=Submit
&type=$producttype
&serial=$serial");
268 $content =~ s/
<[^
>]+
?>/;/gm;
269 $content =~ s/\s+/ /gm;
270 $content =~ s/;\s*;/;;/gm;
271 $content =~ s/;[\s;]+/;/gm;
273 $content =~ s/^.+?;Warranty status;//;
274 my ($status, $end) = $content =~ m/;Warranty status;([^;]+)\s*;Expiration date;(\S+) ;/;
276 $str .= "($status) -
> $end ";
278 my $today = POSIX::strftime("%Y-%m-%d", localtime(time));
279 tag_machine_unsupported($machine)
288 <p>Here are some examples on how to use the function, using fake
289 serial numbers. The information passed in as arguments are fetched
293 print get_support_info("hp.host", "HP ProLiant BL460c G1", "
1234567890"
295 print get_support_info("dell.host", "Dell Inc. PowerEdge
2950", "
1234567");
296 print get_support_info("ibm.host", "IBM eserver xSeries
345 -[
867061X]-",
300 <p>I would recommend this approach for tracking support contracts for
301 everyone with more than a few computers to administer. :)
</p>
303 <p>Update
2009-
03-
06: The IBM page do not include extended support
304 contracts, so it is useless in that case. The original Dell code do
305 not handle extended support contracts either, but has been updated to
312 Tags:
<a href=
"tags/english">english
</a>,
<a href=
"tags/nuug">nuug
</a>.
316 <div class=
"padding"></div>
319 <div class=
"title"><a href=
"Using_bar_codes_at_a_computing_center.html">Using bar codes at a computing center
</a></div>
320 <div class=
"date">2009-
02-
20 08:
50</div>
322 <p>At work with the University of Oslo, we have several hundred computers
323 in our computing center. This give us a challenge in tracking the
324 location and cabling of the computers, when they are added, moved and
325 removed. Some times the location register is not updated when a
326 computer is inserted or moved and we then have to search the room for
327 the "missing" computer.
</p>
329 <p>In the last issue of Linux Journal, I came across a project
330 <a href=
"http://www.libdmtx.org/">libdmtx
</a> to write and read bar
331 code blocks as defined in the
332 <a href=
"http://en.wikipedia.org/wiki/Data_Matrix">The Data Matrix
333 Standard
</a>. This is bar codes that can be read with a normal
334 digital camera, for example that on a cell phone, and several such bar
335 codes can be read by libdmtx from one picture. The bar code standard
336 allow up to
2 KiB to be written in the tag. There is another project
337 with
<a href=
"http://www.terryburton.co.uk/barcodewriter/">a bar code
338 writer written in postscript
</a> capable of creating such bar codes,
339 but this was the first time I found a tool to read these bar
342 <p>It occurred to me that this could be used to tag and track the
343 machines in our computing center. If both racks and computers are
344 tagged this way, we can use a picture of the rack and all its
345 computers to detect the rack location of any computer in that rack.
346 If we do this regularly for the entire room, we will find all
347 locations, and can detect movements and removals.
</p>
349 <p>I decided to test if this would work in practice, and picked a
350 random rack and tagged all the machines with their names. Next, I
351 took pictures with my digital camera, and gave the dmtxread program
352 these JPEG pictures to see how many tags it could read. This worked
353 fairly well. If the pictures was well focused and not taken from the
354 side, all tags in the image could be read. Because of limited space
355 between the racks, I was unable to get a good picture of the entire
356 rack, but could without problem read all tags from a picture covering
357 about half the rack. I had to limit the search time used by dmtxread
358 to
60000 ms to make sure it terminated in a reasonable time frame.
</p>
360 <p>My conclusion is that this could work, and we should probably look
361 at adjusting our computer tagging procedures to use bar codes for
362 easier automatic tracking of computers.
</p>
368 Tags:
<a href=
"tags/english">english
</a>,
<a href=
"tags/nuug">nuug
</a>.
372 <div class=
"padding"></div>
375 <div class=
"title"><a href=
"Kart_over_overv__kningskamera_i_Norge.html">Kart over overvåkningskamera i Norge
</a></div>
376 <div class=
"date">2009-
02-
15 22:
30</div>
379 <a href=
"http://www.personvern.no/">personvernforeningen
</a> har jeg
381 <a href=
"http://personvern.no/wiki/index.php/Kameraovervåkning">et
382 kart over overvåkningskamera i Norge
</a>. Bakgrunnen er at det etter
383 min mening bærer galt avsted med den massive overvåkningen som
384 finner sted i Norge i dag, og at flere og flere overvåkningskamera
385 gjør det vanskeligere og vanskeligere å gå igjennom livet uten at
386 små og store brødre trenger inn i ens private sfære. Datatilsynet
387 har et register over kameraovervåkning, men det viser seg å være
388 ubrukelig både til å finne ut hvor det er kamera plassert, og til å
389 sjekke om et kamera en kommer over er registrert. Dette nye kartet
390 fikser en av disse manglene, men det vil fortsatt være umulig å vite
391 om et kamera er registrert etter lovens krav eller ikke. Pr. nå er
392 22 kamera i Oslo registrert, og det trengs flere til å registrere
393 alle. Informasjonen registreres direkte inn i
<a
394 href=
"http://www.openstreetmap.org/">OpenStreetmap
</a>, sa hentes det
395 automatisk over i spesialkartet.
</p>
401 Tags:
<a href=
"tags/norsk">norsk
</a>,
<a href=
"tags/personvern">personvern
</a>.
405 <div class=
"padding"></div>
408 <div class=
"title"><a href=
"Endelig_er_Debian_Lenny_gitt_ut.html">Endelig er Debian Lenny gitt ut
</a></div>
409 <div class=
"date">2009-
02-
15 11:
50</div>
411 <p>Endelig er
<a href=
"http://www.debian.org/">Debian
</a>
412 <a href=
"http://www.debian.org/News/2009/20090214">Lenny
</a> gitt ut.
413 Et langt steg videre for Debian-prosjektet, og en rekke nye
414 programpakker blir nå tilgjengelig for de av oss som bruker den
415 stabile utgaven av Debian. Neste steg er nå å få
416 <a href=
"http://www.skolelinux.org/">Skolelinux
</a> /
417 <a href=
"http://wiki.debian.org/DebianEdu/">Debian Edu
</a> ferdig
418 oppdatert for den nye utgaven, slik at en oppdatert versjon kan
419 slippes løs på skolene. Takk til alle debian-utviklerne som har
420 gjort dette mulig. Endelig er f.eks. fungerende avhengighetsstyrt
421 bootsekvens tilgjengelig i stabil utgave, vha pakken
422 <tt>insserv
</tt>.
</p>
428 Tags:
<a href=
"tags/debian">debian
</a>,
<a href=
"tags/debian edu">debian edu
</a>,
<a href=
"tags/norsk">norsk
</a>.
432 <div class=
"padding"></div>
435 <div class=
"title"><a href=
"F__rste_vellykkede_videostr__m_fra_NUUG.html">Første vellykkede videostrøm fra NUUG
</a></div>
436 <div class=
"date">2009-
02-
11 06:
30</div>
438 <p>Jeg ble glad for å se under
439 <a href=
"http://www.nuug.no/aktiviteter/20090210-compiz/">gårdagens
440 medlemsmøte
</a> i NUUG Oslo at utsending av live-video fra møtet
441 fungerte for første gang. Forrige gang ble det ved en teknisk tabbe
442 sendt video uten lyd. Vi kan takke Ole Kristian Lien og resten av
443 videogruppen i NUUG for at nå NUUG-medlemmer over det ganske land
444 kunne se foredraget samtidig med oss i Oslo. Vi opplevde til og med
445 under møtet å motta spørsmål via IRC som ble besvart der og da.
446 Opptaket publiseres så snart det er kopiert over til NUUGs
447 webserver og komprimert.
</p>
453 Tags:
<a href=
"tags/norsk">norsk
</a>,
<a href=
"tags/nuug">nuug
</a>,
<a href=
"tags/video">video
</a>.
457 <div class=
"padding"></div>
460 <div class=
"title"><a href=
"Min_reprap_tar_sakte_form.html">Min reprap tar sakte form
</a></div>
461 <div class=
"date">2009-
02-
03 13:
30</div>
463 <p>Min reprap begynner å ta form. Den er nå kommet så langt at den er
464 blitt en kubisk ramme. Z-aksen er montert men ikke kalibrert, og det
465 hele er klart for litt enkel testing. Har møtt på to problemer som
466 blokkerer videre montering, men har oppnått kontakt med Audun Vaaler
467 ved Høgskolen i Østfold som forteller at de er nesten ferdig med et
468 tilsvarende byggesett som det jeg tar utgangspunkt i, og håper de kan
469 forklare hvordan de kom rundt problemene. De to problemene er
470 relatert til Z-aksen og Y-aksen.
</p>
472 <p>For Z-aksen, er det et stjernehjul som festes på motoraksen ved
473 tannjulet som driver z-aksebåndet og som skal holde båndet på plass.
474 Problemet med det nederste stjernejulet er at det er helt løst, og
475 blir liggende på motoren
5 mm nedenfor tannjulet, i stedet for å ligge
476 inntil tannjulet slik det skal. Mulig løsningen er å borre i
477 stjernehjulet, eller lime det fast.
</p>
479 <p>For Y-aksen, er det en plastdel som ser ut til å mangle som skulle
480 dekket to skruver som kommer i veien for kraftoverføringsmekanismen
481 fra motoren til selve aksen, slik at mekanismen kan snurre fritt.
</p>
483 <p>Når det gjelder elektronikken til min reprap, så er min gode venn
484 Anders Rosnes igang med å lodde sammen delene og han forteller at
485 koblingsbordet for Arduino er klart, og en temperatursensor og en
486 optoswitch er også klar. Gleder meg til å teste dem. Må bare finne
487 ut hvordan jeg laster opp firmware i Arduino-en. :)
</p>
489 <p>Når det gjelder NUUGs reprap-prosjekt, så er det framgang og Ole
490 Kristian, Tollef og Ketil besøke IFI for å få fortgang i produksjon av
491 plastdeler, og Ole Kristian forteller at han har funnet en kilde til
492 de fleste metalldelene. Gleder meg til å se resultaten av det
499 Tags:
<a href=
"tags/3d-printer">3d-printer
</a>,
<a href=
"tags/norsk">norsk
</a>,
<a href=
"tags/nuug">nuug
</a>,
<a href=
"tags/reprap">reprap
</a>.
503 <div class=
"padding"></div>
506 <div class=
"title"><a href=
"Norge_trenger_en_personvernforening.html">Norge trenger en personvernforening
</a></div>
507 <div class=
"date">2009-
02-
01 18:
35</div>
509 <p>De siste årene har jeg forsøkt å få liv i
510 <a href=
"http://www.personvern.no/">foreningen Personvern i Norge
</a>. Norge
511 trenger en organisasjon som jobber med å sette personvern på agendaen
512 og som kan være en motvekt til de mange som gjerne raderer bort
513 personvernet av behagelighetshensyn eller ut fra villfarelsen om at en
514 får økt sikkerhet av å redusere personvernet. Foreløbig har det ikke
515 lykkes å få på plass kritisk masse av interesserte på epostlisten, og
516 nå tror jeg det er på tide å endre tilnærming. I stedet for å forsøke
517 å rekruttere folk til epostlisten og håpe at når nok folk er samlet
518 vil noen ta initiativ og sørge for at det begynner å skje ting, så
519 tror jeg det er en ide å ta utgangspunkt i de som er der i dag og
520 sette sammen et interrimstyre. Forslaget er sendt til epostlisten, så
521 nå får vi se om noen er enig.
</p>
527 Tags:
<a href=
"tags/norsk">norsk
</a>,
<a href=
"tags/personvern">personvern
</a>.
531 <div class=
"padding"></div>
533 <p style=
"text-align: right;"><a href=
"index.rss"><img src=
"xml.gif" alt=
"RSS feed" width=
"36" height=
"14"></a></p>
547 <li><a href=
"archive/2009/01/">January (
8)
</a></li>
549 <li><a href=
"archive/2009/02/">February (
8)
</a></li>
551 <li><a href=
"archive/2009/03/">March (
3)
</a></li>
558 <li><a href=
"archive/2008/11/">November (
5)
</a></li>
560 <li><a href=
"archive/2008/12/">December (
7)
</a></li>
571 <li><a href=
"tags/3d-printer">3d-printer (
7)
</a></li>
573 <li><a href=
"tags/amiga">amiga (
1)
</a></li>
575 <li><a href=
"tags/aros">aros (
1)
</a></li>
577 <li><a href=
"tags/debian">debian (
3)
</a></li>
579 <li><a href=
"tags/debian edu">debian edu (
4)
</a></li>
581 <li><a href=
"tags/english">english (
6)
</a></li>
583 <li><a href=
"tags/fiksgatami">fiksgatami (
1)
</a></li>
585 <li><a href=
"tags/ltsp">ltsp (
1)
</a></li>
587 <li><a href=
"tags/multimedia">multimedia (
2)
</a></li>
589 <li><a href=
"tags/norsk">norsk (
25)
</a></li>
591 <li><a href=
"tags/nuug">nuug (
23)
</a></li>
593 <li><a href=
"tags/personvern">personvern (
3)
</a></li>
595 <li><a href=
"tags/reprap">reprap (
7)
</a></li>
597 <li><a href=
"tags/rss">rss (
1)
</a></li>
599 <li><a href=
"tags/stavekontroll">stavekontroll (
1)
</a></li>
601 <li><a href=
"tags/video">video (
5)
</a></li>
603 <li><a href=
"tags/web">web (
2)
</a></li>
609 <p style=
"text-align: right">
610 Created by
<a href=
"http://steve.org.uk/Software/chronicle">Chronicle v3.5
</a>