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

Xen på (K)Ubuntu Edgy (X11-input og justering av klokke)

6. april 2007 · Comments Off

Jeg oppgraderte KUbuntu fra Dapper til Edgy på laptopen min nylig. Hovedgrunnen til dette var for å sette opp virtualiseringsløsningen Xen. Jeg er klar over at Xen på Ubuntu Edgy er “ødelagt”, noe jeg fant ut da jeg forsøkte å kjøre Ubuntu Edgy sin Xen-kernel på serveren min for en stund tilbake. Problemet lå i at Dom0, altså verten, ga kernel-panic når jeg startet den tredje Xen-instansen på serveren. Løsningen på dette problemet var å kjøre Red Hat sin Xen-kernel, og dette har fungert utmerket. Jeg kjører nå seks Xen-instanser på denne serveren.

Per Buer, avdelingsleder i drift hos Linpro, skriver i sin blogg at Red Hat Xen-kernel kan kjøres nesten ut av boksen på Ubuntu Dapper og er å foretrekke dersom man har behov for å aksessere mer enn 4 GB ram på et 32 bits system.

Foreløpig har jeg ikke støtt på samme problemet på laptopen min som oppstod med Ubuntu Xen-kernel på serveren min, da jeg enda ikke har hatt behov for så mange samtidige Xen-instanser. Første forsøket på å starte laptopen min med Red Hat sin Xen-kernel feilet, så jeg har latt den saken ligge for nå.

Problemet jeg har støtt på med å bruke Ubuntu sin Xen-kernel på laptopen er at tastaturet periodevis lagger når jeg er i X11 og KDE. Det tar da lang tid fra jeg trykker en tast til den tegnet blir printet i terminalen og ofte blir tasten utført to ganger, noe som gjør det svært vanskelig å programmere og gjøre vedlikeholdsarbeid i terminalen. I ett tilfelle så låste tastaturet seg fullstendig i hele X11, ingen taster ga reaksjon. Det hjalp ikke å bytte til et konsoll og så tilbake til X11, men det hjalp å restarte X11. Det var heller ikke mulig å holde en tast nede for å få repetert handlingen, for eksempel å holde ‘a’-tasten nede for å få skrevet ut dette tegnet gjentatte ganger. Problemet gjelder også for musen, for eksempel markering av tekst.

Dette problemet oppstår kun i Konsole og ikke i XTerm, som er de to terminalapplikasjonene jeg har forsøkt. Problemet oppstår også i andre programmer, som for eksempel Firefox. Jeg har kun forsøkt å bruke det innebygde tastaturet og musen på laptopen, ingen eksterne enheter. Laptopen er av typen IBM/Lenovo X60.

Som denne bug-rapporten viser så skal det være et problem i X11 på Dom0 med Ubuntu Xen-kernel dersom klokken stilles med for eksempel OpenNTPd. Da jeg skrudde av denne tjenesten forsvant problemet og jeg kan nå holde en tast nede for repeterende handling. Jeg klarer å gjenprodusere feilen ved å stille klokken med kommandoen:
ntpdate -u ntp.uio.no

Ved å skru av OpenNTPd så øker risikoen ved at klokken stilles feil over tid. Det er derfor viktig å passe på at klokken går riktig for å sikre riktig tid på for eksempel loggene og spesielt dersom det benyttes en sentral autentiseringsløsning som Kerberos. En mulig løsning er å synkronisere ved oppstart av maskinen. Dette vil ikke fungere med min løsning da jeg ofte er tilkoblet trådløst nettverk, som først konfigureres med KNetworkManager når jeg logger inn i KDE.

Ting som irriterer meg – annonseringer på toget

21. mars 2007 · Én kommentar

I dag derimot ble jeg en smule irritert. Det er ikke mye som skal til for at jeg blir litt irritert over dumme ting som skjer her i verden, men denne gangen så fikk jeg skrevet ned frustrasjonen min…

Jeg tar toget hver dag til og fra jobb. Det gir meg god tid til å tenke på alle mulige fornuftige og ufornuftige ting. Som for eksempel når jeg tar Kongsberg-toget fra Oslo til Drammen på kvelden, så hender det svært ofte at de stenger av de bakerste vognene når de kommer til Drammen. Greit nok for meg, siden jeg skal av i Drammen og gir blanke blaffen i hva andre passasjerer må gjøre, og greit nok for meg at de nevner det over høytalerne rett før toget kjører inn til plattformen.

