Alt om ingenting og litt i mellom En blogg av Knut-Olav

Linux bare går og går

11. november 2007 · 2 Kommentarer

Her om dagen skjedde det noe litt spennende. Jeg bootet opp min gamle Linux-installasjon da jeg var lei av at arbeidsstasjonen stadig hard-locket da den kjørte Windows XP. Dette problemet har skjedd oftere og oftere fra da det startet på våren i år.

Jeg har brukt Windows primært for videoredigering, men siden det har blitt umulig å bruke Windows-installasjonen, så bestemte jeg meg for å teste ut den gamle Linux-installasjonen jeg hadde liggende på maskinen. Jeg putta så i SCSI-kabelen, endra boot-rekkefølgen i BIOS og boota Linux fra SCSI-disken min.

Det første som slo meg var at det var installert Gentoo Linux. Tror nok jeg bytter ut dette med KUbuntu etterhvert, da jeg har ymse erfaringer med oppgradering av Gentoo. Den bootet ihvertfall uten problemer.

Det neste jeg la merke til var kontroll av filsystemet:
/dev/sda3 has gone 1229 days without being checked
Artig, tenkte jeg da.

Litt synd at jeg ikke har brukt SCSI-disken min på så mange år, men kanskje det endrer seg nå. Ytelsen på SCSI-disken er det ihvertfall ingen ting å klage på:
# hdparm -tT /dev/sda
/dev/sda:
Timing cached reads: 1044 MB in 2.00 seconds = 521.04 MB/sec
Timing buffered disk reads: 204 MB in 3.01 seconds = 67.76 MB/sec

HDparm sin ytelsestest gir ikke det mest korrekte resultatet, men den gir ihvertfall en god pekepinn på hva man har i vente.

Da jeg fikk logget inn hadde jeg verken nettverkstilkobling eller lyd. Det var da jeg kom på at jeg hadde skiftet hovedkort i mellomtiden. Dette var derimot raskt å fikse. Nettverksgrensesnittet hadde bare byttet fra eth0 til eth2. Når det gjaldt lyden, måtte jeg inn og legge til via-driveren for ALSA-støtte i Linux-kjernen. Denne ble lagt til som modul, så jeg fikk søt musikk uten å måtte starte maskinen på nytt. Kjernen var av versjon Linux-2.6.7-gentoo-r11, installert 28. juli 2004.

Gammel ProgramvareVMware startet pent opp, riktignok etter en ny “vmware-config.pl”-runde. Denne Linux-installasjonen var så gammel at da jeg startet opp Mozilla, så fikk jeg beskjed om at Mozilla Suite var av gammel mote og at jeg burde oppgradere til Mozilla Firefox. OpenOffice var i versjon 1.1.2 og KDE i versjon 3.2.3.

aMSN fungerte også fint. Dette var en av de applikasjonen jeg fryktet at ikke skulle fungere, etter flere forsøk fra Microsoft i å stoppe bruk av andre klienter enn MSN Messenger. Nå husker jeg også hvorfor jeg har byttet til Gaim alle andre steder; nå har jeg 12 aMSN-vinduer oppe, hvor 10 av dem er uten samtaler, de har bare poppet opp på automagisk vis…

Nå har den kjørt i snart et døgn uten at maskinen har krasjet. Med det konkluderer jeg med at enten er min Windows-installasjon rett og slett ødelagt eller så har jeg noen dårlige IDE-disker stående i maskinen. Noen som har hørt om backup? Hmm…

Tenk modularitet

2. november 2007 · Comments Off

Når man utvikler et program starter det ofte i det små, og man programmerer med fokus på det man skal oppnå for å bli ferdig i tide. Programvare og ønsker endrer seg ofte, og det gjør også klassene og funksjonene dine. Når man gjør endringer i funksjonalitet eller legger til ny funksjonalitet er det veldig enkelt å legge til noen nye linjer i de funksjonene man allerede har; en “if” her og en “else” der kan da ikke skade?

