Jimmy Engström



Developer Christmas list

2013-12-06 00:54:00 +0000

Here is my take on what is the most exciting products for the 2013 Christmas.
Some are available and some will be available early 2014, I mention these cause they are so awesome it could be worth the wait.
For those who know me, wait isn't what I do best so I feel your pain and I am sorry, I just had to include them.


Lumia 1520

6” Screen, 20 MP camera, enough said =)



Xbox One

If you live in a country that gets the Xbox One in the first batch, I guess it won't be on any Christmas list cause you already should have bought it :D
For those (like me) who live in a country that is not included in the first batch there might still be time to import one :)

Lego Mindstorms EV3

There is no age restrictions for Lego, this is a really awesome product.
It has motors, sensors and you can build almost anything.
The best part is that there is a .net library so you can build your own apps.

LEGO.com Mindstorms


Raspberry Pi

A micro computer that runs Linux. It has everything you might need, Ethernet, hdmi, USB, audio and controllable pins you can use to connect to other things.
Since it runs on Linux, Mono can be used to develop for it.


Agent Smartwatch

A wristwatch capable of running .net Micro framework code (how awesome is that?), much like the S.P.O.T watch back in the day.
As far as I understand they won't ship until after Christmas bit there is an SDK already available so start coding :)


.NET Gadgeteer

Speaking of .NET micro framework, this is a fast prototyping kit, that makes building basically any electronics really easy.
It has standardized connectors that means you don't have to know any electronics. It is really simple to get going.



A gesture controlled arm and, you can control your electronics by using gestures.
Becoming a Jedi is no longer a dream.
I have no idea how the development environment looks like, still want one.



It can use unique cardiac rhythm to authenticate your identity, allowing you to wirelessly take control of your computer, your smartphone, your car and so much more.


Kinect 2 for Windows

The new Kinect is even more sensitive than the first generation, it can even read your heartbeat *mind blown*.
I think wearable tech is the next big thing, but lets face it, tech you don't even have to wear is even cooler.

http://www.microsoft.com/en-us/kinectforwindows/ (this is still the old one)


Leap Motion

All devices that makes it possible to control your computer is always fun.
The leap motion can track your fingers and also other objects like pens and such.



This is a racing track that connects to your iOS device (iPhone/iPad) using Bluetooth, the cars will drive around that track themselves but you control speed, lane and weapons. Yes weapons.
Real cars and real track but software shields and weapons *bummer*.
All the logic is in the iOS app and you can "upgrade" the cars with shields and new weapons.
If you shoot a car it will derail.
Very cool stuff so if you have an iPhone or iPad this is probably the must by Christmas gift this year.



If you don't find anything on the list or if you have a husband or wife that share my love for not waiting (eg already have or have ordered most of this stuff) you might consider printing your own.

3D Printer

There are many 3D printer out there. I like the cube 2, it is small and so is (sadly) the printing size. But it is large enough, the alternatives (having a reeeeally large one) isn't that appealing.
If you have trouble convincing your wife about a 3D printer, show her that it is possible to print chocolate :P
Besides that, Windows 8.1 has build in support for 3D Printers.



The secrets that makes a good developer awesome

2013-11-04 19:54:00 +0000

I often get asked how I manage to stay up to date with so many technologies.
I'm a C# developer and Microsoft is really pushing out stuff in an awesome pace.
But it means that you need to be awesome to, to be able to keep up.
Here is a couple of things that I find important if you want to become an awesome developer.

Be proud, but not stubborn

Listen to co-workers, ask their opinion.
I have had a couple of discussions ending up with the both of us switching sides and now we are argumenting for the others cause.
If you don't agree with something try to find out why the other part thinks as he/she does, perhaps there is a good reason.

Take every opportunity to learn

Do you have a long commute to work?
Read blogs and/or listen to podcasts, these are some of my favorites:
.NET rocks
Windows Developer Show

Less sugar coating and don't take it personal

