April 2008 Archives

Firefox 3 beta 4

On OS X, at least, it's really nice! My only complaint so far: the address bar has gotten a little too smart for its own good, and introduces a noticeable lag when you hammer a URL or search query into it with sufficient ferocity. But Firebug (1.1 beta), the Web Developer Toolbar and Greasemonkey all seem to have already been updated for the new version, so I suppose I should be counting my blessings. As soon as Tamper Data and Live HTTP Headers get ported over I think I can safely delete version 2.

UPDATE: And, naturally, as soon as I try out beta 4, beta 5 is released. Well, presumably it's nicer still.

thanks, Virgin America

Booking a flight on Virgin America: I'm about to confirm and pay. Would I like to join their loyalty program, which doesn't yet exist but which someday may provide some meager membership benefits before the airline inevitably goes bankrupt or is absorbed by a larger carrier? Sure, why not.

I'll tell you why not: because as soon as I'm done I'll be told that my previously locked-in reservation has expired, that making the same one will now cost 33% more, and I'll get a busy signal when I call their 800 number to complain. Go to hell, Branson.

Virgin America: still evil, but now defeatable

Alright, a workaround. Clearing cookies didn't work. Switching browsers didn't work. What did work was clearing cookies and then sending my traffic through a SOCKS proxy server on the west coast. After doing so I was able to get the fare that had been quoted to me, then snapped away.

The conspiracy-minded (e.g. me) will conclude that Virgin America keeps a list of IP addresses and, based on your fare-browsing activity, gradually increases prices in an effort to make you snap up a ticket before it gets any more expensive.

The more sane among you will recognize that the West coast is three hours behind me, and that the fare increase may be related to the time of day at which I was shopping.

Either way, jerking around your users in this manner — the way the entire airline industry does — is sleazy behavior. If you're booking airfare and can send your packets through a western time zone, I recommend doing so.

talented friends

  1. The City Veins! Tonight! Here! Come for the music; stay to be a part of Kyle's growing media empire. Remember: it starts strangely early. I'll see you there.
  2. Don't miss Spencer putting on an IM clinic at Jezebel. Have you been listening to his radio appearances? You should be. The man has got some mic skills.

ick

No sooner had I finished writing a long post for Techdirt about Comcast seeing the light on Bittorrent than I stumble across two links (via Slashdot) showing just how miserably the company treats its digital cable customers. Comcast recompresses their channels so that they can squeeze more over the network without making infrastructure improvements. The result is substantially worse than FiOS or over-the-air broadcasts. Go ahead: click the links and check out the pictures.

untoothsome

I have just returned from the dentist. The news is not good.

This was my first visit to Dr. Mills, but it was immediately obvious that she is a good-natured woman of immense cheer — I saw her give a fellow patient a butt-bump in the lobby to congratulate her recent weight loss. She and her hygienist daughter are both gentle and reassuring. But even Dr. Mills couldn't stop an "Oh boy" from escaping her lips as she stared at my teeth. Nor did she lie to me when I looked up and said, "I'm in big trouble, aren't I?"

It's my own fault, of course. To begin with, I haven't been to the Dentist since the Kerry campaign. But my culpability is worse than just that.

The last time I visited a dentist occurred in the waning days of my brain's susceptibility to maternal nagging. I drove over to Dr. W's office near Central Library on one of the Saturday mornings he favored for my family's appointments. Dr. W was a kind, effeminate man who always smelled like Vaseline. His magazine selection was terrible, but he was content to listen to patients' wishes and drill as little as possible. He was very accommodating. Too accommodating.

It had been obvious to me for some time that dental technology would continue — must continue! — to evolve. Caps? Fillings? Invisalign? These baroque appeals to vanity won't stand the test of time. How much more maintainable, elegant, even, to mount a simple feed impeller and set of crushing pins. If you've ever watched Modern Marvels you understand what I mean. History will vindicate me.

I knew, of course, that the adoption of ore-crushing technology by the dental arts was still some years away. But such were the remedies I was considering: my formerly perfect teeth had shown their first signs of weakness over the year preceding this visit, and I was keen to halt the downward trend.