Problemet oppstår først når man etter en stund skal inn og gjøre endringer i allerede eksisterende funksjonalitet, helst uten å brekke hele systemet. Kanskje man kaller på funksjoner som man egentlig ikke aner hvor finnes i kodetreet, man har ikke peiling på hvor denne globale variabelen “er_satt” ble satt, enda mindre pailing hvor den kanskje ble endret på veien, og den smarte workarounden som du la inn for et halvt år siden er nå blitt et midtpunkt i systemet ditt. Hva gjør du så? Jo, du legger til en ny “if”…

… eller du starter på nytt. Tanken på å starte fra scratch kan virke skremmende på de fleste, men du har et gigantisk fortrinn foran hvem som helst andre som skulle laget det samme. Du vet hva du skal lage. Du har laget det før, og du skal lage det samme på nytt, men denne gangen med modularitet i fokus.

Det finnes noen små og enkle leveregler når det gjelder programmering. Ingen linjer skal være lenger enn 80 tegn i bredden og ingen funksjoner skal være på flere linjer enn hva skjermbildet ditt kan vise, og gjerne litt mindre. En skummel situasjon er hvor man får løkker inni løkker inni løkker, fordi dette skaper en uorden og det er vanskelig å se på koden og umiddelbart se hva som blir gjort med dataene. Kanskje kan en av løkkene flyttes ut som en ny funksjon, som bare håndterer et sett av dataene. Kanskje denne funksjonen kan benyttes et annet sted i programmet ditt. Tankegangen bak modularitet er å få oversiktlig og gjenbrukbar kode.

Vær gnien på hvilke data du sender mellom funksjonene. Man kan si at dersom antall parametere inn til en funksjon overstiger tre, så gjør enten funksjonen alt for mye eller så hører disse dataene sammen og du kan kanskje lage en klasse som representerer dataene dine istedet. Husk at dataene du sender til en funksjon skal ha høy integritet, eller med andre ord “høre sammen”. Dersom du har behov for å sende data som ikke hører sammen eller som ikke er på samme nivå i systemet ditt, som for eksempel en liste med fotballag sammen med en referanse til databasekontrolleren din, da bør du vurdere å tenke nytt. Kanskje mottakerfunksjonen kan klare å finne referansen til databasekontrolleren selv, eller kanskje du kan sende lista med fotballag til en klasse som arver fra databasekontrolleren som har direkte tilgang til databasen via denne.

For å ta et konkret eksempel på et prosjekt jeg har jobbet med for litt siden, stod vi foran et valg hvor vi kunne lage noen funksjoner for å håndtere forskjellige filtyper og bruke if-else-kontrollstrukturer for å kalle på riktige funksjoner, eller å lage nye klasser for hver filtype og bruke en hashmap for å finne ut hvilken som skulle brukes. Vi gikk for valg nummer to. Vi lagde en felles klasse med en abstrakt metode, som alle de forkjellige filtypene arvet fra. Dermed kunne vi lage noen små og oversiktlige klasser, hvor navnet på klassene indikerte hvilken filtype de håndterte, og disse klassene arvet fra fellesklassen med forskjellige implementasjoner av den abstrakte metoden for å håndtere filtypens unike handling. Det som viste seg var at mange av disse filtypene skulle håndteres likt. Det som kunne blitt et hav av if-elsif ble nå bare en utvidelse av hashmapen for å peke alle filtypene med samme handlingsmønster til samme klasse.

Dette er bare et lite eksempel av hvordan man kan programmere modulært. Det er flere måter å programmere modulært på. Man kan for eksempel lage en plugin-arkitektur hvor man kan stikke inn små moduler som gjør en bestemt oppgave totalt uavhengig av de andre modulene man skulle bruke. Det man må passe på er at disse innstikksmodulene ikke blir for store og monolitiske, men at man også fører modularitetstankegangen videre ut i modulene sine og helt ut i hver funksjon.

