Author Archives: Boone Gorges

Brooklyn is for runners

I lived in Brooklyn when I started running in my mid-twenties. I didn’t know it at the time, but I was spoiled.

I never really enjoyed running for its own sake. I did it because my then-girlfriend (now-wife) was a serious runner, and because I wanted to continue to eat and drink as I pleased without risking my girlish figure. I managed to tolerate running thanks only to my Brooklyn backdrop. Over the course of about five years, I ran some 5,000 miles on Brooklyn’s streets. It was my way of learning the grid. From Williamsburg, I got to know Greenpoint, Bushwick, Fort Greene, Bedford-Stuyvesant, Crown Heights; from Park Slope, it was Windsor Terrace and Kensington and Sunset Park and Bay Ridge; from Carroll Gardens, it was Red Hook and DUMBO and the waterfront. I have a decent mental map of maybe a third of Brooklyn’s seventy square miles, thanks to these here legs.

So I came to think of myself as an “urban runner”. Pounding the pavement was my way of getting to know my surroundings, and soaking up the city was my way of coping with running.

Then I moved to Queens, and everything changed. I’m not talking about Whitestone or Hollis or Rockaway or some other deep-Queens neighborhood. I lived in Ridgewood, about five blocks from the border with Brooklyn. But it was a totally different world. The car-to-pedestrian ratio was out of whack, which resulted in a totally different relationship between drivers and non-drivers. Instead of grumbling deference, I came to expect outright hostility from cars. I can’t count the number of times a driver sped up – or ran a stop sign – to beat me through an intersection. I even got hit once (albeit slowly), even after having made eye contact with the driver.

To make matters worse, Queens (or at least my portion of it) was boring. The semi-suburban neighborhoods bleed together in my mind: Glendale, Elmhurst, Woodside, Maspeth, Middle Village, Forest Park, Woodhaven. I know Queens is a (ethnically, linguistically, culinarily…) diverse place, but I could take or leave the bafflingly numbered streets/avenues/lanes/courts and single-family houses.

I moved to Manhattan a few months ago, where I hoped to recapture my love of urban running. It hasn’t gone well. Too many cars, too many people, too many stoplights, too much street construction. Dodging walkers on the sidewalk isn’t fun for me, and it isn’t fun for the people being dodged. Central Park is very nice, but I’m bored with it already.

In retrospect, Brooklyn is the perfect balance for the urban runner. It’s dense enough to be interesting. Neighboring neighborhoods contrast sharply with each other. Cars – at least in the northern and eastern parts of the borough – are few enough (and deferent enough) to make it safe to share the streets. I miss it.

If you are a runner living in Brooklyn, fight the urge to stick to the well-trodden paths. I too love Prospect Park, and the Belt Parkway Promenade, and Brooklyn Bridge Park. But you should be out on the streets, because there’s no better place to run.

Book purge

About six months ago, I began to get rid of my books.

I’ve grown to dislike owning books. They’re heavy, take up a lot of space, and are generally pretty ugly. So many are phantoms of former lives, stirring up icky feelings – guilt, remorse, disgust – every time their spines catch my eye. I have a strong distaste for many of my old academic philosophy books in particular, but at the same time I feel guilty that, however lousy I might think they are, they’re sitting unread on my shelf when they might be of use to someone else. (It’s odd that the people who fetishize books the most are those most likely to hold them hostage.)

It’s not that I’m reading less. I’m a regular at my library. I occasionally read e-books (though I don’t care for them). I still even buy books. It just seems weird to keep them. The only copies worth keeping are those with sentimental value and those that I’ll read over and over again. This covers about 1% of the books on my shelf. The rest? Off they go.

I considered a bulk donation to charity. But this wasn’t enough of a Project, so I put them on Amazon instead. As others have noted, many books are not worth much. Between time spent listing, time spent packing, time spent at the post office, money spent on envelopes and tape, and Amazon’s fees (which have a floor and thus are particularly hefty for very cheap items) it’s often hard to break even on a sale – and that’s not even counting what I originally paid for the book! I’ve sold about 100 books to date, clearing around $600. Obviously I’m not getting rich. It’s a good thing I’m not doing it for the money.

The best part about selling the items individually is that each sale is like a little going-away party (or funeral, depending on the book). Amazon sends an email – “You’ve sold an item!”. I track down the title on my for-sale shelf, give it a last once-over, pick out any old bookmarks. I make up little stories about the buyer, based on her name and address, making comments to myself along the lines of “Reading Quine? My condolences”. I stand in line at the post office, so that I can send via Book Rate. I enter the total earned into my fancy spreadsheet. It’s a ritual that gives me a chance to reflect on the book one last time before sending it to a better place. I like it.

As the shelves grow barer, I walk a little taller. It’s nice.

Vim function for correcting whitespace to WP standards

