Who did it better? Sometimes Good Guys Don’t Wear White

In 1966, the Standells released, “Sometimes  Good Guys Don’t Wear White“. The single made it to #43 on the Billboard Hot 100 chart. The album it came from, Dirty Water, was recorded in just two days and didn’t chart as well as the singles (it got to #52 on the Pop albums chart). The first song featured from it, the aptly named Dirty Water, got up to #11 on Billboard but not for long.

Here then is the original version of The Standells’ Sometimes Good Guys Don’t Wear White:

Flash forward two or three years and then this gem was recorded. Las Dilly Sisters were a sort of novelty act, two very young Mexican sisters, and recorded just one 45 single, that I can find at least, and this song was chosen as the B-Side. I really like this one.

Flying through time once again, we come to the end of the road for DC’s hardcore favorites, Minor Threat. Their final official recording while they were more-or-less still together was the nice little 45, Salad Days. This song was second on the b-side.

Well, there you go. Comment on which version you like best, eh. There are, of course, tons of other covers online you could check out too.


: )



Who Did it Better? Kick Out the Jams

Wayne Kramer and MC5 are known as a proto-punk band, since they performed in the late 1960’s / early 70’s and were young, angry and wrote fast loud songs for the most part.  According to one interview, “In the old days … they used to leap off the stage and blow a saxophone in people’s ears, or throw money at the audience – anything to get a reaction.” which sounds a lot like a lot of later punk and post-punk bands for sure.

This song was not exactly the angry anti-establishment tirade it seems though, according to Kramer:

People said “oh wow, ‘kick out the jams’ means break down restrictions” etc., and it made good copy, but when we wrote it we didn’t have that in mind. We first used the phrase when we were the house band at a ballroom in Detroit, and we played there every week with another band from the area. […] We got in the habit, being the sort of punks we are, of screaming at them to get off the stage, to kick out the jams, meaning stop jamming. We were saying it all the time and it became a sort of esoteric phrase. Now, I think people can get what they like out of it; that’s one of the good things about rock and roll.

So many covers of this song have been recorded or played live over the years, which makes sense considering its status and the respect later generations paid to MC5. Rockers of all sorts still regard this as an ideal: A perfect statement of rock and roll’s energy, frustration, whatever you want to call it.

I’ve chosen five covers here for us to compare today so let’s dig in.

Here’s the best video I could find with the original LP version  – 1969, MC5’s first (live) record:

Blue Oyster Cult liked the song so much they included it on their 1978 album, Some Enchanted Evening. This version is a bit more hard-rock, less punk. No MFers in the intro.

Here’s a cover by Bad Brains with Henry Rollins singing, from the ‘Pump Up The Volume’ 1990 movie soundtrack, since punkers should be able to do this better, right? I like that Henry brought the MFers in the intro back.

The Presidents of the United States of America included this somewhat modified  version of the song on their 1995 self-title debut LP. Nice and clean 90’s alternative rock sound here.

Rage Against the Machine released this version on their Renegades album in 2000. What can you say: They rage even though this is slower. Somehow, that makes it even heavier than the original. Love Tom Morello’s sounds in the solo with this one.


Well, this is a tough one. I love the song and love pretty much every cover I’ve heard.  If I have to choose, I suppose I’d go with the original, since, well, it was the first and defined the genre.

And as an added bonus, here’s some guy named Wayne teaching us how to play the song on guitar, for those interested:

Let us know what you think, which version you like best, in the comments.



Mary Margaret O’Hara – Miss America

This was, without a doubt, my favorite album of 1988.  Mary Margaret is the sister of Catherine O’Hara, a fantastic actress herself, but this is not one of those stories where someone famous got her sibling a record deal. Mary Margaret O’Hara has an amazing voice and real singing talent on her own. Plus these songs are jaw dropping amazing.

I’m sure you think you’ve heard a woman sing her heart out before but on this record, Ms. O’Hara is on another level. These timeless tunes send me to a very special happy place every time I hear them. We have poppy, bluesy, jazzy and spacey songs here, all completely perfect and none of them feel forced or fake in any way.

Can you tell I really like this album? That’s true and it makes the fact that she never made another full album that much harder to believe. She released a 4-song Christmas EP in 1991, and then contributed to the soundtrack for a 5-out-of-10 stars romantic comedy named ‘Apartment Hunting’ around 2000, and then… nothing.


If this music is new to you, I am jealous of you. Enjoy hearing it for the first time!

If somehow Ms. O’Hara reads this, please make more music. We need to hear more of your beautiful voice.

Read about it – (4.5 stars out of 5)

Buy it

Or just listen to this YouTube playlist:



Who did it better? “How Is the Air Up There?”

Alright music fans, which version of this song do you like best?

The Changin’ Times  – How Is the Air Up There?  (1965)


The La De Das – How is the Air Up There?  (1966)


The Bangles – How is the Air Up there?  (1983)


Personally, I grew up in Southern California in the 80’s so the Bangles win for me. Then the original version from the Changin’ Times, then the La De da’s version.

: )


Grim Fandango and Homeworld – Remastered!

I am pretty old now, compared to most gamers. Two classic games from my ahem, second youth, are being re-issued as remastered versions so we can play them again with way better graphics. They’re probably both available for download somewhere on the net already but these releases will be both legal and completely awesome looking, compared to the originals. They were both always awesome games, amazing to play so adding better graphics should just make them that much better. Woot!


Grim Fandango Remastered – http://www.gog.com/game/grim_fandango_remastered

Homeworld MohtershipHomeworld Remastered – http://store.steampowered.com/app/244160/


