

 |
Archive for the 'Programmering' Category
Thursday, September 27th, 2007
Rune Zakariassen jobber i det norske utvikler- og plattformteamet til Microsoft, og er ansvarlig for faglige relasjoner mellom utdannings- og forskningsmiljøene og Microsoft-ressurser som forskning, kompetanse, kunnskapsnettverk og software. Han er en engasjerende fyr med veldig mye kunnskap. Det er ikke lett å sette ham fast på fagfeltet .net.
I går stilte Rune opp på det månedlige møtet til NNUG i Bergen, og det var i utgangspunktet opp til oss hva han skulle snakke om. Det ble tid til følgende tre tema:
1) Rune fortalte om Software Factories, og om Microsofts strategi for å industrialisere software-utvikling. Dette er fremtiden for oss utviklere, og ting som domenespesifike språk (DSL) og deklerativ programmering står sentralt. Runes budskap er at for å møte fremtidens krav til effektivitet må vi tenke som andre industrier som har gått fra håndtverkt til industri, og konsekvensen av dette er en todeling av utvikling.
Se for deg at du splitter den tradisjonelle utviklingsavdelingen i to: én Software Factory (SF) avdeling som lager generelle komponenter som kan brukes i mange lignende produkter - med tilhørende tools, DSL’er og dokumentasjon - og én Produktutviklingsavdeling, som først og fremst setter sammen moduler fra SF-avdelingen, konfigurerer og gjør den plumbingen som er nødvendig for Ã¥ fÃ¥ ting til Ã¥ fungere sammen.
Dette er den veien .net utvikler seg med WF, TFS, VS codename “Rosario” osv. Sammenligner du med f.eks. bilindustrien sÃ¥ ser du kanskje sammenhengen. De har en avdeling som hele tiden jobber med Ã¥ lage generelle komponenter som gir, forgasser, antispinn-system etc, og sÃ¥ har du en produktavdeling som bruker dette til Ã¥ lage selve bilene. Jo mindre tilpassning produktavdelingen mÃ¥ gjøre, jo mer effektive er de, og kan rulle ut en mengde lignende produkter.
I dag er Microsoft i praksis vÃ¥r SF-avdeling, og vi mÃ¥ gjøre veldig mye plumbing. Vi mÃ¥ bevege oss mot Ã¥ gjøre mer av dette arbeidet selv…
2) Runes neste budskap var kort fortalt at structs er undervurdert. Oppretter du mange objekter og trenger god ytelse, vurder å benytte struct i stedet.
Og til slutt…
3) Rune skal i dag reise videre til NTNU i Trondheim, hvor han skal holde en gjesteforelesning på doktorgradsstudie for spillprogrammering. Og siden han hadde med seg en XBox 360 så demonstrerte han hvordan man kan benytte XNA til å raskt komme igang med å utvikle høy-ytelsesspill for XBox i Visual Studio med managed .net kode. Å kjøre bilspill i debug mode på XBox med breakpoints i Visual Studio var kuult å se på.
Spillindustrien er ifølge Rune større enn Hollywood, og XNA-teknologien gir den nødvendige plattformen som gjør at også vi .net programmerere kan delta. 350 tusen utviklere har allerede lastet ned bibliotekene og begynt å utvikle - ti ganger så mange som det finnes profesjonelle spillutviklere. Dette var veldig inspirerende, og gitt litt fritid er dette noe jeg helt klart skal teste ut.
Posted in Programmering, .NET | No Comments »
Sunday, September 2nd, 2007
I anledning vårt nye fussball bord fikk jeg lyst til å lage et lite verktøy for å rangere spillerne på jobben. Jeg fant et enkelt poeng-system på www.foosball.no, og i løpet av en ettermiddag pluss litt til lagde jeg en liten web app som lar deg registrere spillere og kamper (single og doble).

