Blog

2017

Try HLSL online

1 minute read

Introducing a new website that lets you try out the old and new HLSL compilers online.

2016

2015

Introducing HLSL Tools for Visual Studio

6 minute read

TL/DR HLSL Tools is a Visual Studio extension - for VS2013 and VS2015, Community Edition upwards - that provides enhanced support for editing High Level Sha...

Gemini v0.6 released

2 minute read

After 141 commits from 6 contributors over the last 16 months, I am very pleased to announce that Gemini v0.6 has been released. If you haven’t heard of Gem...

Cross-platform C# and F# in 2015

4 minute read

C# and (lest we forget) F# are great choices for cross-platform development. Long gone are the days when .NET meant Windows-only - and in reality those days ...

Parsing Direct3D shader bytecode

21 minute read

TL/DR In this post, I will discuss the Direct3D shader bytecode format, and how to parse it without using the Direct3D API. This is basically a write-up of ...

Cascaded shadow maps sample for MonoGame

4 minute read

TL/DR The source code for this sample is on GitHub, but see the note in the next paragraph. Cascaded shadow maps sample for MonoGame - source code Bec...

2014

The Matrix Inverted

11 minute read

No one can be told what matrix inversion is. You have to see it for yourself. Introduction The code for this blog post can be found in this Gist. ...

2013

2012

NDepend 4 review

4 minute read

NDepend is an analysis tool for .NET code, that provides many ways of generating and viewing code metrics. Here I review version 4.

2011

2010

StitchUp in action

1 minute read

After launching an open source project, it’s always gratifying to see it being used by other people. So far, I know about two instances where StitchUp has be...

Drawing an XNA Model bounding box

4 minute read

The source code for a working version is here. If you’re making a level editor, or perhaps a model viewer, it can sometimes be useful to see a visualisa...

XBuilder v0.2 released

4 minute read

Cut to the chase… XBuilder is an extension for Visual Studio 2010 which lets you preview your XNA assets (models, effects and textures) right inside Visual ...

Content Aware Image Resizing for ASP.NET

1 minute read

