So I don't really do New Years resolutions, but that doesn't mean I don't have goals for myself. I've been pondering what my goals for this year are and I've got a pretty healthy list for 2012 (oddly all work/technical) so here goes:
1. Publish an AWS Consumer Application on Android.
So as part of my new role we're transition a lot of traditional hardware to EC2 instances, we'll be needing to monitor those instances and keep up with what's going on with our infrastructure. We have a graphs solution that one of my co-workers wrote many moons ago, but, with EC2 CloudWatch becomes a target, since it records at what would traditionally be the hardware level. CloudWatch has a fairly decent API, the only thing I'm not seeing yet is the ability to send CloudWatch alarm notifications over SNS (Push the alarm to a mobile device.) My goal is to write a service consumer that will pull instance and aggregate metrics and then graph them, further I intend on doing a background process to monitor for alarms (until SNS notifications become possible.) I hope to have this done by May, we'll see.
2. Transition to Programming in Python
What? Why? Well I'm no longer an Application Programmer, I'll be working on system level tools and processes and some of these will grow rather large so it's only logical that Python has better hooks than PHP and is more maintainable than BASH (personal opinion.) Don't get me wrong I still love PHP, but it just doesn't make sense for what I'm working on here and I don't want to go as low as the C level with CLI tools and build tools.
3. Write a PECL Extension
So yeah, another lower level task (and no this doesn't contradict the Python statement from above.) We have a jsmin based PHP Extension that allows us to dynamically minify js, however, we've toyed around with the idea of writing a wrapper around Google's PageSpeed api and switching to it, rather than sit here and spin the wheels at some point I'm going to do exactly that and my intent is to publish it to the PECL repository.
4. Contribute to Docblox
I had been doing work on phpDocumentor2, however, I kept getting demotivated with it since it was basically me and another guy and we could hardly ever agree on much. Mike Van Riel introduced Docblox last year, however, it's still actively being extended and I had some ideas that mvriel has yet to even hint at so this may well be the time for me to contribute.
5. Replace the DI container in ZF2
So I'm a big Zend Framework fan and Zend Framework 2 shows major promise, but, I have a few gripes with complexity and in some cases inflexibility. One of those gripes I have is about the DI container that Matthew implemented and the static mappings that it requires. Years ago I worked with a guy, Sean Crystal, at this little shop in Knoxville; Sean had written a DI container that used reflection, a year or two later when he came out to Nashville to work for a new company that I had moved to he wrote an Open Source implementation called Wires which I wound up forking and trying to prepare for PEAR2. Sean and I had a falling out because I made a slight mistake and Sean thought that I was trying to remove the attribution to him, hence I deleted all copies of Wires from my machine and removed my fork from Github and withdrew the PEAR2 RFC, however, between the work we did in Knoxville and the implementation of Wires and my evolution as a Computer Scientist, I have an idea for an implementation with adapter classes that will allow me to drop into ZF2 and other frameworks. I don't know when I'll get to this but something tells me soonish as we're already building out our Zend Framework 2 implementation at Discovery.
I'm sure I'll have other goals before years end, there are also other things that are not so much goal driven that I'll be doing this year, like next week I'll be setting up Cisco routers in our data-center to handle the tunnel between it and the AWS Virtual Private Cloud, but I think this is going to be a good year and the changes are going to be vast but helpful. Here's to hoping that everyone has an awesome 2012!