Bahamaniac

Yesterday was embarkation day for the 400+ passengers that are joining us for the first 2-week voyage, which meant a busy day for all ship’s staff but some time to explore the Bahamas for freeloaders like me. While Shannon was slaving away behind the reference desk helping all the newcomers get adjusted to the ship and find good poolside reading material, I hit the town with the ship’s piano man/singer/joke teller/all-around-entertainer, Bob Falstein, and his lifelong buddy, Richard. Bob has been on more cruises than anyone I’ve ever met or heard about, so he knew his way around Nassau. We ate lunch at a little Bahamian fast food joint where we were the only non-locals, walked all around town, and then headed over to see the famous Atlantis resort to drink the best pina coladas of our lives.

bob_sam_richard_pinacolada

Bob has a way with the ladies, so we also spent a good portion of the day chatting up PYTs. Actually, the truth is that Bob loves everyone, and the feelings of the masses are obviously reciprocal. You’d be hard-pressed to find a person who enjoys people more than a cruise ship piano man. He’s a fun and interesting traveling companion, to say the least.

Shannon did get a brief hour to leave the library desk and walk around the city. Unfortunately, she walked straight off the boat and into this guy. Not exactly a vacation so far:
shannon_and_pirate

Feeling happy to have married a hard-working librarian who lets me freeload and hit the town with the fellas,
Sam

Posted in Travel | Tagged | 4 Comments

Happy Mother’s Day!!

We aren’t with Shannon’s mom Claire today, but we are thinking about her with Mother’s Day coming up tomorrow. Claire, we love you, we miss you, and we wish you a happy day. We look forward to giving you a call when we are back in the states and a big hug when we are back in Indiana.

Mom with Sam and Me on NY Eve, 2004

Claire with Sam and Shannon on New Year's Eve, 2004

Being a parent is the toughest job in the world, and tomorrow we will remember all the times that our moms sacrificed and persevered so we could be happy, be healthy, and live our dreams. We send thanks and love across the miles to Claire and Grandma Jo. And on Mother’s Day, we always remember Sam’s amazing mom, Kathy. We miss her every day, but especially on this important holiday.

Kathy hanging out with Mike (left), Sam, and their awesome robot in the early 80's.

Kathy hanging out with Mike (left), Sam, and their awesome robot in the early 80's.

Posted in Family | Comments Off on Happy Mother’s Day!!

Goodbye, Indy!

Sam and I have embarked on a month-long voyage through Central America with Semester at Sea. We will miss the month of May in Indy, which is sad since May is probably the best month of the year for Hoosiers. Sad, yes..but it’s a small price to pay for some high sea adventures. More about those later. This post is about leaving home.

If you know us well, you know that when it comes to traveling, Sam and I are procrastinators. We typically stay up all night long before a trip, doing laundry and packing. We always intend to leave the house nice and clean, but we usually leave it a mess. We always forget something material and something logistic–these things are “normal” for us. Basically, we always have fun once we get there, but not before we leave.

This time around, things were different. Not only did Sarah provide me with make-up advice and Susan give me the gift of a fantastic haircut so I could arrive in Central America in style, but Sam and I didn’t forget anything while packing. We slept 8 hours the night before we left. We flew to Charlotte, successfully switched planes, and made it to Ft. Lauderdale right on time. We must have been extra innocent-looking passengers, because for once airport staff never chose either of us for a security screening. We boarded our ship, the MV Explorer, at 4pm on 5/6 with all of our travel documentation in order. The entire day, we had no problems whatsoever. We unpacked our stuff, and everything fits into our room’s closets and drawers just fine. Our suitcases even fit under our bed!
bye_bye_samandshannon

But can we actually take credit for theses successes? Nope. We had lots of help!! A BIG thank you to all who made our trip possible:

Libby, the ONLY reason we got to the airport on time!
libby

Eric, who moved into our house to take care of it and our pets while we are away and who has already befriended Amelie.
eric_amelie

Wayne & Libby, who are looking in on Alley Cat when Eric goes out of town.
wayne_libby_symphony

Becky & Jordan, who will be watching Amelie while Eric goes out of town.
becky_jordan_symphony

