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">
4 <title>Petter Reinholdtsen
</title>
5 <description></description>
7 <atom:link href=
"index.rss" rel=
"self" type=
"application/rss+xml" />
10 <title>Checking server hardware support status for Dell, HP and IBM servers
</title>
11 <link>Checking_server_hardware_support_status_for_Dell__HP_and_IBM_servers.html
</link>
12 <guid isPermaLink=
"true">Checking_server_hardware_support_status_for_Dell__HP_and_IBM_servers.html
</guid>
13 <pubDate>Sat,
28 Feb
2009 23:
50:
00 +
0100</pubDate>
15 <p
>At work, we have a few hundred Linux servers, and with that amount
16 of hardware it is important to keep track of when the hardware support
17 contract expire for each server. We have a machine (and service)
18 register, which until recently did not contain much useful besides the
19 machine room location and contact information for the system owner for
20 each machine. To make it easier for us to track support contract
21 status, I
've recently spent time on extending the machine register to
22 include information about when the support contract expire, and to tag
23 machines with expired contracts to make it easy to get a list of such
24 machines. I extended a perl script already being used to import
25 information about machines into the register, to also do some screen
26 scraping off the sites of Dell, HP and IBM (our majority of machines
27 are from these vendors), and automatically check the support status
28 for the relevant machines. This make the support status information
29 easily available and I hope it will make it easier for the computer
30 owner to know when to get new hardware or renew the support contract.
31 The result of this work documented that
27% of the machines in the
32 registry is without a support contract, and made it very easy to find
33 them.
27% might seem like a lot, but I see it more as the case of us
34 using machines a bit longer than the
3 years a normal support contract
35 last, to have test machines and a platform for less important
36 services. After all, the machines without a contract are working fine
37 at the moment and the lack of contract is only a problem if any of
38 them break down. When that happen, we can either fix it using spare
39 parts from other machines or move the service to another old
42 <p
>I believe the code for screen scraping the Dell site was originally
43 written by Trond Hasle Amundsen, and later adjusted by me and Morten
44 Werner Forsbring. The HP scraping was written by me after reading a
45 nice article in ;login: about how to use WWW::Mechanize, and the IBM
46 scraping was written by me based on the Dell code. I know the HTML
47 parsing could be done using nice libraries, but did not want to
48 introduce more dependencies. This is the current incarnation:
</p
>
56 sub get_support_info {
57 my ($machine, $model, $serial, $productnumber) = @_;
60 if ( $model =~ m/^Dell / ) {
61 # fetch website from Dell support
62 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
";
63 my $webpage = get($url);
64 return undef unless ($webpage);
67 my @lines = split(/\n/, $webpage);
68 foreach my $line (@lines) {
69 next unless ($line =~ m/Beskrivelse/);
70 $line =~ s/
&lt;[^
>]+?
>/;/gm;
71 $line =~ m%;(\d{
2})/(\d{
2})/(\d{
4});+(\d{
2})/(\d{
2})/(\d{
4});%g;
72 my $start =
"$
3-$
1-$
2";
73 my $end =
"$
6-$
4-$
5";
74 $str =
"$start -
> $end
";
75 my $today = POSIX::strftime(
"%Y-%m-%d
", localtime(time));
76 tag_machine_unsupported($machine)
79 } elsif ( $model =~ m/^HP / ) {
80 my $mech = WWW::Mechanize-
>new();
82 'http://www1.itrc.hp.com/service/ewarranty/warrantyInput.do
';
85 'BODServiceID
' =
> 'NA
',
86 'RegisteredPurchaseDate
' =
> '',
87 'country
' =
> 'NO
',
88 'productNumber
' =
> $productnumber,
89 'serialNumber1
' =
> $serial,
91 $mech-
>submit_form( form_number =
> 2,
92 fields =
> $fields );
93 # Next step is screen scraping
94 my $content = $mech-
>content();
96 $content =~ s/
&lt;[^
>]+?
>/;/gm;
97 $content =~ s/\s+/ /gm;
98 $content =~ s/;\s*;/;;/gm;
99 $content =~ s/;[\s;]+/;/gm;
101 my $today = POSIX::strftime(
"%Y-%m-%d
", localtime(time));
103 while ($content =~ m/;Warranty Type;/) {
104 my ($type, $status, $startstr, $stopstr) = $content =~
105 m/;Warranty Type;([^;]+);.+?;Status;(\w+);Start Date;([^;]+);End Date;([^;]+);/;
106 $content =~ s/^.+?;Warranty Type;//;
107 my $start = POSIX::strftime(
"%Y-%m-%d
",
108 localtime(str2time($startstr)));
109 my $end = POSIX::strftime(
"%Y-%m-%d
",
110 localtime(str2time($stopstr)));
112 $str .=
"$type ($status) $start -
> $end
";
114 tag_machine_unsupported($machine)
117 } elsif ( $model =~ m/^IBM / ) {
118 my ($producttype) = $model =~ m/.*-\[(.{
4}).+\]-/;
119 if ($producttype
&amp;
&amp; $serial) {
121 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
");
123 $content =~ s/
&lt;[^
>]+?
>/;/gm;
124 $content =~ s/\s+/ /gm;
125 $content =~ s/;\s*;/;;/gm;
126 $content =~ s/;[\s;]+/;/gm;
128 $content =~ s/^.+?;Warranty status;//;
129 my ($status, $end) = $content =~ m/;Warranty status;([^;]+)\s*;Expiration date;(\S+) ;/;
131 $str .=
"($status) -
> $end
";
133 my $today = POSIX::strftime(
"%Y-%m-%d
", localtime(time));
134 tag_machine_unsupported($machine)
143 <p
>Here are some examples on how to use the function, using fake
144 serial numbers. The information passed in as arguments are fetched
145 from dmidecode.
</p
>
148 print get_support_info(
"hp.host
",
"HP ProLiant BL460c G1
",
"1234567890"
149 "447707-B21
");
150 print get_support_info(
"dell.host
",
"Dell Inc. PowerEdge
2950",
"1234567");
151 print get_support_info(
"ibm.host
",
"IBM eserver xSeries
345 -[
867061X]-
",
152 "1234567");
155 <p
>I would recommend this approach for tracking support contracts for
156 everyone with more than a new computers to administer. :)
</p
>
161 <title>Using bar codes at a computing center
</title>
162 <link>Using_bar_codes_at_a_computing_center.html
</link>
163 <guid isPermaLink=
"true">Using_bar_codes_at_a_computing_center.html
</guid>
164 <pubDate>Fri,
20 Feb
2009 08:
50:
00 +
0100</pubDate>
166 <p
>At work with the University of Oslo, we have several hundred computers
167 in our computing center. This give us a challenge in tracking the
168 location and cabling of the computers, when they are added, moved and
169 removed. Some times the location register is not updated when a
170 computer is inserted or moved and we then have to search the room for
171 the
"missing
" computer.
</p
>
173 <p
>In the last issue of Linux Journal, I came across a project
174 <a href=
"http://www.libdmtx.org/
">libdmtx
</a
> to write and read bar
175 code blocks as defined in the
176 <a href=
"http://en.wikipedia.org/wiki/Data_Matrix
">The Data Matrix
177 Standard
</a
>. This is bar codes that can be read with a normal
178 digital camera, for example that on a cell phone, and several such bar
179 codes can be read by libdmtx from one picture. The bar code standard
180 allow up to
2 KiB to be written in the tag. There is another project
181 with
<a href=
"http://www.terryburton.co.uk/barcodewriter/
">a bar code
182 writer written in postscript
</a
> capable of creating such bar codes,
183 but this was the first time I found a tool to read these bar
186 <p
>It occurred to me that this could be used to tag and track the
187 machines in our computing center. If both racks and computers are
188 tagged this way, we can use a picture of the rack and all its
189 computers to detect the rack location of any computer in that rack.
190 If we do this regularly for the entire room, we will find all
191 locations, and can detect movements and removals.
</p
>
193 <p
>I decided to test if this would work in practice, and picked a
194 random rack and tagged all the machines with their names. Next, I
195 took pictures with my digital camera, and gave the dmtxread program
196 these JPEG pictures to see how many tags it could read. This worked
197 fairly well. If the pictures was well focused and not taken from the
198 side, all tags in the image could be read. Because of limited space
199 between the racks, I was unable to get a good picture of the entire
200 rack, but could without problem read all tags from a picture covering
201 about half the rack. I had to limit the search time used by dmtxread
202 to
60000 ms to make sure it terminated in a reasonable time frame.
</p
>
204 <p
>My conclusion is that this could work, and we should probably look
205 at adjusting our computer tagging procedures to use bar codes for
206 easier automatic tracking of computers.
</p
>
211 <title>Kart over overvåkningskamera i Norge
</title>
212 <link>Kart_over_overv__kningskamera_i_Norge.html
</link>
213 <guid isPermaLink=
"true">Kart_over_overv__kningskamera_i_Norge.html
</guid>
214 <pubDate>Sun,
15 Feb
2009 22:
30:
00 +
0100</pubDate>
217 <a href=
"http://www.personvern.no/
">personvernforeningen
</a
> har jeg
219 <a href=
"http://personvern.no/wiki/index.php/Kameraovervåkning
">et
220 kart over overvåkningskamera i Norge
</a
>. Bakgrunnen er at det etter
221 min mening bærer galt avsted med den massive overvåkningen som
222 finner sted i Norge i dag, og at flere og flere overvåkningskamera
223 gjør det vanskeligere og vanskeligere å gå igjennom livet uten at
224 små og store brødre trenger inn i ens private sfære. Datatilsynet
225 har et register over kameraovervåkning, men det viser seg å være
226 ubrukelig både til å finne ut hvor det er kamera plassert, og til å
227 sjekke om et kamera en kommer over er registrert. Dette nye kartet
228 fikser en av disse manglene, men det vil fortsatt være umulig å vite
229 om et kamera er registrert etter lovens krav eller ikke. Pr. nå er
230 22 kamera i Oslo registrert, og det trengs flere til å registrere
231 alle. Informasjonen registreres direkte inn i
<a
232 href=
"http://www.openstreetmap.org/
">OpenStreetmap
</a
>, sa hentes det
233 automatisk over i spesialkartet.
</p
>
238 <title>Endelig er Debian Lenny gitt ut
</title>
239 <link>Endelig_er_Debian_Lenny_gitt_ut.html
</link>
240 <guid isPermaLink=
"true">Endelig_er_Debian_Lenny_gitt_ut.html
</guid>
241 <pubDate>Sun,
15 Feb
2009 11:
50:
00 +
0100</pubDate>
243 <p
>Endelig er
<a href=
"http://www.debian.org/
">Debian
</a
>
244 <a href=
"http://www.debian.org/News/
2009/
20090214">Lenny
</a
> gitt ut.
245 Et langt steg videre for Debian-prosjektet, og en rekke nye
246 programpakker blir nå tilgjengelig for de av oss som bruker den
247 stabile utgaven av Debian. Neste steg er nå å få
248 <a href=
"http://www.skolelinux.org/
">Skolelinux
</a
> /
249 <a href=
"http://wiki.debian.org/DebianEdu/
">Debian Edu
</a
> ferdig
250 oppdatert for den nye utgaven, slik at en oppdatert versjon kan
251 slippes løs på skolene. Takk til alle debian-utviklerne som har
252 gjort dette mulig. Endelig er f.eks. fungerende avhengighetsstyrt
253 bootsekvens tilgjengelig i stabil utgave, vha pakken
254 <tt
>insserv
</tt
>.
</p
>
259 <title>Første vellykkede videostrøm fra NUUG
</title>
260 <link>F__rste_vellykkede_videostr__m_fra_NUUG.html
</link>
261 <guid isPermaLink=
"true">F__rste_vellykkede_videostr__m_fra_NUUG.html
</guid>
262 <pubDate>Wed,
11 Feb
2009 06:
30:
00 +
0100</pubDate>
264 <p
>Jeg ble glad for å se under
265 <a href=
"http://www.nuug.no/aktiviteter/
20090210-compiz/
">gårdagens
266 medlemsmøte
</a
> i NUUG Oslo at utsending av live-video fra møtet
267 fungerte for første gang. Forrige gang ble det ved en teknisk tabbe
268 sendt video uten lyd. Vi kan takke Ole Kristian Lien og resten av
269 videogruppen i NUUG for at nå NUUG-medlemmer over det ganske land
270 kunne se foredraget samtidig med oss i Oslo. Vi opplevde til og med
271 under møtet å motta spørsmål via IRC som ble besvart der og da.
272 Opptaket publiseres så snart det er kopiert over til NUUGs
273 webserver og komprimert.
</p
>
278 <title>Min reprap tar sakte form
</title>
279 <link>Min_reprap_tar_sakte_form.html
</link>
280 <guid isPermaLink=
"true">Min_reprap_tar_sakte_form.html
</guid>
281 <pubDate>Tue,
3 Feb
2009 13:
30:
00 +
0100</pubDate>
283 <p
>Min reprap begynner å ta form. Den er nå kommet så langt at den er
284 blitt en kubisk ramme. Z-aksen er montert men ikke kalibrert, og det
285 hele er klart for litt enkel testing. Har møtt på to problemer som
286 blokkerer videre montering, men har oppnått kontakt med Audun Vaaler
287 ved Høgskolen i Østfold som forteller at de er nesten ferdig med et
288 tilsvarende byggesett som det jeg tar utgangspunkt i, og håper de kan
289 forklare hvordan de kom rundt problemene. De to problemene er
290 relatert til Z-aksen og Y-aksen.
</p
>
292 <p
>For Z-aksen, er det et stjernehjul som festes på motoraksen ved
293 tannjulet som driver z-aksebåndet og som skal holde båndet på plass.
294 Problemet med det nederste stjernejulet er at det er helt løst, og
295 blir liggende på motoren
5 mm nedenfor tannjulet, i stedet for å ligge
296 inntil tannjulet slik det skal. Mulig løsningen er å borre i
297 stjernehjulet, eller lime det fast.
</p
>
299 <p
>For Y-aksen, er det en plastdel som ser ut til å mangle som skulle
300 dekket to skruver som kommer i veien for kraftoverføringsmekanismen
301 fra motoren til selve aksen, slik at mekanismen kan snurre fritt.
</p
>
303 <p
>Når det gjelder elektronikken til min reprap, så er min gode venn
304 Anders Rosnes igang med å lodde sammen delene og han forteller at
305 koblingsbordet for Arduino er klart, og en temperatursensor og en
306 optoswitch er også klar. Gleder meg til å teste dem. Må bare finne
307 ut hvordan jeg laster opp firmware i Arduino-en. :)
</p
>
309 <p
>Når det gjelder NUUGs reprap-prosjekt, så er det framgang og Ole
310 Kristian, Tollef og Ketil besøke IFI for å få fortgang i produksjon av
311 plastdeler, og Ole Kristian forteller at han har funnet en kilde til
312 de fleste metalldelene. Gleder meg til å se resultaten av det
318 <title>Norge trenger en personvernforening
</title>
319 <link>Norge_trenger_en_personvernforening.html
</link>
320 <guid isPermaLink=
"true">Norge_trenger_en_personvernforening.html
</guid>
321 <pubDate>Sun,
1 Feb
2009 18:
35:
00 +
0100</pubDate>
323 <p
>De siste årene har jeg forsøkt å få liv i
324 <a href=
"http://www.personvern.no/
">foreningen Personvern i Norge
</a
>. Norge
325 trenger en organisasjon som jobber med å sette personvern på agendaen
326 og som kan være en motvekt til de mange som gjerne raderer bort
327 personvernet av behagelighetshensyn eller ut fra villfarelsen om at en
328 får økt sikkerhet av å redusere personvernet. Foreløbig har det ikke
329 lykkes å få på plass kritisk masse av interesserte på epostlisten, og
330 nå tror jeg det er på tide å endre tilnærming. I stedet for å forsøke
331 å rekruttere folk til epostlisten og håpe at når nok folk er samlet
332 vil noen ta initiativ og sørge for at det begynner å skje ting, så
333 tror jeg det er en ide å ta utgangspunkt i de som er der i dag og
334 sette sammen et interrimstyre. Forslaget er sendt til epostlisten, så
335 nå får vi se om noen er enig.
</p
>
340 <title>Intellektuelt privilegium - et bedre IP-begrep
</title>
341 <link>Intellektuelt_privilegium___et_bedre_IP_begrep.html
</link>
342 <guid isPermaLink=
"true">Intellektuelt_privilegium___et_bedre_IP_begrep.html
</guid>
343 <pubDate>Sun,
1 Feb
2009 15:
06:
00 +
0100</pubDate>
345 <p
>Ofte brukes intellektuell eiendom som samlebegrep for opphavsrett,
346 patenter, varemerker og forretningshemmeligheter. Problemet med dette
347 begrepet er at det er svært misvisende. For det første er ingen av de
348 begrensede monopolene det her er snakk om som kan kalles eiendom, og
349 for det andre er egenskapene til de ulike monopolene så forskjellige
350 at det er mer tilslørende enn opplysende å gruppere dem sammen i et
351 sekkebegrep. Blant annet Richard Stallman har
352 <a href=
"http://www.gnu.org/philosophy/not-ipr.html
">skrevet litt om dette
</a
>.
</p
>
354 <p
>I dag kom jeg over
355 <a href=
"http://blogs.sun.com/webmink/entry/intellectual_privilege
">en
356 bloggpost fra Simon Phipps
</a
> som foreslår å bruke intellektuelt
357 privilegium som begrep i stedet, da det gjør det klarere at det ikke
358 er snakk om eiendom, men et tidsbegrenset monopol. Simon Phipps
359 forteller videre at noen jobber med å skrive
360 <a href=
"http://www.intellectualprivilege.com/book.html
">en bok med
361 tittel Intellectual Privilege
</a
>, og at boken er anbefalt av Lawrence
362 Lessig. Jeg tror jeg skal begynne å bruke begrepet intellektuelt
363 privilegium når jeg snakker om opphavsrett, patenter, varemerker og
364 forretningshemmeligheter framover.
</p
>
369 <title>Fri og åpen standard, slik Digistan ser det
</title>
370 <link>Fri__og___pen_standard__slik_Digistan_ser_det.html
</link>
371 <guid isPermaLink=
"true">Fri__og___pen_standard__slik_Digistan_ser_det.html
</guid>
372 <pubDate>Sat,
31 Jan
2009 23:
10:
00 +
0100</pubDate>
374 <p
>Det er mange ulike definisjoner om hva en åpen standard er for noe,
375 og NUUG hadde
<a href=
"http://www.nuug.no/dokumenter/standard-presse-def-
200506.txt
">en
376 pressemelding om dette sommeren
2005</a
>. Der ble definisjonen til
377 <a href=
"http://www.aaben-standard.dk/
">DKUUG
</a
>,
378 <a href=
"http://europa.eu.int/idabc/servlets/Doc?id=
19529">EU-kommissionens
379 European Interoperability Framework ( side
9)
</a
> og
380 <a href=
"http://www.teknologiradet.no/files/
7polert_copy.htm
">teknologirådet
</a
> omtalt.
382 Siden den gang har regjeringens standardiseringsråd dukket opp, og de
383 ser ut til å har tatt utgangspunkt i EU-kommisjonens definisjon i
384 <a href=
"http://www.regjeringen.no/nb/dep/fad/kampanjer/standardiseringsradet/arbeidsmetodikk.html?id=
476407">sin
385 arbeidsmetodikk
</a
>. Personlig synes jeg det er en god ide, da
386 kravene som stilles der gjør at alle markedsaktører får like vilkår,
387 noe som kommer kundene til gode ved hjelp av økt konkurranse.
</p
>
389 <p
>I sommer kom det en ny definisjon på banen.
390 <a href=
"http://www.digistan.org/
">Digistan
</a
> lanserte
391 <a href=
"http://www.digistan.org/open-standard:definition
">en
392 definisjon på en fri og åpen standard
</a
>. Jeg liker måten de bryter
393 ut av diskusjonen om hva som kreves for å kalle noe en åpen standard
394 ved å legge på et ord og poengtere at en standard som er både åpen og
395 fri har noen spesielle krav. Her er den definisjonen etter rask
396 oversettelse fra engelsk til norsk av meg:
</p
>
399 <p
><strong
>Definisjonen av en fri og åpen standard
</strong
></p
>
401 <p
>Den digitale standardorganisasjonen definierer fri og åpen standard
402 som følger:
</p
>
404 <li
>En fri og åpen standard er immun for leverandørinnlåsing i alle
405 stadier av dens livssyklus. Immuniteten fra leverandørinnlåsing gjør
406 det mulig å fritt bruke, forbedre, stole på og utvide en standard over
408 <li
>Standarden er adoptert og vil bli vedlikeholdt av en ikke-kommersiell
409 organisasjon, og dens pågående utvikling gjøres med en åpen
410 beslutningsprosedyre som er tilgjengelig for alle som er interessert i
412 <li
>Standarden er publisert og spesifikasjonsdokumentet er fritt
413 tilgjengelig. Det må være tillatt for alle å kopiere, distribuere og
414 bruke den uten begresninger.
</li
>
415 <li
>Patentene som muligens gjelder (deler av) standarden er gjort
416 ugjenkallelig tilgjengelig uten krav om betaling.
</li
>
417 <li
>Det er ingen begresninger i gjenbruk av standarden.
</li
>
419 <p
>Det økonomiske resultatet av en fri og åpen standard, som kan
420 måles, er at det muliggjør perfekt konkurranse mellom leverandører av
421 produkter basert på standarden.
</p
>
424 <p
>(Tar gjerne imot forbedringer av oversettelsen.)
</p
>
429 <title>Transendentalt tullball og en funksjonell tilnærming
</title>
430 <link>Transendentalt_tullball_og_en_funksjonell_tiln__rming.html
</link>
431 <guid isPermaLink=
"true">Transendentalt_tullball_og_en_funksjonell_tiln__rming.html
</guid>
432 <pubDate>Sat,
24 Jan
2009 15:
00:
00 +
0100</pubDate>
435 <a href=
"http://debian-administration.org/users/dkg/weblog/
39">en
436 bloggpost fra Daniel Kahn Gillmor
</a
> som forteller at
437 Eben Moglen, juridisk rådgiver for FSF og stifteren av Software Fredom
438 Law Center, i sitt kurs har referert Felix Cohen sin artikkel
439 <a href=
"http://moglen.law.columbia.edu/LCS/cohen-transcendental.pdf
">Trancendental
440 Nonsense and the Functional Approach
</a
> fra
1935. Det må jeg si var
441 svært interessant for å forstå hvordan og hvorfor immaterialretten har
442 utvidet sitt virkeområde og hvor lenge det har pågått.
</p
>
444 <p
>Innlegget minner meg på
445 <a href=
"https://penta.debconf.org/~joerg/events/
161.en.html
">en
446 presentasjon jeg overvar
</a
> på Debconf
7 om hvordan innføring og
447 utvidelse av opphavsretten ble debattert på
1700-tallet. Anbefaler å
448 se den presentasjonen som er tilgjengelig på video i
449 <a href=
"http://meetings-archive.debian.net/pub/debian-meetings/
2007/debconf7/low/
072_Free_as_in_Market_the_misunderstood_entanglement_of_ethics_software_and_profits.ogg
">lav
</a
>
451 <a href=
"http://meetings-archive.debian.net/pub/debian-meetings/
2007/debconf7/high/
072_Free_as_in_Market_the_misunderstood_entanglement_of_ethics_software_and_profits.ogg
">høy
</a
>
452 oppløsning.
</p
>