When doing client work, especially in a team, I like to urge adherence to the WordPress coding standards. This is especially important with whitespace, in particular when other members of the team have their IDEs set up in certain ways that frustrate the standards. I wrote this quick little functions for your .vimrc that does some whitespace cleanup in the currently open buffer. (I’m sure there are a thousand better ways to do it, and you should feel free to let me know in the comments. This is just what I put together in 15 minutes.)

I’ve mapped it to F8. Modify as you’d like.

2013

Another installment in my year-end reflections.

In my 2012 post, I laid out a couple of things to think about during the upcoming year. I feel like I did a pretty decent job with at least one of them: turning off. This summer, my family and I rented a cottage and vegged out for a month and a half. I intended it to be a semi-working vacation, but it ended up being a barely-working vacation, and it was awesome. I also made some changes in the second half of the year that made me more mindful of getting sucked into work while on the go: I stopped using email on my phone, I got myself an OFF Pocket, and I’ve generally stopped carrying my phone so much. I started riding bike for fun around the city, and got back into a decent running routine (about 800 miles on the year). So, I feel like things are a bit more relaxed than a year ago.

Work-wise, I haven’t branched out as much as I’d hoped. I’ve got a few big deadlines in the next month or so, after which I plan to come up with an interesting project or two to shake out some of the cobwebs. If anyone is planning to do something really cool, let me know 😀

I continue to feel less and less connected to my old academic self. This is something I don’t talk about much, either online or in person, though I was recently persuaded by a friend that others might benefit from hearing about it. In the upcoming year, I hope to write more about this issue and other more varied topics than what I allowed myself in 2013.

Out with the old. Happy new year!

Where is the artisan bagel movement in NYC?

Moving to New York, I was excited about two things: pizza and bagels.

Pizza did not disappoint. NYC’s pizza landscape is rich, and has become richer over the last decade. There are overlapping ecosystems for dollar slice joints, traditional slice joints, and hybrid slice/Italian food joints. There’s a stratum of old school NY pizza restaurants: Totonno’s, Arturo’s, Sam’s, etc, as well as the newer places that aspire to a similar aesthetic. And there’s whole class of artisinal, neo-Neopolitan places, where foodies shell out big bucks for bufala. You could eat pizza every day and never hit every place.

The bagel landscape is perhaps equally complex. But it’s bottom-heavy in comparison to pizza. You’ve got the guys in the silver street carts who sell bagels pre-filled with a slice of cream cheese wrapped in wax paper. There’s the bullshit bakery chains, the Panara-Dunkin-ecticut-n-crustys where bagels are an afterthought to other baked goods. And then there are the mainstays, the neighborhood bagel shops. Like neighborhood slice joints, the quality of this category varies widely, from shoulda-had-a-Lenders to the Bagel Hole (the only really outstanding bagel I’ve ever had, in NY or elsewhere).

But where are the artisan bagels? Dom Demarco has people lining up for $5 slices at Di Fara. There’s gotta be a similar market for someone to sell outstanding bagels – small, properly boiled, without preservatives – even if they charge a premium for them. I get that it’s not glamorous: stirring a pot full of boiling bageloids in a dingy kitchen doesn’t have the sex appeal of wielding a peel in candlelit Lucali. And I get that bagel-place-as-destination is hard to fit into the geography and the late-night culture of New York. At the same time, a great bagel can be just as fantastic as a great slice, and IMHO is just as important a part of NY food culture. Where are the hipsters lining up to continue this particular foodways tradition?

Maybe I’m way off here, and there is actually a bagel subculture in NYC that I’ve never stumbled on. I hope someone’ll clue me in.

How to pronounce ‘Gorges’

I grew up in a town of about 5,000 in northeastern Wisconsin. Of those 5,000, probably 200 had the last name ‘Gorges’. People with the name had been in the immediate area since the 1850s, when my great-great-great grandfather Gorges migrated with his family from Pomerania. As a child, I took for granted that it was a “normal” name, and that everyone knew how to pronounce it.

When I was in ninth grade, my family moved. Our new home was just 25 miles from the old one. But few in our new town knew anyone with the name ‘Gorges’, and no one knew how to pronounce it. We quickly adopted a modified pronunciation of ‘Gorges’, one that was meant to better match the way it was spelled (GORE-guess). The improvement was marginal. Preemptive spelling became a coping technique. When asked for my family name, I would (and still do) often omit the pronunciation altogether and skip straight to G-O-R-G-E-S.

As an adult – living far from the epicenters of Gorgesdom – I started to think more critically about the whole situation. Years of experience had shown that any pronunciation, however modified, was going to require a follow-up spelling. That meant that, in exchange for a pronunciation that never felt natural, I wasn’t getting any practical benefit. As a teenager, I’d switched because my family had switched. But my family is far away now. And if there’s any one normative fact about the world that an individual ought to be able to dictate by fiat, surely it’s the “correct” way to pronounce his name.

So I went back to my native pronunciation, which my wife and son use as well. Which is different from the (modified) pronunciation still used by my father and (I’m pretty sure) by my younger siblings. It’s an odd state of affairs.

On balance, I’m actually a pretty big fan of having an unusual last name. The “gorgeous” pun is a dynamite icebreaker, especially for someone as good-looking as me. (See?) Some people are quite particular about the way others say their names (which is within their rights), but I long ago learned not to care very much, to the point that I’ve never offered corrections even to some fairly good friends. This nonchalance is like tossing off a burden I’ve carried since I was a kid. And – bonus – my usernames are never taken.

[For the record: two hard Gs. GRR-ghiss.]

WordPress/BuddyPress registration and the Office 365 email filter

Just tore through the following problem on a client site (independently discovered by Martha Burtis here). WordPress/BuddyPress sites that allow for self-registration send out emails with activation links of the form: http://example.com/activate/?key=12345 (for BuddyPress) and http://example.com/wp-activate.php?key=12345 (for WordPress multisite). This format trips up the link filter that Microsoft’s Office 365 email service uses. After some experimentation, I figured out that the problem is the word ‘key’ in a URL parameter – once this term is removed from the URL, it passes right through the filter.

So, you can fix the problem by changing the URL parameter in the activation emails. That means (a) changing the text of the email, and (b) changing the server-side logic to expect something other than ‘key’. Here’s how to do it in BuddyPress:

[code language=”php”]
function bbg_activation_email_content( $message ) {
return str_replace( ‘?key=’, ‘?activationk=’, $message );
}
add_filter( ‘bp_core_activation_signup_user_notification_message’, ‘bbg_activation_email_content’ );

function bbg_screen_activation() {
global $bp;

if ( !bp_is_current_component( ‘activate’ ) )
return false;

// Check if an activation key has been passed
if ( isset( $_GET[‘activationk’] ) ) {

// Activate the signup
$user = apply_filters( ‘bp_core_activate_account’, bp_core_activate_signup( $_GET[‘activationk’] ) );

// If there were errors, add a message and redirect
if ( !empty( $user->errors ) ) {
bp_core_add_message( $user->get_error_message(), ‘error’ );
bp_core_redirect( trailingslashit( bp_get_root_domain() . ‘/’ . $bp->pages->activate->slug ) );
}

// Check for an uploaded avatar and move that to the correct user folder
if ( is_multisite() )
$hashed_key = wp_hash( $_GET[‘activationk’] );
else
$hashed_key = wp_hash( $user );

// Check if the avatar folder exists. If it does, move rename it, move
// it and delete the signup avatar dir
if ( file_exists( bp_core_avatar_upload_path() . ‘/avatars/signups/’ . $hashed_key ) )
@rename( bp_core_avatar_upload_path() . ‘/avatars/signups/’ . $hashed_key, bp_core_avatar_upload_path() . ‘/avatars/’ . $user );

bp_core_add_message( __( ‘Your account is now active!’, ‘buddypress’ ) );

$bp->activation_complete = true;
}

bp_core_load_template( apply_filters( ‘bp_core_template_activate’, array( ‘activate’, ‘registration/activate’ ) ) );
}
remove_action( ‘bp_screens’, ‘bp_core_screen_activation’ );
add_action( ‘bp_screens’, ‘bbg_screen_activation’ );
[/code]

You’d have to do something in the same spirit when not using BuddyPress. For the email, filter ‘wpmu_signup_user_notification_email’. Catching the request and overriding ‘key’ will be trickier. I haven’t experimented with it, but maybe you can hook to ‘activate_header’, detect the presence of $_GET['activationk'], and then redirect to the ‘key=’ URL that wp-activate.php expects.

Hopefully this is enough to help if you’re having the problem.

Who works for the NSA?

With every awful new revelation about the NSA, I ask myself: Who works there? It must take many thousands of very smart technicians to break the internet: mathematicians, computer scientists, hackers. Who are these people, and why do they decide to do what they do?

Are they in it for the money?

Is the work really that interesting?

Are they the kinds of people who’d be cracking illegally anyway, and the NSA gives them some legitimacy?

Do they imagine themselves engaged in some kind of noble pursuit, protecting the world from wrongdoers?

I’m continually perplexed that so many people, who presumably could be making much more money doing work that is more visible and less creepy, choose this path.

WP DPLA 0.3 – important update

I’ve just released version 0.3 of my plugin WP DPLA (described more here). Anyone running this plugin is strongly encouraged to update immediately, as this update fixes (among a number of other, minor things) a major bug that was causing the DPLA API to get hammered. Boo Boone.

Many thanks to Phunk Gadoury for giving me a heads up about this issue.