I wish I had done something different over the last couple of months, but as some know I switched jobs and I’ve had allot of other things change for me. Don’t read it as an excuse more like I’ve shifted priorities a bit. Back in January I had this magic dream that I would be 100% into code52 projects, but I haven’t really turned out like it. I was in on some of the first projects and then it’s been downhill for my OSS engagement. But recently I’ve been trying to pick it up a bit, one of the early projects was a project called Jibbr, a chatbot for Jabbr…(jibber jabber…you get it?).

The project was really fun to help on, I didn’t do to much but I seem to crack a few things in the early phase on how to hook into the messages. The project went fine but the goal was never really meet, the bot ain’t around and the AppHarbour version never got running due to time and other things. Recently Shiftkey poked a bit at it again trying to push in the Jabbr.Client library instead of the basic SignalR integration which in my opinion worked a bit too wobbly. I picked up a few tasks and seem to have it connecting again from the console version, next step is to get the sprocket (bot-addins) working again, and have some of the horrible stuff from the console host put into the bot…doesn’t really make sense that the bot need external pins to be pushed to connect etc.

Enough jibber jabber, what I’ve gotten from this OSS engagement is actually way more than I expected back when I looked at it. I had only meet one of the guys on the project (meet Shiftkey at NDC2011), and I had no clue on how to use Git, Github etc. I have to say that I’m sold, recently when I changed jobs I entered yet another shop running Subversion (no pun intended), and well SVN just doesn’t do enough for you when you’ve meet Git. This lovely greenfield project that I’m working on is kept in a Subversion repository, but I don’t think I’ve ever looked at it. I’m running Git->SVN now and it’s almost flawless, sometimes the time is a minute of so it looks like I’ve checked in in the future :)

So a bit of a sum up on what I’ve gotten from code52:

  1. Git is awesome
  2. GitHub is awesome, what a magic collaboration platform
  3. Don’t be afraid of OSS
  4. If you look at OSS and think you’ll never get it, well maybe it’s a bit too big of a project to start on (that’s where the new projects from Code52 enter)
  5. Collaborating with developers around the world is fun (just ask Andrew and Paul how I refer to Brendan (Shiftkey))
  6. Everyone should do OSS
  7. Oh and Code52 is an awesome movement that hopefully can push more .NET developers into OSS

Comments No Comments »

It’s been very popular writing a retrospect for 2011, but I’m gonna that very shortly and look ahead instead :)

2011 summary, NDC visit (was AWESOME!!!), did my first presentations, Silverlight 4 certification and last but not least changed job back in January and went to d60.

Now for the important part, the plan for 2012:

Submitting abstracts for NDC2012, at the moment there is a basic Rx and  applied Rx talk in my pipeline. I’m considering other topics but nothing special at the moment since I know there will be plenty of topics and abstracts covering all the stuff I know :)

Doing some sort of open source this year, I think it’s very important to spread out and be a part of something that ain’t work. So far I’m trying to get hooked on a project called code 52, I heard about it via Brendan Forster I meet at NDC2011 ( fun and awesome guy…though he talks allot :) ). So far I’ve been assisting on some ideas for a bit of Xaml since I’m not that much of a Markdown guy which is the first project in the funnel. That have actually already given me a lead to help out on a project called MahApps.Metro, a project run primarily by Paul Jenkins and Jake Ginnivan (as far as I know…correct me guys if I’m wrong).

Another topic I started looking at in 2011 but I really wanna dig into this year is PostSharp, and if my brain can cope with it I’ll do a small attempt to dig into IL as well…thou I’m mostly interested in trying to apply cross-cutting concerns with PostSharp (even though you can fit it into the design of your app without PostSharp, but I think it’ll be a very valid tool to have in the box)

TDD, yes I know I’ve been very slow growing into the area but I had almost a year where I was very annoyed by everyone talking about TDD but not showing the path of light to me, but that’s to Mark Seemann at the Agile Architecture Open Space held in Aarhus I have seen the light. So now it’s on the desk and I’m looking at The Art of Unit Testing and have the GOOS book waiting in line. I’ve been neglecting unit testing as well but I’ve not been in doubt that I should get into after all the good talks I’ve seen about growing your application with confidence.

