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

Javascript-feilsøking

23. juli 2009 · Comments Off

Javascript kan være, err, jeg mener er vanskelig å feilsøke. Firebug-modulen til Firefox hjelper langt på vei, men jeg har stadig klødd meg i hodet over merkelig oppførsel. Jeg liker objektorientering, så jeg lager for det meste klasser i Javascript. Med objektorientert Javascript kommer også et lass av workarounds og hacks for å få dette språket til å gjøre det man vil.

Det er veldig viktig å passe på “this”-variabelen, for den får ny betydning oftere enn du aner. Selv bruker jeg en “self”-variabel som jeg deklarerer i toppen av klassen og tilordner referansen til this, og bruker den videre inni metoder jeg deklarerer lenger ned i klassen min.

Et ekkelt problem som Firebug ikke hjelper meg noe med er hvis jeg mangler et semikolon på slutten av en metodedeklarasjon. Med andre ord, alltid husk å plassere et semikolon etter du har tilordnet en anonym funksjon til en “this.something”-variabel i klassen din. Det skal bli noe slikt som this.something = function() {};

Husk også at rekkefølgen på deklarasjoner av funksjoner og variabler spiller en stor rolle og kan gi deg mer hodebry enn du ønsker. For eksempel, hvis du bruker jQuery Form-modulen som gjør om HTML forms til å sende innholdet med Ajax, så lager du gjerne en “options”-variabel med konfigurasjon til hvilke callbacks du ønsker å kjøre før og etter Ajax har gjort sin jobb. Denne konfigurasjonen må skje enten i en metode i klassen din eller nedenfor deklarasjonen av metodene du henviser til i options-variabelen.

Det finnes tusen andre tips og triks, og hacks og problemer og irritasjon og nettleserkompatibilitet og jeg vet ikke hva, men dette er i hvert fall ting jeg har sliti litt med i dag. Lykke til.

Konsertukene i juni

20. juni 2009 · Comments Off

I juni har det blitt mange konserter for min del. Fra lokalt i bygda jeg kommer fra, til Oslo og helt vest i Norge til Bergen. Jeg klarer å telle 6 dager med konserter på 11 dager. Det har vært moro, men jeg merker det på kroppen med litt øresus, litt strekk og litt sliten.

AC/DC rocker i Oslo på Valle Hovin

AC/DC rocker i Oslo på Valle Hovin


AC/DC på mandag 15. juni var en heftig opplevelse, etterfulgt av øresus og strekk i høyre bein… ja, faktisk. Det ble mye hopping og roping og klapping og arma i været. Det blir gjerne slikt når man står langt fremme. Det var en god treningsøkt kan man si.

Egentlig hadde jeg ikke planer om å dra på konserten, og det er vel også normalt når man ikke har billett, men fetteren min ringte meg og sa det ble solgt mange billetter på utsiden. Da slang jeg meg i dusjen, kasta meg på toget innover og kjøpte en overpriset billett og kom meg på plass ca 10 meter fra scenen. Vel verdt det.

Bo Kaspers Orkester i Sandefjord

Bo Kaspers Orkester i Sandefjord


Søndag 14. juni var jeg i Sandefjord for å høre på Bo Kaspers Orkester. Musikken deres står kanskje ikke helt i stil med resten av konsertene jeg var på, men litt variasjon er bra. Ble positivt overrasket da 4 av bandmedlemmene pluttselig byttet instrumenter, det hadde jeg ikke ventet meg. Bra plassering på første rad hjelper også.

Mange besøkende på Hagan Bluesfestival 2009

Mange besøkende på Hagan Bluesfestival 2009


Fredag og lørdag, 12. – 13. juni ble det arrangert Hagan Bluesfestival for tredje året på rad. Stedet er Sande, det er litt moro. Jeg var ryddevakt på fredag, men på lørdag kunne jeg slippe udyret løs. Mye dansing, bra musikk og masse folk er alltid koselig.

Billy Gibson skaper god musikk på Hagan Bluesfestival 2009

Billy Gibson skaper god musikk på Hagan Bluesfestival 2009


Trekkplasteret i år var Billy Gibson fra Memphis, USA. Han har en stor innlevelse i musikken sin og han var stadig på scenen og spilte sammen med de andre bandene.

Jeg har begynt å få sans for blues nå. Jeg pleier å si at det er rock man kan danse til, selv om jeg gjerne danser til en god rockelåt også. Alt for å svinge rundt på damene ;)

