A Christmas Eve Raclette

We brought the raclette machine with us to Austin in case my family would be willing to take us up on a “personal pan fondue”. Everyone was game, so we set out to do a slightly Americanized version of Raclette (our second after the raclette party).

Instead of boiled potatoes, we baked them as thick chips, instead of more exotic charcuterie, we had lots of black forest ham (and a little prosciutto), and in addition to the traditional raclette cheese, we had some emmental and gouda. On the side we had mushrooms, asparagus, broccoli, broccolini, and a sliced baguette (the last three were not on the table when I took this overhead shot).

Christmas Eve Raclette

I think everyone discovered prosciutto is actually not bad, and that grilled ham is great. The potatoes were a total hit (a great innovation I say!) and went like hotcakes, so we eventually switched to bread, which my brother used to assemble little ham and cheese sandwiches. All the while we were so focused on prepping the machine (and feeding ourselves) that we completely overlooked the salad that we’d made.

Somehow Stephanie managed to catch us in action:

The whole family enjoying a Christmas Eve Raclette

On blog comments and Twitter

I started Justinsomnia (during a bout of sleeplessness) with Blogger back in 2002. This was before blogs had built-in commenting functionality. Eventually third party apps came along (like Haloscan, YACCS) that added commenting, but I was reluctant. I didn’t want comments to compromise the integrity of my posts.

After my friends began to add comments to their blogs, I noticed a change in my reading behavior. Whereas my blog was static—it didn’t change unless I posted something new, my friends’ blogs were dynamic, changing throughout the day as people stopped by and left comments. As a result I started going back to their blogs more often to follow the conversation. Meanwhile my blog sat idle.

Eventually I caved. I added Haloscan comments to my blog a year and a half after starting it. My blog survived. And comments grew to be one of my favorite parts of the medium. After all, I’m human. I love the contact, validation, support, questions, and feedback they bring.

Which brings me to Twitter. At one point during the CM Summit, Evan Williams was comparing Twitter with other communication channels, and he said “it’s the fastest way to get a message to a lot of people. Unlike broadcast, it’s two-way.”

This is a remarkably simple statement, but it really struck me. To most outsiders, Twitter seems a little pointless. But they’re usually judging each tweet in isolation, disconnected from the larger Twitterstream. When you start thinking about it being a discrete part of a larger conversation, you start to see where the value is.

It occurred to me later that Twitter takes the best part of blogging, the comments, and dispenses with the posts. (No wonder it kills blogs!) When you think about it that way, it sounds more natural, and certainly more conversational than blogging. Blogging is also a one-to-many communication channel, but the aspects that made it two-way (comments, trackbacks, aggregators) were all gnarly hacks bolted on after the fact. With Twitter, the two-way is built-in.

Bored online

I used to really look forward to spending time doing stuff on my laptop. It was how I wound down at the end of the day. It was a way of taking some time for myself.

But lately I seem to be finding myself coming to “the end of the internet” sooner and sooner. I’m not sure if it’s just me, or autumn, but there seem to be fewer emails to read/respond to, fewer blog posts to read, and consequently less motivation for me to blog myself. Not motivation, but excitement. I used to be excited when I had something to blog.

I wonder if I’m reaching some online crossroads. Where blogs (and feeds) are no longer new. Where the sites that made the web amazing (e.g. Google Maps, etc) seem commonplace. What is the next new thing?

What out there is going to make the internet seem awesome again? (I’m going to go read a book)

Yes I know my blog is busted

For anyone who’s left their feedreader and visited my homepage in the last few days, you may have been surprised to see that the most recent post in the leftmost column is 15 seconds of fame from Tuesday, February 13, 2007 11:01am. Yes, 2007.

Justinsomnia screenshot busted

Of course that’s not actually the most recent post—it should be showing Caught between PulseAudio and a quiet place from Wednesday, May 21, 2008 4:39pm, (and now this). But what’s altogether weirder is that the neatlinks column is completely up to date.

In my index.php template file, I actually have two loops, the main one which shows all posts without neatlinks, and the neatlinks loop which only shows posts from the neatlinks category. To exclude neatlinks from the main column, I just add query_posts('cat=-23'); above the loop.

After a little digging into the PHP code behind WordPress, I had it spit out the query it sends to the database to pull out the data for the posts in the “The Loop”. What’s crazy (at first) is that rather than generating one big query joining every possible table to wp_posts, WordPress runs preliminary queries based on the query_posts attributes, to return a list of eligible or ineligible post IDs. Then it does the final posts select using giant IN() or NOT IN() lists in the where clause. The main reason it structures it this way is so that it can use the LIMIT clause for paging.

SELECT SQL_CALC_FOUND_ROWS  wp_posts.* 
FROM wp_posts  
WHERE 1=1  
AND wp_posts.ID NOT IN ('876', '877', '878', '879', '880'...'5456', '5458', '5460', '5461', '5462', '5463') 
AND wp_posts.post_type = 'post' 
AND (wp_posts.post_status = 'publish') 
GROUP BY wp_posts.ID 
ORDER BY wp_posts.post_date DESC 
LIMIT 0, 8

When I ran this giant query directly on the database, I got back the old blog posts visible on my homepage. But when I ran it on my laptop with a copy of my WordPress data, I got back the correct list of recent posts. When I deleted a few IDs from the thousands in the NOT IN() part of the query, and ran that on the database, I got the correct posts back.

So it appears there’s a devastating bug in MySQL’s handling of long IN() lists that’s since been fixed. Unfortunately Dreamhost is running MySQL v5.0.24a, which was released in August 2006, almost two years ago! Locally I’m running 5.0.51a from January 2008.

The MySQL docs say that the IN() list is limited only by the max_allowed_packet size, which is 16 megabytes by default, and which this query, as giant as it is, is nowhere near reaching. I skimmed through the release notes between those two versions of MySQL, and the closest thing I could find to a related bug was in the 5.0.41 release notes from May 2007:

For expr IN(value_list), the result could be incorrect if BIGINT UNSIGNED values were used for expr or in the value list. (Bug#19342)

So what did I immediately go do?

alter table wp_posts modify ID int unsigned not null auto_increment;

No difference.

Once again I’m caught between a rock and a hard place. On one hand, I have no idea what’s the likelihood of Dreamhost upgrading MySQL on their database servers (though I sent them a very detailed support request), and on the other hand, my blog is broken, and that makes me very grumpy. I generally like the laid-back Dreamhost culture, but it might be time to pay for something a little more dedicated…

Update: Broken blog = man obsessed

Introducing White Noise Lounge

After three weeks in not-so-stealth-mode, it’s time to take the wraps off a new joint venture between me and Stephanie, which we’re calling White Noise Lounge.

White Noise Lounge

It all started about a month ago when we were joking with each other about the idea of an internet radio station that broadcast nothing but white noise—24 hours a day. At some point this joke crossed over into the realm of possibility, and we started working on it like a real project, albeit in the form of an audio blog.

The format is pretty simple. Every post is built around a short audio track that we’ve recorded from our environment. The sound could be anything, we’ve got a long list of ideas, but usually something continuous, rhythmic, and ambient. Every post contains a black and white photo of the sound’s source, in keeping with the site’s monochromatic color scheme (a nod to the “snow” of video static). As this is a blog at heart, we’ll also write something about the place or the sound.

Our goal is to post something new at least once a week, so please feel free to add the feed to your feedreader or audio podcast fetcher. We’ve submitted the site to iTunes, but haven’t heard back yet.

Update: We are no longer updating White Noise Lounge. All the old posts have been imported into Justinsomnia.