]> pere.pagekite.me Git - homepage.git/blobdiff - blog/index.html
Generated.
[homepage.git] / blog / index.html
index 577cd5a1b05c64adcdea13ec1d17f2b48fdbe179..c576966b278683058b28bc0d84fb8cd554481b48 100644 (file)
@@ -2,7 +2,7 @@
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html>
  <head>
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html>
  <head>
-  <title>Petter Reinholdtsens blog</title>
+  <title>Petter Reinholdtsen</title>
   <link rel="stylesheet" type="text/css" media="screen" href="style.css">
   <link rel="alternate" title="RSS Feed" href="index.rss" type="application/rss+xml">
 
   <link rel="stylesheet" type="text/css" media="screen" href="style.css">
   <link rel="alternate" title="RSS Feed" href="index.rss" type="application/rss+xml">
 
@@ -11,7 +11,7 @@
 
  <div class="title">
   <h1>
 
  <div class="title">
   <h1>
-       <a href="">Petter Reinholdtsens blog</a>
+       <a href="">Petter Reinholdtsen</a>
       
   </h1>
   
       
   </h1>
   
 
  
  <div class="entry">
 
  
  <div class="entry">
-  <div class="title"><a href="Mens_vi_venter_p___3D_skriveren.html">Mens vi venter på 3D-skriveren</a></div>
-  <div class="date">2008-11-24 20:00</div>
+  <div class="title"><a href="Vitenskapens_dogmer___.html">Vitenskapens dogmer...</a></div>
+  <div class="date">2009-03-27 11:30</div>
   <div class="body">
   <div class="body">
-Jeg synes ethvert møblert hjem bør ha sin egen replikator.  Og for
-å få min replikator på plass, har jeg som del av
-<a href="http://wiki.nuug.no/grupper/replikator">NUUGs
-3D-skriverprosjekt</a> bestilt deler til en
-<a href="http://www.reprap.org/">reprap</a> fra utlandet, som skal
-bygges sammen slik at den kan demonstreres på Go Open 2009 i april.
-Foreløbig plan er å bygge to i parallell, en basert på byggesett
-fra utlandet, og en basert på deler skrevet ut på 3D-skriveren til
-Institutt for Informatikk ved Universitetet i Oslo.  Jeg har fokusert
-på byggesettet, og håper noen andre vil ta ansvar for den
-hjemmelagede utgaven. :)
-
-<p>Nå er det den lange ventetiden som rår, etter at begge
-byggesettene er bestilt og betalt.  Dog har visst den første pakken
-gått tapt etter at postens fikk den utlevert i Norge.  Den er ferdig
-fortollet, og pakkelapp kom i postkassen før pakken var klar til
-henting.  Det var 2008-11-07.  Postens sporingssystem forteller at
-pakken ikke har beveget seg siden 2008-11-05, da den var innom
-omlastingsterminalen i Oslo.  Dette var elektronikkbyggesettet som kom
-fra USA.  Mekanikkbyggesettet er ennå ikke sendt fra England, og jeg
-håper det ikke går tapt på samme vis.
+<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">
    
 </div>
   <div class="tags">
    
@@ -56,17 +149,458 @@ håper det ikke går tapt på samme vis.
  <div class="padding"></div>
  
  <div class="entry">
  <div class="padding"></div>
  
  <div class="entry">
-  <div class="title"><a href="Tester_blog.html">Tester blog</a></div>
-  <div class="date">2008-11-04 11:00</div>
+  <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>
   <div class="body">
   <div class="body">
-Kanskje en blog kunne være noe også for meg.  chronicle ser ut til å være en grei måte
-å skrive en blog på.  Dette er første forsøk.
+<p>Advokatene jobber i disse dager hardt for å bli kvitt juryordningen
+fra norske domstoler.  Det har de forsåvidt jobbet med i mange år.
+Personlig tror jeg det er å starte i feil ende, og en dårlig ide.</p>
+
+<p>Visst du at det ikke lages ordrett referat fra norske domstoler?
+Det er ingen som skriver ned alt som sies i en norsk rettsal slik en
+ser i TV-serier fra USA.  Det som publiseres er dommerens
+oppsummering, og alt som ikke blir med i den oppsummeringen er det
+vanskelig å få dokumentert i ettertid.  Konsekvensen er at en kan
+lyve så mye en vil fra vitneboksen uten å bli tatt for det i
+ettertid, hvis dommeren ikke syntes det som ble sagt var så
+interessant at det ble med i dokumentet som dokumenterer
+domsavsigelsen.  Mens alt som sies fra Stortingets talerstol er
+tilgjengelig på web etter kort tid for kontroll og kritikk, er det
+ingen tilsvarende mulighet for det som sies fra vitneboksen i en norsk
+domstol.  Kan dette føre til at en sak varer lengre enn nødvendig i
+rettssystemet?  Jeg tror det, og synes det er en skam at det ikke
+publiseres ordrette referater fra norske rettsaler.</p>
+
+<p>En relatert observasjon er at det i utvalgte deler av landet
+eksperimenteres med lydopptak fra rettsalen, men disse opptakene er
+kun tilgjengelig for dommeren til hjelp når oppsummeringen skrives.
+Jeg synes som et minimum at disse lydopptakene som en regel burde vært
+publisert offentlig på web.</p>
 </div>
   <div class="tags">
    
 
    
 </div>
   <div class="tags">
    
 
    
