Archive for the 'Boston' Category

GigBlastr - an experimental Pylons app on Google App Engine

On wednesday we had a big turnout at the monthly Boston Python Users Group meeting which was hosted for the first time at Betahouse, the co-working loft where Jazkarta has our office space. The topic for the evening was developing Python web apps for deploying to Google App Engine.Picture 2.png

The agenda for the evening…

1. Brian DeLacey gave a short intro to GAE supported by showing the video screencast of a Google engineer creating a simple guestbook application.

2. PK Shiu gave an intro to developing web applications with Django.

3. And then I gave a talk about building a simple Pylons app for Google App Engine. I had been working feverishly in the days preceding the meeting trying to get the app working, battling the unfamiliar syntax of a new web framework and bumping up against the limitations of GAE.

But before I dive into the technical details, a brief background on my motivation for building this app. At the last DevHouseBoston3 (also hosted at Betahouse), I paired up with Malthe Borch, (who was in town visiting from Copenhagen), to work on an idea called GigBlastr. The basic idea is to provide a tool for musicians who want to promote their gig on the plethora of event listing services (eventful, upcoming, facebook, twitter, etc) but don’t want to visit all of those sites individually.

So the GigBlastr service would provide a one-stop-shop service to “blast” the gig info to all those services just by filling out one form. This is similar to the service provided by Tubemogul for videos, and Ping.fm for status updates.

Malthe and I implemented some very basic functionality leveraging the content rules engine in Plone to take an event you post to your Plone site, and send that event information to Twitter and Eventful. Later, Lennart Regebro created a p4a.upcoming package to add support for posting the event info to Upcoming.org as well.

Well, this was all fine and dandy but who really wants to load up a big ol’ CMS just to post some events? So this idea simmered for about a year, and in the meantime Google App Engine was announced, and I began to think how cool it would be to deploy this app on GAE.

And thus began my hunt for an appropriate framework with which to at least build a proof-of-concept prototype. I discovered that one of GAE’s limitations is that they disallow the use of Python’s standard httplib and force you to use their own urlfetch. Well, this would mean re-writing all of the Python libraries for talking to the various APIs, since they all depend on httplib/urllib.

In response to the 372 people (at last count) who starred this issue as being really important to fix, Guido van Rossum (the inventor of Python and employee of Google) responded by saying that if someone wanted to write a urllib replacement on top of urlfetch, he would be happy to review it and try to get it added.

Well, not more than a week later, Ian Bicking (creator of Paste and SQLObject and developer at The Open Planning Project) came up with just that, an implementation of httplib on top of urlfetch.

It seemed as though the quickest way to try out the posting of event data using Ian’s patched httplib, was to follow his instructions for getting Pylons working on Google App Engine, since he had already got Pylons to work with his patched httplib.

Well, this proved to be more tricky than I had imagined, and I ran into one problem after another. At times I felt like a man walking in the desert and whenever I would see an oasis of water, it would be just a mirage. But thankfully, I was able to tap into Ian’s brain on the #pylons IRC channel and also talk to other Pylons folks, and eventually (just an hour before my presentation!), I was able to get it to work.

I can say that right now, this is bleeding edge stuff, and I wouldn’t recommend it unless you have a lot of patience, or unless Google decides to add Ian’s httplib and lift the 1000 file limit. This arbitrary 1000 file limit is one of the major obstacles in trying to get other Python-based web frameworks such as Zope 3 working on GAE, and has required many silly workarounds. Ian also comments on some of these limitations imposed by Google App Engine on his blog.

If you do want to check it out, I’ve posted the slides from my presentation (with cmd line examples) on slideshare.net.

Dave Fisher also recorded some video at the event but this clip is only about 5 min long.

For those of you who missed the Google I/O conference, you can watch the videos and view the slides from the presentations here.


Boston Media Makers podcast

While I’ve been listening to podcasts for several years, and attended both Podcamps in Boston, I haven’t really produced my own podcast yet. So one of my New Years resolutions is to record and publish interviews, music shows and other things that I find interesting on a regular basis. I have over 40 DV tapes of raw video material from various conferences and sprints that I’ve attended, so that alone should keep me pretty busy just sifting through the good stuff from the unusable stuff.

