Jobb

Ting som enter konkret har med jobben min å gjøre, eller det å jobbe som utvikler generelt.

KickOff 2012

Nå er jeg hyper-motivert og ultra-inspirert etter en fantastisk KickOff med PSWinCom-gjengen. Vi har vært på besøk og bodd i den flotte hytta til Liv Grete og Raphael.

logo-skjelbreid-poiree

Vi har diskutert strategi, og badet i både snø og boblebad. Vi har snakket salg, og skutt på blink med Liv Grete og Rafael. Vi har utfordret oss selv i millitær hinderløype, og sust avgårde på wirebaner høyt opp i lufta. Vi har nytt usedvanlig god mat, og bygget enda tettere bånd gjennom sosialt samvær.

Personlig er jeg veldig stolt over å ha mottatt firmaets hederspris og generelt veldig mye skyt og god-ord fra mine medarbeidere i løpet av dagene i Hålandsdalen. Vi er virkelig en unik gjeng – det er det ingen tvil om – og jeg er sååå glad og stolt for å få være en del av den!

hederspris

Dette blir et legendarisk år, folkens. Tusen takk, alle sammen, for at dere hver og en gjør PSWinCom til et fantastisk sted å være!

Nyttårsforsetter for 2012

Da har vi feiret nyttår, og på denne tiden tenker jeg alltid mye på hvordan det nye året vil bli og hva jeg ønsker å gjøre anderledes. Jeg er vel ikke alene om det. Her skal jeg forsøke å samle tankene, og skrive ned noen forsetter – forhåpentligvis i form av konkrete mål. Ting som over tid skal gjøre meg til en bedre, sterkere og raskere utvikler. Fellesnevneren for mye av det er fokus.

skann0001

Mindre random, planløs surfing

Alt for ofte flipper jeg opp laptopen uten å vite hva jeg skal. Jeg surfer på måfå, er innom diverse forum, sjekker infoq og andre relevante aggregator-sites, facebook, twitter, og mail – uten egentlig å oppnå så veldig mye. Dette er sløs med tid! Hvis jeg er opplagt bør jeg i stedet programmere, eller lese noe jeg allerede har planlagt å lese. Er jeg på jobb bør jeg jobbe. Er jeg ikke opplagt bør jeg ikke åpne laptopen i det hele tatt.

Jeg skal ikke slutte helt med sosiale medier eller å hjelpe folk på forumene, men jeg bør begrense det kraftig – det har tatt litt overhånd.

For å få til dette bør jeg nok lage meg en plan for hvor ofte og når jeg faktisk får lov til å sjekke disse tingene. Jeg har ikke kommer opp med noe konkret her enda, men det skal jeg!

Høyere fokus på jobb

Jeg lar meg lett distrahere. Oppdager jeg noe nytt og spennende, eller får en tanke om noe som hadde vært greit å teste ut, så er det ofte vanskelig å konsentere seg om det jeg burde gjøre. Møter og email-kommunikasjon er også forstyrrende, og totalt sett gjør dette at jeg i perioder ikke er særlig produktiv.

Jeg må lære meg å administrere min egen tid og mitt fokus bedre. Pomodoro var en teknikk som hjalp noe. Men jeg trenger mer. Jeg ser for meg at jeg må strukturere arbeidsdagen – sette av tidsbokser for epost, forberedelse til møter, oppfølging av teamet og lignende. Jeg må passe på at jeg ikke må context-switche for ofte, for det er krevende for dem som driver med programmering.

Lese

Jeg har alltid vært flink til å lese, men i høst har jeg lest for lite – og som jeg sa i denne blogposten skyldes det blant annet at jeg har sluttet å reise kollektivt. Planen nå er derfor å sette av én time hver kveld til lesing. Det gjør ikke noe om jeg ikke får lest hver eneste dag, men regelen skal være at jeg leser om det ikke er noe annet jeg skal gjøre.

Fysisk trening

Vi har et fantastisk treningstilbud på jobben som jeg ikke har vært flink nok til å benytte meg av. Trening er noe jeg gjør i perioder – ofte holder jeg på i tre, fire måneder, for så å “glemme det” i en minst like lange periode. God fysisk form er viktig for å kunne holde på konsentrasjonen og for å få utslipp for stress. Dette må jeg bli bedre på.

Mestre tastataturet