If you find something you don't like, confront the developer.
Figure out who is wrong… sometimes it's just a matter of taste, sometimes it's just plain wrong.
It is much faster and efficient to solve the problem as soon as possible.
I wrote my best code when I knew I would hear about it if it was bad.
Once I came into the office and my college had printed and hanged a really long regular expression I had written (covering almost the whole room), just because he thought it was bad (and it was, but didn't tell him that).

Community member

Attend user group meetings as often as you can.
If you don't know what the subject is or perhaps you don't think it is interesting, let them try to convince you.
The people you meet are those who invest their spare time, these are the developers that really burns for what they do.

Community leader

If you don't have a strong community where you live, start one!
I have learned a lot from running the user group Coding After Work, and helping out with SWENUG here in Sweden.
There are often loads of companies willing to sponsor user groups.


Attend conferences if you have the chance, it is not the sessions that are important, it is what is happening in between the sessions that are awesome.
All the fantastic people you can meet, and learn from.

It's not a job it's a lifestyle

There are rarely enough time to learn as much as you might need during work hours, you might need to use your spare time to read up on the latest technologies.
It can be done, but it is hard for a 9-5 developer to achieve awesomeness-status.

Don't know everything

You don't have to know everything, but at least know what technologies that are around so you know what to try, so you are able to take an informed decision when it is time to choose.
Know how to search and what forums that are best.
Pick a couple of technologies and be best at those.

Don't do everything yourself

I like control as much as the next guy, but sometimes you just have to let go, trust other people.
Use frameworks or control libraries, but do so with caution.
You should know why you use something, so you don't end up with a "overkill deluxe with bacon"-solution for a simple problem.

Use a Visual Studio plugin

I have refused to use a refactoring plugin in visual studio for years, I want to be able to use the tools without help.
I have evaluated the alternatives and I personally use Coderush.
Why? Because it’s the one that are less intrusive, very few popups, all the refactoring happens inside the Visual Studio editor.
Fair enough Resharper seems to (without actually counting the features) have more features.
Just code from Telerik seems like a great product as well, I have to admit I haven't used it that much.
These plugins are not only to help you rename a method, they can also hint about improvements or alternative ways of implementing code.
They will make you a "worse" Visual Studio vanilla user (since they add a lot of functionality) but they will also improve your coding skills and make you more productive.


This goes a bit hand in hand with community leader, help people.
Be a mentor to beginners, speak about what you love.
After doing a presentation and the attendees approach you with questions and you are able to help them that is one of the best feelings in the world.

Have confidence

I often answer "I don't know" to questions I am not entirely sure about, I also assume that they already have used their favorite search engine before asking.
But often if you get questions from new developers, chances are that you know more than they do about the subject.
You might be better at figuring out the best search terms, do a quick search that might be just what they need.

Don't wait

Jump on the beta train, always run the latest and greatest.
You will never win anything if you don't buy a ticket.

Code standards

Pick one stick with it, there is no right or wrong.
For C# I would recommend using the code standards Microsoft are using, it will make the .Net framework and your code seem as one.
Check what is standard for the language you are using and use that, it's almost always the best solution.

Don't be afraid to refactor

Often developers leaves bad written code or architecture because "it's too much work". Sure sometimes the time constraints are the problem bit try to figure out a way to include the refactoring in the next release.
Don't be afraid to get your hands dirty.


I do not make any claim of being awesome, these are just the tricks I use to (hopefully) one day reach awesomeness.
Please let me know if I forgot something or if you don’t agree with me.

ZX Spectrum emulator running “on” a Agent smartwatch

2013-07-31 23:26:00 +0000

Why you ask? Because it can be done… and therefore it should (?) Ler med tungan ute

Since the resolution on the ZX Spectrum is 256x192 pixels (not counting borders) and the resolution on the agent smartwatch is 128x128 pixels I had to make the screen smaller and as you can see from the image below, not really readable and as you might expect quite slow.
But the important part is: it works.




It only took me an evening to get this working, I really love the SDK and how well it works together with Visual Studio 2012.

This might be the best Christmas ever with both the Xbox One and Agent releasing around December, I can’t wait =)


