]> pere.pagekite.me Git - homepage.git/blobdiff - blog/index.html
Minor updates.
[homepage.git] / blog / index.html
index a6bb305bbdface7785fdc49c9a5fac10418ed61c..50e6eeabb442ade38631bb55a7ffb76363d3498f 100644 (file)
 
 
  
+ <div class="entry">
+  <div class="title"><a href="Returning_from_Skolelinux_developer_gathering.html">Returning from Skolelinux developer gathering</a></div>
+  <div class="date">2009-03-29 21:00</div>
+  <div class="body">
+<p>I'm sitting on the train going home from this weekends Debian
+Edu/Skolelinux development gathering.  I got a bit done tuning the
+desktop, and looked into the dynamic service location protocol
+implementation avahi.  It look like it could be useful for us.  Almost
+30 people participated, and I believe it was a great environment to
+get to know the Skolelinux system.  Walter Bender, involved in the
+development of the Sugar educational platform, presented his stuff and
+also helped me improve my OLPC installation.  He also showed me that
+his Turtle Art application can be used in standalone mode, and we
+agreed that I would help getting it packaged for Debian.  As a
+standalone application it would be great for Debian Edu.  We also
+tried to get the video conferencing working with two OLPCs, but that
+proved to be too hard for us.  The application seem to need more work
+before it is ready for me.  I look forward to getting home and relax
+now. :)</p>
+</div>
+  <div class="tags">
+   
+
+   
+   Tags: <a href="tags/debian">debian</a>, <a href="tags/debian edu">debian edu</a>, <a href="tags/english">english</a>, <a href="tags/nuug">nuug</a>. 
+  
+  </div>
+ </div>
+ <div class="padding"></div>
+ <div class="entry">
+  <div class="title"><a href="Time_for_new__LDAP_schemas_replacing_RFC_2307_.html">Time for new  LDAP schemas replacing RFC 2307?</a></div>
+  <div class="date">2009-03-29 20:30</div>
+  <div class="body">
+<p>The state of standardized LDAP schemas on Linux is far from
+optimal.  There is RFC 2307 documenting one way to store NIS maps in
+LDAP, and a modified version of this normally called RFC 2307bis, with
+some modifications to be compatible with Active Directory.  The RFC
+specification handle the content of a lot of system databases, but do
+not handle DNS zones and DHCP configuration.</p>
+
+<p>In <a href="http://www.skolelinux.org/">Debian Edu/Skolelinux</a>,
+we would like to store information about users, SMB clients/hosts,
+filegroups, netgroups (users and hosts), DHCP and DNS configuration,
+and LTSP configuration in LDAP.  These objects have a lot in common,
+but with the current LDAP schemas it is not possible to have one
+object per entity.  For example, one need to have at least three LDAP
+objects for a given computer, one with the SMB related stuff, one with
+DNS information and another with DHCP information.  The schemas
+provided for DNS and DHCP are impossible to combine into one LDAP
+object.  In addition, it is impossible to implement quick queries for
+netgroup membership, because of the way NIS triples are implemented.
+It just do not scale.  I believe it is time for a few RFC
+specifications to cleam up this mess.</p>
+
+<p>I would like to have one LDAP object representing each computer in
+the network, and this object can then keep the SMB (ie host key), DHCP
+(mac address/name) and DNS (name/IP address) settings in one place.
+It need to be efficently stored to make sure it scale well.</p>
+
+<p>I would also like to have a quick way to map from a user or
+computer and to the net group this user or computer is a member.</p>
+
+<p>Active Directory have done a better job than unix heads like myself
+in this regard, and the unix side need to catch up.  Time to start a
+new IETF work group?</p>
+</div>
+  <div class="tags">
+   
+
+   
+   Tags: <a href="tags/debian">debian</a>, <a href="tags/debian edu">debian edu</a>, <a href="tags/english">english</a>, <a href="tags/nuug">nuug</a>. 
+  
+  </div>
+ </div>
+ <div class="padding"></div>
+ <div class="entry">
+  <div class="title"><a href="Hva_er_egentlig_en___pen_standard_.html">Hva er egentlig en åpen standard?</a></div>
+  <div class="date">2009-03-28 10:50</div>
+  <div class="body">
+<p>Jeg møter alle slags interessante mennesker på min vei, og et møte
+jeg lærte mye av var å treffe på en svært kompetent IT-fyr som
+benektet ting jeg anser som åpenbart og selvfølgelig når det gjelder
+standarder.  Det var interessant, da det fikk meg til å tenke litt
+nøyere på hvilke mekanismer som ligger til grunn for at noe oppfattes
+som en standard.  Det hele startet med arbeid rundt integrering av NSS
+LDAP mot Active Directory, og problemer som oppstår pga. at Active
+Directory ikke følger LDAP-spesifikasjonen som dokumentert i RFCer fra
+IETF (konkret, AD returnerer kun et subset av attributter hvis det er
+mer enn 1500 atributter av en gitt type i et LDAP-objekt, og en må be
+om resten i bolker av 1500).  Jeg hevdet måten dette ble gjort på brøt
+med LDAP-spesifikasjonen, og henviste til hvor i LDAP-spesifikasjonen
+fra IETF det sto at oppførselen til AD ikke fulgte
+LDAP-spesifikasjonen.  AD-spesialisten overrasket meg da ved å
+fortelle at IETF var ikke de som definerte LDAP-spesifikasjonen, og at
+Active Directory ikke brøt den virkelige LDAP-spesifikasjonen som han
+mente lå til grunn.  Jeg ble spesielt overrasket over denne
+tilnærmingen til problemstillingen, da til og med Microsoft så vidt
+jeg kan se anerkjenner IETF som organisasjonen som definerer
+LDAP-spesifikasjonen.  Jeg fikk aldri spurt hvem han mente sto bak den
+egentlige LDAP-spesifikasjonen, da det var irrelevant for problemet vi
+måtte løse (få Linux og AD til å fungere sammen).  Dette møtet
+fortalte meg uansett at det ikke er gitt at alle aktører er enige om
+hva en standard er, og hva som er kilden til en gitt standard.  Det er
+vanskelig å enes om felles standarder før en først enes om hvem som
+bestemmer hva en gitt standard innebærer.</p>
+
+<p>Hva er så en standard?  I sin abstrakte form er det noe å samles
+om.  På engelsk er en av betydningene fane brukt i krig, du vet, den
+type fane en samlet seg rundt på kamplassen i riddertiden.  En
+standard definerer altså et felleskap, noen som har noe felles.  Det
+er naturligvis mange måter å utgjøre et felleskap på.  En kan
+f.eks. enes om å gjøre alt slik som Ole gjør det, og dermed si at Oles
+oppførsel er standard.  Hver gang Ole endrer oppførsel endrer også
+standarden seg uten noe mer organisering og prosedyre.  En variant av
+dette er å gjøre slik som Ole har gjort det i stedet for slik Ole til
+enhver til gjør noe.  Dette er ofte litt enklere å forholde seg til,
+da en slipper å sjekke med Ole hver gang for å vite hvordan ting skal
+gjøres nå, men hvis det Ole gjorde noe dumt den gang en bestemte seg
+for å følge Ole, så er det vanskeligere å få endret oppførsel for å
+unngå dette dumme.</p>
+
+<p>En kan også ta det et skritt videre, og istedet for å basere seg på
+enkeltpersoners oppførsel sette seg ned og bli enige om hvordan en
+skal gjøre ting, dvs. lage et felleskap basert på konsensus.  Dette
+tar naturligvis litt mer tid (en må diskutere ting i forkant før en
+kan sette igang), men det kan bidra til at den oppførselen en
+planlegger å benytte seg av er mer gjennomtenkt.  Det ender også
+typisk opp med en beskrivelse av ønsket oppførsel som flere kan forstå
+- da flere har vært involvert i å utarbeide beskrivelsen.</p>
+
+<p>Dette er dessverre ikke alt som trengs for å forstå hva en åpen
+standard er for noe.  Der alle kan se på hvordan folk oppfører seg, og
+dermed har valget om de vil oppføre seg likt eller ikke, så er det
+endel juridiske faktorer som gjør det hele mer komplisert -
+opphavsretten og patentlovgivningen for å være helt konkret.  For å gi
+et eksempel. Hvis noen blir enige om å alltid plystre en bestemt
+melodi når de møtes, for å identifisere hverandre, så kan
+opphavsretten brukes til å styre hvem som får lov til å gjøre dette.
+De har standardisert hvordan de kjenner igjen alle som følger denne
+standarden, men ikke alle har nødvendigvis lov til å følge den.
+Musikk er opphavsrettsbeskyttet, og fremføring av musikk i
+offentligheten er opphavsmannens enerett (dvs. et monopol).  Det vil i
+sin ytterste konsekvens si at alle som skal plystre en
+opphavsrettsbeskyttet melodi i det offentlige rom må ha godkjenning
+fra opphavsmannen.  Har en ikke dette, så bryter en loven og kan
+straffes.  Det er dermed mulig for opphavsmannen å kontrollere hvem
+som får lov til å benytte seg av denne standarden.  En annen variant
+er hvis en standard er dokumentert, så er dokumentet som definerer
+standarden (spesifikasjonen) beskyttet av opphavsretten, og det er
+dermed mulig for rettighetsinnehaver å begrense tilgang til
+spesifikasjonen, og slik styre hvem som kan ta i bruk standarden på
+den måten.</p>
+
+<p>Der opphavsretten innvilger et monopol på kunstneriske uttrykk med
+verkshøyde, innvilger patentlovgivningen monopol på ideer.  Hvis en
+slik patentert idé (fortrinnsvis uttrykt i en teknisk innretning, men
+det er kompliserende faktorer som gjør at det ikke er et krav) trengs
+for å ta i bruk en standard, så vil den som innehar patent kunne styre
+hvem som får ta i bruk standarden.  Det er dermed ikke gitt at alle
+kan delta i et standard-felleskap, og hvis de kan delta, så er det
+ikke sikkert at det er på like vilkår.  F.eks. kan rettighetsinnehaver
+sette vilkår som gjør at noen faller utenfor, det være seg av
+finansielle, avtalemessige eller prinsipielle årsaker.  Vanlige slike
+vilkår er "må betale litt for hver kunde/bruker" som utelukker de som
+gir bort en løsning gratis og "må gi fra seg retten til å håndheve
+sine egne patentrettigheter ovenfor rettighetshaver" som utelukker
+alle som ønsker å beholde den muligheten.</p>
+
+<p>En åpen standard innebærer for meg at alle kan få innsikt i en
+komplett beskrivelse av oppførsel som standarden skal dekke, og at
+ingen kan nektes å benytte seg av standarden.  Noen mener at det
+holder at alle med tilstrekkelig finansiering kan få tilgang til
+spesifikasjonen og at en kun har finansielle krav til bruk.
+Pga. denne konflikten har et nytt begrep spredt seg de siste årene,
+nemlig fri og åpen standard, der en har gjort det klart at alle må ha
+komplett og lik tilgang til spesifikasjoner og retten til å gjøre bruk
+av en standard for at en standard skal kunne kalles fri og åpen.</p>
+</div>
+  <div class="tags">
+   
+
+   
+   Tags: <a href="tags/norsk">norsk</a>, <a href="tags/nuug">nuug</a>, <a href="tags/standard">standard</a>. 
+  
+  </div>
+ </div>
+ <div class="padding"></div>
+ <div class="entry">
+  <div class="title"><a href="Vitenskapens_dogmer___.html">Vitenskapens dogmer...</a></div>
+  <div class="date">2009-03-27 11:30</div>
+  <div class="body">
+<p>Handspåleggere og andre tilhengere av ikke-etterprøvbar medisin,
+samt de som mener at verden ikke utviklet seg i henhold til
+evolusjonsteorien, hevder ofte at vitenskapen er dogmatisk og at
+vitenskapsfolk velger å ignorere alt vitenskapsfolk ikke kan
+forklare.  Intet kunne være lenger fra sannheten.  En interessant
+observasjon dog, er hvilke "dogmer" som ligger til grunn for
+vitenskapen.  Her er et forsøk på å nevne noen av de grunnleggende
+antagelsene som legges til grunn.</p>
+
+<p>Først og fremst ligger det til grunn en tro om at verden,
+verdensrommet og universet har de samme egenskapene overalt.  Dvs. at
+en ikke tror at virkeligheten oppfører seg forskjellig f.eks. på
+jorden og i verdensrommet.  Dette er ingen selvfølgelig antagelse, da
+f.eks. de gamle grekerne antok at virkeligheten var forskjellig på
+jorden og i himmelen.  Antagelsen om at virkeligheten oppfører seg
+etter de samme "reglene" overalt skjøt først fart etter
+middelalderen.</p>
+
+<p>Når en så har begynt å tro at virkeligheten oppfører seg likt
+overalt, så kan en begynne å tro at det er mulig å observere
+virkeligheten, og ut fra observasjoner kunne finne en forklaring, et
+sett med "regler", som kan brukes til å forutse hva som kommer til å
+skje i fremtiden basert på observasjoner gjort i fortiden.  Eksempler
+på dette er at en kan beregne hvor lang tid en sten som er sluppet
+ned fra et hus vil bruke før den treffer bakken (og ikke tror at den
+i noen tilfeller vil fly oppover i stedet for nedover).  En kan altså
+lage en mental modell over sammenhenger i virkeligheten, og bruke
+denne modellen til å, enten ved hjelp av logiske argumentasjonsrekker
+eller matematiske beregninger, forklare hva som kommer til å skje.
+Hvis modellen viser seg å fungere bra for observasjoner i dag, så
+kan en på tilsvarende vis beregne eller logisk sette sammen hva som
+har foregått i fortiden som ledet frem til det vi kan observere i
+dag.</p>
+
+<p>Sist, men ikke minst, så tror vitenskapsfolk på at det er mulig
+å observere virkeligheten, og å tro på disse observasjonene
+(innenfor rimelig feilmargin som følger av måten observasjonen er
+gjort på).  En tror altså ikke på at noen bakenfor virkeligheten
+forsøker å lure oss til å observere noe som ikke eksisterer.  Det
+er naturligvis umulig (eller kanskje til nød svært vanskelig) å
+motbevise at vi lever i Matrix-aktige omgivelser, der vi observerer
+noe som eksisterer kun som en simulering i datamaskiner.  Det at noe
+er umulig å motbevise gjør dog ikke at det blir spesielt interessant
+å ta utgangspunkt i.  Det er antagelig ikke grenser for hvor mange
+måter det er mulig å tenke seg at vi blir lurt til å oppleve en
+virkelighet som "egentlig" ikke eksisterer, men i og med at den
+eksisterer for oss, så er det i hovedsak et filosofisk spørsmål om
+hva det betyr å eksistere.  Det er ikke spesielt relevant for
+vitenskapen, som altså tar utgangspunkt i at den virkeligheten vi
+observerer eksisterer, virker likt overalt, og kan forstås med logikk
+og matematikk.</p>
+
+<p>Det kan virke som om de som hevder at vitenskapen er ute av stand
+til å ta inn over seg Snåsamannens evner, homeopatiske
+forklaringsmodeller og en skapende gud, ikke tror på det samme som
+vitenskapsfolk.  De kan ikke tro at den virkeligheten vi observerer
+eksisterer, virker likt overalt, og kan forstås med logikk og
+matematikk.  Mitt problem med å tro på på det samme, er at hvis
+disse forutsetningene ikke ligger til grunn, så er det ingen grenser
+for hva en kan komme opp med av ideer til hvordan virkeligheten
+fungerer.  Både Harry Potters magi, kreasjonistenes allmektige
+skaper, det flygende spagettimonsteret, Snåsamannens helbredelser,
+Haitis voodo, samenes ganding og middelalderens hekserier blir like
+gyldige.  Jeg tror ikke noen av disse er spesielt sannsynlige, og
+velger derfor å ta utgangspunkt i vitenskapens rammer for hvordan
+virkeligheten skal forstås.  For å sitere en reklamekampanje fra
+England: Vitenskap sender deg til månen.  Religion sender deg inn i
+skyskrapere.  Takke meg til en tur til månen.</p>
+</div>
+  <div class="tags">
+   
+
+   
+   Tags: <a href="tags/norsk">norsk</a>, <a href="tags/vitenskap">vitenskap</a>. 
+  
+  </div>
+ </div>
+ <div class="padding"></div>
+ <div class="entry">
+  <div class="title"><a href="F__rste_reprap_integreringsfors__k___Z_aksen_beveger_seg.html">Første reprap-integreringsforsøk - Z-aksen beveger seg</a></div>
+  <div class="date">2009-03-19 22:15</div>
+  <div class="body">
+<p>I går tok jeg mot til meg, og løste problemet med
+z-aksen ved å borre i delen som manglet feste mot tannjulet som
+skal drive z-aksereimen.  Dermed var det klart for å montere
+z-akse-akslingen på motoren og komme et steg videre med
+reprap-monteringen.  Prøvekjørte den i dag med
+testprogrammet til stepmotoren, og kunne glad konstatere at det hele
+fungerte.  I hvert fall når stepmotoren ikke forsøkte
+å snurre for raskt rundt.  Ved høy hastighet roterte
+ikke akslingen i det hele tatt.  Motoren ble bare stående
+å vibrere.  Usikker på hvorfor, men antar motoren ikke
+har nok kraft til å få hele akslingen til å
+rotere så raskt.  Denne øvelsen avslørte dog et
+annet problem med monteringen så langt.  Under testingen
+begynte skruer og muttere å ry ned fra ulike deler av
+reprap-konstruksjonen.  Jeg har ikke skrudd alt hard nok sammen til
+å tåle slike vibrasjoner.  Tror en 5-6 skruver og/eller
+muttere løsnet.  Brukte ganske lang tid på å
+finne ut hvor det manglet deler og skru ting sammen igjen.  Antar alt
+må strammes skikkelig til før første
+utskrift.</p>
+
+<p>Neste steg er å få laget z-aksebåndet.  Der trenger jeg
+egnet lim og en konstruksjon for å klemme bandet sammen under
+limingen, som
+<a href="http://reprap.org/bin/view/Main/AssemblingDarwinMachinery#Z_belt">beskrevet
+på reprap-wikien</a>.  Er blitt tipset om svart superlim som er
+elastisk også etter at det tørket, og dro ned til Small Size
+Hobbyland på Lilletorget som skulle ha slikt, men da jeg var innom
+fikk jeg høre at de ikke lenger hadde slikt lim.  Må finne ut
+hvor i Oslo jeg kan skaffe slikt.  Kanskje Panduro har?  Vet ikke hva
+limet egentlig heter, så det er vanskelig å søke på nett.</p>
+</div>
+  <div class="tags">
+   
+
+   
+   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>. 
+  
+  </div>
+ </div>
+ <div class="padding"></div>
+ <div class="entry">
+  <div class="title"><a href="Avisene_i_endring.html">Avisene i endring</a></div>
+  <div class="date">2009-03-15 22:15</div>
+  <div class="body">
+<p>Jeg kom over bloggposten
+"<a href="http://www.shirky.com/weblog/2009/03/newspapers-and-thinking-the-unthinkable/">Newspapers
+and Thinking the Unthinkable</a>" som jeg synes forklarer godt hva som
+skjer med aviser, og fikk meg til å tenke litt rundt andre utdøende
+forretningsmodeller basert på å løse problemer som ikke lenger
+eksisterer.  Det blir spennende å se hva vi ender opp med.</p>
+</div>
+  <div class="tags">
+   
+
+   
+   Tags: <a href="tags/norsk">norsk</a>, <a href="tags/nuug">nuug</a>. 
+  
+  </div>
+ </div>
+ <div class="padding"></div>
  <div class="entry">
   <div class="title"><a href="En_skam_at_det_ikke_finnes_ordrett_referat_fra_norske_domstoler.html">En skam at det ikke finnes ordrett referat fra norske domstoler</a></div>
   <div class="date">2009-03-13 18:00</div>