Hver spiller får en score som justeres etterhvert som han spiller kamper. Vinner man mot en spiller som er bedre enn seg får man en større boost enn om man vinner over en med lavere score - omtrent som i ELO rating systemet i sjakk, bare endel forenklet.
Og som man skal i slike hobbyprosjekt så fikk jeg testet ut eller trent litt på flere ting; jeg var flink å lage enhetstester og bruke TDD, jeg fikk prøvd noen nye AJAX teknikker, og for en gangs skyld var jeg konsekvent og brukte kun TABLE elementer for å liste data, ikke til selve designet.

Lagring av data gjorde jeg veldig enkelt - spillerne med spillerdata samt en audit log over alle registreringer og poengjusteringer lagres i to XML filer. Er du interessert i dette verktøyet, enten for å bruke det selv eller for å ta en titt på kildenkoden, så er det bare å si fra så sender jeg en kopi.

Nå blir det veldig spennende å se hvordan ratingen på jobben utvikler seg. Det nye spillebordet er uvandt for alle sammen, så foreløpig er det velig jevnt. Vi har også lest oss litt opp på det internasjonale regelverket, noe som har ført til at spinning av stengene er ut - enkelte tok det svært tungt
Posted in Programmering, .NET, Fußball | 1 Comment »
Tuesday, August 14th, 2007
Jeg kommer til å holde mitt første foredrag for NNUG i Bergen på nestkommende brukergruppemøte som holdes 29. august.
Forelesningen har jeg kalt “Tidsklemma”, og jeg vil snakke om internasjonalisering av distribuerte systemer i forhold til tidssoner. Jeg baserer det først og fremst pÃ¥ egne erfaringer, og presenterer ulike strategier for Ã¥ implementering. Utgangspunktet mitt er at tidssoner er noe herk, men at det finnes løsninger det gÃ¥r an Ã¥ leve med.
Det skal også bli tid til noen demoer. Jeg kommer til å kode noen ASP.NET kontroller, og bruke bittelitt AJAX, men selve foredraget er rettet mot alle utviklere av distribuerte systemer, ikke bare web-folket.
PÃ¥ samme møte kommer ogsÃ¥ min tidligere sjef, John Arthur Berg fra it’s learning, til Ã¥ holde et foredrag. Han vil snakke om Software as a Service (SaaS), et omrÃ¥de han har enorm erfaring fra.
Så jobber du med eller er interessert i .net så er det kjempekjekt om du registrerer deg og tar turen innom siste onsdagen i måneden.
Posted in Jobb, Programmering, .NET, Om meg selv | 1 Comment »
Wednesday, May 9th, 2007
Alle .NET utviklere må huske å få med seg neste NNUG møte 30. mai, hvor vi får fint besøk av en internasjonalt kjent .NET arkitekt. Dette blir nok mer matnyttig enn noen gang tidligere. Meld dere på!
Jeg har tidligere blogget om dette her.
Posted in Programmering, .NET | No Comments »
Thursday, April 12th, 2007
Jeg har tidligere blogget om et problem med batch-kompilering i ASP.NET 2.0. ScottGu kan i dag melde at de (Microsoft) nå endelig har laget en Hotfix for problemet.
Posted in Programmering, .NET | No Comments »
Wednesday, March 28th, 2007
Jeg har lenge brukt Lutz Roeder’s .NET Reflector, et gratis verktøy som lar deg se pÃ¥ klassene i en .NET assembly, analysere dem for avhengigheter og dekompilere dem - det vil si at den gir deg kildekoden, i det .NET sprÃ¥ket du mÃ¥tte ønske. Jeg har først og fremst brukt det til Ã¥ studere assemblies hvor jeg ikke har kildekoden.
Jeg har derimot ikke vært klar over at det finnes en haug med add-ins til Reflector. Nå har jeg installer noen av dem, og verktøyets bruksområder har økt enormt.

