Saturday, December 31, 2005
Happy New Year
Wishing everyone the very best in the coming year.
Thursday, December 08, 2005
Using the right tool for the job
Just the other day I found myself in such a situation, I needed to pull apart a binary file to ensure it was being generated correctly. The code that produced the file was in java, however it was a small part of a much bigger system and thus was not easily reused for my purposes. Sitting in my chair I'm thinking how I can quickly put something together that will output the contents of the file and maybe do a little validation in the process. Using C or C++ would not be to bad but require the setup of a VC++ project, generate a main(), write some file code, etc, etc, etc. Nothing hard here, just tedious. Java was no better, I would have to create many of the same things required by C++.
It was about this point that a thought came to me, why not use Ruby? A little Ruby script could pull the file apart easily enough and there would be no need for a main and the file code would be really simple. Only problem, although I've used Ruby for a few things I'm still learning alot about the language so it would no doubt be quite a bit slower to write an app in Ruby than it would be with Java or C++ right? Well, Ruby it is, after all, this adds a little variety into my development life!
So first things first, how to read binary data from a file using Ruby? A quick web search outlined how to use the File class and the associated read method to access binary file data. After that things just flew. Quite literally, 5 minutes after I started a complete Ruby program was on the screen in front of me that would produce a nicely formatted output to the standard console outlining the contents of the binary file. Could I have written the same thing in C++, sure, would it have been completely done in 5 minutes, doubtful.
This is productivity at its best. The little program is easy to read, can be extended in no time and proves to be a valuable debugging tool. Pretty good for 5 minutes time! This just goes to show, using the right tool / language for the job can really pay off even if you don't know it as well as another tool.
Monday, November 28, 2005
It's snowing - first one this year
Monday, November 21, 2005
One of lifes interesting tid bits
Fog in November is unsual for Vancouver so everybody was driving pretty slow. As I pulled up to an intersection I looked over at a building complex that had its sprinklers running. You have to wonder why a sprinkler system was running when it has been wet and foggy for days but that is another story. The cool thing about this scene was that the sprinklers were spraying a fine mist which was immediately turning into fog. It was like a special effects person had setup a bunch of fog generators on the lawn. Each sprinkler produced a column of fog that went straight up about six feet before melding with the rest of the fog. All in all it looked pretty cool.
Funny how the little things can spruce up a day.
Monday, November 07, 2005
Developers Corner
Now you can answer a question like this by rattling of a few resources that come to mind or perhaps send them a few URLs from your list of bookmarks, neither of these really covers the question completely though. I'm not sure about you but I use many different resources to keep up with the latest and many of these resources I visit only periodically. From these sites, blogs, etc I usually come across other sites that provide interesting bits, the net result being a bit of a spider web of connections. Hmmm, maybe that is why it is called the world wide web. :-)
Anyway, as a result of this discussion I thought it might be interesting to start posting sites I have found useful with the hope that others may also contribute to this list. These sites will span software development, software design, tools and technologies and probably a few sites talking about gadgets, etc.
To start of I've trolled my bookmarks to come up with a few sites I've found useful over the last while.
.Net Developers Journal - This is a Microsoft site that provides a good source of... you guessed it.... .Net related info.
O'Reilly OnLamp - The OnLamp site has been a favorite of mine for a while due to the combination of well written articles and coverage on some of the latest developments in software tech.
Raganwald - What we have here is a personal blog that talks about software development from a variety of angles. Stop by often because if todays post doesn't interest you tomorrows may.
InformIT - All things software. Includes info on software design, toolkits, developments in the markerplace, and much much more.
Safari - Although this is a pay site, I think it is invaluable for those who want to read up on the lates tools and techniques. Safari is an online book store that works on a monthly subscription. They have an excellent selection of books and some very useful search facilities. There is a 2 week trial giving you a chance to try before you buy.
Let me know if you have a favorite blog, website, discussion group or other resource.
Tuesday, November 01, 2005
Pumkin Mania
This pumpkin is a template I found on the web and since Emma likes cats, it was a natural choice. The pumpkin came out quite nice and was certainly popular with our trick or treaters.

As I mentioned earlier, we picked up a new set of extreme carving templates. Being one that likes a challenge, I picked this template and went to it. A couple hours later it was done, doesn't look to bad I certainly need to refine my carving skills to get all the detail. Well, there is always next year!

