Archive for the 'Open Source' Category

ISO Master has been cracked

Tuesday, December 9th, 2008

By Andrew Smith

For the last wo days or so I’ve been suffering from bandwidth troubles. I throttled the children’s upload to 10K so it wasn’t that. Finally I’ve decided to watch the web server logs for a minute, and I’ve noticed a pattern:

63.226.153.189 – - [09/Dec/2008:17:48:05 -0500] “GET /isomaster/wp-content/themes/ISO_master/images/ss-started-vista.png HTTP/1.1″ 200 26112 “http://scenereleases.info/category/applications” “Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; MSN 9.0;MSN 9.1;MSN 9.6; MSNbQ002; MSNmen-us; MSNcOTH)”

Going to the referrer page I found a cracked version of ISO Master – NFO file and everything. I saved the file to make sure some anti-piracy idiot doesn’t delete it.

This is a huge boost to my self-confidence. I’ve always dreamed, and never dared hope, that someone would bother creating a crack for ISO Master. After all, it’s nowhere near as popular as its competitors (unlike Linux, Windows has a few established players in this space).

As to that more people will get it for free now, heh – as they say “a small percentage of something is much better than 100% of nothing”. This is free promotion for me that I could never afford to do myself, I simply don’t have the resources. The more people have it, the more people will know about it, the more people will pay for it.

And if that’s not how it ends up, so be it. I am flattered that my software’s been cracked, and if I find out who did it I’ll buy them a beer.

I may even get off my ass and update the Windows version now, it’s two minors behind the Linux version, and GTK had some nice improvements since.

Nice guys finish last

Saturday, November 15th, 2008

By Andrew Smith

Whomever didn’t know that already? But knowing a fact without understanding the causes or implications can be pretty useless. So here is a summary of my wonderings of the last couple of weeks. For me to remember and you to enjoy.

All of this year I’ve persistently worked on one thing and have signed up to another. As a result I was able to take some risks, not needing to worry about what I’ll be doing in the next two years of my life.

I’ve decided this Mr Nice Guy thing isn’t working, cracked some heads, and got what I wanted. And that got me thinking – what was the point of being nice to begin with?

Shyness is a curse, and I’ll get into that some other time, but I want to say here that the curse of shyness doesn’t compel one to be nice. In fact the pain caused by being shy can just as well be channeled into being evil.

So I took the opposite of what I am as a potential goal, and tried to define it. What is evil, fndamentally? I couldn’t come up with an answer. I talked to a smart guy who studied the topic in some detail, and he suggested everyone is evil, which I thought about and decided noone is evil. Evil is not a fundamental characteristic of a person, it’s just a poor means to describe something else.

So if I don’t want to be nice, and there is no such thing as evil, what options do I have? For now – it’s still a mystery. But the few social norms I was still abiding by flew out the window recently, so if you didn’t like me before – beware, I just got worse.

Lost in the sticks

Sunday, October 12th, 2008

By Andrew Smith

It’s getting cold. In a few weeks it will be way too cold to ride my Vulcan 500, so I’m trying to make use of it as much as I can before I have to put it into storage for a half a year. Now it’s 2 AM and I just came back from a bit of an adventure.

I went north (as I usually do when going on a joyride) at about 22:00. North of Major Mac it’s quite pretty. And at night it’s nice because there isn’t much traffic.

I went North on Jane, turned east on some little street, and eventually ended up on Yonge Street. So far everything was great, though it was cold in some places (it’s strange how much the temperature ranges).

Then I turned back. Yonge street was boring, so I figured I should go back on Bathurst or Dufferin. I turned west somewhere, and then south on Bathurst. At least at the time I thought that was south, now I don’t know any more.

After a few minutes (didn’t pay attention to the time) I saw a sign saying the road’s ending in 5km. I thought that was strange, but there’s a lot of construction going on, and I always wanted to ride on a ‘closed’ road, just because a bike can handle more than a cage. So went on.

Hardly a minute later the pavement was gone. And a couple minutes later, the road did end. And though I couldn’t see much in the dark, I had a strong feeling this wasn’t a costruction type of ending, it was permanently closed.

I thought damn, I guess better turn back now, but that didn’t feel right. So I got off the bike and looked around. Past the 1-meter tall bump at the end there was a path going downhill. Not paved, but it looked decently smooth.

I got the bike on top of the bump and shone the high beam down into there. The dirt path had some grass on it by the bottom, but I saw some house lights not so far in the distance, so I figured what the hell, it will be just a bit bumpy and then I’ll be back on a real road.

