Friday, January 30, 2009

Cincinnati Twitter Bots

I was inspired by the DIYcity challenge #1, but (selfishly) since I don't drive very much, I wasn't inspired enough to work directly on the TrafficTweet concept.

But in the introduction to the challenge they mention a twitter bot called shakeshack. The shakeshack bot has a very simple purpose in life and that is to retweet reports on how long the line is at a restaurant called the Shake Shack in NYC. This is useful for fans of that restaurant who want to know if it's worth stopping by. If the line is too long (since it is a popular joint) they can avoid it, and if the line is short, then they can make the trip. People who are interested in the info just follow shakeshack. People who are at shakeshack can tweet @ messages to it, and it will rewtweet their messages automatically to the rest.

So, today I had lunch at Chipotle on Fountain Square and I was thinking about how I could really use a similar service for knowing whether or not to walk all the way down there. Fountain Square Chipotle tends to have a pretty long line usually, but sometimes it's short, and on those days, I would want to visit.

So, I found this site called twittbot.com that lets you create a basic retweeting bot like the shakeshack bot and I made an account called fschipotlebot. (Maybe I should have gone with fschipotle. Oh well.) So, if you send an @ message to the bot, it will retweet it to its followers. Any information on line length, etc, is the goal here. Like today I would have tweeted "@fschipotlebot line is almost to the second doors. Looks like maybe a new employee in the burrito-construction team."

Anyway, if it gets used, that will be awesome, so check it out. Using the twittbot.com service was dead-simple (it took me about 30 minutes) and is all this bot really needed. In the future, I'd like to move onto making more complicated bots, that I will probably have to script and run on my own hosting. Let me know if you have any thoughts on other useful twitter bots!

Wednesday, January 21, 2009

Ubiquity Commands I've "created"

If you're not using Firefox 3 and Ubiquity, this post may not be all that useful to you, but go check them out and then come back here and this might make more sense.

If you are using Ubiquity, you may have noticed that a nice feature is that you can create your own commands from right within the browser. There is a nice tutorial on how to get started on this on the Mozilla site.

The absolute easiest way to create a new Ubiquity command is to make a command from an existing bookmarklet. There is a video here that explains this. Basically, you just copy and paste some code snippets and bam, there's your nifty new command.

Commands I've made using this method are:

The 'page2rss' command:

CmdUtils.makeBookmarkletCommand({
name: "Add to Page2RSS",
url:"javascript:location.href='http://page2rss.com?url='+encodeURIComponent(location.href);"
});

I've gotten so used to clicking the RSS icon in Firefox to subscribe to sites I like, that when I come to a site with no RSS feed I feel really frustrated. So I use this bookmarklet/command that sends the page through page2rss.com which in turn monitors the page for changes and creates a feed for it. Then I subscribe. :)

The 'HuffDuff it' command:

CmdUtils.makeBookmarkletCommand({
name: "HuffDuff It",
url:"javascript:var%20w=window.open('http://huffduffer.com/add?popup=true&page='+encodeURIComponent(location.href),'huffduff','scrollbars=1,status=0,resizable=1,location=0,toolbar=0,width=360,height=480');"
});

This allows me to submit things to my huffduffer.com queue. For more on how I use huffduffer.com, see my last post.

Similarly, one for the 'easylistener player':

CmdUtils.makeBookmarkletCommand({
name: "easylistener",
url: "javascript:void(window.open(%22http://webjay.org/flash/xspf_player?playlist_url=%22+encodeURIComponent(location.href),%22easylistener%22,%22menubar=no,location=no,resizable=yes,scrollbars=no,status=yes%22));"
});


I used to use Google Notebook heavily until I heard it was being pseudo-discontinued. Now I use Evernote, and thus an Evernote command:

CmdUtils.makeBookmarkletCommand({
name: "evernote this",
url: "javascript:(function(){EN_CLIP_HOST='http://www.evernote.com';try{var%20x=document.createElement('SCRIPT');x.type='text/javascript';x.src=EN_CLIP_HOST+'/public/bookmarkClipper.js?'+(new%20Date().getTime()/100000);document.getElementsByTagName('head')[0].appendChild(x);}catch(e){location.href=EN_CLIP_HOST+'/clip.action?url='+encodeURIComponent(location.href)+'&title='+encodeURIComponent(document.title);}})();"
});



