Alex Barnett blog


May 2007 - Posts

At Google Developer Day 2007

I'm at the San Jose-based Google Developer Day, hearing more about the news that's been getting the blogosphere and media pretty excited, especially the news of Google Gears - their first foray into the Occasionally Connected Computing space (or RIA), a model that's getting more and more interest by those wanting a piece of the developer hearts and minds.

Philipp Lenssen was at Hamburg's Google Developer Day event earlier today where he has written up his reaction to the news and Robert Scoble has a useful summary of the various Google announcements.

Gears is definitely interesting, but the Google Mashup Editor story provides further clues as to how the "widgetsphere" wars might play out over the next couple of years.

Google Mashup Editor

In the scenario they demo'd of Google Mashup Editor they showed how are mashup can built a mashup can be created that consumes a feed from an external source, overlays that data's feed over Google Maps, how a simple UI interaction be defined (click and focus on map) and then lets a user search Google Base. You can then deploy the mashup on Google infrastructure that will then serve your app from their servers. It's a text-based programming UI (coding in html + JavaScript + CSS + "extended XML tags") - all through the browser. You can see the product tour here.


As Tim Heuer notes, it's in beta.

The session closed with Sergey Brinn making a brief appearance - no announcements, no news - more of a "thanks for being here".

Let me know if you're also here at San Jose.

Update 6/3/2007:

I missed this bit of news on the day - Google launched a Directions API, allowing third-party sites to offer directions directly on their site. Via Mashable:

"The API features include the ability to request directions between a pair of points or a longer sequence of points, and multiple language support like English, French, Spanish, German, Italian and Japanese.

Google has launched a Directions API at its Developer Day, allowing third-party sites to offer directions directly on their site.

The API features include the ability to request directions between a pair of points or a longer sequence of points, and multiple language support like English, French, Spanish, German, Italian and Japanese."

Also, Stephen O'Grady of Redmonk has written up an excellent analysis on Google Gears.

Posted: May 31 2007, 12:09 PM by alexbarnett | with 3 comment(s)
Filed under: , ,
REST / ROA / Astoria / SOA

Jon Udell, rightly so, is getting excited about the new book RESTful Web Services, by Leonard Richardson and Sam Ruby - a book I myself got excited about in November (REST Web Services and ROA) when I wrote at the time:

"My bet is that this project, the book and the concept of ROA as an effort to standardize aspects of RESTful architecture design is going to do very well, because I agree this is needed. Example provided:

  • ""REST" is an abused term. Many alleged REST services (such as Flickr's, which says REST right on the website) are actually HTTP+POX: service-oriented APIs that happen to use nothing more the basic technologies of the web. Classifying services as resource-oriented or service-oriented makes it easy to see which ones are more and which less RESTful, without wasting time on minutiae."" 

(more links to reviews here)

I don't know if John, Leonard or Sam have spent any time to look at the Astoria project (think - RESTful data services) - see links here, but would love to know what they think - in particular regarding the query syntax (good? bad? too complex? too simple?) and where it sits on the ROA (WOA?) to SOA continuum (WOA links) they discussed.

Posted: May 24 2007, 04:46 PM by alexbarnett | with 6 comment(s)
Filed under: , , , ,
Razorfish owned by Microsoft. What next?

With all the analysis and reactions to the Microsoft acquisition of aQuantive last, I missed the fact that aQuantive is the parent company of the interactive marketing agency Razorfish (Avenue A/Razorfish). Brian Fling pointed this out and linked to this Advertising Age article commenting on this dimension of the deal:

"Last week's $6 billion agreement to buy aQuantive is not just a bid to catch up with Google and Yahoo in ad sales. It also gives Redmond something it hasn't had before: Its very own ad agency. The addition of the highly regarded Avenue A/Razorfish to its portfolio signals that Microsoft, in addition to being a media seller, has crept into the agency business, blurring the once-clear distinctions between those who hawk technology and those who provide marketing services."