Larry & Claire, who will be picking us up from the airport when we come home in June.
larry_claire_new_years

Archie & his parents, who are on call for Eric if he needs them.
archiephoto

Mary & Kelly, who inspired us to sail the seas (and who helped us score a room on the ship).

Thanks!!! You are the best family and friends we could ask for…and we realize we couldn’t be here if it weren’t for all of you. 🙂

Posted in Family, Travel | Tagged , | 3 Comments

Check Your “self” Before You Wriggity Wreck Yourself

I had an annoying day of trying to track down memory leaks and other memory-related iPhone development problems yesterday which turned out to be caused by a really simple and careless absence of the word “self” in one of my initialization methods. Observe.

itemId = itemIdentifier;

is definitely not the same as

self.itemId = itemIdentifier;

This is nothing new or earth-shattering. It just can cause you a lot of pain if you aren’t careful about it. The first one is a direct variable assignment. The second is a syntactically nicer way of sending this message:
[self setItemId:itemIdentifier];

Here is the implementation of the really bad initWithItemId:name method that was causing all my pain:


- (id)initWithItemId:(NSString *)itemIdentifier name:(NSString *)nameOfItem {
  if (self = [super init]) {
        itemId = itemIdentifier;
        itemName = nameOfItem;
    }
  
    return self;
}

Because I didn’t use the dot syntax, the setter methods for itemId and itemName properties were never getting called, and the ref counts for their variables were not getting incremented. This resulted in them becoming pointers to invalid memory as soon as the itemIdentifier and nameOfItem variables went out of scope and were released by the code that owned them…and that resulted in bizarre functionality and crashes that caused me to grind my teeth, pull my hair, and get angry at myself for taking so long to track them down. No one likes an angry Sam. From now on I will be double-chiggity checking my self.

Posted in Software Development | Tagged , , | Comments Off on Check Your “self” Before You Wriggity Wreck Yourself

Vibra-slappa rata-tat-tatta

Whew! It has been a busy couple of weeks. We started, finished, and released to the App Store our first iPhone application and launched a new iPhone consultancy company, Believe in Science Software. Right now it’s all still pretty exciting, so I’m feeling both exhausted and extremely energized at the same time.

The app is called Beatnik, and it’s a simple little auxiliary percussion application that features 21 different instruments.

Get hip to the vibra-slappa, rata-tat-tatta.
Clap it, kick it, crash it, hit it.
Bang a gong and get it on.
Dangle your angle or jingle your jangles.
Beatnik…play it over iTunes…Play it to your own tune…yeah.

Our launch story so far is an international affair with sales in Japan, Great Britain, Ireland, Australia, Canada, The Russian Federation, and the good ol’ U.S. of A. — all in the first three days! The App Store experience is amazing and solidifies my belief that iPhone development is where it’s at.

We have already submitted a new version with significant improvements to Apple for review, so hopefully it will be available within a week or so.

Posted in Software Development | 2 Comments

Healthy Quakers Won’t Completely Prevent My Getting Naked

I recently noticed that the Quaker company has been healthy-ing up its products.  Two of my favorites, Natural Granola and Instant Oatmeal, have dropped high fructose corn syrup and partially hydrogenated oils from their ingredient lists.  I thought it was interesting because the change wasn’t accompanied by any marketing hype.  I expected at least a “Now with NO High Fructose Corn Syrup!” banner on the box or something.

I’m curious about what caused this change.  Is this the free market at work?  Perhaps we Bloomquists aren’t the only consumers who have been opting for the often pricier non-HF non-hydrog alternatives.  I gotta say, though, that even though my wallet is happy to be able to put Quaker products back on the shopping list I’ll still be buying plenty of Bear Naked’s Heavenly Chocolate granola for the foreseeable future.

Posted in Uncategorized | Comments Off on Healthy Quakers Won’t Completely Prevent My Getting Naked

The New Year

2009 is here. The weather in Indiana is just as depressing as it usually is this time of year: gray skies, brown trees, too cold to enjoy very many non-snowy outdoor activities, not consistently cold enough to keep some snow around. Spring can’t get here fast enough.

