18 min mix av hiphop och elektronik. Blaze up.
SHahara
2013-04-12, 18:53 | Shell, Sahara, VirtualBox,
Shellscript-wrapper för (VirtualBox) VBoxManage och snapshots. Inspirerat av ruby-varianten Sahara.
speclj, pronounced "speckle": a TDD/BDD framework for Clojure.
2013-04-11, 14:47 | Kod, Test, BDD, Programmering, Clojure,
Ex:
(ns sample.core-spec
(:require [speclj.core :refer :all]
[sample.core :refer :all]))
(describe "Truth"
(it "is true" (should true))
(it "is not false" (should-not false)))
(run-specs)
Transforming Code into Beautiful, Idiomatic Python
Kanonvideo om hur Python skall se ut.
sherlock; IRC, Aleph, Clojure
2013-03-24, 16:29 | Clojure, IRC, Aleph, Sherlock, Projekt, Counterclockwise, Vim,
Trodde det knappt själv, men kom tillslut in i ett ganska gott flow i Clojure. Sherlock är resultatet för dagen. Ambitionen är att sherlock skall vara en IRC-motor/lib som jag sedan använder för en web-baserad, minimal klient.
Förmodligen blir det inte mer än såhär om jag känner mig själv rätt. Men det var väldigt trevligt att skriva koden. Har fortfarande mycket att lära vad gäller stil och idiom såklart - men peppen finns.
En liten besvikelse var att det inte gick att wildcard-matcha på dispatch-parametern till defmulti-metoder. Eller har jag missat något där kanske?
Hade tyvärr faktiskt också ett par rätt hårda crasher av Eclipse, där jag starkt mistänker att Counterclockwise är boven. Får spana på vim som alternativ också…
Testkörning av Elixir lang
2013-03-23, 13:29 | Elixir, Programmering,
Har tyckt att Elixir verkat intressant ett tag. Idag hade jag lite tid att pröva på det. Här är mina första funderingar efter att gett mig på roman numerals -katan med Elixir (nästa test måste jag involvera lite roligare saker, typ records, protocols, message passing).
Bra: Testramverk finns med från början - ExUnit
Dåligt: Felmeddelanden från ExUnit
Bra: Rätt skön syntax
Dåligt: För att konkatenera två strängar: "foo" <> "bar"
"foobar"
Bra: Verktyg för att skapa projekt och hantera beroenden följer med (mix)
Dåligt: Dict är inte nämnd någonstans på de uppenbara ställena på hemsidan. Jag som är kass på att läsa, nämns i sektion 4 av getting started.
Bra: Dokumentationen är faktiskt OK för att vara ett såpass litet språk
Bra: PATTERN MATCH ALL THE THINGS
Bra: Testnamn som rena strängar!
Roman numerals -katan i Clojure. Tog väl lång tid för jag stakar mig så mycket på syntax. Men Counterclockwise funkar fint, och jag gillar mitt Eclipse-tema.
“MapReduce”-experiment med Clojure
2013-03-21, 16:23 | Clojure, Meetup, Programmering, RabbitMQ, MapReduce,
Igår var det meetup för got.clj (Göteborgs clojure-grupp). Vi lekte MapReduce med rabbitmq. Skrev ingen kod alls själv, utan satt mest med och tjötade och hade det trevligt. (Del)Resultatet finns på github.