Kort oppsummert handler dette om “best practices”. Innen objektorient programmering heter det at enhver klasse skal ha høy kohesjon og svak kobling. Dette gjelder også for strukturell programmering. En funksjon skal ikke kunne alt, men skal være en ekspert på sitt område.

Kontrollerer displayet på PC-en fra MythTV

20. september 2007 · Comments Off

Nå har jeg gjort noen fremskritt når det gjelder stue-PC-en min. Jeg fikk til ganske tidlig å sende tekst til VFD displayet som sitter i kabinetter på PC-en min som jeg har i stua. Nå har jeg også koblet MythTV til å vise hvilken kanal jeg ser på og hvilke menyer jeg er inne på.

Enda flere skritt er blitt tatt i det siste. Jeg kjøpte meg en USB-til-seriell-konverterer, slik at jeg kan koble Denon-receiveren min til PC-en. Jeg har slitt litt med å finne programmer for å sende kommandoer over seriell-porten konvertert på riktig måte. Det har derimot ikke vært noe problem å lese events som receiveren sender ut, for eksempel når jeg bytter kilder, stiller på volumet eller skrur den av og på. Derfor måtte jeg skrive mitt eget lille program i Perl. Den store testen gjorde jeg i dag, og det funket! Sendte jeg “PWSUSPEND” så skrudde den seg av, og sendte jeg så “PWON” så skrudde den seg på.

Som en del av dette Perl-prosjektet så skal jeg lage en tjeneste som skal kjøre i bakgrunnen og lytte på kommandoer fra receiveren og fra et klientprogram jeg også holder på å lage. Videre skal jeg sette opp LIRC slik at jeg kan bruke ATI-remote fjernkontrollen min til å styre MythTV. LIRC står for Linux Infrared Remote Control og består av server og klient for å sende koder mellom fysiske enheter som en fjernkontroll og programmer som MythTV. Jeg skal gjøre det mulig å svitsje mellom “on” og “off” på MythTV enten ved å bytte input-kilde på receiveren eller ved å trykke på power-knappen på fjernkontrollen. Kanskje jeg skal porte Perl-programmet mitt til å bli en LIRC-klient.

Jeg har lest om en som har brukt fjernkontrollen til en Squeezebox til å styre MythTV. Dette hadde han gjort mulig ved å skrive en plugin til Slimserver, som er serverprogramvaren til Squeezebox-en. Denne pluginen kobler seg så til LIRC og sender LIRC-koder på samme måte som en fjernkontroll direkte tilkoblet MythTV.

Jeg lagde en rask liten og svært useriøs film med mobiltelefonen min som viser VFD-displayet og MythTV. Det skal legges til at filmen er helt uten spesialeffekter og er en direkte gjengivelse av det virkelige liv… MythTV og VFD

Har du oversikt over livet ditt?

25. august 2007 · Comments Off

Hvor mange brukerstyrte nettsider, også kjent som communities, er du registrert på? Hvor mange bruker du aktivt? Hvor mange har du lastet opp dine private bilder til eller lagt opp privat informasjon på?

Det finnes et mylder av slike communities, hvor de største er Youtube, Microsoft Live Spaces, MySpace og Facebook, hvorav sistnevnte har skutt i været det siste året. Nettby er også en populær tjeneste her i Norge. Kanskje er du registrert på og har benyttet alle disse nevnte tjenestene, og kanskje enda flere.

Det disse sidene alle har til felles er at de skal bygge opp dine sosiale nettverk. Du legger ut informasjon om deg selv, som navn, adresse, telefonnummer, epost og annen kontaktinformasjon, blant annet for MSN Messenger, IRC, Jabber og Skype. Du laster opp private bilder og videoer av deg selv, dine venner, fra fester du har vært på og steder du har besøkt. Dette kan enten vises av alle som besøker nettstedet eller du kan velge at kun dine venner kan se det du har lagt ut.

