Oct 19

Open Web Apps: The Vapour infrastucture becoming real

Mozila, Open Source, Tech, Web Browsing with tags: , No Comments »

I mentioned Vapour, the Mozilla Open Web App Store. I didn’t know that it wasn’t released yet (even though the code was out there).

Well, now it has been released with the post on an Open Web App Ecosystem that has a prototype and technical documentation with it.

This is a huge deal, and I am jazzed that Mozilla is getting into the game here. The Web needs to give developers as many opportunities to monetize as possible, and needs to help consumers find the best possible content.

First we have the philosophy on what an Open Web App even is:

  • Are built using HTML, CSS and JavaScript.
  • Can be “installed” to a dashboard within your mobile or desktop Web browser, or to your native OS desktop or mobile home screen.
  • Work in all modern Web browsers, while enabling each browser to compete on app presentation, organization and management user interfaces.
  • Support paid apps by means of an authorization model that uses existing identity systems like OpenID.
  • Support portable purchases: An app purchased for one browser works in other browsers, and across multiple desktop and mobile platforms without repurchase.
  • Can request access to one or more advanced and/or privacy-sensitive capabilities that they would like access to (like geolocation) which the system will mediate, giving the user the ability to opt-in to them if desired.
  • Can be distributed by developers directly to users without any gatekeeper, and distributed through multiple stores, allowing stores to compete on customer service, price, policies, app discoverability, ratings, reviews and other attributes.
  • Can receive notifications from the cloud.
  • Support deep search across apps: Apps can implement an interface that enables the app container (generally the Web browser) to provide the user with a cross-app search experience that links deeply into any app that can satisfy the search.

There are some interesting elements in there, such as calling out notification support as a first class required feature.

Then we get to the brass tacks. The tech behind this. I quickly peaked at the manifest and was happy to see that it looks very similar to Chrome (and the webOS appinfo.json). I would love to see us all get in a room and try to come up with some subset of JSON that we can agree on.

I also enjoyed seeing:

  • Permissions: The thought around permissions and what it means to be an app.
  • Verification: How do we actually make things like “buy on Chrome, use on Firefox” working? How do we allow distributed systems for payment and all of the services that tend to be silo’d right no?
  • Cross app integration: The Web is great at mashups, and we should lose that in apps

Great to see the word now fully out, and now we have the concept we can join Mozilla in helping to define how this all works, and how it can be useful. It is so very hard to compete with a unified system, and to make it happen takes real work and collaboration. What do you think?

Sep 08

Revisiting why the Open Web matters; Gratuitous technology politics analogy

Tech with tags: 3 Comments »

Communist Party

I have been thinking more about the Open Web recently, and decided that it may be time to go back to first principles and work out why I am such an advocate for it. The Open Web has plenty of flaws. I wish it was more productive, more seemless, and more beautiful :)

This came about as I pondered the same thing for feeling an association to a political party. Why do people associate themselves as Democrats, Republicans, a member of a smaller party, or just independent? How often do you join a team and just stick with it? It feels like there are a few types of people, including (sorry for a football analogy!):

  • At birth: I was born in Tottenham, so I will be a Spurs fan for life
  • Fair weather: I never liked Chelsea particularly, but after that Russian guy got involved I go to games and cheer them on
  • First principles: I like teams who play attacking football. I used to hate “boring boring Arsenal” but after that French bloke go involved, I have changed my mind.

Things change. The party of Honest Abe kicked into gear with the “core values” revolving around abolishing slavery, rather than all of the conservative values that the party espouses today.

Of course, within a party there are many factions. The Neo Cons and the traditional fiscally conservatives may share a party, yet be at odds on various decisions. The exact same goes for the Democrats and their beliefs.

Because of this, I am trying to regularly take a step back and match my belief system to the current politics of the day. Often parties use deep wounds and values to try to tie people together, but in other times we see the need to be reborn. Tony Blair famously did this recently in the UK by creating the “New Labour” brand. He ended up doing what Neil Kinnock never could, and becoming prime minister.

How does this all fit into software?

It is easy to get sucked into the same trap. “I believe in the Open Web!” Things change, so you can challenge yourself on why that matters to you.

As I look into why I care so much for the Open Web, a few core thoughts come out.

Power will lead to bad things

If I look back at the recent history of software and platforms, I come to the conclusion that at various points on the road the interests of developers and vendors align for awhile. Ben and I have been talking about this. For example, Microsoft nails the productivity of Visual Basic, and developers take that gift and run with it. But, over time, developers get frustrated and some of them feel like Microsoft uses their power to do bad things. Many lose trust and look elsewhere. Others don’t care and keep listening.

When the Java community came to the realization that Applets weren’t the killer app, but rather the JVMs, the “better C++” for the time, and the write once, run anywhere promise took hold quickly. Despite Sun, the Java developer community is still strong to this day. The problem though, is that at some point the vendors got too involved in a way that created EJB. Forget solving developers problems, it is time to argue over what to standardize, where the game is having your approach be the standard. IBM, Oracle, Sun, and many others fought about EJB and thus we ended up with the monstrosity that would create fortunes for consultants. Once the success of Java kicked in, everyone jumped on how to make money for it. Sometimes the companies that innovated were able to both make money for themselves, and help developers. Other times, not so much.

The power of the Open Web is in the fact that no one company controls it. When the interest of developers and The Uber Company aren’t aligned, developers are no longer screwed. They have choice.

This choice can come at a cost though.

Mussolini may be a dictator, but he made the trains run on time!

There is a notion that the less voices that we have, the faster we can move. A dictator that owns multiple sides, or the entire stack, can make a more productive, technically superior solution. In some ways this makes sense of course, but remember that Mussolini set the trains perception by changing the clocks. It doesn’t have to be this way.

One key is to keeping the democratic process moving appropriately fast (but not too fast).

I have talked about the Fly wheel approach in the past, and I think that this is a key issue for a healthy democracy, and a healthy Open Web.

There are reasons why Winston Churchil said:

Democracy is the worst form of government except for all those others

On the bad side, you get the issue of it never being able to become pure (just the same as communism). We are dealing with people. Once people get in power they have reasons to tweak the system in their favour. Obvious examples exist such as redrawing the congressional boundaries to do what you can to keep your party in power.

In technology you get the same thing. On the Open Web for example, we only have a few viable browsers (like the few number of viable parties issue). This gives huge power to these browser vendors, and it can break the fly wheel. Browsers have barely had a chance to innovate in the last decade. Imagine using a cell phone from 10 years back? It is crazy! The silence in the chasm is frustrating as hell. Even when the browsers change, we still have the lead weight of the users who don’t update. We need to solve that problem.

Microsoft got such a huge leader in the browser war, that they turned off. This cut off the circle of healthy Web life:

  • Vendor creates technology
  • Developer uses technology
  • Developer pushes boundary of technology
  • Vendor sees what is being done, and works on newer better technology

It turned out that developers have really kicked this into live again via the Ajax revolution. With poor dhtml support, many developers moved from the client side of Web browsing, and ran screaming from dealing with Netscape layers, and IE equivalents (IE was quickly better in fact). They made their home on the server for the coming years, spending time on Web frameworks in every language camp out there. We went from CGI to NS/ISAPI, to mod_*/Servlets/PHP, to Rails/Django/and more.

It took the joining of Mozilla implementing XMLHttpRequest, and visible applications such as Google Maps and Gmail (among others) to wake up the developers to the wasted CPUs and functionality available in the browser. Only brave folks such as Dean Edwards, Alex Russell, Erik Arvidsson, Emil Eklund, Dan Pupius, Aaron Boodman, Scott Isaacs carried the flame and pushed during the lean years.

With developers back in the game, thanks to Ajax, the browser vendors had the push they needed to really kick into gear again. Richer Web applications required better JavaScript and APIs. If a browser got really good at powering these rich applications they could set themselves apart.

This wasn’t enough though. Web developers were frustrated. We had teams at Google that mirrored many others. They wanted to add more functionality to their applications, and they needed a vector to make that happen. This is how Gears was born, and I bet the case was similar for what became the Yahoo! BrowserPlus team (am I right Lloyd? :).

Now that we are back in sync, and the flywheel has been turned on again, my thoughts are on how to keep this effect going. How can we put developers first and make sure that the cycle continues and doesn’t get derailed? We need to balance the power and constantly be watching it. No one company can get to a point when the power can corrupt. This is subtle, as it isn’t just watching out for the Sheriff of Nottingham and seeing how he is taking all of the money. These things often happen by mistake. You can easily think that you are doing a “good thing for the community” and yet you are creating a very unlevel playing field. One simple example that shows this is if we put CSS and JS from Google properties directly into Google Chrome. We could argue that this would be good for users as it would make the experience faster. How harmless is that? I believe that it would destroy the level playing field.

This isn’t to say that you can’t innovate, far from it. We need to be very clear that we require innovation. We just need a path for taking the evolution and moving it into the standards. In the above example, we could create a system for richer caching of resources. We could implement the hashing work that Aza Raskin and Douglas Crockford talked about. Good work will stick and will become part of the Open Web naturally. This is the beauty of the Open Web. Someone can come up with a piece of technology and others can share and use it. An independent developer could think up OAuth and make it happen. If it is worthy, big companies can come along and implement it too, and we can standardize. It doesn’t have to come FROM the huge companies first though. Think about how rare that is.

