The attack of the zombie hard drives

November 6th, 2009

I don’t know what has been going on with the world lately, but being the only computer guy in my close group of friends with an IT support background definitely has it’s down sides.  Since August I have experienced 5 catastrophic hard drive failures.  I wish I could blame them all on one common factor, like bad firmware or something, but I simply cannot.  The drives were of different ages and from a variety of manufacturers and system builders.  Only one of these drives was mine, the rest belonged to friends and family.  Care to take a guess at how many of these drives were backed up?

Zero.

Luckily for me, my drive that failed was in an external enclosure and was only used for backup anyway.  The rest though, were the main system drives from my friend’s primary PCs.  I was able to get most of the data off of one of them, but the other 3 were completely toast.  Based on the look that shows up on people’s faces when I tell them that I can’t restore any of their pictures or home business files from a failed drive, I might as well be a surgeon informing family of an unfortunate surgical outcome for a family member.  It’s absolutely gut-wrenching.  I don’t wish it on anybody.

I’m a firm believer that if your data does not exist in at least 3 places, it doesn’t exist at all.  Burning DVDs of pictures or copying them to an external hard drive are great, but you need to have a copy OUTSIDE of your home as well.  The method that works for me is that I have an external hard drive that I leave in my desk at work, every other weekend I bring it home and copy my data onto it.  Monday morning I put it back in my desk at the office and I feel much more protected.  Some people like to ‘cloud’ option as well, however with Cogeco having a 60gig per month bandwidth cap, it’ not an option for me (my backup drive is almost 200gigs.)

Really though, I don’t care how you do it, just BACK UP YOUR STUFF!

Share this:
  • Digg
  • Twitter
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Print
  • PDF

Diving into iPhone development

July 4th, 2009

After many long months of decision making and cash saving, I have finally decided to dive head first into the wonderfully complicated world of iPhone application development. It is something that I’ve had in the back of my mind since I first got my iPhone almost a year ago, but at the time with my wedding and everything I wasn’t in the market to get myself started.

The first step on this journey involved me purchasing my first Mac ever, the 13″ Aluminum MacBook. I was tempted to go with the Mac Mini instead, however for the money the MacBook just offered too many advantages.

I have to admit, after giving it an honest shot, I’m really starting to like how OS X does things. It definitely isn’t perfect but it is a refreshing change for somebody who has been looking at a Windows desktop for the last couple years. The mental workflow took some getting used to, though I’m now feeling nearly as comfortable on my Mac as I do on my Windows machine, with only a couple of exceptions that I don’t need to get into during this post. Maybe some other time.

So far I have really liked the Xcode development environment as well, like everything else on the Mac, it just takes some getting used to. Before you know it everything just makes sense. Even though I’m sure there’s a ton of stuff included in Xcode, it all sort of hides in the background instead of being right in my face and adding to the confusion. I was able to build and execute a simple iPhone simulator app very quickly without having to resort to a tutorial.  I’ll admit that was a pretty exciting moment for me!

I still have an absolute TON of things that I need to learn before I start releasing stuff on the iTunes App store, but I’m going to do my best to document what I learn as I go.  I’ll also try to point out any useful resources that I find along the way.  I’m sure there will be plenty of surprises, it’s all very exciting!

Wish me luck!  Hopefully I don’t suck at this…

Share this:
  • Digg
  • Twitter
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Print
  • PDF

Does anybody need a monitor?

March 6th, 2009

UPDATE: As of this Sunday, March 15th, this monitor will be visiting a recycling centre.  If you are interested in taking it off my hands and can pick it up, it’s yoursJust let me know!

I realize that I currently only receive about 5 hits a day to this page and that is my own damned fault since it has been nearly a year between this post and the one below it.  However I’m still going to go out on a limb and mention that I have a CRT monitor in my office that I am simply getting tired of looking at, does anybody want it?

Here’s the details:

Model NEC MultiSync Fe950+
Max resolution 1600×1200 @ 76Hz
Viewable size 18 inches
Size 44.2cm(w) x 44.8cm(h) x 44.4cm(d)
Extras OptiClear technology
Anti-static dark-tint screen

I managed to find a link to a review over at PCWorld.  They mention that it is a great display for graphics work, which I can’t argue with, this is an awesome screen.

Multisync950

I’m looking to find a home for this screen since it is still in great working condition.  I’m asking for $100 but I’ll accept any reasonable offers.  I have recently seen this same screen listed for $130 on Ebay.  I don’t want to ship it so I’m looking for somebody that would be able to meet to pick it up in the Burlington – Oakville Ontario region.

If you’re interested please let me know at wally@power-coder.net.  If you have any questions please feel free to ask them in the comments, that way everybody can benefit from them.

As for the rest of the stuff on this site, I have plans, check back soon and you might be surprised.

Cheers,
Wally

Share this:
  • Digg
  • Twitter
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Print
  • PDF

My 5k Run in the Snowstorm

March 18th, 2008

