Nov 24

Internal Affairs for Recruiting; Testing your assumptions and Google Recruiting

Google, Tech with tags: 5 Comments »


Peteris Krumin has another My Job Interview at Google post which is always a sure fire way to drive traffic to your site. People seem to really want to hear about Google interviews for some reason!

Google is a great, big company (the comma is important) and had an amazingly short list of foibles that really irked me during my tenure, and a huge laundry list of items that made me excited to get to work. That being said, I once changed my internal IM status to “Recruiting needs a Code Yellow” instead of latency.

The hiring process drove me batty, and to some extent so did the performance review process too.

So, As I read Peteris’ diary of his interview process I wondered if it would be time for large companies to have an Internal Affairs group to test their assumptions.

They could have current employees be interviewed again by groups that don’t know each other (this is when it matters if you are big). You could have Bob “I’ve been at the company for five years” Hunter come in to interview for a “new job” and see how it pans out. I am guessing that it would be quite enlightening from both sides. I wonder how many people wouldn’t quite make it in, so to say. I am pretty sure that although my one path to Google worked out, there were many folks in the road where I could have had a slightly different interview panel or hiring committee and I wouldn’t have made it (I won’t argue who would have been right ;). could send trained people into interviews to do reports on the companies too. A lot of fun would be had by all. And, maybe some hazing would end?

On another Google recruiting note, the process worked well and Alex Russell is joining the Chrome team. Congrats to both Google and Alex on the move. I can’t wait to see what he comes up with there. Having an Ajax fellow working inside a browser team can only be a good thing for us developers. And, with Aaron, Arv, Dan, and many others… Google has top notch talent. It also means a Dojo fellow joins the existing crew of Brad, Gavin, Abe, and I am sure others.

And then I see Google Layoffs – 10,000 Workers Affected which has already been read into far more than it should be. I actually think it can be good for Google to focus a little and rein in. Instead of layoffs I am sure we will see a bit of a thinning due to attrition and not hiring quite as fast. Laying off the bottom performers isn’t a bad thing though!

This is a fantastic time to hire top talent. Just look. Google got Alex, and probably let go of a few fringe folks (no offense to them) that aren’t engineers. I am excited to start a new group at Mozilla with a great pool of people talking to us. Remember Apple was built in the 70s ;)

Nov 22

Being a “power user” really sucks sometimes as iPhone 2.2 reminds me

Apple, Tech, iPhone 7 Comments »

Being a power user sucks, as you are often in the minority. The marketing folks are drooling over the middle of that bell curve, and you are clustered at one end with a few of your mates.

I got reminded of this again with the iPhone 2.2 update that gave me this:

iPhone Safari

I get it, some people didn’t know that the search icon would do what that huge block on the right hand side now does. Make it like the “normal” browser and maybe they will get it. For me though, the space that they gained with the reload/stop URL bar integration is destroyed by the huge search box which does nothing for me.

If you could change it back, that would be OK. about:config away. But Apple doesn’t do this for us. We live in a Jobsian society where his vision is our vision. One more gripe with the iPhone even with this update…. I keep expecting the team to give us a decent friggin cache. PLEASE let me give the iPhone as much space as it needs to keep my stuff around! A mobile browser that is often on a crap network needs this more than anyone else! Cache more aggressively. Save my JavaScript and CSS! At the very least, don’t let me hit the back button and wait for the entire bugger to be grabbed again for the love of god! Why can’t I about:config and up the caching space and rules :(

I find this common with the Apple tools in general. They often get away with it as the engineers hide things in Apple prefs that we can change. The UNIX sometimes gets a chance to shine through for us there. Developers can sneak in a few more settings that don’t show up in the UI that Mr. J probably looks at with a fine tooth comb.

Argh. So close. Does anyone else feel this way? Maybe it is time to check out Linux? Nah, I am not that crazy ;)

Nov 17

The Flash Platform: How Adobe could join the Open Web to take on…

Adobe, Tech 7 Comments »

With Adobe MAX kicking off today, on the back of PDC, we get side by side comparisons.

We have heard talk of the new positioning of the Flash platform for Flash, AIR, and Flex. These have always been in the platform business unit, so nothing is really new there.

Adobe (via Macromedia) has traditionally been a Web designer company, but developers haven’t jumped in to the same degree (note: not to say they haven’t been wildly successful!). I think that the perception is something like this:

Flash Perception

With Silverlight making a huge charge I worry about a world where you have “Best viewed in Silverlight and IE” (which in fact is “only viewed in…”) and people often ask: “But isn’t Flash just as bad?”

Adobe has an opportunity here. They can move to the right and Flash could become strongly in the Open Web camp. Then we would all be stronger as we come up against Silverlight :)

The conversation tends to end up with opensourcing Flash, which I think will happen at some point through necessity, and the sooner the better (for everyones sake). Flex has a loyal base and has some open source help, but hasn’t gotten the love that it could get because it sits on top of something that isn’t open source itself. It is hard to get excited about an open source tech that sits on top of the same vendors proprietary platform!

There is much more that Adobe can do other than open sourcing Flash though. There is a chance to offer tools to help the Open Web. What if Flex could render to the HTML platform?

I hope to see a glimmer of this vision in the keynote and more at MAX. I have a huge respect for everyone I have worked with at Adobe, and I hope that the Open camp wins through, although it will take time.