Det som irriterte meg i dag var da togkonduktøren kom bak i toget mer enn 3 stasjoner i forveien for å fortelle at de som sitter her i det bakerste togsettet må flytte fram til det fremste fordi de skal stenge av det dette. Joda, herregud, fint nok det der med med informasjon og greier, men de som går av på en av de tre stasjonene før Drammen har da sikkert ikke så veldig mye lyst til å vite det. Det ble jo annonsert lenge før toget kom inn til Asker!

En annen ting er jo at en slik annonsering innebærer ufattelig mye usikkerhet blant kundene fordi det alltid er noen som sliter med å få med seg det som blir sagt og blir dermed sittende og lure på om de må bytte togsett allerede på neste stasjon eller ei. Spesielt vanskelig er det for de som ikke forstår norsk, de må jo da spørre en av de andre passasjerene om hva som ble sagt, og der oppstår det gjerne også litt misforståelser. For eksempel, om man skal bytte vogn allerede på neste stasjon? Hvilken stasjon er Drammen? Skal vi bytte tog? “Where the fuck is Drammen?” Nei, dere irriterte meg faktisk en god del i dag, NSB!

Vanligvis klarer dere det ganske lett. Dere trenger bare å ta bort et par vogner fra toget slik at jeg må stå trangt og svett og klemt inn i et hjørne nede ved døra og må gå ut på plattformen på hver eneste stasjon for å slippe fram folk, eller når dere blir forsinket fordi dere må vente på en ansatt som har forsovet seg, kommer med at annet forsinket tog og slike ting… Etter de mange årene jeg har kjørt tog så har jeg begynt å venne meg til slikt. Det begynner å bli standard prosedyre, rett og slett. Men å mase lenge før Asker om at jeg, og mange andre må flytte oss noen vogner framover når vi kommer til Drammen synes jeg er å ta litt hardt i. Halvparten av de i vogna gikk jo av i Asker, og nesten like mange kom på! Jeg forstår ikke poenget, dere må jo uansett gå bak i vognene når toget kommer til Drammen for å sjekke at ingen sitter igjen der!

Fikk liksom litt følelsen av Family Guy og “What really grinds my gears”… Vel, nå har jeg i det minste fått ut litt av min aggresjon om ting som irriterer meg. Dette er jo ikke første gangen, det vet mine faste lesere (jeg har minst 2!!), og det blir garantert ikke den siste gangen.

WordPress plugins – Front Controller

8. mars 2007 · 2 Kommentarer

WordPress støtter utvidelser via plugins. Plugins kommuniserer med WordPress-kjernen ved å hekte seg på kroker (hooks). Disse krokene blir eksekvert visse steder i koden, for eksempel når en side med poster skal vises, når en bruker opprettes eller når en post slettes.

Det er en handlingskrok (action hook) som heter “init” som blir kalt på rett før themet skal lastes inn for presentasjon av postene. Når denne kroken skal eksekveres er plugins lastet og innstillinger lest fra databasen, så denne kroken egner seg svært godt for det jeg nå skal vise, nemlig hvordan man kan kalle på funksjoner i sin egen plugin med via lenker på siden, med HTML forms eller via Javascript og AJAX.

Jeg har ofte hatt behov for å kalle på funksjoner i min plugin fra Javascript på siden, også kjent som Ajax/Web2.0. Jeg har utviklet en plugin som lar brukeren sette et filter, slik at kun innlegg som matcher dette filteret vil bli vist. Jeg skrev denne pluginen på jobben og den er foreløpig kun for internt bruk og er derfor ikke tilgjengelig, men det hindrer meg ikke i å forklare hvordan jeg har brukt denne teknikken.

Dette filteret settes i cookie i nettleseren til brukeren slik at filteret er aktivt helt til brukeren bytter til et annet filter. Filtere kan ligge i nivåer underhverandre. Tenk på det som kategoriene i WordPress, hvor kategorier kan ha en forelderkategori. Jeg skal her vise to eksempler hvor jeg først bruker en link for å bytte til et annet filter, for så å vise hvordan jeg bruker AJAX for å hente en liste med filter.

Linken for å bytte filter kan for eksempel se slik ut:

<a href="http://example.com/?myplugin=set&filter=sport">Sport</a>

