My blog has moved! Redirecting…

You should be automatically redirected. If not, visit and update your bookmarks.

The Quixotic Engineer

Saturday, February 2, 2008

The Quixotic Engineer is Moving!

Blogger's been good to me for the last 7 months, but I recently got it into my head that owning my own domain would be a good investment. Over the next few days/weeks, I'll be moving this whole operation over to a Wordpress blog at, Gangles being a handle I've used for years (and it seemed more memorable than

I used NetFirms as a domain registrar, hence the current splash page, but will be using A Small Orange as a host at Tim's recommendation. I'll keep you guys updated here as the site progresses, here's hoping it all goes smoothly.

I'm also looking for good Wordpress plug-ins, so please drop me a comment with your suggestions.


Monday, January 28, 2008

My Latest Project

I came out of CUSEC last week filled to the brim with geeky creative energy and the desire to get my hands dirty with something new. While I usually have a few ongoing projects at any given time, my latest one, inspired by this fellow, has been use a nearly decade old unused computer to host a website. I'm curious to see how viably an old machine would work as a server for a low-traffic website, and how quickly it would load a Wordpress blog. While paying for a host is much more reliable and relatively inexpensive, I figured this would be a good chance to learn about Apache, PHP, Linux and the web in general.

My first step was to sort through the kipple that is my storage closet and find the old machine. Purchased in 1999, it has a 500 MHz Pentium III processor, 256 MB RAM and a 30 GB hard drive. I found a spot large enough to hook it up to the behemoth CRT monitor that's as deep as it is wide, and gave it a trial boot (I couldn't remember exactly why I had retired this old warhorse.) A corrupt Windows 98 sputtered at me, so I quickly went ahead and reformatted from a Linux CD.

I decided that Ubuntu Desktop edition would be my distro of choice for a number of reasons. While I would get better performance out of a server edition, as a Linux newbie I felt more comfortable having a GUI to fall back on when the mysteries of the command line eluded me. Secondly, one of my best friends recently moved her main computer over to Ubuntu, so hopefully she won't mind when I harass her with calls for help at all hours (thanks Malini!)

My next step was to install and configure Apache, PHP and MySQL, all necessary to set up Wordpress. While I've worked with Linux at school, this was my first time playing around with it. Needless to say I was pleasantly surprised when I managed to complete the installations with three commands:

sudo aptitude install apache2
sudo aptitude install php5 libapache2-mod-php5
sudo apt-get install mysql-server-5.0

I configured these programs with minimal difficulty, then moved on to the Wordpress installation. It's here, however, that I've run into a bit of a snag.

Step six in the Wordpress "Famous 5-Minute Install" is "Run the WordPress installation script by accessing wp-admin/install.php in your favorite web browser." The problem I'm having is that Firefox does not want to run PHP scripts. When I point my browser at install.php, it just asks me if I want to save the file to disk. This thread in the Ubuntu forums helped someone with a similar problem by suggesting that php5.conf might not be in /etc/apache2/mods-enabled/, but this is not the case on my machine. You can see my unanswered question sitting orphaned and alone at the bottom of the thread.

If you happen to be a Linux wizard (lizard?) and have a theory or two about how I can fix this frustrating problem, please drop me either a comment or an e-mail!

Labels: , ,

Sunday, January 20, 2008

CUSEC 2008

CUSEC 2008

