« February 2005 | Main | April 2005 »

March 31, 2005

Toward More Sophisticated Intermediation

Jon Udell is talking about an architecture of intermediation. Its interesting that Web services intermediaries became sophisticated very quickly (some might argue too quickly) while RESTful intermediaries have pretty much offered store and forward services 'ala proxies and little else. Jon's positing that that should change. I think he's right. This is right in line with the call for better tools and standards for RESTful Web services that I made a while back.

The reason I link more sophisticated intermediation and better service description standards for RESTful services may not be immediately obvious. Over the past two years, I reviewed a lot of intermediaries for SOAP. They are made usable by WSDL. Without WSDL, using one of these would be such a chore, that you're never do it. Every time you wanted to configure a new service intermediation, you'd have to custom describe the API. With WSDL, I just give the intermediary the URL for the service's WSDL file and it configures itself. That's powerful and makes these things relatively easy to use.

Some, like Stefan Tilkov disagree that we need a description language for RESTful services, on the basis that description and strong (or static) typing are somehow linked. I don't buy it. I believe that API descriptors are a powerful tool for interoperability, even when the language or service is dynamically typed. Without it, you severely limit the kinds of intermediation that you can do.

5:51 PM | Comments (1) | Recommend This | Print This

Junto Partners

Brent Thompson wrote to tell me of Greg Warnock's Junto Partners, a program for identifying and encouraging young entrepreneurs that seems similar to Paul Graham's Summer Founders Program. Brent participated in Junto Partners and says:

Being part of Junto has been invaluable--and not because of any funding potential. The things I would consider most valuable are the networking and mentoring. Additionally, simply being part of something sponsored by a well-known entrepreneur has been great for getting first meetings and a little unsolicited attention.

12:42 PM | Comments () | Recommend This | Print This

March 30, 2005

Y Combinator

Paul Graham's new venture for ventures has a name: Y Combinator. That's a great choice.

2:24 PM | Comments () | Recommend This | Print This

Berkeley Identity Data Stolen

Yesterday I posted an article at Between the Lines on the recent theft of identity data from UC Berkeley. The theft has several important lessons for anyone who gathers identity information and stores it.

2:21 PM | Comments () | Recommend This | Print This

March 29, 2005

Brent Ashley on Ajax and Remote Scripting

Brent Ashley "cuts through the crap" and talks about Ajax and remote scripting.

AJAX is an acronym for Asynchronous Javascript + XML. Ok, now that I've told you that, forget you ever heard it. Ajax (proper case) has already come to represent a wider concept. The concept is this: Load up and render a webpage, then remain at that page while scripted routines make background trips to the server for data that is used to update the page in place by re-rendering and or hiding/unhiding portions of the page. Now that we've got that settled, let's break the concept down into some functional parts to see where the convoluted discussion's apples and oranges lie:
  • Presentation
  • Invocation
  • Message Encoding
  • Transport
From brentashley: Ajax forest, Remote Scripting trees
Referenced Tue Mar 29 2005 08:35:49 GMT-0700 (MST)

As Brent points out, we're not really talking about concepts or technology that hasn't been available since 1998 or so. However, as with many things, it took some example to help us break out of the trap of thinking that a Web page always had to refresh completely.

This has really started to resonate with me lately. I've been reviewing some product for InfoWorld that have Web interfaces and they seem very clunky now whereas 6 months ago I accepted them as a fait accompli. I'm expecting more from Web applications now (and that will be reflected in my reviews). I think a few years from now, most Web applications will use dynamic rendering techniques as embodied in Ajax. For that to happen, however, we need better toolsets.

8:33 AM | Comments (3) | Recommend This | Print This

March 28, 2005

On the Virtues of a Well-Documented Schema

John McDowall, picking up the riff on the death of SOAP, says:

I am not sure REST or SOAP address these issues. A well documented schema and a well written HTML page probably contribute more to message integration than any WSDL or REST URI
From Fast Takes: Is it the message or the transport
Referenced Mon Mar 28 2005 07:53:38 GMT-0700 (MST)

In other words, conveying meaning trumps protocol as a priority for interoperability.

7:53 AM | Comments () | Recommend This | Print This

March 26, 2005

Neighbornode

Scott Lemon has been thinking about single purpose wi-fi networks for quite a while now. Today he sent me a link to Neighbornode, a special purpose wi-fi network in NY (mostly). A neighbornode is an electronic message board that serves everyone who can see it. In an area with dense housing, it creates a virtual community of the people who live near it. I like that its an example of a special purpose wi-fi network, but I also love that its a way to use technology to bring people in a community together.

6:06 PM | Comments () | Recommend This | Print This

March 25, 2005

New Uses for Motion Sensors

At the CTO breakfast yesterday, we were talking about the innovative uses people are making of the PowerBook's motion sensor. For example, you could imagine motion sensors in a GPS unit or cell phone that allowed you to navigate menus (and more) by moving the device. The Gillmor Gang session with Dan Bricklin gets into some similar user interface issues.

4:01 PM | Comments () | Recommend This | Print This

On the Death of SOAP

I just put up a post at Between the Lines on the death of SOAP.

The challenge for the RESTful crowd is to create a well-thought out transport alternative to SOAP. HTTP is the basis for that transport, but it's not enough. The place to start is with service description and data binding so that RESTful Web services can enjoy the same kind of discovery that possible with SOAP. Paul Prescod made a start with his WRDL proposal, but it hasn't really taken off.
From » On the death of SOAP | Between the Lines
Referenced Fri Mar 25 2005 09:32:37 GMT-0700 (MST)