If you haven’t seen the Agent Smartwatch, it is a smartwatch developed by Secret labs (the same guys who builds netduino) that runs .net Micro Framework.

Check it out here


Getting windows azure accelerator for web roles to work

2012-03-22 23:23:00 +0000

“The Windows Azure Accelerator for Web Roles makes it quick and easy for you to deploy one or more websites across multiple Web Role instances using Web Deploy.”

That’s how the git hub project page describes the project.

Kristofer Liljeblad from Microsoft showed me a demo of this on a conference (Øredev) we both attended.

Really awesome stuff, this project makes it possible to deploy one or multiple sites within one web role.

I intend to use this for a number of small sites, mostly WCF projects for my windows phone apps.

It should be noted that perhaps it is not the best option for really large sites.


The project is available on github:


What I noticed when installing this is that the VSIX files (providing Visual studio templates) no longer where included and the setup file for version 1.1 where missing, and since the project now looks to be completely different, any guides currently available won’t do the trick.



There are a few thing you’ll need to have on your computer to be able to use Azure.
I’m quite new to Azure so I needed to install them.

1. Windows Azure SDK
Download and install from http://www.windowsazure.com/develop/downloads/

and click on the .net link.
This will download and open Web platform installer with Azure already selected.

Click install and let the installer do its magic.

2. SQL Server

To be able to debug your Windows Azure apps you’ll need SQL server (express is enough) on your machine.

It is possible to connect to an SQL server on another machine but it will have to know about your user (i.e connected to the same domain), since I’m not connected to a domain it was less work to install SQL server.


Setting up the project

1. Download the source

The latest source should be available from here:

2. Extract the zip
and open the AzureMultiTenantApp.sln in Visual Studio

The solution contains three projects



First open the AzureMultiTenantApp.Web located under AzureMultiTanantApp.Cloud\Roles.

Here we can setup the configuration, in my case I only want one instance and a small VM.



You probably want to change the AdminUserPassword to something a bit more tricky =)



storage and Connectionstring

Create a new storage in the Azure management portal.


Storage accounts –> new storage account

Let us call it “storagename” and select the region where you want your data stored.




Now it is time to construct a connectionstring, a connectionstring to azurestorage looks like this:

The key can be found in the Azure management portal, select the storage and to the right side you will find it.
You can use either one of them.
We need to add this connectionstring in two places
First we need to add a new connectionstring in the file ServiceConfiguration.Cloud.cscfg 
<Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="DefaultEndpointsProtocol=https;AccountName=NAME;AccountKey=KEY" />
Secondly add the same connectionstring to the DataConnectionString-setting in the same file.
In the ServiceDefinition.csdef file under the Imports tag add:
<Import moduleName="Diagnostics" />

Publish time

Finally time to publish =)

Right click on AzureMultiTenantApp.Cloud and select publish




Select Sign in to download credentials

Sign in with your live ID and follow the instructions


Select a subscription end press next





Enter a name for your Hosted Service and choose the location.


Make sure that the storage name we created before is selected.

Check the Enable remote desktop for all roles and then click on settings, enter name and password and make sure the expiration date is set to something far away.

Also check the Enable Web Deploy for all web roles checkbox.


Click next, read the summary and then publish.


Publishing will take approximately 15-20 min


And we are done, now you can surf to YOURHOSTEDSERVICENAME.cloudapp.net and login to your new portal =)




First post in english

2010-10-16 17:46:00 +0000

I recently decided to change the layout of my blog and at the same time start blogging in english since I had some upcomming projects that might be interesed for more people than just swedes.

Wifi Router

2010-04-08 22:30:00 +0000

