Jan 16

The “convenience fee”, and why I want cheaper Mac products

Apple, Tech 5 Comments »

Nothing makes you curse more than the “convenience fee” that companies like Ticketmaster try to sell you. When I first say that I would be charged more for printing a ticket out compared to mail/will-call I was appalled. The whole point is that I am saving you money guys! No having to pay for call centers. No having to ship things.

Some companies see things backwards and want to squeeze money out of you. I feel this way with Apple sometimes, and agree with a certain Brian on the rentals.

How is it that I pay the same for a rental via iTunes as I would from Blockbuster? Blockbuster has the overhead of the brick and mortar crud (not for long ;). Apple just needs a few servers. Yet, because of the convenience they charge the same and take in all of the profits.

And what about the rest of the Macworld fun?

  • You can’t have a great iPhone year every year, but it is clear that this one wasn’t for me
  • A small laptop with a battery pain in the butt, no ethernet, etc etc. No thanks. My pain point wrt laptops is not to do with size. My batteries are a constant pain in the butt, so I can’t imagine having to take the bugger in a year later to get a replacement, let alone dealing with the flights to europe! I do think that certain people will love the Air, I am just not the target audience. This isn’t a developer machine, and I am not the kind of guy who buys one of each laptop and deals with the sync issues
  • The iPhone update went smoothly for me. I didn’t have any of the update server issues that others had. That being said, although I am very happy to be able to catch up to 1999 and send multiple people SMS messages, the new features are hardly earth shattering. Wobbly icons are cool, but come on :)
  • $20 to add apps that you get on the iPhone, and can get via a jailbreak, for the iPod Touch. Really?

When you get a name for constant innovation, it is tough when you don’t blow peoples minds one year. All I wanted was 3G :)

Jan 15

Gears Future APIs: Services / Daemon API

Gears, Google, JavaScript, Tech, Web Frameworks with tags: 4 Comments »

Daemon

One of the comments on the Notification API was by lunatix:

It would be really useful if we could set a background javascript process (via WorkerPool) that continue to run after browser is closed and which is able to send System Tray notification.

I would definitely like to see an API (or as part of the Notification API, or WorkerPool in general) that allows you to attach some work to a process that can always be running, or be scheduled to run (a la cron).

This can be particularly important with Offline and syncing that comes along with it. Imagine a world where Gmail worked offline. The need for a service that downloads email in the background may not be that important, as people tend to leave a tab with Gmail running in it.

But, if you take Zoho Writer as another example. You may not have Writer open all the time. You open it when you get a new document that you want to work with. Let’s take a look at a scenario:

  • Bob edits a shared document that discusses the travel for the next quarter
  • Bob closes the document and keeps working for the rest of the day
  • Meanwhile, Harry, Linda, and Chou all edit the document
  • Bob goes offline and heads to the airport
  • Bob opens up the document on the plane

Does Bob just have the document with content from his step? If there was a service that was running in the background, it could detect the changes and bring them down. Then Bob would have the latest and greatest up to when he turned off his computer.

The obvious issues

Of course, a key issue here will be making sure that this isn’t abused, and what UI do we give users. I personally never like it when I find services running on my machine when I closed an app. You know the culprits…. Quicktime and the like. I want to be able to know about every service and prune the list, but also not be burdensome for the average Joe. Does this mean that the system tray notification system has a way to see all of the services?

Also, I don’t want some rogue daemon taking up my resources, and of course, it can’t have special access to things such as key logging ;)

You can write Gears too!

A few people have emailed me about potential Gears saying that they wish they could build a new Gear. Remember, Gears is a true open source project, so you CAN write your own Gears. If you want to implement a new API, start out by emailing the group with your proposal and then get to it!

Other Future APIs

Disclaimer: This is me rambling about APIs and tools that I would love to see in Gears, or the Open Web as a whole. Do you have ideas for cool Gears that make the Web better? Let us know!.

Jan 14

