A Thanksgiving Gift – 7 Days of Source Code

On Friday I attended a talk at Simon Fraser University‘s Surrey campus by NYU’s Ken Perlin. I use derivations of Ken’s famous noise function almost every day, so it was nice to get a chance to see him discuss his work. The talk also got me thinking about the value of open source and I realized I haven’t been quite as good at releasing source from my own projects as I would have liked.

It’s Thanksgiving weekend in Canada – and while I’d love to send a turkey to Ken and all of the others whose excellent libraries, algorithms and methodologies I use every day, it’s just not practical (not to mention messy). Instead, I’ve decided to release source code for 7 of my projects over the next 7 days. The first release will come some time tomorrow morning (offering a clue to which project might be dropped first).

When it comes to releasing source code, I’ve always been torn. I really believe in the philosophy of open source, but I’m intimidated by putting my code out there for everyone to see. Underneath it all, I’m probably scared of being exposed as some kind of a charlatan (“You call that programming?”). So, to pre-empt that possibility, I’ll start by saying this: I’m not a great programmer. My code is clean and fairly well-structured, but don’t expect to find any particularly advanced code wizardry or complicated mathematics. I do, however, think that the projects that I’ll be sharing over the week contain some good ideas, and a lot of helpful techniques. Hopefully you’ll find one or all of them useful.

With each release, I’ll be providing some basic documentation a brief thank-you list to the people whose code made the project possible. I’m not asking for anything in return, but I will ask that if some part any of the releases ends up being used for something new and interesting, to please let me know.

6 thoughts on “A Thanksgiving Gift – 7 Days of Source Code”

  1. It bothers me how many are prevented from open sourcing by the fear that the world will sneer upon their code. Surely the measure of good code is more than just grammar and structure. It is the creativity and ideas that should be shared and celebrated.

  2. Don't worry at all about things like "code quality" – everyone is typically their own worst critic and chances are it's a lot better than you think it is. I've released plenty of code I think is crap, but it *works*, and instead of getting insults, I've gotten patches to improve things. People are more helpful than you might realize.

    Sometimes I hold back on releasing code, but I also hold back on releasing *anything* about a project because I want to "finish" most of it before I put it out there… given my irregular time for working on things I don't want to be like "hey i'm working on all this cool stuff but I probably will never finish it" cuz often that's what happens 🙁

  3. Wow – I've been out of the country and away from my computer for a few months, so I'm a bit late to the party here, but I just wanted to say thanks. I can't wait to dig into your code from these projects and I think it's awesome you're sharing them. Your work has been a big inspiration to me, and now it's going to help even more.

Leave a Reply

Your email address will not be published. Required fields are marked *