Using KnockoutJS with SignalR in ASP.NET MVC

KnockoutJS is a MVVM implementation for JavaScript written by Steve Sanderson, in my opinion the author of the best ASP.NET MVC textbooks available. Simply put it lets you bind a JavaScript object model to your HTML UI using a Read more

A MongoDB Tutorial using C# and ASP.NET MVC

In this post I'm going to create a simple ASP.NET MVC website for a simple blog that uses MongoDB and the offical 10gen C# driver. MongoDB is no NOSQL database that stores information as Binary JSON (BSON) in documents. I Read more

Linq To SQL Tutorial

Check out some of my other Linq to SQL posts: EntityBase Inheritance Modifiers with SQLMetal Linq to SQL with WCF Services Linq to SQL Framework (Repository/Business wrapper) ObjectDataSource binding with server side paging and sorting Load Options Generic Framework using reflection This is a basic tutorial for Read more

A new look!

Posted on by Joe in Personal | Leave a comment

Well I’ve had my blog for nearly 4 years and theme I was running was a bit behind the times. I spent some time today updating to a new responsive theme which I think looks much better!

Looking for .NET Developers at Community Engine on the Northern Beaches in Sydney

Posted on by Joe in Personal | 6 Comments

I haven’t blogged for a while as I’ve been really busy in my new role as Platform Lead at Community Engine where we are currently looking to expand our team.

We’re doing some awesome stuff here to create a cutting edge product platform that will host our future client websites.  The team is probably the best technically that I’ve worked with, and our implementation of SCRUM is the best I’ve seen. We’re also using all the latest and greatest technologies from Microsoft so it’s a great opportunity to get these skills and get them on your CV!

The product platform is a multi-tenant web application hosted in the cloud with Amazon EC2 written with ASP.NET MVC and .NET 4 and Entity Framework 4.  We’re also making use of MongoDB which is used by the likes of FourSquare and SourceForge, along with Solr for searching and distributed caching with Redis. Who wouldn’t want to work with this technology stack?

If you want to get involved you can apply through our careers page. Make sure you mention my blog when you do. We are also interested in hearing from candidates overseas.

We are looking for a Technical Lead and a number of mid/senior developers, as well as many other roles:

WordPress automatic upgrade timeout

Posted on by Joe in Personal | Leave a comment

I was just trying to upgrade my wordpress blog to version 3 using the automatic upgrade but it kept stopping after 30 seconds while unpacking the update. I checked on my server and it hadn’t completed the unpacking.  I loaded up the PHP.ini file and after a look around found the max_execution_time setting which was set to 30 seconds. I increased this and the update worked fine.

Dell Warranty Ripoff

Posted on by Joe in Personal | 2 Comments

About 15 months ago I bought a new Dell Studio 17; with the added options is cost me around $3,500. I thought I paid extra for an additional 12 month warranty on top of the standard 12 months but when I rang recently to get a faulty hard drive replaced it turned out my warranty had expired.

The guy on the phone went through to sales to get me a quote for a new 12 month warranty. He came back with a “discounted” price of $700, with some sales spiel about how with this warranty my “hard drive problem would definately be rectified”. When I told him that was ridiculous and that I could fix it myself he backtracked and said they could get the price down as that cost included all sorts of other crap I didn’t ask for… not so much Mr Dell.

I ended up buying a new 500GB 7,200rpm Seagate drive for around $100, swapping it over myself in about 5 minutes, then used Acronis Home to image my failing drive onto the new one to avoid having to reinstall everything (which I doubt Dell would have done).

It irritates me that Dell try this kind of BS as people who don’t know better would just pay. I guess the fact that I also bought a Dell Netbook just a couple of months ago doesn’t count for anything either.

Free training/labs on MVC, ASP.NET, Entity Framework, IIS in Sydney

Posted on by Joe in Personal | Leave a comment

Web Camps is free so there is no excuse not to go…


Posted on by Joe in Personal | Leave a comment

I decided to start a twitter account so if you feel like it you can follow me

Desktop wallpaper across dual monitors

Posted on by Joe in Personal | Leave a comment

Yesterday I stitched together a few images of Sydney Harbour that I took on my way to work:

Sydney Harbour

I wanted to make it a wallpaper over both of my monitors. When playing around with the settings I found that the only option that seemed to do anything over both monitors was TILE.  I resized the image so the height of the image matched the resolution of my monitors, then set it as a tiled wallpaper, which due to the size just showed the image once over both monitors.

Move blog to other hosting provider

Posted on by Joe in Personal | Leave a comment

Yesterday I moved my blog from to my own hosting provider giving me greater control over my blog. This was quite an easy process but thought I would document the steps I took here incase it helps anyone else.

Firstly I installed wordpress on my new host. I then used the Import and Export options in Tools to import all my posts, categories, images etc into my new blog. I then opened up the SQL Admin tool provided by my host and ran some update queries to update any links and image references to use my own domain instead of the domain.

At this point the blog was running but was using the default theme so I downloaded the theme I was using on and installed it.

Now everything looked okay apart from my source code samples. I tried quite a few plugins that provide source code markup but I really wanted to find the one used as I liked the format it used, and I didn’t want to have to replace all my source code tags to use those of another plugin. After a bit of hunting around I found SyntaxHighlighter Evolved, which looks to be an updated version of the plugin uses.  After installing it all my source code example worked without having to update the tags, whoop!

Something else I liked on was the stats plugin they have, which uses Open Flash Chart written by my brother-in-law.  Doing a quick Google search brought up the Stats plugin.  It requires a API key but as I’m moving from that’s not a problem.  When activating the plugin it asks for the API key which can be found on the account page of  It then asks you to confirm you want to link the new blog to the account.

Now my blog looks and works pretty much like my one, but they are two separate blogs which I don’t want.  What I really wanted to be able to do was forward all the posts on the old blog to the new blog as I didn’t want google search results going through the old one.  I found this post which has a handy tutorial on how this can be done.  It requires switching your name servers to the ones and adding your domain via the admin panel, costing you USD10.  Once that is done you can set your new domain to be the primary domain for the blog, then switch the name servers back and voila, the old blog redirects to the new one.

All in all this was quite painless, I’m now on the hunt for a decent theme!

Open Flash Chart

Posted on by Joe in Personal | Leave a comment

Open flash chart is on open source project written by my brother-in-law.  It is actually used by WordPress to show the Stats charts.

WPF Community Workshop – Sydney

Posted on by Joe in Personal | Leave a comment

Last weekend (23rd May) I attended the WPF Community Workshop in Sydney put on by Microsoft and run by a colleague of mine, Deepak Kapoor.

I had never looked into WPF as I am predominantly an ASP.NET developer although I did use Windows Forms for several years. I thought this would be a good opportunity to see what WPF was all about and I was impressed.

The workshop featured several labs which quickly taught the basics of WPF and XAML and went on to data binding.

We also looked at Expression Blendwhich is written with WPF. I really liked how easy it was to change the appearance of the standard controls and make them look however you want.

Will definitely be looking further into WPF in the near future…