Hittade en otroligt bra applikation idag.
WMWifiRouter en programvara som förvandlar din Windows Mobile till en trådlös router så man kan dela internetuppkopplingen med andra enheter.
Den är lite långsam när den sätter upp uppkopplingen och eftersom jag i bästa fall bara har EDGE så är uppkopplingen inget att hänga i granen (men det är ju inte applikationens fel :P).

Det finns en testversion att ladda ner annars så kostar det fulla programmet €14,99 så det kan det ju vara värt.
Hoppas det kommer ett liknande program till Windows Phone 7 Series.

.NET Rocks! mugg

2010-03-20 18:28:00 +0000

Igår fick jag min .NET Rocks! mugg =). En kompis till mig (som rekomenderade .NET Rocks för mig för många år sedan) kommenterade det hela med:
Skojar du med mig?! Det är ju större än att vinna en resa till rymden.

Det som är lite otippat är ju att jag skulle få en mugg genom ett tips om en programvara för utveckling till IPhone och att resten av avsnittet handlade om oracle, men men jag är inte den som tjurar *klappar muggen*.

Avsnittet finns här:



Context switching

2009-09-02 22:37:00 +0000

Förra sommaren (tror jag det var) så var jag på en sommarkollo session hos Microsoft, minns dessvärre inte vad den hette.
Där berättade föreläsaren om context switching och hur kostsamt det var att försöka jobba på flera projekt samtidigt.
Jag lyckades aldrig anteckna men idag hittade jag siffrorna igen.


Bizzart mycket bortfall om man jobbar på flera projekt och det märker man ju själv, om man inte har en sak man kan fokusera på så blir man inte lika effektiv.
Intressant läsande.


TDD snippet

2009-08-20 23:01:00 +0000

Jag vill ju verkligen skriva testfall för allt, men i vissa projekt är det svårt.
Anrop mot bakomliggande system och databaser kan man mocka men vill man det? Man vill ju testa hela flödet ner.
Nåja här finns det en del för mig att läsa på om.

