Opera Unite Impressions

Opera Unite

I recently downloaded the latest version of Opera in order to try out the Opera Unite service. If you haven’t heard, Unite is a web server that is hosted from within Opera (as a widget). The idea is that you can load Opera up on your PC, turn on the Unite service, and then be able to connect to it remotely through another browser instance from virtually anywhere.

Before I delve into Unite, I thought I’d say a few words on the Opera 10.0 Alpha build as well. As far as Opera goes, it’s never been a bad browser, but it’s never offered that compelling a reason for me to use it over any of it’s competitors. The 10.0 Alpha is definitely the best version of Opera that’s ever been available – it has all the things that make Opera good and unique (magic wand, gestures, great tab support). Still, aside from Unite, I can’t say it’s my preferred browsing environment. Firefox trumps Opera in sheer number of addons, and Safari/Chrome have a better rendering engine in Webkit.

Unite, on the other hand, is something that nobody else has currently – a web server built into the browser. The first thing you notice when you setup Unite is that it is incredibly easy to do so. The music player works by just pointing it to your music folder. Same for the file server. I haven’t experimented much with the web server part because I don’t have a particular need for it, but it’s pretty cool to know that anyone with a desire to publish HTML content now has an avenue to do so that doesn’t require a hosting account.

When you create your Unite account, you setup a unique url to get to your services, in the form of computername.accountname.operaunite.com. Once that is setup and the Unite service is running on the local machine, you can browse to your URL using any browser to access your content (I heard there were some issues with certain browsers, though this will surely be ironed out over time).

The service itself is still pretty buggy. Frankly, that’s to be expected of Alpha software. It crashes on my PC quite regularly, though restarting the service always seems to get it back up and running. The available utilities have some issues too – starting playback of a music file sometimes took a few clicks, for instance. None of these issues would really keep me from using Unite, though. The interface is fairly clean and simple, and it’s filled with Ajax goodness to make the experience more friendly (the music player doesn’t get interrupted, for instance, if you leave the folder you’re playing a song from currently).

The real awesomeness of Opera Unite lies in it’s potential. There are a half-dozen apps available for it today (file sharing, photo sharing, web server, memo board, chatroom, and media player), but there’s also a SDK to help you develop your own apps as well. By the time the service is ready for rollout, there should be some pretty compelling apps available for it. The self-publishing model is still pretty new, so it’s going to be a treat to see what creative developers can accomplish with this new platform.

Progressive CSS Animation Tutorial

I’ve been focusing a lot lately on demonstrating some CSS animation techniques. That’s all fine and well, but there is definitely a need for some instructional material on the web. To that end, check out this CSS animation tutorial that I just finished. It will teach you some techniques that are useful today in a mixed-support world for CSS animations. All the examples covered are progressive animations that require little work on your part, and that also don’t significantly impact user experience if they are unable to view them.

I wrote the demo using straight HTML and jQuery UI instead of the normal blogging platform. To that end, there’s no support for comments on the tutorial so feel free to comment here if you’re interested. Enjoy!

My Bonnaroo 2009 Experience

Bonnaroo 2009

Thursday 6/11

Portugal. The Man
Chairlift

Friday 6/12

(Don Hertzfeldt Retrospective)
Galactic
moe.
Yeah Yeah Yeahs (2 songs)
Grizzly Bear
Al Green
TV on the Radio
Beastie Boys
Phish
Public Enemy
Crystal Castles
Girl Talk

Saturday 6/13

Jimmy Buffett/Ilo and the Coral Reefer All Stars
Bon Iver
of Montreal (2 songs)
Wilco
The Decemberists
Nine Inch Nails
MGMT

Sunday 6/14

Okkervil River (2 songs)
Merle Haggard (3 songs)
Andrew Bird (2 songs)
Snoop Dogg
Band of Horses
Phish

jQuery Ajax Beats ASP.NET Ajax

ASP.NET Ajax is a good technology in theory, but the implementation in practice is anything but smooth. There are many little ‘quirks’ that ASP.NET Ajax does to your page; these quirks almost entirely revolve around the handling of viewstate during ajax calls.

ASP.NET Ajax passes the viewstate to the server and back during things like UpdatePanel updates. This is done to insure that the viewstate is always up to date, even if the page information changes during the Ajax call. Many Ajax calls, however, don’t require any changes to viewstate. Unfortunately, when the viewstate comes back, I’ve found many unpredictable results – things like page titles changing and breaks in back-button functionality in some scenarios. More importantly, these bugs are hard to track down and understand, in my experience. On top of this, viewstate is usually pretty large, which slows down ASP.NET Ajax requests and transfers more data across the wire, increasing bandwidth costs.

What have I chosen to do instead? Through Encosia, I’ve found that it’s fairly trivial to make jQuery Ajax calls into the codebehind, or even to local web services via JSON. These calls are small (they don’t send viewstate), transparent (they don’t change page information on return unless you explicitly ask to), cross-browser compatible, and rock-solid (like everything in jQuery).

Surely there are quite a few circumstances where ASP.NET Ajax beats out jQuery Ajax (for things like datagrid population, for example). From now on, though, I’ve decided that my default stance will be to write my Ajax calls in jQuery unless I can create a compelling case to do so in another technology.