Python + Bottle + PythonAnywhere = easy online web app creation

What is it about weekends that they just really lend themselves to experimenting? I don’t know either. This weekend, I decided I’d spend some time with web development, so I assigned myself a task: create a simple web application which would have a single big text box at the top of the page which would allow the visitor to type whatever they want. Add a Submit button, allowing the user to save that text to a file on the server and then below that form, display all the text that has been entered so far. This is about as simple as a web form can get, I figured.


I wanted to use my slowly growing python skills for this little dynamic web page, so I looked around for a framework to use, since Python doesn’t create web page source natively. I looked at Tornado, Flask and a few others, but they all seemed like overkill for my very simple purposes. I  liked the way the Bottle home page made it sound very easy to create dynamic content so I decided to use it.

I knew my one page site / app was gong to need just one HTML page, and the only part of it that will be dynamic is the part which lists the previous entries, so I started by making a web page template. I used the very friendly, easy to learn Initializr to save time with this. Just visit the site, make a few choices on what type of page you’re looking for and then download the source files. You get an HTML 5 file, CSS and JavaScript all in one zip file. I spent about 30 more minutes removing the parts I didn’t want (including all of the JavaScript), adding the form, updating the colors in the CSS to liking and voila! Index.tpl (for a Bottle template) and supporting static files all set.

At this point, the site consists of these files:




Next, I created an empty file which would hold the text: ‘allthetext’. I created the app’s code file next too: ‘bottle_app.py’. It doesn’t matter what you name that file, for this little app, since it will be the only one.

With Bottle then, the first thing you do is map out the “routes” or URLs you want the app to know how to handle. My app is the only thing this web site will be for, so my default route is just “/”. In the code, I knew I would have to handle both a GET of the page, which would be called when you first visit that path, and also a POST, which will be called when you submit some text in the form.

The GET just needs to display the web page, so that was easy:

from bottle import Bottle, debug, get, request, route, run, static_file, template

app = Bottle()
@app.route('/', method='GET')
def index():
    return template('index')


The POST though has to get the value of the form field named ‘textarea’ and save that into the ‘allthetext’ file. Python makes this really simple but I have one complication. I want the newest entry to be at the top of the file, and then include the rest of the entries from there on down. Here’s the code that does this:

@app.route('/s', method='POST')
def submit_form():
        bigtext = request.forms.get('bigtext')
        if (bigtext):
            new_text = ''
            current_text = ''
            current_file = open('allthetext', 'r')
            current_text = current_file.read()

            new_file = open('allthetext', 'w')
            new_text = bigtext + '\n------------------------------------------------------------------------------------------------\n'
            new_text = new_text + current_text


            return template("index")
            return template('index')


“S” is the Action of the form on the web page (index.tpl) so that’s the URL the code receives when you submit it. The logic here then just validates that we got some text from the form, and if so, opens the text file, writes the new text in there first, then writes all the older text back in as well. Close the file and re-load the page, and that’s about it. The HTML has python included which opens the file for reading, gets each line and adds that to the output, then closes the file.

I tested this locally and it works like a charm. One of the great things about Bottle is that it includes a development “server” out of the box, so you can test your work at your workstation even if you don’t have a web server running locally.

One thing that was not quite right at this pont was the static CSS files. The were not loading in the browser, as their paths were wrong. I added these Routes to the bottle_app.py script to solve that:

# Static Routes
def javascripts(filename):
    return static_file(filename, root='js/')

def stylesheets(filename):
    return static_file(filename, root='css/')

@app.route('/', method='GET')
def index():
    return template('index')


That just tells Bottle where to look for any file ending with “.css” or (in case I add this in later) “.js”.

So, just to summarize, this is what happens when you first visit the site:

  • the URL requested is handled by the Bottle server
  • it reads my .py code to see what is needed.
  • my .py file says that for the “/” route, just send the template file (index.tpl) back as the response
  • inside that index file, I have Python code reading the contents of the allthetext text file and adding that to the HTML of the page before the browser sees it.

When the user fills in the big text box on that page and clicks the Submit button, this is what happens:

  • Bottle handles the request again, processes the POST request for the “/s” URL
  • Opens the allthetext file, adds the new text from the form field to the top of the file, appends the old text and saves the file again
  • send the index.tpl template again as the response
  • and so the user’s page refreshes with their new text content added to the page beneath the form field and button.

Another really useful feature of Bottle is that when it gets a Form in the request, it knows how to collect up all that data and will also scrub it for things like cross-site-scripting attempts and clickjacking. As the developer of a very simple web app like mine, knowing that I don’t have worry about this is great. Of course, if I were creating an application for production use, I would still very carefully parse the data myself to make sure no bad requests are ever processed.

The last step in my little experiement then was just finding a way to run this online, so I could access the page from anywhere at any time. I found PythonAnywhere, a cloud service which makes it easy to host Python-based web apps like mine. They can support a lot of frameworks too including Flask and Bottle and many others, right out of the box. They very kindly offer a free service for small simple apps and also offer paid services at various levels for folks who need more performance or more CPU / Database time.

I created an account at PythonAnywhere, created my web app, uploaded my files, tweaked them a little for things like paths used and bang! It works. I would recommend this service to anyone else trying out any of the pieces of software I’ve described here. Their documentation is great and gets you up and running very quickly.

I am thinking now about what to do to my little web app next, like maybe adding date and time stamps to each entry and so on, but it was fun creating a really nice looking, HTML 5 compliant, web-based program that I can now run from anywhere, and it only took a few hours. Thanks for all the free stuff that made this all possible: Initializr, Python, Bottle and PythonAnywhere!