Yesterday I attended another inspiring Boston Media Makers meetup at the Sweet Finnish bakery in Jamaica Plain. The format is we go around the room and everyone introduces themselves and can optionally show-n-tell about something. My show-n-tell was the Apogee Duet, a firewire digital audio interface for the Mac, that I just purchased last week on Dave Fisher’s recommendation. I stayed up way past my bedtime on friday playing with it, and will write more about my impressions after I’ve done more serious recording with it. So far I’ve been really pleased with the sound quality and ease-of-use. Steve snapped a few photos of the Duet at the meeting.

 

One thing that I still need to purchase is a decent microphone, since the only one I have is a cheapo Radio Shack mic that I bought when I was in high school to record a band demo. I asked the Boston Media Makers group what they would recommend, and Adam Weiss (who was sitting next to me) pulled out an Audio Technica ATM 10A which is what he uses for podcasting. I asked him if I could use it to record the meeting into Garageband, and he was kind enough to oblige. So thanks to Adam, here’s a partial recording from the meeting. Gotta love these portable recording studios!

Video thumbnail. Click to play
Click To Play

Also present at the meeting was filmmaker and video expert David Tamés who shared some microphone recommendations as well. He posted an excellent summary of the meeting to his blog where he discusses various microphones (incl photos!), so if you’re interested, I invite you to check out his site, which is a goldmine of other very interesting articles about video editing / equipment / new media.This was only the second time I attended the Boston Media Makers, but I felt strangely familiar and already connected with the other participants. Maybe it’s because many of us befriended each other on Twitter so in the month between each meeting, we are still following what each other is doing.Or maybe it’s because we all share a common passion to create and share what we know with others. It’s truly a fascinating mix of individuals - artists, filmmakers, musicians, actors, developers, entrepreneurs, PR people, etc. I think this cross-pollination that occurs when you bring creative people into the same room is electrifying. As David says, the meetings are i3 (interesting, inspiring, and informative). Kudos to Steve Garfield for putting this together! I look forward to the next meeting with anticipation.


Loss of FOSSCamp

How did I miss the FOSSCamp in October 2007? I attended both BarCamps and PodCamps in Boston, but somehow this one did not get on my radar screen. There were many attendees from Ubuntu (including Mr. Ubuntu himself - Mark Shuttleworth!), Red Hat, KDE, Novell, etc.  but strangely there is no record of the schedule or materials from the unconference. Although I did find a snapshot of the handwritten schedule board here and here. Oh well, consider this blog post a reminder to attend the next one, assuming that it’s repeated next year.  


New Discount Bus Service to New York City With WiFi

Now there’s an alternative to the Greyhound and Fung Wah bus service between Boston and New York City. Vamoose offers free complimentary WiFi service on the bus!  Limoliner also has WiFi access, but Vamoose is cheaper at $22 one way. They also have guaranteed seating when you call in advance. found via Boston Knows

Since the iPhone still doesn’t let you share it’s EDGE connection with a laptop computer, having WiFi on the bus would be very handy. And even if I were to hack my iPhone share its EDGE connection to get Internet on my Macbook, it would still be much slower than WiFi.

I’ve been meaning to get down to NYC to visit friends, and now I have one more reason to make the trip. I can be connected during the 8-9 hrs spent on the bus!

Blogged with Flock

Tags:


International Software Freedom Day

Today I’m going down to check out the Boston Software Freedom Day hosted by the Free Software Foundation (which is headquartered in Boston, and their site runs Plone!), BinaryFreedom and the Boston Free Culture.

This event is part of a larger worldwide coordinated Software Freedom Day, whereby activists from around the world join together to promote free software. Over 330 teams from over 90 countries are participating!

Software Freedom Day is a global, grassroots effort to educate the public about the importance of software freedom and the virtues and availability of Free and Open Source Software.

I’m particularly looking forward to hear the talk about Drupal for non-profits. While I’m a staunch Plone advocate, I often get asked the question, so why should I use Plone instead of Drupal? I know that Drupal is a very capable CMS, but I’m curious to see what the sales proposition is to a non-profit audience.

They are also going to have people on hand to assist in installing Rockbox, an open firmware for portable music players. Maybe I’ll bring my aging iPod and dump Apple’s firmware in favor of Rockbox. It does look quite featureful.


Building a live music calendar

While reading from Derek Siver’s O’Reilly blog, I came across Mark Hedlund’s talk Entrepreneuring for Geeks which described how the more technically minded can move into making companies of our own. He started out the talk with a set of proverbs.

The three proverbs that struck close to home for me were:

  • pay attention to the idea that won’t leave you alone.
  • build what you know
  • momentum builds on itself