Da har jeg behov for en sjekk i min plugin, som jeg har valgt å kalle “myplugin” (ja, jeg vet, men dette er ikke navnet på min ekte plugin ;) ), for å kunne snappe opp ønsket om å bytte filteret til “sport”. Jeg har valgt kodeordet “myplugin”, det samme som navnet på pluginen jeg har skrevet for å minke risikoen for navnekollisjon. Jeg har en funksjon jeg har hengt på “init”-kroken som sjekker om kodeordet er blitt angitt i adressen samt om det finnes en passende handling å utføre.

I eksempelet nedenfor viser jeg også PHP-kode som tar i mot ønsket om å liste ut alle filtere som har et angitt filter som forelder. Legg merke til dersom testen matcher ‘list’ vil den printe ut listen for så å dø, hardt og brutalt. Dette er faktisk ønskelig fordi vi skal utføre et asynkront kall med Javascript, noe som betyr at nettsiden ikke skal lastes på nytt, men bare en liten del av nettsiden skal oppdateres. Det som PHP-scriptet skriver ut i eksempelet nedenfor blir hentet opp av Javascriptet som utførte kallet, klar til å inkluderes på nettsiden. Om det er en <select>-liste, en rekke med checkboxer eller noe annet som gjøres med denne listen bestemmes av Javascriptet.


$myplugin = new MyPlugin();
add_action('init', array(&$myplugin, 'check_action'));
//
// Hovedklassen i min plugin
class MyPlugin {
    function check_action() {
        $action = _REQUEST['myplugin'];
        switch($action) {
            case 'set':
                $this->set_filter($_REQUEST['filter']);
                break;
            case 'list':
                $list = $this->get_list($_REQUEST['parent']);
                echo $list;
                exit;
        }
    }
    // Setter nytt filter
    function set_filter($filter = '') {
        // Setter en cookie for brukerens nettleser
    }
    // Returnerer en liste med filtere som har en angitt forelder
    function get_list($parent = '') {
        // finner og returnerer listen med angitt forelder
    }
}

Hvordan Javascriptet som utfører dette asynkrone kallet er programmert skal jeg ikke komme inn på her. Det er et for stort tema å skrive om i denne artikkelen, men det finnes gode ressurser på Internett om AJAX, Google vet det meste. Det kan være verdt å sjekke ut Cross-Browser XMLHttpRequest, som gjør det enklere å bruke Ajax uten at man vrir seg i smerte over de mange forskjellige teknikkene som er brukt i nettlesere.

Konvertere mellom store og små bokstaver i PHP med mb_convert_case / strtolower

7. mars 2007 · Comments Off

Jeg følger opp gårsdagens innlegg med et nytt PHP-tips, denne gangen for å konvertere mellom store og små bokstaver. Til dette kan funksjonen mb_convert_case benyttes.

Dersom man utvikler nettsider som skal ha støtte for flere språk er det vanskelig å komme utenom UTF-8, unicode. Ofte vil man teste på en variabel om den matcher et sett med konstanter eller andre variable som brukere skriver inn. Brukere er generelt sett svært ustabile når det gjelder hva input som kan komme inn til serveren, spesielt når det gjelder bruk av store og små bokstaver.

Et eksempel på dette er tagger i WordPress. Hvorfor skal man måtte ha to separate tagger som betyr det samme bare fordi den ene ble skrevet med stor forbokstav mens den andre med liten? Her kan det være kjekt å bruke PHP-funksjonen strtolower, helt til man kommer til spesielle bokstaver og tegn som ikke finnes i tegnsettet man normalt bruker, ofte ISO-8859-1 av en variant. Dette kan fungere greit dersom teksten som kommer inn er i samme tegnsett som serveren benytter, men når det gjelder unicode så er saken annerledes.

Strenger eier ingen informasjon om hvilket tegnsett som benyttes, dette må utviklere holde orden på. Funksjonen strtolower takler unicode svært dårlig. Spesielle tegn, som de norske bokstavene æøåÆØÅ, kodes i unicode med lengden av to vanlige bokstaver. Dette fører til at strtolower deler disse tegnene i to før den utfører konverteringen. Resultatet av dette blir mest sannsynlig et uventet tegn som nettleseren har problemet med å vise. Selv har jeg sett ?-tegnet ganske ofte ;)

Løsningen rundt dette problemet er å benytte PHP-funksjonen mb_convert_case. Som vist i eksempelet konverteres tekststrengen til små bokstaver, lowercase:


// UTF-8 tekststreng
$orig_string = 'Hei på deg. Hvordan er været i Østfold?';
$new_lower = mb_convert_case($orig_string, MB_CASE_LOWER, 'UTF-8');
echo $new_lower;

