April 2007

Browser extension mechanisms for various browsers

I know about the Firefox add-on/extension mechanism but what about the corresponding element of other web browsers? Here's what a series of quick web searches turned up:

Firefox

Opera

Internet Explorer

Safari

  • Pimp My Safari: about:
      It was started as a reaction to the sites cataloguing Firefox extensions. Many excellent plugins for Safari have been developed, but because Safari doesn’t have an official ‘extension architecture’, many don’t know of these extensions.

I'll see how much 'll be able to cover these various mechanisms in detail in the book.

Chapter 08
Uncategorized
web browser

Comments (3)

Permalink

Exisiting pieces to draw on on social bookmarks for Chapter 14

If I weren't sick with a cold, I'd be energetically plowing away on Chapter 14 on the topic of social bookmarks. I'm trying to get through a first pass of the chapter this afternoon, which is likely to be way too optimistic. Fortunately, I am drawing from some work that I've already assembled:

Chapter 14
del.icio.us

Comments (0)

Permalink

Mining the data in ProgrammableWeb for Design Patterns in Mashups

In chapter 9, I look in detail at some individual mashups. I also want to know more about mashups in general, to do a macro-analysis of mashups. That is, I would look at the broadest range of mashups to look for design patterns that cross many examples.

One way forward would be an analysis using ProgrammableWeb, probably the single best compilation available of mashups and corresponding APIs available on the public web. There are some patterns that are immediately obvious from a study of the site; I say immediately obvious because John Musser, its creator has surfaced these elements in the interface. Let me point out some of the data about mashups:

  • You can get an overview of the mashup world, newly registered ones, what's popular at the Mashup Dashboard.
  • "mapping" is the most popular tag associated with mashups, followed by "photo"
  • The Web 2.0 Mashup Matrix displays mashups by their use of every combination of 2 APIs in the ProgrammableWeb database.

In addition, to what is obvious in the data, I would like to pose more questions that should be derivable from what is in ProgrammableWeb.com:

  • How many APIs are used by the mashups? That is, what's the distribution -- how many use 1, 2, 3, etc. APIs.
  • What's the most common pair of APIs being used? Most common threesome?
  • Is there any correlation between the popularity of an API and the popularity of mashups that use that API?
  • Are there broader correlations among usage patterns of APIs if we cluster them by categories? Are mashups likely to use more than one API in the same category or across categories?

As of the writing of this book, there is no formal API to programmableweb.com -- so answering these and allied questions require some other form of access to the data. I'm working with John to get such access.

Chapter 09
ProgrammableWeb
design patterns

Comments (0)

Permalink

Comments from Jon Udell on my writeup on LibraryLookup

