Apr 08

Google App Engine and The Java Web; The Wrong Java?

Ajax, Google, HTML, JavaScript 6 Comments »

I had the pleasure of being at the Google Campfire event that launched the worst kept secret, App Engine supports Java and Google has a preview for you to check out if you signup in time.

Java is a huge ecosystem, which is a big win, but what interested me was the nuance. The Secure Data Connector feature that gives us a glimpse of “on premise” type functionality (that Microsoft is touting with Azure) is a big one, and something that enterprises need.

The GWT pitch and the Google plugin for Eclipse is another interesting one. I am always so incredibly torn here. GWT is fantastic technology. Because of the way it works, it gets to do things that pure JavaScript libraries would love to be able to do but can’t. The team is great, and the hard core tech is incredibly impressive. I understand why people use it.

My personal issue is that it feels so funny to see the two messages from Google.

Now, these aren’t mutually exclusive of course. GWT can wrap all of the HTML 5 stuff and both can be happy. But it just feels weird to me. The idea that JavaScript is the assembler of the Web, when it is such a high level language is hard to wrap my mind around. It can be moulded to do so much more than Java can with its static nature (which has downsides too of course!)

Another thing. Writing your applications using Java in this world is about the source code and the language but not about the VM. For me this is hard to wrap my head around too. I get to use a language I *personally* don’t like as much (Java the language) and have it run on a runtime that isn’t as good as the Java VM. Hmm. And, since there isn’t the VM there (on the client, there is with App Engine!), I don’t get the pleasure of writing in any of the very interesting languages available on the JVM (Scala, Clojure, JRuby, Groovy, etc). They have picked the wrong Java for my taste!

Now, Paul Hammant has a very detailed post about building a rich Ruby application on top of AppEngine4J. He flips from a jQuery view to a Ruby client using Swiby to a Ruby Shoes app and beyond. Then, at the end, he says something very interesting:

If Google made changes to GWT to make it a viable thick/desktop/offline technology then AppEngine might shift up a gear with online/offline apps.

Since you are writing Java code, why not ship down a jar file for browsers that support Java (still a fair few) and run the application natively within the browser? Kinda bizarre, but imagine if Gears had been done in Java, and people could add functionality easily that way (this is where Yahoo! BrowserPlus is interesting… how you can write services in Ruby and the like). And now you are sending down a jar, you could write the applications using any JVM language you want. Huh. That would be an interesting direction.

Who knows where this ends. When you get practical though, Google have delivered a nice experience for people that like Java, and that is a large group still.

I am still in the camp of DSLs and lightweight and all that jazz, and agree that one great thing about the Web is that some people can come in and make a change here and there at a very high level and make something their own.

Fun times!

Feb 05

Gmail Multi Pane changes workflow

Google, Tech with tags: 14 Comments »


The new multipane view for Gmail by Vivi will change my workflow for the better. I have placed views to the right of my inbox that show me:

  • My starred items (is:starred)
  • Emails sent to me (to:me)
  • Notifications. This is a big one. These items are things that I kinda want to see fly by but don’t care too much about. In the past they would clutter my inbox as I didn’t want to “skip inbox” and not see them (I never pro actively check out labels). Now that I can have the list scanning by, I CAN change my filter to skip the Inbox which will keep it cleaner!
  • Skipped content. I have a bunch of mailing lists that I tell to skip the Inbox. The end result is that I rarely see it, so it is really quite silly. Now though, I can have a small window into that world.

Very cool indeed. There are pain points though. If you are not plugged into a nice 30″ monitor, your real estate gets cramped fast. You can choose to put items on top, bottom, or right, but right is the only option that makes sense to me.

I want to be able to have fine grained control here. Gimme a splitter so I can choose how much space to give. Let me put some on the right, some on top, some on the bottom. Let me show and hide items so I can shoot open my inbox to be full screen when I need too.

Selecting items on the other panes is strained. You don’t have checkboxes and the arrow keys to help you over there. I wish that I could click on a space on the very left and have the “>” item show up there so I can move around and select things. I hate the mouse.

I am curious to see how I like this, and how it changes me Gmail usage. Do you like it?

Feb 04

Google Latitude; Get your explaining ready

Comic, Google, Tech 3 Comments »


Google Latitude is cool indeed, and will have folks from Loopt and beyond watching (see Dodgeball didn’t die, it’s just slowly becoming a feature of Maps!).

Even with all of the privacy controls, you KNOW that there are going to be fun cock ups in the future, just like we see on Google Maps Street View. It just has to happen. But, it’s worth it :)

Shame the iPhone version didn’t come out on day one, and the Palm Pre version will be cool :)

Jan 22

The genius behind the Google 20% time; It isn’t the time

Google, Tech 5 Comments »


Paul Buchheit has a really nice post on the power of code over talk and has one item that resonated with me:

This is where Google’s “20% time” comes in — if you want innovation, it’s critical that people are able to work on ideas that are unapproved and generally thought to be stupid. The real value of “20%” is not the time, but rather the “license” it gives to work on things that “aren’t important”. (perhaps I should do a post on “20% time” at some point…)

