Archive for the 'open source' Category

Opening up to distributed version control

Stefano has written a great introspective post on his inner reactions to a Linus video on Git. It’s good to see people being more open minded about this. I’ve never understood the resistance to distributed version control, especially open source software development is itself an example of the success decentralization. Even the “social” argument that distributed version control would somehow destroy communities seems odd to me. This year at the OSCON Art of Community panel, Karl Fogel said that a tenet of the Subversion team is to avoid using technology to solve social problems. Yet insisting on a centralized version control system seems to me to be doing exactly that. I think its noteworthy that the Subversion team itself has a “hybrid distributed/centralized VC model” as a long term goal.

Centralization in open source projects is a “community smell” (think code smell). It’s best avoided.

OSCON 2007

This roundup is late, but better late than never…

FLOSS foundations
For the last three OSCON’s I’ve been attending a meeting for people deeply involved in the operation of open source foundations. Allison Randal of the Perl Foundation and O’Reilly has done a great job of getting the foundations to talk to each other about common issues. Many of these have revolved around legal and financial (non-profit regulation) issues. This year one big topic was the issue of trademarks, which is particularly relevant to OSAF. With a broad range of participation it’s unsurprising that there are varying policies on trademarks, ranging from the Mozilla foundation’s strict policy, which ran afoul of Debian, to the Eclipse foundation’s encouragement of “brand hijacking”. The group has a planet aggregator if you want to see what the various participants are up to.

Multicore programming
This was definitely a theme this year, with Intel being given keynote space to talk about its Threading Building Blocks, a C++ template library for dealing with threads. This is all well and good, assuming that you believe that threads are the right abstraction for concurrent programming — which I do not. Simon Peyton-Jones, whose career I’ve followed since my undergraduate days in functional programming (now at MS Research), was also given keynote time to talk about (software) transactional memory (STM) as a concurrent programing abstraction. Much of the original STM work was done in Haskell, and Simon also did a tutorial and a regular session on Haskell related topics. Sadly, aside from the display at the Programatic Programmer’s booth, Erlang was nowhere. It seems to me that if STM/Haskell is relevant to OSCON, then so is Erlang — I hope that this will be rectified next year. I think it’s still to early to declare a victory in the concurrency abstraction space, and at this point I think its important for people to be aware of all the possible contenders.

Community/People Talks
There was a dramatic increase in the number of these kinds of talks from last year, to the point of having an entire track’s worth. This was one of the things that I was most excited about, but I found a number of the talks to be disappointing. It was suggested to me that perhaps my standards for such talks was too high — of course, I don’t think so. I did enjoy Adam Keys talk on People Hacks. He did a good job of being very practical. One of his earliest points was that people are ruled by their emotions - something that logic oriented software engineers need to remind themselves of daily. I was pleased to learn that Adam is a reader - hat’s off to you for a good talk! Last year I missed the Art of Community panel, so I resolved to make sure that I saw it this year. Aside from the usual drawbacks of fhe panel format, this one was pretty good. There is a video of the panel so you can judge the content for yourself. It was particularly gratifying to hear Karl Fogel and Jimmy Wales say that they felt that automated/numerical reputation metrics were of little value. This is something that we’ve debated inside the ASF several times, so it was nice to hear people from different places come to the same conclusion.

Ruby
Like many people, I’ve been keeping an eye on the things that are happening with Ruby. John Lam, the creator of IronRuby was kind enough to invite me to go to dinner with some friends one night. Little did I know that the group would include Ola Bini, one of the JRuby committers. It was great to sit there and watch these two compare notes and share experiences and goals, despite one guy being a MS CLR guy and the other guy being a JVM guy.

Open Source and Rich Internet Applications
Since I’ve done some writing about the openness of various RIA technologies, I tried to drop in on talks that seem like they would be relevant to that. I went to Mitchell Baker’s talk Mozilla Firefox and the Internet as an Open Platform. The talk was more at the level of the principles in the Mozilla Manifesto. Those principles drive Mozilla’s perspective on RIA stuff, but Mitchell was explicit in saying that her talk was not about a particular technology or set of technologies. So while not directly addressing the topic, it was still useful to hear Mitchell expand on the points of the Manifesto.