Some say that you can’t call yourself a runner until you’ve actually run in a race. I’m happy to say that on March 8th, 2008 I accomplished that feat by running the Slainte Irish Pub St. Patrick’s Day Road Race.

This wasn’t your everyday run however, as you can see from the picture below, there was a bit of a snowstorm going on around us!

The snow on race day
A look at the snow outside before the race

It definitely wasn’t the warmest I’ve been while out for a run, but as you can tell from our faces in the picture below, we were doing ok.

P3080139
Joe, Dorothy and I ready to go

The route was pretty good, we started just off Concession Street, ran along the mountain brow and then made our way down the Jolly Cut. The whole time down I was telling Joe how nice it would be to have one of those x-games head mounted cameras, that way there would be some evidence for how much snow was coming down.

Considering the weather I was pretty happy with my results, my goal was to not be the last person to cross the line and I beat that by about 50, sweet!

P3080143
Joe and I busting for the finish, notice the snow!

The best part about the whole day was the hot Irish stew and beer waiting for us at the pub just over the finish line. Definitely helped us get warmed up quick!

For those thinking about entering this race, go for it! It’s a lot of fun and from what I could tell everybody had a fantastic time. I’ll see you there again next year for sure!

P3080148
The three of us at the finish line, we made it!

Share this:
  • Digg
  • Twitter
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Print
  • PDF

5 Things I wish I was taught in software school

February 4th, 2008

It’s hard to believe, but it’s been 3 years since I graduated from Mohawk College’s Software Engineering Technology Program. That means that it has been 3 years where I’ve been able to reflect on what the program taught me, and some of the things that I wish I had learned. There are many things that I am happy that I now know, however I also feel that there were some key elements that were completely overlooked. I don’t want this to be a rant piece, that’s just not my style, I just feel that if I had graduated knowing about the following things I would have entered the professional world a much stronger developer.

1. How to use source control
This one is huge, everything I know about source control and version control systems I have had to teach myself since becoming a professional developer. I’m not saying that every software program should have an entire course dedicated to this, but at least knowing the basics would be nice since it’s so critical to the development process. Perhaps this is specific to the program that I went though, but when I graduated I had no idea what version control was, only that Visual Studio had something called Source Safe that I never bothered to install. Perhaps if it were a requirement for the larger final semester projects to be submitted through a source control tool, don’t even force students to use a specific tool, but use SOMETHING.

2. How to write secure code
When I was in school the web application world was still in it’s infancy so perhaps this isn’t as much of an issue now. Never once did I hear the term ‘SQL Injection’ or ‘Cross-site Scripting,’ but now they are serious issues, especially for developers working in web applications. The only parameter checking that we did were the ones that were enforced by the compiler/interpreter. We would never go so far as to verify that if your code expects a 4 digit number, a 6 digit parameter causes an error.

3. How to do automated testing
This is another big one, and in my situation as a PHP developer, one that I still don’t have figured out yet. We were taught that as long as our programs gave a specific set of output for a given set of inputs, it was correct. While the idea seems rational, our test inputs were more often than not insufficient to catch even the most glaring of errors (like the example in the previous section). Most software shops these days do some sort of automated testing so I think graduating school having never written a unit test puts us at a major disadvantage.

4. Agile development / Extreme Programming
I can’t completely blame them for this, but I think it’s important to mention anyway. The only SDLC that I was taught was the old-school waterfall processes. You know the one, design the entire system using a binder of varying diagrams covered with boxes of arrows, write code to make the boxes do stuff, test that it does what it’s supposed to do, then release it to the world at large. Fortunately for us, the software world is changing, people are starting to realize that software development is a more fluid process than building a bridge for example.

For anything large it’s nearly impossible to figure out every last detail without writing any code at all. This is where Agile/Extreme programming comes in, shorter release cycles, small increments or features between each release.

The other problem with the old methods, as I’ve learned from experience, is that most of the time customers don’t really know what they want to begin with, so how are you going to design it for them?

5. How to write modular software
This is another important one, most of us were taught to write our code as self-contained methods and/or classes. The idea was that it could be swapped out at some later date or extended with new functionality. This is totally fine, but what if you wanted to add functionality without having to change the base code? Not many of the developers I know were actually taught how to make their code extensible through add-ons or plugins.

I think it would be a great idea for students to have to write a base program with extensibility in mind. Later projects could modify it via plugins without touching the original base code.

I have a feeling that this topic wasn’t covered for two reasons, one being that the faculty assumed that all their students would be working on mainframes in banks. The other is that this sort of stuff isn’t exactly trivial code, from my limited knowledge of it anyway. I am still just at the beginning stages of this journey, walked through how systems like Wordpress implement hooks in their API.

So there you have it
I’ve tried my best not to bitch too much. I think each of the 5 things I’ve mentioned are valuable tools for any software developer to have under their belts.

Please feel free to add to the list or let me know what you think through the comments.

Share this:
  • Digg
  • Twitter
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Print
  • PDF