Jeg har en gjennomført (eller fastgrodd) tastaturteknikk som fungerer greit nok. Jeg skriver nå opp mot 46 WPM når jeg fokuserer maksimalt (målt på typingtest.com). Men jeg skriver med få fingre, og ser mye på tastaturet.

Skrivehastighet og teknikk er viktig for å komme i god flow. Jeg ønsker derfor å lære meg og øve inn touch. Hvis jeg fokuserer på dette en halvtime hver dag i noen uker bør jeg kunne komme langt. Dette vil kunne hjelpe meg å holde bedre fokus og la tankene flyte bedre mens jeg programmerer (eller mens jeg blogger for den saks skyld).

Øve, øve, øve

Jeg er ganske flink til å trene på mine programmeringsferdigheter, og det må jeg selvsagt fortsette med. I år vil jeg forsøke å fokusere litt mer på metaprogrammering, gjerne i Lisp.

Jeg vil også forsøke å øke størrelsen litt på oppgavene jeg gir meg selv, sånn at jeg får økt sjanse til å eksperimentere med ulike design-teknikker. Jeg implementerer mye algoritmer, ting som løses på 20 til 60 linjer kode, men trenger mer trening på større ting – kanskje spesielt innenfor funksjonell programmering.

En siste ting jeg gjerne vil eksperimentere mer med er arkitekturer for å gjøre systemer “scriptbare”. Embedding av Ruby, JavaScript eller lignende runtime i applikasjoner eller tjenester. Jeg har gjort litt av dette, men vil at det skal bli en helt naturlig del av verktøybeltet mitt, slik at jeg bare kan smyge det inn når behovet dukker opp.

Et større hobby-prosjekt?

Et par ganger i året bruker jeg å starte på et eller annet større prosjekt som jeg håper kan bli noe fornuftig, men som jeg likevel vet er en stør sjanse for at ikke blir noe av. Programmeringsspråket MIST er et bra eksempel fra 2011 – det var et par interessante måneder mens jeg holdt på, men jeg ser ikke for meg at jeg kommer til å fullføre planene mine nå.

Det skremmer meg likevel ikke fra å prøve igjen. Jeg har en idé til et større prosjekt nå også, noe som kan bli ganske så gøy for mange om jeg får det til. Jeg sier ikke mer enda.., vil holde kortene litt tett til brystet en stund til. Kanskje trenger jeg noen av dere som beta-testere utpå våren eller sommeren engang. Vi får se!

Konklusjon

Som vanlig har jeg mange planer og ideer om hvordan året skal bli. Jeg har noen konkrete ting jeg skal jobbe med, og spesielt skal jeg bli flinkere til å holde fokus.

Når det kommer til bloggingen så tenker jeg bare å fortsette som før – blogge når det dukker opp noe som jeg får lyst til å dele. Jeg vil gjerne lage flere videoer, for det har vært gøy. Men det er også tidskrevende, og jeg vil ikke prioritere det fremfor det andre tingene.

Nå gjelder det bare å huske på dette her. Da er det bra jeg har denne bloggposten å komme tilbake til :)

Godt Nytt År alle sammen!!!

Mange som prøver, men få ninjaer på NDC sålangt

75617316

Første dag på NDC 2011 er vell overstått. Jeg har fått med meg en god blanding av ulike foredrag som nå må fordøyes før det braker løs igjen i morgen tidlig.

.NET Ninja quizen på standen vår har også vært flittig besøkt. Men det er ikke mange som når helt opp – såvidt jeg vet var det bare kollega Henrik som klarte alle femten spørsmålene i dag, og han fikk strengt tatt hjelp på ett av dem.

Vi hadde Uncle Bob innom også; han hadde ikke tid til å prøve spillet, men sa han skulle komme tilbake. Så hvis du leser dette og deltar på konferansen, så må du komme innom du også, smake på kaffen, og prøve deg på quiz. Kanskje blir du en av ytterst få som kan skyte av å være en .NET Ninja!

Bli en .NET Ninja på NDC 2011

Nå er det like før det braker løs med “verdens ledende konferanse innen .NET og smidig utvikling” i Oslo Spektrum. Over 1500 geeks under ett og samme tak – dette kommer til å bli kanonbra! Jeg ser frem til tre dager tettpakket med faglig innhold, krydret med god underholdning.

Nytt av året er at jeg selv skal stå på stand. PSWinCom stiller nemlig mannsterke, og jeg håper du som skal på konferansen tar turen innom – hvor du skal få anledning til å teste deg selv på The .Net Ninja Quiz. Men vi kan selvsagt fortelle deg om SMS-integrasjoner også om det først og fremst er det du er interessert i.

