htjhmeth.

January 22nd, 2009

In a cultural shift that I don’t entirely understand, knitting and craft have become hip in progressive/feminist/socialist/earth-muffin circles. Nose rings and tattoos, it seems, are no longer incompatible with tissue cozies and throw blankets. Spend a few minutes browsing Etsy, and you’ll see what I mean.

The logical conclusion of this: yarn bombing. Yes, knitting as graffiti.

agojoehb.

January 19th, 2009

Between the excitement over Obama’s inauguration and the recent explosion of online video, coverage of tomorrow’s ceremonies is sure to set new records for web viewership. Here are a few sites where you can view live coverage online:

These are just the big ones; for more, see here and here.

(Get rid of your cable service—you don’t need it. Digital convergence pwns.)

the key to the wiggly worm.

January 13th, 2009

“In the beginning, there was Jack…”

If you were into house music in the late 80s and early 90s, you can probably recite the rest of this ferocious, ridiculous, semi-coherent rant by heart. Sampled by countless artists, incorporated into countless mixtapes, it became an unlikely touchstone of underground dance culture—recognized with a knowing grin by anyone who had any business at a house club or a rave. Classic rockers have “Free Bird”—we have the 1987 acapella B-side of “My House”, by an otherwise unknown outfit named Rhythm Controll.

I told you it was ridiculous.

(The version shown above is credited to Fingers, Inc., and I don’t feel like explaining why. Trust me—the original track is by Rhythm Controll, and you can thank a man named Chuck Roberts for the vocal itself.)

The long-out-of-print twelve-inch containing these two minutes of rambling regularly sells for $200 and up on eBay.

Approximately two people reading this right now know exactly what I’m talking about and are currently testifying along with Mr. Roberts at the top of their lungs. For the rest of you: I’m not going to explain. I can’t explain—you either get it, or you don’t.

But if I could preserve one artifact for extraterrestrial visitors to discover when they come across our planet eons from now, long after the sun has set on our species—one relic through which they might understand our civilization and our humanity—it would be this.

LET THERE BE HOUSE

rthionuoinryhith.

January 7th, 2009

Funerary rites differ widely across cultural time and space, and customs that seem normal to their practitioners can seem bizarre and macabre to outsiders. Certain Zoroastrian sects—such as the Parsis of India—famously place their dead atop dokhmas, or "towers of silence", to be devoured by vultures. In recent years, the decimation of India’s vulture population due to diclofenac poisoning, and the construction of modern high-rise buildings which provide an unintended view of the process, make the future of this custom uncertain. (If you’re feeling morbid, you can get a vulture’s-eye view from this video.) The Tibetans sometimes practice a similar custom known as "sky burial" (warning: graphic photos).

In southern China, the ancient Bo people hung the coffins of their dead on the sides of cliffs, where they can still be seen today. Similar customs have been practiced in the Philippines and Indonesia.

Cultures from around the world have practiced endocannibalism, or eating of the dead. The Aghori of India retrieve decaying, incompletely cremated bodies from the Ganges and eat them. Several cultures—the Yanomamo of the Amazon, the Amahuaca of Peru, and some African tribes—grind up the bones of their dead, and cook the bonemeal into foods which are then consumed by members of the tribe.

Then there’s the Taiwanese practice of second burial, which involves digging up a loved one’s corpse a couple of years after burial, cleaning the bones, and relocating them to a family mausoleum.

(I’ve been researching the Parisian catacombs. There’s surprisingly little information about their specific features on the web. However, I’ve made some progress—thanks largely to Google Book Search. One of these days I’ll clean up my notes and post them here, along with links to photos.)

htiguyhhui.

January 5th, 2009

Tonight was Ethiopian night at the Abandoned Banana homestead. Curt and Daniele made injera (the sourdough flatbread, made with teff flour, which serves as both staple and utensil in Ethiopian cuisine); Daniele improvised a tasty chickpea dish and equally tasty kale; I make yataklete kilkil, a vegetable stew consisting of new potatoes, carrots, green beans, bell pepper, onion, scallions, ginger, garlic, chile, and white pepper sautéed in homemade niter kibbeh (spiced ghee).

This was my first attempt at Ethiopian food, and it was a disappointment and a pleasant surprise—not at all what I was expecting, but satisfying nonetheless. We all cleaned our plates, anyway, and that’s gotta be worth something. And the injera reminded me that I haven’t had buckwheat pancakes in well over a decade. That must be rectified soon.

And now I have an assload of leftover niter kibbeh. I suspect it could be used equally well for fusion-y Indian dishes. So now I have a cooking project for the week, I guess.

uneiyrhmirh.

January 5th, 2009

Okay, I see this all the time, even in PHP5 apps—config settings stored in a globally scoped object:

$CONFIG = new ConfigObject();
$CONFIG->setValue( ‘debugMode’, true );
$CONFIG->setValue( ‘crashTheServer’, false );