And I rolled down. Very quickly the path I went on dissapeared, or at least turned in the wrong direction – so I had to go on the grass. That wasn’t so bad, I thought at the time. Then it really went down hill. I held the front brake and the front wheel was locked, but the bike was accelerating anyway. I couldn’t take my foot off the ground to use the rear brake, cause I would have lost the balance.

That should have given me an idea of what’s about to happen, but I wasn’t thinking yet. At the bottom of the hill I found a house, the lights I saw from the top. And I realised I’m not on a road, I’m on private property. Most likely a farmer, cause I could see a plowed field next to the house.

And again I said what the hell, the bike will get dirty, but it should be able to handle the stress, and I really want to get off these people’s property right now, so I directed it straight into the field. In less than a second the bike was stuck. It can go pretty far in a second, I think it was about 3 meters. The plowed land is impossible for a cruiser to go on, it’s too heavy. I had to rock it back and forth, and that worked for about a meter, then I had to go push the bike backwards from the front, and that worked for about a meter, then I almost gave up cause it became so hard, but I put some heart into it and it came back out.

At this point I’m pretty freaked out. I’m within 20-30m of a house, with the motorcycle engine roaring, and the high beams turning this way and that. Just imagine how freaked out you would be if that happend in your back yard (remember, this is the middle of nowhere, no neighbours, not the type of place where you’d dare come out and face an unwelcome biker). So I decided to go back the way I came.

Big mistake. A cruiser is way too heavy to go up a steep hill covered with grass. I felt that and tried to go up at an angle, but eventually I had to turn all the way up, and the bike fell onto its left side. This was the first time I dropped the bike completely (since I bought it). I killed the engine, and started raising the bike. I’ve had to raise it half way once when I put it down with the stand up and that was easy, but this was really really hard. The bike wasn’t even horisontal, it was a bit upside down (I’m on a hill, remember?). So I tried this and that, and eventually just found the right angle and the right force to put it up.

Then, yes of course, it started rolling down the hill. Backwards. And the front brake didn’t work, just as it didn’t work earlier. But I managed to put my foot on the rear brake, and stopped it. Wooh.

Key, start, start, start? The engine wouldn’t start any more. God dammit. I was freaking out already, and this made it worse. What would I do, knock on these people’s front door at midnight and ask for help? I’d get the police in the best scenario, but more likely shot or stabbed (these are farmers, they must have guns).

Then I got an interesting idea – roll down hill in gear and start the bike as I’m doing that. And amazingly that worked. I was so relieved. In retrospect I think the gear wasn’t engaged so rolling downhill had nothing to do with it, but whatever.

Now I’m seriously worried, and very pissed. No more mister nice guy. I point the bike straight at the hill and go in full first. Yes, I was that stupid. It’s easy to say so in retrospect. When very cold, very tired, and worried to death your brain doesn’t work so well, trust me.

This time the bike fell on its right side. And trying to start it while in gear and rolling down hill didn’t work. Shit!

But now I noticed that the house I kept trying not to look at had 3 garage doors. Garage doors? Cars? Paved road? Yes indeed. So I rolled the bike all the way down the hill onto the road. At least now in the worst case I won’t need to leave the bike on its side in the grass.

Now I’m on a paved road, and reasonably sure that if the bike starts, I’ll be able to get out. That’s when I remembered that I smelled gas while lifting it the second time, and that reminded me of ‘flooded’, and how to deal with it. Key, clutch all the way in, full throttle, start. It started the first time like a charm.

I went towards the house first, found that was a dead end, and had the lights turned on on me (I think they were sensor-activated). Going to the other side I got out. I still had no idea where I was, but the way back home was straight-forward.

Now I’m wondering if I should figure out whose back yard I was in, and maybe call and apologise. I could maybe find it again. I’m guessing it was somewhere around Bathurst and Green La W, but that’s a really rough guess. I don’t think I’m going to bother.

But in the unlikely case that an inhabitant of the house reads this blog post, or someone who knows them does – I apologise. If I had any reason to believe that downhill was going into private property, I wouldn’t have even considered going there. And I must have messed up your lawn too. Mostly I hope I didn’t scare anybody, and for what it’s worth – I’m sorry if I did.

Open source projects can be full of it too

Monday, September 15th, 2008

By Andrew Smith

