Music Personal

Sony headphone adapter = #EPIC_FAIL

It was about 10pm last night and I figured I’d just do half an hour’s practice on the guitar as I often do. I often use headphones to avoid causing undue annoyance to the neighbourhood, and like a lot of music equipment my Pod has a 1/4″ headphone socket, despite the fact that most regular headphones use a 1/8″ mini-jack, so I use a converter that came with the headphones (Sony in this case), pictured below.

sony_headphone_adapter

Looks innocent enough, doesn’t it? Well, it’s not – when I came to remove the jack from my Pod (because I was routing via my amp today), I was dismayed to discover that only 2/3rds of the adapter actually came out; the section from the first divider upwards stayed firmly in the socket. On examining the adapter, I saw that the tip was only held on my 4 fairly small metal clips, which obviously after repeated use had failed. These were not particularly cheap headphones, they’re quite decent, but clearly Sony had cut costs on the 1/4″ adapter thinking that not many people use it. Bastards.

Fortunately I did manage to remove the offending part but it took almost an hour of swearing and building specialised tools from bits of wire, screwdrivers and tweezers. These sockets are quite deep and thin, and it wasn’t helped by the spring-loaded clip that is designed to stop the plugs coming out easily. I thought I was going to have to send it in for repair, because I would just void the warranty by taking it apart myself and the logistics of the socket were daunting, but luckily bending some wire into a very long & thin hook, several retries (there are several pieces to the end section and they all came out separately) and a lot of irritation eventually bore fruit.

So that was almost an expensive piece of kit wrecked by a £1 converter. I think I’ll buy a decent one next time instead of using what comes with the headphones.

Games Personal

Steam’s L4D2 pre-order price shock – it’s reasonable

l4d2I like Steam. Sure, you’ve got all the people moaning about not being able to sell on their games afterwards, but I don’t care about that – maybe because I don’t buy that many games compared to some, and I tend to hold on to them regardless more often than not.

It’s the nearest thing to XBox Live on the PC and it does a pretty good job of it. Buying games and keeping them up to date is simple, and it’s indie-friendly with far less of the snooty attitide that seems to be increasing in the console online marketplaces now they’re established.

But one thing holds it back – prices. The simple fact is that it should be cheaper to buy a game online than to buy it in a physical box. To say otherwise is utter madness – after all the boxes have to be manufactured, shipped, placed on shelves and waved through a barcode scanner by a bored teenager on their Saturday job – each stage of which sucks a little more money out of the loop. Even Amazon has to handle physical boxes and add or pay for postage & packaging. The cost of some digital storage and bandwidth pales in comparison, so why can I buy most of the games on Steam for less on Amazon, and even in my local HMV? It’s insanity.

My feeling is that this bizarre situation is forced upon them by publishers, who are simultaneously being leaned on by the physical retailers. This is backed up by the fact that any game that is not by Valve, and is also available in stores, is more expensive on Steam than it is in the shops. I guess if Best Buy threatens not to put your game on the shelf if you let Steam sell it for less, you don’t have much choice but to comply, even if that actually perpetuates the reatiler’s control over the industry, to everyone elses detriment.

Anyway, we were playing Left 4 Dead’s Crash Course expansion (pleasantly free on PC, and a superior experience there anyway) and helpfully a Left 4 Dead 2 pre-order offer popped up after we finished the game. The hooks that were offered were early access to the game and demo, and an exclusive in-game baseball bat. The asking price: £26.99, discounted from the normal price of £29.99. My first reaction was ‘ok, but it’ll be cheaper on Amazon’: except that when I looked, it wasn’t. It was precisely the same price in fact (although in this case Amazon discounted it from £34.99).

So, we pre-ordered on Steam since I’m sure it’s going to be awesome. Still, I think it could be even cheaper given that Valve must get much less than that from Amazon’s sale of the game. Hopefully as digital distribution continues to mature, we’ll see the prices come down. Games are too expensive at retail by a large margin  (particularly on consoles), it’s hampering mainstream adoption, driving the second-hand sales market and piracy, and making the hit-driven mentality of the industry worse. Games need to be cheaper at first purchase, and need to sell for longer outside the first month on sale. Movies make the majority of their money from DVDs, not the box office, but the ‘big’ games are still stuck in a chase for a box-office smash. Services like Steam provide a route to a more sustainable model – and by sustainable I don’t just mean the environmental benefits of not manufacturing more plastic and shuttling it around the world with fossil fuels, I mean that games could last longer there and provide a longer tail return for their developers, all while costing the public less.

