]> pere.pagekite.me Git - homepage.git/blob - blog/index.rss
c8444e7e206cf3d4ac2dd7875701148cb49ae5dc
[homepage.git] / blog / index.rss
1 <?xml version="1.0" encoding="utf-8"?>
2 <rss version='2.0' xmlns:lj='http://www.livejournal.org/rss/lj/1.0/' xmlns:atom="http://www.w3.org/2005/Atom">
3 <channel>
4 <title>Petter Reinholdtsen</title>
5 <description></description>
6 <link></link>
7 <atom:link href="index.rss" rel="self" type="application/rss+xml" />
8
9 <item>
10 <title>Vitenskapens dogmer...</title>
11 <link>Vitenskapens_dogmer___.html</link>
12 <guid isPermaLink="true">Vitenskapens_dogmer___.html</guid>
13 <pubDate>Fri, 27 Mar 2009 11:30:00 +0100</pubDate>
14 <description>
15 &lt;p&gt;Handspåleggere og andre tilhengere av ikke-etterprøvbar medisin,
16 samt de som mener at verden ikke utviklet seg i henhold til
17 evolusjonsteorien, hevder ofte at vitenskapen er dogmatisk og at
18 vitenskapsfolk velger å ignorere alt vitenskapsfolk ikke kan
19 forklare. Intet kunne være lenger fra sannheten. En interessant
20 observasjon dog, er hvilke &quot;dogmer&quot; som ligger til grunn for
21 vitenskapen. Her er et forsøk på å nevne noen av de grunnleggende
22 antagelsene som legges til grunn.&lt;/p&gt;
23
24 &lt;p&gt;Først og fremst ligger det til grunn en tro om at verden,
25 verdensrommet og universet har de samme egenskapene overalt. Dvs. at
26 en ikke tror at virkeligheten oppfører seg forskjellig f.eks. på
27 jorden og i verdensrommet. Dette er ingen selvfølgelig antagelse, da
28 f.eks. de gamle grekerne antok at virkeligheten var forskjellig på
29 jorden og i himmelen. Antagelsen om at virkeligheten oppfører seg
30 etter de samme &quot;reglene&quot; overalt skjøt først fart etter
31 middelalderen.&lt;/p&gt;
32
33 &lt;p&gt;Når en så har begynt å tro at virkeligheten oppfører seg likt
34 overalt, så kan en begynne å tro at det er mulig å observere
35 virkeligheten, og ut fra observasjoner kunne finne en forklaring, et
36 sett med &quot;regler&quot;, som kan brukes til å forutse hva som kommer til å
37 skje i fremtiden basert på observasjoner gjort i fortiden. Eksempler
38 på dette er at en kan beregne hvor lang tid en sten som er sluppet
39 ned fra et hus vil bruke før den treffer bakken (og ikke tror at den
40 i noen tilfeller vil fly oppover i stedet for nedover). En kan altså
41 lage en mental modell over sammenhenger i virkeligheten, og bruke
42 denne modellen til å, enten ved hjelp av logiske argumentasjonsrekker
43 eller matematiske beregninger, forklare hva som kommer til å skje.
44 Hvis modellen viser seg å fungere bra for observasjoner i dag, så
45 kan en på tilsvarende vis beregne eller logisk sette sammen hva som
46 har foregått i fortiden som ledet frem til det vi kan observere i
47 dag.&lt;/p&gt;
48
49 &lt;p&gt;Sist, men ikke minst, så tror vitenskapsfolk på at det er mulig
50 å observere virkeligheten, og å tro på disse observasjonene
51 (innenfor rimelig feilmargin som følger av måten observasjonen er
52 gjort på). En tror altså ikke på at noen bakenfor virkeligheten
53 forsøker å lure oss til å observere noe som ikke eksisterer. Det
54 er naturligvis umulig (eller kanskje til nød svært vanskelig) å
55 motbevise at vi lever i Matrix-aktige omgivelser, der vi observerer
56 noe som eksisterer kun som en simulering i datamaskiner. Det at noe
57 er umulig å motbevise gjør dog ikke at det blir spesielt interessant
58 å ta utgangspunkt i. Det er antagelig ikke grenser for hvor mange
59 måter det er mulig å tenke seg at vi blir lurt til å oppleve en
60 virkelighet som &quot;egentlig&quot; ikke eksisterer, men i og med at den
61 eksisterer for oss, så er det i hovedsak et filosofisk spørsmål om
62 hva det betyr å eksistere. Det er ikke spesielt relevant for
63 vitenskapen, som altså tar utgangspunkt i at den virkeligheten vi
64 observerer eksisterer, virker likt overalt, og kan forstås med logikk
65 og matematikk.&lt;/p&gt;
66
67 &lt;p&gt;Det kan virke som om de som hevder at vitenskapen er ute av stand
68 til å ta inn over seg Snåsamannens evner, homeopatiske
69 forklaringsmodeller og en skapende gud, ikke tror på det samme som
70 vitenskapsfolk. De kan ikke tro at den virkeligheten vi observerer
71 eksisterer, virker likt overalt, og kan forstås med logikk og
72 matematikk. Mitt problem med å tro på på det samme, er at hvis
73 disse forutsetningene ikke ligger til grunn, så er det ingen grenser
74 for hva en kan komme opp med av ideer til hvordan virkeligheten
75 fungerer. Både Harry Potters magi, kreasjonistenes allmektige
76 skaper, det flygende spagettimonsteret, Snåsamannens helbredelser,
77 Haitis voodo, samenes ganding og middelalderens hekserier blir like
78 gyldige. Jeg tror ikke noen av disse er spesielt sannsynlige, og
79 velger derfor å ta utgangspunkt i vitenskapens rammer for hvordan
80 virkeligheten skal forstås. For å sitere en reklamekampanje fra
81 England: Vitenskap sender deg til månen. Religion sender deg inn i
82 skyskrapere. Takke meg til en tur til månen.&lt;/p&gt;
83 </description>
84 </item>
85
86 <item>
87 <title>Første reprap-integreringsforsøk - Z-aksen beveger seg</title>
88 <link>F__rste_reprap_integreringsfors__k___Z_aksen_beveger_seg.html</link>
89 <guid isPermaLink="true">F__rste_reprap_integreringsfors__k___Z_aksen_beveger_seg.html</guid>
90 <pubDate>Thu, 19 Mar 2009 22:15:00 +0100</pubDate>
91 <description>
92 &lt;p&gt;I går tok jeg mot til meg, og løste problemet med
93 z-aksen ved å borre i delen som manglet feste mot tannjulet som
94 skal drive z-aksereimen. Dermed var det klart for å montere
95 z-akse-akslingen på motoren og komme et steg videre med
96 reprap-monteringen. Prøvekjørte den i dag med
97 testprogrammet til stepmotoren, og kunne glad konstatere at det hele
98 fungerte. I hvert fall når stepmotoren ikke forsøkte
99 å snurre for raskt rundt. Ved høy hastighet roterte
100 ikke akslingen i det hele tatt. Motoren ble bare stående
101 å vibrere. Usikker på hvorfor, men antar motoren ikke
102 har nok kraft til å få hele akslingen til å
103 rotere så raskt. Denne øvelsen avslørte dog et
104 annet problem med monteringen så langt. Under testingen
105 begynte skruer og muttere å ry ned fra ulike deler av
106 reprap-konstruksjonen. Jeg har ikke skrudd alt hard nok sammen til
107 å tåle slike vibrasjoner. Tror en 5-6 skruver og/eller
108 muttere løsnet. Brukte ganske lang tid på å
109 finne ut hvor det manglet deler og skru ting sammen igjen. Antar alt
110 må strammes skikkelig til før første
111 utskrift.&lt;/p&gt;
112
113 &lt;p&gt;Neste steg er å få laget z-aksebåndet. Der trenger jeg
114 egnet lim og en konstruksjon for å klemme bandet sammen under
115 limingen, som
116 &lt;a href=&quot;http://reprap.org/bin/view/Main/AssemblingDarwinMachinery#Z_belt&quot;&gt;beskrevet
117 på reprap-wikien&lt;/a&gt;. Er blitt tipset om svart superlim som er
118 elastisk også etter at det tørket, og dro ned til Small Size
119 Hobbyland på Lilletorget som skulle ha slikt, men da jeg var innom
120 fikk jeg høre at de ikke lenger hadde slikt lim. Må finne ut
121 hvor i Oslo jeg kan skaffe slikt. Kanskje Panduro har? Vet ikke hva
122 limet egentlig heter, så det er vanskelig å søke på nett.&lt;/p&gt;
123 </description>
124 </item>
125
126 <item>
127 <title>Avisene i endring</title>
128 <link>Avisene_i_endring.html</link>
129 <guid isPermaLink="true">Avisene_i_endring.html</guid>
130 <pubDate>Sun, 15 Mar 2009 22:15:00 +0100</pubDate>
131 <description>
132 &lt;p&gt;Jeg kom over bloggposten
133 &quot;&lt;a href=&quot;http://www.shirky.com/weblog/2009/03/newspapers-and-thinking-the-unthinkable/&quot;&gt;Newspapers
134 and Thinking the Unthinkable&lt;/a&gt;&quot; som jeg synes forklarer godt hva som
135 skjer med aviser, og fikk meg til å tenke litt rundt andre utdøende
136 forretningsmodeller basert på å løse problemer som ikke lenger
137 eksisterer. Det blir spennende å se hva vi ender opp med.&lt;/p&gt;
138 </description>
139 </item>
140
141 <item>
142 <title>En skam at det ikke finnes ordrett referat fra norske domstoler</title>
143 <link>En_skam_at_det_ikke_finnes_ordrett_referat_fra_norske_domstoler.html</link>
144 <guid isPermaLink="true">En_skam_at_det_ikke_finnes_ordrett_referat_fra_norske_domstoler.html</guid>
145 <pubDate>Fri, 13 Mar 2009 18:00:00 +0100</pubDate>
146 <description>
147 &lt;p&gt;Advokatene jobber i disse dager hardt for å bli kvitt juryordningen
148 fra norske domstoler. Det har de forsåvidt jobbet med i mange år.
149 Personlig tror jeg det er å starte i feil ende, og en dårlig ide.&lt;/p&gt;
150
151 &lt;p&gt;Visst du at det ikke lages ordrett referat fra norske domstoler?
152 Det er ingen som skriver ned alt som sies i en norsk rettsal slik en
153 ser i TV-serier fra USA. Det som publiseres er dommerens
154 oppsummering, og alt som ikke blir med i den oppsummeringen er det
155 vanskelig å få dokumentert i ettertid. Konsekvensen er at en kan
156 lyve så mye en vil fra vitneboksen uten å bli tatt for det i
157 ettertid, hvis dommeren ikke syntes det som ble sagt var så
158 interessant at det ble med i dokumentet som dokumenterer
159 domsavsigelsen. Mens alt som sies fra Stortingets talerstol er
160 tilgjengelig på web etter kort tid for kontroll og kritikk, er det
161 ingen tilsvarende mulighet for det som sies fra vitneboksen i en norsk
162 domstol. Kan dette føre til at en sak varer lengre enn nødvendig i
163 rettssystemet? Jeg tror det, og synes det er en skam at det ikke
164 publiseres ordrette referater fra norske rettsaler.&lt;/p&gt;
165
166 &lt;p&gt;En relatert observasjon er at det i utvalgte deler av landet
167 eksperimenteres med lydopptak fra rettsalen, men disse opptakene er
168 kun tilgjengelig for dommeren til hjelp når oppsummeringen skrives.
169 Jeg synes som et minimum at disse lydopptakene som en regel burde vært
170 publisert offentlig på web.&lt;/p&gt;
171 </description>
172 </item>
173
174 <item>
175 <title>Testing av reprap-elektronikken igang</title>
176 <link>Testing_av_reprap_elektronikken_igang.html</link>
177 <guid isPermaLink="true">Testing_av_reprap_elektronikken_igang.html</guid>
178 <pubDate>Thu, 12 Mar 2009 16:00:00 +0100</pubDate>
179 <description>
180 &lt;p&gt;Lenge siden det var en oppdatering av status for min 3D-skriver og
181 i mellomtiden har det skjedd en god del. Reprap-en er nesten ferdig
182 montert, og elektronikken er også nesten ferdig loddet. Det ser ut
183 til at bits-from-bytes sitt byggesett versjon 2.01 hadde noen småfeil,
184 der en del manglet og en annen hadde suboptimalt design. Jeg løser
185 antagelig det ene problemet med å borre noen ekstra hull til skruver i
186 en plastdelen som trenger å festes. Det andre problemet håper jeg å
187 få hjelp fra Audun Vaaler ved Høgskolen i Østfold til å løse.
188 Høgskolen er igang med å bygge en tilsvarende reprap i versjon 2.0, og
189 er kommet litt lenger enn meg. De kan forhåpentligvis skrive ut den
190 delen jeg mangler på denne.&lt;/p&gt;
191
192 &lt;p&gt;Når det gjelder elektronikken, så er mye allerede loddet sammen av
193 min venn Anders Rosnes, som har mer peiling på elektronikk og lodding
194 enn meg. Jeg fikk i dag testet
195 &lt;a href=&quot;http://reprap.org/bin/view/Main/Stepper_Motor_Driver_1_1&quot;&gt;stepper
196 motordriveren (v1.1)&lt;/a&gt;, og det fungerte. Jeg møtte et lite problem
197 med strømforsyningen, en standard ATX-strømforsyning som nektet å
198 fungere før jeg hadde satt en ledning mellom GRD og PS_ON som
199 beskrevet på
200 &lt;a href=&quot;http://dev.www.reprap.org/bin/view/Main/PCPowerSupply&quot;&gt;reprap-sidene
201 om PC-strømforsyninger&lt;/a&gt;. Jeg møtte også et annet problem med
202 Arduino-programvaren. Versjon 0013 fungerer visst ikke på
203 Debian/Etch. Den kompilerte binæren ble på 0 bytes. En side jeg fant
204 vha. et Google-søk
205 &lt;a href=&quot;http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1234153046/5&quot;&gt;tipset
206 meg&lt;/A&gt; om at en nedgradering
207 til &lt;a href=&quot;http://arduino.googlecode.com/files/arduino-0012-linux.tgz&quot;&gt;versjon
208 0012&lt;/a&gt; kunne løse problemet, og endelig ser jeg motorakslingen
209 snurre. Nå er det å koble sammen mekanikk og elektronikk for å se om
210 reprap-en kvikner til.&lt;/p&gt;
211 </description>
212 </item>
213
214 <item>
215 <title>Frikanalen og jul i studentrådet</title>
216 <link>Frikanalen_og_jul_i_studentr__det.html</link>
217 <guid isPermaLink="true">Frikanalen_og_jul_i_studentr__det.html</guid>
218 <pubDate>Wed, 11 Mar 2009 23:40:00 +0100</pubDate>
219 <description>
220 &lt;p&gt;I går
221 &lt;a href=&quot;http://lists.nuug.no/pipermail/interesserte/2009-March/000387.html&quot;&gt;lanserte&lt;/a&gt;
222 NUUGs videogruppe
223 &lt;a href=&quot;http://www.frikanalen.no&quot;&gt;Frikanalen&lt;/a&gt; med
224 &lt;a href=&quot;http://www.nuug.no/pub/video/frikanalen/frontpage.cgi&quot;&gt;åpne
225 standarder&lt;/a&gt;, og resultatet av noen intense uker med arbeide kunne
226 endelig presenteres. Jeg har tro på åpen kanalkonseptet som
227 Frikanalen er et eksempel på, der borgerne får anledning til å
228 kringkaste sitt syn på en åpen og demokratisk måte. Jeg er veldig
229 glad vi har fått gjort kanalen tilgjengelig i Ogg Theora, slik at alle
230 kan få tilgang til opptakene på web, og slipper å måtte installere MS
231 Silverlight for å spille av opptakene.&lt;/p&gt;
232
233 &lt;p&gt;Frikanalen har en brokete historie, og dagens inkarnasjon er ikke
234 helt slik foreningen Åpen kanal planla det for mange år siden, noe som
235 er bakgrunnen for at det fredag 13. mars 2009 kl 09:00 starter en
236 rettsak i Oslo tingrett der Kringkasterforeningen (tidligere
237 foreningen Åpen kanal) har saksøkt kulturdepartementet over
238 konsesjonsvilkårene til Frikanalen. Jeg er spent på resultatet.&lt;/p&gt;
239
240 &lt;p&gt;I arbeidet med Frikanalen med åpne standarder, så har vi hatt glede
241 av å se en rekke av innslagene som er tilgjengelig. Her er mye
242 religiøst sludder, fra
243 &lt;a href=&quot;http://www.nuug.no/pub/video/frikanalen/fetchvideo.cgi?videoId=720&quot;&gt;vandring
244 i jerusalem&lt;/a&gt; via
245 &lt;a href=&quot;http://www.nuug.no/pub/video/frikanalen/fetchvideo.cgi?videoId=779&quot;&gt;religiøst
246 vinklede nyheter&lt;/a&gt; til
247 &lt;a
248 href=&quot;http://www.nuug.no/pub/video/frikanalen/fetchvideo.cgi?videoId=2077&quot;&gt;kreasjonisk
249 retorikk&lt;/a&gt;, men også fine
250 &lt;a href=&quot;http://www.nuug.no/pub/video/frikanalen/fetchvideo.cgi?videoId=407&quot;&gt;dokumentarer
251 om redningsselskapet&lt;/a&gt; og
252 &lt;a href=&quot;http://www.nuug.no/pub/video/frikanalen/fetchvideo.cgi?videoId=2204&quot;&gt;interessante
253 tegneserieanmeldelser&lt;/a&gt;. Det jeg derimot har hatt størst glede av,
254 er
255
256 &lt;a href=&quot;http://www.nuug.no/pub/video/frikanalen/fetchvideo.cgi?videoId=1556&quot;&gt;jul
257 i studentrådet&lt;/a&gt;, der hver episode var en fest å se på. Jeg håper
258 NUUG lykkes med å få ut sine opptak med like stor suksess.&lt;/p&gt;
259 </description>
260 </item>
261
262 <item>
263 <title>Lisensvalg for NUUG-opptakene endelig på plass</title>
264 <link>Lisensvalg_for_NUUG_opptakene_endelig_p___plass.html</link>
265 <guid isPermaLink="true">Lisensvalg_for_NUUG_opptakene_endelig_p___plass.html</guid>
266 <pubDate>Fri, 6 Mar 2009 21:20:00 +0100</pubDate>
267 <description>
268 &lt;p&gt;Etter mange års meditasjon over temaet, har NUUG endelig klart å
269 bestemme seg for hvilken lisens vi skal bruke på videoopptakene som
270 gjøres av NUUGs videogruppe. Ole Kristian har annonsert at lisensen
271 blir &lt;a href=&quot;http://creativecommons.org/licenses/by-sa/3.0/no/&quot;&gt;Creative
272 Commons Navngivelse-Del på samme vilkår 3.0 Norge&lt;/a&gt;. Jeg er veldig
273 glad for at denne saken endelig er landet. Lisensen for opptaket til
274 Stallman-foredraget ble en annen pga. at lisensvalget ikke var avklart
275 på forhånd og IFI og PING ønsket CC-BY-ND, og må ses på som et unntak
276 i denne sammenhengen.&lt;/p&gt;
277 </description>
278 </item>
279
280 <item>
281 <title>Teknisk program for Go Open 2009 er nesten ferdig</title>
282 <link>Teknisk_program_for_Go_Open_2009_er_nesten_ferdig.html</link>
283 <guid isPermaLink="true">Teknisk_program_for_Go_Open_2009_er_nesten_ferdig.html</guid>
284 <pubDate>Thu, 5 Mar 2009 22:30:00 +0100</pubDate>
285 <description>
286 &lt;p&gt;Etter lang tids jobbing begynner endelig programmet til det
287 tekniske sporet på konferansen &lt;a href=&quot;http://www.goopen.no/&quot;&gt;Go Open
288 2009&lt;/a&gt; å bli ferdig. Det blir 9 punkter på programmet, og etter alt
289 å dømme blir det disse 9:&lt;/p&gt;
290
291 &lt;ul&gt;
292
293 &lt;li&gt;&quot;Open Telephony: A solution greater than the sum of its parts&quot; med
294 Jon &quot;maddog&quot; Hall&lt;/li&gt;
295 &lt;li&gt;OpenSolaris-relatert med Ian Murdock fra SUN&lt;/li&gt;
296 &lt;li&gt;&quot;The inner workings of the OpenStreetmap project and the
297 technology used&quot; med Andy Allan &lt;/li&gt;
298 &lt;li&gt;Coreboot-relatert med Peter Stuge&lt;/li&gt;
299 &lt;li&gt;&quot;Gratis værdata fra Meteorologisk institutt&quot; med Trond Michelsen&lt;/li&gt;
300 &lt;li&gt;RRDtool/Nagios-relatert med Tobias Oetiker&lt;/li&gt;
301 &lt;li&gt;&quot;Developers guide to server-side productivity and fun using open
302 source platforms and frameworks&quot; med en gjeng folk fra
303 JavaBin-miljøet&lt;/li&gt;
304 &lt;li&gt;&quot;G(et)it Nå!&quot; med Marcus Ramberg&lt;/li&gt;
305 &lt;li&gt;Om kontrolltelling av valgresultater med fri programvare med Mitch
306 Trachtenberg&lt;/li&gt;
307
308 &lt;/ul&gt;
309
310 &lt;p&gt;De siste bekreftelsene og overskrifter mangler og kommer
311 forhåpentlig på plass før mandag, men jeg håper dette blir et program
312 flere enn meg vil sette pris på. Jeg gleder meg i hvert fall
313 stort.&lt;/p&gt;
314 </description>
315 </item>
316
317 <item>
318 <title>Checking server hardware support status for Dell, HP and IBM servers</title>
319 <link>Checking_server_hardware_support_status_for_Dell__HP_and_IBM_servers.html</link>
320 <guid isPermaLink="true">Checking_server_hardware_support_status_for_Dell__HP_and_IBM_servers.html</guid>
321 <pubDate>Sat, 28 Feb 2009 23:50:00 +0100</pubDate>
322 <description>
323 &lt;p&gt;At work, we have a few hundred Linux servers, and with that amount
324 of hardware it is important to keep track of when the hardware support
325 contract expire for each server. We have a machine (and service)
326 register, which until recently did not contain much useful besides the
327 machine room location and contact information for the system owner for
328 each machine. To make it easier for us to track support contract
329 status, I&#39;ve recently spent time on extending the machine register to
330 include information about when the support contract expire, and to tag
331 machines with expired contracts to make it easy to get a list of such
332 machines. I extended a perl script already being used to import
333 information about machines into the register, to also do some screen
334 scraping off the sites of Dell, HP and IBM (our majority of machines
335 are from these vendors), and automatically check the support status
336 for the relevant machines. This make the support status information
337 easily available and I hope it will make it easier for the computer
338 owner to know when to get new hardware or renew the support contract.
339 The result of this work documented that 27% of the machines in the
340 registry is without a support contract, and made it very easy to find
341 them. 27% might seem like a lot, but I see it more as the case of us
342 using machines a bit longer than the 3 years a normal support contract
343 last, to have test machines and a platform for less important
344 services. After all, the machines without a contract are working fine
345 at the moment and the lack of contract is only a problem if any of
346 them break down. When that happen, we can either fix it using spare
347 parts from other machines or move the service to another old
348 machine.&lt;/p&gt;
349
350 &lt;p&gt;I believe the code for screen scraping the Dell site was originally
351 written by Trond Hasle Amundsen, and later adjusted by me and Morten
352 Werner Forsbring. The HP scraping was written by me after reading a
353 nice article in ;login: about how to use WWW::Mechanize, and the IBM
354 scraping was written by me based on the Dell code. I know the HTML
355 parsing could be done using nice libraries, but did not want to
356 introduce more dependencies. This is the current incarnation:&lt;/p&gt;
357
358 &lt;pre&gt;
359 use LWP::Simple;
360 use POSIX;
361 use WWW::Mechanize;
362 use Date::Parse;
363 [...]
364 sub get_support_info {
365 my ($machine, $model, $serial, $productnumber) = @_;
366 my $str;
367
368 if ( $model =~ m/^Dell / ) {
369 # fetch website from Dell support
370 my $url = &quot;http://support.euro.dell.com/support/topics/topic.aspx/emea/shared/support/my_systems_info/no/details?c=no&amp;amp;cs=nodhs1&amp;amp;l=no&amp;amp;s=dhs&amp;amp;ServiceTag=$serial&quot;;
371 my $webpage = get($url);
372 return undef unless ($webpage);
373
374 my $daysleft = -1;
375 my @lines = split(/\n/, $webpage);
376 foreach my $line (@lines) {
377 next unless ($line =~ m/Beskrivelse/);
378 $line =~ s/&amp;lt;[^&gt;]+?&gt;/;/gm;
379 $line =~ s/^.+?;(Beskrivelse;)/$1/;
380
381 my @f = split(/\;/, $line);
382 @f = @f[13 .. $#f];
383 my $lastend = &quot;&quot;;
384 while ($f[3] eq &quot;DELL&quot;) {
385 my ($type, $startstr, $endstr, $days) = @f[0, 5, 7, 10];
386
387 my $start = POSIX::strftime(&quot;%Y-%m-%d&quot;,
388 localtime(str2time($startstr)));
389 my $end = POSIX::strftime(&quot;%Y-%m-%d&quot;,
390 localtime(str2time($endstr)));
391 $str .= &quot;$type $start -&gt; $end &quot;;
392 @f = @f[14 .. $#f];
393 $lastend = $end if ($end gt $lastend);
394 }
395 my $today = POSIX::strftime(&quot;%Y-%m-%d&quot;, localtime(time));
396 tag_machine_unsupported($machine)
397 if ($lastend lt $today);
398 }
399 } elsif ( $model =~ m/^HP / ) {
400 my $mech = WWW::Mechanize-&gt;new();
401 my $url =
402 &#39;http://www1.itrc.hp.com/service/ewarranty/warrantyInput.do&#39;;
403 $mech-&gt;get($url);
404 my $fields = {
405 &#39;BODServiceID&#39; =&gt; &#39;NA&#39;,
406 &#39;RegisteredPurchaseDate&#39; =&gt; &#39;&#39;,
407 &#39;country&#39; =&gt; &#39;NO&#39;,
408 &#39;productNumber&#39; =&gt; $productnumber,
409 &#39;serialNumber1&#39; =&gt; $serial,
410 };
411 $mech-&gt;submit_form( form_number =&gt; 2,
412 fields =&gt; $fields );
413 # Next step is screen scraping
414 my $content = $mech-&gt;content();
415
416 $content =~ s/&amp;lt;[^&gt;]+?&gt;/;/gm;
417 $content =~ s/\s+/ /gm;
418 $content =~ s/;\s*;/;;/gm;
419 $content =~ s/;[\s;]+/;/gm;
420
421 my $today = POSIX::strftime(&quot;%Y-%m-%d&quot;, localtime(time));
422
423 while ($content =~ m/;Warranty Type;/) {
424 my ($type, $status, $startstr, $stopstr) = $content =~
425 m/;Warranty Type;([^;]+);.+?;Status;(\w+);Start Date;([^;]+);End Date;([^;]+);/;
426 $content =~ s/^.+?;Warranty Type;//;
427 my $start = POSIX::strftime(&quot;%Y-%m-%d&quot;,
428 localtime(str2time($startstr)));
429 my $end = POSIX::strftime(&quot;%Y-%m-%d&quot;,
430 localtime(str2time($stopstr)));
431
432 $str .= &quot;$type ($status) $start -&gt; $end &quot;;
433
434 tag_machine_unsupported($machine)
435 if ($end lt $today);
436 }
437 } elsif ( $model =~ m/^IBM / ) {
438 # This code ignore extended support contracts.
439 my ($producttype) = $model =~ m/.*-\[(.{4}).+\]-/;
440 if ($producttype &amp;amp;&amp;amp; $serial) {
441 my $content =
442 get(&quot;http://www-947.ibm.com/systems/support/supportsite.wss/warranty?action=warranty&amp;amp;brandind=5000008&amp;amp;Submit=Submit&amp;amp;type=$producttype&amp;amp;serial=$serial&quot;);
443 if ($content) {
444 $content =~ s/&amp;lt;[^&gt;]+?&gt;/;/gm;
445 $content =~ s/\s+/ /gm;
446 $content =~ s/;\s*;/;;/gm;
447 $content =~ s/;[\s;]+/;/gm;
448
449 $content =~ s/^.+?;Warranty status;//;
450 my ($status, $end) = $content =~ m/;Warranty status;([^;]+)\s*;Expiration date;(\S+) ;/;
451
452 $str .= &quot;($status) -&gt; $end &quot;;
453
454 my $today = POSIX::strftime(&quot;%Y-%m-%d&quot;, localtime(time));
455 tag_machine_unsupported($machine)
456 if ($end lt $today);
457 }
458 }
459 }
460 return $str;
461 }
462 &lt;/pre&gt;
463
464 &lt;p&gt;Here are some examples on how to use the function, using fake
465 serial numbers. The information passed in as arguments are fetched
466 from dmidecode.&lt;/p&gt;
467
468 &lt;pre&gt;
469 print get_support_info(&quot;hp.host&quot;, &quot;HP ProLiant BL460c G1&quot;, &quot;1234567890&quot;
470 &quot;447707-B21&quot;);
471 print get_support_info(&quot;dell.host&quot;, &quot;Dell Inc. PowerEdge 2950&quot;, &quot;1234567&quot;);
472 print get_support_info(&quot;ibm.host&quot;, &quot;IBM eserver xSeries 345 -[867061X]-&quot;,
473 &quot;1234567&quot;);
474 &lt;/pre&gt;
475
476 &lt;p&gt;I would recommend this approach for tracking support contracts for
477 everyone with more than a few computers to administer. :)&lt;/p&gt;
478
479 &lt;p&gt;Update 2009-03-06: The IBM page do not include extended support
480 contracts, so it is useless in that case. The original Dell code do
481 not handle extended support contracts either, but has been updated to
482 do so.&lt;/p&gt;
483 </description>
484 </item>
485
486 <item>
487 <title>Using bar codes at a computing center</title>
488 <link>Using_bar_codes_at_a_computing_center.html</link>
489 <guid isPermaLink="true">Using_bar_codes_at_a_computing_center.html</guid>
490 <pubDate>Fri, 20 Feb 2009 08:50:00 +0100</pubDate>
491 <description>
492 &lt;p&gt;At work with the University of Oslo, we have several hundred computers
493 in our computing center. This give us a challenge in tracking the
494 location and cabling of the computers, when they are added, moved and
495 removed. Some times the location register is not updated when a
496 computer is inserted or moved and we then have to search the room for
497 the &quot;missing&quot; computer.&lt;/p&gt;
498
499 &lt;p&gt;In the last issue of Linux Journal, I came across a project
500 &lt;a href=&quot;http://www.libdmtx.org/&quot;&gt;libdmtx&lt;/a&gt; to write and read bar
501 code blocks as defined in the
502 &lt;a href=&quot;http://en.wikipedia.org/wiki/Data_Matrix&quot;&gt;The Data Matrix
503 Standard&lt;/a&gt;. This is bar codes that can be read with a normal
504 digital camera, for example that on a cell phone, and several such bar
505 codes can be read by libdmtx from one picture. The bar code standard
506 allow up to 2 KiB to be written in the tag. There is another project
507 with &lt;a href=&quot;http://www.terryburton.co.uk/barcodewriter/&quot;&gt;a bar code
508 writer written in postscript&lt;/a&gt; capable of creating such bar codes,
509 but this was the first time I found a tool to read these bar
510 codes.&lt;/p&gt;
511
512 &lt;p&gt;It occurred to me that this could be used to tag and track the
513 machines in our computing center. If both racks and computers are
514 tagged this way, we can use a picture of the rack and all its
515 computers to detect the rack location of any computer in that rack.
516 If we do this regularly for the entire room, we will find all
517 locations, and can detect movements and removals.&lt;/p&gt;
518
519 &lt;p&gt;I decided to test if this would work in practice, and picked a
520 random rack and tagged all the machines with their names. Next, I
521 took pictures with my digital camera, and gave the dmtxread program
522 these JPEG pictures to see how many tags it could read. This worked
523 fairly well. If the pictures was well focused and not taken from the
524 side, all tags in the image could be read. Because of limited space
525 between the racks, I was unable to get a good picture of the entire
526 rack, but could without problem read all tags from a picture covering
527 about half the rack. I had to limit the search time used by dmtxread
528 to 60000 ms to make sure it terminated in a reasonable time frame.&lt;/p&gt;
529
530 &lt;p&gt;My conclusion is that this could work, and we should probably look
531 at adjusting our computer tagging procedures to use bar codes for
532 easier automatic tracking of computers.&lt;/p&gt;
533 </description>
534 </item>
535
536 </channel>
537 </rss>