What
 · Technology
 · · Web
 · · · · Services (62 fragments)
 · · · · TAG (12 fragments)
 · · · · Web2.0 (1 fragment)

Blues Pix · I’ve got a touch o’ them old autumnal-financial-meltdown blues, so I’ll post a couple of garden shots as therapy ...
Enterprisey but Good · In the old days I was a Perl guy and now I see the Web through Ruby-red spectacles. Like most people in the open-source and dynamic-language communities, I never really warmed up to Java EE; tons of moving parts, too many layers of indirection, too much XML configuration, and anyhow I didn’t want to use that language for writing Web apps. But it turns out you don’t have to like EE to be real interested in app servers.

[Update: Check the discussion in the comments; there’s more to this than meets the eye.]
 ... [4 comments]
Testing REST · I’ve been using RSpec in a way that’s probably inappropriate, but has got me thinking about Test-Driven Development and REST ... [13 comments]
Pronounced “Keen-Eye” · We launched Project Kenai very quietly last Friday. It’s a developer hub with SCM and issue tracking and forums and all the other stuff you’d expect. We built it because we needed it, but it’s open for use by the world for free. For a newborn infant, it looks pretty good. Anyone can visit, but to create a project requires an invitation, which I have some of; contact me if you want one. There are lots of interesting things about Kenai; among other things, it’s a Rails app. Herewith the details.

[Update: Nick Sieger responds to heat over “control”.]
 ... [14 comments]
Tab Sweep — Technology · I’d kind of gotten out of the habit of doing tab sweeps, largely because my Twitter feed is such a seductive place to drop interesting links. But as of now there are around 30 tabs open on my browser, each representing something I thought was important enough to think about and maybe write about. Some are over a month old. Some of them have been well-covered elsewhere. All I assert is that after I read each one of these, I didn’t want to hit command-W to make that window go away. Unifying theme? Surely you jest ... [1 comment]
Build One to Throw Away · This is a maxim from Fred Brooks’ The Mythical Man-Month. These days I’m thinking it’s the single most important lesson there is about software. It’s been brought rudely home to me by my recent work on mod_atom, whose design is terribly simple; but I still got the first cut wrong in important ways ... [9 comments]
REST Questions · My goodness, there’s certainly a lot of REST talk these days. I’m partly responsible; Paul Krill and I had a long talk at OSCON and he chose to pull out my dissing WS-* for his title: Sun technologist: SOAP stack a ‘failure’. This led to an incredibly long discussion thread on Yahoo Groups’ (irritatingly-named) “service-orientated-architecture” forum. Damien Katz was another provocateur, firing off REST, I just don't get it and “The web is built on REST. Therefore REST is good” Bullshit. This provoked Dare Obsanjo to a burst of restrained pedagogy in Explaining REST to Damien Katz. Let me stir this pot with a few questions, some vaguely heretical in flavor ... [26 comments]
Tasty Rails ETags · This piece is provoked by Ryan Daigle’s What’s New in Edge Rails: Simpler Conditional Get Support (ETags). I think it’s an important subject. I realize that many readers here understand what ETags are and why they matter, and will see right away how the API Ryan describes fits into the picture. If you don’t, and you build Web apps, it’s probably worth reading this and following some links ... [6 comments]
Sun Web Server Open-Sourced · [This is one of four pieces of Sun news from last week; I actually got to make the announcements at OSCON but was too busy to blog]. We’re open-sourcing Sun’s own Web server (formally the “Sun Java System Web Server”), using (and here’s a surprise) the BSD license; I don’t know if we’ve gone BSD before ... [2 comments]
Sun + Joyent + Facebook · [This is one of four pieces of Sun news from last week; I actually got to make the announcements at OSCON but was too busy to blog]. The news is that we’re partnering with Joyent to offer one year’s free hosting for Facebook apps. I don’t really understand the Facebook-app ecosystem, but anything that reduces the barrier to entry has to be good, right?
Sun Web Stack · [This is one of four pieces of Sun news from last week; I actually got to make the announcements at OSCON but was too busy to blog]. The Sun Web Stack, shipping later this year, is an agglomeration of Web stuff (“Formerly known as CoolStack, also known as LAMP/SAMP”), and a fully-supported Sun product on both Solaris and GNU/Linux. Read on for details and discussion; this raises some interesting issues ... [8 comments]
LAMP, Rearranged · It started innocently enough; someone mailed the internal bloggers’ list saying “We’ve got this Beyond LAMP article on SDN, might be good blog fodder.” Which constituted an opportunity for geeks to have fun with acronyms ... [19 comments]
Not an OS · Last Thursday I tweeted: “I strive to maintain an open mind when nontechnical people talk about the ‘Internet OS’ or ‘Web OS’. Sometimes it's tough.” I got some grumbles by email and I think the subject is worth more discussion. Let me be more specific: Neither the Internet nor the Web is much like an OS. And even if it were, that’d be the wrong way to think about what’s going on right now ... [24 comments]
Enterprisey Goodness · I tend to liking simple things, and to suspicion of big “enterprisey” software frameworks. I am dimly aware that up in the clouds there are platforms built on platforms built on platforms built on Java, towering edifices where acronyms like “JBI” and “ESB” and “SCA” live. Except for, I could never figure out what they actually, you know, did. Let’s be honest; the complexity and the high-level arm-waving about “Integration” scared me away and I never really tried. Well, I’ve stumbled into a closer look and am beginning to think there’s some there there ... [6 comments]
Twitterbucks · I like Twitter. I hope it lasts. So I want it to have a business model. This week, I was in a discussion on that subject with really smart people, some even with useful experience. Afterward, I had a really radical idea for a business model: Ask people to pay for using it. Read on for discussion, and a survey ... [40 comments]
Over Two Thousand · That describes the number that appears, on the page called @timbray, with the label “followers”. I’m finding it kind of intimidating, and while I’m no more confident about What It All Means than I was when that number passed one thousand, I’ve been thinking about it more. Plus, I thought I’d throw in some Twittertainment ... [5 comments]
Java in 2008 · I’m glad I went to JavaOne. I want to go again. In order of increasing importance: The Java language is looking stale. The Java platform is looking interesting. And the Java community, well, it’s something special ... [2 comments]
Changing Your Address · I’m tired of typing my postal address into Web sites. Furthermore, it’s stupid, wasteful, and a little worrying that so many of them out there have stored copies of it. Wouldn’t it be better just to give them the address of my address? ... [23 comments]
PDML + Twitter · I made a Twitter feed called @PDML. The letters stand for Pentax-Discuss Mailing List, which I read with pleasure; a high-volume, rowdy, enjoyable gaggle of camera geeks. One of the things they do is post nice pictures, which are identified with a subject line starting “PESO:” for Picture Every So Often (and sometimes “GESO:”, G for Gallery). @PDML has those posts’ first hyperlink and as much of their content as can be stuffed into 140 bytes. It’s a nice low-volume Twitter feed, less than five pix a day on average. I believe this is what the cool kids call a “Mashup”. A very slow one, but still ... [17 comments]
OpenWeb and PHP and Women · I had fun today speaking at Open Web Vancouver 2008, and even more fun listening to Zak Greant, who was on just before me. He’s a fine speaker, I recommend him for any geekfest. Here’s what caught my eye: there were way more women in the audience, proportionally, than I’ve seen at any Ruby or Rails or Java event ... [9 comments]
Tibet and Twitter · On the plane home from San Francisco, I was sitting among a bunch of Tibetans who’d been down from Vancouver for the big protests around the Olympic Torch relay. I was honoured to be with them. The day before, I’d been following the action mostly on Twitter: check out @teamtibet, where they were helping organize the protests. Twitter, it’s an activist’s dream. But I couldn’t find online video or photos of Majora Carter carrying the torch and the Tibetan flag. Oh, and China, here’s a reality we honkies internalized way back when: Imperialism, it can do wonders for your commercial position and in distracting the citizens from the regime’s domestic failings. But on the other hand, the bad PR is just never gonna go away. So, you want the upside, you just gotta suck it up and deal with the image damage. Public whining ill-suits a wannabe imperial power. [8 comments]
Silent Blogger FTP Failure? · Dear LazyWeb: I tried to help my friend Alex Waterhouse-Hayward with some problems he’s having on his blog, and managed to completely screw things up. I would sure appreciate a word or two of wisdom from someone who understands Blogger.

[Update: Problem solved. I created another FTP-only account on Alex’s hosting service and told Blogger to use that and it seems OK. I gotta say, my first serious experience with Blogger has been kinda pukey.]

