• Courage and Prayer

    I cried in church this week. If you know me very well you also know that me crying, particular in public, is a rare occurrence.  My only consolation is the fact that I wasn’t the only in the congregation with damp eyes. We are deep in a series on Paul’s letter to the Philippians – after over a month, we’re getting close to finishing chapter 2.  It’s taking a while, but the series is going quite deep and exposing parts of the scripture I haven’t taken enough time to consider before. Last week covered verses 5 through 11, a poem describing the…

  • Universal User Support

    Yesterday, my news feed included an article about a particular retailer’s proposed tax on IE7 users. The first article made it sound like a good idea – users checking using an older browser faced an added 6.8% “tax” meant to address the additional effort required to support the older system. I was constantly on the line to my web team. The amount of work and effort involved in making our website look normal on IE7 equalled the combined time of designing for Chrome, Safari and Firefox. Then today, I read an article on SitePoint that actually opposed the idea. So…

  • Merging WordPress Multisite

    When I first set up my personal website network, I got a bit carried away.  Once I had the first two sites in a multisite network, I started splitting out every category of my blog into its own site – each with its own domain. At the peak, I had: One site for my personal profile – linking to all the other sites One site for a professional portfolio One site for my business blog One site for my Christianity blog One site for my creative writing portfolio One site for political discussions One site for a personal journal Then…

  • How to Contribute to WordPress Core

    My first ever contribution to WordPress was trimming whitespace from keys stored in the WordPress options table. Basically, I removed a space. But since then, I’ve contributed quite a few other patches to the project I love.  Eleven of them have actually made it in to the core codebase! At the Portland WordPress User Group meetup a few weeks ago, I gave a 5-minute presentation explaining how everyone could get involved with WordPress; both developers and non-developers.  Still, people ask all the time how they can see their changes reflecting in WordPress core. So here’s an example of how a recent…

  • Classy Plugins

    I was asked a few weeks ago why I structured my WordPress plugins the way I do. Anyone who has spent any time looking at my code knows that I like to keep my main functions in a class and wire up action hooks and filters in the root of the plugin.  But few people have asked me why I set things up this way. My explanation is in two parts: Writing clean code Writing easy-to-maintain code Though it should be noted now that, while this particular development style makes heavy use of classes within PHP, this is not object-oriented programming. Let…

  • Start with a Unit Test

    Not everyone is a fan of test-driven development. Writing unit tests for your code can be a laborious task, and it has no immediate benefit to your customers.  So why waste any time writing the tests, right? This past week, a colleague of mine summed up the problem pretty well: I’ve finished writing the code for that feature.  Now I just need to take some time to sit down and write some unit tests for it. He’s not following test-driven development.  Instead, his tests come in as an afterthought.  Actually, most of us code this way. We write a chunk of code to…

  • Dependency Injection and Abstract Interfaces in C#

    If you’ve ever written code, you’ve probably written a unit test.  If you haven’t written unit tests, you should start. Now. Really. Unit tests let you quickly verify that your code is operating in a predictable fashion.  When you make changes down the road, you re-run the same unit tests to make sure nothing broke. In many cases, you write the unit tests first.  Define what your code will do, decide what objects you will use/make to accomplish that, then write a test.  At this stage, the test will fail – but you have a place to start.  Now write…

  • You Have an Opinion?

    When I write software, I ask for people’s opinions.  Then, I either listen to what they have to say or I don’t. Some people are very adamant about certain features, options, or use cases. Sometimes I listen, sometimes I ignore them entirely. It’s nothing personal. I have opinions about certain applications that should be ignored as well.  Features, options, and experiences that are important to me aren’t important to the overall process or the product’s actual end user. Am you entitled to have an opinion of my work?  Yes.  But I’m just as entitled to disqualify it for the following…

  • URLs and UX

    I despise broken links. Most of the sites I read on a daily basis are littered with links to this site or that site.  Many of them are written quickly to get news stories out promptly and, as a result, are published with typos. It’s one thing when I catch a typo in body content – most of us can read English words if the characters are in any order – but a typo in a link can be catastrophic. The other day, for example, a friend posted a link to Twitter. Twitter immediately tried to parse the link to auto-shorten…

  • Happy Hunger Games

    I love a good story. Drama. Action. Romantic comedy. Tragedy.  Fiction or non-fiction.  It doesn’t really matter. We communicate through stories, and the best stories can connect perfect strangers in ways conversation or common ground never could. Last night I had the opportunity to attend the midnight release of The Hunger Games.  I’ve read the series, and I have been looking forward to the movie since I first saw the preview several weeks ago. There were seven nearly-sold-out screens at the local theater.  I was surrounded by teenagers and adults alike.  The majority of us had read the books, and several…