Smart Archives v1.9

April 15, 2007

When I initially decided I was going to release a new version of Smart Archives today, I didn't intend to include so many changes/fixes, but as it usually goes with these sorts of things, I couldn't stop myself.

Time zones

Previously, if your weblog was set to a different time zone than the server that hosted it (e.g., you lived in Florida, but your webhost was in California), you probably experienced a delay, equal to the difference between the time zones, in having your new posts show up on the archives page.

While I should have fixed this a long time ago, it was one of those things that didn't affect me directly and so I kept putting it off. It was rather easy to fix — I basically just looked at my Relative Dates plugin , where I had solved this problem before, and made the necessary changes. Funny thing is, none of the stuff needed for the other plugin was necessary for this fix. I simply added the following line:

$now = gmdate("Y-m-d H:i:s",(time()+((get_settings('gmt offset'))*3600)));

Multiple-category exclusion

About a year ago I added category exclusion to the plugin because I needed it. At the time, and until now, it only allowed you to exclude a single category, but enough people wrote in requesting multiple-category exclusion that I've finally implemented it. Instructions on its use can be found on the project page.

When I released the first version with category exclusion, I wrote the following:

I initially had the code setup such that it would only check the first element of the category array, which meant that the category you were trying to exclude had to be the only category attached to a particular post (in which case it would be the first and only element of the array). While this worked for my situation (and truthfully, I still do it that way because it’s faster), I knew that others would likely have multiple categories assigned to individual posts. Because of this fact, I ended up having to cycle through the array looking for any instance of the excluded category, no matter where it fell. If anyone knows of a faster, better way of doing this, please let me know.

I'm still using that method, and now, given that multiple categories need to be checked against multiple excluded categories, the CPU hit is even greater. I'd like to put this check into the initial SQL queries so as to eliminate the need to do it later in the plugin. However, I haven't been able to come up with a "good" implementation because the categories are stored in a table separate from the main posts. If you've any ideas, I'd love to hear them.

An extra "Dec" in the block

I took care of this a few versions ago, but I never liked my admittedly crappy solution. It's been redone. Well, not so much redone as just not needed any more given the way I now retrieve the post information from the DB.

SQL queries

When I first conceived of this plugin, I used only "raw" MySQL queries, instead of the built-in WP functions. I can't remember exactly why I did that, but I think there was something I wanted to do that the WP functions wouldn't allow. In any event, quite a few months ago I made the change to WP-only SQL functions on the version I use and haven't noticed any problems. It's been rolled into this version.

Curiously, a ton of people wrote me about this; I'm not sure their reason for wanting to use the WP functions, but it certainly wasn't an isolated request (and in fact many people went ahead and changed this themselves).

Speed

While you should notice a speed increase from past versions, it still isn't nearly where I would like it to be. As it stands now, I'm still making more DB queries than I would like. Currently, if you aren't excluding any categories, it makes number-of-months-with-posts + 1 queries, which isn't too bad. But, if you are excluding categories, that number goes up substantially (i.e., it's commensurate with the number of posts you have).

Archive links

Again, this is another thing I changed in my version a few months ago, but am just now getting around to putting in the public release. I think the way I handled links in previous versions confused people when there was no need for them to even know what I was doing. The way I've done it now should eliminate the confusion by not requiring any input from the user regarding their permalink structure.

I should also note that I've removed the trailing slashes on all of the year/month archive links (e.g., /2004, 2004/03, etc.).1 This is strictly an aesthetic preference of mine (and I'm trying to pressure everyone else into following suit :). If you're as anal as I am about your URI structure and want the trailing slashes back, e-mail me and I'll tell you how to do it. Either way, WP will probably add the slash back once the link has been clicked on (unless you go to great lengths, as I have, to stop WP from doing this).

Your permalinks should show up just as you have them setup in WP.


  1. I haven't used trailing slashes for years, but I've always made sure the public release of the plugin had them in there so as not to incite a riot; I guess I'm now throwing caution to the wind.   

Is SuperDuper!'s "smart update" feature broken?

April 14, 2007

I've long recommended SuperDuper! for mirroring Macs to an external drive, but I've recently been having quite a bit of trouble with the application and may have to rethink my recommendation going forward.

Specifically, the problem I'm having is that the external drive is completely filling up, seemingly at random and despite the fact that the drive I'm mirroring is only about half full. This has happened three times in the last few months. I'm using the "smart update" feature which, like any good mirroring program, updates the external drive only when something changes on the Mac. In other words, it maintains the mirror incrementally instead of doing a full wipe + copy each time. The advantages of this method are obvious: much faster updates (usually ~30 minutes for me), less wear and tear on the drives, and less chance you'll lose all of your data — except when it doesn't work.

After having dealt with this issue a few times, I did a little research and quickly found out I wasn't alone. Unfortunately, there is no fix and the developer's explanation is a bit weak. From the user guide:

If the destination volume is actually full, and the source volume should definitely fit on the destination, this could be because Smart Update needs more “working space”. This is because Smart Update works its way through a volume in a single pass, and copies or deletes files and folders as it encounters them. If you rename a large folder or file, or add one folder and delete another, Smart Update may encounter the new file or folder before it deletes the old. In that case, it temporarily needs enough disk space to hold both the old and new versions.

