Friday, July 30, 2004

reading speed

According to this test, I read somewhere between 800-900 words per minute. Woo-hoo! Way too much YA fiction as a child, I suppose; I read over 250,000 pages during my fifth grade school year.

Though, there are a few flaws in the test. You have to scroll down once you're finished with the first screenful, and you can't read very fast while you're scrolling. The other problem is that the test passages are mostly fiction and fiction is way easier (and faster) to read than non-fiction, at least for me.

Thursday, July 29, 2004

Paul Graham on hackers

I was reading Paul Graham's essay entitled Great Hackers this morning. He seems to have clearly and concisely enunciated several opinions that are common among techy people, although he is somewhat extreme in his views:

Great programmers are sometimes said to be indifferent to money. This isn't quite true. It is true that all they really care about is doing interesting work. But if you make enough money, you get to work on whatever you want, and for that reason hackers are attracted by the idea of making really large amounts of money. But as long as they still have to show up for work every day, they care more about what they do there than how much they get paid for it.

I'm not sure that this is entirely true; it seems to assume no other especially interesting and/or time-consuming hobbies. A really good programmer might make a pile of money and decide to quit her job completely, because what she really wants is to only program when she wants, on things she's interested in, and no job can guarantee that all the time. Instead she gets a pilot's license and travels around the world for a couple of years. Of course, she would have to bring along her laptop.

A great programmer might be ten or a hundred times as productive as an ordinary one, but he'll consider himself lucky to get paid three times as much.

This is a fact that often seems to be completely ignored by management. All programmers are not created equal. It's not even that the best programmer is twice as good as the worst programmer. The worst programmer should actually count as a negative when it comes to calculating man-months (which are mythical anyway, as we all know), since he probably makes mistakes that waste everyone else's time. No, the best programmer is certainly orders of magnitude better than even the average programmer, and should be valued accordingly. I say this as an about average programmer, myself.

Here's another interesting quote:

When you decide what infrastructure to use for a project, you're not just making a technical decision. You're also making a social decision, and this may be the more important of the two. For example, if your company wants to write some software, it might seem a prudent choice to write it in Java. But when you choose a language, you're also choosing a community. The programmers you'll be able to hire to work on a Java project won't be as smart as the ones you could get to work on a project written in Python.

[...]

Business types prefer the most popular languages because they view languages as standards. They don't want to bet the company on Betamax. The thing about languages, though, is that they're not just standards. If you have to move bits over a network, by all means use TCP/IP. But a programming language isn't just a format. A programming language is a medium of expression.


This is a very good point. I code primarily in Java nowadays, and Java is awesome in that it takes care of a lot of details for me and prevents bugs like memory leaks, but it makes me lazy. I think ideally companies should hire programmers that are skilled in multiple languages, and give them the freedom to choose from a (small) set of languages when starting on new projects. Different types of projects call for different implementation languages.

His thoughts on office space are dead-on:

After software, the most important tool to a hacker is probably his office. Big companies think the function of office space is to express rank. But hackers use their offices for more than that: they use their office as a place to think in. And if you're a technology company, their thoughts are your product. So making hackers work in a noisy, distracting environment is like having a paint factory where the air is full of soot.

The cartoon strip Dilbert has a lot to say about cubicles, and with good reason. All the hackers I know despise them. The mere prospect of being interrupted is enough to prevent hackers from working on hard problems. If you want to get real work done in an office with cubicles, you have two options: work at home, or come in early or late or on a weekend, when no one else is there. Don't companies realize this is a sign that something is broken? An office environment is supposed to be something you work in, not something you work despite.


Regardless of the reason, whether it's productivity or something else, engineers usually demonstrate a clear preference for offices. We had a engineering satisfaction survey at work earlier this year, which posed the following question, "Given the exact same space (same size, desk area, window access, etc.), I would prefer to work in a... (a) Cube (b) Office (c) Don't care (d) Other." 70% of respondents answered (b) Office, 8% answered (a) Cube, and 17% answered (c) Don't care.

On managing engineers:

