Nov 12

Gmail video lands; What if it was a Gear?

Gears, Google, Tech with tags: 13 Comments »

By blurring the boundary between Ajax and RIA, Google has found a way to grow into the Mesh that Microsoft is close to delivering from IT outward. In many ways, this strategy is supportive of the new Microsoft as much as it is disruptive of the old. Just as Microsoft can’t be stopped from executing on its cloud strategy in the enterprise, neither can Google from its base in the user cloud. Where the two platforms meet in the middle looks a lot like a hybrid of iTunes and Office.

That is from Steve Gillmor as he compares video chat with Silverlite :)

You can look at this as some amazing plan, or maybe a Gmail chat team that thought video would be a natural progression?

One key aspect of the new Gmail chat is mentioned as part of the launch blog post:

We designed this feature using Internet standards such as XMPP, RTP, and H.264, which means that third-party applications and networks can choose to interoperate with Gmail voice and video chat.

Once again, standards lead the way for a Google team. This shows how this can be so much more than just an end user feature.

Let’s do a thought experiment: What if?

  • This was not yet another plugin (a la Lively 3D), but rather just a Gear? Something that could be reused by developers right away so they could add video and audio in a way that reaches many end users, using standards
  • And what if it used the audio and video HTML 5 tags? Chrome could implement them, and Gears could give us a shim to at least give us the APIs, if not more. Of course, other browsers have implementations too!

Google’s “Silverlite” is already here: Gears. If we all kept building on that we could do so much. Add the ability to load and update seperate Gears (modules) so in this case people would have gotten a video/audio module update to their existing plugin.

This is important

Video is huge, and is exploding. It is something that the Open Web doesn’t have a good answer for yet, and we need one. Right now you have to use Flash or Silverlight, and I would prefer more choice ;)

First we need to get players and codecs out there. The video/audio tags are fine, but what can they play? Apps such as Gmail video could deploy that technology. Then the next step is in tooling. How do we plug in to the current video development process? How do we reach the creative types? Without the toolchain, the technology won’t matter.

Can we get from here to there?

Nov 12

OneRiot has entered your Google

Search, Tech with tags: , 11 Comments »

Tobias Peggs told me about the rebranding of Me.dium to OneRiot to show the change in direction from a “social browsing” company to a real-time search solution.

As a little experiment, to coincide with their launch today, I whipped up a little bit of Greasemonkey goodness in the form of OneRiot in your Google.

The premise is simple, and you have probably seen it before. When you do a Google search, this userscript will head over to OneRiot to do the search there. The top result will then pop-in to the results.

I always tend to do something like this when a new search engine comes out. I am not mentally going to switch from using Google, so bring the mountain to Mohamed and plug in the top result to Google itself. This way, if it shows me something truly new (read: not the same as what Google gives me and still useful) then I will maybe pay more attention to it in the future.

Most of the work itself is infrastructure crud to get around loading up jQuery. Oh for a better way to load standard libraries!

// ==UserScript==
// @name          OneRiot in your Google
// @namespace     http://almaer.com/firefox/userscripts/
// @description   Add a riot to your Google
// @include       http://*google.com/search*
// ==/UserScript==
 
(function() {
	// Add jQuery
	var $;
	var query = parseQuery();
	var oneriotURL = 'http://www.oneriot.com/search?q=' + query;
 
	var script = document.createElement('script');
	script.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js';
	script.type = 'text/javascript';
	document.getElementsByTagName('head')[0].appendChild(script);
 
	// Check if jQuery's loaded
	function jQueryCheck() {
		if (typeof unsafeWindow.jQuery == 'undefined') { window.setTimeout(jQueryCheck, 100); }
		else { $ = unsafeWindow.jQuery; jQueryReady(); }
	}
	jQueryCheck();
 
	// The Real Work
	function jQueryReady() {
		GM_xmlhttpRequest({
		    method: 'GET',
		    url: oneriotURL,
		    onload: function(response) { // Get the first result from OneRiot
				var resulttitle = response.responseText.match(/(\<a class="result_title".*?\<\/a\>)/)[0];
				if (resulttitle) {
					var title = $(resulttitle);
					var url = title.attr('href');
					var text = title[0].textContent;
					var result = '<div id="oneriot" style="padding: 2px;"><a href="http://oneriot.com/" title="Visit oneriot.com"><img src="http://almaer.com/dion/images/oneriot_logo.png" border="0" style="margin-right: 4px;"/></a> <a href="' + url + '" title="View the OneRiot result">' + text + '</a> <a href="' + oneriotURL + '" style="color: #3399FF; padding: 0 8px;" title="See more results for this query on the oneriot.com website">more oneriot results</a></div>';
					$('#ssb').after(result); // Add it to the Google DOM at the top
				}
		    }
		});
	}
 
	// Get the Google query from the query string
	function parseQuery() {
		var result = window.location.search.match(/\&q=(.*?)\&/);
		if (result && result.length > 0) {
			return result[1];
		}
	}
 
})();