Funksjonen echo vil her skrive ut: hei på deg. hvordan er været i østfold?

Den første parameteren til mb_convert_case er tekststrengen som skal konverteres, mens den andre angir hvilken type konvertering som skal utføres, i form av en konstant. Følgende konstanter kan gis til mb_convert_case:

  • MB_CASE_LOWER: konvertere til små bokstaver
  • MB_CASE_UPPER: konvertere til store bokstaver
  • MB_CASE_TITLE: konvertere til stor forbokstav i hvert ord

Funksjonen mb_convert_case tar også en parameter som forteller hvilket tegnsett som ønskes brukt ved konvertering. På noen forum og mailinglister foreslås det at man kan bruke funksjonen setlocale før strtolower for å sette hvilket tegnsett som skal benyttes, men dette hjalp ikke i mitt tilfelle. Funksjonen mb_convert_case tar utgangspunkt i at tekststrengen er i unicode og klarer derfor å konvertere norske spesialtegn på en utmerket måte.

eAccelerator – en PHP-akselerator

7. mars 2007 · 2 Kommentarer

Jeg har utviklet en nettside, basert på WordPress, hvor vi hadde et problem med at den brukte alt for lang tid på å levere sidene til brukere, selv med bare 10-15 samtidige brukere. Problemet lå på Apache, som fikk serverloaden opp i omkring 7-8. Oppslag av hostnames i Apache var skrudd av og loggfilene var satt til å roteres hver dag for å forhindre alt for store filer. Siden PHP kjøres gjennom mod_php var dette neste stedet å undersøke. WordPress med et utallig antall plugins resulterer i svært mange PHP-filer som må lastes for hver eneste gang en nettside hentes. Selv et lite Javascript kan kreve mye ressurser dersom dette scriptet har behov for selv bare én enkelt variabel fra databasen. En caching-løsning som cacher HTML-sidene basert på URL og cookies, ala WP-Cache, var ikke noen god løsning, fordi sidene som vises for innloggede brukere ikke bare bestemmes av URL og cookies, men også av variabler hentet fra en database. Memcache ble benyttet for å cache variabler fra databasen for å minke antallet spørringer mot denne, men det hjalp ikke i lengden.

Løsningen på ytelsesproblemet kom med eAccelerator, en cache-løsning for PHP som cacher de kompilerte PHP-filene, slik at PHP ikke behøver å lese og kompilere alle PHP-filene for hver sidelasting. Andre nettbaserte løsninger som for eksempel benytter Java EE (Enterprise Edition) har en server som hele tiden kjører selv om ingen brukere besøker siden. Fordelen med dette er at alle filer med tilhørende klasser og andre ressurser allerede er lastet inn i minnet på serveren, noe som sparer diskaktivitet og prosessorkraft når brukere besøker siden din.

I dette prosjektet ble versjon 0.9.5 av eAccelerator benyttet. Uten å kjøre nøyaktige benchmarktester så virket denne løsningen betraktelig raskere; sidene lastet raskere i nettleserene og serverloaden er blitt gjennomsnittlig lavere.

eAccelerator finnes ikke i pakkesystemene til Ubuntu eller FreeBSD, så denne må manuelt lastes ned og kompileres. Man trenger dev-pakkene for PHP for å kompilere eAccelerator, da man trenger verktøyet phpize. Dev-pakken på Ubuntu heter php5-dev, eller php4-dev dersom denne versjonen benyttes.

phpize
./configure --enable-eaccelerator \
--with-php-config=/usr/bin/php-config
make && make install

Deretter må den aktuelle php.ini-filen som Apache benytter seg av for mod_php oppdateres med følgende innstillinger. Bemerk at kun første linjen er påkrevd. Standard katalog for cache-filene er /tmp/eaccelerator, så denne må opprettes og det må gis skriverettigheter til brukeren som Apache kjører som. På distribusjoner hvor /tmp katalogen slettes ved booting av operativsystemet bør cache_dir settes til en annen katalog, for eksempel /var/cache/eaccelerator. Verdiene i eksempelet nedenfor er hentet fra eAccelerator – Installing from source.

extension="eaccelerator.so"
eaccelerator.shm_size="16"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"

WordPress har et litt rufsete rykte, blant annet på grunn av at en WordPress-side ikke tåler trykket dersom en artikkel skrevet i en WordPress-blogg havner på forsiden av for eksempel Digg. Muligens kan en slik cache-løsning være redningen for WordPress, og forsåvidt andre PHP-applikasjoner.

