We're proud to announce that Colony Framework now supports Modular Configuration.
What this means is that you can now load and unload configurations, in runtime, in the same you way could already load and unload Colony plugins. Colony configurations do to data, what Colony plugins already did to logic: they remove the need for restarts, promote modularity and make distribution transparent.
For instance, you could fire up a Colony instance, throw in a CPX file containing the HTTP server plugin and then throw in a CCX file (Colony Configuration file) which would set your HTTP server to act as a proxy. You could then pop in a new CCX file which would completely reconfigure you server to act as a simple file system navigator. All of this without ever having to stop your instance or even reload your HTTP server plugin. Pretty cool, huh?
For a long time now, the configuration facilities in Colony were seriously underdeveloped compared to the other parts of the technology. We had been wanting to fix this almost straight after the configuration infrastructure was set in place.
Until now, like with every other system in the world, changing the core configuration options of any component would require restarting the instance. This can be fine for a lot of people, but when you support loading and unloading components in runtime, having to reload because of a settings change always seemed a bit awkward.
Modular configuration also comes with a high content of distributed AWESOME. Think about Colony Distributed, and how easy it now will be to deploy work units to remote plugins. We could already ship plugins to distributed instances, now we can ship them with precise indications on how the host instance should use the plugins: the configuration file. Try that on a regular distribution framework!
Everybody we were showing Colony to lately was saying we had to release it because people needed to know about that kind of awesomeness. But we are people of work, not of show... So we kept on working, ironing out the wrinkles and such.
We even started working on documentation and, again, people who looked at it were asking why we didn't have it online. So things added up, we polished a bit more, and felt it was as good a time as any to put something out there.
We didn't pimp it much, justsomeplaces where like-minded individuals hang out. We got some mixed feedback between people amazed at the amount of work we had put into this thing, while staying under the radar, and others having a hard time understanding what it was good for.
But, most interestingly, we found some people that actually felt the kind of pains Colony was intended to ease. And they wanted to know more.
We got several requests for a forum for users to exchange experiences using the technology, and we got a tip about creating the #colonyframework IRC channel to help connect even better with the audience.
And so here we are. We have something that you can already start calling documentation to. You can also check out our daily builds. To get an insider perspective on the project consider joining the Colony Users mailing list.
Ok, the prank has gone for too long... the fact is that... Colony doesn't exist, it was all a big hoax.
Ahah got ya! It does exist, but with years passed and no release in sight, people have started to wonder,
and rightly so, what the frack happened to Colony. Questions typically involve one or more of the following frustrations:
What the hell is Colony?
Why do I keep hearing about Colony and still can't really understand what it is or where to get it?
Why is www.getcolony.com down?
Are we there yet?
Well, I can tell you that during this long timespan, few were the days where there wasn't a commit to our
repository, directly or indirectly related with Colony. So, in fact, Colony is better than ever, and 99%
of the work we do today, is either on: directly improving Colony (through the development of new plugins,
bug fixes, and miscellaneous code improvements), creating products with Colony, or doing consulting work
using Colony. In fact, we can't stop Colony from getting better with each passing day, even if we tried.
So why isn't it out yet you may ask? Well... you can say it's out, in fact, from day one, http://svn.hive.pt
has been open to the public and filled with GPL goodness.
The bottleneck has always been in making Colony so f-ing simple, that using it for the first time is an enjoyable straightforward experience. That means
quality documentation, useful examples, easy installation and transparent updates, etc.. and we ain't there yet... but we're moving in the right direction.
Where are we going?
Documentation has improved quite a lot, both by extending their subject coverage, and by making them more actionable
and straight to the point. Serious work as also been done in creating tasty multimedia content to make the experience of diving into Colony more enjoyable.
This content is still in the works, but just last month, we leaked one of a series of Colony comics we have created:
However, the biggest milestone has been getting our Colony Build Automation infrastructure (which is a set
of Colony plugins, as everything else) up and running. Nowadays, we have a server running a Colony instance
that is constantly fetching code from our repository, making sure it passes our validations, and packaging it into various formats.
As an added bonus, everytime someone screws up the build, that person is greeted with a nice unforgiving e-mail:
With this automated lifecycle in place, I can now access the Colony instance where the build automation plugins are
running and building Colony (embrace the paradox :P), and through the Colony Web Server (which is also just a bunch of Colony plugins),
and the HTTP File Handler Plugin, which extends the Colony Web Server and allows me to browse the build server's filesystem with my web browser, I can always access the latest build, in various formats, including fancy "deb" files. Meaning that currently, in Ubuntu for example,
I can just add this web server as a source and am able to use its package manager to easily install Colony.
This infrastructure, will in the future, keep delivering you fresh Colony builds, regardless of what operating system you want to deploy Colony on.
When will we finish?
I just finished reading one of ultramarathoner Dean Karnazes' books
(I just got a Kindle, and its kickass paper-like display has gotten me addicted to reading again!), where he details the gruesome pain he endured in his insane runs, like running 320km non-stop without sleeping. Heat strokes, muscle damage and severe dehydration aside, 12833 commits and 354.488 lines of code (639.286 with comments) later, getting Colony ready already seems like an ultramarathon, which fortunately seems to be getting nearer and nearer to the finish line. As Dean says, no point in thinking of how long to run, just put one foot in front of the other. This to say, I can't give you a release date, it's ready when it's ready, but it will be worth it!