Getting around Amazon Kindle’s location restriction

If you’re an avid reader, you’re probably well aware of how the US Kindle store on Amazon has a lot of books available whereas the rest of the stores leave much to desire. It wasn’t an issue though as you could just switch your location to the US and purchase books from the US store.

The Problem

Amazon recently began to validated that the address listed on your credit card belonged to the region of your account, preventing you from purchasing outside of the region your credit card is tied to.


  1. Purchase an Amazon Gift Card. Send the e-mail to yourself.

2. Use a VPN service such as TunnelBear and set your location to the US.

  1. Redeem the gift card, applying the credit to your account.

  2. Use the proceeds from the gift card to purchase your book, which will bypass the payment validation.

This can be annoying to follow for every Kindle purchase so you could put a larger amount on your gift card, which should last several purchases.

Happy reading!

Science: Breaking Bad > Big Bang Theory

How Breaking Bad helps foster interest in STEM more than The Big Bang Theory

As you’re probably already aware, The Big Bang Theory’s humor primarily feeds off of the social ineptitude or pop culture naiveté of four young scientists.

The show is littered with the same false dichotomy Hollywood incorporated into The Social Network: If you’re intelligent, you have no sense of fashion, can’t keep track of pop culture references (probably because you’re too busy ruining a $400 million dollar Mars rover), don’t take an interest in an active lifestyle and of course, are not attractive. There are plenty of great articles detailing why the show doesn’t deserve accolades from the likes of Dr. Stephen Hawking. Sure, it taught a lot of people about Schrödinger’s cat, but does little in fostering an interest in STEM.

Brilliant minds obsessed about getting laid is the overarching theme of the show. I suppose that makes sense. How could anybody be more interested in their work than getting laid?

On the other hand, Breaking Bad follows the transformation of the protagonist, Walter White from high school teacher to Drug Kingpin. Throughout the journey, Walt (and his sidekick Jesse) turn to science for solutions. Even though the show may not always be scientifically accurate with its experiments, it tries to stay true.

While it’s not exactly a PG-13 public service announce, the show covers a lot of situations where the solutions are science experiments in an uncontrolled environment. The dilemmas are thought provoking and often leaves the viewer wondering what creative solution the chemist can cook up.

We’re never left laughing at Walt for his intellect or cheering for him to hook up with the girl next door. We end up watching a story unfold without making his intelligence and scientific knowledge a handicap, but rather, his greatest asset. One can only hope that it sparks interest for legal courses of action.

Localized Challenges

Solving your own little world’s problems

Since the hi-tech industry is a far cry from zero-sum, each success story heats up the competition for talent. Salaries and perks have all been leveled to the point where the previously novel have become the standard. Struggling to stand out from the growing crowd, companies have come to stress on how you’ll work on challenging problems.

“Do you want to sell sugar water for the rest of your life, or do you want to come with me and change the world?” – Steve Jobs to then Pepsi Executive John Sculley

This is hardly a new technique for headhunters but, within tech circles, it refers more to the technical stack rather than the underlying product or service the company has to offer.

“We use Hadoop, Hive and Pig for analytics but are looking into Cassandra as well” – Your favorite social network for pets

There comes a tipping point where the opportunity to use interesting technology to solve challenging technical problems outweigh the otherwise dull initiative of the company. For those who take the plunge, they craft elegant solutions, ones that deserve more than the problems they solve.

We can’t keep ignoring the impact (or lackthereof) of these ‘challenges’.

PRISM is not the problem

Most of the recent stories and outrage over PRISM seem to have missed the mark on addressing the core issue of privacy. PRISM makes the system more effective and efficient – it doesn’t change the underlying issue of the government accessing your data.

Data requests are made in accordance with FISA, a surveillance law that has been amended beyond recognition of its original purpose. Even if the technology company (for example, Twitter) opts out of PRISM, it still has to honor requests from the government, albeit the process being more laborious and time consuming.

If the difference between Twitter and Google/Facebook is merely the time it takes the government to obtain the information, does it really make a difference? Even when PRISM is used, due process is followed to create a request. We are making an unpleasant request shorter to fulfill.

The transparency reports released by Google, Microsoft, etc. are worthless since these requests/orders are not allowed to be listed on them.

Instead of chasing the technologists that are bound by law, shouldn’t we be looking at the root cause of the privacy invasion?

Content Standards

Current State of CMSs

Most of the stuff on the internet that doesn’t involve transactions fits into a nice generic bucket: Content. Content that is provided by individuals (primarily on social networks and blogs) and then of course, media outlets and companies (primarily websites with supporting social media presence).

The market for providing Content Management Systems (CMS) is a competitive landscape that includes titans such as Adobe and Oracle. However, the market is big enough for a ton of players, especially for the SMBs (Joomla, Drupal and Alfresco to name a few…).

Unfortunately, everybody does stuff differently and switching between systems is a nightmare for all.

Standardize The Chaos!

Creating standards across all of these platforms would ease the data migration and alleviate vendor lock-in. There are two standards that have been developed to address these issues:

  1. Java Content Repository (JCR) (based on JSR-170) with Apache JackRabbit as its reference implementation
  2. Content Management Interoperability Services with Apache Chemistry as its reference implementation

JCR has been around for longer but wasn’t able to get the job done (partially due to politics within the steering committee and the spec’s tight coupling to a specific language: Java). CMIS addresses the issues better and aims to tackle the same issue of interoperability.

Hurray! Mission Accomplished!

Not so fast! If you take a look at the CMIS adopters, there are a lot of significant players with large market shares that are missing from the list.

If they already have a loyal customer base, what value do they get by providing their customers an easy path to migrate off of their systems?

I don’t see CMIS doing what it was meant to do, especially for the larger systems as there may be little incentive to adopt the standard and there is no cross-platform CMS governing body that can require and enforce all providers to adopt a standard.

If anything, customers could be made aware of the specification as the gold standard for interoperability so that they look for it from the get-go instead of as a line item in a complex RFP where interoperability gets a sufficient score for a crappy SOAP service.

Seeing with Ctags

Within all hackery, the road to mastery usually leads you to the nitty gritty low-level implementation details of what you are trying to grasp. Even though there are many books on advanced material, they only get you so far before you find that they are either no longer up-to-date or they don’t cover a particular edge case that is imperative for you.

To the source?! Uhh….

Despite the optimistic battle cry, reading the source code of a complex application/framework/language can be daunting, if not rather dry and immensely boring. Most of it isn’t intended to be read as a book and before you know it, you’re looking for the good parts. Just a specific portion that you’d like to understand instead of all that bloat in place to support stuff you don’t care about.


CTags to the rescue!

CTags will go through and create an index (or tag) file that allows you to search dynamically. I’m assuming that you’re using vim as your text editor – there are flavors for Emacs, etc. that may suite you better.



The easiest way is through homebrew.

brew install ctags


Suppose you’re interested in rails. Grab a copy of the source
git clone git://

Now you want to have ctags index those files but since vim will look for the tags file in the current directory and keep searching one level above, let’s run this command from the user home (or the root directory that contains all of your rails projects)

cd ctags -R ./path/to/rails/source

Add the following lines to your .vimrc file: filetype on set tags=tags;/

Use The Source, Luke!

Fire up a new shell and go over to any rails project. Over a rails method (for example, create_after), hit ctrl+] to see the definition in the source. You can toggle back to where you were before using ctrl+t. Pretty sweet, huh?

There are additional shortcuts to listing matches, etc. that you can see for ctags either through the man pages or online.

Blaze away and learn the underlying framework with ease, one method call at a time.

Rebuilding Rails

It has been a couple of years since I first dove into Ruby on Rails to build some side projects. However, there’s still an awful lot of magic going on with the framework.

With the release of Rails 4, there seems to be even more magic to make everything easier. Unfortunately, I’ve found myself in a tough spot whenever the magic ceases to work for whatever reason.

Look in to the source? Sure, but unless you’re very strong with your ruby, all the elegant, clever code isn’t exactly an easy read.

Turns out the creator of Thin, Marc-André Cournoyer has a class called Owning Rails that has you building “a mini version of rails from scratch”.

A pretty good deal for a little over $500, considering that you also get a copy of his book Create Your Own Programming Language (The starting point for CoffeeScript).

Unfortunately, the class seems to be limited and full, with a waiting list. I liked the idea of building a mini version of rails – luckily, someone else has a similar take on mastering rails.

Rebuilding Rails covers a similar challenge of building your own simpler framework on Rack to understand the internals of Rails. I went ahead and bought the book after going through the free first two chapters.

Understand Rails by Building a Ruby Web Framework

Gulp! Here’s to less magic!

Static Blogs

Static What?