Hackers like to work for people with high standards. But it's not enough just to be exacting. You have to insist on the right things. Which usually means that you have to be a hacker yourself. I've seen occasional articles about how to manage programmers. Really there should be two articles: one about what to do if you are yourself a programmer, and one about what to do if you're not. And the second could probably be condensed into two words: give up.

The problem is not so much the day to day management. Really good hackers are practically self-managing. The problem is, if you're not a hacker, you can't tell who the good hackers are. A similar problem explains why American cars are so ugly. I call it the design paradox. You might think that you could make your products beautiful just by hiring a great designer to design them. But if you yourself don't have good taste, how are you going to recognize a good designer? By definition you can't tell from his portfolio. And you can't go by the awards he's won or the jobs he's had, because in design, as in most fields, those tend to be driven by fashion and schmoozing, with actual ability a distant third. There's no way around it: you can't manage a process intended to produce beautiful things without knowing what beautiful is. American cars are ugly because American car companies are run by people with bad taste.

Many people in this country think of taste as something elusive, or even frivolous. It is neither. To drive design, a manager must be the most demanding user of a company's products. And if you have really good taste, you can, as Steve Jobs does, make satisfying you the kind of problem that good people like to work on.


Lastly, here's a quote about talented people in general:

Because you can't tell a great hacker except by working with him, hackers themselves can't tell how good they are. This is true to a degree in most fields. I've found that people who are great at something are not so much convinced of their own greatness as mystified at why everyone else seems so incompetent.

This rings true; what appears as false modesty to others is probably just ignorance. After all, if you consider yourself the norm, why shouldn't everyone else be just as smart or fast or talented as you?

Anyway, I'm glad I took the time to read through the whole essay. Graham's ideas are original and quite discussion-worthy, and more impressively (for a technical person), they are presented in vivid and well written detail. Go read it!

Tuesday, July 27, 2004

LAN party

I've been invited to a Starcraft LAN party. How geeky am I?

I haven't actually played Starcraft in about 3 years, so this should be interesting...

Monday, July 26, 2004

feature request for PayPal

This insight came in an email from a friend this morning:

"PayPal is un-Chinese because it doesn't let you refuse money."

Sunday, July 25, 2004

seagulls

Went to go see the A's play the Rangers today. It's the second time in a month I've seen Rich Harden pitch, and he's very impressive in some ways (pitch speed, strikeouts) and not so impressive in other ways (control, walks). Here's hoping his control improves, quickly.

There was a brilliant defensive play sometime in the middle innings, when it was still close; Mark Kotsay gloved a ball just over the fence and robbed Teixeira of a 3-run homer which would have made the score 4-3. Soon after that, Eric Byrnes hit a 2-run shot and it was pretty much a blowout from there on out.

Sometime during the bottom of the eighth, the seagulls started to circle above us. A friend and I were trying to figure out how the seagulls knew when to show up; did they just know that weekend games would end around 4pm? Did they wait until some cars started to leave the stadium? Did people start to throw their food on the floor? It must be a pretty good method, because I've been to many a baseball/football game, and the seagulls have shown up every time, without fail.

Friday, July 23, 2004

pro sports

There's been a lot of talk lately about Kobe Bryant being selfish. With both Phil Jackson and Shaq leaving, it does seem like Kobe must be making noise and forcing the team to give him what he wants.

I was discussing the whole Lakers debacle with my roommate last week, and I came to the following conclusion: Kobe is just a guy trying to advance his career.

Imagine for a second that Kobe works for a typical Fortune 500 company. He has a regular job, but he's very talented and sees a lot of potential for career growth. However, he feels that one of his co-workers (Shaq) is getting in the way of his career advancement, and he also doesn't really get along with his team lead (Jackson). It's not that he and his co-worker don't do good work together, but he feels that he could do better (and get more recognition) flying solo. If I were in that situation, I'd talk to my boss (aka the Lakers front office) about rectifying it, and I imagine most other people would too.