Tirsdag forrige uke, den 9. juni, dro vi til Bergen for å få med oss The Boss, Bruce Springsteen. Det var langt å reise, noe dyrt, men en bedre konsertopplevelse får man sjelden. Som oppladning til konserten spiste vi en god middag og koste oss før vi spaserte bort til Koengen. Bruce med The E Street Band ga oss det vi ønsket, av både ønskelåter, bra låtutvalg, bra musikk og god underholdning. *nynne på The River*

Ut over Bergen sentrum

Ut over Bergen sentrum


Onsdag benyttet jeg og min far mulighetene for å være litt kulturelle i Bergen. Vi reiste med Fløibanen og fikk god utsikt over hele Bergen. Deretter besøkte vi Akvariet. Det var større enn jeg hadde trodd. En flokk små søte apekatter ga oss god underholdning, og jeg fikk se seler og pingviner. Artige dyr.

Fredag 5. juni fikk jeg billetter til Dum Dum Boys på Union Scene. Etter et hyggelig vorspiel hos meg gikk vi bort og fikk med oss god musikk og livlige folk.

Nå sitter jeg på hytta og lader opp til St. Hansfeiring, med et glass hvitvin og laptop. Det blir en god fest i dag og.

Påsken 2009 på Trysil

13. april 2009 · Comments Off

I år tok jeg meg inn på hytta til onkel i Trysil. Med 11 personer på hytta på det meste ble det god stemning, både på hytta rundt spisebordet, nede i filmstua og på afterski. Ski inn og ski ut gjorde det veldig greit å komme seg opp og ut i bakken om “morgenen”, sånn i 11-12 tida. Jeg hadde besøk av et par kamerater og de dro meg ut på ski. Jeg stod vel på slalåm seks dager i påsken. Jeg var noe sliten de siste dagene må jeg innrømme, samt at forkjølelsen begynte å ta tak midtveis i uka, men jeg holdt ut helt til slutten.

Ned til Høgegga - Trysil påsken 2009

Ned til Høgegga – Trysil påsken 2009

Ned til Skihytta - Trysil påsken 2009

Ned til Skihytta – Trysil påsken 2009

For å beskrive påsken på en noe kort og veldig brutal måte, så ble det mye pils, jeger, gamle dansker, unge svensker, vin, martinis og burgere. Ok, ikke så mye unge svensker, men mye annet godt.

Så til den litt lengre varianten. Det ble som regel et par pils på Knettsetra eller Skihytta etter et par timer i bakkene, og ofte ble vi gjerne sittende igjen der og høre på musikken. Da disse stedene stengte omtrent samtidig som bakkene bar det videre ned på “after-afterski” på Laaven, Skipuben eller Heiskroken, med en mugge med øl, shots og tipskasting (dere som har vært på Skipuben vet hva jeg mener). Vi hadde felles middager på hytta, før det igjen bar ned på pubene for å rocke foten og sjekke damer. Mye penger gikk med til taxi, inngang og drikke. Jeg har ennå ikke turt å sjekke saldoen…

Av andre ting verdt å nevne er at vi så Chelsea mot Liverpool på storskjerm, samt et par James Bond-filmer, andre filmer og diverse konsert-DVD-er… gjerne med en Dry Martini eller en GT i hånda. Litt jobbing ble det også, en sen kveld måtte jeg logge på og fikse et par småting, farlig sent. En rask kontroll dagen etter viste at jeg kan det jeg driver med :D .

Årets påske har vært utrolig bra, men også veldig slitsom. Skal bli deilig å komme tilbake på jobb for å slappe av litt.

Read your Opentracker statistics with WWW::Opentracker::Stats

1. april 2009 · Comments Off

WWW::Opentracker::Stats is a Perl library for retrieving and parsing statistics from the BitTorrent tracker opentracker. Opentracker provides web services for various statistics, such as the current number of peers, seeders and complete downloads for each torrent.

Opentracker is a robust and fast bittorrent tracker. It does not store anything on your disks while running, all is run in memory. From the webpage of opentracker:

One important design decision of opentracker was to not store any data persistently. This reduces wear&tear on hard disks and eliminates problems with corrupt databases.

To retrieve statistics you need to query opentracker regularly, parse the reply and store the statistics in your database so you later can follow the popularity of your torrents and detect patterns in popularity and user actions. This Perl package can be of great help for you if you are looking into torrent distribution for your content.

Asynkron Perl med Proc::Simple

