Receive Updates:

  

POST ARCHIVE

Archive for June, 2007

Walter Mossberg reviews the iphone

Wednesday, June 27th, 2007

“Most beautiful, certainly the most radical hand held computer I have ever tested.”
“five days into testing it, I found I could type as well as i could type on my treo physical keyboard. The keyboard issue is a non-issue.”
“the best web browser I have seen on a hand-held device”
Phone is ok.
The big drawback to the iphone is the fact that it only runs on one carrier — AT&T — it is locked so that you cannot put a tmobile card….coverage varies and if you are in an area without great AT&T coverage, it is not going to be useful if you can't make calls on it. The data part of this runs on a cell network called Edge which is quite slow compared to the other networks. If you are relying for the cell phone network for internet access it is very slow.”
“But it has wifi. The phone instantly switches you to wifi for your internet access and that really flies.”

200706271229

Basics: how to differentiate a blog and a web site

Wednesday, June 27th, 2007

Here is a good article by my pal Pito Salas on the difference between a blog and a web site.

Marc Andreessen: Analyzing the Facebook Application three weeks in

Tuesday, June 26th, 2007

This post (reprinted here in full but go to the link to read the trackbacks and comments) by Marc Andreessen is by far the best analysis of of why the new Facebook API is so important.

On May 24, Facebook launched the newest version of the Facebook Platform, a set of application programming interfaces (APIs) and services that allow outside developers to inject new features and content into the Facebook user experience.

In this post, I provide an overview and analysis of the Facebook Plaform and what we have learned about it in the three weeks since it launched.

To start, my personal opinion is that the new Facebook Platform is a dramatic leap forward for the Internet industry.

Here's why:

Veterans of the software industry have, hardcoded into their DNA, the assumption that in any fight between a platform and an application, the platform will always win.

Definitionally, a “platform” is a system that can be reprogrammed and therefore customized by outside developers — users — and in that way, adapted to countless needs and niches that the platform's original developers could not have possibly contemplated, much less had time to accommodate.

In contrast, an “application” is a system that cannot be reprogrammed by outside developers. It is a closed environment that does whatever its original developers intended it to do, and nothing more.

The classic example of an application being vanquished by a platform was the Wang word processor versus Microsoft DOS-based personal computers.

Wang word processors — the application, in this case — were highly evolved, fantastically successful dedicated word processing systems that owned their market, until the general-purpose PC came along. While the PC at first was inferior at word processing, within a few years of its launch the fact that outside developers had built thousands of applications for it — like spreadsheets — that closed Wang word processors could not match, coupled with steadily improving PC-based word processing software like Wordstar, had all but killed the Wang word processor. Wang — one of the most succcessful technology companies of the 1970's — went bankrupt not long after.

This is a story whose moral has historically not been embraced by the web industry to nearly the extent one would have thought.

The web, after all, vanquished proprietary online services like America Online, Prodigy, and Compuserve — the so-called “walled gardens” — in large part because the web is a platform and the walled gardens were not. No single closed service, no matter how good, and no matter how big, could compete with the diversity of thousands and then millions of web sites that were customized to every conceivable user interest and need.

Yet most major web busineses have not themselves sought to become platforms.

Sure, some have released APIs — some have even released very sophisticated APIs — but such APIs have mostly been for interacting with a web system from the outside. Those APIs have been a far cry from the programmability and customizability enabled by a true platform in the sense that the software industry has come to understand it.

Instead, most major web businesses have sailed along without the added lift from platform-style programmability that they could have had at any point.

Until now.

In a nutshell, the Facebook API enables outside web developers to inject new features and content into the Facebook environment.

After signing up for a developer account on Facebook, the developer writes a web application (in the simplest case, a piece of web content; in the most advanced case, a full fledge web application with deep functionality) and hosts it on her own servers. The developer then registers her application with Facebook, and then users can add that application to their Facebook user experience in several different ways, including within their Facebook profile pages.

Viewed simply, this is a variant on the “embedding” phenomenon that swept MySpace over the last two years, and which Facebook prohibited.

However, what Facebook is now doing is a lot more sophisticated than simply MySpace-style embedding: Facebook is providing a full suite of APIs — including a network protocol, a database query language, and a text markup language — that allow third party applications to integrate tightly with the Facebook user experience and database of user and activity information.