Update: A comment at Between the Lines mentioned Dave Orchard's WSDL 2.0 description of Yahoo! Search Web services.

9:30 AM | Comments (1) | Recommend This | Print This

March 24, 2005

Solving Problems with Privacy

I just spent an hour talking to Dan Solove from GWU. Dan is the author of The Digital Person: Technology And Privacy In The Information Age, a great book on privacy. Dan has a recent paper that outlines what specifically should be done to better regulate information privacy. The paper gives 16 specific suggestions. State legislators wondering what they can do to help with the identity theft problem ought to read it carefully. My interview with Dan will appear at IT Conversations in the coming weeks.

1:53 PM | Comments () | Recommend This | Print This

March 23, 2005

Get a Second Life

If you're into MMRPG's, or even if you're not, you should check out Second Life. If you're not ready to jump in, listen to Cory Ondrejka's talk at Accelerating Change 2004 to get a feel for how Second Life works. Of course, the danger is that you might get sucked in. I barely have time for my first life without another.

4:31 PM | Comments () | Recommend This | Print This

IM Security Threats

The number of IM-based security threats is rising. Add that to the recent buzz about AOL's EULA allowing them to read and otherwise make use of the contents chat sessions. The answer? Use Jabber or encrypt your AIM sessions.

4:20 PM | Comments (1) | Recommend This | Print This

March 22, 2005

Graham's Summer Founders Program

Paul Graham is putting his money where his mouth is with the Summer Founders Program. The idea is simple:

The first project is to fund a bunch of new startups this summer. Summer is a good time to start a startup. Robert Morris and I started ours then; Robert was still in grad school, and he probably wouldn't have had time for that initial burst of work during the school year.

We're going to call this project the Summer Founders Program, and it preserves many of the features of a conventional summer job. You have to move here (Cambridge) for the summer, as with a regular summer job. We give you enough money to live on for a summer, as with a regular summer job. You get to work on real problems, as you would in a good summer job. But instead of working for an existing company, you'll be working for your own; instead showing up at some office building at 9 AM, you can work when and where you like; and instead of salary, the money you get will be seed funding.

What happens at the end of the summer? That's up to you. If you want, you can mothball or dissolve your startup, and no harm done. If you want to keep going and we think your company is promising, we'll probably be able to help you get more funding.
From Summer Founders Program
Referenced Tue Mar 22 2005 20:14:19 GMT-0700 (MST)

This sounds like a remarkable way to do economic development. I'd love to see someone like FundingUtah put together a pool of money to do this in Utah.

Bonus link: How to Start a Startup

8:12 PM | Comments (1) | Recommend This | Print This

March 21, 2005

Using Your PowerBook as an Input Device

If you weren't aware, the new PowerBooks contain motion detectors that are used to shut down the hard drive in the event the machine is suddenly dropped. That's not particularly innovative, but what is is the fact that there is a user accessible interface to the motion sensor. Amit Singh has released software that allows the computer itself to be used as an input device. Check out the movie should someone using their PowerBook to drive Google Maps.

5:22 PM | Comments () | Recommend This | Print This

Yahoo! Buys Flickr

Dick Hardt reports that Yahoo! has acquired Flickr.

9:32 AM | Comments () | Recommend This | Print This

CTO Breakfast on Thursday

I'll host another CTO breakfast this Thursday at Gandolfo's Food Court in Building L at the Canyon Park Technology Center (former Word Perfect campus). Interest in computers and building things is the only entrance requirement.

Here's a couple of things I thought we could discuss, but, as usual, anything's fair game.

  • Scott Lemon and I just returned from eTech. I'm sure there are some interesting ideas from there that we'll get into.
  • Listen to this Gillmore Gang with Adam Bosworth. There are some interesting ideas about building large Web sites and data routing that I would love to discuss with some smart people.

This will be our last Thursday meeting for a while. In April, we'll return to Fridays. I hope to see you there.

8:51 AM | Comments () | Recommend This | Print This

Tactical Deployment and Strategic Planning

My column on Tactical Deployment and Strategic Planning has appeared in the March 2005 issue of Connect Magazine.

For this to work, CIOs have to start differentiating strategic planning from strategic deployment. Large monolithic enterprise applications are both strategically planned and strategically deployed. In reality, businesses ought to plan strategically and deploy tactically. Organizations should be able to create strategic plans that don't revolve around a deployment project. Many IT shops use system deployment as their chief organizing principle and that's a mistakeit usually doesn't serve the business.

As obvious as it sounds, IT shops need to plan around business needs. This is just another way of saying that IT organizations need strong enterprise architectures. Enterprise architectures provide a context within which various groups can quickly and flexibly deploy IT services. Done right, an enterprise architecture allows decentralization of the deployment without a concomitant degradation in interoperability. This creates a way for tactical deployments to be driven by strategic goals and the result is a more flexible IT organization that's aligned with business needs.
From Tactical Deployment and Strategic Planning
Referenced Mon Mar 21 2005 08:48:17 GMT-0700

8:44 AM | Comments () | Recommend This | Print This

vSpring v|100

I was honored to find that I've been selected for the second year in a row to be in the v|100, a group of individuals considered by their peers most likely to lead a successful tech/biotech venture in the next 5-7 years. The list is an effort by vSpring Capital to identify potential CEOs and CTOs in Utah.

8:36 AM | Comments () | Recommend This | Print This

March 18, 2005

Sustainability is a Mirage

