Did you compile it with --fast?
JP's blog
DC Metro status on your iPhone is back!
It's probably been close to a year since the iPhone-optimized DC metro status page Meenster.com vanished from the scene (it now resolves to a blank page.) For those of us who ride the metro regularly, knowing when the next train will arrive before you enter the station is a major convenience -- especially given last month's tragic metro collision and subsequent service disruption.
Well, wait no longer - the DC metro on your iPhone is back!
http://echodittolabs.org/wmata
With fabled AT&T coverage coming in October, you'll never miss a train again.
And now for the nerdy details:
We're not using any of WMATA's APIs or feeds, but rather just old fashioned screen scraping using regex. Since the train status pages on wmata.com are already pretty handsome, I elected just to scrape out the body and wrap it in Joe Hewitt's excellent iPhone CSS.
Suggestions, complaints? Drop me a note!
OH NOES, a DRUPAL CORE HACK DETECTED!
After working on some 50-odd Drupal projects over the past few years and inheriting a number of (often questionable) others, it occurred to us it'd be a good idea to have a script that detects hacks and/or "modifications" to Drupal core for a given Drupal install. The result is this remedial PHP script (or core agent) that detects your version of Drupal, downloads the appropriate tarball from Drupal.org, runs a diff on /modules, /misc and /includes, and returns you the results.
Not Another iPhone Review
As the last EchoDitto holdout, I now finally find myself the proud owner of Apple's new tiny PC.
Yes, that's right, I call it a PC. Let's face it, it's a computer, not a phone. (How did Macs stop being PCs anyway? They're still personal computers. Perhaps Apple vanity prevents us from comparing their products to anything existing. After all, when was the last time you heard someone refer to an iPod as an MP3 player? Its usually the other way around. But I digress.)
The iPhone is still a pretty nifty device -- even when you don't consider the enormous and sophisticated 'underground' software movement. The browser is great, the email works fine, although lacks some obvious features. Junk mail or cut & paste, anyone?
And the iPod features -- well, I have an iPod Nano for that.
But what really got me to switch over to AT&T was the geolocation. I've been on the GPS bandwagon for awhile now, having recently purchased a TomTom GO, and the idea of having geolocation and directions in my pocket is almost too much to bear.
But the real story isn't the famed cell-tower geolocation, its the the WiFi geolocation. While (ahem) exploring some of the 3rd party options out there for the iPhone, I found myself temporarily without cell service. Much to my surprise, geolocation was still working marvelously.
Later that day, I disabled my WiFi to save some battery (it didn't--the iPhone turns off the WiFi when 'sleeping' anyway) and I tried geolocation again. It was much, much inferior. (Go ahead, try it!)
Turn the WiFi on, and -- bam! -- back within 100 feet.
Now, I don't know about you, but I'm floored. How did Apple find a way to find me within 100 feet using WiFi alone? Granted, I'm in the DC area, so your mileage may vary, but either my Comcast IP address pinpoints me as 20 feet in front of my door or Apple is something awesome.
But we all knew that.
Creating a counter for your DIA supporter list
A number of our clients use DemocracyInAction.org for their CRM and online advocacy needs. One of the more frequent requests we receive is the simple ability to display a counter on a website indicating the number of members in a particular supporter list.
Recently, a client asked us to do just that -- and using a combination of Salsa's new API and some GD trickery provided by the excellent folks at Energy Action, we came up with the following solution:

Here's how we did it:
First, we created a custom report in DIA to return a counter of the supporters for the particular group we were interested in. Then, using Salsa's API, we pulled that number using PHP:
$data=load("https://salsa.democracyinaction.org/dia/rest/report.jsp?report_KEY=1&username=[dia_username]&password=[dia_password]");
This returns an XML file of the supporter list that looks something like this:
<data organization_KEY=\"ORG_ID\"> <item> <Count-supporter_groups.supporter_KEY>1771</Count-supporter_groups.supporter_KEY> </item> </data>
Then, using a few simple XML functions (attached) we parsed that XML into a variable:
$number = GetElementByName($data, \"<Count-supporter_groups.supporter_KEY>\", \"</C ount-supporter_groups.supporter_KEY>\");
Theoretically, you could stop here and just echo this out -- but in our case, we wanted an embeddable solution that anyone could post on their blog or website. The natural answer was to create an image on-demand that people could simply include in a sidebar or post.
Hunting Sysadminius Stevejobius
(cross-posted from the EchoDitto blog)
As you may know, we're always in the lookout for great talent to add to our strategy and technology teams here at EchoDitto. This time around, we're in the hunt for the elusive Mac enthusiast with *NIX chops -- a rare breed indeed, in a land mostly populated by the more commonplace microsoftae closedsourcius.
Are you an open source obsessed Mac-loving hacker, or know someone who is? Learn more at http://www.echoditto.com/careers.
Don't forget to bring a jacket!
Ah, springtime in Washington, DC. Where unpredictable weather comes to sow its wild oats.
It's been a distressingly long time since the days my mother was around to remind me to 'bring a jacket', but it got me thinking: The judgments that I make on whether to don a blazer in the morning are based on fairly quantifiable data. I know at what temperature I like to wear a jacket, I know what the temperature for the day is supposed to be, and I know not to wear suede if there's a chance of thunderstorms.
It seems likely that in the age of ultra-accessible information (of which weather seems most ubiquitous), I could build something to do this decision-making for me. Inspired by the geekery at this year's SxSW, I started envisioning a service that would send my phone a text message each day—advising me on whether I should wear jeans or shorts, a jacket or a t-shirt, or bring an umbrella.
WeatherMama had been conceived, and its 2 month gestation is finally almost over.
Read on past the jump for all the geeky details.
HOWTO: Create a tri-screen lobby LCD display for under $1K
When you arrive at EchoDitto's international headquarters in Washington, DC, you'll immediately be struck by our wall-mounted LCD display, proudly beaming its dazzling multimedia content in all its 2400x600 @ 16-bit glory. A vast improvement from the inflatable carousel, you might say -- but it wasn't always that way.
Our first shot at the lobby LCD display was actually a series of 3 Metro Express newspapers designed as placeholders. This actually persisted for several weeks, but failed to stimulate us with its non-interactive nature. It also failed to display the latest news in reverse chronological order as desired. (Somehow, it seemed permanently stuck on January 9, 2007.)

Not long after (and $600 lighter), we found ourselves with three 19" flatscreens but no way to affix them to the wall. This wasn't much of an improvement.
Bolts had seemed like a good idea, but, as you might suspect, there was a setback. While stringing our XM Radio antennae in the kitchen, I got a peek inside the wall at the steel frame of the building. No studs meant no bolts, no bolts meant no LCDs, and no LCDs meant one unhappy CTO.