And then, on top of that, Facebook is providing a highly viral distribution engine for applications that plug into its platform. As a user, you get notified when your friends start using an application; you can then start using that same application with one click. At which point, all of your friends become aware that you have started using that application, and the cycle continues. The result is that a successful application on Facebook can grow to a million users or more within a couple of weeks of creation.

Finally, Facebook is promising economic freedom — third-party applications can run ads and sell goods and services to their hearts' content.

Metaphorically, Facebook is providing the ease and user attraction of MySpace-style embedding, coupled with the kind of integration you see with Firefox extensions, plus the added rocket fuel of automated viral distribution to a huge number of potential users, and the prospect of keeping 100% of any revenue your application can generate.

The leadership that the Facebook team is showing here rivals anything that the large and established software and web companies have done in this decade.

You may also notice the irony of Facebook leapfrogging MySpace on embedding at the same time that MySpace seems to be getting substantially more restrictive, in some cases even shutting down third-party widgets.

Let's look at some of the key aspects of the Facebook Platform in more detail.

First, perhaps the most architecturally interesting aspect of the Facebook platform is the fact that everything routes through Facebook's servers.

This is known as a “proxy” model — you interact with a third-party Facebook application by interacting with Facebook's servers which turn interact with the application's servers.

There are very sharp pros and cons to this approach, contrasted with the MySpace model where third-party content is pulled directly from third-party servers.

Pros:

Facebook retains much tighter control of the overall user experience. Applications must conform to Facebook guidelines for appearance and content or they are disallowed.

Facebook can provide third-party pages with integral access to Facebook user and activity information — the application can easily be aware of who your Facebook friends are, for example. This allows the applications to be considerably more powerful in the context of a social network than a simple piece of embedded content.

Facebook can cache static content such as images and videos and thereby serve them up faster, improving the overall user experience.

Cons:

Facebook retains much tighter control of the overall user experience. Applications must conform to Facebook guidelines for appearance and content or they are disallowed. Yes, this is also listed above under “Pros”.

Performance will generall be slower than a non-proxy model. There are additional network hops for each access of a third-party application, which causes additional latency. Plus, Facebook's servers do a lot of processing of the third-party content that they are passing back and forth: they essentially rewrite every page on the fly to implement the added features (e.g. FBML) and restrictions (e.g. no Javascript; div's are rewritten) that they provide. This processing inevitably takes time.

On balance, of course, this is a fine set of tradeoffs that accommodate Facebook's dual goals of opening up their environment but in carefully controlled ways, and may well serve as a powerful precedent for how other web businesses will open themselves in the future.

Second, Facebook has really thought through the API suite it provides to developers.

You get a REST web services API that lets your application programmatically interact with Facebook's systems and data in very interesting ways. Developers who understand web services can pick it up in about five minutes.

You get a database query language called FQL — a variant of SQL — that lets you interact with Facebook's databases directly. Developers who are experienced with relational databases and SQL will be right at home.

And, you get a text markup language called FBML — a variant of HTML. FBML strips out some features of HTML, such as Javascript, and adds a new set of features that enable a third-party application page to access Facebook features, data, and look and feel elements in a variety of interesting ways. Anyone who knows HTML can take advantage of it immediately.

This is a very sophisticated yet easy to adopt suite of APIs for a brand new platform, and demonstrates real seriousness of purpose.

Third, there are three very powerful potential aspects of being a platform in the web era that Facebook does not embrace.

The first is that Facebook itself is not reprogrammable — Facebook's own code and functionality remains closed and proprietary. You can layer new code and functionality on top of what Facebook's own programmers have built, but you cannot change the Facebook system itself at any level.

The second is that all third-party code that uses the Facebook APIs has to run on third-party servers — servers that you, as the developer provide. On the one hand, this is obviously fair and reasonable, given the value that Facebook developers are getting. On the other hand, this is a much higher hurdle for development than if code could be uploaded and run directly within the Facebook environment — on the Facebook servers.

The third is that you cannot create your own world — your own social network — using the Facebook platform. You cannot build another Facebook with it.

I won't dwell on these three factors too much right now. Those of you familiar with Ning may, however, expect me to revisit them in the future, and I will :-).

