Thursday, 31 March 2005

PodSafeSound and the SpaceShots Rock

Tonight, listening to my “Getting Things Done” playlist while going through Day 4 of Ruby, the Spaceshots’ tune ‘I Promise the World’ came through the headphones.

I picked up that tune last November, while subscribed to BlogDigger’s mp3 feed (which I highly recommend for 2-3 days at a time). I search for ‘spaceshots’ at iTunes.

Did you mean “spaceshits”?

Umm. No.

Googling for them sends me to PodSafeSound.com – the independent resource for podsafe music. Yes, they have a feed and yes it includes the songs. That’s how to make my day.

Wait. It gets better. I head over to The Spaceshots site and they’re offering the entire album for download, free – in a single zipped file. Same goes for their side project, Alpha Pi.

These guys rock.

Wednesday, 30 March 2005

First Crack 34. Get Your Own Radio Show By Dave & Huna

Two years after their first demo, Dave and Huna got a real, over-the-air, AM call-in talk radio show on March 6, 2005. They tell you what it was like and how to do it.

More Stuff:

If you want to buy Huna’s car, send an email to firstcrack@gmail.com

Listen to Get Your Own Radio Show By Dave & Huna [31 min]

Got questions about coffee or comments about the show? Call: 206-20-BEAN-1

Like the show? Support the First Crack Podcast

Learning Ruby – Day 3

Day 3 is all about strings, arrays, hashes, and ranges – abstract, geeky terms for buckets

In Ruby, strings can be treated like arrays. Meaning it’s super easy to access substring. For example:

theString = "It's raining today"
theString[13, 5]
# returns ‘today’

Finally, I always thought substr() methods were an awkward solution for something so common.

Replacing substrings is just as easy:

theString["today"] = "still"
# theString is now “it’s raining still”

All this talk about strings reminds me, Ruby knows the alphabet. Makes me smile just thinking about it.
"a".next # returns “b”

I’ve written a couple plugins (WP-CaTT, WP-iCal) for WordPress. Developing each one of them has sent me digging through PHP’s function list more frequently than I’d like – looking for just the right function. I’ve rewritten Perl apps in PHP to make the more readable and maintainable. As I’m learning more about the Ruby syntax, PHP feels like Perl.

Here’s a Super Useful Thing: Ruby can grep arrays. Need the list of months you can eat mussels in, if months_in_year was an array of months, this would work:
months_in_year.grep(/r/) # returns all months with an “r” in their name

I’d like to thank Slagell for explaining the difference between arrays and hashes in a useful way.

Back in day one, we talked about the Principle of Least Surprise. So far, getting through the end-of-chapter exercises has been a matter of applying that principle.

I was scanning the pages in today’s chapter looking for the method to flatten an array. According to the Principle of Least Surprise the method would be ‘flatten’. It is. 🙂

Al Abut’s 3rd day


This post documents my journey through Sam’s Teach Yourself Ruby in 21 days. I’ll be joining Al Abut in his effort to learn Ruby and blog along the way.


First Crack 33. HourCar Brings Car Sharing to Twin Cities

Kurt Fischer, Program Manager for HourCar – Minnesota’s non-profit car sharing venture, and I sat down at Nina’s Coffee on Dale and Western in St. Paul. HourCar is planning to introduce car sharing to Minnesota in early May 2005. We talk about car sharing, who is a good candidate for car sharing, and how car sharing positively impacts a community.

If you’re in the Twin Cities, this might be the easiest way to get your hands on a 2005 Toyota Prius.

Nina’s is an excellent place, old building, great decor, very popular neighborhood hangout. Unfortunately no wireless and noisy.

Links Mentioned:

Listen to HourCar Brings Car Sharing to Twin Cities [32 min]

Got questions about coffee or comments about the show? Call: 206-20-BEAN-1

Like the show? Support the First Crack Podcast

Tuesday, 29 March 2005

Auto Insurance Companies Gamble Double or Nothing

This morning, NPR reported on a study finding auto insurance rates in No-Fault states 20% higher and rising more quickly than in “Fault” states.

