Mashup Camp 2 Day 2: Speed geeking

Decision time. I have one wooden nickel to spend, and five mashups that I really like:

  • ChunkLove, a gift registry finder that was created when the author’s sister complained that she had a number of friends getting married and no way to track all the different stores where they were registered for gifts. You enter a first/last name and city, and ChunkLove searches a number of pre-set registries (Pottery Barn, Bloomingdales, etc.) to see if that person exists in their registry. Right now, you can then click on each of the stores to link through to the name search results, but the plan for the future is to bring the search results back to the main ChunkLove page so that you can identify which Jane Smith it is whose wedding that you’re attending, for example. Only Amazon has APIs to get the search results, so the rest of them are accessed via scraping — the author was looking for a “more interesting” Ruby project to do, so took on the scraping task as well as all the other mashup essentials. He has other plans to use wedding date to narrow the search further, and aggregate the content (i.e., the actual items listed in the registry) so that you could see, for example, if Jane had asked for the same item on more than one site, and if it were already purchased on one of the sites.
  • TrPPR was whipped up by Cameron Jones in 4-5 hours starting at 11 last night, after he was inspired by all the other speed geekers’ offerings yesterday. It’s a mashup of NPR data with Microsoft maps that allows you to select a driving route by its endpoints, then see all the NPR radio coverage that you will have along the route. He scrapes the XML data from the NPR site, then uses PHP to calculate coverage radii. He then overlays the tower locations and coverage areas on the map route, and provides links from each tower to the corresponding radio station so that you can make a donation to support public radio.
  • PhoTiger by Chris Radcliff matches your Flickr photos with your Eventful events to automatically add tags, including geolocation tags, to the photos and change their titles based on the event data. Since the photo data uploaded to Flickr includes when the photo was taken, PhoTiger can match that against where you were at that time according to your Eventful calendar. It displays the photos matching each event and allows you to select/deselect appropriate photos, deselect any of the suggested tags, and select whether to override the photo name to match the event name. This mashup has actually evolved since yesterday to add the geolocation tags and photo titles, which says a lot about what Chris does in his spare time.
  • MileGuru, which aggregates all your frequent flyer and frequent stayer (hotel) points and other data into a single place. Since I saw the mashup yesterday, Chad integrated in mapping, so that all of your travel route details show up plotted on a Google map. He’s promised to get me on the beta as soon as it opens, in part so that I can beat up the Air Canada section, and I can abandon that Excel spreadsheet that I’m using to track this now. He’s currently using Google AdSense on the site to generate some revenue (or at least, it will when he releases this publicly), but he also plans to place targetted ads based on your frequent flyer content, that is, where you’ve been travelling lately.
  • WeatherBonk is a mashup that I first saw at the first Mashup Camp in February, and I checked out how it has advanced in the last several months. The author spent about four months creating the “Bonk” mashup framework, mostly on top of the Google APIs, and can now create new vertical mashups much more easily, such as GolfBonk and SkiBonk. WeatherBonk shows a map of the San Francisco area with temperature bubbles directly on the map (there’s a lot of variation in the Bay area, and you can really see it here), plus a ton of webcams accessible directly from their location on the map. You can overlay live fog layer data, or see traffic speeds and traffic cams instead. For other geographic areas, you can plot a route on the map and see the expected weather conditions along the route in case you want to adjust your departure date. You can also look at historical temperature data for many other international locations.

WeatherBonk is definitely the most sophisticated, but then, he’s been working on it since before Mashup Camp 1. From a pure consumer “oh my god, I want to use that” standpoint, my nickel goes to MileGuru.

Mashup Camp 2 Day 2: Mashups for prototyping

“We can just hack that together” has been the rallying cry for mashups for a long time already, before the word “mashup” ever hit the scene, and Cameron Jones led us in the last breakout session of the conference to look at how mashups can be used for prototyping applications. He’s doing Ph.D. research on mashups, so was able to give a bit of a theoretical view on horizontal versus vertical prototyping; it’s really interesting to listen to someone who spends many hours each day thinking about this stuff, as opposed to most of us who only think about it occasionally (except here at Mashup Camp). He’s looked at mashups as a general design pattern, including non-web mashups, and we discussed how the current range of freely-available and open source APIs and platforms makes mashups incredibly attractive as a way to build stuff fast.

I’m particularly interested in mashups for prototyping in two enterprise contexts: end-user computing, and actual IT prototyping.

In the first intance, I’m seeing that mashups could become the next generation of end-user computing as long as mashup applications can be assembled with a minimum of programming by a fairly non-technical user within an enterprise. In many back-office departments that I work with, there are a couple of people who create local applications like complex reports in Crystal Reports, databases using Microsoft Access, and a host of other mini apps that aren’t sanctioned or supported by IT. Think of this in the context of the mashup mentality that Joe Ortega is trying to build inside eBay. When you think about it, aren’t DDE/OLE and macros/VBA just the precursors of mashup mentality, although for desktop rather than web applications? If you give the same type of tools to people in an organization, but now web-based, there could be some pretty powerful end-user computing applications created and — because they’re on the web — easily shared.