These factors are, however, very reflective of the fact that while the Facebook Platform gives developers a lot of capabilities that they never had before, and access to a huge base of enthusiastic users, as a Facebook developer you're very much living in Facebook's world — you're not creating your own world. And you have to be serious enough about living in that world that you are willing to hit the fairly high barrier of being willing to run your own servers and infrastructure for any applications you build.

Which takes us to…

Fourth, and perhaps most significantly, when your application takes off on Facebook, you are very happy because you have lots of users, and you are very sad because your servers blow up.

Let me explain.

I already described Facebook's viral distribution mechanism by which users became instantly aware of which applications their friends are using, can with one click start using those applications, and automatically spread them to their friends.

This is happening in an environment with 24 million active users — active users defined as users active on the site in the last 30 days. 50% of active users return to the site daily. 100,000 new users join per day. 45 billion page views per month and growing. 50 million users, and a lot more page views, predicted by the end of 2007.

An application that takes off on Facebook is very quickly adopted by hundreds of thousands, and then millions — in days! — and then ultimately tens of millions of users.

Unless you're already operating your own systems at Facebook levels of scale, your servers will promptly explode from all the traffic and you will shortly be sending out an email like this.

ILike was the first third-party application to get serious lift-off on Facebook. Quoting from ILike's blog shortly after their launch:

In our first 20 hours of opening doors we had 50,000 users sign up, and it is only accelerating. (10,000 users joined in the first 12 hrs. 10,000 more users in the next 3 hrs. 30,000 more users in the next 5 hrs!!)

We started the system not knowing what to expect, with only 2 servers, but ready with backup. Facebook's rabid userbase chewed up our 2 servers almost instantly. We doubled our capacity to catch up. And then we doubled it again. And again. And again. Oh crap - we ran out of servers!! Although iLike.com has a very healthy level of Web traffic, and even though about half of all the servers in our datacenter were sitting unused, idle, as backup capacity, we are now completely maxed out.

We just emailed everybody we know across over a dozen Bay Area startups, corporations, and venture firms in a desperate plea to find spare servers so we can triple our capacity for the continued onslaught. Tomorrow we are picking up over 100 servers from different companies to have them installed just to handle the weekend's traffic. (For those who responded to our late night pleas, thank you!)

Yesterday, about two weeks later, ILike announced that they have passed 3 million users on Facebook and are still growing — at a rate of 300,000 users per day.

They didn't say how many servers they're running, but if you do the math, it has to be in the hundreds and heading into the thousands.

Translation: unless you already have, or are prepared to quickly procure, a 100-500+ server infrastructure and everything associated with it — networking gear, storage gear, ISP interconnetions, monitoring systems, firewalls, load balancers, provisioning systems, etc. — and a killer operations team, launching a successful Facebook application may well be a self-defeating proposition.

This is a “success kills” scenario — the good news is you're successful, the bad news is you're flat on your back from what amounts to a self-inflicted denial of service attack, unless you have the money and time and knowledge to tackle the resulting scale challenges.

Will every Facebook application go through this?

No, of course not. The ones that nobody uses will not have this problem.

But the successful ones all will.

The implication is, in my view, quite clear — the Facebook Platform is primarily for use by either big companies, or venture-backed startups with the funding and capability to handle the slightly insane scale requirements. Individual developers are going to have a very hard time taking advantage of it in useful ways.

Fifth, there's the fascinating issue of the Facebook application directory — the page from which users can pick which applications they want to use.

When you develop a new Facebook application, you submit it to the directory and someone at Facebook Inc. approves it — or not.

If your application is not approved for any reason — or if it's just taking too long — you apparently have the option of letting your application go out “underground”.

This means that you need to start your application's proliferation some other way than listing it in the directory — by promoting it somewhere else on the web, or getting your friends to use it.

But then it can apparently proliferate virally across Facebook just like an approved application.

There is already long list of underground apps that you can use — and proliferate.

It will be fascinating to see how Facebook deals with this — will they embrace underground apps, or move to shut them down?

The answer will go a long way towards understanding the true level of freedom that developers have on the Facebook Platform.

In closing:

Congratulations to the Facebook team — big time! — for an amazing leap forward in what the Internet can do for real users and for opening up whole new vistas of opportunities for third-party developers.