Weather aside, though, 2009 is gearing up to be a good one. My sister is planning her wedding, and we’re all pretty psyched about that…looking forward to having a new bro! Our nephew is turning 1 next month. He’s very close to walking and talking, and I can’t wait to talk to that happy little guy and find out what he thinks about all of us and this world. We’re enjoying our work-from-home lifestyle and are hoping that the economy will bounce back and allow us to continue it.

It wouldn’t be a new year without a couple of resolutions. This year I have 2, and they’re both software-related. In fact, they’re both iPhone-related:

1. Release something for the iPhone on the App Store.
2. Start working on a game development engine for the iPhone. I’m just not altogether pleased with the current low cost and open source offerings, which are all ports of existing game engines from other platforms. I think an engine that is written from the ground up in Objective C for the iPhone would be a lot more fun to use.

Here’s to 2009!

Posted in Family, Software Development | Tagged , , | Comments Off on The New Year

Open Source Software Collaboration with Daan

I recently had a cool experience with open source software and the worldwide internet community.

A while back I was working at a giant insurance company that had a history of ginormous development teams and projects that grew way beyond original scope, went way over budget, and were occasionally canceled even after completion because the final product didn’t really end up meeting the users’ real needs. A couple of my bosses had read up on agile software development methods, Scrum in particular, and wanted to give it a try. Our team was pumped, and we found a toolset that would fit well with the agile approach (mostly centered around Trac and Subversion)…almost. We couldn’t find anything to display a real-time burndown chart, one of the key elements of Scrum. I dusted off some Python skills I’d used a few years earlier at a game dev job and learned how to write basic plugins for Trac. One weekend and a couple evenings later we had the ScrumBurndownPlugin. It was a quick and simple hack, but it got the job done. The team flourished under the agile approach. We rapid-prototyped and cranked out an application that was/is valued highly and used heavily by the company’s employees. But that’s not really the point of this story. The point is that I wrote the plugin at home, on my own time, so I was free to do with it what I chose.

I decided to release it to the open source community. I’ve used a ton of open source software in my career, but I hadn’t ever contributed before. I put it out on the trac-hacks.org site, and it didn’t take long until teams of people all over the world were finding, downloading, and using my little plugin to help manage their own development projects. I gotta tell you, that was a pretty fun feeling! That fun feeling, however, came with a new problem…feature requests and bug reports. Now I’m the type of person who tends to over-commit. Besides my real job I always have a half-dozen business ideas to work on, lots of friends and family to spend time with, a huge list of books to read, and a few crazy adventures to attempt. People were using my plugin in all kinds of configurations and setups that I had neither the time nor the inclination to debug. It was a simple weekend hack, and that’s it. This is where it gets cool. When I didn’t jump right into fixing the problems, other strangers started taking care of them for me. Every so often I’d get a code patch and an e-mail explaining how somebody somewhere fixed such-and-such issue or enhanced the plugin in some other way. Usually the fixes were pretty simple, so I’d look the code over real quick and apply the patch. How easy is that? Apparently it’s not easy enough for me because eventually I fell way behind even on applying other people’s fixes. We started using Redmine instead of Trac at my new employer, and I just didn’t have time to test anything.

A few months ago I put a note up on the wiki page for the plugin apologizing for being so far behind and suggesting that I’d like to hand the whole thing over to someone who would be faster/smarter/better at maintaining it. That’s where my new Dutch friend, Daan, comes in. Within a week of my post I got an introductory e-mail from him. He had been one of the people who had previously submitted some patches and upgrades. He explained that he had already made a bunch of feature improvements on the plugin that he was using internally at his company, and it would be a pretty natural fit for him to maintain it from now on. I was sold, and we switched the control over to him within a week. Now the plugin is back on track with a growing user base, Daan and I follow each other on Twitter, and we subscribe to each other’s blogs. How freakin’ cool is that?! Did I mention that he’s from the Netherlands, 2300 miles away? I intend to do a lot more traveling before I die, but so far I haven’t managed to make it beyond North America…and even though I know that this global collaboration thing has been happening more and more for quite a while now, it’s a really fun experience when it happens to oneself.

Posted in Software Development | 1 Comment

Where’s My Blank iDVD Theme? Here it is!