I really hope that the real Flash Catalyst will be helping the Open Web developers too :)

Nov 17

View Source Improving: From Linkification to Discovery

Tech, Web Browsing 5 Comments »

Linkified View Source

Curtis Bartley fixed a Firefox bug which has now enabled live links within view source. As you can see above, links are now underlined and you can navigate away through the source. Very nice indeed, thanks Curtis!

Ben and I were talking about this, as well as bringing other features into the world of view source. Some small things such as popping up the actual color when you see a #xxxxxx, or a thumbnail on an img or url().

Of course, this normally leads to Firebug-land. In fact, after talking to some Mozillans, I am excited about improving discoverability.

For example, would it be cool to:

a) Show a top info drop down saying “You seem to be interested in the underpinnings of the Web and development. If so, __check out Firebug__” when a user runs their third View Source. Ditto for other develop-y actions (grabbing the Web Developer toolbar etc).

b) Allowing sites to link to their add-ons. This one should be cross browser. If you are a company such as LinkedIn, and you have developed a cool add-on or extension for your site, how are users to know? They may no be hanging on on AMO looking for one :)

You can imagine something like:

<link rel='browser-addon' browser='firefox' href='' type='application/addon' />

to point to a Firefox add-on in this case. You could also follow the same pattern to get info on site specific browser info, Greasemonkey scripts, or specific apps (e.g. AIR apps).

<link rel='browser-userscript' title='Cool Video Script' href='' />
<link rel='browser-app' title='eBay Air' href='' />

What do you think?

Nov 16

iPhone Web applications and the Record API

Mobile, Tech, Web Browsing, iPhone with tags: 3 Comments »

As we watch and wait for the update to the Google Mobile iPhone application we are once again aware of the gatekeeper situation on that platform.

Google doesn’t know when it will launch, Apple does. Google had great PR into the launch (which they were told would be Friday… at least at some point). I had the pleasure to see the voice feature and was actually kinda gobsmacked with it when I saw it at work. It isn’t like we haven’t seen voice recognition apps for years. However, this one seemed to actually work, and not just for simple words but for complex queries. Random place names were picked up. Wow. Maybe the work behind GOOG-411 is paying off :)

But, the iPhone app isn’t out there, yet. If this was a Web application, the Google engineers could cut a release and be on their way. But, how would you read in the audio? You could go for Flash or a custom plugin, but it reminded me of the audio API support and Gears. When you think Audio API you think of the HTML 5 audio tag and the API that goes with it… specifically the “play” support. What interested me from the first design doc in Gears was the other side of things and the support for “record”:

// an object of this class can be got from 
// google.gears.factory.create('beta.audiorecorder')
AudioRecorder class
  // ---- error state ----
  readonly attribute AudioRecorderError error;
  // ---- recording state ----
  // says whether recorder is currently recording or not
  readonly attribute boolean recording;
  // says whether recorder is paused or not
  readonly attribute boolean paused;
  // the amount of sound detected by the microphone
  // 0 - no sound detected to 100 - maximum sound detected
  readonly attribute int activityLevel;
  // specifies the length (in milli seconds) of the audio recorded
  readonly attribute float duration;
  // number of channels, currently can be 1 (mono) or 2 (stereo)
           attribute int numberOfChannels;
  // sample rate for the recording
           attribute float sampleRate;
  // sample type for the recording, possible values need to be defined
  // signed 16 bit little endian linear PCM
  const unsigned short S16_LE = 0;
           attribute short sampleFormat;
  // audio file type (container and codec), possible values need to be defined
           attribute string type; 
  void record();
  void pause();
  void unpause();
  void stop();
  // ---- controls ----
  // 0.0 - silent to 1.0 - loudest
           attribute float volume;
           attribute boolean muted;
  // the amount of sound required to activate the microphone
  // 0 - capture even minutest sound to 100 - capture only loudest sound
           attribute int silenceLevel;
  // ---- cue ranges ----
  // provides ability to set callbacks at specific points in playback time.
  // similar to API in Audio class. Look at HTML5 spec for explanation.
  void addCueRange(in DOMString className, in float start, in float end, 
                  in boolean pauseOnExit,
                  in VoidCallback enterCallback, in VoidCallback exitCallback);
  void removeCueRanges(in DOMString className);
  // ---- access blob ----
  // returns handle to the blob object containing the audio data
  Blob getBlob();

I can’t wait to get full audio support available in the Open Web itself. Yet another barrier knocked down. Of course, the publicity around the Google Mobile app is nothing but good in many ways :)

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
// @description   Add a riot to your Google
// @include       http://**
// ==/UserScript==
(function() {
	// Add jQuery
	var $;
	var query = parseQuery();
	var oneriotURL = '' + query;
	var script = document.createElement('script');
	script.src = '';
	script.type = 'text/javascript';
	// Check if jQuery's loaded
	function jQueryCheck() {
		if (typeof unsafeWindow.jQuery == 'undefined') { window.setTimeout(jQueryCheck, 100); }
		else { $ = unsafeWindow.jQuery; jQueryReady(); }
	// The Real Work
	function jQueryReady() {
		    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="" title="Visit"><img src="" 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 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 =\&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, 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, sounds like a winner!

Nov 10


Personal, Politics, Tech with tags: 2 Comments »


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 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