WordCamp Birmingham

WordCamp Birmingham September 27-28, 2008

If you haven’t already heard, WordCamp Birmingham is coming up on September 27 & 28, 2008. And for those of you not in the States, that’s Birmingham, Alabama, not England. If you are in, or can travel to, the Southeast U.S., you won’t want to miss the first WordCamp in the Deep South! And besides the great tech stuff at WordCamp, there are other fun events in Birmingham that weekend, too.

Oh, and did I mention that I am one of the Speakers (*gulp*)? I will be speaking on “The Future of WordPress”. This will be the first time I’ve given a presentation of this type, so I’m quite nervous about it. If anyone has any public speaking tips that don’t involve imagining people in their underwear, let me know. Or, if you have any particular points that you think I should address, I’d be interested in hearing those, too. I don’t know that I’ll be able to discuss everything that everyone wants, and I don’t claim to have a crystal ball that tells me any more about the timeline of WordPress features than anyone else. But I have some ideas of what I want to touch on, both in general and in the specific.

If you make it to the event, please feel free to find me and say hi! I’m really looking forward to meeting people and putting faces with names. I also figure I’ll be reconfiguring my blogroll, with a bunch of new XFN ‘met’ links. :) I’m not sure whether or not I’ll be there for the entire event, but I hope to have a better idea once the schedule is filled in, and I have my travel plans finalized.

WordPress 2.6.2-beta1

It looks like there’s going to be another point-release of WordPress coming soon. WordPress version 2.6.2-beta1 was just branded in svn a short while ago. Looking over the logs, I don’t see anything major — a fix for the Textpattern importer, a bug fix that prevents an attempt to make a revision of a revision, a new ‘login_redirect’ filter, a new ‘wp_rand()’ function, and a handful of other minor bugfixes.

I’m kind of wondering if there’s something bigger that’s going to be added before release…

XCache Object Cache Plugin for WordPress 2.5+

download

Download: xcache-plugin.zip
Version: 0.7c
Updated: 8/29/2008
Size: 1.88 KB

Powered by Drain Hole

This is another one of those articles that will be of interest to a minority of WordPress users. In particular, if you use the XCache PHP opcode cache and Neosmart’s XCache object-cache plugin for WordPress. For those of you who don’t know what the heck I’m babbling about, a PHP opcode cache is a bit of software which helps your web server do less work when turning all your PHP code into web pages that a browser can render. The object-cache plugin is a bit of code added to WordPress which communicates with a caching service in order to reduce the number of database queries it needs to make when building your pages. Together, this helps reduce the CPU load on your web server.

When WordPress 2.5 was released, it introduced some changes to the object cache API. Specifically, it introduced ‘global groups’ and ‘non-persistent groups’, which are just ways for WP to organize and optimize the data it stores in the cache. However, if you didn’t have an updated version of your object-cache.php plugin, you’d start to see some ‘quirks’ in your system. The things I noticed the most were that my comment moderation counts and plugin update counts would not update properly when I flagged comments or upgraded my plugins. I had hoped that Neosmart would update the plugin, but I never saw any news about it, so I ended up just disabling the object-cache on my site.

Then recently, I had to do some work on the memcached version of the object-cache plugin for a client. This inspired me to go ahead and take a look at the code myself, and update the XCache plugin. By looking at the changes to the memcached plugin, I was able to see that it really wasn’t very hard to make similar changes to the XCache plugin.

I’ve sent my changes to the author of the original plugin, but until any official update comes out, you’re welcome to download my changes.

NOTE: this is not a normal WordPress plugin, it does not go in your plugins directory! Install the ‘object-cache.php‘ file directly in your ‘wp-content‘ directory! You must also add the following line to your wp-config.php file, just before the comment that says ’stop editing’:

define('ENABLE_CACHE', 'yes');This no longer required in newer versions of WordPress.

For more information, see my previous article, Using the WordPress Object Cache.

UPDATE 2008-09-02: After seeing comments about people getting errors, I took a closer look and found a couple of typos. Version 0.7c should clear those up.

Knee Update - Week 7

It’s been seven weeks since my knee surgery. I can now officially put my full weight on my right leg. Unofficially, I’ve already been walking around without crutches for most of the past week. When I had my six-week checkup with the surgeon, I asked when I could drive a car on my own instead of having to get my family members to drive me to appointments. He said “whenever you feel like you can,” so I did.

The important thing about the six-week checkup last week was that it marked the point that my meniscus repairs are healed enough for me to start bending my knee past 90 degrees. At my physical therapy appointment a few days later, we measured my angle at 118 degrees, and I was able to pedal an exercise bike. Between the bike, the squats and the leg-lift exercises (4 different exercises with 4 pound ankle weights x 100 reps each = 1600 pounds!)

We’re also getting back to a proper eating plan at home, so between that and the exercise I get from therapy, I’m hoping to shed some pounds now. I’ve got to say, though, I don’t recommend the knee surgery weight loss plan. It’s a pretty darned expensive gym membership. :)

Macbook + Coffee = Bad