I work on the Canvas3D project, a Firefox extension. Actually I work on JavaScript that uses it, not the extension itself. So every now and then I need to download the thing, from addons.mozilla.org

And it’s bloody annoying. The addon is classified as ‘experimental’, which I assumed means that it’s not really ready for general use. For some reason addons on a.m.o. classified like this cannot be downloaded without logging in first.

I made an account once, and downloaded it with no trouble. That was quite a few months ago and I have long forgotten my credentials. Since then I’ve been using accounts from bugmenot, a great website for dealing with ‘register to download’ nonsense.

Last week none of the accounts from bugmenot worked on a.m.o. any more.

I even opened a bug, to try and get an explanation. That bug will end up (not unexpectedly) joining the thousands of other ignored bugs on bugzilla.

There are now two theories about why registration is required for experimental addons, one mine and one Gijs’s:

  1. Mozilla hired some marketing person who used to work for Microsoft, or some other nasty corporation, and that person feels that getting some more identity associated with users of the website can only be a good thing, and never mind that the users are getting pissed.
  2. Mozilla feels that the agreement users accept when registering somehow saves them from liability if the addon that gets downloaded screws the user up.

I don’t really know which one is more likely, each time I think of one of the possibilities it seems to be even more ridiculous than the other.

Mozilla has little use for that kind of marketing data, since selling it would destroy half its reputation, and as for the ‘agreement’ saving them from trouble, that’s pointless for so many reasons I won’t bother talking about it.

This is lame, and I am pissed. I’m gonna try and find some way to deal with the problem (probably just write down my credentials), but it’s a damned shame Mozilla is giving me this kind of bureaucratic, pointless trouble.

The worst thing a browser can do

Tuesday, June 24th, 2008

By Andrew Smith

You know what is the worst thing that a web browser can do? I just learned what – lose bookmarks. Not just the favicons, not just the order, not even the URLs – lose all the bookmarks completely. This is what Firefox 3 did.

As part of the upgrade I made sure to recreate the profile (who knows what kinds of crap an upgrade might cause) so it was a fresh install. About a week later – my bookmarks are gone:

No bookmarks

In case you need a translation – that’s the bookmarks menu with no bookmarks in it.

So what do I do? I go to my profile folder, see a folder there called ‘bookmarkbackups’. Pretty quickly I figure out that this can be restored using the bookmarks manager. So I do that, and my bookmarks are back. I may have lost one or two new ones, but disaster has been averted.

Two days later, the same shit happens again. Only this time I was busy doing real work and didn’t bother to restore the bookmarks right away. I think that was a mistake.

It seems there’s some sort of rotation going on in ‘bookmarkbackups’, the kind of mindless rotation for any kind of backup – “Since you haven’t complained, I will assume that you like the bookmarks the way they are, I will delete the oldest backup and replace it with what I have now”. And guess what I end up with? That’s right, no backup.

There is a something in the backup folder called bookmarks-2008-06-23.json, but firefox won’t restore from it, claiming “Impossible de traiter le fichier de sauvegarde.” – that’s roughly “Corrupted backup file”. Great.

The story’s ending isn’t all bad. Just after the upgrade I got the urge to backup my profile folder, and I did. So my bookmarks are still recoverable. But I’ll be damned if I’m using Firefox 3.0 as my main browser again. Maybe this is just one little bug and they’ll fix it, but maybe not..

The sad thing is I’ve watched this movie before – a great product being lost because of a lack of resources. Seamonkey was killed, Thunderbird is getting killed, I wonder if Firefox for Linux is next.

How to open your spec but not lose to competitors

Saturday, May 17th, 2008

By Andrew Smith

I’ve recently learned that Adobe has opened the Flash spec. Which, from an open source user’s point of view is really cool. But then I put on my competitor hat and started thinking of making a Flash editor.

I won’t bore you with the technical details, of which there are lots (and no it’s not likely I will actually go ahead with the project). These words are better spent on something else – the business case for opening the spec.

The swf_file_format_spec_v9.pdf file from Adobe’s site is a very detailed description of the file format, including things such as illustrations, notes and warnings, and version history (going waaay back). And the answer to my riddle is in the file name – see if you can spot it?

It’s absolutely brilliant.

No? Ok, I’ll tell you – it’s the v9. You see – 9 is the version of the player currently in use. It’s been released some 2 years ago. And 10 is coming out this summer I am led to believe.

