Monthly Archives: November 2010

Enabling Compiled JavaScript in Appcelerator Titanium on Android

If you’re not aware of Titanium, you should be.  It’s a really easy way to write apps for iPhone and Android from the same codebase using JavaScript.  Its all Free Software too!

Anyway, one of the cool features it offers is compiling JS to Java bytecode on Android.   This improves speed, at the loss of some development features, so its off by default in development mode.  However, when benchmarking your app, you may be willing to lose the development features to get a better sense of how the code will actually run in production mode.  Enabling this is quite easy.  Just add the following to your tiapp.xml file:

<property name=”ti.android.compilejs” type=”bool”>true</property>

Canonical, Launchpad and Unity

So there is obviously lots of talk about Canonical’s decision to use the Unity shell on top of GNOME, particularly around events that transpired this weekend (which I’m not going to link to since I have no interest in fanning flames). However, I think something needs to be said that is missing in the context of all of these debates. I hope to say this as irenically as possible. In short, I’m not a hater.  Further, any troll comments will be deleted by me.

Although this should be obvious, I’ve not yet seen anyone state it frankly: Canonical has a vested interest in co-opting existing development communities and reconstituting them around Launchpad. This isn’t because they are evil, its because it is their business model. Just imagine if SourceForge made a distro. Would that distro not contain as much SourceForge hosted software as possible? Wouldn’t they try to innovate the distro in order to create a community around their code collaboration platform? Canonical’s business model is, in part, to rapidly innovate their OS using software that is hosted in Launchpad in order to draw users to Launchpad. Canonical is creating a platform, much like Apple:

  • iTunes == Ubuntu One Music Store
  • .Mac == Ubuntu One Sync
  • iOS == Ubuntu
  • App Store == Launchpad
  • DRM == Bazaar (which, some of its fantastic technical merits aside, largely serves as a way to lock people into Launchpad)

Although you might laugh at the App Store / Launchpad comparison, you must realize that in FLOSS circles we buy our Apps via the economy of code (or other contributions).

Unity is just the latest in a string of these attempts.  From Ayatana (a GNOME-based UI usability project that is unrelated to GNOME and hosted by Canonical), to AppIndicators, to Bazaar (a RCS used almost exclusively by Launchpad), to the constant complaint that “Canonical doesn’t contribute upstream”: this is not a mistake, it is Canonical’s business model.

But! But! Isn’t this evil?!

In a word, maybe.  But, I tend to think this is not the case (at least for now).  Canonical has released almost everything they do under an OSI (and I think FSF) approved license.  For this, they are to be commended! Thus, I don’t go as far as Bradley Kuhn (for whom I have great admiration).  At worst I think we can say that Canonical is sort of like the kid who agrees to share, but only at his house.  This points to what I believe is the greatest current weakness of Free/Open Source Software: we have plenty of excellent software licenses which effectively and legally govern the exchange of software, but what we do not have is a way to enforce the various cultures of Free/Open Source Software.*  Thus, while many companies and individuals are participating in our communities, much tension is created when these entities don’t follow our various, and sometimes conflicting, mores.  This is further compounded by the fact that while we formally agree to the basic freedoms provided by Free Software, there is a lack of formal agreement on the proper protocols and manners used when contributing to such communities.  I tend to think Canonical falls entirely in this grey area (intentionally or unintentionally).

I will agree with Bradley Kuhn on one important point: their current copyright assement does make gross evil possible.  If, as Mark has stated, Canonical has no such plans to misuse copyright assessment by making open source code proprietary, they should make a legally binding promise to this affect as part of the contributer agreement.  Such a simple act of good faith would, in my opinion, go a long way towards combating the “Canonical is evil” narrative that is currently circulating among certain journalists and bloggers.

* – I do not here mean to imply only that Free Software advocates and Open Source Software advocates have somewhat different cultures, but even that these cultures differ on a project to project basis, and sometimes multiple cultures even exist within a single project.