Ah well – I guess parity is at least a start. We won’t make much more progress towards sanity until the hands of the big retailers can be slowly prised from the throat of the industry.

Games Music

10 Queen tracks coming soon to Rock Band

queenOh hell yes.

Finally, one of the best British classic rock bands that was sorely missing from Rock Band makes an appearance on 20th October, and how:

  • Another One Bites The Dust
  • Crazy Little Thing Called Love
  • One Vision
  • Fat Bottomed Girls
  • I Want It All
  • I Want To Break Free
  • Killer Queen
  • Somebody To Love
  • Tie Your Mother Down
  • Under Pressure

Now, I could lament the absence of Don’t Stop Me Now, and Princes of the Universe which I would have loved, but really that would be being petulant because this list is pure class. Anyone with any sense has been crying out for Queen in Rock Band for ages, and now we have a duty to shut up and save our voices for some serious (or rather seriously bad) Freddy Mercury impressions. Now, where did I put my sparkly low-cut one-piece? :D

[Edit]Oh, and huge kudos to Harmonix for bringing us some Kula Shaker this week. Feel free to follow in that vein with some Ocean Colour Scene, Happy Mondays, Seahorses and Shed Seven guys :)

Development Tech

Early-stage Git/Mercurial/Bazaar evaluation thoughts

A few weeks ago I decided to start seriously investigating switching to a DVCS. I’m currently up to my eyes in work and haven’t really had time to progress that in the last few weeks; however some absolutely abhorrent performance / reliability problems with Sourceforge’s Subversion server made a large merge process so costly to me (in the end I had to commit in small chunks, breaking transactional consistency, and it needed so much babysitting because of the speed / reliability it took me 4 bloody hours just to commit!!) that it bumped it up my agenda a bit. I don’t have to do merges / commits of that size very often – in this case the problem was wholesale license header changes for our MIT switch – but still, it’s totally unacceptable to have to deal with that. I raised a support request with Sourceforge, but I’ve seen other reports of bad SVN performance from several weeks ago from others, so I’m not holding my breath. It’s time to start considering alternative hosting I think.

I’m not done with my evaluation yet, because I just don’t have the dedicated time I really want to spend on this right now. But, here’s my early-stage results.

Git

I’ve discussed before that I don’t like the where Git has come from. It’s overly complicated, Windows support was clearly not a priority, and it switched existing VCS terminology around just for the sake of it a lot of the time. It practically shouts “I’m different, live with it!” at you, which is frankly a typical elitist geek attitude and not one I particularly respect. This attitude permeates the documentation, reinforced by the absolute insistence of most tutorials that you need to understand Git’s underlying data model before you start using it. Er, right – sorry, but when normal people want to learn how to use a new tool, we just want to know how to use it, not how it’s built. If understanding how it’s built is a prerequisite to using it, then I’m sorry, it fails miserably at being user friendly.

Nevertheless, it’s fast, it’s efficient in storage, it’s the most popular & fashionable DVCS (probably due to GitHub) and that has weight. Of particular interest to me is that TortoiseGit has come along in leaps and bounds, and is really quite pleasant to use. Of course, the reason it’s pleasant is because it hides the majority of the nonsensical changes that Git decided to make to existing VCS terminology; for example ‘Revert’ in TortoiseGit does what you expect (undoes your working copy changes), rather than needing to use ‘git reset –hard’, which is only intuitive to those who live on Mars (git revert, in contrast, records a new commit to undo a previous commit – why the hell do you need a special command for that??). Thus, it’s an odd situation – using TortoiseGit is pleasant, but only because it ushers the underlying git behind a curtain and gives you what most people really wanted from it in the first place. The downside is that using TortoiseGit really doesn’t teach you how to use the command line very well, like most other VCS tools do. In fact, it may well mislead you into thinking Git is friendlier than it actually is. For example, it saves you from the ridiculous need to remember the “-a” argument to “git commit” – without which what you actually get in your commit is the state of the file when you did “git add”, not the version in your working copy. If that makes sense to anyone, raise your hand. Thought not.

Hosting & collaboration wise, GitHub seems very good.

Mercurial

Mercurial on the command line is nice. It behaves the same way centralised VCS’s do, except in the cases where it needs to be different. This is pragmatic design – not being different just to make a point, but being different where it needs to be. It doesn’t break old concepts and does what you expect it to, and contrary to what some people think, that’s a very valuable feature.

