{boonacky}

Musings of an Opinionated Engineer

Boonacky

Musings of an Opinionated Engineer

Tuesday, February 02, 2010

Glad I'm Not the Only One...

As luck would have it, someone on my Facebook friends list posted this link up today: http://theoatmeal.com/comics/facebook_suck. What a coincidence that it would come in the heels of yesterday's Facebook rant!

Labels:

Monday, February 01, 2010

The Novelty Wears Off

I've been on Facebook since the summer of 2007. Before then, I resisted joining because it seemed like just another one of those things to which one becomes addicted, on top of the already-addictive instant-messaging, and gaming, to name a few. (For the record, I am NOT and never will be a gamer.) But my 10-year high school reunion was coming up, and I wanted to know what had happened to my graduating class, 99% of whom I hadn't seen or spoken to since graduating. So I caved and joined. To my dismay, it turned out that my high school reunion ended up being organized on Facebook, and by the time I joined, I had missed the reunion by about 5 days. Phooey.

Still, I was able to add a bunch of people from high school onto my friends list and even managed to reconnect with some of them (i.e. exchange the occasional message). It was fun to see what had happened to everyone, and shocking to realize that like me, many were married, and some even had kids already. It was shocking because up until Facebook came along, I still remembered all of these people as they were when they were 18 or 19. Now, these people were in their last 20s, some looking older, some looking fatter, and some looking balder. For others, it seemed like time had stopped.

Facebook was a total savior when I was on maternity leave. I couldn't log onto my computer at home too often, but I did have Facebook installed on my Blackberry, and I checked it often to keep in touch with the outside world so that I didn't die of boredom. My moms' group was also on Facebook, and all meeting invites were sent from there, so it was a great way to stay in touch.

But now, 3 years into using Facebook, the novelty is wearing off. I'm sick of getting invitations for Farkle, FarmVille, MobWars, Mafia Wars, Circle of Moms, and whatever other stupid annoying Facebook app is out there, taking my personal information without my permission. Which is why I don't have any Facebook apps. I'm sick of reading some peoples' status updates, because it's the same old, same old.

Some people, it seems, post status updates every hour, telling people what they ate, where they're going, why they're still awake, why they're going to sleep. Then you get the people who post status updates about how happy they are. Great that you're happy, but if you're going out of your way to say that you're happy, are you REALLY that happy, or are you just putting up a front? And finally, there are people who post stuff about how crappy their lives are. Dude, I'm sorry you're going through a rough patch, but you don't have to tell the whole freaking world about it. My biggest status update pet peeve, however, is when you get some annoying person who posts a status update that begins or ends with "paste this into your status". And I won't even go into the annoying bra color thing from a few weeks ago.

And you know what? I'm guilty of it too. When I was on mat-leave, 90% of my status updates were about my kid. I'd even post status updates about my kid's poohs, for crying out loud. I sometimes go through my day thinking, "Hey, this would be a hilarious status update." I went through a few rough patches where I posted grumpy updates. I'll bet you that people who read those status updates just kind of rolled their eyes and went on to the next status update. I sometimes even post multiple status updates in a day too. But you know what? I'm running out of witty things to say, and quite frankly, I'll bet that most people don't even care, just as I don't really care about what other people post in their status.

People who join a bunch of groups on Facebook also annoy me. For example, there's a group about people against the prorogation of the Canadian parliament. I am 100% completely against the prorogation as well, but I didn't join the group. What's the point? Nothing ever seems to come out of them anyway. And yes, it sounds defeatist and passive, but my point is that most people who join these groups want to state their position, but they don't really want to do anything about it. If you really care, join a real cause and do some real work for that cause. Don't join a group on Facebook just to act like you care. To be fair, there are people who join these Facebook groups and who are actively involved in their causes. Hats off to them. It's the rest of the posers that piss me off.

Oh, Facebook...you and I have such a love-hate relationship. You allow me to check out people who I haven't seen or spoken to in ages, and yet, many resident Facebookies annoy the crap out of me. And yet, I log on every day to see what's going on, just to see what those people whose status updates annoy me so much have to say. And for me to roll my eyes when I read said updates. Will I ever leave Facebook? Who knows. What I do know is that it will continue to annoy me as long as I log on.

Labels:

Tuesday, January 26, 2010

The O-Word

Information Technology in North America is going to the dogs. Once upon a time, getting a computer science or computer engineering degree actually meant something. Then everyone and their brother thought they could be a software developer by taking some course at some crappy community college. And then it got worse. Some companies (like one of my former employers) believed that they could train any person with half a brain to do development. All of a sudden, we had people who had NO BUSINESS writing code, let alone touching a computer become developers. "Don't worry," they were told. "It just a stepping-stone." What the hell?