This is an amazing achievement — one of the most significant milestones in the technology industry in this decade.

Clarifications and expansions:

In conversations with the folks at Facebook, there are a few clarifications and expansions I'd like to note:

First, my statement that “applications must conform to Facebook guidelines for appearance and content or they are disallowed” is partially but not entirely true. Boxes that contain content from an application on a user's Facebook profile page must be rendered via FBML and have tight controls over what can be included, particularly the no-Javascript limitation. On the other hand, so-called “canvas” pages — the pages dedicated completely to a specific application, and accessible via the left-hand-side app navigation area, can be rendered either via FBML (which is restrictive), an iframe that can include arbitrary content, or a combination of the two. From an iframe you do pretty much whatever you want, but you don't get the FBML features.

Note that you are incented to use FBML because that's the easiest way to achieve integration between your application and Facebook — e.g. to let your app have access to information about the user and her friends. FBML is clearly a good thing; it's just that when you're using it, you can't do certain other things that you're used to. And, as noted, you are required to use it for content that shows up on users' profile pages.

Second, my point that “success kills” — that a successful, widely used application will require a large number of servers to run, at best, and will fall over and die, at worst — is true, but the Facebook folks point out that as an app developer you have a lot of control over how fast your application grows. You don't have to light up all the viral spread features all at once, for example.

I would counter-argue that deliberately tamping down the growth rate doesn't do you any favors either — then you don't get widely used, which for most apps is the whole reason to exist.

My larger point is that if your app succeeds on Facebook, expect to have to do a lot of heavy lifting on your back end and to spend a lot of money on hardware and bandwidth — just like if you built a web app that succeeded outside Facebook, of course.

Some commenters have proposed that Amazon's EC2 service would be a way to easily scale a Facebook app (or a non-Facebook web app). I think EC2 is a great service and have no desire to say anything negative about it. So I will just say two things: it isn't as easy as that, and EC2 is not free either. Bonus points to commenters who want to go into more detail on these topics than I have here!

Dave Weinberger Interview - Everything is Miscellaneous

Sunday, June 24th, 2007

I recorded this interview with Dave Weinberger in April and it was embargoed until his book was published in early May. I am late in publishing it but I highly recommend you the the time to listen to it in full. It is chock-a-bloc with very important insights into what the new web means. I also highly recommend Dave Weinberger's new book, Everything is Miscellaneous. It is a deep look at why things are unfolding in new and surprising ways on the web. It is a must read.

E-learning 2.0: All you Need to Know - Maybe not….

Saturday, June 23rd, 2007

Richard McManus published an overview of how the web 2.0 toolkit and models are infiltrating the world of e-learning.