I bildet over ser du hvordan min Reflector ser ut for øyeblikket. Til venstre er treet hvor man kan browse assemblies, namespaces, klasser og funksjoner. Øverst til høyre er dekompileringsvinduet hvor man ser kildekoden.
Men under kodevinduet har jeg etter at jeg installerte CodeMetrics modulen fått et nytt vindu. Her har jeg kjørt en analyse på en av assembliene, og får opp en haug med viktige parametre som f.eks. cyclomatisk kompleksitet, og jeg kan velge mellom å se på klasser, funksjoner eller hele modulen. I tillegg får jeg en grafisk visning over klassene som rask viser meg hvor det er høyest kompleksitet (de grønne boksene).
I tillegg har jeg installert en modul som heter Review, synlig nederst i bildet. Her kan jeg skrive kommentarer etterhvert som jeg finner kode med høy kompleksitet som jeg mener mÃ¥ refaktureres. EtterpÃ¥ kan jeg bruke review’ene til Ã¥ navigere til de aktuelle funksjonene. Totalt er dette nÃ¥ blitt et fantastisk verktøy for Ã¥ kjøre code reviews, bÃ¥de alene og sammen med andre utviklere.
Det finnes også andre, nyttige add-ins som f.eks. Doubler, som kan generere testklasser, stubs og wrappers for ulike unittest rammeverk, eller Graph, som gir deg et grafisk diagram over modulene dine. Den fullstendige add-inn listen finner du på www.codeplex.com/reflectoraddins.
Til slutt bare en liten ting til jeg fant ut i gÃ¥r…
Man kan administrere flere, lagrede lister med assemblies, slik at man slipper å laste dem inn manuelt hver gang man starter verktøyet (om man bruker det til å se på ulike sett med assemblies). Da bruker man File>Open List funksjonen. Man kan forøvrig også lagre ulike review-filer knyttet til de ulike listene.
Har du et seriøst forhold til koden din så er Reflector nærmest et påkrevd verktøy. Genialt enkelt og ganske enkelt genialt!
Posted in Programmering, .NET | 2 Comments »
Saturday, March 10th, 2007
NNUG (Norwegian .Net User Group) har invitert Christian Weyer til å komme og forelese for oss .net utviklere i vår. Weyer er ekspert på design, arkitektur og implementasjon av distribuerte systemer i .net rammeverket.., og ikke minst; han er veldig dyktig på å lære det bort. Han er en av dem jeg har hørt mest positivt om etter TeckEd i Barcelona i fjor.
I følge leder’n i Bergen holder Weyer foredrag om WCF pÃ¥:
- nnug i Oslo, 29. mai
- nnug i Bergen, 30. mai
- nnug i Kristiansand, 31. mai
Som vanlig er alle som er interesserte velkomne til å delta på NNUGs møter, og hvis du er seriøs i forhold til hva du driver med så vil jeg nesten si at det denne gangen bør være obligatorisk å stille opp! Det har sansynligvis aldri vært noen mere erfaren .net foreleser i Bergen, og det kan bli lenge til neste gang også.
Hvis du ikke har gjort det fra før bør du registrere deg på nnug.no, slik at du blir holdt oppdatert om hva som skjer av .net akriviteter i din region fremover.
Posted in .NET | 2 Comments »
Wednesday, March 7th, 2007
Er du glad i quiz? Pubquiz er i alle fall en slager. Men for noen Ã¥r siden kom jeg over fenomenet IRC quiz - pÃ¥ en kanal som het #trivia - og jeg ble ganske hekta en liten stund. Her var det altsÃ¥ en bot som hostet et spørrespill, og det var alltid mange deltagere…
bot: et program som gjør automatiserte oppgaver over internett
…og Ã¥ lage en bot, ja det fikk jeg ogsÃ¥ lyst til. SÃ¥ jeg lagde meg faktisk en IRC bot som jeg kunne kjøre via mIRC. Kjempekult.., men IRC er jo egentlig ganske gammeldags. SÃ¥ da jeg i forrige uke kom over DotMSN - et .net kodebibliotek for Ã¥ lage MSN klienter - sÃ¥ dukket bot-interessen opp igjen. Etter en sen kveld sÃ¥ Kjempekjekt Quiz Bot dagens lys.
Hvis du er interessert i Ã¥ prøve deg pÃ¥ quizen, som bestÃ¥r av en bunch med filmspørsmÃ¥l, sÃ¥ er du velkommen til Ã¥ sende meg dine MSN konktaktopplysninger, sÃ¥nn at jeg kan invitere deg med . Kan sikkert gi deg innsyn i kildekoden ogsÃ¥ om du vil…
Under ser du et eksempel-screenshot som viser hvordan det funker.

