Steve Phillips

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.

Can we Google bomb good PHP tutorials to the top?

There is an ongoing debate about how terrible PHP is. I'm not going to rehash any of that here, but I began to consider what the community could do about this and an idea came to mind - what if we Google bombed good tutorials?


Adventures with SASS

I recently began to use SASS to enhance my CSS work. After I got past the learning curve of getting Compass set up and working, I fell in love with the power and simplicity of SASS. It supports the kind of syntax I've long wanted to use, such as variables, mixins and nested rules. The nested rules are especially important to me, since that is the feature I most frequently craved.

The Four Modes of Development

As a developer who is only recently breaching mediocrity, I still constantly strive to improve myself. One technique that I first read about in Martin Fowler's excellent book on Refactoring is to pay close attention to what development mode you are in and act accordingly. In Refactoring, Martin Fowler speaks about two modes - adding function and refactoring.

10 Essential Drupal 7 Plugins

Since I became a Drupal convert last Spring, I have built half a dozen sites on D7 and have begun to establish a very reliable list of plugins that I consider essential for most Drupal builds. These plugins provide critical functionality to the Drupal core to both enhance the user experience and to increase flexibility for the developer. They can be broken down into three categories:


Quick and dirty PHP memoization

The concept of memoization is simple - cache the results of an expensive function for future calls. I solved a problem recently through memoization, and since I haven't written an article in over a month (due to a death in the family and then moving into a new house), I figured this is a good subject to quickly write something on.


When IE6 came out

As of right now, Internet Explorer 6 still comprises more than 7% of the browser market share. This is just embarassing. Rather than beat a dead horse on all the things horribly wrong with IE6, I'm taking a slightly different approach. Internet Explorer 6 first released on August 27, 2001. That is almost 11 years ago. Let's take a look at the world at that time.

Fusion turrets - strategies and flyweights

On a side note, it's been two weeks since my last post? That's awful. I feel like I've had a lot to talk about, just haven't had the time to write an article.

The goal

I've been working on fusion a good amount lately, and one of the major pieces of development work is the introduction of 3 new turret types - lasers, missiles and machineguns. This is in addition to the original turret, which has now been renamed the cannon. Each turret type has some advantages and disadvantages:

Straying from LAMP

I recently read an article that very thoroughly tears into the problems that are inherent in PHP. While this one article won't get me to ditch PHP immediately, it did really hit home with many of the points it brings up. There were many times that I thought "You know, I do hate that about PHP" and it made me wonder how many of these issues are present in other languages, or if PHP really is a relatively isolated instance of a terrible language, as the author says.


Subtle, yet brilliant, techniques

As a lifelong techie, one thing that I have come to love is those very subtle bits of polish in a piece of software that you never realized you needed, but once you see it you wonder how you did without it. As an aspiring game developer, I want to incorporate techniques like these into my software. These little pieces of craftsmanship can be the difference between a mediocre program and a great program.