McManus (following the lead of Steve O'Hear) differentiates traditional e-learning from learning 2.0 as follows:

The traditional approach to e-learning has been to employ the use of a Virtual Learning Environment (VLE), software that is often cumbersome and expensive - and which tends to be structured around courses, timetables, and testing [examples listed below]. That is an approach that is too often driven by the needs of the institution rather than the individual learner. In contrast, e-learning 2.0 (as coined by Stephen Downes) takes a 'small pieces, loosely joined' approach that combines the use of discrete but complementary tools and web services - such as blogs, wikis, and other social software - to support the creation of ad-hoc learning communities.

McManus goes on to looks at the applications shaping learning 2.0 and focuses on Elgg. Elegg has basic web 2.0 functionality (blogs, tagging, file repository with podcasting) but it can't compare to a robust collection of web 2.0 services like wordpress, flickr, delicious, and facebook. Since all of these services have open api's, it makes much more sense to weave them together into collections of features that enable users to take advantage of the very sophisticated features in each web app.

McManus goes on to point out an excellent example of web 2.0 in action in Chinese Pod. This is a language learning service built around free podcasts. One of the most interesting things about the service for me is the business model. The podcasts are free (content wants to be free people!) but the services around the content are sold on a subscription basis. Pricing is tiered on the basis of the amount of personalization involved in the service:

Chinesepod

So for an additional $9 per month you get transcripts, downloads, and a personalized rss podcast feed. The $30 per month tier adds a whole bunch of tools and the $200 per month tier involves includes interaction with a tutor and a personalized plan.

I have had this kind of business model in mind for some time but I have not seen it so beautifully articulated as with ChinesePod.

At lunch yesterday we were talking about how content providers will need to move away from thinking about charging for digital content. Steve Bayle, our most insightful business development consultant, said, “the business models for this new way of operating have not been invented yet.” I agree. But ChinesePod is an interesting innovation in the right direction.

When thinking about the models for moving learning into a web 2.0 paradigm I like to go back to Tim O'Reilly's three principles:

  • The web as platform
  • Value from user-generated content
  • Network effects from an architecture of participation.

I have yet to see anything that really moves into the new paradigm, with the exception of two programs that spun off from a project we did for the American Library Association: Five Weeks to a Social Library and Learning 2.0. Both of these programs are built out of free, open source tools. The curriculum (if you can call it that) is co-created by the participants around a very simple set of podcast tutorials and FAQs. The thing I like the most about these programs is that they can be run by anybody, so they are self-replicating. Learning 2.0 has already been replicated in over 40 libraries in the US and Canada.

Dave Weinberger on the network and meaning

Monday, June 18th, 2007

Dave talks about what kinds of opportunities are emerging from the new network.
“This is all about connection. Important for all the realms where we humans relate to one another.”

Harry does You Belong to Me

Monday, June 18th, 2007

Here is a great three part harmony that my husband Harry Fix recorded.

What's your online collaboration platform? Nearly half of R/WW readers use Google Apps

Sunday, June 17th, 2007

Check out this post from Read/WriteWeb:

Plenty of interest this week in our poll, asking which online collaboration platform do you use? So far, after over 1,100 votes, Google Apps is way out in front - 47% of respondents use it. Basecamp is next with 20%, with Zoho on 10% and ThinkFree 6%. The two Microsoft options, Office Groove and Office Live, have only 2% each. Sign of the times, ay?

There's still time to cast your vote; and remember that the poll is multiple-choice.

Poll Survey - Take Our Poll

(from: What's your online collaboration platform? Nearly half of R/WW readers use Google Apps)

 

This is amazingly interesting: TED demo of Photosynth

Saturday, June 16th, 2007

Enterprise 2.0 - Woe is me

Saturday, June 16th, 2007

The Enterprise 2.0 conference kicks off next week in Boston. I have a number of friends who are speaking: Bill Ives, David Carter of iUpload, Dave Weinberger, Andrew McAfee. It promises to be an interesting event.

I've just returned from a few days in New York where I was introducing the E20 tool kit to a global advertising and marketing firm with 10,000 employees. I've done this a number of times and I have started to witness a recurring pattern. Here's what it looks like:

Step 1: there is a clear and demonstrable need for the things that enterprise 2.0 or web 2.0 can do for the organization. Email is the only real two-way channel and it is overwhelmed and effectively broken. Information is not getting to the right people — a problem that RSS could easily solve. It is not possible with the current content-managment systems to use the new interface that Andrew McAfee calls SLATES: search, link, author, tag, extend, and signal (rss). Creating these new interfaces would give people much more control over their information environment and create new means of publishing, sharing and learning.

Step 2: When presented with this new platform and interface, which moves the control from the administrator to the individual, the people who currently control the way information flows and is managed are threatened. I have now seen this happen in five different industries, including financial services, engineering, high tech, and advertising. The resisters may be the IT department, the CTO, the CFO, or a group that has a lot of power over a line of business. The pattern is the same. They allow a prototype to be built and then as soon as it is presented to a group with the authority to make a decision to start rolling it out to a larger group, the power players move in and kill it. The reasons for the kill are multifold: security, integration with existing apps, Microsoft dominance, an unwillingness to give people control over their desktop “real estate.” The effect is the same: any possible implementation of e20 is DOA.

I know there are enterprises that are taking baby steps toward adoption and I believe that the services that e20 provides will ultimately win over. But in my personal experience it is going to be a hard fought battle. Enterprise 2.0 is very threatening to the existing power structures and is a profound cultural shift for enterprises. Until these more basic issues are addressed — who has the power to publish information and the benefits of transferring that power outweigh the risks to the people who current control the organization, no e20 solution is going to be adopted.


Close
E-mail It