Category Archives: Open Source

Nobody Said That Open Source Projects Were All About Customer Service

These are sort of ancient (two and a half years old), but I just ran across them today and found them to be emblematic of a cultural defect that plagues many open source projects. These are a couple of feature requests (for the same feature) filed against the file-transfer utility FileZilla:

#2648: Feature request: Support Amazon S3 (closed)

#2741: Feature request: Amazon S3 (closed)

How many things are wrong with this? The fact that the person who shut down the feature request did so unilaterally, immediately, and with absolutely no discussion? The fact that the person used a pseudonym that doesn’t link back to any kind of profile or policy, so there is no way to get context on who this person is or why they made their decision? Or the arrogant tone of the response, which almost ensures that the people who took the trouble to file these feature requests will never do so for this project again?

For commercial products, feature requests are gold. Clearly, for some open-source projects, feature requests are an annoyance at best. It may be possible that FileZilla’s mission is “support dessicated IETF and W3C standards only,” but there’s no way for a civilian user to know that. Most civilians look at FileZilla’s mission as “transfer files from one place to another.” In that context, this kind of feature request is not unreasonable, particularly since many other file-transfer utilities (including the commercial product Transmit, which I use on OS X) have supported Amazon S3 for some time. If it’s really unreasonable to support a mode of file transfer because it wasn’t part of an IETF standard codified in the 1980s, then I have a new feature request for you: plugins. Just like Firefox does. Duh.

Ultimately, the technical solution to the problem isn’t really the issue here. Maybe providing this feature is too hard or outside the scope of the project’s mandate. But if that’s the case, then say that (and take a second to link to more information about your rationale). If somebody who worked for me provided such glib, dismissive responses to a feature request, they would be fired. The fact that we’re probably dealing with a volunteer here is not the issue. The fact that FileZilla is a free/open source project should also not make a difference. The snotty attitude (for this and many other open-source projects)  poisons the ecosystem and ensures that the software remains second-rate.

Your open-source project is not your fiefdom.

Matt Mullenweg: “WordPress Themes are GPL, too”

Link: WordPress › Blog » Themes are GPL, too

One sentence summary: PHP in WordPress themes must be GPL, artwork and CSS may be but are not required.

I don’t see this doing much to calm the shitstorm over commercial WordPress themes (missives from attorneys seldom do); it definitely draws a line in the sand and clarifies something that had been a subject of debate among the WordPress developer community. At the same time, it would be nice if the WordPress business did more to support commercial plugin and theme developers (whether the code is GPL or not shouldn’t matter) rather than just providing the occasional blog link or issuing/refuting fatwas.

Product Managers, Lawyers, and Google Chrome

Product managers have an interesting relationship with corporate attorneys. In my various product management jobs I had to deal with attorneys quite a bit, but this kind of interaction clearly doesn’t happen often enough, for reasons I can sort of understand (lawyers can be intimidating, they frequently say “no” in a overly authoritative way that evokes images of the apocalypse, and in a big company they sort of operate in their own little world).

In the consultancy I have to talk startups’ attorneys off the ledge quite a bit. I have two talks that I find myself giving over and over with lawyers: the Open Sourcing This Tool Does Not Invalidate Our Entire Business talk, and the You Don’t Get To Invent Your Own Open Source License talk.

So there can be a pretty big divide between what lawyers want and what product managers want. Their interests are slightly out of alignment (product managers want to deliver feature functionality to customers; lawyers want to insulate the business from legal risk), but that’s okay. But it does mean that these two roles need to figure out ways to communicate and negotiate to move the business forward.

Not too many people get excited at the prospect of a meeting with a lawyer, and lawyer-wrangling is not the kind of activity that product managers get much credit for. There were several developer products my team released at Yahoo! that would not have seen the light of day if my team hadn’t devoted a bunch of time to convincing the attorneys that it was in the company’s advantage to releasing them. We certainly didn’t devote the majority of the time that went into creating these products, but it’s a fact that if it weren’t for the time we put in with the lawyers, the products wouldn’t exist today as products (they’d be a set of firewalled APIs or internal tools).