Version1_level1

Btw, video-opptakene fra en annen konferansen, nemlig ROOTS 2011, har akkurat blitt publisert. Jeg har ikke rukket å sett noe selv enda, men her er det nok mye bra. Blant de som frister meg mest finner du Patterns of Effective Delivery (Dan North), How to maintain a robust development process for JavaScript (Trygve Lie), Cranking CI up to 11, Deployment pipelines (Knut Haugen), og The 7 Duties of Great Software Professionals (Jurgen Appelo).

There is no holy code (Rudolf Brunner) pirrer også interessen – en god tittel på et foredrag, selv om det er litt uklart hva det egentlig handler om. Dessuten er det også inkludert en hel rekke lyntaler.

Her er det altså mange muligheter for å både la seg inspirere og å lære noe nyttig. Faglig påfyll er viktig, og å høre og se et menneske forklare noe de brenner for er en fin måte å gjøre det på.

Hackaton

CIMG0625

Forrige uke hadde utviklerne i PSWinCom noe vi kalte for et Hackaton. Vi skulle lage en ny versjon av vår kontoweb; ikke en av de viktigste løsningene våre, men viktig nok for kundene som bruker den. Vi satte av to dager hvor vi skulle fokusere 110% på denne oppgaven. Og så leide vi et egnet lokale med to prosjektører, slik at vi kunne sitte sammen alle fire og jobbe på to mega-skjermer, uforstyrret av kontorets daglige “kjas og mas”.

Vi var forberedt på å kutte noen hjørner for å få til så mye som mulig, og vi var veldig spente på hvor mye funksjonalitet vi kunne få på plass på de ca 18 timene vi hadde til rådighet.

Noen tekniske valg

Vi er først og fremst .net-utviklere, og skulle lage en asp.net-løsninger. Vi har ingen erfaring med ASP.NET MVC, og gikk derfor for WebForms.

For CRUD-funksjonaliteten i kontowebben hadde vi snakket om å benytte DynamicData, men vi så etterhvert at vi ville få behov for ganske mye spesialtilpasninger, og droppet derfor dette til fordel for å designe våre egne CRUD-grensesnitt fra scratch. For databaseaccess brukte vi Linq to SQL, som er veldig enkelt å forholde seg til, og er det vi er mest vandt til fra tidligere.

På forhånd hadde vi snakket om å bruke SQL Server Reporting Services (SSRS) til å lage rapporter i løsningen, men etter litt vurdering frem og tilbake avgjorde vi at det var enklere å bare bruke ASP.NET ReportViewer direkte og lage rapportene i Visual Studio. Vi hadde ikke full kontroll på dette, og det tok lengre tid å finne ut av hvordan det fungerte enn vi hadde håpet, men vi fikk etterhvert til å legge et greit grunnlag for rapporter i løsningen.

første dagen..

..gikk mye raskere enn vi trodde. Det er frustrerende hvor lang tid enkelte ting tar. Men vi fikk på plass en site med et bra design, vi fikk på plass en relativt avansert autentiseringsløsning, vi fikk på plass funksjonalitet for å teste SMS-utsendelse, og vi fikk startet på noen andre ting.

På kvelden var vi ganske slitne, og det smakte godt med en felles middag på en bedre restaurant!

Andre dagen..

..gikk bedre, takket være grunnlaget vi hadde lagt dagen før. Vi fikk fullført mer av CRUD-funksjonaliteten, og fikk på plass grunnstrukturen for rapportering – men et par enkle rapporter.

Alt i alt synes jeg vi skal være fornøyde – eksperimentet var vellykket i mine øyne. Lokalet med en felles pult for fire utviklere og to storskjermer på veggen førte til et godt sammarbeid og god parprogrammering.

Noen uttrykte bekymring for at vi hadde “hacket” litt for mye, og skulle ønske at vi hadde tatt oss litt bedre tid på kodedesign. Det blir en avveining i forhold til hvor mye løsningen skal endres og vedlikeholdes fremover, men jeg tror det meste av det vi gjorde i løpet av disse dagene var godt nok. Det ligger mye verdi i å holde designet enkelt også, sålenge man klarer å unngå kodeduplisering.

Nå ser vi frem til å vise folkene på kontoret hva vi har fått til, få tilbakemeldinger, og etterhvert fullføre oppgaven i normale omgivelser.

