The Voice of Fenway App

July 1, 2011

I’m the technology guy for my town’s Little League, so I get to do things like the website, player database, email distribution list stuff etc.  (Google Sites, Google Spreadsheets and Mail Chimp if you’re wondering… all done with a $0 budget)

Last week I got tapped to fix the PA system for the tournament season.  The home team is responsible for announcing the teams, players and coaches and playing the national anthem.

I decided I wasn’t going to just buy another CD player (seems that was the plan the last few years).  Instead I donated an old iPod with just the Anthem on it (I recommend the US Coast Guard Band rendition.)  I also replaced the “strip & twist” wiring with soldered and shrink wrapped connections.

Then I got an idea – I emailed Carl Beane, the PA Announcer for Fenway Park and asked him about announcing.  I dropped my uncle’s name because he had mentioned they were friends.

Mr. Beane responded almost immediately and was very excited to help out of tribute to his friendship with my uncle.  Turns out the drive to our field was a bit too far (2hrs each way) so we decided he could record the rosters.  I think he’s done this a few times before – because I emailed him the rosters and he emailed me back a collection of MP3s for each team with each player’s name announced separately.

Now the hard part – how to use these in the booth during the game?  I thought it’d be a simple matter of setting up a few play lists and just hitting PLAY for each name.  The big roadblock was that none of the popular music playing apps on the iPod/iPad/Android Phones had this feature to “PLAY then STOP.”  So in practice I couldn’t get it to consistently play just one file – I would almost always stop too early or play a piece of the next MP3.

Enter the “Sound Board” technology.  I’ve seen a ton of these – they are basically a collection of buttons on a screen that play a single sound when you play them.  I found a good one for Android called Custom Soundboard and was able to create a sound board for each team.  I t could not have worked any better.  I never played the wrong sound, and it always sounded perfect.  Creating the soundboards was intuitive and not too many steps.

My only regret was not having better music lined up for between the innings.  I had a play list setup on the iPod but I didn’t want to plug/unplud devices during the game.  I tried moving the files from the iPod to the droid – but the format wasn’t friendly.

Bottom line – I was open to using either an iPad, and iPod or the android and the android solution won hands down.  I was also very happy I remembered to go into Airplane mode before the game… wouldn’t want to take a call over the PA system.

You can check out the sounds Mr. Beane recorded for me on the league website here: Voice of Fenway Park recordings.

Mr. Beane provides this and similar services for a pretty small fee if you’d like his voice somewhere in your life.  Weddings, corporate events etc.  Go to Carl Beane’s official website to find his email etc.  If you’d like to hear him live – go to Fenway Park.

I think the kids liked it – I know a few of the coaches got a kick out of it – and nobody had to hear my stupid voice.  Win-win.  OH yeah, our team won the game… last inning… tie run on 3rd.  I did NOT play dirty water at the end.  I played Tweezer Reprise instead.


Give Camp New England 2011

May 4, 2011

I spent last weekend doing coding as a charity for non-profits as a part of New England Give Camp 2011.  The short version: 100+ volunteer developers get together and help 20+ non profits with all their technology/website needs for an entire weekend. 

The longer version of the story details how little sleep happens, how much amazing work can get done in a single weekend and learning where the tires really hit the pavement. That story also has to showcase the people who put this thing together and worked so hard before the event to make it happen.  The things the sponsors provided were exactly what was needed.  The venue (Microsoft’s 1 Memorial Drive office) was also a big piece of the story.  100+ very true uber-geeks with laptops and the WiFi was 100% on and super fast the entire weekend.

I didn’t know the event existed until my friend Chris from VT asked if he could spend the night.  Serendipitously my wife and kids were out of town for the weekend and my plans involved mostly lawn work.  So I contacted some other friends I found out were going and got myself signed up.

My team created a companion pet memorial site for the Maine Society for the Protection of Animals.  We also did some training on how they could use their drupal based website to publish new articles without burdening their already over-worked web-master, freeing him up to do more creative/compelling things with their site. I’m a little bummed we didn’t “launch” the additions to the site over the weekend, but we did get it running on their development server, and I’m confident they’ll be pushing live at which point I’ll update this post.

The end of the weekend involves each team presenting what they’ve done and it became very clear how much work really happened.  The whole thing was an eye opener on many levels.

I’ll do it again if the family commitments allow.


CSS style lost on validation in ASP.NET, ie only

April 14, 2011

