My new home (that would be bowery.io) is a full-on Go shop, which is a pretty major departure for me. This series documents my learning and stumbling, so you can all enjoy an occasional dose of schadenfreude. First up is just getting running with Go, which unfortunately is easier said than done.

So you arrive in Italy with your bags intact, looking forward to rolling hills, fresh grapes and copious amounts of food. You wander the train station or airport for twenty minutes looking for a way to purchase bus tickets, but no luck. You presume you get them on the bus, and go to your station.

So I’ve been using the most excellent Hexo to publish this here blog, and was generating static output on my laptop before pushing to a git repository. This is not how Hexo is intended to be used, but me being a silly little spacemonkey missed the memo.

So I’m pulling the static output from the repo, and generating it on the server like a good monkey should. I’m planning to automate the whole process with jenkins and phing, and will document the whole process here when it is actually done.

Sorry ‘bout that, and now back to our regularly scheduled programming.

I’m getting asked a lot about ‘why Poseidon?’ since the project launch, and wanted to share the story and ultimate decision behind the name.

First off, I’m not necessarily a huge oceangoing dude. I love the ocean and enjoy vacations to the seaside, but it’s not something I spend my idle time thinking about. The choice behind the name was not based on a personal love for the sea.

Humble beginnings

Oddly enough, it was driven by irony and history. Let me explain: Just like you and I, the mighty Poseidon had humble beginnings, too. He began as a land-based deity, the god of horses. Back then this was a pretty big deal though, as culturally everyone knew that cavalry was the biggest and bestest show of military might and supremacy. All was good and well, and young Poseidon embraced his role and grew comfortable hanging out in pastures. At least as long as he was watching where he was stepping.

Then times changed. The horse was considered a mode of transportation limited to land, and difficult to get across large bodies of water. As the world started to shrink, naval supremacy became more and more paramount for military chutzpah. The Greeks looked around, realizing that the most important aspect of their lives was not represented by a deity. Now what?

In a nutshell, It’s been more than six years since I walked away from my beloved Joomla. I had to, as there were just too many personal attacks, politics, beaurocracy, and things better left unsaid. I chose the peaceful route, and picked up my toys and looked for a new place on the playground to hang out.

That gave me time to focus on my career, which managed to enable me to relocate my family to Turin, Italy where we live today. For that I’m truly blessed and feel just about as fortunate as a spacemonkey could ever be.

However throughout the entire time there was a pulling inside of me, a tugging that wanted me to get busy with open source projects again. I dabbled here and there, managed to issue a couple meager merge requests and even emailed some folks code just to get stuff done; but throughout there just was not the project that was for me.

It actually took the folks at Bountysource to convince me that I wasn’t insane (at least regarding my dream of a modern publishing platform that was dead simple to use) and Poseidon was born. We just pushed up the fundraiser, which will make it possible for a relatively small team of really great people to get Poseidon 1.0 up and among the land of the living.

So why did we do this? We’re not trying to take away from any of the existing projects out there; and hope in fact that we might have something to contribute to them by pushing the envelope and finding better ways to manage websites for people. Freed from years of legacy luggage and unencumbered by compatibility with earlier, more-primitive implementations, Poseidon is able to boldly attempt what was considered unthinkable.

One thing is the project organization itself, which is a breath of fresh air. We are not going to write a line of code, we are first engaging the creative and design folks to walk through what Poseidon should be, regardless of how it is built. This freedom for the UI/UX efforts is a major factor in what makes Poseidon unique amongst open source projects, as we all have been guilty of coding first and worrying about the interface later (me too, we all have done this right?).

Another major difference for Poseidon is testing. Poseidon takes testing for granted, and if your plugin code fails the tests it will not install. If you cheat and only cover a couple methods in a controller (and pretend the model isn’t needing tests), the test harness will tattle on you, and tell you what lines of what files are not covered - and again it will not install.

For site owners, this is a major win, as they can install plugins without fear. For developers, this is also a major win, as they can launch products in the marketplace and know that they will work. This is a win-win for both groups, which are the key parts of the community behind Poseidon.

Lastly, there will be juju charms for Poseidon, AWS AMI images, and hopefully many more packaged ways for us to deploy our websites to the cloud. For the little guy this means lower costs and predictable performance; and for the big guns this means real scale without a massive customization job to make it happen.

I’ll be writing about the march to 1.0 here, and will get more into detail when things start to become more finalized. I’m thrilled and terrified at the same time to be making such a huge commitment to an open source project again, and openly invite you to join me on this really cool journey with some great, talented people.

So I’m already getting questions about what I am powering my personal blog with this time. Previous iterations ranged from custom PHP, Joomla!, Wordpress, Typo (now Publify), Poet, custom Lithium blogging engine, RadiantCMS, and I’m pretty sure I forgot no less than five others. Oh yeah, there was also Plone and stock Zope incarnations as well. The first version was static HTML hooked into c code that was compiled directly into the core of the NCSA webserver (before Apache existed) but hey that probably goes too far back.

I’m going to be talking MongoDB to the PHP User Group Torino next week. Going to be an exciting session, as I will deliberately bring NO DECK. This is going to be all console and code, baby! Hoping to fill the room as much as possible, as this will be a very hands-on session and would love to get everyone up and running with examples and best practices when all is said and done.

If you are planning on attending: You’re going to be doing us all a huge favor if you show up with MongoDB already installed on your machine. I plan on bringing a USB drive with copies for Windows/OSX/Linux but would rather jump right into the fun stuff!