Archive for November, 2005

24 Nov 2005

by Noel

The Rise of Intelligence

A recent study of human skulls covering a period of about 600 years shows the human skull has changed significantly. Facial features, particularly the lower jaw, have decreased markedly in size, and more intriguingly the size of the cranial vault has increased “by more than a centimetre” (presumably they mean a cubic centimetre). What does this mean? I don’t think anyone knows, but I’d guess the increase in processed foods means less need for strong jaws, and the increased brain size might explain why IQ scores are increasing over time.

Update: The increase in IQ over time is known as the Flynn effect. There are some good links here. Cranial capacity is proportional to body size, as discussed here. I haven’t been able to find the publications of the original study, so I can’t tell if they controlled for increases in body size. If not, then the increase in cranial capacity is likely not significant, as people today are generally larger than in the Middle Ages.

Posted in Fun | Comments Off on The Rise of Intelligence

24 Nov 2005

by Noel

Frag!

From The Scheme Way is a link to Frag, a first-person shooter programmed in Haskell. Neat!

Posted in Fun | Comments Off on Frag!

19 Nov 2005

by Noel

Rich Web Clients: The Revenge

Earlier this month Matt posted a provocative article on rich internet applications. Here’s a taster:

Ajax is a dangerous and immature technology. It is, in fact, a hack—a kludget—to provide rich-client functionality in the browser.

And here’s my equally blistering riposte.

Hear that sound? It’s the CEO of Oddpost, which was one of the first Ajax apps, and which sold for a reported US$30 million to Yahoo. He’s crying himself to sleep ’cause Matt said his technology sucked. My point is not (just) to lampoon Matt, but to point that Ajax does work, and is worth a lot of cabbages. Clearly a lot of people are using it so it can’t be that hard.

Matt says “Ajax (as currently exemplified by Javascript and XML over HTTP) is certainly only version 0.5”. Now I don’t think that is entirely fair. There a many toolkits and libraries that make developing Ajax applications easier and more robust. Debugging support isn’t so bad either. As for type checking…well I’m giving that one to Matt. At least for now.

So in conclusion I argue that’s Matt case is not proved. In your face Matt! Tune in next time when we kiss and make up. Or Matt gives me a black eye. :-)

Posted in Web development | Comments Off on Rich Web Clients: The Revenge

18 Nov 2005

by Noel

Raising the Barricades

Just after my last post about the difficulty companies have maintaining open communication as they grow in size and prominence I find that 37 Signals are turning off all comments on their blog.

I normally read 37Signal’s blog through an RSS reader, so I often don’t see the comments, but what I have seen does have a largely negative tone. I can understand 37Signal’s reasons but it does seem that by withdrawing from the conversation they’re harming their relationship with their community. Now JoelOnSoftware seems to be just as popular as 37Signals but doesn’t seem to have the same problem, so perhaps they offer a better model. Rather than having comments on each post, Joel has a number of discussion boards. Blogs (or at least blog comments) aren’t the greatest thing for building community as there is clearly a difference in power between the blog authors and the comment writers. Discussion boards are much more egaliterian and hence offer less opportunity to brew discontent.

Posted in Business | Comments Off on Raising the Barricades

17 Nov 2005

by Noel

Authentic is the Authentic Black

It’s pretty rare that I agree with anything that Joel writes on his blog “Joel on Software”. However, when he discusses<a
href=”http://joelonsoftware.com/items/2005/10/30.html”>his site redesign he hits on something that rings true:

A long time ago I paid a top web designer, Dave
Shea, who created a stunningly beautiful design for me to
use. It ended up looking a little bit too shiny, though, so
I never used it. This is a site designed by me, badly, using
my poor Corel PHOTO-PAINT skills and my crappy amateur
photos and my affection for the font “Georgia” and my poor
eyesight (thus the largish font). … The more it looks like
it was designed by a geek, not a graphic designer, the
happier I am, because I am a geek.

Authenticity is a big deal; perhaps the big deal for small companies. When people contact a small company they want to talk to someone with a name, not a random customer support droid. They want to feel a personal connection to that company, and perhaps that a little part of their success is due to them. Building this connection is one reason we write Untyped, and also why we have our <a href=”/about/index.php”>dream offices</a> on our web pages. It also goes the otherway: by
personalising our web presence we feel a bit more like it’s ours. In this early stage we aren’t working to build our careers, we working to fulfill our passions, to build our dreams into reality, and this sense of ownership is important.

What happens when a small company gets bigger? This is were trouble hits: they <a href=”http://en.wikipedia.org/wiki/Jump_the_shark”>jump the shark</a>. This might be the death knell for TV shows, but normally companies just keep on getting bigger. Except now people aren’t using their products out of any attachment to the company, but because they are forced to. The signs are that <a href=”http://www.cultureby.com/trilogy/2005/08/google_brand_an.html”>Google</a> and <a
href=”http://37signals.com/svn/archives2/have_we_jumped_the_shark.php”>37 Signals</a>, both companies we respect immensely, are tettering on the edge.