WP7, I held a small intro to Rx in 2011 with a base of WP7 based on material I was given by a danish Microsoft dude. I would say it was kinda scary talking about WP7 stuff without knowing anything about it and that might have been why I felt dodgy when doing so. With that said people seemed happy and like the concept of Rx, so my target will be getting a bit into WP7 and getting my base of knowledge pushed a bit :)

Books for 2012, Clean Code, The Clean Coder, GOOS book, C# in depth, EF in action and last but not least DI in .NET

Tags: , , ,

Comments Comments Off

We are moving in on the BUILD event in Anaheim about Windows 8, and people have gone crazy guessing about what will happen. Recently at the local usergroup geekbeer we were talking about all the rumors and all of our different views on how we guess it’ll be.

Rumors

HTML5, Javascript, C++, Jupiter…

Some of the rumors say that we will be using HTML5 and Javascript only in the future for building applications, this is something I find very unlikely due to the huge investment in shifting applications like Visual Studio from WinForms to WPF. I see absolutely no reason why they would invest in another shift when they finally switched platform. Would Javascript be able to pull this off…my guess would be no, and that leads to another rumor that we will be using C++ and HTML5 together. Funny idea but again my guess is no not likely at all, there might be an integration between C++ and HTML5 but it is most likely not the primary application development platform. I can’t see any reason in Microsoft pulling an Apple here and pushing there developers towards C++ when they’ve been pushing so hard on .NET in the last decade or so.

Silverlight will die yet another time…can we just get over it :) I see no reason why Microsoft would kill of a product that they are close to releasing another version of. I’m more tempted to say if you don’t know Silverlight now and you wanna developer for Windows 8…start learning. I think we are looking at the common term of “haters will always hate” and I think Silverlight got allot of hate back in the days because didn’t take the time to figure out what the capabilities of it was. One of the things I’ve had in mind for a long time is that I think Silverlight is more likely to become more dominant in the app sphere for the desktop. With all the love for Out-of-Browser mode, Full Trust and even 3D an PInvoke in v5 I’m pretty sure that’s where we are heading.

Xaml and C++ will be the new way of development, might be but is that impossible today…as far as I remember it is not (correct me if I’m wrong).

Predictions

Where are we moving with development for the windows platform, whether it’s windows 8 or not. I have 3 main scenarios in my mind and they have 3 different solutions.

The simple app/widget

For the simple small app which might be at a widget level, or a tile in the new metro inspired UI we will see allot of HTML5 + Javascript. We all know that HTML5 is this big over-hyped standard which the parties can’t settle on an even implementation (yes I said it but you thought it as well), but with that said I think it’ll be great for some things and that’ll be small apps. I’m not really sure if it will be a platform you can use for the upcoming app store though…I’m tempted to say no there.

The medium size app

Silverlight is up next and where does it fit in? I see a bright future for Silverlight and it will be for apps in a Microsoft app store, and as an easy distributable app install as well for those who doesn’t wanna go for the app store (or the enterprise). At the moment way to few people look at the install for Out-of-Browser scenario which I think is sad, you can do allot with that pattern…even on a Mac. If you really wanna push the limit you’ll go and sign it and have extra features for the user if he accepts Full Trust for your app. One of the rumors that might be real is the word about .appx as a Silverlight based application in the app store, I’m a bit uncertain why they need a new name but I guess there is an extra layer of manifestos etc. for pushing it through the app store.

The big app (aka Visual Studio / Office)

I have no reason to think that there won’t be big apps in the future and that they won’t be written in WPF, I’m pretty confident that they won’t shift to a completely new platform. One thing I’m sure of is that Microsoft won’t recommend people to go for a WPF based app.

Conclusion

I’m pretty confident in my prediction about the 3 levels of development and my predicted use. Of course I have no inside information and I’m not really trusting the rumors, so I’m pretty sure that I’ll fail on some levels but I think the general plan will go along these lines. So whether you like it or not I suggest you start looking at Silverlight or at least Xaml in general since it have been listed on the official stuff for Windows 8.

