HOME  → POSTS  → 2005

Introducing Tarzan

Projects and Code481 words3 minutes to read

My birthday is in November, and Christmas is in December, so the “holidays” go for about a month-and-a-half. Every year, I’d start getting these questions like “What do you want for your birthday? What do you want for Christmas?”. Of course, when you’re asked on the spot like that, you can never remember what it is that you want, and you end up like the kid from A Christmas Story telling people you want a football or something.

So, a few years ago, I came up with the brilliant idea of making my wishlist available on my website somewhere. That way, when people asked what I wanted for Christmas or my birthday, I could just point them over to some big-ticket items on my list, and wouldn’t have to waste brain cycles on it. Great idea, huh?

Well, my website has certainly evolved over the last few years, and so has my wishlist. This past holiday saw my biggest wishlist ever with over 170 items (mostly old CD’s that are scratched and need to be re-bought). Updating and adding items was a real pain, and I figured that after the holidays I’d try to figure out a way to make it all easier.

Most of the items on my wishlist are pointing back to Amazon, and I’ve got my referral ID in there so that I also get credited on all of the purchases made from my site. I also know that Amazon makes their database information available through their Web Services program. Ideally, all I’d like to have to do is pass either the ISBN number (of a book), or the ASIN number (of most other items) to a function, and have that function figure it all out for me. How on earth can I make it all happen?

Introducing Tarzan, an easy-to-use set of functions for accessing all sorts of data from Amazon’s product database. It’s as simple to use as SimplePie (if not, simpler), and has a built-in extension model that allows developers to extend the functionality of Tarzan simply and easily.

Tarzan caches everything it can for 30 days (since Amazon’s data doesn’t change much, and as to not overload anyone’s server), supports resizing images using GD functions (all behind the scenes), and most functions will work as expected by just passing the ASIN/ISBN number as a parameter. For more information, documentation, a sample demo, tools for building your own extensions, and downloads, check out the Tarzan Project Page.

Update

I make a minor tweak to the code and released Tarzan 1.0 RC1a. I added cache stats to the tarzaninfo() function (which can be seen in action by viewing your tarzan_info.php page.) This certainly isn’t critical, and you can definitely wait for RC2, but if you got Tarzan already and you want to see the new info, simply replace your current tarzan.inc file with the new one.

Ryan Parman

is an engineering manager with over 20 years of experience across software development, site reliability engineering, and security. He is the creator of SimplePie and AWS SDK for PHP, patented multifactor-authentication-as-a-service at WePay, defined much of the CI/CD and SRE disciplines at McGraw-Hill Education, and came up with the idea of “serverless, event-driven, responsive functions in the cloud” while at Amazon Web Services in 2010. Ryan's aptly-named blog, , is where he writes about ideas longer than . Ambivert. Curious. Not a coffee drinker.