Archive for 2006

Of licensing

Sunday, December 24th, 2006

So Adium always has and always will be Open Source. Even the Adium 1.x codebase (not to be confused with the Adium X 1.x codebase) has been.

However, there’s all of these different problems associated with Open Source in general. For instance, a portion of the developers currently working on Adium prefer the BSD (the new bsd, 3 clause not the old 4 clause) license. And while a lot of them do, we can’t really change the licensing.

Open Source itself is rather funny in that if someone contributes something, what say do they get from then on out? Assumably they get a say over their contributions, but in reality they get a say over the entire kit. For instance, if I submitted a patch that was GPL for one of the more useful classes in the codebase, and it was accepted, the codebase could no longer be changed to say.. LGPL, until the Adium Project got my permission to change the license, or they redid my code with a clean room setup.

Clean Room?

But Chris, you ask, Chris, what is a “clean room” implementation? My apartment is pretty clean, is that it?

Why no. It’s actually kind of involved. Basically one guy reads and documents the code you want to relicense, and then another guy (or girl! girl hackers rule) writes new code based on the documentation. The bonus is you get a rewrite, and the con is the time spent plus losing already tested code.


So the interesting bit to this, and why I am posting this in the hopes of getting a response, is how do we take this with Adium? We’ve got a ton of code from people we just can no longer contact. We attempted to contact them all about 8 months ago in order to relicense or at least just have their approval in the future. As such, since it’s GPL V2 that they submitted in, how can we really move to a BSD license?

Or better yet, how do we move to the GPL v3? Now, I know the licensing states that we can, but that’s just a technicality. What about the moral ramifications of doing so? What if one of our contributors hates the GPL V3 and doesn’t want anything to do with it? How are we to know their wishes, and what if anything do we do about it?

Or better yet, we use OTR for encryption, could that be misconstrued as DRM in a court of law? I’ve seriously had someone ask me this.

The reason I ask this is because the GPL V3 is already held with a lot of contention in the Linux community, but nobody has really spoken about it in the Mac community as such. For instance, does any code compiled by gcc with a GPL V3 license mean that iTunes cannot be compiled with it, since it has DRM built in?

Stop yer yammering

So ya, it’s kind of interesting I suppose.

An Interesting Experiment

Friday, December 22nd, 2006

Along with the current beta‘s advancements, the introduction of Sparkle Plus allows for even nicer upgrading. A specific advantage of the system is the anonymous data submission which is an integral (although optional, for those of you wearing tinfoil hats) part of the upgrading process.

A nifty little program I’ve been working on with regards to the Sparkle project is our Sparkle Plus Information page. The page features graphs (bar and line) of the various data being submitted by Sparkle. A lot of the results are still inaccurate (for example, the submission of data can sometimes occur too often, swaying the results), but I believe they are an interesting thing to bring to light. Just wanted to pass on the cool information we’ve been gathering the past few weeks. 🙂

Update: Oh, I forgot to mention, the source is released under a BSD license. 🙂 You can check it out in our SVN at or you can browse it at our Trac SVN browser. Remember I still consider the code to be beta, so don’t be too alarmed at random bugs that crop up! The folder “adium” contains the adium-specific code that I use for the IMServices field (and any future Adium-specific fields).

This code, however, reduces the ability to coorelate data between different fiends to individual users. That is, it no longer stores reports as a report per person, but sums up the results given. This is both for privacy and practical purposes: we’d have millions of rows per year if we were to keep the data coorelated, and the processing time would be through the roof.

Welcome to a new Adium team member

Thursday, December 21st, 2006

Elliott Harris has accepted our invitation to join the prestigious powerhouse of development known by mortals as the Adium Team. Congratulations to Elliott!

Interested in getting involved in Adium’s open source development? Take a look at Contributing to Adium; there’s always room for more people helping out 🙂

The reddit Alien in an Adium Dock Icon

Monday, December 18th, 2006

The artist who creates the reddit homepage images has created a reddit Alien Dock icon pack for Adium. There’s even a link from reddit’s own help pages.