I have an engineering degree. I have spent my entire career in IT, including all of my summers as a university student. I've seen good code at work. I've seen bad code cause near catastrophes. I've seen my fair share of mismanaged IT projects (99% of them). So forgive me for thinking that treating development as a "stepping stone" is absolutely absurd. Development is a craft. Good code is like composing a great symphony or painting a masterpiece. When done properly, it can be elegant, efficient, and maintainable.

Unfortunately, the corporate higher-ups think of development as a commodity. Several years ago, in my consulting days, I remember a client saying that, "Anyone can develop. It's the business analysts who do the REAL work." I really really really wanted to call BS on him. In fact, I'm still kicking myself for not having said anything. Don't get me wrong. Business analysts do important work. They gather requirements and produce functional designs. Their work is the input for our work. But developers take those functional designs and turn it into a deliverable. Whether it's an online bookstore or some batch process that updates inventory at the end of the day. Developers produce the ultimate deliverable. So no matter how good the analysis and requirements phase is, if you don't have a good development team on board, your project is doomed for failure.

And yet, almost every IT project that I've been on seems to be doomed for failure because management sets it up for failure through one or all of the following: understaffing, compressed timelines, and my favorite one of all: outsourcing. Yes, the O-word.

IT outsourcing invaded the North American market in 2002 or 2003, if I recall correctly. I was pretty outraged then. As a young developer, it appeared that my job was being taken away by Indian developers. We were told not to worry. Leave the drudge work to the offshore developers. That way, onshore resources could focus on management skills. Sounded like a recipe for disaster. And it was. And is. And yet, the model continues to flourish.

Offshore resources are stealing our jobs, and not only that, because of the ridiculous time difference, we must also accommodate to their schedule. What the hell is up with that. Why is it that some dude who is stealing work for me is forcing me to be on a conference call at 7am? Just so he doesn't have to be in the office past 7pm? If they work for us, then they should keep our hours.

Anyone who has worked directly with offshore resources will tell you the following:

1. Offshore resources are typically crappy developers. And why is that? Because the jobs are plenty, people are plenty, and their rates are CHEAP. So cheap that it is still worthwhile to hire a bunch of crappy developers, have them develop a crappy system, and then have them fix it over and over until it (sort of) works than hire a good team of onshore resources.

2. Offshore resources are like automatons. I agree that when a technical design reaches the hands of a developer, it should be pretty sound. Newsflash: even great developers can make bad design decisions that aren't caught until someone actually sits down and starts coding. It happens to the best if us. It even happened to me recently. So if you've got some offshore code monkey writing code based on a design that makes no sense and doesn't question it, then you end up stuck with a bad product.

3. Bad offshore development is always covered up. Executives are so gung-ho on making their huge margins on offshore development that they will do almost anything to keep this bad model going. This includes having onshore resources ultimately having to fix the really bad offshore code. And worse yet, management never admits to the client that they had to bring in onshore resources to fix the bad offshore code.

So on the outside, it looks like a successful model because the product gets built and the margins are beefy. As a result, the model that should have gone the way of the dodo is flourishing. And expanding. I've heard from friends that it's not just the development jobs being outsourced. Now, even business analyst and software architecture jobs are being outsourced too. Pretty soon, we'll be left with no IT jobs to speak of. And then what? All I can hope for is that the outsourcing goes so far that even upper-management jobs get outsourced, sending unemployment soaring to new heights, so that IT jobs can finally be returned to where they belong: onshore.

Labels: , , , ,

Friday, December 18, 2009

Dr. Jeckyll and Mr. Hyde

After all the time that I'd put in to converting all of my computers at home to Linux machines, I had to cave. I had to set up a native Windows machine. And not just ANY native Windows machine - a VISTA machine.

It all began about a month or so ago, when I traded in my (formerly-) beloved BlackBerry for a shiny new iPhone. I could go on and tell you that I chucked the BlackBerry because I was sick and tired of the fact that the O/S kept crashing on me (which it did), or because my battery had gone psycho and kept draining for no reason, or that the same thing kept happening to my brand-new spare battery. I probably could've lived a bit longer with the BlackBerry. Ah, but there was the iPhone. Shiny and new. EVERYONE had one, and the fact that a) my BlackBerry was acting up, b) it wasn't a work BlackBerry, and c) it was an UNLOCKED BlackBerry so I could upgrade to an iPhone partway through my Rogers contract made it oh-so-tempting. So I caved and I got one. Actually, my husband and I "got each other" iPhones as early Christmas gifts.

