Courses, fall 2011

I’ll be doing a couple of courses this fall for Programutvikling, focusing in on LOB development in general with the subject of data access and Azure.

The first course will provide a backdrop for those wanting to take the MS 70-516 exam, focusing in on data access in your LOB apps. Read more about it here.

It has been scheduled for the following dates :

  • 24th of August
  • 5th of October
  • 23rd of November

The second course is a crash course in Windows Azure and will provide you with the capability of developing with Azure and take the right choices to make your application scale and become reliable in the cloud, you’ll find the details here.

It has been scheduled for the following dates :

  • 19th of October
  • 9th of November


Speaking at the Gathering 2011

Easter for some is taking time off to spend with your family, others spend their time at The Gathering, a get together of people with a common interest; computers. This year I’ve been lucky enough to be asked to speak there. The focus will be Windows Azure and also sneak in some Silverlight and Windows Phone 7 stuff. I’ll be there for 2 full days doing multiple talks around these subjects – so if you’re at The Gathering and want to learn more about how you can do things in the cloud with your favorite programming environment or want to learn more about doing cool stuff on the Web or the WP7, be sure to look out for the talks on this page when they are made available.


Speaking at NDC 2011

I’ve been preparing on and off a talk for NDC 2011 the last couple of months, at first I was not sure what it would become, but as the agenda came together and it had to get published the subject finally materialized 100%.

The talk will be about CQRS, but not a demo-ware thing – a real life project that uses it. At one of my clients, Komplett.no, the largest web-shop in Norway – we have applied CQRS. The talk will be about the experience with how it was applied, how the team learned and what pitfalls we went into.

On day 3 of NDC 2011, you’ll find me on the 7. track.


Silverlight 5 and Balder

As most of you probably already know, Balder has thus far for Silverlight been a software rendered 3D engine. Basically what that means is that the CPU has been doing all the rendering, and not only that but also within the .net runtime. To say the least, quite costly – at least if one wants a bit of accuracy as well.

Now that the cat is out of the box and Silverlight 5 beta is available I can finally announce the new hardware accelerated support for Balder. The full feature list can be found here for Silverlight 5, the beta can be downloaded here.

Silverlight 5 Hardware accelerated 3D

With Silverlight 5, Microsoft is introducing hardware accelerated 3D graphics. What they have basically done is take the Xna route and implement a scaled down version of Xna for Silverlight. They have implemented the basics needed to do 3D rendering, so all the asset management that Xna normally provides you with on the desktop and the Xbox is not included – here is were Balder comes into play with its support for assets.

Balder is closing in on feature and rendering parity with the Silverlight 3/4 version of Balder.

Also worth mentioning is my good friend René Schulte has a blog post up with more specific Silverlight 5 3D details here showing the SLARToolkit with hardware accelerated 3D.

Whats there

The main priority for Balder has been to get the rendering visually equal with hardware rendering that the software rendering did, basically what that means is the lighting model that has been so far in Balder has been replicated in hardware.

Basically most of the features as you know it in Balder is supported, everything from asset management, geometries, scene management, view management, frustum clipping and all, and a hardware accelerated rendering pipeline.

The picture below shows the hardware accelerated version of Balder on the left side, and to the left is the software rendering version


Whats missing

Below you’ll find a list of things that are missing :

  • Sprites
  • Directional lighting
  • Multi texturing – reflection + diffuse maps and mixing
  • Texture opacity

Over the next couple of weeks the parity gap will be closed, but also new features such as bump mapping, more asset loaders for other modelling formats and general bug fixing. Another thing is parity with Xna for the desktop and Xbox plus Windows Phone 7.


Since Silverlight 5 uses Xna and graphics adapters work with the concept of shaders (vertex shaders and pixel shaders), this is also what Balder uses to do all rendering. This also means that Balder has opened up for you to actually write your own shaders but take advantage of Balders scene management, asset management and all the goodness that Balder provides, and everything done through Xaml. The shader can be specified by setting the CustomShader property on the Material object. Balder has a Shader object that you can create an instance of and point it to a PixelShader and a VertexShader.

Andy Beaulieu has been working with Balder and created a couple of demos that show what one can do with Balder now that the CPU is freed up to do other things. He has created a demo using physics and Balder – a video can be viewed here, the source for it can be found here. Andy has a blogpost up and running here with more details.

Balder has a SampleBrowser, and it is also available Silverlight 5 and can be viewed here.

Where do I get it?
The Balder release can be found here. After downloading the Silverlight 5 SDK and developer runtime, you basically download the Balder release and create a new Silverlight project and add references to all the DLLs in the Balder release. The next thing you need to do is add a parameter to the plugin setup in your HTML file that holds the Silverlight plugin. You need to enable GPU acceleration :

The source code for Balder for all this will be pushed later today.

Whats next?
Balder is an ongoing project and will continuously be developed and improved. I mentioned a few things above that will be focused on, another thing is animation. Full hierarchical animation and skeleton support and also skinning of it. Another aspect is design time support, today Balder is Xaml only – meaning that you have to type everything out. Although the API in Balder is very simple and the declarative nature of Balder is easy to use, design time support has been requested quite a few times. Another aspect is physics. The idea is to make physics a natural part of Balder by simply declaratively define properties for your objects so they can automatically take part of a physics scene without having to think much of it.



Ruby student at your service

Ruby is getting a lot of attention these days – and I’ve scratched the surface of it myself and can understand why. These days I just want to get some more experience with it myself, but as with anything one has not done yet its kinda hard to get started. Sure, Googling things will get you going with the language itself but the flow of working with it takes a lot longer.

Another point is – if one comes from a different environment, one tends to look at new stuff with old glasses.

Therefor, I’m reaching out – is there a Ruby shop on the east-coast of Norway that would like to have me passively sitting besides/behind a developer for a day in order for me to pick up the flow and routine of developing on Ruby. If you do your Ruby development on a Mac as well, that would be a major plus.

I can’t promise much back, I’m afraid – unless your shop needs input or help on Microsoft .net based technologies.

If this is doable at your shop, please contact me either via email : einar [at] dolittle [dot] com, twitter DM : einari or by phone : +47 909 66 858.