Den senaste tiden så har jag lagt ner mycket tid på att ta bort trösklar, det ska vara enkelt att programmera.
Istället för att göra samma sak flera gånger har jag byggt ett lite vba macro i studio osv.
Nästa grej jag ska kolla på är T4, på seminariet jag var på idag (ASP.NET MVC) så tog Johan Lindfors nästan upp T4 tyvärr var det ont om tid =(.
I onsdags så var jag på ett seminarie som handlade om agila arbetsätt och där pratades det mycket om TDD och hur man bör namnge dessa jag har därför skapat en liten snippet till visual studio som hjälper mig att skapa test methoder och namnge dessa på ett bra sätt.

Skriv bara tdd i visual studio och  tryck tab så kommer snippeten att göra resten.

tdd.snippet (1,80 kb)


Första Codeplex projektet

2009-08-20 21:00:00 +0000

Den första releasen av mitt Visual Studio addin för TFS är klart.
Eller ja.. jag har publicerat projektet iaf, det finns en del kvar att göra så jag har inte gjort någon egentlig release än.
Imorgon ska jag installera det på jobbet och testköra det och se om den uppfyller mina förväntningar.



2009-07-19 20:11:00 +0000

Microsoft research har tagit fram en väldigt ball funktion som heter PhotoSynth som länkar ihop bilder.
Svårt att beskriva egentligen men jag rekomenderar att testa.

Man behöver inte göra något jobb utan det är bara att ladda upp sida bilder så fixar den resten.

Här är en jag gjort från bilderna från The Stratosphere i Vegas



12 maj 2002

2009-05-12 21:11:00 +0000

Den 10 maj 2002 träffades vi för första gången.
Vi hade inte pratat med varandra på telefon utan endast via msn så detta var första gången vi ens hörde varandra.
Blev (som alltid) lite sen och när vi väl träffades så hade Jessica fått stå och vänta på mig.
Eftersom jag var rätt nervös så föreslog jag att vi skulle gå hem (från centralen till essingen) det jag inte tänkte på var att hjälpa Jessica med väskan och ännu mindre att Malmö är platt hon hade ju knappt sett backar förr.
Väl hemma så såg vi på Spindelmannen som just "kommit ut" på vcd, det är även ett utmärkt sätt att kolla vilket år det var vi blev ihop... imdb -> Spider-man -> Releaseår, jag jag vet jag är dålig men fusk är okej ibland :P

2 dagar senare så var vi officiellt ihop och Jessica åkte hem dagen efter för att sedan flytta uop ~2 veckor senare.
Jag vet inte riktigt hur det gick till att hon valde mig av alla människor speciellt efter den inledningen, men jag hoppas att jag får resten av livet att fundera på det.
Utan väldigt avancerad slutledningsförmåga kan man väl dra slutsatsen att vi firade ehm... bli ihop dagen (?) det finns säkert ett bra namn på det :P
7 år har gott och jag har lika dålig fantasi som vanligt :P jag funderade och funderade på vad jag kunde köpa efter att några av mina ursprungliga ideér gick åt skogen av olika anledningar så blev Spyro till Xbox 360 och det tyckte jag var en bra present för att fira våra 7 år tillsammans.
Jessica däremot hade betydligt bättre ideér hon hade köp/gjort en present för varje år vi har varit ihop.
En usb kyl, en mus, bananformade gem, tape (tejp) dispenser (formad som ett kasettband), Ipod docka, nege.... jag menar mintkyssar och ett av mina favoritgodisar chokladdoppade geléhallon.
Om ni inte testat chokladdoppade geléhallon då måste ni prova, de som man kan/kunde köpa är inte alls samma sak.

Nu ska jag återgå till att äta geléhallon och se melodifestivalens deltävling :P


2009-04-30 22:56:00 +0000

Jag har just börjar koda på ett community som jag tänkte skulle ha en hel del CMS funktionalitet och ville därför kunna serializera usercontrols.
Det självklara sättet att göra det på är ju att fråga herr google som snällt returnerade en hel bunt träffar.
Bland de träffarna så fick jag ett forum inlägg som undreade precis det jag ville ha reda på.. perfekt.

Efter ett tag så inser jag att killen som postat frågan kallar sig "Antropoid" .. hmm jag som trodde jag var rätt ensam om det namnet.. he.. lustigt killen skriver under med "Jimmy".
3....2....1   DOH... det är ju jag som skrev det!!

För rätt länge sedan började jag på en webshop.. ett projekt (som många andra) som inte blev klart... jag hittar det inte ens.. =/ .
Nåja HHiiaaah *åter som en åsna*

Tung vecka

2009-04-05 22:25:00 +0000

Förra veckan var en tung vecka sjukt mycket att göra och det hela avlutades med bolagsstämma på fredagen.
Folk var väl inte väldigt avslapnade inför detta och en del datorstrul som hittats precis innan gjorde ju inte saken bättre.
Men nu har det lugnat ner sig lite iaf.

Helgen bjöd på Trek-dag (med Stockholm trekkers) på lördagen vilket alltid är lika trevligt följt av en lugn söndag med diverse slötittande på tv.

Jag börjar få dåligt samvete för mitt touchbord som står här och ser övergivet ut, men sanningen är ju att jag behöver en ny spegel för att kunna fortsätta på riktigt och då behöver jag ta mig till IKEA och det är ju tämligen jobbigt.
Med lite tur så kanske jag kan få ordning på det snart.
För många projekt som vanligt som ligger och väntar :P


2009-03-22 15:20:00 +0000

Igår hade vi några vänner över för att se de två sista avsnitten av Battlestar Galactica.
Ett värdigt slut, men nu känns det som om jag förlorat en god vän.
Dagen till ära så hade Jessica fixat en BSG tårta och små chokladbitar.

bsgcake.jpg (205,76 kb)

eyeofjupiterchocolate3.jpg (156,07 kb)