codahale.com٭blog

purchase ringtonestrue tone ringtonesbest ringtone siteburnin paul ringtone sean wechase the sun ringtone
Coda Hale lives in Berkeley, CA, where he writes about Ruby on Rails, usability, web design and development, and the occasional bit about bicycles.

Wrapping my head around Ruby (with just a hint of Rails)

I spent much of yesterday’s work day working on a screen-scraping script using Ruby, and wow it’s nice. I kept on finding that I was writing code I didn’t need to; Ruby can compress large, cumbersome structures into clean, readable bits of code. It’s parsimonious, but unlike Perl in that it’s not some inscrutable noise of ampersands and exclamation points.

When I first started learning about Ruby, I thought it was ugly. Way ugly. It didn’t have a sense of closure in its syntax, and it seemed more like the mutant offspring of Python and PHP than anything else. I hear that a lot from others, and it’s an indicator that they haven’t internalized the patterns that Ruby uses.

It’s amazing how much time you can save by using it.

(continue reading…)

Leave a comment »

Bad Design Kills: Sweet mother of God, Flash-only?

What the hell? Bad Design Kills is a pompous site in which graphic designers, angling for some work, talk about how important design is.

True, but…

WHY THE HELL DID YOU MAKE THE SITE FLASH-ONLY!?!?!?!

Why would you do that?

Why?

Aiyah…

4 comments »

Employed and busy

I finally managed to land a job: I’m a tech guy at Gilsson Technologies, and yes–that site is one of the things we’re going to be fixing over the next month or two. Yikes.

I’m commuting about 9-10 miles a day, which is great exercise, and it’s nice to be all woken up when we get to work.

I’ve been reading a lot about Ruby on Rails, and I’m really excited about possibly using it at work. The Pragmatic series seems to make the most sense to me. There was a good thread over at The Server Side between various Java–>Ruby converts (Bruce Tate, most notably) and Java diehards. I think the best idea is making sure Ruby has a home with the JVM.

Hopefully I’ll have more time to post in the future!

Leave a comment »

Making social networking software relevant: A Napkin Plan

Charlie over at This is going to be BIG! has very smart readers, one of whom–Gabe Morris–points out the flaws in existing social networking software. I’ve got some great ideas on how to fix this stuff, too.

How to Build a Social Network:

LinkedIn annoys people to the extent that it connects you without relevance. The basis for LinkedIn and Friendster’s automatic relevance is degrees of separation. But this has weaknesses – there are second degree contacts who I have very little in common with, while I am sure there are hundreds of people in the sixth degree and beyond that I would have plenty in common with.

Right now on Friendster I’ve got maybe 100 friends–the product of a drunken summer ‘03–very few of whom have anything in common. Some are just people I added not to be rude, some are bosom buddies, and some are acquaintances. Neither Friendster nor any other social networking software, to my knowledge, takes this into consideration. Instead, it lumps them all into the category “My Friends,” and recommends random selections from this hodge-podge of people to others as people they should get to know. How helpful. To solve this, a social networking site needs to provide people with the tools to quickly and easily describe their social networks. Easiest way to to this? Tags!

Here’s what I’m thinking. Each user gets to describe their contacts using tags, preferably tags which describe that contact’s relation to them. To seed this process, the software could have a set of recommended defaults: co-worker, ex, drinking-buddy, boss, annoying, douchbag, crush, meh, etc., etc. These tags need to be private, because otherwise it’s a public opinion, which limits the usefulness of the data. How many people want their boss to know that they tagged him with both “boss” and “douchebag?” You only get to see your own tags.

This would provide a better dataset to evaluate relevance: the software would recommend contacts which share the same tags as you. If you’re a bicycle nut, you get potential riding buddies; if you’re into radical feminism, you get hooked up with other femsexies; if you’re a douchebag, it’ll hook you up with all the other jerks. This shouldn’t be a deterministic process, however, otherwise it would limit recommendations to particular cliques. Weighting is essential, and I’m sure there’s some maths post-doc all full of coffee with a few ideas about how to tease further correlations out of this dataset.

So who wants to do this?

5 comments »

iTunes 6 vs Fitts’ Law: Apple’s HCI department is drunk again

A couple of weeks ago, I pointed out that Microsoft has forgotten where Apple’s menus are. I regret to inform you that now Apple has forgotten where Apple’s menus are, and more importantly, why they are where they are.

Given the relative usability of Apple and Microsoft products, it’s kind of sad to see Apple borrowing from Microsoft’s “horrible ideas of the 1990s” playbook, and yet–iTunes 6 for Windows makes several basic errors in UI design. Apparently controls with infinite heights are incredibly easy to forget about.

(continue reading…)

2 comments »