Archive

Archive for the ‘Musings’ Category

Perfectionism: for the Insane?

October 1st, 2009

Perfectionism is the voice of the oppressor, the enemy of the people. It will keep you cramped and insane your whole life … I think Perfectionism is based on an obsessive belief that if you run careful enough … you won’t have to die. The truth is that you will die anyway and that a lot of people [are going to] have a lot more fun [than you] … -  Anne LamottBird by Bird: Some Instructions on Writing and Life

Author: Adam Kahtava Categories: Musings Tags:

Fun with “Bugs Bugs Bugs, If I had them all in jugs”, Bugbears, Bohrbugs, Schroedinbugs

September 14th, 2009

Some software bug trivia.

Where did the term ‘bug’ originate?

According to Phil Factor:

The word ‘bug’ actually is short for Bugbear, sometimes found as Bugaboo. The meaning is much closer to ‘Gremlin’, where the people who worked on engineering prototypes often grew to suspect that the problems were due to malicious spooks. I sometimes still hear it said that a particular piece of software is cursed with malicious spirits. The ‘Bug’ or ‘Bogey’ part of the word is traceable back to the fifteenth century in the meaning of ‘Hobogoblin’, devil or ghost. … the word ‘Bugbear’, first recorded in the sixteenth century, is still used in referring to problems with machinery. – Confessions of an IT Manager, Phil Factor

How many bug types can you name off?

Wikipedia lists six types of bugs: HeisenbugsBohrbugsMandelbugsSchroedinbugsPhase of the Moon bugs, and Statistical bugs.

Which music should you listen to while squishing software bugs?

The Bug Song by Canada’s Stompin’ Tom Connors of course.

Bugs Bugs Bugs, If I had them all in jugs
I’d dig dig dig, till a big big hole was dug dug dug dug–
And that would be the end of the bug song…repeat

Author: Adam Kahtava Categories: Musings, Quality Assurance Tags:

Thoughts on Social Media: It’s Like TV

September 11th, 2009

I once had a strong aversion to Social Media (Facebook, Twitter, LinkedIn, FriendFeed, pick the site of the week, …) but today I embrace it. In the old days, I thought these sites were silly, a waste of time, and preferred to spend more of my time pursuing technical / academic activities. In retrospect, I think I was feeling insecure in my technical abilities (placing to much focus on technical pursuits), I probably thought I had a boring life (and thought everyone else was bragging about theirs), and I certainly misunderstood the fundamentals of Social Media (somehow I thought being part of the conversation meant I had to consume everything).

I eventually realized that Social Media is a lot like TV. TV is overwhelmed with commercials and mediocre shows, the content is hard to find. When I watch TV (if I watch TV) I mute the commercials, flip through the channels looking for something interesting, and multitask (magazine, laptop, …). In the end TV is a leisure activity, I don’t try watching every channel (I know I can’t) and don’t pay attention to the advertisements. I do the same thing on Social Media sites too. I don’t pay attention to every post (I can’t) and I don’t pay attention to self promotion, promotions, or advertisements.

Today I embrace Social Media because it lets me participate in the conversation, share my opinion, connect with friends and family, and be an active part of our world. Oh yeah, and it’s fun too!

“Don’t be shy … or nobody will know you’re there” - Yusuf Islam / Cat Stevens

Author: Adam Kahtava Categories: Musings, Personal, Twitter Tags:

My HP Pavilion tx1000 (Laptop) Died

July 31st, 2009

I joined the HP Pavilion tx1000 drop dead club last month. Apparently the tx1xxx models of the HP Pavilion laptops have an issue with the NVIDIA chip frying the CPU hamsters (melting the solder on the motherboard) – I’m not really sure about the technical details, but a broken laptop is bad news.

Whatever happened it first killed my wireless, then the machine wouldn’t turn on (black screen, no BIOS, no boot). However; I’m writing this post from the same defective laptop. That’s right folks! I did NOT have to find a penny older than 1982, I did NOT have to dismantle and cook the computer under a halogen lamp for 5 minutes. Instead I…

How to fix your tx1xxx laptop:

  • Put your laptop on a firm grounding like the floor, counter, or sturdy table
  • Placed your right elbow on the enter key and push down hard
  • Pull on the opposite side of the laptop casting until you hear creaking (while pushing on the enter key with your right elbow)

I heard creaking and crunching as I physically bent the case (and the motherboard I’m sure). Now, aside from a crack in the case and a still defunct wireless card I’m temporarlily back in business – and in active search of a replacement laptop.

I’ll give any company or product a chance, but quality and user experience is the deciding factor. I doubt that I’d purchase another HP machine, but I now have an excuse to get a Mac!