OneRiot at Google

OneRiot seems to do well for certain queries. This example does a good job at showing it off. In the Obama search, instead of just getting BarackObama.com, it shows recent news. That is why it is a nice complement to traditional search engines.

Kudos to the OneRiot team on the launch!

Nov 11

The death cron; Morbidly thinking about speaking from the dead

Personal, Tech with tags: , , 11 Comments »

death cab border=

I had a strange morbid thought today. In the world of blogging and Twitter and FriendFeed and Facebook, what if you croaked right now. How long would it take for your “followers” and “friends” to wonder what was up?

This lead me to think about the equivalent of the Web 2.0 version of that service where old people push a button to say “yup, still alive” every half day.

I can setup a set of programs that will do spooky things after I die, such as:

  • Email loved ones with some deep thoughts
  • In the future email people to say things like “I know I am gone, but if I was around I would be thinking about your birthday today”
  • Purchase some items from Amazon and send them out to people
  • Send out the “What I really thought” emails
  • Write out a last story in daily Tweets

This flood of programs wants to run daily, but you hold it at bay by clicking on an online button that says “Hold on Frank, still sucking in the air.”

Hmm, messagesfromthedead.com sounds like a winner!

Nov 10

Expectations

Personal, Politics, Tech with tags: 2 Comments »

Expectations

I was thinking about the job of managing expectations. On the technical side it is interesting to see how important that is. Once Google Maps came out, the expectations for a mapping project instantly changed. Being able to move the map around and interact with it directly was huge. Ben and I joke about changes in film and gaming (Pong to WoW) too.

One huge change that I am betting on is input devices. I have said this before, we are stuck in the stone ages right now. We can type, and we can point and poke. Ug. Ug.

Touch screens are giving us more dexterity but what about voice and motion sensing? They are getting there. As we get that technology finally working, it will mean radically changes APIs that we get to work with. This means new opportunities for developers to leapfrog competition.

With Barack Obama having such huge expectations of him, I worry about how it will all fare. On the one side, if he manages to pull us out of this depression (lower case d for now) he will be applauded, but realistically it is about more than him.

What are my expectations, if I can’t purely base on output? I expect him to deliver on his promises. I want more transparent government. I hope that Change.gov is a sign of the future way in which he communicates. Is it in his interest too! He can come out Twittering and blogging about why he thinks a bill is weak and what should really be done. Talking directly to the people he can bypass the reporters and the slants to some extent. People don’t want “politics as usual” so lets see true change.

If we don’t see a difference then it will sour people. Obama is the first politician that I have been excited about. If he doesn’t do his best for the people, but gets conservative to protect himself, then I will be truly saddened and it will be hard to get behind someone in this way. Wow, what a tough gig this guy just got huh?

To lighten it up, check out 50 facts you might now know about Obama. It is interesting that he has experienced some serious drugs. Not only have we moved on to be able to vote for a black man, but we weren’t asking “did you inhale?” but rather more pressing issues.

Nov 09

Partial Text Feeds and the Economy… Again

Tech 1 Comment »

I was just thinking about this issue when I saw the post and cartoon above. I was recently on a plane and going through my feeds (I need something like a plane trip to take the time to go through ALL of them, don’t you?).

I have realized that the feeds that are partial have slowly moved out of my attention zone. Even the great sites that have this tactic end up with me ignoring their great content unless someone really points to them via another mechanism (e.g. FriendFeed / Twitter / Blog).