That is exactly how I felt about 20% time. It wasn’t about the time. In fact, I didn’t actually know that many people who took the time! The key was the following effect:

  • In order for 20% time to work, anyone must be able to see what is out there
  • In fact, if you want to get some people working “for free” you need to both advertise your project, and write it in such a way that it is easy to get ramped up and productive (end result: better code)

The end result is the culture HAS to be kept very open. The ability to see the projects that are worked on, check out the code, see presentations and design docs, is a key reason why Google does so well at engineering in my opinion.

Compare this to companies such as Apple where you don’t know what the chap sitting on the other side of the cube is doing. Therefore, even if you have some amazing wisdom that could be game changing for his project, it will never happen.

20% time means that sparks of genius can happen. If you copy anything about it, ignore the “time” part, and go with the open culture part.

Whenever I saw projects that were secret within Google it irked me. It stopped this from happening. It was as though that project was going walkabout instead of joining the party.

Dec 22

Using the crowd to tell us about browser responsiveness

Google, Mozila, Tech 12 Comments »


A lot of people are talking about the interview with John Lilly that discusses the relationship between Mozilla and Google.

People like to paint think black and white. Either Mozilla is Google’s poodle (Mozilla is to Google as Tony Blair was to George Bush) or there is a falling out and they hate each other.

Of course, the answer is grey as John points out. From my standpoint, focusing on the Open Web, I see more areas to collaborate on than to fight over. When I was at Google I knew that the Open Web was very important to the long term future. Now I am at Mozilla, the same is true. At the micro level there will be differences, but at the macro-level there is alignment.

Switching gears a little, I have had some folks talk to me about responsiveness issues with Firefox 3. I have had a fantastic experience, and currently I run Mozilla nightlies / Minefield / Shiretoka (3.1.*) and WebKit nightlies side by side. I am very happy with the shape that Minefield is in.

Of course, the issue with the extension mechanism with Firefox is that you get a window to the entire world (which has also been a reason that lead to amazing add-ons). Since this is the case a bad add-on can do a lot.

Chrome does a good job showing you basic info about a tab (memory etc). What if we did that and more for add-ons. Give me top for the browser.

Now, this is a lot of engineering away, so can we use the crowd to help out?

What if we created an add-on that would track responsiveness information and send it back (anonymously) to the cloud (say, to Weave). We could use math to work out probable culprits and could even ship that information back to the people using the add-on. Thus, you would then find out that FooAddOn seems to be a culprit that slows down the browser. Maybe it could be called Vacinate-addon.

What do you think?

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 ;).

InternalAffairsRecruiting.com 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 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?

Oct 13

Joining Mozilla to create new developer tools for the Web; Hoping to create a new chapter in the book of Mozilla

Google, Mozila, Tech 35 Comments »

I just announced that Ben and I are joining Mozilla. Alongside Ben, I will be leading a brand spanking new developer tools group.

To say that I am excited is a huge understatement. Ben and I have been talking about developer tools from the first day that we met on the No Fluff tour. For a very brief period I consulted together with him, and got to start on a vision for a productive Java stack. When consulting, I always saw huge productivity problems, and wanted to think of ways to solve them. Tools are one way to go, and the developer tools group at Mozilla is going to be different. We aren’t narrowly going to look at a way to build Eclipse plugins for example. Rather, we want to take a step back and see how we can help Web developers build compelling software with great user experiences in a productive way. We don’t want to think “we need VB on the Web.” We want something more.

I said a lot of this in the announcement post:

Mozilla is placing a big bet, not only on us, but in the developer tools space.

Why are we doing this? Ben and I are passionate about a couple of things: compelling software and developers. In various roles in the past, we have built tools that attempt to make developers productive. We are huge advocates for the Open Web, yet we feel that tools are lacking on our collective platform. We want to help make a difference.

As we ramp up this new group, we will be looking at the problem and seeing where it makes sense to step in. We are going to be experimenting, and thinking about how to make developers lives better in different ways, so we aren’t expecting to see traditional tools come out of this group. Also, we don’t want to do this alone. We want to involve the entire community which is one reason that we are so excited to kick off this work at Mozilla. We believe that we have a unique opportunity to put developers first. We can build these tools in the open, with total transparency; the Mozilla way.

We respect the work being done by other vendors, and very much want to work together. We can’t wait to reach out early-on in the process, involving companies that believe in the Open Web like we do. Together we can drastically improve productivity, allowing developers to build compelling user experiences.

We are just getting started. As soon as we come up with some ideas, we will be sharing then with you and asking for community participation in various forms. You, the Ajaxian community, have been phenomenal over the years, and we can’t wait to do more together.

We also included a personal message:

There are a lot of personal issues here too. I strongly feel that my best work has been done when working with Ben. He has been an inspiration, as well as a great friend, and we have long wanted to work together. It is nuts that our paths haven’t brought us together in a full time capacity in the past. I can’t wait to get started with him now. I learnt from my Dad that you should have fun at work. Part of that is being around people you truly like, working on something you feel is important, and being able to excel. I think that I will get an abundance of that.