So on to the obvious question next - will Avenue A/Razorfish be divested any time soon? Apparently not:

"Industry observers who expected the deal were shocked it didn't include an announcement that Microsoft would somehow offload Avenue A with a spinoff or a sale. While insiders seemed convinced it would divest the business, Microsoft was public and definitive in denying there were any such plans. On the contrary, a Microsoft executive emphasized that Avenue A's capabilities actually sweetened the deal. "

Of course, this could just be temporary PR messaging to see the deal through, diverting from an unwritten plan to execute the divestment once the dust settles. But maybe not. This Microsoft / aQuantive deal would be somewhat analogous to Google (or IBM) buying up WPP or Yahoo (or NewsCorp / MySpace) buying Omnicom...and they would follow a trend:

"...recently the deal-making has taken on a different color. Interpublic, which has less cash to spend, has been taking stakes in media plays such as Facebook and platforms such as the do-it-yourself ad solution Spot Runner. A day before the aQuantive deal, WPP Group, home of JWT and Ogilvy & Mather, said it would pay $650 million for 24/7 Real Media, an ad-serving platform."

As Michael Creamer points out, this deal appears to be a strong signal that previously unrelated segments of the economy are converging, a further realization of the digitial convergence predictions made in the last decade.

Posted: May 24 2007, 08:44 AM by alexbarnett | with no comments
Filed under:
How to contradict yourself in two easy steps

How to contradict yourself in two easy steps:

Step 1. Dare Obasajno (a PM at Microsoft) argues that anyone comparing Adobe's Apollo and Microsoft's Silverlight by mentioning them in "the same sentence as if they are similar products" is proof that ["popular technology blog pundits"] don't "do much research and in many cases aren't technical enough to do the research anyway."

Step 2. In the same post, Dare (remember- a PM at Microsoft) provides his own comparison of Adobe's Apollo and Microsoft's Silverlight by mentioning them in the same sentence as if they were similar products, arguably validating comparisons by the aforementioned, apparently unresearched, popular technology blog pundits that in his view are not technical enough to do the research anyway:

"Apollo is Adobe's Flash based knock off competitor to the .NET Framework while Silverlight is Microsoft's .NET Framework based knock off competitor to the Flash platform."

In this response to Dare's nonsense post, Harry Pierson (an architect at Microsoft) deftly avoids being labelled as an unresearched-popular-technology-blog-pundit-that-isn't-technical-enough-to-do-the-research-anyway by not comparing the products in the same sentence, but by instead comparing the companies Adobe and Microsoft:

"The upshot is that both companies are trying to deliver a unified "client" platform that spans desktop, devices and browser. That sounds like "platform competition" to me."

How I find stuff I like

The three main methods I use to find content I'll be interested in are:

1. My RSS reader - I use FeedDemon and have done for years. I can't get through each feed every day (not even close), but I do go through them systematically. My feeds are ordered alphabetically in folders, so if I finish one day on the "G-L" folder, I'll begin at the "M-S" the next day. I've tried ordering by topics etc, but the system broke down. I "prune" feeds as I go and aim not to increase the number of feeds. If a new feed comes in, one must go that session. My main criteria for deciding which feed will go is the last updated date - if the feed hasn't been updated for weeks, it's a gonner. There's enough natural attrition using this criteria to let 1 or 2 new feeds every couple of weeks.

2. Techmeme - two or three times daily. Tells me what's hot and what's not.

3. My network - once daily. I use this page to find out which links "my network" of human bookmarkers (my people) have bookmarked that use use links as recommended reading. Some of these will point to stuff I've already read in my RSS reader (or is waiting to be read), but it works for me as a quick hit for good reading recommendations.

