[Previous entry: "City of Spokane addicted to crack"] [Next entry: "Murphy's Computer Laws"]
03/15/2005: "ETech -- Day 1"
While some people complain about driving, I flew for nearly 8 hours to get to San Diego. The trip was smooth until Marriott decided that I couldn't stay at the Courtyard Downtown, and shuttled me over to the Coronado Island Marriott Resort, despite the fact that I've held reservations for six weeks.
Yes yes, the room is very nice, but its throwing my schedule off, every trip is a taxi ride, and I've had four today, all in San Diego, three more than I anticipated. Feh.
Still, I managed to check-in, and then grab the 3rd taxi to attend Michael Mee's BOF on "Community Wireless Internet". I even got there before Mr. Mee, whom I've finally met face-to-face. A good thing, since I'm speaking to SoCalFreeNet tomororw night. (Sex, Drugs and Wireless, heh.) The PowerG8 was also shown in-public for the first time, along with a couple WRAP-based products.
After the BOF, Danny O'Brien, of Need To Know fame, threw a little party at Emerging Loft where too many people showed up, including me.
On the walk over, I chatted with a couple people, the "Kailua, Hawaii" on my nametag typically opens the door. "What do you do there?" "I moved to Hawaii so I wouldn't ever have to deal with VCs again."
One guy jumped at that, "VCs and bankers are ruining my company. They want me to outsource everything to India!" We discussed this for a couple blocks, and I offered my advice that the only way to succeed with Indian (or other) contractors was to have someone you trust on the ground at the remote site.
Someone should write an update the business book, "Who Moved My Cheese To India?"
Saw Cory, spoke to a local (San Diego) FBI agent, sniffed around about FPGA hacking; the secrets of ZigBee; and the social structure of 90s warez networks. Drank three large cups of Sky and pineapple juice on ice, and in-general felt way older than most of the crowd. Toward the end I saw three folks hold up the wall, so I wandered over to accuse them of same. Turns out the were Wendy Seltzer, Annalee Newitz (who didn't say five words before running away (is it the haircut?)) and Jason Schultz, whom I also finally got to meet face-to-face. Jason heads up the efforts on the Acacia/Lodgenet patent front for EFF. Wendy, btw, was polite, or at least tollerant, engaging me in repertoire until Jason was off the phone.
I also met a woman who shall remain nameless (for now) who claimed to work for Intel, making sure that Intel shows up in the news, for the benefit of Intel employees. Thats right folks, she's a PR flack who's audience is her fellow employees. Talkk about scratching your own back. I asked her if she'd read Cluetrain. Nope. Had she heard of Doc or Chris? Nope. "Markets as Conversations"? Nope.
I briefly described the good Doctor's start,
In 1995, I ended up in IBM's Internet division. A ranking PR guy from corporate headquarters ran into me one day and said he'd heard I had a lot of contacts in the financial press. He suggested we get together for lunch and talk about it. I took this as a good sign, maybe an opening to do what I liked best. But when we met several weeks later he said something like, "All those journalists you know? Never talk to them again."
He said I should refer all such conversations to him instead. That way, he said, the company's messaging would be consistent. Or words to that effect. But I knew they wouldn't be real conversations — they would be "key message" pitches, and I wasn't about to subject people I knew and liked to that sort of targeting. I kept my contacts to myself.
I was devastated. It was bad enough that I'd been explicitly forbidden to speak with journalists, many of whom had become good friends, but where was I going to write? If I published anything, I'd get busted for not asking permission — there was that word again — and if I wrote sleazy PR for IBM, I'd have to kill myself to blot out the karmic stain.
I offered to introduce her. Blank stare in the return direction from otherwise perfect blue irises so perfect that they could have been Carl Zeiss tinted contact lenses. I made a last-mintue grab, "Doc is an editor at Linux Review". This, and only this, she had heard of, even though Cluetrain is a mere six years old. Imagine, Chris Locke had just started at IBM ten years ago.
We briefly discussed what she'd done before Intel. Web applications on a framework I probably hadn't heard of.. "Yes, I know about Zope." She was surprised. I countered that Lisp was something to watch, since it was likely due for a return. One of the standers-by asked, "Why Lisp?"
"Continuations", I countered. And explained. Maintaining state across web sessions has long been an issue that web application designers have struggled with. Continuation based web servers provide a convenient mechanism for maintaining state across requests.
When programming for the web, it's annoying that there is no persistence. Yet, because users can use the Back button, open links in new windows, make bookmarks and generally move all over the place, ordinary persistence is a bit of a mess.
A continuation is a programming concept which is a bit like a save-point in a game. If you're before three doors, you might save; if it turns out there's an ogre behind door #1, you can just return to the savepoint - but you're allowed to keep the knowledge!
You can have several save-points, saved under different names, and switch between them - so you can go on with the game, and at the same time work on some side-puzzle.
It's a complete save. In a continuation, you have all the variables (global and local) and the full stack - a full restore, so the program can go on exactly where it left off.
Now, it seems to me that the model of the web corresponds pretty well to continuations. The program runs up to the point where interaction with the user is required. At that point, it encodes the continuation into the links given to the user, and quits.
When the user clicks one of those links, the URL contains a continuation and whatever response the user gave. Decode the continuation, resume it, and voila! - it all works.
Done properly, it'd be mostly invisible to the programmer. Just call a function to display the web page, and get back an answer. No sessions or any of that stuff.
The user can use the back button, have several windows open, bookmark a page and come back to it weeks later - everything works.
Meanwhile the programmer is back to the logic flow of the web app.
I tell ya... Lisp is the answer.
Now, what was the question again?