While this situation may apply to some people, it certainly doesn't explain why I'm having trouble, because (1) I'm not using my computer at all when SuperDuper! runs at 4AM every morning1 and (2) there is more than enough "working space" (as I said, both the source and destination drives are less than half full and no single file is anywhere near as large as half the drives' 250GB capacities). I just don't understand how a backup program can let 125GB of meaningless data trickle onto a destination drive over the course of three months.

To be as fair as possible, I'll reiterate that this has only happened to me three times in the last few years, but I'll still tell you that that's three times too many; backing up my data is something I take very seriously — it doesn't get much more mission-critical for me. Am I just going to have to revert back to rsync?


  1. Sure, there may be some background processes doing some maintenance work or the occasional downloading of a large file that's still chugging along at 4AM, but none of that activity should ever threaten to fill up the half-full destination drive.   

1080p and the acuity of human vision#

The resolution of our eyes is 12 vertical lines per arc angle (one line per arcminute for 20/20 acuity) times 2. Now 28 degrees x 12 lines x 2 = 672. This means we really can’t see a display component (pixel) smaller than 1/672 x image width. Our minimum resolvable element size is about 0.065”, or about twice the size of the pixels of the WXGA image! Put bluntly, from 8 feet away while watching a 50 inch plasma TV, the human eye is generally incapable of reliably distinguishing any detail finer than that shown on a true 720p display!

Has it really been 14 years?

April 11, 2007

The last time I played Monopoly I was 13 years old, and during this particular game I ended up owning everything — there was literally nothing more I could buy, no more hotels to build. For whatever reason, that whole moment flashed in front of me today and I realized that I haven't played the game since. Not once in 14 years.

Some may call that cowardly. I call it going out on top (and maybe a little cowardly).

How to get me to buy something I might otherwise not

April 09, 2007
  1. Make part, or all of it, transparent, so that I can watch it work (or simply see its constituent parts if non-moving).
  2. Fabricate part, or all of it, out of carbon fiber.
  3. Give it Wi-Fi (I don't care if it's an ant farm, a toaster, or a pepper grinder).
  4. Convince me that I need it, even when I absolutely do not, by making sure it's the best thing in the world for the job. I have to have some ammunition to defend the purchase when the inevitable do-you-actually-use-it question comes about. "Well, not really, but look at it! No other ABC can do XYZ faster/better/etc. Do you see it!? What do you mean you don't care? Wait…"

Any combination of the above and I'll likely pay double or triple what any sensible person would already call too much.

Are you alright?

April 09, 2007

If the leading track, "Are you alright?," off of Lucinda Williams' latest album, West, doesn't make you tear up, then you were either born with a stone heart or haven't experienced enough pain in your life.

The memory hacker#

Ted Berger has spent the past decade engineering a brain implant that can re-create thoughts. The chip could remedy everything from Alzheimer’s to absent-mindedness—and reduce memory loss to nothing more than a computer glitch.

Microsoft Is Dead

April 08, 2007

comments: false date: 2007-04-08 22:55:53 external-url: http://www.paulgraham.com/microsoft.html layout: post slug: microsoft-is-dead title: Microsoft is dead wordpress_id: 1557 categories:

I already know what the reaction to this essay will be. Half the readers will say that Microsoft is still an enormously profitable company, and that I should be more careful about drawing conclusions based on what a few people think in our insular little ‘Web 2.0’ bubble. The other half, the younger half, will complain that this is old news.

Yep.

Go Gators!!!

April 02, 2007

The Gators have just won the NCAA Championship for the second year in a row! I think a recap of the last 365 days is in order:

  • April 3, 2006: Florida wins the national basketball title
  • January 8, 2007: Florida wins the national football title
  • April 2, 2007: Florida wins the national basketball title

Unheard of. Unbelievable. History has been made.

"I said it's great, to be, a Florida Gator!" Indeed.

Comcast and its growing on-demand service

April 01, 2007

Perhaps I'm late to the game here, but I can't recall this ever being discussed on any of the sites I follow. It seems that at some point in the last few months Comcast has added a lot of network and cable TV shows to its on-demand service. Since discovering this for myself I've been told by others that Comcast has been advertising, on TV, the availability of these shows for quite some time, but because I never watch commercials, I was unaware.

I have to say that the HD selection is a bit disappointing as compared to the breadth of available SD titles, but it's no more off-balance than the current HD/SD programming ratio; surely this disparity will continue to decay, and eventually flip-flop, as more and more people get HDTVs and demand HD content.

Comcast/the network is the DVR

What's funny about this whole thing is that it isn't the on-demand element that excites me, but rather the fact that I can now offload onto Comcast the storage that would otherwise be hogging up my DVR, and in the case of HD television, that can amount to a serious chunk of space. Moreover, in a good number of situations, this will solve the I-only-have-two-tuners problem (never mind the fact that I have such a problem to begin with  :P).

Another plus is that this service minimizes the amount of time I need to persuade the DVR to do what I want — the Comcast HD DVR (by Motorola) is the single worst piece of electronic equipment I've ever owned — anything that can reduce the time I spend each day fixing its mistakes is a good thing.

The only downside to this system that I've been able to deduce is the fact that you can't fast-forward beyond the slowest fast-forward speed (the 30-second trick breaks too), but this annoyance is somewhat mitigated by the fact that these shows have fewer and shorter commercials.