Prediction: Google will produce more open source in 2008

Google, Open Source, Tech with tags: 2 Comments »

I personally believe that Googlers will produce more open source in 2008 than prior years, and this post will discuss why. The same reasons apply to many other companies, which leads me to believe that we will see an increase in open source across the board.

Google does a lot of open source

When I am on my travels I get enough questions about Google and open source that has me realize that Google does a bad job in showing what a good open source citizen it really is.

Many people do know about the fantastic programs that Leslie Hawthorn and her team puts on which include: the Summer of Code and the Google Highly Open Participation Contest. This is the tip of the iceberg with respect to what the open source group does though.

As I talk to more and more people at Google, I find out about more and more people like Jeremy Allison, or the Samba team, who gets to spend much of his time hacking on the Samba project. There are Linux kernel hackers, Firefox contributors, and then you get to smaller pieces such as Hibernate Shards and MySQL tools.

If you have a butchers on Google Code itself you will find 135 current projects from Google, and this doesn’t include the magnitudes more that Googlers contribute too. 20% time really helps here of course, and it is a popular choice for engineers to dabble in the open source world one day a week. I can imagine the situation of working on some internal project, potentially something that is hush hush and secret, and having the option of spending some time on something very public indeed would be appealing.

So, we contribute a lot of open source code to various communities, we put out a bunch of our own code, and of course there are a number of high profile projects that have open source components to them: Gears, OpenSocial, and Android.

Erm, so if that is a lot… how come more?

Now I have hopefully shown a glimpse of the top of the iceberg for the amount of open source development that Google does, you may be wondering why I think 2008 will be ever better. Is it a numbers game based on the fact that we are constantly hiring more top notch developers? Well, that will hopefully help.

The core issue is that “doing open source” can mean many things. The code side of it is often the easiest part. Then you have the legal crud. What can be really challenging though is the process, especially when you have legacy code and procedures which everyone but the newest startups have (and the startups will have them soon too, as things change again).

Google is known for its engineering practices, and tools that help make them happen. I think that we do a really good job at providing a process that makes sense when you have as many programmers as we have, but not being heavyweight. A constant tight rope walk for sure.

One of the tools that has been talked about before is Mondrian, a Web based tool written by Guido himself, to help the review process of code. It is the kind of tool and process than if I left Google I would want to replicate, and would miss.

It is well known that Google uses perforce, yet most open source projects are using Subversion, or Git, or [insert your favourite new shiny toy]. This leads you to a problem when you decide to open source some code. How do you manage the fact that your code AND TOOLS are for X, when the open source world wants Y? If you are lucky, you can do a dump and have everyone using the other land. That sounds like the simple solution, but what if that code is being used in other projects within your company? This is where the real world gets complicated.

In many enterprise companies that I have had the pleasure to work with:

It is common for these process issues to be so painful that doing the open source thing isn’t worth it!

A lot of companies are still working out how best to handle these situations. It is easy for a small new company to come along and base its work on open source. You use what the open source world uses, and your life is easier. This shows how it can make sense to go down this path and favour open source software where appropriate. If you think that you may open source some of your code later, or want to integrate with open source, why make it hard for yourself?

One way to help with the friction is to open source more and more of your own code. You quickly find that although you thought you were just open sourcing Foo, you actually need to open source a slew of dependencies, and it would help to open source some of the tools too!

I only just ran across Review Board, which looks a little like Mondrian with support for various VCS. Promising indeed (Django/Python app).

Google is getting better and better and handling these issues, more and more tools and libraries are open, which means the path to open sourcing code in new project gets easier.

This is why I think that 2008 will be a fantastic one for open source at Google, and throughout the development community, as other large companies get better and better at it too.

What do you think? Have you run into these issues?

Poisinous Open Source

Jan 13

It’s a lot of money

Google, Microsoft, Tech No Comments »

