August 02, 2006
workFRIENDLY formats web pages to look like Microsoft Word documents (i.e., it lets you maintain the facade that you're actually working). I love the "Is this good for the company?" button you have to press.

Building a photoblog off of a weblog

August 01, 2006

Update (2): While the previous update intimated that I wouldn't have to modify anything in the WordPress source should I choose to go the route outlined in this post, I've come to think that isn't possible. It looks like I'm going to have to modify both functions so that they return only the actual URI and nothing else. The changes themselves are very simple, but it's just one more thing to keep track of when upgrading next time around.

Update (1): The possible issue I mentioned at the bottom of this post is not an issue it all. Turns out that WordPress has arguments built into the next_post_link() and previous_post_link() functions that "indicate whether the next/previous post links must be in the same category/categories as [the current post]." Yay, one less plugin to write if I end up taking this approach.

All this talk about getting the photoblog up and running has really sent my mind into overdrive trying to come up with a simple solution that would allow me to use the same backend (and subsequently the same posts) to power two completely separate sites (i.e., the weblog and the photoblog), instead of using an "external" photoblog application. More to the point, I want to continue posting pictures to the weblog as I've been doing for a while, but I also want to use those same posts as entries into a separate photoblog, which will use the various elements of the posts differently than the weblog.

The benefits of such a sysem are two-fold. First of all, it would ultimately be less work for me once it's all up and running (i.e., I would just post once as normal and the rest would be handled automatically). Second of all, if there comes a time in the future when I don't want to have a separate photoblog anymore, I can just discontinue it without losing everything that went into it (i.e., it will all be saved as just a regular part of the weblog).

I think I may have come up with a solution and am going to throw it out there to see what kind of response it gets. To me, this seems like the most elegant way to go about it and it minimizes the probability of future problems (e.g., if you change to a different CMS) as it's as bare bones as possible and all you'll really ever need to change is the code that specifies the file size (because presumably any CMS you move to will easily map to the post elements I discuss below).

The very simple solution

To start with, let's list the various pages that will need to access and manipulate the photography posts:

  • Weblog index page
  • Weblog yearly/monthly/individual archive pages
  • Weblog RSS feed
  • Photoblog single-photo page
  • Photoblog thumbnail page
  • Photoblog RSS feed

Each of the above pages will need at least one of the photo sizes listed below:

  • Small -- 85 pixels wide (for the page of thumbnails)
  • Medium -- 500 pixels wide (for the weblog)
  • Large -- 800 pixels wide (for the single-photo pages of the photoblog)

These images will be created and uploaded to the site as filename-s.jpg, filename-m.jpg, and filename-l.jpg, which correspond to the three different sizes.

Looking at WordPress, we see that it gives us just three [post] variables to work with, namely title, content, and excerpt. We'll use these variables in the following way:

  • Title -- as you would expect
  • Content -- description of/thoughts on the photo
  • Excerpt -- the filename of the photo without the suffix

So, the excerpt will contain the filename of the photo, but will not specify any particular size. However, we can use PHP (or whatever) to append the correct size (i.e., -s, -m, or -l) to the filename, and we will know the correct size because this can be hard-coded depending on which template we're using (e.g., weblog index).


When the system is fully functional and all the code is in place, it should work something like this when publishing a new picture:

  • Work some Photoshop magic on the next picture we want to put up.
  • Save the image to a temp directory.
  • Run a shell script that will create three images from the original: one 500 pixels wide (constrain proportions), one 800 pixels wide (constrain proportions), and one 85 pixels wide as per my earlier request for help.
  • The above script will name the files based on the original filename (e.g., if the file was originally saved as filename.jpg, it will create filename-s.jpg, etc.)
  • Upload these files to our webserver.
  • Create a new post in WordPress. Remember, in the excerpt field we're going to want to put the filename without the extension or size identifier.
  • Be sure to put the post into a "photos" (or similar) category so that we can separate these posts from non-photo posts.
  • That's it! The various templates will add the needed file paths and will use the correct filename depending on the page being generated.

If you can shoot any holes in this approach please e-mail me and let me know. The only thing I haven't given too much thought to is how I'm going to create the next/previous links needed for the photoblog. This could be a bit tricky because the links will have to be confined only to those posts categorized as "photos" (or whatever). I haven't looked yet, but perhaps this functionality is built into WordPress. If not, I could probably write a plugin, but I'd rather stay away from non-standard band-aids if at all possible.

My Bloglines feed has been a bit spastic lately

July 31, 2006

If you're using Bloglines to access this site, I apologize for the somewhat sporadic RSS feed as of late. If you haven't noticed, sometimes some of the posts announce themselves as new or modified when they are neither and where I've done nothing on my end to cause their statuses to change. It's been bugging the hell out of me for a while, and earlier today I finally had some time to take a look at it.

By subscribing to my feeds in various readers I've come to think that the problem is only occurring in Bloglines and so there must be some disconnect between that service and FeedBurner. I was hoping to have the issue reproduce itself through NetNewsWire so that I could use its "Highlight differences" feature to nail down the culprit, but NNW doesn't register any changes (i.e., it's behaving correctly).

I did some digging around in the source this afternoon and have come to the conclusion that the function that WordPress uses to populate the lastBuildUpdate element of the feed is a bit wonky. It looks at the last modified date of every post (and picks the most recent), when I'm pretty sure it should limit itself to the number of items in the feed. In other words, the date should change only when one of those items currently in the feed changes; after that item is pushed off the bottom of the feed it should have no effect on it from that point forward.

So, after seeing what Movable Type's default RSS 2.0 template did (which doesn't seem quite right either), I've set the lastBuildElement equal to the pubDate element of the latest post, which requires me to run through "the loop" twice, though for the first iteration I just set query_posts() to 1 (in the second iteration I set this value to 50 so as to make sure the more frequent linked-list posts don't completely obliterate my regular feed when the regular weblog has been stagnant for a considerable amount of time).

