Main contents
Archive for May 2007
May 31st, 2007
Also just started on “Getting To Maybe – How the World is Changed“, which talks about engendering social change from the point of view of complexity theory. Liking it so far, it’s written in an almost poetic style, but one that remains very readable. Talks about the difference between simple problems (e.g. ‘bake a cake’), complicated problems (e.g. ’send a rocket to the moon’) and complex problems (e.g. ‘raise a child’). There is a fundamental difference between the first two and the last one, in that the first two basically involve following a set of pre-defined steps to reach a desired outcome. However, the last involves a feedback system – each child is a unique individual, existing in a complex web of interdependent relationships, and cannot be treated like a deterministic system.
There are some common threads running through all my reading material right now:
- The modern/postmodern divide.
- Networks versus Hierarchies.
- Emergent behaviour.
- Complex systems.
I’m looking forward to seeing where all this goes.
Posted in books | No Comments »
May 31st, 2007

I’m around halfway through Free Agent Nation – The Future of Working For Yourself. Very readable, and pretty informative. Pink takes a look at the rapidly eroding distinction between corporation and employee, and the transition from a world dominated by large companies providing cradle-to-grave career paths to far more complex, dynamic and networked systems composed of a large number of interacting free agents. A very timely book, given my current situation. Six months ago I was a treasury analyst for a major bank. (Without a doubt the most boring, tedious work I’ve ever done.) Now I’d find it hard to describe myself in a single sentence; I write software, light photo shoots, teach Latin, consult on systems development, do graphic design, and read lots of books! So I definitely see myself in the world that Pink is describing, and its both exciting and reassuring to know that there are a lot of people out there that are in the process of making this transition.
One of the most fundamental points Pink makes is that in the past, security came from an institution – your employer or the goverment. In the future, security will come from diversification, just as it does in the stock market. So although according to conventional wisdom it seems strange to trade a job with a large company, reasonable benefits etc. for a loose set of diverse contracts, in many ways it’s actually a more risk-averse set up. In the current world economy, I’m becoming convinced that the key things to possess are a broad talent set, a diverse client base, and a rich and deep network of connections.
Posted in books, work | No Comments »
May 31st, 2007
Just finished ‘Emergence – the Connected Lives of Ants, Brains, Cities and Software’, by Steven Johnson. Nothing earth-shatteringly new, but a fairly enjoyable trip through some familiar themes – the emergence of cohesive group behaviour in Ant colonies, the ability that cities have to develop into reasonably efficient, highly complex systems without central planning, a discussion of the strength of user-moderated communities such as Slashdot, and some stuff about adaptive software – code that figures out for itself solutions to a problem, rather than following a linear set of logic instructions.
Not particularly in-depth, and chapters about the Web were weaker than the others, but a good introductory read.
Posted in books | No Comments »
May 30th, 2007
Languages I code in:
Continuously for the last 8 years
Regularly for several years:
- Java
- Haskell
- Javascript
- Visual Basic
- FoxPro (yuck!)
Operating Systems I use regularly
- Windows (Since NT3.1/ Windows 95)
- Linux (including Mandrake, Ubuntu, Red Hat)
- FreeBSD (isn’t ports nice?)
- Solaris
- Mac OSX (can’t run a studio without it!)
- Other interesting combinations like Cygwin on Windows, Parallels on Mac, VirtualPC etc.
- I typically work in heterogeneous environments with multiple different systems having to work together.
Database systems I’ve used
- MS SQL Server
- MySQL
- Postgresql
- Oracle
- Access
- FoxPro
- sqlite
Source Control Systems I know
- Bitkeeper
- Perforce
- Subversion
- Microsoft Visual Source Safe (hardly counts, I know)
- darcs
Types of development I do
- Web based AJAX applications, using TurboGears or ModPython
- Win32 applications, using MFC, WTL, or the Win32 api.
- Low-level C++ libraries: eg. TCP/IP communications and medical imaging.
- Cross platform GUIs using toolkits like GTK.
- Anything to do with databases, especially fun legacy environments with multiple disparate data sources that all need glued together!
- Medical Imaging – I’ve developed a powerful C++ and Python implementation of the DICOM standard that’s being used at a number of institutions, and I maintain the associated support website : http://dicomlib.swri.ca
- Creating systems and workflow to efficiently deliver new services.
- Analysing, simplifying and improving legacy systems.
People I work for
- Major Banks
- Oil companies
- Non-profits
- Research hospitals
- Consulting firms
- Friends
- Software development companies
- Event managers
- Photographers
- Anyone else…
What is my philosophy of systems development?
“Il semble que la perfection soit atteinte non quand il n’y a plus rien à ajouter, mais quand il n’y a plus rien à retrancher.”
(Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.)
Antoine de Saint-Exupéry
Posted in Programming, c++, python, work | No Comments »
May 30th, 2007
So, in lieu of Latin classes this morning, Kaitlyn and I built a truss bridge, a suspension bridge, and then took a little drive round the neighborhood to find, identify and photograph various local bridges. I think I’m enjoying this lifestyle – beats sitting in a cubicle all day.
Posted in homeschooling | No Comments »
May 30th, 2007
Created a new site for a client on WebFaction, using TurboGears. A few small bumps here and there, but mostly a smooth and fairly painless process. Went from not having a site to having a fully functional TurboGears site with postgres backend, subversion and trac implementation, in about a day. (Including homeschooling all morning and rigging a photoshoot in the evening!)
The site doesn’t do a whole lot yet, but I have a hunch that setting up the infrastructure will have been a significant part of the job. I think that WebFaction could be a very useful resource – they can get you up and running with a site complete with Rails/TurboGears/Django/Framework of your choice quite efficiently.
Posted in Programming, python, work | No Comments »
May 26th, 2007
I’m currently reading Free Agent Nation, by Daniel Pink. It’s nice to know that there are other people out there who wouldn’t find our current lifestyle weird. I happen to think that we’re merely at the forefront of a transition from a 20th century working style to a 21st century one, and one that has far more in common with historical modes of economic activity.
The 9-5, single employer, job-for-life model may have made sense during the later stages of the industrial revolution, when large corporations had stable business models, and lifespans measured in decades, and economies of scale were all-important. However, all of these conditions are currently being overthrown.
Whilst my father graduated from University, and started working for the same employer that he would eventually retire from, I have never worked for the same employer for more than 2 years. Now I’ve moved even further into the new way of working – I have various clients that I provide services for, rather than a single employer.
Pink makes the very good point that while previous generations looked to their employers for security, these days in the job market as in any other, diversification is the key to risk management. Having multiple clients and a wide talent set is what is going to count.
So now the biggest problem facing me is answering the question ‘what do you do?’
Posted in work | No Comments »
May 19th, 2007
Made my first ever call to a call-in radio show this afternoon! Drew Marshall, who is always worth a listen, had some six-day creationist on his show, and as usual I was staggered by the general unthinking attitude of the general Christian public. I still find it hard to believe that there are so many Christians around that seem comfortable going through all the intellectual contortions necessary to shoe-horn everything we know about pre-history into a specific presentation of the Genesis account. Anyways, I phoned up and pointed out that there certainly were a few Christians around who found a universe in the age range of, say, 10-20 billion years far more plausible and in agreement with observable evidence.
Needless to say, the guest speaker wasn’t particularly inclined to agree with me, but I did also get to make a request that the creationists stop making their understanding of origins a pre-condition for Christian faith. Drew seemed to appreciate my call, which was nice.
Posted in radio | No Comments »
May 18th, 2007
So, getting somewhere with TurboGears, although I’ve been banging my head a little against SQLObject. While it’s indubitably a nice tool if you’re looking for an object persistence mechanism, it can get a bit frustrating if you actually want to treat your relational database like a relational database. There seem to be a lot of tools available that promise to shield you from dealing with SQL, but generally speaking I don’t want to be shielded. The strength of the relational model is not that you can rapidly access a big list of data elements, but that you can slice, join and view this data in a huge variety of ways.
Specifically I’ve been trying to implement a many-to-many relation where the intermediate table has attributes, and then do a join across this table filtered by these attributes. Trivial in SQL, and frustratingly difficult in SQLObject. In fact I’ve shelved it for now while I concentrate on other issues.
Posted in Programming, databases | No Comments »
May 16th, 2007
These last few days I’ve been experimenting with TurboGears, the Python answer to Ruby on Rails. This has been one of those situations where you write something yourself for the learning experience, and then throw it away and use someone else’s tool. TurboGears comprise of a full stack of tools for writing interactive web applications, including:
- database layer
- templating language
- javascript library
- url-python mapping system.
Now in the past, I’ve probably implemented most of the above myself, or pulled together existing systems such as Cheetah, prototype, mod_python with my own rudimentary url-to-python function mapping system. But, as I said, having done it once to get my head around the concepts, it’s much nicer to then take someone’s off-the-shelf system and get on with the job. I like the TurboGears philosophy, which is about taking existing toolkits and making them play nicely together, rather than re-invent the wheel. Apparently it’s also easy to swap in other components, for example replacing the default templating language (kid) with another, such as Cheetah.
Hopefully it will become another useful instrument in my ever-growing toolbox.
Posted in python | No Comments »