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>Lisensvalg for NUUG-opptakene endelig på plass
</title>
11 <link>Lisensvalg_for_NUUG_opptakene_endelig_p___plass.html
</link>
12 <guid isPermaLink=
"true">Lisensvalg_for_NUUG_opptakene_endelig_p___plass.html
</guid>
13 <pubDate>Fri,
6 Mar
2009 21:
20:
00 +
0100</pubDate>
15 <p
>Etter mange års meditasjon over temaet, har NUUG endelig klart å
16 bestemme seg for hvilken lisens vi skal bruke på videoopptakene som
17 gjøres av NUUGs videogruppe. Ole Kristian har annonsert at lisensen
18 blir
<a href=
"http://creativecommons.org/licenses/by-sa/
3.0/no/
">Creative
19 Commons Navngivelse-Del på samme vilkår
3.0 Norge
</a
>. Jeg er veldig
20 glad for at denne saken endelig er landet. Lisensen for opptaket til
21 Stallman-foredraget ble en annen pga. at lisensvalget ikke var avklart
22 på forhånd og IFI og PING ønsket CC-BY-ND, og må ses på som et unntak
23 i denne sammenhengen.
</p
>
28 <title>Teknisk program for Go Open
2009 er nesten ferdig
</title>
29 <link>Teknisk_program_for_Go_Open_2009_er_nesten_ferdig.html
</link>
30 <guid isPermaLink=
"true">Teknisk_program_for_Go_Open_2009_er_nesten_ferdig.html
</guid>
31 <pubDate>Thu,
5 Mar
2009 22:
30:
00 +
0100</pubDate>
33 <p
>Etter lang tids jobbing begynner endelig programmet til det
34 tekniske sporet på konferansen
<a href=
"http://www.goopen.no/
">Go Open
35 2009</a
> å bli ferdig. Det blir
9 punkter på programmet, og etter alt
36 å dømme blir det disse
9:
</p
>
40 <li
>"Open Telephony: A solution greater than the sum of its parts
" med
41 Jon
"maddog
" Hall
</li
>
42 <li
>OpenSolaris-relatert med Ian Murdock fra SUN
</li
>
43 <li
>"The inner workings of the OpenStreetmap project and the
44 technology used
" med Andy Allan
</li
>
45 <li
>Coreboot-relatert med Peter Stuge
</li
>
46 <li
>"Gratis værdata fra Meteorologisk institutt
" med Trond Michelsen
</li
>
47 <li
>RRDtool/Nagios-relatert med Tobias Oetiker
</li
>
48 <li
>"Developers guide to server-side productivity and fun using open
49 source platforms and frameworks
" med en gjeng folk fra
50 JavaBin-miljøet
</li
>
51 <li
>"G(et)it Nå!
" med Marcus Ramberg
</li
>
52 <li
>Om kontrolltelling av valgresultater med fri programvare med Mitch
53 Trachtenberg
</li
>
57 <p
>De siste bekreftelsene og overskrifter mangler og kommer
58 forhåpentlig på plass før mandag, men jeg håper dette blir et program
59 flere enn meg vil sette pris på. Jeg gleder meg i hvert fall
65 <title>Checking server hardware support status for Dell, HP and IBM servers
</title>
66 <link>Checking_server_hardware_support_status_for_Dell__HP_and_IBM_servers.html
</link>
67 <guid isPermaLink=
"true">Checking_server_hardware_support_status_for_Dell__HP_and_IBM_servers.html
</guid>
68 <pubDate>Sat,
28 Feb
2009 23:
50:
00 +
0100</pubDate>
70 <p
>At work, we have a few hundred Linux servers, and with that amount
71 of hardware it is important to keep track of when the hardware support
72 contract expire for each server. We have a machine (and service)
73 register, which until recently did not contain much useful besides the
74 machine room location and contact information for the system owner for
75 each machine. To make it easier for us to track support contract
76 status, I
've recently spent time on extending the machine register to
77 include information about when the support contract expire, and to tag
78 machines with expired contracts to make it easy to get a list of such
79 machines. I extended a perl script already being used to import
80 information about machines into the register, to also do some screen
81 scraping off the sites of Dell, HP and IBM (our majority of machines
82 are from these vendors), and automatically check the support status
83 for the relevant machines. This make the support status information
84 easily available and I hope it will make it easier for the computer
85 owner to know when to get new hardware or renew the support contract.
86 The result of this work documented that
27% of the machines in the
87 registry is without a support contract, and made it very easy to find
88 them.
27% might seem like a lot, but I see it more as the case of us
89 using machines a bit longer than the
3 years a normal support contract
90 last, to have test machines and a platform for less important
91 services. After all, the machines without a contract are working fine
92 at the moment and the lack of contract is only a problem if any of
93 them break down. When that happen, we can either fix it using spare
94 parts from other machines or move the service to another old
97 <p
>I believe the code for screen scraping the Dell site was originally
98 written by Trond Hasle Amundsen, and later adjusted by me and Morten
99 Werner Forsbring. The HP scraping was written by me after reading a
100 nice article in ;login: about how to use WWW::Mechanize, and the IBM
101 scraping was written by me based on the Dell code. I know the HTML
102 parsing could be done using nice libraries, but did not want to
103 introduce more dependencies. This is the current incarnation:
</p
>
111 sub get_support_info {
112 my ($machine, $model, $serial, $productnumber) = @_;
115 if ( $model =~ m/^Dell / ) {
116 # fetch website from Dell support
117 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
";
118 my $webpage = get($url);
119 return undef unless ($webpage);
122 my @lines = split(/\n/, $webpage);
123 foreach my $line (@lines) {
124 next unless ($line =~ m/Beskrivelse/);
125 $line =~ s/
&lt;[^
>]+?
>/;/gm;
126 $line =~ s/^.+?;(Beskrivelse;)/$
1/;
128 my @f = split(/\;/, $line);
130 my $lastend =
"";
131 while ($f[
3] eq
"DELL
") {
132 my ($type, $startstr, $endstr, $days) = @f[
0,
5,
7,
10];
134 my $start = POSIX::strftime(
"%Y-%m-%d
",
135 localtime(str2time($startstr)));
136 my $end = POSIX::strftime(
"%Y-%m-%d
",
137 localtime(str2time($endstr)));
138 $str .=
"$type $start -
> $end
";
140 $lastend = $end if ($end gt $lastend);
142 my $today = POSIX::strftime(
"%Y-%m-%d
", localtime(time));
143 tag_machine_unsupported($machine)
144 if ($lastend lt $today);
146 } elsif ( $model =~ m/^HP / ) {
147 my $mech = WWW::Mechanize-
>new();
149 'http://www1.itrc.hp.com/service/ewarranty/warrantyInput.do
';
152 'BODServiceID
' =
> 'NA
',
153 'RegisteredPurchaseDate
' =
> '',
154 'country
' =
> 'NO
',
155 'productNumber
' =
> $productnumber,
156 'serialNumber1
' =
> $serial,
158 $mech-
>submit_form( form_number =
> 2,
159 fields =
> $fields );
160 # Next step is screen scraping
161 my $content = $mech-
>content();
163 $content =~ s/
&lt;[^
>]+?
>/;/gm;
164 $content =~ s/\s+/ /gm;
165 $content =~ s/;\s*;/;;/gm;
166 $content =~ s/;[\s;]+/;/gm;
168 my $today = POSIX::strftime(
"%Y-%m-%d
", localtime(time));
170 while ($content =~ m/;Warranty Type;/) {
171 my ($type, $status, $startstr, $stopstr) = $content =~
172 m/;Warranty Type;([^;]+);.+?;Status;(\w+);Start Date;([^;]+);End Date;([^;]+);/;
173 $content =~ s/^.+?;Warranty Type;//;
174 my $start = POSIX::strftime(
"%Y-%m-%d
",
175 localtime(str2time($startstr)));
176 my $end = POSIX::strftime(
"%Y-%m-%d
",
177 localtime(str2time($stopstr)));
179 $str .=
"$type ($status) $start -
> $end
";
181 tag_machine_unsupported($machine)
184 } elsif ( $model =~ m/^IBM / ) {
185 # This code ignore extended support contracts.
186 my ($producttype) = $model =~ m/.*-\[(.{
4}).+\]-/;
187 if ($producttype
&amp;
&amp; $serial) {
189 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
");
191 $content =~ s/
&lt;[^
>]+?
>/;/gm;
192 $content =~ s/\s+/ /gm;
193 $content =~ s/;\s*;/;;/gm;
194 $content =~ s/;[\s;]+/;/gm;
196 $content =~ s/^.+?;Warranty status;//;
197 my ($status, $end) = $content =~ m/;Warranty status;([^;]+)\s*;Expiration date;(\S+) ;/;
199 $str .=
"($status) -
> $end
";
201 my $today = POSIX::strftime(
"%Y-%m-%d
", localtime(time));
202 tag_machine_unsupported($machine)
211 <p
>Here are some examples on how to use the function, using fake
212 serial numbers. The information passed in as arguments are fetched
213 from dmidecode.
</p
>
216 print get_support_info(
"hp.host
",
"HP ProLiant BL460c G1
",
"1234567890"
217 "447707-B21
");
218 print get_support_info(
"dell.host
",
"Dell Inc. PowerEdge
2950",
"1234567");
219 print get_support_info(
"ibm.host
",
"IBM eserver xSeries
345 -[
867061X]-
",
220 "1234567");
223 <p
>I would recommend this approach for tracking support contracts for
224 everyone with more than a few computers to administer. :)
</p
>
226 <p
>Update
2009-
03-
06: The IBM page do not include extended support
227 contracts, so it is useless in that case. The original Dell code do
228 not handle extended support contracts either, but has been updated to
234 <title>Using bar codes at a computing center
</title>
235 <link>Using_bar_codes_at_a_computing_center.html
</link>
236 <guid isPermaLink=
"true">Using_bar_codes_at_a_computing_center.html
</guid>
237 <pubDate>Fri,
20 Feb
2009 08:
50:
00 +
0100</pubDate>
239 <p
>At work with the University of Oslo, we have several hundred computers
240 in our computing center. This give us a challenge in tracking the
241 location and cabling of the computers, when they are added, moved and
242 removed. Some times the location register is not updated when a
243 computer is inserted or moved and we then have to search the room for
244 the
"missing
" computer.
</p
>
246 <p
>In the last issue of Linux Journal, I came across a project
247 <a href=
"http://www.libdmtx.org/
">libdmtx
</a
> to write and read bar
248 code blocks as defined in the
249 <a href=
"http://en.wikipedia.org/wiki/Data_Matrix
">The Data Matrix
250 Standard
</a
>. This is bar codes that can be read with a normal
251 digital camera, for example that on a cell phone, and several such bar
252 codes can be read by libdmtx from one picture. The bar code standard
253 allow up to
2 KiB to be written in the tag. There is another project
254 with
<a href=
"http://www.terryburton.co.uk/barcodewriter/
">a bar code
255 writer written in postscript
</a
> capable of creating such bar codes,
256 but this was the first time I found a tool to read these bar
259 <p
>It occurred to me that this could be used to tag and track the
260 machines in our computing center. If both racks and computers are
261 tagged this way, we can use a picture of the rack and all its
262 computers to detect the rack location of any computer in that rack.
263 If we do this regularly for the entire room, we will find all
264 locations, and can detect movements and removals.
</p
>
266 <p
>I decided to test if this would work in practice, and picked a
267 random rack and tagged all the machines with their names. Next, I
268 took pictures with my digital camera, and gave the dmtxread program
269 these JPEG pictures to see how many tags it could read. This worked
270 fairly well. If the pictures was well focused and not taken from the
271 side, all tags in the image could be read. Because of limited space
272 between the racks, I was unable to get a good picture of the entire
273 rack, but could without problem read all tags from a picture covering
274 about half the rack. I had to limit the search time used by dmtxread
275 to
60000 ms to make sure it terminated in a reasonable time frame.
</p
>
277 <p
>My conclusion is that this could work, and we should probably look
278 at adjusting our computer tagging procedures to use bar codes for
279 easier automatic tracking of computers.
</p
>
284 <title>Kart over overvåkningskamera i Norge
</title>
285 <link>Kart_over_overv__kningskamera_i_Norge.html
</link>
286 <guid isPermaLink=
"true">Kart_over_overv__kningskamera_i_Norge.html
</guid>
287 <pubDate>Sun,
15 Feb
2009 22:
30:
00 +
0100</pubDate>
290 <a href=
"http://www.personvern.no/
">personvernforeningen
</a
> har jeg
292 <a href=
"http://personvern.no/wiki/index.php/Kameraovervåkning
">et
293 kart over overvåkningskamera i Norge
</a
>. Bakgrunnen er at det etter
294 min mening bærer galt avsted med den massive overvåkningen som
295 finner sted i Norge i dag, og at flere og flere overvåkningskamera
296 gjør det vanskeligere og vanskeligere å gå igjennom livet uten at
297 små og store brødre trenger inn i ens private sfære. Datatilsynet
298 har et register over kameraovervåkning, men det viser seg å være
299 ubrukelig både til å finne ut hvor det er kamera plassert, og til å
300 sjekke om et kamera en kommer over er registrert. Dette nye kartet
301 fikser en av disse manglene, men det vil fortsatt være umulig å vite
302 om et kamera er registrert etter lovens krav eller ikke. Pr. nå er
303 22 kamera i Oslo registrert, og det trengs flere til å registrere
304 alle. Informasjonen registreres direkte inn i
<a
305 href=
"http://www.openstreetmap.org/
">OpenStreetmap
</a
>, sa hentes det
306 automatisk over i spesialkartet.
</p
>
311 <title>Endelig er Debian Lenny gitt ut
</title>
312 <link>Endelig_er_Debian_Lenny_gitt_ut.html
</link>
313 <guid isPermaLink=
"true">Endelig_er_Debian_Lenny_gitt_ut.html
</guid>
314 <pubDate>Sun,
15 Feb
2009 11:
50:
00 +
0100</pubDate>
316 <p
>Endelig er
<a href=
"http://www.debian.org/
">Debian
</a
>
317 <a href=
"http://www.debian.org/News/
2009/
20090214">Lenny
</a
> gitt ut.
318 Et langt steg videre for Debian-prosjektet, og en rekke nye
319 programpakker blir nå tilgjengelig for de av oss som bruker den
320 stabile utgaven av Debian. Neste steg er nå å få
321 <a href=
"http://www.skolelinux.org/
">Skolelinux
</a
> /
322 <a href=
"http://wiki.debian.org/DebianEdu/
">Debian Edu
</a
> ferdig
323 oppdatert for den nye utgaven, slik at en oppdatert versjon kan
324 slippes løs på skolene. Takk til alle debian-utviklerne som har
325 gjort dette mulig. Endelig er f.eks. fungerende avhengighetsstyrt
326 bootsekvens tilgjengelig i stabil utgave, vha pakken
327 <tt
>insserv
</tt
>.
</p
>
332 <title>Første vellykkede videostrøm fra NUUG
</title>
333 <link>F__rste_vellykkede_videostr__m_fra_NUUG.html
</link>
334 <guid isPermaLink=
"true">F__rste_vellykkede_videostr__m_fra_NUUG.html
</guid>
335 <pubDate>Wed,
11 Feb
2009 06:
30:
00 +
0100</pubDate>
337 <p
>Jeg ble glad for å se under
338 <a href=
"http://www.nuug.no/aktiviteter/
20090210-compiz/
">gårdagens
339 medlemsmøte
</a
> i NUUG Oslo at utsending av live-video fra møtet
340 fungerte for første gang. Forrige gang ble det ved en teknisk tabbe
341 sendt video uten lyd. Vi kan takke Ole Kristian Lien og resten av
342 videogruppen i NUUG for at nå NUUG-medlemmer over det ganske land
343 kunne se foredraget samtidig med oss i Oslo. Vi opplevde til og med
344 under møtet å motta spørsmål via IRC som ble besvart der og da.
345 Opptaket publiseres så snart det er kopiert over til NUUGs
346 webserver og komprimert.
</p
>
351 <title>Min reprap tar sakte form
</title>
352 <link>Min_reprap_tar_sakte_form.html
</link>
353 <guid isPermaLink=
"true">Min_reprap_tar_sakte_form.html
</guid>
354 <pubDate>Tue,
3 Feb
2009 13:
30:
00 +
0100</pubDate>
356 <p
>Min reprap begynner å ta form. Den er nå kommet så langt at den er
357 blitt en kubisk ramme. Z-aksen er montert men ikke kalibrert, og det
358 hele er klart for litt enkel testing. Har møtt på to problemer som
359 blokkerer videre montering, men har oppnått kontakt med Audun Vaaler
360 ved Høgskolen i Østfold som forteller at de er nesten ferdig med et
361 tilsvarende byggesett som det jeg tar utgangspunkt i, og håper de kan
362 forklare hvordan de kom rundt problemene. De to problemene er
363 relatert til Z-aksen og Y-aksen.
</p
>
365 <p
>For Z-aksen, er det et stjernehjul som festes på motoraksen ved
366 tannjulet som driver z-aksebåndet og som skal holde båndet på plass.
367 Problemet med det nederste stjernejulet er at det er helt løst, og
368 blir liggende på motoren
5 mm nedenfor tannjulet, i stedet for å ligge
369 inntil tannjulet slik det skal. Mulig løsningen er å borre i
370 stjernehjulet, eller lime det fast.
</p
>
372 <p
>For Y-aksen, er det en plastdel som ser ut til å mangle som skulle
373 dekket to skruver som kommer i veien for kraftoverføringsmekanismen
374 fra motoren til selve aksen, slik at mekanismen kan snurre fritt.
</p
>
376 <p
>Når det gjelder elektronikken til min reprap, så er min gode venn
377 Anders Rosnes igang med å lodde sammen delene og han forteller at
378 koblingsbordet for Arduino er klart, og en temperatursensor og en
379 optoswitch er også klar. Gleder meg til å teste dem. Må bare finne
380 ut hvordan jeg laster opp firmware i Arduino-en. :)
</p
>
382 <p
>Når det gjelder NUUGs reprap-prosjekt, så er det framgang og Ole
383 Kristian, Tollef og Ketil besøke IFI for å få fortgang i produksjon av
384 plastdeler, og Ole Kristian forteller at han har funnet en kilde til
385 de fleste metalldelene. Gleder meg til å se resultaten av det
391 <title>Norge trenger en personvernforening
</title>
392 <link>Norge_trenger_en_personvernforening.html
</link>
393 <guid isPermaLink=
"true">Norge_trenger_en_personvernforening.html
</guid>
394 <pubDate>Sun,
1 Feb
2009 18:
35:
00 +
0100</pubDate>
396 <p
>De siste årene har jeg forsøkt å få liv i
397 <a href=
"http://www.personvern.no/
">foreningen Personvern i Norge
</a
>. Norge
398 trenger en organisasjon som jobber med å sette personvern på agendaen
399 og som kan være en motvekt til de mange som gjerne raderer bort
400 personvernet av behagelighetshensyn eller ut fra villfarelsen om at en
401 får økt sikkerhet av å redusere personvernet. Foreløbig har det ikke
402 lykkes å få på plass kritisk masse av interesserte på epostlisten, og
403 nå tror jeg det er på tide å endre tilnærming. I stedet for å forsøke
404 å rekruttere folk til epostlisten og håpe at når nok folk er samlet
405 vil noen ta initiativ og sørge for at det begynner å skje ting, så
406 tror jeg det er en ide å ta utgangspunkt i de som er der i dag og
407 sette sammen et interrimstyre. Forslaget er sendt til epostlisten, så
408 nå får vi se om noen er enig.
</p
>
413 <title>Intellektuelt privilegium - et bedre IP-begrep
</title>
414 <link>Intellektuelt_privilegium___et_bedre_IP_begrep.html
</link>
415 <guid isPermaLink=
"true">Intellektuelt_privilegium___et_bedre_IP_begrep.html
</guid>
416 <pubDate>Sun,
1 Feb
2009 15:
06:
00 +
0100</pubDate>
418 <p
>Ofte brukes intellektuell eiendom som samlebegrep for opphavsrett,
419 patenter, varemerker og forretningshemmeligheter. Problemet med dette
420 begrepet er at det er svært misvisende. For det første er ingen av de
421 begrensede monopolene det her er snakk om som kan kalles eiendom, og
422 for det andre er egenskapene til de ulike monopolene så forskjellige
423 at det er mer tilslørende enn opplysende å gruppere dem sammen i et
424 sekkebegrep. Blant annet Richard Stallman har
425 <a href=
"http://www.gnu.org/philosophy/not-ipr.html
">skrevet litt om dette
</a
>.
</p
>
427 <p
>I dag kom jeg over
428 <a href=
"http://blogs.sun.com/webmink/entry/intellectual_privilege
">en
429 bloggpost fra Simon Phipps
</a
> som foreslår å bruke intellektuelt
430 privilegium som begrep i stedet, da det gjør det klarere at det ikke
431 er snakk om eiendom, men et tidsbegrenset monopol. Simon Phipps
432 forteller videre at noen jobber med å skrive
433 <a href=
"http://www.intellectualprivilege.com/book.html
">en bok med
434 tittel Intellectual Privilege
</a
>, og at boken er anbefalt av Lawrence
435 Lessig. Jeg tror jeg skal begynne å bruke begrepet intellektuelt
436 privilegium når jeg snakker om opphavsrett, patenter, varemerker og
437 forretningshemmeligheter framover.
</p
>