Microsoft as a company still posts considerably higher revenue than Google does. Microsoft’s executives last week trumpeted the fact that the company — consisting of everything from the Office productivity suite to the Xbox 360 game console — surpassed $50 billion in annual revenue for the first time in the fiscal year ended June 30.

Two companies. Lots of money.

Jan 10

Gears Future APIs: Notification API

Gears, Google, JavaScript, Tech with tags: , 14 Comments »

Growl

The browser is a fantastic platform to develop applications on. The reach of the Web is unprecedented and the psychology of “installing an app” versus “going to a web page” is huge.

There are still desktop integration features such as desktop shortcuts that link the browser to the underlying host in a nicer way.

One of the missing links is between the browser and the system tray and notification system.

I want to see a Notification API Gear that allows you to tie this together.

Use Cases

Instead of having to install notification agents for applications that you use such as Gmail and Google Calendar, the notification can be built into the applications themselves. You upload a video to YouTube, and it will get back to you when it is done. You choose to “watch” a particular post on the Web? It tells you when there are updates. Google alerts on certain tags do the same.

I find that in my river there are a few occasions where I want to be interrupted (which notifications can do). Depending on your preferences these occasions may be “when my wife emails” or “when someone talks about some cool Ajax thing” or “when someone emails me directly” or “when someone @twitters me”. If I really want to know, I want a notification. If it is slightly less important, I want an email.

In fact, if it is TRULY important, I may even want a text message. This is where configurability comes in. Growl is an event notification for Mac OS X, and it nails all of this. It abstracts the applications from the user. I can go in and change the dials so I get notifications when I want them, how I want them (e.g. in my face, SMS, email), and what they look like (styling). This also includes being able to turn them off.

I want Growl for the Web. Applications can get permission to add events to a notification queue, and I the user can choose how to deal with those notifications.

The API

The API itself should be as simple as possible. This is pretty much a messaging pub/sub system, where the application can publish messages on a queue for its app, with different message types for the type of events.

var notifier = google.gears.factory.create('beta.notifier', '1.0');
 
notifier.notify({
       application: "My App",
       title: 'warning',
       description: 'some text',
       priority: 2,
       sticky: 'True',
       password: 'Really Secure',
});

Growl allows you to have actions in the message itself. That would mean allowing anchor links in the description in the Web world.

There is also the thought that you could also subscribe to various events from other applications, but that can get messy.

System Tray

This notification system could tie into the system tray, or that could be its own API. I worry about the proliferation of tray icons though :)

Beware

The big worry is that people will start spamming the notification system. This is a real concern, and needs to be seriously considered from the beginning. The balance will be in how much we ask users to do, without asking too much so no notifications ever get turned on. With a growl like system it will be easy to turn on and off notifications per application.

What do you think? Is this a useful API?

Other Future APIs

Disclaimer: This is me rambling about APIs and tools that I would love to see in Gears, or the Open Web as a whole. Do you have ideas for cool Gears that make the Web better? Let us know!.

Jan 09

BBC: Let me give you money.

British, TV / Movie, Tech with tags: , , 10 Comments »

BBC iPlayer

I listen to BBC radio all day. It skews me, as I end up knowing about the traffic issues in Guildford but have no idea that 101 is mucked up.

I love that I am able to keep up with radio via the internet, but my blood boils whenever I login to hear:

We are sorry but we are unable to broadcast this as you don’t live in England mate and we don’t have the rights

Or, something like that.

If I was naughty, I could try to get a friend to open up an ssh connection over the pond and try to tunnel through to trick the system, but I would rather be good. I with that I could pay, and see if enough people would feel the same, and then the BBC could get the rights for online broadcasting. Please.

I would also love to pay for BBC TV shows. Let us do micropayments and subscriptions so you can choose exacly what content you want (instead of hundreds of crap cable channels). This will also have the great effect of putting evolution into the system, and we would see survival of the fittest. Only content that people want will be shown.

Erm, wait, but that scares me too. What if the populous wants crap? Oh no.

Jan 09