Send SMS med Python

Hvis du er en Python-utvikler som lurer på hvordan du skal få til å sende SMS-meldinger fra programmene dine, så kan du slutte å lure nå. Denne uken har jeg startet open source-prosjektet pswinpy, som er et klientbiblotek for sending av SMS. Jeg kaller versjon 0.0.1 for en beta, men det fungerer helt fint, og lar deg sende meldinger slik som dette:

1 from pswinpy import API
2 
3 api = API('black_knight','p@$$w0rd')
4 api.sendSms(4712345678, "It's just a flesh wound.")

Pswinpy tilsvarer pswincomgem-prosjektet jeg startet for Ruby-utviklere for et par måneder siden, og krever en Gateway-konto hos PSWinCom

Du kan også spesifisere avsender, bruke utsatt levering, og sende CPA- og GAS-meldinger (ta betalt for varer og tjenester) om Gateway-kontoen din støtter dette.

Noen som vil hjelpe til?

Pswinpy er mitt aller første prosjekt i Python. Det eneste jeg vet om ideomatisk Python-kode er at det aldri kan skade å inkludere en referanse til Monty Python. Derfor hadde det vært greit om noen fra Python-miljøet kunne tatt en titt på koden og se over om ting ser fornuftig ut.

“Fork” meg gjerne og foreslå forbedringer!

Jeg fikk også til slutt til å publisere pswinpy som en pakke til PyPI, den sentrale indeksen over biblotek og moduler for Python. Dette var ikke like smertefritt som å publisere til RubyGems.org – og å installere Python-pakker er heller ikke så enkelt som å installere Ruby-gems, men ikke så veldig vanskelig heller når man først har lært det.

PSWinCom gem’en har forresten blitt lastet ned over 240 ganger allerede. Jeg vet ikke hvor mange som faktisk bruker den, men synes det er bra uansett. Nå håper jeg utviklere i Python-miljøet vil flokke seg rundt pswinpy på samme måte.

Hemmeligheten bak funksjonell programmering avslørt

For en liten stund siden holdt jeg en ZipTalk på jobben om funksjonell programmering. Her følger en kort oppsummering, og jeg har også lagt ved “lysbildene” jeg brukte.

Budskapet i foredraget er rettet mot deg som kanskje har vært på foredrag eller hørt podcasts om funksjonell programmering, men likevel ikke helt fått tak på hva det er. Det gir liksom ikke mening når koden ikke skal ha såkalte “side effects”, og man ikke engang kan endre variabler. Det er noe som ikke stemmer her, noe som mangler. Hvordan kan man bruke funksjonell programmering til å lage programmer som faktisk gjør noe fornuftig?

Ett av poengene mine er at funksjonell programmering ikke er det samme som å bruke et såkalt funksjonelt programmeringsspråk. Funksjonell programmering er en stil, en filosofi, en måte å strukturere kode, en måte å bruke språket på. Ulike språk støtter og legger til rette for denne typen programmering i ulik grad. Språk som Haskell og Clean gjør det lett å skrive funksjonell kode, og gjør det vanskelig å gjøre noe annet. Språk som Ruby og C# har det som trengs for å skrive funksjonelle programmer, men er ikke optimalisert for det. Og et sted imellom finner du f.eks. F#, som forsøker å forene objektorientering og funksjonell programmering på .net-plattformen.

Nå passer det at du tar en titt på slidene, og så kan du lese konklusjonen etterpå.

Hemmeligheten

Hemmeligheten, det som veldig ofte ikke blir sagt når man lærer om funksjonell programmering, er altså at det ikke finnes noen magi. Funksjonell programmering alene kan ikke gjøre noe som helst. Et program utviklet i denne stilen består av to deler. Den største delen er ren og funksjonell, mens den minste delen inneholder den skitne koden med bi-effekter.

Trikset er å klare å separere delene – vite hva som er rent og til å stole på, og hva som ikke er det. Og så må man jobbe mot å la den rene koden gjøre mest mulig.

Var dette oppklarende?

Uke 15, 2011: Selenium, .Net 4, Euler og Ruby

Jeg føler for å oppsummere uken som har gått. Har behov for å skrive litt dagbok liksom. Skrive litt om hva som har skjedd, “dumpe” noen av tankene jeg går rundt med, og fortelle hva jeg har gjort for å bli en bedre utvikler denne uken.