Oppdatering 07.03.2007 08:38 CET
Et problem med eAccelerator er at instansvariabler deklarert med protected vil få eAccelerator til å krasje dersom en klasse som arver på denne forsøker å aksessere disse protected variablene. Løsningen på dette er å deklarere dem som public. Ikke spesielt god designmetodikk, men det fungerer…

En kort vinterferie i Trysil

21. februar 2007 · Comments Off

Jeg tok meg fri fra fredag, uke 7, til tirsdag, uke 8, for å ta meg en liten vinterferie. Hvor mye fri det ble på fredagen er en annen sak, siden jeg jobbet til langt på natt, faktisk helt til morgenen på fredagen, for å bli ferdig med det aller viktigste på et utviklingsoppdrag før jeg kunne ta meg en velfortjent ferie.

Dynka i snø

I helgen har jeg stått mye på slalåm, selv om det kanskje ble like mye afterski. Forholdene var ikke helt på topp. Det snødde mye både lørdag og søndag, med tett tåke på lørdag, som gjorde det vanskelig å se hvor man kjørte. Resultatet av dette var et lite fall etter at lårene mine ikke tålte alle humpene i bakken i større og større fart, da de var alt for “ødelagte” til at jeg orket å svinge så mye. Da var det deilig å ha Skihytta å komme til, og første pilsen var på bordet fem over tolv. Skal sies at vi var ute i bakkene halv ti. På Skihytta ble vi sittende en stund, kun avbrutt av en liten pub-til-pub-runde til Fageråsen før vi kom tilbake til Skihytta på afterski. Det var innleid en trubadur som spilte og sang, men for å være helt ærlig så var “pausemusikken” hakket bedre, en godfull Donald-imitator som sang med hele sjela og skapte god stemning på stedet.

På søndag merket jeg det harde føret fra dagen før, og det tok ikke lange tiden før lårene mine atter en gang var potetmos. Forholdene var noe bedre på søndag, så det gikk an å ta det litt mer med ro. Det ble en pub-til-pub-runde denne dagen også, med et stopp innom Knettsetra før vi tok turen videre til Fageråsen og endte opp på Skihytta. Det var tydeligvis ikke nok aktivitet i bakkene, for da vi kom hjem dro Magnus meg ut igjen og opp på taket for å hente capsen hans som vi kasta opp dagen før. For å toppe det hele så hoppa vi ut av vinduet i andre etasje og ned i løssnøen. Greit nok det, men jeg så vel egentlig ut som den avskyelige snømannen til slutt…

Magnus ga seg ikke

Dette er tredje helgen på rad som jeg har sått på slalåm. Det var deilig å få stått litt på slalåm igjen. Jeg ikke hadde muligheten til det i fjor, da jeg var syk i vinterferien da jeg var her oppe på Trysil.

Helgen har vært preget av mye ski, mye afterski, boblebad og film og musikk på full guffe. Jeg rakk ikke se hele Live 8 i vinterferien i fjor, men jeg klarte å se plate 1, 2 og 3 denne gangen, nå gjenstår kun plate 4, den får jeg ta når jeg kommer hjem. Jeg har fortsatt tilgode å se hele U2-konserten Vertigo på DVD, det har liksom alltid vært noe i veien…

Mandagen gikk egentlig bare med til surr, med PC, film og musikk.

Nå er det tirsdag, og det er snart på tide å dra hjemover. Jeg tar et stopp i Oslo og innom jobben på allmøte og så “Linpro-kveld”, for å få med meg foredraget om Jini og sosialisere med ansatte over litt øl og mat.

Nytt theme

21. januar 2007 · Comments Off

Hei. Nå er det nytt år og nye muligheter, og nytt theme på hjemmesiden min. Standard-themet til WordPress begynte å bli noe kjedelig, så jeg tenkte det skulle bli interessant å teste ut noen andre themes. Jeg endte opp med å bruke themet Navigator 1.0. Personlig så synes jeg kanskje overskriftene på menyen til høyre skiller seg unaturlig ut fra resten av siden, men jeg får endre på det hvis jeg får tid og gidder.

Forslag til ny spilletype i biljard, tilpasset tre personer

31. desember 2006 · 2 Kommentarer

Som dere alle, eller i det minste de fleste, vet fra før så er biljard et spill for to personer. Her følger en idé som gjør det mulig for tre personer å spille biljard samtidig.