It’s not all roses though. TortoiseHg is clunkier than TortoiseGit, despite being based on a more intuitive core tool. The UI just feels a bit wrong (like putting action buttons on the toolbar – who does that?), and I’ve sworn at it for being unintuitive more than once. The other problem is that the Mac GUI tools are not really that great either – MacMercurial only allowed me to do a subset of the operations I needed to do, and Murky just crashed when I tried it. GitX in comparison works quite well on the Mac.

So despite a more intuitive command line and core concepts, and a more pragmatic approach generally to DVCS for ‘regular’ people, when it comes to GUIs Mercurial lags a bit now. This was unexpected to me since it is Git that has traditionally been poor on the GUI front. There are also a few other minor issues like branches being totally permanent and needing to be globally uniquely named, which can make local experiments more cumbersome.

Hosting wise, BitBucket seems quite competent, if a little less polished than GitHub.

Bazaar

I’ve only just started experimenting with Bazaar, and so far I’m quite impressed. It has the pragmatic approach of Mercurial, but also has a built-in GUI which is really quite nice to use and leads you through the initial setup and configuration. There’s also TortoiseBzr which feels somewhere in between TortoiseHg and TortoiseGit. I haven’t tried it on the Mac yet. Performance was always the issue listed as the major downside of Bazaar, but this has improved since 2.0 and while it’s not as fast as Git, it seems to be fast enough.

The main downside for Bazaar is adoption. It trails both Git and Mercurial in terms of the number of people using it, and therefore adopting it for a public project would have the disadvantage of making people use a tool they’re less likely to already be familiar with. Also for hosting, Launchpad is quite new; it looks quite good, and has more features than GitHub, but it doesn’t have the option to host private projects (not an issue for Ogre of course) or a graduated commercial plan – you can self-host of course but that’s not as easy.

Conclusions so far

The sad fact is that none of the 3 are an instant win for me; they all have positive and negative aspects. Summary so far:

Tool Pros Cons
Git Fastest & most efficient
GUIs actually good
Popular
Command line overcomplicated & unintuitive
Mistakes easier to make
Mercurial Intuitive
Fairly popular
GUIs a bit rough in places
Bazaar Very intuitive
Built-in GUI good
TortoiseBzr also good
Not very popular
Statistically the slowest
Launchpad is quite new

So, I’m basically in a no-win scenario. If I pick Git, it’ll work fine via the GUIs but it’s too easy to screw things up when using the command line, and I’m bound to get annoyed at the needless obscurity from time to time. But, lots of people will be happy to use it. If I pick Mercurial, I’ll be happier with the overall core concepts & command line, but the rough edges on the GUIs are going to annoy me day to day. But, quite a few people will be happy with it all the same. If I pick Bazaar, I’ll be happy with both the core concepts and the GUIs, but being the least fashionable option almost no-one in the community will be happy that I picked it over the other two, and lots will bitch about having to use another tool.

I’m reluctantly acknowledging that the least of the evils appears to be Git right now, even though I personally hate its underlying interface. Somehow it feels wrong to only like using it when it’s hidden beneath a GUI – I’ve been a regular user of the command line for CVS and SVN for the best part of a decade, and I like being happy with both modes. I can imagine tolerating Git’s command line, but never liking it just because of the unnecessary idiosyncracies (like commit -a).

I still have lots more detailed tests to do anyway, which will have to wait a month or so until I have more time.

OS X Tech

Accented characters on OS X

