In March 2010 I took part in a ceremony that all engineers go through once they complete their undergraduate degree in Canada. Called the “Ritual of the Calling of an Engineer“, it serves as a basis for remembering what engineering stands for and how an engineer’s work affects the public. It was written by Rudyard Kipling in the early 20th century to remind engineers of the obligation they have to work that is safe, efficient and ethical. During the ceremony, each graduating member is given a ring made of stainless steel or iron that is worn on the pinky finger of the dominant hand. This is to serve as a constant reminder of this obligation.

It was an interesting ceremony, to say the least, and is one that I will remember for a long time. It was a very nice way to both prepare for a future career and to commemorate the last 4 years of studying. Officially, in June I will receive my degree in Mechanical Engineering, and after registering with Professional Engineers of Ontario, I will be an EIT, or engineer in training. This means that I can begin to work under a fully licensed Professional Engineer and collect experience that is required to receive P.Eng certification.

Since jobs don’t come overnight, and I’d like to enjoy the summer a little bit, right now I’m not focusing that intently on my full-time job search. Instead, I’m using some of the skills I picked up during high school and university related to website development. Right now I’ve joined a site called oDesk.com that connects people looking for results with providers of services. So far I’ve been able to help a few people around the world by building some WordPress plugins to improve their site’s functionality. These include one to display popular tags in the last few posts and another that gives users the ability to vote on photos displayed on posts. Additionally, I’m also working on a number of other websites for friends and family. I currently have about 4 projects of various sizes and complexities ongoing, and most use WordPress as a backend so I’m getting pretty comfortable creating themes, plugins, administration panel pages and interacting with the WP database. Check out www.openticket.ca for the latest project to start up.

More related to engineering, I’m also spending time contributing to our university’s Formula SAE team. As a member of the drivetrain team, I did some work looking at the best differential, sprocket, half shaft and spindle combination to get the most power out of our Yamaha R6 engine. I even got to do some design work, using SolidWorks to create a 3D model of a specific part, test it with the simulation software and then have it sent out to be machined on a CNC mill. It’s very cool to see something built inside a computer become a real part.

In May, the team took the car to Michigan International Speedway where we participated in Formula SAE Michigan 2010, a competition between universities all over the world to see who can design, build and market the more cost effective and highest performing race car. Unfortunately the team ran into some scheduling issues during the school year, when students — rightly so — focused on school work rather than building. Since this is the first of 3 competitions during the summer (I’m hoping to get to California and England later), we took what was built on the car and learned as much as possible. It was very interesting to see what the other teams had done with their time and budgets.

With all that in mind, it’s easy to see why my last post here was a few months ago. I hope to write more in the coming weeks, as I will hopefully have some time to work on projects that can be shared. Engineering is a challenging field of study, but it is very rewarding in both education and contribution to society. Finishing my program and learning more outside of school has helped me realize that I’m in the right field and that the sky isn’t even the limit.

Tagged with: , , , , , , , ,

When running a website, it is very important to have a backup of all site files, to prepare for any event that may require reloading data (file corruption, moving hosts, etc.). After building my Ubuntu file server, I knew that I had to find a way to mirror this website so files could be recovered if necessary.

I looked at rsync and curlftpfs, but that combination was complex to set up. Soon after, I stumbled on FTPcopy and have found a good solution.

Here is a bash script to automate the process and create a daily mirror of whatever FTP server you want to back up.

  1. Download and install FTPCopy from the repositories.
    sudo apt-get install ftpcopy
  2. Change to a directory that will store the script and open a new text file.
    cd /path/to/directory
    vi ftpbackup
  3. Press i, then copy and paste the following text.
    #!/bin/bash

    USER=username
    HOST="website"
    PASS=password
    REMOTE="public_html/"
    DIR=$(echo "/path/to/backup/$HOST")
    cd $DIR

    # Issue FTPcopy command
    ftpcopy --no-delete -l 1 -u $USER -p $PASS $HOST $REMOTE .

  4. Be sure to change the values for website, storage directory, remote directory, host, username and password.
  5. Save and exit the text file by typing :wq
  6. Make the script executable by typing chmod a+x /path/to/script
  7. Add the script to the crontab so it will be executed on a regular basis. I use Webmin for this type of administration work, but it is possible to use the command line. Use this example to sort out the format. Mine runs daily at 12 AM.

To clarify, this code changes directories into the backup folder, then issues the ftpcopy command. The remote directory of public_html is common on many webservers, but be sure to confirm before running the script. The no-delete option means that files are not removed from the backup if they’ve been removed from the web server. The l option simply means provide feedback of what files are being moved — this can be viewed in your user mail.