There is too much good content out there that lets me read it as I want too, so I don’t have time for the content that has any kind of firewall in front of it.

I overhead someone in Coupa Cafe, Palo Alto, mentioning how “we should make our feed partial, add ads, and then we can get through the rough economy”. I sat there with my no-sugar Tiger Spice soy Chai ( heh ) and pondered a world where the majority of my feeds were partial in my reader. I would probably give up my reader at that point and just use social mechanisms to filter for me and call it a day.

This Coupa chap will lose a large percentage of his followers and suddenly those ads will hit a smaller and smaller audience, as that audience moves to other areas to get that content.

Die. Partial. Die. As someone at the Web 2.0 Summit would say “Give users what they want and you will do well.” ;0

Nov 03

Why I am bullish on iPhone Web; Looking at my wifes iPhone

Tech, iPhone 4 Comments »

iPhone Old School

I picked up my wifes iPhone today and wasn’t at all surprised to look at the AppStore icon and see a bazillion updates showing in the badge icon. To explain, I will pick up Emily’s laptop and find Software Update bouncing for its life. “Look at me! Please, it’s been months!” Em doesn’t seem to notice this: “I don’t look down there.” Huh :) If the leaping icon doesn’t do the trick, a badge on an icon that is never touched won’t do the trick.

This is why I am bullish on that Web thing on the phone. Emily is using an old Facebook.app, but imagine if she was going to a Facebook website that had access to APIs for the camera and address book. With these APIs, Joe could build everything that he has done on the native app, yet auto update my wife since this is all just behind a URL!

PhoneGap is there to allow you to take your Web app and throw it in the App Store so people can find it there. You can also access native APIs too through PhoneGap, but hopefully Apple opens up more and more to Mobile Safari itself.

I hope that the AppStore will offer a “keep up to date” option so it can auto download new versions for me. I wish that other products did that too, especially browser nightlies. I want WebKit and Firefox (Minefield) nightlies to keep updating themselves.

The big question: Location API. HTML 5 has it. WebKit is notoriously good for implementing these APIs, but Location is a key feature for apps and the AppStore. Hmm.

Oct 30

Using FriendFeed for it all, broadcasting to Twitter for the users

Tech with tags: , No Comments »

FriendFeed is marching on. I prefer it to Twitter these days, but of course the users are still mainly on Twitter. The best of both worlds for me is to run FriendFeed as my “client” yet have Twitter users happily following and not knowing or caring that, that is the case.

We may have the pieces to actually do this right now:

Posting to Twitter

FriendFeed added support for posting activities to Twitter for you. People immediately worry about spamming Twitter with this stuff, so you should think about that and turn off a bunch of services. I currently use TwitterFeed, which I will turn off if I use this feature (as FriendFeed will handle that as I turn on my blog service).

Seeing your @replies

FriendFeed is one of the few companies who have access to the XMPP firehose. They should be able to grok the replies (e.g. @dalmaer) and merge those into the comment stream.

In the meantime, DeWitt has a great hack:

I created an imaginary friend on FriendFeed and subscribed it to http://search.twitter.com/search.atom?q=%40dewitt

I did this, registering “To Dion” as the friend. It is ugly as it doesn’t merge into your flow, you can’t easily tell who has replied, and it is one big link… but it is good enough.

Friend / Follower Syncing

The people I follow on FriendFeed and Twitter isn’t in sync, and it should be. I haven’t caught up on FriendFeed. The beauty of the imaginary friends feature is that you can add Twitter folks even if they don’t have FriendFeed accounts yet. Ideally, I could tell FriendFeed to do the syncing and followee management for me.

For now though, I could try this sync script and see if it does the trick.

Good times for FriendFeed. I also think that it shows how great their real-time Web experience it is, auto updating in front of my eyes. If they implement these features natively, I will be a total convert.

Oct 29

Microsoft say Game On; Thoughts on PDC

Microsoft, Tech 12 Comments »

Blue Monster

I have had the pleasure to be at PDC this week and Microsoft put on a great show. As they showed their vision of unification around Windows (cloud, Web, PC, mobile) through great developer tools, there was excitement.

Windows Azure looks great. The “on premise” feature looks particularly intriguing. If they can bridge the data center and the cloud, they have something quite compelling. Enterprises are struggling with the cloud in part. What do you put up there? How do you secure it? How do you tie back? Microsoft is going after that problem.