This last one is one that I actually "wrote". I gradually figured out how the commands are normally written, and made this one mostly from scratch. It let's you type in a song name and it returns a list of songs from the tinysong.com service. I find it extremely useful when I want to hear a particular song. This makes it really easy to go from thinking about a song directly to listening to that song. Much less cumbersome than opening a new tab, browsing to the site, and typing it in there. The command could use a few improvements, but I'm still pretty happy with it.

CmdUtils.CreateCommand({
name: "tinysong",
takes: {"song to find": noun_arb_text},
preview: function( pblock, songToFind ) {
pblock.innerHTML = "song results...";
var baseUrl = 'http://tinysong.com/?';
var params = {s: songToFind.text, limit: 5 };
jQuery.get( baseUrl,
params,
function ( response ){
var results = eval( '(' + response + ')' );
pblock.innerHTML = results.Custom;
}
);
},
execute: function( songToFind ) {
var doc = Application.activeWindow.activeTab.document;
var url_dest = 'http://tinysong.com/?s='+songToFind.text+'&limit=10';
Application.activeWindow.open(Utils.url(url_dest));
}
});


It should be possible to copy and paste these directly into your Ubiquity command editor and they should work right away. Let me know if you try them out.

How I listen to mp3's online

Here's how I wrangle mp3s and podcasts on a day-to-day basis.

First, if I'm reading a page that has a link to some mp3's and I just want to listen to them, but I'm not sure if I really want to download them, I use something called the 'easylistener' bookmarklet. Here is the bookmarklet itself:

easylistener


Drag that link into your bookmarks in your browser and then when you're looking at a page that links to mp3 files, all you have to do is click it and a new window will open with an instance of the easylistener player playing the files. Super easy and super useful. Note that the easylistener will also take the url of an RSS feed of a podcast and play it, so it's useful for when you find a podcast and you want to decided whether or not to subscribe to it.

Next, if I really like something I download it for keeps, but if I want to share it with other people I use this great site called HuffDuffer.com. This site let's you build your own podcast of sorts out of mp3 files all across the web. You can manually submit the entries, but the thing I really, really like is the bookmarklet they made. Like with the easylistener bookmarklet, you just click this bookmark when you're looking at a page that links to an mp3 that you want to submit. The bookmarklet for huffduffer is here (you need to sign up for a huffduffer account to use it):

Huffduff it


The bookmarklet detects the mp3 file and some info from the page you're reading and pops up a form to let you fill in a description and tag the entry if you want. Then the mp3 is entered into your queue and becomes part of your feed that can be consumed as a blog, podcast, or even xspf. Huffduffer is really smart with tags and such too, so you can get a feed of anything tagged 'music', or 'cincinnati' for example. See the about page for more on this. On huffduffer, I'm dmenninger.

I subscribe to my own huffduffer podcast along with a couple other podcasts on my Nokia N80 and listen to them while I walk to and from work.

Tuesday, January 20, 2009

DIYcity Cincinnati

I was really inspired by this DIYcity concept when I first heard about it.

Twitter bots, aggregators, social software, mobile apps - we use these things more and more in our daily routines to make our lives better. But can we also use them to remake our cities altogether? How can these technologies be applied to transform urban spaces, changing them from the centralized, hard-coded things they are today into finely-tuned, fluid, user-operated systems that are efficient, sustainable and fit for life in the 21st century?

DIYcity is a place where people figure these things out by actually building and launching applications that address the problems around them.


I joined the site right away and started a page for Cincinnati. Still looking for other Cincinnatians to join.

One of the ideas on DIYcity is periodic "challenges" that people all over try and meet to solve some problem or create some tool to help people in a given city. The first challenge was to "build a Twitter bot that helps users avoid traffic and get where they're going faster." The second was "Conceive of a grassroots ridesharing system that can overcome the problems inherent in ridesharing and achieve critical mass." Both of those were oriented around transit, but future challenges may be oriented around other ideas.

There was a meetup last week of the New York and San Francisco groups, and they brainstormed a lot of ideas about both their particular cities and DIYcity in general. Some notes from these meetings are on the DIYcity Wiki. There is also a Google Group.

Some of the ideas will apply here in Cincinnati and others won't. For example, we don't have a subway system. Some of the ideas I'm motivated to work on would include: bus tracking, bike-sharing, bike-route mapping, place-based tool-sharing libraries, block parties, building histories, "what's open around here?", providing API's to government data, "who are my representatives?", "what is city council doing right now?", web-based 311, Electronics recycling, After-hours energy use in offices, wifi coverage, parking availability....