Tildeling av balltype
Spillet settes i gang som vanlig biljard, med 15 baller i trekanten, sju hele, sju halve og én svart. Den første spilleren gjør spredningen. Den første som får ned i en ball skal fortsette med samme type baller som den ballen som gikk ned i hullet, akkurat som i vanlig biljard. Det som nå blir forskjellig er at den svarte ballen gjøres om til en tredje type ball. Dermed har vi helfagede og halvfargede baller, samt den svarte ballen. Den andre spilleren som får ned en ball blir tildelt den typen som gikk ned i hullet. Den svarte ballen skal ikke ned i et hull før begge de andre typene av baller er blitt tildelt sin spiller, for å sikre at spillet settes ordentlig i gang.

Tur og omgang
Omgangen går på tur mellom spillerne som i vanlig biljard. Turen går til neste spiller når man ikke får en av sine egne baller ned i et hull, får en annen sin ball ned i et hull eller at den hvite ballen går ut av spill. Den hvite ballen går ut av spill dersom den enten slås over og utenfor bordkanten eller faller ned i et hull.

Den svarte ballen
Spilleren som blir tildelt den svarte ballen vinner dersom en annen spiller slår denne ballen ned i et hull. For å gjøre det vanskeligere for den spilleren som ble tildelt den svarte ballen må denne spilleren slå den svarte ballen ned i motsatt hull av hva den siste ballen er blitt slått ned i. Dette gjør at trekkene må planlegges mer nøye og fremover i tid.

Vinne spillet
Den spilleren som får ned alle sine baller har vunnet. Spiller kan fortsettes for å få en andre plass. Dersom den svarte ballen havner i et hull etter at alle balltyper er tildelt en spiller, vinner den spilleren som er blitt tildelt den svarte ballen.

Tape spillet
Spilleren taper dersom:
- spilleren slår ned den svarte ballen før de to andre balltypene er blitt tildelt en spiller
- spilleren er tildelt den svarte ballen og slår ned denne i feil hull

Rangering
Dersom en spiller taper tildeles denne spilleren tredjeplass, mens de to andre spiller om første- og andreplass. Dersom en spiller vinner tildeles denne spilleren første plass, mens de to andre spiller om andre- og tredjeplass.

Bakgrunn
Dette var en idé jeg fikk mens jeg spilte biljard sammen med to venner på fredag. Dette var hjemme hos Morten, som fikk biljardbord til jul. Selv om vi spiller med såkalte “husregler”, så tar ikke denne nye spilletypen, som beskrevet ovenfor, noen spesielle hensyn til dette.

Dersom noen prøver ut denne nye spilletypen så setter jeg stor pris på alle tilbakemeldinger, alt fra vinnersjansene med de forskjellige balltypene til endringer i reglene.

Nå er jula her og det er tid for å slappe av

25. desember 2006 · Comments Off

Nå er det jul og ferie fra jobben. Her sitter jeg på Trysil, på hytta til min onkel, med laptopen på fanget, og Squeezebox og server med 250 GB musikk ved siden av meg. I tillegg har Squeezeboxen en ufattelig stor liste over Internett-radioer, så jeg burde ikke gå lei av musikken med det første. Endelig skal det bli ordentlig opplegg i leiligheten min når det gjelder musikk. Tidligere har jeg bare hørt musikk på laptopen, men nå har jeg investert i surroundanlegg og 40″ LCD-TV fra Hifiklubben. Det ble en Denon 2307 reciever, Dali høytallere og Samsung 40″ LCD-TV. Hele nydeligheten kostet rett i underkanten av 40 lapper, så det for jaggu meg være godt nok. Bare jeg får spilt inn anlegget i romjula så skal jeg guffe på med Roger Waters konserten In The Flesh og kose meg med god rødvin fra 100 års jubileumsfesten til J.A. Magnussen.

Jeg støtte på et relativt stort problem med anlegget jeg kjøpte, da recieverens konvertering fra analogt bildesignal til digitalt over HDMI ikke er kompatibelt med TV-en jeg kjøpte. Det viser seg nemlig at recieveren sender ut bildet i 480i, mens TV-en ikke har innebygget interlacer. Løsningen blir nok å oppgradere til en dyrere reciever med konvertering til progressivt bilde, så da må jeg ut med ca to tusen kroner ekstra. Ikke akkurat billig dette her, og i tillegg skal jeg kjøpe DVD-spiller til nesten tre tusen kroner på nyåret. Med andre ord så er jeg nå ganske fattig… Får håpe jeg har nok penger til månedskort på toget i januar da ;) .