Høres ikke dette flott og fint ut? Du kan holde oversikt over dine kontakter på et nettsted som du har tilgang til hvor enn det er Internettforbindelse. Du kan raskt og enkelt vise bildene fra festen i går til alle dine venner, organisere bildene i album, skrive kommentarer på bildene og merke av hvem det er som er blitt tatt bilde av.

Så, hva er baksiden av det hele? En viktig ting å huske på er at Internett fanger “alt”. Det som først legges opp er vanskelig å fjerne. Bilder og sider blir mellomlagret i flere ledd, alt fra nettlesere, proxy-servere, søkemotorer og backup hos tilbyderne av nettsidene.

Du har kanskje benyttet deg av flere forskjellige nettsamfunn tidligere. Har du egentlig noen oversikt over hvilke? Bruker du alle fortsatt? Har du oversikt over hva du har skrevet på profilene dine over alt? Hvilke bilder du har lastet opp hvor? Hvilke kontakter du har på de forskjellige stedene?

Har du noen gang tenkt på sikkerheten på disse nettstedene? Det finnes sikkerhetshull i applikasjoner på PC-en din, kanskje du har tettet de fleste, og kanskje noen nye blir funnet neste uke. Det er ingen unntak fra nettbaserte applikasjoner. Faktisk kan det være vanskeligere å beskytte slike applikasjoner, fordi du rett og slett ikke kan sikre dine data ved å dra ut nettverksledningen fra PC-en din. Alt ligger på Internett, tilgjengelig for nesten 7 milliarder mennesker.

Mange har advart mot Facebook, at det krenker privatlivet til både deg og dine venner. Forretningshemmeligheter kan havne i urettmessige hender, enten man gjør det bevisst eller ikke. Dette er kanskje enda mer skummelt nå, etter at det ble mulig å utvikle applikasjoner som integreres i Facebook. De kan virke harmløse, men de har full tilgang til din profil og alle dine venners profiler. Her settes din sikkerhet på prøve. Ditt og dine venners privatliv kan leses av et program som utviklerne av Facebook over hodet ikke har noen kontroll over.

Facebook skal nå begynne å analysere brukernes profiler for å lage målrettet reklame mot deg. Da du registrerte deg godtok du vilkårene som Facebook har satt. Disse vilkårene vil kort fortalt ta fra deg det meste av rettigheter du trodde du hadde. Alt du laster opp vil Facebook kunne bruke til nærmest hva de vil, som å selge det videre til partnere. Med andre ord kan Facebook gjøre penger på det du laster opp, for eksempel flotte landskapsbilder.

Her følger et utdrag fra Facebooks “Terms of Use”, hvor “User Content” beskriver informasjon og filer du laster opp og “the Company” beskrives som Facebook:
By posting User Content to any part of the Site, you automatically grant, and you represent and warrant that you have the right to grant, to the Company an irrevocable, perpetual, non-exclusive, transferable, fully paid, worldwide license (with the right to sublicense) to use, copy, publicly perform, publicly display, reformat, translate, excerpt (in whole or in part) and distribute such User Content for any purpose on or in connection with the Site or the promotion thereof, to prepare derivative works of, or incorporate into other works, such User Content, and to grant and authorize sublicenses of the foregoing.

Jeg synes dette er litt skremmende å tenke på. Jeg er selv en Facebook-bruker. Jeg ble dratt med inn i stormen. Og, som de aller fleste andre, så leste heller ikke jeg disse vilkårene… ikke før idag. Jeg mener selv at jeg har et stort fokus på sikkerhet, men jeg er ikke paranoid nok til å lese absolutt alle vilkår som jeg godtar.

Man behøver ikke å nappe ut kabelen, hogge i stykker modemet, rømme til fjells og bli huleboer for å sikre sitt privatliv, men man bør tenke seg om et par ganger over hva man legger ut om seg selv på slike nettsamfunn.