[And hey, Alex wrote about it, elegantly.]
 ... [2 comments]
On Twitter · I’m writing this in an airplane to Vancouver from Chicago. When I get home and read my mail, if recent trends continue I will hear about a few new Twitter followers, bringing the total up over one thousand. I think that with Twitter, something important is happening. But I’m having trouble figuring out what ... [19 comments]
Better Feed Reading · Like many infosphere natives, I deal every day with a massive contradiction: On the one hand, I want to know what’s going on out there, and on the other, I want to get actual work done. Recently, the getting-work-done side has been suffering. So I massively reorganized my feed-reading setup, and it’s helped ... [26 comments]
Time To Twitter · I spend quite a bit of time talking about leading-edge Web stuff to mainstream Enterprise types. I have a well-polished explanation for the rise of PHP and Rails and so on: Time To Market. Here’s the sound-bite: “If you and I have the same good idea for a community-based Web site on the same day, and mine is on the air in five months and yours in eight, then you’re dead. And it doesn’t matter if yours is better, because the community has gathered.” Well, Twitter would be the canonical example. They went with Rails because it let them build fast; and they built fast. They suffered terrible pain for months trying to take Rails places it’d never been before; but they fought through it and they’re in a very good place. Smart people tell me that Pownce and Jaiku are slicker and better but who cares? Apparently 140 characters, distributed appropriately, gives you what you need. [39 comments]
Hard Problems · I spent quite a bit of today at the O’Reilly 2008 Concurrency Summit. It was a congenial crowd, but at the end of the day kind of a downer, because we have lots of hard concurrency problems and not too many solutions. Anyhow, two subjects that came up were REST (which is concurrent at the largest possible scale), and, unsurprisingly, Erlang. And it struck me that they’re kind of like each other ... [4 comments]
It’s an Atompub World · Today, via InfoQ, we see that Microsoft is betting on Atompub for Windows Live. Since Google and WordPress and big chunks of Java middleware are already doing it too, this really does feel like a bandwagon. For the last fifteen years, HTTP has become the dominant, overwhelmingly dominant, vehicle by which people and programs get things from the Net. With a little Atompub seasoning, it’ll quite likely be the way most things get put back, too. There is a fly in the ointment: tons of servers, not that many clients. Hello Moto? And Nokia and Apple and Samsung and all the rest of you? There a kazillion, and growing, publishing gateways out there waiting for someone to start shipping handhelds with an Atompub-powered “Publish” button.

[Update:] The Google Contacts Data API - Atompub based, of course.

[Update:] Writing Your First AtomPub Service with Abdera.

[Update:] Joe Gregorio: AppClientTest Update and AppClientTest - now with unit testing goodness; I particularly like the “drama in HTTP” analogy.
[3 comments]
Hey, Nick! · There’s this guy named Nick Kew whom I’d never heard of till last year, when I started working on mod-atom. He’s one of the core httpd gurus, and wrote the book on Apache Modules, which is what mod-atom is. So he politely tolerated a flurry of clueless-newbie questions from me, and I feel guilty that I didn’t buy the book. Anyhow, he’s just come to work for Sun. I’ve already told him gleefully that I shall now feel guilt-free about the questions. But seriously, it makes me happy to be bringing some more httpd expertise on board, given that it’s perhaps the single most important software component of the whole World Wide Web. Welcome aboard, Nick! [1 comment]
Atomic News · Herewith a few random Atompub pointers. Each month that goes by, I’m happier with the way Atompub came out ... [5 comments]
The HTTP Sweet Spot · We seem to have pretty widespread consensus, these days, that HTTP, or perhaps the RESTful approach it exemplifies, offers a pretty sweet substrate for pushing and pulling data around at Web scale. We got further evidence this week when a bunch of smart people stepped slightly outside its sweet spot, into deep tangly weeds ... [8 comments]
Dueling RIAs · Today, at that Avenue A | Razorfish event (A A|R is owned by Microsoft, it turns out) there was a presentation from the people who built two different sites for XM Radio. The Online Store was built with Flex, the XM Program Guide with Ajax. They both look pretty good. I guess it means you can’t sign up for XM with an iPhone. I remain unconvinced that the extra sizzle and flash you get with RIA technology is enough better than Ajax to make it worthwhile—but then XM reported increased conversion rates when they rolled in the new site. Interestingly, they said that Ajax was a particularly good fit for the channel guide because HTML naturally handles grid-like structures well. True when you think of it, but I never had. [2 comments]
The RESTful Way · I received the most charming email this morning from the owner of “therestfulway.com” domain name saying, in essence, “Anyone you know have a loving home for this domain? I don’t need it and it’s about to expire.” What a nice domain name. If you want it, drop me a line explaining why and I’ll forward the requests to the author. I think he’d probably give it to somebody with a good reason, but also wouldn’t turn down a reasonable monetary offer if one were forthcoming. [2 comments]
Autotools 1, Tim 0 · I’m going to do some more work on mod_atom, but I have a problem; it doesn’t work on Leopard. That’s OK, the Ape blows it up repeatably, so should be no biggie. Hmm, except for apr_global_mutex_create is acting weird, removing the lockfile while failing. Docs no help... OK, let’s look at the code. Urgh. Let’s use the debugger to see where it’s going. Well... that was a day and a half ago. Since then, been in a maze of twisty little passages. I’m beginning to think that Brian McCallister has a point in saying Autotools are the Devil. I used to know how to compile C code, sigh.

[Update]: Hey, check out the follow-ups. I think this Open Source stuff is going to catch on.

