Alan Kay has turned seventy! He was born 1940 May 17.
To commemorate the occasion, Ian Piumarta and Kim Rose – colleagues of his at the Viewpoints Research Institute – have compiled a book of essays and stories:
Points of View is a collection of previously-unpublished essays written to celebrate Alan Kay’s 70th birthday. Twenty-nine luminaries from diverse disciplines contributed original material for this book.
I thought maybe I’d start blogging there, but then I discovered that if you want to link to something, you can make a “link post” – which lets you describe one link. And if you make a “text post” you can’t put any links in it! (Maybe using the post editor’s awful HTML mode it’s possible. I was so shocked I didn’t try.)
And what about doing something sane like allowing wiki-like markup? Well, at least tumblr does let you use Markdown (but I don’t like Markdown – but maybe I just don’t understand it well enough).
Sigh. Is this kind of thing ever going to get any better?
Maybe I should stop whining and go build something awesome. ;-)
I just rediscovered (the transcript of) Richard Hamming’s 1986 talk You and your research. From the introduction:
This talk centered on Hamming’s observations and research on the question “Why do so few scientists make significant contributions and so many are forgotten in the long run?” From his more than forty years of experience, thirty of which were at Bell Laboratories, he has made a number of direct observations, asked very pointed questions of scientists about what, how, and why they did things, studied the lives of great scientists and great contributions, and has done introspection and studied theories of creativity. The talk is about what he has learned in terms of the properties of the individual scientists, their abilities, traits, working habits, attitudes, and philosophy.
It’s long, but it’s quite an interesting read. One of the points – if not the main point is this: Being diligent and hard-working isn’t going to get an effect named after you – you have to work on the right stuff.
I recently watched a talk by Simon Peyton Jones about how to give a good research talk. As always, he was funny and lucid and awesome. His main point: your talk is an advertisement for your (research) paper, and shouldn’t be full of gory details, but rather should tantalize the listener into wanting to read the paper. Thus, you need to be succinct, enthusiastic, and concrete.
Hamming says some of the same things, and both agree that “selling” both yourself and your work is very important.
Last spring or summer (I forget), during my brief infatuation with the JVM, Scala, and Clojure, I had an idea. It was inspired by the neat technology that a Portland-based company, Jive Software, had created. Roughly speaking, their products are “groupware”, but since that’s not sexy any more (if it ever was) they instead call it Social Business Software. Everything is web2.0 and social these days.
Anyway, my idea was to take their idea and bend it. Their software requires, if I understand it, some server infrastructure to run on. This is fine if your company is big enough that you already have in-house IT people who know about hosting on the JVM. But what if you’re a ten person company, and your business isn’t technology? Is there a way to do simple (but sexy) collaboration and sharing?
Google Docs is one solution, but it only solves the document-sharing piece, and it also requires that you first somehow move all your existing documents into Docs. And you probably want to run it under your domain (if you have one)... I think anyone trying this will end up needing to have some Internet and networking savvy. What if that could be avoided?
My idea, roughly speaking, was to have everyone on the local network install a small binary – at the time I had this idea it was going to be written in a JVM language and run on the JVM – that would index your local files and perhaps email (and chat?) data, and then do two things with it:
- make it available locally in some uniform fashion (perhaps using a local web server)
- replicate it to all the peers on the local net
The idea is to make all of the “intellectual capital” of our small “enterprise” easily findable and searchable, and also, because it’s been replicated, durable. As long as the office doesn’t burn down, all the data is available on all the machines, so if one goes south, it’s easy to swap out its hard drive, or indeed the entire machine; as soon as the new (or revived) machine is plugged back into the local net (and our spiffy little server installed) it sucks all the bits over from one or more of its peers, and is ready to go.
I haven’t looked too deeply into it yet, but CouchDB seems to provide the indexing and replication that I was looking for. It’s not terribly easy to install at the moment, but that will improve.
Of course, there isn’t – yet – anything like Jive SBS running on top of CouchDB...
I’ve been quiet for far too long. I thought I’d break the silence and begin documenting what I’ve been working on, thinking about, and discovering in the last few months.
Even though I didn’t write much about it, in January 2009, and from late August to late October 2009, I worked a lot on the HC08 muforth code. I need to get back to it – I made great progress and had a lot of fun bootstrapping myself from nothing (hardware-wise), but I still need to finish the target compiler, make some USB boards, and write a USB stack!
I also moved, in late November 2009, from Portland OR, to El Cerrito CA (in the San Francisco Bay Area). The move was (is) provisional – I’m here with very little of my stuff – the rest is in storage in Portland – and I’m supposed to be figuring out my next steps... ;-)
Much more interesting are the ways that I’ve been wasting my time. Most recently, for instance, I revived my latent interest in Java, which had been originally sparked by my “discovery” last year of the Scala language, and this great talk (slides) by Martin Odersky, Scala’s creator.
I tried to get excited about Scala, and nearly bought the book (on several occasions), but in precisely the same way that I failed to get excited about and learn Python or Ruby, I failed with Scala. Instead I stumbled over Clojure, and obsessively read all the documentation and watched every video I could find of Rich Hickey. Clojure is really cool. I still haven’t used it for anything, but it is (for me) by far the most compelling of the JVM languages. If it had static typing it would be even better. ;-)
But, as much Clojure seems really awesome, I don’t really care about the JVM. Nothing that I do or want to do is tied to it. I totally get why people care about this, though. I don’t.
Even so, I was curious for a while – and during that period of curiosity (March 2009, according to delicious) – I decided to explore the world of Eclipse – the Java IDE, rich client platform (RCP), dessert topping, and floor wax. And – oh boy! – it really is a world unto itself. I watched Mark Dexter’s tutorial videos. I imported some small projects and tried to explore them. Even though I was deeply impressed by what the Eclipse team had achieved – a very aesthetic, functional, and cross-platform IDE – I never did much with it.
Time passed, I worked on my muforth project, I moved down here to California.
Then, a couple of weeks ago, for some reason I started thinking about Java and Eclipse again. Occasionally this crazy idea I have – to write a simple compiler for the HC08 in Java – keeps cropping up. I followed it a bit farther this time, at least as far as really digging into the pieces that make up Eclipse. What p2 and RCP and RAP really mean. All that stuff. I’m still impressed. (Especially with Mylyn – these two talks by Mik Kersten, Mylyn’s creator, are quite interesting.)
I thought, briefly, that it would be cool to dig into the guts of Eclipse – to really understand the RCP (rich client platform), and help people write apps using it. But every time I dig into anything that has to do with Java, I start to feel a bit queasy. I start to wonder: why is Eclipse so big? (The Java IDE download is about 90MB; with source code included it’s more like double that.) I just read somewhere that it’s on the order of 5 million lines of code! Wow! This is, on the one hand, impressive: they’ve gotten a huge code base like that to work, to work well, and to be useful.
OTOH, does it really take that much code? Squeak – an open-source Smalltalk system – can do much of what Eclipse does, but the Squeak system, including source is about 20MB (this is Squeak 4.1). This is an order of magnitude smaller – and to make this a fair comparison we really should include the source and binaries of the Java JRE or JDK in the size of Eclipse. In this case the ratio is more like 20:1.
This feels like a bit of an embarrassment for Eclipse and Java...
But it doesn’t really matter to me. Every time I used Squeak it drove me crazy within an hour – as much as I wanted to like it. I believed in it – it was (and is) a convivial tool. But its insistence on using the mouse for everything (at least Eclipse has tons of keyboard shortcuts) and curious bugs with the settings and fonts that I seemed to always stumble over, caused me to give up on it, over and over. It’s been several years since I checked in with Squeak.
And I’m doing the same with Java. In 2000 I looked into using Java to put up this site (my personal web soapbox). I started digging into all the Apache Java technologies that I would need, and the list just grew and grew. I started to get a bit crazy, and when I finally figured out that I couldn’t run Java on my FreeBSD server machine, I was saved. I successfully ignored Java until my interest in Scala last year pulled me back in, a bit...
But as slick and beautiful as Eclipse is, I still prefer to sit at a text console (or terminal window) and write Forth code, knowing that my entire language is implemented in two thousand lines of code. It gives me a warm feeling that so little code can “represent itself” and also be a cross-development environment. (Actually, the cross compiler is another two thousand lines or so. ;-) Another embarrassment for Java and Eclipse? Possibly.
Read the 2009 journal.