Amy Winehouse hopper over Øya og Djuice

8. august 2007 · Comments Off

Amy Winehouse skulle etter planen opptre på Øyafestivalen i kveld, men meldte frafall i dag. Hun ble lagt inn på sykehus grunnet utmattelse og ble rådet å ta det mer med ro. Hun er kjent for å ha rusproblemer og har vært tydelig beruset under flere konserter. I det siste har hun avlyst flere konserter, så det er kanskje ikke så rart at Øyafestivalen stod beredt med Minor Majority som backup-band kort tid etter Amys fravær ble kjent.

777G0062_edited.jpg
Jeg syntes det var svært morsomt da jeg la merke til en reklameplakat på T-banen i dag for Djuice. Telenor har jaggu bomma litt da de har reklamert hardt for at Amy kommer til Øyafestivalen og at du kan laste ned musikk fra Amy til mobiltelefonen din og høre det hvor du vil, som for eksempel på en “bar i Svelvik” eller på et “gatekjøkken langs E18″. Personlig lurer jeg mest på om dette gatekjøkkenet skal forestille Sande. Det ville i hvert fall ikke vært første gang noen tror det… *sarkastisk*

Endelig kom sommeren

7. august 2007 · Comments Off

Sommeren har liksom ikke vært den samme som tidligere. En ting er at dette er den første sommeren etter at jeg startet i fast jobb, som betyr ingen lang skoleferie, men det dårlige været har gjort sommeren litt kjedeligere enn vanlig. Det har vært for kaldt til å bade i sjøen, og mye regn og fuktig gress frister ikke mye til å spille fotball. Det har derfor blitt lange dager inne foran PC-en. Jeg har derfor fått tid til å lære meg enda mer programmering, og blant annet startet på et prosjekt for å ha en PC med Linux i bilen for å spille av film og musikk.

77650056.jpgI går dukket sola godt frem og i dag steg temperaturen til over svettepunktet. Vi har akkurat tatt slåtten hjemme på gården, et par måneder for seint. Dette var første perioden siden juni hvor det har vært lenge nok opphold til å kunne slå gresset.

77650057.jpg

I dag er det vindstille og ingen bølger å se på vannet. Jeg følge jeg bare måtte ta noen bilder på morgenen i dag for å dokumentere dette nydelige været. La oss håpe det fortsetter slik en god periode til.

Jeg holder fortsatt til på hytta, selv om det betyr litt ekstra kjøring for å komme til jobb. Det er noe med hytta som virker avslappende. Litt tradisjon kanskje…

Hvorfor Live Earth feiler

7. juli 2007 · Comments Off

Live Earth er bare et simpelt PR stunt, ikke bare for Al Gore, men også for en stor gruppe med kommersielle aktørene som utnytter denne dagen til å fremme sine egne merkenavn og produkter.

Det er to websider om Live Earth på Internett, hvorav den andre er tilgjengelig fra MSN. Begge disse sidene inneholder reklame om produkter de snakker pent om gjentatte ganger på TV-sendingene. Jeg personlig synes det er svært upassende for et slikt arrangement. Det er også noe ironisk at Microsoft som partner til dette arrangementet blir beskyldt for sine overdrevne innpakninger av Windows Vista og dette produktets høye systemkrav som vil resultere i at mange datamaskiner kastes.

Al Gore benytter denne dagen for å reklamere for sin egen person. Det er innslag mellom konsertene som bringer budskapet om å “høre på Al Gore” og “Al Gore har rett”. Navnet på arrangementet er også misvisende. Navnet et svært lik Live Aid og Live 8, konsertene Bob Geldof stod bak for å opplyse om sultproblemene i Afrika.

