Welcome to MSDN Blogs Sign in | Join | Help

Jag och Tess körde vår "Devs & Ops Unite" dragning igår. Härligt att det var så mycket sköna människor som kom och tittade på vår batalj i gränslandet mellan Jolt och Birkenstock.  Sessionen spelades in och kommer att läggas ut via techdays siten om jag fattat det rätt, återkommer med en länk när den är uppe. Lägger upp en pdf från presentationen här. Om ni har funderingar eller frågor är det enklast att hitta mig på twitter nuförtiden... :-)

Imorgon är det dags för Dataföreningens/IASAs ITARC konferens. Min insats i detta blir Azure demos på Sten Sundblads keynote samt ett härligt pass där Microsoft, Amazon, Google och EMC kör korta (jepp, 15 minuter... Tror det kortaste jag kört tidigare är 60 minuter...) presentationer om våra molnplattformar. Skall bli kul, om ni är där finns jag på twitter under hela dagen. Vill ni ha min presentation så finns den här.

Fick ett tråkigt meddelande idag. En av mina stora förebilder på Microsoft här i Norden, som jag lärt mig otroligt mycket av kopplat till TDD på vår plattform, Mark Seemann, slutar på Microsoft. Hans tankar och posts kring Zero Friction TDD är väl värda en genomläsning! Allt är en effekt av en sugig konjunktur och i detta fall la Microsoft ner hela Microsoft Dynamics Mobile Teamet i Danmark.

Letar ni efter en grym utvecklare, TDD person, föreläsare i Köpenhamn eller Öresundsregionen så rekommenderar jag att kontakta honom asap.

På gamla dagar har jag blivit railsutvecklare. Snart står jag väl med en MacBook under armen på Starbucks, säsongskort i Whistler, nya telisar, rött hår och tjänar miljoner... Eller så stannar jag här med min fula Thinkpad och odlar managementmage...

Hursomhelst är det underbart att bredda min horisont och samtidigt få känna mig som en riktig nybörjare. Hittills har resan varit lysande! Men.... Jag har saknat Visual Studio. Nu finns det ett sätt att smidigt köra rails med SQL Server i botten och via Visual Studio. Cool! I like it! Ni hittar mer info här.

Min övergång till Windows7 har gått hur bra som helst. Det har bara varit två hangups som jag inte riktigt snyggt har kommit runt. Det ena är att adplus vägrar att hitta aktuella processer när jag skall ta ut en dump och den andra är att registreringar av WMI providers inte fungerar som jag skulle vilja. WMI sparar jag ett litet tag till, men adplus visar sig ha en ganska enkel lösning.

Problemet ligger i tlist som används av adplus för att hitta aktuell process. Den enkla lösningen är att skicka med en -tlist switch till adplus men det är lite att gräva ner huvudet i sanden. Gräver man lite djupare (som John Robbins gjorde) så finner man att i Windows 7 lägger till en extra [0] i output, såhär;

[0] 1 32 5828 powershell.exe
Command Line: ...

denna finns inte under Vista vilket gör att parsningen av processerna inte längre funkar och genererar en:

>adplus -hang –p 4242 -o c:\dumps
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.

The following requested processes are not executing:
4242;

Annoying... Men vår hjälte har givetvis skapat en fix för detta som ni kan hitta här.

Tack till Tess som tipsade min om detta! Nu är världen vacker igen...

Happy debugging´on Windows7!

Ingen kan förklara de innersta hemligheterna med TFS så klart och tydligt som Dag. Du rockar!

 

Ibland behöver jag komma bort ifrån arkitekturdokument, WSDL, WCF, DFO, EntLib, debugging och hitta tillbaks till den där känslan som gjorde att jag började programmera från början. Inte var det för att skriva LOB applikationer direkt… Under julen bestämde jag mig för att bygga ett enkelt tvåmanna racingspel i Silverlight för att få svar på hur en game loop ser ut i Silverlight 2, plocka fram mina kunskaper i linjär algebra och, inte minst, för att ha kul! (Man ska jaga den feta roterande kuben och akta sig för allt annat!). Tanken var att detta även skall ingå i den debugging lab site som jag och Tess jobbar på inför vår dragning på TechDays. Måste bara proppa den full med buggar först…

astrocubes 