Content Aware Image Resizing (also known as seam carving) is an algorithm, developed by Shai Avidan, which resizes an image by removing seams (paths of least...

XBuilder updates - Show normals

less than 1 minute read

Just a little update today - I’ve added the ability to show normals for debugging purposes (or a low-tech fur rendering technique?). The colour of the normal...

StitchUp - Support for multiple techniques

1 minute read

I have just pushed some code and added a new download to StitchUp. This new version adds support for multiple techniques inside .stitchedeffect files. In ca...

A sneak preview of “XNA Inspector”

less than 1 minute read

This is the same project I mentioned in my last post. It’s quite fun to work on so I’ve done a little bit more to it since then. I’m going to call it “XNA I...

XNA Model Viewer inside Visual Studio 2010

less than 1 minute read

This is a work-in-progress - I just had the idea this morning to embed an XNA model viewer in a Visual Studio tool window. I had previously been working on a...

Some StitchUp updates

4 minute read

The short version There is a new build of StitchUp available here. It includes these new features: The parser supports initial values for parameters. ...

Terrain GeoMipMapping on Windows Phone 7

less than 1 minute read

Update - 2010-11-16 17:10 Lawrence Hodson has reported that this works on an HTC Trophy (pic included). As I promised in my last post, I have made the neces...

NuGet package now available for DotLiquid

less than 1 minute read

To make it a bit easier to get started with DotLiquid, I have created a NuGet package for it. This is now in the official NuGet package repository. Just sear...

My default stack

1 minute read

Before you write this off as one of those ego posts that… no, it’s pretty much an ego post. I offer it in the chance that may be useful to somebody somewhere...

Creating thumbnails of a PDF in ASP.NET

1 minute read

Recently I pushed a new feature to my fork of DynamicImage. DynamicImage Since you might not have heard of DynamicImage before, here’s a brief introduction...

Rolling Your Own Blog Engine: Part 1

less than 1 minute read

Before I start a religious discussion about the whys and wherefores of whether you should build your own blog engine, I’d like to say that that is not what I...

Farewell, 0x1D

1 minute read

This Saturday, I will turn 30. When I was 20, 30 seemed like a big deal. As I’ve got closer to it, I’ve become more of the opinion that life is a series of r...

2008

XNA 3.0 Hybrid Ray Tracer

1 minute read

XNA Hybrid Tracer Source Code (updated to XNA 4.0) Last week while going through my personal software graveyard, I “dug up” a ray tracer I started a few...

ASP.NET HTML Control Mapping

1 minute read

Ever wondered how ASP.NET takes an HTML tag, such as <head>, and maps it to an System.Web.UI.HtmlControls.HtmlHead object? Well, me neither, till today...

2007

A few things I wonder about

1 minute read

Continuing the line of thought from a previous blog post, here’s some more things I wonder about, complete with answers that I have helpfully researched for ...

Milky Way + Andromedia = Milkomeda

less than 1 minute read

Astronomers have calculated that, in five billion years, the Milky Way and our closest neighbouring galaxy, Andromeda, will violently collide, creating a new...

Depressible buttons on drink carton lids

1 minute read

If you’re anything like me (and God help you if you are), you’ll have wondered why those little buttons on the plastic lids of soft drink cartons, such as yo...

Reversible quotations

1 minute read

Walking around the Imperial War Museum today, I saw this quote: John F. Kennedy: Mankind must put an end to war, or war will put an end to mankind. I r...

Overriding the meaning of ~ in ASP.NET

less than 1 minute read

Random techie discovery… You can override the meaning of the tilde (~) in paths in ASP.NET. I often use the ~ so that it doesn’t matter whether my web appli...

Clever shit

1 minute read

Coming back home on the tube tonight, I met a man who tried to do the human race a favour by removing himself from the gene pool, using alcohol as his tool o...

Climate science

less than 1 minute read

This New Scientist article indicates that some “fudging” of climate science may have been systematically occurring over the last 10 years. The guy who seems ...

Toilet paper folder and dispenser

less than 1 minute read

Eventually, this had to be invented by somebody: an “automatic”, although by the looks of it not-quite-working, toilet paper folder and dispenser. Edit: Whi...

Urinal etiquette

3 minute read

Relatively speaking, there has been very little written on the subject of urinals. This is strange, as urinals are very much a part of the life of the modern...

The not-so-beautiful game

less than 1 minute read

This is from a leaflet I was handed by one of those people on the street who you desperately try to avoid - in this case, I tried the “buffer person” and “gr...

Sacrificial chips

1 minute read

When eating a bowl of chips at a pub, or a packet of fries at a fast-food outlet, I like to empty 2 or 3 ketchup sachets onto a limited area of chippage. Nor...

Free will

3 minute read

There is a lot of discussion going on at the moment about free will; so I feel compelled (geddit?) to post on the subject myself. Some interesting reading, i...

Happiness

1 minute read

After a discussion I had tonight with a friend, over [quite a few] drinks, regarding happiness, I got to thinking, how do you really define a concept as vagu...

Thief Steals Urinal

1 minute read

Just when you thought all the innovative thiefs were moving into the high-tech worlds of identity and digital theft, somebody comes along to remind you that ...

New Year’s Resolutions

1 minute read

My new year’s resolution: 1280 x 1024. Sorry. Although I agree with those who say that making resolutions at the beginning of a new year is a pointless act...

2006

Our car game now has a car…

less than 1 minute read

Thanks to Jason’s work, we now have a vehicle in Torq2. It may turn out to just be a placeholder until we can find something better, but whichever way you lo...

Vista - Failed to install ISKernel files

less than 1 minute read

I’ve hit my first real snag with Vista - while trying to install Macromedia Contribute 3, I got this error: “1: Failed to install ISkernel files. Make sure y...

Things I wonder about

1 minute read

Some things I’m thinking about today: What would it be like to “hear” colour instead of see it? I read something recently that suggested that bats m...

Vista: Clear, Connected, Clumsy

1 minute read

I’ve bitten the bullet and installed Windows Vista. I wasn’t expecting much, after the fiasco of its lengthy development cycle, but I’ve been pleasantly surp...

12 Days of Christmas

1 minute read

Lest I be accused of not sharing some Christmas cheer, I thought I’d make up for my previous grumpy posts by singing “The 12 Days of Christmas” to all you lo...

Why I Am Not A Christian

6 minute read

I’m finally getting round to reading the text of a lecture by Bertrand Russell, titled “Why I Am Not A Christian.” I was sent the link a while ago by a frien...

Zooomr

less than 1 minute read

This is a slightly pointless post, but apparently it’s going to allow me to sign up for a free Zooomr Pro account.

Packing

less than 1 minute read

This is a little like those painful moments when a relative gets back from a long holiday, and you know you’re in for a spell of sitting on the sofa listenin...

XMLSpy irritations

less than 1 minute read

For a project at work, I need to automate Altova XMLSpy using its API. I want to “flatten” an XSD, which includes other XSDs, into a single XSD that includes...

Progress on the coloured squares

less than 1 minute read

After repetitively banging my head against a wall (and then having a frustrating time with game programming), I’m finally starting to make some progress with...

Christmas cheer

1 minute read

Is it just me who finds this story amusing? 10,000 Asda Christmas trees are being recalled due to a potentially lethal electrical problem. The spokesman said...

When is a choice not a choice?

less than 1 minute read

In talking to a good friend of mine last night, who was raised in a similar environment to me, we reached the (fairly obvious) conclusion that you can’t make...

Flaming Lips

less than 1 minute read

Another post, another gig! This time it was the Flaming Lips - and they seemingly spared no expense to put on a great show. Psychedelic lighting, thousands...

Coloured squares

less than 1 minute read

Woo, coloured squares! I’m changing direction slightly for Torq2. I’m starting from scratch, which if you know me, you’ll know is something I like to do quit...

Goo Goo Dolls

less than 1 minute read

Just come back from the Goo Goo Dolls gig at the Shepherd’s Bush Empire. Man do they rock! I’ve been to some good gigs before by some great bands, but I th...

Little preview of my coast to coast video

less than 1 minute read

This is mainly here for my own benefit - it’s not from the actual edit, this is more a proof of concept of the slow motion. What do you think? The version he...

Spiders

1 minute read

I noticed a spider on my bathroom wall last night (not a particularly pretty one, I think you’ll agree). It didn’t move at all, and I realised I don’t actu...

100000 miles - woo!

less than 1 minute read

My little Peugeot 106 has now travelled 100000 miles since it was manufactured (or since the odometer got reset by a dodgy dealer, but I don’t like to be acc...

Writing your own OS with Visual Studio 2005

less than 1 minute read

Jason Olson has just posted an interesting article about writing your own OS with Visual Studio 2005. When I have a spare year or two, I might have a try!

DVD Taxonomy

1 minute read

So I’ve just united the DVDs I previously had in boxes, with the DVDs I had out on shelves, to make my collection whole again. This always results in me re-...

Desert Island Discs

less than 1 minute read

Apparently Desert Island Discs is the longest running music programme in the history of radio, having been running since 1942. Despite not yet being a celebr...

The size of space

2 minute read

I’m reading Bill Bryson’s A Short History of Nearly Everything. It’s been on my bookshelf for a while but I’ve finally gotten around to it. I’ve just read th...

Customising the AxWebBrowser

6 minute read

I recently needed to use AxWebBrowser component to do some automation of web page form filling. I wanted to capture Javascript alert boxes, grab the text fro...

iLyrics

less than 1 minute read

So, it turns out the iTunes COM API is incredibly simple to use - even with C#. It’s only taken me half an hour to write a little app that grabs the selected...

Getting setup with iTunes

2 minute read

I’m on the verge of buying a 60gb iPod Video. This immediately raises a problem, since I have all my music (around 400 CDs) in WMA format, as I’ve always bee...

Christianity - a new religion?

2 minute read

First some facts about Christianity: There are roughly 33,830 Christian denominations There are an estimated 2.1 billion adherents in the world, making...

French holiday

less than 1 minute read

I have just spent a week with my flatmate, Zoe, and her family in France. Zoe’s parents own a farm in Alsace, which they are gradually renovating. One of the...

This ungodly blog

less than 1 minute read

Have you ever heard the word ungodly used as an adjective for anything other than “hour”? According to dictionary.com, the definition of ungodly is: Not ...

Renamed brands

less than 1 minute read

I got to thinking today, if I still had an original, wrapped Marathon bar, from the days before the Snickers fiasco, would I buy be able to sell it on Ebay f...

Starting from scratch

1 minute read

As I was leaving my flat the other morning to go to work, I thought I smelt burning from the flat below mine. This got me thinking, what if the burning smell...

Primitive Professions

less than 1 minute read

Seeing as we seem to be rapidly destroying our world through removing our ozone layer and causing global warming, it got me thinking - if a scenario such as ...

Coast to Coast

less than 1 minute read

A couple of weeks ago, I spent two weeks walking from the west coast of England to the east coast. This was the most exhilerating, most beautiful, most chall...

2005

Batman has Begun

less than 1 minute read

I went to see Batman Begins last night. What can I say - but wow! It’s as pure a piece of entertainment as I’ve ever seen. Come to think of it, I’m not sure...

Torq2

less than 1 minute read

My final year project for my computer science degree was writing a 3D car simulatar in both C# and C++, in order to compare the performance. While I was r...

And we begin…

less than 1 minute read

After previous abortive attempts at getting a regular blog going (including a protracted design and build of my own personal blogging software, which I didn’...