I stayed up REALLY late for a few nights after I got my iPhone. I needed to get music from my iTunes library on there, and I needed to transfer all of my contacts (which I'd transferred out of the BB onto an Outlook data file) over. Since I had no more Windows machines, all of this happened via my Windows XP virtual machine running on Sun VirtualBox on an Ubuntu 9.05 host. I had set up iTunes to sync to my iPod before and it had worked, so I didn't think that I would have any issues. Never say never, right?

Issue number one happened when I (foolishly) decided to upgrade to the latest iPhone O/S. I say foolishly because a) it was a minor release, and b) I was attempting to do the upgrade off of a copy of iTunes running on a virtual machine. The end result was that a little over a day after getting my fancy new iPhone, it went from awesome toy to useless paperweight. And not even a very good paperweight, mind you, since it's fairly light. Fortunately, my husband's laptop still ran Windows natively and after fighting through crappy middle-of-the-night network connections (I hate Bell DSL), we managed to restore my phone to its out-of-the-box state. I think the reason why the upgrade failed on my machine is that iTunes did something funky whereby it connected and disconnected my iPhone. Because it was running on a VM, that meant that when iTunes disconnected the iPhone, the guest O/S unmounted the device and returned control to the host O/S. So as far as the VM was concerned, the iPhone went bye bye.

I then proceeded to plug it back onto my machine to re-sync contacts and music. The sync took FOREVER. Now, I hadn't done a full sync of my music library in a long time on my old iPod, but I didn't remember it taking this long. I mean, the thing ran overnight and it still wasn't done. After chatting with a hardware-savvy friend of mine, he informed me that USB over virtual machines are just plain slow, especially when you're on a single-core Pentium M processor. Well, that explains it. Still, I was willing to accept this über-slowness since I didn't plan on syncing my iPhone THAT often.

A couple of nights later, I was messing around on my computer and I decided to connect my iPhone. To my dismay, I found out that the Windows XP VM refused to recognize my iPhone. I tried it on my beefier desktop (Ubuntu 9.05 running a Vista Basic VM), and it finally worked after a few tries. My husband suggested that I might need to set up a native Windows machine if only to make using iTunes less painful. And he took that one step further and suggested that I set up a dual-boot machine, so that I could still keep my beloved Ubuntu.

I must admit that I was completely against the idea at first, but then I warmed up to it. After all, there are times when it's just easier to have the damned Windows machine around. And let's face it: VirtualBox is a great tool, but it's not perfect. So I embarked on my dual-boot journey. Now, I remember back in the day that setting up a dual-boot machine was a royal pain in the ass. But I did seem to remember from my last Ubuntu install that it seemed to support dual-booting out-of-the box. So I kept my fingers crossed and hoped that my memory wasn't failing me.

I decided to start with a Windows Vista install on my dual-core Dell desktop. I chose Vista only for a change of scenery. Besides, I'm REALLY hoping to get my hands on a cheap copy of Windows 7 and replace the Vista install. Since I'd set up my Ubuntu machine with a separate /home partition, I figured that I could just wipe the root Ubuntu partition, and install Vista on half of that. Great idea, but it didn't quite work out the way that I'd wanted it to.

When I went to install Vista, I found out much to my dismay that my root partition was a logical partition, and that the Vista install CD didn't like my /home partition was located. So I wiped everything clean, and partitioned out half of my 400GB HDD to Vista, and left the other half to Ubuntu, which I'd have to re-install from scratch.

Apart from the mess-up with the partitions, the Vista install went really well. Before long, I had iTunes installed and my sync time had increased DRAMATICALLY.

It would be another 3 weeks before I'd get around to re-installing Ubuntu. Installing Ubuntu alongside Vista was actually suprisingly easy. The installer recognized the fact that I had a Vista partition and even offered to import some of my profile settings (not that I had many). Since I didn't want to muck around with stuff, I didn't do any fancy partitioning. The install completed quickly, and voilà: I had a dual-boot machine! FYI - the dual-booting is handled by GRUB.

Still, I wasn't quite satisfied with the setup, since I hadn't gotten the Ubuntu partition quite the way I'd wanted it. Normally I have 3 partitions for my Linux installs: a root partition, a /home partition, and a swap partition. So I decided to re-install Ubuntu. When I went to re-install it, I found out that the Ubuntu installer had somehow INCREASED my Vista partition to a whopping 395GB, and only left 5GB for Ubuntu. So I had to go into the partition tool to fix things up. After that, I was good to go.

