Dancing Dog

YouTube Preview Image

I’ve got a dozen top priorities this morning, but this dancing merengue dog just delayed them all.

Twitter Is Like A Conversation In A Bar

Mathew Ingram on Twitter, Esquire Magazine, and bars:

It’s called social media because it’s social. In other words, it’s a conversation; and yes, sometimes it’s like a conversation in a bar.

Speed WordPress MultiSite With X-Sendfile For Apache

Like WordPress MU before, MultiSite implementations of WordPress 3.0 use a script to handle image and other attachment downloads. That script checks permissions and maps the request path to the files path on disk, then reads the file out to the web server, which sends it to the browser.

That approach has some inefficiencies, and for me it introduces some problems. The process would often give up before completing the file transfer, resulting in broken images and truncated MP3s among other problems. Interestingly, the problem is exacerbated when Memcached is activated.

I haven’t solved the problem, but I found a work around in X-Sendfile and X-Accel-Redirect. Both do basically the same thing, the different names are for different implementations in various servers. A post at Tech Rocket Science offers some background and explains that support is built in to lighthttpd and nginx, while Apache httpd requires a module. The benefits are simple: Apache httpd is well optimized for reading files from disk and sending them to clients, but PHP isn’t. Those httpd servers also know how to send or respond to headers that make it even faster, including Etag, If-Modified-Since, and If-None-Match.

Here’s how to get it working on CentOS 5 with the packaged Apache httpd:

  1. Nils Maier wrote the module for Apache httpd. Download the source and take some time to review the docs there.
  2. Compile and install the module on the command line:
    /usr/sbin/apxs -cia mod_xsendfile.c
  3. If you don’t have apxs, you probably need to install the httpd-devel package. Get that with this command:
    yum install httpd-devel
  4. Once compiled and installed, you’ll need to enable it in your httpd.conf or .htaccess (I enabled it by putting a file in my conf.d directory). These are the directives you’ll need to set:
    XSendFile on
    XSendFileAllowAbove on
  5. Now restart Apache httpd
    /sbin/service httpd restart
  6. Finally, you’ll need to enable the support in your wp-config.php:
    define('WPMU_SENDFILE', true);

Post Loop By Category

Alex Bluesummers asked on a WordPress list:

How do I order posts in the loop by whether or not it is in a category, then by date?

Suppose I have 10 posts, of which 5 are in the category “Sports” and 5 are in the category “Blog News”. Both “Sports” and “Blog News” posts are mixed together chronologically. “Sports” and “Blog News” posts share other categories and tags. I want both types of posts to be present in the loop regardless of whether it’s the front page or category archive view, but ordered by “Sports” and “blog news” and then by date. How is this most elegantly accomplished?

I can think of two ways, both have their advantages and drawbacks. Here’s what I offered in response:

You’ll probably do best by running multiple loops. That way you know exactly where each category of posts begins and ends and you can choose how many you want in each section. You’ll also be able to avoid burying a category because you had a run of posts in another category.

On the other hand, maybe that’s what you want, or maybe you have other ideas. In that case…

MySQL’s ORDER BY FIELD( $fieldname, ...list of matching entries in the order you want them...) syntax my be what you need. You’d have to join the term relationships table, then order by term_taxonomy_id (or go all the way and join the other tables to order by category name).

If you go that route, the posts_join and posts_orderby filters will be your friends. You’d probably want to hook a function to the pre_get_posts action that checks that the request is for the front page and then applies the filters. You should probably also apply a hook the to remove the filters on loop_end or something like that so they don’t disrupt other queries.

Migrating From WordPress MU To WordPress 3.0 Multi Site

I’ve been running a few instances of WordPress MU for a while now, so I was more than a little anxious about the merge of the MU functionality into the core of WordPress. It’s a good thing, but sometimes such dramatic changes pose rocky challenges.

Not so in this case.

Pete Mall blogged about it in May, and I’m happy to say that I followed those instructions (summary: upgrade, it will work) to upgrade both this site and Scriblio.net recently. The biggest challenge I faced was in migrating my SVN checkout (not discussed in Pete’s post, but people who install via FTP or use the auto upgrader don’t need to worry about this), and Pete noted the only gotcha that I might have encountered: changing the .htaccess to use a different file that had been used in WPMU.

I tested the migration on this site, and it rocked so much that I decided to go forward with upgrading the other site, even though WP3.0 hasn’t been formally released yet. Rock n roll.

Donut Tour 2010: The Video

Please enable Javascript and Flash to view this Viddler video.

We planned the donut tour. We did the donut tour. We ate donuts.