I am curious about the details. Ray talked about how you get to “leverage your skill set”, and showed mappings between the Windows platform and the Azure one (SQL Server – SQL Services). How similar are they? Surely there are limitations when you are in the cloud (App Engine has restrictions on request timeouts, file sizes, threading, and other APIs). Running unmanaged code? Virtualization is good enough that you can just do that these days huh. Impressive. Again, what are the limitations? You can imagine people deploying platforms if this is Open enough. E.g. platforms that are currently in C, or C#, Ruby (IronRuby), Python, (IronPython), …

Have they got SQL Server so it “just scales”? I noticed that the demos that ChrisAnn and Don Box did with SQL services dealt with XML tuples of data when inserting data, and LINQ to get data out. I am excited to hear more of the details.

In fact, I feel that way about a lot of the things that were released. I want to dive in more. Many of the talks stayed very high level indeed. Ray Ozzie was a good speaker, but spent a long time talking about the history of computing to put things in context. I get it, they have to do that for the press etc. They are setting a tone of “this is where we are coming from, this is where we are going.” For developers though, I wish for once someone here, or at JavaOne, or at MAX, (whatever) would stand up and say “Ok, let’s build some amazing things in front of you and show you what we have done with our tools and platforms.”

Don and Chris do that in their talks and people love it. They were on form as always this time around, although I wish that instead of showing AtomPub, they showed us Oslo, M, etc. I know that Douglas talked on that later, but I would have loved to have had that content in the Don/Chris show. I enjoyed it, but when it was done I thought “wait, did I just sit here for an hour watching manual HTTP?” Don’t get me wrong, showing the path from local development, to running on your on premise server, to the cloud is compelling, but I wanted more :)

Game On

Everything that was announced we pretty much knew was happening. From the cloud, to the Web (Silverlight 2 / IE 8), and beyond. But, even though we knew about this, I don’t know if we thought they were this far along. Microsoft is executing. This show set the stage “this is where we are going, and look how far we have come.”

The Office on the Web demo showed that. Works in all browsers, with enhanced Silverlight support. Very nice indeed. What a wake up call to the rest of the Web?

And, what about tools. The WPF version of Visual Studio 10 looked fantastic. Having a plugin model that makes it so easy to interact with the editor looked snazzy and useful indeed. I have long wanted to separate the source code from the visualization of that same code. The source code in the repository can have curly braces on separate lines, but I will see function() {. In my world, comments in the style of “<author>Dion Almaer</author>” will get converted to “Author: Dion Almaer” and made small.

Blue Pill

If you are a Microsoft developer you are probably very happy at Ray Ozzie’s coming out party. Others on the fence may be interested. For those of us who worry about handing Microsoft control of the browser, plugins to other browsers, the cloud, the server model, and more…. I won’t lie to you. I am cautiously observing. Silverlight adoption worries me.

We can’t fight Microsoft with “don’t choose them, remember what they did to you before?” Fear is lame. Instead, this is a wake up call to Adobe, Google, Yahoo!, Amazon, IBM, Sun, [insert other developer / platform players] to get kicking.

We can’t just be Open, we have to be better!

Oct 28

The Ajax Revolution: From UI responsiveness to functionality and beyond

Ajax, Tech 4 Comments »

In recent presentations, Ben and I have been taking a look back on the rise of Ajax (where Ajax == popularity of dhtml :). At its core, I think it all comes down to UI responsiveness.

When you look at the killer apps such as Google Suggest and Maps, they broke through a set of myths on the Web.

Latency is the killer issue on the Web

We are used to autocomplete in fields and forms these days. However, if you think back to when Google Suggest came out, if someone had asked you whether it was a good idea to do a background request on each key press you may think they were insane. The beauty of suggest is that it broke through and gave great performance. You could do this on the Web.

Rich interactions are not possible on the Web

Again, we are used to applications that allow us to interact with data in a better way. With Google Maps, you feel like you are moving around the map. You are interacting closely with the data. Before hand, we were used to a static view that had us clicking up/down/left/right or zooming around. Every click responds with a wait and a repaint of the entire screen.

This seems crazy. No application framework would ever do a refresh like this, and dhtml broke us out of that box.

This is all pretty obvious, especially when you take a look back at the HCI research on how anything that takes more than a second drives your users batty (and gets them out of the zone). Getting down to 0.1 seconds and your users will feel like they are at one with the app :)