P.S. This is written pre-BUILD with glory in mind, when I hit spot on in a week :D

Tags: ,

Comments Comments Off

Før ferien så jeg at ONUG (Odense .NET User Group) holdte et par CodeJazz…samt at der var lørdagshyggehackning hos Eksponent i København. Det fik mig til at tænke på om der mon ikke også er lidt for mange kodehoveder i Århus der sidder derhjemme, og roder med et eller andet projekt de gerne vil gøre lidt mere ved.

Vi kender det jo alt for godt…projektet ligger i skuffen, men det er jo liiiige så nemt at besøge venner, det er liiiige så nemt at tænde for en serie, tv, film eller andet. Derfor kunne det være fedt at sætte sig sammen med andre kodegale personligheder, og så gjort noget ved det skuffeprojekt der efterhånden er et par kilometer støv oven på :) Det kunne også være at du sidder og brænder lidt fast i dit projekt og bare gerne vil spare med andre :)

Der er ingen regler for hvad du udvikler, der er ingen regler for hvad du udvikler i…du skal bare have lyst til at vise lidt af det du laver, samt være åben for at andre kommer med indspark til din kode hvis det er det du vil have.

Personligt kunne jeg bruge en dag ved at sidde og kigge på en der skrev tests, da det er en af mine store huller i jorden. Det kunne også være at du gerne ville have mig til at vise lidt om hvordan Expression Blend virker? Hvis jeg ser på flokken af folk der dukker op til ANUG sessions så skulle vi være ret godt dækket i ruby og c# (og Java måske…ellers kan jeg måske lidt tilbage fra 1.5 tiden :P ) til at starte med…har du et projekt i Lisp så tag det endelig med.

Eftersom jeg ikke har noget konkret for hvad og hvornår vil jeg gerne have lidt feedback på om folk gerne vil kode løs en hverdags aften, eller f.eks. en lørdag…og hvor ofte bør der være mulighed for at sidde med andre nørder :D

Af mine skuffeprojekter kan nævnes følgende (mix af ideer og konkrete projekter):

  • Beregning af COI (indikation for graden af indavl blandt dyr)…baseret på et gammelt python og Fortran program
  • Konvertering af data fra et gammelt program der bruges til at holde styr på hundekenneler (hvad det skal konverteres til er stadig uvidst)
  • Udvikling af Silverlight app til at holde styr på en hundekennel samt avlsprogrammer
  • Indkøb af .NET micro board med temperaturmålere
  • Windows Phone 7 app…der er et par ideer på bordet
  • MonoTouch…måske
  • Rx Framework deep-dive
  • Sterling DB deep-dive
  • …og meget andet :D
Tags: , ,

Comments 1 Comment »

I’m currently trying to squeeze the optimal out of my NDC2011 schedule, and I have to say it’s pretty hard to decide…so many great people and so many great sessions lined up. This will be my first conference but I’m pretty certain that I’ll love this one…so many good sessions from last year and I only hear positive things about the conference. I love the fact that it’s not messed up with allot of different session about this and that new technology, in my opinion this is more focused on “people” at my level…architecture and have to semi-teamlead. The most scary thing about my schedule so far is the amount of Kevlin Henney sessions…oh yeah and mr. blow-your-mind Skeet.

Looking forward to mingling with great people during the three days I’ll be staying in Oslo…who knows…I might meet some of the industry superstarts :)

Wednesday 8/6

Kevlin Henney – Things You Can Learn from 101 Things I Learned in Architecture School

Daniel González Garcia – Designing Software with SOLID principles

Kevlin Henney – Cognitive Biases and Effects You Should Know About

Tore Vestues & Jonas Follesø – When less is more – Agile web architecture

Kevlin Henney & Anders Norås – Introducing The FLUID Principles

Jon Skeet – Async 101

Thursday 9/6

Ingo Rammer – Hardcore .NET Production Debugging

Corey Haines – Craftmenship / Deliberate practice

Kevlin Henney – Framing the Problem

Dennis Doomen – The 10 habits of highly effective programmers

Douglas Crockford – Quality

Robert C. Martin – The Land that Scrum Forgot