In the second instance, actual prototyping that will be turned into a “real” industrial-strength application later, mashups could be used to create rapid iterations of a prototype that allow for user evaluation and feedback. The prototypes might not be high fidelity, but a mashup could actually be a functional prototype rather than one of those non-functional mockups that are too often used by IT now to try to elicit user feedback. The danger, of course, is that since the mashup is functional and it’s ready now, the users may want to use it even if IT is planning a fully-architected, hardened version of the application to be rolled out several months hence, and the mashup could become a de facto standard that is difficult to replace later. Depending on your opinion about the current state of IT development, that could be a good or bad thing.

There’s a third use case for mashups as prototypes, and that is for external mashup developers to create new functionality on top of an existing web service or application that later causes the web service/API provider to roll that new functionality into their core product. I haven’t thought too much about that one, but consider that the mashup developers become both market research and unpaid prototype developers in exchange for their free use of the underlying APIs.

Mashup Camp 2 Day 2: Internal mashups

Tom Ortega from eBay led a discussion on internal mashups (mashups within closed corporate walls). Like me, he sees mashups and SOA as two ends of the same spectrum, so there were a lot of things that they’re doing internally that are somewhere in between the hair-on-fire mashups that we’re seeing here at camp, and the takes-forever-to-over-architect SOA implementations that are happening in corporations everywhere today. Tom wasn’t talking about eBay’s APIs for mashups that are also being promoted elsewhere at camp; he’s an internal guy developing stuff for their own internal use, nothing to do with the eBay developer program.

To be truthful, a lot of what Tom is talking about is way more SOA/web services/composite applications than mashups, using for the front end, and Java for the middle and back tiers, where Flex is making SOAP web services calls. I asked Tom why he called these mashups instead of composite applications, and he said that the intention is to create a library of web services and other tools, then unleash them on the organization at large to create/assemble whatever they want with them. Definitely a mashup mentality, if not fully lightweight mashup integration methods, which is a great first step to bringing mashups to the enterprise.

The wiki page isn’t there yet, but will probably be here along with a link to Tom’s slides.

Mashup Camp 2 Day 2: Google Maps and Google Calendar mashup

I used the “law of two feet” (also known as “quietly slipping out the back door when you’re bored”) and am now in a session showing a mashup between Google Maps and Google Calendar. I’m probably the only geek on the face of the earth who hasn’t tried out Google Calendar, and I’d better try it out if I’m going to do something like this for my own uses, such as scheduling my wine-tasting club’s events.

Patrick Chanezon of Google is giving the demo of this mashup that he created, and walking through any parts of the code that people are interested in. He just finished it this morning and it’s a bit rough, but pretty cool. You can paste in the URL of your Google calendar, select the number of months out to look, and generate a map of all the events in the calendar for which geocoding was successful. Although it’s not baked into this mashup, you could do all the other cool things in the Google Maps popups, such as creating tabs that have links to the event URL, microformatted date/time to add to personal calendars, and other information.

He’s editing one of the source files on his Mac right now using vi, which I find hilariously endearing. Reminds me of my TECO days, which are alarming easy to recall with that PDP-11 sitting next door in the Computer History Museum exhibits.

Patrick talks about the mashup on his blog here, and you can try out the mashup here. There’s no link to the session on the Mashup Camp page yet, I’ll update this entry with it later. He’ll also be publishing the code in a couple of weeks, likely linked from his blog or the Mashup Camp wiki page, so check back later if you’re interested.

SaaS and doppio macchiatos

I just received the latest copy of Roger Sessions’ ObjectWatch newsletter (direct link to PDF), and there’s a great article in it explaining SaaS in terms of making your own doppio macchiato instead of going to Starbucks, then later gives an IT cost-avoidance example for SaaS that lines up perfectly with the espresso-making analogy.

He also discusses the two models of SaaS revenue: pay-as-you-go (like Salesforce.com), or watch-as-you-go (ad-supported, like Google, and like most mashups). There are many Web 2.0/SaaS services out there that have a watch-as-you-go free version, and a pay-as-you-go premium version — Flickr, Mollyguard and Nuvvo all come to mind — so the two models are definitely not mutually exclusive for one provider.

If you want a quick and easy way to understand SaaS, or to explain and justify it to your organization, some great ideas in this newsletter. Worth reading.

Mashup Camp 2 Day 1: Wrap party

End of the first day of Mashup Camp 2, and boy, is my brain tired! It was a great day of new ideas, debating opinions, seeing new cool stuff, and meeting new and old friends. After some wrapup comments, we moved on to the after-party, and also had a chance to see the exhibits at the Computer History Museum (which I skipped because I had seen them in February, and because the conversations upstairs were too interesting to leave).

I ran into Stephen O’Grady of Redmonk, with whom I’ve exchanged email and blog comments but didn’t realize that he was here until he introduced himself when he stood up to make a comment in the main session. I guess that I wasn’t reading his blog at the time of Mashup Camp 1 (which he also attended, but at which I didn’t meet him), and I’m so behind in my blog reading now that I didn’t see any of his current Mashup Camp posts. I really need to review that Who’s Coming list more closely.