So I hatched a plan, and proposed it to Dr. W: what about sealants? A slowly-degrading plastic film over my molars like the one I had been given in childhood. It would keep decay out, like the bubble dome surrounding a post-zombie-apocalypse city. Dr. W considered this proposal. He couldn't see why not.

Dr. W closed that office soon after, though whether out of shame or fear of criminal liability, I couldn't say. When I explained the situation to Dr. Mills she asked me where I had gotten the procedure done and was surprised to hear me say Arlington. Clearly she had been expecting to hear the phrase "crime alley", or perhaps "Soviet prison". My teeth are fine, you see — except for the area around the sealants, where grey veins snake outward, like contagion seeping from newly-landed meteors of mysterious origin.

Soon I will be more dental amalgam than man. The question now is simply whether it will take two more visits or three to complete the transformation. It is too late for me... but perhaps others can be saved. So heed my words:

Don't go to the dentist. Wait for the crushing pins.

the least of their problems

This is what happens when Florida makes a determined effort to avoid looking unsophisticated.

And yes, I am posting this partly because the Marlins insisted on beating the Nats last night, despite presumably knowing that those of us at the ballpark were very cold and deserved to see the home team win.

stupid is cheap

So I guess that Glenn Greenwald and Megan are having a fight over what stories the media covers. This seems a little odd, but I guess she yelled at him, so now his commenters are yelling at her. And while I don't want to align myself with the people who comment on her site, who tend to be (for one reason if not another) some of the worst people on the planet, it's worth remembering just how lousy the metrics data Megan refers to can be.

Consider this admittedly irritatingly-formatted conversation about the Arbitron ratings. Basically: over the last decade or so Arbitron, the one big radio ratings agency, recorded the declining popularity of rock radio, and stations like DC's own WHFS were shuttered (boo!). Then Arbitron developed a new technology that passively monitors what people listen to instead of relying on them to accurately report their listening habits. It turned out that rock radio was considerably more popular than anyone thought — rock listeners were just unusually bad at filling out Arbitron's surveys. With that factor removed, rock stations are now once again popping up in cities that have rolled out the new monitoring technology.

Now, while I certainly don't want to imply that listening to Smash Mouth correlates with intelligence, in general I think it's probably true that it's harder to collect tracking metrics on the sorts of educated, sophisticated consumers that Greenwald's commenters presumably consider themselves to be. Their time will tend to be more valuable, meaning your ratings company will be able to afford to buy less of it. And they may have less time to consume media, meaning there's less collectible data available per capita — even if you don't have to pay for it. They also may be quicker to notice that you're tracking or otherwise inconveniencing them and take steps to stop you. Show of hands — how many people are reading this with Adblock Plus installed?

From listening to Emily talk about her work it's clear that avoiding sampling error is hard enough when the attempt is made in a rigorous, well-funded academic setting. And of course the situation here is considerably worse. Ratings companies like Nielsen, Arbitron and the like have a financial incentive to sample poorly (or as poorly as they can get away with). And, from my cursory understanding of their industry (I read DCRTV! I tell clients which web analytic reports to buy!), it doesn't seem as though the firms sell themselves with their highly scientific methods so much as they sell themselves by being the only game in town.

So it doesn't seem totally outrageous to me to suggest that metrics-driven editorial decisions may favor idiotic stories even more than the economists' magical intersecting lines say they should. I think the internet has helped reverse this trend, but America is still probably being fed stupider content than it ought to be. And, lest you think I'm just creating elaborate justifications for my own tastes' supremacy, keep in mind that I say all this as a guy who ordered a pay-per-view wrestling event less than a month ago.

they closed purgatory; I'm tempting my luck

The Archdiocese of Washington is making a stink about a low-budget Metro commercial that featured a bobblehead version of the holy father, saying that area Catholics might find it offensive. I don't get it — it's not like Catholics have no experience with popes that are constantly shaking.

BA-DUMP

This hereby concludes this edition of "Offensive Jokes That I Reluctantly Took Out of the Morning Roundup".

dear people on Facebook

Please don't take it personally when I don't respond to your friend request. I never really used the site, but for a while I would at least accept incoming friend requests. Then, with a number of unattended-to requests already piled up, I got a request from someone who I decidedly did not want to be friends with. At that point I decided not to bother with it any more.

