OSCON Day 5: Maps as Culture

Today is the last day of OSCON, and the conference will be over at noon today. It’s been an amazing week, and I have tons of notes to write up, but I’m ready to be home.

This morning’s first keynote was entitled “Open Content: How Online Digital Libraries will Provide Access to Cultural Information in the 21st Century” and presented by David Rumsey. David Rumsey presented an amazing talk on the online map and culture collection he maintains. David presented an overview of how he believes libraries will evolve in the world of the Internet, and how the Internet can help libraries present collections.

Starting from a position of a private, comprehensive collection of cartographic information, Rumsey looked at how he could provide access to his information to researchers and the general public. He said he considered donating to a University library, but realized that they would put the works in a vault with his name on the door, and only a handful of people would see the works yearly. So he chose the Internet, providing high resolution scans and Java-based software which allows researchers to compare, overlay and examine maps. And he drew direct comparisons between Open Source software and libraries and access to information. Some choice points (I’m paraphrasing, I’m sure), which resonated with me:

  • “we can have access to the source code of culture”
  • “the growth of online library content will be accelerated by allowing participants to build open content collaboratively”
  • “california was shown as an island in this 1731 globe, some people still think it is”
  • “the english understood that information is power and that sharing information increases power”

And finally, “the 19th century was really into documentation.” It seems to me that what Rumsey is doing and what CC is doing are really trying to regenerate that fascination with documentation and documenting culture.

The second keynote, David Patrick of Novell (nay, Ximian), was a real snooze comparitively. I wouldn’t have wanted to follow Rumsey, but Patrick showed himself to be incredibily incapable at capturing the crowd’s imagination. Maybe I’m too focused on aesthetics and imagination, but a talk on “The Business of Linux” wasn’t that interesting. Maybe I’m just having flashbacks to hearing a Novell exec pitch Netware back when I worked for a VAR.

date:2004-07-30 12:14:40

The Lure of the Unknown

*Warning: I just re-read this post and it’s a little rambling…but I’m too tired to re-write it, so take it for what it’s worth.*

I was killing some time Tuesday afternon at OSCON and wandered through the on-site display of books provided by the good folks at Powell’s. It was there that ran across the dead-tree version of the Mono: A Developer’s Notebook, and was immediately tempted to buy it. And I have to ask myself, why? Why in god’s name do I need another language, another platform, another technology? What does Mono + GTK# + [insert Mono-specific-tech] here offer me as a developer that I don’t already get from Python + wxPython?

  • Cross-platform? Check.
  • Dynamic? Check.
  • Garbage collected? Check.

And yet, I’m tempted. I’m tempted because it’s there. I like learning new things, and I like playing with new technologies. I wish that I could play with a technology or product and somehow fit it neatly into my tech-world-view, but that’s not the case. Instead I’m stuck playing with something new or different and then later realizing that it’s no better than what I was using before, so I wind up porting my code back to what I started with because I know that platform/technology/toolkit better.

C# and Java also tempt me for cross-platform reasons (which I’m a sucker for). Yes, you can take a Python program and build a stand-alone application for Win32, Linux and Mac OS X. I’ve proven that. And it’s not that ugly. But it does require a “build” process on the front end. As C# and .Net begin to mature, I imagine more systems will ship with support built in. Ditto for Java’s JVM. Well, the JVM is already more mature. So my impression is that the number of system’s the JVM and .Net support is deployed on (without the user even knowing about it) is steadily increasing. This pre-installed “footprint” is appealing because it decreases the amount of work you have to do to deploy your app. Yes, there’s a definite delay between now and when you could count on the dependencies being installed; I don’t have a solution or answer for that. I’m talking about irrational interest, curiosity for it’s own sake here.

So what keeps me from totally buying into Mono/C#? Mac OS X. I have two Mac OS X machines and probably use them for at least 66% of my computing. GTK doesn’t support Mac OS X natively; it works, but requires use of X11. I don’t mind X11, but it’s no solution for end users.