I recently used iMovie and iDVD to create a new compilation of a DVD I had created a long time ago with a combination many different complicated and annoying pieces of software – one program to edit the music, another to stitch together photos and sync them to the music as a movie, yet another compress and encode the movie file into a DVD-friendly format, and still one more to put it all together as a DVD image and burn it to a disc. Back then the process for creating homemade DVDs was a nasty bog only a really dedicated geek would be willing to slosh through. So let me first say that iLife is a brilliant software package that makes it really fun and intuitive to put together slideshows and home movies and burn them to a disc that looks and feels (semi-) professional. It truly does play Falkor to the Swamps of Sadness you and your pal Atreyu used to have to endure. (Give me a new name, Bastian)

All that being said, why isn’t there a completely blank theme for iDVD? Sometimes I don’t want your stupid menus and graphics, Apple. What, should I choose Sunflowers or Vintage Vinyl for a movie to be played at my friend’s funeral? As a company that cares about aesthetic, you should be able to appreciate that.

The closest thing to a blank slate is the Full Frame theme that can be found in the iDVD 6 themes. But even that has an annoying semi-transparent bar across the middle of the screen. Soooo…after an hour or so of unsuccessful googling around for a solution, I took it upon myself to hack up the Full Frame theme and remove the non-essentials. Thankfully, the iDVD theme files are just xml files, so it only took a few guess’n’tests to find and delete the menus and images.

Here’s a zip file containing the hacked Full Frame theme. Here’s what you need to do to use it: Unzip the file somewhere, then copy the three files that you just unzipped to <your_user_home_folder>/Library/Application Support/iDVD/Installed Themes/iDVD 6/

WARNING: This will replace the previous Full Frame theme. So if you’re going to want the normal Full Frame theme again, either back it up or don’t do this.

Posted in Miscellaneous, Nerddom | Tagged , , , , , , | 2 Comments

Suckretariat Rides Again — D.B.A. The Nerdy Noobs

Last month I tried my luck at another adventure race. This time it was the Planet Adventure Sprint Race Redux. This race was a re-schedule of the original PA Sprint race that got rained out by the 500 year floods back in June. (Mitch, Lauren, Shannon, and I were tent-camping in the 500 year flood and, somehow, the inside of our tent stayed dry.) The original team for the June race was just Mitch and myself, and we were called The Nerdy Noobs. Tom ended up joining us for the Redux, so we had to work Suckretariat back into the name — officially, we raced as “The Nerdy Noobs (a.k.a. Suckretariat).”

The name of the game for the day was “Sam falls in the mud.” Something must have gone horribly wrong with my inner ear that day because I tripped at least 15 times during the orienteering course. I consider morale boosts my strongest contribution to the team as I provided many a spectacle of flops and rolls in the swamps. I was too quickly back on my feet for the cameras to catch me lying in the muck, but you can see the results of one of my swamp splats smeared across my face in the following shot from the canoe trip back across the lake.

check the muddy warpaint

check the muddy warpaint

Balance issues aside we learned a lot from the last event and were in 8th place after the orienteering, only 15 minutes behind the #1 team (the top 3 or 4 teams are sponsored and have very impressive matching jerseys and gear, by the way). We remembered to find handrails and ran at high speeds, as evidenced by the blur in this photo:

too fast for the camera

too fast for the camera

In true Suckretariat style, we missed a turn and checkpoint on the biking portion and went 2.5 miles out of the way. The resulting 22nd place finish was still higher than we expected, and we had just as many laughs as we did in the Indianapolis AR. Adventure racing is definitely my new favorite sport, and I’m looking forward to doing at least a few more races next year. Word on the street is that Planet Adventure may host a mini adventure race series, racing every Sunday through the summer.

orienteering - "the thinking sport"

orienteering - 'the thinking sport'

Sam fiddles with the map so that he doesn't have to carry the canoe.

Sam fiddles with the map so that he doesn't have to carry the canoe.

Posted in Fitness | 1 Comment

SHANNON BLOOMQUIST
librarian, writer/editor, floundering guitarist, breakfast addict

SAM BLOOMQUIST
mobile software developer, dog owner, hiker, adventure racer, enemy of bureaucracy
Follow sam2themax on Twitter Subscribe to this blog