-   Tags: <a href="tags/norsk">norsk</a>, <a href="tags/rss">rss</a>. 
+   Tags: <a href="tags/norsk">norsk</a>. 
+  
+  </div>
+ </div>
+ <div class="padding"></div>
+ <div class="entry">
+  <div class="title"><a href="Testing_av_reprap_elektronikken_igang.html">Testing av reprap-elektronikken igang</a></div>
+  <div class="date">2009-03-12 16:00</div>
+  <div class="body">
+<p>Lenge siden det var en oppdatering av status for min 3D-skriver og
+i mellomtiden har det skjedd en god del.  Reprap-en er nesten ferdig
+montert, og elektronikken er også nesten ferdig loddet.  Det ser ut
+til at bits-from-bytes sitt byggesett versjon 2.01 hadde noen småfeil,
+der en del manglet og en annen hadde suboptimalt design.  Jeg løser
+antagelig det ene problemet med å borre noen ekstra hull til skruver i
+en plastdelen som trenger å festes.  Det andre problemet håper jeg å
+få hjelp fra Audun Vaaler ved Høgskolen i Østfold til å løse.
+Høgskolen er igang med å bygge en tilsvarende reprap i versjon 2.0, og
+er kommet litt lenger enn meg.  De kan forhåpentligvis skrive ut den
+delen jeg mangler på denne.</p>
+
+<p>Når det gjelder elektronikken, så er mye allerede loddet sammen av
+min venn Anders Rosnes, som har mer peiling på elektronikk og lodding
+enn meg.  Jeg fikk i dag testet
+<a href="http://reprap.org/bin/view/Main/Stepper_Motor_Driver_1_1">stepper
+motordriveren (v1.1)</a>, og det fungerte.  Jeg møtte et lite problem
+med strømforsyningen, en standard ATX-strømforsyning som nektet å
+fungere før jeg hadde satt en ledning mellom GRD og PS_ON som
+beskrevet på
+<a href="http://dev.www.reprap.org/bin/view/Main/PCPowerSupply">reprap-sidene
+om PC-strømforsyninger</a>.  Jeg møtte også et annet problem med
+Arduino-programvaren.  Versjon 0013 fungerer visst ikke på
+Debian/Etch.  Den kompilerte binæren ble på 0 bytes.  En side jeg fant
+vha. et Google-søk
+<a href="http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1234153046/5">tipset
+meg</A> om at en nedgradering
+til <a href="http://arduino.googlecode.com/files/arduino-0012-linux.tgz">versjon
+0012</a> kunne løse problemet, og endelig ser jeg motorakslingen
+snurre.  Nå er det å koble sammen mekanikk og elektronikk for å se om
+reprap-en kvikner til.</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="Frikanalen_og_jul_i_studentr__det.html">Frikanalen og jul i studentrådet</a></div>
+  <div class="date">2009-03-11 23:40</div>
+  <div class="body">
+<p>I går
+<a href="http://lists.nuug.no/pipermail/interesserte/2009-March/000387.html">lanserte</a>
+NUUGs videogruppe
+<a href="http://www.frikanalen.no">Frikanalen</a> med
+<a href="http://www.nuug.no/pub/video/frikanalen/frontpage.cgi">åpne
+standarder</a>, og resultatet av noen intense uker med arbeide kunne
+endelig presenteres.  Jeg har tro på åpen kanalkonseptet som
+Frikanalen er et eksempel på, der borgerne får anledning til å
+kringkaste sitt syn på en åpen og demokratisk måte.  Jeg er veldig
+glad vi har fått gjort kanalen tilgjengelig i Ogg Theora, slik at alle
+kan få tilgang til opptakene på web, og slipper å måtte installere MS
+Silverlight for å spille av opptakene.</p>
+
+<p>Frikanalen har en brokete historie, og dagens inkarnasjon er ikke
+helt slik foreningen Åpen kanal planla det for mange år siden, noe som
+er bakgrunnen for at det fredag 13. mars 2009 kl 09:00 starter en
+rettsak i Oslo tingrett der Kringkasterforeningen (tidligere
+foreningen Åpen kanal) har saksøkt kulturdepartementet over
+konsesjonsvilkårene til Frikanalen.  Jeg er spent på resultatet.</p>
+
+<p>I arbeidet med Frikanalen med åpne standarder, så har vi hatt glede
+av å se en rekke av innslagene som er tilgjengelig.  Her er mye
+religiøst sludder, fra
+<a href="http://www.nuug.no/pub/video/frikanalen/fetchvideo.cgi?videoId=720">vandring
+i jerusalem</a> via
+<a href="http://www.nuug.no/pub/video/frikanalen/fetchvideo.cgi?videoId=779">religiøst
+vinklede nyheter</a> til
+<a
+href="http://www.nuug.no/pub/video/frikanalen/fetchvideo.cgi?videoId=2077">kreasjonisk
+retorikk</a>, men også fine
+<a href="http://www.nuug.no/pub/video/frikanalen/fetchvideo.cgi?videoId=407">dokumentarer
+om redningsselskapet</a> og
+<a href="http://www.nuug.no/pub/video/frikanalen/fetchvideo.cgi?videoId=2204">interessante
+tegneserieanmeldelser</a>.  Det jeg derimot har hatt størst glede av,
+er
+
+<a href="http://www.nuug.no/pub/video/frikanalen/fetchvideo.cgi?videoId=1556">jul
+i studentrådet</a>, der hver episode var en fest å se på.  Jeg håper
+NUUG lykkes med å få ut sine opptak med like stor suksess.</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>
+ </div>
+ <div class="padding"></div>
+ <div class="entry">
+  <div class="title"><a href="Lisensvalg_for_NUUG_opptakene_endelig_p___plass.html">Lisensvalg for NUUG-opptakene endelig på plass</a></div>
+  <div class="date">2009-03-06 21:20</div>
+  <div class="body">
+<p>Etter mange års meditasjon over temaet, har NUUG endelig klart å
+bestemme seg for hvilken lisens vi skal bruke på videoopptakene som
+gjøres av NUUGs videogruppe.  Ole Kristian har annonsert at lisensen
+blir <a href="http://creativecommons.org/licenses/by-sa/3.0/no/">Creative
+Commons Navngivelse-Del på samme vilkår 3.0 Norge</a>.  Jeg er veldig
+glad for at denne saken endelig er landet.  Lisensen for opptaket til
+Stallman-foredraget ble en annen pga. at lisensvalget ikke var avklart
+på forhånd og IFI og PING ønsket CC-BY-ND, og må ses på som et unntak
+i denne sammenhengen.</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>
+ </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>
  </div>