One final note. My original plan had been to give the Ubuntu machine and the Vista machine the same name since they were on the same physical box, but, as my husband pointed out, it's really like the computer had a dual-personality. So I've aptly named my split-personality machine Dr. Jeckyll and Mr. Hyde. Can you tell which one is which?

Labels: ,

Friday, December 11, 2009

I Hate Townhall Meetings

I hate townhall meetings at work. They are long and boring, and quite
frankly, I have much better things to do. You know, like that work
thing?

A few weeks ago, we had a townhall meeting hosted by some big-shot VP.
We happened to be in the middle of a big crunch at work, and yet,
myanager told us that this meeting was mandatory. So basically attend
the meeting in the middle of a big crunch and potentially have to work
overtime for the time lost attending this stupid, useless meeting.
What gives?

And they ARE stupid and useless. A typical townhall meeting consists
of the following:
1. Overview of company strategy
2. Intro to new buzzwords that clearly gave thearketingfolks their
jollies
3. What's in the "pipeline"? (Empty promises, that's what.)
4. The state of the company (Just tell me whether or not I get to keep
my job.)
5. Q&A (For some strange reason, some people actually pay attention to
this hooey and feel compelled to further waste my time by sucking up -
I mean asking questions.)

Please pleas please, no more townhall meetings unless they involve a
catered lunch (but not those crappy sandwiches), and/or a game of
laser tag. Otherwise, just let me actually be productive and get my
work done.

__________________
Powered by iPhone

Tuesday, November 03, 2009

The I/T Status Meeting

Below is a snippet of conversation from a status meeting that I was just in.

PM = Project Manager
DM = Development Manager
Dev = Developer

PM: Are we on track to complete the architecture document?

Dev: Well, kind of. I'm still a bit concerned about that extract, since we don't really know how it's happening.

DM: Why? It's just an arrow.

Labels:

Wednesday, October 28, 2009

Recursion

With the recent release of Windows 7, I was inspired to install it as a virtual machine on my Ubuntu laptop. I still have a copy of Windows 7 RC, so that's what I installed. I really can't quite bring myself to commit to blowing $200+ on a Windows O/S which won't even be the primary O/S on my system. Not only that, I need to make sure that it's actually worth running before I event commit to eventually dishing out the dough. If memory serves me right, Windows 7 RC should work on my computer until around March 2010, after which it will shut itself off after an hour, and then by around May 2010, it won't boot up anymore. Moral of the story: I still have time.

I got this great little portable 400GB HDD for my laptop a couple of months back. The great thing about it is that it's small and bus-powered. That means that I don't have to plug it into an A/C adapter to power it up; it's powered purely by my USB port. The downside to this is that when you run this on a laptop, it definitely drains your battery more quickly. That's small potatoes, because I've got a big beefy laptop battery, and I can keep all of my important files on this HDD and I can easily move from one computer to another (I've got 3 computers that I actually use). Win-win! At any rate, the whole point of this is that when I set up my Windows 7 RC VM (using Sun's VirtualBox), I decided to put the VM files on my external HDD.

I had managed to get Windows 7 installed and booted up, and decided to test USB connectivity. VirtualBox is a bit of a pain in the ass with USB connectivity if you don't know what you're doing. It took me several months (of trying on and off) to figure out how to get everything running just the way I wanted. Since I had my external HDD plugged in, I figured I'd test out USB connectivity with that device. As soon as I mounted the hard-drive, Windows 7 hung. I had to force a shutdown of the VM, and reboot. Once it rebooted, I tried again. It crashed again. I forced another shutdown.

What the hell was going on? I had installed a Windows 7 VM on another machine before (same setup), and it had worked just fine. I started to panic. And then it hit me. Of COURSE the VM was going to crap out. When you mount a USB device on a guest O/S (VM) using VirtualBox, it unmounts the same device on the host O/S (Ubuntu for me). The Windows 7 VM file was on my external HDD. As soon as I mounted the drive on Windows 7, Ubuntu no longer had access to it. This meant that VirtualBox no longer had access to it. If VirtualBox no longer had access to it, then it could no longer run the VM. Hence, the big-time crash. Total DUH moment here...

After the second attempt to mount the drive, it failed to mount even on Ubuntu. I unplugged it and plugged it back in several times, but to no avail. I don't know if this did the trick, but I tried mounting it on my husband's computer (Windows XP as the base O/S), which worked, so then I tried again on my machine and it mounted properly. Unfortunately, the VM file got corrupted, so I had to set up the Windows 7 VM from scratch (including re-installing the O/S). Fortunately, I hadn't really done much with the VM, so it was no biggie.

Moral of the story: watch what you're doing!!!

Labels: ,