Friday, October 16, 2009

People named Hamish Stirling
LogoThere are
or fewer people with the name Hamish Stirling in the U.S.A.

How many have your name?

Monday, July 13, 2009

ItunesControl and update

ITunesControl proved to be too buggy - stopped working all the time. Something about coming out of hibernation in Vista. When it worked it worked well. was blocked by my current client, so I stopped using it :(

Thursday, March 26, 2009

Developing a terrain mapper / editor for Ogre

Been a quite since I posted. I've been developing a terrain manager / editor for Ogre. It been a good learning experience - doing it in C++, not C#, so that part has been interesting.

Still at the early stages - I'm doing a lot of testing of the different method's within the Ogre library - the best approach so far has been to create sub-meshes of the terrain levels and render those. Each sub-mesh has a single material, so the trick is to batch up the vertices / faces as much as possable.

Each layer is super-imposed on top of the previous to create more complex landscapes.

I'm about to experiment with static objects instead of manual objects - not sure of the pros/cons yet though.

Friday, January 30, 2009

iTunes addons

Trying out iTunesControl and Last.FM

iTunesControl gives you hotkeys for iTunes - so you don't have to keep maximizing iTunes. It also downloads album art and shows the currently played info in a pop up.

Last.FM uploads your play list into their database, and also downloads all info about the artist, song. It will also suggest other artist. Much time wasting potential.

Some others I'll be trying:

Thursday, January 8, 2009

Converting an enum to a list

Needed to interate through an enum, so I had to convert it to a list. Used generics so that the code could be reused:

public List<keyvaluepair<k,>> BuildListFromEnum<k,>(Type type)
var list = new List<keyvaluepair<k,>>();
foreach (K key in Enum.GetValues(type))
V name = (V)Convert.ChangeType(Enum.GetName(type, key), typeof(V));
list.Add(new KeyValuePair((K)key, name));

return list;

This can be used like this:

var statuses = from status in statusList select new NameValue(status.Value, status.Key);

where NameValue looks like this:

public class NameValue
public N Name { get; set; }
public V Value { get; set; }
public NameValue() { }
public NameValue(N name, V value)
Name = name;
Value = value;