Jeg tenker jeg vil forsøke å gjøre det hver uke fra nå av. Hvis jeg er skikkelig heldig kan det bli interessant for andre enn meg selv også. So here we go…

Regresjonstesting

Denne uken har jeg testet ut Selenium – det mest kjente og brukte rammeverket for automatisert testing av webgrensesnitt. Jeg har satt opp et opplegg for å teste Intouch (vår komplette webløsning for SMS) – en serie med tester som kjøres hver natt av vår TeamCity buildserver. Jeg bruker .net-versjonen av Selenium 2.0 WebDriver, og valgte å kjøre testene i Firefox 4 (hadde diverse problemer med både Chrome-driveren og IE-driveren).

Jeg holdt en liten ZipTalk for de andre på teknisk, og jeg tror alle var enige med meg i at automatiserte regresjonstester var noe vi trengte. Spørsmålet nå er hvilke tester vi skal ha, og hvordan vi best skal få implementasjonen av disse testene inn i utviklingsløpet vårt. Jeg ser i utgangspunktet ikke på dette som noe som skal inngå i testdreven utvikling, derimot tror jeg det er best å skrive testene når funksjonaliteten som skal testes har stabilisert seg. Kanskje kan det gå inn som en del av QA-fasen.

.Net 4.0 og Visual Studio 2010

Denne uken har teamet vårt også endelig tatt steget over på nyeste versjon av .net-rammeverket. Og det ser ut til å ha gått ganske smertefritt egentlig.

Men .net 4 er bare én av en hel rekke nye teknologier vi forholder oss til for tiden – av andre ting vi har tatt i bruk i det siste kan jeg nevne MongoDB og seriøs utnyttelse av jQuery. Og mye nytt og ukjent kan gi en følelse av manglende mestring og føre til stress. Derfor har jeg bestemt at vi skal ha en ZipTalk-serie om nye ting i .net 4.0. Utviklerne har nå valgt seg ut hver sine områder å utforske og presentere for teamet, og jeg venter spent på resultatet.

Og ellers…

På fritiden har jeg lest endel i de to bøkene jeg snakket om her: Metaprogramming Ruby og Pragmatic Thinking & Learning. Jeg har fått en dypere forståelse for hvordan Ruby egentlig fungerer – språket er både fantastisk komplekst og ekstremt elegant på en og samme tid. Og jeg har fått et bedre innblikk i hvordan menneskehjernen fungerer, hvorfor jeg tenker som jeg gjør, og noen verktøy for å påvirke og forhåpentligvis forbedre hvordan jeg tenker og løser problemer.

Jeg har også rukket å løse noen Euler-oppgaver, og er nå oppe i 29 løste (av i alt 332). Jeg har brukt Clojure, som fortsatt er det mest elegante språket jeg har vært borti noen sinne, og det faller meg mer og mer naturlig å løse oppgaver med funksjonell programmering. Derfor har jeg også bestilt en ny bok – The Joy of Clojure – som virker svært lovende.

Jeg har gått og tenkt på og hatt lyst til å skrive et par blogposter også denne uken – en om Dreyfus-modellen og hvor jeg befinner meg i den i ulike ferdigheter, og en om funksjonell programmering. Men tiden har sålangt ikke strukket til. Jeg har vært på et par årsmøter også denne uken nemlig; i sameiet og i NNUG Bergen.

Ukens sitat

Jeg kommer hele tiden over mange gode sitat jeg får lyst til å dele med verden. I forbindelse med at jeg nettopp har fylt 35 presenterer jeg denne gang et Douglas Adams-sitat fra The Salmon of Doubt:

“Anything that is in the world when you’re born is normal and ordinary and is just a natural part of the way the world works. Anything that’s invented between when you’re fifteen and twenty-five is new and exiting and revolutionary and you can probably get a career in it. Anything invented after you’re thirty-five is against the natural order of things.”

Det er mye visdom i dette sitatet, men jeg håper jeg kan motarbeide det og fortsette å utvikle meg i årene som kommer.

Git

git-logoI dag har jeg holdt ziptalk om Git – det raske versjonskontrollsystemet. Jeg har brukt git litt på privaten, spesielt opp mot Github da selvfølgelig, men nå følte jeg det var på tide å lære det orntlig, og å se om det kunne gi teamet vårt noen fordeler. Vi bruker subversion i dag, men har behov for å bruke branching mer effektivt – i forhold til hyppigere deployment – og jeg tror Git kan være veien å gå.