Live Earth skal opplyse folk om hvilke problemer verden står ovenfor når det gjelder global oppvarming, forurensning og energimisbruk, men ikke alle er like enige. Pet Shop Boys, The Who og Muse er blant de som har uttrykt sin misnøye, og Bob Geldof mener at folk flest allerede kjenner til problemet med global oppvarming.

Al Gore har ikke klart å påvirke meg når det gjelder global oppvarming, forurensning og energisparing. Jeg kommer til å fortsette som jeg har gjort til nå, og jeg er faktisk ganske påpasselig med dette, noe som støtter opp under påstanden til Bob Geldof. Det jeg heller tenker på er hvor mye energi og forurensning dette arrangementet bruker, og ikke minst hva artistenes privatfly og fete biler har sluppet ut av forurensende gasser for å komme seg til og fra konsertene.

Jeg vet hvorfor jeg ser på Live Earth. Jeg følger med på Live Earth kun for musikken. Jeg venter bare på Duran Duran, Roger Waters og Bon Jovi. Så hva er egentlig Live Earth? Kanskje det bare er en ufattelig stor konsert…

Oppdatering 08.07.2007
Jeg har veldig lite eller ingenting godt å si om Live Earth… det var ikke så mange artister og band som fristet, og det som jeg så mest fram til fikk jeg aldri se. Om det ble sendt den halvtimen midt på dagen som jeg ikke så vet jeg ikke. Jeg bare sier at det var ganske irriterende å sitte hele dagen og fram til kl 4 på natta for å vente på Roger Waters og Bon Jovi som aldri dukket opp på skjermen. Og hva var det som avslutta det hele? Kelly Clarkson! Jeg sier ikke mer. *skuffet*

WordPress plugins – katalogstruktur

7. juni 2007 · Én kommentar

Når man utvikler en plugin for WordPress som stadig utvides med ny funksjonalitet kan den vokse så stor at det kan bli et uhåndterbart antall filer i pluginkatalogen eller at filene rett og slett blir så store at det er vanskelig å få oversikt over funksjonaliteten i filene. Dette går også ut over ytelsen til WordPress. Et eksempel er plugin-siden i administrasjonsgrensesnittet som søker i alle PHP-filer i alle underkataloger ett nivå under plugins-katalogen etter filer med en plugin-header.

Dersom man kun beholder én PHP-fil, som vi kaller for “loader”, i rotkatalogen til pluginen kan ytelsen økes noe. Denne filen inneholer plugin-headeren og den eneste oppgaven til denne filen er å laste de resterende filene i pluginen. Denne loaderen vil videre laste en kontroller i en katalog vi kan kalle for “core”. Denne kontrolleren har som oppgave å sette opp hooks for å intregere mot WordPress og ellers kontrollere dataflyten i pluginen.

Den viktigste grunnen for å organisere filene sine er for å få bedre oversikt. En måte å gjøre dette på er å benytte underkataloger basert på funksjonalitet og filtype. For eksempel kan man plassere alle Javascript-filer i en “js”-katalog og alle CSS-filer i en “css”-katalog. Dersom pluginen din skal ha et administrasjonsgrensesnitt kan disse filene legges i katalogen “admin”, og en widget-støttet plugin kan ha widget-relaterte filer i en “widget”-katalog. All denne strukturen krever litt ekstra koding og flere filer å holde styr på, men til gjengjeld slipper man å se sine filer vokse til store monstere på flere tusen linjer. Store filer kan lett bli et problem, noe jeg selv har erfart i utvikling av WordPress-plugins.

Eksempel på katalogstruktur for en plugin av passe stor størrelse:

my_plugin_loader.php
/actions/controller.php
/actions/widget.ajax.php
/admin/options.php
/core/my_plugin.php
/css/admin.options.css
/css/widget-css.php
/js/script-loader.php
/js/some_lib.js
/js/widget-js.php
/languages/my_plugin-nb_NO.po
/languages/my_plugin-nb_NO.mo
/widget/widget.control.php
/widget/widget.php