@@ -83,10 +617,23 @@ Kanskje en blog kunne være noe også for meg.  chronicle ser ut til å være en
 <h2>Archive</h2>
 <ul>
 
 <h2>Archive</h2>
 <ul>
 
+<li>2009
+<ul>
+
+<li><a href="archive/2009/01/">January (8)</a></li>
+
+<li><a href="archive/2009/02/">February (8)</a></li>
+
+<li><a href="archive/2009/03/">March (8)</a></li>
+
+</ul></li>
+
 <li>2008
 <ul>
 
 <li>2008
 <ul>
 
-<li><a href="archive/2008/11/">November (2)</a></li>
+<li><a href="archive/2008/11/">November (5)</a></li>
+
+<li><a href="archive/2008/12/">December (7)</a></li>
 
 </ul></li>
 
 
 </ul></li>
 
@@ -97,22 +644,48 @@ Kanskje en blog kunne være noe også for meg.  chronicle ser ut til å være en
 <h2>Tags</h2>
 <ul>
 
 <h2>Tags</h2>
 <ul>
 
- <li><a href="tags/3d-printer">3d-printer (1)</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 edu">debian edu (4)</a></li>
 
 
- <li><a href="tags/norsk">norsk (2)</a></li>
+ <li><a href="tags/english">english (6)</a></li>
 
 
- <li><a href="tags/nuug">nuug (1)</a></li>
+ <li><a href="tags/fiksgatami">fiksgatami (1)</a></li>
 
 
- <li><a href="tags/reprap">reprap (1)</a></li>
+ <li><a href="tags/ltsp">ltsp (1)</a></li>
+
+ <li><a href="tags/multimedia">multimedia (2)</a></li>
+
+ <li><a href="tags/norsk">norsk (30)</a></li>
+
+ <li><a href="tags/nuug">nuug (26)</a></li>
+
+ <li><a href="tags/personvern">personvern (3)</a></li>
+
+ <li><a href="tags/reprap">reprap (9)</a></li>
 
  <li><a href="tags/rss">rss (1)</a></li>
 
 
  <li><a href="tags/rss">rss (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>
 
 </div>
 
 <p style="text-align: right">
 </ul>
 
 </div>
 
 <p style="text-align: right">
-Created by <a href="http://steve.org.uk/Software/chronicle">Chronicle v3.2</a>
+Created by <a href="http://steve.org.uk/Software/chronicle">Chronicle v3.5</a>
 </p>
 </body>
 </html>
 </p>
 </body>
 </html>