5. mars 2009 · 2 Kommentarer

Jeg har nettopp skrevet en web-applikasjon i Perl basert på web-rammeverket Catalyst.

Noe av det denne applikasjonen gjør er å flytte filer, og ofte er dette store filer, på nærmere 1 GB hver. Dette tar tid, spesielt når det skjer mellom to maskiner over en SSH-forbindelse. Siden dette er en web-applikasjon medfører dette at koblinga til brukerens nettleser timer ut og brukeren blir presentert med en lite hyggelig feilmelding. Løsningen min måtte være å kjøre filkopieringen asynkront, men hvordan?

Jeg kjører Catalyst som en FastCGI-server med 20 prosesser, bak en Apache web-server. Disse Catalyst-prosessene står og går, selv når brukeren ikke laster noen nettside, og er dermed ypperlig for å kjøre bakgrunnsprosesser i, og samtidig kunne ta imot eventuelle feilmeldinger som kan oppstå.

Jeg kom over Proc::Simple, en Perl-modul som tilbyr å kjøre Perl-funksjoner i bakgrunnen av den normale eksekveringen av koden din. Det jeg gjorde var å lage en ny funksjon, med alt det tidkrevende arbeidet, som jeg tilordnet en variabel. Så sendte jeg med referansen til denne funksjonen inn i Proc::Simple. Ved feil så logges feilmeldingen til en database og brukeren ser feilmeldingen neste gang nettsiden lastes.

Jeg har laget en modell, som du ser nedenfor, som pakker inn Proc::Simple-modulen. For sikkerhets skyld så drepes alle kjørende bakgrunnsprosesser hvis Catalyst skulle avsluttes før disse er ferdige. Vi vil ikke ha løse prosesser kjørende, vil vi?

Jeg tar gjerne imot tilbakemeldinger om forbedringer. Den er ikke så avansert, den er noe dokumentert, og jeg håper den kan være til nytte.

package MyApp::Model::ProcSimple;

use strict;
use warnings;
use parent qw/
    Catalyst::Model
    Class::Accessor::Fast
/;

use Proc::Simple;

__PACKAGE__->mk_accessors(qw/procs/);

=head1 NAME

MyApp::Model::ProcSimple - Catalyst Model

=head1 DESCRIPTION

Catalyst Model.

=head1 METHODS

=head2 start

 Args: $selv, $subref

Takes a subroutine reference as a parameter and starts to execute this
in the background.

It stores a reference to the process in an instance variable,
so the process wont get killed after this method returns.

Ended processes will be cleaned up in L</ACCEPT_CONTEXT>.

=cut

sub start {
    my ($self, $subref) = @_;

    my $proc = Proc::Simple->new();

    $proc->start($subref);

    # Kill the process if the object is destroyed (app is stopped)
    $proc->kill_on_destroy(1);

    my %procinfo = (
        'proc'      => $proc,
        'started'   => DateTime->now,
    );

    push @{$self->procs}, \%procinfo;

    return 1;
}

=head2 ACCEPT_CONTEXT

 Args: $self, $c

Iterates over all background processes that has been running
since last time this model was called for.

All ended processes will be removed from the list.

=cut

sub ACCEPT_CONTEXT {
    my ($self, $c) = @_;

    $self->procs([]) unless $self->procs;

    # Killing and removing ended processes
    if (scalar @{$self->procs}) {
        my @to_remove = ();

        $c->log->debug(sprintf(
            "Looping over %d procs to look for finished processes",
            scalar @{$self->procs}
        )) if $c->debug;

        for my $idx (0 .. scalar @{$self->procs} - 1) {
            my $procinfo    = $self->procs->[$idx];
            my $proc        = $procinfo->{'proc'};
            my $running     = $proc->poll() if $proc;
            push @to_remove, $idx unless $running;
        }

        for my $idx (@to_remove) {
            my $procinfo = $self->procs->[$idx];
            my $pid = $procinfo->{'proc'}->pid;
            $c->log->info("Proc::Simple process $pid has finished. Removed.");

            delete $self->procs->[$idx]
        }
    }

    return $self;
}

=head1 SEE ALSO

L<Proc::Simple>

=head1 AUTHOR

Knut-Olav Hoven, E<lt>knutolav@gmail.comE<gt>

=head1 LICENSE

This library is free software, you can redistribute it and/or modify
it under the same terms as Perl itself.

=cut

1;

NFS på D-Link DNS-323 gir meg bedre ytelse

