Snakebite could be thought of as being similar to Github or Amazon EC2. Except instead of providing Git repositories or bare-bones compute nodes, we provide development environments to open source projects.
Highly customized development environments for every possible platform and compiler configuration you could imagine. AIX 7.1 with IBM’s XL C/C++ compiler suite? Got it. HP-UX on Itanium and PA-RISC? That too. Solaris 9, 10 and 11 (SPARC and x64), IRIX on MIPS, all the BSDs, and every Windows and Visual Studio permutation you can think of. Tru64 on Alpha? Definitely. Even OpenVMS.
Each server has been painstakingly set up to provide everything an open source developer needs to optimally develop his or her project.
You hack away locally on your laptop in the usual edit-compile-test fashion. Each change you make gets whisked away onto a mirrored Snakebite environment that’s been spun-up for you. Compile locally on OS X/Linux, and Snakebite compiles the change on 30 different platform and compiler permutations. Compilation results are aggregated and the interesting stuff gets fed back to you.
Oops, that change won’t work on SPARC as it relies on unaligned memory access…
….is something Snakebite will help you detect as soon as you make the change.
Something not working properly on Windows? The aggregated compilation results have a little link that, when clicked on, launches an RDP session into the affected Windows box, with Visual Studio paused on a breakpoint before the crash occurred, ready for you to poke around and debug. If it’s a UNIX box, you can get the same effect with ssh, or opt to use the platform’s native graphical debugger over X.
Detect errors immediately, then make it trivial for the developer to debug. That’s the goal.
What about when you need to do some discovery-type programming or general hacking? Snakebite provides you with a handy little exploratory console, allowing you to test little bits of code against all supported platform and compiler permutations. You’d be surprised how useful a meta-cscope tool can be when it’s connected to every single /usr/include of every major UNIX operating system release over the past decade.
Got unit tests in your test suite that connect to a database? Your on-demand development environment will cater for that. Which databases? Why not all of them? Immediately test your new ORM logic or simple SQL statement against every Oracle, DB2, SQL Server, MySQL and PostgreSQL version released over the past ten years. Or make use of yet another handy little Snakebite console that allows you to run little test snippets of SQL across all supported databases.
Found a bug or regression? Snakebite can help you bisect it because it’s stored the compilation results of every platform’s successful compilation of every source code revision since you first joined. No need to recompile every revision during bisection, just whip up a little test script reproducing the bug and Snakebite will figure out when it first occurred.
What about open source operating system developers? Snakebite does everything it can to cater for them, too. Imagine being able to test the impact of your networking stack rework against known-good versions of open source projects already participating on Snakebite. Or check for performance regressions between releases. Snakebite strives to connect bright minds living in otherwise disparate open source communities.
At a much higher level, Snakebite aims to be a focal point between companies (platform and product vendors) and open source projects. The aim is to turn this situation:
Think of all the open source projects that attempt to support connecting to an Oracle or DB2 database. I’m sure Oracle and IBM would love to assist, but think of the logistical nightmare involved if they had to communicate with each project individually. Snakebite addresses this by being the focal point. The middle man. The bridge between the companies and the open source hackers of the world.
Instead of granting licenses to hundreds of different open source projects, they simply grant licenses to Snakebite, and Snakebite does the rest. Databases are just one example — the same applies for proprietary compilers (IBM’s xlC, HP’s aC++, Intel’s C compiler, etc), operating systems, or any other commercial software that can be leveraged by open source projects.
Snakebite is platform and vendor agnostic; it assumes, above all, that companies want to help open source software. It has no position or preference on hardware or software. Everything gets treated equally and is given a fair chance. It’s what you’d get if you combined Switzerland with an overly-enthusiastic toddler that’s just been put in charge of giving puppies to orphanages whilst connected to an IV-drip of pure candy.
With Snakebite, the answer is yes. The question? Irrelevant.
Welcome to the future of open source software development.