[Again]: Hah! Paul Querna’s suggestion not only made the compilation problems go away, the original bug vanished too. You know, that Apache community is first-rate.
[2 comments]
Ape News · There’s been some New-year Ape tinkering. A few bug-fixes from me and David Calavera, and also I finally rolled in Joe Gregorio’s patch to make it work with Google’s semi-proprietary authent voodoo. Last and best, we have a new committer, Simon Rozet, whose first patch was a Mongrel adapter, so you can type ruby go-mongrel.rb and there’s your Ape on port 4000. Simon will probably have checked that in by the time you read this.
NetNewsWire & NewsGator go Free · There’s a boring press release; and interesting write-ups from Greg Reinacker and Brent Simmons. (Oh, and why is it we need press releases any more?) This is interesting on a bunch of grounds ... [7 comments]
2008 Prediction 1: RIA vs. AJAX · What happened was, a sudden email from Sun PR went around about fifteen minutes to Christmas saying “SYS-CON wants predictions for 2008; right now would be good.” It happened that I was in the middle of doing three months and ten trips’ worth of expenses, thus bored out of my mind, thus happy to prognosticate. I gave them five, but, given the urgency, not much more than sound-bites. I think each of them is worth a little exegesis ... [23 comments]
2008 Prediction 4: PHP Problems · This is the fourth of five predictions for 2008, expanded from the short form generated on short notice as described here ... [12 comments]
Django on Jython · It’s starting to happen. There’s a long way to go between successfully executing a bit of Rails and actually making the sucker run usefully, as the JRuby guys will tell you. But speaking of JRuby, there are some eerie similarities: a language-platform project that was promising, then drifting, now revitalized. The ecosystem gets more interesting all the time. [Update:] Frank Wierzbicki reports that Jython is rockin’ & rollin’, it’s not just Django. Good stuff!
2008 Prediction 3: Rails Rules · This is the third of five predictions for 2008, expanded from the short form generated on short notice as described here ... [10 comments]
Year-End Sweep — Tech · Over the course of the year, in browser tabs, bookmarks, and del.icio.us, I’ve built up a huge list of things that I felt I should write about, at least at the time I saw them. Well, dammit, I’m not gonna let 2007 end without at least making a try. Here goes. Categorized, even ... [7 comments]
TV and the LazyWeb · I have a problem: I want a new HDTV, I have very specific requirements, and I’m not which models match, or even how best to find that out. There’s always the LazyWeb, and it’s showing new signs of life, in the form of Dave Sifry’s Hoosgot. Let’s see if it can help me find the right TV ... [15 comments]
Message From the Web · Last week I gave a talk at the 16th International XBRL Conference here in Vancouver. XBRL is an XML-based system for packing up companies’ financial information, and I think it’s real important. But its take-off has been kind of protracted and arduous. I was there as an Ambassador From the Web. Here’s what I told them ... [7 comments]
Tab Sweep — Tech · Shedding, TDD, Java, and keys ... [5 comments]
ACAP · That stands for Automated Content Access Protocol. It’s fiercely deconstructed by Andy Oram in An editor critiques the publishing industry's Automated Content Access Protocol. I’m really unconvinced, first that this is really needed, or second that there’s any good reason for the people running the big crawlers to adopt it. They say ACAP is set to become the universal permissions protocol on the Internet but you know, we already have one, you can access-control anything you want. In the developed world, we have a perfectly competent legal system that allows publishers to hold Web sites accountable for how they use the content they fetch. If the people advancing this included anyone who actually liked the Web, it might be more convincing.
Matthew-6:9.txt#line=,1 · That would be Our Father, who art in heaven. Which is to say, when you a URI that has #whatever on the end, what #whatever means depends on what kind of thing it is. Up till now, if it was just a chunk of text (text/plain in web-geek lingo), it didn’t mean anything. Now it does. I have a special interest in this one ... [9 comments]
Tab Sweep — Tech · Tonight, a smaller, bi-focused sweep: Identity and HTTP ... [2 comments]
Tab Sweep — Tech · This goes back weeks and weeks; I’ve been wide-finding and doing Sun stuff and the Web-watching has suffered ... [6 comments]
Atomic · Today’s big Atom news is from Joseph Scott, who was on the long-weekend shift with Pete Lacey and Sam Ruby and I, pounding WP2.3’s APP-server code into shape. He has written HTTP Basic Authentication, A Tale of AtomPub, WordPress, PHP, Apache, CGI and SSL/TLS; the title is appropriately long, as this is a very meaty piece that I bet will be read many times in the near to medium future by someone puzzled and frustrated by some combination of Apache, PHP, and authentication requirements. Well, yes, the problems popped up in the context of Atompub and WordPress, but there’s nothing specific to the protocol or the product; it’s a big messy ugly corner of Web technology ... [1 comment]
GlassFish V2 · It’s out today. Now, I don’t work with app servers that much, and I’ve hardly ever touched GlassFish. But this is interesting anyhow, for two reasons: First, GlassFish is an example of a software product that was struggling in the market, and is doing immensely better after moving from closed to Open Source. Smells like the future to me. Second, check out that launch pointer: a blog cluster, with the marketing basics and a ton of highly-technical detail. I just don’t think there’s any other sensible way to launch a modern software package whose users are developers. [3 comments]
Autumnal mod_atom · I just did a massive check-in on mod_atom, and it’s now not just an Atom Store, it’s also a basic blog publisher. This fragment is about how it works, and includes a confession; I did one fairly awful thing along the way ... [6 comments]
The Sunday Contests · Who needs the NFL? The 0.00001% of the population who think Syndication Semantics and Web Architecture are all about fun ought to cruise by Sam Ruby’s space and take in the discussion around One More Step Forward?
Tab Sweep — Tech · In this issue: P-languages, operating systems, projecting, URIs, and online medical resources ... [1 comment]
Gripes · Are there any Facebook apps that aren’t pathetically lame? Just wondering. Also wondering, why do I have to update my Facebook status, my Twitter status, and my chat status in three different places? Which means that usually I don’t. [Update: Wanna change your status just once for everwhere? MoodBlast is da bomb! Thanks, Dion.] [20 comments]
Tab Sweep — Tech · There were a few here that I wanted to do a whole piece about, but I just gotta clear some space on these decks. Today we have pushing and pulling and queueing and Ruby.next and Java hate and PHP-vs.-Rails. What’s not to like? ... [9 comments]
Pantone’s Missed Chance · Today I see, via John Gruber, that Pantone has been acquired by X-Rite. In 1995, I gave Pantone’s CEO some advice that might have made them a lot of money. He didn’t take it, but it’s an amusing story ... [9 comments]
Tidying HTML · I’ve decided that mod_atom really needs to be a blog-publishing system, not just an Atom Store. And furthermore, based mostly on the comments to that Sanitation piece, I’ve made two design decisions. First, the sanitizing happens only on the HTML output; the Atom-store part will persist the data as close as possible to the way it was sent upstream. Second, I’m going to try using the TidyLib parser to pick apart type="html" text constructs so I can clean ’em up ... [4 comments]
Sanitation · It’s amazing how issues float to the top of multiple minds independently. I’ve been spending a lot of time thinking about how to sanitize to-be-published data. Then Rob Sayre wrote Interoperability and XSS Mitigation; XSS stands for “cross-site scripting”, the main threat that you sanitize to avoid. Sam Ruby noticed got active: Interoperability and XSS Mitigation announced the Sanitization rules wiki-space. Microsoft’s Joe Cheng is worrying, too ... [12 comments]
Tab Sweep — Tech · Today we have some Atomic Apple love, iPhone Web friendliness, RelaxNG praise, and JVM Language widening ... [6 comments]
On Being for the Web · This thread starts with Bill de hÓra’s excellent Design for the web, which has useful links and commentary about problems with Java web frameworks. Coté follows up with Java’s Fear of Commitment, also very good, and interesting discourse breaks out in both parties’ comments. Obviously, Bill and Coté are correct; embracing the Web is going to get you a better result on the Web than not embracing the Web. If you want more evidence, look no further than PHP, a deeply-flawed tool whose success is based on (admirably well-done) Web-centricity. Normally, I’d leave it at that, but Coté is wrong about Java and Bill is wrong about both ETags and MVC, and I think all of those things are important enough to push back on ... [16 comments]
“Flashier” · Check out The New Web War, the first of Rob Scoble’s Fast Company columns. It’s a nice compact summary of the Apollo/Silverlight/JavaFX arena. There’s a startling sentence in the conclusion: If your competitor builds a more interactive site than yours, customers will flee to the “flashier” foe. Uh... Google? eBay? Amazon? Facebook? All plenty interactive, and pure non-proprietary native Web technology. The evidence seems clear to me: quality content and useful functions trump both flash and Flash. All these people keep saying that “Rich” Internet Applications win, and they’re right: but I do not think that word means what they think it means. [14 comments]
Web3S · Well, well, we now have two freshly-baked HTTP-based Web Resource CRUD protocols which advertise themselves as being RESTful. Microsoft’s new Web3S is designed to support remote update of Live Contacts, which is, and I quote: “the central data store in Windows Live for address book information. All Hotmail contacts, Messenger buddies and Spaces’ friends are recorded in Live Contacts. There are currently approximately 500,000,000 active address books in Live Contacts.” See Yaron Goland’s intro APP and Dare, the sitting duck (read the comments too), then the draft spec Web Structured, Schema’d & Searchable (Web3S) and its FAQ. There’s a reaction from David Ing, Not Your Father’s MData; the comments below might be a good place to aggregate more links. [Update: Yaron Goland has addressed the issues I raised here, FAQ-style, in a comment below.] ... [8 comments]
Tab Sweep: Web Tech · These are eventful times in the world of Web technologies. First, Paul Querna has a couple of tasty little morsels for us, the freshest being mod_never_expire. Then there’s the W3C’s Web of Services for Enterprise Computing Workshop Report; I thought the pungent smells of failure on one side and optimism on the other mixed oddly, but still worth reading. On the lighter side, check out DeWitt Clinton’s excellent Monoball. Finally, Doug Purdy, longtime shaper of Microsoft’s view of the Web, is back with his own APP engine (subscribe to that in your feed-reader rather than your browser, and Doug, you should serve that as something other than application/xml). Finally, all the machinery that the Java-EE people pulled together to play as nice as possible in the WS-swamp has a new name: Project Metro. Eduardo has the narrative, which seems sensible to me. [1 comment]
Oops · It turns out that sometime in recent months, I made a little adjustment to the comments system that locked some but not all users of Microsoft Internet Explorer out. It was a major pain in the butt to track down, but I think I have. I don’t have that many Windows configurations in the house to test with, so I’d sure appreciate it if a few of you out there looking at ongoing through IE would, first of all, go here (just the standalone version of this entry, please go there now); and once you’ve gone there, cast your eyes at the bottom of the page and see if there’s an invitation to contribute a comment. If there is, I’d then appreciate it if you could you click on it and submit a couple of witty words to see if they show up. If there’s no invitation or the comment won’t submit or something else weird happens, do please drop me an email (remember, first.last@sun.com) and let me know the symptoms and what versions of IE and Windows are in play. [Update: OK, thanks. I watched the logfiles as dozens of people popped up the comment form and a handful or two actually submitted comments; I stopped approving the ones of the form “Yep, it works” after a while. I have no complaining emails. Thanks all!] ... [12 comments]
What an iPhone Looks Like · I noticed a bit of traffic, starting with David Berlind, about people looking for visits from iPhones in their web-server logfiles. I looked in mine, and found a couple. I thought I’d reproduce the actual Apache logfile entry, which is kind of interesting; do your own interpretation ... [7 comments]
“X Me” is a Facebook Virus · A friend on Facebook invited me to try the “X Me” application. It sounded a little silly but it was a person I respect, so I clicked on it. As soon as it installed, it popped up a list of more or less everyone I knew asking if it was OK to mail invitations to them. I said “no”, and then (weirdly) it popped up one other name and I said “no” again. Now I’m getting messages from people asking if I really think they should install “X Me”. This, obviously, is a virus ... [11 comments]
I’ve Seen This Movie · It turns out that the Atom Protocol isn’t good enough for whatever part of Microsoft Dare Obasanjo works in, he says. Three things should be said: First, Dare’s arguments are bogus. Second, if you were paranoid and cynical, you might wonder what Microsoft’s up to (I’m paranoid and cynical.) Finally, this is actually good news. [Update: Check out Dare’s GData isn't a Best Practice Implementation of the Atom Publishing Protocol and Microsoft and the Atom Publishing Protocol, and especially Joe Cheng’s Microsoft is not sabotaging APP (probably). It looks like Microsoft will be joining the APP party after all; excellent! On GData: as of April’s interop event, GData, based on an early draft of the APP, was far from being an interoperable drop-in implementation. But that’s what the event was for; Kyle Marvin and the Googlers gathered tons of hands-on data and, last time I checked, still say they intend to do APP straight-up.] ... [18 comments]
Gears · On Google Gears, I’m definitely in the skeptical What is this “being at work while offline” of which you speak? camp. I wasn’t convinced when Adam Bosworth was singing this song five years ago and I’m still not. Doesn’t mean having programmable persistence in the browser isn’t a good idea, though. Browsers already cache heavily, of course, but not in a way that’s sensitive to the needs of any particular Ajax code. I mean, consider a mapping app; if the computer knows where I am, why shouldn’t the browser pre-populate the cache with a few hundred local map tiles? They don’t change that much. And so on. Gears at least seems pretty lockin-free. [17 comments]
NetNewsWire, Children, and Caesar · The problem is, these days, that my input queues are jammed up. I’m reading Caesar: Life of a Colossus by Adrian Goldsworthy and it’s very good, but it’s awfully big and thick and dense. And my time for reading is tight because, after all, I’m married with two children and also I’m trying to read the Internet, or at least that huge little piece of it where people care about the things I do. And on that subject, once again I just have to plug NetNewsWire. I’ve tried a ton of newsreaders on a ton of platforms. Google’s blog reader is pretty good, and so are a couple of the other clients, but NetNewsWire just shows you more stuff in less time with fewer keystrokes. Years ago I predicted that feed-reading would have been sucked into the browser by now, but I was wrong. So between that and Caesar, and day-to-day job work, and a grungy unexciting complicated fill-a-hole-in-the-ecosystem programming project, well, I have Wikinomics and Everything is Miscellaneous and RESTful Web Services and the Programming Erlang PDF staring accusingly at me from the shadows. Blame Julius Caesar and Brent Simmons. [7 comments]
search.technorati.com · Now, this is what I’ve always wanted. I’m feeling kind of unhappy with myself; time after time, Dave Sifry has showed me some new frippery they’re rolling out at Technorati and I’ve said “Yeah, that’s kind of cool, maybe you could twiddle X” even though it didn’t turn my personal crank that much. My problem has been that I was assuming that the way I want to use Technorati is unusual. I use it for vanity feeds of course, but the when I go to the site, I only ever want to ask two questions: “What are they saying about <insert recent event>?” and “Where was that article I saw recently about <insert subject>?” The new, very Google-flavored search.technorati.com does those things, and that’s all it does. Plus, it seems a whole lot faster ... [4 comments]
RailsConf Take-Aways · Here’s the nice one: PragDave a.k.a. Dave Thomas launched an effort to get the RailsConf attendees to give something back; something as in hard cold cash donations to charity. I plugged it during my keynote, as did several others, and Chad Fowler really got behind it. It came out pretty well. And on a lighter note, Big Jimmy Kane offers cogent insight on my appearance waving a Sun banner in Rubyland.
RailsConf Day Two · The first hour and fifteen of the day was Cyndi Mitchell of ThoughtWorks and me in keynote mode. The interesting part, though, was the hallways and lunch ... [15 comments]
RailsConf Day One · [Thursday] Sitting in the airport getting ready to head out; it’s been a while since I’ve spoken to over a thousand people (well, I do every day here, but that’s different) so I’m nervous. Happy, too; I’ve managed to schedule my Sun-related work so I can get to a few sessions that sound super-interesting; I expect to get my brain upgraded. [Friday] I’m filling in conference notes and pictures as the days go by ... [3 comments]
Tab Sweep · Perhaps a little more all-over-the-map even than is usual: GPLv3 clarity, Functional Pearls, raina bird-writer, Java credits, framework programmers, and hacking my Canon ... [4 comments]
Rails Lessons · I’ve been talking recently to traditional Java EE shops about “Web 2.0” in general and modern Web development frameworks in particular and Rails in particular particular. What I’ve ended up saying (speaking only for myself, this isn’t Sun dogma) is along these lines: “Rails isn’t going to sweep the other Web technologies away. But those other technologies are learning its lessons; so it’s worth checking out.” ... [4 comments]
OpenID at Work · On both the Internet and behind the firewall, the identity problem gets uglier every year. How many passwords do you have? If you’re in IT, how much pain do you go through getting your all your apps to share a notion of who someone is? There are a lot of smart people working on these problems, but progress has been crushingly slow. We’re doing a little something with OpenID this week that won’t turn the world inside out but I think shows that progress is possible ... [11 comments]
REST, as in Take It Easy · Microsoft coding guru Tim Ewald got a lot of people talking when he announced I finally get REST. Wow. and followed up with Three reasons that REST is not RPC. It’s nice that the word is spreading, but many REST converts see complicated magic where I see a few simple easy-to-understand virtues ... [6 comments]
Tab Sweep · Mostly technology-centric, this time ... [4 comments]
How Big is the Club? · We who read (and write) blogs and play with the latest Internet Trinkets (and build them) have been called an echo chamber, a hall of mirrors, a teeny geeky minority whose audience is itself. Let me explore this notion a bit using Twitter ... [24 comments]
Upcoming Gig: RailsConf 2007 · I’ll be heading to Portland, Oregon for a keynote at RailsConf 2007, May 17-20. I gather that like most Ruby-related events it sold out more or less instantly. There’s a funny story about how I came to attend ... [2 comments]
Twitter, Rails, Seaside, Respect · If you’re obsessive about dynamic languages and Web frameworks (and who isn’t?) it’s been a juicy few days. Let’s start with a bunch of pointers: Mike Pence interviews Avi Bryant & tries to start a fight. Avi says “huh?”. DHH too, in his own space and an InfoQ interview. At the same time, a Twitter developer disses Rails. DHH says smart things and so do Kellan of LaughingMeme and Ryan Tomayko. Phew. Now it’s my turn ... [9 comments]
Technorati! · Wow, a whole lot of news by/about/from Technorati recently. [Disclosure: I have a conflict of interest.] First, a company snapshot. I really don’t know what “media company” means, but the traffic numbers are decent, and my experience matches with Scoble’s: they’re ahead in live-information search, this month anyhow. I have no inside information about the money. Second, the State of the Blogosphere Live Web; the world needs Technorati to exist if only for these reports; fascinating, deep, stuff. Finally, Dave’s thinking about stepping sideways. I did exactly this with two startups, and it worked once. I have no fear whatsoever that Dave will drop off the radar.
Ruby Servlet Dispatching · I’m wiring the Ape up so I can run it with JRuby in a servlet in a real Java App Server, and while Marcin Mielżyński’s first-cut RubyServlet works fine, I suspect it’s not the only approach to dispatching. So I’m doing some research and thinking, and I’ve collected it here for anyone who cares ... [4 comments]
Mashing with Mike · Today we had that Mashup event at the Sun campus with Mike Arrington. There were somewhere between 100 and 200 people there; I had fun and learned things ... [4 comments]
Cloudy Paranoia · Check out The Web 2.0 Address Book May Have Arrived by Tim O’Reilly, passing along (with approving remarks) David Pogue’s pitch for GrandCentral; it gives you a single phone number that rings all your phones wherever you are. Says David: “Its motto, ‘One number for life,’ pretty much says it all.” Since I have a similar service through AccessLine courtesy of Sun, I can appreciate a resource like this. But there was something about the announcement that was bothering me ... [8 comments]
Ape News · It’s been leveled up to the Protocol-13 draft level and the source is available. While I’m still massively unsatisfied, the Ape as it stands today is actually pretty useful ... [5 comments]
Upcoming Gig: AEA Seattle ’07 · To be exact, An Event Apart Seattle 2007, way off at the end of June. I don’t know the first thing about it, but with Meyer and Zeldman involved it’s gotta be good. I can feel my inner typographer squirming at the prospect. [1 comment]
Upcoming Gig: WDW SF ’07 · To be exact, Web Design World San Francisco 2007, March 26-28 at Moscone West in San Francisco. I’m up first thing on Monday morning. I haven’t any idea what I’m going to talk about, but still, it’s been too long since I’ve spent time hanging out with designers; so I’m looking forward to it.
Upcoming Gig: Mashup with Arrington · The Sun marketing person said “We’re doing another startup outreach event, think you could come down on the 19th and pitch in?” I said probably and asked for more info. “This fellow named, uh, Mike Arrington, has agreed to do a panel, do you know who he is?” So I said I’d come. It’s called the Mashup Event and it’s an afternoon thing, basically just Mike and me talking a little bit about Web 2.0 and Venture Capital, followed by cocktails and schmoozing. I’ve never met the ubiquitous Mr. A so I’m looking forward to it. If you’re in the area and can spare an hour, drop by our coolio Menlo Park campus and join in the fun. Our entirely-unhidden agenda: find out what’s going on, & listen. [1 comment]
Camino 1.1β · I gave it a try, and now I’m switched over. Camino is a Mac browser that’s based on the Mozilla Gecko engine, but doesn’t use the Firefox XUL front-end. Previously, I used Camino 1.0 as my main everyday browser because it was the only one that felt like it belonged on the Mac, was acceptably fast, and didn’t periodically balloon out of control. (Yes, I use Firefox too for its developer tools.) The 1.1 beta has fixes for pretty well all the things that irritated me about 1.0: it saves your tabs in case you crash, text-edit controls now support the control-F/B/N/P/A/E idiom just like everything else, and resize-to-fit works properly. I think that for almost any Mac user who spends a lot of time in the browser, Camino would be worth a serious look. [13 comments]
Fair Disclosure · There’s a conversation going on about Regulation Fair Disclosure. Our own Jonathan Schwartz kicked it off last October, calling for Reg FD to be revised to allow the use of the Web to publish material financial information. SEC Chairman Chris Cox surprised a lot of people by responding in a comment on Jonathan’s blog (I have a lot of time for Chairman Cox, but I was surprised too). It turns out that there are those who don’t like the idea. This is a complicated issue that blends Web technology with big-money business issues, and I’m interested in what the people who read ongoing think; I suspect you include some of the people in the world most qualified to have an opinion. [I suggest using the tag “WebFD” if you’re going to contribute in your own space.] ...
Who’s Got the Subscribers? · I saw a notice from Google that their blog-search robot will start reporting subscriber counts. I poked into a recent log-file and found lots of agents doing this, so here’s a report with some numbers ... [13 comments]
Statistics · Some Sundays I make graphs of statistics from the ongoing web-server log files. I find them interesting and maybe others will too, so this entry is now the charts’ permanent home. I’ll update from time to time ... [5 comments]
Comparing Frameworks · On Wednesday in Frankfurt at the PHP International Conference I gave a fairly general talk on issues in Web frameworks. I had fun making a graph comparing Java, PHP, and Rails, and you might enjoy it too. [Update: Theserverside.com has a grossly inaccurate flame-bait take on this, and won’t let me sign in to comment; won’t take my password, and also won’t take the one they email me when I say I forgot. Grr.] [Update, February 2007: There’s now a Korean translation by CHOI Jae-Hoon; thanks!] ... [32 comments]
Tag Scheme? · In Atom, categories have schemes. What scheme should we use for tags? ... [26 comments]
Tab Sweep · This is going to be big and have month-old news in it; a consequence of the long southern-hemisphere posting interruption. I’ll even group ’em into paragraphs ...
On Linking · In a recent ongoing piece, I mentioned the “Canada Line”, a huge construction project currently disrupting Vancouver. Motivated in part by the 2010 Winter Olympics, it’s a subway/elevated train connecting the city core, the airport, and everything on the path between them, including a big strip of central Vancouver and Richmond, the suburb with the airport. (It’s called the “Canada Line” because the biggest chunk of funding is from the Federal, as opposed to provincial or city government). Since I’m writing for the Net, I wanted to link to it. I did a quick search for its Web site, which also turned up a pretty good Wikipedia entry on the subject. The question is, which to link to? The answer isn’t obvious ... [31 comments]
APP-12 · That would be the twelfth draft of the Atom Publishing Protocol spec. We’ll be asking for IETF last call on this draft. I’m pretty sure that the final product will look about like this. I wouldn’t be surprised if the IETF process patched a couple of security oversights or uncovered a couple of corner cases; nor would I be surprised if it didn’t. But I think that implementors who run with this will be pretty safe; mind you, there are a lot out there who didn’t wait this long; and they deserve our thanks. As do the editors and the good people in the Working Group; this has been mostly a pretty good trip. [Update: Some Atom-protocol news I had hanging around waiting to blog: Dave Johnson links to several implementations, and Elias Torres tells of a quickie.] [3 comments]
JSON and XML · I hear people saying “JSON is great, XML is over”, but I don’t hear XML partisans saying anything bad about JSON. There are two arguments that are over, though ... [15 comments]
PHP Security · Perhaps someone who knows this subject can explain. Given some of the comments here (yeah, there are lots of morons, but some savvy-sounding hands-on PHPfolk too), and stories like this, I have a question: why isn’t this part of this? [10 comments]
Framing Lauren · Check out Framed! by Lauren Wood. There’s puzzling low-grade Internet scamware afoot. Here’s a slightly more detailed description of what’s going on; if you have any ideas, please leave a comment on her blog, not here ... [2 comments]
Unmashable Web? · There’s been a flurry of commentary about Google deprecating their SOAP API. For amusement value, you can’t beat Steve Loughran’s “Slowly, all over the world, the lights on the SOAP endpoints are going out”; but the deepest thinking comes from David Megginson, in Beginning of the end for open web data APIs? If you care about the Web as a platform, be afraid, be very afraid. David has hit the nail on the head. [3 comments]
What I Search · Most people use computers mostly for information storage. Which means that most people do a lot of searching. My most common search is the Web as a whole, via either Google or Yahoo!, I try to switch back & forth from time to time. Next most common would be email via GMail, my own slow mailgrep, and maybe some year Spotlight. After that would be the Web Event Stream via Technorati (for me, text all the time, tags almost never). Bringing up the rear would be a certain amount of filesystem searching (Spotlight sort of works, except for my email) and grepping source code. I wonder if I’m typical? [9 comments]
Tab Sweep · I guess there’s no harm in an occasional links+commentary dump; after all, everybody does it. Item: Bits at the Edge is the blog of Motorola CTO Padmasree Warrior. The entries are too long and dip into marketing-speak, but there’s good writing and original thought in there too and I’ve subscribed. How could anyone in computing not need to know what Motorola’s CTO is thinking? Item: Via Joe Gregorio, PDF slideware on The EBay Architecture. This ought to be required reading for everyone in this business whose title contains the words “Web” or “Architect”. I wonder if this sort of wisdom is being taught in universities? Item: Advanced Message Queuing Protocol (AMQP) Specifications has crossed my radar a few times recently. If you really believe in loose coupling and asynchronous messaging (as we all claim to), then you believe in something like this. Item: How to find out which font has which characters; something I’ve never known how to do on OS X. Item: Ugandans grab ‘pig-for-name’ deal; it’s hard not to have complicated feelings about this one. [3 comments]
On Email · For years, I’ve had two email addresses; the current job and the long-term personal one. The latter is unfortunately one of the world’s most public, appearing among other places on the front of the XML specification, and thus gets a lot of spam. I mean really a lot. Which was causing some pretty severe pain, but I’m using the Gmail dodge, and that helps quite a bit ... [24 comments]
The Dash View · Hey, check out Anil Dash’s cool tabular calendar, summarizing the history of his blog. I liked it so much that I made one, too. Hmm, I can think of lots of different ways to organize it, will have to try some alternatives. Thanks, Anil! [6 comments]
Defining HTML · There’s a new thing in the world. Since I got mixed up in the Web a dozen years ago, there’ve always been groups of people trying to standardize HTML (at the IETF, at the W3C, wherever) and as long as I can remember, they’ve been genially ignored, mostly, by browser makers. Maybe no longer; it seems that the WHAT-WG has broken through and been noticed. Mozilla engineer Rob Sayre tells us that WHAT-WG is better than the previous contenders to the HTML-standardization throne, that Firefox has already picked up one piece of their draft-ware, and will be implementing more. Meanwhile, Sam Ruby is doing outstanding work, apparently persuading the WHATters of the virtues keeping what they’re calling “HTML5” somewhat compatible with the rest of the world’s markup. [2 comments]
Web Application Security · A pretty fierce debate has broken out on how to do security for Web-applications (REST, WS-*, whatever). I’m gratified that it seems to have started in the comments to S for Simple. The proponents are Gunnar Peterson and Pete Lacey, and what they have to say is interesting. I think Gunnar didn’t do a good enough job of filling in one of the bases of his position, although in private email he sent me a link to a PDF from eBankingSecurity.com which is worth a look. The point is that a significant proportion of Windows PCs are compromised with trojans and keystroke-loggers and other flavors of bad-ware; significant enough that the pretty-decent transport-level security provided by TLS is immaterial. Those of us who are technically-competent and don’t use Windows can feel individually secure, but that doesn’t mean Gunnar doesn’t have a point. [5 comments]
Hold Still! · The animation in Web display ads is outta control, outta control, I tell ya! They slither and shake and squirm and flash and jitter and morph and I’m gonna start bleeding from the eyeballs. I’ve always eschewed ad-blockers and Flash-blockers, because advertising should be part of the ecosystem; but things have gone too far. Ads in magazines don’t offend me in the slightest, I even enjoy some, have even been informed about something I might buy. But on the Web... my instinct tells me that these things not only hurt my brain, they can hardly be achieving the intended effect. [12 comments]
Tab Sweep · Unifying theme: none. Item: Excellent Rails-vs.-Django study. No axe to grind, apparently. No obvious winner, which is news given the Rails hype. Item: Dana Blankenhorn’s Means and ends in open source; very thought-provoking. My guess is that the immense licensing fees driving the bloated sales infrastructures at Oracle, SAP, and friends are small in relation to the whole software acquire/deploy/maintain monetary pie, so the size of the whole industry isn’t likely to change that much. Item: Irving Wladawsky-Berger, grand IBM technology poo-bah, speculates about the future of the 3-D Web in An Unusual Meeting. Speaking as one who’s made two concerted efforts to build a 3-D representation of the Web, I sure hope he’s right. Item: I can read Takashi’s cat’s mind. He’s 100% focused on how he can get in between Takashi and the computer. (Takashi’s amusing post is about “Engineer's 2.0 day-life in the midafternoon”.) Item: From Clay Shirky, Social Facts, Expertise, Citizendium, and Carr; a careful, level-headed thought piece on what it means to be an expert, in the context of Wikipedia and Citizendium. Item: From “jbischke” at Learn Out Loud, a handy list of The Top 10 Arguments Against DRM; we already knew most of this stuff, but it’s useful to have it pulled together, well-argued and in one place. Item: Everyone’s blogging Test your musical skills in 6 minutes!; I only got 72.2%, sigh. [11 comments]
Streaming-Only Hah Hah · You really have to snicker at YouTube trying to suppress tools that let you capture video to disk. Lessig is amusing on the subject. Uh, just in case there are one or two people in the universe who still don’t know: if you post video to YouTube (or to anywhere else on the Web), it can be captured and downloaded and it will be captured and downloaded and no lawyer in the world, however expensive and threatening, can stop this happening. Deal with it. [4 comments]
Zend/PHP Conference · I spoke Tuesday morning at the Zend/PHP Conference & Expo in San Jose. I was kind of overloaded and only had four hours among the PHP gang, but it was instructive, particularly in the context of my recent RubyConf experience ... [4 comments]
Out With the Old · Check out Reinventing HTML by Tim Berners-Lee. There’s going to be a new HTML Working Group, with a new chair, new charter, new staff contact, new everything. There’s no point me reproducing Tim’s narrative about the charter, but it’s interesting; go read it. I have had a very poor relationship with the existing HTML WG, so I’m hardly unbiased; but given the that the W3C’s impact on HTML over the last few years has been essentially zero, I think that this has to be A Good Thing. [Update: There is related TAG discussion afoot.] [3 comments]
One Way or Another · Don Park makes his blog go fast by applying WhirlyCache to the DAO layer, slipping in a transaction layer to reduce database integrity corruption, and using aspect-oriented programming technology via the Spring framework, with the help of Java annotations to mark transactional methods and classes. Yow! My approach is to have Apache serve static data out of the filesystem. Whatever; faster is better. [1 comment]
Web Hacking With Real Money · Looking for some new data for your next mash-up? How about playing with real money? The U.S. Securities and Exchange Commission’s Interactive Data Initiative has an RSS feed of company financial filings; not just the text, but in a highly-structured XML format called XBRL. I glance at the feed this morning and see data from ADP, Dow Chemical, Molina Healthcare, Xerox, GE, Infosys, 3M, Bristol Myers Squibb, and lots more. XBRL isn’t the world’s easiest format to grok; that’s partly because the formalisms that govern accounting are non-trivial in the extreme. But I’m quite sure there are fortunes to be made by people who combine hacking chops with financial savvy, and figure out how to automate digging insight out of this data. Of course, in most gold rushes, the best business angle is selling tools and entertainment to the miners; so there is obviously more than one way to work this territory. And a great big tip of the hat to the SEC for getting this stuff on the air. [1 comment]
Upcoming Gig: Zend PHP Conference · I wonder how many people will attend both a Rails and a PHP conference this year? I’m one of them; I’ll be at the Zend/PHP conference, joining in a session moderated by O’Grady called Panel Discussion: How Do The Stacks Stack Up?; should be fun. [2 comments]
The Ape · I’ve put up an Atom Protocol Exerciser at www.tbray.org/ape. It might evolve to become a sanity-checking tool something along the lines of the Feed Validator. I don’t want to call it a “validator” because a feed can be said unambiguously to be valid, or not; but a publishing-system interface might be unusably buggy or slow or have moronic authentication policies; all the Exerciser (let’s just say “the Ape” for short) does is perform a bunch of operations that a typical APP client might, and report the results. Also I’ve taken liberties in reporting some things that aren’t covered by the spec that implementors might want to know about. One of the most useful things the Ape does is provide a complete trace of exactly what the client and server sent back and forth to each other; immensely helpful as a debugging aid. Quite a few interesting war stories have been coming out of the Ape-building process. I’ll keep this post updated with the current Ape status. [Latest: i18n is back, and Elias Torres has a guinea-pig APP end-point to try it out on.] ...
On Names · The W3C Technical Architecture Group, on which I had the honour to serve for a couple of years, is working on a document called URNs, Namespaces, and Registries. Norm Walsh, longtime TAG member, has written a human-readable version, and I recommend it. The question of how to name things is persistently one of the hardest in Computer Science, and one of the reasons the Web succeeds is that it does a pretty good job, using URIs. If you’re thinking “Doesn’t he really mean URL?”, check out The Universal Republic of Love). However, every so often a group of people says “Hey, URIs beginning with http: are addresses, not names, and we need names, persistent names, so we’ll invent a new URI scheme.” They are nearly always wrong; it takes a whole lot of thinking about the notions of names and addresses to achieve clarity, and wanting a new URI scheme is usually evidence that you haven’t. I’ve tried to explain this dozens of times, but I think Norm does a better job than I ever have.
No Database!? · Recently, in discussion of a design for a comments system, I noted that I wasn’t planning to use a database, and I even allowed my self a little fun sneering at the idea. I got several reasonable-sounding emails from reasonable-sounding people saying “Why on earth wouldn’t you?” Here’s why ...
Comments on Camping · Last month I said I’d make a comment system for ongoing, and I got lots of good advice. Several of the people who wrote suggested I consider Camping, so I decided to give that a try, and started today ...
Measuring the Web · This is the title of a talk I gave on May 7th, 1996 (over ten years ago!) at the Fifth International World Wide Web Conference, at La Défense in Paris. It won a gold medal from the Mayor of Paris (one of two at the conference thus distinguished) which I display in my office; I worked awfully hard on that paper. I wanted to cite it recently, but the WWW5 Web Site has been AWOL the last few times I’ve tried to go there. Coincidentally, I ran across the conference CD in a recent basement re-organization. So I’ve staged it here: Measuring the Web. It’s no more than a historical curiosity now, but it’s a history that’s not that well documented. Plus there are some pretty pictures. Occasionally I wonder what might have happened if I’d been smart enough to follow up on the significance of the notion of “visibility”.
Roundup · Once again I’m drowning in little tech-news tidbits that I think the world needs to look at: hence a Friday linkfest: Item: John Cowan’s TagSoup has reached 1.0. This is going to be an essential tool for so many people. Item: Assaf Arkin, in Why Blogs Work, explains it all. Item: Kimbro Staken provides 10 things to change in your thinking when building REST XML Protocols. Item: InfoQ has launched; does the world need another software-news site? Quite possibly. Item: From Mark Nottingham, HInclude; this is pointing in the same direction as Ingy’s Jemplate, and unless I’m missing something obvious, it’s an important direction.
Grains · We push technology along slowly, gaining a bit here and a bit there. Most improvements, in anything, are incremental; the big advances, every one of ’em, are rooted in the fertile soil whose grains are all those little steps forward. Here are a few grains. Item: Bruce Eckel squeezes XML into a single Python class. Item: Niall Kennedy pulls together all the syndication specs you might need; for example see atom.feedspecs.com or itunes.feedspecs.com. Item: Peter Thomas pulls together a spine-chilling graphic mapping what happens around a Hibernate storeItem call. Question: is what this picture shows a problem or not? Item: Charles Nutter pushes the JRuby Gems along, interestingly (and read the comments).
Drunk Men On Bots · Yet another piece of good work in irritatingly-anonymous webspace. On Bots is at once instructive and beautiful.
Stop the Metaphors! · Rich McManus says the Web is a platform, and reports that per Arrington, it’s an OS. I think this whole menagerie of metaphors around the Web has never been helpful and we should just stop dreaming them up. The Web isn’t a platform or a database or an API or an OS a cloud or a clickstream or any other of those things. In fact, the Web isn’t even a thing, it’s a mesh of agreements with a nice straightforward engineering rulebook. Play by the rules and you can be part of it and build something great, struggle against them and you’ll look lame and you’ll fail. But don’t try to analogize it; sometimes the world has new things in it and you just have to deal with them as they are.
Go Visit Phobos · Hey, I see that Roberto has pushed some actual software bits to the Phobos site. Phobos is a server-side scripting framework that runs on the Java platform. Right at the moment, it’s all JavaScript, but the hooks are there to wire in other languages. I’ve been a major Phobos cheerleader for a year or more inside Sun, but my only actual contribution is the astronomical logo. There were people here who were considerably ambivalent about showing Phobos to the world, and for good reason; they asked “What is Phobos, actually?” and wondered about its relationship to the rest of GlassFish. I’m not 100% sure what Phobos is myself, but it’s interesting as a thought experiment, showing that you can do the kind of lightweight zero-deployment things that people don’t think Java does. The Reddit/Dojo mashup demo is seriously cool. Finally, while the server-side JavaScript notion is pretty weird, go have a look at the code; writing an AJAX app all in one language is seductive on the face of it.
Credit 2.0™ Where It’s Due · James Governor grumbled at me about repeatedly crediting Hal Stern for the “Web 2.0 = Writeable Web” meme, specifically pointing out Read/Write Web by Rich McManus (which is excellent). He’s got a point, but if we’re going to start down that road, we’ll end up with Tim Berners-Lee, who has repeatedly made it clear that he always thought of the Web as a place to write, not just read. And if we’re going to talk about practice not theory, you’d end up looking at Dave Winer, who pushed RSS in everyone’s face and, more important, proved that a fast-writing ornery geek could gather an audience and wield influence by, you know, doing it. And as a geek myself, I’ve always liked James Snell’s chmod 777 web. Until this minute, I’d thought Hal was the first to nail the 2.0 connection; but now I think that James got there first (May vs. October 2005).
Those Accents · I already wrote about how the NetBeans and EE guys are learning lessons from Rails. But when Roman Strobl asked me to look at his latest on instant persistence, I realized that they’ve learned the really important lesson; it’s all about instant-app screencasts featuring guys with cute European accents. Dig the way Roman says “scaffolding”. Clearly Django, Grails, and the other Web-framework wannabes need to go recruit some appealing Europeans... now here’s a radical idea: how about a woman? [Update: Django has a Eurowebcast too!]
Continuations and GUIs · Gilad Bracha asks Will Continuations Continue? in an excellent essay about whether the JVM needs continuations. Personally I have never found them idiomatic so I have no quarrel with Gilad’s reluctance, but I entirely disagree with the line of argument he uses to back it up. He points out that Web frameworks like Seaside make excellent use of continuations, but argues that that’s a red herring because the current style of Web-human interaction is a temporary anomaly and “the future of Web apps will be different”, with AJAX signposting the way. This notion, that the Web GUI is insufficiently interactive and we need something richer, is widely held among developers and almost never among actual users of computers, and it’s entirely wrong. I can remember when people were forced to use compiled Windows and X11 applications, and most of them were extremely bad because it’s really hard to design a good interactive UI; when the Web came along, more or less everyone abandoned those UIs in favor of the Web, almost instantly and with shrieks of glee. Yes, Web UIs are drastically constrained, offer a paucity of controls, and enforce a brutally linear control flow; and these are good things. I remember, in the early days, people saying “Once you know how to use one Windows app, you know how to use them all”. Ha ha ha. But you know what? Once you know how to use a browser, you are well on the way to being able to use most Web apps. The best AJAX apps are still very Web-like (as in, the Back button always works); but they’re faster and more responsive and nicer to look at. The worst AJAX apps are like bad Nineties VB. Having said all that, I suspect that Gilad’s right about continuations. [Update: More good stuff on the subject from Don Box and (especially) David Megginson. Plus a few remarks, in a superior tone, along the lines of “That silly man, can’t he see that users really want more complex user interfaces?” All, of course, from developers.] [Further: Some pro-complex-interface remarks that are actually coherent from Simon Brocklehurst (but Simon, a good browser should pre-fill forms for you and get it right almost all the time; Safari does). And there’s more solid thinking in HREF Considered Harmful; I know who writes it but he seems to be trying to hide his identity, hmm.] [Hrumph. Curtis Poe says I’m a Sapir-Whorf victim, I don’t feel the need for continuations because I’ve spent too many years using pathetic, impoverished languages like C and Java. Well, OK then; I promise to find a way to squeeze ’em into my Ruby-based comment system.]
Comments on Comments · Last week I started sketching a design for a commenting system, and asked for feedback. I got lots, and I’m reproducing it here ...
Comments Please · I hope soon to begin implementing a comment system for ongoing. This space is my notebook where I’ll work out the design. Since, as of this writing, the system exists only in theory, if you have a suggestion you’ll have to send me an email. I’ll publish the helpful ones. [Update: Tons of super-intelligent comments, informed by (sometimes bitter) experience. Thanks! I’ll publish them, but a couple of things emerge. First, I do have to plan to fight spam. Second, I should have a look at camping.] ...
What Matters · Let’s consider Flickr, del.icio.us, and Technorati as canonical “Web 2.0” companies. Let’s suppose that Flickr is popular because it’s a good way to organize and publish pictures, which is useful. And that del.icio.us is popular because it’s a good way to organize and publish links, which is useful. And that Technorati is popular because it’s a good way to find out what people are saying right now, which is useful. And let’s suppose that the facts that they all do tags and are frequently described in sentences that include the word “social”, just suppose those things are ephemeral, and the success is about doing useful things for individuals. How old-fashioned. Every day that goes by I believe more and more that the only important new thing is that the Net is read-write. Everything that matters follows from that.
Making Web Video · Yesterday I reported on shooting high-def video with the new Sony HDR-HC1, and the trials and tribulations of trying to generate computer-display output. When last I wrote, my PowerBook couldn’t manage to play the 800x450 MPEG-4 encoded QuickTimes unless they were encoded at “Medium” quality. Well, I’ve also got this Ultra 20 with a 2.66GHz Opteron and an NVIDIA Quadro FX 1400 (!) so I fired up the Nexenta α4 package manager and picked up mplayer. Bug: Mplayer wouldn’t play the .mov files from the GUI; must report. Anyhow, that combo eats those QuickTimes for breakfast, I even made a High-quality 435M 1920x1080 version and they all ran without a hitch or a glitch. The fan fired up, so I guess things were working kind of hard. But still, something’s not quite right. When the picture’s moving I can see scan lines and pixelation, but I want that creamy smoothness that iMovie manages, and that I see in online movie trailers. So... Dear LazyWeb: Can iMovie be made to morph high-def DV files into something really good-looking? For encoders, it offers: Apple encoders including H.263, a bunch of DVCPRO variants, H.261/263/264, Motion JPEG A and B, and Sorenson Video. Or maybe I need to junk iMovie and get something else? [Update: Lots of input! Several people say “De-interlace!” and I have a pointer from Mike Curtis to his useful-looking HD for Indies. Stand by for more when I get a couple hours free.]
MARS · Eek! A new acronym! Something our profession probably can do without, and (blush) I seem to have invented it. I have to say, though, the T-Shirt is OK. [Later...] And thus a micro-meme: MADD (and from its comments APPS, MADR); MAUDE (comments: FIDPAM, with none other than Mårten Mickos proposing MARTEN); WASTE; HATE; and PAID (where the comments are outta control, I tell ya, outta control: LAPD (“It Beats All The Other Frameworks”), MAID, PADL, RADKAWNP, POWNED, GLAPOD, “we're all gonna get Linux, Apache, Internet, Django!”, PDL, and PADD). I think it’s time to put a stop to this.
The Rails Lesson · Over at Geertjan’s blog, The Best Feature Of The Upcoming NetBeans IDE 5.5 is the strongest evidence I’ve seen that the mainstream Java universe is really paying attention to that lesson. Sure, over at the excellent Aquarium, you can read about how they’re slaving away in the engine room trying to make Java EE.next simpler and simpler and yet simpler. But I haven’t been convinced that they’ve got to a place yet where they’re going to win lots of converts from PHP and Rails. But this GlassFish+IDE combo is really coming along: in Geertjan’s example, he makes what looks like a basic CRUD app with no coding and no file editing. In particular, it looks like they’re getting close to Rails levels of DRY (“Don’t Repeat Yourself”). Geertjan skips lightly over the database-selection wizard; I wonder how much more than “use these tables” it needs? [Update: He follows up with the details.] And the Rails people will be asking “What is this ‘Deploy’ of which you speak?” But still, we’re in interesting territory. [Update: Not ten minutes after writing this, I ran across Java web frameworks - the Rails influence, which in turn led me to the (excellent, albeit in PDF) Java Web Frameworks Sweet Spots. Did I say “interesting territory”? Interesting times, too.] [Update: It turns out that the infrastructure Geertjan showed off was by Pavel Buzek, who writes about the process and seems like a Major Force for Good. It’s guys like him who are going to cost Berlind the price of a nice dinner.]
LAMP and MARS · At that Rails conference, when I was talking to Obie Fernandez, he asked, more or less “How can Sun love us? We’re not Java” and I said, more or less, “Hey, you’re programmers, you write software and there have to be computers to run it, we sell computers, why wouldn’t we love you?” Anyhow, we touched on parallelism a bit and I talked up the T1; Obie took that ball and ran with it, saying all sorts of positive things about synergy between Rails’ shared-nothing architecture and our multicore systems. Yeah, well, good in theory, but I’m too old to make that kind of prediction without running some tests. Hah, it turns out that Joyent has been doing that, and have 76 PDF slides on the subject. If you care about big-system scaling issues, read the whole thing; a little long, but amusing and with hardly any bullet lists. If you’re a Sun shareholder looking for a pick-me up, check out slides 40-41, 49, and 52-74. Oh, I gather that the T1, Solaris, and ZFS are OK for Java too. [Update: The title was just “SAMR”, as in LAMP with two new letters. Enough people didn’t get it that I was forced to think about it, and MARS works better anyhow.] [Update: Bryan Cantrill shows how to profile Rails with DTrace.]
Hyatt on the High-Res Web · Check out Dave Hyatt’s excellent write-up on designing and rendering Web pages so they take advantage of the higher-resolution screens that may be coming our way. I emphasize “may” because I’ve seen how slowly we’ve picked up pixels over the years. The first really substantial screen I ever worked on was a 1988-vintage Sun workstation with about a million pixels. The Mac on my lap right now, which has 125 times as much memory as that workstation, has only 1.38 million pixels. Anyhow, Hyatt has some smart things to say on the issues, which are trickier than you might think. I suspect that sometime in a couple of years, if I still care about ongoing, I’m going to have to go back and reprocess all the images so that higher-res versions are available for those who have the screens and don’t mind downloading bigger files. Anyhow, Dave’s piece may be slightly misleading in that he talks about SVG as though it’s something coming in the future. Not so, check out this nifty SVG Atom logo, which works fine in all the Mozilla browsers I have here. Load it up, resize the window, and watch what happens. Then do a “view source”. [Update: Jeff Schiller writes to tell me that Opera 9 does SVG (and Opera 8 “SVG Tiny”) too.] [Dave Walker writes: Though the shipping version of Safari doesn’t support SVG, the nightlies do.] [Dave Lemen points to JPEG 2000 as possibly useful in a high-res context.]
The Cost of AJAX · James Governor relays a question that sounds important but I think is actively dangerous: do AJAX apps present more of a server-side load? The question is dangerous because it’s meaningless and unanswerable. Your typical Web page will, in the process of loading, call back to the server for a bunch of stylesheets and graphics and scripts and so on: for example, this ongoing page calls out to three different graphics, one stylesheet, and one JavaScript file. It also has one “AJAXy” XMLHttpRequest call. From the server’s point of view, those are all just requests to dereference one URI or another. In the case of ongoing, the AJAX request is for a static file less than 200 bytes in size (i.e. cheap). On the other hand, it could have been for something that required a complex outer join on two ten-million-row tables (i.e. very expensive). And one of the virtues of the Web Architecture is that it hides those differences, the “U” in URI stands for “Uniform”, it’s a Uniform interface to a resource on the Web that could be, well, anything. So saying “AJAX is expensive” (or that it’s cheap) is like saying “A mountain bike is slower than a battle tank” (or that it’s faster). The truth depends on what you’re doing with it. In the case of web sites, it depends on how many fetches you do and where you have to go to get the data to satisfy them. ongoing is a pretty quick web site, even though it runs on a fairly modest server, but that has nothing to do with AJAX-or-not; it’s because of the particular way I’ve set up the Web resources that make the pages here. I’ve argued elsewhere that AJAX can be a performance win, system-wide; but that argument too is contingent on context, lots of context.
Rails Asset Naming · I said that I’d been nervous about one particular Rails innovation, rolling timestamps into the URIs of static assets, for example /images/img23.jpg?20060412191322, because it had the smell of level-mixing about it. So I talked to DHH about it, and he swore up and down that when the timestamp (and hence the name) changes it’s because this really is a new thing (Resource, in Web terms), not a changed version of the same thing. This leaves one question in my mind; does the system allow for someone to link to the ?20060412191322 version after it’s been replaced by one with a ?20070223101354 timestamp? Because if the old one is automagically gone after the new one arrives, I wonder if it really is a new thing. The reason they do this is obvious; they can set this kind of thing cacheable-forever at the HTTP level and really cut down, first on needless traffic, but more important, on user-perceived latency. Which is a good thing.
Canada on Rails · As I was picking up my badge from the slinky black-cocktail-dress-wearing women (huh?) at the registration desk, this guy came running up saying “We’re sold out! Don’t sell any more!” And the conference was packed, all right. Herewith notes on DHH’s keynote, the crowd, and BDD from Dave Astels ...
Those Cruel Irish · People inside Sun were gleefully emailing around Colm MacCárthaigh’s big Niagara benchmark post and I was reading and found myself laughing out loud. The synopsis is: it’s a big serious benchmark and the box did great, pretty well slaughtering both a Dell Xeon and a Dell Itanium. But jeepers, those Irish dudes are heartless, I’m surprised there weren’t smoking shards of casing and silicon on the floor. I think most Apache & *n*x geeks would find themselves gasping and snickering a bit at Colm’s write-up, but there’s some real wisdom there too about file