So you won't be getting friended, which is no big deal since I don't do anything on the damn site. Please rest assured that I think you're lovely, and that the odds of you being the person who drove me entirely off Facebook are quite low — though non-zero! It's in my best interest to keep you guessing, working hard to earn my fondness. If nothing else I figure this calculated withholding of affection is good practice for one day being a parent.

human-readable

I realize I've already blogged about my Arduino/Fonera project far too much. But I don't think I've actually explained what it does in simple terms. If you're interested, a brief explanation of what it is and how it works is included in today's DCist transit post. Special bonus: mean comments at my expense!

Now I'll shut up about it. Up next: something filled with shift registers, LEDs and childhood nostalgia.

(Although this looks like a fun (and cheap) project, too.)

laser harp!

Via the MAKE::Blog:

Pretty totally sweet. City Veins, are you paying attention? You can skip to 0:52 if you're strapped for time.

I remember one assembly in middle school that featured something similar. For reasons still unknown to me an administrator had us all come to the auditorium and then said, basically, "Children, this gentleman has built a laser harp. Please listen respectfully, and DO NOT GET INTO HIS VAN."

Then the laser harp guy bounded out and said "Hi kids! I built this laser harp! If you think about it, that proves that you can do anything you set your mind to. But only if you stay off drugs! Now, who wants to hear a bad MIDI sample of an electric guitar?"

Ah, laser harp guy. You poor bastard.

UNRELATEDLY: Am I the only one who's found every single thing he's heard about the Newseum so far to be completely grotesque? But then, I suppose I've been down on the project ever since they scrapped the initial plans to build it high enough to reach into heaven.

(Yesterday, when all the network anchors interviewed Petraeus there, like high priests conducting sacred rites at their newly opened temple? Pretty bad.)

something like an epiphenomenon

Friday night was the first time in a good long while that I got to expound angrily (/drunkenly) on the subject of free will. But here! Look! I come home and Slashdot is linking to a writeup of an experiment that reconfirms and extends my all-time favorite neuroscience result (PDF). Apparently April is mechanism month.

Anyway, you should check out one or the other of those links if you aren't already familiar with Libet's famous work. It's creepy, clever and morbid — a combination that I aspire to myself.

MORE, AND A REQUEST: Man, it really has been a while. But Tim has some interesting things to say here, and I left a long comment in response, which gave me occasion to remember that I had written this, and in general if you would like to shoot the shit about consciousness I'd love to take you up on it. I had kind of thrown up my hands a few years ago and decided to learn about electronics instead, but I think I'd like to be able to begin speaking meaningfully about this again.

My first question: what should I be reading? The last time I seriously checked into these issues I was thinking about buying Christof Koch's book, but I ended up getting distracted/discouraged by its price tag and length. Has anything with a similar level of sophistication and noteworthiness come out since then, or is it time to grit my teeth and see what Prof. Koch has to say?

slurpees

I have strongly-held opinions on this matter.

ghost stories

Free ones! One is even available as an audiobook, and isn't half-bad if you can convince yourself that the narrator isn't faking his British accent.

And yes, Halloween planning has begun.

one man is an island

If you know anything about my musical tastes at all, you know that I'm a fan of the Unicorns. God but I loved that band. This was a group whose first press photo was of their brutal murder, who wrote pop songs about ghosts and dying and getting famous and then some more ghosts, and who couldn't be bothered with verses and choruses because there was just too much great stuff to cram into each song. The first time I saw them they wore matching pink tuxedos and swung from the rafters.

The second time I saw them was months later, and they were much worse. The band played no encore and clearly had little interest in entertaining the crowd. Having the Arcade Fire open the show didn't help the band make a lasting impression, either. Not long after that the Unicorns broke up, leaving behind not much besides an album's worth of amazing songs.

There was hope, though: two thirds of the band, including (necessarily) one founding member split off to form a new group called Islands. Nick Diamonds (née Thorburn) and J'aime Tambeur seemed less crazy than Alden Penner, and perhaps just as talented. Two tracks leaked under the band's name, and (although I later learned they were written while the Unicorns were still together) I found them immensely encouraging — particularly this one:

Islands – Abominable Snow (early version)

Nick Diamonds also put together this. And you know how I feel about that.

Eventually Islands released their debut album, and I kind of thought it stunk. Well, that's too harsh: it had a couple of good tracks, but it was mostly a disappointment. The songs just weren't that great. Hopefully it at least convinced some other Canadian bands to reconsider their planned cetacean-themed guest raps.

Now Islands' second album, Arm's Way, has leaked, and I'm glad to say it's much better. The songs are solid. But it's still kind of a letdown. Here, listen to the version of "Abominable Snow" that's included on it:

Islands – Abominable Snow (Arm's Way)

I think it's fair to say that I am less likely to call a song overdone than most people. Have some strings available? Sure, lay em down! Horns? The more the merrier! And say, have you got enough people for the hand claps yet?

But this... this is bad. It's too long; it's got too much stuff; it has too little fun. And I'm afraid that the rest of the album is like it. The underlying songs are good, if generally a minute longer than they need to be. But the production is boring and the instrumentation frequently so uninspired as to be indistinguishable from a karaoke CD. The only person who consistently sounds like he's trying is Diamonds. And he only sounds like he's trying to sound like he's trying.

This isn't true of every song: the title track fares pretty well, and the band actually manages to let (slightly) loose during a too-cute Who reference on "In The Rushes" and during the sprawling "Vertigo". But it's true on far too many of the songs.

In other words, it's exactly what I should have expected after reading Nick Diamonds say this:

I think in terms of the band, it's very solidified. I'm trying to think of the focus of the arrangements. It's way less off the cuff. The first record, we would invite people in, say "yeah, what do you think?", and give them free reign. This is reigned in.

I understand that the man is sick of having his new band compared to the Unicorns. That band was great, but it's over. But I do wish wish he'd move on to having another band, rather than just a bunch of musicians who play his songs. This album sounds like a very complicated demo tape.

But hey: it's much better than Return to Sea. It's even pretty good! It's just that given the pedigree involved, I was hoping for something extraordinary.

boarduino!

boarduino!

On Tuesday night I successfully assembled a Boarduino kit for the first time. I had tried once before and accidentally swapped the two electrolytic capacitors — whoops. But I placed an order for a couple more kits, and their creator, Lady Ada, was even nice enough to send an extra one my way. Thanks!

The Arduino, as you might know from my earlier ramblings, is a microcontroller doohickey that can run tiny programs and read and write signals from its twenty or so connections. It can also talk to your computer over USB.

The Boarduino is pretty much the same thing. This is one of the benefits of the Arduino being an open platform: it can be freely copied. The Boarduino is just as open, as Lady Ada provides downloadable schematics that you can use to print your own circuit boards if you'd like.

There are a few differences between the Boarduino and a standard Arduino, though. First, it looks very different. That's because it's designed to be plopped into a breadboard, which is a commonly used mechanism for wiring up prototype circuits without soldering anything. Second, it's sold as a kit that has to be assembled and soldered, which makes it cheaper. Third, it moves the chip that translates from USB to serial (which the Arduino chip can understand) into a reusable cable instead of keeping it on the Arduino, which makes it cheaper still. This means that for applications where a connection to a computer is important, the Boarduino doesn't make that much sense.

But if your application stands on its own and you don't mind spending some time soldering the Boarduino is a great option. And a kit only costs $17.50 — about half as much as an assembled, full-featured Arduino.

back from the dentist

One hundred and seventy dollars, ninety minutes, six fillings, four syringes of anesthetic and three tubes of filling compound later, the right side of my mouth is decay-free. I get to do it all again soon enough, but first I have a blessed three-week reprieve. Now I just have to wait for the right side of my face to wake back up.

desperately seeking serial

One of the projects I've been fiddling with recently has been Mobile Processing. You might remember me screwing around with its parent project, Processing, in 2006. That project's cross-platform IDE and open ethos has spread to a number of other projects, including Arduino, Wiring, Fritzing and Mobile Processing. Of these, Mobile Processing is probably the most like Processing proper, in that it attempts to provide an easy-to-use environment for writing small applications that can display graphics, respond to input and manipulate system devices. The only difference is that Processing Mobile is designed to work on J2ME-capable mobile phones.

In Washington, DC, the cheapest compatible phone that I'm aware of is Boost Mobile's i425, a crappy candybar handset from Motorola's iDEN line. It costs $40, which includes activation and $5 worth of Boost credit. Better still, for thirty-some cents a day you get unlimited data access. It's a GSM phone — speed won't be great — but still: unlimited data! And it has GPS! Surely that's enough to excuse its bulk and awful, awful screen.

All that you have to do to get it working with Processing Mobile sign up for a free developer account with Motorola, download their IDENJAL tool (Windows only, unfortunately), and then use it to load a Processing Mobile sketch's compiled Midlet onto the phone over USB.

With much greatly-appreciated assistance from the man himself, I've been trying to follow in the footsteps of five.b.oh, who successfully got a similar phone to speak to his Arduino over a serial connection. If I can succeed in replicating that effort, I think this will be the most economical means of getting the Arduino online from anywhere.

Unfortunately, five.b.oh's phone is a different model from mine. His is a little older, and still uses a straightforward serial cable — one that, with some voltage-shifting circuitry, is pretty easy to connect to an Arduino. The i425 is too clever for its own good, and hides its serial port behind a USB connection. I'm confident that there *is* a serial port, since its baud rate can be set through the phone's menu system (five.b.oh also supplied me with a sketch that enumerates system ports, which prompted the i425 to spit out "COM0" — that's a good sign). But how can I get to that serial signal? Unfortunately USB-to-serial cables won't work in this case, I believe, since they rely upon a USB host controller being on one end. Both the phone and the Arduino will be acting as USB clients.

