1 <?xml version=
"1.0" encoding=
"ISO-8859-1"?>
2 <rss version='
2.0' xmlns:lj='http://www.livejournal.org/rss/lj/
1.0/'
>
4 <title>Petter Reinholdtsen - Entries from February
2009</title>
5 <description>Entries from February
2009</description>
6 <link>http://people.skolelinux.org/pere/blog/
</link>
10 <title>Intellektuelt privilegium - et bedre IP-begrep
</title>
11 <link>http://people.skolelinux.org/pere/blog/Intellektuelt_privilegium___et_bedre_IP_begrep.html
</link>
12 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Intellektuelt_privilegium___et_bedre_IP_begrep.html
</guid>
13 <pubDate>Sun,
1 Feb
2009 15:
06:
00 +
0100</pubDate>
14 <description><p
>Ofte brukes intellektuell eiendom som samlebegrep for opphavsrett,
15 patenter, varemerker og forretningshemmeligheter. Problemet med dette
16 begrepet er at det er svært misvisende. For det første er ingen av de
17 begrensede monopolene det her er snakk om som kan kalles eiendom, og
18 for det andre er egenskapene til de ulike monopolene så forskjellige
19 at det er mer tilslørende enn opplysende å gruppere dem sammen i et
20 sekkebegrep. Blant annet Richard Stallman har
21 <a href=
"http://www.gnu.org/philosophy/not-ipr.html
">skrevet litt om dette
</a
>.
</p
>
23 <p
>I dag kom jeg over
24 <a href=
"http://blogs.sun.com/webmink/entry/intellectual_privilege
">en
25 bloggpost fra Simon Phipps
</a
> som foreslår å bruke intellektuelt
26 privilegium som begrep i stedet, da det gjør det klarere at det ikke
27 er snakk om eiendom, men et tidsbegrenset monopol. Simon Phipps
28 forteller videre at noen jobber med å skrive
29 <a href=
"http://www.intellectualprivilege.com/book.html
">en bok med
30 tittel Intellectual Privilege
</a
>, og at boken er anbefalt av Lawrence
31 Lessig. Jeg tror jeg skal begynne å bruke begrepet intellektuelt
32 privilegium når jeg snakker om opphavsrett, patenter, varemerker og
33 forretningshemmeligheter framover.
</p
>
38 <title>Norge trenger en personvernforening
</title>
39 <link>http://people.skolelinux.org/pere/blog/Norge_trenger_en_personvernforening.html
</link>
40 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Norge_trenger_en_personvernforening.html
</guid>
41 <pubDate>Sun,
1 Feb
2009 18:
35:
00 +
0100</pubDate>
42 <description><p
>De siste årene har jeg forsøkt å få liv i
43 <a href=
"http://www.personvern.no/
">foreningen Personvern i Norge
</a
>. Norge
44 trenger en organisasjon som jobber med å sette personvern på agendaen
45 og som kan være en motvekt til de mange som gjerne raderer bort
46 personvernet av behagelighetshensyn eller ut fra villfarelsen om at en
47 får økt sikkerhet av å redusere personvernet. Foreløbig har det ikke
48 lykkes å få på plass kritisk masse av interesserte på epostlisten, og
49 nå tror jeg det er på tide å endre tilnærming. I stedet for å forsøke
50 å rekruttere folk til epostlisten og håpe at når nok folk er samlet
51 vil noen ta initiativ og sørge for at det begynner å skje ting, så
52 tror jeg det er en ide å ta utgangspunkt i de som er der i dag og
53 sette sammen et interrimstyre. Forslaget er sendt til epostlisten, så
54 nå får vi se om noen er enig.
</p
>
59 <title>Min reprap tar sakte form
</title>
60 <link>http://people.skolelinux.org/pere/blog/Min_reprap_tar_sakte_form.html
</link>
61 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Min_reprap_tar_sakte_form.html
</guid>
62 <pubDate>Tue,
3 Feb
2009 13:
30:
00 +
0100</pubDate>
63 <description><p
>Min reprap begynner å ta form. Den er nå kommet så langt at den er
64 blitt en kubisk ramme. Z-aksen er montert men ikke kalibrert, og det
65 hele er klart for litt enkel testing. Har møtt på to problemer som
66 blokkerer videre montering, men har oppnått kontakt med Audun Vaaler
67 ved Høgskolen i Østfold som forteller at de er nesten ferdig med et
68 tilsvarende byggesett som det jeg tar utgangspunkt i, og håper de kan
69 forklare hvordan de kom rundt problemene. De to problemene er
70 relatert til Z-aksen og Y-aksen.
</p
>
72 <p
>For Z-aksen, er det et stjernehjul som festes på motoraksen ved
73 tannjulet som driver z-aksebåndet og som skal holde båndet på plass.
74 Problemet med det nederste stjernejulet er at det er helt løst, og
75 blir liggende på motoren
5 mm nedenfor tannjulet, i stedet for å ligge
76 inntil tannjulet slik det skal. Mulig løsningen er å borre i
77 stjernehjulet, eller lime det fast.
</p
>
79 <p
>For Y-aksen, er det en plastdel som ser ut til å mangle som skulle
80 dekket to skruver som kommer i veien for kraftoverføringsmekanismen
81 fra motoren til selve aksen, slik at mekanismen kan snurre fritt.
</p
>
83 <p
>Når det gjelder elektronikken til min reprap, så er min gode venn
84 Anders Rosnes igang med å lodde sammen delene og han forteller at
85 koblingsbordet for Arduino er klart, og en temperatursensor og en
86 optoswitch er også klar. Gleder meg til å teste dem. Må bare finne
87 ut hvordan jeg laster opp firmware i Arduino-en. :)
</p
>
89 <p
>Når det gjelder NUUGs reprap-prosjekt, så er det framgang og Ole
90 Kristian, Tollef og Ketil besøke IFI for å få fortgang i produksjon av
91 plastdeler, og Ole Kristian forteller at han har funnet en kilde til
92 de fleste metalldelene. Gleder meg til å se resultaten av det
98 <title>Første vellykkede videostrøm fra NUUG
</title>
99 <link>http://people.skolelinux.org/pere/blog/F_rste_vellykkede_videostr_m_fra_NUUG.html
</link>
100 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/F_rste_vellykkede_videostr_m_fra_NUUG.html
</guid>
101 <pubDate>Wed,
11 Feb
2009 06:
30:
00 +
0100</pubDate>
102 <description><p
>Jeg ble glad for å se under
103 <a href=
"http://www.nuug.no/aktiviteter/
20090210-compiz/
">gårdagens
104 medlemsmøte
</a
> i NUUG Oslo at utsending av live-video fra møtet
105 fungerte for første gang. Forrige gang ble det ved en teknisk tabbe
106 sendt video uten lyd. Vi kan takke Ole Kristian Lien og resten av
107 videogruppen i NUUG for at nå NUUG-medlemmer over det ganske land
108 kunne se foredraget samtidig med oss i Oslo. Vi opplevde til og med
109 under møtet å motta spørsmål via IRC som ble besvart der og da.
110 Opptaket publiseres så snart det er kopiert over til NUUGs
111 webserver og komprimert.
</p
>
116 <title>Endelig er Debian Lenny gitt ut
</title>
117 <link>http://people.skolelinux.org/pere/blog/Endelig_er_Debian_Lenny_gitt_ut.html
</link>
118 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Endelig_er_Debian_Lenny_gitt_ut.html
</guid>
119 <pubDate>Sun,
15 Feb
2009 11:
50:
00 +
0100</pubDate>
120 <description><p
>Endelig er
<a href=
"http://www.debian.org/
">Debian
</a
>
121 <a href=
"http://www.debian.org/News/
2009/
20090214">Lenny
</a
> gitt ut.
122 Et langt steg videre for Debian-prosjektet, og en rekke nye
123 programpakker blir nå tilgjengelig for de av oss som bruker den
124 stabile utgaven av Debian. Neste steg er nå å få
125 <a href=
"http://www.skolelinux.org/
">Skolelinux
</a
> /
126 <a href=
"http://wiki.debian.org/DebianEdu/
">Debian Edu
</a
> ferdig
127 oppdatert for den nye utgaven, slik at en oppdatert versjon kan
128 slippes løs på skolene. Takk til alle debian-utviklerne som har
129 gjort dette mulig. Endelig er f.eks. fungerende avhengighetsstyrt
130 bootsekvens tilgjengelig i stabil utgave, vha pakken
131 <tt
>insserv
</tt
>.
</p
>
136 <title>Kart over overvåkningskamera i Norge
</title>
137 <link>http://people.skolelinux.org/pere/blog/Kart_over_overv_kningskamera_i_Norge.html
</link>
138 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Kart_over_overv_kningskamera_i_Norge.html
</guid>
139 <pubDate>Sun,
15 Feb
2009 22:
30:
00 +
0100</pubDate>
140 <description><p
>I regi av
141 <a href=
"http://www.personvern.no/
">personvernforeningen
</a
> har jeg
143 <a href=
"http://personvern.no/wiki/index.php/Kameraovervåkning
">et
144 kart over overvåkningskamera i Norge
</a
>. Bakgrunnen er at det etter
145 min mening bærer galt avsted med den massive overvåkningen som
146 finner sted i Norge i dag, og at flere og flere overvåkningskamera
147 gjør det vanskeligere og vanskeligere å gå igjennom livet uten at
148 små og store brødre trenger inn i ens private sfære. Datatilsynet
149 har et register over kameraovervåkning, men det viser seg å være
150 ubrukelig både til å finne ut hvor det er kamera plassert, og til å
151 sjekke om et kamera en kommer over er registrert. Dette nye kartet
152 fikser en av disse manglene, men det vil fortsatt være umulig å vite
153 om et kamera er registrert etter lovens krav eller ikke. Pr. nå er
154 22 kamera i Oslo registrert, og det trengs flere til å registrere
155 alle. Informasjonen registreres direkte inn i
<a
156 href=
"http://www.openstreetmap.org/
">OpenStreetmap
</a
>, så hentes det
157 automatisk over i spesialkartet.
</p
>
162 <title>Using bar codes at a computing center
</title>
163 <link>http://people.skolelinux.org/pere/blog/Using_bar_codes_at_a_computing_center.html
</link>
164 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Using_bar_codes_at_a_computing_center.html
</guid>
165 <pubDate>Fri,
20 Feb
2009 08:
50:
00 +
0100</pubDate>
166 <description><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>Checking server hardware support status for Dell, HP and IBM servers
</title>
212 <link>http://people.skolelinux.org/pere/blog/Checking_server_hardware_support_status_for_Dell__HP_and_IBM_servers.html
</link>
213 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Checking_server_hardware_support_status_for_Dell__HP_and_IBM_servers.html
</guid>
214 <pubDate>Sat,
28 Feb
2009 23:
50:
00 +
0100</pubDate>
215 <description><p
>At work, we have a few hundred Linux servers, and with that amount
216 of hardware it is important to keep track of when the hardware support
217 contract expire for each server. We have a machine (and service)
218 register, which until recently did not contain much useful besides the
219 machine room location and contact information for the system owner for
220 each machine. To make it easier for us to track support contract
221 status, I
've recently spent time on extending the machine register to
222 include information about when the support contract expire, and to tag
223 machines with expired contracts to make it easy to get a list of such
224 machines. I extended a perl script already being used to import
225 information about machines into the register, to also do some screen
226 scraping off the sites of Dell, HP and IBM (our majority of machines
227 are from these vendors), and automatically check the support status
228 for the relevant machines. This make the support status information
229 easily available and I hope it will make it easier for the computer
230 owner to know when to get new hardware or renew the support contract.
231 The result of this work documented that
27% of the machines in the
232 registry is without a support contract, and made it very easy to find
233 them.
27% might seem like a lot, but I see it more as the case of us
234 using machines a bit longer than the
3 years a normal support contract
235 last, to have test machines and a platform for less important
236 services. After all, the machines without a contract are working fine
237 at the moment and the lack of contract is only a problem if any of
238 them break down. When that happen, we can either fix it using spare
239 parts from other machines or move the service to another old
242 <p
>I believe the code for screen scraping the Dell site was originally
243 written by Trond Hasle Amundsen, and later adjusted by me and Morten
244 Werner Forsbring. The HP scraping was written by me after reading a
245 nice article in ;login: about how to use WWW::Mechanize, and the IBM
246 scraping was written by me based on the Dell code. I know the HTML
247 parsing could be done using nice libraries, but did not want to
248 introduce more dependencies. This is the current incarnation:
</p
>
256 sub get_support_info {
257 my ($machine, $model, $serial, $productnumber) = @_;
260 if ( $model =~ m/^Dell / ) {
261 # fetch website from Dell support
262 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
";
263 my $webpage = get($url);
264 return undef unless ($webpage);
267 my @lines = split(/\n/, $webpage);
268 foreach my $line (@lines) {
269 next unless ($line =~ m/Beskrivelse/);
270 $line =~ s/
&lt;[^
>]+?
>/;/gm;
271 $line =~ s/^.+?;(Beskrivelse;)/$
1/;
273 my @f = split(/\;/, $line);
275 my $lastend =
"";
276 while ($f[
3] eq
"DELL
") {
277 my ($type, $startstr, $endstr, $days) = @f[
0,
5,
7,
10];
279 my $start = POSIX::strftime(
"%Y-%m-%d
",
280 localtime(str2time($startstr)));
281 my $end = POSIX::strftime(
"%Y-%m-%d
",
282 localtime(str2time($endstr)));
283 $str .=
"$type $start -
> $end
";
285 $lastend = $end if ($end gt $lastend);
287 my $today = POSIX::strftime(
"%Y-%m-%d
", localtime(time));
288 tag_machine_unsupported($machine)
289 if ($lastend lt $today);
291 } elsif ( $model =~ m/^HP / ) {
292 my $mech = WWW::Mechanize-
>new();
294 'http://www1.itrc.hp.com/service/ewarranty/warrantyInput.do
';
297 'BODServiceID
' =
> 'NA
',
298 'RegisteredPurchaseDate
' =
> '',
299 'country
' =
> 'NO
',
300 'productNumber
' =
> $productnumber,
301 'serialNumber1
' =
> $serial,
303 $mech-
>submit_form( form_number =
> 2,
304 fields =
> $fields );
305 # Next step is screen scraping
306 my $content = $mech-
>content();
308 $content =~ s/
&lt;[^
>]+?
>/;/gm;
309 $content =~ s/\s+/ /gm;
310 $content =~ s/;\s*;/;;/gm;
311 $content =~ s/;[\s;]+/;/gm;
313 my $today = POSIX::strftime(
"%Y-%m-%d
", localtime(time));
315 while ($content =~ m/;Warranty Type;/) {
316 my ($type, $status, $startstr, $stopstr) = $content =~
317 m/;Warranty Type;([^;]+);.+?;Status;(\w+);Start Date;([^;]+);End Date;([^;]+);/;
318 $content =~ s/^.+?;Warranty Type;//;
319 my $start = POSIX::strftime(
"%Y-%m-%d
",
320 localtime(str2time($startstr)));
321 my $end = POSIX::strftime(
"%Y-%m-%d
",
322 localtime(str2time($stopstr)));
324 $str .=
"$type ($status) $start -
> $end
";
326 tag_machine_unsupported($machine)
329 } elsif ( $model =~ m/^IBM / ) {
330 # This code ignore extended support contracts.
331 my ($producttype) = $model =~ m/.*-\[(.{
4}).+\]-/;
332 if ($producttype
&amp;
&amp; $serial) {
334 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
");
336 $content =~ s/
&lt;[^
>]+?
>/;/gm;
337 $content =~ s/\s+/ /gm;
338 $content =~ s/;\s*;/;;/gm;
339 $content =~ s/;[\s;]+/;/gm;
341 $content =~ s/^.+?;Warranty status;//;
342 my ($status, $end) = $content =~ m/;Warranty status;([^;]+)\s*;Expiration date;(\S+) ;/;
344 $str .=
"($status) -
> $end
";
346 my $today = POSIX::strftime(
"%Y-%m-%d
", localtime(time));
347 tag_machine_unsupported($machine)
356 <p
>Here are some examples on how to use the function, using fake
357 serial numbers. The information passed in as arguments are fetched
358 from dmidecode.
</p
>
361 print get_support_info(
"hp.host
",
"HP ProLiant BL460c G1
",
"1234567890"
362 "447707-B21
");
363 print get_support_info(
"dell.host
",
"Dell Inc. PowerEdge
2950",
"1234567");
364 print get_support_info(
"ibm.host
",
"IBM eserver xSeries
345 -[
867061X]-
",
365 "1234567");
368 <p
>I would recommend this approach for tracking support contracts for
369 everyone with more than a few computers to administer. :)
</p
>
371 <p
>Update
2009-
03-
06: The IBM page do not include extended support
372 contracts, so it is useless in that case. The original Dell code do
373 not handle extended support contracts either, but has been updated to