So I was thinking about this dynamic this week following the release of the Google Chrome browser. The product used the standard Google licensing agreement, which gives Google a non-exclusive license to anything you submit to a Google service. Because they used the same license on the browser, people who didn’t read or understand the legalese came away with the impression that Google owns everything you do using the browser. And “non-exclusive” is key here (it means they can use your data — in a search index, for example — but they don’t “own” it). Still, it freaked some people out and for good reason — the one-size-fits-all nature of a license agreement that’s appropriate for a web site isn’t necessarily going to fit well for a browser product.

Google has since said that they’re going to look into the licensing and retroactively remove the clause from the license agreement, but in a lot of ways the damage is already done — the license kerfluffle culled some momentum from their launch and made them appear less than thoughtful. Getting this stuff right is the kind of thing that a good product manager does.

.NET Developers: Recommend Your Favorite Open-Source Projects Here

After literally years of trying, I’ve finally succeeded in getting the VSLive folks to let me do a pure open-source talk at the conference. The talk is called Codeplex’s Greatest Hits. The idea is to take a bunch of different cool open-source projects and provide descriptions of them as well as working code demos. The talk is 75 minutes long, so I imagine I’ll have time to do quick demos of between 6 and 8 different projects, of which I already have three or four picked out.

In the spirit of open source, I’d like your help on this. If you’re a .NET developer and you have a favorite open-source tool, post a link to it in the comments. (The tool doesn’t have to be hosted on Codeplex, but it does have to be open-source.) It would help if you also explain why you like it, what you’re using it for, etc. It is totally OK to recommend your own project.

This talk will take place at VSLive Orlando, May 12-16. Once again, the good folks at the conference have provided a discount code for lucky readers of this blog; use the code SOMCM when you sign up for the conference, to get a Gold Passport for $300 off.

kick it on

Google Makes Its Entry Into the Wireless World

Link: Google Makes Its Entry Into the Wireless World

"John O’Rourke, general manager of Microsoft’s Windows Mobile business, said he was skeptical about the ease with which Google will be able to become a major force in the smartphone market. He pointed out that it had taken Microsoft more than half a decade to get to the stage where the company now does business with 160 mobile operators in 55 countries around the world. ‘They may be delivering one component that is free,’ he said. ‘You have to ask the question, what additional costs come with commercializing that? I can tell you that there are a bunch of phones based on Linux today, and I don’t think anyone would tell you it’s free.’"

At first glance this quote looks like some spin put out by the incumbent to defend their business, but at second glance it makes you say "yeah…we’ve had open phones for a while now. What just changed? Is it even material?"

Google’s campaign to perform competitive jujitsu using the malevolently humming light saber of openness is nice and all, but it’s a fact that I can write an application for my Windows Mobile phone today without having to pay anyone any money or ask anyone permission. (I don’t think the same is possible for my wife’s RAZR.)

Update: Looks like Om Malik shares my skepticism; he’s asked some even more incisive questions.

Apache At 56%

Very interesting thread on Digg this morning called "Apache at 56% – what is wrong?" Apparently a number of factors are converging to erode the dominance of the Apache web server (which, as of two years ago, used to run 70% of web sites by some measures). Lots of interesting pro-IIS and .NET comments in the comments (the most vocal Unix/LAMP proponents seem to be embarrassingly out of date on the state of comparable Microsoft products — blinded, no doubt, by their rabid reaction to Microsoft businesses practices in the 1990s).

Several people pointed out that IIS today is very secure, performs well and is easier to configure (and the upcoming IIS7 adds a number of compelling features that bring it closer to feature parity with Apache). In discussions like this somebody always brings up the "free beer" argument (that Apache costs $0), but they neglect to mention that you can get the web server edition of Windows for just $300 now, and IIS/.NET is a more productive stack for developers by far. (I could easily burn more than $300 worth of time getting Apache configuration figured out.)

Cgen: Simplest .NET/MySQL Relational Wrapper That Could Possibly Work