Accepting the Gears award for “Most Innovative Product” from PCWorld at CES

Gears, Tech with tags: , , , 4 Comments »

Gears Award

I was very fortunate to be the person to accept the award bestowed on the Google Gears team by PCWorld for Most Innovative Product of the Year. It was an honour to get to go to the event to pick it up on behalf of Aaron Boodman, Chris Prince, Othman Laraki, Scott Hess, Mike Tsao, and the entire Gears team.

Also, we would have never gotten this award if it wasn’t for companies like Zoho, Remember The Milk, Salesforce, Oracle, Timepedia, and the others who actually used the platform to extend their applications. Whoever got to decide on who won the awards surely did so by using an application that happened to be powered by Gears, rather than looking through the documentation, or blog posts.

I have to say, I have the tiniest glimpse of what it is like for the actor that wins an award and Kevin Spacey, Robert Dinero, and Client Eastwood were also in the running. Frankly, having the iPhone come in at #2 is a bit of a shocker. I mean, the iPhone is really out there and is pushing a mobile revolution. There were other fantastic products in the top 25, and it was nice to be able to see them all at the event.

The products were very broad. I would walk around and see the odd web site such as Tastebook and Mint, a couple of browsers such as Opera, Maxthon, and some Windows only time and space thingy.

But then there were the guitars, GPS companies, hard drives, batteries, toys, cords, and random car stuff. It was an eclectic bunch to say the least.

The room was full of press, and it again showed me how amazing it was that we got the top spot here. No one knew what Gears really is. “So I download it and it can run applications?” I got to talk to ABC, NBC, CBS, PBS, and other publications and had a fun time talking to people that wanted to see a cute gadget.

But then I got to meet the Editor in Chief of PCWorld, and he got it. He understood that Gears is about the potential to change the way the Web works, to upgrade the Web in place if you will. Gears didn’t win for what came of it in 2007, but what will hopefully happen in 2008. New browsers, improved platforms, a better place to deliver great applications to a growing number of people still jumping onto the net.

Dion with Gears Award

Jan 08

Desktop iPhone Apps with AIR

Adobe, Facebook, Tech with tags: 2 Comments »

If Ryan and I were in marketing then we would be talking about “making your iPhone applications BREAAAAATHE” or something ;)

Ryan has a wrapper that lets you run iPhone applications inside of the AIR container:

This implementation just uses the mx:HTML tag with the location set to http://iphone.facebook.com with some extra code to handle the custom chrome and the option to make it transparent. Ideally I could take all of the source code for the iPhone application and have all of those files locally installed with the application but going through that code was more time than I had. You’ll also notice that it just refreshes the entire page. My plan is to go through the iPhone facebook code more and call the function that loads the feed information and just refresh that. I’d also like to be able to detect when a new feed item comes in and bubble that up so I can show a notification but detecting changes to the DOM isn’t easily done with AIR so I need to check with the engineering team. I’m going to have some followup posts this week discussing little parts of the application and I’ll also post the source code later this week (I just need to clean it up).

This is a natural fit for certain applications such as Facebook. Doesn’t this application now look a little like Adium sitting over there?

This, once again, gets me back to Face IM. Similar form factor, just add a few more abilities than you get with the iPhone client (which is optimized for having a crappy keyboard etc).

Ryan, we should get together and hack on this bad boy sometime!

Jan 08

Rise of the Guitars: Air and Traditional

Tech with tags: , , No Comments »

From walking around CES land, I was surprised to see the number of guitar related gadgets and electronics, obviously thanks to Guitar Hero. I wonder if kids are picking up the real guitar because of the game? If so, then a nice bridge would be the Ediface Digital Guitar Interface, which allows you to play guitar hero from a real guitar. It also comes with its own game that suites a full size guitar better. One the kids get a little bored with the 5 button version, maybe they will progress and keep the game alive with a true axe.

Ediface Guitar Interface

Or, maybe you want to go the other way, and join the most popular booth… the dood playing air guitar hero:

Air Guitar Hero

Now air guitar means something.

What is most bizarre is that both of the corporate websites for these devices have no information on them. Spend all that money to come to CES and now have anything on your site???? Are you kidding me?

Jan 07

The connection between Hope and Web innovation

Gears, Google, Tech No Comments »

There are a couple of pet ideas that I have had with respect to JavaScript and Gears. When you think of Gears as a base platform that can upgrade the Web, you think about the ECMAScript 4 fun in a new way.

A common thought pattern starts with optimism:

*ding* Wow, wouldn’t it be cool if my browser could do X?

or

As a developer, I would love to be able to do Y.

And then you often get to disillusionment:

Bugger, but if IE doesn’t support it, I am screwed.

I think that there is probably a good connection between Hope and Web innovation. I have felt this many times. If I feel like I can do something, I go after it with vigour. On the other hand, if I know that after a ton of work it won’t work for a large number of people, then I am far less likely to take her home.

How does this relate to JavaScript again?

What if JavaScript 2 (ECMAScript 4) comes out at a subset of Web developers are really excited about the new features. They want to get into packaging/namespacing/programming units. They grok optional types and like them. The pythonista in them enjoys the generator-like support. And, I could keep going with the large number of features. After you get over your initial excitement, you think about how a new set of libraries could make life a lot better. Prototype 2 is born that supports JS 2.

And then you start thinking about deployment. Darn it, maybe Microsoft doesn’t support it. Hmm. Of course, this is where the monkey comes in from Mozilla, but I immediately thought that Gears could help here. We could see if a script is asking for JavaScript two, and on demand install Action Monkey or anything else. Maybe together, Gears and the monkey could push out JavaScript 2 in a way that would push Microsoft to implement it themselves at some point (IF they don’t right away!).

What about the script of JavaScript?

I have talked about this a bit before, but I would also love to do smart work with respect to registering libraries enabling sites to not have to re-download and compile them all the darn time. We register Dojo, Prototype, jQuery, YUI, GWT, and [insert your favourite library] in a versioned way, and these versions can even be optimized for a particular browser. Instead of the if (thisbrowser) crud that we still see now and then (instead of the if (FEATURE)) we could have browser specific code, and all of the code can be compiled to be super fast.

When an application loads Dojo v1.0.2, it is swapped in with crazy speed.

If we ever get to this reality, then think about how things change. All of the optimizations and “keep my library to 3kb” arguments change. We always want nice small libraries, but we won’t have to make the compromises that we have had to in the past. We can do more in these libraries.

Gears isn’t the only solution here of course. Browsers can do this too. Ideally, browsers would do it, and Gears would be there to once again mop up for browsers that don’t implement it.

Wot no server?

There is also the server side of the equation. I have long thoughts that:

JavaScript needs a CPAN

It needs to be:

  • Crazy fast
  • CDN (see: crazy fast)
  • Access is given to the projects themselves to manage (not run by one company person)
  • Community driven

We have had JSAN, and other sites out there, but we need a big guy to come along. Yahoo! does it for YUI. AOL does it for Dojo. I want someone to do it for everyone. Of course, I would love Google to be that place, but I don’t care who actually does it. Google already has a bunch of people using Google Code to hotlink to their libraries, as it actually fulfills most of the requirements. There are some issues such as the fact that it only works for open source projects, and how it isn’t explicitly made for this purpose.

With script registration, and a fast distributed server for the script, we have a much better place. Add to this new JIT JavaScript VM’s, and 2008+ looks like a different place.

And there is more…

You can also take the case where Gears swaps in a JS 2 engine and generalize it. What if someone came up with a new CSS engine? Or any other library that makes sense to be cross-browser-platform. Hmm.

Other Future APIs

Disclaimer: This is me rambling about APIs and tools that I would love to see in Gears, or the Open Web as a whole. Do you have ideas for cool Gears that make the Web better? Let us know!.