Static blogs are blogs that are composed of just a bunch of HTML files. There’s no magic to it – No databases, WYSIWYG editors, etc. Just a bunch of files sitting on a webserver, waiting for a click or two.

That sounds pretty lame

You’re absolutely correct. Without any engine for the blog, there is no need for dynamic queries to the database. Whoa. There is no longer a need for a database.

Y U No Like Databases?


Well, you see – Databases are in the Spiderman camp. They come with great power but require an even greater responsibility. It’s amazingly simple to screw your infrastructure up without proper upkeep of the database. If you’re not keeping up with the security patches, a nasty exploit could be left open for all the horrible people out there to abuse your system.

But my web servers don’t get patched either

Compared to databases, web servers are simple, uncomplicated and lovable creatures. Sure, there are exploits even for web servers but they are far fewer than the ones out there for databases. If all you do is serve static pages that cannot and should not be modified by anyone, ever – It becomes a rather simple rule to enforce.

Is there any non-database related reason to get a static blog?

Alright, Captain DBA. There actually is: When you take the complexity of a database out, in addition to making the response times significantly faster (by avoiding a call to a data tier), your data becomes static. The beauty of static is that you cache as much as you like without worrying about the validity of the data. Long story short, it makes your site faster. Snappier. Moar Better!

Amazing! Can I pick one up at Walmart?

Unfortunately, not at Walmart. However, there are quite a few options available online. They differ in the language of implementation, how easy/flexible it is to theme, what comes out of the box and community plugins.

The ones that have made this highly vetted list are:

Don’t rush through that long list of two items. Let it soak in. Embrace the knowledge.

Cool tools to write?

One of my favorites is the ability to write in Markdown. On Mac OS X I use Mou to write the articles. Since everything can also be managed within your version repository of choice, I throw a copy of my blog on GitHub. GitHub has formatting for Markdown so it’s actually pretty easy to read posts right on Github. Check it out.

Some engines also provide syntax highlighting of code snippets through Pygments. Get your hack on!

Does this mean that I’m reading this on a static blog?

Why, yes. Yes, you are!


Migrated to in 2017. I still love the idea of static blogs but ultimately, it was too much of a hassle to deal with upkeep and doesn’t have the plugin community of WordPress – 23/2/17

Sweat Equity

The phrase ‘Sweat Equity’ gets thrown around a lot, especially within the tech startup community. According to the Merriam Webster dictionary, the origin of the phrase goes all the way back to the (then) new found American dream of homeownership.

As more homeowners went the DIY route to enhance and in turn, add more value to their houses on their own toil, they earned sweat equity.

Sweat Equity : An interest or increased value in a property earned from labor toward upkeep or restoration. The term is used to describe the value added to real estate by owners who make improvements by their own toil – Wikipedia

Despite its frequent use within tech circles, the phrase seems to lack. The sweat doesn’t seem to add much value to equity. Why? Let’s look at how a modifier before equity could assist in specificity (among other things).

You’re sweating away because you’ve been given stocks in exchange for services that you have agreed to fulfill

A vested equity plan has got you sweating – You need to keep working for X years before you’ll have actual ownership of all the stocks you were promised

You have direct influence on the stock value and you’re sweating away to increase their long-term shareholder value (Ugh, it feels dirty to sound like a Wall Street banker)

You’re receiving only equity and no pay

You’re receiving below-market / depressed wages and equity

The list goes on, so the next time you’re chatting about equity over a no-whip skinny vanilla latte, be smart: Leave it at “equity” or use modifiers that add value (such as “vested” or “contingent”) or are more specific (“stock options”, “warrants”, “convertible notes”)

Migrated from Heroku…

After letting my blog idle for an year, I figured it was time to get back to some writing. Unfortunately (or perhaps fortunately), Octopress had a few too many updates for me to apply them painlessly.

I ended up going through a bit of a manual update process. However, Heroku was rather unimpressed with the updated Sinatra application. This wasn’t the first time this week that I’ve run into issues deploying apps to Heroku. If only there was another easy to use, hacker friendly Ruby PaaS. Enter, Cloud Foundry. (EngineYard? Sure, they are worthy of a mention too but they were third on my list and I never got that far down the list).

Even though the vmc command doesn’t show as much information as heroku’s toolbelt, the interactive wizard-like prompts make it easier for newcomers to adapt. The CF apps also don’t get passivated as frequently as Heroku’s (if ever?).

Here’s to (hopefully) more writing! 🙂