We made five stops on the tour, but this video only covers four of them. We were too stuffed to say anything about Japonais, even though the donuts there were delicious.

Here’s the full lineup:

National Donut Day is big here. Sandee has a National Donut Day post and my pictures are on Flickr (and linked below).  This is, as Sandee says, a “kick in the pants to appreciate a special part of [your] daily life.” Go get a donut, darn it.

Cheeseburger Donut at Donna's Donuts Steak and Cheese Donut at Donna's Donuts Meg and Will inspect the specialties at Donna's Donuts Meatball Sub Donut at Donna's Donuts Bill Wilson Jr. fills the jelly cream donuts at Donna's Donuts A packed dozen from Ziggy's Donuts Fresh Bismarks at Ziggy's Donuts the giant honey dipped donuts at Kane's Donuts A box of yum from Kane's Donuts Will explains how size matters A fresh tray of Kane's famously oversized cinnamon rolls Sandee shocked at the size of it Donut Tour 2010 Sun Guang Bakery's "donuts" Sun Guang Bakery's "donuts" Curry Donuts at Japonaise Cliff, a proud Donut Tour 2010 adventurer Japonaise Bakery, Brookline MA

How To: Plan a Donut Tour

Since 1938, the first Friday of June has been hailed throughout the US as National Donut Day. It was founded in recognition of the great comfort donuts provide to those who eat them, and to honor those who serve them.

It was in the spirit of National Donut Day that I organized a tour of donut shops in Eastern Massachusetts earlier this year. As I describe below, New England’s donut scene is suffering. The region that birthed Dunkin Donuts has been betrayed by the chain that steamrolled the independent shops (seriously, can you find a non-chain place on this map?), then scaled back its donut production to chase profits elsewhere. But what the chain restaurants take away, local artisans can celebrate. Localism isn’t all farmers’ markets and fresh eggs, we need to find and cherish our local comfort food.

When planning your donut tour, consider your call to action carefully. Whatever you choose, it’s important to clearly state it to your participants:

Perhaps you’ve noticed: Dunkins doesn’t make donuts anymore. Sure they’ve got a few, but they’ve cut back. Krispy Kreme has closed its northeastern shops. Eat-A-Donut is closed. Top Donut has gone commercial.

Donuts are at risk! Donuts need us! Dough Nut Go Gentle Into That Dark Night!

We must go looking for the last of this delicious, if disappearing, dietary delicacy. We must go on another donut tour*. This time bigger than before. This time broader than before. This time we have a mission. This time we must save the donut.

*Sorry if you missed out on the first donut tour. All the more reason join us this time. And think of it, because this is a sequel of sorts, now you can say “donut tour two: this time it’s personal.”

Plan your trip by thoroughly researching your regional donut geography. Correlate hours of operation among the various shops with the availability of participants to develop an itinerary:

Mark your calendars: Sunday, February 7. The first taste treat on this tour of donut decadence starts at 9am, whereafter the confectionary procession continues on to five more fabulous shops.

Here’s a map of the tour:
http://is.gd/5EtI2

Because I trust bakeries where the owner is proud or confident enough to put his or her name on the sign, we’ll start the tour with shops with possessive names:

9am: Donna’s Donuts (Yelp!)
2106 Main Street, Tewksbury, MA? – (978) 988-0010?
Hours: Sat 4a – 3p, Sun 7a – 1p
Selected for their steak and cheese, meatball, and hamburger donuts, among others. (Look at the pictures on Yelp!.)

10am: Daddy’s Donuts (Yelp!)
49 Water Street, Wakefield, MA – (781) 245-1677
Hours: Unk.
Selected because one reviewer called it scary. And it’s called “Daddy’s.”

11am: Ziggy’s Donuts (Yelp!)
2 Essex Street, Salem, MA? – (978) 744-9605?
Hours: Sat closed, Sun 6a – 12p
Selected because a reviewer says “blows my mind.” Blog review.

12pm: Kane’s Donuts (Yelp!)
120 Lincoln Avenue, Saugus, MA? – (781) 233-8499
Hours: Sat 3:30a – 5p, Sun 3:3a – 1p
Selected for the “soft coffee roll the size of an adult human head.”

1pm: Sun Guang Bakery (Yelp!)
423 Main Street, Malden, MA? – (781) 388-9837?
Hours: Sunday 8a – 5p
“Awesome, Simple, Cheap, Delicious.”

2pm: Japonaise Bakery (Yelp!)
1020 Beacon Street Brookline, MA – (617) 566-7730?
Hours: Sat 8a – 8p, Sun 8:30a – 8p
Curry donuts and custard cremes: “They can somehow stuff that little piece of bread with so much custard! It’s SO good!”

RSVP by email.

Be sure to call each shop and explain that you’ve organized a tour that will be stopping at that location. Ask them to set aside a selection of their best donuts. The conversation can often reveal details that are not available online. My conversation with Bill Wilson at Donna’s revealed that Daddy’s Donuts had recently closed.

Think carefully about what you’re asking of the tour participants. Each donut can deliver hundreds of calories and many grams of sugar, but the tour will also demand considerable time in the car between stops. A few days before the event you should offer a few tips that will help the participants best enjoy and most strongly participate:

Fellow crusaders:

We are just about a week away from this remarkable event. I’m not saying that waters will part or angels will descend from heaven, but this is big. To help us prepare, I’ve developed the following list of must haves:

  • A sense of purpose. We’re doing something important, we’re saving donuts.
  • Full water bottle. Water helps flush the carbohydrates.
  • Medical insurance card. In case the water isn’t enough to prevent dangerous insulin spikes.
  • Elastic waist pants. You’r eating donuts, goddamnit, and you’ll feel ‘em.
  • Gum or breath mints. I’m told bulemic purging is effective.
  • A haiku that expresses your undying love for donuts. Confucious say: no love is true without haiku.

Of all the above, the haiku is probably the most important. It will help focus your mind and body for the journey we will be undertaking. Also, points will be awarded for being able to recite your haiku with a mouth full of donuts (for the purposes of this event, a limerick is an acceptable alternative).

The geekier among us will notice the attached calendar item. If you haven’t already marked this banner day, please add that to your calendar now.

Your courage, your cheerfulness, your resolution will bring us victory in this grand struggle. Together we will stand to save donuts.

Thank you,

–Casey

Museum of Family Camping Closed

dingle stick

The interior displays at the Museum of Family Camping celebrated many generations of camping history. My docent made much of the dingle stick (the vertical stick that holds the cooking tin); good manners demanded they be left at the camp site for the next camper.

Memorial Day weekend is universally recognized as the start of summer. Tradition allows that we can start wearing white, gather family and friends for barbecue, and, for those so inclined, go camping. For the past many years it’s also been the start of the Museum of Family Camping‘s season.

The museum told the story of camping starting in the Great Depression. Modern Era migrations such as that depicted in The Grapes of Wrath set the stage for leisure time camping. Proto handymen crafted campers from kits and plans, putting to their own purpose the newly popular innovations of their day: automobiles and plywood. Yes, plywood. It’s clearly an essential component in a camper.

camper

Judging by the outdoor displays, bumper stickers appear to be a structurally significant part of campers after mid 1960.

The generations of RV development could be seen in the well maintained collection of campers on the museum’s front lawn. Docents, who lived on site in their own campers, would walk visitors though the outdoor display and encourage them to note the emergence of different materials and changing style over the decades. An early Sears camper offered little more than a dry floor on which to lay out the family’s bedrolls, but amenities developed quickly. Lacquered plywood tables appeared, then gave way formica sheathed kitchens with small, but serviceable built-in in appliances. Tupperware was significant.

Americana in Miniature

This diorama of an ideal American campground was once featured at a camping tradeshow in the 1960s and had been on display at the Museum of Family Camping.

Jessamyn visited during it’s final days last year and returned with a story that it was set to close permanently. The museum’s web site says nothing of the closure and the listed phone number still rings. Nobody answers there, but calls elsewhere confirmed my fears: the museum really won’t be opening this year. No news was immediately available about what may happen to the museum in the future, but I was told to watch the web site.

Sandee’s Homemade Wrapping Paper

Sandee at play

Sandee’s been getting into disposable art. First it was her holiday dames on the chalkboard in our kitchen, and more recently she’s been crafting one of a kind wrapping paper. It gets torn up and discarded in just a fraction of the time it takes her to sketch and shade it, but act of creation is what she enjoys. I guess that’s why her favorite artistic endeavor is baking.

homemade wrapping paper

Step By Step: Turn On The iPhone/iPad’s Web Debugging Console

You can’t view a web page’s source, and you can’t Command+F to search for text on the page, but you sure can get a debugging console to see the errors on the page. Here’s how:

  1. Find and open the Settings app
    Start in the Settings app
  2. Select Safari
    Safari in the Settings app
  3. Scroll down to find the Developer option at the bottom
    The Developer option hidden at the end of the Safari settings
  4. Turn on the Debug Console
    Turn on the debug console
  5. In Safari, look for the debug console’s summary info at the top of the page, just below the URL bar
    The debug console displays summary information just below the address bar
  6. Touch the summary info to view a detailed report for the errors on the page
    Clicking the debug summary shows the full console with error details