This is why I come full circle to realize that the Open Web is important. We all need to do our best to make sure that this deeply evolving system doesn’t get cancer. We need the bursts of innovation to kick out new DNA that allows us to try experiments.

With all of the work being done right now, it feels like the end of the Dark Ages. I can’t wait for the next chapter, can you? What have I missed?

Jul 28

A second look at Dare on the OWF

Google, Tech with tags: , 1 Comment »

Dare Obsasanjo took some of my words among many others when he discussed his thoughts on the Open Web Foundation.

When I take a look at his post, I see two things:

Is using a question a way to be more passive?

Dare has used a technique that I have most recently seen in the political scene. He has disparaging words on the OWF and motives, then talks about Google participation using the question technique:

Why would Google decide to sponsor a separate standards organization that competes with the IETF that has less inclusive processes than the IETF, no clear idea of how corporate sponsorship will work and a yet to be determined IPR policy?

There are several Googlers showing up on the list and participating. This isn’t surprising since many Googlers care about the Open Web and find it a good home for them. Also note that there are plenty of contributors from Yahoo!, Facebook, Sun, IBM, various open source folks, and even Microsoft itself!

One of the values of the OWF is that it is individual based and not company, yet Dare takes the fact that some Googlers like myself are involved and claims that we speak for Google in a certain way.

What about the IETF/insert your favourite group

Dare talks about the IETF, a standards org that many of the folks participating in the OWF admire and participate in! There are plenty of groups out there that have attributes that are fantastic. The IETF is particularly light weight, and there is much to learn there too.

However, as others brought up, why have many of the recent APIs not gone through that body? Why didn’t OpenID/OAuth/oEmbed/… go there?

Dare talks about the IPR side of things, but in fact the editor of the RFC actually has a lot of control, so much so that you can’t always tell where you stand and you have to read the fine print. Many of the standards are done 100% correctly, but not having the rules set clearly at the org level can be a worry.

I also feel like community is a part of it too, and something that people often don’t think about. Why do we have the Dojo Foundation? It may have started out as a way to do open source correctly, according to the values of folks such as Alex Russell and Dylan Schieman, and with a safe correct legal structure. New projects come into Dojo though in a way where there is a match on those values, and as such there is a Dojo community feel. The same can be said for Apache. It has a community.

I personally hope that the Open Web Foundation creates a productive community that revolves around the core values that we are all creating as I type this. There is a reason that this is the Open Web Foundation, and not the Open License Foundation. This is about the Web.

And that is the point Dare. Come join us. I have been so happy to see people that have spent a lot of time in IETF, OASIS, W3C, ISO, JCP, and many more orgs, and have strong opinions on what needs to be done here.

Also, we need to hold off on any praise until we have projects coming through incubation. When we see the projects and the community come to fruition, then we can make more judgments.

Jul 23

The Open Web Foundation; Apache for the other stuff

Tech with tags: , , 3 Comments »

I am excited to see the recent talk of Open Web Foundation is now out there. I think that it is poised to become a great new corner of the Web giving us a place for the other stuff.

Let’s take an example. Imagine that you came up with a great idea, something like OAuth. That great idea gains some traction and more people want to get involved. What do you do? People ask about IP policy, and governance, and suddenly you see yourself on the path of creating a new MyApiFoundation.

Wait a minute! There are plenty of standards groups and other organizations out there, surely you don’t have to create MyApiFoundation?

Well, there is the W3C and OASIS, which are pay to play orgs. They have their place, but MyApi may not fit in there. The WHATWG has come up with fantastic work, but the punting on IP is an issue too.

MyApi has some code in there, so how about putting this in Apache? Apache is great for code, but it doesn’t deal with the other stuff, which is fine. That isn’t its mandate. Apache does things very well though, especially when it comes to governance and the incubator process. What if we had a foundation that had some of the same values around people participating (so anyone can, versus companies) and a varied community (not just a few blokes from the same company).

This is why I am hopeful for the Open Web Foundation. It is a new place to look at if you come up with something helpful for the Open Web, a place that may match your values.

But wait a minute, what about this “Open Web” thing again. As I just said on a post about defining the term, people can’t agree on what the darn thing is! There is a lot of gut feel “Flash and Silverlight are not the Open Web, but GWT is!”

I believe that the Open Web Foundation needs to be a leader in working this out. With metrics in place, the foundation can bless projects that meet the requirements. When a project starts it may not be Open Web yet (e.g. multiple browser implementations). We need a place to move forward and push the Web. Can’t wait to see what happens there.