What do you think Adobe has been doing to Flash for the last two years? You can be damn sure they didn’t put it on the shelf, and they’ve been developing it heavily. And I’m also sure SWF is not the kind of spec that’s developed before the implementation. Most likely in the last two years Adobe has been implementig as many features as they could, and this summer they will brand the result Flash 10, document it, and release the documentation.

Now think about it from a competitor’s point of view. Assuming you can’t develop software much faster than Adobe (which is very likely), and even though you don’t have to spend any time on research and other things related to developing a new spec: you will not be able to release a product that can be competitive with Flash for at least one year after a new version of Flash is released.

So considering that the release cycle is 2 years, you will have an inferior product 50% of the time, even if you do your very best.

This isn’t intended to be a rant against Adobe. Like I said at the start of the post – them opening the spec is great for users, and it’s great for open source developers (who can live happily with a 1 year feature lag).

It’s just that having thought of ways to be open yet stay competitive for a long time, I know how hard/impossible it is. I am very impressed with what Adobe’s doing. Good job!

Whether to make money with software

Sunday, February 3rd, 2008

By Andrew Smith

For many years I have been asking free software fanatics – how will you make money if your software will be taken (legaly) for free by your competitors? Sadly the best answer I ever got was “you’ll make money from support and other services”. Which is good when you can get it; but you can sell support and services for proprietary software just as well – so by open sourcing your software you, as a business, don’t have anything to gain and have somethiing (perhaps a lot) to lose. (There are a handful of exceptions, but I’m talking about the majority in the market today.)

Earlier I finished watching Steal This Film II. It was actually a lot better than I expected. I expected a bunch of propaganda about how the MPAA is suing 12-year-old girls. It’s far from being balanced, they don’t even bother talking about how today’s industry is supposed to deal with it but they kept hammering on this point – it is the way it is, you can’t do a damned thing about it.

Now, I am not well known for this, but I do pay attention when someone has something worthwhile to say. And it suddenly dawned on me: if people don’t pay for music, movies, or software these days, a discussion about whether it’s moral, ethical, or legal belongs in academia. It doesn’t really matter whether copying software for free on a large scale is the right thing to do. What matters is that there is no demand in the market for software priced so that the creator gets a return on investment.

This is rather ground-shattering for me. I always believed that in capitalism one who makes a good product deserves (both morally and legally) to get a reward. As opposed to communism, where one does as much as he can and gets as much as he needs.

Though my understanding of capitalism hasn’t changed, I realised that there is a strong factor affecting the marketability of software that isn’t written in any book I’ve read and isn’t talked about very much. That is – if people can steal it without getting caught, they will.

What conclusion to draw from this? I could do many. But since I’m a pessimist, I will temporarily give up on writing general-purpose applications. Things may change in the long run and maybe not. But for now, for better or worse, it’s not financially feasible. Luckily for me, I still have options in my career.

How is it different?

Monday, January 28th, 2008

By Andrew Smith

Are you one of those people who think all software should be free? I don’t like you. But that’s besides the point, I’m going to look at how your views might apply to other very similar products and maybe that will be interesting.

In the paragraphs below – when I say positively ethical I mean progressively ethical, that’s as in more than just ok.

Book authors
A writer sat locked up in his house for a year, and wrote a book. He then took that book to a publisher, who thought it would sell, and got an agreement to receive royaltees off book sales for his writing.

Is it positively ethical for you (another publisher) to buy one copy of the book, print a few thousand copies, and sell them at half price paying no royaltees to the author who spent a year on it?

Car designers
I don’t know what they’re called – the people who actually draw the shape of a car. You are a designer working for Porsche, and you drew up the 911 (those photos don’t do it justice). You wasted a tonne (literally, a tonne) of paper going through contless revisions, to make it perfect. Porsche made it happen, and sold one to Ford Motor Company.

Is it positively ethical for Ford to copy the car’s design, make fifty thousand Ford 912s, and sell them half price, without paying a dime to Porsche?

Fashion designers
You are Calvin Klein. You work for a year coming up with the definition of style for the next few months. You sell one set of clothes a fashion junkie, who is actually working for a chinese sweat shop.

Is it positively ethical for the chinese sweat shop to make ten thousand copies in a few days and start selling them in stores at 5% of your price before you even get your stuff in stores?

Electrical and Electronic Engineers
Say you’re AMD. You designed the Tauron 25GHz processor. You sell one to Intel.