Jeg har her brukt noen passende filnavn. Det er ofte ikke nødvendig å spesifisere katalognavnet som en del av filnavnet, men av og til kan det være smart, avhengig av hvilken editor som benyttes. Selv benytter jeg Eclipse som viser kun filnavnet, og det kan være vanskelig å skille tre åpne filer som alle heter “control.php” fra hverandre.

Jeg har tatt med i eksempelet en fil som heter “script-loader.php” som kan benyttes for å laste Javascript-filene. WordPress har funksjonalitet for å registrere Javascriptene med navn, URL og avhengigheter. Det er også mulig å spesifisere versjon av Javascriptet, som blir en del av URL-adressen til filen. Dette er svært aktuelt for å tvinge nettlesere til å laste den nye Javascript-filen fremfor å benytte en som kan finnes i en cache ett eller annet sted.

Man kan ha behov for å kalle på funksjonalitet i pluginen som ikke skal benytte det vanlige themet til WordPress, men kanskje bare returnere noe data til et Javascript, utføre en oppdatering eller printe ut en CSS- eller Javascript-fil. Man kan dermed ha behov for en egen front-kontroller som tar seg av disse forespørslene.

Jeg benytter PHP5 og objektorientering for å utvikle plugins til WordPress, men tankene og forslagene i denne artikkelen kan like gjerne benyttes med en strukturell programmeringsmetodikk. Jeg synes det er alt for mange dårlig skrevne plugins for WordPress, hacket sammen for å gi funksjonaliteten som er ønsket på det gitte tidspunktet. Dette gjør det vanskeligere å vedlikeholde dem senere når nye krav kommer og det gjør integrasjon med andre plugins og nyere versjoner av WordPress til et mareritt. Disse pluginene benyttes så som et utgangspunkt for nye plugins ved hjelp av copy/paste-metoden. Jeg tror at bedre dokumentasjon med gode eksempler kan bidra til bedre kodestandard på plugins.

Konfigurere Linksys WRT54GL i et større nettverk

1. mai 2007 · Én kommentar

Jeg har en lidenskap for nettverk og konfigurering av nettverksutstyr og tjenester. Hjemme, både i leiligheten og i huset til foreldrene mine, har jeg nettverk som kunne passet bra for en middels til stor bedrift, med egne servere for DNS, DHCP, Web, Mail, skriver- og fildeling, databaser og sentralisert autentisering av trådløse brukere.

Jeg har nylig kjøpt meg en Linksys WRT54GL v1.1 trådløs ruter som skal plasseres i nabohuset til foreldrene mine. Der bor bestemor, og min søster har flyttet inn der og ville gjerne ha Internett.

Jeg har trukket CAT-6 Ethernett-kabel mellom husene for å kunne gi et stabilt nettverk opp til nabohuset. Dette medfører fare for jordingsfeil som kan svi av diverse datautstyr dersom ting går skikkelig galt. Derfor har jeg også kjøpt en APC UPS med overspenningsvern for både strøm og nettverk. Jeg så muligheten for å også sette opp trådløst nettverk der, som kan være kjekt når vi er på besøk hos bestemor, for eksempel i jula. Ja, jeg er Internett-avhengig.

Systeminformasjon om ruterenNoe av det første jeg gjorde med ruteren var å slenge inn OpenWRT WhiteRussian, som en et alternativt firmware til Linksys sine egne. Jeg syntes denne firmwaren var noe mangelfull og lurte veldig på om jeg skulle gå tilbake til Linksys sin. Jeg oppdaget DD-WRT som er basert på kjernen til OpenWRT. Denne har støtte for det meste jeg kunne tenke meg, så valget falt på denne, versjon 23 SP2.

