Spree 1.3 to Spree 2.1 - An Upgrade Odyssey 2014-02-05

Note: a few days after I published this post, the spree team launched a new website. For the moment you have to visit a specific url to get to the spree deployment service: http://spreecommerce.com/stores. Clicking on a store name takes you to a page where you can select the deployment service under the Add Ons heading, and from there follow my instructions in this post.

I’ve also noticed that the team has published an ansible configuration guide. You may prefer to use that if you like ansible, or like having more direct control. There’s a manual configuration guide as well.


Before I get started, if you want to follow along with this post, you’ll need to install the following:

If you haven’t worked with git before, you’ll need to do some basic configuration. It will give you directions the first time you try to use it, so I won’t go over it here.

Bitcoin address added to About Me 2014-01-03

I’ve added a QR code and link to my bitcoin public address. I did this not really because I expect anyone to send me money but rather so I could have the experience and so I could have a way for people return money I send.

See, one of the best ways to get people interested in Bitcoin is to put some in their hands. As long as transaction fees are low, it’s pretty easy to do. If one is a Chrome user, it’s as simple as loading the KryptoKit extension and getting them to create an address and copy/paste it to you.

While you don’t want to send any more than you can afford to lose, if you trust the person it can be an eye-opening experience for them to have a couple-hundred dollars worth of bitcoin show up in their wallet in the space of a couple minutes. I wouldn’t do it with a stranger in that amount, but a family member or trusted friend can really understand the power of Bitcoin in a couple minutes in a way that they can’t with just an explanation.

While KryptoKit is a fine wallet, it’s not really safe to store large amounts unless you’ve got an encrypted backup of the private key. That’s not something I worry about in my little demo, so don’t leave your bitcoin in the unbacked-up wallet for long. Have them transfer it back to you to complete the demo.

Binaryphile's Big List of Bitcoin Resources 2013-12-29

Like lots of folks, I’ve taken a much stronger interest in bitcoin as an emerging technology of late, especially after the runup and crash of November this year. While there is a ton of volatility in bitcoin, I can’t help but be optimistic about its place in the future. I’ve put together this list of resources which I’ve found useful in getting to know how to understand and use Bitcoin. Enjoy.

What’s so great about Bitcoin? It’s a payment system that’s extremely fast, reliable and most of all, inexpensive. It lets you purchase on the Internet without the need for credit. It also lets you do what you want with your money without having to involve a bank or credit institution, no matter the size of the transaction. And it lets you give money to family and friends, just like you can’t do with a credit card. If you’re a small business, you can also receive money without an expensive merchant account or the risk of chargebacks and asset freezes.

Before we start, I know there’s one question that’s killing you: is it Bitcoin, bitcoin or BitCoin?

If you guessed BitCoin, wrong answer, that’s right out.

Simple, semantic table layout for non-table markup 2013-04-03

What it is

A css file and markup technique for putting form fields into a regular, columnal format that degrades gracefully without css by the use of css 2.1 table display property values.

How to get it

See this gist. You can see it in action at this jsFiddle, but the gist is better for downloading since it always gives you the latest version while the same is not true of the jsFiddle.

How to use it

Add the css to the rest of the css for your site. When creating a form, decide whether you’ll be using lists or divs. The basic list version looks like:

  <ul class="tel-tabular">
    <li> <!-- each li is a row -->
      <label>Field 1:</label><input>
      <label>Field 2:</label><input>
      <label>Field 3:</label><input>
      <label>Field 4:</label><input>

Upgrading ruby beneath Spree 2013-01-25

Ruby can be tricky to upgrade. When I went from ruby-1.9.3-p192 to ruby-1.9.3-p327, my development Spree store stopped working because of the debugger gem. After some research, I found that I had to run the command gem pristine debugger-linecache to get it working after the upgrade.

After upgrading from ruby-1.9.3-p327 to ruby-1.9.3-p362, I started getting segfaults when trying to run Spree. As it turns out, it really was a ruby bug and so I downgraded from p362 back to p327 and waited for the next version.

Now that p374 is out and claims to fix the segfaults, I wanted to give it a try. Upgrading was no easy feat this time either, in fact, it was the most complicated yet.

I tried upgrading through rvm with the rvm upgrade ruby-1.9.3-p327 ruby-1.9.3-p374 command (this is on Ubuntu 12.04.1). That failed with a message saying to read the log, which told me there was no checksum available for the ruby download, but I could force it anyway.

Rather than do that, I did some quick research and decided to update rvm with rvm get latest. This worked, but I did an extra rvm reload anyway just to be sure. Unfortunately, I forgot to do the reload in my other open shell window as well, so it gently reminded me to do so when I tried using it. Not only that, even after rvm had been reloaded I had trouble with gems being found after the ruby upgrade. I had to reload rvm once more after the ruby upgrade completed for bundler to work.