Jon Udell was kind enough to make some comments on what I've written on his LibraryLookup bookmarklet in Chapter 1 (which I post here with his permission):

    Under "How can it be extended": OCLC xISBN! That service solves a key problem with the bookmarklet version: that an ISBN does not uniquely identify a work. But it creates a new problem: a bookmarklet alone cannot perform client-side remixing (i.e., calling xISBN and then using its output to splice Amazon and the library). I've incorporated xISBN into several solutions:

  • http://weblog.infoworld.com/udell/2006/01/30.html

    Being a Greasemonkey hack, this has limited reach. I've been meaning to try to produce a universal version that'd work with IE, probably using Turnabout (http://www.reifysoft.com/turnabout.php), and you've reminded me to prioritize that.

  • http://weblog.infoworld.com/udell/2006/01/26.html

    This is actually a different kind of mashup, involving Amazon wishlists. It's very cool. But again, it has limited reach in the sense that RSS notification is geeky.

  • http://elmcity.info/services

    This version eliminates RSS in favor of email, the idea being to appeal more broadly. Except it hasn't, because the conceptual barrier -- multipurpose your Amazon wishlist in order to receive notifications about availability in your local library -- is formidable.

    All three of these solutions could, and perhaps should, be generalized for multiple OPACs and multiple libraries, in the way that the bookmarklet generator has generalized the bookmark hack.

    That's it! Hopefully somebody will read this and take on one or more of these challenges, in case I don't get to them.

Chapter 01: Learning from Specific Mashups
LibraryLookup

Comments (1)

Permalink

Mashup tools to look at

In Chapters 9 and 11, I analyze service composition frameworks, tools that make it easier to create mashups, for "design patterns" among mashups. That is, if some tool offers a template, it's likely that there is a design pattern behind that template. If time allows, I'd like to study at the least the following frameworks. openkapow is one such system. I want to look at the ones highlighted in John Musser's recent presentation at Web 2.0 Expo. See Open APIs Talk at Web 2.0 Expo and specifically the quote from Digg floats API, phishing mashups to come:

    "The tool space is going to explode, both for developers and nondevelopers," Musser said. Of particular note were data mashup tools such as Yahoo Pipes, RSSBus, and Grazr; scraping tools for making structured data from unstructured data, such as Kapow and Dapper; and visual development tools, including JackBe, Teqlo, Bungee, and IBM's QEDWiki.

I'm already studying Yahoo! Pipes, Kapow, Dapper, and QEDWiki but have yet to look at:

How well do these tools work? We'll see.

Chapter 09
Chapter 11

Comments (0)

Permalink

At work on Chapter 9

I'm working today on the first draft of Chapter 9 "Dissecting mashups and remixes". Ideally, I'd like to create the equivalent of the Gang of Four's Design Patterns for mashups. Such a project is long-term effort. For this chapter, I suggest finding several emerging patterns from an analysis of a handful of specific mashups. I will also outline how we can look for patterns latent in the ProgrammableWeb database of mashups.

Where we can look for analyses of mashup-related patterns?

AJAX
Chapter 09
ProgrammableWeb
design patterns

Comments (0)

Permalink

Which Creative Commons license to choose?

My publisher and I have agreed to release my book under the By-NC-SA 2.5 Creative Commons license. Should we go even further in openness and license under a By-SA license and remove the commercial reuse restrictions? David Wiley's post Why Universities Choose NC, and What You Can Do at iterating toward openness prompted my own comment:

    I’m very interested in this issue. I’m currently working on a book to be published by Apress on mashups (http://blog.mashupguide.net/about). The deal I have with my publisher is to publish the book under a By-NC-SA-2.5 license. As David knows, I was debating with myself on what license to choose from among By-NC-SA, By-SA, and the GNU FDL. I finally decided not to go all the way to By-SA because I was afraid that if we didn’t go with the NC restriction, a commercial player could undercut Apress (and me) by taking all the materials and selling it in a more commercially advantageous position. That is, I’m afraid of the prospect of someone printing and selling paper copies at cheaper cost or putting up my book on a commercial site and realizing advertising revenue for cheap (since they did not put in the money to produce the book in the first place.) I will admit that my fears may not be well-founded — so I’m interested in figuring out whether I should revisit the issue of licensing with my publisher. (It’s not that Apress is adverse to publishing books under the GFDL — see http://www.djangobook.com/license/, for instance.) I will say that the incident with Seth Godin’s book did not help with my fears though. (http://sethgodin.typepad.com/seths_blog/2007/02/please_dont_buy.html)

    Bottom line: how do I make my work as open as possible while not opening my publisher and me up to being unfairly taken advantage of commercially? I’m not predicting that I’ll be making tons of royalties off my book, but I don’t want to have what little might be coming my way to be taken away either! :-) Since I recently left the long-term employ of the University of California, I’m a bit more dependent on income from writing than I used to be.

Creative Commons
Meta
open content

Comments (0)

Permalink

ProgrammableWeb points me to yet another Google release!

It's very difficult to keep up with the world of public APIs and mashups -- even for someone like me who is writing a book on the topic and teaching a course on the subject! Now that I have a bit more time to work on the topic, I turn now to being more assiduous in my reading of online news sources. My first priority is a consistent read of John Musser's ProgrammableWeb. I already make steady use of its database of APIs and often point others to the Mashup Dashboard when people ask me for concrete examples of mashups. Now I want to keep up with his blog. Today (April 20)'s post concerns Google AJAX Feed API, which is described thus by the Google documentation:

    With the AJAX Feed API, you can download any public Atom or RSS feed using only JavaScript, so you can easily mash up feeds with your content and other APIs like the Google Maps API.

Hmmm...I get to a detailed look at Chapter 4 next week on RSS and other feeds. I've written about Yahoo Pipes for remixing RSS. This Google AJAX widget demands a close look too! (Thanks, John, for alerting me to this new development! I also need to subscribe to Google AJAX Search API Blog in my news reader.)

Chapter 04
Google
ProgrammableWeb
RSS

Comments (0)

Permalink

Machine tagging in Flickr (and elsewhere?)

"Machine tags" (see Flickr: Discussing Machine tags in Flickr API) have been introduced into Flickr as generalization of things like geotagging. Machine tags are also known by many as "triple tags". These are tags with a specific syntax aimed primarily for "machine consumption" (that is, by programs) and not directly for display to the typical end-user. You can use machine values to store extra data elements for a given photo. I think that it's fair to say that most important example of such data has so far been the latitude and longitude associated with a photo. So important that Flickr ultimately introduced specialized functionality to handle this data, to take that data out of the realm of having people just shoehorning that info into tags.

I'd really like to know what uptake there has been on machine tags. I was hoping to be able to do searches for namespaces in use -- but as I document below, I don't know how to formulate a query to do so.

Some kinks have been fixed in the Flickr machine tags:

Some outstanding issues remain:

  • missing negative values and decimals in the machine tag API. See yws-flickr : Message: Re: Machine Tag Bug - missing negative values and decimals?. When I do the a query for my pictures that use the geo: machine tag name space and ask for the machine tags, I get the "-" and "." stripped out. (I confirmed the problem on March 11 but as of April 19, I've no seen any resolution.)
  • no response to yws-flickr : Message: Re: Ladies and gentlemen : Machine tags. I'd love to have a whole set of query functionality, including being able to look up all domains in use. I know about "geo" but what others are being used -- and with what frequency? For instance, we can pull up all the geo: machine tags by searching for "geo:" with the API call. See http://tinyurl.com/yt5k2f You will >500,000 photos under that domain. I tried variants on "geo:" to try to pull up all machine tags ("*:", "*", "*:*") but I couldn't find any that would get me all the machine tags....

What are the equivalent of machine tags in other systems? What to look at:

Chapter 03
Flickr
Google
tagging

Comments (0)

Permalink

Riya-Flickr mashup / What is visual search?

In a sidebar to Chapter 3, I ask the question of whether we will be able to ultimately rely on visual searching instead of tags? I mention that that companies like Riya are hard at work to bring us visual search. What other companies are out there? Trying out Riya has been on my list for a while, especially because it has an API. If you have experience with Riya, especially the API, please contact me. I'd like to see whether I can do a mashup between Flickr and Riya in which I could feed Riya my photos, using the tags I already have in Flickr to train it to recognize faces of friends, and then ask Riya to tag the rest of my photos. I'm sure someone must have tried to do so already. How have they succeeded?

What might a non-word based search look like? Draw something that you want to look for and the search engine will bring up pictures that look like what you drew? Or would you present a photo to the search engine, and it would bring up similar photos? The fact that we still have to type words in to a search engine to search for pictures or video or music, shows how deep end and we are on words for search and for describing nonverbal objects. That's why tags are so central in Flickr, where the dominant form of data is visual.

Chapter 03
Flickr
Riya
search

Comments (0)

Permalink