@@ -176,365 +516,6 @@ i denne sammenhengen.</p>
    
 
    
-   Tags: <a href="tags/norsk">norsk</a>, <a href="tags/nuug">nuug</a>, <a href="tags/video">video</a>. 
-  
-  </div>
- </div>
- <div class="padding"></div>
- <div class="entry">
-  <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>
-  <div class="date">2009-03-05 22:30</div>
-  <div class="body">
-<p>Etter lang tids jobbing begynner endelig programmet til det
-tekniske sporet på konferansen <a href="http://www.goopen.no/">Go Open
-2009</a> å bli ferdig.  Det blir 9 punkter på programmet, og etter alt
-å dømme blir det disse 9:</p>
-
-<ul>
-
-<li>"Open Telephony: A solution greater than the sum of its parts" med
-  Jon "maddog" Hall</li>
-<li>OpenSolaris-relatert med Ian Murdock fra SUN</li>
-<li>"The inner workings of the OpenStreetmap project and the
-  technology used" med Andy Allan </li>
-<li>Coreboot-relatert med Peter Stuge</li>
-<li>"Gratis værdata fra Meteorologisk institutt" med Trond Michelsen</li>
-<li>RRDtool/Nagios-relatert med Tobias Oetiker</li>
-<li>"Developers guide to server-side productivity and fun using open
-  source platforms and frameworks" med en gjeng folk fra
-  JavaBin-miljøet</li>
-<li>"G(et)it Nå!" med Marcus Ramberg</li>
-<li>Om kontrolltelling av valgresultater med fri programvare med Mitch
-  Trachtenberg</li>
-
-</ul>
-
-<p>De siste bekreftelsene og overskrifter mangler og kommer
-forhåpentlig på plass før mandag, men jeg håper dette blir et program
-flere enn meg vil sette pris på.  Jeg gleder meg i hvert fall
-stort.</p>
-</div>
-  <div class="tags">
-   
-
-   
-   Tags: <a href="tags/norsk">norsk</a>, <a href="tags/nuug">nuug</a>. 
-  
-  </div>
- </div>
- <div class="padding"></div>
- <div class="entry">
-  <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>
-  <div class="date">2009-02-28 23:50</div>
-  <div class="body">
-<p>At work, we have a few hundred Linux servers, and with that amount
-of hardware it is important to keep track of when the hardware support
-contract expire for each server.  We have a machine (and service)
-register, which until recently did not contain much useful besides the
-machine room location and contact information for the system owner for
-each machine.  To make it easier for us to track support contract
-status, I've recently spent time on extending the machine register to
-include information about when the support contract expire, and to tag
-machines with expired contracts to make it easy to get a list of such
-machines.  I extended a perl script already being used to import
-information about machines into the register, to also do some screen
-scraping off the sites of Dell, HP and IBM (our majority of machines
-are from these vendors), and automatically check the support status
-for the relevant machines.  This make the support status information
-easily available and I hope it will make it easier for the computer
-owner to know when to get new hardware or renew the support contract.
-The result of this work documented that 27% of the machines in the
-registry is without a support contract, and made it very easy to find
-them.  27% might seem like a lot, but I see it more as the case of us
-using machines a bit longer than the 3 years a normal support contract
-last, to have test machines and a platform for less important
-services.  After all, the machines without a contract are working fine
-at the moment and the lack of contract is only a problem if any of
-them break down.  When that happen, we can either fix it using spare
-parts from other machines or move the service to another old
-machine.</p>
-
-<p>I believe the code for screen scraping the Dell site was originally
-written by Trond Hasle Amundsen, and later adjusted by me and Morten
-Werner Forsbring.  The HP scraping was written by me after reading a
-nice article in ;login: about how to use WWW::Mechanize, and the IBM
-scraping was written by me based on the Dell code.  I know the HTML
-parsing could be done using nice libraries, but did not want to
-introduce more dependencies.  This is the current incarnation:</p>
-
-<pre>
-use LWP::Simple;
-use POSIX;
-use WWW::Mechanize;
-use Date::Parse;
-[...]
-sub get_support_info {
-    my ($machine, $model, $serial, $productnumber) = @_;
-    my $str;
-
-    if ( $model =~ m/^Dell / ) {
-        # fetch website from Dell support
-        my $url = "http://support.euro.dell.com/support/topics/topic.aspx/emea/shared/support/my_systems_info/no/details?c=no&amp;cs=nodhs1&amp;l=no&amp;s=dhs&amp;ServiceTag=$serial";
-        my $webpage = get($url);
-        return undef unless ($webpage);
-
-        my $daysleft = -1;
-        my @lines = split(/\n/, $webpage);
-        foreach my $line (@lines) {
-            next unless ($line =~ m/Beskrivelse/);
-            $line =~ s/&lt;[^>]+?>/;/gm;
-            $line =~ s/^.+?;(Beskrivelse;)/$1/;
-
-            my @f = split(/\;/, $line);
-            @f = @f[13 .. $#f];
-            my $lastend = "";
-            while ($f[3] eq "DELL") {
-                my ($type, $startstr, $endstr, $days) = @f[0, 5, 7, 10];
-
-                my $start = POSIX::strftime("%Y-%m-%d",
-                                            localtime(str2time($startstr)));
-                my $end = POSIX::strftime("%Y-%m-%d",
-                                          localtime(str2time($endstr)));
-                $str .= "$type $start -> $end ";
-                @f = @f[14 .. $#f];
-                $lastend = $end if ($end gt $lastend);
-            }
-            my $today = POSIX::strftime("%Y-%m-%d", localtime(time));
-            tag_machine_unsupported($machine)
-                if ($lastend lt $today);
-        }
-    } elsif ( $model =~ m/^HP / ) {
-        my $mech = WWW::Mechanize->new();
-        my $url =
-            'http://www1.itrc.hp.com/service/ewarranty/warrantyInput.do';
-        $mech->get($url);
-        my $fields = {
-            'BODServiceID' => 'NA',
-            'RegisteredPurchaseDate' => '',
-            'country' => 'NO',
-            'productNumber' => $productnumber,
-            'serialNumber1' => $serial,
-        };
-        $mech->submit_form( form_number => 2,
-                            fields      => $fields );
-        # Next step is screen scraping
-        my $content = $mech->content();
-
-        $content =~ s/&lt;[^>]+?>/;/gm;
-        $content =~ s/\s+/ /gm;
-        $content =~ s/;\s*;/;;/gm;
-        $content =~ s/;[\s;]+/;/gm;
-
-        my $today = POSIX::strftime("%Y-%m-%d", localtime(time));
-
-        while ($content =~ m/;Warranty Type;/) {
-            my ($type, $status, $startstr, $stopstr) = $content =~
-                m/;Warranty Type;([^;]+);.+?;Status;(\w+);Start Date;([^;]+);End Date;([^;]+);/;
-            $content =~ s/^.+?;Warranty Type;//;
-            my $start = POSIX::strftime("%Y-%m-%d",
-                                        localtime(str2time($startstr)));
-            my $end = POSIX::strftime("%Y-%m-%d",
-                                      localtime(str2time($stopstr)));
-
-            $str .= "$type ($status) $start -> $end ";
-
-            tag_machine_unsupported($machine)
-                if ($end lt $today);
-        }
-    } elsif ( $model =~ m/^IBM / ) {
-        # This code ignore extended support contracts.
-        my ($producttype) = $model =~ m/.*-\[(.{4}).+\]-/;
-        if ($producttype &amp;&amp; $serial) {
-            my $content =
-                get("http://www-947.ibm.com/systems/support/supportsite.wss/warranty?action=warranty&amp;brandind=5000008&amp;Submit=Submit&amp;type=$producttype&amp;serial=$serial");
-            if ($content) {
-                $content =~ s/&lt;[^>]+?>/;/gm;
-                $content =~ s/\s+/ /gm;
-                $content =~ s/;\s*;/;;/gm;
-                $content =~ s/;[\s;]+/;/gm;
-
-                $content =~ s/^.+?;Warranty status;//;
-                my ($status, $end) = $content =~ m/;Warranty status;([^;]+)\s*;Expiration date;(\S+) ;/;
-
-                $str .= "($status) -> $end ";
-
-                my $today = POSIX::strftime("%Y-%m-%d", localtime(time));
-                tag_machine_unsupported($machine)
-                    if ($end lt $today);
-            }
-        }
-    }
-    return $str;
-}
-</pre>
-
-<p>Here are some examples on how to use the function, using fake
-serial numbers.  The information passed in as arguments are fetched
-from dmidecode.</p>
-
-<pre>
-print get_support_info("hp.host", "HP ProLiant BL460c G1", "1234567890"
-                       "447707-B21");
-print get_support_info("dell.host", "Dell Inc. PowerEdge 2950", "1234567");
-print get_support_info("ibm.host", "IBM eserver xSeries 345 -[867061X]-",
-                       "1234567");
-</pre>
-
-<p>I would recommend this approach for tracking support contracts for
-everyone with more than a few computers to administer. :)</p>
-
-<p>Update 2009-03-06: The IBM page do not include extended support
-contracts, so it is useless in that case.  The original Dell code do
-not handle extended support contracts either, but has been updated to
-do so.</p>
-</div>
-  <div class="tags">
-   
-
-   
-   Tags: <a href="tags/english">english</a>, <a href="tags/nuug">nuug</a>. 
-  
-  </div>
- </div>
- <div class="padding"></div>
- <div class="entry">
-  <div class="title"><a href="Using_bar_codes_at_a_computing_center.html">Using bar codes at a computing center</a></div>
-  <div class="date">2009-02-20 08:50</div>
-  <div class="body">
-<p>At work with the University of Oslo, we have several hundred computers
-in our computing center.  This give us a challenge in tracking the
-location and cabling of the computers, when they are added, moved and
-removed.  Some times the location register is not updated when a
-computer is inserted or moved and we then have to search the room for
-the "missing" computer.</p>
-
-<p>In the last issue of Linux Journal, I came across a project
-<a href="http://www.libdmtx.org/">libdmtx</a> to write and read bar
-code blocks as defined in the
-<a href="http://en.wikipedia.org/wiki/Data_Matrix">The Data Matrix
-Standard</a>.  This is bar codes that can be read with a normal
-digital camera, for example that on a cell phone, and several such bar
-codes can be read by libdmtx from one picture.  The bar code standard
-allow up to 2 KiB to be written in the tag.  There is another project
-with <a href="http://www.terryburton.co.uk/barcodewriter/">a bar code
-writer written in postscript</a> capable of creating such bar codes,
-but this was the first time I found a tool to read these bar
-codes.</p>
-
-<p>It occurred to me that this could be used to tag and track the
-machines in our computing center.  If both racks and computers are
-tagged this way, we can use a picture of the rack and all its
-computers to detect the rack location of any computer in that rack.
-If we do this regularly for the entire room, we will find all
-locations, and can detect movements and removals.</p>
-
-<p>I decided to test if this would work in practice, and picked a
-random rack and tagged all the machines with their names.  Next, I
-took pictures with my digital camera, and gave the dmtxread program
-these JPEG pictures to see how many tags it could read.  This worked
-fairly well.  If the pictures was well focused and not taken from the
-side, all tags in the image could be read.  Because of limited space
-between the racks, I was unable to get a good picture of the entire
-rack, but could without problem read all tags from a picture covering
-about half the rack.  I had to limit the search time used by dmtxread
-to 60000 ms to make sure it terminated in a reasonable time frame.</p>
-
-<p>My conclusion is that this could work, and we should probably look
-at adjusting our computer tagging procedures to use bar codes for
-easier automatic tracking of computers.</p>
-</div>
-  <div class="tags">
-   
-
-   
-   Tags: <a href="tags/english">english</a>, <a href="tags/nuug">nuug</a>. 
-  
-  </div>
- </div>
- <div class="padding"></div>
- <div class="entry">
-  <div class="title"><a href="Kart_over_overv__kningskamera_i_Norge.html">Kart over overvåkningskamera i Norge</a></div>
-  <div class="date">2009-02-15 22:30</div>
-  <div class="body">
-<p>I regi av
-<a href="http://www.personvern.no/">personvernforeningen</a> har jeg
-startet på
-<a href="http://personvern.no/wiki/index.php/Kameraovervåkning">et
-kart over overvåkningskamera i Norge</a>.  Bakgrunnen er at det etter
-min mening bærer galt avsted med den massive overvåkningen som
-finner sted i Norge i dag, og at flere og flere overvåkningskamera
-gjør det vanskeligere og vanskeligere å gå igjennom livet uten at
-små og store brødre trenger inn i ens private sfære.  Datatilsynet
-har et register over kameraovervåkning, men det viser seg å være
-ubrukelig både til å finne ut hvor det er kamera plassert, og til å
-sjekke om et kamera en kommer over er registrert.  Dette nye kartet
-fikser en av disse manglene, men det vil fortsatt være umulig å vite
-om et kamera er registrert etter lovens krav eller ikke.  Pr. nå er
-22 kamera i Oslo registrert, og det trengs flere til å registrere
-alle.  Informasjonen registreres direkte inn i <a
-href="http://www.openstreetmap.org/">OpenStreetmap</a>, sa hentes det
-automatisk over i spesialkartet.</p>
-</div>
-  <div class="tags">
-   
-
-   
-   Tags: <a href="tags/norsk">norsk</a>, <a href="tags/personvern">personvern</a>. 
-  
-  </div>
- </div>
- <div class="padding"></div>
- <div class="entry">
-  <div class="title"><a href="Endelig_er_Debian_Lenny_gitt_ut.html">Endelig er Debian Lenny gitt ut</a></div>
-  <div class="date">2009-02-15 11:50</div>
-  <div class="body">
-<p>Endelig er <a href="http://www.debian.org/">Debian</a>
-<a href="http://www.debian.org/News/2009/20090214">Lenny</a> gitt ut.
-Et langt steg videre for Debian-prosjektet, og en rekke nye
-programpakker blir nå tilgjengelig for de av oss som bruker den
-stabile utgaven av Debian.  Neste steg er nå å få
-<a href="http://www.skolelinux.org/">Skolelinux</a> /
-<a href="http://wiki.debian.org/DebianEdu/">Debian Edu</a> ferdig
-oppdatert for den nye utgaven, slik at en oppdatert versjon kan
-slippes løs på skolene.  Takk til alle debian-utviklerne som har
-gjort dette mulig.  Endelig er f.eks. fungerende avhengighetsstyrt
-bootsekvens tilgjengelig i stabil utgave, vha pakken
-<tt>insserv</tt>.</p>
-</div>
-  <div class="tags">
-   
-
-   
-   Tags: <a href="tags/debian">debian</a>, <a href="tags/debian edu">debian edu</a>, <a href="tags/norsk">norsk</a>. 
-  
-  </div>
- </div>
- <div class="padding"></div>
- <div class="entry">
-  <div class="title"><a href="F__rste_vellykkede_videostr__m_fra_NUUG.html">Første vellykkede videostrøm fra NUUG</a></div>
-  <div class="date">2009-02-11 06:30</div>
-  <div class="body">
-<p>Jeg ble glad for å se under
-<a href="http://www.nuug.no/aktiviteter/20090210-compiz/">gårdagens
-medlemsmøte</a> i NUUG Oslo at utsending av live-video fra møtet
-fungerte for første gang.  Forrige gang ble det ved en teknisk tabbe
-sendt video uten lyd.  Vi kan takke Ole Kristian Lien og resten av
-videogruppen i NUUG for at nå NUUG-medlemmer over det ganske land 
-kunne se foredraget samtidig med oss i Oslo.  Vi opplevde til og med
-under møtet å motta spørsmål via IRC som ble besvart der og da.
-Opptaket publiseres så snart det er kopiert over til NUUGs
-webserver og komprimert.</p>
-</div>
-  <div class="tags">
-   
-
-   
    Tags: <a href="tags/norsk">norsk</a>, <a href="tags/nuug">nuug</a>, <a href="tags/video">video</a>. 
   
   </div>
@@ -559,7 +540,7 @@ webserver og komprimert.</p>
 
 <li><a href="archive/2009/02/">February (8)</a></li>
 
-<li><a href="archive/2009/03/">March (5)</a></li>
+<li><a href="archive/2009/03/">March (11)</a></li>
 
 </ul></li>
 
@@ -579,17 +560,17 @@ webserver og komprimert.</p>
 <h2>Tags</h2>
 <ul>
 
- <li><a href="tags/3d-printer">3d-printer (8)</a></li>
+ <li><a href="tags/3d-printer">3d-printer (9)</a></li>
 
  <li><a href="tags/amiga">amiga (1)</a></li>
 
  <li><a href="tags/aros">aros (1)</a></li>
 
- <li><a href="tags/debian">debian (3)</a></li>
+ <li><a href="tags/debian">debian (5)</a></li>
 
- <li><a href="tags/debian edu">debian edu (4)</a></li>
+ <li><a href="tags/debian edu">debian edu (6)</a></li>
 
- <li><a href="tags/english">english (6)</a></li>
+ <li><a href="tags/english">english (8)</a></li>
 
  <li><a href="tags/fiksgatami">fiksgatami (1)</a></li>
 
@@ -597,20 +578,24 @@ webserver og komprimert.</p>
 
  <li><a href="tags/multimedia">multimedia (2)</a></li>
 
- <li><a href="tags/norsk">norsk (27)</a></li>
+ <li><a href="tags/norsk">norsk (31)</a></li>
 
- <li><a href="tags/nuug">nuug (24)</a></li>
+ <li><a href="tags/nuug">nuug (29)</a></li>
 
  <li><a href="tags/personvern">personvern (3)</a></li>
 
- <li><a href="tags/reprap">reprap (8)</a></li>
+ <li><a href="tags/reprap">reprap (9)</a></li>
 
  <li><a href="tags/rss">rss (1)</a></li>
 
+ <li><a href="tags/standard">standard (1)</a></li>
+
  <li><a href="tags/stavekontroll">stavekontroll (1)</a></li>
 
  <li><a href="tags/video">video (5)</a></li>
 
+ <li><a href="tags/vitenskap">vitenskap (1)</a></li>
+
  <li><a href="tags/web">web (2)</a></li>
 
 </ul>