No, I didn’t suddenly become a hundred times more prolific; I just went ahead and published a couple of articles that had been sitting on the back burner for a long time. For better or worse, they’re out there, and my list of things to do is (almost imperceptibly) shorter.
Archive for November, 2007
I’d been thinking along similar lines for a new project (which is expected to be a sort of testbed for a web services architecture). It’s a web service meant for use by third parties.
I decided, after thrashing around a bit, that machines that reside outside our firewall should be treated like end users: the interface presented is presentation logic. The fact that it is a web service is immaterial; it is distinct from the bare RESTful API to our business rules that we present to internal applications.
The application layer is what makes a process “presentable” to outsiders. It may mean consolidating several actions that are internally seen as distinct into a single operation; or adding authentication and data validation; or conforming to externally-imposed specifications (e.g., presenting an external SOAP interface); or information hiding to allow for future changes to your model and business rules.
The OLPC project is laudable even on the basis of its stated goals; but I think there’s more going on here. As this article describes, the OLPC device is by its nature subversive. But why assume that that subversion will only take place in the underdeveloped countries that are the ostensible market?
After all, I want one. Don’t you? And if it really will just cost $100 — or even a smidge more — that makes it almost an impulse buy, at least as gadgets go. And what will happen when thousands of these are in the hands of gadget-fans here in the US, and elsewhere in the developed world?
Revolution begins at home.
Update: the Revolution marches forward. Applications as online services (e.g., Zoho, Google Apps) dovetail nicely with this trend. I remain convinced that Google Android is yet another manifestation of this, approaching the same destination by a different route.
Linux, on the other hand, is still to omni-directional for its own good. It could actually learn a lesson from Microsoft, in this sense. They need to standardize on a single desktop (KDE or GNOME) and a single core. It’ll never happen. My mom just doesn’t want to compile drivers and debug her kernel. Linux is perfect for verticals and corporate environments right now – not for the home desktop. –Chris Pirillo on the Opera Newsletter mailing list, Sunday, 05 Oct 2006 23:46:37, via the Quote of the Day on Elliotte Rusty Harold’s Cafe au Lait
I wonder if this issue isn’t beginning to sort itself out, though. Debian seems to be gaining more mindshare lately — not so much directly, as through distributions like Ubuntu and Linspire that derive from it. In fact, since Linspire has decided to use Ubuntu as a base, it looks like we see the start of an efficient production line that would make Adam Smith proud. Debian produces the core of a purely-free operating system; Ubuntu, next in the assembly line, tunes and polishes to the point that it is attractive to commercial users, and can be commercially supported; and Linspire polishes and adds-consumer-friendly touches like proprietary media codecs.
(I do think, though, that the GNOME-vs-KDE conflict is overblown, and doesn’t need to be ‘resolved’; applications for either desktop will work on either desktop, and which one you run as a base simply depends on user preference — and the design philosophies of the two are different enough that each has a well-defined constituency, just as Windows and Mac do.)
As everyone knows by now, Google has released its new SDK for mobile phones, Android.
Android is a software stack for mobile devices that includes an operating system, middleware and key applications. This early look at the Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.
The SDK includes basically a one-stop shop for application development infrastructure: an OS kernel (Linux), a virtual machine (interestingly, not the Java VM, though Java is the main development language), a SQL engine, a communications stack, 2D and 3D graphics toolkits, a GUI stack, and so on. Everything a developer would want in a deployment platform.
As you, my legion of loyal readers, will know, I play Second Life. The SL client is based on OpenGL. When I saw that Android supported OpenGL, it naturally occurred to me that one could create an SL client for Android. It would suck to use SL on a mobile phone, of course; tiny screen, no keyboard, etc.
But then, there’s surely nothing in the spec about a maximum screen size for Android, and no reason you couldn’t have a physical keyboard. In fact, if you were to take an Android system, built to run efficiently on a phone-class device, and put it on a laptop-class processor, it would fly…
What can a desktop machine do, that an Android-based mobile phone can’t do? Mostly it’s a matter of form factor; a mobile phone isn’t big enough for a full-sized keyboard, multiple USB connectors, a DVD slot…
But is there anything that says Android can’t run on a laptop- or desktop-size device? If Android catches on, isn’t it inevitable that someone will put it on such a device? And given how many smart people work at Google, don’t you think they already considered that? that they may in fact have planned on that from the start?
Lots of people have been wondering when Google will come out with an operating system offering that will compete with, and maybe displace, Microsoft Windows.
I think it just happened. And no one noticed.