tags - "widgets"

Making iGoogle gadgets is fun. Really!

Posted Jun 11 '08

In my previous post, I talked about how Web 3.0 (or the next decade of the web, as I'd rather put it) is about two main things:

  • A shift in context ("the context is me")
  • Widgetization of content

I try my hardest to practice what I preach, but technology can be a bumpy road. Fortunately, in most cases, persistence always wins out.

I recently started a new web site called Arnold Quotes. It's simply all the best Arnold Schwarzenegger action-star-pun style quotes, all in one place. The ongoing goal of this project is to widgetize its content, and the first widget platform on my list was iGoogle.

When I first started making the iGoogle gadget for Arnold Quotes I figured it would be pretty easy, but I had some trouble. My original plan of attack was to serve up XML from arnoldquotes.com, and parse it with JavaScript inside of the iGoogle content module. I ran into a lot of difficulty, so I took another route, and served up straight HTML from arnoldquotes.com and stuck it in an iFrame. This worked OK, but it wasn't really ideal. If the gadget ever became very popular, Google wouldn't be able to cache it very well, which could really tax my server. It was also difficult to make JavaScript calls from inside the iFrame that didn't make several browsers freak out.

So I went back to my original plan, and I'm glad I did. After some stumbling, I managed to put together a native iGoogle gadget, which should run properly in all modern browsers. I was having some weird scroll bar problems with Internet Explorer 7, but I mitigated those issues by making the iGoogle gadget dynamically resize its height. The reason I had a hard time at first was because I wasn't traversing the DOM tree properly with JavaScript. After doing a little bit of reading in the rhino book (O'Reilly's "JavaScript: The Definitive Guide"), I realized what I was doing wrong, and managed to fix the problem. If you're curious, you can add the gadget to your iGoogle page by clicking here.

All said and done, I actually had a really fun time making the gadget, and I want to make more now. What gadgets would you like to see?

What is web 3.0?

Posted May 31 '08

Everytime you say Web 3.0, a web start up company dies.

The short story is this: Web 3.0 is just another marketing buzzword. However, there's a little more to it than that. In recent times, it's starting to take on some substance. Allow me to give my perspective, which is one of many.

Beyond the buzz, Web 3.0 is simply the next phase of the web. There are many theories about what this could mean, but most agree that Web 3.0 will see the rise of the "semantic web". That is, many technologies will help machines, such as search engines, automatically determine the meaning of content. While this is a powerful idea, I don't think it will completely embody Web 3.0.

I believe Web 3.0 will be a shift in context, and the context is "you."

Google's Conversion University states the following: "Use 'you' and 'your'; avoid 'we' and 'our'". With social networking sites taking over the web, this idea makes intuitive sense, but it's much deeper than that. The truth is, people can only absorb so much content in a day, and our lives are becoming increasingly dense with media. When the web was new, people didn't mind visiting several different websites to view their proprietary content. Web 2.0 brought about some amazing web applications, but many web apps try to do too much, and they end up being overkill. The other problem is that there are too many apps that do the same thing.

To support a shift in context that is more user centric, the content has to move with them into the places where they feel most comfortable, whether that be social networking sites, start pages, or desktops. Right now the best way to do that is through widgets. Most platforms have their own widget implementation, but hopefully this will be standardized in the future so that widgets will be more portable. Google has already taken some great steps in this direction with OpenSocial.

If web apps are to be widgetized, then the apps need to be simple and serve a very specific purpose. There will always be a place for large and robust web applications, like Google Analytics for example, but apps should aspire to do one thing and do it well. If more web apps took this approach, the market space for niche applications would increase, and web users would have finer control over the content they see.

Another thing that will contribute to the next phase of the web is the increase in popularity of rapid application development techniques. With frameworks like Ruby on Rails, developers are able to make web applications fast. I strive to develop many smaller, specialized applications, rather than single, monolithic apps with a bazillion features nobody wants. Because development time is faster on smaller applications, it's easier to iterate on them and practice "kaizen," a Japanese concept meaning "continuous improvement." I'm a true believer in the saying "release early, release often," and I think it's the best way to develop applications. Trying to make web software "perfect" all in one go prevents the application from adapting to its user's needs. This is important, because if nobody uses an app, it doesn't matter how good it is.

There are many more things that I could speculate about in regards to the next phase of the web, but I think the take home point here is the shift in context. So with that said...

Hey! How are you today? Feel free to comment below. : )