Here are a couple of small pumkins we put in our tree just to add a little interest as people came up the stairs to our door. If you are looking for a way to get into pumpkin carving, I'd highly recommend the Pumpkin Masters books. They come in different collections several of which are good for beginners and they usually come with tools to help you with the carving.
Friday, October 28, 2005
Many friends move on
Alas, I've recently found myself in this situation. Don't get me wrong, I'm very happy for all of them as they move on to new and exciting opportunities, and through instant messaging we will be in touch often. Problem is, these are folks that I have corresponded with daily and whose companionship I have enjoyed a great deal.
Departures like these create a void in your life, think of how much time we spend with our coworkers and how they affect our lives, both good and bad. Every week I spend at least 40 hours with these people, exchanging ideas, discussing work related activities and sharing experiences, etc. The office environment certainly feels different now, not sure how to describe it other than it feels colder.
To my friends, you know who you are, I bid you the very best of luck in your new adventures and it is my sincerest hope that we will stay in touch long into the future.
Sunday, October 02, 2005
Serenity
For those not familiar with the movie, it is based on the series Firefly which was killed by one those oh so intelligent TV networks after only one season. Firefly had gained quite a following and there was an incredible response to its cancellation, including fans going to the extent of raising funds trying to encourage the network to give the show another chance.
Obviously Firefly never got the opportunity to film another season, thus the original founder of the series, Whil Wheaton decided to make a followup movie, and Serenity was born. Even though Serentiy starts where the series left off, you really don't have to be familliar with the series in order to enjoy the movie.
Serenity is a good mix of fantasy, sci fi and action genres. Although not a good movie for younger children due to some violence and scary monsters it is great for everybody else. As far as movies go I'd say this definitely rates an eight out of ten which is quite incredible given the quality (or lack there of) of todays movies.
Give it a shot, I'm sure you won't be dissapointed.
Friday, July 15, 2005
Real world version of "The Terminal"
Check out the full story here.
Friday, June 10, 2005
Apples switch to Intel, what does it mean?
One thing Apple has always done was make business decisisons that drive sales of the hardware. Initially, the move to Intel chips looked like they might have broken this trend since it would mean that OSX could run on non Apple branded systems. If this was to happen they would have to compete with other vendors in all branches of thier market. Most damaging would probably be the high end of Apples market where they currently make a tidy profit that helps pay for thier R&D. A change of this nature would most likely yield results like those of the early 90's when Apple allowed other manufacturers to produce clone Macs. For those that don't know, this proved to be a disasterous move for Apple as their profits were vanishing very quickly. Why by an Apple system when you could get a more powerful system from another vendor for less money?
Fortunately, rumblings from the Apple World Wide Developers Conference this week would seem to indicate that Apple will be locking OSX so that it only runs on Apple branded hardware. This is obviously unfortunate for those of us that would like to run OSX on our new shiny PC but is good news for the Mac community.
I mentioned earlier that in the long term this switch will be a good move for Apple, now I'll explain why. The PowerPC processor is a great processor in its own right and had put pressure on Intel / AMD chips in the past. Problem is, the PowerPC has not moved forward the way Intel / AMD chips have. Steve Jobs promised the Mac community a G5 PowerBook some time back, today it still hasn't seen the light of day, and the simple reason is, that chip runs too hot and consumes too much power. Compare this to the current mobile offerings by Intel and AMD, the Pentium-M runs pretty cool and has a good deal of processing power.
In addition to the chips available now, one has to look at the long term plans for the Intel line. By the time Apple is ready to sell Intel based Macs, there will be new 64 bit chips available and new chips based on the mobile core that will be optimal for systems like the iMac, Mac mini and of course thier line of laptops. John "Hannible" Stokes has written a good piece on the long term roadmap for Intel chips and what it might mean for Apple, check it out here.
Intel brings many components to the table that will help Apple with their hardware woes, one does have to wonder though if Apple has enough style and technology to make for a compelling platform. OSX is a great OS so there is hope that with Apples style and the continuing evolution of OSX they will make a good go of it.
We only have to wait a couple of years to know the outcome! :-)
Thursday, June 02, 2005
Multiple PCs? Check out Multiplicity
Initially this may sound like a me to product, sure, many people know of PC Anywhere or the popular and free VNC. This tool however differs from these others, you use it to control other computers at your desk that have their own displays. It works kinda like having multiple monitors on your PC, when you move the mouse around, it jumps from one monitor to another. Multiplicity does the same thing with your computers, you set it up so that when the mouse moves off the edge of one screen, it appears on the monitor of your other PC.
Not only can this be very useful if you have more than one PC at your desk, but it can also be really handy for laptops. This is where I really experienced how useful this tool could be. Often I bring my laptop to the office, however when ever I want to use it, I move away from my desktop computers keyboard / mouse and use the laptops track pad and keyboard. Not a big deal, but it is a little cumbersome. Things get a little more complicated when I want to tranfer a small piece of information like an URL, image, etc. Typically I'd email these things to myself or transfer them over the corporate network. Either way it was slow and clumsy.
With Multiplicity, I can sit at my desktop system, simply move my mouse of the edge of one screen and voila, I'm now controlling my laptop. Now, I need to copy some text from a webpage, no problem, copy it to the clipboard on my laptop, move the mouse back to my desktop system and paste away. The simplicity of this software is what really makes it work so well. If you are running multiple computers at your desk, this may be what you need. Check it out at www.multiplicity.net for more details.
Sunday, April 17, 2005
Sun Run 2005
The Sun Run is an interesting event to be involved in as there are close to 50,000 people walking, running or participating in the wheel chair portion. This basically takes over the entire downtown core for several hours.