Everybody knows that you shouldn’t keep beverages too close to the computer, right? The reason is because eventually, your toddler is going to run up to give you a big hug before she leaves for daycare, and is going to bump your leg. Your leg, in turn, is going to bump the TV tray where you set your coffee cup. The cup is going to tip over and spill several ounces of coffee directly onto the keyboard of your Macbook. And as a consequence, the Macbook is going to cease to function.

Yes, that’s what happened here at Castle Campbell last Friday morning. I tried to disconnect power and battery as quickly as possible, tried using a blowdryer on it, sat it out in direct sunlight for about an hour, and continued to let it air out for quite a while after that. But it still would not power up. I scheduled repair with Apple Care, figuring I’d end up eating just about the full cost of a refurb laptop.

Fortunately, I tried booting once more today, with the power supply connected, and it did boot. It still won’t boot under battery power, but at least I know now that it didn’t fry the entire motherboard. And I can get one last Time Machine backup before I send it off. Hopefully it will be back to normal after Apple cleans up the innards (keyboard, CD drive, etc).

Without the Macbook to work on, I had to fire up my old Sony VAIO laptop. It’s really not a bad machine, despite its age. It’s got a 2.4GHz P4 with 1GB of RAM (the maximum that this model can have, unfortunately). Its biggest problem, hardware-wise, is that the battery won’t hold much of a charge anymore, so I have to stay tethered to the wall. But I do that when I work anyways.

I booted it up, let it install a bazillion updates for Ubuntu 8.04, and restarted. And it ran as slow as molasses. What the? After doing some diagnostics, I discovered that I was running a bunch of services that I didn’t really need. Samba? Netatalk? Winbind? Turn those off, I’m not using them on a regular basis. MT-DAAP, Tomcat, avahi-daemon, tor, and even apache and mysql — not needed right now. Turning all of those off helped a lot.

But the performance still seemed sluggish, especially once I had Thunderbird and Firefox running. My final tweak was to switch from the default GNOME/metacity setup to xfce4. Once I got that configured, the system became much more useable. Even now, with Thunderbird, Firefox, Pidgin, Tomboy, a terminal, and several xfce panel plugins running, almost half of my RAM is still free.

Still, I’ll be glad to have the Mac back. It’s got more screen resolution, a slightly bigger hard drive, and several newer CDs of ours in iTunes that I don’t have ripped on the VAIO. And I’m getting antsy about the fact that I can’t sync my iPhone at the moment. Not that I have anything terribly important that needs to be synced, but it’s the principle of the thing.

So, anyways, let my mistake serve as a lesson to you all. Really keep your beverages faaar away from your equipment. It’s not just the repair cost you have to worry about. For me, the time I’ve wasted in getting another machine set up as my working environment was at least as valuable as what I’ll be paying for repairs. I don’t know about you, but time is something that I can’t spare much of.

WordPress 2.6.1-beta1

I’m surprised that I haven’t seen mention of this from other channels yet (official or unofficial), but two days ago, SVN revision 8561 of the WordPress 2.6 branch was labled as WordPress version 2.6.1-beta1. The log messages reveal that most changes since the 2.6 release are minor bug and typo fixes. A few of the more interesting bits that jump out at me are:

  • Allow disabling password reset per-user.
  • Query functions now allow a comma-separated list of post_status values.
  • Several more link generation bits are made SSL-aware.
  • Advertise the Atom 1.0 feed in the default theme.
  • Atom API uses the newer WP authentication functions.
  • Fix for an object caching bug in plugin updates.

Wanted: Cross-platform mobile shopping list app

Okay Lazyweb, help me find what I’m looking for. I want a mobile shopping/todo list app that my wife and I can both use to keep shared lists. I’ve got an iPhone, Susan has a Blackberry Curve — it should be easy to use on either of those devices. And of course, we’d want to be able to edit our lists via our desktop web browsers, as well.

It should:

  • support multiple lists
  • support sharing lists between multiple people
  • make it super easy to check off items
  • be able to sync the latest list updates from anywhere
  • be easy to use on iPhone, Blackberry, or any web browser
  • be inexpensive

It doesn’t have to have (but could):

  • support store-specific lists
  • be aware of what aisle items are on
  • support recipe ingredient lists or meal planning functions
  • support item categories within lists

I looked at a few list applications for the iPhone in the App Store, and I did some searches on the general intarwebs, but the apps I found all fell down in some way. The usual failing was that they didn’t support (or at least didn’t make it clear that it would support) sharing lists between people, or weren’t cross-platform.

Is anybody out there aware of such an app? Given my failure to locate one myself, I’m inclined to think that either 1) my Google-fu was weak that day, 2) the app I’m looking for exists but needs better SEO (this is what I suspect), 3) developers of the existing list apps aren’t doing a good job of highlighting all of their features (which I also suspect), or 4) there is an opening in that market space that would be pretty easy to fill. If I thought I could spare the time, I’d try to develop a service like that, myself.

Knee Update - Day 5