Last week I attended and spoke at the MySQL conference. Some of the talks, particularly the ones that targeted system administrators rather than developers were over my head, but that’s useful information in itself — it serves as a reminder that sometime soon I’ll need to either learn the finer points of big-time MySQL system administrator or hire somebody who does.

It was particularly fun giving a talk on .NET to MySQL guys just two weeks after I finished giving a talk on MySQL to a room full of .NET guys. It was also fun seeing my client Alfresco and hanging out with them in their booth, where they were doing demos and fielding lots of inquiries.

I’m just now getting around to firing up the blog-o-matic in earnest after four weeks of more or less non-stop conference-going, but I wanted to mention that I’ve released the tool that we use to create the data access layer. It’s called Cgen, and it lives here.

The idea behind Cgen is that you create an XML document that represents your database schema, and Cgen (which is packaged as a command-line tool written in C#) spits out a bunch of classes that make it easy to do the basic create, read, update, and delete operations that represent 80% of all database-driven applications. (For the remaining 20% of the data access code you’d need to write, the tool generates subclasses that you can add your own code to.) You can then compile these classes as a .DLL or, if you’re making an ASP.NET 2.0 web application you can just dump the classes into the application’s App_Code folder and .NET will figure out how to compile the classes.

We use code generated by Cgen as our data access layer for It has worked splendidly and saves us a bunch of time. At the same time, Cgen doesn’t have a ton of bells and whistles. I realize that this is probably the one millionth object/relational code generator in the history of software development. I took a look at other object/relational mappers like SubSonic, and I used NHibernate on an intranet project I did at Yahoo in 2005. But for Approver I wanted a tool so simple that you didn’t spend more time learning the tool than you would have spent writing the code yourself. I also needed something with good support for .NET 2.0 and MySql (which was difficult to find in March 2006 when I started using MySQL).

Adobe Open-Sourcing Flex

This is exciting: press release here, developer info here, FAQ here.

When Flex first came out a few years ago, there were mutterings that they’d provide support for languages other than Java — maybe open-sourcing the SDK will open the door to making that a reality (particularly in light of what Miguel said the other day about Flash and Silverlight).

Miguel de Icaza on Silverlight, Flash and Open Source

Link: Microsoft Happenings – Miguel de Icaza.

"Lacking a viable open source-based competitor today for rich media delivery on the web and given the current state of both Flash and Silverlight, it is in open source’s best interest to ensure that Flash gets ahead of the competition."

This makes sense to me thought I suspect it will be hotly debated in the open source community because of open source’s historical hostility toward Flash. But there’s nothing like a new Microsoft initiative to get open source developers to change their minds about their sacred cows.

Patent Fights Are a Legacy of MP3’s Tangled Origins

Link: Patent Fights Are a Legacy of MP3’s Tangled Origins

Microsoft says it was doing the right thing: paying a German rights holder $16 million to license the MP3 audio format, the foundation of the digital music boom. Then an American jury ruled that Microsoft had failed to pay another MP3 patent holder, and slapped it with a $1.52 billion judgment.
But the MP3 toll gates do not end there.

The confusion stems from the number of companies and institutions — including Thomson, Royal Philips Electronics and AT&T (through Bell Labs, now part of Alcatel-Lucent) — that worked to create the MP3 standard almost two decades ago. The patent claims of those and others are increasingly being backed up by aggressive enforcement efforts, including lawsuits and even seizures of music players by customs authorities.

This situation is a mess but the story completely biffs it by failing to mention that there’s a free alternative to MP3. The fact that only twelve people use it is beside the point — It’s as if the reporter did a story on a mass-suicide without asking why all the nice people killed themselves.

The situation with MP3 patents is a very interesting counterpoint to the way that Microsoft has attempted to taint open-source over the years. In the past Microsoft argued (speciously) that there was huge risk for businesses that permitted to let open source anything come within 100 miles of their code base. Now we find that the real threat is not open source but software patents, and, ironically, the biggest victim may be Microsoft itself.