I was listening to Moira Gunn interview Mary O'Hara-Devereaux about her book Navigating the Badlands : Thriving in the Decade of Radical Transformation. The "badlands" are, in O'Hara-Devereaux's analogy, the rough times of transition in the world's history. She makes a case that we're going through the badlands now.

I was struck, however, by what seemed to me a glaring incongruity in some of the things she said. She said (I'm paraphrasing) "strategy disintegrates in the badlands. You need to be flexible and agile." This resonates with my experience. But, through some disconnect, the next topic was sustainable energy.

So I was left to wonder, how can you create a plan for sustainability in the face of uncertainty? Whenever you hear someone talk of sustainability, you get the feeling that the lack of sustainable energy sources is a recent problem. Its not, of course--burning forests for wood wasn't sustainable. So, we found something else (coal in that case) and stopped doing it.

Don't get me wrong, sustainable energy would be nice, but sustainability makes the problem much more difficult. Rather than looking for the next stone to step onto, we've got to somehow find the answer for all time. We don't. There's no doubt that we have to find something other than petrochemicals to serve as an energy source, but finding the next stone will be hard enough without looking for Nirvana. Personally, I think nuclear energy has a lot going for it.

9:34 PM | Comments (1) | Recommend This | Print This

Sam Ruby on AJAX

Sam Ruby some constructive comments on AJAX. First, use UTF-8 encoding for data. Second, use GET for what its supposed to be used for: getting. These comments are probably more broadly applicable than simple AJAX.

3:57 PM | Comments () | Recommend This | Print This

Longtail Slides

Chris Anderson has generously made the slides from his presentation on the longtail available for download.

3:04 PM | Comments () | Recommend This | Print This

March 17, 2005

Google Code

Today Google announced Google Code, Google'splace for open source software. For example, they have functional extensions to Python that they use and have made available to us as well.

3:22 PM | Comments () | Recommend This | Print This

Life Hacks Live

Danny O'Brien and Merlin Mann (click to enlarge)

Danny O'Brien offers a recap from last year (as bumper stickers):

  • Hackers love plaintext
  • My other app is in ~/bin: hackers use scripts
  • Super prolific geeks do it in public with complete strangers and like it. That is, they share.

These techniques are not just for alpha geeks. The theory is that they can trickle down to the masses. So what does that look like?

  • decent email search (Gmail, Lookout, and Tier Spotlight)
  • easy webscraping (no one's done this yet for the masses...)
  • keyboard macros for Windows/Linux (QuickSilver)
  • filepile for everyone (Flickr, Novell's iFolder, Groove)

Merlin Mann takes over to talk about 43 Folders, a place for finding out how to get things done. He calls it "a framework for making progress on the things that are important to you." The other big thing about 43 Folders is the low-tech and paper hacks.

Its important to create rules of thumb that help you avoid failure. Example: the ticket-forehead rule. Anytime you go somewhere that requires tickets, everyone in the car has to take their ticket out and hold it to their forehead and look around to make sure everyone else has their ticket. Stupid, but effective.

So, Danny takes back the mic to talk about what crossed over and why. Text editing didn't cross over. People like text files, but they didn't like text editors. Programmers have an affinity for text editors, but other's don't. So, with that, three mysteries present themselves:

Why the keyboard? People on 43 Folders love knowing about keyboard shortcuts and other ways of using the keyboard. Using the mouse is faster than they keyboard, but people don't report that. Is it because using the mouse is boring, but keyboard shortcuts present a mental challenge? One theory: Using the mouse is faster, but transitions cost time. Tippies (technically inexperienced people), get lost and never approach the stage where they gain from staying in the flow.

An example: Quicksilver is better than Alt-tab because Alt-tab has no muscle memory. There's no way that you can change tasks using Alt-tab without changing flow, even though you're still using the keyboard. QuickSilver allows muscle memory.

Another mystery: why the big screens? The productivity bump from large screens is true across the board (even true for tippies). Mary Czerwinski has done studies of this. The bottom line, having windows that don't overlap allows users to move between applications without significant context switching. Easier navigation is the key.

Third mystery: why are we so distracted? "Improved focus can be achieved through activities such as meditation, yoga, and turning off instant messaging." (Ulrich Mayr). This is a classic example of micro-events and their capacity for disruption. Geeks bore easily and we've built systems that keep us distracted.

The first wave for protecting flow as to eliminate navigation. The second wave will be eliminating distractions.

This year's killer apps:

  • Google suggest (protects flow)
  • Rise of the passive informant (things like dashboard)
  • A unified notification UI (e.g. Growl)
  • The nightmare of desktop search (could be more distracting) The return of Wordperfect (it was the only thing on the screen)

So, back to Merlin. A life hack its a patch that you apply to something you do to make it work better. How do we get beyond the idea that we have to patch things that don't work well. There hasn't been much innovation on functionality and integration of things like email and calendars. The system is broken if its up to me to find out when something has happened. Our computers have switched to interrupts, but we still poll.

Why can't I set filters on my email to notify me when interesting and important emails come in. Merlin uses Summary.Net, a log analysis program that tells him when unusual things happen on his Web site so he doesn't have to constantly check.

12:52 PM | Comments () | Recommend This | Print This

Remote Babysitting and Network Remixing

Nikolaj Nyholm, on Remixing the Network, tells the story of using Skype and Remote Desktop Connection to talk to his son while playing a game of Pippi Longstocking with him from thousands of miles away. He said it was a powerful experience. His talk is about how open bandwidth, open standards, and open source are allowing us to change what networking means.

Mass commoditization has also helped. A small Wi-Fi box, that costs $70, now has the equivalent processor of a $5000 Indy Workstation from 1995. Networking hardware is cheap and can be remixed in interesting ways. One such a box, the Linksys WRT54G, has a Linux distribution that runs on it: OpenWRT.

OpenWRT is a firmware replacement that allows you to build services on top of the WRT54G. The firmware core provides network initialization (ethernet and wireless), firewalling, DHCP client / server, caching DNS server (with hooks to DHCP to lookup DHCP client hostnames), and telnet server and busybox environment. "Everything else (ssh, HTTP administration, etc) can be done in the form of a package on the jffs2 filesystem; OpenWRT's goal is to provide a minimal base which can be expanded through the use of software packages."

The interface to the box looks like a Web page. The boxes can be programmed to attach to some central service for configuration. I think the idea is to create large networks of these devices, but I'm not sure.

The goal, create scalable Wi-Fi networks for smaller businesses, built from small, cheap boxes rather than lots of expensive gear from Cisco. The server software supports community building in an extended network of nodes.

12:07 PM | Comments () | Recommend This | Print This

Chris Anderson on The Long Tail

Joe Kraus and Chris Anderson (click to enlarge)

Chris Anderson is talking about the long tail. When you plot a powerlaw on a log-log scale, you get an line with negative slope. When you plot movie revenues, however, you don't get a nice line, you get a line with a drop at about rank 1000. Why? Because if you don't get theater distribution, you don't get money.

Traditionally, businesses have ignored this "cut off part," the long tail, because it was considered economically non-viable. Chris goes through the history of the growth of the long tail in various industries including network vs. cable TV and the number of products on supermarket shelfs.

In the 1990's we ran into the tyranny of choice (over 160 brands of toothpaste. "Which would I choose?"). Information can combat this.

Google AdWords are an example of taking advantage of the long tail. So is iTunes, eBay, Amazon, and CapitalOne. CapitalOne is an interesting example, because they have a fine-grained view of credit risk for their customers that allows them to offer the right card (from CapitalOne's perspective) to each customer.

The signal-to-noise ratio degrades as you move down the tail, so to drive demand down the tail, you have to have good exploration and filtering technologies to let people find the gems in all the garbage.

To have a long tail, you have to have a popular draw. Amazon recommendations drive people down the tail, but they enter at the top, looking for someone they knew because they're popular. He uses an example where you start with Brittany Spears (sales rank #384) and in four clicks are down to an unknown band from the 80's with sales rank of 32,000.

Another example is DVDStation, which allows customers to rent from over 5000 titles without the shelf space. Small retailers can now benefit from the long tail in DVD sales.

Should prices get lower or higher as you move down the tail? For things people want, like entertainment, the price should be lowered to encourage exploration. For things people need, like information, you can raise the price.

The long tail is big in secondary markets like user goods, gray goods, and overstock goods.

Is infinite shelf space like Moore's law or like steam? That is, does it break the game, as Moore's law does, or fit in with conventional economics?

In the follow-on conversation, Joe Kraus (CEO of JotSpot) is discussing how JotSpot is about recognizing the long tail in software, especially Web applications. He says the VCs don't want to hear about "going small to get big." The key thing to understand that the cost of acquiring can be low, but you have to build your model, and your system, around that idea. The key to a longtail business is massive inventory. The only way you can do that is to have other people build it for you. You have to be a platform for others. Good advice.

10:59 AM | Comments (4) | Recommend This | Print This

The Emerging Massive Media

Paula Le Dieu (Cluster Head for Content Management Culture with BBC's central New Media department) is talking about "massive media," as opposed to "mass media." Massive media is blogs, wikis, podcasting, and other technology that are increasingly becoming the places that people get information--the what, where, when, and how. Mass media loses when its content isn't available for other's to use. She points to the leak of the first episode of Dr. Who. Rather than embrace their fans, the BBC is "investigating the leak." Contrast this to Battlestar Galactica that voluntarily pre-releases an episode to get fan feedback.

On the other hand, Paula talks about BBC efforts to make their HUGE archives available for rip, mix, and share. "BBC will not use DRM." The licensing framework is inspired by the Creative Commons. They will embrace the audience to be part of the distribution process (P2P). They will use folksonomies to allow users to help the BBC catalog the data.

For now, its only available in the UK and the BBC does not own rights to everything in their archives. The BBC is struggling to see themselves as a global media company.

10:42 AM | Comments () | Recommend This | Print This

Lessig on Remix

Larry Lessig on Remix (click to enlarge)

With the theme of the conference, you have to know that Larry Lessig is going to be one of the keynotes. I've seen Larry speak on this topic a few times in the past and heard him a few more on IT Conversations, but it was still fresh. What's more his style of presentation is just amazing. If you've only just heard him, its not the same as seeing him. Most of the slides have only a few words on them and he synchronizes the slideshow to his talk with precision. It moves fast and if you don't pay attention, you'll miss key points.

His call is to connect with those waging war against technology. Free culture is not about getting free access to people's copyrighted works against their wishes. Its about building a world where culture can be shared. We have to state our opposition to "piracy" (in quotes) and change the debate from one about piracy to one about culture.

We need to teach kids about the ways we use bits of our culture for expression and why its important. We're asking for changes to intellectual property, not its end. It must be updated to the needs of the technology. We demand to retain our right to remix.

Finally, we have to punish politicians if they don't get the message. We punish them by sending them messages the way democracies have always sent messages--by defeating them.

As a side note, Larry announced the wikification of Code and Other Laws of Cyberspace at JotSpot. The goal is to allow a community rewrite of the book, which will be published in 2006 by Basic Books. Cool idea and professionally done.

9:42 AM | Comments (2) | Recommend This | Print This

March 16, 2005

Lessons Learned Building Basecamp

San Diego (click to enlarge)

I wrote about Basecamp a few days ago. Jason Fried, president of 37Signal, the company behind Basecamp is talking about the lessons he learned building it. Brian would like to get Jason out to Utah to give one of these.

The right people. Its not about their skills beyond the basics. It's about finding people who are positive, well rounded, quick learners, trustworthy, and good writers. Well rounded, in this context means that they aren't just an architect, or a DBA. "I'll take someone who is happy and average over a guru who is frustrated and discontented."

Embrace constraints. Look at the problems and come up with creative solutions. Don't sweep them under the rug. Constraints are where creative solutions happen. Here are some of the constraints Basecamp faced: Prior commitments, 7-hour time-zone difference, lack of proximity, self-funding, and small teams.

They put the constraint of building less software upon themselves because it leads to a lower cost of change, less room for error, and requires less support. Further, it encourages human solutions. "Give people just enough to solve their own problems their own way--and then get out of their way." Look for usage patterns and then add features you need.

Build half a product, not a half-assed product. Some principles:

  • Say no by default
  • Listen to the product
  • Ignore details early on
  • Improve what you have before you add new features
  • Decisions are temporary

If you can't make any change you need to on your product, your competitors will do it and leave you behind.

Get real and start with the API. Build something for the customer to use as soon as possible. Start with the user experience. There's nothing functional about a functional specifications document. They are merely an illusion of agreement. Let the design drive the experience:

  • Start designing
  • Start prototyping
  • Start experiencing
  • Start changing
  • Rinse and repeat

Make decisions just in time. Example: don't overbuild for scalability. Increase hardware and system software as necessary. Make decisions when you have the real information.

Feel the hurt. Don't outsource the customer support too early. You need to know what annoys people. Builders should support the product.

Add feature food to grab PR. iCal support brings Macheads, RSS gets buzz from the blogosphere. He references the yellow fade technique as something that got a lot of buzz.

Plan on a 30-day major upgrade. Hold back on the initial release and 30-days later push a major upgrade to show users you care.

Manage debt. This refers not just money, but commitments to other people and companies. Also, hacking bad code, doing something that's not correct or pure is another example of debt. Its OK to do this from time to time, but be sure to pay it off.

3:38 PM | Comments () | Recommend This | Print This

Wikis and Rendezvous in the Classroom

Tom Hoffman and Tim Lauer are talking about using wikis, Rendezvous, and to create an in-classroom writing system for an elementary school. The teacher runs Instiki on a laptop. Students access it with Rendezvous Students write on the wiki and then the teacher can pack it up and take it home. This is a good example of a combination of simple tools.

Tim makes the point that there are many low-overhead Web applications that you can write to add value to the classroom, but they always run up against proprietary, closed student information systems (SIS). He developed SchoolTool as an open source SIS. SchoolTool has RESTful Web services-based APIs.

This allows the SIS and things like the wiki application to be integrated. A short hack to Instiki allows it, for example, to retrieve a student roster from SchoolTool.

SchoolBell is a calendar server built on SchoolTool. Its open-source as well and includes a GPL'd iCal server.

12:38 PM | Comments (2) | Recommend This | Print This

Please Mr. Carrier, May I Add Some Value?

Clay Shirky talks an imaginary phone (click to enlarge)

Clay Shirky, who studies the "recently possible" is speaking on the topic of phone as platform. He's presenting student work from his homebase, ITP.

First up is "PacManhattan" a PacMan-like "big game". That is, a game that uses humans moving around an real space. GPS didn't work well because 10-meter accuracy doesn't cut it for urban environments. So, they punted and used a control room that relayed instructions through the phone to players in the field.

The second game was ConQwest. The game used two-dimensional bar codes to post information around an area and players took camera phone pictures of the bar code and sent it to another computer for decoding and instructions.

Another example is Dodgeball.com, a social networking site that uses mobile phones. The mobile phone is the first thing since keys were invented that everyone carries around with them. He describes how he used Dodgeball.com to get to an event, it SMS'd messages to his friends where he was and also sent him an SMS telling him someone he was linked through someone else was also at the event. Dodgeball is a social mesh built on a P2P network.

Mobjects are bluetooth enabled objects that are viable and sensory. When you hug your mobject, for example, it uses your phone to send a message to someone else's phone and that causes their mobject to light up.

Some thoughts:

  • Standard connectivity beats local flexibility
  • Only the minimum platform is widespread
  • Camera is the first tool other than SMS to be normal
  • Device manufacturer's are unfamiliar with hackishness.
  • 0wnz3r3d by the carriers.
  • Server infrastructure is key.
  • Out-of-band is complementary
  • Voice is underused: phone trees, voice as .WAV

12:06 PM | Comments () | Recommend This | Print This

Adding to A9

Since A9's extensible, expect all kinds of search engines to make their output available in its extended RSS format. Jon Udell points to a hack that puts his hacked InfoWorld search results into A9. I'd love to know the details of what he did.

11:31 AM | Comments () | Recommend This | Print This

Bits and Atoms

Neil Gershenfeld speaks on Bits and Atoms (click to enlarge)

Neil Gershenfeld is the Director of the Center for Bits and Atoms at MIT. He calls for a a digitization of fabrication. He teaches a class called "How to Make (almost) Anything." He brings up the ribosome as an example of state-of-the-art fabrication machine. His lab is working on fab processes that work in the same way: no central control and no feedback mechanism. The final structure is encoded in the order of the tiles that are strung together.

His goal is not to build computers that control tools, but rather to build computers that are the tools--that is, computers that put things together.

He envisions a world of cheap personal fabricators. He's put together a prototype for $20,000 that includes a laser cutter, a sign cutter, and a milling machine that are all controlled through an extension to Python. They've put these in rural areas around the world. There is not just a digital divide, there's a fabrication divide. He shows a video of kids in Ghana using one of these prototypes to make things they want. He shows how rural Indians fabricated a part for about $1.00 to test the quality of milk--something that's very important to them. Local computers and technology for local needs.

His final comment is that everyone gets the idea behind this, but there are no organizations set up to fund it. There are some interesting parallels to what the Rollins eBusiness Center at BYU is doing in the Philippines, albeit not with fab.

9:27 AM | Comments () | Recommend This | Print This

March 15, 2005

Just Use HTTP

Sam is talking about using HTTP. He reference's Tim Bray's WS-Pagecount article on complexity. The assumption is that HTTP is simple. Its not. There are lots of things to watch out for.

Starting with identity: when is "a" an "a"? When the Unicode matches? Everyone pretty much agrees that "A" is x41. This is an "attractive nuisance." That's fine as far as it goes, but some things look the same, but are different. A and Alpha (although they look the same) are not the same (different Unicode encodings). There are four encodings for "i" in unicode with different semantics.

If you allow unicode in domain names, people can't distinguish visually. Use the Cyrillic "a", for example to register the name "ebay.com" and buy a certificate for it. Two glyphs may look the same and be the same codepoint or different codepoints. Each codepoint has multiple encodings.

So, how do HTML, XML, and MS encode things? HTML: iso-8850-1, XML: utf-8, and MS: win-1252. This can create real garbage. You can't, for example, cut and paste URLs from HTML into RSS. Converters can't work well (vs. don't work well). Most web clients are on Windows. Most Web servers don't indicate encodings.

So, here's some more. Is case important in domain names? Do relative paths make a difference? Null fragments and queries? Unicode encodings? The specs are silent. CLR (C#) returns trues for all of these (they're equal). Java doesn't return true for all. XML Namespaces requires each of these to be considered distinct.

Yahoo! Search Web Services, for example was inputing iso-8859-1 and outputting utf-8.

Ruby's postulate: The accuracy of metadata is inversely proportional to the square of the distance between the data and the metadata. But the HTTP spec doesn't agree. The further away the encoding specification from the data, the more you should consider it correct, according to the spec. That is, the web server's specification overrides specification of encoding in the document itself.

Escaping in XML is broken. You can't look at a random string and tell if its escaped. This trips up seasoned professionals everyday.

Comparing characters and URIs is surprisingly more difficult and important than you might image (e.g. security holes). The specs create the confusion rather than solving it. Here's Sam's slides.

5:45 PM | Comments () | Recommend This | Print This

Nelson Minar at the Google AdWords API

Nelson Minar on the Google AdWords API (click to enlarge)

AdWords is the little ads on the side of Google's page and the also show up on third party sites. The traditional way to do campaign management is done by Web application. But, when an advertiser has 1000's of keywords, its hard to manage them through a Web application. There's a hierarchical data model: campaigns contain adwords which contain keywords.

The goal of the API is to allow developers to integrate with the AdWords platform. There are a number of applications: typical bid management, ROI optimization, keyword optimization, integrating advertising with backend systems, and new UI ideas. Nelson wants to create a third party developer community who can add value on top of the platform.

Primary features:

  • Campaign management functions
  • Reporting functions
  • Traffic estimator functions

The core technologies are:

  • SOAP+WSDL+SSL
  • Quota system
  • Multiple authentication mechanisms (there's a hierachical relationship between accounts where some accounts have rights to manage other accounts)

There are retailers using the API to manage seasonal CPCs, third party developers making tools, and small users changing their spend and increasing their click-thrus.

Nelson's goal was to make simple function calls work so that API doesn't require developers to know XML.

Their experience was that interoperability is still hard. WSDL support varies by toolkit. SOAP document/literal support also varies by toolkit. Here's his breakdown:

  • Good: .NET, Java (Axis)
  • OK: C++ (gSOAP), PERL (SOAP::Lite)
  • Not good: Python (SOAPpy, ZSI), PHP (many options)

Here's a real world example of interop problems: Sending nothing is hard. You could send:

<foo xsi:nil="true"/>
<foo/>
nothing
<foo>-1</foo>

Axis likes the first, but .NET fials, the second is not valid. The third is OK, the last =may be the easiest.

Here are some hazards:

  • Nested complex objects can work.
  • Polymorphic objects are a challenge.
  • Optional fields can cause grief (see last example).
  • Overloaded methods are forbidden.
  • xsi:type considered harmful. This can make apps fragile. Send untyped documents.
  • WS-* is all over the map.
  • Document/literal support is weak in many languages.

He characterizes REST as "low REST" and "high REST." Low REST is GETS everyewhere. High REST uses HTTP semantics to build APIs. In High REST:

  • Use HTTP verbs: GET, POST, PUT, DELETE
  • Use URL path meaningfully
  • Use XML is you need it, but only as document
  • Metadata in HTTP headers

He notes some limitations:

  • Less advantage for lots of state changing operations. You don't use GET much and PUt and DELETE are not implemented uniformly.
  • No standard fault mechanism
  • URLs have practical length limitations
  • No WSDL, no data binding tools
  • For complex data, the XML is what really matters (i.e. will be the same in REST or SOAP's Doc/lit model)
  • For mostly read-only APIs, REST is good
  • Need more REST tools and conventions

What went right:

  • Switch to doc/li
  • Stateless design
  • Developer reference guide
  • Developer tokens
  • Thorough interop testing
  • Beta period
  • Bulk methods: every method works with a single item or an array and works consistently in either case. A 25 time speed up for some apps. Error semantics is difficult.

Things that went wrong:

  • Switch to doc/lit. Cost a lot of time
  • Lack of a common data model
  • Dates and timezones
  • No gzip encoding
  • Quota confusion and anxiety
  • No developer sandbox
  • Helping users debug SOAP is hard
  • SSL means you can't use sniffer tools (don't use transport/channel encryption)
  • Plaintext passwords mean SOAP is secret. You can't post XML dumps to the public
  • SSL is not fast

WS-Security might be the answer, but can we rely on it?

Some more:

  • Don't use multirefs
  • Don't send xsi:type attributes
  • Validate everything: SOAP, WSDL, and follow the WS-I Basic profile
  • Test in every language that you care about.

To create a program for user:

  • High quality reference docs
  • Sample programs and XML
  • Best practices
  • Support plan with answers to FAQs

4:50 PM | Comments () | Recommend This | Print This

Other ETech Resources

Here are a few other ETech resources:

Also, today Yahoo! and O'Reilly announced the Buzz Game. Its a market for search term futures. Interesting in its possible applications and fun to play. I'm in.

3:41 PM | Comments () | Recommend This | Print This

Google Labs

Peter Norvig gave a presentation on Google Labs. I'd already seen or played with a lot of what he talked about, like Google Suggest and Google Maps. There were other's however, that I wasn't aware of and thought were pretty cool. For example, Google Personalized let's you set a profile and then move a slider bar to say how much that profile influences the current results. For example, if I search for "web scheme" in Google, the top result is about a color scheme editor for the web. However, if I do the same search on Personalized and move the slider bad bar, more relevant (to me) results move to the top since I've identified "programming" as one of the things I'm interested in on my Google profile.

12:47 PM | Comments (1) | Recommend This | Print This

Jeff Bezos Introduces A9.com

Jeff Bezos introduces A9.com (click to enlarge)

Jeff Bezos is trying to introduce A9 to the crowd and his PC just asked if he wanted to do an "Automated Update" and he accidentally clicked "yes." People are laughing hard.

A9 is about open search. When you search on a term, you can chose to include the Web, images, movies, books, reference, yellow pages, your history, your book marks, and so on. These show up as columns side-by-side (only Web and images are on by default).

The platform is open so that others can add categories. They've extended RSS with a few tags to allow syndicated search. This is pretty cool. Other columns show up in the green See more columns tag on the right. Then you can add things like PubMed search (for medical, NIST, NASA, NYTimes, and so on.

What does this mean? There is now a way for content providers to provide their own, specialized search to others within a single tool. Think of this as an aggregator for search results. You can create your own private blend of places to search as you do research in a particular area.

11:17 AM | Comments () | Recommend This | Print This

Danny Hillis on Applied Minds

Danny Hillis (click to enlarge)

Danny Hillis (who founded Thing Machines, the Long Now, and lots of other cool stuff) is speaking about his current business: Applied Minds, which he calls a "maketank" as opposed to a thinktank. I like that term. That's a good description of what Computer Science labs ought to be like. He's showing videos of robots "not because that's a big part of what we do, but because it makes for a good show" that are really cool.

He's showing a picture of an ultimate vehicle hack. He says they do things like that as bait to get companies to come talk to them. What's your bait?

He's showing a map table that gives the feel of a paper map, but with all the properties of a large paper map (except that its infinite). He also has a table that physically deforms to show the contours of maps that are displayed on it.

Hillis model of the metaweb (click to enlarge)

If you look at how a blog or wiki work, the model is that contributers put things in a database and the publisher has a recipe for how to show the data. The problem with this model is that all the databases are islands--not shared. He proposes a new twist with a shared database and recipes. This is, in a way, the idea behind data in XML on the Web. He's calling this sharing and rendering of public databases as the "metaweb."

10:54 AM | Comments () | Recommend This | Print This

Firefox as a Web Services Platform

Yesterday as I was listening to several conversations, I had the feeling that I ought to drop Safari and move to Firefox as my browser. I love Safari because its slick and fast, but Firefox is becoming a platform. Because of its open architecture, there are thousands of people building things for it. That's a powerful force that Safari will never match unless they also open their platform.

Mike Shaver was supposed to speak on Firefox, but he couldn't make it. I didn't catch the name of the guy who filled in for him. He talked about the open standards that Firefox is built upon (like RDF and XUL) and showed some of the cool things people are doing. That cemented it. I'm switching.

10:49 AM | Comments (2) | Recommend This | Print This

O'Reilly's Radar: Remix Patterns

Tim O'Reilly delivers O'Reilly's Radar (click to enlarge)

Tim's keynote was on patterns for remixing. Patterns consist of three parts: an issue, a prescription, and examples. Here are some of Tim's patterns (I missed much of it):

Issue: A successful open source project consists of "small pieces, loosely joined."

Therefore: Architect your software or service so as to be used easily as a component of a larger system: keep it modular, document your interfaces and use a license that doesn't hinder the recombinations.

Example: missed it

Issue: There is great benefit to sharing your development efforts with users

Therefore: release early and often. Set up mechanisms for user feedback, bug reports and so on.

Issue: On today's web you no longer need to build or own all the components of your application.

Example: isbn.nu

Therefore: don't lock away the interfaces to your ecommerce application.

Issue: When devices and program are connected to the Internet, applications are no longer software artifacts, they're on-going services.

Therefore: don't package up new features into monolithic releases, rather, fold them in on a regular basis. Let your users into the process. Engage your users as real-time testers and instrument such that you know how new features are faring. Operate as if you're in perpetual beta.

Examples: Google, Flickr, del.icio.us, Safari U.

Issue: The key to competitive advantage in networked applications is the extent to which users augment your data with their own.

Therefore: Architect for participation beyond design and development.

Example: Amazon using its user's intelligence to create new value. Adding user data to their own.

Issue: Only a small percentage of user will go to the trouble of explicitly adding value.

Therefore: make participation the default, aggregating user data as a side-effect of their using your application.

Example: Flickr's defaults for sharing is for "everyone." The default for annotation is "open."

Issue: Many of the limiting factors from the physical world are absent on the Internet.

Therefore: Use the power of the computer to monetize niches formerly too small to be commercial.

Example: Google Ad Sense.

Issue: The PC is no longer the only access point for networked applications.

Therefore: Design your application from the get-go to integrate services and share data on multiple devices.

Example: iSync.

Issue: Social networking are a by-product of social application like email, instant messaging, photo sharing, and book buying.

Therefore: Architect your application to capture and share the social fabric underlying you application (rather than artificially constructing another.

Example: The ETech Attention Stream (which is displayed on a flat panel in the lobby).

Issue: As demonstrated by container shipping, IP packages, and HTML pages, a standard content-agnostic packet is the most effective way to ship for good and data.

Therefore: Understand the optimum "packet size" for your application domain and devise products that fit it.

Example: Books don't fit on a Web page. O'Reilly Make and the new Cookbook series are examples of repackaging content in an effort to more closely match the right "packet size."

Issue: When content is digital, it lends itself to being broken down and remixed.

Therefore: Create your business model so that it make money from the atomic units of your products.

Example: Safari U.

Although they're not patterns, Tim also mentions AJAX and Ruby on Rails.

9:52 AM | Comments () | Recommend This | Print This

Web Services Mashup

There were several good tutorials yesterday and unfortunately, I couldn't attend them all, but I did run across this great list of Web services APIs from the Web Services Mashup tutorial. I'm listening to Rael's opening keynote on the conference theme, Remix, right now and this list goes along beautifully with that theme. After all, these APIs are about remixing data and services.

9:39 AM | Comments (1) | Recommend This | Print This

March 14, 2005

Ta-Da Lists Lead to Basecamp

So, sometimes life just throws coincidences at you. I was just doing a little exploring on AJAX (more on that another time) and ran into Ta-Da List, a web application that uses XmlHttpRequest to its list UI. Here's the coincidence: Ta-Da Lists is from Basecamp, who I'd never heard about until this morning when Brian Sweeting wrote to me about a petition he's got to try to get Basecamp to do a "Building of Basecamp" workshop in Utah. I'm with you Brian--let's get them to Utah.

Ta-Da lists seems very cool. Here's a test list I made. The app is simple and easy to use. What's more the use of XmlHttpRequest leads to a nice interaction. How can you tell that this is something more than just JavaScript? Easy--there's no save button, so the server has to be told as you enter each item on the list. That's the XmlHttpRequest part. There's even RSS feeds from lists. That's the right thing. If only they had enclosures. Then you could use Ta-Da Lists to serve up podcasts and lots of other rich media stuff. Since its just a reference, it wouldn't add any overhead to the Ta-Da list servers.

6:19 PM | Comments (2) | Recommend This | Print This

Making Annotated Google Maps

Here's a handy HOWTO on creating annotated Google maps.

6:11 PM | Comments () | Recommend This | Print This

Emerging Technology

I'm at O'Reilly's Emerging Technology conference this week. Today I was in a little early, so I went to Ben Hammersley's tutorial on Atom. My conclusion: Atom seems like a useful evolution of the RSS idea that draws on the experience of RSS 1.0 and 2.0. I also saw some cool car/computer hacks and took pictures.

5:21 PM | Comments () | Recommend This | Print This

UI Design Is Different with XmlHttpRequest

XmlHttpRequest allows information from a Web form to be sent back to the server incrementally. This breaks the very features that make Web forms so obvious:

  1. You can clearly see where the input fields are, so you know what you can edit, and what you cannot.
  2. It is forgiving. You can explore all you want because nothing is changed until you submit the data.
  3. It lets you decide when to "save".
  4. It confirms any action taken, since you are redirected to a different page upon completion.
From Usable XMLHttpRequest in Practice | Baekdal.com
Referenced Mon Mar 14 2005 15:45:27 GMT-0700

This example, by Thomas Baekdal, shows how to create WYSIWYG web forms that also give users visual clues about what's happened. Be sure to look at the source of the Web page and note how CSS has been used to format the form independent of the structure of the form itself. Very nice.

3:43 PM | Comments () | Recommend This | Print This

NextPage 1.5 Review

My review of NextPage 1.5 for InfoWorld came out this week. I think the product is a winner.