My quest for a new programming typeface
I’ve been working all day everyday with Monaco for the last 6 years. Monaco is a great typeface, it has a number of really great properties. It has a large x-height, and a large m-width. This make it...
View ArticleNew errors in PHP 5.4
I’ve been running the PHP5.4 RC builds for the last few months, and there are some interesting changes in the upcoming PHP release. On top of all the great new features coming in PHP5.4. After...
View ArticleView inheritance in CakePHP
One of the new features in CakePHP 2.1 I am excited about are view blocks and view inheritance. Both are concepts borrowed from Jinja2 and other templating systems. Template inheritance allows you to...
View ArticleSelenium, jQuery and pending ajax requests
We use selenium extensively at work for automated acceptance tests. If you’ve never used selenium, it allows you to record and playback browser sessions and create integration tests from the...
View ArticleRe-designing CakePHP
Myself and the rest of the CakePHP team recently embarked on a journey to refresh and redesign the CakePHP website and brand. I wanted to delve into my process and thinking around the changes. The...
View ArticleStatic Analysis tools for PHP
I’ve recently integrated static analysis tools into both my day job’s and CakePHP’s development process. Setting up static analysis tools is reasonably easy and can help you find problems before you...
View ArticleUsing PHP static analysis tools with Jenkins
In the last article I went over the various static analysis tools I’ve found useful, and how to get them installed. For this installment, I’ll be going over how to use make to run all the tasks, and...
View ArticleCreating sparkline graphs with HTML & canvas
A project I’m working on requires displaying small data driven sparkline charts. The data is a basic set of data showing activity over time. The final result needs to look something like: As you can...
View ArticleConfiguration in CakePHP 3.0
Early work has started for CakePHP 3.0, and I’ve started re-visiting how CakePHP handles configuration and bootstrapping. I want to focus on configuration for this post, as bootstrapping, while...
View ArticleUsing composer in CakePHP 3.0
For 3.0 the team and I are re-visiting how we’ll recommend installing CakePHP, and as always I wanted to try to provide context on what my thoughts are, and get some feedback on the plans. Background...
View ArticleCreating custom selectors with jQuery
I recently re-discovered a powerful, but mostly hidden feature of jQuery. If you’ve used jQuery for any length of time you’ve probably used filter selectors like :input, :visible or :hidden. What you...
View ArticleSelenium synchronization with custom events
At work we’ve been using selenium webdriver to enable automated browser testing as part of our regression suite. One of the most difficult parts we’ve had is maintaining DOM synchronization.
View ArticleThe improved HTTP Client in CakePHP 3.0
Many of the web applications I build have to talk to other webservices. Sometimes those services are internal API servers, sometimes they are external. In both situations, I want a simple, easy to use...
View ArticleTesting CakePHP plugins with Travis CI
Making sure your freshly released CakePHP plugin still passes all of its tests can be a bit of a time sink. Setting up Jenkins for small project can be a big job. After I setup Jenkins once or twice,...
View ArticleRemote debugging with vim and xdebug
A while back I posted on twitter that I had figured out how to use xdebug & vim and promised to do a blog post on how I got it all working. This is that blog post. Before we can get started using...
View ArticleInstalling CakePHP with Composer
I really like how composer simplifies dependency management & installation. It can make applications more portable, and simpler to deploy when compared to the pear installer. Another really nice...
View ArticleMoving to linode
I recently moved hosting for this blog and my wife’s site to a shiny new linode. I did this because I wanted to have control over the versions of PHP, and other server software I ran. I had some...
View ArticleTwo new side projects - xhgui2 & lint-review
I try to keep fairly busy. Between work, being a dad, and working on existing open source projects, I found time to work on two new ones. Xhgui2 Profiling is a very interesting topic for me. I love...
View ArticleChanges to the Events system in CakePHP 3.0
The events system has become an integral part of CakePHP since its introduction in 2.1. When originally introduced, we needed to make a number of compromises in the implementation to facilitate...
View ArticleConfiguration in CakePHP 3.0 redux
In a previous post, I outlined some changes that would be coming for configuration in CakePHP 3.0. I’ve recently been thinking a great deal about configuration as well as building some prototype...
View Article