Monday, August 28, 2006

Cool gadgets += Chumby

Chumby Industries

I want one! (or two or three)

It would make a good build/test monitor. Or an electronic picture display for my mother. Or any number of other things.

Friday, August 25, 2006

Internet Explorer in Firefox !

Check out this Firefox add on that lets you use IE to access Firefox unfriendly sites within a tab in Firefox!

Friday, August 11, 2006

Keeping Up

I continue to be disappointed with how little most technical people do to "keep up". To me this is a profession that changes fast and you need to work to keep your skills and knowledge current.

(Actually, that's not totally true. I'm just addicted to learning (and hopefully applying) new stuff and I can't understand why other people don't feel the same!)

I understand that people are busy at work and have lives outside of work. But it's like not having time to service your car - sooner or later it's going to get you in trouble (or cost you money).

Here are my suggestions for keeping up:
  • read technical books (e.g. one per month)
  • read technical magazines (even the ads can tell you things)
  • subscribe to a few blogs (but not 100!)
  • listen to technical podcasts (e.g. during commutes or walks)
  • work on a personal project (something you choose)
  • write your own blog (writing is an important skill that requires practice)
  • learn new software (language, tool, framework, os)
  • read code (something different than you work on all day)
When I interview programmers I often ask whether they've read any computer books or magazines lately. Almost always the answer is "no - I do my reading on the web". The web is a great resource, but surfing the web is no replacement for reading a good book. (I'm not talking about C++ for Dummies.) Magazine type material may be available on the web, but will you really find it and read it the same way you would a magazine?

Also, I think it's important not to have too narrow a focus. Regardless of what you actually work on, you can get valuable ideas from other fields. If you develop in Windows, take a look at Linux. If you use J2EE, take a look at Rails. Learn from biology and sociology. Have you read Godel Escher Bach?

Try to get a mix of specific technologies (like .Net) and general concepts (like Refactoring) Unless you have a specific need for it for your job, my personal opinion would be not to bother with "certifications".

Keeping up doesn't always mean the bleeding edge either. You can learn a lot from the "classics" like Mythical Man Month or Structure and Interpretation of Computer Programs.

Books can be expensive, but if your employer has any sense they'll be happy to pay.

Personal projects are a little different from reading, but equally important. After all, in the end, it's not what you know that counts, it's what you do with it. Google encourages their engineers to spend 20% of their time (1 day a week) on their own projects. Whether or not your employer does this, working on your own projects is a great way to learn. And maybe even produce something useful! (A lot of Google's products started out as personal projects.)

You are not the user

I recently read Ambient Findability. Despite the uninformative title, I found it quite an interesting book. One of the items I like was this: (summarized)

You are not the user.
A programmer designing a system is usually very different from the end user.
The experience is the brand.
The "brand" isn't just the pretty logo, it's the user's experience with the product.
You can't control the experience.
Whether you like it or not, the user is in control. You can't predict (let alone control) what they'll do.
Of course, we all "know" these things, but it doesn't hurt to be reminded!

Thursday, August 10, 2006

A Web Annoyance

One thing that really annoys me for some reason is web sites that insist (require) that you enter credit card numbers without spaces! Even O'Reilly, who pride themselves on their web site, do this.

Doesn't anyone consider that it's much easier to read and verify a 16 digit number when it's broken into groups of digits by spaces? And that maybe they do that on the card for a reason?

How hard can it be for the order processing software to strip out spaces? I've got to think that's a one liner in any mainstream language.

Considering they're trying to get our money, you'd think they'd want to make it as easy as possible! It's yet another example of why such a high percentage of on-line orders are abandoned.

I understand ending up with usability issues. I'm sure my company's software has lots. But this seems like such a basic thing and so easy to fix that I can't understand why it's so common.