Friday 10/6

Gil Zilberfeld – Danger! Craftsmen ahead!

Jon Skeet – Async Deep Dive

Gary Short – How to architect a codebase-wide refactoring project

Hadi Hariri – Refactoring Legacy Code Bases
—OR—
Krzysztof Kozmic – Inversion of Control containers: patterns and anti-patterns

Gary Short – Because You Suck at Design Patterns

Svein Arne Ackenhausen – Asynchronous programming made simple through messaging

Tags: ,

Comments Comments Off

Recently I’ve been part of the team doing interview with new candidates for junior and seniordeveloper spots. This article is meant to give hint to people what to read and what to do before you go for an interview… I’m not gonna point at specific people cause that would be plain wrong and way beyond my ethics.

Part one, you should always read up on the stuff mentioned in the job advert.

Seriously I’ve been sitting in on interviews where I asked people what their experience is in the exact stuff we mentioned in the advert, and some didn’t even had a clue what I was asking about. We aren’t talking rocket science here…we mention Linq, DI, ORM, MVVM, WPF, Silverlight, that is stuff you can quickly read up on within 2 nights if you wanna say you’ve heard about the concept but haven’t used it.

You better not try to fake it…I’ve seen that as well, and trust me I haven’t even gone for asking difficult questions and people are drowning in the pit of no-knowledge. If I ask what type of Linq you have been using you should be able to answer if it is Linq-to-Objects, Linq-to-Sql or anything else, you shouldn’t look like a frightened deer. I don’t require that you can recall stuff from the books or can tell me exact small details that makes the ORMs different, but I do expect you to tell me the purpose of it and why we are using it…or better yet you tell me what you think is bad by using it.

Part two, don’t misdirect questions with jokes

If you sit at the other side of the table in a jobinterview with me and you wrap the answer to my question in a joke, that pretty much doesn’t answer anything you have basically just lost all creditability. I expect people to be honest about their knowledge, else I won’t trust assigning tasks to you later on (not that I’m actually doing it now but who knows). If you are to proud to say “I don’t know that” you will fail, mostly by wasting valuable customerhours by sitting and hiding stuff and not giving solutions to their problems.

Part three, where do you exist in the community?

I’ve started asking people where they get their news, where they exist in the community…I don’t expect people to have a blog, go to conferences, talk on twitter or whatever. I’m trying to find out if you are passioned for developing software, in my opinion you should be able to mention some key figures in the .NET community if you have any sort of passion. Let me give a short list here of keypeople you could mention: Scott Gu, Scott Hanselman, John Papa, Jesse Liberty, Jeremy Likness, Phil Haack, Glenn Block, Mark Seemann, Tim Heuer, Mike Taulty, Pete Brown and the list could keep going on :) . Now you might think that by mentioning these names you are safe … well guess again ;) this is not a solution on how to trick me to send you to the second interview ;)

Part four, if you apply for a senior position you should base it on ancient knowledge.

I’ve seen way to many seniordevelopers applying without being up to date on what’s hot these days, I accept that juniordevs don’t know stuff or have no expirience. If you are a senior or mid level I won’t accept that you don’t know what an ORM is, if you can’t state what “dialect” of Linq you have been using. Seriously if you have been living on Pluto for the last 4 years it’s ok if you don’t know it else you should have heard about it.

Conclusion, are you who I’m looking for?

I‘m not looking for the really deep theory guy that wanna work with hardcore algorithms…fine if you are able to do so, but this is not what we spend most of our time on. We spend allot of time modelling the customers domains and getting our heads wrapped around their really wicked business logic, so far I haven’t seen any of our customers selling basic goods :)

Is this a rant on us being too demanding…not at all, we are not even close to a hardcore levels as I’ve heard some people are in the states. We expect you to be a good softwarecraftsman, and in my opinion that is not being able to list big-O notations for collections, answering pop-quiz questions about memory allocations and so on. This is more a rant at the developers that have decided that they don’t need to read up on stuff, or follow along on what’s moving in the industry. Imagine this would be the medicalindustry, you would be the guy amputating peoples legs instead of fixing them just because you didn’t read up on new procedures…would you like to go to that doctor?