So I disassembled the phone, hoping to find a silkscreened label pointing me to the serial signal somewhere upstream from the USB chip. That was wishful thinking. So I'm posting the photos here, and crossposting to some relevant forums in the hopes that someone with more electronics experience will be inspired to offer a suggestion. How do I proceed? Are there things I should be looking for? Something in these photographs that looks particularly promising? Do I need an oscilloscope, or can I just probe with the Arduino's serial RX pin (under the assumption that I can trust the baud rate set on the phone)? What's the best way to get those metal covers off of the PCB?

Any advice is much appreciated. These pictures are taken in order of disassembly: imagine the phone on a table facing you, with the keypad closest to you. The phone has a top screen section, and two layers of PCBs under the keypad. These fold up like the advancing pages of a calendar.

Click the images to get to their Flickr pages, which contain higher resolution versions and notes on various components that I'm able to identify.

motorola i425 disassembly

motorola i425 disassembly

motorola i425 disassembly

If you're disassembling the phone yourself you'll need to remove a set of hex screws from the back (with back cover removed), then remove the front cover. At that point the keypad PCB can be carefully pulled up from the bottom of the handset — don't panic at the resistance, as there's a glob of adhesive goo there. There are a few more screws to contend with, and then the bottom PCB will lift up as well.

If this fails I plan to experiment with one-way communication to an Arduino by flashing the screen to encode data that can be detected by a phototransistor connected to the Arduino. But I'd rather have a clean serial connection.

constructive criticism re: our nation's conveyances