Det mesta av utvecklingen var ren glädje men en sak sprang jag på som jag fortfarande inte har någon lösning på. Alla de objekt jag vill rendera ärver från UserControl och jag skulle givetvis vilja att de istället ärver från AstroObject som ärver från UserControl och innehåller stöd för att hålla reda på vinklar, fart och beteende för Thrust, Draw och annat. Ship är egenritad i XAML men AstroCube byggs dynamiskt ihop innan utritning. Här brände jag flera timmar innan jag gav upp… Det visar sig att det är hyffsat enkelt om man definierar objekten i XAML men i mitt fall ville jag dynamiskt lägga till mina objekt. Någon som har några idéer? All kod för detta projekt ligger uppe på codeplex så det är bara att kolla om ni har lust… Jag har några idéer men ni kanske redan har facit? :-)

classdiagram

Nu är det dags att börja skita ner händerna och jobba med Azure! Jag återkommer… ;-)

- jetbrains resharper
- den porriga thai-akvarierestaurangen med kitchiga vattenhjul på bordet och grym pad-thai i Sollentuna
- spotify
- garmin forerunner 405
- visual studio team system test edition
- evernote
- sxipper
- snagit
- live mesh
- powershell
- gym&sim
- powertab
- WaitForSingleObject
- alla sjukt sköna männsikor jag får hänga med och dessutom får deg för att jobba tillsammans med... Lysande...

Ta hand om er och kramas extra hårt i jul! Nu preppar jag med glögg-vm, sura ufon och tomteluvor! Vi ses efter jul!

Ok, lite content tänkte jag ha med... Ni hittar mina intervjuer från Øredev här, och min och Robert Folkessons MSDN live föreläsning om testbarhet, IOC & post mortem debugging här och här.

Identity 2.0 hjälten Dick Hardt börjar jobba för Microsoft! Dick ligger bakom den grymma sxipper id add-in prylen till firefox som jag inte riktigt klarar av att leva utan... Han har även levererat en helt makalös identity 2.0 föreläsning som ni inte får missa. Kudos till Daniel Akenine som tipsade mig om detta!

Øredev fångar många av de aspekter jag älskar med den här branschen. Passion, kompetens, nyfikenhet och öppenhet för att nämna några... I vilken annan miljö har man lyxen att gå från en skön dragning om MEF för att sedan gå på en lysande dragning om aspektorienterad programmering där jag inte ens bryr mig att det ligger i ett java-spår utan bara njuter av innehållet...

Från detta till att få höra Scott Bellware spy galla över varför det finns miljoner olika versioner av Windows, Office och Visual Studio och inte kunna bemöta detta med annat än... "Ehmmm... Jag håller med, kan vi inte ta en grymt god Oracle kaffe och snacka mer?". Underbart! Uppfriskande och magiskt!

Vi kommer att publicera våra intervjuer från konferensen på channel9 under veckan.

Jag längtar redan tills nästa år! Grymt bra jobbat!!!

oredev1 

With your feet in the air and your head on the ground
Try this trick and spin it,
Your head will collapse if there's nothing in it...

Jag har vid ett antal tillfällen fått hjälp av en talarcoach på Microsoft, hon är rätt skön och kommer med en hel del praktiska tips som är riktigt användbara men en av de som ringer allra hårdast i mitt huvud är;

- "Det finns två sorters talare, de som är grymt förberedda, har planerat för alla tänkbara scenarios och... Amatörer!" (Efter detta intar hon ett ansiktsuttryck som om hon tryckt ner en ebolasmittad hamster i halsen...)

Om jag måste sälla mig till en av dessa så måste det bli till amatörerna... Det intressanta är att jag håller rätt mycket föreläsningar och de allra bästa sessionerna har haft en väldigt stor del improvisation över sig. Jag känner mig aldrig riktigt förberedd och fokuserar mig mest på att ha stöd rent kompentensmässigt för att kunna ta ut svängarna och anpassa mig till publiken.

De allra mest oförberedda presentationerna i mitt liv blev förra veckans presentationerTechEd i Barcelona. Efter lite snack över några öl tillsammans med Tess Ferrandez hoppade jag in som co-speaker på två interaktiva post-mortem debugging sessioner och %#/&"# vad kul det var. Även om jag var lite av side kick Bob måste jag säga att det än en gång bevisade värdet av improvisation, att vara fler på scen, att kunna anpassa innehåll efter publikens frågor och att lärdomar från skarpa incidenter i produktion och test är viktigare input till arkitektur än tomma ord från trötta äldre män som tappat greppet om verkligheten...

Tess har lagt upp länkar till alla de resurser vi använde under dragningen, ni hittar dem här!

And all the roads we have to walk along are winding
And all the lights that lead us there are blinding…

