HN2new | past | comments | ask | show | jobs | submit | 2009-02-06login
Stories from February 6, 2009
Go back a day, month, or year. Go forward a day, month, or year.

This guy has gone to the zoo and interviewed all the animals. The tiger says that the secret to success is to live alone, be well disguised, have sharp claws and know how to stalk. The snail says that the secret is to live inside a solid shell, stay small, hide under dead trees and move slowly around at night. The parrot says that success lies in eating fruit, being alert, packing light, moving fast by air when necessary, and always sticking by your friends.

His conclusion: These animals are giving contradictory advice! And that's because they're all "outliers".

But both of these points are subtly misleading. Yes, the advice is contradictory, but that's only a problem if you imagine that the animal kingdom is like a giant arena in which all the world's animals battle for the Animal Best Practices championship [1], after which all the losing animals will go extinct and the entire world will adopt the winning ways of the One True Best Animal. But, in fact, there are a hell of a lot of different ways to be a successful animal, and they coexist nicely. Indeed, they form an ecosystem in which all animals require other, much different animals to exist.

And it's insane to regard the tiger and the parrot and the snail as "outliers". Sure, they're unique, just as snowflakes are unique. But, in fact, there are a lot of different kinds of cats and birds and mollusks, not just these three. Indeed, there are creatures that employ some cat strategies and some bird strategies (lions: be a sharp-eyed predator with claws, but live in communal packs). The only way to argue that tigers and parrots and snails are "outliers" is to ignore the existence of all the other creatures in the world, the ones that bridge the gaps in animal-design space and that ultimately relate every known animal to every other known animal.

So, yes, it's insane to try to follow all the advice on the Internet simultaneously. But that doesn't mean it's insane to listen to 37signals advice, or Godin's advice, or some other company's advice. You just have to figure out which part of the animal kingdom you're in, and seek out the best practices which apply to creatures like you. If you want to be a stalker, you could do worse than to ask the tiger for some advice.

---

[1] The ants are gonna win. Hölldobler and Wilson told me so.

2."There's no reason only poor people should have the experience" - TED video of Bill Gates (ted.com)
142 points by wyday on Feb 6, 2009 | 70 comments
Theist
110 points | parent
4.Why Your Startup Shouldn't Copy 37signals or Fog Creek (onstartups.com)
106 points by bdfh42 on Feb 6, 2009 | 49 comments
5.Yegge, Clojure, and Arc (fogus.me)
94 points by fogus on Feb 6, 2009 | 39 comments
6.How do you process credit cards? (37signals.com)
93 points by pchristensen on Feb 6, 2009 | 30 comments

so, to be clear, you noticed that pandora's box is closed and you figure it would be good to open it?
8.How Pixar Hires (edutopia.org)
78 points by brm on Feb 6, 2009 | 10 comments
9.Unix Time = 1234567890 On Valentine’s Day (feld.com)
72 points by peter123 on Feb 6, 2009 | 21 comments

"Eventually, Mr. Graham himself seemed to spurn the language"

Imagine how ridiculous this was to read while taking a break from working on HN, surrounded by windows full of Arc source I was in the middle of editing.

A lot of people seem to feel that a language isn't real unless the designer is talking to them every day. But that's not the only way languages happen. Nor possibly the best way. I feel like you get better ideas if you think in units of occasional essays rather than a stream of tweets. It seems likely the same will be true with language design.

11.Professor makes his mark, but it costs him his job (theglobeandmail.com)
65 points by mad44 on Feb 6, 2009 | 42 comments
12.Higher Order PHP (sigusr2.net)
64 points by mudge on Feb 6, 2009 | 28 comments
13.The Baby-Eating Aliens (overcomingbias.com)
63 points by Eliezer on Feb 6, 2009 | 23 comments
14.John Resig Talk: Performance Improvements in Browsers (ejohn.org)
53 points by babyshake on Feb 6, 2009 | 24 comments

Hiya. I'm one of the Copilot developers, so I thought I'd answer some questions.

The Akamai IPA thing is not "magic," and none of us think it is, but dumping a rambling technical diatribe onto Joel's blog would alienate a lot of its readership. We're talking on Hacker News now, though, so read on if you're curious what's going on and how Akamai's helping us.

There are two ways that an Internet connection can be slow: you can have insufficient bandwidth, and you can have bad lag. With Copilot, we're already doing just about all we can to minimize bandwidth with our raster-based format. We've got pretty fast compression algorithms, we dynamically pick compression levels on-the-fly, and because we're using existing VNC code under-the-hood, we do a good job sending across just the differences in your screen. Switching the protocol to be command-based (like X, or RDC) is the only real way left to improve bandwidth--and with our current developer resources, that's simply not feasible. The good news is that this discussion mostly ends up being a non-issue: relatively few customers actually have bandwidth saturation issues, and internet connection speeds are steadily increasing, so bandwidth's not generally a big concern.

That leaves lag. Most of the time, when customers complain Copilot is "slow," they're complaining about lag. Copilot gets lag in two places: on the network connection itself, and on the glorified echo-server (which we call the Reflector) that we use when none of our firewall bypass tricks work. We try really hard to ensure you connect directly, but sometimes you simply can't, so it's very important that the Reflector be very efficient.

About a year ago, I did some analysis to see how we could speed things up, and found that our Reflector introduced nearly a quarter second of lag in some circumstances--not terribly surprising, since it was literally the very first thing I wrote at Fog Creek, back when I was an intern. The design used one dedicated thread per connection with blocking I/O. On Windows, that type of design is very slow. I took a few weeks out and rewrote the Reflector to use overlapping I/O with thread pools. The resulting Relector now introduced virtually no lag, and as an ancillary benefit, used a fraction of the CPU and proved far easier to maintain. For the time being, our customers were really happy.

Unfortunately, over the last year, customers have complained that our performance is still sub-optimal. The problem's been compounded because firewalls are getting smarter, which is making our firewall bypass tricks fail more and more often. Even if the Reflector truly introduced no lag whatsoever, you're still gaining a lot of lag when you have a reflected connection, simply because your data has to make a full round-trip from you to the reflector to the other party.

That's where Akamai comes in. The main thing that Akamai's doing for us is dramatically reducing lag between our data center and our customers. That means your keystrokes get to the other side faster, the machine starts responding faster, and you get the graphical updates faster. Even though bandwidth hasn't increased, your Copilot experience suddenly becomes far more pleasant, because the machine feels much more responsive.

We're still monitoring our clients to see how much of a difference Akamai's making, but in general, what we're seeing is great. The bitrates for Akamai-enabled connections has gone way up, since the higher response rate allows our users to get more done in less time, and we've been able to pull of some stunts--like watching YouTube videos via Copilot--that were previously impossible over reflected connections.

Akamai's not a panacea, and what they're doing isn't magic, nor is it useful in all circumstances, but for a real-time application such as Copilot, it can yield a pretty dramatic improvement in exchange for very little developer time.

[EDIT: Fixed some snafus I caught when re-reading.]

16.Ruby’s Most Underused Keyword (rubyrailways.com)
50 points by sant0sk1 on Feb 6, 2009 | 12 comments

Amazon anecdote: I bought a very expensive Canon 70-200mm lens for my camera on a Thursday afternoon. I had the lens shipped overnight so that I could use it for a weightlifting meet to be held that Sunday. Unfortunately, amazon.com informed me, the item did not ship until Friday, which meant I would not get my product until Monday - This, for obvious reasons, was unacceptable.

So I emailed amazon. Twenty minutes later I got a CALL from Executive Customer Relations and they spoke in great detail about how they would ASSURE me I would get my product with Saturday delivery. They canceled the existing order mid-shipment and sent out another one with Saturday delivery AND killed the exuberant shipping charge. I got my product in time to use that Sunday and I was a happy camper.

That, my friends, is how you kick ass at business.


they imply that their advice is for everyone, and I am not sure it is...

I think it was Greenspun, but it might have been Strunk and White, who taught me this secret: Don't equivocate in print. Don't write like this:

"Here's some advice, which may not apply in your particular case: Do X."

or this (which you're more likely to see in actual writing):

"I think X."

Better to write:

"Do X."

or

"X."

Readers tend to understand that your writing comes from you, that it reflects a certain perspective and is unlikely to be universal truth. It's usually unnecessary to hammer this point home at the cost of cluttering up your sentences with clunky disclaimers that are always the same.

When you write, say what you think, straight out. [1] Don't settle for dull accuracy. If people get mad because something you say is wrong or overgeneralized, ask forgiveness, not permission.

37signals' work gets read and cited all the time because it is well written. One of the things that makes it so well written is that it's not larded up with apologies, disclaimers, and caveats. They assume that their readers are smart enough to figure out, without being told, that 37signals writes from a 37signals perspective and that your mileage may vary.

---

[1] Interestingly, speaking can be a different game. There's more room for artful equivocation. You can sell things with body language. You can vary the pace between telling it short and straight and telling it long and rambling. Novel-length writing is also different. We're talking about essays, here.

19.How Amazon.com is thriving in a horrendous retail climate (slate.com)
44 points by dominik on Feb 6, 2009 | 25 comments
20.Gmail Adds Multiple Inboxes (gmailblog.blogspot.com)
44 points by naish on Feb 6, 2009 | 15 comments
21.Domain Pigeon: Your Unintelligible Five Letter Domain Name Awaits (readwriteweb.com)
42 points by bemmu on Feb 6, 2009 | 20 comments
22.Why you shouldn't copy us or anyone else (37signals.com)
41 points by adityakothadiya on Feb 6, 2009 | 9 comments
23.Ask HN: Review my startup, mobify.me
41 points by ig0rskee on Feb 6, 2009 | 15 comments

I'm 37, and I had a recent experience with this.

I went on a few interviews, and I didn't get either job. I passed a phone screening, long brutal technical quizzes, and a few hours with managers. These were for senior dev positions, but I suspect most of the candidates were younger, maybe late 20s early 30s.

I didn't feel any age-related discrimination at all, but I still felt something was wrong. I started asking myself, "why am I standing here, at a whiteboard, showing an interviewer how to recursively search a binary tree?" "Why am I creating the primal of the dual and proving that the min of one problem is the max of the other under optimal circumstances?" I solved the problems, but maybe they picked up on something from me that shows... maybe a slight irritation or exhaustion.

I realized that it's not ageism. I was irritated with myself. Sure, I "shouldn't" be doing this for the umpteenth time, but the shouldn't is directed at me, not them.

If you've been in the business for over a decade, yeah, maybe you "shouldn't" be taking technical quizzes, but that's because you "should" have a reputation to stand on, not because interviewers should see your grey hair and decide that it's a stand-in for testing your technical chops! (I got into programming late, so even though I'm 37, I've only been seriously programming for about 10 years).

I remember Joel Spolsky (a big proponent of having devs write code during interviews) still said (I'm paraphrasing here) "if you're an independent film maker and Uma Thurman is interested in your film, you don't ask her to audition, you try to sign her!"

The top celebrities in our world tend to be the leads on extremely successful open source projects. While very few devs can get this "celebrity" status, you can still a smaller useful network - and really, how many job offers do you really need?

Speaking at conferences, working on open source projects, working on side projects, writing interesting articles in a blog are all good ways to do this. On a much smaller level, just being very helpful and engaged in your job, and producing good software can help.

I'm on that smaller level, but I realized "why am I doing this?" I called up my network, discussed some jobs, and got a nice senior dev/architect position pretty quickly. No technical interview was needed, because these folks had already worked with me on code plenty of times.

It's not ageism to say that your career and approach to development needs to change as you get older. Another line I loved from a movie called "surfing for life" - "age is inevitable, it's the growth that's optional".

25.TED: MIT Students Turn Internet Into a Sixth Human Sense (wired.com)
40 points by markup on Feb 6, 2009 | 9 comments

I am agnostic, so I can't vote, apparently.
27.Ask HN: How do you find a colorscheme for your project?
38 points by mixmax on Feb 6, 2009 | 34 comments
28.Should developers worry about ageism? (stackoverflow.com)
37 points by tyn on Feb 6, 2009 | 27 comments

They can say they had a cool date on Valentine's day.

No shit. It focused attention away from the brand, it was weird, and it raised a lot of criticism that attracted people who wouldn't have heard of the ad anyway.

I'm all for "edgy", and I love CP+B's work, but they were competing against Apple, and that means competing against possibly the best advertising machine on the planet. Apple has excellent reputation, they've got beautiful products, they were competing against a heavily-criticized product, and they had a brilliant two-pronged ad plan. Part of their ads only discussed product, and nothing else. No "Let's see people using this." No "Look at people using this in real life." It was, "We've made something beautiful." No more than that. It was the revolving iMac, the Macbook Air in the envelope, the rack of iPod touches, the chromatic Nanos, the many videos of the app store. Emphasis on "groundbreaking."

Meanwhile, they took out a heavy ad campaign against Microsoft. They made entertainment pieces. Slapstick. All of it gently teasing Microsoft. No hard edges: just two funny actors joking around. Even if it was unfair and imbalanced, even if Hodgman was the funnier of the two, it was fun, and it was fun like satire is fun. It didn't make the case that Microsoft was bad, it took that fact for granted.

Against this, CP+B put in an "edgy" ad. Weird stuff with Gates and Seinfeld joking. Only problem is, edgy is good when you've got two equal, generic products. CP+B's Burger King ads stand out because McDonald's has nothing. In this case, Microsoft is bland, but Apple is a hot product. It's one of the most fashionable brands on the planet, and even among hardcore tech geeks, it has a pretty good reputation. (Some people hate it, but some people love it.) Furthermore, it was a big risk, and Apple - seated in a comfortable niche - was able to launch attacks directed at the sole fact that it was a pricy and edgy campaign.

I'm interested in seeing how the "I'm a PC" ads end up doing. They're nice, even if they still have that feeling of Microsoft's avoiding talking about their product - and that, I think, is MS's Achilles Heel right now. They're a nothing brand. They're the biggest but they have no impressive positive reputation. Their computers are designed by other companies, none of which stand out. Apple, meanwhile, has an extremely tight product line and they control every aspect of their product, including ads.

Yeah, Microsoft is the bigger company, but they're at a disadvantage in this campaign. Apple has a definitive image. Microsoft does not.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: