Bill Shupp Software engineer, photographer, musician, space geek

24Dec/104

GitHub Pages + Pirum = Easy PEAR Channel

I prefer managing my non-PEAR PHP dependencies (such as Zend Framework and PHPUnit) through PEAR channels when possible.  It's much easier to manage component installation, upgrades, etc..  Managing and hosting a PEAR channel (using the Chiara_PEAR_Server) is not always that simple, and can add too much overhead for small projects.  I like how Zend Framework leveraged google code to host its PEAR channel, and was able to update it simply through pushing to SVN, avoiding a web interface.  Since I've been accumulating some components recently that really don't fit into pear.php.net, I figured it was time set up a PEAR channel for distributing them, but didn't want to host it myself or have to use a web interface.   Turns out, it's really easy to do now.

20Sep/100

Better code quality through easy access to tools

(Reposted from the Empower Campaigns blog)

When developing an application, one of the keys to maintaining high productivity and quality is to make sure that you not only have the right tool set, but that you have easy access to it.   With web applications, the usual needs are things like running Selenium tests, running unit tests and checking code coverage, profiling, and having links to documentation.  Though I've talked previously about the cost of maintaining 100% code coverage, I'm convinced that it's worth it if you not only get proficient at the tools, but make them very easy to use.  So when I started as the first developer here at Empower Campaigns a couple of months ago, I wanted to make sure these needs were addressed early on, before we had a large development team.

10Jul/101

Importing foursquare checkins into SimpleGeo with PHP

SimpleGeo recently blogged about exploring foursquare check-ins on a map with their service.  I'd been looking for an excuse to play with their API, so I decided to port the example in their blog (which is in python) to PHP.  Read their blog first, as it covers the process in more detail.  Just substitute their examples with the ones below.

2Jul/100

All good things…

Today was my last day at Digg.  After two and a half years there, I just felt that it was the right time to move on to something new.  But I can honestly say it was the best job I've ever had.  Such a talented group of people, doing really great things.  And not only does that company know how to party, but you also get to cross paths with some interesting people and visit some cool places.

Filed under: Digg Continue reading
21Feb/101

Pragmatic tips for unit testing in PHP

Recently I've been hearing a lot of differing opinions about unit testing.  Some people just don't believe in it at all, others think the value it provides is only part of the picture, and that its cost should be weighed accordingly.  Some think that 100% test coverage should be the goal for high quality software.  I personally think the cost of unit testing 100% of your code is worth it, but only if you can do it efficiently.  And that's the catch; there's a learning curve to become proficient at unit testing, especially with PHPUnit, the most prominent unit testing framework for PHP.  Unit testing should never take more than 20-30% of your overall coding time, if you do it right.