The problem is that with pro athletes, we (the public) don't like to think about the fact that playing ball is their job. We like to imagine that they all play purely for love of the game, loyalty to the team, and the pleasure of the fans. Career ambition isn't palatable to sports fans; it's fine in a 9-5er, but it isn't okay in a pro athlete.

As a footnote, I really wonder if this whole selfishness question would have come up if Kobe wasn't being tried for rape. Regardless of whether he's guilty and/or convicted, Kobe has lost a lot of good faith, and people are way more eager to brand him as a selfish pro athlete than they were before.

Sunday, July 18, 2004

new shoes

I just got some new basketball shoes last week, and played with them this morning. They're the "And 1 Madness Mid", in black and silver. Look to the left and drool.

Actually, they were pretty cheap, especially since "big kids" sizes run about $20 less than the men's (for the exact same shoes!). I've never really understood it, but I've always taken full advantage.

I thought it was a justified purchase. The treads on my old pair are all flat and there are really truly holes in the lining. I didn't want to injure myself wearing ratty old shoes. That's what I told myself, anyway.

Thursday, July 15, 2004

Scandinavia pictures

I finally got around to sorting through the 800+ pictures we took in Scandinavia.

Here's a sampling:

Copenhagen

Legoland

Skagen

Gothenburg

Oslo

Stockholm

Friday, July 09, 2004

it's alive!

I finally got a Gentoo installation up and running on my "new" machine, by downloading yet another version (2.6.7-gentoo-r8) and compiling pretty much the full kernel.

At first, networking was still broken, but I poked around in the Gentoo forums and read something about strange interactions with APIC (or ACPI?) neither of which I needed, so I took those out of the kernel and then everything worked beautifully.

I set the hostname as "stud-finder", which is something of an inside joke, but still goes with my theme.

Next up, a fresh installation of Windows 95 for my eight-year-old Pentium Pro 200, aka "the-wrench". RedHat 7 + Gnome turned out to be too damn slow.

Thursday, July 08, 2004

campaign contributions

I just spent the last 10 minutes typing zip codes into this campaign contribution search site. I guess this kind of information has always been publicly available, but it's fascinating (and a little scary) to be able to get it so quickly and easily, thanks to the internet.

Wednesday, July 07, 2004

bloglines

I recently started using bloglines, a feed aggregator.

When I started this blog, I checked a box for "Publish Site Feed" but I didn't really know what it meant. After reading a bunch about the Atom-RSS war and all the ways that people were starting to use feeds, I decided I should at least try out a web-based aggregator.

After several weeks, I've gotten used to going to a single website to see all of the latest from Slashdot, Plastic, and dozens of other discussion sites and blogs. Bloglines is a great site; lightweight, easy to configure, and works great on several browsers (although I'm still getting used to the new UI, which got pushed out today). I do have one feature request: I often click on "Display" to get all the latest, and feel compelled to read through all of the new posts. I wish there was a way to say, "I've read all the posts up to here, save the rest for later."

Though I do wonder, if everyone starts reading online content through aggregators, if content providers will be able to keep relying on advertising for revenue? It would suck if ads started getting incorporated into the feeds themselves.

Friday, July 02, 2004

computers suck, yet again

I inherited a 4-year old Pentium III 500 a few weeks ago, and decided to try out a new OS: Gentoo Linux.

Since I've never installed any distribution except RedHat, I invited a friend over to help me; he'd recently installed Gentoo on a couple of systems, and had the CD lying around.

We spent awhile walking through the (pretty well documented) installation process, and finally started to compile the kernel. After we got back from dinner, we rebooted the machine, and guess what, it froze during the init sequence.

His next idea was to boot up Knoppix (an awesome "rescue" CD version of Linux) and copy over the config to feed to genkernel. Unfortunately, it was pretty big, and the subsequent kernel compilation ran until about 1:30am before we gave up and went to sleep. The next morning, I rebooted the machine, and guess what, I got a kernel panic during USB Mass Storage initialization.

I guess the next step is to download a new kernel.

 

This is my personal blog. The views expressed on these pages are mine alone and not that of my employer.