Yesterday marked the end of CUSEC 2008, a three day software engineering conference for Canadian university students. While the conference has been going annually since 2002, this was my first year attending. I had initially planned to be quasi-live blogging the whole thing, but I hadn't realized how busy the three days were going to be. Instead, here's a quick recap of some of the terrific people I heard from at CUSEC.

  • Day One
    • Tim Bray - Hard Problems in Network Computing
      One of the co-editors of XML, he gave a great talk about some of the difficult problems that programmers are having little success in solving. I don't remember the exact words he used (relying on my brain was a bad idea, I plan to take better notes next year), but the main problems were communication between different programming languages and taking advantage of parallel processing.
    • Dr. Marsha Chechik - Guarding Against Software Accidents
    • Zed Shaw - The ACL is Dead
      Author of the Mongrel web server and notorious blogger, he talked about staying creative in the face of bureaucracy and corporate greed. The part of his keynote that really struck a chord with me was that "managers want all of your creativity, but trust none of your judgement." I had a chance to talk to Zed later at Brutopia and a little throughout the conference, he was a really cool guy with a lot to say. Here's hoping he comes again next year.
    • Bruce Miner - Taking Risk
  • Day Two
    • Sylvain Carle - We Didn't Start The Fire
      A self-described "venture technologist", he talked about why we should consider founding or working for startup companies.
    • Michel Martin - The Evolution of Large Scale Business Software
    • Dr. Peter Grogono - Living with Concurrency
      This talk was a bit over my head, but it really made me appreciate what a problem concurrency is and will be in the coming years. Dr. Grogono is one of the most loved computer science teachers at Concordia, and after hearing him speak I can understand why.
    • Dr. Jeffrey Ullman - When Theory Matters
      Prolific textbook writer and Ph.D. advisor of Sergey Brin (co-founder of Google), Dr. Ullman spoke about the theory of how Google's PageRank system works, as well as variations such as minhashing and locality-sensitive hashing.
    • Jeff Bailey (Google Corporate Speaker) - Hacking on Open Source After Graduation
      He talked about the history of OSS and why major companies like Google and IBM invest millions to develop it. I had always been interested in contributing to an open source project, but after hearing his talk I feel compelled to begin doing so within the next few months.
  • Day Three
    • Zed Shaw - Factor Tutorial
    • Dr. Jeremy Cooperstock - Music & Games: How Fun Applications Stimulate Core Technologies
      I really enjoyed this presentation, he began by talking about how the video game industry has been accelerating technological progress, which included some of his own research into the "next step" of virtual reality. The meat of his talk, however, was about his research into ways of overcoming network latency to allow people in separate parts of the world to play music and talk together naturally.
    • Jon Udell - Hacking the Noosphere
      Another talk that was a bit over my head, he spoke about keeping the focus of Web 2.0 and information sciences on people, and how we can gather information in a human-centric way.
    • Jeff Atwood - Is Writing More Important than Programming?
      As a big fan of Coding Horror, I had been looking forward to this talk from the beginning. In his keynote, he argued that writing for people was in many ways more important than writing for machines, and that it is crucial to "convince other people that your code, in a world positively overflowing with free code, is worth looking at in the first place." His talk provided a counterpoint to some of the more technical presentations, and was a fantastic way to close the conference. Better yet, his talk inspired my friend Malini to pick up her abandoned blog again!

I can't believe how much I learned in three days. Hearing from passionate people and being in a community full of fellow coding geeks has really inspired me to be creative, take chances and really explore the world of software engineering. I'll definitely be attending CUSEC 2009!


Wednesday, January 16, 2008

Album Cover Meme

I have no idea where this meme came from originally, but I picked it up from Bill Harris at Dubious Quality. In his words:

  1. The first article title on the Wikipedia Random Articles page is the name of your band.
  2. The last four words of the very last quotation on the Random Quotations page is the title of your album.
  3. The third picture in Flickr's Interesting Photos From The Last 7 Days is your album cover.

Ten minutes of poorly done MS Paint later, and I ended up with this:

Album Cover Meme

The Pawn is an interactive fiction game from 1986, the quote is Lydon Johnson's address to the nation in 1963 ("Yesterday is not ours to recover, but tomorrow is ours to win or to lose") and the Abbey Road-ish picture is by ~KIM~. The "to" seems really out of place, ashame it wasn't just "Win or Lose".

Head over to Dubious Quality for some album covers made by people with actual picture editing talent.

Labels: ,

Monday, January 14, 2008

Battlestar Galactica

I don't watch much television, but when I do like a show I follow it religiously. My favorite series of all time was Firefly, a peerless science fiction series that was tragically cancelled after 14 episodes. I plan to elaborate on my love for that particular show someday, but for now let's just say that there's been a hole in my sci-fi loving heart since 2002. My enjoyment of the new Dr. Who is a poor substitute, with its lack of an overarching narrative and generally poorly developed characters.

Battlestar Galactica