Tags:

Comments Comments Off

Det er jo ved at være noget siden det var jul…jeg smed jo en opgave op som del af Microsofts udvikler julekalender, og har ikke smidt svaret op. Det er sket lidt for meget om ørene på mig så lad det var den cheesy undskyldning :)

Julekalendersvar fra Mikael Syska

Comments Comments Off

…og vinderen er:

Mikael Syska
Han har valgt at lave den rå udgave hvor der bliver tegnet et diagram, og gemt som en png. Koden er fin struktureret og der skal meget lidt til før at den vil kunne anvendes som et mere generelt søjlediagram.
Derud over skal siges at der var fine runners up…hvis man ønsker lidt kommentarer på koden, så send lige en email så sender jeg en pose ris/ros tilbage (det kan dog godt ske det først bliver lige de sidste dage op til jul).

BEMÆRK: Deadline rykket til søndag d. 12 december kl 12.00

Dagens præmie:

FEZ Cobra fra TinyCLR

Flagskibbet fra TinyCLR, der har cardreader, ethernet, analog/digital IO og sidst men ikke mindst så er den forberedt for en lille skærm (den er dog ikke inkluderet men kan anskaffes hos Cool Components)

Opgaven:

I forbindelse med at jeg har fået fjernaflæst elmåler kom jeg til at tænke tilbage på et tidligere job, hvor jeg arbejdede med energistyring…blandt andet fjernaflæsning af målere.

Baggrund for opgaven:

I forbindelse med strømforbrug aflæses der hver aften til midnat en tællerstand (i praksis er det dog hvert 15. minut).
Selve tælleren på måleren er god gammeldags måler med små fine plastic hjul der drejer rundt.

Måleren generere en række fortløbende måler tal, dog lige med undtagelsen af at der sker overløb når måleren f.eks. rammer 9999.99 eller lignende.
Der er aflæst følgende data i en periode:

double[] consumptions = { 886.32, 984.22, 82.12, 133.72, 191.92, 240.42,
280.32, 324.52, 351.12, 352.32, 422.32, 479.32, 538.22, 587.92, 589.02,
630.62, 725.02, 769.62, 815.42, 873.42, 919.62, 977.82, 978.72, 55.42,
98.52, 151.82, 152.82, 205.12, 263.62, 368.12, 416.42, 463.92 };

Der er ingen huller i data, derved skal der ikke laves udligning på grund af manglende aflæsninger…men alt data skal vises som forbrug dvs. forskellen fra igår til idag. I forbindelse med at der ikke er huller i data er dato ligeledes irrelevant, og der tages ikke højde for skiftende forbrug i forbindelse med weekender, ferie o.lign.

Del 1:

Funktionen

static double CalculateConsumption( double yesterday, double today)

skal beregne forbruget fra igår til idag, og det betyder selvfølgelig den skal kunne håndtere der er sket et overløb. Funktionen skal være så generel at der ikke skal laves noget om såfremt måleren har overløb ved 100, 10000 eller om så det er 1000000.
For at have helt klarhed over hvad der menes så kommer her et lille eksempel:

Tællerstand igår = 8.75
Tællerstand idag = 1.25
Forbrug = 2.5 (da måleren laver overløb ved 10)

Del 2:

Forbruget skal visualiseres i form af et søjlediagram, med dage på x aksen og forbruget på y aksen, udover de enkelte aflæsninger skal der også være indtegnet et gennemsnit.
Der må kun anvendes standard .NET Framework 4.0/Silverlight 4, det vil sige ikke noget med at hente Chart Controls … der skal tegnes på egen hånd. Produktet skal kunne køre som projekt fra Visual Studio uden nogen form for obskure registreringer eller opsætninger. Om resultatet er udformet som ascii-art, generering af et billede eller det er en form med fine streger i er lige meget, bare der er en tydelig kommentar om hvor det ender hvis der genereres noget på disken :)

Vurdering:

Del 1 lægger primært vægt på om koden er skrevet simpel og gennemskuelig. I del 2 af opgaven vil der blive lagt vægt på enkelthed, gennemskuelighed og muligheden for eventuelt at kunne generalisere koden til et lille meget simpelt chart modul.