Lindstrøm spelar på Pustervik på lördag 16:e mars
2013-03-14, 11:43 | Musik, Lindstrøm, Göteborg,
Bör bli bra! Senaste albumet, Smalhans, är ju löjligt peppigt.
Framsteg på Logorator igen!
Har spenderat lite tid på att refactora stora delar av koden. Lagt till en del fler enhetstester. Särskilt mycket nyutveckling har det inte blivit än. Nästa stora ryck blir att lägga till så att jag kan generera något som kan renderas av three.js typ (WebGL!)
Scandev 2013, dag 1
2013-03-05, 21:45 | Scandev, Java, Developer effectiveness, Big data, Mjukvaruutveckling,
I år var det första gången jag närvarade på Scandev (tack Findwise!). Tänkte att jag skulle skriva ner ett par, korta saker om budskapet, eller saker jag gillade eller lärde mig, från varje föreläsning.
Dag 1 fokuserade jag på “Developer effectiveness”-spåret, men tittade även förbi Big Data samt Java-spåret.
Paul Stack: “Good VCS practices”
- “Branch by abstraction” som komplement eller ersättning av feature branches. (Finns två schysta intron/sammanfattningar; en skriven av Paul Hammant, och en annan skriven av Jez Humble)
- Feature toggles
- Gitflow
Lynn Langit: “Better Unit testing with ApprovalTests”
- ApprovalTests - ytterligare ett ramverk/verktyg för test, verkar speciellt passande för att verifiera genererad output av olika slag (text, html, bilder, GUIs, osv). Men kan även användas till annat.
Roy Osherove: “A 2nd look at unit testing”
- Välj rätt mock/isolation-ramverk - se till att det är enkelt och prydligt att använda samt producerar bra felmeddelanden
- Namngivning är viktigt. Roy gillar formatet:
UnitOfWork_Input_ExpectedOutput - PEX för C#, bör användas efter enhetstester är skrivna som ett hjälpmedel
- Verifiering av flera mocks i ett testfall är ett varningstecken - testas bara en sak här?
- Factory-metoder istället för setUp, för bättre läsbarhet
- (Egen fundering: QuickCheck och/eller Randoop kanske även är värda att titta på för Java)
Panel debate: Pitfalls when using TDD & how to avoid them
- Se till att ha snabba enhetstester
- Pröva Continuous Testing-verktyg (typ Infinitest till Eclipse)
- Glöm inte refactoring-steget
- Vissa gillar BDD, andra inte :-)
- Ha bra testnamn
Jag hann också med
Niklas Gustavsson: “Spotify services”
- Små services = lätt kodbas att förstå. Gör en sak endast, men gör det bra - UNIXfilosofi.
- Designa för immutability så mycket som möjligt. Isolera saker som muterar i egna tjänster/services
- Automatisera konfig och deployment (bygg till paket av något slag)
- Köer är bra! ZeroMQ.
- Var inte rädd för att droppa requests när saker och ting är överbelastade
- “Decouple until it breaks and then back up a little”
- Föredra stateless services: skalar linjärt
Joakim Kemeny: Running a real factory on websockets
- Java och JavaScript
- Många omogna JavaScript-ramverk
- Resultat: Bra, moderna och snabba UIs
Skriver nästa inlägg om dag 2, som nog var snäppet vassare.

Software Craftmanship Göteborg, Meetup #2
2013-02-26, 22:44 | Programmering, Software Craftmanship, Meetup,
Idag var det möte nummer två av Software Craftmanship Göteborg. Vi körde igenom en klassisk kodkata; Roman numerals. Pizza, öl och gott snack till det.
Eclipse Juno UI Optimizations
2013-02-23, 14:21 | Eclipse, Mjukvara, Java, XML,
Åh herregud, detta är ett måste att applicera på din Eclipse. Prestandahöjade som attans, speciellt för redigering av XML (ugh).
Help -> Install new software... -> Add... -> http://download.eclipse.org/eclipse/updates/4.2/ -> Juno SR1 Patches -> Eclipse UI Juno SR1 Optimizations
Ändra volymen i Mac OS X med kortkommando på PC-tangentbord
2013-02-14, 21:23 | AppleScript, Apple, Hårdvara, Mjukvara, Mac OS X,
Har införskaffat mig ett mekaniskt, litet trevligt tangentbord. Främst för att ersätta mitt gamla Apple-tangentbord som jag spillt lite för mycket te på så att piltangenterna bland annat slutat fungera.
Efter bytet insåg jag ganska snabbt att jag faktiskt saknade snabbknapparna för ljudvolym. Hittade ett gäng förslag på lösningar.
Det bästa av förslagen tyckte jag verkade vara att skapa en Tjänst/Service i Automator för varje funktion (volym upp, ner, mute) med “Run Applescript” som enda del (och lite script i givetvis). Enkelt! Sedan skulle det bara vara att binda tjänsten i Systeminställningar -> Tangentbord. Tyvärr så fungerade detta inte, verkar vara någon issue med Mountain Lion. AppleScriptet fungerar för sig, Automator-flödet fungerar för sig, men Tjänsten fungerar inte (varken från meny eller bunden som kortkommando).
Jaha. Nästa lösningsförslag var ett program som heter Keyremap4macbook - som trots namnet skall fungera för alla macar. Det gjorde det ej för mig, tyvärr. Installationen ville dessutom boota om, suck.
Tredje och sista utvägen blev att installera en gratisversion av FastScripts, där kunde jag sedan binda mina AppleScript till kortkommandon - här funkade allt som det skulle. Tjoho!