1. mars 2009 · Comments Off

Jeg ble litt lei av å bare få 4 MB/s i overføringshastighet mot min D-Link DNS-323, så jeg bestemte meg for å forsøke en del hacks fra DNS-323 wikien.

Jeg installerte ffp, en samling av applikasjoner og konfigurasjoner, som startes opp med fun_plug-funksjonaliteten i DNS-323.

NFS-server
Denne tilbyr en NFS-server i “user space”, som betyr at man ikke må installere nye moduler til kjernen. Denne er trolig rask nok for min del. Og det var den. Jeg makser ut mitt 100 Mbit/s nettverk. Kopiering med rsync fra min filserver til DNS-323 viser hastigheter på 8-11 MB/s. Helt akseptabelt.

Enda raskere?
Variasjonen i hastighet kan ha med at filserveren min begynner å bli av den gamle garden, med dual Pentium 3 500 MHz prosessorer. Hadde vært artig å teste hvor god ytelse jeg kan få over et gigabit LAN med en kraftigere server. Det får bli en TODO til neste gang.

Lei av Hijab-mas

16. februar 2009 · Comments Off

Nå har Hijab-maset pågått i mange uker, som er mange uker for mye. Politiet har retningslinjer når det gjelder uniform. Politiet har en yrkesstolthet, på lik linje med alle andre yrker. De skal tydelig vise for folket at de tilhører politiet. Det bør ikke endres.

Å få den jobben man har lyst på er ingen rett. Det er et privilegie. Kan man ikke rette seg etter de plikter man har i en jobb får man heller velge et annet yrke.

Et annet eksempel, som setter dette litt på spissen men allikevel har mange likheter, så vil man aldri kunne tillate at arbeidere i anleggsbransjen ikke bruker hjelm på et anleggsområde, ikke selv om noen skulle ønske å kunne ytre sine religiøse meninger og standpunkter. Det ville ikke vært forsvarlig. Faktisk ville arbeidstilsynet ha stengt arbeidsplassen i slike tilfeller.

På samme måte vil det ikke være forsvarlig å forandre på måten politiet framtrer på, enten det gjelder handlingsmåte eller uniform. For nordmenn flest, så er ukjent noe som er skummelt. Det er ikke forsvarlig om politiet skulle bli noe som er ukjent…

Hvorfor Sør-Korea ikke burde hatt VM i skiskyting

15. februar 2009 · Comments Off

Jeg er litt i tvil om Sør-Korea burde holdt VM i skiskyting.

Mangel på snø. De har faktisk så lite snø at skiskyterne måtte gå ekstra mange korte runder istedenfor de normalt lange rundene.
Dårlig tidtakingssystem. På lørdag ble ikke tidene til skiskyternes oppdatert lenge etter de hadde passert målingene. Selv inn til mål hadde de problemer med å oppdatere listene sine. Listene viste skiskytere som ledet med mange minutter, som faktisk lå langt etter i løypene.
Dårlig oppmerkede løyper. Flere skiskytere gikk feil løype ut fra start på søndag. Hva som blir konsekvensen av dette er usikkert, men fordi så mange fra flere nasjoner gikk feil ut fra start blir trolig ingen diskvalifisert. Det er helt klart at løypene var for dårlig merket. En jurye skal nå bestemme hva som skjer. Min mening er at det finnes bare én løsning, som ikke vil føre til katastrofe for skiidretten.

For all del, sikkert fint at man har VM i skiskyting der man kan. Det var to spennende dager ihvertfall. Nordmenn på de alle de fire øverste plassene på lørdag og første og tredje plass på søndag. Bjørndalen er sterk. Det er moro å se på.

Les også NRK’s innslag om denne saken.

Nå spørs det bare på hva juryens uttalelse blir…

Oppdatering 12:36: Juryen ser på videoopptak fra starten av løpet. Dette tyder ikke bra. Broen burde vært stengt med gjerder dersom det ikke var meningen av de skulle kunne gå der. Arrangøren er pliktet til å merke løypene. Dette er arrangøren sin feil. Vi kan ikke tillate at de som pålegger lover og regler, ikke selv forholder seg til dem.

Oppdatering 12:42: KATASTROFE! Bjørndalen ble fratatt gullet!

Oppdatering 12:46: Juryen frigjorde arrangøren. Helt feil mener jeg. Det bør bli konsekvenser for dette tullet. Noen bør rydde opp!