I also met Cameron Jones, a Ph.D. student at the University of Illinois at Urbana-Champaign who is studying web mashups as his research. He contacted me and other Mashup Camp attendees a few weeks ago by email to get connected with the idea of interviewing members of the mash-up community for his research. Who knew that you could do a Ph.D. thesis on mashups?

I had a chance to chat with lots of other people who I met at Mashup Camp 1, although my memory for names is shockingly bad so I had to do a lot of discrete reading of name tags. There’s a much greater sense of community now than at the first camp, and a continued sense of excitement. Also, as I noticed in the session on “mashdowns“, some shifting of focus to business/enterprise mashups, which is really what I’m here for.

Mashup Camp 2 Day 1: Client-side customization

Like the profile data aggregation session, I didn’t know what I’d get out of this session on client-side customization, but found it interesting nonetheless.

We had a discussion on the different types of customization:

  • Change the style sheet of a page/site to provide a specific theme or look and feel.
  • Add/remove/rearrange existing content, e.g., via Greasemonkey or Platypus.
  • Bookmarklets to add other functionality through browser bookmarks.
  • Cookies.
  • Create custom aggregation of data from multiple sources, e.g. NetVibes and other portals; most mashups fall into this category.
  • Create new data or services.

This led to a discussion of the spectrum of tailoring activities that could be done: customizing (transformation of existing data), integrating (aggregating data from multiple sources), and developing code (creating new data/services). We also touched on the difficulties caused by tailoring, such as cross-platform incompatibilities, but also the end-user support problem when all end users can potentially have environments that look and act differently from each other and from the people who are supposed to be supporting them.

A key issue raised from this is what the current generation of customizable software (e.g., Firefox) does with respect to raising the expectations of what should be customizable and how difficult should it be. This general expectation-raising of Web 2.0 and related technologies has a big impact on enterprises as their internal users and external customers start to expect that the organization’s software will be just as flexible in terms of customizing the user experience.

We finished up by talking about how customizations are shared between people, and potentially become common usage within a larger group. This is less about client-side customization than user experience customization, and the ability to share an experience that you create: the web equivalent of redecorating your apartment, then inviting your friends over to check it out. Like (personal) blogging and sharing playlists on iTunes, it’s a way to put a bit of yourself out there for your friends — or complete strangers — to experience.

Mashup Camp 2 Day 1: Aggregating profile data

Sarah Harmer’s done, and I’m on to President Alien. It really is getting late, I swear that this is my last post for the day. Or maybe my second last.

Following the speed geeking, we had the breakout third session, and I attended the one on aggregating profile data. Although this was hijacked slightly at the end by the OpenID attendees, it was an interesting discussion on a number of profile/identity-related subjects:

  • Making yourself available and findable. How do you create an identity that others can easily find on any given social networking system?
  • Finding others. How do you find others on a social networking system? (through a directly tranmitted URL or reference, by email, by common screen name, etc.). How can you create a common identity view of someone that you know? Is the onus on the person being found or the person doing the finding to create that view? Being able to track changes on another person’s profile. Being alerted about events in their life, e.g., birthdays.
  • Using different profiles for different purposes, namely the compartmentalization of different parts of life. Choosing what to share (photos, blogs, contact info) with which people (family, friends, work colleagues). Intentionally creating non-correlatable profiles, e.g., Superman/Clark Kent, work/play. The different levels of intimacy, e.g., comparing the Flickr friends and family categories with the concept of an IM buddy, and what information might be shared with acquaintances of different levels of closeness.
  • Exchanging profile data between social networking systems. Open standards for profile data exchange.The concept of a People Service for social networking group/profile management, which also came up in the People Aggregator mashup during speed geeking.

I attended this out of general interest; although I had hopes that it might be useful in enteprise profile management, I’m not so sure but still found it interesting.

Mashup Camp 2 Day 1: Speed geeking

We started the afternoon with speed geeking, where each mashup developer set up on a table, and the rest of us circulated around spending 5 minutes at each table for a quick demo. There were 21 tables but only 10 timeslots, which made for a quick triage before I started out. We’re having another speed geeking session tomorrow so I’ll have time to catch any that I missed before I hand out my wooden nickel — the token that each of us were given at registration to use for voting for our favourite mashup. First prize is $5000 of geek-ware of some sort, so this is a pretty big deal.

Tons of ideas here: wedding registry finder, cell phone as shopping cart, news aggregator, train schedules to SMS, backend storage, music videos, Bungee Labs mega-mashup, restaurant reviews, auto-tagging Flickr photos by event, Frappr, pricing, travel data….

Because I was moving tables every five minutes, all my notes about the speed geeking are on paper but I’ll post more details after tomorrow’s speed geeking session. My faves so far:

  • ChunkLove, a gift registry finder
  • TrainCheck, which sends the next three BART times at any stop to your mobile via SMS or email
  • PhoTiger, which matches up your Flickr photos with your Eventful events to help auto-tag (and eventually auto-name and geocode) the photos based on the event data
  • MileGuru, which aggregates all your frequent flyer and frequent stayer (hotel) points and other data into a single place