Ted Leung on the air: Open Source, Java, Python, and ...
... to John Lam on his new job at Microsoft. Another step forward for dynamic languages. Who knows, maybe now John and I will even get to shoot some photos more than once a year...
Of all the conferences that I attend, ApacheCon is different, because I am an "insider". As with all conferences, the technical program is a piece of superstructure that facilitates the human part of the program. Since ApacheCon is one of the few times for Apache folks to gather in person, I find that the human track is much more important than the technical track. It's a time to have those high bandwidth conversations that don't happen over e-mail, to catch up with old friends, and to find some perspective on what is happening all around the Apache Software Foundation.
This year in the "official technical track", I worked with David Recordon, Paul Querna, and Justin Erenkrantz (thanks!) to get all of the Heraldry committer accounts created and Jira accounts setup. That process has been dragging out and it was one of my big goals to get that unstuck so that we can get going. That work paid off handsomely, because a bunch of code showed up in SVN on Wednesday. So now we can get on to the business of getting the community going.
I also talked about Heraldry in the Incubator Fast Track, a set of lightning talks focused on projects that are currently in the ASF Incubator. This is the first time that I've attended / participated -- I'm not sure if this was done at ApacheCon Europe this year or not. It's the kind of thing that just obviously makes sense, and you wonder afterwards why it took so long. The session took up two session lengths, and there still wasn't room for everyone who wanted to participate. I heard the best quote of the conference during this track. It was during one of the web services talks, and the presented described the WS-* stack of web services protocols as the "WS Death Star".
I attended Sally Khudairi's media training tutorial for an afternoon. I've been interested in getting some kind of media training for a while now, so I jumped at the chance to get in on this one. This was really "basic" media training, which focused on speaking to people, understanding how much information that you (as a technical person) are throwing at a journalist or analyst, and a bit about the world of a journalist or analyst. Sally kept it very interactive and experiential, which I really appreciated. She was able to get Michael Cote from the Redmonk analyst firm to come and do mock press briefings with us, which was great. I've been a follower of the Redmonk blogs for quite some time, and it was great to meet Cote. He and I had several good conversations during the course of the Con.
Brian Moseley from OSAF did a great job talking about Cosmo. When we submitted the presentation earlier in the year, it was directly applicable to Apache since we were using Jackrabbit as our storage engine for Cosmo. Unfortunately, since then we've had to replace Jackrabbit with a Hibernate based storage layer, so the relationship to Apache projects was not as obvious. Nonetheless, there was a decent turnout (especially for the first talk on the last day), and people asked engaging questions.
On the human/social track, I participated (as usual) in the PGP key signing (don't worry folks, cabot will be filling up your mailboxes soon). This was a little depressing for me. Before my laptop was stolen this year, I had one of the most highly cross-signed keys in the foundation, including signatures with/from people who only attended a single ApacheCon. Having to revoke that key and start over was one of the most bitter pills to swallow on the laptop scene.
I also spent a lot of time talking to Stefano and David Reid about RDF and mod_sparql. I hadn't seen Stefano in several years, and it was really fun just to see him and catch up on all the doings.
The photography walkabout/BOF never happened -- the biggest cause for this was that sunset was around 7pm, and this year the social scene at ApacheCon was really active. During the conference proper there was at least one event (sometimes two) every night. Wednesday night was the keysigning, which I couldn't miss, and Thursday there was the Lightning Lottery Talks, which are a must see. So we ended up with nothing. That doesn't mean that there wasn't a lot of shooting going on. I saw a good number of SLR's and lots of point and shoots. The active social scene provided lots of photo opportunities as well. In fact, this year, most of my shots are from the social activities and not the conference. There are only so many photos that you can take of people sitting in a room listening to someone talk -- same goes for the exhibit halls. In addition, I wanted to do a mini photography project showing various ASF folks in a more human setting. So as we made our way up and down Sixth Street each night, there were plenty of opportunities to shoot, and to interact with other shooters. Torsten Curdt took a bunch of really nice photos and Andrew Savory was around a lot with his Rebel XT. I met Debbie Moynihan of IONA when I noticed a camera strap with "EOS Digital" hanging out of her handbag - another Rebel XT.
Several people have asked me about my shooting at the show, so this next bit is for them. I shot a total of 733(!) frames and posted 159 of those. That includes test shots that I took to figure out the exposure for some of the club/party shots. The whole set of photos is here (Leo, I remembered to change the license this time). Thanks to Ken Coar for annotating the shots of his amazing lightning talk.
My photos from ApacheCon are up on Flickr...
"Me too"
- Get my new PGP key cross signed
- Make some good progress on Heraldry stuff
- Hook up with some Abdera folks
- Talk to David about mod_sparql
- Add my FOAF to the committers info
- Go to sk's media training tutorial
- Do a photography walkabout - the austin bat bridge is on my list
Huge thanks to Adriaan for putting out a universal version of ecto 2.4.1. Don't get me wrong, Rosetta is great, but I'd prefer to keep my whole system native.
This year's ApacheCon US starts in less than a week in Austin, Texas. In addition to the regular ApacheCon activities, I'm interested in organizing a photo walkabout, similar to the ones that James Duncan Davidson has started doing at the conferences that he's attending. So if you're interested, or you know good spots to shoot in Austin, leave a comment or send me mail -- please say whether you are around for the tutorial days.
In the comments to my post about IronPython and JRuby there were some comments about C libraries for Python or Ruby which would be unusable in in a CLR or JVM based implementation. This is correct, of course, and it is a problem for people trying to port software across implementations.
Earlier this week, Joel Spolsky made some comments about Ruby performance which triggered a bunch of posts, including a lesson from Avi on the 20 year old technique of in-line method caching. David Heinemeier Hansson weighed in with a post titled "Outsourcing the performance-intensive functions", where he argues that one of the benefits of scripting languages is that you can "cheat" by calling functions written in some other language.
Of course, that capability isn't limited to scripting languages. Other languages like Smalltalk, Lisp, Dylan, and others have foreign functions interfaces that let them talk to C code, and SWIG, which is a favorite tool for making it easy to link bind C libraries to scripting languages, also works for those languages. Reusing existing C code is a fine and worthwhile thing to do.
I don't agree, however, that users of dynamic languages should just agree to outsource high performance functions to C. The whole point of using a dynamic language is developer productivity, and that should be the case for performance critical code as well. And it's not like this is an impossible task either. There are implementations of dynamic languages which are very efficient, and applying those techniques to "scripting languages" is worthwhile endeavor, which is being pursued by folks like the PyPy team. As Avi also points out, the StrongTalk VM has now been open sourced, which may make it easier for language implementors to adopt some of the rich body of work that has been done on dynamic language performance.
Will there be cases where even the most advanced implementation techniques won't yield enough performance? Sure. That's why C compilers have a feature called in-line assembly code. But you rarely see it used. Having to rewrite my performance critical dynamic language code in C should be a rarity. The better the VM's get, the more rare those occasions will be, and that's a good thing. Let's not throw up our hands and say "yeah, you're right, we're slow, but it doesn't matter because we can cheat".
Several days ago I alluded (obscurely) to the possibility of 8 core Mac Pro's based on an upcoming quad-core Xeon. Tuesday, Anandtech demonstrated that the existing Mac Pro hardware is capable of the feat (memory bus speed notwithstanding). Their benchmarks also show that many applications are not able to exploit 4 cores very well, never mind 8. Now, where did I leave that Erlang disk image....
[via Kim Cameron’s Identity Weblog » Microsoft’s Open Specification Promise ]:
Today marks a major milestone for Mike Jones and myself.
Microsoft announced a new initiative that I hope goes a long way towards making life easier for all of us working together on identity cross-industry.
It’s called the Open Specification Promise (OSP). The goal was to find the simplest, clearest way of assuring that the broadest possible audience of developers could implement specifications without worrying about intellectual property issues - in other words a simplified method of sharing “technical assets”. It’s still a legal document, although a very simple one, so adjust your spectacles:
This is a big step for Microsoft, and so far the details look good. The OSP covers a raft of web services specs, including a few that are important for digital identity. The promise extends not just to spec implementors but down the distribution chain, which is essential to being open source friendly, and there's no registration or notification of Microsoft required.
In the coming days, I am sure more legally savvy folks will look the document over, but so far Larry Rosen and Mark Webbink [Deputy General Counsel at Redhat] believe (via the Microsoft OSP FAQ) that the OSP is compatible with FOSS community requirements.
People that are aware of OSAF are usually aware of Chandler, not as many are aware of Cosmo. Cosmo started its life as the sharing server for Chandler, but over time Cosmo is going to bring quite a few ideas from Chandler into a web based UI. Our goal is to have both rich desktop client and rich web client access to your Chandler data, so that you have a choice of whichever interface appeals to you the most. The Cosmo project is much younger than Chandler, so it is going to take some time to reach that goal.
Several weeks ago, we found ourselves in need of a new manager for the OSAF engineers working on the Cosmo project, and I agreed to take over those responsibilities. Lots of people who read this blog have talked to me about Chandler in the past, so I wanted you to be aware of what is happening with me and Chandler. You can keep talking to me (and any other contributor to the Chandler project) about Chandler, but you can also talk to me about Cosmo and stuff in the web space.
I also wanted to make you aware that we have two openings for people to work full time on Cosmo. The last time I posted about jobs at OSAF, we got PJE, who has helped tremendously on Chandler, so here I am again. Please use the link if you are interested.
As always, if you are looking to stay up to date on what is happening with Chandler and Cosmo, you should subscribe to one or more of our mailing lists.
The IronPython and JRuby announcements have been making the rounds in the blogosphere. and of course I want to add my 2c.
I think that these announcements are very significant and should be welcomed by people in both the Python and Ruby communities, because I believe that Microsoft and Sun's support of these languages will make it much easier to persuade people to look at Python and Ruby. Today people's biases are still against dynamic languages as whole, as opposed to particular languages, so I think that getting "corporate legitimacy" for either Ruby or Python helps both.
IronPython is already faster than CPython, and JRuby appears to be headed in a similar direction, although we won't actually know until JRuby beats one of the C-based VM's. There is a huge amount of effort being expended on the performance of the JVM and CLR implementations, and if that effort starts to benefit Ruby and Python users, then think that is a good thing too.
I've read some postings speculating on Microsoft and Sun anointing either Python or Ruby over the other, and/or over all other dynamic languages. I don't believe that this is the case. At OSCON in 2003, I attended a BOF organized by Microsoft people who were interested in improving support for dynamic languages on the CLR. If I recall, many of the "major" dynamic languages were represented. Also I know that Microsoft has been talking to folks like John Lam and others who are working on getting Ruby onto the CLR. As for Sun, JSR-223 is aimed at all scripting languages, Sun accepted a JSR for Groovy, and Tim Bray (who helped the JRuby thing get done) also helped organize a meeting at Sun for lots of dynamic language folks. I think that in part, IronPython and JRuby got picked up because the people involved were willing to work with the companies involved.
Other commentary has focused on whether or not Sun or Microsoft is ahead of/behind the other in this area. I suppose this makes sense if you are a partisan of one language over another. It's probably more true if you look at Python, since IronPython's baseline for comparisons is Python 2.3, while Jython is still catching up to Python 2.2. Overall, I think that we are still early in this game, and that neither side has an insurmountable lead over the other. If you look at the pace of VM support, I think that it's not so one-sided. Yes, Microsoft has been at this longer, but they also seem to have a longer cycle time to pick stuff up, since the pace of CLR improvements is gated by releases of Windows. Yes, you can download new versions of the CLR, but that makes deployment a harder deal. Sun still has to get its extensions specified, much less implemented in the JVM, and the cycles on the JVM are also long, but I also think that the window for broad adoption of dynamic languages still has not arrived, so both companies still have time, which also blunts the potential advantage of being first.
I'm happy to see all this going on, but the CLR stuff is far away from me, since my primary platform doesn't really have good CLR support. There's Mono, but it doesn't seem to be getting much uptake on OS X. I am basing this on the amount of buzz and/or actual Mac apps being developed on Mono, not on actual statistics, and I am sure that Miguel will be quick to disprove me with facts... I can at least see a world where I might use something like JRuby or Jython, since I have done a bunch of Java in previous lives.
These announcements also create some interesting points for observation. Here are some things that I am going to be keeping an eye on as these projects march forward:
- Community building around the implementation - I will feel most comfortable if these language implementations are community driven, and not vendor driven. I know from listing to Jim at PyCons that this is a goal, and the JRuby guys have been very clear about this as well. The recent buzz about these two projects gives them that PR bump that might allow them to draw more people into their communities. It will be interesting to see if they can convert attention into participation
- Compatibility - Both Ruby and Python are "open source" languages. By that, I mean that cross platform compatibility has been accomplished by having a single reference language implementation. It will be interesting to see if the JVM and CLR dialects are able to achieve a decent compatibility story or whether they end up essentially forking (or if you are suspicious, embracing and extending) the languages. One possibility is that we end up with some kind of standardization in order to keep this from happening. Of course, standardization doesn't mean compatibility - just look at the situation with Javascript 1.7, where you have a standard, but you have significant uncertainty about whether all browser vendors will implement it, thus reducing its usefulness.
- Performance - The IronPython team has shown that they can beat the performance of CPython. The JRuby folks have yet to do that, and both the Python and Ruby communities have higher performance VM implementations underway. This situation reminds me a lot of the situation with x86, Alpha, Sparc, and PowerPC, where you had different architectural approaches which were supposed to produce performance benefits. But in the end, large amounts of money, process technology and non-architectural considerations produced an outcome that was different that what you might have expected by just analyzing the processor architectures.
- Velocity - Having people who are working full time on these implementations is going to make a difference in the velocity of these projects. The question is how much, and at what expense versus creating a sustainable community?
- Tooling - Much has been made about the JRuby folks being chartered to work on tooling in someway. There's been speculation about NetBeans versus Eclipse, and there are also other Ruby IDE's. I haven't heard much about tooling on the CLR side, but it seems plausible that you could see Visual Studio support for IronPython and/or one of the CLR Ruby's should people at Microsoft decide it was worthwhile.
In the end, I think that having languages like Python and Ruby be "legitimized" by the recognition of big industry players, makes easier it is for me. It gives me one more argument to use when talking to people, which I hope reduces the amount of time I have to spend trying to convince people of the merits. That leaves me more time to work in a language that I like. Then again, we have Erlang, Scala, and Io just around the corner...
Michael McCracken is pondering the merits of laptops
I’ve been thinking of how I’d work if I didn’t have a laptop. One thing’s for sure: I wouldn’t spend as much time rubbing my neck while waiting for builds, for a couple of reasons.
I’m beginning to wonder if a laptop is really any good at all, let alone necessary. Wouldn’t I rather not carry that thing around all the time? Should my hands really sweat when my computer is working hard? Doesn’t having a laptop just give me an excuse to pretend I’ll be able keep working “later”, even though that never really works? Does anyone really gain more productivity from working at a coffee shop than they would using a fast desktop computer?
For years, I have wanted a laptop. It dates all the way back to the Apple PowerBook Duo days. I've always wanted to have one machine, which had everything in it, which could be with me at all times, and which could take advantage of the environment that I found myself in.
Laptops have always lagged behind the performance of desktops, and for a long time this kept me off of them as a primary machine. When I started at OSAF, I needed a laptop because I was going to be traveling, and I switched back to the Mac, which meant that the laptop was my primary machine, although I frequently wished for a desktop machine for performance reasons. I was eagerly looking forward to the Mac on Intel announcements, because I believed that the gap between the desktop and laptop Intel processors was much smaller than the gap had been on PowerPC. For most things, this has turned out to be true. iPulse tells me that there are very few times when I am CPU bound, and I am on the slowest MacBook Pro configuration. Instead, I'm finding that lots of the times that I am spending waiting are due to lots of paging/swappping, for which the solution ought to be "more RAM". Unfortunately, I already have 2G of RAM in the machine, and that's all you can get. I've talked to many people who also would like to drop more RAM into their MacBook Pro's. The other area where performance is a problem is video card performance, because Aperture relies heavily on video card performance and photo manipulation has become the number one performance limited application.
I could probably also get some more responsiveness by installing a 7200RPM disk in the machine (mine is a 5400), but then you have a different problem. I want to take everything with me on my laptop (although having a laptop stolen definitely gives you second thoughts about the wisdom of this idea). The problem is that laptop hard disks are just not big enough, and taking a faster drive means less capacity, hence the stack of external 7200RPM Firewire drives.
Lastly, there's there's the issue of taking advantage of the environment. Most of the time, my laptop is tethered to a large external display and keyboard. I occasionally "undock" it and use it around the house, but I don't do it as much as I'd like to, because once I "undock", I have to spend a ton of time putting the windows into some usable state again. I wrote some AppleScripts to help manage this problem, but it's still annoying enough that I avoid doing it unless I have to go somewhere with the machine. It's quite likely that I'd go mad if I actually had to commute every day.
So when you stack all those things up, a desktop, especially the new MacPro's, starts to look appealing again. Even more so when you ponder the Xeon version of Kentsfield.
I am so backlogged on posts that I am tempted to declare total blogging bankruptcy. I"m suffering a bit of insomnia, so I'm going to see if I can kick myself back into posting...
Fitz and Ben Collins-Sussman have posted the slides from their awesome OSCON 2006 presentation: How Open Source Projects Survive Poisonous people (And You Can Too). I promised to link their slides when they went up, and I'm only a month late, which just goes to show how deep the backlog goes.
[via Apple - Pro - Tips ]:
The Apple Pro Tips are really good. I've learned a bunch of things that I never would have learned another way. This one is that if you hold the command key while copying to another volume, OS X will make the copy and then delete the original. I've been using Mac OS of one form or another since 1984, and I never knew about this one. Works in PathFinder, too.
Here are some thoughts on what we've seen at WWDC so far...
Ordinarily I wouldn't pay much attention to the tower announcement because, I've been reasonably happy with Apple's laptops since I've been back on OS X. However, RAM and fast disks are really a necessity for big photo work, so all of a sudden I kind of care about the towers, since it still seems that MacBook Pros that can hold 4G of RAM are some ways off. The MacPros seem very reasonably priced for what you get. I like the new drive trays, and Macintouch claims that you can use stock disks in the trays, so upgrading without paying through the nose is an option. I'm surprised that there is no eSATA support, but you can get cards for that -- eSATA bandwidth is much better than Firewire, even 800. Apparently the Xeons are not soldered in either, so that would allow for do it yourself upgrading. The machines look pretty attractive, at least until you consider the prospect of quad core CPUs later this year.
I"m not that impressed by the 10 Leopard features that made the cut for the keynote. They are all solid, but none was particularly earthshatter to me personally. Time Machine looks very interesting, but there have been hints of this idea in Windows world, and as Miguel points out, Linux has had dirvish for some time now. Neither of them has the cool UI of Time Machine, so I think Apple gets a little credit. I have to say that I'm a bit concerned about the performance impact of Time Machine, especially given the poor performance of Spotlight in Tiger.
Spotlight is getting some improvements, but there was no talk about improving it's performance -- it would be bad form to highlight Spotlight's poor performance in a keynote, but Spotlight is pretty unusable unless it gets quite a bit faster. Fortunately, MacFixit claims Spotlight (and Intel Mac) performance is dramatically improved in the Leopard developer preview. That would be very welcome.
It's nice that Apple is going to do some work on iChat -- it could use a lot. Screensharing would be a great feature to have assuming you can share any app, not just iPhoto and Keynote as shown. Unfortunately, Apple innovating in iChat doesn't help when you need to communicate with the rest of the world that is running Windows and Linux. I've still never gotten the iChat to AIM (on Windows) video conferencing to work. I am hoping that the Skype people can make this work in the near future.
I have to say that I am disappointed in the features shown for Mail. None of them look like they go any way towards helping people who are dealing with large volumes of e-mail. No tagging, no improvements in threading or display. Nothing. The todo management stuff is interestiing, especially because it's a special case of the stamping feature in Chandler. It's nice to see that other people are thinking along the same lines that we are. Still, that's not quite enough to make up for the lack of e-mail overload assist. MailTags 2.0 here I come...
People at OSAF abuse me because I have my machine set to talk to me a fair amount. I"m willing to take the abuse because I need the voice interrupt to make sure that I pay attention when necessary. I was definitely happy to see that there will be improved text to speech in Leopard.
As far as stuff aimed specifically at developers, there seems to be plenty of interesting stuff - short takes:
- Apple has clarified their position and support for open source, including an open source CalDAV server.
- Ruby on Rails to ship in Leopard - nice coordination here with Apple. The Ruby guys get the marketing and adoption thing.
It looks like Apple has been doing a lot of work on XCode. I'm very interested to see what the garbage collection support for Objective-C looks like. Better late than never, I suppose. The biggest news in XCode is the incorporation of DTrace into the XRay performance tools. DTrace is one of the killer features of OpenSolaris -- and the one that is most appealing to me as a developer. Bryan Cantrill's post has a bunch more detail and useful links. I've seen Bryan demoing and working with developers at open source conferences, and there's been a great interchange between the DTrace team and other parts of the open source community. Congrats to Bryan and the DTrace team for a great design win! Just don't be mad that I won't be looking at trying OpenSolaris now -- I know there's a bunch of other cool stuff in there (ZFS and Zones), but I'm don't want to be running servers.
Of course, it figures that a few months after I shell out money for Parallels, VMWare announces their product, which won't be available till the end of the year. That move scared Parallels into releasing a new beta. Parallels was doing good at revving its product before it went 1.0 and then things slowed down. Hopefully competition will keep them on their toes. Too bad Microsoft decided to sit out on the virtualization wars. If the VMWare product turns out to be solid and Mac-like, then I will probably switch over, because of virtual image compatibility with other platforms.
It was notable to me that no third party developers were showcased on the stage at the keynote. I'm not sure if that's a sign of anything, but it felt to me like somebody should have been up there. Even more interesting (for those who like to speculate), was the absence of "One last thing". Couple that with the "Top Secret" features and the relatively lackluster keynote content, and you have a recipe for rumor churning from now till Macworld in January. But of course, we would have had that anyway...
It's becoming increasingly hard for me to do a decent job of blogging conferences in anything approaching real time. The face to face time is so rare and precious that it's hard to justify dropping hours of sleep to do the analysis and posting, especially when I am already dropping hours of sleep just to keep up with the face time.
Instead of going to the tutorial track, this year I once again attended a meeting for people working with the non-technical end of open source foundations. I haven't been able to get to every meeting (some are in Europe), but I've found the gatherings to be very informal. Last year, I learned an enormous amount about what is happening in the Eclipse community, and I think that it's worthwhile for open source people to be aware of the things that are happening at Eclipse, particularly if your community is going to interact with companies.
This year there were a pair of topics that stood out to me. Zak Greant of the Mozilla foundation discussed how he is using a bug/issue tracker to deal with community issues. This sounds like a no brainer kind of activity, particularly for open source projects, but I am not aware of any other community that is making use of this practice. I think that Zak is going to put up some documentation on what he has been doing, and I plan to link that when it goes up.
The second topic was kind of a side discussion on the topic of how to explain open source software to non computer people. Two of the phrases or labels that caught my attention were "green" software and "organic" software (as in organic food). I don't know whether these are the right labels for the job, but the whole notion of applying food labelling to software and technology issues is an interesting one.
The OSCON program looked much stronger to me this year. There were several slots where I had to make tough choices about which talks to attend. Also, this year there was a much larger number of talks on community building and other soft topics (not including business topics, of which there have been many over the years). While writing up this summary I realized that the only technical talk that I attended this year was the presentation that some OSAF'ers gave on Cosmo and Scooby, our web projects. This happened partly because I inserted a few "hallway track" sessions. But it happened mostly because I prioritized community/soft talks over technical ones. OSCON is a conference about open source. The whole point is that any "outsider" ought to be able to go to a project's web site and get up to speed by looking over the documentation and other materials that are available. If that can't happen, then either the "outsider" can't read, or the "insiders" can't write. So while it would be nice to sit in a session to get the scoop on a topic, I ought to be able to find that information on line somewhere. My view of open source, heavily influenced by my participation at Apache, is focused on the community aspects, not the licensing or technical aspects. The community building part is the hardest part of open source and plays a huge role in determining whether projects are successful over the long term. More than anything else, I think that these topics are the "secret sauce" of open source.
The best talk of the entire conference was Brian Fitzpatrick and Ben Collins-Sussman's talk How Open Source Projects Survive Poisonous People (And You Can Too). This was a hugely practical talk on dealing with difficult people. Part of the reason that their talk was so practical is their opinion that a strong community is the best defense when dealing with difficult people. So not only did they discuss difficult people, they also discussed what a healthy community looks like. Fitz and Ben are developers on the Subversion project -- Fitz is also an a Apache guy -- as is Karl Fogel, author of Producing Open Source Software. I think that the Subversion team's work in helping people understand community building is growing to be (at least) as significant as the work that they are doing by producing Subversion itself. I hope that Fitz and Ben will be posting their slides soon.
Other talks that I really liked: Jeff Waugh's talk on the Ubuntu community. It was a tough choice to go to this talk because it was opposite the panel "The Art of Community" which had some friends on it. For some reason that I can't explain, I had not really looked carefully at the governance and community organization of Ubuntu. The problem is now rectified, but I wish that I had paid attention sooner (kind of like Eclipse). Jeff started by talking about shared vision and shared values. I think that it is somewhat common for open source projects to have some kind of (codified, even) shared vision. It seems to be less common that they have explicitly thrashed out what the shared values of the community are. That lack of values is one of the sources of tension in communities. I am very interested in a lot of the things that the Ubuntu folks have done.
r0ml was all over the place at OSCON -- I think that he gave 3 presentations, including a keynote. Having sat through the first two parts of his "The Semasiology of Open Source", it was "inconceivable" that I would miss the final portion. As always with r0ml, the presentation skill and style is as much the draw as the content -- look for the audio when it hits IT Conversations.
Karl Fogel gave a great session on tools for facilitating open source communities. I am definitely an admirer of Karl's work, and it was great to meet him in person after the session and tell him a bit about the impact that his book is having amongst people that I know. One of the things that I have been thinking about is the need for better tools to facilitate the entire open source process, and Karl has been doing some good thinking about this, which he shared in his talk. I hope that he will be posting his slides or some other kind of write up soon.
I've already gone on record as being "not a fan" of the 15 minute keynote format. I'll make an exception for r0ml's 15 minutes of presentational virtuousity. However, the other two keynotes that got my attention were longer than 15 minutes. Damien Conway did a wonderfully entertaining keynote lampooning various product oriented keynotes. I can only assume that his keynote was inspired when something inside of him snapped. This keynote will not translate well to podcast, since you'll miss some of the accompanying video cues. I hope that somehow the full video winds up on the web. Eben Moglen delivered a speech that epitomizes what I think a keynote should be. He started by taking on Tim O'Reilly's question "Do licenses matter?" and showed why in this day of "open source triumph", licenses still do matter, why the desktop and pant's pocket are still important, and called upon the open source community to do their part in answering the question "do users have rights?".
Last year's OSCON was the first conference that I attended with a camera, and a photo that I took accidentally (I messed up the white balance setting)
accidentally (I didn't consciously enter - all you had to do was tag photo's the "right way") made the final group of the HP sponsored photo contest.
This year I actually paid attention to the directions and consciously entered some photos. I was very happy when one of my photos was selected as one of the grand prize winners:
My thanks to the gentleman that allowed me to take this picture (I asked before I took the shot). You can see the other prize winners here, and you can see all the photos that were entered here. There were lots of good photos taken for the contest, and I am happy that my skills with a camera are improving.
I spent yesterday at the first day of the Internet Open Space in Vancouver. Vancouver is just close enough to drive it -- three hours each way. I ended up staying in a cheap hotel on Wednesday night so that I would be good for something on Thursday. Once upon a time, I could drive five hours (almost) straight with no problem. Nowadays, I spend such a small amount of time in a car, which has led to a lack of driving endurance.
I've been following the identity space with varying degrees of closeness for a few years now. The open space was a good opportunity to get caught up on the state of the world. I was pretty interested in the Liberty Alliance when it was announced a few years ago. The ASF was listed as a participant, but for reasons which remain a mystery to me, nothing ever actually happened. In the meantime, there has been a small explosion of protocols to deal with single sign on for web applications. There appears to be some coalescing of that work around Yadis and OpenID. Other vendors like SXIP and Microsoft round out the space of identity protocols.
The first session that I went to covered efforts to produce open source implementations of the Liberty specs. Apparently these efforts are just getting underway -- ironic given where things could have been. Nonetheless, a good step. I was pleased to hear about the Lasso C library for Liberty -- this is important for scripting languages. Unfortunately, I'm less excited about the GPL license, which is going to make it hard to use in some of the settings that I am interested in.
David Recordon did an informative session on OpenID 2. OpenID is expanding its scope from authentication into other areas, most notably data transfer / profile exchange. I missed most of Drummond Reed's session on Yadis -- I just caught the end, which was mostly about XRI -- but there was enough discussed in David's session that I have a general feel for what is going on. I was also glad for the chance to meet David and Drummond (for the second time), since I'll be working with them on Heraldry. Meeting people at events like ApacheCon and PyCon has demonstrated that a little face to face contact can go a long way towards easing interactions via e-mail and other mediums.
During and after lunch, I attended a mega session. Dick Hardt's session on protocol convergence and Marc Canter's session on NoID4Me ended up merging. The theme of both sessions really focused on obstacles to adoption. Marc was pretty vocal about the needs that he has for PeopleAggregator, which drove a good portion of the discussion. There's general agreement about the need for convergece of protocols, but of course, each protocol team has a vested interest in their own, and feels that theirs is the protocol that should be converged to. Someone suggested that the various protocol developers take a month off from working on protocol stuff (a deployment sabbatical, Kaliya called it), and go help someone try to implement/deploy their protocol in a product setting. I think that this is a pretty good idea if people aren't doing things like this already. One other potentially positive development from this discussion was the start of a conversation on how to have SAML and OpenID work together. The likely areas seemed to be around authentication, and the use of parts of SAML for the profile exchange mechanism that's being considered for OpenID.
When I saw Kaliya Hamlin at Gnomedex, she told me about the Liberty People Service. This is the kind of thing that would be very useful to integrate into Chandler, so I made sure to attend Paul Madsen's session on the People Service. The session was dominated by technical content as people tried to understand how the service actually worked. Despite being unfamiliar with most of the Liberty specs, I found that I had no trouble following the discussion. I spent a year or so doing some consulting on the WS-* web services stack, and that experience made it possible to follow along. I had also read the People Service whitepaper. which probably also helped. I was disappointed to hear that there are no implementations (other than private prototypes) of the People Service that someone could get a hold of and play with. In this day and age, I expect a spec to be accompanied by a reference implementation or something. Maybe I've just been hanging out with the wrong people.
The last session that I went to was Mary Ruddy's session on Higgins, which is "bus" which allows you to plug in identity protocols/stacks and provides an API for use by a diversity of clients: web browsers (via extensions), web services (via SOAP), and rich clients. There is a reference implementation that is written in Java, and seemed kind of oriented towards InfoCards. Mary said that someone was working on a C client, but she wasn't able to say much about that. I hope there will be news soon, since I am interested in either Python or Ruby implementations.
In the evening there was a nice dinner at a Chinese restaraunt. I had to skip out just a bit early, since I was driving home. Good thing too. I ran into night time highway construction on I-5 that caused me to miss my intended ferry. On the whole though, a worth while experience. I've been interested in getting support for identity into Chandler when the moment was right. It's my personal belief that People are a key way of organizing and relating to information. When I worked at Taligent, I almost worked on the workspace team, which was the team working on CommonPoint's equivalent of the Finder. The user metaphor for the workspace was called "People, Places, and Things". I wasn't there for the design discussions, but I don't think the order of the words is an accident. Bryan Starbuck and the Windows Contacts team are thinking some of the same thoughts that I am - not completely the same, obviously, since they have different problems.
It was good to see what else was happening in the same space of things as Heraldry. I was struck by how different the culture is between Liberty and the "user-centric" (I finally understand where that label came from -- and it's not obvious -- another problem that needs to be fixed in order to help people figure out what is really going on here) camps. Because Liberty is a pay for membership organization, there was often that "Liberty member" only situation. The last time I dealt with this was when I was dealing with the W3C and JCP. I didn't like it then, and I don't like it now. The Liberty stuff is well engineered, and very enterprise oriented - the design dials were turned towards maximum security, a decision which I can understand and appreciate. As I listened throughout the day, it struck me that I was re-living the J2EE vs non-J2EE/Ruby on Rails conversation. J2EE is an enterprise strength stack and there are some organizations that really need all the features and specs that go with J2EE. I think that these are the same organizations that need (and helped start) Liberty.
Other observations: I picked up one or two practices from Kaliya's facilitation of the open space, and maybe we'll try them at the next Mind Camp. There were very few cameras around, which made me somewhat self conscious about taking a lot of photographs. But I did take some, and the set is up on Flickr, including shots of some of the flipcharts.
If you were interested in something that I didn't attend, notes from many of the sessions are up on the IOSVan wiki.
I am going to be one of the mentors of the Heraldry project that has been accepted for incubation at Apache. The initial goals for Heraldry are:
- Expansion of Yadis and OpenID libraries into additional languages beyond the existing Python, Ruby, Perl, and PHP libraries
- OpenID authentication specification revision to fix known security considerations, investigate compatibility with the DIX IETF proposal, describe Yadis integration, and allow either an URL or XRI be used as the End User’s Identifier
- Continue the development of a data transfer protocol on top of OpenID to allow the exchange of profile data as well as other secure messages
- Investigate existing mechanisms for profile exchange, namely Sxip 2.0 and SAML, and investigate how they would be layered atop OpenID
- Integration of the OpenID Authentication protocol with the Higgins framework to provide desktop integration
- Extension of OpenID to support non-browser based authentication use cases. ie authentication to a Subversion server, creation of mod_authnz_openid, using your OpenID Identity without modifying the svn client-side tool
I've been interested in the digital identity space for some time, and I''m looking forward to getting more directly involved. I hope that some of you will too, this is an important area.
[via Hack the Planet Innovation Happens Elsewhere ]:
Ron Goldman & Richard P. Gabriel posted Innovation Happens Elsewhere, their book about corporate participation in open source projects.
This year Chris and Ponzi asked me to shoot some pictures during Gnomedex 6.0, so I spent a lot of Gnomedex running around with a camera in my hand. This post is the usual roundup of impressions of the conference. I'm going to write a second post about the photography experience.
The appearance of John Edwards was one of the big deals of the show, hitting the front page of the Seattle Post Intelligencer over the weekend.
Senator Edwards
Lots of people seemed focused on whether or not Edwards was "their" candidate or not, and on whether or not he got it. Edwards got lots of props for admitting that it was very hard for him (and other politicians) to break out of the guarded facade that has been the standard for politicians for many years. I think that the public also has to break out of its old way of relating to and viewing politicians. Before Edwards arrived, Chris Pirillo pled with the audience to use this as an appearance as an opportunity to help Edwards learn about "us", the technology world and so forth. I was struck by how a conference full of bloggers slipped right into treating Edwards as a political expert and peppering him with questions about his positions. Since I was shooting the show for Chris, I got the chance to be in the green room with Chris, Ponzi, and Edwards both before and after Edwards went on stage. Afterwards, Chris was apologizing to Edwards because the discussion ended up being much more political and less of the educating that Chris was hoping for. Edwards turned to Chris and said "You know, you just can't stop them from asking the political questions". It seems that the public is as programmed as the politicians. Somehow we need a way to break the cycle.
Amazon CTO Werner Vogels
I found Werner Vogel's session on Network Neutrality to be very informative. It was personally useful to me to get a good summarization and overview of the state of the debate. He cited the Wikipedia entry as a good reference for those interested in tunneling deeper.
Bloglines gave Big Wine for Big Ideas
The juxtaposition of the Bloglines Big Ideas session with Steve Gillmor's Attention session was quite amusing. The winner of the Blog Ideas session was the idea that an aggregator should figure out what you are interested and help filter out the stuff that you aren't. I'd call that an attention+reputation based aggregator, but that's just me. Gillmor announced the "Attention Operating System" - the product of a venture between GestureBank and root.net. This is something I'm going to be keeping my eye on.
An interesting thing that Dave Winer said during his session was something to the effect that manufacturing companies are going to be come outsourced services to make stuff for people that have ideas. I think that this meshes very well with the themes that Eric von Hippel has been writing about in Democratizing Innovation
Kaliya Hamlin, Identity Woman
Kaliya Hamlin (Identity Woman) did a great impromptu session on the gap between the civil society (users) and the social tool building sector (developers). One of the efforts that she mentioned was the Interra project. Kaliya's profile has been rising recently and with good reason. It was good to see Dave Winer and Marc Canter vocally supporting her as the discussion leader. Gnomedex MVP indeed.
There was a much publicized confrontation between Dave Winer and Blake Ross, which seems to be on its way to a resolution. I'm happy that there was a resolution, but as I watched the incident there was one thing which really surprised me. Both Dave and Steve Gillmor chastised Blake (and the Firefox project) for being non-transparent, particularly with respect to product plans. The thing that surprised me is that both Dave and Steve are very savvy, and yet they seemed unaware that the product plans for Firefox are up on a public wiki, that the development is coordinated via public newsgroups and so forth. If people like Dave and Steve think that product plan information is secret the way that it is in proprietary software companies, then we in the open source community as a whole need to really rethink how we are communicating with users.
Chris did a session with some VC's where he pitched them on TagJag in front of all of Gnomedex. I though that this was a pretty educational session for people interested in getting a project funded. Jeff Clavier has more on what happened.
In addition to the zillion posts in the blogosphere, you can also see the notes that the indJet folks were taking with Mind Manager. So far only the day 1 notes are up.
This the first conference that I've attended using the official unconference format (Gnomedex used the regular speaker format last year). Werner Vogels wrote:
Beyond this the conferences that focus on participation are best served by the Open Space approach. I don’t think the “unconference” hybrid model is as effective as Open Space. Unconferences still rely on big names and predefined topics to restrict the conversation. In Open Space all the participants come together on the first day to define the topics to be discussed and anyone can propose a topic within the theme of the conference. Participants then go to take part in the discussions they are most passionate about. There is some additional structure around the process to make sure everyone learns about the details of every topic that was discussed. The outcome depends a lot on the theme or the goals of the conference, but in general I have found that the participants feel extremely empowered by this approach.
The goal of Open Space is to make the whole conference one long coffee break …
I definitely agree with this, and Ethan Kaplan made note of the asymmetrical nature of the format during his session (I wasn't wowed by Ethan's session, but there's a lot of good stuff in his Gnomedex wrapup). For me it was still the case that the very best parts of Gnomedex were single person or small group interactions that I had with people during the parties or in the hallways.
One of those great conversations was with Philip Pearson, whose blog I've been reading for years, and who is now working on Marc Canter's People Aggregator. Philip just put up a post discussing the details of the People Aggregator API.