kärnvapen och godis

En blöt tillställning

aug. 10, 2010

Endagsfestival, metal och trevligt folk. Klingar bra, inte sant? Det blev verkligen en dag att minnas. Regn, kyligt och inga band jag egentligen ville se, men munkarna var goda!

Det uppstod ett antal tillfällen då vi övervägde att lämna området och färdas mot en varm dusch men vi hade tillit på moder natur och tji fick vi. När klockan väl slog 15.00 och vi insåg att väderleksrapporten som förutspått bättre väder vid den tidpunkt hade fel sjönk humöret en aning. När himlen öppna sig vid 16.00 kändes allt hopplöst.

Ska man bortse från vädret var det en okej festival. Inte några band jag såg fram emot att se men visst var det intressant att se Hammerfall som man lyssnade lite på när man var mindre samt Slayer som man hört på till och från. Att Slayer var värdelösa live är en annan sak. Man hade kunnat hoppas att någon i bandet skulle finna ork i att röra sig i alla fall en meter på scenen men ack nej, de bara stod där. Kvällens bästa framträdande måste jag tilldela Iggy & The Stooges. Vilken entusiasm. Galen Iggy som studsade runt och bjöd på sig själv så som jag inte sett någon annan göra. Det var en fröjd att se även om man kanske inte fastnade för musiken.

När man står där i kylan, genomblöt i jeans och t-shirt är det svårt att hålla motivationen uppe. Detta ledde till beslutet att Mötley Crüe blev det band som fick avsluta vår dag. Iron Maiden är verkligen inget jag frivilligt lyssnar på men jag ska inte sticka under stolen utan att det hade varit kul att se en eller två låtar. Dock sa kroppen nej där man stod och skakade i en stor lerpöl tillsammans med 45 000 andra. Vi beslutade att vandra mot tunnelbanan och pendeln för att sedan fortast möjligt uppsöka en varm dusch och få i oss något att äta.

Google Wave går i graven

aug. 5, 2010

Google Wave

Det var en sorglig nyhet som letade sig fram till mig via olika medier tidigt i morse. Morgonkaffet hade ej hunnit bryggas vilket gjorde att starten på dagen blev riktigt nedstämd. Nyheten berörde Googles senaste bloggpost där de kort och gott meddelade om Google Waves pensionering.

När Wave först släppte sina beta-invites var det en otrolig hype över dessa. Alla villa ha en. Folk refererade till Googles presentation om tjänsten och kunde tänka sig göra allt för att få en inbjudan, även om de inte riktigt kunde greppa konceptet bakom Wave.

Det tog säkerligen två veckor innan jag själv hade min inbjudan. Överlycklig loggade jag in för att testa det alla diskuterade. Inte många minuter senare fann jag mig i djup besvikelse. Jag hade inga direkta förväntningar på Wave men att deras sida vägrade flyta på förstörde upplevelsen. Man kunde hoppats att deras egen webbläsare skulle klara av det men ack nej, inte ens snabba Chrome pallade deras ohyggliga JavaScript. Från den dagen använde jag inte Wave något mer.

Några månader senare fick jag en inbjudan av en bekant till hans nystartade projekt. Plötsligt såg jag en ljusglimt och fann ett syfte med Wave. Det första jag uppmärksammade var hur snabbt allt flöt på helt plötsligt. Det fungerade utan större problem och lämpade sig verkligen till privata projekt-wikis som enbart delas med ett fåtal personer eller publika waves där alla kan diskutera och redigera i realtid. Många projekt kom att struktureras upp på Wave från den dag.

Nu blir det däremot ett extra jobb att exportera och spara ner dessa idéer och tankar för att kunna bevara dem då Google Wave går i graven. Det är lite synd nu när vissa har funnit Wave användbart. Även om det var väntat kan man inte annat än att skänka Wave en tår och sedan glädjas åt att projektet släpps som öppen källkod varpå man kan vänta sig ett antal nya Wave-servrar att uppstå och fortsätta utvecklas inom en snar framtid.

Ett år med Svorak

juni 10, 2010

Det är nu över ett år sedan jag slängde ut qwerty layouten till förmån för Svorak A5. Detta är något av det bästa jag troligtvis gjort under mina år framför datorn och det har fört med sig många fördelar. Min skrivhastighet har ökat, programmering går mycket enklare med denna specialutformade layout samt det är mer ergonomiskt då man slipper flytta fingrarna i diverse konstiga kombinationer vilket man tyvärr tvingas göra när man använder qwerty.

Självklart har detta frustrerat många av mina vänner och bekanta. Det är inte alltid så lätt att låna min dator för att kolla något snabbt på någon sida utan det kräver att man gör en del ändringar för att personen ska kunna öppna den sida de vill komma åt. Rätt skärm ska fokuseras i fönsterhanteraren (ratpoison) samt att tangentbordslayouten ska ändras till qwerty. När detta är gjort gäller det att lära dem hur man utför de enklaste uppgifter i firefox med vimperator som gör surfandet ett nöje jämfört med hur det ter sig utan.