That's a long list, and some of the ideas are easier to do than others. I have some ideas on how to accomplish some of them quickly and others are more complex. I know that there are some things out there that I can accomplish by myself, so I'm going to start formalizing some project ideas and giving myself deadlines. I'll keep you informed on any progress I make. I'd love to have some help. Even just having some conversations with other people on this topic would be really valuable.

If you're at all interested in any of this stuff please let me know. Comment here, hit me up on twitter, or go to the DIYcity site and join in.

Tuesday, January 13, 2009

Plans for 2009

Basically, I think I'd like to reorient myself more towards doing stuff on a daily basis rather than just reading about stuff. I guess this could be something like a set of New Year's Resolutions. I'm putting this out here for two reasons. One is that if I say in public that I'm going to work on these things, then maybe I'll have some more motivation to actually do them. Second reason is that I'm sort of crying out for help. A lot of these projects would go better if I had someone else to work on them with or at least talk about them with. So here goes...

There are two basic tracks here and there is some overlap between the two. The first is the "offline" realm and the second is the "online" realm.

Making stuff:
cooking - been trying to really cook at least one real meal (not pizza rolls) every week
bread - been keeping one sourdough alive, want to start another one (or two)
beer - made beer once, want to try it again
cheese - not huge into dairy, but find cheese-making to be as fascinating as bread and beer making
gardening - want to get my hydroponics rig going again and also start a real outside garden if someone will let me use their land
local food - been a member of the cincilocavore mailing list and loving it; want to make more of that
bison - visit a bison farm and maybe get some bison meat; bison are so awesome
CSA - maybe join a CSA (or herdshare)
farmers' markets - visit these more regularly despite not being very close to one
recycling paper - found some super-easy instructions on how to do this online; want to try it
crafting/remaking - i am working on turning a busted ikea hamper into a folding table; needs more work
knitting/weaving - i'm fascinated by weaving and would love to give it a try in some spare time
composting - tried collecting kitchen scraps but it doesn't work too well if you don't have an outside compost place to take them
rapid prototyping - i want to try getting something made from ponoko or similar (also maybe papekura); i'm a big fan of everything bre pettis does

Making online stuff:
hereincincinnati blog - update the blog more frequently and let people know it exists
hereincincinnati wiki - keep it up-to-date and use the articles in blog posts; maybe reach out to others to help contribute
virtual vine st. - tried it with omeka, wasn't really that great; maybe try another cms or roll my own. also, may need to get approval from CMP
diycity - started a local "chapter"; need to find others to join in with me; do projects on something other than transit
cincymicrocosm - blog needs love; find ideas, blog them.
citycouncil2rss - i'd like to streamify the city council agendas and other stuff they do; needs a weekend of planning and doing; also maybe a team to help
wikipedia photo hunt - got started with the project, but ran into hangups; need to kick it up a notch or let it die
cincinnatiparking.info - figure out a way to get the data into the site "fresh" and automatic

I plan to write a post about each of the things on this list to flesh it out more. For now this is just a starting point and a public reminder to myself that I do have interesting problems to work on.

Monday, January 12, 2009

Transition: Cranley -> Harris

It's been reported today that Greg Harris has been selected to replace the seat vacated by John Cranley on City Council last week. The talk is that this will give him a significant advantage in November running as an incumbent. If I'm not mistaken Cranley himself was placed on council by a similar maneuver. He was appointed to fill Todd Portune's vacated seat in December of 2000. This process seems to work fairly well then for keeping the people the party wants in power. Honestly this rubs me the wrong way, despite the fact that I don't really have any other beef with Cranley or Harris.

I'm curious about how the committee positions are re-filled. I'm guessing Harris doesn't just take all of Cranely's spots. Cranley was Chair of the Finance Committe and was also on the Economic Development Committee, Law and Public Safety Commitee, and the Transportation & Infrastructure Sub-Committee. Does Harris have to start from scratch and wait to be appointed to a few committees? Anyone know which ones he's likely to join?

Updated Sidebar

It seems like every 6 months or so is a good time to update my sidebar. I've added a ton of local blogs to my reading list in recent months, so the blogroll has expanded quite a bit. In case you're reading this in a feed reader, here is what it looks like now: