Archive for May, 2007


The Internet Domain Kingpin

Business 2.0 Magazine has a fascinating article on Kevin Ham, one of the top “domainers”. He reportedly owns about 300,000 domains that generate an estimated $70M per year in ad revenue.

Sheesh. No wonder I can’t find any good domains anymore.

No Code

Places with no phone number country code:

  • Western Sahara (Moroccan-controlled locations use 212)
  • Antarctica–McMurdo Base, Amundsen-Scott Base, others (Dialing is dependent on parent country of each base.)
  • Pitcairn Island (no connections to local switching; only satellite phones are dialable)
  • Kerguelen Archipelago (no permanent local switches)

Wikipedia knows all.

How People Talk About Difficult Things

Researcher Elizabeth Van Couvering recently published research results on how search engine employees think and talk about their work.

In the face of rising controversy about search engine results—that they are too restrictive, too comprehensive, lacking in certain areas, over-represented in others—this article presents the results of in-depth interviews with search engine producers, examining their conceptions of search engine quality and the implications of those conceptions.

She interviewed employees of Google, Yahoo!, MSN, Ask Jeeves, AOL, Excite, Lycos, Infoseek, and WebCrawler, and her report is remarkable in terms of the insider verbatim quotes. (The search industry is notoriously secretive, so getting people to reveal their inner thoughts about it is challenging.) Her analysis reveals that search industry insiders consistently portray themselves as fighting a war, that they justify much of their work in scientific terms — even when trying to deal with unquantifiable issues like public good — and that they understand in a deep way how their business is driven by profit motives.

Her work is on target. And not just for search; her observations apply to every technical group I’ve been part of or collaborated with, both within and outside of Microsoft. We all used similar language “schemas”. We talked about marketplace war, about science for science’s sake. We often shrouded ideology — “censorship is inherently bad” — in technical terminology — “I suppose the algorithm decided to demote that result because its relevance dropped during our last crawl. We don’t decide; the algorithm decides.”. Or, “Sorry, we can’t implement that feature, the current architecture doesn’t allow it and it would take way too long.” Frankly, it was often easier to fight such technical arguments than to fight the underlying ideological battles, because the latter approach generally ended in stalemate. So technical language became a tool for keeping non-techies from influencing product design, and it shielded teams from struggling with uncomfortable thoughts like, “Does any of my work have a negative impact on society?”. I believe this shielding pattern reoccurs broadly in many science and technology fields.

Elizabeth’s methodology — analyzing the actual words people speak — reminds me of ‘The Four Horsemen’: Why Marriages Fail, a radio story that aired on NPR in 2005. It’s an interview with a researcher who talks to couples about their relationships, then analyzes their word choice and emotional tone to predict whether they will eventually divorce or not. Apparently there are four strong predictors of divorce: criticism, defensiveness, contempt and stonewalling. And words that convey contempt for a partner are the strongest predictors of all.

The NPR piece is designed for a mass audience. Elizabeth’s piece is written for an academic audience. I recommend both.

Ruby on Rails Newbie Notes

I recently spent several weeks evaluating Ruby on Rails, and decided to go ahead and use it as the programming framework for some code I’m writing. (Alternatives considered: ASP.NET; PHP; JSP.) My experience thus far has alternated between exhilaration and humbling frustration. Heavy on the humble. Still, there’s more than enough great stuff to keep me hooked.

In the interest of helping other tire-kickers and fledgling Ruby on Rails programmers (RoRlings?) avoid a few pitfalls I’m going to post a few of my own learnings, observations, and embarrassments along the way. This is the first such post.

—-

Q: What the heck is Ruby on Rails, and why are you using it?
A: Ruby is a dynamic programming language, with a very clean and modern object-oriented programming library. See for yourself… there’s a neat interactive tutorial here. Rails is a web application framework written using Ruby.

I’m using it because…

  • I like the Ruby language. It’s clean. Lines of Ruby code read like English sentences. Expressing thoughts in Ruby code feels quite natural to me.
  • The Rails framework is well thought out. Its architecture and conventions make it obvious where to put all the bits and bobs that make up your application. The mesh between app code and the database is elegant. It works.
  • RoR is open source. This has come in handy for debugging a few times… it’s young, so there are functionality holes yet to be plugged, and of course some bugs. When in doubt, read the code. If it’s broken, patch your local installation and submit a fix.
  • There is a large energetic community of people contributing to the Rails libraries and adding third party plugins and integration shims of their own. This makes mundane programming tasks much easier… just search for a plugin that does what you need, install it, tailor if necessary, and go. It also means you can use a lot of other pre-existing software with ease… databases, mapping services, etc.
  • There are several good choices for dev tools, including RadRails, which plugs into the Eclipse IDE. Free. You can also do everything from the command line, including poking at your live app and running code experiments within the development console.
  • Rails is now supported by lots of web hosters, most of whom make it easy to host not only your app but also your development source code, typically using subversion as the repository. (I am blown away by the quality of subversion, by the way.)
  • Dave Thomas, a great computer scientist that I was lucky enough to work for one summer at OTI, is a huge RoR supporter. If it’s good enough for Dave, it’s good enough for me.

More:
Wikipedia has a good brief and factual overview.
These quick screencasts give you a taste for it.
There are several excellent books… the bibles of Ruby and Rails. I’ve found you really cannot learn Rails fully without these books.
There is also a wiki, which leads to everything else.

Is everything about Ruby on Rails this rosy? Well, no, of course not. It’s still young. But it’s worth a look. I’ll leave the shortcomings list for another time.