Steps to install SPREE

Leave a comment

## Ubuntu 10.04.1 LTS spree commerce setup rails 3.0.9 + ruby 1.9.2

cat /etc/issue
Ubuntu 10.04.1 LTS \n \l

## Install ruby for rvm
# aptitude install curl git-core ruby
The following NEW packages will be installed:
libruby1.8{a} ruby ruby1.8{a}

# ruby -v
ruby 1.8.7 (2010-01-10 patchlevel 249) [x86_64-linux]

# bash < <( curl )

## edit the .bashrc with lines:

# Replace:
#[ -z “$PS1” ] && return
# With:
if [[ -n “$PS1” ]]; then
if [[ -s $HOME/.rvm/scripts/rvm ]] ; then source $HOME/.rvm/scripts/rvm ; fi


# source ~/.bashrc

## export UTF8 lang

# export LANG=en_US.UTF-8

## Install necessary libs and tools

# aptitude install build-essential bison openssl libreadline5 libreadline-dev curl git-core zlib1g zlib1g-dev libssl-dev vim libsqlite3-0 libsqlite3-dev sqlite3 libreadline-dev libxml2-dev git-core subversion autoconf imagemagick libmagickcore-dev libmagickwand-dev

## Install ruby 1.9.2
# rvm install 1.9.2-head

## Set ruby 1.9.2 default
# rvm –default 1.9.2-head
# ruby -v
ruby 1.9.2p290 (2011-07-09 revision 32478) [x86_64-linux]

## Install rails 3.0.9
# gem -v
# gem install rails

## Install spree
# gem install spree

## Install bundler
# gem install bundler

## Create new store
# rails new mystore

## Edit Gemfile
source ‘

gem ‘rails’, ‘3.0.9’

# Bundle edge Rails instead:
# gem ‘rails’, :git => ‘git://’

gem ‘builder’
gem ‘activemerchant’
gem ‘mysql2’, ‘<0.3’
gem ‘aws-s3’, :require => ‘aws/s3’
gem ‘dynamic_form’
gem ‘heroku’
gem ‘memcache-client’
gem ‘rmagick’
gem ‘jrails’
gem ‘jquery-rails’
# Spree extensions
gem ‘spree’, ‘0.60.1’
# Followed by spree itself first, all spree-specific extensions second
gem ‘spree_active_shipping’, :git => ‘git://’
gem ‘spree_product_assembly’, :git => ‘git://’
gem ‘spree_static_content’, :git => ‘git://’

# Dev/Test gems
group :development, :test do
gem ‘sqlite3’
gem ‘webrat’
gem ‘cucumber-rails’
gem ‘rspec-rails’

## Run bundle install
# bundle install

## Initialize database
# rake db:create
rake aborted!
uninitialized constant Deface

(See full trace by running task with –trace)

