The confusion of cats.

Quite some time ago I wrote a slightly surreal rant after becoming ever more frustrated with the utterly absurd ways that people break the tools and libraries I maintain. The metaphor I ended up with was intended to describe behaviour that I find absurd, painful and more than a little cruel and it was done in the abstract in an attempt to avoid pointing out specific people and/or projects. Mentioning names always tends to be divisive and drag debate to the merits of the people or projects rather than lead to any useful discussion of the problems caused by poor practices and/or writing tutorials and libraries dependent on devkitPro provided software without discussion of how that impacts on the tools and the habits of homebrewers who use the tools.

Responses to the original post have been almost as absurd as the behaviour that led to the writing of that post in the first place. One homebrewer suggested that it was better to clean your windows with a cat than to end up crashing into a ditch due to not being able to see through dirty windows. That one missed the point on several levels.

Some suggested that the post had rather a tone of superiority and putting myself forward as knowing better than the homebrewers involved. Considering I know why I’ve put the tools together in the way I have and I know best how I intended them to be used I’m not really sure how best to respond to that. There is, however, a long history of adjusting the development environment we maintain in response to constructive criticism from those who use the tools.

Many people proclaimed that they knew exactly what I was talking about and the metaphor was rather apt as well as quite entertaining. Some of those suggested ways in which I might be guilty of cleaning windows with cats but most seemed to be rather missing the context where decisions were made and unaware of why.

Others have considered themselves to be the people who clean windows with cats and want to defend their behaviour which is … interesting. I do have to say it’s not so much the actual cleaning windows with cats I object to – if you want to make your own life more painful than it needs to be then who am I to judge? What frustrates me is the people who encourage others to continue doing absurd things instead of listening to good advice. It’s the terrible tutorials and the workarounds to fix problems that never existed before someone wrote a step by step guide to installing a devkitPro toolchain and then replacing some of the components with incompatible and/or just broken versions.

I may write more in the future about the history of devkitPro and how the toolchains came to be but, for now, I’d like to try and get across some idea of the mission. Many things make more sense with some idea of the objectives we have in mind and the problems we set out to solve. Once those are understood I’d hope that more people begin to understand the frustration we feel and become motivated to help mitigate it.

The primary objective of everything we do is to make homebrew programming more accessible by providing a well defined environment that’s consistent across all the platforms we support. A project created for any of the consoles we support within this environment will, for the most part, compile cleanly regardless of a user’s host OS whether that is linux, OSX or windows. Over the years we’ve progressed from the early days of complex instructions to extract archives of various components through a windows installer & some perl scripts to the delights of using pacman to manage all the components automatically. Everything is aimed towards a potential homebrew programmer being able to get the tools installed and have the ability to build the example code as quickly and easily as possible.

There is, of course, much more work to do and many things currently in progress. We’d like to have better documentation and clearer workflows for those new to homebrew and even those with more experience. Such things take time, energy and motivation which, sadly, can often be in short supply. Those resources become even more depleted when people write their own guides without consulting us on how things are expected to work. If people create “easy” libraries for use with the tools and libraries we supply without consulting us then they’re extremely likely to break as we improve our own software. Treating our software as if it’s just something to build your own product on top of and pretending we don’t exist leads to nothing but pain and anguish for everyone involved. This, especially when it involves instructing users to inappropriately modify their toolchain install, is what I refer to as using a cat to clean windows. Some people just seem to be pathologically incapable of seeing the big picture and understanding that their behaviour impacts on 10s, if not 100s of 1000s of homebrew programmers.

Thankfully there are people around who understand and support what we’re trying to achieve and we are eternally grateful for the suggestions and the bug reports and the contributions we receive. It’s always a joy to see the creations made possible by the tools and libraries we provide. That joy is short lived when we find people repackaging our work without consideration for us or the users who depend on it. It’s especially galling when people use us and the resources we provide as the basis for self promotion then complain vociferously that we’re somehow oppressing them when it all breaks because they haven’t considered or asked how everything should fit together.

Sometimes people claim that they’re just trying to help which, of course, is appreciated but … if people are writing up tutorials and/or helping people to use the tools without reference to the toolchain and library maintainers then the tutorials and the advice are often going to be wrong. When that happens in places outside our influence – i.e. random blogs and forums unassociated with us, then we can’t fix any of it when it becomes out of date. We especially can’t fix it if nobody tells us it exists and it’s extremely frustrating to discover these things because someone has followed a guide or a youtube video from 10 years ago and ended up in a complete mess for no really good reason.

We do need help with many things and it would be good if people approached us before embarking on huge projects that will impact on all the toolchain users. Ideally we’d like to see more collaboration towards making things better for everyone and we have very strong opinions on how that can work best but we need more people who understand the vision. We need more people who don’t buy into the diversity and competition myth, who understand the paradox of choice and who are willing to contribute for the greater good.

We can be found in the places listed at Talk to us, help us make better things.

A slightly surreal rant.

Some days I end up having discussions in various places on the internet where someone has come looking for help with the devkitPro toolchains. Usually I take a few minutes, maybe even half an hour & help someone solve a problem and they’re usually happy with the end result. Sometimes I even get a donation shortly afterwards.

