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.


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.

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.

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.

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.

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.



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.

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.