Where am I going with this? Really, I have a point. Yesterday I attended Miguel deIcaza’s presentation on Mono 1.0, hoping to answer some of the questions I had about Mono and how I would use (and why I should). Miguel didn’t answer any of my questions directly, but he did mention Cocoa#, a project to bind the Cocoa libraries to C# (and other CLR languages, I guess). So that’s cool. Of course, I’d prefer it if there were some “compatibility” layer on top of GTK# and Cocoa#, so that you could write a single bit of GUI code and have it work on any platform. But I digress.

So now we have .Net/Mono, a cross-platform virtual machine which attempts to solve the same problem that Java attempts to: write once, run everywhere. I was already thinking that was something I should check out when I ran across an interesting item in this morning’s Daily Python URL: IronPython has been Open Sourced. IronPython is a CLR-targeted Python implementation, written by Jim Hugunin, who was also responsible for the early implementation of Jython. I first ran into IronPython at PyCon, and at the time it was interesting from a research point of view, but the code wasn’t available. With IronPython now available and working (albeit in an alpha state) on both Mono and .Net, I wonder how long it will be until I can create dot-Net (god I hate using that phrase) targeted bundles of CC apps that run on Linux and Win32 equally well?

date:2004-07-29 13:13:31

Tracking Mozilla Development

I ran across a few new sites today (mostly via Mozillazine), which I’ll be adding to my feed list. They all help track Mozilla/Gecko/Firefox/Thunderbird development. In no particular order:

  • The Burning Edge a blog which tracks the latest builds of Firefox (including interesting new checkins and bugs)
  • The Rumbling Edge similar to The Burning Edge, but focused on Thunderbird
  • Mozilla AOM Reference a quick reference to the largely undocumented Application Object Model
date:2004-07-29 12:29:10

Building for Windows

It’s a little ironic that the best session I attended yesterday was presented by a Microsoft employee, Rob Mensching. Rob presented on WIX, the Windows Installer Xml toolkit. WIX is a set of tools which allow developers to “integrate setup into the build process.” After Rob’s presentation, I’m convinced that WIX is exactly what we need at CC.

At CC, we have two programmers on staff, and I’m the only one who has the luxury of coding full time. So when it comes to developing software, I’d much rather spend my time developing new features than writing setup.exe. So WIX will allow us to define our setup process in an XML file and then generate the installer in the same process we use to “compile” (in quotes, since we use lots of Python and it’s really just setup.py).

And I suppose it’s good to hear from someone whose ideas and beliefs place him in a different place on the Stallman-Gates Openness Scale.

date:2004-07-29 11:20:39
category:development, oscon2004

OSCON Day 1 Keynotes

Today is the opening day of the Open Source Conference. After two good days of tutorials, I’m ready for diverse sessions on new and emerging topics.

This morning’s keynotes were presented by Tim O’Reilly and Robert Lefkowitz. I went into Tim’s keynote from a somewhat cynical place: of course Tim is the opening keynote for a conference his company is sponsoring, and of course he’s going to talk about his company’s “radar.” So here it is: I was wrong. Tim’s keynote, while not earth shattering, had a few interesting points regarding the commodotization of Open Source software and software components. Towards the end of his keynote, Tim laid out a set of challenges. His challenge to developers (I may be paraphrasing here) was to: * Napsterize the address book and the calendar * Rethink email and IM as social software * open source iSync clone and open standards for interchange * create federated identity systems

And the question I was asking myself when I saw this slide was, “is this Chandler?” Doesn’t Chandler promise to provide “peer-to-peer” shared calendars and contacts? Doesn’t Chandler promise to define open standards for interoperation? And doesn’t Chandler intend to be a platform, not “just” an application? As far as I can tell, yes, yes, and, er, yes. It’s reassuring to see smart people coming up with the same ideas independently.

date:2004-07-28 15:18:30

It’s just buttons and stickers, people!

Those of us at CC are encouraged to blog our public (or semi-public) appearances, and I so I dutifully posted my attendance at OSCON this week. In an effort to lighten my baggage and meet with other developers, I offered CC schwag to anyone who tells me why they love CC. Who knew people would take me seriously?

PJ and Kevin posted comments in the CC blog, as well as posted in their own blog about my offer, and now I’m a hunted man. They even tracked down the CC team picture, just for reference. Of course, I like this picture better, but the one they used does look more like a line up.

date:2004-07-27 18:06:31