Other days things get a little weird. I was attempting to explain some of this to my partner (who doesn’t code) the other night and I came up with a story that might help make the point a little.

Imagine, if you will, walking out your front door one morning where you encounter your neighbour who has a large tabby cat sitting on his window sill tied to a piece of string. He brandishes an electrc razor at the cat, who makes his fur all spiky, hisses and screeches at your neighbour then leaps up and claws his face drawing blood.

“What on earth are you doing?” you enquire?

“I’m cleaning my windows” says your neighbour.

“What? You can’t clean windows like that!?”

“Sure you can. Look, when he leaps up to claw me with all that spiky fur he brushes against the window and all the dirt comes off” explains your neighbour.

“But”, you say, “This would be so much easier with a bucket of water and a squeegee”.

“That sounds a bit complicated. I’ve never used those before and I don’t own either of those things anyway”

“There’s a shop down the road that sells them, you could have them in half an hour and I could show you how to use them if you like”

“Well, that’s kind of you but I don’t really have time to go to the shops and learn how to use a bucket and a squeegee. It’s taken me all morning to do these windows and I’m nearly done now, then I have to go to the hospital and get some of these cuts stitched up.”

While you’re considering a response to this, another neigbour turns up. “Hi Jeff” he says, brightly. “Cleaning the windows again I see. That cat has made a right mess of you today”

“Yes” says Jeff, “I really should do something about his claws”

“Maybe you could get a domestic long hair instead of that tabby. You could get him declawed at that vet in town and a long hair might have  a better temperament”

“You’re absolutely right” says Jeff, and he takes the cat back inside then heads off into town to see if he can buy a domestic long hair somewhere”

“Why did you do that George?” you say to your other neighbour, “He’d be much better off with a bucket and a squeegee”

“Maybe”, says George, “but he enjoys cleaning his windows with a cat so much”

A few days later, you’re reading the local newspaper and you discover an article Jeff has got published. It’s entitled “How to choose the best cat to clean windows”.

Please join me in supporting the Open Rights Group

To all my internet friends.

You may know that I am a supporter of ORG , the Open Rights Group, which aims to promote and preserve rights on the internet and provide sensible information to politicians, parliament and journalists about technology. ORG relies on its supporters and we’re having a recruitment drive to fund a Legal Officer to allow ORG to intervene in legal cases.

If you are concerned why people are being arrested for being foolish on Twitter, or worried about the Government’s plans to ‘spy’ on the whole internet, these are typical of the areas where ORG is fighting for your rights. You can find out more at the campaign page, or grab me online in one of the many IRC channels I hang around in if you want to chat to about what ORG does and why I’m a supporter.

You’ll get a free copy of Cory Doctorow and Charles Stross’s new book – the Rapture of the Nerds. Cory and Charles are both ORG supporters and so is Neil Gaiman: here’s why. Your support will really make a difference. The target is 300 new supporters to fund a full-time Legal Officer. Please be one of them!

If you join me in supporting ORG (it’s only £5 a month) using this link then I’m in with a chance of winning a Raspberry Pi or a MaKey MaKey:

I’d really like you to join, because this stuff is going to affect our digital life for years to come.

A quality argument

I found an article in Micro Mart issue 1124 by Craig Grannell incredibly amusing, not least because I find myself being heckled on a regular basis for being a Mac “fan boi”.

Everyone knows Macs are a huge rip-off. Most tech websites say this is the case, so it must be true. And then there are all those owners of dirt cheap PCs yelling from the rooftops about what complete idiots Mac owners are for being brainless enough to spend more money on a computer than they strictly need to.

At what point did computing become about low-end willy waving and dirt cheap commodity? It’s odd when you think about it because, in other areas of technology – smart phones, cars televisions, stereos, people generally buy the best they can afford. You don’t find too many people mooching around an Audi showroom and finding themselves being heckled by a mob of Renault owners yelling “You idiot! My car cost half as much as that one!”

Craig goes on to talk about the industrial design, keen developer community and the integration of OS with hardware that makes Macs worth a little more. Yes ok, peripherals can be a bit pricey if you buy them from Apple but isn’t that always the case with goods that get branded with quality and luxury?

As a cross platform developer I work with OSX, Windows and Linux pretty much every day – OSX is by far my favourite OS to work with. To me it seems to combine the best bits of Windows and Linux with few of the drawbacks of either. There’s the consistent GUI that you get with most windows applications that for some reason seems sadly lacking in Linux combined with the powerful command line of bash and a unix based system just a click away – let’s face it DOS just doesn’t cut it in that department.

A beginning

Firstly, happy new year and welcome to 2010. Still no sign of Moonbase Alpha or monoliths orbiting Jupiter but Virgin Galactic seem to be gearing up for relatively cheap commercial space flights. Interesting times are definitely afoot.

Over the last few years I’ve made several abortive attempts to maintain a blog but something always seems to get in the way so this year I’ve decided to make more of an effort – a new year’s resolution I suppose, not that I subscribe to such things. My writings here will be primarily technology focused with some social commentary and politics thrown in for good measure. Quite a lot will probably be about programming and electronics projects related to devkitPro – my attempt to make game console programming much more accessible to people outside the games industry.

If there’s anything in particular you’d like to see me write about then do please feel free to comment here.