When my friend's father, Dave, told me that he was enjoying the re-imagined Battlestar Galactica series, I was sceptical at first. Dave is a big fan of sci-fi television, but he also enjoys series such as Stargate and Babylon Five that I never really got into. I also felt that a show whose cast of characters were primarily military and government officials would be too dry; I prefer characters who are on the gray side of the law, such as Malcolm Reynolds and Han Solo.

However, last week on a whim I broke down and asked to borrow his Season 1 DVD set. It took a while to get going, but I'm now 4/5ths in and completely enthralled. Some of the characters, such as President Roslin, Colonel Tigh and Dr. Baltar, are interesting people with complex motivations. The show also does a good job of keeping enough hidden to allow for a perpetual sense of mystery. I'm already speculating as to which of the crew members are really Cylon sleeper agents.

It's not Firefly, but it'll do for now.

Labels: ,

Monday, January 7, 2008

The Case of the Mystery Operator


Inspired partially by xkcd and partially by testimony from other programmers, I've decided to take up learning Python in my spare time. I've been using the free e-book Dive Into Python as a reference, and it's been an interesting experience so far (whitespace for code blocks!?)

I was showing the Python Shell to my friend Thomas the other day, and he typed in a few equations to try it out. While "2+2" and "3*8" resolved normally, "2^3", which is a standard notation for two raised to the third power, returned "1". We were a bit confused, but decided that the caret symbol "^" must mean something else in Python. We entered a few more formulas in an attempt to discover what the symbol meant, and here are the results:

  • 1^0 = 1
  • 1^2 = 3
  • 2^0 = 2
  • 2^2 = 0
  • 2^3 = 1
  • 3^2 = 1
  • 3^4 = 7
  • 4^1 = 5

Try as we might, we just couldn't figure out what this operator did. I had a theory that it had something to do with modular arithmetic, but some cases just didn't fit. Despite our combined brain power, we just couldn't crack it, and after twenty minutes consented to Googling it.

I would challenge you to try and figure it out yourself! For cheaters, the answer is below.


In Python, two multiplication symbols "**" are used to indicate exponents, while the caret symbol in this context is used to indicate XOR (exclusive or). Since I was comparing two integers, the computer was doing bitwise XOR on the two numbers and returning the result as an integer. For instance:

2 = 010 (binary), 3 = 011 (binary), 010 XOR 011 = 001 = 1
3 = 011 (binary), 4 = 100 (binary), 011 XOR 100 = 111 = 7

It was obvious in retrospect, but my mind was so focused on the usual mathematical operators that I hadn't even considered the basic computer operations. However, as it is with most lessons learned the hard way, I'll remember for the rest of my life how to do an exclusive or in Python.


Saturday, January 5, 2008

Uncommon RSS Feeds

While I possess a startlingly wide array of methods to waste my time, one of my favorites lately has been Google Reader. It's nice to know that I can sit down at my computer and always find something to read, be it an interesting blog, gaming news or webcomic. However, speckled among the nerdy ones are a few feeds that are quite different from my usual fare. I thought I'd take the time today to highlight some of these strange sites, with the hopes that you too might discover a new quirky feed to liven up your RSS reader with.

Google Sightseeing

Google Sightseeing

Google Earth is a great toy, but like most people I played with it for a few hours before moving on to other things. The folks at Google Sightseeing, however, have been scouring the globe to bring us all sorts of landmarks and oddities. Whether it be rolling snowballs in Antarctica, hippos in Zambia or whales off the cost of Mexico, Google Sightseeing is like National Geographic done accidentally by satellite robot photographers.

Passive Aggressive Notes

Passive Aggressive Notes

Maybe it's just me, but I can't help but laugh when I read notes from people trying to get their point across by being venomously polite. The notes run the gamut from very direct to extremely subtle, but they all showcase the real paradox of being rude politely.

Strange Maps - Europe

Strange Maps

Anyone who has ever looked at an upside down map of the world knows that a familiar place can look radically different when looked at in a different way. Strange Maps is a site dedicated to these quirky cartographers. My personal favorite include the night-time illumination map of Korea, the blonde map of Europe and a maximally fragmented North America.

Cute Overload

I cannot intellectually defend this one at all, but it bring a smile to my face every single day.