My apologies for using this forum for something as tedious as the following. But there seem to be some misconceptions about how our transportation system is supposed to work, and this seems like the most efficient way to get the word out:

  1. To the operators of the Chinatown bus: If, after several years of continuous operation without imposing a numbered boarding system on your passengers, you suddenly decide to implement such a system, you should expect some confusion. This may be exacerbated if you tell passengers who go into your office to obtain such a number that they don't need one. And, when faced with the first passenger of those waiting who is denied passage on the bus — a handsome young man who is clearly frustrated but remains at least somewhat polite — you might consider offering him something other than your assurance that his ticket will work on tomorrow's bus. Although your sheepish facial expressions were at least somewhat appreciated.

  2. To the woman with whom I offered to split a cab to the train station: "Splitting" a cab generally means that you will pay for half of the fare, rather than merely offering offering a sullen two dollars when prompted.
  3. To Amtrak: Frankly, I don't know where to begin. The 500% price difference from the bus? The delay? The fact that you don't let us wait on the platform, instead preferring to patronizingly queue us up and shuttle us around like livestock? You know what, nevermind. These are topics for violent revolution, not for blogging.
  4. To the girl I sat next to in the Quiet Car: The aforementioned car is so-named because cell phones are prohibited. Also prohibited, if only implicitly (but by common sense and taste in addition to Amtrak): having your Sidekick's sound effects set to maximum volume as you endlessly fiddle with it.
  5. To the operators of the Circulator bus: If you have been pursued for several blocks by a tired-looking — although still handsome, mind you — young man, it is a frequently-extended courtesy to pause for a moment longer than usual at your next stop so that he might catch up. This is particularly true if yours is the last bus of the night.
  6. To God: Causing it to begin raining immediately after the previously described events lacks both subtlety and wit. You have shown in the past that you can do better.
  7. To DC taxi drivers: Don't you honk at me, you despicable mountebanks. Shouldn't you be off somewhere getting a meter installed?
  8. To the seemingly non-homeless woman whom I caught going to the bathroom between parked cars on my street: I appreciate your apology, but that does not change the fact that what you were undertaking to do is not in keeping with the road's intended function.

Thanks for your attention, everybody. With a little practice I'm sure we can work out these kinks.

welcome, brother!

Matt got a bike! This is wonderful news. I'm a big cycling proponent, of course, and am very glad to see a friend take up this healthy and convenient hobby. The benefits are myriad: why, just this week I received a check compensating me for the repair bill incurred the last time I was hit by a car (true!). More to the point, though, I think neither Matt nor I are particularly patient people. Hopefully he will enjoy being freed from the torpor of his pathetic human limbs as much as I have.

Naturally Matt's commenters have a ton of advice for him, ranging from the stupefyingly obvious (you should use a lock!) to the idiotic (don't sweat the helmet, bro) to the completely inane (you need fenders(!?)). Allow me to add my own suggestions to the chorus:

  1. Be prepared to adopt startlingly new ideas about the appropriateness of various traffic laws. This may be unsettling at first, but don't worry: you will quickly develop elaborate justifications for these opinions, many of them loudly based on your right to defend your safety, and many more quietly originating from your own preferences and convenience. The experience roughly approximates what I think it must be like to be an NRA member, except you're concerned with fending off regulatory challenges to your momentum rather than to your firearms.
  2. Understand that your bike shop experience is about to get catastrophically worse. If you're anything like me, while shopping for a bike you probably had a chipper salesgirl show you around, distrac you from your ignorance and gently hint that maybe you two could go out after this major purchase, because, you know, she doesn't get to meet a lot of guys who know nothing about bikes in this job and she finds that really attractive. But your time in retail land is over, my friend.

    From now on you'll be dealing with the maintenance department, and the experience is fraught. This is the only shopping experience I'm aware of where the customer is treated with more contempt than at a record store. It's understandable: the employees are highly skilled and in demand, yet still in dead-end jobs. Also, they're much, much cooler than you, and would prefer to hang out with the messengers milling around the repair counter instead of taking your money. My best advice is to find an older mechanic, as they tend to spend about 80% of their time on long disquisitions about bicycle repair, which is both kind of interesting and leaves them less time for staring at you disdainfully. Special bonus if you go to CityBikes: the guy there looks exactly like Alan Moore!
  3. It's best to live in constant fear of what bicycling is doing to your sex life. I've never experienced any ill effects, and given the small amount of biking I do I doubt I ever will. But it's a fantastic thing to worry about, particularly given its likelihood to result in your getting hit by a car while carefully fidgeting on your saddle.
  4. Which reminds me: be prepared for other cyclists to call their bike seats "saddles". I know, it's pretty annoying.
  5. Maintenance tasks you can easily do yourself and probably should: fixing tires, replacing brake pads, tightening brakes, installing saddles and pedals, adjusting your shifting if it gets slightly unaligned. Things you can do but probably will be better off paying someone to do for you: replacing chains, replacing cables. Things that you can't do: true a wheel, perform a really good tune-up, or anything more complicated. After I post this my friend Chris will probably accost me in the hall and say, "You can totally do all those things!" But that is only true if you have someone like Chris on hand who is overly generous with his time and bike knowledge.

