I had always assumed animated GIFs would go the way of the Blink tag, but it seems their popularity continues to grow. Just like hipsters are bringing back vinyl records and beekeeping, animated GIFs are a sign of good taste. So to sate the public’s thirst for more GIFs, I created a tool to create custom GIFs using Google’s Street View images. Try Geo GIF to make your own custom images.

The Street View API is stunningly simple to use. All you have to do make an http request for an image with the parameters embedded in the URL. It’s fast and easy. I wrote a PHP proxy script to request a series of images and then stitch them together into a single animated image.

The web front-end lets you select any place on a map, and drop a pin to select the location. The Street View API will find the closest location, though if it’s too far from a street (like the middle of a block), you’ll see the standard “no image found” placeholder. continued » » »

It’s called an art festival, but it’s really a big party. Artscape is Baltimore’s big summer weekend of arty displays and free performances. It’s worth the trip for me to ride the MARC train, especially since it drops you off at Penn station, smack in the middle of the event. If you can ignore the standard-issue carnival food vendors and tents from corporate sponsors, there’s a lot to discover.

The coolest swimming spot on the Potomac River has been destroyed. For years I’ve known about a semi-secret spot off of the C&O Canal, known only as the “rope swing” place. Located at Little Falls Damn, near Snake Island and High Island, a hidden trail led to a spot on the shore where a pair of old trees had collapsed over the river, at an angle perfect for climbing. Every year a brave soul would climb near the top and attach a long rope to let you swing into the water. And every year someone would cut the rope off. The spot was popular with students from Georgetown Day School, but it was clear someone didn’t like the idea of people playing in the river. The deep water was perfect for jumping; I never felt the river bottom when splashing in.

This weekend, on June 28, 2014, I rode my bike to the spot, and was shocked to find the trees had been cut down to stumps. So sad. My last visit was May 11, so the vandalism occurred sometime in the intervening seven weeks. continued » » »

When you open the program, you’ll see a collage of the 144 color samples. You can enter the URL of any image on the Internet, which will replace the collage. As you hover over the image, the program will match the current pixel to the nearest color in the X11 palette. If there isn’t an exact match, it’ll show the nearest match above the actual color codes.

My matching algorithm isn’t ideal; it just sums the differences between two colors’ red, green, and blue values. continued » » »

Columbia Heights isn’t normally known as a hot spot for drag queens, but once a year The Wonderland Ballroom floods the streets with guys in dresses. This year’s Sundress Party closed down Kenyon St with a portable stage outside the patio. Here are some photos from the event.

Dozens of hand-made human-powered vehicles meandered the streets of Charm City this weekend, veering through sand, mud, and even plunging in to (and out of) the harbor. The Kinetic Sculpture Race is an event unique to Baltimore, and a perfect fit for Charm City. Its sponsor is the American Visionary Art Museum, itself a perfect fit.

Inside Homecoming Queen Fifi

This year I took advantage of MARC’s new weekend service to travel from DC. It’s a much cheaper alternative to Amtrak, but the earliest you can arrive at Penn Station is 10:05am. That was too late to make the opening ceremony on Federal Hill, so I took the 11 bus straight to Canton Waterfront Park. The stop before Penn Station – Baltimore’s main train hub – is the West Baltimore stop, which is technically closer to Federal Hill than Penn Station, but the neighborhood is bombed-out without the best transit options. continued » » »

Yelp and Google Places offer competing versions of the same service, as do their APIs. I created the Places Mapper to be able to compare the two. It borrows the same interface as the Yelp Mapper. One difference is that the Yelp API uses text-based searches, while the Places API lets you use their taxonomy of types of businesses. So, you are limited to Google’s choice of what types of places are available, but the results are more accurate. It’s similar to the Metro Places app, but of course you aren’t limited to searching near Metro stations; the entire map is used as the bounds for the search. The API doesn’t return more than 20 results, so if the map covers too large an area, not all relevant places will be returned. continued » » »

I love animating bikesharing systems, but without GPS data it looks like people travel in straight lines, from bike-out to bike-in. So to get a better idea of how cyclists really travel across the city, I wanted to investigate mapping multiple GPS tracks.

The first step is finding data. Strava has a huge repository of bike data, but you can’t access a trips’s GPS data unless you are connected to that person, or if they otherwise grant you access. And even then when you download the GPS data the GPX file doesn’t include timestamps. You can get an idea of the potential of Strava’s data from this “Beautiful Weekend” video made by BikeArlington using VeloViewer.

I decided to try to collect my own GPS data by asking a local monthly bike ride, the DC Bike Party, to record their outing and send me the data. Their April ride attracted 650 riders, but I got only 5 responses, and one of those I had to reject for not having timestamps. But four cyclists is good enough for an experiment to learn more about the process.

The next step was data munging. One participant sent me two separate GPX files, for before and after the break at the bar. It was easy enough to merge them by taking the trkpt tags from one file’s trkseg section and adding them to the other file’s trkseg section. Another participant’s GPX file wasn’t syncing up with the others. To correct it, I just manually edited the timestamps using a global search & replace for the hour field. continued » » »

Some of the historic locations didn’t have exact addresses, so the markers might not be exact. (Let me know if any location should be moved.) Hopefully this is a good way to discover historic sites near you.