I can’t believe this is the first time I’ve needed this on OS X, but it came about from needing to write a document for a European customer and suddenly realising I didn’t know how to make an umlaut on my Macbook Pro’s British keyboard. On Windows I might fire up the Character Map, but I didn’t know how to do it on OS X. Here’s what I discovered:

  1. OS X friendly apps like Mail, Safari, iCal and even Firefox have a ‘Special Characters’ entry on the Edit menu which brings up an equivalent of Character Map.
  2. For less OS X friendly apps (like Open Office), you can add a menu bar item to do the same everywhere under System Preferences, Language & Text, Input Sources – check the Keyboard and Character Viewer option and make sure the Show Input On Menu Bar is enabled. Then you just click the new icon on the menu bar every time you need the character browser.
  3. The most common ones have keyboard shortcuts which modify the next character you type afterward – Option-e puts an acute accent on the next character you type, Option-` is a grave accent, Option-u is an umlaut, Option-i a circumflex, Option-n that weird Spanish squiggle ;) While experimenting I found the ® and © symbols too (Option-r and Option-g respectively, Option-c is the cedilla)

So there you go – useful stuff if you’re on a British (or presumably US) keyboard and need to deal with non-English names from time to time. If you already knew this, great – this is just for people in my position who have to use these characters rarely and haven’t encountered it on a Mac yet.

Internet Personal

On friend requests

There’s one problem with having a relatively public presence online, even in such a niche that I’m in, and that’s how to deal with unsolicited friend requests. I’m a happy user of LinkedIn, I have a Gamertag you can see on the right hand side there, and I’m also a reluctant and infrequent member of Facebook. As well as letting people who know me connect, it also means that on some occasions, I get friend / contact requests on these systems from people I’ve never heard of before. In the case of a Gamertag in particular, I’ll sit there trying to figure out whether I know the person or not, then agonise about whether I should just reject it (causing potential offense), initiate a ‘Who the hell are you’ discussion which might end up that way anyway, or worse open a dialog with someone I wish I hadn’t, or just accept on systems I don’t care so much about because it’s less hassle.  I’ve gravitated towards ‘reject’ as a default response now.

Here’s a tip: if you want to connect with me or anyone else on an online system, at the very least email me to introduce yourself first, or include in your friend request why we might know each other already, or have something in common. I’m fully aware that I ‘know’ far more people than I realise half the time, since I talk to people every day in forums etc via the obscurity of nicks. And if we haven’t spoken before, that might be ok too; I like ‘meeting’ new people, but you really have to talk to me first.

Just firing a friend request at me with no introduction is akin to throwing your business cards at random strangers in the street; it’s just not polite. Going through introductions might seem old fashioned in today’s fast-moving world, but it really does break the ice and makes the difference between a genuine friend request and a ‘stalking request’. ;)

Games

Yet another good XBLA purchase – Defense Grid

defencegridI haven’t been a fan of tower defense games very much, I’ve found them a bit dull and repetitive sometimes, and there’s far too many of them. But Defense Grid has very much hooked me in and is proving to be a lot of fun, and at 800 MS points (or about 7 or your Earth pounds) it’s an absolute bargain.

I think one reason I like it is that there’s no tower damage. Your towers are effectively invincible, which may not be realistic, but it does mean that it makes the game entirely about planning, strategy and resource management. Some tower defense games don’t realise that it’s supposed to be a strategy game, and put all sorts of extra mechanics like enemies attacking and destroying towers etc, but this undermines the core planning game mechanic, turning it into a game of how-fast-can-I-repatch-my-crumbling-towers-if-I-even-get-time-to-notice-at-all. In Defense Grid and other TD games with no tower damage, you succeed or fail based on how well you plan – how you set it up, how you augment and supplement your towers as time goes on (which you should have thought out ahead of time), and watching it play out according to your will, or fall apart because of it. There are no random elements – it’s a little like Chess, and I think that’s a good thing.

I also like what they did with the fail conditions. Instead of stopping creatures getting to a map end point, you have to stop then nicking ‘power cores’ from your reactor and making it off the map with them. The catch is that when you kill an enemy carrying one, it floats slowly back to the reactor, and can be picked up by another enemy, creating the danger of a ‘relay race’ where a really tough enemy can make it through your tougher defenses, and even if they can’t make it all the way back, swarms of weaker enemies can potentially relay it if you don’t take them out fast enough, thus requiring a balance between defending against single tough enemies and lots of small enemies, and stopping you from lazily relying on one primary ‘choke point’ – because the ‘relayers’ might not ever have to cross it if another enemy already took all the damage getting through it. It’s a cunning design idea that works really well.

It looks great too, which helps. And the control system works perfectly on a control stick, which I didn’t expect. And the mechanic of being able to redirect enemies via longer paths with sensible tower placement, and how you can screw it up if you force them to breach this,  is good.

Highly recommended even if you’re not usually a tower defense fan, or perhaps especially if you’re not.

Personal Travel

Picasa 3 review

picasaI haven’t used dedicated photo-management software before – iPhoto always looked really nice, but since it only works on the Mac it didn’t seem worth investing lots of time in populating data there that I couldn’t use on other platforms too. However, since this year I took the laptop on holiday with us, to ensure I could cope with any urgent business while I was away (the wonders of being self-employed), I figured I’d take the opportunity to try out Picasa 3 to transfer, organise, label & share our photos in real-time as we progressed through our holiday. It seemed quite a nice tool, and the ability to sync your photos with an online album to share with family while you were away was ideal. Sure, I could have used Facebook, but in fact none of the family we wanted mainly to share our photos with are on Facebook already and I’m damned if I’m going to force them to to join! ;) I was using the Mac version on holiday, but I also tried the Windows version at home which seemed identical.

And in practice? Well, it’s bloody good. It makes it easy to import your photos from the camera into a holding area, omitting those you’ve already transferred, from which you can allocate them nicely to albums and do all the normal photo tweaking – cropping, straightening, constrast adjustments etc. It even lets you crop & recompress videos which is perfect, since our camera takes surprisingly good quality 30fps video. Another nice thing is that it doesn’t alter the original photos / videos when you tweak them, so you can always get back to the original raw photo if you want to.

Synchronising the photos with an online album is super-easy too; as well as filtering by album you can also tell specific photos not to synchronise, and tweak the quality at which the uploaded versions get sent, to speed things up. It’ll even upload your videos on to the same shared album, and additionally to YouTube et al if you want it to. This all happens seamlessly in the background as you work on organising and tagging, and you hardly even notice.

Of course, it lets you add captions to your photos, essential for recording what on earth it was you were capturing on your 400th image, and those appear on the web version too. Another cool feature is that if you export the photos back to the file system (again you can re-encode if you want or keep the original quality), it embeds the captions in the resulting images as IPTC metadata, which many image viewers will allow you to see outside of using Picasa itself.

The only downside is that right now, moving your Picasa data between machines is a bit of a pain- you can re-export the images like I say, but if you actually want to use the original Picasa data files and open them on another machine, you have to dig around in the filesystem and hack about with .pal files to do it. Hopefully in Picasa 4 Google will recognise that most sensible people store their pictures permanently on a NAS or other shared data store, so it would be a good idea to allow non-local albums to be defined and used.

Overall then, Picasa 3 is a very slick photo management application and was hugely useful on our holiday for organising and sharing our photos before we ever came home.

Comedy Development Tech

My favourite error message for a while

It’s nice when software reflects a programmer’s sense of humour and humility. This message appeared when I restarted Firefox 3.5.3 after an XP crash:

ff_error

Bravo – thanks for making me chuckle, and thus forgive you instantly for any error (and it might not even have been yours). Bless.

OGRE Open Source Personal

My evolving view of open source licenses

smallprintI’ve been involved in open source for a long time – probably what might be considered a ‘generation’ in this industry. I was a fan of open source before I even knew the term existed – during my formative coding years in the early 90′s I was always releasing code for free and encouraging people to tell me why it sucked, and doing the same for them. Of course, most of the discussion went on over FidoNet, BBS-relayed emails, the very early (pre-WWW) internet and code on FTP sites, but the principle was much the same.

It was only when I needed a host for an increasingly large 3D engine I’d been writing in 2000 (which later became the earliest version of OGRE) that I discovered Sourceforge and open-source licenses. At that stage, I didn’t really care much about the minutae and just went with what seemed the most popular choice – the GPL. Fairly soon after this was revised to LGPL because it was clear GPL wasn’t a flexible choice for a library. Over the years I formed the opinion that the LGPL was a good balance for what I was doing – it allowed use in proprietary applications but required that modifications to the open-source part were passed on; and this also, I thought, encouraged contributions back to the core since it’s simpler to have your changes promoted. The downside was that the license is pretty long and full of legalese, and frequently needed explaining & clarifying. Still, I considered that a necessary cost of a license that ‘protected the interests’ of the open source project. I had considered more permissive licenses like zlib and MIT to be too weak -  giving everything away with no conditions encouraging reciprocal contributions or participation.

I only really started to seriously question this long-held opinion recently, shortly after I had to deal with a license violation issue. The details of this are irrelevant (and will not be discussed here), the important thing is that after all the dust had settled, it really made me sit down and take a long, hard look at what open source licenses actually achieve in practice, and which bits I felt were the most important for sustaining my projects.

Purist free software advocates subscribe to the view that all software should be ‘free’ (as in speech), which is, when you boil it down, a philosophical principle. While the intention is often genuinely altruistic – enablement for all developers and users of software – in a practical sense it is also a highly prescriptive, black-and-white approach. Free software licenses like the GPL restrict as much as they enable, on the basis that not to do so would deny future users of the flexibility to alter the software. It’s an understandable point of view, if very hacker-oriented, but it’s not one that I personally sign up to. I’m not involved in open source as a ‘movement’, in order to ensure that all users have access to all the source code of every application they use. Instead, I’m involved in open source because I think it’s a damn good way to get good software written for the benefit of the many, particularly infrastructural elements that can then be used to innovate faster, by smaller teams, to challenge incumbents, and generally shake things up. I’m a firm believer that open source and proprietary software can be good bedfellows, and that each can benefit the other – open source providing solid foundations for proprietary innovation, and proprietary software contributing to the open source projects underpinning it, in terms of code and funds. In that context, the restrictive elements of the LGPL seemed well-placed – the LGPL allows proprietary use, but modifications had to be passed on.

But, after much consideration and hard self-questioning in recent weeks I realised something important. Of all the people that have contributed to OGRE over the years, I can’t think of a single good code contribution that has come about because the license conditions encouraged it. All of the people who have made a significant positive contribution to OGRE have done so because they chose to do so. Either because they wanted to do it for fun, or because they saw that it was in their own interests as users, they sent patches in, created new add-ons, joined the team etc. None of these people required any coersion from a license to do what they did, and all the better for it – because they chose to do it, they tended to be more forthcoming in terms of adhering to standards, answering questions about their contribution, and generally participating in the community rather than just doing a minimal code-dump.

The other thing I considered was the impact of someone modifying OGRE and not publishing their changes. On the one hand, this is a potential for a lost contribution, but in practice the LGPL conditions are only to pass on the source to others, not to contribute back to the core project (which requires a contributor agreement anyway), and as mentioned we’ve already established that the best contributions are from willing sources anyway. Then comes the principle of whether it matters that the end user is not guaranteed to see the modified source of OGRE – free software principles say this is not right, but I have to say that in practice, most end users don’t care and in practice it’s of little consequence for OGRE. Obviously many people in the free software camp would disagree strongly with this. It’s more of an issue in enterprise apps where a customer who receives a significantly customised application from a vendor, and needs to keep maintenance in mind; IMO regardless of whether the software is based on open source the customer should be insisting their vendor delivers source anyway – that’s what contracts are for. But I digress.

So, after much thought I concluded that the most useful pay-backs to an open source project, and thus its community, from a user (in my opinion) were:

  1. Code & documentation contributions – which based on my experience come from voluntary sources
  2. Community participation – forum support, bug reports etc
  3. Publicity.

The ‘restrictive’ elements of the LGPL (and GPL), to which so much confusing license text is dedicated, didn’t seem to contribute to any of those except number 3, and then really just as a side-effect.

It was at this point that I realised that my previous opinions about permissive licenses not providing enough safeguards against exploitation for an open source project were off-base. In practice, open source projects don’t really need protection, because their best contributors are going to be there regardless (yes, I realise the GPL provides more protection to end users who want to get at the source code, that’s not what I’m considering here). ‘Freeloaders’ – people who use or modify the open source project for their own ends but give no code or community contribution back – are always going to exist; even under the GPL it’s easy to freeload, if you make your money from hosting services for example, and thus license choice has little impact on the scale (if not the nature) of the freeloading. Besides the annoyance of ‘that guy took my work and made some money out of it’ – which you have to accept as an inevitable outcome of going open source, so stick to making proprietary software if that bugs you – freeloaders have little negative effect on an open source project, and actually their use can contribute positively to item 3 (publicity). The key is to recognise that in practice you can really just ignore freeloaders, and instead concentrate on maximising the positive contributors in your community.

So, if we acknowledge that the people whose contributions we actually want are those who contribute voluntarily, regardless of license, we quickly come to the conclusion that all that really matters is the size of the community. It’s a fair assumption that for a given project there is a relatively stable percentage of users who will choose to contribute back (the percentage itself varies per project, but is fairly stable per project in my experience), therefore the easiest way to increase your contributors is to just increase your user base. Forget about trying to coerce people into being ‘good’ members of the community, just trust that the percentage will be there and will track your overall numbers.

One way in which to attract more users is to make the licensing simpler and more easier to understand. Programmers hate legalese, and a simple, clear license is bound to be more attractive than our LGPL (with static link exclusion), plus OUL option. It’s for this reason that from OGRE 1.7 we’re switching to the MIT License.

I’d like to thank Matt Asay for his post on the subject, which really jump-started my thought processes on this subject in the last few weeks. This whole process has been a reminder to me that it’s always good to re-examine your previous assumptions and opinions in the light of practical experience, and to be prepared to reach different conclusions than you did before. The whole open source landscape is constantly changing and maturing, why should those of us immersed in it be any different?