function randomFn() {

    global $CONFIG;
    if ( $CONFIG->getValue( “debugMode” ) ) {
        doSomething();
    } else {
        doNothing();
    }

}

There are at least two better ways to do this:

  1. Set your config values as constants:

    define( "CONFIG_DEBUGMODE", true );

    This way, the values are automatically global, and it’s impossible to accidentally overwrite them (because you can’t redefine a constant). Okay, you could write your ConfigObject class to forbid redefinition of values, but why go to all that trouble when you can forgo the class altogether (and the accompanying global directives), thereby saving dozens of lines of code, and use the built-in language constructs instead (which are faster and more memory-efficient anyway)?

    Disadvantage: constants can’t have arrays or objects as values. Well, actually, they can—if you serialize() the object or array first, and remember to unserialize() it when accessing it later. A little clumsy, but if you’re using objects as config values, you’re probably doing something wrong anyway.

    At the very least, you could replace your global object with an array, since it’s just an overwrought hashmap anyway:

    $CONFIG = array(
        ’debugMode’ => true,
        ’crashTheServer’ => false
    );

  2. Define your config class as a singleton. You could argue that this is just a more complicated way of creating a global object (and you’d be pretty much correct), but at least it eliminates the need to import the object from the global scope all the time (since you’re calling its methods statically), and it at least makes it impossible to accidentally overwrite the object itself.

rtjyunigr.

January 3rd, 2009

nnjontnhrth.

December 21st, 2008

My breakfast tomorrow, as conceived while wandering randomly around the grocery store (yes, I’m a geek):

Poach a pear two-thirds of the way in water; remove the pear and retain a small amount of of the liquid. Core and sliver the pear, keeping the peel; return it to the pan and blend in honey, butter, cardamom, coriander, and maybe a dash of nutmeg (unfortunately, I’m out of sage, or I’d add that as well). Simmer until the liquid has thickened and the pear is fully poached. Serve atop whole-grain waffles with a sprig of fresh spearmint (and, let’s face it, more butter).

Also: steamed asparagus with feta, toasted pine nuts, and a balsamic reduction; vegetarian bacon; and Earl Green tea.

I take breakfast seriously. Also, I like to make shit up and then find out whether it’s actually as good as I think it’ll be. Sometimes it’s not, but sometimes it is, and then I’m like “who’s the master chef now, bitch?”.


I really like this track (and video):

solstice.

December 21st, 2008

Also, today is the solstice, so the days will start getting longer now.

And I’m blogging this from the toilet on my iPhone. Just thought you’d like to know.

ratatouille.

December 21st, 2008

I just watched Ratatouille (you can watch it online at Netflix).

And, man, Pixar is amazing. Any outfit that can melt my stony, cynical heart with a cartoon about a talking rat knows what the fuck they’re doing. Rotten Tomatoes gives it 96%—and, for once, I agree with the critics. Only a communist could dislike this movie.

From a geek perspective, the sheer amount of work and attention to detail that goes into these movies is astounding. Every shot must represent hundreds of man-hours of work, for the storyboarding, wireframe modeling, texturing, lightsourcing, animation sequencing, camera pathing, and rendering (and the inevitable screen tests and revisions) alone.

I guess a comparable amount of work goes into staging the big action sequences in a James Bond movie—building the sets, rigging the pyrotechnics, and so forth—but somehow, a team of artists channeling scenes that exist only in their imaginations onto the screen via bits and electrons is more impressive. Every aspect of every frame—the shape of a car’s fender or the elbow of a spoon or the kink of a whisker, the color and surface of stone and cloth and wood and cheese, the way light and shadow play on fur and hair and skin, every facial expression and subliminal bit of body language—was intentionally designed. They didn’t just go out and buy a bunch of prefabricated ovens and tables and motor scooters, or rent existing Parisian tenements and street corners for filming; they created every single object in the film, from the parking meters to the clouds and the raindrops and the leaves. (Somewhere out there is a guy who can say, while watching the movie with his friends, “hey, I designed that onion”.) They created an entire world with its own unique visual logic and aesthetic sensibilities.

I’m sure Pixar has a vast library of textures, models, and lighting algorithms from which to draw, but you don’t get such a cohesive, seamless product—with such rich and compelling character—by copying and pasting from libraries. Someone spent hours laboring over every two-second gag and every establishing shot. Moreover, they spend thousands of hours before that learning how to do it well enough to get hired by Pixar. Junglist MC voice: RE-spect.

Completely unrelated, except for the geek part: do I overuse em-dashes? I find they separate the major clauses in a sentence more clearly than an endless stream of commas, but maybe my sentences are too baroque in the first place—and I probably abuse the serial comma (I like lists of examples).

A panda walks into a café…

In other news, I do not like ratatouille. But then I’m skeptical of eggplant.