The other related session was RIA Platforms and Open Source, the content of which was presentations by someone from Sun on JavaFX, and James Ward from Adobe on Flex (Nat apparently tried to get someone from Microsoft / Silverlight to show up, but wasn’t successful), followed by audience Q&A and a fairly superficial wrap up of the open sourceness of the various technologies. I was disappointed that the OpenLaszlo folks were not invited to present, expecially since in the ways that matter, they are more open source than any of the invited organizations. I made sure to mention this to Nat afterwards. Actually, both Alex Russell and I did, and the three of us had a little hallway track conversation about the RIA space, the browser compatibility conundrum, and related topics. Alex is super smart and utterly realistic about the state of the world — He called Dojo a “rear guard action” that is happening only because the browser vendors can’t/won’t do the right thing. Candor to the max. One very interesting thing that I learned was that Alex really likes WebKit. Like a lot. I found this very surprising since Safari doesn’t have that large a share, and I thought for sure that Alex would be unhappy at having yet another browser to hassle with. I always learn something whenever I get the chance to talk to Alex (which isn’t often enough) and this time was no exception.

By the good graces of Ryan Stewart, I was able to have lunch with Rob Savoye, the lead developer of Gnash, the GNU Flash player. Apparently, Gnash has been done without looking at the source of the Adobe player, and without looking at the Adobe spec for SWF. There is a set of compatibility tests for Gnash / Flash, which is also interesting. Being completely ignorant of Gnash, this was a great opportunity to find out what is happening with the project, and I left the lunch with quite a bit of food for thought. So did Ryan, I’m sure.

OSAF / Chandler
The talk that Mimi and I gave on Open Design (slides) was reasonably well received. The room was about 1/3 full, and we had a number of good questions afterwards. Mikeal and Adam’s talk on Windmill was standing room only, and we heard mentions about it from people in the hallway. It was great to see the screencasts of Windmill testing Chandler Server/Cosmo on Windows, Mac, and Linux. It seems like there’s pent up demand for a tool like this, so I am hopeful that people we both use and contribute back to Windmill. I know that Mikeal and Adam and the other Windmill committers are very eager for this to happen.

You can read some other OSAF OSCON recaps:

When I started at OSAF I was the only non-local staff member. Now about 1/3 of the staff is non-local, and as a result, we are using conferences more like other open source projects use them - as a way to spend some time together in person. One result of this, was some long discussions of Myspace and Facebook, the latest rages on the web. That motivated Mimi so much that she started creating a Myspace page right during the middle of a talk! I’m not sure what other things happened, but Mimi has written a great post on “the future of e-mail” over at the Chandler Project blog. Worth a read.

Seattleites
I saw a lot of folks from Seattle this year. Two other members of my local reading group went, and I saw folks like Joe Heck (still waiting on your post!). John Lam and I arranged to ride the train back together. John and I started rubbing shoulders long before he started working on IronRuby, but now that work has brought him to the Seattle area, I’m glad for the chance to spend some more time. Of course, we talked photography (how could we not), but John also gave me some insight into things that are happening inside Microsoft, particularly around open source. For example, I didn’t look at the Microsoft Permissive License that is being used for Iron Ruby. Spiritually, this is a BSD/MIT style license with the now required patent clauses. Another Seattleite who I met for the first time was Stephen Walli, who used to be the open source programs guy at Microsoft.

Photography
Some of you may have noticed that there are no OSCON photos from me this year. I did tote my camera stuff down there. I even brought a single “Strobist” light kit, in anticipation of a photowalk. Alas, for various reasons the photowalk did not materialize. At least I was able to have dinner with James Duncan Davidson, hold his new 1D-MkIII, and pump him for information about Lightroom. This year, I spent so much time in the hallway track that there wasn’t really much time to go roving around for good pictures, and I wasn’t excited about doing more shots of people standing on stages, or people sitting in rows watching people standing on stages. In any case, there was no shortage of people snapping pictures. Jeff Kubina was cranking them out, and caught me several times.