I have 20 people who make recommendations to me this way:

  • andyed
  • annez
  • awsbuzz
  • bobreb
  • bokardo
  • chadd
  • cshirky
  • dhinchcliffe
  • JamesGovernor
  • judell
  • Korbyp
  • ksharkey
  • leonardr
  • mattmcalister
  • ricmac
  • ryansking
  • sogrady
  • TimBray
  • twwilliams
  • vanderwal
  • These 20 people aren't making these recommendations available to me exclusively - anyone with (or without) a account can subscribe to the bookmarks of anyone else (where those bookmarks have been made "public" by the bookmarker). I didn't ask for their permission to add them to my network, but I'd say almost all of them are aware that their bookmarks are being used as a form of reading recommendations. Some explicilty use it for this purpose to republish in their RSS feeds (and / or blogs and add comments to those bookmarks (I do).

    Another interesting aspect to the network feature is that I can see who is "subscribed" to my bookmarks - who's network that I'm in. These people (some 70+ today) are using me as part of their recommendation engine.

    When I visit my network page, the "click through rate" on network-recommended content is very high. The ability for a bookmarker attach a comment to the bookmark adds another dimension too (agree / disagree, a quote or a quip).

    Ted, Korby, Claimspace and trust

    Korby Parnell, Ted and I  me met up and talked about Claimspace.

    This is what Ted's a taster:

    "From what Korby showed me, over time Claimspace could solve many of the needs that Alex and I have identified for Bungee Lab’s community infrastructure. In fact, according to Korby, community managers and planners like Alex and me are exactly one of the personas that Claimspace intends to serve. There is just one problem.

    It comes from Microsoft."

    Mashup design patterns

    <warning: the following post meanders, is unstrucutured and doesn't arrive at any conclusion>

    In the middle of last year, I invited Dion to meet with me and other members of Microsoft's Data Programmability team to discuss REST in the context of data access over the web. Dion's perspective is one of the reasons our team was able to recognise the potential of a RESTful programming model against relational data, manifested today as Project Astoria

    I've been waiting to read Dion's thoughts on Project Astoria (via John Musser). It's an interesting take, contextualizing Astoria within the overall architectural trends we're seeing take place.

    I liked this diagram and got me thinking (dangerous...):

    SOA Web 2.0 COnvergence Revision 2

    Dion warns that the diagram like this could never be complete representation of the concepts discussed in his post and is work in progress. The mapping done here for the 3 types of applications (Composite Applications, Recombinant Software and Mashups) makes some sense to me. However, it reminds me that I have used the terms "Composite applications" and "Mashups" interchangeably (but never Recombinant Software) depending on who I'm speaking to and without really thinking through what I mean by these terms. To try and clarify my own thinking on this, here's my effort to do so...

    Here are the Wikipedia definitions of Composite Applications, Recombinant Software and Mashups.

    Composite applications

    "the term composite application expresses a perspective of software engineering that defines an application built by combining multiple services. A composite application consists of functionality drawn from several different sources within a service oriented architecture (SOA). The components may be individual web services, selected functions from within other applications, or entire systems whose outputs have been packaged as web services (often legacy systems)."

    Recombinant software



    "A mashup is a website or application that combines content from more than one source into an integrated experience."

    So nothing in Wikipedia for "Recombinant software", but in searching for a definition I did come another post by Dion written in June 2006 - "Is IBM making enterprise mashups respectable?".  Here Dion asserted:

    "Accepting that information, visuals, and software can be remixed and combined at multiple levels in an application stack means that there are (at least) five places that mashups can take place."

    Dion then went on to define 5 mashup types:

    • Presentation Mashup: This is the shallowest form of mashup in the sense that underlying data and functionality don’t meet.  Information and laout is retrieved and either remix or just placed next to each other.  Many of the Ajax desktops today fall into this category and so do portals and other presentation mashup techniques.
    • Client-Side Data Mashup: A slight deeper form of mashup is the data mashup which takes information from remote Web services, feeds, or even just plain HTML and combines it with data from another source. New information that didn’t exist before can result such as when addresses are geocoded and display on a map to create a visualization that could exist without the underlying combination of data.
    • Client-Side Software Mashup: This is where code is integrated in the browser to result in a distinct new capability.  While a component model for the browser is only now being hashed out as part of Open Ajax, there is considerable potential in being able to easily wire together pieces of browser-based software into brand new functionality.
    • Server-Side Software Mashup: Recombinant software is probably easier right now on the server since Web services can more easily use other Web services and there are less security restrictions and cross domain issues.  As a result, server-side mashups like those that in turn use things like Amazon’s Mechanical Turk or any of the hundreds of open Web APIs currently available, are quite common.
    • Server-Side Data Mashup: Databases have been linking and connecting data for decades, and as such, they have relatively powerful mechanisms to join or mashup data under the covers, on the server-side.  While it’s still harder to mashup up data across databases from different vendors, products like Microsoft SQL Server increasingly make it much easier to do.  This points out that many applications we have today are early forms of mashups, despite the term.  Of course, the more interesting and newer aspects of mashups happen above this level.

    Back to the plot...

    When speaking with an "enterprisey" architect I use the term "Composite applications". "Enterprisey" architects think and talk in terms of governance, security, scale and complexity. They also like to hear and use technical sounding terms that confound non-IT folks ;-)

    When speaking with a developer, I tend to use the term "Mashups". Developers are smart and lazy - they want to write fewer lines of code, do more with less and love to impress. In my mind at least, the term "mashup" implies a speedy development / test / deploy cycle, design flexibility and simplicity in the sense that its "less hard to do".

    Now, if I'm talking to a developer who works in the enterprise context (enterprise as in a large business) the term "enterprise mashup" can connect the "enterprisey" values - governance, security, scale but without the complexity AND with the "mashup" values - speed, flexibility and simplicity.

    Reviewing the 5 mashup design patterns above, there is reasonably defined line: Client-side vs. Server-side. Some of the fall into the WOA space - referring to Dion's diagram above:

    "Another important item: The bottom of the overlapping circle contains a cryptic acronym near the edge of the circle: WOA. This stands for Web-Oriented Architecture, a concept that I’ve written about several times here and here in this blog. It’s an idea that basically states that software that goes naturally with the “grain” of the Web, extending the core infrastructure of the Web in natural ways, works the best."

    Yak Skiing

    I've heard of Yak Shaving and done way too much of it in my time. But thanks to Ted I've now heard of Yak Skiing too.

    Salesforce - Marc Benioff keynote

    I'm here at the Salesforce Dev Conference in Santa Clara this morning and listening to Marc Benioff keynote who started his session 30 mins ago.

    First he opened up with acknowledgement that there is a the Google / Salesforce rumour flying around this morning but explained that he wouldn't comment on it today - not confirming nor denying...So no 'official' news there.

    I'm interested to hear how he explains the Salesforce SOA announcement this morning. Will post thoughts here later...

    Update - 11:00 PDT

    Adobe's Kevin Lynch is showing off an Apollo app running on a Mac, one as local front-end UI to API, another app as a UI to ebay webservices and using local Mac resouces as an occasionally connected app, built using Flex. Video, music, etc. Pretty slick. Seems more and more to me that Silverlight / Flash / Apollo are on for huge developer mindshare battles over the next few months/years.

    Update - 11:20 PDT

    blah, blah.

    Update - 11:35 PDT

    Salesforce we go...

    My understanding of what he just said (I didn't catch his name) Adam Gross (VP, Developer Marketing): So you will be able to connect external, 3rd party webservices (FedEx, Google, Oracle, Hoovers, etc) and wire these up on the Apex platform, coded in Apex code. This then creates a new Apex code as a new API you can program against. "SOA as a service".

    The scenario they are showing: Salesforce app connects to an Oracle DB to query customer data and invoice details through a WS layer, then importing that data in the Salesforce DB. Then use this new customer record and use some of this customer record data to query against a Dunn and Bradstreet service and a Zip code service, which again it imports into the SF DB. Then Apex code is generated that can be executed on Apex platform. The wiring experience is not a dev UX environment, but an html form based with some Ajax interaction - more of a business user interface to wire stuff up. Nice.

    Update - 11:53 PDT

    Salesforce SOA expected to be ready for developer preview in August.

    Benioff is back on stage. Is reminding everyone he started as a dev, talking about his ealry days in the games industry, telling some story about 2 dev machines as Macs - wired together by cables, one acting as a compiler, another acting as...oh whatever...the point is that is how he met Guy Kawaski...he's on next.

    Update - 11:56 PDT

    Guy Kawaski is on stage. In response to Benioff's story - "You are so full of crap, Marc".

    Update - 12:40pm PDT

    Guy Kawasaki's talk was advice to entrepreneurs. Entertaining. Partially random notes I took...

    1. Make meaning
     - Curve 1: Ice Harvesting
     - Curve 2: Ice Factory
     - Curve 3: Refrigerator
    "measurements are only statistics, and statistics lie"

    2. Rolle the DICEE
     - Deep: Fanning (Reef) - sneaker soles that open bottles
    Intelligent: BF-104 Flashlight (Panasonic) - batteries
    Complete: Lexus - more than...
    Elegant: Nano (Apple)
    Emotive: Harley Davidson

    3. Make Mantra (piss-take of mission statement creation excercise. Wendy's as example - "the mission of Wnedy is to deliver suprior quality products that blah, blah, blah"

    Should be:

    Wendys: Healthy fast food
    FedEx Peace of mind
    Nike: Authentic athletic perf
    Target: Democratizes desgin

    4. Get going
    - Think different
    - Polarize people (don't be afraid to)
    - Find a few sole mates (Steve and Woz, Bill had Steve)

    5. Define a business model
    - Be very specific (your customer's money is actually your money, they are just temporarily holding for you)
    - Keep it simple
    - Ask women (men want to kill things, women do'nt have this flaw)

    6 Niche thyself
    2 axis:
    X - Value to customer
    Y - Ability to provide unique product service

    Get it high, and to right. Smart Car, Trek Lime, LG Kimchi refrigerator
    low, left - dotcom
    high, left - stupid
    low, right -

    7. Follow the 10/20/30 rule
    "drowning is a growth industry"
    10 slides, 20 minutes, 30 point font

    8. Hire infected people
    - Ignore the irrelevant (I loved Macs)
    - Hire better than youself (bozo explosion)
    - Apply the shopping center test

    9. Lower the barriers to adoption
    - Let a hundred flowers blossom (postscript save Apple)
    - Find the true infuencers (the air is thin at the top)
    - Ebrace your evanglists

    10. Don't let the bozos grind you down

    Blog -


    Keynote over....

    2 in 3 government IT projects fail. Solution? Start a government IT project.

    You might have noticed I have little confidence in the ability of governments to successfully execute IT projects. My skepticism is well founded I think, and the latest numbers provided by the UK government itself give me no reason the think otherwise - the CIO of the Department for Work and Pensions (DWP) speaking at the Government IT Summit this week said:

    "Today, only 30 per cent of government IT projects and programmes are successful. We want 90 per cent by 2010/11. We want to achieve a 20 per cent overall reduction on IT spend in government, including reducing the total cost of a government laptop by 40 per cent [in the same timescale]."

    So the CIO of the failed IT projects department Joe Harley has set out plans for another government IT project as the solution to failed IT projects: to reduce the number of project failures to just 1 in 10. Unfortunately, as much as this project gets my support in principle, the 2 in 3 chance that this government IT project will add to the heap of failed government IT projects gives me little to get excited about.

    Posted: May 20 2007, 02:38 PM by alexbarnett | with 1 comment(s)
    Filed under:
    At Developer Conference

    I'm heading to Santa Clara tonight for the Developer Conference. Looking forward to Guy Kawasaki's session.

    Bungee Labs will have a presence at the conference so you'll be able to see Bungee Connect in action if you are there.

    Ping me if you want to meet up.


    Posted: May 20 2007, 12:01 PM by alexbarnett | with no comments
    Filed under:
    If you have the time, update this

    If you have the time, update the Wiki Clock.

    Irrelevant Programming Languages (Or, Lingo Not to Learn)

    Mike Hendrickson has been analyzing some of Q1 2007 computer book sales data, where he's called out languages you'd be best served avoiding if you are young programmer...

    "The following languages all sold between 1 and 99 units in Q1 '07. These are what I am considering the irrelevant programming languages."

    *Irrelevant* U N I T S T I T L E S M A R K E T S H A R E
    Language 2006
    alice 64 71 1 2 0.01% 0.02%
    delphi 345 48 3 1 0.07% 0.01%
    ocaml - 38 - 1 0.00% 0.01%
    jcl 30 33 1 1 0.01% 0.01%
    realbasic - 31 - 1 0.00% 0.01%
    ada 26 11 2 1 0.01% 0.00%
    labview 148 - 1 - 0.03% 0.00%
    lingo 30 - 1 - 0.01% 0.00%
    squeak 20 - 1 - 0.00% 0.00%
    rexx 17 - 1 - 0.00% 0.00%
    fortran 16 - 1 - 0.00% 0.00%

    Via Chad's, via my network.

    Update 5/20/07: Tom Morris cautions:

    " careful about drawing any ‘I shouldn’t learn this’ type of analysis from this. Book purchases correlate with how hard the language is to learn and how fashionable it is and how bad the online or in-built documentation is. For instance, I have bought Eric van der Vlist’s book on XML Schema, but I don’t use XML Schema as much as RELAX NG. XSD is a pig of a schema language, while RNG is great."

    Bungee Labs - interviews on Podtech

    Brad Baldwin of Rocky Mountain Voices, popped over to the Bungee Labs offices a couple of weeks back and recorded two video interviews for Podtech. Here they are:

    Bungee Labs and Their Ajax-Based IDE

    "After years of working with developers at Microsoft, Alex Barnett thought the pitch from Bungee Labs was too good to be true. A Web-based development environment with the richness and power of a fat, local IDE but with a easier way to share, test and publish applications to the web? Then he saw it. Seeing lead to believing. Now Barnett is sharing the story with others as the community manager at Bungee Labs."

    Demo: Creating Hello World with Bungee Connect

    "Brad Hintze, product marketing manager at Bungee Labs, shows Brad Baldwin the benefits of Bungee Connect, a rich Ajax and browser-based development environment. Hintze quickly mashes up the Rhapsody service showing how easy it is to create and deploy Web apps with this next-generation IDE."

    If you like what you see, sign up for the private beta over at Bungee Labs site. For this beta phase, we're looking specifically for devs who are familiar with the web APIs from the following service providers:

    • Amazon: (e.g. E-commerce Service, Simple Storage Service (S3), Mechanical Turk, Alexa)
    • Ebay: (Ebay Web Service)
    • Google: ( e.g. AdWords, Google Maps)
    • Microsoft: (e.g Windows Live Search, MapPoint)
    • PayPal
    • Real Networks: (Rhapsody)
    • Yahoo! (Flickr, Yahoo! Mail)
    Congrats to 'Rich' Ryan

    Congratulations to Ryan Stewart on his new role at Adobe as Rich Internet Application Evangelist on the Platform Team. Great catch for Adobe.

    Actually stating how well you are paid, eh Ryan? that's transparency for you...does imply Adobe also has 'poor' Internet Application Evangelists too? ;-)

    Posted: May 19 2007, 02:07 PM by alexbarnett | with no comments
    Filed under: ,
    More Posts Next page »