Og her er selve bot’en… Ja, jeg er glad i konsollapplikasjoner. Og ja, jeg er enda mer glad i farger.

På CodeProject fant jeg forresten en som hadde brukt DotMSN til å lage en log-listener. Kjempekult.., i stedet for at webserveren sender deg en epost eller bare oppdaterer eventloggen eller en eller annen kryptisk fil så får du den til å kontakte deg på MSN. Mega-fett!!
Det neste blir å lage en bot som kan simulere meg, så slipper jeg å bruke tid på å svare folk som spør om alt mulig rart på MSN. Neste gang du snakker med meg på messenger så er det kanskje ikke er jeg som sitter i den andre enden i det hele tatt.
Posted in Programmering, .NET | 2 Comments »
Monday, January 15th, 2007
Jeg har hatt litt problemer med mine ASP.NET 2.0 prosjekter i det siste. Fra tid til annen dukker følgende melding opp i browseren:
Could not load file or assembly ‘App_Web_xxxxxxxx, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null’ or one of its dependencies. The system cannot find the file specified.
Det viser seg at jeg ikke er alene. På asp.net forumet har man f.eks. diskutert problemet siden april 2006, men man er ikke kommet noe nærmere en løsning. Microsoft har laget en patch som de sier kan fikse problemet (les deres issue-beskrivelse her), men vil ikke la deg laste den ned uten at du kontakter dem med en supportsak. De sier dessuten at du ikke må installere patchen hvis du ikke har opplevd problemet.., skummelt!
Flere som har forsøkt patchen sier også at problemet ikke ble borte.
Problemet er relatert til kompilering (les om kompileringsmoduser i asp.net 2.0 her), og dukker av og til opp når man har endret en eller annen user control - sansynligvis i kombinasjon med bruk av master pages, hvor sidene, user controllene og master pagen batch-kompileres inn i én assembly.
Og nÃ¥r den først har oppstÃ¥tt er feilen vanskelig Ã¥ bli kvitt - man mÃ¥ tvinge en rekompilering, og rÃ¥dene for hvordan man skal gjøre det er mange, men etter min erfaring mÃ¥ man kombinere flere av dem for Ã¥ fÃ¥ det til. Og det som virket i gÃ¥r fungerer ikke nødvendigvis i dag. Det som fungerte for meg pÃ¥ fredag var Ã¥ editere master page’n, og samtidig starte en ny bruker session, sÃ¥ jeg kommer til Ã¥ prøve det neste gang.
Det som er mer skummelt er at det blir rapportert at dette også skjer på produksjonsservere.., med debug=false, og uten at det er foretatt endringer i kode. Det virker på meg som om Microsoft her har en bug de absolutt burde sette mere krutt inn på for å fikse.., dette har nå tatt veldig lang tid, og Microsofts representant på forumet har blitt veldig stille. Hans siste uttalelse kom i juni, og lød:
“Regarding a download of the fix, we don’t ever provide fixes at this stage for public download. (..) Once we go through enough testing, it will be available for download, likely in a SP.”
Det har enda ikke skjedd.
Posted in Programmering, .NET | 3 Comments »
Saturday, January 13th, 2007
Jon Arild kunne i dag fortelle at han har blitt overtalt til å bli ny styreleder i NNUG avdeling Bergen. Jeg tror nok han vil passe perfekt inn i stillingen. Lykke til!
Posted in Venner, .NET | No Comments »
|
 |


|


 |
Kjempekjekt innhold:
Min profesjonelle profil / cv finner du på linked in
|
 |

|