I am also very proud to be join Mozilla, the non-profit Foundation stands for what I believe in. Being someone who thrives on Open and transparent, how great and freeing will it be to develop all of this in the Open, being directly part of the community. At any company there are things that you strategically can and can’t talk about. At Mozilla on the other hand, everything is out there for all to see. That fits me to a tee! I have also long admired the talent that lives at the company and I look forward to working together.

What about Google though? Some people will think I am crazy for leaving the fastest growing company in history! :)

I have been running an Open Web advocacy group, and Google is definitely on the right track. You could argue that it is easy for it to be, since it is dependent on an Open Web. Also, it doesn’t need to come up with a business model. That is all true, but it is still pretty amazing to see exactly how much engineering is given away, or I should say shared with the community, through Open Source and APIs.

Being on the inside you get to really see what the company is all about. People have their views on Google, and any large company. Some talk of Big Brother and the like. Of course, the reality is that a company isn’t one being. It is a large group of people with varied ideas. These employees really hold the company to a high standard, as I have talked about before. I will continue to hold Google to those standards from the outside. How many companies would make a stand on Proposition 8? Google is special.

In the time that I have worked there, it sure has changed as it has grown too. How can you grow that fast and not have big changes? I have moved offices 9 times for example :) There are some things that have irritated me, and that I have wanted to change. The hiring process is one of them! However, recently, I found peace with a lot of the issues. I realized that without them, Google wouldn’t be Google. The last thing it needs to become is “just another company.” I hope it continues being as different as it can as it scales and brings in more and more outside forces.

I have to laugh when people talk about its future. We just saw the 10 year old birthday of the place, and it has only just begun. You can talk about advertising being a one trick pony, but the scope of advertising is also very young indeed. Just watch Minority Report again, but then think about how it could be done in a useful way.

Then think about the server side processing power that the company has. A handful of companies have that much processing ability which will enable solutions to problems that only they can do a good job coming up with. It is tough for a startup to come along and tackle some of these issues.

As I experienced my last week at Google, and had the tough job of saying good bye to the amazing group of people, I had a thought. It felt like I was leaving one premier league football team for another, and I knew that I would get to play with a bunch of the old team mates when the national games happened.

This is a new world. Google is of the Open Web, just as Mozilla is (and many others of course). This means that I really WILL get to work with old friends there. When in history has that been the case? If you went from factory X to factory Y, that was it. “See ya at the pub lads” was as far as you got.

The notion of company has drastically changed. The people who pay the bills may not be the people you work with all the time. I bet that Ian Hickson works with folks from Apple, Mozilla, and Opera just as much as Google counterparts! The goals that Mozilla and Google have are so aligned, that I think we will naturally continue to work together.

Finally, I am looking forward to a little sabbatical. Whenever I take a new job I am so excited that I jump right in. Then you look back and think “why didn’t I take a bit of time off then?”

This time I hope to help Obama a little on the final stretch, get some personal issues cleaned up, and in general take some time to change my lifestyle.

If you have pain points in development that you wish someone helped you with, please let us know!

Sep 30

Searching for Ajax in 2001 on Google

Google, Tech 5 Comments »

Ajax search for Google at 10

When Dylan told me about the idea to resurrect an old index as part of the 10 year old birthday festivities, I thought it was very cool indeed.

They found one, and you can search on it here. Vanity searches are fun, and Ajax returns very different results :)

Aug 22

Where are you? Using the new Ajax ClientLocation API

Ajax, Gears, Google, Mobile, Tech with tags: , 22 Comments »

We just announced two new ways to get location info from a browser client.

The Gears GeoLocation API is very detailed. It is able to use GPS, cell towers, WiFi, and ip addresses to work out the location, and you get an “accuracy” parameter to see what was available. As well as getting a position, you can watch a position so you are updated when a change happens. This is perfect for mobile devices that have Gears installed, and since the community is working on the W3C Geolocation spec it should be in many more places soon.

To go with the Gears API, we also have an API that goes along with the AJAX APIs, called ClientLocation.

This is an ip based geocoder that we have made available, and is very simple.

I put together a trivial example called Where Are You? that ties together this API with the Maps API:

You get access to the data from google.loader.ClientLocation, which is null if it can’t be calculated.

Here is a bit of JavaScript that ties it together:

google.load("maps", "2.x");
google.setOnLoadCallback(function() {
    if (google.loader.ClientLocation) {
        var cl = google.loader.ClientLocation;
        var location = [cl.address.city, cl.address.region, cl.address.country].join(', ');
        createMap(cl.latitude, cl.longitude, location);
    } else {
        document.getElementById('cantfindyou').innerHTML = "Crap, I don't know. Good hiding!";
function createMap(lat, lng, location) {
    var mapElement = document.getElementById("map");
    mapElement.style.display = 'block';
    var map = new google.maps.Map2(mapElement);
    map.addControl(new GLargeMapControl());
    map.addControl(new GMapTypeControl());
    map.setCenter(new google.maps.LatLng(lat, lng), 13);
    map.openInfoWindow(map.getCenter(), document.createTextNode(location));