Alla har sina egna saker de gillar som gör deras dator unik. Jag kan ibland vilja installera en stacking window manager för att skämma bort mig med onödiga fönsterramar, grafisk explosion av diverse effekter och liknande. Dock drar jag mig alltid från detta då jag vet att det skulle minska min effektivitet när jag använder datorn. Men den som lever får se, snart kanske min period av tiling wm's är över och då väntar nya äventyr!

1

Filmhelg

maj 10, 2010

Nu har helgen passerat, man återgår till jobbet och inser att man inte fått den vila man hade planerat att hinna med innan helgen väl började. Man vaknar trött på måndagen och känner hur resten av veckan kommer te sig likadant.

Helgen var välbehövlig. Inte gjorde jag mycket men det var även poängen. Lördagen spenderades med en massa bra filmer som Memento, 28 dagar senare och uppföljaren 28 veckor senare. Då två sista fick mig att genast vilja ta mig en titt på Resident Evil filmerna, denna gång alla i ordning (har sett några av dem innan men kan ej komma ihåg handling eller vilka av filmerna jag sett). Därav var även söndagen planerad.

Förutom de tre första Resident Evil filmerna hade jag även en tid uppbokad för att beta-testa det kommande spelet APB (All Points Bulletin) tillsammans med en trevlig person vid namn Martin. Tyvärr kan inget sägas mer än att spelet var en stor besvikelse. Ostabilt, horribel story och usel spelupplevelse. Förväntningarna låg på topp och föll platt efter bara några minuter.

Glad är jag dock över att mitt filmtittande har uppdagats. Detta sköna tidsfördriv då man inte behöver anstränga sig eller fokusera utan kan kolla, följa en nedskriven handling och bara njuta. Det passar då bra att återuppta mitt projekt med att se alla filmer från boken 1001 filmer du måste se innan du dör. Om jag inte nämnt det tidigare så passar jag nu på att rekommendera filmen Ali Zaoua. En av de bästa filmer jag sett och fann tack vare den underbara bok jag nämnde ovan.

django-mongoblog

maj 5, 2010

Härom veckan släppte jag en första version av min django-mongoblog. Det är mycket som ej är klart, så som ett fungerande admin-gränssnitt och feeds med mera. Det är dock ett första steg i rätt riktning och den är fullt fungerande för den som känner att han/hon vill hantera sina inlägg direkt via django-skalet eller i mongodb.

För den som är intresserad av att testa denna blogg redan nu kan klona mitt django-mongoblog github repo. På denna sida finner ni även exempel på hur ni implementerar den i ert django projekt. Skulle ni påträffa några buggar eller liknande, använd issue-trackern på github, där kan ni även lägga till punkter om ni saknar någon funktion så ska jag se vad jag kan göra åt saken.

För information om uppdateringar och liknande, följ mig på twitter här.

xfind

april 21, 2010