I think I’m in the “it gets worse before it gets better” phase of recovery from my knee surgery. Maybe I just overdid things yesterday (visited our chiropractor and went out to a restaurant for dinner). Today I had a headache all day and my stomach has felt just a little off — not naseous, but not hungry. Of course, part of my trouble might be lack of sleep. I can’t move around like normal, and anytime I need to move my leg in the slightest, I wake up. It’s taken its toll on me, and I wound up conking out for a good portion of the day.

But, I still try to do the exercises that the physical therapist showed me. At least after seeing the therapist, I have a better idea of what I can and can’t do with my leg. It’s not in as fragile a state that I initially thought, so I’m able to move it more than I had thought over the weekend. But I definitely can’t attempt to put any weight on it, or I would risk tearing the ligament grafts loose.

It’s frustrating that there is so little that I can do for myself or for my family. I can move on crutches from my bed to the couch, and I can even maneuver myself to go to the restroom on my own, but that’s about it. I have to use a bath chair to take a bath, because I can’t get my bandages wet. And my wife has to help me with that, because you might be surprised how difficult it can be to get yourself in and out of a bath chair when you can’t move your leg.

It’s really taking a toll on Susan, because in addition to her already busy schedule for work, grad school, and household, she now has to take over all the things I normally would do, and she has to take care of me on top of all that. We have a little bit of help, but nothing really substitutes for having both of us up and functional. I’m going to owe her one primo vacation when I’m back on my feet again.

I’ve got at least three more weeks on crutches, and probably a few more weeks after that before I can help out with some of the heavier house and kid help. And I’ll still have a few more months of healing to go after that before my knee will be ready for really normal activity levels. I’m anxious to be done with it. I’m usually a very patient person, but this is not something I want to be patient about.

WordPress 2.6 Released

The release of WordPress 2.6 is now official. In addition to the features I highlighted previously, Ryan has details on his blog about the improved support for SSL, and some new helper functions which will be useful for plugin and theme authors. And the official dev blog post has details on other new features. One of the more interesting things that I didn’t yet know about was that the Press This bookmarklet has some nifty autodetection which will make it easy to automatically embed content from sites like YouTube and Flickr.

In addition to the new features, I’d also like to point out that there has been a recent effort to improve the inline source documentation (using PHPdoc). I, for one, certainly appreciate the work that is going into documenting the parameters, return values, and purpose of each function. It make things much easier when you have to trace back through the call stack to figure out where certain things happen.

Knee Surgery

About 16 or 17 years ago, I injured my knee in a job-related incident. Being young and stupid, and not really understanding insurance and workers compensation very well, I never got around to doing anything about it, beyond using crutches for a while until I could walk without them again. My doctor at the time recommended that I get it scoped for a better look at  what the damage was, but like I said, I was young and stupid, and so I put it off.

As a result, over the years my knee has mostly been okay, but occassionally it would “lock up”, requiring me to do odd manipulations of my knee joint to “unlock” it. Sometimes I would twist my knee while doing some physical activity, which would cause it to become swollen and painful for anywhere from a few days to a few weeks. Like last year, when I re-injured it while playing on a church softball team, and it was stiff for about three weeks. When that happened, I ended up getting a doctor to take a closer look, and an MRI revealed that I had a torn ACL and possibly some damage to the meniscus. My doctor recommended surgery, which I knew I was going to have to break down and do eventually, but I put it off again, hoping to find some extended vacation period where I could recover without disrupting my job and household too much.

So, as normal day-to-day things go, it wasn’t a problem. But I knew I had to avoid a lot of activities, including many forms of exercise, which is obviously not a good thing, and is at least a part of why I am a lot more overweight than I’d like to be. And being overweight means that put more wear-and-tear on my knees. It’s a vicious circle.

With some encouragement from my wife, and the realization that there was just never going to be a really “good time” to do it, I finally scheduled the surgery, which I underwent yesterday. So here I am, laid up in the bed, with a “Game Ready” leg wrap that circulates cold water around my knee, a bunch of pillows propping my leg up, and a regimen of Cephalexin (antibiotic) and Oxycodone (pain killer, which is about to send me to snoozy land, shortly). It’s been well over 24 hours since the surgery, and parts of my leg are still numb. At least I can finally move my foot and wiggle my toes again. Not being able to wiggle my toes was driving me nuts! It doesn’t sound so bad, but think of what it’s like when your circulation gets cut off and your foot falls asleep, and it’s like a piece of dead rubber hanging off the end of your leg. Now imagine that your whole leg is like that, and it won’t wake back up. It’s a bit disconcerting.

I’m going to be on crutches for four weeks, with strict orders not to put any pressure on my right leg, and I’m supposed to start physical therapy as soon as possible. I plan to do everything they tell me to do, because I’m looking forward to eventually being able to do normal activities again — swimming, biking, maybe even Tae Kwon Do again one day.

I’m fortunate to have a good support system here. Between my wife, her parents, and her brother, I’ve got a pretty good amount of help on a daily basis. And this week, we have a nephew coming up to help out, and the week after that my mom will be driving up to help out. I can’t imagine what someone without close family and friends nearby would do.

Kids, take this advice from good old Uncle Dougal — be kind to your knees. You’ll miss them when they’re gone.