X-Git-Url: http://pere.pagekite.me/gitweb/homepage.git/blobdiff_plain/e934bed999bdfe5d2788e2bb5dd6212b311a9bad..3ea6622bd8c01a8d0a12f9a7e4be09cfdb203aa4:/blog/index.rss diff --git a/blog/index.rss b/blog/index.rss index a62f574ecf..f7f813d0d8 100644 --- a/blog/index.rss +++ b/blog/index.rss @@ -6,6 +6,262 @@ + + Fildeling er lovlig - ulovlig fildeling er ulovlig + Fildeling_er_lovlig___ulovlig_fildeling_er_ulovlig.html + Fildeling_er_lovlig___ulovlig_fildeling_er_ulovlig.html + Fri, 17 Apr 2009 20:00:00 +0200 + +<p>Jeg hadde glede av å overvære FADs lansering av +<a href="http://www.deltemeninger.no/">Debattsentralen +deltemeninger.no</a> under Go Open 2009, og må si jeg ble skuffet over +en kommentar fra podiet om ulovlig fildeling. Fikk ikke med meg hvem +som holdt innlegget, men det startet med å snakke om ulovlig fildeling +og gikk så over til å snakke om fildeling som om fildeling i seg er +ulovlig. Intet er lengre fra sannheten. Fildeling er en nyttig +teknologi som benyttes av NRK, Debian, Ubuntu, NUUG og andre for +distribusjon av filer. Det er ingenting med denne fildelingen som +gjør den ulovlig. Fildeling er i seg selv en fullt ut lovlig +teknologisk anvendelse. Noe fildeling er ulovlig, og noe er lovlig. +De som tror at fildeling er ulovlig har misforstått grovt. Hvorvidt +den er ulovlig kommer jo an på hvem som har opphavsretten til filene +som deles og hvilke bruksbegrensninger som gjelder for filene. En +rekke filer er lagt ut av rettighetsinnehaver for deling på Internet, +og fildeling av slike filer er fullt ut lovlig.</p> + + + + + Reprap-bygging i påsken + Reprap_bygging_i_p__sken.html + Reprap_bygging_i_p__sken.html + Sun, 12 Apr 2009 10:00:00 +0200 + +<p>Vi har brukt påsken til å bygge Reprap, i håp om å ha den operativ +til <a href="http://www.goopen.no/">Go Open 2009</a> uka etter påske. +Da første test med motorkjøring avslørte at motorvibrasjonene fikk +skruer og muttere til å løsne, så var første punkt på programmet å +skru til alle skruer slik at det ble mindre sjanse for slikt. Det er +nå nesten komplett (X-aksen gjenstår, men der må det justeres litt på +montering i tillegg). Må også lime Z-aksebandet. Har skaffet Loctite +Super Attak Flex Gel elastisk superlim som jeg håper vil fungere til +dette formålet. I prosessen har jeg blitt bitt av den sprø plasten +noen ganger. Har knekket/sprukket 3 plastbiter så langt. Håper jeg +får skrevet ut nye før skriveren bryter sammen pga. dette. :)</p> + +<p>I prosessen har jeg oppdaget en svakhet med Z-aksen, og funnet en måte +å jobbe meg rundt det. Etter tegningen, skal tannhjulene på Z-aksene +være tett omslynget av et par stjernehjul som holder båndet mellom +alle Z-aksene på plass. Problemet er at båndet er 6mm, mens alle +plastdelene er 5mm brede. Det betyr at et 6mm band skal inn i et 5mm +spor, noe som ikke passer spesielt godt. Jeg har løst dette ved å +legge en 1mm skive mellom tannhjulene og stjernehjulene over +tannhjulet, slik at det blir plass til båndet.</p> + +<p>Skrivehodet er har vi så vidt startet på. Mari har oppdaget at +hullene i baseplaten er for grunn, slik at skruen som skal inn i disse +hullene ikke får plass. Har avtalt å låne en Dremel for å frese unna +litt plast for å løse dette problemet. Da vi begynte å se på +skrivehodet, oppdaget vi et alvorlig problem. Det varmesikre +sparkelen som skal brukes til å holde varmetråden på plass er stivnet. +Var ikke klar over at dette er ferskvare, men +<a href="http://forums.reprap.org/read.php?70,16250">en +forumposting</a> viser at dette er et kjent problem. Det var ikke +helt enkelt å finne ut hva "Fire cement" heter på norsk. Mange +Google-søk senere var jeg fortsatt like blank. Hadde funnet flere +alternativer som kunne fungere, som eksosmonteringspasta, +brannfugemasse, klebemørtel for pipe, ildmørtel og ildfast sparkel, +men ingen av disse så ut til å være helt riktige for dette bruket. +Fire cement håndterer temperaturer opp til 1200 grader celsius, og +krever ikke utblanding i vann. Konsulterte, +<a href="http://robot.hiof.no/node/5">våre +venner ved Høgskolen i Halden</a>, og det viste seg at de hadde hatt samme +problem. De hadde besøkt en peisbutikk og kjøpt ildfast sparkel. Jeg +sjekket med Maxbo, og de hadde noe slikt som het ovnskitt, og det ser +ut til å være det norske navnet på det jeg er ute etter. Dro så innom +Clas Olsson (som er nærmere meg enn Maxbo), og kjøpte +<a href="http://www.unipak.dk/UK/stovex.html">Stovex</a> ovnskitt, og +er nå klar til å lage varmeelement til skrivehodet. +Like før jeg dro ut for å kjøpe ovnskitt, fant jeg en +<a href="http://blog.reprap.org/2009/04/by-your-powers-combined-i-am-kapton.html">reprap-blogpost</a> +som fortalte om et bedre vidundermiddel for å lage varmeelement, +Kapton tape, men dette hadde de ikke på Clas Olsson, så det får bli +til neste gang. En reprap-variant ved navn +<a href="http://wiki.makerbot.com/plastruder-mk3">Plastruder MK3</a> +kommer til å bruke denne plasttypen som håndterer temperaturer mellom +-100 og +400 grader og brukes av astronautene for å tette drakten.</p> + + + + + Fransk idiotlovforslag hinker gjennom parlamentet + Fransk_idiotlovforslag_hinker_gjennom_parlamentet.html + Fransk_idiotlovforslag_hinker_gjennom_parlamentet.html + Fri, 10 Apr 2009 00:10:00 +0200 + +<p><a href="http://www.dagbladet.no/2009/04/09/kultur/musikk/fildeling/tekno/5689356/">Dagbladet +melder at det franske idiotforslaget om å kutte Internet-forbindelsen +til alle som blir anklaget for å ha brutt opphavsretten 3 ganger</a> +ble nedstemt i dag med 21 mot 15 stemmer. Vinklingen i Dagbladet er +litt merkelig når en vet at det samme forslaget ble vedtatt i +parlamentets andre kammer med 12 mot 4 stemmer, etter at det +<a href="http://opendotdotdot.blogspot.com/2009/04/hadopi-law-passed-by-12-votes-to-4.html">overraskende +ble foreslått å ta saken opp til votering 22:45 sist torsdag</a>, +etter sigende i strid med vanlige rutiner i det franske parlamentet.</p> + +<p>Det hele blir ennå mer komisk når et vet at +<a href="http://www.zeropaid.com/news/10034/political_hypocrisy_french_president_sued_for_copyright_infringement/">presidentens +parti er blitt anklaget for å ha brutt opphavsretten</a>. Mon tro om +partet skal miste internet-forbindelsen hvis de får 2 anklager til +rettet mot seg.</p> + + + + + Recording video from cron using VLC + Recording_video_from_cron_using_VLC.html + Recording_video_from_cron_using_VLC.html + Sun, 5 Apr 2009 10:00:00 +0200 + +<p>One think I have wanted to figure out for a along time is how to +run vlc from cron to do recording of video streams on the net. The +task is trivial with mplayer, but I do not really trust the security +of mplayer (it crashes too often on strange input), and thus prefer +vlc. I finally found a way to do it today. I spent an hour or so +searching the web for recipes and reading the documentation. The +hardest part was to get rid of the GUI window, but after finding the +dummy interface, the command line finally presented itself:</p> + +<blockquote><pre>URL=http://www.ping.uio.no/video/rms-oslo_2009.ogg +SAVEFILE=rms.ogg +DISPLAY= vlc -q $URL \ + --sout="#duplicate{dst=std{access=file,url='$SAVEFILE'},dst=nodisplay}" \ + --intf=dummy</pre></blockquote> + +<p>The command stream the URL and store it in the SAVEFILE by +duplicating the output stream to "nodisplay" and the file, using the +dummy interface. The dummy interface and the nodisplay output make +sure no X interface is needed.</p> + +<p>The cron job then need to start this job with the appropriate URL +and file name to save, sleep for the duration wanted, and then kill +the vlc process with SIGTERM. Here is a complete script +<tt>vlc-record</tt> to use from <tt>at</tt> or <tt>cron</tt>:</p> + +<blockquote><pre>#!/bin/sh +set -e +URL="$1" +SAVEFILE="$2" +DURATION="$3" +DISPLAY= vlc -q "$URL" \ + --sout="#duplicate{dst=std{access=file,url='$SAVEFILE'},dst=nodisplay}" \ + --intf=dummy < /dev/null > /dev/null 2>&1 & +pid=$! +sleep $DURATION +kill $pid +wait $pid</pre></blockquote> + + + + + Standardize on protocols and formats, not vendors and applications + Standardize_on_protocols_and_formats__not_vendors_and_applications.html + Standardize_on_protocols_and_formats__not_vendors_and_applications.html + Mon, 30 Mar 2009 11:50:00 +0200 + +<p>Where I work at the University of Oslo, one decision stand out as a +very good one to form a long lived computer infrastructure. It is the +simple one, lost by many in todays computer industry: Standardize on +open network protocols and open exchange/storage formats, not applications. +Applications come and go, while protocols and files tend to stay, and +thus one want to make it easy to change application and vendor, while +avoiding conversion costs and locking users to a specific platform or +application.</p> + +<p>This approach make it possible to replace the client applications +independently of the server applications. One can even allow users to +use several different applications as long as they handle the selected +protocol and format. In the normal case, only one client application +is recommended and users only get help if they choose to use this +application, but those that want to deviate from the easy path are not +blocked from doing so.</p> + +<p>It also allow us to replace the server side without forcing the +users to replace their applications, and thus allow us to select the +best server implementation at any moment, when scale and resouce +requirements change.</p> + +<p>I strongly recommend standardizing - on open network protocols and +open formats, but I would never recommend standardizing on a single +application that do not use open network protocol or open formats.</p> + + + + + Returning from Skolelinux developer gathering + Returning_from_Skolelinux_developer_gathering.html + Returning_from_Skolelinux_developer_gathering.html + Sun, 29 Mar 2009 21:00:00 +0200 + +<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> + + + + + Time for new LDAP schemas replacing RFC 2307? + Time_for_new__LDAP_schemas_replacing_RFC_2307_.html + Time_for_new__LDAP_schemas_replacing_RFC_2307_.html + Sun, 29 Mar 2009 20:30:00 +0200 + +<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> + + + Hva er egentlig en åpen standard? Hva_er_egentlig_en___pen_standard_.html @@ -230,365 +486,5 @@ limet egentlig heter, så det er vanskelig å søke på nett.</p> - - Avisene i endring - Avisene_i_endring.html - Avisene_i_endring.html - Sun, 15 Mar 2009 22:15:00 +0100 - -<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> - - - - - En skam at det ikke finnes ordrett referat fra norske domstoler - En_skam_at_det_ikke_finnes_ordrett_referat_fra_norske_domstoler.html - En_skam_at_det_ikke_finnes_ordrett_referat_fra_norske_domstoler.html - Fri, 13 Mar 2009 18:00:00 +0100 - -<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> - - - - - Testing av reprap-elektronikken igang - Testing_av_reprap_elektronikken_igang.html - Testing_av_reprap_elektronikken_igang.html - Thu, 12 Mar 2009 16:00:00 +0100 - -<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> - - - - - Frikanalen og jul i studentrådet - Frikanalen_og_jul_i_studentr__det.html - Frikanalen_og_jul_i_studentr__det.html - Wed, 11 Mar 2009 23:40:00 +0100 - -<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> - - - - - Lisensvalg for NUUG-opptakene endelig på plass - Lisensvalg_for_NUUG_opptakene_endelig_p___plass.html - Lisensvalg_for_NUUG_opptakene_endelig_p___plass.html - Fri, 6 Mar 2009 21:20:00 +0100 - -<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> - - - - - Teknisk program for Go Open 2009 er nesten ferdig - Teknisk_program_for_Go_Open_2009_er_nesten_ferdig.html - Teknisk_program_for_Go_Open_2009_er_nesten_ferdig.html - Thu, 5 Mar 2009 22:30:00 +0100 - -<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> - - - - - Checking server hardware support status for Dell, HP and IBM servers - Checking_server_hardware_support_status_for_Dell__HP_and_IBM_servers.html - Checking_server_hardware_support_status_for_Dell__HP_and_IBM_servers.html - Sat, 28 Feb 2009 23:50:00 +0100 - -<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> - - -