Update: Amazon API changes

Our widgets make great use of an API that Amazon provides. Most of you may not be aware of this, but Amazon now requires all applications that use their Product Advertising API to make signed requests (for authentication purposes). As of August 15, 2009, all API calls that are not signed will be rejected.

I just (painfully) updated the widgets to comply with the new requirements. Hopefully this will be hiccup-free, but please contact us if you run into any trouble with your widgets. Thanks!

a quick update

I haven’t written in several weeks and wanted to put out a quick update. The Amazon widgets have been successful beyond my expectations – between the three, they are up to 700+ subscriptions. I am in the process of designing my next widget, and all I can say for now is that it will be Flash/Flex-based so that I can deploy on social networks as well as blogs and I’m off in a completely different direction. More to follow…

widget platforms

Having just gone through the registration process for my widgets on a number of sites, I thought I would write up a summary report card on the various widget directories. I decided early on to directly host my widgets – the downside is that it was a pain to set up the necessary infrastructure, but the upside is that I have the flexibility of promoting/serving up my widgets from just about anywhere. Here’s my ranked list of widget directory sites. Grade was determined by factors such as ease of configuration/registration and widget promotion.

Widgetbox Grade: A

At the top of the list, Widgetbox has a several things going for it. First, configuration of widgets is an absolute breeze and their support for widget parameters is extensive. Both the developer’s eye view and the end-user view are clean and easy to use. You can test out your widget and iron out the kinks before publishing it in their gallery. Once in the gallery, Widgetbox does an excellent job of promoting the widgets – they are of course text and tag searchable. In addition, Widgetbox took the direct step of featuring one of my widgets on their home page. As a result, I serve up more widgets through Widgetbox than any other site. I highly recommend them.

I am particularly interesting in seeing how well their recently announced Facebook Remote Gallery will be received. I love the potential, but for now, the level of integration at the Facebook site is quite limited.

Widgipedia Grade: B+

Widgipedia only recently added support for web widgets. Their strength is in desktop widgets, and so it does not appear that many people go to Widgipedia yet to get web widgets. That said, widget configuration on the site is almost as slick as that of Widgetbox (once I figured out their peculiar URL encoding). They promote widgets on their home page, and widgets can be found via tag or text search. My only concern with this site is whether people will go to Widgipedia for web widgets.

One quirk: I could configure the widget and keep it private before displaying to users, but in order to see a widget preview for testing purposes, I had to make it “visible” to everyone first. This was a bit weird.

Netvibes Grade: B-

Netvibes provides personalized start pages. They are building out a Universal Widget API (UWA) that will allow you to build once using their framework and then deploy to a wide variety of widget platforms (Google, Opera, Apple Dashboard). I like where they are going with this, particularly their attempts to build standards for widget development, but it’s still in beta and is limited in some ways. Widget parameter configuration is done via XML, which I like, but they do not yet support certain parameter fields (like “description”) or type (“color”), which I don’t like. Additionally, I had to write code in order to get my widget to work in UWA, unlike in Widgetbox or in Widgipedia.

On the plus side, there seems to be good traffic at Netvibes – my widgets are still in the process of being available via their directory, so I do not yet know how well this will translate to Widgizit widgets being served. Netvibes also allows you to test your widgets in a “standalone” sandbox before deployment. [Edit: It took 3 weeks for my widgets to be approved, and even after that I was informed that UWA widgets are not published on their front page as "newly released." The lack of promotion of any kind has prompted me to give Netvibes a B- rating].

Google Gadgets Grade: B-

Like the other big players (Yahoo, Microsoft), Google has its own widget play with Google Gadgets. It was a no-brainer to register with Google, as it’s hard to ignore their reach. That said, their widget registry lacks many of the bells and whistles the smaller players have. The widget parameter configuration support is limited (like Netvibes, no “color” type or support for parameter descriptions). Testing the gadget on iGoogle was painful. I could add the widget to my home page, but some kind of server-side caching meant that every time I made a small change to the widget, I had to wait over an hour for the new version to be loaded.

Protopage Grade: B-

I stumbled upon Protopage while researching Pageflakes and Netvibes. They are another provider of personalized home pages. Kudos to Protopage for making widget configuration extremely easy. They have sophisticated deployment capabilities, allowing you to maintain and deploy different versions of your widget easily. Additionally, every time I released a new version of my widgets, it became available immediately.

I would imagine this site has its work cut out for it via competition via Google, Pageflakes, Netvibes, etc. Also, they do not yet support a “list” parameter type (only a radio button), which meant I could not add my List and L&G widgets because they have numerous options.

Pageflakes Grade: D

Pageflakes is yet another personalized home page provider. While I have the Browser widget running in Pageflakes, I have not yet successfully registered it because of one key issue. They do not provide any real support for widget parameter configuration. You can hand-code a preferences page that will be shown with your widget, but unlike the other sites, there is no way to auto-render the configuration page via parameter meta-data. Bottom line is that it’s more trouble than it is worth. Until Protopages makes this easier, I do not see it as a viable platform for widgets.

Finally, I’ll ask a question for anyone out there. Any feedback/thoughts on the newest RIA entrants Java FX, Microsoft Silverlight, or Adobe Apollo? My next widgets are likely to be developed with something other than AJAX, the main reason being that AJAX is restricted on all of the leading social networking sites, which is a huge limiting factor for distribution.

one week in