All of this is just a long-winded way of saying "maybe it's fixed, maybe it's not." Not sure there's much else I can do about it at this point. No, it's not a pressing problem or anything, but I find it really, really annoying.

If you've any idea what may be causing this, I'd love to hear from you.

A quick Image Magick/NetPBM question

July 31, 2006

Anyone know of a way to get either Image Magick or NetPBM to create square thumbnails built from the largest square that can fit inside the center of the original image? In other words, I basically want to crop the image from a square emanating from the center and then resize that square into an 85 pixel thumbnail. As per the earlier post, I've started to look at Movable Type as a possible photoblog solution, but I can't stand how it creates thumbnails for uploaded images (i.e., it distorts them if you don't constrain the proportions, which is something I don't want to do). I started poking around the scale subroutines in the Image module, but I can't seem to find the right options (and the right order) to get what I want and I'm tired of working on it (or, rather, I'm just too lazy to deal with it right now).

This is kind of a threshold issue, because if I can't get this working then MT is definitely not an option for me and I'll just stick with the Pixelpost setup that I've already put so much time and energy into. That said, I'm 99% sure this is doable, and easily.

Poll: What address should I use for the photoblog?

July 30, 2006

Update (2): This poll has been closed. Thanks for participating.

Update (1): Someone thought it would be funny to add "oogieboogie" as one of the choices. I was afraid something like that might happen and I've since removed the option altogether.

So, as I mentioned in the previous post, I'll soon be debuting a photoblog here and am struggling to decide which URI convention I should use; thus, I've opted to let you, the reader, pick for me (as long as you pick the one I want). For what it's worth, I'm leaning toward the sub-directory.

What address should I use for the photoblog?

  • (37%)
  • (42%)
  • You honestly think I care what address you use? (21%)

The photoblog is imminent

July 30, 2006

I can't wait to get back into photography over the next couple of weeks. I had to put a lot of the joys of my life on hold while studying for the bar and I've probably missed shooting more than just about anything.

As I've discussed here before, a few months back I actually setup, over the course of a few days, a complete photoblog using Pixelpost. It's a great little package and certainly the best PHP/MySQL solution I could find, but man, I had to hack the hell out of it (as usual, I documented all of my changes so that I could help others with this in the future). The photoblog is currently fully functional and completely up to date; it took me forever to resize/upload all the old pictures I wanted to use, and in the order that they were originally included on this site (pulled in from Flickr).

Issues I'm still concerned about

The future

I've definitely got some misgivings about the whole thing, namely the future-proofness of it all, but the way I see it, I simply had to separate the photoblog from my regular site (for many reasons, not the least of which being that I wanted to display larger photos) and PP's package is currently the best thing going. Moreover, a few months back I spoke with one of the guys behind the upcoming pixyBlog and he told me that not only were they thinking very seriously about offering an open-source solution (in contrast to their initial offering of having your photos hosted with them), but that you would be able import all of your Pixelpost stuff into pixyBlog.

I've also been looking very seriously at Movable Type to handle the photoblog. Most of you know that I've a very intimate knowledge of that publishing system and used it for a few years before moving over to WordPress way back when. The only real problem I foresee with that system running a photoblog is that there are no site-wide photo options (e.g., I wouldn't be able to change the size of all the thumbnails from within the CMS1).

Thumbnail size

Pixelpost limits thumbnails to 100 pixels wide, and while this is fine for an archived page of thumbnails, I'd rather have them be a bit larger for the RSS feed (but smaller than the 800 pixel size I'm using on the site). I don' t think this is possible without some serious overhauling of the underlying framework.

Posting outside of the photoblog itself

This is something I've been struggling with for a while, and besides that little bar thing I just finished up, this was one of the main reasons I've held off so long on moving to a full photoblog. I'd like to keep pictures here because I think it offers a nice balance to the regular techno-babble that pervades the site (and I know some others feel the same). Furthermore, quite a few people are subscribed to this site and the more people that see the pictures the better. However, the process might be more trouble than it's worth.

So, what to do? I'm still not sure. I could always keep posting the pictures to Flickr along with my photoblog (and then pull in the 500 pixel versions from Flickr for the regular site, which is what I currently do), but this would essentially require me to post in triplicate (photoblog, regular site, and Flickr) and I think we're all aware that less than full autonomy usually doesn't sit too well with me.

Another hangup I have with this method is that I think I want to get away from Flickr entirely. Don't get me wrong, there is nothing wrong with the service (it's still untouchable as far as I'm concerned), but if I'm to do this whole photoblog thing I'd like it to be fairly centralized (hit counts, comments, etc.) and not spread out across disparate systems.

If you've any ideas, I'd love to hear them, but I'm pretty sure what I want isn't really feasible and at the end of the day I think I'm probably going to stop posting pictures to this site altogether (I'll just keep encouraging people subscribed here to subscribe to the photoblog as well).


