• The Case for Singletons in WordPress

    Please also review my follow-up post, Making Singletons Safe in PHP. There has been a lot of discussion this week regarding the Singleton pattern and whether or not it has a place in modern software development.  Mike Schinkel wrote a tutorial about a Singleton factory.  I wrote one about using Singletons as a WordPress plugin scaffold.  Then the conversation bled over to Twitter and people questioned whether or not it was a sound development pattern at all. I would argue that Singletons are not just useful, but are necessary for robust software development.

  • WordPress Plugin Structure

    The power of WordPress lies in its pluggable infrastructure.  Unlike other content management applications which require you to edit the core code of the system to make changes, WordPress supports plugins.  These smaller applications tie in to a rich API provided by WordPress that allows you to change just about everything about the application and customize it as needed. The official plugin repository on WordPress.org is currently home to over 20,000 distinct plugins.  Each one adds some new functionality to WordPress, giving you the ability to tweak content, change colors, adjust layouts, or integrate with external systems.  This doesn’t even begin…

  • Introducing WP_Session

    Last time, I talked about what it would be like if WordPress supported sessions.  Well, I decided to put my money where my mouth is and actually took the time to build it. I’m proud to announce the very first release of an implementation of [cci]WP_Session[/cci].

  • WP_Session: A Proposal

    My first experience with WordPress was when a client asked me to hack apart the registration system to allow for simple custom referral links.  They wanted users to be placed at different user levels depending on the URL they used to sign up for an account. My initial attempt was … atrocious   When a user hit a referral link, I used a hook to change the default user level, then changed it back after they registered.  The problems with this approach are so glaring, I won’t bother explaining them.  Seriously, it was a stupid idea. My refined attempt tried to hack…

  • Haiti 2012

    In October, 2012, I had the opportunity to take a week-long trip to Haiti. Below is a collection of photos from my trip and a recording of a sermon I presented about my experience. Enjoy! Haiti 2012 from Eric Mann

  • Twenty-Nine

    That’s right. Today is my 29th birthday. Usually I take time on my birthday to write a to-do list for the coming year.  It’s close enough to the end of the year that it serves double-duty as a list of New Year’s Resolutions.  Unfortunately, I never bother to share the list, so no one holds me accountable. And like most lists of resolutions, I rarely complete all (any) of them and end up feeling guilty at the end of the year.  So this time, things will be different.  Instead I’m going to reflect on what I accomplished in the last year…

  • There’s Nothing Wrong with Comic Sans

    When I was in high school, my favorite football team wasn’t very good. I was excited when we’d win at least half the games in a season. I also distinctly remember once when the cable company switched to a “more competitive game” during the 2nd quarter because we were losing so badly. When the Ducks started to get good, though, things changed. We rocketed up the national rankings and became a household name. We shot as high as a #2 national ranking in 2007, and everyone was proud to be a Duck fan. Then we stayed good. We even got…

  • jQuery as a Global Event Bus

    Some time ago, I made a mistake.  Rather than taking the time to truly understand how events worked in jQuery, I built my own JavaScript library to handle event delegation. It worked, but why reinvent the wheel? It turns out jQuery is perfectly capable of serving as a global event bus for all of your code.  You just have to know how to use it.

  • Use Your Head

    I know, a political article during election season.  Sue me. In this year’s Oregon election, we’re being asked to vote on two somewhat controversial ballot measures – 82 and 83.  Measure 82 will amend the Oregon constitution to allow casinos to be built elsewhere than on tribal land (we already have 9 tribal casinos in the state).  Measure 83 will approve a specific casino – currently called “The Grange” – to be opened in Wood Village near the river. I think it’s interesting whenever two ballot measures are tied together – even if a majority of voters approve 83, it’s…

  • 2012 Portland Marathon