Update: my HP tx1000 kicked the can about a month after writing this article. I chop shopped it on eBay for a cool $400, then used the cash to get a spanking new MacBook Pro!
Author: Adam Kahtava Categories: Musings Tags:

What Does Professional Mean To You?

June 26th, 2009

My idea of professionalism continually changes.

As an entry level developer I thought professional meant:

  • talking incessantly about technology (hiding my personal life behind shop talk)
  • dressing up for my cubical (wearing polyester dress pants, cotton dress shirts to work, and occasionally ties)
  • focusing on things that can be proven (giving little concern to interpersonal relationships or the general untestable messiness surrounding softskills)
  • writing the FASTEST CODE EVER (I was sidtracked with premature optimizations)
  • I tried to be a programming machine (working 29 hours a day)
  • becoming a Microsoft Most Valueable Professional (MVP)

Those ideas were skewed and I was running the risk of becoming a bit of a douche.

Today I think professionalism means:

  • being comfortable in your own skin
  • being able to delegate tasks within a team
  • being an effective member of a team (not participating in gossip, back talk, or other activities that erode a team)
  • being transparent
  • maintaining a work / life balance
  • choosing the best tool for the task

It’s funny how experience can change perspectives. I wonder what my definition of professionalism will be in five years?

Author: Adam Kahtava Categories: Musings, Personal Tags:

George Costanza is a Software Architect

May 26th, 2009

George Costanza always wanted to be an architect, but he’s not, and every time he pretends to be one he gets in trouble. Now, if you’ve watched Seinfeld, you also know that George has numerous psychological problems, including: narcissism, habitual lying, low self-esteem, sudden fits of anger, impulsive acts of ill-considered generosity, cheapness, selfishness, living in fantasy.

This begs for the question: how different are the developers that award themselves the title of Software Architect from George? How is it that someone can have a resume that reads developer, developer one week then next month reads architect, architect? Are we so insecure in our livelihood that we need to inflate out roles?  Anyone can claim to be an architect, and being one rarely means the same thing across organizations, doesn’t require certification, and some architects appear to live in ivory towers (tend to live in fantasy worlds like George). Has the title of Software Architect become synonymous to being Full of Baloney? If George didn’t switch careers and become a hand model he probably would have started pretending to be a Software Architect too. :)

Author: Adam Kahtava Categories: Musings Tags:

The Obsessive CEO

April 27th, 2009

Memories were being relived as I dug through years worth of archived email in a quest to find a reseller / hosting account. I once had lofty aspirations to create my own web company and quickly became the obsessive CEO.

The plan was to sell domain names, web hosting, and deliver websites to my clients – a one-stop-shop of sorts. I’d frequently obsess over the idea and smatter my coworkers, and friends (actually, anyone that would listen) with my fantastic ideas. I was obsessed. By obsessed, I mean, I obnoxiously sent out weekly (sometimes daily) emails containing mindmaps, and reams of links – all while maintaining a wiki bursting with my exceptionally mediocre ideas. :) I purchased reseller accounts, hosting plans – nothing was stopping me! Now that I think of it, obsessive tendencies probably run in my family – to this day my Mother vacuums her house three times a day, sure there were 11 people in our family and things got messy, but three times a day!! Try watching TV with the vacuum running three times a day It’s enough to make you quit TV and take up programming. Anyhow, during the time of my obsession, a couple senior coworkers gently suggested that I need more experience. I remember thinking:

Man, I’ve already been through school, I have an freak’n edumacation. I’m building sweet programs. How much more experience do I need?

Of course they were right. Since then, every year / month / day has brought heaps of new knowledge and experience – experience is one of those things that can only be acquired with time. My idea of the one-stop-shop crumbled when I realized that I couldn’t compete with discount hosting like GoDaddy / Dreamhost. I also realized that I enjoyed working in teams on large web applications rather than solo projects. Today I’ll occasionally meet an obsessive CEO, I’ll offer some advice, and smile. Good ideas tend to be self evident – they don’t require wikis and link farms to convince people. If you can execute your idea (develop it yourself) then your personal passion and drive will contribute to it’s success or at least provide you with irreplaceable experience – even if it is a hair brained idea.

If you’re interested, I still have the reseller account which offers reasonable domain discounts. Thanks to all my friends who tolerated me through those growing pains. :)

Author: Adam Kahtava Categories: Musings, Personal Tags:

More Thoughts on Blogging

April 14th, 2009

A couple more factors that have shaped my blog subscriptions.