Is it positively ethical for Intel to use their magic 1-minute reverse engineering tool (say there was such a thing) to copy your design, make five hundred million Pentium XXV processors, and sell them at a discount, since they didn’t spend any money on design?

If you answered yes to any of the above – you’re a sad, pathetic human being. You have no marketable creativity, and maybe you’re not very bright. You just aren’t capable of understanding the value of talent, and the ammount of effort it takes to put an abstract set of ideas into a less abstract (but still not physical) design. You should be ashamed of yourself.

If you answered no to all of the above, then tell me – how is software any different? I’m all for hobbyists giving away their work if they please (I do it myself quite a lot), but what gives you the right to say that anyone who isn’t willing should work for free?

GPL Quicker Fucker Upper

Monday, January 14th, 2008

By Andrew Smith

This is a vague idea I got recently and will try to work through as I’m writing this post. I got the idea in the first place is because I’ve been severely dissapointed by open source in the last few months (I’m ok now); and as the GPL fanatics are the worse of the open source crowd – I concentrated my anger on them. That’ll teach them not to piss me off again.

There are 2 flavours of GPL – the GPL and the LGPL. Each can be applied to libraries.

One is allowed to link to an LGPLed library and not release his own source code. One is not allowed to do that with GPLed libraries. If you link your program to a GPLed library you have to make your program open source. This is really annoying sometimes. For example if you use the free version of the QT widget toolkit your program must be GPLed. Not just open-sourced, mind you, but licenced under the same GPL version as the library you’re using.

I think I found a way around that. Let’s look at the original scenario first. Your program wants to use function doSomethingUseful() from UsefulLibrary. You include UsefulLibrary.h in SecretProgram.c to get the prototypes of the functions. So far the GPL probably has no effect, the header files are usually not covered by the GPL, but it doesn’t matter.

Because in the next step you link your program (cc SecretProgram.o UsefulLibrary.o -o SecretProgram) to the library. And this is where the GPL forces you to make your program open source. Even though you haven’t modified the GPLed code.

how the gpl works

But fear not! Andrew to the rescue! I will solve your problem with the mesed up interpretation of the licence as applying to software that isn’t already under that licence.

I give you a program (the binary is called gqfu). You tell it what functions you want to use from what library, and run it. GQFU will:

  1. Parse the header file and figure out what type of parameters the functions take and what the return type is.
  2. Automatically generate a main() that will take parameters from STDIN, convert them to the proper type, and call the appropriate function in UsefulLibrary.o
  3. For each function X() create a function gqfuX(), taking the same parameters and giving the same return type.
  4. Automatically generate (using some easy built-in logic) code for each gqfuX() function. This code will convert the parameters into an ASCII format, run the gqfuUsefulLibrary program, pipe some STDIN to it and get the result via STDOUT.
  5. Put all the gqfu*() implementations in gqfuUsefulLibrary.h

Once all that is done you build the generated gqfuUsefulLibrary.c and link it to UsefulLibrary. This will create a standalone binary application. The application will act something like a web services provider, except working via STDIO and no bloody XML.

The other half of the generated code (this will sit, for the sake of argument, in gqfuUsefulLibrary.h) will be included in, and built with SecretProgram.c. This part is like a web services requester.

how gqfu works

And guess what? You compile and link your SecretProgram.c without touching anything in UsefulLibrary – not even the header file. If you’re really paranoid, you don’t even have to use UsefulLibrary.h for automatically generating gqfuUsefulLibrary.h. You can just give the desired function prototypes to the gqfu program.

So there you go. Using a quick and easy tool you will avoid ridiculous GPL requirements that would otherwise force you to licence your program under the GPL.

Feel free to steal this idea and implement gqfu. You should even be able to make a business out of it. I bet there are lots of useful libraries that businesses would like to use if only not for the GPL. They would pay good money to avoid rewriting the functionality in those libraries.

I would do it myself, but it doesn’t look like I’m going to have any energy to spare for another project in the near future.

Open source projects competing for manpower

Sunday, December 23rd, 2007

By Andrew Smith

It’s that time of the year when people who have a life go live it fully, and people like me are left bored to death, cause their work is not as interesting :) So I looked over my to do when you’re bored to death list and found this idea – research, or at least articulate what I believe about how a limited number of volunteers can handle an ever growing number of open source projects.

The premise is simple – there is a limited number of people in the world who are capable, interested, and willing to dedicate their time to helping out open source projects.

