Recently I’ve had a couple of strange ratings on posts here. People, in plural, rating simple posts that basically just announce a talk to a 1 out of 5 and not leaving a comment. That just messes with my head. There is no way I can improve posts when there is just a bunch of negative rating but no comments. As a consequence, I decided to remove ratings all together – hopefully forcing people to engage in a conversation instead.
If there is something you don’t like in a post, or the entirety of a post – please don’t hesitate to post a comment. I’m very open to listening to feedback, but I can’t just read into the lack of a star and figure out what I’m doing wrong.
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.
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.
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.
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.
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
Below you’ll find a list of things that are missing :
Multi texturing – reflection + diffuse maps and mixing
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.
Demos 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.
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 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.
Back in 1997 I started doing some moonlighting on the side – small projects and I needed a company in order to do be able to do the work according to Norwegian law. I started a company called DoLittle Studios, registered dolittle.com as my domain and was set to go. The reasoning behind the name was basically to not do much. 🙂
Turns out now that the name couldn’t be more wrong. As of 1st of March I’m my own boss – working as an independent consultant and as a trainer for Programutvikling.
Balder is getting closer to a cross platform engine and now there is a crude implementation of WPF as well. It uses XNA for the actual rendering and you can use XAML within WPF on the desktop. Also worth mentioning is that you can use XNA directly on Windows without WPF as well inside Windows Forms.
For now there is no binary release, but pulling the source and compiling the Balder_Wpf.sln solution in the solutions folder you’ll get the binaries needed.
Summarizing the platforms supported fully or partially at this time:
Silverlight (Full support)
Windows Phone 7 (Close to full support)
Windows Forms (Partial support)
WPF (Partial support)
iOS (iPhone/iPad) (Compiles – no graphics yet)
Mono/OpenGL (Compiles – no graphics yet)
Much to my surprise I learned a couple of days ago that Balder has been nominated for something called the 2010 Niney Awards in the “Favorite Codeplex Project” category, a true honor I must add and thanks for the nomination.
The voting for the entries are community based, so don’t be afraid to cast your vote. Working with Balder as much as I’ve been doing the last 3-4 years now, I won’t be sad if you cast your vote in that general direction.. 🙂
You can swing over to here to cast your votes for the categories in the Niney Awards.
One of the challenges that has been for Balder and the Bifrost project has been to get a proper build environment up and running. This is something that now is in the works thanks to VSoft Technologies and their Finalbuilder. A software I’ve used with great success over the years.
The plan now is to set up a build server running in Microsofts Azure and produce nightly builds, but also work as a continuous integration server for the teams working on the projects.