Pay attention to the idea that won’t leave you alone

Several events have occurred in the past two weeks which have echoed these words in my mind.

During the BarCampBoston I spoke with other geek entrepreneurs about the problem of finding live music, and the guys from tourb.us told me about how they are scraping venue’s sites to get concert listings. They are providing a service that answers a particular need - when is my favorite band coming to town?

This triggered a memory of an exchange I had more than a year ago with trombonist Phil Wilson at the Jazz Journalists Association panel at Schullers Jazz Club. Jon Hammond organized a panel discussion on the topic of Boston as a Launching Pad for a Jazz Career. I asked the panel what kind of online tools or services could be provided to re-ignite the jazz scene in Boston. And Phil said that he would like to see a service that would notify him when a musician was going to be performing.

Then at the last Python meetup, Dan Milstein raved about the python scraping library BeautifulSoup and described how capable it was at scraping baseball scores off a website. I played around with BeautifulSoup awhile ago, but never actually built anything using it.

Scratch an itch

“Build what you know” affirms that the most basic advice of idea generation is to scratch an itch you have yourself. Now I have an itch to scratch. I love going out to hear live music, especially jazz - but there is no single site that aggregates the concert listings. There are several sites I must visit:

  • MyRootdown Improv Music Calendar is a great site built by graphic designer and improv enthusiast Shawn dos Santo. Shawn is doing a great job of posting events he hears about, but there’s no way for people to post their own gigs
  • The WGBH Jazz Calendar is good but again, it doesn’t have an RSS/iCal feed so I have to manually visit the site everytime I want to see who’s playing.
  • Each and every venue has their own concert listing page (Scullers, Regattabar, Wallys, Berklee, Reel Bar, etc.) and of course, none of them have RSS or iCal feeds.
  • I’m sure there are others that I don’t know about

The basic problem here is that there is a fragmentation of information. Since none of the sites publish their event listings in any sort of structured way (RSS, iCal, hCalendar), it’s tedious to monitor these listings and thus hard to stay on top of what’s going on in the Boston jazz scene.

The “Pull” method

Immediately after hearing Phil’s suggestion, my technical mind started churning as I thought about generating dynamic RSS feeds based on artist or band name, and then using something like Feedblitz to turn those RSS feeds into email notifcations. As much as us geeks would like to think it’s true, the average person still has no idea what an RSS feed is or how to use it. Email is still the lowest common denominator.

But the question still remains how to get the data into a system in the first place. It is not likely one can expect musicians to enter their gig listings themselves. And here is where Beautiful Soup comes in - if I scrape the event listing sites, I can put the data into a system, extract the metadata (band, location, date/time, cost, etc.) and syndicate these concert listings as RSS feeds and subsequently email notifications.

There is even a python script called Scrape ‘n’ Feed which will automatically turn a page scraped with BeautifulSoup into an RSS feed. This is why I love python - there is almost always a library that does exactly what you want. And there is also a python script to convert iCal into RSS.

The “Push” method

Now suppose for a moment that one could get musicians to enter their gigs into some sort of system, and what if you could offer a service, let’s call it GigBlast, which would push their gig information out to a bunch of event listing services: WGBH, eventful.com, upcoming.org, boston.craigslist.org, meetup.com, etc. using the API provided by those services or in the case of WGBH which has no API, use python libraries such as clientform to submit the form.

This would make it easier for musicians to get the word out about their gigs, give fans a tool to be informed when these musicians are performing, and ultimately get more people to go out to hear music which would create more demand for live music. Maybe I’m an idealist to think that it will have such far reaching effects, but even if no one else uses this service, at least I’ll be scratching my itch!

Momentum builds

Stay tuned for more thoughts on publishing events to the web using Apple’s iCal. This will simplify the data entry process even more as musicians can simply add their event info to iCal, and in the background it’s it’s transparently uploaded to their website and automatically pushed out to the event listing services.

I also want to explore the use of microformats, such as hCalendar, which I think have a better chance of being adopted among musicians, venues and bloggers since it is fairly easy to implement - just a few changes to the HTML template. Pages formatted with hCalendar are a breeze to scrape using Technorati’s events feed service and can be searched using Technorati’s experimental Event Search tool.

Well, after many days of sideways rain, the sun has finally come out in Boston, so I’m going for a jog in the Fens.

Technorati Tags: , , , , , ,