Personally it was pretty great as well. Shift Refresh almost doubled sales from the year before, Maddie turned one, Lexie turned eight, and my confidence really improved about where everything was going. Not only that, but i signed on to be a partner in a startup, which has been pretty exciting as well. All in all, a great year.
What Happened?
However, 2010 wasn't so great for software releases and new initiatives from me. And, yeah, that stuff is totally my fault. All of the things that made 2010 so great were also the things that kept me from coding when I wanted to. Those things made me lose focus, or desire, or one of the other emotions that are required to spend hours and hours working on free software. It's very satisfying when it all comes together, but sometimes taking those first steps (first steps being somewhere in the 100 hour range) very difficult.
2.0 is a great myth at this point. Vaporware of the nth degree, and it bugs the living crap out of me. The sad fact is that 2.0 has come close to being ready for a beta several times, but then things change and it falls behind again. And those changes are always because of me. Something new has come along, or I've learned a little more about software design or CMS design and realize that things need to change again.
I've learned a whole lot about CMS design in the past 6 years. I look at other CMS's now and can point out what's right and what's wrong with little affair. Most of the CMS's out there have something very right, and then (at least in my eyes), something that makes it not possible for them to become the "perfect" CMS (again, at least in my eyes). I think I have a rough idea as to what we need now… a combination of crazy flexibility with an interface that doesn't scare you away. It's a tall order, but I think it's possible now. In fact, I know it is.
…and I'm not doing my part to make it happen. There's no one else to blame for it except for me. I'm comfortable with that fact. When things go wrong, you have to blame the captain. It's the law of the sea, or something. Anyway, I know it's myself who's done wrong and I'm ok with that.
I've learned a lot this year about delegation. It's one of the greater life lessons I've picked up. I can't do it all… I know that now. I especially know it when my TODO list keep piling up with no signs of relief, and no way to fix it without putting in 80 hours a week (which I'm starting to refuse to do).
So where are we?
CMS Made Simple
Last month at a CMSMS code monkey meeting, we made two very important decisions.
- CMSMS 2.0 will be built on Silk Framework
- Silk Framework is built for PHP 5.3+, and so will CMSMS 2.0
Two crazy important decisions for the future of the project. We've basically said to ourselves that this is a long term project, it won't be here anytime soon, and even if it is, it's not going to be able to run on hosting providers right away, since PHP 5.3 is still pretty new (at least in terms of adoption – PHP is always slow). However, this is the right decision. We're in it for the long haul, and if that means that picking the better technology and waiting it out a bit is the right thing to do, then so be it.
2.0 will be built on a solid Silk Framework, with a lot of the underlying functionality already done. CMSMS becomes a web app, a modulel loader and a page rendering engine at it's very core. Silk handles everything else as part of it's framework. The benefit? CMSMS will benefit from Silk being used in a lot of different scenarios. If it has a high adoption rate, then CMSMS gets a lot of functionality thats tested well for free. It also means that other applications can easily be built right along side of a CMSMS installation without having to try and merge technologies – a full function framework is ready and waiting for apps to co-exist with it. Again, for free.
Silk Framework
Silk works pretty well already, but it's still not quite there yet. It needs a form API before we go too much further, and it needs some overhauling of how the request/response interface works. My plan is to implement a Rack-life interface between Silk and the php's request/response/server objects. This interface will allow developers to inject other apps (called Middleware) directly into the request/response cycle, which makes for some crazy flexibility
The Rack interace is actually done, except for some tests and a few straggling functions. So, once that's ready, I can embed it into Silk, which will require moving some code around, since Silk already has it's own Request and Response objects that aren't quite as consistent of an interface as I'd like. Rack will basically negate those and they will just be relegated to some utility functions.
As things calm down, I should hope to start putting that together in the next week or so. Once that and the forms API are done, then we can move forward with the CMSMS API, and start putting the admin panel together, since it'll have to be rewritten as a Silk web application. Luckily, Silk is easy to write apps in, so that part isn't going to be as painful as it sounds. I'll be doing a dance knowing that a lot of the admin panel code is going to go the way of the dodo.
Conclusion
So 2.0 will be coming. We're sure of this now, but it comes down to finding the time. There's a lot to do still, but I think we're up to the challenge. We really have the opportunity to make the next great system. I just have to make sure that the team can push forward and make it happen. It's only time and energy, right? We have plenty… right?