Det hjelper jo litt at jeg fikk veggfeste for TV-en i julegave av mine foreldre. Jeg må prøve å få faren min til å hjelpe meg med å feste opp TV-en og anlegget på veggen i løpet av romjulen. Av andre ting jeg fikk til jul, så fikk jeg Nespresso-maskin fra onkel og tante. Det passet egentlig veldig bra siden jeg er blitt helt frelst av den gode espressoen, samt at jeg kun har en vanlig, kjedelig kaffemaskin fra før som jeg ikke har brukt så mye i høst. Min kusine laget en flott tegning til meg og min fetter ga meg en samling med bilder av “Knut-Olav gjør ting han ikke kan”, hvor jeg faktisk lager mat og vasker bil! Jeg fikk også en julegave av jobben på fredag, den siste arbeidsdagen før jul. Vi fikk en skritteller og en genser, begge dekorert med Linpro-logo. Nydelig!

Jeg må nevne at bikkja mi har stått foran kaninburet nærmest hele tiden fra vi kom opp på Trysil på lørdagskvelden. Eneste unntakene har vært når han har fått mat og vært på tur. Jeg tror kanskje han er forelsket i den lille hårdotten… Utrolig hvor spennende det kan være å stirre på en kanin hele dagen, men tydeligvis har det vært spennende nok for bikkja mi. Vi er litt usikre på grunnen for denne noget merkelige interessen, om han er sulten eller om han bare har (dårlige?) minner fra tiden han var valp og selv lå i buret her på Trysil.

Det begynner å bli litt seint nå, spesielt med tanke på at jeg ikke har fått så mye søvn de siste dagene. Mye jobbing i kombinasjon med nyinnkjøpt surroundanlegg har tatt mye tid. Jeg hadde planer om å se Cocktail i kveld, men det får heller bli i morgen. Det er i hvert fall nok av filmer å velge mellom her nå, etter at julegavene ble pakket opp. Apropos film… jeg måtte selvsagt se Reisen til Julestjernen. Uten den filmen på julaften så blir det ingen ordentlig jul. Jeg skulle gjerne fått med meg Flåklypa Grand Prix, men den går jo nå på lille-julaften, så den gikk jeg glipp av i år også. Dette er gode, gamle, norske filmer som hører julen til. Noen tradisjoner må man jo holde på ;) .

Julen har ikke vært så hvit i år som folk flest skulle ønske, men det er fortsatt jul. Tenk positivt på det, med færre utforkjøringer, veiene er ikke nedsnødde ubrøyta, og man trenger ikke bekymre seg for å få en snøball nedover nakken. Det er faktisk mulig å komme opp med bil fra gårdsplassen vår i år. Mildværet har riktignok gjort det vanskelig å komme seg ut på ski, men her på Trysil er det nå blitt kaldt nok til at skianlegget har sprøytet på med kunstsnø og åpnet mange av bakkene. Nå har jeg ikke med meg noen ski i jula da, så snømangelen gjør meg ikke stort, men jeg får prøve å komme meg opp hit i vinterferien og stå litt på nedoverski da.

Jeg ønsker dere alle en riktig god jul videre.

På båttur med onkel og familien (del 2)

28. juli 2006 · Comments Off

Jeg kom hjem fra båtturen på tirsdag. Brukt mye av tiden etter det til å være med venner og ta igjen “tapt tid” her i Sande med skrøner og mye tullprat.

For å fortsette båtturhistorien. Noen vi besøkte i Helgeroa fikk sitte på med oss ned til Langesund. Dette var en som onkelen min driver forretninger sammen med. Vi dro videre til Perleporten, noen øyer utenfor Risør. Der var vi et par netter, uten strøm og Internett… for å si det slik, jeg la meg halv tolv den første natta, fordi jeg ikke fant på noe å gjøre. Det sier litt om hvor mye jeg savna å bruke PC-en, men jeg tror det var smart av meg, for jeg sov til halv ett dagen etter. Den søvnen trengte jeg sikkert. Vi fikk besøk der på onsdagen av en annen som onkel også driver forretninger med, og hans familie. Vi dro sammen med dem ned til Kristiansand, hvor de bor.