Oppdatering 12:54: “Regler er regler” blir det sagt fra den russiske representanten. Hadde de en russisk representant i juryen? Lobbyvirksomhet fra Russland. Råttent spill. Norge bør legge inn en protest. Eventuelt kan en reaksjon på dette være å frasi seg alle plassene og ikke møte på pallen, og andre nasjoner bør følge etter.

Oppdatering 13:23: Jaktstarten burde vært stoppet før første skyting. De to første løperne gikk feil, og med slike konsekvenser som det ble burde rennet vært stoppet og startet på nytt, slik at klare instruksjoner kunne bli gitt til alle.

Oppdatering 14:48: Det ser ut til at Norge får gullet allikevel. Bra! Vi skal ikke glemme rotet med arrangøren og juryen, og dette bør få konsekvenser for IBU.

Fra Barcelona og inn i 2009

15. januar 2009 · Comments Off

Vi er nå godt i gang med det “nye” året, år 2009. Som en kort oppsummering av hvordan året har startet så bare så kan det nevnes at det ikke var noe fyrverkeri i Barcelona, men jeg vet jo hvor alt fyrverkeriet ble av… smuglet inn av leketøyopprørere som tror de kan befri midtøsten og gjøre Gazastripen til et himmelrike hvor pene jenter i rosa kjoler spretter rundt i sakte film. Ok, nok politikk.

Jeg tittet litt på eldre bloggposter jeg har skrevet, og skremmende nok så har dette året startet ganske så likt for meg som 2008 gjorde. For i dag har jeg vært hjemme med forkjølelse og hatt drømmer om rare ting som brukerhåndtering i LDAP og Bifrost. For på jobben arbeider jeg med videreutvikling av nettopp Bifrost, en follow-me utskriftsløsning basert på åpen kildekode, et spennende prosjekt som jeg var med på å starte på i slutten av 2007. Men, rare drømmer er vel sikkert bare helt normalt for IT-folk…

Barcelona
Som jeg så vidt nevnte over, så var jeg i Barcelona på nyttårsaften, og jeg lærte mye nytt, ihvertfall noe. For det første, det er lov å ta med seg medbrakt vin og nyte den nede i baren på hotellet. Det virket nesten som at det var en selvfølge at jeg kunne gjøre noe slikt. Bartenderen åpnet gjerne vinen for meg også. Og jeg som stresset rundt i et par dager for å lete etter en vinopptrekker…

Sagrada Família i BarcelonaOm du har planer om å se den store og berømte kirken Sagrada Família så bør du ha god tid, spesielt om du har tenkt deg inn i den. Alle vil se den store kirken som aldri blir ferdig, selv på nyttårsaften. Køen gikk rundt hjørnet, den var lenger enn hva jeg klarte å tenke på. Det nærmeste jeg kom var et bilde.

Et tips fra en klok mann, hvis du noen gang skal til Barcelona på nyttårsaften, ikke drøy for lenge før du drar ut med drosje ut på byen. Etter kl 19 er det helt umulig å ringe drosje. Vi var heldige, det var sikkert sjarmen, for vi klarte å praje to drosjer som var off duty mens vi febrilsk røra rundt i forsøk på å finne undergrunnsbanen.

Det var riktignok ikke noe fyrverkeri i Barcelona, men nyttårsaften ble en trivelig kveld fordet. Vi var en liten vennegjeng som dro dit for fire dager, for å oppleve byen og få en annerledes nyttårsfeiring. Det ble mye gåing i løpet av ferien, opp og ned gater og fram og tilbake gjennom et kjøpesenter, men det er vel slik det skal være på ferie. Man skal være mer sliten etterpå enn man var før…

Oppdatering 12.01.2015
Mens jeg ryddet litt, så fant jeg faktisk kvitteringen fra restauranten hvor vi spiste den nyttårsaften, og den heter Meson David.
Den har visst helt grei rating på Tripadvisor.

Tur til Røysjø

30. november 2008 · 2 Kommentarer

I dag ble jeg tatt med ut på en liten tur i skogen, opp til Røysjø. Vel, nesten. Vi snudde litt tidligere enn planlagt på grunn av snøen.

På vei tilbake passerte vi et elveløp som renner ut fra Langevann. Sola lå perfekt og det var fram med kameraet.

Bildene er tatt med kameraet på en Sony Ericsson P1i mobiltelefon, kl 11:50 den 30. november. Jeg stilte hvitbalansen til “Overskyet”, da automagikken ikke fungerte optimalt.