Content matters, design doesn’t: Subscribers read your blog through RSS readers. Content is key, twitter widgets, plug-ins, and badges are self serving – they matter more to the blogger than their audience. If readers desire a more granular need-to-know-you level of information, then chances are that they already stalking you. If you’re a graphic designer then aesthetics do matter.

Debriefings on local events without a unique personal voice are lame (actually, anything without a personal voice is lame): Most subscribers skim, they seek out information and move on. Well written articles with a unique personal voice continue to draw me in. Information about the number of people who showed up, what you ate, or the decor of the venue are minor details. Seriously, I’ll email you if I’m interested.

Subjectivity is interesting: Reading / writing / learning is about considering alternative views and new opinions, there’s always a degree of subjectivity – nothing is absolute.

Some authors are always right, which is always wrong: A blogger’s blog is their domain, but it’s distasteful when an author defends their posts in an attempt to save face (to appear right all the time). Sharing opinions publicly is about collaboration, and validation, not being right or wrong.

Author: Adam Kahtava Categories: Musings, Personal Tags:

Transparency: How Much is Too Much?

March 7th, 2009

Gary Vaynerchuk offers this piece of advice:

The only way to succeed now is to be completely transparent, everything is exposed, everything you do – Gary Vaynerchuk

For most web / knowledge workers, transparency is key to cultivating an online presence – today, your online presence (your Google search results) is your resume, everything you do online is fair game – your search results (or lack of results) generally reflect whether you're an overall good-person, experienced, or a bit outdated.

A reassessment: last month the faltering economy finally hit home – I was out of work. While search for a new job, I was surprised that most potential employers (nearly all) were looking me up on Google. From Google they'd land on my blog, my Twitter account, flickr, and so on. In one of my interviews I was told of an unfortunate candidate that had questionable content and photos online – this was a deciding factor in his no-hire decision. This had me feeling a little uncomfortable and begged for a reassessment of my level of transparency.

Randy Pausch once said:

I'll [hire] an earnest person over a hip person every day, because hip is short-term, earnest is long term – Randy Pausch

I echo Randy's sentiments. If you're an earnest, authentic, and good natured person, then transparency can be a huge asset. You should be exposing everything you do! Well… maybe not everything, there's little value in knowing what you ate for lunch, or when you're sleeping / awake – practicing some self moderation and making use of your inner monologue is recommended, because excessive transparency can bleed into white noise.

no matter what remember the web is NOT Las Vegas. What happens on the web does NOT stay on the web. I'll bet this guy wishes he'd have remembered that. – Arcanecode, Guard your credibility

With applications like Twitter and Facebook it's easier than ever to be transparent, but do we run the risk of being too transparent? How much is too much?

Author: Adam Kahtava Categories: Interview, Musings, Personal, Twitter Tags:

Working On the Dark Side of the Technology Stack: A .NET Developer Working in the Java Community

February 26th, 2009

Over the past couple months I had the pleasure of working in a Java shop. Up to this point I've spent most of my time in the .NET realm. Working with Java was a great chance to experience the similarities and contrasts between environments, cultures, and web application implementations. Here are a couple of my observations.

Java developers are more knowledgeable than the typical .NET developer. Java developers tend to gravitate towards complexity, Linux, UNIX, open source, and continuous learning. They are less familiar with the wizards and drag-n-drop style development that often characterize .NET development. The Java developers I worked with didn't depend on a single unified IDE (like Visual Studio), instead each developer chose their text editor / environment (Emacs, Eclipse, TextMate, E-TextEditor, and jEdit were all being used on a single project). Each developer was responsible for being productive with their editor; and took responsibility for learning shortcuts, and other performance enhancing techniques. This broad use of editors placed an emphasis on the core command line tools which ensured that developers knew how the application was put together, and cultivated broad application troubleshooting skills within the team.

Unified IDEs (like Visual Studio or Eclipse) do not result in faster development, better developers do. Developers empowered with the ability to choose their development environment / text editors / operating system resulted in more passion and responsibility. Informal friendly rivalry between editor users drove development faster while providing diversity within the work place.  

Programming languages and technology stacks don't matter to experienced software developers. As a developer it's easy to become a fanboy of languages or technologies stacks, but… they don't matter – writing good software within the bounds of our project do. There's no reason to be tied to a specific language or technology stack. Sure, languages fall into a specific category (dynamic, static, classical inherited, prototypical inherited) but programming languages are very similar.

Steve McConnell has been saying this all along:

mastering more than one language is often a watershed in the career of a professional programmer. Once a programmer realizes that programming principles transcend the syntax of any specific language, the doors swing open to knowledge that truly makes a difference in quality and productivity. – Steve McConnell, Code Complete 2nd Edition