Alright, this list is becoming dangerously practical. I'll stop right there. Enjoy your new freedom and speed! Oh, and the secret anti-pedestrian meetings are the first Tuesday of every month.

grocerynomics

From RenewShaw (with apologies for quoting the full entry):

As a North Carolinian, I took for granted Harris Teeter grocery stores: they're clean, well-stocked (fresh, beautiful fruits and veggies, awesome delis, great meat departments, outstanding wine/beer departments, a variety of all the essentials and more), well-staffed, and generally pleasant shopping experiences. Since moving to D.C., I have relished the few opportunities I've had to grocery shop at Teets out in Virginia.

As reported elsewhere, the District's first HT finally opened today yesterday in Adams Morgan. Boo-yah. Another one is set to open on the Hill soon, and yet another is planned for NoMa. I don't know if any of these Tajma Teeters will ever be a routine grocery stop for me, but it's exciting to have them in the city, and hopefully they will inspire other grocers (Safeway and Giant) to take a hard look at how they do business.

That said, I've had positive experiences at the Shaw Giant lately. While the store has some definite shortcomings due to its limited space (e.g., the produce department is woefully lacking, the place is generally unattractive and uninviting), I've not encountered lines stretching to the back of the store lately and have generally experienced helpful people at the checkouts.

All true! I live right by that Giant, and over the last year or two it really has improved: the staff is better trained, they've introduced some yuppie-compatible brands (look, an organic section!), and the produce is at least less rotten.

But it's a mistake, albeit an easy one, to assume that every store in a chain is the same. Of the proletarian grocery companies I've encountered, Giant has had both the nicest and worst stores. I've been to Safeways that look like fallout shelters, and others that are gleaming temples built for the greater glory of the deli counter. So far Harris Teeters seem to be consistently nice, but they're a relatively new player on the DC grocery scene. Wait twenty years, or head back to the region where they were founded. You'll find some atrocities.

Of course, this isn't to excuse the people responsible for the Shaw Giant. Actually, it makes them more culpable, because their crappy offerings are the result of deliberate inattention rather than simple incompetence. Grocery stores, like a lot of businesses, work like engines that the central office can rev up or rev down as economic circumstances dictate. I'm sure that Giant HQ noticed the percentage of WIC and EBT sales declining as I and my gentrifying ilk moved into the neighborhood. The better food and better-trained staff followed in due course.

So as long as the customers going to the new Harris Teeter are relatively rich, the store will be nice. As long as the ones shopping at the Shaw Giant are relatively poor, the store will be lousy. It's as simple as that, I'm afraid — the brands' individual virtues don't have much to do with it.

I do have another question about grocery stores, though. You hear constantly about how the industry operates with razor-thin margins, and survives only thanks to massive volume. But I've recently done a bunch of shopping at the Italian Market in Philly — a historic, year-round, daily open-air market that starts at Ninth and Christian and trickles down to the great cheesesteak palaces of the South. And the price difference is astounding. Three pounds of grapes cost $2. A dozen green peppers and two bags of onions cost less than $5. You can get five nice navel oranges for a dollar, and even more lemons.

Philly is a cheaper town than DC in general, but not that much cheaper — costs at Whole Foods and Superfresh are roughly comparable to the ones at Whole Foods and the Giant in Shaw. So can it really be the case that the cost of a roof, refrigeration and employee benefits is the difference? I guess so. The only other explanation I can come up with is that the mob is subsidizing my produce purchases in order to maintain their South Philly fronts.

hate twitter spam?

Well, probably not. The spam problem on Twitter isn't really that much of a problem, thanks to the clever way that following works. Still, it's kind of creepy to have a robot start observing your tweets in order to calculate god-knows-what. I'm not the only person who wants to keep their updates public, yet doesn't like going through and blocking newly-added lurkers.

So I built a little email processing script to handle the problem. Won't you help me test it out? If you're game, head to http://twitter.manifestdensity.net.