I’ll expand on that a little. Here are the factors that affect this number:

  1. The total number of people on the planet.
  2. The skills required to do anything remotely useful for an open source project.
  3. The time and will to volunteer for an open source project.

I was going to put that into a formula, but I don’t have the patience.

Anyway, my point is that either we already surpassed this number, or we’ll get there really soon, and either way there is already tremendous competition for manpower in open source.

Projects ranging in scope from wordpress to the Linux kernel wouldn’t be worth my time thinking about if it wasn’t for the volunteers. Often it’s a small group doing the coding, sometimes there is a small group of artists and/or usability experts, a larger group of testers, and an even larger group of bug reporters and evangelists. Get rid of either of these groups and the resulting project will be either not working at all, or unusable, or very buggy, or with such a low rating on Google that you’ll never find it.

So to get an open source project you need volunteers. How does one make a project more interesting to volunteers than the competing project? It’s a science, you can be sure. I’ll put together a list of things I can think of right now, but it is highly unlikely to be complete, or even useful. Just food for thought.

Easiest first – choose a popular domain

What I mean is make your project useful for a large number of people, i.e. potentially everyone would use it – doing a job everyone needs done, working on all the platforms, with features rivaling the proprietary (expensive) software, and cheap (or even better if it’s free).

A project with millions of users will have self-sustaining communities of bug reporters and evangelists, that’s the really great part. Basically you don’t need to worry about this, unless you’re really serious – then you can have a marketing department arranging all sorts of competitions and other events for the fans.

Harder – a good social environment for sociopaths

One of the things your project needs that I mentioned is serious testing. Very few normal people will use alpha/beta/rc versions of software if they don’t have to. Some will, and depending on the popularity of your project you will get a few or a few more volunteers to do this testing, but never enough.

An obvious solution to this is to do what some projects do and have no releases, at all – have the users or the distributors get the software straight out of the version control repository. You don’t want to do this. Unless you have no competition at all your users won’t stick around to put up with your broken-forever software.

What you really want to do is create the infrastructure where the geeks (the abnormal people who will use alphas) will get to communicate with other geeks, brag about their accomplishments, complain violently (but about things that won’t offend anyone in the group), etc.

Basically you want to give the geeks a life. And in return all you ask is that they keep using pre-release versions of your software and file bugs.

The tools to build this infrastructure are well known – IRC, forums, newsgroups. But it’s not as simple as build it, they will come. They would come, but also would a bunch of trolls who would make the imaginary life a worse ordeal than the real life. You need serious moderation, you need to identify and single out the unproductive trolls, and exterminate them with big bangs.

To do this properly you need a person working full-time on this part of the project, and it’s unlikely a volunteer will be willing to constantly do the dirty work.

Hardest – you get what you pay for

One may argue about how critical the testers, bug reporters, and evangelists are. But one must be out of his mind to argue that the programmers developing the core of a product are anything but priceless.

You will never form the groups of people to support, promote, and grow your program if the program isn’t there to begin with, or if you can’t fix critical issues quickly, or if the code is so foreign to all working on it that new bugs get added quicker than the old ones are fixed.

You absolutely need programmers working full time on your program. If it’s small enough and you have the ability to sustain your lifestyle by other means, you can do this job yourself (assuming you’re a programmer). But the larger and more complex the program gets, the more coders you need to take care of it.

Sadly most companies go with hiring rock stars, but I already complained about that, and the fact is – it works. The point is, you need one or a team of capable coders to work full-time on supporting the core of your product. You may allow some features to be done by volunteers, but only because you can do just as well without them.

So you need to hire exceptional minds and offer them whatever remuneration they will find most valuable. It may be interesting work, fame, a great team, but one thing is needed for sure – money. So no volunteers.

Now I realise I’m getting too far from what I started to write about, but I’m too tired to make corrections. So I’ll just add a couple of points.

It is physically impossible for all open source projects to be fully staffed, there aren’t enough qualified people on the planet who have the time. Open source projects compete for the volunteers, and the ones most successful at this get more of everything – more quality, more promotion, even more features. The ones who do it worst die quickly, or stay afloat on the maintainer’s back until a competing project takes over the scene.

Naturally this doesn’t apply to all projects – there are plenty of programs like ‘ls’ which don’t have, nor do they need, volunteers, they are so small and so low-maintenance that a part-time maintainer will keep it in tip-top shape for a long time. So don’t worry if you have a tiny open source project – I wasn’t talking about you. Except of course.. just you wait till you have enough bills to pay :)