Oppsett av IP-adresser og DHCPJeg ønsket et oppsett hvor ruteren skulle kunne sende IP-pakker fritt frem og tilbake mellom grensesnittene på ruteren, og ikke bare være en NAT-enhet. Jeg er ikke hjemme hos foreldrene mine så ofte, da jeg bor i Drammen, så jeg må ha mulighet for å fjernstyre disse maskinene dersom det skulle være nødvendig. Jeg endret DHCP-tjenesten på ruteren til å videresende DHCP-forespørsler til FreeBSD-ruteren som står i huset til foreldrene mine. FreeBSD-ruteren kjører en DHCP-tjeneste slik at jeg får et sentralt styringspunkt for IP-håndtering. Jeg har satt av et nytt 24-subnett i DHCP-serveren min, tildelt den nye ruteren i nabohuset.

Deaktivert SPI-brannmurDD-WRT har som standard en aktiv SPI-brannmur som filtrerer alle pakker fra WAN-nettverket som forsøker å få tilgang til maskiner på baksiden av ruteren. Denne brannmuren måtte jeg skru av for at svar på DHCP-forespørslene skulle komme tilbake til klientene. På min hoved-ruter i huset til foreldrene mine har jeg satt opp en statisk rute til det nye 24-subnettet som rutes til WAN-grensesnittet på Linksys-ruteren.

Det er viktig at Linksys-ruteren har en fast IP-adresse på det opprinnelige subnettet, for at den statiske rutingen skal være stabil over tid. Dette gjorde jeg ved å konfigurere DHCP-serveren til å gi Linksys-ruteren en statisk IP-adresse.

Brann på toget

16. april 2007 · Én kommentar

Hva er det som er verre enn unødvendige annonseringer på toget? Brann kan vel sies å være hakket verre.

I dag, da jeg tok Kongsberg-toget kl 18:19 på vei hjem fra Oslo til Drammen, oppstod det problemer med det bakre togsettet etter Asker. Jeg tror problemene var relatert til bremsene til den bakre vogna. Det nøkket hardt i vognene mens togføreren forsøkte å kjøre toget sakte frem og tilbake for å løse problemene, noe som spesielt vi som satt bakerst merket godt. Det var også gjentatte strømbrudd og stans. Heldigvis gikk det greit for seg gjennom tunnellen mellom Asker og Lier.

Det oppstod røykutvikling et par meter foran meg på høyre side kort tid etter vi kjørte fra Lier stasjon. Det ble mer og mer røyk som ikke luktet spesielt godt, og vi som satt bakerst flyttet oss derfor fremover i toget og konduktøren ble kontaktet. Toget holdt lav fart, men kom allikevel et lite stykke vekk fra stasjonen. Toget rygget så tilbake til stasjonen og vi fikk beskjed om å trekke ned til veien da vi kom tilbake til Lier stasjon. Da jeg kom ut av toget var det mye røyk som steg opp fra den bakre vogna.

Toget brenner (3)
Vi trakk over på den andre siden av plattformen i håp om å bli plukket opp av neste tog som skulle forbi. Slik skulle det ikke skje, for det neste toget kom i svært høy fart forbi plattformen og tutet. Grunnen til det kom godt til syne da det begynte å brenne under den bakre vognen ved de fremste hjulene. Det røyk også ut fra ventilene på toppen av vognen. Det brant lenge og brannen ble større og det ble store svarte merker oppover ytterveggene på vognen.

Toget brenner (4)
Politiet ankom og etterhvert kom også noen brannbiler. Selvfølgelig stilte også pressen opp. Selv tok jeg noen få bilder med mobiltelefonen min.

Slutten på turen endte med en overfylt buss på helt ulovlig vis fra Lier, innom Brakerøya og til slutt, for min del, Drammen hvor jeg skulle av.

Oppdatering kl 23:00:
Drammens Tidene skriver på sine nettsider om hendelsen. Det var olje som tok fyr og brant under den bakerste vognen. En togkonduktør ble sendt til legevakten etter å ha pustet inn røyken.