## Running with trace shows:
# rake db:create –trace
uninitialized constant Deface
/usr/local/rvm/gems/ruby-1.9.2-head/bundler/gems/spree-product-assembly-5a150731393a/lib/spree_product_assembly_hooks.rb:1:in `<top (required)>’
/usr/local/rvm/gems/ruby-1.9.2-head/bundler/gems/spree-product-assembly-5a150731393a/lib/spree_product_assembly.rb:2:in `<top (required)>’
/usr/local/rvm/gems/ruby-1.9.2-head/gems/bundler-1.0.15/lib/bundler/runtime.rb:68:in `require’
/usr/local/rvm/gems/ruby-1.9.2-head/gems/bundler-1.0.15/lib/bundler/runtime.rb:68:in `block (2 levels) in require’
/usr/local/rvm/gems/ruby-1.9.2-head/gems/bundler-1.0.15/lib/bundler/runtime.rb:66:in `each’
/usr/local/rvm/gems/ruby-1.9.2-head/gems/bundler-1.0.15/lib/bundler/runtime.rb:66:in `block in require’
/usr/local/rvm/gems/ruby-1.9.2-head/gems/bundler-1.0.15/lib/bundler/runtime.rb:55:in `each’
/usr/local/rvm/gems/ruby-1.9.2-head/gems/bundler-1.0.15/lib/bundler/runtime.rb:55:in `require’
/usr/local/rvm/gems/ruby-1.9.2-head/gems/bundler-1.0.15/lib/bundler.rb:120:in `require’
/var/www/cutedress/config/application.rb:7:in `<top (required)>’
/usr/local/rvm/rubies/ruby-1.9.2-head/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require’
/usr/local/rvm/rubies/ruby-1.9.2-head/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require’
/var/www/cutedress/Rakefile:4:in `<top (required)>’
/usr/local/rvm/gems/ruby-1.9.2-head/gems/rake-0.9.2/lib/rake/rake_module.rb:25:in `load’
/usr/local/rvm/gems/ruby-1.9.2-head/gems/rake-0.9.2/lib/rake/rake_module.rb:25:in `load_rakefile’
/usr/local/rvm/gems/ruby-1.9.2-head/gems/rake-0.9.2/lib/rake/application.rb:495:in `raw_load_rakefile’
/usr/local/rvm/gems/ruby-1.9.2-head/gems/rake-0.9.2/lib/rake/application.rb:78:in `block in load_rakefile’
/usr/local/rvm/gems/ruby-1.9.2-head/gems/rake-0.9.2/lib/rake/application.rb:129:in `standard_exception_handling’
/usr/local/rvm/gems/ruby-1.9.2-head/gems/rake-0.9.2/lib/rake/application.rb:77:in `load_rakefile’
/usr/local/rvm/gems/ruby-1.9.2-head/gems/rake-0.9.2/lib/rake/application.rb:61:in `block in run’
/usr/local/rvm/gems/ruby-1.9.2-head/gems/rake-0.9.2/lib/rake/application.rb:129:in `standard_exception_handling’
/usr/local/rvm/gems/ruby-1.9.2-head/gems/rake-0.9.2/lib/rake/application.rb:59:in `run’
/usr/local/rvm/gems/ruby-1.9.2-head/gems/rake-0.9.2/bin/rake:32:in `<top (required)>’
/usr/local/rvm/gems/ruby-1.9.2-head/bin/rake:19:in `load’
/usr/local/rvm/gems/ruby-1.9.2-head/bin/rake:19:in `<main>’

## Running rails g spree:site shows same error
#rails g spree:site
/usr/local/rvm/gems/ruby-1.9.2-head/bundler/gems/spree-product-assembly-5a150731393a/lib/spree_product_assembly_hooks.rb:1:in `<top (required)>’: uninitialized constant Deface (NameError)
from /usr/local/rvm/gems/ruby-1.9.2-head/bundler/gems/spree-product-assembly-5a150731393a/lib/spree_product_assembly.rb:2:in `<top (required)>’
from /usr/local/rvm/gems/ruby-1.9.2-head/gems/bundler-1.0.15/lib/bundler/runtime.rb:68:in `require’
from /usr/local/rvm/gems/ruby-1.9.2-head/gems/bundler-1.0.15/lib/bundler/runtime.rb:68:in `block (2 levels) in require’
from /usr/local/rvm/gems/ruby-1.9.2-head/gems/bundler-1.0.15/lib/bundler/runtime.rb:66:in `each’
from /usr/local/rvm/gems/ruby-1.9.2-head/gems/bundler-1.0.15/lib/bundler/runtime.rb:66:in `block in require’
from /usr/local/rvm/gems/ruby-1.9.2-head/gems/bundler-1.0.15/lib/bundler/runtime.rb:55:in `each’
from /usr/local/rvm/gems/ruby-1.9.2-head/gems/bundler-1.0.15/lib/bundler/runtime.rb:55:in `require’
from /usr/local/rvm/gems/ruby-1.9.2-head/gems/bundler-1.0.15/lib/bundler.rb:120:in `require’
from /var/www/cutedress/config/application.rb:7:in `<top (required)>’
from /usr/local/rvm/gems/ruby-1.9.2-head/gems/railties-3.0.9/lib/rails/commands.rb:15:in `require’
from /usr/local/rvm/gems/ruby-1.9.2-head/gems/railties-3.0.9/lib/rails/commands.rb:15:in `<top (required)>’
from script/rails:6:in `require’
from script/rails:6:in `<main>’

## Full gemlist

*** LOCAL GEMS ***

abstract (1.0.0)
actionmailer (3.0.9)
actionpack (3.0.9)
active_shipping (0.9.13)
activemerchant (1.15.0)
activemodel (3.0.9)
activerecord (3.0.9)
activeresource (3.0.9)
activesupport (3.0.9)
acts_as_list (0.1.2)
addressable (2.2.6)
arel (2.0.10)
aws-s3 (0.6.2)
bcrypt-ruby (2.1.4)
braintree (2.10.1)
builder (2.1.2)
bundler (1.0.15)
cancan (1.6.4)
capybara (1.0.0)
childprocess (0.2.0)
cocaine (0.1.0)
cucumber (1.0.2)
cucumber-rails (1.0.2)
devise (1.3.3)
diff-lcs (1.1.2)
dynamic_form (1.1.4)
erubis (2.6.6)
faker (0.9.5)
ffi (1.0.9)
formtastic (1.2.4)
gherkin (2.4.5)
heroku (2.4.0)
highline (1.5.1)
i18n (0.5.0)
jquery-rails (0.2.6)
jrails (0.6.0)
json (1.5.3)
json_pure (1.5.3)
launchy (2.0.5)
mail (2.2.19)
memcache-client (1.8.5)
meta_search (1.0.5)
mime-types (1.16)
mysql (2.8.1)
mysql2 (0.2.11)
nested_set (1.6.6)
nokogiri (1.5.0)
orm_adapter (0.0.5)
paperclip (2.3.16, 2.3.11)
polyglot (0.3.2)
rack (1.2.3)
rack-mount (0.6.14)
rack-test (0.5.7)
rails (3.0.9)
railties (3.0.9)
rake (0.9.2, 0.8.7 ruby)
rd_find_by_param (0.1.1)
rd_resource_controller (1.0.1)
rd_unobtrusive_date_picker (0.1.0)
rdoc (3.8)
rest-client (1.6.3)
rmagick (2.13.1)
rspec (2.6.0)
rspec-core (2.6.4)
rspec-expectations (2.6.0)
rspec-mocks (2.6.0)
rspec-rails (2.6.1)
rubyzip (0.9.4)
selenium-webdriver (0.2.2)
spree (0.60.1)
spree_api (0.60.1)
spree_auth (0.60.1)
spree_core (0.60.1)
spree_dash (0.60.1)
spree_editor (0.50.1)
spree_promo (0.60.1)
spree_sample (0.60.1)
sqlite3 (1.3.4)
state_machine (0.9.4)
stringex (1.0.3)
term-ansicolor (1.0.6)
thor (0.14.6)
treetop (1.4.10)
tzinfo (0.3.29)
warden (1.0.5)
webrat (0.7.3)
will_paginate (3.0.pre2)
xml-simple (1.1.0)
xpath (0.1.4)


online CSS Gradient Generator

Leave a comment

Ultimate CSS Gradient Generator

A powerful Photoshop-like CSS gradient editor from ColorZilla.

openssl benchmark

Leave a comment

Good or Bad???

OpenSSL 0.9.8r 8 Feb 2011 built on: Apr 22 2011 options:bn(64,64) md2(int) rc4(ptr,char) des(idx,cisc,16,int) aes(partial) blowfish(ptr2) compiler: -arch x86_64 -fmessage-length=0 -pipe -Wno-trigraphs -fpascal-strings -fasm-blocks -O3 -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DMD32_REG_T=int -DOPENSSL_NO_IDEA -DOPENSSL_PIC -DOPENSSL_THREADS -DZLIB -mmacosx-version-min=10.6 available timing options: TIMEB USE_TOD HZ=100 [sysconf value] timing function used: getrusage The ‘numbers’ are in 1000s of bytes per second processed. type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes md2 1964.95k 4086.22k 5597.40k 6175.24k 6353.13k mdc2 7309.46k 8097.14k 8313.95k 8365.31k 8382.60k md4 28705.69k 98447.12k 284023.25k 527234.15k 707306.08k md5 23100.07k 74908.53k 195627.12k 327604.64k 411660.77k hmac(md5) 25934.68k 81967.63k 206492.14k 336316.56k 413630.23k sha1 22755.56k 69857.34k 163544.70k 245485.16k 288169.95k rmd160 18335.12k 50771.36k 106225.50k 145315.96k 162974.06k rc4 211462.38k 237169.09k 244242.71k 245681.23k 246479.38k des cbc 40087.72k 41504.16k 42140.58k 42358.20k 42408.70k des ede3 15850.35k 16036.74k 16145.02k 16167.24k 16166.82k idea cbc 0.00 0.00 0.00 0.00 0.00 seed cbc 51450.57k 51369.47k 51886.62k 52682.03k 52891.09k rc2 cbc 24640.61k 25384.18k 25469.89k 25541.21k 25584.21k rc5-32/12 cbc 138441.24k 152689.36k 155849.38k 157298.05k 157560.37k blowfish cbc 80957.14k 85049.79k 85805.24k 86353.04k 86502.82k cast cbc 62414.33k 65091.35k 65999.75k 66401.86k 66541.05k aes-128 cbc 119393.70k 114373.40k 120090.60k 123629.86k 124579.96k aes-192 cbc 104670.80k 101273.27k 105958.59k 108819.47k 109732.79k aes-256 cbc 93304.11k 91171.23k 94851.75k 96895.74k 97555.55k camellia-128 cbc 0.00 0.00 0.00 0.00 0.00 camellia-192 cbc 0.00 0.00 0.00 0.00 0.00 camellia-256 cbc 0.00 0.00 0.00 0.00 0.00 sha256 15755.64k 38477.67k 71447.78k 91218.33k 99222.68k sha512 12447.23k 49417.13k 87587.66k 130414.83k 152945.46k aes-128 ige 118283.86k 126699.81k 129669.63k 130648.81k 130513.96k aes-192 ige 103420.88k 111115.33k 113591.28k 114226.64k 114084.70k aes-256 ige 93433.98k 98916.16k 100644.82k 101255.51k 101164.86k sign verify sign/s verify/s rsa 512 bits 0.000386s 0.000031s 2591.0 32300.0 rsa 1024 bits 0.001847s 0.000088s 541.5 11337.1 rsa 2048 bits 0.010959s 0.000291s 91.3 3433.7 rsa 4096 bits 0.070687s 0.001019s 14.1 980.9 sign verify sign/s verify/s dsa 512 bits 0.000320s 0.000350s 3125.0 2859.8 dsa 1024 bits 0.000897s 0.001046s 1114.7 955.8 dsa 2048 bits 0.002905s 0.003421s 344.2 292.3

consider this

Leave a comment

Why I’m So Happy About MongoDB

Tuesday, December 13, 2011I’ve been building web apps with SQL databases for over a decade. I love SQL and the things it has enabled us to create.
But, managing SQL schemas is a huge pain in the ass.
SQL schema migrations are generally feared by the team. Not overtly, but any time a feature comes up that requires a schema change, people try to find a way around it. I’m sure everyone has a different process and for some, SQL migrations are painless, but not for most environments and teams.
The NoSQL movement in general is going to blow this pain away for the most common case web apps. That’s not to say SQL won’t always have a special place in our system, I believe it will remain in common use for a long time and continue to evolve.
But, as I’ve been tinkering with MongoDB over the last few weeks, I felt a paradigm shift.
Suddenly I can write applications that are smart enough to migrate their own schema changes.
Suddenly I can save and query trees and reduce complex application logic.
Holy crap, this makes my code much simpler. I’m in love.
Could I have done all this with SQL? No doubt, but not without pain. It’s the reduced friction I am so fucking excited about. Less friction means more iterations, more productivity, faster learning, good times.
So why call out MongoDB specifically?
It’s open source done right. Few open source products reach a level of ubiquity comparable to WordPress, MySQL, PHP, Rails, etc… but I can see 10gen is doing things right with Mongo, and it’s going that way. This is why I mostly hear MongoDB when people talk about NoSQL products in general.
You don’t have to be the first to market to dominate it, and I’d bet 10gen is going to prove that. Of course there’s room for a lot of competition, and competition is important. I’m also excited about Cassandra, CouchDB, Redis, and others.
Now, I will say I don’t have any experience with scaling MongoDB yet. I am excited mostly for the patterns it makes possible, but I feel confident that the product is evolving and over time it will be as stable and scalable as any other top tier solution.
So if you haven’t started tinkering with NoSQL yet, get to it, and be ready for a total change of mindset. It’s not supposed to be a direct drop-in for MySQL, so the queries and techniques are a little different.
I will start publishing my own NoSQL techniques on this blog soon, so subscribe for updates!
Discuss it on Hacker News
Hide comments

Add New Comment


  • Post as …
  • Image

Showing 5 of 6 comments

  • Kurtis Rainbolt-Greene, Hacker, Writer, Minimalist, & Father.
    I would love to say “I really like MongoDB” and for many of the same reasons as you are happy about it, but I realize I don’t like it.Not that it’s bad, or doesn’t work for me, it’s that while I use it on 90% of my personal projects (most that require a DDB) it’s only because of the Ruby library “Mongoid”. The Mongoid ruby gem makes using MongoDB excellent and there’s really no substitute. Not having to generate migrations, being able to look at one file in a rails project to understand a model, the subclassing brilliance. It’s all too good to be true.But then I read posts like these and it makes me realize that I could shift the underlying database and *still be happy*. Which got me looking for alternatives and one of those I found that keeps hitting me as a “Better DDB” is Riak.

    If Riak had an ODM like Mongoid and an easy install process like MongoDB (In that Mongo has just about 0 hurdles) then I would never look back at MongoDB.

  • Eric Ingram, Entrepreneur, software architect, designer, blogger
    Happiness with the tools is really what makes me happy about NoSQL in general. The libraries are more modern, useful, elegant, and my software will become simpler by convention with it.

  • Mansour
    I’m working on a website (still designing stage) and when I went onto research about what technologies are used on the backend side of things that scale well, I found a whole set of things I had never heard of. MongoDB, Tornado web server, nginx as load balancer, rabbitMQ, memcached, … . And having merely read the featureset and the concepts behind NoSQL and MongoDB manual, I was drooling all over. I share your love for these stuff. They’re irresistible.

  • Khuram Malik
    I feel the same way – Look forward to seeing your techniques in the near future. Im not a veteran in SQL, i’ve only used it on and off for the last year or so, but i can still see the advantages where MongoDB is concerned, and it was the same reasons that excited me too. I’ve only been using MongoDB for about 2 weeks!

Don’t Let Them Control US!!


Consider the effects, and le your voice be heard.


We knew that members of Congress and their business allies were gearing up to pass a new version of the Internet Blacklist Bill — which more than 325,000 Demand Progress members helped block last winter — but we never expected it to be this atrocious.


save our internet

save our internet

Why Google May Fail

Leave a comment


Staffing: Exacerbating the Problem


In talking to the OEMs, one of their biggest complaints was that the people they interface with are rude, unprofessional, inexperienced, clueless and generally unable to successfully resolve issues in a timely manner. The level of frustration with some of the OEMs is incredibly high.When confronted with this problem, Google’s common response has been that they simply can’t find qualified people, which is kind of amazing given the level of unemployment that exists in the world.This suggests that Google’s hiring policy is at fault; the company is known to favor recent graduates who will start at low salaries but have high GPAs, instead of more experienced employees. This exacerbates the quality problems significantly because it means these problems aren’t being properly communicated, escalated or resolved. In fact, in talking to the OEMs, you get a sense that much of the team that Google has working on operating systems are actually learning on the job. It kind of makes it even more amazing that they got a product out that works as well as it does.

via Why Google Android May Fail and Chrome OS Will Fail –


the old adage applies — “You get what you pay for…”


Couch Potato on the Go: Watching TV on an iPad – AllThingsD

Leave a comment

Couch Potato on the Go: Watching TV on an iPad – AllThingsD.

We surely have evolved as a species….can’t wait until we just plug ourselves into the net, directly for stimulation.

Older Entries