This is at the start of the race before we got going. There are a lot of people here!

Here are the ladies while we wait to get going. Yes it is a bit wet out there, thankfully it started to clear as we began the run.

Near the starting line this was the view looking back. Not often you see that many people all in one place.

Mid way through the race everybody is doing well and having a great time.

Whew! The end of the race is near, just have to go down that hill and we are home free.

After the race we came across this cool little Volkswagen Bug that was all decked out. Of course we had to take a photo!

After all that exercise what was there to do but go have a great meal! We went to a funky little place in east Vancouver. There were some really interesting murals on the walls.

Mmmm, that is a lot of food, what a deal! Why do I feel like after all the exercise I'm going to end up putting more calories on than I took off?!?!?! :-)
Thursday, March 31, 2005
Supersizerama
Now, you should know that Emma and I eat pretty healthy, lots of home cooked meals or eating out at good restaurants. We probably eat fast food only a half dozen times a year, so watching somebody eat McDonald's morning, noon and night for a full month was rather disgusting.
What was even worse was the transformation the poor guy went through during that month. You could literally see the color of his skin change and he gained like 17 pounds in 12 days! Half way through the show I was actually feeling ill. Looking at the processing that goes into most fast food and the chemicals that are added, it is no wonder I feel rather ill when I do eat fast food.
Well, I'm outta here.
Tuesday, March 29, 2005
TDD experiences
These days the picture is quite different, a simple search in your favorite search engine will turn up many references to TDD, including books, how to's, blog entries, etc. Although it takes some time to get used to TDD, the benefits do begin to show themselves, I had one of these moments recently. Although I've been working with some legacy code which makes using TDD much harder, I've still be able to put in a variety of unit tests. These tests are quite useful as you work with the code because you know very quickly if some existing piece of functionality has been broken. This idea is a staple of TDD, however my experience recently helped enstill this idea.
I was working on an alternate implementation of a class that had a fairly rich set of unit tests associated with it. The changes being made were rather central to the class, so I just went ahead and coded the new implementation. Now, with traditional software development techniques, you would then create some developer tests or run the code through some known conditions to make sure it behaves as expected. This works, but in reality does not provide you with very good code coverage, also, these tests are often thrown away once the initial developer testing is performed, not exactly and ideal situation.
My situation was a little different since there was a rich set of unit tests to measure the state of the code. Once the code was complete, I ran the tests (only took about a second to run them) and voila, immediate feedback on what worked and what didn't. Go back and fix the broken tests, etc. It is quite interesting how positive you feel about your changes when there are a rich set of tests that verify your code. Obviously these tests are not very useful if they take alot of time to run, in TDD, you are encouraged to produce small well defined tests that execute quickly. As mentioned previously, the few hundred tests running against this particular module all run in less than a couple of seconds!
If you are interesting in checking out TDD, check out www.testdriven.com or pick up Dave Astels book, Test Driven Development: A Practical Guide. This book is an excellent start for those looking at TDD and want to know more about it and how it works.


