Derud over vil min kæphest nr. 1 ”pæn kode” have sin del at sige.

Aflevering:

Alle løsninger sendes i en pæn julegave indpakket zip-fil til cyberzed at sleddog.dk inden 10 december 2010 kl. 02.00 søndag d. 12 december kl 12.00 (flyttet pga. juletravlhed), så har i lige et par ekstra timer til at pudse koden af ;)

Tags: , ,

Comments 7 Comments »

So as a really slow followup on my #003 post I’ll add a nice little thing you can do to help you keeping your domainobjects clean.

I’ve written about the DebuggerDisplay but that might not cut it, perhaps there is some nice to know information that you could use during debugging but doesn’t really have a spot in your domainobject. Let’s say I have a BoxOfBeer (nevermind my lack of spellcorrection), it’s a tiny object that only knows how many beers in contains, how do deliver a beer from it’s index and how to add beers. It shows up in a fairly manner in the debugger

Let’s say for some odd reason during debug that I wanted to know the first and the last beer in the box internal collection. I could add a FirstBeer and a LastBeer to my object, but why mess it all up by some piece of code I’ll never use besides during debugging. This is fairly easy done with a little class and an addition of the DebuggerTypeProxy attribute.

Source: CodeTip004

Tags: ,

Comments Comments Off

So as my previous post stated I listen to a few podcasts, and I would like to show you the list and a bit about them :)

Why do I listen to podcasts first of all?

It’s a great source of inspiration and catch up with the famous people of the different development communities. There are allot of scenarios where I have remembered something I’ve heard on a podcast, and thought…hmm that might be good for this solution. Somethings have been implemented and some haven’t, most of all it’s a matter of building up knowledge and references.

What do I listen to these days?

.NET Rocks by Carl Franklin and Richard Campbell

A great podcast that usually starts of with one of my favorites “better know framework” where you get a short info on some part of the .NET framework, it might be a deprecation, a new class or method or even a completely overlooked class in the framework. The rest of the show is usually a deeper look into a specific topic like ASP.NET MVC, WIF or C# in general. The great part is that they always seem to find a way to include the real rockstars behind the different technologies, so if they are talking about ASP.NET MVC they will have Phil Haack on the line. Highly recommended show, and please dig into the archives with more than 600 shows.

Hanselminutes by Scott Hanselman

A bit like .NET Rocks but somehow I find the shows to be shorter and more focus on “how to get started with Foo”, besides the tech stuff Scott talks to a different range of people about stuff that can be usefull for a developer in general. Besides having the stars of technology on the show, Scott have had a GTD practicioner, his wife and allot of other people on the show.

This Developer’s Life by Rob Conery and Scott Hanselman

As I wrote in my previous blog post this is about all the stuff around use developers, it’s about why we do some stuff, what we should know and other topics. In short there have been the audacity show, and shows like motivation, homerun, being mean. Very nice to see a podcast more focused on the stuff that ain’t tech solutions

Yet Another Podcast by Jesse Liberty

So far there have been many shows on Windows Phone 7, but I assume that Jesse will include more generic Silverlight over time as the tagline include Silverlight. Nice short episodes that is easy to fit in every now and then.

ANUGcast by Søren Spelling Lund and Søren Skovsbøll

Danish podcast by the usergroup in Århus. Shows are usually split into 2 episodes of 30 minutes where they interview a danish person about a certain technology or tool. Besides the tools and technologies there is also a few more laid back sessions on best practices or stuff like that.

In the queue:

The Sparkling Client by Eric Mork and Monica Mork

Short episodes, focused on Sliverlight and RIA technologies

Herding Code by Kevin Dente, Jon Galloway, Scott Koon and K. Scott Allen

From what I understand it’s a podcast more focused on the ALT.NET and the community around it (if I’m wrong don’t blame me :) ). The show list looks interresting…might wanna catch up on the shows while I’m doing my 15 hour vacation drive (30 hours of podcasts sounds nice).

Tags: ,

Comments Comments Off