After the time has passed for the first time, check the folder where your backups will reside to make sure they are being added as planned.

Tagged with: , , , ,


With school demanding more from 3D graphics and design, and the lack of power in the GMA950 for Keynote work, it was time for a computer upgrade. Couple that with Applecare that ran out earlier this week, and you get a nice new 13″ Unibody MacBook Pro.

Since it’s been 2 months now since I’ve been using it, I thought it was time for some opinions. I’ve already installed Windows 7, run Keynote presentations, taken it on a road trip, and done nearly all of my daily computer activities. In every way, this machine is superior to my previous MacBook.

The Outside

The solid aluminum exterior of this MacBook Pro is a massive improvement over the polycarbonate shell of the MacBook–and previously, the iBook–as it has very little flex and will be the end of the dreaded palm rest cracking that affected nearly every previous generation of MacBook. That aluminum shell means this computer is lighter and thinner as well. While likely not a very big difference (I’ve yet to break out the tape measure), you can feel it when it is in a case or backpack.


The assortment of ports on the left side has changed somewhat as well. Gone is the dedicated audio-in jack and FireWire 400 and in its place is a backwards-compatible FireWire 800 port. The single audio jack now deals with digital and analog input and output on its own. In addition to the standard Gigabit ethernet and 2 USB 2.0 ports is the new Mini DisplayPort and SD card slot. The DisplayPort requires another new dongle from the Apple Store. The SD card slot has already proven itself worthy, by copying camera photos during a brief road trip. It is an item I think probably won’t be useful all the time, but those occasional times it is required, it will be great to have. The Kensington lock slot has also been moved to the right side. This is a good thing for me, as I always put my computer ports down in my bag, and now the lock is readily accessible. Using the lock for the first time, it was very tight, but after applying some pressure, it now slips in and out fairly easily. The aluminum is slightly bent inside, but nothing major. As usual, your mileage may vary.


The backlit keyboard is definitely my favourite upgrade. I had no idea that seeing what I was typing in the dark would be so handy. A side benefit of this technology is that the ambient light sensor also subtly adjusts the screen brightness to an optimum level.

Other changes from the Core 2 Duo MacBook are the built-in battery and “buttonless” touchpad. Technically the touchpad is a button, but just looking at it shows nothing. So far I’ve found it to be slightly more sensitive when using a thumb to activate. Battery life is also an improvement, though I may not get a chance to test it fully until I return to school in a few days.

The display on this machine is also noticeably brighter, with more vivid colours. After putting the two machines side by side, there is a definite difference, as shown above. I had heard all the horror stories about the screens being a black mirror, but so far that has not been an issue for me. Sure, there is some reflection, but the beauty of a laptop is that it can easily be adjusted to mitigate the glare.

Apple has been touting their non-user-replaceable batteries in their more recent notebooks, and this MacBook Pro delivers.

The Inside

The inside components of a computer are certainly more important than the outside, and the upgrades to this generation of MacBook Pro make it a screamer. Even though the clock speed is only increased from 2.0 GHz to 2.26, the newer processor is far more efficient, and the faster RAM, along with a boost to 4 GB means there is virtually no wait for applications to load or for the machine to shut down. The graphics subsystem is the biggest gainer in the lot, with a move from the GMA950 chip to nVidia’s 9400M system. This means smoother transitions in Keynote, more frames in both games and iTunes visualizer and more speed in the future when more applications use Apple’s OpenCL computing language. I’m looking forward to that.

To put a numbers to the improvements, I took measurements of some common computing tasks of both machines.

  2.0 GHz MacBook 2.26 GHz Unibody MacBook Pro
Xbench 1.3 96.32 102.18
— CPU 130.45 158.53
— Memory 126.07 178.66
— Quartz Graphics 149.15 177.57
— OpenGL Graphics 264.8 80.92
— Disk 28.60 32.13
Windows 7 Index 3.2 4.0
iTunes Visualizer (fps) 60 60
CPU with 720p Trailer 35% 20%

Overall the machine certainly feels speedy, with minimal pauses between application changes. Disk performance is basically the same, seeing as the drive was just transferred between systems.

A big change I have noticed is that this computer is far quieter than my previous MacBook. That one had fans that would peak at 6200 RPM when doing anything remotely computation intensive. Even watching Flash video would cause the fans to spike. On this computer, they seem to peak at 2200 RPM, as that was the maximum speed I observed while encoding some MP3 files recently. Obviously it’s a change that won’t be listed on the spec sheet, but it is a welcome change for anyone using their computer for semi-heavy lifting.

I’ve been very happy with this new machine and the benefits it brings. Though I said it about the last MacBook I owned, this MacBook Pro will likely stick around for a long time, thanks to its powerful processor, aluminum shell and fast graphics chip.

