Category Archives: open source

Adobe wants to be the Microsoft of the Web

I suppose this will be the one “technical” post about the whole Adobe Engage thing.

Background
For several years, I worked on Chandler, a cross platform desktop app which uses the open source wxWidgets toolkit to hide platform differences from an application. I am currently managing the Cosmo engineering team, which is developing a web UI for Chandler data which is stored in the Cosmo server. In a previous life, during 2000, I built a rich internet app (RIA) using Flash and Java.

The problem as I see it
I think that a lot (but not all) apps will become RIA’s, and the base platform technology for RIA’s is very important. Too important to be controlled, or designed by any single party. The current vogue toolchain, AJAX, has this property. It also has the property of being a cross platform development nightmare. On the desktop, you commit yourself to a single cross platform library/technology, and then you spend the rest of your time wrestling with it. In AJAX, you have multiple browsers on each platform that you want to support. Not only that, you have multiple versions of each browser. If your use of AJAX is limited to simple animation and so forth, that’s not that big a deal. But when you want to build something that has rich interaction, all those versions are a compatibility nightmare. There are also the performance problems with Javascript. Firefox partisans will be shouting “Tamarin“. Only problem with Tamarin is that it doesn’t help IE or Safari or any other browser. So much for platform independence.

Flash/Flex
Enter Flash/Flex. Flash has a great cross platform story. One runtime, any platform. Penetration of the Flash Player is basically the same as penetration of browsers capable of supporting big AJAX apps. There are nice development tools. This is highly appealing.

What is not appealing is going back to a technology which is single sourced and controlled by a single vendor. If web applications liberated us from the domination of a single company on the desktop, why would we be eager to be dominated by a different company on the web? Yet, this is what Adobe would have us do, as would the many who are (understandably, along some dimensions, anyway) excited about Flex? Read Anne Zelenka’s post on Open Flash if you don’t think that Flash has an openness problem. I’m not eager to go from being beholden to Microsoft to being beholden to Adobe.

What to do?
Unfortunately, there don’t really seem to be many alternatives. There’s OpenLaszlo, but much as I like the Laszlo folks, perusing the mailing lists shows that it’s still pretty much a Laszlo show. So while the licensing is better, the community development part doesn’t seem to be much better. There’s also the possibility of Adobe having a change of heart regarding the openness of Flash and Flex. But it’s hard for me to see why they would do that. I guess we can only hope that Adobe’s experience with Tamarind warms it to the benefits of a more open model for the future of Flash. Sun has finally woken up, so maybe it’s not impossible for Adobe to either.

[Update: see my followup]

No PyCon for me…

I won’t be making it to PyCon this year, breaking my three year streak. But at least I won’t have a horrendous getting home from PyCon story this year. In fact, very few people from OSAF will be attending this year. We’ve been planning to do an end-user oriented “Preview” release of Chandler and Cosmo for sometime this spring, and a number of us decided that the best thing that we could do was to stay focused on getting that release done. So while I won’t miss Dallas/Addison, I definitely will miss the chance to connect with folks from all over the Python community. I fully expect to be at OSCON this summer, and back at PyCon in 2008.

HD Photo will be awesome… In 2010?

John Nack’s post on HD Photo reminded me that I wanted to write something about this. HD Photo is part of Vista and used to be called Windows Meda Photo. It’s a new file format for representing images, which looks to be superior to JPEG in every way except one. Apparently, Microsoft holds some patents on HD Photo which don’t expire until (at least) 2010. That means that it won’t be possible to build open source implementations of HD Photo. There is a lot of code out in the world that relies on an open source JPEG decompressor, and that code isn’t going to be able to do HD Photo for quite some time.

Technically HD Photo sounds great, and as a photographer I can easily appreciate the benefits of the new format. But this reminds me of the whole proprietary RAW format issue. People are recording their life in their photos, and it’s important for them to know that they will be able to bring those photographs forward with them no matter what file format they chose. I think that Microsoft could set themselves apart as a leader here by changing the licensing of HD Photo. They’ve already done it once.

Adobe opened up PDF this week. It would be awesome for photographers and the users of digital pictures if Microsoft would do the same for HD Photo.

Dreaming in Code

Scott Rosenberg mailed me a copy of of his book, Dreaming in Code, as a thank you for an interview that I did with him. This is a book about why software development is hard, and it features the Chandler project as a case study. It feels odd to open up a book and see someone else’s description of part of your life. Of course, I wanted to know what Scott had written about me, so tracing through the index was the first thing that I did. It was interesting to see which events Scott thought were noteworthy: the half-phone/half-IRC demo, the 2005 PyCon sprint, and my memo to Mitch Kapor on the state of the OSAF communites. I was relieved to see that everything about me was accurate. Well, except for one small thing. In my initial mention, I’m credited with “some of the early work on the XML data standard”. I did work on IBM’s XML4J parser, which became Apache’s Xerces-J parser, but I never did any work on the XML spec or standard itself. About half of the book takes place before I worked at OSAF, and I really can’t comment on the accuracy of the stuff that happened before I got there. I wasn’t there, and while I’ve heard some stories I also know that there’s so much more that happened that isn’t in the stories that I’ve been told.

Unfortunately, Dreaming in Code leaves the reader hanging. Scott had to wrap up his book project before we were able to ship a version of Chandler suitable for general usage (there are bleeding edge people using it now), and we are still at least several months away from reaching that goal. One of the reasons that I came to OSAF was to build open source software that non-technical people would want to use, and I (and everyone else working on Chandler and Cosmo) am acutely aware that we haven’t reached that mark yet. Quite a bit has changed since Scott had to leave us, and he posted a follow up that tries to fill in the gap between when the book left off and the present, and Katie Parlante has posted a status update for all of the OSAF projects on the OSAF blog. If you are interested in how the story of Chandler and Cosmo continues, I think that the best thing to do is to look at the mailing lists for the Chandler and Cosmo projects, as well as the OSAF wiki, where you can be up to date on the latest developments.

Size isn’t everything

Stephen O’Grady del.icio.us’ed the inaugural post of the new blog, and his comment was “biggest community wins”. It’s true that the size of a community matters, but it’s not as simple as absolute size. Communities need to reach a point where they become resilient and self sustaining.

That means you need people, and you need enough of them so that there can be an reasonable distribution of work – if one or two people are doing all the work and there are lots of bug/feature requests, then that’s not a reasonable distribution of work. I’ve heard this called ‘scalable’ but it’s not necessarily the case the communities need to scale to accommodate lots and lots of users, but it does need to support its user base well, and the key to that is to share the work.

Another way of measuring the reasonable sharing of work is to look at the “hit by a bus” number – the number of people that would need to be hit by a bus/truck/etc in order to make a substantial impact on the sustainability of the community. If this number is “1” or if there are multiple “1”‘s, then that would be another indicator that the community hasn’t become self-sustaining.

Communities (like marriages, I suppose) that can’t fight well, can’t stay together. So another indicator of a healthy community is the ability to have and resolve conflicts. This is especially important, but often left un-stated as an important quality. It is important for communities to have diversity of opinion and approach, and if they do, conflicts will inevitably follow.

Also related to conflict resolution is the ability of a community do deal with difficult people – Ben and Fitz have a great talk on this [PDF], and it also contains some good content on what makes a healthy community.

So these are just a few of the other factors that influence the quality of a development community.