I actually plan on having everything public by the middle of next week, unless I decide to take the Movable Type approach, in which case it will probably take an extra week as I'll essentially have to start from scratch; getting the templates setup shouldn't be too hard, but moving all the photos over will definitely take some time.

  1. This could probably be accomplished with a little shell scripting and some site-wide find/replace magic.   

Nintendo DS to offer classic games over Wi-Fi

July 29, 2006
Nintendo DS to offer classic games over Wi-Fi. "Nintendo today announced the release of 42 All-Time Classics for Nintendo DS, a collection of 42 classic parlor, bar and table games that use the touch screen for control and can be set up as multiplayer games over Nintendo Wi-Fi Connection." As predicted, the DS just keeps getting better and better as the PSP continues to drift further into irrelevancy.

The near future

July 28, 2006

Now that that's over, you can expect a ton of posts and links from me over the next few days as I catch up on all I've missed in the last week (my aggregator is telling me there are ~6500 news items to sift through). Apart from helping my girlfriend move, I don't plan on doing much over the next couple of days outside of geeky computer things and watching all the stuff that's built up on my DVR.


I'm headed back to Florida in a few days for about a week and a half and plan to spend as much time as possible wakeboarding, kiteboarding (if my brother and I can work it out) and doing whatever other throw-caution-to-the-wind activity I can think of. I'll also be hanging out with my dad in Cocoa Beach as he'll be on a mini-vacation of sorts.

After that, I'm shipping out on a cruise to the Western Caribbean with the girlfriend. I really wish I was in a better mood, but I think it's only going to get worse as I sit around and think about how I did on the bar. She's so pumped for this trip that I feel guilty not being pumped myself as I know it drags her down. We'll see how it goes.

Umm, well, that sucked

July 28, 2006

So, I've just trudged my way through the worst three days of my entire life -- I took the California Bar Exam on Tuesday, Wednesday, and Thursday.

It was the hardest, most stressful, most insufferable thing I've ever had to do, and, as much as I hate to say it, I've got a sneaking suspicion I'm going to have to do it all over again.

Unfortunately, I have to hold my breath for four months, which means I get to spend four months dreading sleep for fear of having to worry about the future as I lay there. It's not entirely uncommon for people to have to take this exam 4-5 times. I can't imagine. I think I'd rather die. I've always had rather serious physical manifestations of stress and this exhausting, three-day marathon of self-doubt and worry really took its toll. I'm beat.

If you haven't gone through this "rite of passage," you have absolutely no idea how difficult it really is. You just can't know. It's no secret that the exam is the toughest in the country, and, well, by the end of the second day I was convinced of that; I was a complete zombie, hadn't really slept or ate for a few days, and my brain was mush.

One simple fact remains and I have to keep repeating it to myself again and again: I could not have studied any more than I did. I've been told my entire life that I'm too hard on myself regarding just about everything I've ever endeavored to do (sports, academia, etc.), and I can't disagree. I'm too competitive and expect too much from myself. I recognize this. However, I can't change it. It's part of who I am and how I operate, and to be completely honest, it's what separates me from most people, even if it ultimately lowers my quality-of-life quotient.

I would have loved to have cheered and clapped as the proctor said "time!' at the end of the last three-hour session like everyone else (1000+ people) seemed to do yesterday (seriously, it was like they won the lottery or something), but it just wasn't in me and never has been. While failure has usually been a fairly remote possibility for me (if I actually try), the possibility of failure never ceases to cause me much internal strife and consternation until I win or pass or whatever. In this case, the possibility of failure is very real and I'm made to wait much longer to find out.

Anyway, I'm not going to belabor the point (some might say I already have); I could probably spend 500 more words on why the exam was difficult and why I don't think I did so well, but it's all pretty pointless and talking about it is just making me more depressed.

Keep busy. Must keep busy. Fortunately, I can do that really well.