mozCC 0.8.3 released

(reposted from mozCC news)

mozCC 0.8.3 has been released, and all users of mozCC are encouraged to upgrade. mozCC 0.8.3 is a bug fix release which corrects conditions which caused Mozilla and Firefox to lock-up when certain license combinations were encountered. Pages impacted by this bug include the Creative Commons license selection process.

Firefox users can seamlessly upgrade by going to the Extension Manager, clicking on mozCC, and then clicking the Check for Updates button. The XPI can be found in the release archive.

As always, comments, feedback and bug reports are welcome. Send them to mozcc@yergler.net.

date:2004-07-27 12:04:03

The Importance of dot-slash

Sometimes it’s the little things. Often it’s the little things, I guess. I like to write cross-platform software. The less I need to worry about whether I’m building on Mac OS X, Win 32 or Linux, the happier I am. mozCC was one of the first projects I developed that had to run on all three platforms, and as such, I wrote a set of scripts and tools for building and testing the code base.

During the development of 0.8.0 I transitioned from my original build script, make_jar to a more generic version I developed for DemoExt, build.sh, which was generally a “good thing.” Around the same time I noticed that building mozCC on Mac OS X didn’t work quite right. OK, it didn’t work at all. It would appear to build, but installing that build just didn’t work. Nothing. Nada. No acknowledgment that mozCC was installed at all. Of course, I was in a hurry to get 0.8.0 out the door, so I turned my chair, turned on my Linux box, and proceeded to build there. And funny thing, the builds from Linux worked just fine on Mac OS X.

Today I’m working on fixing a serious bug in mozCC. I’m at OSCON, and only have my iBook. And I had completely forgotten about the build problems from 0.8.0. After beating my head against the wall for an hour yesterday and about an hour this morning, I finally figured it out: it’s all about the ./ (dot-slash).

Build.sh is a simple shell script that assembles the necessary files for a Mozilla extension in the appropriate relative locations for the JAR. To pull out the list of files to zip up into the JAR, it uses the UNIX utility find. In particular,

find ./content -path './*CVS*' -prune -o -type f -print | grep -v ~

What I found was that on Linux, find returns a list of files with relative paths and no leading dot-slash. For example,

 1926  06-25-104  12:47   content/mozcc/prefs.xul
 1560  06-25-104  08:25   content/mozcc/prefsOverlay.xul
 2708  06-25-104  12:47   content/mozcc/seamonkey-prefs.xul

Mac OS X (and maybe BSD, I don’t know how deep this goes), on the other hand, returns files with a leading dot-slash:

 1926  06-25-104  12:47   ./content/mozcc/prefs.xul
 1560  06-25-104  08:25   ./content/mozcc/prefsOverlay.xul
 2708  06-25-104  12:47   ./content/mozcc/seamonkey-prefs.xul

And this breaks Mozilla and the extension. A subtle change to the find command, namely removing the dot-slash, fixes the problem (at least on Mac OS X). I’ll have to test it on Linux to make sure it works in a cross-platform manner, and then I’ll update DemoExt.

Success: the sweet taste of frustration.

date:2004-07-27 11:23:15
category:development, mozCC

Hello, Portland

I arrived in Portland on Saturday night and in the 48 hours since have fallen in love with the MAX. The MAX is Portland’s light rail public transport, and while it doesn’t go everywhere, it’s darn handy. Our hotel is right next to a MAX stop, so getting around is pretty easy. Garrett and I spent yesterday wandering around Portland, getting the lay of the land. We didn’t actually do any “classic” site-seeing, but did do a little shopping and enjoyed the lack of sales tax. Go Oregon!

Today is the start of the OSCON tutorials. I’m attending an introductory session on XSLT this morning, which, while a little dry, is definitly informative. We’ll be introducing an XML+XSLT version of the license selection engine soon, so I guess it’s good that I get up to speed. This afternoon I’ll be attending a tutorial on programming using Rendezvous (nay, ZeroConf), which seems to hold possibilities for CC. I can honestly say I have no idea what sort of possibilities, or where they’ll crop up, but it seems like a technology that would be useful for remixing/collaboration. Somehow. Somewhere.

date:2004-07-26 13:30:18