Skrev en liten shell-funktion för en tid sedan för att underlätta en viss procedur jag börjat använda mig av på sistone. Det är nämligen så att jag allt som oftast vill leta igenom alla filer av en viss filtyp i det katalog jag befinner mig i samt att dessa filer ska sökas igenom efter en viss sträng.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
function xfind {
    if [ $# -ge 2 ]; then
        EXTENSION=$1
        shift
        find . -name "*.$EXTENSION" | xargs grep "$@"
    else
        echo "xfind takes at least two arguments. 
            xfind <extension> <pattern to grep>"
    fi
}

Funktionen är väldigt enkel och bör inte vara allt för svår att förstå, trots det kommer här en kort förklaring. Funktionen tar minst två argument varpå argument nummer ett är den filändelse som ska matchas. Den lista av tillgängliga filer som skapas av de matchande filerna körs sedan mot grep för att filtrera bort de filer som ej innehåller strängen som angivits i resterande argument.

Just shell-skripting har jag fattat tycke för och har skrivit ett större projekt förut. Dock vill jag inte påstå att min xfind-funktion är den bästa lösning på just detta problem, men den fungerar underbart bra för mig.

Ett exempel

Följande kommer söka igenom alla python-filer (med ändelsen .py) och returnera ett grep-resultat av de som innehåller funktionen def TestRunner.

xfind py def TestRunner

Django testrunner

april 20, 2010

Det är nu dags att introducera den nörd som bor inom mig och hur kan man på bättre sätt göra det än att dela med sig av sin senaste kod-snutt?

På sistone har jag suttit och pillat en hel del med NoSQL-databaser och fastnat för mongodb. Jag ska inte gå in djupare på fenomenet utan istället fokusera på detta inlägg.

Problemet jag stötte på igår när jag började min migration från postgresql till mongodb för denna blogg som du för tillfället läser, stötte jag på ett problem med mina tester i Django. Det visade sig efter lite funderingar att django inte initialiserade en mongodb testdatabas utan en sqlite3-databas som helt enkelt lät mina test passera (när de inte skulle).

För att ta mig runt problemet blev jag tvungen att modifiera django's standard testrunner en aning och följande är vad jag åstadkom.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
from django.test.simple import DjangoTestSuiteRunner
from django.test import TransactionTestCase

from mongoengine import connect

class TestRunner(DjangoTestSuiteRunner):
    def setup_databases(self, **kwangs):
        db_name = 'testsuite'
        connect(db_name)
        print 'Creating test-database: ' + db_name

        return db_name

    def teardown_databases(self, db_name, **kwargs):
        from pymongo import Connection
        conn = Connection()
        conn.drop_database(db_name)
        print 'Dropping test-database: ' + db_name

class TestCase(TransactionTestCase):
    def _fixture_setup(self):
        pass

En förklaring

Till att börja med importerar jag DjangoTestSuiteRunner som TestRunner ärver av där databas-setupen skrivs över för att skapa oss en mongodb test-databas via setup_databases samt att ta bort databasen när testet är slutgjort via teardown_databases.

Till en början trodde jag att det var vad som krävdes för att få allt att fungera men det visar sig att django.test.TestCase (som vanligtvis används vid tester) gör några extra kontroller för att se att databasen är tillgänglig. Därav ärver jag TransactionTestCase (som är den klass som TestCase ärver av) och skippar kontrollen i _fixture_setup.

Hur använder jag denna testrunner?

Till att börja med fungerar denna testrunner enbart tillsammans med mongodb och mongoengine. När du har detta installerat sparar du ner testrunnern i valfri fil och väljer att använda en custom runner i settings.py via

# Förutsätter att testrunner.py ligger i samma katalog-nivå som settings.py
TEST_RUNNER = 'testrunner.TestRunner'

Ett test

1
2
3
4
5
6
7
8
from testrunner import TestCase
from models import BlogEntry

class SimpleTest(TestCase):
    def testBlogEntry(self):
        be = BlogEntry(title = 'Hello world')
        be.save()
        self.failUnlessEqual(be.slug, 'hello-world')

En bild av lycka

april 2, 2010

Det är på tiden att ett nytt inlägg skrivs. Nu när tid finnes. Det är otroligt skönt att ibland få en långhelg där man kan göra det man vill men annars inte hinner.

Tack vare denna extra ledighet bestämde jag mig för att lösa det problem jag haft de senaste veckorna. Efter mycket hjärngymnastik och ett flertal dunka-huvudet-mot-väggen moment så är nu problemet ett minne blott och jag kan njuta av ytterligare en skärm till stationära arbetsplats. Sammanlagt blir det en total arbetsyta på 5760x1080 pixlar fördelat på två 22" skärmar och en 24" skärm.

Vad kan vara mer passande än en bild på min hobby arbetsplats samt en skärmdump av mitt nya skrivbord?

WorkspaceScreenshot

Ett fåtal timmar kvar

mars 7, 2010

Nu dröjer det inte länge innan man adderar en etta till sin ålder. Ett år äldre och vilket händelserikt år. Fick ett jobb som programmerare och har nu en ny arbetsplats med samma arbetsuppgifter som tidigare. Hur det går får vi se när jag börjar där om cirka en vecka.

Första gratulationen har redan trillat in. En vän som för tillfället befinner sig i Australien där det för tillfället är den åttonde har skickat sin gratulation. Fler trillar säkert in under natten och under dagen. Man kan fråga sig hur många som någonsin tänkt på vad de gratulerar. Att personen man firar blivit ett år äldre, ett år närmre sin död.

Nu ska vi inte vara bittra. Själv hoppas jag på ett nytt händelserikt år. Talet 21 är mitt turtal och därav vore det logiskt om detta blir det bästa året i mitt liv. Hoppas kan man ju alltid ;)

I brist på annat

mars 6, 2010

Lördag. Fri att göra vad jag känner för. Sambon umgås med en kompis och jag planerar min dag. Men vad vill jag egentligen göra?

Många projekt ligger och väntar på att vidareutvecklas. Många jobbar jag på så fort jag har tid över men ibland har man dagar då man vill göra något helt annat än det man vanligtvis sysslar med.

Vad gör jag då? Självklart kodar jag lite som jag tröttnar på förvånansvärt fort. Det gick då över till Stepmania-spelande, först på tangentbord för att sedan släpa fram dansmattan. Fortfarande inte nöjd.

Nu har jag det! En ny serie ska jag börja kolla på. Efter några diskussioner på IRC om vilken serie jag ska kolla på väljer jag Battlestar Galactica. Nu är tre-timmars filmen slut och jag kan börja på första säsongen. Jag ser fram emot det. Filmen lyckades gripa tag i mig och jag förväntar mig en bra serie. Inte i klass med Stargate SG-1, men ändå långt över medioker-gränsen.

Hur kvällen slutar får vi se. Några rykten om en trevlig fest har jag ej hört. Om inget uppenbarar sig blir det ännu en mysig kväll med flickvännen.

Äldre inlägg