In the process of upgrading the style of an existing ASP.NET web application I incorporated the 960.gs grid system style sheets. Along the way I created a single style sheet with 4 @import directives, so I didn’t have this list of CSS files on every page, just one <link href…> tag that included a single CSS file with the @imports.
During testing it was uncovered that while using the app in IE 7, when a validator failed and generated a message (like “Bad email address” etc) during the postback process a large majority of the style on the page would be absent – making it look pretty bad.
Turns out the problem is the @import directives not being obeyed during the 2nd rendering of the page.
I moved all the CSS into a single file (which will help with performance in the long run) and the problem goes away.


Plastic Windows in the Jeep

March 31, 2011

Meguiars Plastic Polish

Perfect product for fixing scratched/cloudy plastic windows on a Jeep Wrangler. Probably work awesome on plastic boat windows etc as well. I might try it on my sunglasses and other plastic screens like cell phones and GPS as well. But I know for sure it works perfectly for plastic Jeep Windows. Get some from this link – no affiliation to me or anything.
It comes as two bottles, you polish with the 17, then with the 10 and the plastic is as clear as the day you got it… in my case clearer.  Pretty sure I have enough in the two small bottles to do all the plastic on the jeep several times.


Negativity Measurement

March 30, 2011

I’d like to construct a method to rate twitter feeds, blogs, websites, podcasts, facebook feeds etc on how negative they are.  It reminds me of the mention I heard that facebook should have a “get over it” button.  The reason is so I can filter my current subscription streams and remove some of the sources that are too negative – or make it so I can read these feeds during lunch, when I should be getting on to something interesting.  The majority of the stuff coming from these vectors is useless, and often it’s contrived and misleading.  It’s the whole FUD (Fear + Uncertain + Doubt) response people have and feel the need to spread that I’m getting frustrated with.

One big problem with this idea is that I’d never have seen this post had such a filter been on my blog.


Podcast consumption

March 29, 2011

Listened to a couple podcasts recently using Google Listen on my Android phone. I am NOT at all satisfied with this app. The biggest flaw is when I start it up I end up spending time trying to find either the latest episode of This Week in Tech, or figuring out how to continue playing the episode I was listening to. So I’m on a quest to either get google listen to work the way I want – or to find another app that can replace it. I’ll update this post as I progress.

Solutions reviewed:

Solution Result Notes
Google Listen Fail Doesn’t correctly show “recently played” and it’s very hard to navigate to the latest episode of a subscription.
Also restarts podcast playing in middle of episode.
WinAmp Fail This is marketed as a “synch with your desktop” solution, but the “Podcast Synch” tab is disabled/greyed out for my DroidX – a known/discussed problem
TWiT.tv by Mediafly Good then Fail Custom App for the Twit.TV podcasts, worked the first weeke great.  2nd week it failed to download episodes automatically and last week it started crashing on launch
Beyond Pod Awesome, then suck, then Awesome for a price Downloaded it and it worked great… but then the free trial ran out and I had to manually update my podcasts which sucked. I finally broke down and paid the $7 for it and now like it very much

Crowd Lights

December 6, 2010

I was at a Phish concert this October and was amazed at how many little screens I could see – mostly taking pictures or video of the band, but also people checking the set list or texting their friends that they were at the concert.  I realized that I could control these screens with an app – and how kewl it would be to synchronize some sort of a light show utilizing each screen as if it was a single pixel on a huge display.

I started work on the app the next day – and quickly realized there were a number of ways to pull it off.  Balancing how much time I had between putting the kids to bed and my own head hitting the keyboard vs. when I wanted it to be done drove a lot of decisions.  How much money I wanted to put into the project also forced me to build it a specific way.  In the end the architecture of the final application is as complex as it needs to be, but no more.

I posted a request on facebook looking for beta testers and had about a dozen friends and family lined up to play with an early version of the app.  Distributing it to them without publishing it on the google app market was problematic,  but eventually I had them all reporting back that the app worked.

A month after the inception of the idea it was done – but I needed to obfuscate the code, that is: Jumble it up so it couldn’t be downloaded and reverse engineered too easily.  This took way longer than I wanted it to because I had to learn a few new technologies I’d never used before.

This final hurdle surmounted, I released the application on Sunday.  You can install it on your droid with this link to the market page.

The iPhone version should be done in a few weeks.  Yet another set of new technologies to learn, but building the app the same way (with the exact same light show being displayed) will be easy.  *UDPATE* The iPhone version has gone live on the App Store.

Here’s a video demonstrating the final product: