March 2005
Monthly Archive
Tue
29 Mar 2005
8:00 pm
Ajax stands for asynchronous Javascript and XML. It's a set of techniques for building web applications that don't need full page refreshes to transfer data to and from the server. Instead, they package it up as XML, send it in the background using the XmlHttpRequest object, and use the Javascript DOM to load the new data into the page. The result is a web-based application that can support fine-grained interface changes as well as larger-scale page changes, more like a desktop application.
What just struck me is just how similar this really is to a desktop application. The UI runs in code on the client, and only relevant data moves to/from the server. You could almost describe the server as a disk storage abstraction layer.
As soon as web application developers start to realize this, look for some of them to leverage their investments in ajax to turn this web apps into desktop apps. If you're sending a bunch of asynchronous requests, why not just queue them up and send them later when you're connected? If internet bandwidth isn't literally ubiquitous in a couple of years, this will still be a problem worth solving.
If you're a programmer, you are probably at this point thinking, "Shimon, you eeeeeeeeeeediot, you can't run ajax apps offline and queue things up because javascript can't save files." This is really an arcane technical reason, and one that could probably be worked around, but that doesn't actually matter. Javascript can store persistent data on your disk, in the form of cookies. Sure, there are limits to the size of cookies, but you could just generate lots of them—with little cookie allocation tables and parity checksums, like a little cookie RAID storing your to-do list items. Kluge? Hell yeah! This is javascript, after all.
So… keep an eye out for the next big thing: Save-As deployment!
Mon
28 Mar 2005
7:42 pm
Some interesting articles linked from the Y Combinator resources page:
I've only started reading these but they're an interesting crop. And Y Combinator is an interesting group; I wonder how many applications they got for their summer founders program.
Mon
28 Mar 2005
7:03 pm
Sat
26 Mar 2005
5:00 pm
Posted by shimon under
boston1 Comment
link
Today I'm at MIT for the 2005 FSF Associate Member's meeting. The Free Software Foundation is a group that advocates for Free software on legal and technological bases, and they do an amazing job — I encourage you to donate and become a member.
Today's schedule is filled with some pretty interesting talks. This morning we've had a few speeches on the current state of the FSF, its recent new executive director appointment, and some upcoming goals/challenges for Free software. I've never heard Eben Moglen speak before but he gave some really interesting insight while responding to a question from the audience — exploring the intersection of goals in the legal, technological, and financial challenges for freedom. I'm looking forward to his talk later on. Larry Lessig's talk should also be good, and I think with this audience he can assume we know the basics and give a speech that I won't have already heard or read about.
The audience is about 65 people, and they're very engaged in software freedom. Awesome! Time to get back into the classroom.
Fri
25 Mar 2005
4:57 pm
link
My frassle activity has been light lately. I took a small vacation and didn't think much about blogging. Instead, I ate well, slept soundly, and enjoyed the warm (compared to Boston) Cincinnati weather. When I wasn't fully engaged in laziness or family, I was either moving furniture with my California-bound friend Coleman, or programming Javascript.
Yesterday I told Ingo Muschenetz that I had been programming a lot of Javascript, and he offered his sympathies. This is a common reaction: "real programmers" look down on scripting languages, and scripters don't even associate with the losers who write Javascript. Of course, with cool apps and new buzzwords, people are once again stunned at what you can do in the browser, and Javascript is reaching a status not unlike illegal immigrant labor: shameful and abused, but vital to the great stuff coming out of California.
But Javascript isn't all that bad. It's actually kinda nice. While its syntax mostly mimics its namesake, Java, it is in spirit just another dynamic functional language. My personal programming style, developed through Perl hacking and Java schooling, is a blend of object-oriented and functional/dynamic styles. Meaning that I use classes to support modularity and hold state, but use a lot of hashes, lists, and closures.*
It turns out Javascript is excellent for this. In Javascript, the hash (a map from arbitrarily-valued keys to values) occupies a position like the list does in Lisp. Every object in Javascript is a hash, including regular arrays. An object is a hash whose values are either variables or function references. myObj.getFoo() is equivalent to myObj["getFoo"]().
I am not without complaints about Javascript. With some syntactic sugar my programs could be 40% shorter and 20% easier to read, as they would be in Perl or Lisp. With a better and more stable spec from ECMA, cross-browser compatibility wouldn't be as hard. But I also respect that Javascript's priority should be coverage and consistency rather than elegance. Considering that the next feasible choice is Microsoft's VBScript, which would make my programs ten times longer and force me to write sort routines instead of novel UI, I'm impressed. That puts me in the corner with Douglas Crockford, who wrote a wonderful exposition of Javascript way back in 2001.
* Footnote: If you're a Lisp hacker, or just someone who thinks Perl is dirty, I want to understand why you feel that way. Perl has all the important functional features I'm aware of, and if I should really be using Lisp instead I'd like to know. Of course you can write hideous crap in Perl, but it gives the programmer amazing leverage over the language, which translates into huge productivity gains. Is it the punctuation? The diversity supported by the Perl's huge vocabulary? The hackish user community? Or are you just being lazy?
Thu
17 Mar 2005
7:30 pm
I keep on hearing good stuff about the Ruby on Rails web application framework. It's like the Republican party—one of the highest values of its supporters is to tout its greatness. But the Rubyblicans have evidence: cool projects like Basecamp and sibling Tadalist, wiki+hierarchy tool Hieraki, and the aforementioned Web Collaborator. Not to mention very nice documentation, such as this tutorial on making, guess what, a to-do list.
Perhaps it's too late to turn my own (upcoming) to-do list application into an experiment with Ruby on Rails, but my beloved Perl on PageKit still let me get a prototype of voo2do kicking in about a day. Definitely, the vast majority of my time on v2 has been spent tweaking CSS and Javascript to make the interface work.
But I'll save the rest of the hype until you can actually visit and try voo2do…
Thu
17 Mar 2005
7:06 pm
God help me, but I might have to set up a shoutcast/icecast stream from a macintosh this evening. Bookmarks:
Update: Ben sent a link to this howto, which seems useful if you're a unix geek stuck in mac-land.
Thu
17 Mar 2005
6:57 pm
link
Free wikis for workgroups.
Wed
16 Mar 2005
7:16 pm
link
Paul Graham's new early stage venture firm is running a novel kind of summer program for people interesting in starting companies. Just reading their application is pretty educational if you're contemplating that possibility.
Fri
11 Mar 2005
4:03 pm
link
As widely reported, Microsoft is buying collaboration software maker Groove Networks and making Groove co-founder Ray Ozzie Microsoft's CTO.
Groove offers an interesting platform for collaboration. Sold as "peer-to-peer", the key advantage is asynchronous communication. Which just means that you can catch up on what happened and send out a bunch of memos while sitting in a plane, and then get them all sent when you have network connection at the hotel. An unexpected but rich market for this has been Iraq reconstruction, an intensely collaborative environment where a stable network cannot be assumed. In concrete terms, it appears that Groove lets you share files, IM & hold virtual meeting with your coworkers, and track project statuses. Amusingly, their comparison sheets still highlight a cost advantage over… Microsoft.
Where does it fit in with Microsoft? Well, MS has been pushing groupware for years, especially in their cash-cow Office suite. In the past two revisions of Office, almost all significant features were to support networked collaboration. Of all Office applications, Outlook—email and calendaring—is the only one that hasn't become static. Word, Excel, and Powerpoint still come out with new versions, but the differences vary between judicious tweaks and tasteless augmentation of useless features.
For example, did you know that Office 2002 includes a discussions server that let your workgroup exchange comments on a central "Active Documents" server? Internet Explorer on my machine has a little post-it note icon that brings up an extra frame for this purpose—whose content is ironically blocked by the security features in Windows XP Service Pack 2. This is a potentially handy little feature, but it's utterly lost in the sea of gadgets and doodads that is MS Office.
Groove, however—because it wasn't developed under the tyrrany of Office's bottom line—stands on its own. It has enough features organized in a coherent way that IT departments might take it seriously, unlike an "Active Documents Repository" for a bunch of silly web comments. And it has lots of potentially valuable integration points with Outlook, which is by far the most ubiquitous manager of email, contacts, and calendars.
So Microsoft's challenge is to give future Office customers the power of Groove without saddling the program with lots of useless baggage. If they succeed, millions of Outlook users (including myself) will have a shot at a collaboration environment that doesn't suck. I think I wish them success.
Next Page »