The last 2 weeks I’ve had to get myself up to speed with Office add-in development extremely rapidly, and to put it mildly, I’m not a fan. It is rather nice seeing your plugin/widget in action but there are a couple of items in the process that really were a nightmare to figure out.

To give you some background – I’ve been a pure web developer to date, and this is the first time I’ve had to deal with deploying code to a user’s machine. Ugly.

The goal was to develop a document-level plugin for word (as opposed to application-level plugins which are available for any document), a simple side-pane with some update-able notes and some fancy pants smart tags. If I were Microsoft I think I may have planned the whole process slightly differently.

Here’s a list of a couple of my gripes and how I solved them. If anyone happens to read this and has some better solutions please comment away. Its a bit incomplete at the moment, much like my actual addon so I’ll probably do a follow-up post explaining some concepts in more detail.

  • Documentation

    I hate the msdn. Its so bloated and messy that it ends up being almost un-usable. It also doesn’t really specify a skill level requirement/ experience level for what you’re looking at. I was looking for a “Word plugin development for dummies” type tutorial but no luck. For example the first page I began reading to find out about the process had the following snippet.”Customizations use deployment manifests and application manifests to identify and load the most current version of the customization assembly. The deployment manifest points to the current application manifest. The application manifest points to the customization assembly, and specifies the entry point class (or classes) to execute in the assembly.”

    I have to be honest and say I had to read that a good couple of times before I understood what the hell they were on about.

    After hours of reading and failed attempts I eventually got something pieced together. Then I found this lovely website with invaluable information in a noob friendly format.

  • Deployment

    I’ve always thought that developing sites that are compatible in 5 or 6 different browsers was a bit of a pain. Developing for the myriad of pc, OS and software configurations is a bloody nightmare.

    Prerequisites are the devil and security sucks.

    I can understand Office 2003 or Office 2007 being a prerequisite but there are a whole lot of other packages that are necessary to
    get the plugin working nicely. .NET framework is always a pain, some have it some don’t, and to deploy an unnecessary 30 odd mb to South African users with their piddly download speeds is just downright annoying. I spent way too long figuring out which version of the office primary interop asemblies and the visual studio tools for office runtimes but finally kludged something together that seemed to work on all the testers machines.

    Security is another issue and both the document and the assemblies that contain the plugin need to have full-trust on the clients machine. Check out the section on CodeIdol for deployment and security scenarios

  • Word elements and formatting

    I haven’t gotten too far yet with interacting with the document. I’ve played around with smart tags and inserting text here and there and it seems to be pretty straightforward. What’s not straightforward is when you’re working with an existing document. The document I was working with had over 100 hidden bookmarks (the user certainly didn’t create them manually so I don’t know where they came from), a confusing architecture of sections and subsections, headings in some locations and heading-like formatted text in other places, tables and images and hyperlinks. It all really adds up to a bit of a head-ache.

    I’d suggest starting with a nice clean document or using some macros to clean what someone else has thrown together. I had to create some macros for deleting the invisible bookmarks as manual deletion was a one-at-a-time process.

I’ve since moved on to some other sections of the project but as mentioned above, I’ll post some more as I investigate Office dev a little further in the coming months.

I’ve recently spent a little spare time into game development. A hobby of sorts..

I haven’t really spent time making games since I was in Grade 10 – tha’t was 10 years ago…scary. Back then the project was a fps (first-person shooter) Paintball game with (what I thought was) some epic AI. That was using some straight-up C++ and openGL. If I’m completely honest it was probably more a tweaked combination of a whole bunch of tutorials than a true reflection of my programming abilities.

Anyway, games have always been a passion of mine and I always like keeping up to date with what’s happening in the industry.

Unity 3d


A couple of weeks ago I stumbled across the Unity 3D engine ( Previously a mac-only dev environment, they’ve now extended their solution to provide a 1 click deployment to browsers, Windows desktop, Macs and the iPhone. Thats pretty darn impressive.

Besides the multi-platform deployment, the coolest feature is that you have a choice in what language you script in, one of them being Javascript. The engine dev GUI is very visually oriented and you basically add GameObjects to your world (anything from projectiles, to enemies, to crates etc) which can consist of combinations of 3d meshes, scripts, particle emitters, physics controllers, other gameobjects, etc. Its very simple to get up and running and they provide some great example projects.

You can grab a free 2 week trial and an indie licence for $199.00 which as far as professional engines go is very cheap. I was very impressed by the tool and the community and if I ever find some free time again I probably wouldn’t look anywhere else.



November 2009 saw Epic Games release a free, standalone version of their Unreal Engine 3 engine ( The idea is to give aspiring developers and professionals alike the chance to use Epic’s 3D engine technology for free.

I thought this was quite odd as I recalled the Silicon Knights lawsuit issue where Epic games were sued for not delivering on promises with the engine in question (See: Anyway, I thought it would be worth a look and downloaded the SDK, got it up and running, opened up the editor, tinkered with some example projects and promptly closed it again. Probably never to open it again.

Perhaps I’m just lazy or scared by the large number of buttons and panes shouting at me but it didn’t scream user-friendly to me.
Unity’s interface just feels a lot more comfortable and understandable. I’ve no doubt that the technology behind the Unreal engine outweighs Unity hands down, its not enough to convince a Game tinkerer from myself to switch over. The lack of a price tag is also a big pull but it feels like it might not be quite enough to sway the Unity community to drop and run.

I definitely haven’t given it enough of a chance for a fair comparison (I don’t even know what language scripts or entity actions are in. I couldn’t find any kind of code editor.) and maybe If I get a bit of time I’ll take a deeper look.

If anyone is reading this with some experience with either engine or any other, feel free enlighten me with said engines awesomeness.