In a No-Fault state, each driver’s insurance pays for their claim. Elsewhere the accident-causing driver’s insurance pays for both claim.

This means insurance companies prefer the double-or-nothing gamble over having to always pay something. Rather than having an incentive to make the roads safer as a whole (No-Fault), insurance companies are betting their customers to never be at fault. The end result – a greater chance the most dangerous drivers have no insurance (no one will carry them or they can’t afford it) and a lower chance your rates will go up. Seems to me, this keeps accident rates steady.

Monday, 28 March 2005

Learning Ruby – Day 2

Day 2 starts with one of the most valuable programming exercises. What can I do with an object? Just ask it:


self.methods

With ‘self’ being the current object, the above question returns a list of all the questions ‘self’ knows how to answer.

Every object in Ruby can be asked this question. So many languages are only object-oriented, not object-saturated like Ruby. Back in my REALbasic days, I’d scan an objects auto-complete menu looking for the right method or attribute. More than once I was baffled in the differences between objects. I was also baffled by the difference between ‘self.’ and ‘me.’ in RB. No sign of ‘me.’ yet in Ruby.

If you ask 10 people “What is your name?”, you’ll receive 10 different answers. In programming, this is called ‘polymorphism’ and it means different objects can respond differently to the same question. A useful example comes from Object-Oriented Thought Process: all shapes – circles, squares, triangles – have a perimeter and an area. Thought the equation to calculate each is different.

Occasionally, I’ll hit a programming problem where it makes sense to return multiple values out of a method. Normally, I take this as a cue I’m not being clear about what I’m trying to accomplish and make 2 methods. Looks like Ruby can return multiple values separated by commas. Seems useful for debugging.

The Ruby syntax is truly Zen-like. No semi-colons explicitly declaring the end of a line made me smile. Now Slagell’s saying ‘return’ at the end of a method isn’t needed either. Without an explicit ‘return’, the last thing evaluated is returned.

me.jump(up, down)

Here’s a useful tip I learned going through today’s exercises. Between 2 datetime strings, Ruby doesn’t know what ‘+’ means. For example:

return Time.now + Time.now

returns an error, where as

return "it's #{Time.now}" + ", now it's #{Time.now}."

spits out a sentence.

Good to know.

Al Abut’s 2nd day


This post documents my journey through Sam’s Teach Yourself Ruby in 21 days. I’ll be joining Al Abut in his effort to learn Ruby and blog along the way.


RSS is Advertising, Not a Channel for Advertising

(originally published at MNteractive.com)

This afternoon, I was listening to an interview on RSS advertising. Overall, it sounded like Pheedo is shoehorning the dying interruption-based ad model into the relationship-based world of RSS.

There are a number of companies trying to make RSS measurement more accurate (Pheedo, Feedster, FeedBurner). This is excellent, RSS feeds are the way to connect with passionate, influential people on their terms. The more tools available to refine RSS feeds, the stronger the relationship.

The problem is, “the RSS feed is itself an ad.”. Putting an ad in a feed is like putting an ad within a 30 second spot. Like Crest buying product-placement within a Coke ad. That doesn’t make sense.

Instead of advertising within another feed, I recommend companies publish their own feed, start their own relationships with customers – directly. Stop being parasites. New product announcements, press releases, customer research inquiries, and promotions are all useful, valuable items to publish in a feed.

If a company publishes a feed and no one subscribes, is the company relevant to the marketplace?

Sunday, 27 March 2005

Learning Ruby – Day 1

Mark Slagell’s writing style is conversational and educational. I’ve gone through a number of software language tutorials. I found Slagell’s first chapter a comfortable mix of background info, simple examples, and experiments.

On the outset, Slagell states Ruby is based on the:

Principle of Least Surprise:
“If you don’t know how to do something and you try to say clearly what you mean, there’s a good chance it will work.”

This principle’s more descriptive if less sexy moniker is the principle of maximum boredom.

The remainder of Day 1 is examples proving his point.

Al Abut’s first day


This post documents my journey through Sam’s Teach Yourself Ruby in 21 days. I’ll be joining Al Abut in his effort to learn Ruby and blog along the way.