]> pere.pagekite.me Git - homepage.git/blob - blog/index.html
Generated.
[homepage.git] / blog / index.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html>
4 <head>
5 <title>Petter Reinholdtsen</title>
6 <link rel="stylesheet" type="text/css" media="screen" href="style.css">
7 <link rel="alternate" title="RSS Feed" href="index.rss" type="application/rss+xml">
8
9 </head>
10 <body>
11
12 <div class="title">
13 <h1>
14 <a href="">Petter Reinholdtsen</a>
15
16 </h1>
17
18 </div>
19
20
21
22 <div class="entry">
23 <div class="title"><a href="Hva_er_egentlig_en___pen_standard_.html">Hva er egentlig en åpen standard?</a></div>
24 <div class="date">2009-03-28 10:50</div>
25 <div class="body">
26 <p>Jeg møter alle slags interessante mennesker på min vei, og et møte
27 jeg lærte mye av var å treffe på en svært kompetent IT-fyr som
28 benektet ting jeg anser som åpenbart og selvfølgelig når det gjelder
29 standarder. Det var interessant, da det fikk meg til å tenke litt
30 nøyere på hvilke mekanismer som ligger til grunn for at noe oppfattes
31 som en standard. Det hele startet med arbeid rundt integrering av NSS
32 LDAP mot Active Directory, og problemer som oppstår pga. at Active
33 Directory ikke følger LDAP-spesifikasjonen som dokumentert i RFCer fra
34 IETF (konkret, AD returnerer kun et subset av attributter hvis det er
35 mer enn 1500 atributter av en gitt type i et LDAP-objekt, og en må be
36 om resten i bolker av 1500). Jeg hevdet måten dette ble gjort på brøt
37 med LDAP-spesifikasjonen, og henviste til hvor i LDAP-spesifikasjonen
38 fra IETF det sto at oppførselen til AD ikke fulgte
39 LDAP-spesifikasjonen. AD-spesialisten overrasket meg da ved å
40 fortelle at IETF var ikke de som definerte LDAP-spesifikasjonen, og at
41 Active Directory ikke brøt den virkelige LDAP-spesifikasjonen som han
42 mente lå til grunn. Jeg ble spesielt overrasket over denne
43 tilnærmingen til problemstillingen, da til og med Microsoft så vidt
44 jeg kan se anerkjenner IETF som organisasjonen som definerer
45 LDAP-spesifikasjonen. Jeg fikk aldri spurt hvem han mente sto bak den
46 egentlige LDAP-spesifikasjonen, da det var irrelevant for problemet vi
47 måtte løse (få Linux og AD til å fungere sammen). Dette møtet
48 fortalte meg uansett at det ikke er gitt at alle aktører er enige om
49 hva en standard er, og hva som er kilden til en gitt standard. Det er
50 vanskelig å enes om felles standarder før en først enes om hvem som
51 bestemmer hva en gitt standard innebærer.</p>
52
53 <p>Hva er så en standard? I sin abstrakte form er det noe å samles
54 om. På engelsk er en av betydningene fane brukt i krig, du vet, den
55 type fane en samlet seg rundt på kamplassen i riddertiden. En
56 standard definerer altså et felleskap, noen som har noe felles. Det
57 er naturligvis mange måter å utgjøre et felleskap på. En kan
58 f.eks. enes om å gjøre alt slik som Ole gjør det, og dermed si at Oles
59 oppførsel er standard. Hver gang Ole endrer oppførsel endrer også
60 standarden seg uten noe mer organisering og prosedyre. En variant av
61 dette er å gjøre slik som Ole har gjort det i stedet for slik Ole til
62 enhver til gjør noe. Dette er ofte litt enklere å forholde seg til,
63 da en slipper å sjekke med Ole hver gang for å vite hvordan ting skal
64 gjøres nå, men hvis det Ole gjorde noe dumt den gang en bestemte seg
65 for å følge Ole, så er det vanskeligere å få endret oppførsel for å
66 unngå dette dumme.</p>
67
68 <p>En kan også ta det et skritt videre, og istedet for å basere seg på
69 enkeltpersoners oppførsel sette seg ned og bli enige om hvordan en
70 skal gjøre ting, dvs. lage et felleskap basert på konsensus. Dette
71 tar naturligvis litt mer tid (en må diskutere ting i forkant før en
72 kan sette igang), men det kan bidra til at den oppførselen en
73 planlegger å benytte seg av er mer gjennomtenkt. Det ender også
74 typisk opp med en beskrivelse av ønsket oppførsel som flere kan forstå
75 - da flere har vært involvert i å utarbeide beskrivelsen.</p>
76
77 <p>Dette er dessverre ikke alt som trengs for å forstå hva en åpen
78 standard er for noe. Der alle kan se på hvordan folk oppfører seg, og
79 dermed har valget om de vil oppføre seg likt eller ikke, så er det
80 endel juridiske faktorer som gjør det hele mer komplisert -
81 opphavsretten og patentlovgivningen for å være helt konkret. For å gi
82 et eksempel. Hvis noen blir enige om å alltid plystre en bestemt
83 melodi når de møtes, for å identifisere hverandre, så kan
84 opphavsretten brukes til å styre hvem som får lov til å gjøre dette.
85 De har standardisert hvordan de kjenner igjen alle som følger denne
86 standarden, men ikke alle har nødvendigvis lov til å følge den.
87 Musikk er opphavsrettsbeskyttet, og fremføring av musikk i
88 offentligheten er opphavsmannens enerett (dvs. et monopol). Det vil i
89 sin ytterste konsekvens si at alle som skal plystre en
90 opphavsrettsbeskyttet melodi i det offentlige rom må ha godkjenning
91 fra opphavsmannen. Har en ikke dette, så bryter en loven og kan
92 straffes. Det er dermed mulig for opphavsmannen å kontrollere hvem
93 som får lov til å benytte seg av denne standarden. En annen variant
94 er hvis en standard er dokumentert, så er dokumentet som definerer
95 standarden (spesifikasjonen) beskyttet av opphavsretten, og det er
96 dermed mulig for rettighetsinnehaver å begrense tilgang til
97 spesifikasjonen, og slik styre hvem som kan ta i bruk standarden på
98 den måten.</p>
99
100 <p>Der opphavsretten innvilger et monopol på kunstneriske uttrykk med
101 verkshøyde, innvilger patentlovgivningen monopol på ideer. Hvis en
102 slik patentert idé (fortrinnsvis uttrykt i en teknisk innretning, men
103 det er kompliserende faktorer som gjør at det ikke er et krav) trengs
104 for å ta i bruk en standard, så vil den som innehar patent kunne styre
105 hvem som får ta i bruk standarden. Det er dermed ikke gitt at alle
106 kan delta i et standard-felleskap, og hvis de kan delta, så er det
107 ikke sikkert at det er på like vilkår. F.eks. kan rettighetsinnehaver
108 sette vilkår som gjør at noen faller utenfor, det være seg av
109 finansielle, avtalemessige eller prinsipielle årsaker. Vanlige slike
110 vilkår er "må betale litt for hver kunde/bruker" som utelukker de som
111 gir bort en løsning gratis og "må gi fra seg retten til å håndheve
112 sine egne patentrettigheter ovenfor rettighetshaver" som utelukker
113 alle som ønsker å beholde den muligheten.</p>
114
115 <p>En åpen standard innebærer for meg at alle kan få innsikt i en
116 komplett beskrivelse av oppførsel som standarden skal dekke, og at
117 ingen kan nektes å benytte seg av standarden. Noen mener at det
118 holder at alle med tilstrekkelig finansiering kan få tilgang til
119 spesifikasjonen og at en kun har finansielle krav til bruk.
120 Pga. denne konflikten har et nytt begrep spredt seg de siste årene,
121 nemlig fri og åpen standard, der en har gjort det klart at alle må ha
122 komplett og lik tilgang til spesifikasjoner og retten til å gjøre bruk
123 av en standard for at en standard skal kunne kalles fri og åpen.</p>
124 </div>
125 <div class="tags">
126
127
128
129 Tags: <a href="tags/norsk">norsk</a>, <a href="tags/nuug">nuug</a>, <a href="tags/standard">standard</a>.
130
131 </div>
132 </div>
133 <div class="padding"></div>
134
135 <div class="entry">
136 <div class="title"><a href="Vitenskapens_dogmer___.html">Vitenskapens dogmer...</a></div>
137 <div class="date">2009-03-27 11:30</div>
138 <div class="body">
139 <p>Handspåleggere og andre tilhengere av ikke-etterprøvbar medisin,
140 samt de som mener at verden ikke utviklet seg i henhold til
141 evolusjonsteorien, hevder ofte at vitenskapen er dogmatisk og at
142 vitenskapsfolk velger å ignorere alt vitenskapsfolk ikke kan
143 forklare. Intet kunne være lenger fra sannheten. En interessant
144 observasjon dog, er hvilke "dogmer" som ligger til grunn for
145 vitenskapen. Her er et forsøk på å nevne noen av de grunnleggende
146 antagelsene som legges til grunn.</p>
147
148 <p>Først og fremst ligger det til grunn en tro om at verden,
149 verdensrommet og universet har de samme egenskapene overalt. Dvs. at
150 en ikke tror at virkeligheten oppfører seg forskjellig f.eks. på
151 jorden og i verdensrommet. Dette er ingen selvfølgelig antagelse, da
152 f.eks. de gamle grekerne antok at virkeligheten var forskjellig på
153 jorden og i himmelen. Antagelsen om at virkeligheten oppfører seg
154 etter de samme "reglene" overalt skjøt først fart etter
155 middelalderen.</p>
156
157 <p>Når en så har begynt å tro at virkeligheten oppfører seg likt
158 overalt, så kan en begynne å tro at det er mulig å observere
159 virkeligheten, og ut fra observasjoner kunne finne en forklaring, et
160 sett med "regler", som kan brukes til å forutse hva som kommer til å
161 skje i fremtiden basert på observasjoner gjort i fortiden. Eksempler
162 på dette er at en kan beregne hvor lang tid en sten som er sluppet
163 ned fra et hus vil bruke før den treffer bakken (og ikke tror at den
164 i noen tilfeller vil fly oppover i stedet for nedover). En kan altså
165 lage en mental modell over sammenhenger i virkeligheten, og bruke
166 denne modellen til å, enten ved hjelp av logiske argumentasjonsrekker
167 eller matematiske beregninger, forklare hva som kommer til å skje.
168 Hvis modellen viser seg å fungere bra for observasjoner i dag, så
169 kan en på tilsvarende vis beregne eller logisk sette sammen hva som
170 har foregått i fortiden som ledet frem til det vi kan observere i
171 dag.</p>
172
173 <p>Sist, men ikke minst, så tror vitenskapsfolk på at det er mulig
174 å observere virkeligheten, og å tro på disse observasjonene
175 (innenfor rimelig feilmargin som følger av måten observasjonen er
176 gjort på). En tror altså ikke på at noen bakenfor virkeligheten
177 forsøker å lure oss til å observere noe som ikke eksisterer. Det
178 er naturligvis umulig (eller kanskje til nød svært vanskelig) å
179 motbevise at vi lever i Matrix-aktige omgivelser, der vi observerer
180 noe som eksisterer kun som en simulering i datamaskiner. Det at noe
181 er umulig å motbevise gjør dog ikke at det blir spesielt interessant
182 å ta utgangspunkt i. Det er antagelig ikke grenser for hvor mange
183 måter det er mulig å tenke seg at vi blir lurt til å oppleve en
184 virkelighet som "egentlig" ikke eksisterer, men i og med at den
185 eksisterer for oss, så er det i hovedsak et filosofisk spørsmål om
186 hva det betyr å eksistere. Det er ikke spesielt relevant for
187 vitenskapen, som altså tar utgangspunkt i at den virkeligheten vi
188 observerer eksisterer, virker likt overalt, og kan forstås med logikk
189 og matematikk.</p>
190
191 <p>Det kan virke som om de som hevder at vitenskapen er ute av stand
192 til å ta inn over seg Snåsamannens evner, homeopatiske
193 forklaringsmodeller og en skapende gud, ikke tror på det samme som
194 vitenskapsfolk. De kan ikke tro at den virkeligheten vi observerer
195 eksisterer, virker likt overalt, og kan forstås med logikk og
196 matematikk. Mitt problem med å tro på på det samme, er at hvis
197 disse forutsetningene ikke ligger til grunn, så er det ingen grenser
198 for hva en kan komme opp med av ideer til hvordan virkeligheten
199 fungerer. Både Harry Potters magi, kreasjonistenes allmektige
200 skaper, det flygende spagettimonsteret, Snåsamannens helbredelser,
201 Haitis voodo, samenes ganding og middelalderens hekserier blir like
202 gyldige. Jeg tror ikke noen av disse er spesielt sannsynlige, og
203 velger derfor å ta utgangspunkt i vitenskapens rammer for hvordan
204 virkeligheten skal forstås. For å sitere en reklamekampanje fra
205 England: Vitenskap sender deg til månen. Religion sender deg inn i
206 skyskrapere. Takke meg til en tur til månen.</p>
207 </div>
208 <div class="tags">
209
210
211
212 Tags: <a href="tags/norsk">norsk</a>, <a href="tags/vitenskap">vitenskap</a>.
213
214 </div>
215 </div>
216 <div class="padding"></div>
217
218 <div class="entry">
219 <div class="title"><a href="F__rste_reprap_integreringsfors__k___Z_aksen_beveger_seg.html">Første reprap-integreringsforsøk - Z-aksen beveger seg</a></div>
220 <div class="date">2009-03-19 22:15</div>
221 <div class="body">
222 <p>I går tok jeg mot til meg, og løste problemet med
223 z-aksen ved å borre i delen som manglet feste mot tannjulet som
224 skal drive z-aksereimen. Dermed var det klart for å montere
225 z-akse-akslingen på motoren og komme et steg videre med
226 reprap-monteringen. Prøvekjørte den i dag med
227 testprogrammet til stepmotoren, og kunne glad konstatere at det hele
228 fungerte. I hvert fall når stepmotoren ikke forsøkte
229 å snurre for raskt rundt. Ved høy hastighet roterte
230 ikke akslingen i det hele tatt. Motoren ble bare stående
231 å vibrere. Usikker på hvorfor, men antar motoren ikke
232 har nok kraft til å få hele akslingen til å
233 rotere så raskt. Denne øvelsen avslørte dog et
234 annet problem med monteringen så langt. Under testingen
235 begynte skruer og muttere å ry ned fra ulike deler av
236 reprap-konstruksjonen. Jeg har ikke skrudd alt hard nok sammen til
237 å tåle slike vibrasjoner. Tror en 5-6 skruver og/eller
238 muttere løsnet. Brukte ganske lang tid på å
239 finne ut hvor det manglet deler og skru ting sammen igjen. Antar alt
240 må strammes skikkelig til før første
241 utskrift.</p>
242
243 <p>Neste steg er å få laget z-aksebåndet. Der trenger jeg
244 egnet lim og en konstruksjon for å klemme bandet sammen under
245 limingen, som
246 <a href="http://reprap.org/bin/view/Main/AssemblingDarwinMachinery#Z_belt">beskrevet
247 på reprap-wikien</a>. Er blitt tipset om svart superlim som er
248 elastisk også etter at det tørket, og dro ned til Small Size
249 Hobbyland på Lilletorget som skulle ha slikt, men da jeg var innom
250 fikk jeg høre at de ikke lenger hadde slikt lim. Må finne ut
251 hvor i Oslo jeg kan skaffe slikt. Kanskje Panduro har? Vet ikke hva
252 limet egentlig heter, så det er vanskelig å søke på nett.</p>
253 </div>
254 <div class="tags">
255
256
257
258 Tags: <a href="tags/3d-printer">3d-printer</a>, <a href="tags/norsk">norsk</a>, <a href="tags/nuug">nuug</a>, <a href="tags/reprap">reprap</a>.
259
260 </div>
261 </div>
262 <div class="padding"></div>
263
264 <div class="entry">
265 <div class="title"><a href="Avisene_i_endring.html">Avisene i endring</a></div>
266 <div class="date">2009-03-15 22:15</div>
267 <div class="body">
268 <p>Jeg kom over bloggposten
269 "<a href="http://www.shirky.com/weblog/2009/03/newspapers-and-thinking-the-unthinkable/">Newspapers
270 and Thinking the Unthinkable</a>" som jeg synes forklarer godt hva som
271 skjer med aviser, og fikk meg til å tenke litt rundt andre utdøende
272 forretningsmodeller basert på å løse problemer som ikke lenger
273 eksisterer. Det blir spennende å se hva vi ender opp med.</p>
274 </div>
275 <div class="tags">
276
277
278
279 Tags: <a href="tags/norsk">norsk</a>, <a href="tags/nuug">nuug</a>.
280
281 </div>
282 </div>
283 <div class="padding"></div>
284
285 <div class="entry">
286 <div class="title"><a href="En_skam_at_det_ikke_finnes_ordrett_referat_fra_norske_domstoler.html">En skam at det ikke finnes ordrett referat fra norske domstoler</a></div>
287 <div class="date">2009-03-13 18:00</div>
288 <div class="body">
289 <p>Advokatene jobber i disse dager hardt for å bli kvitt juryordningen
290 fra norske domstoler. Det har de forsåvidt jobbet med i mange år.
291 Personlig tror jeg det er å starte i feil ende, og en dårlig ide.</p>
292
293 <p>Visst du at det ikke lages ordrett referat fra norske domstoler?
294 Det er ingen som skriver ned alt som sies i en norsk rettsal slik en
295 ser i TV-serier fra USA. Det som publiseres er dommerens
296 oppsummering, og alt som ikke blir med i den oppsummeringen er det
297 vanskelig å få dokumentert i ettertid. Konsekvensen er at en kan
298 lyve så mye en vil fra vitneboksen uten å bli tatt for det i
299 ettertid, hvis dommeren ikke syntes det som ble sagt var så
300 interessant at det ble med i dokumentet som dokumenterer
301 domsavsigelsen. Mens alt som sies fra Stortingets talerstol er
302 tilgjengelig på web etter kort tid for kontroll og kritikk, er det
303 ingen tilsvarende mulighet for det som sies fra vitneboksen i en norsk
304 domstol. Kan dette føre til at en sak varer lengre enn nødvendig i
305 rettssystemet? Jeg tror det, og synes det er en skam at det ikke
306 publiseres ordrette referater fra norske rettsaler.</p>
307
308 <p>En relatert observasjon er at det i utvalgte deler av landet
309 eksperimenteres med lydopptak fra rettsalen, men disse opptakene er
310 kun tilgjengelig for dommeren til hjelp når oppsummeringen skrives.
311 Jeg synes som et minimum at disse lydopptakene som en regel burde vært
312 publisert offentlig på web.</p>
313 </div>
314 <div class="tags">
315
316
317
318 Tags: <a href="tags/norsk">norsk</a>.
319
320 </div>
321 </div>
322 <div class="padding"></div>
323
324 <div class="entry">
325 <div class="title"><a href="Testing_av_reprap_elektronikken_igang.html">Testing av reprap-elektronikken igang</a></div>
326 <div class="date">2009-03-12 16:00</div>
327 <div class="body">
328 <p>Lenge siden det var en oppdatering av status for min 3D-skriver og
329 i mellomtiden har det skjedd en god del. Reprap-en er nesten ferdig
330 montert, og elektronikken er også nesten ferdig loddet. Det ser ut
331 til at bits-from-bytes sitt byggesett versjon 2.01 hadde noen småfeil,
332 der en del manglet og en annen hadde suboptimalt design. Jeg løser
333 antagelig det ene problemet med å borre noen ekstra hull til skruver i
334 en plastdelen som trenger å festes. Det andre problemet håper jeg å
335 få hjelp fra Audun Vaaler ved Høgskolen i Østfold til å løse.
336 Høgskolen er igang med å bygge en tilsvarende reprap i versjon 2.0, og
337 er kommet litt lenger enn meg. De kan forhåpentligvis skrive ut den
338 delen jeg mangler på denne.</p>
339
340 <p>Når det gjelder elektronikken, så er mye allerede loddet sammen av
341 min venn Anders Rosnes, som har mer peiling på elektronikk og lodding
342 enn meg. Jeg fikk i dag testet
343 <a href="http://reprap.org/bin/view/Main/Stepper_Motor_Driver_1_1">stepper
344 motordriveren (v1.1)</a>, og det fungerte. Jeg møtte et lite problem
345 med strømforsyningen, en standard ATX-strømforsyning som nektet å
346 fungere før jeg hadde satt en ledning mellom GRD og PS_ON som
347 beskrevet på
348 <a href="http://dev.www.reprap.org/bin/view/Main/PCPowerSupply">reprap-sidene
349 om PC-strømforsyninger</a>. Jeg møtte også et annet problem med
350 Arduino-programvaren. Versjon 0013 fungerer visst ikke på
351 Debian/Etch. Den kompilerte binæren ble på 0 bytes. En side jeg fant
352 vha. et Google-søk
353 <a href="http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1234153046/5">tipset
354 meg</A> om at en nedgradering
355 til <a href="http://arduino.googlecode.com/files/arduino-0012-linux.tgz">versjon
356 0012</a> kunne løse problemet, og endelig ser jeg motorakslingen
357 snurre. Nå er det å koble sammen mekanikk og elektronikk for å se om
358 reprap-en kvikner til.</p>
359 </div>
360 <div class="tags">
361
362
363
364 Tags: <a href="tags/3d-printer">3d-printer</a>, <a href="tags/norsk">norsk</a>, <a href="tags/nuug">nuug</a>, <a href="tags/reprap">reprap</a>.
365
366 </div>
367 </div>
368 <div class="padding"></div>
369
370 <div class="entry">
371 <div class="title"><a href="Frikanalen_og_jul_i_studentr__det.html">Frikanalen og jul i studentrådet</a></div>
372 <div class="date">2009-03-11 23:40</div>
373 <div class="body">
374 <p>I går
375 <a href="http://lists.nuug.no/pipermail/interesserte/2009-March/000387.html">lanserte</a>
376 NUUGs videogruppe
377 <a href="http://www.frikanalen.no">Frikanalen</a> med
378 <a href="http://www.nuug.no/pub/video/frikanalen/frontpage.cgi">åpne
379 standarder</a>, og resultatet av noen intense uker med arbeide kunne
380 endelig presenteres. Jeg har tro på åpen kanalkonseptet som
381 Frikanalen er et eksempel på, der borgerne får anledning til å
382 kringkaste sitt syn på en åpen og demokratisk måte. Jeg er veldig
383 glad vi har fått gjort kanalen tilgjengelig i Ogg Theora, slik at alle
384 kan få tilgang til opptakene på web, og slipper å måtte installere MS
385 Silverlight for å spille av opptakene.</p>
386
387 <p>Frikanalen har en brokete historie, og dagens inkarnasjon er ikke
388 helt slik foreningen Åpen kanal planla det for mange år siden, noe som
389 er bakgrunnen for at det fredag 13. mars 2009 kl 09:00 starter en
390 rettsak i Oslo tingrett der Kringkasterforeningen (tidligere
391 foreningen Åpen kanal) har saksøkt kulturdepartementet over
392 konsesjonsvilkårene til Frikanalen. Jeg er spent på resultatet.</p>
393
394 <p>I arbeidet med Frikanalen med åpne standarder, så har vi hatt glede
395 av å se en rekke av innslagene som er tilgjengelig. Her er mye
396 religiøst sludder, fra
397 <a href="http://www.nuug.no/pub/video/frikanalen/fetchvideo.cgi?videoId=720">vandring
398 i jerusalem</a> via
399 <a href="http://www.nuug.no/pub/video/frikanalen/fetchvideo.cgi?videoId=779">religiøst
400 vinklede nyheter</a> til
401 <a
402 href="http://www.nuug.no/pub/video/frikanalen/fetchvideo.cgi?videoId=2077">kreasjonisk
403 retorikk</a>, men også fine
404 <a href="http://www.nuug.no/pub/video/frikanalen/fetchvideo.cgi?videoId=407">dokumentarer
405 om redningsselskapet</a> og
406 <a href="http://www.nuug.no/pub/video/frikanalen/fetchvideo.cgi?videoId=2204">interessante
407 tegneserieanmeldelser</a>. Det jeg derimot har hatt størst glede av,
408 er
409
410 <a href="http://www.nuug.no/pub/video/frikanalen/fetchvideo.cgi?videoId=1556">jul
411 i studentrådet</a>, der hver episode var en fest å se på. Jeg håper
412 NUUG lykkes med å få ut sine opptak med like stor suksess.</p>
413 </div>
414 <div class="tags">
415
416
417
418 Tags: <a href="tags/norsk">norsk</a>, <a href="tags/nuug">nuug</a>, <a href="tags/video">video</a>.
419
420 </div>
421 </div>
422 <div class="padding"></div>
423
424 <div class="entry">
425 <div class="title"><a href="Lisensvalg_for_NUUG_opptakene_endelig_p___plass.html">Lisensvalg for NUUG-opptakene endelig på plass</a></div>
426 <div class="date">2009-03-06 21:20</div>
427 <div class="body">
428 <p>Etter mange års meditasjon over temaet, har NUUG endelig klart å
429 bestemme seg for hvilken lisens vi skal bruke på videoopptakene som
430 gjøres av NUUGs videogruppe. Ole Kristian har annonsert at lisensen
431 blir <a href="http://creativecommons.org/licenses/by-sa/3.0/no/">Creative
432 Commons Navngivelse-Del på samme vilkår 3.0 Norge</a>. Jeg er veldig
433 glad for at denne saken endelig er landet. Lisensen for opptaket til
434 Stallman-foredraget ble en annen pga. at lisensvalget ikke var avklart
435 på forhånd og IFI og PING ønsket CC-BY-ND, og må ses på som et unntak
436 i denne sammenhengen.</p>
437 </div>
438 <div class="tags">
439
440
441
442 Tags: <a href="tags/norsk">norsk</a>, <a href="tags/nuug">nuug</a>, <a href="tags/video">video</a>.
443
444 </div>
445 </div>
446 <div class="padding"></div>
447
448 <div class="entry">
449 <div class="title"><a href="Teknisk_program_for_Go_Open_2009_er_nesten_ferdig.html">Teknisk program for Go Open 2009 er nesten ferdig</a></div>
450 <div class="date">2009-03-05 22:30</div>
451 <div class="body">
452 <p>Etter lang tids jobbing begynner endelig programmet til det
453 tekniske sporet på konferansen <a href="http://www.goopen.no/">Go Open
454 2009</a> å bli ferdig. Det blir 9 punkter på programmet, og etter alt
455 å dømme blir det disse 9:</p>
456
457 <ul>
458
459 <li>"Open Telephony: A solution greater than the sum of its parts" med
460 Jon "maddog" Hall</li>
461 <li>OpenSolaris-relatert med Ian Murdock fra SUN</li>
462 <li>"The inner workings of the OpenStreetmap project and the
463 technology used" med Andy Allan </li>
464 <li>Coreboot-relatert med Peter Stuge</li>
465 <li>"Gratis værdata fra Meteorologisk institutt" med Trond Michelsen</li>
466 <li>RRDtool/Nagios-relatert med Tobias Oetiker</li>
467 <li>"Developers guide to server-side productivity and fun using open
468 source platforms and frameworks" med en gjeng folk fra
469 JavaBin-miljøet</li>
470 <li>"G(et)it Nå!" med Marcus Ramberg</li>
471 <li>Om kontrolltelling av valgresultater med fri programvare med Mitch
472 Trachtenberg</li>
473
474 </ul>
475
476 <p>De siste bekreftelsene og overskrifter mangler og kommer
477 forhåpentlig på plass før mandag, men jeg håper dette blir et program
478 flere enn meg vil sette pris på. Jeg gleder meg i hvert fall
479 stort.</p>
480 </div>
481 <div class="tags">
482
483
484
485 Tags: <a href="tags/norsk">norsk</a>, <a href="tags/nuug">nuug</a>.
486
487 </div>
488 </div>
489 <div class="padding"></div>
490
491 <div class="entry">
492 <div class="title"><a href="Checking_server_hardware_support_status_for_Dell__HP_and_IBM_servers.html">Checking server hardware support status for Dell, HP and IBM servers</a></div>
493 <div class="date">2009-02-28 23:50</div>
494 <div class="body">
495 <p>At work, we have a few hundred Linux servers, and with that amount
496 of hardware it is important to keep track of when the hardware support
497 contract expire for each server. We have a machine (and service)
498 register, which until recently did not contain much useful besides the
499 machine room location and contact information for the system owner for
500 each machine. To make it easier for us to track support contract
501 status, I've recently spent time on extending the machine register to
502 include information about when the support contract expire, and to tag
503 machines with expired contracts to make it easy to get a list of such
504 machines. I extended a perl script already being used to import
505 information about machines into the register, to also do some screen
506 scraping off the sites of Dell, HP and IBM (our majority of machines
507 are from these vendors), and automatically check the support status
508 for the relevant machines. This make the support status information
509 easily available and I hope it will make it easier for the computer
510 owner to know when to get new hardware or renew the support contract.
511 The result of this work documented that 27% of the machines in the
512 registry is without a support contract, and made it very easy to find
513 them. 27% might seem like a lot, but I see it more as the case of us
514 using machines a bit longer than the 3 years a normal support contract
515 last, to have test machines and a platform for less important
516 services. After all, the machines without a contract are working fine
517 at the moment and the lack of contract is only a problem if any of
518 them break down. When that happen, we can either fix it using spare
519 parts from other machines or move the service to another old
520 machine.</p>
521
522 <p>I believe the code for screen scraping the Dell site was originally
523 written by Trond Hasle Amundsen, and later adjusted by me and Morten
524 Werner Forsbring. The HP scraping was written by me after reading a
525 nice article in ;login: about how to use WWW::Mechanize, and the IBM
526 scraping was written by me based on the Dell code. I know the HTML
527 parsing could be done using nice libraries, but did not want to
528 introduce more dependencies. This is the current incarnation:</p>
529
530 <pre>
531 use LWP::Simple;
532 use POSIX;
533 use WWW::Mechanize;
534 use Date::Parse;
535 [...]
536 sub get_support_info {
537 my ($machine, $model, $serial, $productnumber) = @_;
538 my $str;
539
540 if ( $model =~ m/^Dell / ) {
541 # fetch website from Dell support
542 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";
543 my $webpage = get($url);
544 return undef unless ($webpage);
545
546 my $daysleft = -1;
547 my @lines = split(/\n/, $webpage);
548 foreach my $line (@lines) {
549 next unless ($line =~ m/Beskrivelse/);
550 $line =~ s/&lt;[^>]+?>/;/gm;
551 $line =~ s/^.+?;(Beskrivelse;)/$1/;
552
553 my @f = split(/\;/, $line);
554 @f = @f[13 .. $#f];
555 my $lastend = "";
556 while ($f[3] eq "DELL") {
557 my ($type, $startstr, $endstr, $days) = @f[0, 5, 7, 10];
558
559 my $start = POSIX::strftime("%Y-%m-%d",
560 localtime(str2time($startstr)));
561 my $end = POSIX::strftime("%Y-%m-%d",
562 localtime(str2time($endstr)));
563 $str .= "$type $start -> $end ";
564 @f = @f[14 .. $#f];
565 $lastend = $end if ($end gt $lastend);
566 }
567 my $today = POSIX::strftime("%Y-%m-%d", localtime(time));
568 tag_machine_unsupported($machine)
569 if ($lastend lt $today);
570 }
571 } elsif ( $model =~ m/^HP / ) {
572 my $mech = WWW::Mechanize->new();
573 my $url =
574 'http://www1.itrc.hp.com/service/ewarranty/warrantyInput.do';
575 $mech->get($url);
576 my $fields = {
577 'BODServiceID' => 'NA',
578 'RegisteredPurchaseDate' => '',
579 'country' => 'NO',
580 'productNumber' => $productnumber,
581 'serialNumber1' => $serial,
582 };
583 $mech->submit_form( form_number => 2,
584 fields => $fields );
585 # Next step is screen scraping
586 my $content = $mech->content();
587
588 $content =~ s/&lt;[^>]+?>/;/gm;
589 $content =~ s/\s+/ /gm;
590 $content =~ s/;\s*;/;;/gm;
591 $content =~ s/;[\s;]+/;/gm;
592
593 my $today = POSIX::strftime("%Y-%m-%d", localtime(time));
594
595 while ($content =~ m/;Warranty Type;/) {
596 my ($type, $status, $startstr, $stopstr) = $content =~
597 m/;Warranty Type;([^;]+);.+?;Status;(\w+);Start Date;([^;]+);End Date;([^;]+);/;
598 $content =~ s/^.+?;Warranty Type;//;
599 my $start = POSIX::strftime("%Y-%m-%d",
600 localtime(str2time($startstr)));
601 my $end = POSIX::strftime("%Y-%m-%d",
602 localtime(str2time($stopstr)));
603
604 $str .= "$type ($status) $start -> $end ";
605
606 tag_machine_unsupported($machine)
607 if ($end lt $today);
608 }
609 } elsif ( $model =~ m/^IBM / ) {
610 # This code ignore extended support contracts.
611 my ($producttype) = $model =~ m/.*-\[(.{4}).+\]-/;
612 if ($producttype &amp;&amp; $serial) {
613 my $content =
614 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");
615 if ($content) {
616 $content =~ s/&lt;[^>]+?>/;/gm;
617 $content =~ s/\s+/ /gm;
618 $content =~ s/;\s*;/;;/gm;
619 $content =~ s/;[\s;]+/;/gm;
620
621 $content =~ s/^.+?;Warranty status;//;
622 my ($status, $end) = $content =~ m/;Warranty status;([^;]+)\s*;Expiration date;(\S+) ;/;
623
624 $str .= "($status) -> $end ";
625
626 my $today = POSIX::strftime("%Y-%m-%d", localtime(time));
627 tag_machine_unsupported($machine)
628 if ($end lt $today);
629 }
630 }
631 }
632 return $str;
633 }
634 </pre>
635
636 <p>Here are some examples on how to use the function, using fake
637 serial numbers. The information passed in as arguments are fetched
638 from dmidecode.</p>
639
640 <pre>
641 print get_support_info("hp.host", "HP ProLiant BL460c G1", "1234567890"
642 "447707-B21");
643 print get_support_info("dell.host", "Dell Inc. PowerEdge 2950", "1234567");
644 print get_support_info("ibm.host", "IBM eserver xSeries 345 -[867061X]-",
645 "1234567");
646 </pre>
647
648 <p>I would recommend this approach for tracking support contracts for
649 everyone with more than a few computers to administer. :)</p>
650
651 <p>Update 2009-03-06: The IBM page do not include extended support
652 contracts, so it is useless in that case. The original Dell code do
653 not handle extended support contracts either, but has been updated to
654 do so.</p>
655 </div>
656 <div class="tags">
657
658
659
660 Tags: <a href="tags/english">english</a>, <a href="tags/nuug">nuug</a>.
661
662 </div>
663 </div>
664 <div class="padding"></div>
665
666 <p style="text-align: right;"><a href="index.rss"><img src="xml.gif" alt="RSS feed" width="36" height="14"></a></p>
667
668 <div id="sidebar">
669
670
671
672
673
674 <h2>Archive</h2>
675 <ul>
676
677 <li>2009
678 <ul>
679
680 <li><a href="archive/2009/01/">January (8)</a></li>
681
682 <li><a href="archive/2009/02/">February (8)</a></li>
683
684 <li><a href="archive/2009/03/">March (9)</a></li>
685
686 </ul></li>
687
688 <li>2008
689 <ul>
690
691 <li><a href="archive/2008/11/">November (5)</a></li>
692
693 <li><a href="archive/2008/12/">December (7)</a></li>
694
695 </ul></li>
696
697 </ul>
698
699
700
701 <h2>Tags</h2>
702 <ul>
703
704 <li><a href="tags/3d-printer">3d-printer (9)</a></li>
705
706 <li><a href="tags/amiga">amiga (1)</a></li>
707
708 <li><a href="tags/aros">aros (1)</a></li>
709
710 <li><a href="tags/debian">debian (3)</a></li>
711
712 <li><a href="tags/debian edu">debian edu (4)</a></li>
713
714 <li><a href="tags/english">english (6)</a></li>
715
716 <li><a href="tags/fiksgatami">fiksgatami (1)</a></li>
717
718 <li><a href="tags/ltsp">ltsp (1)</a></li>
719
720 <li><a href="tags/multimedia">multimedia (2)</a></li>
721
722 <li><a href="tags/norsk">norsk (31)</a></li>
723
724 <li><a href="tags/nuug">nuug (27)</a></li>
725
726 <li><a href="tags/personvern">personvern (3)</a></li>
727
728 <li><a href="tags/reprap">reprap (9)</a></li>
729
730 <li><a href="tags/rss">rss (1)</a></li>
731
732 <li><a href="tags/standard">standard (1)</a></li>
733
734 <li><a href="tags/stavekontroll">stavekontroll (1)</a></li>
735
736 <li><a href="tags/video">video (5)</a></li>
737
738 <li><a href="tags/vitenskap">vitenskap (1)</a></li>
739
740 <li><a href="tags/web">web (2)</a></li>
741
742 </ul>
743
744 </div>
745
746 <p style="text-align: right">
747 Created by <a href="http://steve.org.uk/Software/chronicle">Chronicle v3.5</a>
748 </p>
749 </body>
750 </html>