The responsiveness that Ajax gave us opened up the Web for truly useful applications that users could live in without getting frustrated. This bridged us from pages to apps.

We continue to see movement here too. The reason that WorkerPool was added to Gears (Web Workers in the standard) was to give developers the ability to send “work” (run code) to a place that isn’t on the UI thread, which is a big no-no for building any kind of responsive application. As we write bigger and bigger Ajax applications, we end up running more code, which competes more with the browser. Having Web Workers in the browsers natively, and available to those that don’t via Gears, allows us to build compelling applications.

Add to this fast JavaScript (SquirrelFish Extreme, TraceMonkey, V8), and we can get to a happy place with respect to performance.

So, if the original Ajax revolution was about UI responsiveness, where do we go from here?

I think that we have a few directions that we need to go in:

Productivity

We need to be more productive. We all feel a lot of pain with Web development, even as we get a lot of benefit from the reach and openness. This is pain is the reason that Ben and I are working under a developer tools umbrella at Mozilla. We want to work with the community to become more productive. It is extremely important to do so.

It shouldn’t be hard to put together the hundreds of applications that the Enterprise and beyond spend too much time and money on every day.

We shouldn’t have to fight the browsers to get things working as much as we do today.

Any ideas on what would help you? We are all ears.

Compelling applications

We have spent a lot of time in the weeds talking about the engine of the car. We jump on a point release of some framework, and argue about the minutia of framework differences.

Maybe it is time to pop our heads up a little and think about how we can build compelling, feature rich applications.

The browser is extending to the desktop more, to give you nice full experiences. The real-time Web is kicking off, and Comet will become a big part of how we develop many applications in the future. It needs to be as natural to us as the simple request/response world that we are used too.

UI latency is only one piece of user experience. There are many others. HTML 5 gives us richer components and semantics to work with. We have been working on different UI paradigms such as the Form History pattern that we have discussed before. Aza Raskin and others have been doing really good work on new paradigms too.

Personally, I think that new input devices are going to create a huge change for us, and the abilities of Web applications. We played with the WiiMote as an input device. We then have multi-touch, which is available on touch pad devices as well as touch screens. Finally! We are moving past the prehistoric inputs where we can point and say “Ug”.

I am incredibly excited about where we are, and where we are going. There is a ton of work to do, but people feel engaged. Let’s “get ‘er done”.

Where do you think we are going?

This presentation goes over some of these points, in more detail:

Oct 27

A new experiment cleaning up house as I move to a new Mac

Apple, Tech No Comments »

I had the same machine for a couple of machines, and with the most recent move to a newer Macbook Pro, I decided to take a leaf out of the smart movers guide. I am sure you have heard of the simple spring cleaning opportunity when you move house. The system is simple. When you get to the new house, keep non essentials in boxes. If six months or a year later you aren’t using items, then you don’t need them and you can go ahead and sell / donate away.

I have a large list of Apple software that I have kept on Tada-list for a long time.

It started as a “what I run” kind of list, and then it morphed a little. There are more than a few applications that are duplicative in functionality, so I often only have one of them installed.

With Leopard, a lot of the applications aren’t needed. Virtue Desktops? Not so much (even though I am still frustrated by Spaces from time to time!)

Anyway, with the new machine, I am not doing what I normally do; go through the list and install the apps that I have on my old machine. Instead, I am installing on a “need to use” basis. After a few weeks I have been surprised at how little I need some of the applications. We will see if that changes when I get back into more serious work :)

Related

I ran into Joe Hewitt at a local coffee shop in Palo Alto (the beauty of living here…. I get to run into people of the caliber of Joe :) and at some point we talked about Textmate, and how it is surprising that we haven’t seen 2.0. I seem to remember thinking that it would launch pretty close to Leopard itself, so I wonder what is happening. It must have some pretty amazing Core Animations in it by now ;)

Michael Cote also just put up some Mac Tips which has some nice applications for you to install and try…. but only if you need to use them ;)