På torsdag besøkte vi dem og spiste middag der. Noe som må nevnes var at forretten bestod av blåskjell, hjerteskjell, kamskjell og østers… jeg spiste alt det greiene der! Videre spiste jeg også laksetartar til forrett nummer to. *Litt stolt* Jeg ordna også litt med printeren og det trådløse nettverket til dem, men som alt annet som har med teknologi å gjøre, så sluttet det å fungere et par dager senere. Som en god teknikker jeg er, så klarte jeg å guide han over telefonen til å komme fram til en fungerende løsning.

På fredag dro jeg og barna, altså barna til onkel og tante og barna til de vi besøkte, til Dyreparken i Kristiansand. Jeg følte meg som en unge for en dag, hehe. Jeg var nok den som maste mest av oss “barna” mens vi var der. Jeg ville spesielt mye se på Julius, vår “stamfar”, og ta bobbanen. Julius fant jeg ikke, for alle disse apene ser jo helt like ut, men jeg fikk tatt bobbanen da. Riktignok tok jeg den bare én gang, for det var så lang kø. Ikke nok med det, da jeg fant ut at de hadde små pusekatter der, så maste jeg enda mer. De var små søte, omtrent to meter lange og stripete. Disse pusekattene var noe tøffere enn pusekatten i filmen Istid… disse her badet, ihvertfall vasset litt :P En tøff attraksjon som var i dyreparken var “Storslegga”, hvor man satt i stoler i en ring og ble sendt fram og tilbake, nesten i loddrett posisjon… driiitfett! Røska litt her og der på edle steder ;)

På fredagskvelden dro vi på en av de finere restaurantene i Kristiansand og spiste en fem retters middag. Jeg følte meg litt voksen, så jeg hang meg på “overraskelsesmiddagen”. Det var masse rart vi fikk, noe fisk og skinke til forretter, biff til hovedrett og noe ost og andre ting som smakte godt til dessertene. Ja, det var to desserter ;) Hvor mye denne middagen kostet ville ikke onkel fortelle meg, men vi ble servert et lite glass hver, på huset, en cognac fra 1800-tallet, og onkel ble invitert på julebordet dems :P

Vi la ferden hjemover på lørdagen, og lå en natt på Perleporten. Vi dro videre til Kragerø på søndag, hvor vi besøkte noen fra Sande som har hytte der. Vi spiste lunsj i Kragerø sentrum på mandag, og da spiste jeg fritert scampi, noe friterte ostegreier og én vanlig reke. Jeg har ikke helt bestemt meg om jeg likte scampi eller ikke, men jeg spiste en del av det. Så gæern jeg har vært med maten de siste dagene så kunne jeg ikke si nei til å prøve “flyeren” til fetteren min, Magnus. Det er en diger vinge man sitter på etter båt. Det står visst i manualen til denne at det ikke er mulig å fly på første forsøk, men jeg kom jo opp ganske fort. Riktignok fløy jeg ikke så veldig høyt, men jeg fløy i hvert fall litt, hehe. Det er mye tyngre enn det ser ut som, noe jeg merka i både armene og lårene. Jeg orka bare én strekning, mens Magnus satt på fram og tilbake, fram og tilbake og mange ganger til… gærne unge ;) .

På tirsdag dro vi hjemover, med et lite stopp i Horten for å spise litt. Jeg avsluttet ferien på Peppes, samme sted hvor jeg startet ferien, for to og en halv uke siden, og med samme type pizza. Rio Grande er faktisk en ganske god pizza. Det var slutten av båtferien min. Opprinnelige skulle jeg bare være med noen få dager og ta toget hjem igjen, men det ble faktisk 19 dager. Kanskje fordi jeg hater tog, men jeg koste meg. Deilig med en ordentlig ferie. Jeg ble faktisk litt brun på kroppen også, etter en lang periode solbrent i ansiktet og på låra i begynnelsen.

Jeg føler at det kribler i fingra etter å programmere og gjøre mye annet som har med datamaskiner å gjøre. Jeg hadde planer om et prosjekt i begynnelsen av sommeren med å sette opp en PC på hytta for å spille musikk. Det ser dårlig ut med det prosjektet denne sommeren, siden jeg snart begynner i ny jobb og må prioritere litt. De siste dagene nå får jeg få ferdig prosjektet for onkelen min for å hente ut salgstall på mobiltelefonen. Dette er snart ferdig, men må bare finjusteres litt. Jeg håper alle mine venner har hatt en fin ferie og en fortsatt fin ferie for dere som ikke begynner med jobb eller skole før om noen ukers tid.

Vi har hatt en flott sommer, med mye sol de siste ukene, vi får håpe det varer litt til…