För er som är på plats kommer vi ikväll att köra en soft Architect Chillout Session på Carpe Diem Lounge Club vid Port Olympic. För er som är intresserade av att vara med i vår nystartade community för Solution Architects är det bara att droppa förbi ;-). Är ni inte i Barcelona så går det lysande att skicka mig ett mess så lägger jag till er i min lista.

Barcelona rockar...  

På dagens första pass gick vi igenom hur vi kan använda Unity Interception Extension för att köra EntLib 4.1 PIAB handlers. Ni hittar all kod jag visade, powerpoints och annat på mitt skydrive konto. Jag visade även hur ni kan jacka in Unity som en WCF Instance Provider för att automatiskt koppla på Unity Interception för alla WCF tjänster via attribut eller behavior config. Den koden bygger på denna artikel i MSDN Magazine, artikeln använder dock Enlib 4.0 och Policy Injection Application Block. Det jag gjorde var att fimpa all PIAB kod och istället jacka in Unity Interception och EntLib 4.1.

 

För er som var på min debugging session på MSDN Live i veckan kommer här en sammanställning av alla de kommandon i WinDbg (SOS/SOSEX) jag använde. Håll tillgodo mina debuggingvänner! :-)

Ta ut en hang dump med adplus
adplus -hang -p <numberofprocess> -o c:\hangs -quiet

Starta windbg
windbg -z pathtodump

Ladda sos/sosex extension för .net debuggning
.loadby sos mscorwks
.load pathtososex.dll

Kolla alla stackar
managed
~* e !clrstack
native
~* kb
combined
~* e !dumpstack

Kolla locks, syncobjects
!SyncBlk

Deadlocks
!dlk

Byt till tråd n
~ns

Starta cmdtree med "meny" med vanliga sos/sosex-kommandon
.cmdtree c:\debugging\cmdtree.txt
(innehåll till cmdtree.txt kan laddas ner från John Robbins lysande blog)

Hämta time info
.time

Thread time
!runaway

Visa threadpool info
!threadpool

Visa managed heap stat
!dumpheap -stat

Dumpa Large Object Heap (objekt över 85k)
!dumpheap -min 85000 (sos)
!dumpgen 3 (sosex)

Visa valt objekt
!do 00000001e60bcdd0

... för ännu en fördjupande utbildning i testmetodik... Vänta ett litet tag med att skicka era arkitekter på den hetaste arkitektutbildningen i Redmond. En av de mest påtagliga utmaningarna i vår bransch är att vi har suboptimerat teamen så hårt att vi glömt bort att vi är just det. Team! Vi har fått för oss att om vi har de individuellt bästa testarna, utvecklarna och arkitekterna inom varje skrå, med sina respektive metodiker, kommer vi bli bättre som team. Men en perfekt ITIL tillämpning eller testmetodik är inte helt optimal om den inte kan kopplas till en utvecklingsprocess.

Jag är övertygad om att det är bättre att bredda sig en aning. Test är ett perfekt verktyg för att knyta ihop och driva teamet framåt. Låt mig ge några exempel;

Testdriven arkitektur
Att använda enhetstester för att driva design börjar sakteliga sätta sig, men varför inte även använda tidiga utvecklardrivna lasttester för att adressera icke funktionella krav och skapa en mätbar baseline för er arkitektur? Hur ser era komponenter och tjänster ut när de fungerar optimalt? Hur ser de ut när de inte gör detta? Vilka aspekter skall ni titta på? Behöver ni komplettera med instrumentering? Varför inte automatisera detta i er byggprocess? Resultatet från detta arbete är det som skall övervakas i produktion.

Testdriven instrumentering och övervakning
Om vi i vår arkitektur har definierat vilka aspekter som skall testas, och i samband med detta även skapat en hälsomodell för applikationen är det exakt detta som skall övervakas i produktion. Avvikelser och driftstörningar i produktion kan återföras till arkitektursidan som förfinade lasttester.

Test är en lysande brygga mellan arkitektur och utveckling och mellan utveckling och drift. Det vackra är att det inte behövs inte några stora förändringar eller dyra verktyg, det är mest en inställningsfråga och arbetet kan drivas från de individuella teamen. Lasttester kan realiseras med enkla verktyg som tinyget och perfmon eller med mer sofistikerade verktyg som Visual Studio Team System och Team Foundation Server. Effekten? Energi, passion och bättre teamkänsla. Varför vänta?

More Posts Next page »
 
Page view tracker