Got.clj – uppstart av en Clojure grupp

No Gravatar

Got.clj hade sitt uppstartsmöte i onsdagskväll. Got.clj är en användargrupp för Clojure och träffen hölls i Squeeds lokaler. Eftersom jag själv är intresserad av att lära mig mera om just Clojure var det ett bra tillfälle för mig att fräffa likasinnande.

Efter att vi fått en presentation om Clojure och diskuterat saker rörande gruppen så började vi titta på hur vi satt upp våra utvecklingsmiljöer. Det var intressant att få demonstrerat hur en Emacs/Clojure miljö fungerar. Emacs är riktigt kraftfullt i händerna på de som bemästrar den. Själv så tänker jag vänta med Emacs prylarna och fokusera mer på språket. Jag kunde visa upp min konfiguration med Eclipse med Counterclockwise pluginen. Eftersom jag dagligen jobbar med Eclipse så känner jag igen mig där och Clojure stödet är fullt tillräckligt för mitt använde. Det var riktigt kul att en annan deltagare laddade ner och satte upp samma konfiguration. Folk fick hjälp med att komma igång och att fixa till det där som annars brukar att strula när man sitter själv med det.

Vi tittade på 4Clojure som är ett sätt att lära sig språket på. Där finns problem att lösa i olika svårighetsgrader. Själv så har jag gått igenom en del av problemen och ofta när jag känner att de blir kluriga så har jag hittat en ny del/funktion i språket att lära mig.

Sedan fick vi demonstrerat ett grafiskt program som en deltagare skrivit ihop. Koden delades i gruppen och vi kunde köra det i våra egna miljöer. Programmet använde sig at Quil vilket verkar att vara ett kraftfullt lib för grafik. Det hade vart kul att få se fler liknande demonstrationer och grafisk programmering imponerar alltid.

Gruppen visade sig bestå av allt från sådana som aldrig provat på språket till dom som hade mycket erfarenhet. Själv så hoppas jag få tillfälle att delta på flera träffar med den här gruppen. När jag gick där ifrån så kände jag mig inspirerad att fortsätta lära mig språket. Om du är intresserad så gå in på Got.clj och boka in dig på nästa träff.

Scratch – programmera tillsammans med barnen

No Gravatar

Jag har i veckan laddat ner scratch och tillsammans med barnen lekt fram en del roliga program. I den grafiska miljön bestämmer man enkelt vad som ska hända. Det finns färdiga kontroller för ljud, rörelse, utseende, mm. Dessa kopplas samman med mus och tangentbords händelser. Det går snabbt att se resultat av vad som skapas. Egenritade bilder tillsammans med inspelade ljud var den största behållningen. Det går också att dela med sig av sina program. På scratch siten kan man ladda upp sina program och hämta ner sådana som andra har skapat. Bra att komma igång tidigt med att dela lösningar med andra.

Tankar runt en CQRS blogg

No Gravatar

Det finns mycket information om CQRS spritt över mail-grupperbloggar och en bok i ämnet är på gång. Tyvärr så är det inte så ofta som jag stött på någon som delar med sig om sin erfarenhet av CQRS. Här är i vaje fall en blogg där författaren kortfattat har delat med sig av sina erfarenheter. Han nämner bla Event Sourcing och Eventually Consictency, vilka kan vara intressant att titta vidare på.

Saker som fastnar hos mig när jag läser bloggen är kanske inte direkt CQRS orienterade. Jag tänkte i varje fall skriva kortfattat om några av dem här.

Frameworks: Domain logic (the most complex part) does not really depend on anything except Base Class library (System. namespace).

I domänen så blandar han inte in några ramverk. Här är det bara vanlig kod som implementerar beteendet i systemet. Arkitektuellt så kan man titta närmare på Domain Model pattern . Hur har det sett ut i de system som du jobbat med? Har logiken inte varit separerad från ramverken och har det i så fall ställt till några svårigheter? Beteende som är separerad från ramverk är lätt att driva fram TDD-mässigt. Minimalt med mock användande behövs.

What makes development complex: it’s hard to get domain models and bounded contexts right (however coding or testing itself is no longer an issue. Scalability and performance – even more so);

Även om vi applicerar ett arkitektuellt mönster så som CQRS så är det svårt att få designen rätt. Börjar kontexterna att blanda ihop sig är det oftast dags att se över sin design. Läs mera om Bounded Context i Domain Driven Design .

Vad fastnar hos dig när du läser bloggen?

Bokrecension – Functional programming for java developers av Dean Wampler

No Gravatar


Functional programming for java developers av Dean Wampler är en tunn, lättläst bok på endast ett 70-tal sidor. Den förklara koncepten inom funktionell programmering på ett övergripande plan och väcker nyfikehet runt ämnet.

I första kapitlet motiverar man varför det är viktigt med funktionell programmering. Sedan så följer kapitel som förklarar vad funktionell programmering är, datatyper, parallell exekvering, bättre objekt orienterad-programmering samt hur man kan ta sin funktionella programmering vidare i Java.

Boken hinner inte med att gå in på djupet utan håller sig på ytan av ämnena men skapar samtidigt känslan av att man fått en viss insikt i vad funktonell programmering är.

Själv så gillade jag att läsa om immutable-state, STM, Actors och persistenta datatyper.

Tidigare så läste jag en hel del på bloggar om ämnet. Några som jag stött på är;

Hur state hantering skiljer sig i ett funktioinellt programmeringssätt gentemot ett imperativt:

http://www.ibm.com/developerworks/java/library/j-ft1/index.htm

Hur man kan implementera map och fold i Java:

http://cyrille.martraire.com/2011/03/thinking-functional-programming-with-map-and-fold-in-your-everyday-java/

Intresserar dessa bloggar er så är jag övertygad om att ni kommer att gilla Functional programming for java developers.