Tagged with: , , , ,


After choosing a mechatronics option in my final year of mechanical engineering, I’ve gotten more interested in electronics and computer integration. Sure, I’ve done programming in the past (and present) but there is something very satisfying about writing code on a screen and having it perform an action in the real world. With that in mind, I ordered myself an Arduino microcontroller from Adafruit and have spent the last few weeks learning the ins and outs of some of the included components. So far I’ve hooked up some LEDs, a DC motor and a servo motor to the breadboard and watched them blink and spin. The kit contains bonus material, but you can also get just the board to save some money. It includes components like red and green LEDs, resistors, transistors, jumpers, and the previously mentioned DC and servo motors. Programming the board requires very straight forward C language knowledge. There are dozens, perhaps even hundreds of tutorials online to program nearly all functions of the board itself.

What is it used for?

You may be wondering what the real purpose of the board is, but there is no definite answer to that. In reality, Arduino, being an open source hardware project, has been used in numerous projects seen around the web. Any component that can be plugged into one of the pins can be controlled, which means people have used it to create secret knock opening doors, a radio controlled lawnmower, even a laser harp. This only scratches the surface. My plans, without giving too much away, include building a panoramic camera mount and adding radio controls to household/garage items (project details will be here when they are completed). If you have any interest at all in electronics, I suggest picking one up and learning about it.

Tagged with: , , , , ,

The interwebs have been on fire in the last few days with talk of Google’s new project, Chrome OS. This is a Google version of the open-source project Chromium that aims to produce an operating system less dependent on local hardware and instead stores data in the “cloud”, or internet services. This has a number of benefits, namely constant backups since no critical data is stored on the hardware the OS is running on. It also means it can very lightweight and run on lower level hardware, like netbooks.

With the updates on Thursday, I decided to take the plunge and try my hand at building the OS on my own. If you decide to do the same, keep in mind it is a fairly advanced procedure, despite the attempts of Google to automate the processes. You’ll also need a Ubuntu computer with version 8.04 or later (I used my server running 9.04 Jaunty).

Building Chrome

All the instructions you need are on Google’s page about this very subject. It contains a very detailed procedure for downloading and compiling the system to be installed on a regular computer or run with VMWare. Since I don’t have any spare hardware lying around, I went the VMWare route.

You’ll have to start by downloading the 200 MB files. If you wish to use the tarball version, here are the commands you can use to move to the home directory, download and unzip.

cd ~/
wget http://build.chromium.org/buildbot/archives/chromiumos-0.4.22.8.tar.gz
tar zxvf chromiumos-0.4.22.8.tar.gz
mv chromiumos-0.4.22.8/ chromiumos/
cd chromiumos

From there you can start with the steps on the above Google link.

The process is relatively straightforward as compared to a standard compile/install procedure, thanks to Google’s use of bash scripts. I proceeded without incident until it came time to run the ./enter_chroot.sh script. This one failed multiple times and it took me some time to figure out that I needed to run ./make_chroot.sh a second time. After that, there were no more problems, and I soon had a VMWare disk to use.

Using Chrome OS

If you wish to bypass the whole build process, gdgt has graciously provided a direct link to a download for a VMWare image. Going that route can definitely save some time.
After installing a VMWare Fusion trial, I had Chrome OS running and was presented with a nice log in screen. If you enter your Google address and password, all the applications should be set up immediately with your data and you can begin to use the OS right away. Once logged in, you really are using a giant browser.
At this stage, the open-source Chromium downloads lag behind what Google presented earlier this week, so some of the features aren’t available yet. Right now there is a Chrome browser, and that’s about it. The button at the top left shows some of the applications available, like Calendar, YouTube, Documents, Hulu and more.
These are essentially just links to the respective Google pages. The top right corner has buttons for changing a few settings and checking battery and WiFI information. Other than that, it’s pretty spartan (there isn’t even a shutdown button).

It is an interesting take on the future of computing, a problem I noticed is that a weak internet connection really dampens the benefits. To truly make use of the features built in, you’ll need a solid pipe, because waiting to even check a calendar is a bit annoying. If/when this makes its way to netbooks with wireless internet solutions, that will make a very nice package.

Is this the future?

Using these early builds, I found myself wondering who will want to use an operating system that deals very little with local storage and functionality. Google’s intention is that it will be used almost exclusively on netbooks — the tiny 8-10″ computers that are mostly used for email and web browsing. They’ve even decided that to use their version of Chromium, you’ll have to buy a new device (it won’t be available as a software only product). For that purpose, I can see it being a success. For full scale computing, I don’t think it will be usurping Windows or Mac OS X any time soon.

Tagged with: , , , ,