Saying Goodbye to TweetMy311

Sometimes in order to move forward into the future, you need to let go of things from the past.

This weekend, I’m officially decommissioning the TweetMy311 project, an Open311 project I launched over a year ago. The application is no longer active, and the TweetMy311 twitter account won’t respond to any more mentions.

The process of building and launching this application was a great learning experience for me. I got to eat my own dogfood in a sense – I had previously developed some libraries for using the Open311 API and I got a chance to use them in this project – always a satisfying thing.

The original idea behind TweetMy311 isn’t going away. In fact, it’s the impetus for several other things I’m working on, including the Mural Art Mapper project that is active currently in San Francisco and soon will be in Baltimore.

Ultimately, however, usage of the service never really took off. The goal of this project was stated plainly on the project website:

“… to learn more about building Open311 applications, and to share that information with developers that want to improve their communities by participating in the Open311 project, or to build Open311 applications.”

I’ve certainly had the chance to realize this goal.

I’ve worked with developers at Code for America this Summer (as part of the Google Summer of Code project) to develop PHP libraries for a number of civic APIs, including the newest version of the Open311 API.

I’ve developed libraries for the Open311 API in other languages (e.g., C#, Node.js) and I’m currently working on a speech-enabled address capture application that can be incorporated into 311 phone apps.

It is also deeply gratifying that TweetMy311 was able to inspire other services – like MarkASpot – to incorporate Twitter into their reporting services.

The TweetMy311 project was a great opportunity for me to be active in a civic hacking space that I care about and that I want to contribute to.

But the time to wind the project down has now arrived. Thanks to all of those that have supported the project in the past, and thanks to the good folks at OpenPlans for their leadership in moving the Open311 standard forward.

Onward, upward.

Experiments in Open Data: Baltimore Edition

A lot of my open gov energy of late has been focused on replicating a technique pioneered by Max Ogden (creator of PDXAPI) to convert geographic information in shapefile format into an easy to use format for developers.

Specifically, Max has pioneered a technique for converting shapefiles into documents in an instance of GeoCouch (the geographic -enabled version of CouchDB).

I was thrilled recently to come across some data for the City of Baltimore and since I know there are some open government developments in the works there, I decided to put together a quick screencast showing how open data – when provided in an easily used format – can form the basis for some pretty useful civic applications.

The screencast below walks through a quick demonstration of an application I wrote in PHP to run on the Tropo platform – it currently supports SMS, IM and Twitter use.

Just send an address in the City of Baltimore to one of the following user accounts along with a hashtag for the type of location you are looking for:

  • SMS: (410) 205-4503
  • Jabber / Gtalk: bmorelocal@tropo.im
  • Twitter: @baltimoreAPI

This demo application interacts with a GeoCouch instance I have running in Amazon EC2 – you can take a look at the data I populated it with by going to baltapi.com and accessing the standard CouchDB user interface. I haven’t really locked this instance down all that tight, but there really isn’t anything in it that I can’t replace.

Locate places in Baltimore via SMS

Besides, one of the nice things about this technique is how easy it is to convert data from shapefile format and populate a GeoCouch instance. Hopefully others with GIS datasets will look at this approach as a viable one for providing data to developers. (If anyone has some shapefiles for the City of Baltimore and you want to share them, let me know and I’ll load them into baltapi.com.

There are a number of people in Baltimore pushing for an open data program from their city government, and I have heard that there are some really cool things in the pipeline. I can’t wait to see how things develop there, and I want to do anything I can to help.

Hopefully, this simple demo will be useful in illustrating both the ease with which data can be shared with developers and the potential benefit that applications built on top of open data can hold for municipalities.

UPDATE (4/18/2011): I’ve actually replicated all of the Baltimore data from the EC2 instance discussed in this blog post to the new Iris Couch instance. Iris Couch is by far the easiest way to get started using CouchDB, and Couch’s replication feature makes it easy to move data into an Iris Couch instance.

Tapping into Open Government

This past weekend, I had the pleasure of hanging out with a bunch of fellow geeks for the better part of a day in Philly at Neomind Labs to work on an open government / open data project as part of the Open Data Hackathon.

Hacking on Open Data

Though most of us had just met, we were able to quickly identify a project that we all thought was worth spending some time on – a more user friendly way of submitting reports of potholes to the City of Philadelphia. (The current interface for doing this is not especially user friendly.)

Once we had decided what we wanted to do, we got down to talking about how to do it – after some coffee and doughnuts (graciously supplied by the guys at Neomind) we began a productive brainstorming session that included lots of talk about the Twitter API, CouchDB, Sinatra and Heroku. Shortly thereafter, we committed some tasks to a large whiteboard in the office and began working on our project.

As the day progressed, I couldn’t help but be struck by how much untapped potential there is in the developer community for open government initiatives. There is so much potential benefit for municipalities if they would just reach out to the developers that live there and engage them to help solve problems and make their communities better.

There are lots of smart, civic-minded people out there that want to help. They’re just waiting to be asked. Sometimes, like this past weekend, an opportunity comes around that provides a glimpse of how significant this untapped potential.
Twitter
The guys at Neomind are a perfect example of this.

The City of Philadelphia is working towards releasing open data sets and engaging developers to use them to build civic apps. But right now opportunities to build open data apps are not always that obvious. (There is a lot of progress being made on this front and I hope to blog more about the good work being done by Philadelphia very soon.)

But if developers are coming together to build open government apps in cities that aren’t doing all that much yet with open data or developer outreach – like they did this past weekend – imagine what will happen when they do.

Cities like Philadelphia and Baltimore that are moving rapidly toward releasing open government data sets will reap significant benefits as developers in those cities start to use them to build useful applications.

These cities stand to reap the benefits of all of the civic-minded geeks that are out there waiting to be engaged to help make their communities better.

Building an Open311 Application

Earlier this year, I had an idea to build a Twitter application that would allow a citizen to start a 311 service request with their city.

At the time, there was no way to build such an application as no municipality had yet adopted a 311 API that would support it (although the District of Columbia did have a 311 API in place, it did not – at the time – support the type of application I envisioned).

That changed recently, when San Francisco announced the deployment of their Open311 API. I quickly requested an API key and began trying to turn my idea into reality.

My idea resulted in an application that I soft launched last week. TweetMy311 is now live and can be used in the City/County of San Francisco to report 311 service requests. The project website has a detailed description of how it works, but its very close to my original idea.
TweetMy311
More good news on the Open311 front came recently when it was announced that San Francisco and the District of Columbia had come to agreement on a shared Open311 standard. This means that apps built to work with the San Francisco 311 API will also work with the 311 API in Washington DC. I’m working on enabling TweetMy311 for Washington DC now, and hope to have this service live there in a few weeks.

Ultimately, I hope people use my application, that they like it, and that it makes it easier to report an issue to their municipality. I did, however, have some other motives in developing this application that I think are equally important.

Are You Experienced?

Since 311 APIs are rare, and (right now) applications that use 311 APIs are also rare, I think there is value in being able to capture the experience of developing an Open311 application from scratch. This information can provide tremendous value to the governments that deploy 311 APIs (what works, what doesn’t, what can be improved, etc.), and for developers thinking about building an Open311 application.

I hope to use TweetMy311 to provide feedback to governments that deploy 311 APIs (and to those thinking about deploying one) so that they can get a sense of how the experience works from a developer that has used one. At the end of the day the ease of use of an API, the quality of documentation, the ability to test applications in a meaningful way and a number of other factors will determine how many developers decide to take the step and become a “civic coder” by building an Open311 application.

Getting to Open

For me, the use of open source technologies in TweetMy311 was important. This project provided a great opportunities to learn more about a technology that I have become fascinated with of late – CouchDB. TweetMy311 is a NoSQL application that uses CouchDB at its core. It runs on Ubuntu Linux with Apache and was built with the PHP scripting language (I guess that makes it the CLAP stack – CouchDB, Linux, Apache, PHP)

Building with open source technologies was important because I hope to be able to share the code I have developed with interested governments that want to learn how an Open311 application is put together. I also believe it’s important because I think the Open311 initiative can be a great mechanism for encouraging the use of open source technologies.

Leading up to this project, I developed a small PHP library for interacting with the San Francisco Open311 API. I make use of this library in TweetMy311 and any other developer that wants to use it in their project is free to do so. I plan on branching this library soon so that it can work with the new version of the Open311 standard.

Give it a twhirl

So if you live in San Francisco and you want to give TweetMy311 a twhirl, check out the description on the project website. I’d appreciate any feedback – positive or negative – because ultimately I think it will make the project better.

I had a great experience developing TweetMy311, and I learned a lot. I’m looking forward to sharing my experience with interested governments and other developers.

Twitter, Facebook, Geotagging and 311

Several weeks back, I wrote a quick post about the new locational functionality being rolled out in Twitter. Now that this new functionality is being supported by more and more Twitter clients, I think its time for an object lesson in how Twitter’s new locational feature (and soon Facebook’s) can be used to engage citizens to submit 311 service requests.

Consider the following Tweet (sent using TweetDeck for iPhone):

311 Service Request Tweet

Here is the data behind this Tweet in XML format, courtesy of the Twitter API:

Does this Tweet contain enough information to start a 311 Service request (and by “start” I mean via some application logic that automatically parses 311 tweets and requires no human intervention)?

It has a hashtag describing the nature of the request (#pothole), a URL to a picture of the offending pothole (admittedly a pretty wimpy one) and it also has the lat/long of the location where I took the picture. All together, it took me about 15-20 seconds to take the photo, geotag the Tweet and compose the message.

The Twitter API provides some background information on me, in the event that the government handling this kind of a service request wants or needs it. If there was really a need for more, it wouldn’t be all that hard to build a Twitter BOT to interact with the person Tweeting the service request and get any additional information that was required.

One of the primary benefits for governments from deploying a 311 API, or working with companies like CitySourced or SeeClickFix is that it can help engage (and empower) citizens to report service requests. If it’s quick, easy and convenient to report 311 requests, people will do it and they are more likely to be satisfied with the experience (something that doesn’t always happen when citizens interact with government).

The new locational feature of Twitter (and soon of Facebook) will provide governments with a very effective way of empowering citizens to report 311 service requests.

It will be interesting to see how many of the them leverage this as part of their 311 services.

Command Line GeoTwitter

A few months back I wrote a quick post about tweeting from the command line. With the recent announcement that Twitter’s location feature is starting to go live, I decided to revisit this idea, with an eye toward adding locational information.

(I am, at heart, a cheapskate – I could have bought one of the existing Twitter clients that support locational Tweets but I really just want to play around with this new feature for now. The command line is free, baby!)

Twitter’s API methods now support adding geographic coordinates with a status update. Sending out a GeoTweet using the command line is easy (note, this example assumes you know the lat/long of the location you want to associate with your Tweet).

Open up your favorite editor and drop the following into it:

curl -s -u user:password -d status="$1" -d lat="$2" -d long="$3" http://twitter.com/statuses/update.xml > /dev/null

Save the file and make sure it is executable (chmod u+x fileName). You can execute this file at the command line like this:

$ ./fileName "Testing twitter geolocation feature" "+39.754571" "-75.571985"

When you examine the properties of this tweet, you will see that it now has geographic information associated with it:

<geo xmlns:georss="http://www.georss.org/georss">
  <georss :point>39.754571 -75.571985</georss>
</geo>

How cool is that!

As more Twitter applications (and the Twitter website itself) roll out support for this new feature, a host of new Gov 2.0 potential is going to be unlocked. I think this will have huge implications for services like 311, where location is critical to service requests.

Municipalities like New York City and San Francisco that have already incorporated Twitter into their 311 service will have a big head start in this regard.

Lots of Gov 2.0 Potential in Twitter Geolocation

So the new Twitter hotness will be the ability to add locational data to individual Tweets – not sure on exactly when this new feature will go live, but it will require someone wishing to add locational data to their tweets to:

  1. Explicitly opt in to this feature by changing their Twitter account settings.
  2. Utilize a Twitter client that is location aware, and can add lat/long to specific Tweets.

Twitter currently has some limited geolocation support that utilizes the account-level location field, but there is no validation on what is entered, so it is not terribly reliable.
Twitter
The imminent support for “geo-Tweets” holds enormous potential for governments if you think of Twitter as another communications channel that citizens can use to interact with government. (Clearly, I do.)

Many government services are tied to a specific location – parks, libraries, motor vehicle offices, unemployment offices, etc. – and there are lots of good examples of information that governments generate that are location-specific – road closures and construction delays, pollution sites, crime incidents, etc.

As the application I built to query legislative information from the NY Senate Open Leg API demonstrates, Twitter can be used as a power application interface. It’s easy to use, available to people on a variety of devices and relatively easy for governments to set up. With the addition of locational data, Twitter will become an even more powerful interface for citizens to use when interacting with Governments.

Now, if a citizen wants to use Twitter to find out the hours of operations of libraries in their city or town, they can get an answer that is specifically tailored to their location – they can get a response back from a government application telling them the hours (and the address) of the library closest to their current location.

Governments need to think about Twitter as an interface to their services and applications – one that will soon be able to support location-specific data and responses. There is a lot of potential here for those interested in advancing Gov 2.0.

Identi.ca Looking Pretty Good!

For those government agencies using Twitter for notification, 311 and other services I’ll bet its been a tough morning.

They may want to have a look at Identi.ca – a competing (albeit much smaller) micro-blogging site that even piggybacks on Twitter’s API. I’ve said before that government’s need to spread the love among different social networking sites.

I’m guessing that today there are more people who will be receptive to such advice…

Ten Two Ways To Make Twitter Useful For Government

eWeek Europe has an article up listing 10 ways to make Twitter useful for governments.

The time is ripe for such thinking – more and more governments are using Twitter to interact with citizens, and its fitting that governments spend some time thinking about how this tool can be used most effectively. Still, the eWeek Europe article (and some other recent musing on this subject) have left me feeling that a lot of people (both inside and outside of government) are missing the point.

In response, I offer my own list – 2 important steps to make Twitter more useful for governments:

  1. Clearly articulate the goal(s) your agency or government is trying to achieve by using Twitter. Link these goals directly back to the stated mission or objectives of your government agency. If your agency’s mission is to fight crime, or protect the environment, or collect taxes clearly state how using Twitter will help you do this. Say these things out loud. Write them down. Distribute them to employees and policy makers.
  2. Develop clear and quantifiable metrics that will be used to evaluate your progress toward the goals listed in step 1. At least one metric should be developed for each goal. The same metric should not be used for more than one goal. The metrics used should measure outcomes (enhanced customer satisfaction), not inputs (number of DM’s responded to). Say these things out loud. Write them down. Distribute them to employees and policy makers.

Don’t get me wrong, I am a huge fan of governments using Twitter – but use it for the right reasons. Governments using Twitter (or any other technology for that matter) because it is currently in high fashion is just silly.

If a government or agency can not follow the steps listed above then using Twitter should rank fairly low on the scale of importance.