There’s also a digg-inspired contact list theme (not by the same author), in case you’re more of a digg fan.

Family released, villagers rejoice

Thursday, December 7th, 2006

Hey folks,

So for those of you who are interested in some of the stuff that we each do outside of Adium, take a look at this link to Family.

Evan and I have been working on Family for a while now, and we just released version 2.0. If you’re interested in Genealogy (family tree stuff) then definitely give it a gander.

– Chris

Journal programming

Sunday, November 19th, 2006

I did something cool a couple months ago in my work on Adium, and wanted to share the story and how to do it in your own open-source project.

A couple months ago, I started a branch in the Adium repo for “project parallelization”. The idea was to see what I could do to the Xcode project to make it more easily parallelizable: Xcode will parallelize the build process on a multi-processor machine, but some things (mostly shell scripts) are a bottleneck, being inherently non-parallelizable, so I wanted to remove as many as I could and optimize the ones I couldn’t.

A quick look over the Xcode project revealed that (at least in Adium’s case), this would be a rather big job consisting of many different operations. So I decided to keep a to-do list, and I decided to maintain it on the Adium wiki rather than in a local file.

The result is the ProjectParallelization page. It worked very well: most of the work was done in a few days. It also was very popular with the other developers, because everybody knew what I had done and was going to do as of the present time. Everything is lain out on the page; this promotes openness, since everybody knows what you’re doing.

I’m very happy with how it turned out, will do it again for any future branches, and recommend that others do it.


A good way to perform any large task on an open-source project is to maintain a journal on the project’s wiki (in addition to creating a branch in the version-control repository). This has two benefits:

  • It promotes your own productivity. You needn’t keep everything in your own head: Page everything out to a to-do list in the journal and maintain the list by crossing off items and adding new ones.
  • It helps other developers on the project understand what you’re up to.

Your journal should include:

  • A short one-line summary of the purpose of the branch.
  • A link to the branch.
  • A longer “Rationale” section describing the purpose is fuller detail. Where the summary above summarizes what you’re doing, the Rationale section should provide a backstory.
  • A to-do list.
    • Cross off items that have been done; include revision numbers (e.g. “DONE in [42]; REVERTED in [44]”). Ideally, you’re using something like Trac where these are linkified.
    • Nested items are encouraged.
  • Once the branch’s purpose has been fulfilled, analysis of results.

MSN Behaving Badly

Wednesday, November 15th, 2006

The MSN servers are currently experiencing some trouble. We’ve had reports of this from a lot of people, and well, there isn’t a whole lot we can do about it (since it’s a problem on Microsoft’s end), but we’ll keep you guys apprised of the situation.

In the mean time, this would be a great opportunity to check out XMPP (also known as Jabber), a free and open chat protocol. 🙂

Adium T-shirts

Sunday, November 12th, 2006

We’ve been wanting to create Adium tshirts for quite a while, and with 1.0 coming out, I figured this would be a good time to see about getting this rolling. Do you guys have any recommendations for shirt printing places? Sites like cafepress are out — we’re looking for something high quality, and we’re more than able to run our own store.

It’s a plus if you can get us in touch with an employee of the company you’re recommending. It would also be cool if the company printed more than just shirts (mugs, hats, other tchotchkes), but definitely not required.

Update: If you could leave an email address so we can contact you, that would also be really nice.

Downtime on

Friday, November 10th, 2006

This Sunday, November 12th, from 10PM to 12AM CST, we will be experiencing downtime — the guys at NetworkRedux will be putting in some more memory in our main webserver to handle the increased load from all the digg and tuaw hits 🙂

Also: trac and svn are up, but not operating at 100% just yet. We’re fine tuning things, so there may be some short, sporadic outages here and there. Sorry about all of this downtime — hopefully we’ll have all our new equipment running well soon. Stay tuned for more updates, folks.

Update to dmg background

Friday, November 10th, 2006

So we’ve started looking for a update to the DMG background. I made a post on the MacTheme Forums

If you’re so inclined or know someone who would be inclined to work on on a updated dmg background, go take a look.