Well, it’s been one week since I debuted the first two widgets. I have since debuted a third widget called Amazon Latest and Greatest that displays a selection of new releases or bestsellers in a chosen Amazon category. This widget has proven to be the most popular so far, due to a large part to good folks at Widgetbox, who decided to feature the widget on the front page. That publicity boosted my overall widget subscriptions on Widgetbox from < 20 to over 130. I’m quite pleased with the symbiotic relationship between widget developer and widget host. Having not ever experienced the feedback loop afforded by a web application, I’ve been quite happy and a little surprised at all the encouragement and positive feedback I’ve gotten. To all who have reached out to me, thanks. I welcome suggestions and feedback of any kind, as the whole point of a widget is to appeal to as many people as possible.

This week, widgizit.com experienced its first production problem. The outbound e-mail stopped working, making it impossible for people to register on the site. It took awhile to get it up and running, but to those who were waiting, you should be able to register again. Just another lesson in the realities of maintaining a web application, and I suspect it will not be my last scare. I can only ask any widget users to be patient and let me know if something goes wrong.

up and running

I am happy to announce to my loyal readers (um, zero, one?) that widgizit.com is officially up and running. I’ve submitted my first two widgets, Amazon List and Amazon Browser to Widgetbox for approval to display in their gallery. Please take a few minutes and play around with configuring the widgets if you get a chance.

Update: By end of day, I am now featured in the gallery at Widgetbox with 8 new subscribers and growing. I’m also in the process of getting the widgets up at Google Gadgets. I have to say that I’ve been spoiled with Widgetbox – Google and other registries I’ve looked at are not nearly as slick configuration-wise.

This has been a satisfying day. Lots of cool stuff to come…

Closing the gap

Widgizit.com is extremely close to launch. The site is painfully spartan for now. It really only does two things right now – lets users register and serves up widgets quickly. Getting the web site up and running was very rewarding from a learning perspective, but it took much more effort than I had originally planned for. The end result, however, includes a repeatable, automated build process. This should (ha) allow me to concentrate on building cool widgets and exploring some of the rapidly evolving platforms (Silverlight, Flex, JavaFX anyone?), which was the original plan all along.

Near-term next steps include descriptions/instructions for the two currently completed Amazon widgets and completing the publication of the widgets on Widgetbox. Then I will have finally released these things into the wild!

Getting closer

I’ve made considerable progress since my last post. I have a first-cut working Ruby on Rails application built on a development box – an Ubuntu VM (on Windows). The first round of widgets (Amazon-based) are ready to go. Much of the build process for the widgets and the web site is automated. I’ve signed up with Slicehost to host the site – they come highly recommended and the price was extremely compelling. I’m now coming up to speed on things like DNS configuration, setting up a scalable production web server environment, and maneuvering around Linux. While it’s been an eye opener as to all of the components needed to get a web application off of the ground (and I’m sooo barely scratching the surface), I’ve also been thrilled at the plethora of readily available tutorials, how-tos, forums, wikis, etc. to make this easier. Many others have trodden similar ground to get their fledgling efforts off of the ground, and this is a very good thing.

Coming over to the server side

The past week or so has found me coming up to speed on Ruby on Rails. I am developing portions of the site using RoR, and it’s been interesting so far. Ruby on Rails (RoR) is an open source web framework. The tag line is “convention over configuration,” meaning it’s designed to maximize out-of-the-box common web app functionality, but it allows you to customize/override anything you don’t like. It’s based on Ruby, an interpreted, OO scripting language.

I chose RoR because designed with the programmer in mind – it’s extremely powerful, but it makes no apologies for those who do not understand the fundamentals of distributed web application development, automated builds, and test-driven development. I feel that the learning curve has been relatively steep, more on the web app side than anything else. That said, as someone with a strong Java background, I like the evolutionary step that Ruby has taken and feel comfortable with the tools – Rake vs. Ant, Test::Unit instead of JUnit, etc.

I’m reading a book called Rails for Java Developers and I highly recommend it if you are a Java developer and want to learn RoR – relevant, concise, with an excellent comparison between Java and RoR approaches.

Widgetbox

I’m looking at a number of widget registries in which to host my widget. The whole point is to distribute it as widely as possible, and there are several options – Google Gadgets, Yahoo Widgets, Microsoft Gadgets, MacOS Dashboard, Widgetbox, Widgipedia, and others. I chose Widgetbox as the first one to try mainly because widget configuration is extremely straight-forward and the site let me configure and test the widget privately before publishing in their gallery.

I haven’t gone “live” yet for the sole reason that my current site provider is not going to hold up to the demands of serving up lots of widgets – to be honest, it doesn’t do particularly well serving a single widget to an audience of one (not exactly the definition of scalability). I’m looking at options now. Once I’ve moved the site and made a few additional tweaks to the widget, I should be ready for prime time.

One step at a time…

I’ve added a couple of sample widgets to the sidebar. The first widget is an Amazon Browser. Type in whatever query you want and hit Enter. You can change the search index by clicking on the magnifying glass and for all indices but “All”, you can specify a specific sort order. Additionally, move the scroll bar to see how the widget can dynamically load results. The second widget is a Amazon “list” widget. It can be used to load a variety of lists – Wish Lists, Wedding or Baby Registries, canned searches, similarity searches, etc.

Widgets should of course be easy to add to your site and easy to configure to your individual taste. As such, both Amazon widgets already have a number of configurable options, such as whether to show items details or what the widget title should be. These options are currently settable via the URL and undocumented. I’m looking now into registering the widgets at sites like Widgetbox to make adding a widget to your blog/web site very easy.

Neither widget is groundbreaking, but at this early stage we’re aiming for “functional” and maybe “cute.” The Amazon widget is a great first widget to learn client-side web app basics and build out various infrastructure pieces. Once some of the building blocks are in place, the intent is to move on to more interesting widgets.




Configured over at Widgetbox

Configured at Google Gadgets

Configured at Widgipedia