Is there anything that can be done about this? I’m not sure. It’s a fact that as more people join a company you can’t expect to know all of them, and vice versa. A lot of companies spend a lot of money to try and project a single voice, but this is really a symptom of the problem. Perhaps the thing to do is let the babble overflow the corporate boundaries, and let people make their own connections with those inside, just like they used to? It the opposite of standard marketing thinking, which is all about protecting the brand, but perhaps showing the human reality is the way to keep communication personal. Either way, it will be a long time before we find out.

Posted in Business | Comments Off on Authentic is the Authentic Black

17 Nov 2005

by Noel

Companies and Social Software

Interesting post by Grant McCracken on the impact social software will have on the corporation. He sees a struggle between the “Old Guard” defending the unified corporate voice, and the upstarts who want bring the messy reality to the corporation’s communication. I swear I didn’t read it before my most recent post but it confirms my thoughts.

Posted in Business | Comments Off on Companies and Social Software

4 Nov 2005

by Noel

Rich web clients

Matt likes to provide the dissenting Ajax voice here on untyping.

As overhead on Slashdot:

‘Zimbra’s chief executive, Satish Dhamaraj, says that when he started his company in December 2003, “I really thought that Ajax was just a bathroom cleaner.” Now his San Mateo, Calif., business has amassed $16 million in funding from venture-capital firms including Accel Partners, Redpoint Ventures and Benchmark Capital, the firm that famously funded eBay Inc. Peter Fenton, an Accel partner, says Ajax “has the chance to change the face of how we look at Web applications” and could boost technology spending by corporations, because Ajax is also being used to develop software for big companies, not just for consumers.’”

Ajax is a dangerous and immature technology. It is, in fact, a hack—akludge—to provide rich-client functionality in the browser.

While I’ll acknowledge that Javascript was intended from day one for interacting with the DOM, building entire applications that are predicated on dynamic, untyped tree-transformations is suicide (at best) without significant software development experience and rigor. With that rigor, it’s just dangerous.

What do I mean? Pretend that every HTML element has a shape. If that’s the case, then a document with a series of paragraphs might look like:

Tree1
In this picture, the octagon represents the body tag, and the circles represent the paragraphs. If emphasis tags look like a small square, then (zooming in) our picture might look like:

Tree2
Unfortunately, to make Ajax work, you have to constantly reorganize this tree. The tree is everything: it is the UI, it is the content, and it is the data for the program you are writing. And, I can casually replace any one node with a new node of a different type, or I can insert whole, new subtrees.

Anywhere. Anytime. And, without any validation or safety. So, I can take my first picture, and insert an entire copy of it anywhere I like:

Tree3
The only problem with this is that, if the octagon is a body tag, this iscompletely invalid HTML. But that’s not the worst of it; the tree representing all of my interface, content, and data is a massive, and complex, piece of state. So, after part of my program modifies the tree, I have to forever remember that the state has changed. Keeping track of state is already a dangerous part of programming; it is the cause of crashes in unithreaded programs (memory leaks, for example), and a source of huge problems in multithreaded programs (via problems known as deadlock, livelock, race hazards, etc.). This is why Google Mail and other Ajax-y applications are a miracle of hackery: the fact that they run, without completely buggering up constantly, is a nothing short of a holy intervention on the part of some higher being.

Given that the compiler does nothing to check your typing, and that you have almost no run-time debugging support, Ajax (as currently exemplified by Javascript and XML over HTTP) is certainly only version 0.5 as tool or solution for web-based development goes. Or, perhaps it is just part of a space of tools, where some produce very portable/accessible applications, while others allow the developer to produce richer, more interesting applications (while sacrificing portability).

Spectrum
It may be that Ajax is just the most portable, and least rich/safe way to develop applications for end-users at the moment. Rich clients, likeOpenLaszlo, represent a greater level of safety, as well as a much richer set of tools. Widgets, like Apple’s Dashboard and Yahoo’s Widgets (formerly Konfabulator, an excellent, cross-platform predecessor to Apple’s Dashboard) provide some of the ease of development of the WWW with much of the richness of the desktop—yet there is a run-time engine that provides a modicum of protection and safety for the end-user. And, of course, desktop applications: they sacrifice portability, but give you the full power of the host machine.

I started this post with a quote about people investing millions in Ajaxy technology. People investing millions in Ajaxy startups scare me; they’re sheep, following the herd. However, Ajax (as exemplified by Javascript and HTML) will mature, and we’ll see tools and frameworks develop that will make application development “safer” and less hack-and-slash. Or, it will be abandoned, the <BLINK> tag of the new millennium.

Then again, PHP exists, and it’s a large, steaming turd of a language that grabbed significant market share entirely too easily. So, what can you do?

Posted in Javascript | Comments Off on Rich web clients

3 Nov 2005

by Noel

Nokia’s New Browser Breaks Nokia’s New Browser

I’ve just read a post about Nokia’s new web browser for mobile devices. It is based on WebKit, which is developed by Apple for its Safari browser and in turn is based on KDE’s KHTML component. Now, in a piece of delicious irony, the page where Nokia tout their new browser crashes Safari! And Mozilla! And in fact every browser apart from IE 6. Oh dear.

Posted in Fun | Comments Off on Nokia’s New Browser Breaks Nokia’s New Browser