iPhone
I’ve studiously avoided contact with iPhones, but I wasn’t able to avoid it. Duncan was eager to give me a demo, and Mikeal kept whipping his out. I did borrow Mikeal’s a few times during situations where I would have used an iPhone, just to see if it would really work for me. Most of the time it seemed to. But I still am waiting for 3G, GPS, and the ability to use the phone as a modem for my computer. For $600, it has to do *everything*, and as cool as the iPhone is, it’s still missing out. Unfortunately I am in serious need of a new phone. The problem is that I am doing more and more coordinating / meeting via SMS and/or Twitter, and doing the numeric keypad text typing thing is a real problem. I repeatedly had to stop conversations to message someone back, and was rudely standing there trying to hastily text back. My apologies to those on the receiving end of this. I’m going to see if there isn’t something sensible that I can do before the next event.

OSCON is next week

OSCON is now barely a few days away. I like Portland, and I’m looking forward to being immersed in a sea of open source friendly people. Fortunately, the weather forecast says that we won’t be subjected to the 90 degree plus heat like last year. That will take some of the pain out of lugging camera gear. There don’t seem to be a lot of open source folks doing the Twitter thing, but if you are, here’s my Twitter home page.

This year Mimi Yin, the UI designer for Chandler, and I are giving a presentation on the things that we’ve learning in trying to incorporate designers into an open source project while maintaining the essence of what is good about both design and open source.

Check this post at the newly revamped Chandler blog for all the Chandler happenings at OSCON.

Thoughts from the Seattle Adobe AIR stop

Here are some thought from Adobe’s AIR Bus Tour in Seattle yesterday.

First, is that Adobe is laying out some serious money to promote AIR - they got a (literally) rock star bus, complete with beds, loads of electronics, and tour paint scheme. The event yesterday was at a nice restaurant which they rented for the day, and Adobe was very generous with food and drink, which was of a higher than average quality for a conference.

On the whole, the sessions were informative, although I wished that there had been a little more detail presented. There’s already been lots written about Flex and AIR/Apollo, so I’m not going to rehash any of that. Here are some of the more interesting tidbits that I picked up.

  • Kevin Lynch mentioned that when they opened the native code portion of shockwave, they only got extensions for Windows. It was pretty clear that they want to reach platforms besides Windows.
  • Mike Chambers reemphasized that point when he said that the amenability of WebKit to mobile (ported to Series 60 by Nokia, and now, of course, on iPhone) was one of the big reasons for their choice.
  • There’s some of sample code based on hacks that involve the GPS sensors, cameras, and other gadgets on the bus
  • Aptana is supporting AIR developement in their Eclipse plugin.

I also learned a new term from Lee Brimelow of Frog Design: a “deviner”, a person who has training as both a designer and programmer. I had never heard the term before, but it’s relevant to the content of the talk that Mimi Yin and I are giving at OSCON in a few weeks.

Ryan Stewart persuaded me to do a talk for the Ignite the Web sessions in the evening. I thought it fitting to give a presentation on “Openness and the Web”, based on the content of that string of blog posts that started my dialogue with the Adobe folks. The Ignite format (5 minutes, 20 slides switched at exactly 15 second intervals) is pretty demanding of speakers. I’d consider myself an experienced public speaker, but doing the Ignite talk had me pretty nervous. The delivery went well - I only had one gap where I got out of sync with the slides. Afterwards, John Dowdell, and Ted Patrick, as well as a few others, came to talk about the content of the talk. John and I traded thoughts and clarifications sporadically during the rest of the evening, and he told me that it definitely helped to have heard more from me in person. On the whole, it seemed worthwhile. The only downside is that now Ryan is trying to get me to sign up for the next Ignite Seattle.

Open source peeps and Dopplr

People working in open source have limited opportunities to meet each other in person. My own experience is that meeting someone in person, even if it is only once, can be a help in working with them in the virtual world. The Dopplr service is a social networking application oriented towards people who travel. I’m already using it to find out who is going to at OSCON and ApacheCon US later this year. Meeting folks from various open source communities in person has been an enriching experience for me, and I’m glad to have help at making that easier.

Let me know if you want a Dopplr invite.

Adobe open sources Flex