Linus Torvalds has quipped about the name “git”, which is British English slang for a stupid or unpleasant person: “I’m an egotistical bastard, and I name all my projects after myself. First Linux, now git.”

The official Git wiki also gives a number of alternative explanations and backronyms for the name, including “Global Information Tracker”.

Ziptalken var basert på det tutorialet du finner på gitref.org, og anbefales til alle som trenger en introduksjon. Ellers finnes det en gratis online-bok som virker grei på progit.org, og git wikien en selvfølgelig også en naturlig referanse..

Ellers må jeg nevne at jeg er en typisk kommandolinje-fyr, og har stort sett brukt git på den måten. Men i går installerte jeg litt porselen i form av Git Extensions for Windows, og sålang må jeg si at jeg er imponert. Denne integrasjonspakken bør gjøre git spiselig for de fleste.

PSWinCom Ruby Gem

pswincomgemI går slapp jeg en aldri så liten før-valentinegave til alle Ruby-utviklere. Med pswincom gem’en kan man på få sekunder implementere enkel sending av SMS i et hvilket som helst Ruby-prosjekt.

Versjon 0.1.1 inneholder kun én metode, og lar deg sende en SMS med PSWinCom’s SMS Gateway – gitt at du har en konto. Den vil bli utvidet med mer funksjonalitet om det viser seg at det er interesse for det i utviklermiljøet.

Her er en kjapp demo akkompagnert av litt raggae:

Dette er den første gem’en jeg har laget og publisert. Det viste seg å være en ganske enkel og smertefri prosess, og frister til gjentagelse. Nå håper jeg bare det er noen Ruby-utviklere som har behov for å sende SMS og som kan gi meg litt tilbakemelding.

For ordens skyld, gem’en er kraftig inspirert av Clickatell Ruby API, utviklet av Luke Redpath.

For mer info om API’ene våre kan du ta en titt på wiki.pswin.com.


Torbjørn: La oss anta to ulike definisjoner av Template Method pattern - de to ytterpunkte...

Lars-Petter: Hei igjen. Siden du inviterer til å ta diskusjonen i bloggen, og har tatt deg t...

Torbjørn: Lars-Petter: Det er én måte å se det på. Det er absolutt fortsatt Template M...

Lars-Petter: Hei. Har du ikke i prinsippet her gått over fra Template Method (arv) til Strat...

Christian Abildsø: I alle fall i C#, så føles dette som kode som blir mer fleksibel men vanskelig...

Torbjørn: Hei Henrik, og takk for tilbudet. Ble oppmerksom på Rasberry Pi for under en uk...

Henrik Sandaker Palm: Ang. større hobby prosjekt. Du er som er en slik rakker på programmering har j...

Øivind Nilsen: Slutt å bruke mobilnummeret mitt som eksempel !...

Bjørn Einar Bjartnes: Jeg har også latt meg fascinere av Clojure, uten at jeg har kommet så veldig l...

Bjørn Einar Bjartnes: Sweet :) Jeg tror egentlig jeg liker det som det er, med musikk. Litt av utford...

 Hold deg oppdatert

Søk i bloggen

Ferske innlegg

  • Template Method del 4: Multippel arv
  • Template Method Intermesso
  • Template Method del 3: Bare funksjoner
  • Template Method del 2: På vei mot funksjonell programmering
  • Kategorier

  • .net ninja (37)
  • Bøker (17)
  • Diverse prosjekter (35)
  • DSL (10)
  • Erlang (10)
  • F# (5)
  • Hardware (1)
  • Jobb (77)
  • Julekalender (51)
  • kjempekjekt.com (23)
  • LISP/Clojure (33)
  • NNUG / community (60)
  • O/RM & databaser (10)
  • Off topic (116)
  • OO-design/clean code (30)
  • Podcasts (14)
  • Polyglot (77)
  • Ruby (27)
  • Silverlight / RIA (3)
  • Software/verktøy (20)
  • Softwareutvikling (20)
  • Testing / TDD (30)
  • the contiki strip (13)
  • User experience (3)
  • WCF (3)
  • Webutvikling (32)
  • WPF (9)
  • WTF (12)
  • Last ned Wallpaper

    Programmeringsbloggens tøffe skrivebordsbakgrunn med snippets fra ulike språk laster du ned her!

    Abonner via epost

    Om du vil kan du få alle nye blogposter tilsendt til din epost. Abonner nå, det er kjempeenkelt!

    Meta