Updating my portfolio and skills

Over the past few months, I have been involved in a number of new projects, as well as hardly touching older tools. I haven't had a chance to update my blog, and don't plan to write a full summary for each subject (except the Arduino turret), and instead will just give a brief overview. The Arduino turret will be covered in much more detail once I have it completed.


My Post-PHP Experiences

A few months ago, my work duties changed and I've been spending most of my time on languages other than PHP, namely VB .NET and C, with occasional forays into C# .NET and Basic. In those few months, I've learned a few things about what it's like outside of the PHP ecosystem.

Designing a request object in PHP

In my article on Indigo's core design decisions, I spoke on how to handle the request / response cycle. The direction I chose to go is to create a pair of objects and pass them to the controller. This is in contrast with passing an arbitrary number of arguments (typically pulled from the URL), allowing it to locate GET/POST data, and returning an HTML string. Kohana and Drupal both employ systems like this, but I rejected that pattern. I chose this set up for a few reasons:


Indigo's core design decisions

Work on Indigo is proceeding reasonably smoothly. The main focus has been on the routing, controllers, views and database abstraction layer. I've been thinking about a number of design decisions that I made and whether or not they are the right call.


Indigo and DOMi are now available through Packagist

Over the past few months, I've been making use of Composer for managing my project dependencies. I am impressed and hope that the PHP community adopts Composer completely. Thus, it is only natural that I adopt Composer for releasing my work. 

vim, xdebug and PHP 5.4's development server

I recently began using xdebug and vim for debugging and breakpoints. I had been using Eclipse and xdebug, and missed this feature when I switched back to vim.

I found a few articles on the subject, but most were fairly old, missed some key points and didn't mention the 5.4 development server. I used this article as my starting point, but I had to fill in a few gaps.



I have been working on a PHP project that will either be my rebirth or my coda in that language, but I don't know which one yet. It is is an MVC framework called Indigo that is the byproduct of several custom built frameworks, with inspiration from Drupal and Kohana. The project came about as I worked on SableOPS and refactored the codebase into a more maintainable system.


What tools do I have my eye on?

In the course of my work and research, I often come across new tools that I hear about and am interested in trying, but have not yet had a chance to actually delve into in any meaningful way. This is a list of what is currently on my queue.

Thoughts on PHP 5.5

In my Summer of Learn article, I mentioned how I hesitated to explore PHP 5.3's features and plan to use 5.4's much more freely. In following with that general trend, I have been keeping up with proposed changes to PHP 5.5. In a recent post, nikic did an excellent job summarizing the major proposed changes that are being discussed in the mailing lists.


Summer of Learn

For various reasons, the past 2 months or so has seen me experimenting with a whole lot of new techniques that I had never previously explored. This also happened last Spring. I want to make this an annual part of my life and so I now introduce the Summer of Learn. Each summer, I will pick a variety of technologies that I am vaguely aware of and make an attempt to get my feet wet. These technologies can range from entirely new languages to new features within languages I already use.