Last week while I was in San Francisco, I sat down for an hour with David Wadhwani, the VP of product development for Flex and Ely Greenfield, one of the Flex architects. After I wrote my original post about open sourcing Flash, I got a note from David asking if I would be willing to spend some time to help him understand the issues that I raised in that post and its follow ons. This afternoon David called to tell me that Adobe was announcing that it was open sourcing Flex v3. I was especially happy when he said that my posts and our conversation had an impact on his thinking about open source and Flex. There is a press release with the announcement as well as a FAQ on the basics.

The Basics
The basics of the announcement are that Adobe will open source Flex v3, due later this year, under the Mozilla Public License (MPL), which is sensible given that they have already open sourced their Tamarin Javascript engine via Mozilla. Before that happens, Adobe will make daily builds of Flex available (the source is already available, but daily builds gives better visibility). Also, they will open their bug tracker to the public in preparation for the open source version of Flex.

Adobe is taking a slow approach on governance. Unsurprisingly, the initial set of committers will be folks from Adobe, and the governance model is underspecified. Right now, the FAQ says that the schedule and roadmap for Flex will continue to be defined by Adobe. There are stated plans to create a subproject process and subprojects could be managed by people outside Adobe, and incorporated into the Flex tree. The full governance model is not yet determined, and will be influenced by feedback and what actually happens between now and the end of 2007, which is the target for the transition to being a full open source project.

I think that there are likely to be some concerns around use of the Flex trademark. Unlike Java, where (in theory anyway) an open source Java could pass a compatibility test suite and gain access to the trademark, the open source version of Flex cannot be called Flex. It remains to be seen whether this will actually impact participation in the project.

Flex, but Not Flash
This is a good first step for Adobe, but it’s just the first step. The Flash player is not being open sourced at this time, but when I talked with David he told me that that Adobe had been telegraphing the fact that they were going to open source Flex for about 20 months, since the opening of Adobe Labs. When I asked him about the Flash player, he said that open sourcing Flex should be viewed as a telegraphing of Adobe’s intentions. Of course, there’s a big difference between intentions and actual followthrough, so we’ll have to wait and see how the Flex project ends up working out.

Bottom Line
Adobe is moving pretty quickly. When I met with David a week and a half ago, I got the impression that he and Ely had decided that they wanted to open source Flex, but hadn’t cleared it with his management chain. A week and a half later, they are making an announcement. As I’ve mentioned, this is just a first step for Adobe, and there are plenty of opportunities for things to go sideways. Nonetheless, I think that Adobe has understood the importance of openness and is taking some initial exploratory steps to do what’s necessary.

If you think that an open source Flex is important, then you should go to the new discussion forum that Adobe is setting up for open source Flex. There are a lot of things which are intentionally unspecified, and there is still lots of time to give Adobe feedback on this move. I know that I’m going to keep giving them feedback for as long as they continue to solicit it.

Update:
Scoble has a video interview that lets you hear some of what I’ve heard from David and Ely.

Is there a better way than the JCP?

[ via Don Park ]:

Elliotte Rusty Harold is asking if there’s a better way than the JCP:

On reviewing this, I think I’m struck by a fundamental flaw in the JCP for the first time. Sun is still mired in a 20th century, waterfall, big bang approach to development. There are at least three, probably more, different things going on in this process that could certainly be separated and developed independently.

Still I wonder if there’s a better way (and perhaps the open sourcing of the JDK might enable it).

It’s good to see people asking the right questions.

The Open Web, the Closed Web and the Live Web

So back in March, Brendan Eich of Mozilla wrote post titled “The Open Web and its Adversaries“. His definition of open seems to rest on this:

a web whose major content formats are not controlled by a single vendor

A goal which I agree with, and the basis for my series of Flex posts, which he also referenced. So far, so good. As he continued, I got confused. He asks us to:

Consider just the open standards that make up the major web content languages: HTML, CSS, DOM, JS. These mix in powerful ways that do not have correspondences in something like a Flash SWF.

I agree with his assessment of the powerful ways in which these technologies combine. But much of what he finds laudable are technical properties — they don’t derive from the fact that these are open standards. It’s just a fortunate (or perhaps, designed) outcome that those are the technologies that are combined in a browser. After all Java, C#, and even C++ have been standardized (well at least if you believe that the JCP is standards body), so being an open standard technology is not a guarantee that you’ll have the properties that make the web “alive” according to Brendan. It seemed like what was really being discussed was the “live web”, not the “open web”.

The place where I really got lost was when he started discussing the future of the open web,

Implicit in my writing is the assumption (conclusion, really) that browsers can adopt the necessary advanced rendering and faster virtual-machine programming language support that the “rich client platforms” boast (or promise in version 2.0). … There’s no technical reason this can’t be interoperably supported by other browsers in the near term.

There’s no technical reason, but there are plenty of political/business reasons. Every browser implements each of the open standards to a varying degree. They implement different versions of the specs. They implement each spec imperfectly. That translates into lots of debugging and testing when building an application atop the open web. I like the improvements that are likely to come in Firefox. The problem is that until many of those improvements appear (if ever) in Safari and IE, it will be hard to justify using those improvements, because it means writing multiple versions of the same code and then qualifying those versions. Contrary to Brendan’s assertion, big companies with armies of developers might have the resources to devote to all that additional work, but small development houses are the least able to tolerate that additional labor. Since Microsoft has an interest in advancing WPF/E, part of the Closed web, it’s hard to imagine that they will be motivated to improve IE quickly enough for innovative Live web features in Firefox and Safari to make a difference to application developers versus something like WPF/E or Flex. The risk to Microsoft is that instead of collecting those developers themselves, they lose them to Adobe.

Ryan, Open Source, and Flash

A few weeks back, I had dinner in Seattle with Ryan Stewart and Brian Zug. Over the course of several hours we covered a number of topics, including a crash course in open source software. Yesterday Ryan posted some of what he learned during our conversation, including his conclusions about whether or not open sourcing the Flash Player was a good idea. That post generated a bunch of traffic, so Ryan put up a follow up post on his personal blog.

Unfortunately, many people reading Ryan’s post or one of the aggregated excerpts didn’t have the context which prompted the dinner and the posts. All of this took place in the context of three blog posts which I wrote last month where I took a look at Adobe’s Flex/Apollo technology from the point of view of the openness of the technology. I’m interested in Flash only as a component of Flex. I’m not interested in singing/dancing web pages or in Flash based ads, but much of the reaction to Ryan’s post was centered around traditional uses of Flash in web pages. Many people said “oh, open sourcing it will destroy compatibility”. Yet the context of the discussion included ways of maintaining compatibility.

The most interesting response that I found was from Ted Patrick at Adobe. Ted shed some light on the ways that Adobe/Macromedia have involved customers in the development of previous versions of the Flash Player. This was useful information to have — I think that I was probably more ignorant of these facts than Ryan was, truth be told - and suggests to me that there is some culture of working with people outside of Adobe/Macromedia. Perhaps most encouraging was his acknowledgment that Adobe could be more open. Of course that’s not a commitment to be more open, and indeed, he warns that becoming more open will not happen overnight. I am not expecting something to happen overnight — after all, I’ve waited 9 years for Java, and am still waiting. The wheels do have to start turning sometime, though.

It’s all about the governance

About a month ago, when talking about the prospects for more open RIA technologies, I wrote:

I’d hope that we could do better than both the W3C or the JCP for Flex/Flash or OpenLaszlo.

After yesterday, I think my reasoning ought to be obvious. FAQ link for those new to the issues. Stefano and Ben, as always, find a satisfying way to put it, and Redmonk’s Steven O’Grady has a fair minded analysis.

The details of Java and Apache aside, I would call this whole situation a case study in how not to setup the governance for something open. I have never been a fan of the JCP process because Sun has always had rights that no other participant had. To Sun’s credit, the process has become considerably more open since the JCP was created in 1998. On the other hand, that openness is the result of *years* of hounding by the ASF and other organizations, and now, 9 years later, there are still hiccups. The world is a different place today in 2007 than it was in 1998, and general understanding of openness and community are much greater than when the JCP was founded. I would hope than anyone setting out to build a governance model for some piece of technology would look long and hard at the lessons (good and bad) of the JCP experience.