www.jsiegel.com Open in urlscan Pro
2a00:1450:400e:801::2013  Public Scan

URL: http://www.jsiegel.com/
Submission: On September 16 via api from US — Scanned from DE

Form analysis 0 forms found in the DOM

Text Content

Diese Website verwendet Cookies von Google, um Dienste anzubieten und Zugriffe
zu analysieren. Deine IP-Adresse und dein User-Agent werden zusammen mit
Messwerten zur Leistung und Sicherheit für Google freigegeben. So können
Nutzungsstatistiken generiert, Missbrauchsfälle erkannt und behoben und die
Qualität des Dienstes gewährleistet werden.Weitere InformationenOk


JSIEGEL.COM


JONATHAN SIEGEL'S BLOG. COVERING RUBY ON RAILS, LINUX, GADGETS AND PEEVES.

Classic
 * Classic
 * Flipcard
 * Magazine
 * Mosaic
 * Sidebar
 * Snapshot
 * Timeslide


 1.  
 2.  Jan
     6
     
     
     
     RAILSAPPS COMPOSER HEROKU DEPLOY ISSUE
     
     
     
     
     Rails Composer helps get a standard Rails app off and running. If you're
     starting a new Rails app, you should check it out. Every time I've looked
     at Composer, they've added something new. This time I tried out their
     Heroku integration (they prep a Heroku-ready deploy, including precompiling
     your assets). If you try to do this out of the box, you'll run into the
     error I've included at the end of the post (what likely brought you here).
     The issue? It's when Composer runs:
     
     
     
     RAILS_ENV=production rake assets:precompile
     
     
     The error tells us the problem is in devise's initializer:
     
     
     config/initializers/devise.rb:15:in `block in '
     
     
     So we open up and see on line 15 config/initializers/devise.rb:
     
     
     domain_name: <%= ENV["DOMAIN_NAME"] %>
     
     
     Ah... so we just need to set a domain before we run Composer (or rerun our
     precompile command above). Just set a domain name into your environment,
     rerun and you are done:
     
     
     
     export DOMAIN_NAME="mydomain.com"
     
     
     ---
     
     
     rake aborted!
     TypeError: no implicit conversion of nil into String
     /Users/jonathan/Projects/DoneThis/config/initializers/devise.rb:15:in `+'
     /Users/jonathan/Projects/DoneThis/config/initializers/devise.rb:15:in
     `block in '
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/devise-3.5.3/lib/devise.rb:282:in
     `setup'
     /Users/jonathan/Projects/DoneThis/config/initializers/devise.rb:3:in `'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:268:in
     `load'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:268:in
     `block in load'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:240:in
     `load_dependency'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:268:in
     `load'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/railties-4.2.5/lib/rails/engine.rb:652:in
     `block in load_config_initializer'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/notifications.rb:166:in
     `instrument'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/railties-4.2.5/lib/rails/engine.rb:651:in
     `load_config_initializer'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/railties-4.2.5/lib/rails/engine.rb:616:in
     `block (2 levels) in '
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/railties-4.2.5/lib/rails/engine.rb:615:in
     `each'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/railties-4.2.5/lib/rails/engine.rb:615:in
     `block in '
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/railties-4.2.5/lib/rails/initializable.rb:30:in
     `instance_exec'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/railties-4.2.5/lib/rails/initializable.rb:30:in
     `run'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/railties-4.2.5/lib/rails/initializable.rb:55:in
     `block in run_initializers'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/railties-4.2.5/lib/rails/initializable.rb:44:in
     `each'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/railties-4.2.5/lib/rails/initializable.rb:44:in
     `tsort_each_child'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/railties-4.2.5/lib/rails/initializable.rb:54:in
     `run_initializers'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/railties-4.2.5/lib/rails/application.rb:352:in
     `initialize!'
     /Users/jonathan/Projects/DoneThis/config/environment.rb:5:in `'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:274:in
     `require'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:274:in
     `block in require'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:240:in
     `load_dependency'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:274:in
     `require'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/railties-4.2.5/lib/rails/application.rb:328:in
     `require_environment!'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/railties-4.2.5/lib/rails/application.rb:457:in
     `block in run_tasks_blocks'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/sprockets-rails-3.0.0/lib/sprockets/rails/task.rb:62:in
     `block (2 levels) in define'
     Tasks: TOP => environment
     
     (See full trace by running task with --trace)
     Posted 6th January 2016 by Upgrade to a Google+ profile
     
     0
     
     
     ADD A COMMENT
     
     
 3.  Dec
     25
     
     
     
     RAILS COMPOSER RAILS-STRIPE-MEMBERSHIP-SAAS
     
     If you're starting a Rails app, you're going to immediately want to
     leverage the "conventional" way of adding Users, Authentication,
     Permissions, Billing, and much more. You can do this all by hand, or you
     can use the well-maintained Rails Composer templates that do all of this
     for you with a bunch of best practices mixed in. The whole project is
     maintained by Daniel Kehoe. Many thanks Daniel!
     
     
     I have used Composer to kick-start my sideproject Rails apps. It lets me,
     as a sole contributor, get really far along the way to proving an idea or
     getting something up and running to give gifts to my kids.
     
     
     I just cracked open Composer again and was delighted to see lots of updates
     and a good deal more girth behind the starter apps. I picked a
     rails-stripe-membership-saas starter and hit a snag along the way. The
     issue appears when Composer creates an Admin User. This is a cool helper,
     but in the case of a Stripe project, the new user code interacts somewhere
     in its depths with Stripe (looks like it creates plans in Stripe when the
     first user is created if the plans don't already exist). Anyway--since I
     didn't know any better, I hadn't set a STRIPE_API_KEY variable in my
     environment. So the admin user create code fails because Stripe's API is
     inaccessible. I include the full error below in case this helps anyone's
     search mojo.
     
     
     The solution is easy. Go to stripe, grab your Test Publishable API Key and
     toss it into the environment before you run the Composer. 
     
     
     
     Then add the key to your environment and rerun Composer:
     
     
     
     export STRIPE_API_KEY=sk_test_XXX
     
     
     Note you can cheat and just run the failing command instead: 
     
     
     rake db:reset 
     
     
     It'll get you to the same place.
     
     
     Happy hacking!
     
     
     --- 
     
     
     CREATED ADMIN USER: user@example.com
     rake aborted!
     Stripe::AuthenticationError: You did not provide an API key, though you did
     set your Authorization header to "Bearer". Using Bearer auth, your
     Authorization header should look something like 'Authorization: Bearer
     YOUR_SECRET_KEY'. See https://stripe.com/docs/api#authentication for
     details, or we can help at https://support.stripe.com/.
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/stripe-1.20.1/lib/stripe.rb:247:in
     `handle_api_error'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/stripe-1.20.1/lib/stripe.rb:139:in
     `rescue in request'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/stripe-1.20.1/lib/stripe.rb:125:in
     `request'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/stripe-1.20.1/lib/stripe/api_operations/request.rb:15:in
     `request'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/stripe-1.20.1/lib/stripe/api_operations/request.rb:37:in
     `request'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/stripe-1.20.1/lib/stripe/api_resource.rb:24:in
     `refresh'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/stripe-1.20.1/lib/stripe/api_resource.rb:31:in
     `retrieve'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/payola-payments-1.3.2/app/services/payola/create_plan.rb:7:in
     `call'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/payola-payments-1.3.2/app/models/concerns/payola/plan.rb:23:in
     `create_stripe_plan'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:432:in
     `block in make_lambda'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:164:in
     `call'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:164:in
     `block in halting'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:504:in
     `call'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:504:in
     `block in call'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:504:in
     `each'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:504:in
     `call'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:92:in
     `__run_callbacks__'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:778:in
     `_run_create_callbacks'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activerecord-4.2.5/lib/active_record/callbacks.rb:306:in
     `_create_record'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activerecord-4.2.5/lib/active_record/timestamp.rb:57:in
     `_create_record'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activerecord-4.2.5/lib/active_record/persistence.rb:504:in
     `create_or_update'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activerecord-4.2.5/lib/active_record/callbacks.rb:302:in
     `block in create_or_update'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:117:in
     `call'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:117:in
     `call'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:555:in
     `block (2 levels) in compile'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:505:in
     `call'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:505:in
     `call'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:92:in
     `__run_callbacks__'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:778:in
     `_run_save_callbacks'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activerecord-4.2.5/lib/active_record/callbacks.rb:302:in
     `create_or_update'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activerecord-4.2.5/lib/active_record/persistence.rb:142:in
     `save!'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activerecord-4.2.5/lib/active_record/validations.rb:43:in
     `save!'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activerecord-4.2.5/lib/active_record/attribute_methods/dirty.rb:29:in
     `save!'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activerecord-4.2.5/lib/active_record/transactions.rb:291:in
     `block in save!'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activerecord-4.2.5/lib/active_record/transactions.rb:351:in
     `block in with_transaction_returning_status'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activerecord-4.2.5/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in
     `block in transaction'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activerecord-4.2.5/lib/active_record/connection_adapters/abstract/transaction.rb:184:in
     `within_new_transaction'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activerecord-4.2.5/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in
     `transaction'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activerecord-4.2.5/lib/active_record/transactions.rb:220:in
     `transaction'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activerecord-4.2.5/lib/active_record/transactions.rb:348:in
     `with_transaction_returning_status'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activerecord-4.2.5/lib/active_record/transactions.rb:291:in
     `save!'
     /Users/jonathan/Projects/DoneThis/app/services/create_plan_service.rb:8:in
     `call'
     /Users/jonathan/Projects/DoneThis/db/seeds.rb:10:in `'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:268:in
     `load'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:268:in
     `block in load'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:240:in
     `load_dependency'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:268:in
     `load'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/railties-4.2.5/lib/rails/engine.rb:547:in
     `load_seed'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activerecord-4.2.5/lib/active_record/tasks/database_tasks.rb:250:in
     `load_seed'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activerecord-4.2.5/lib/active_record/railties/databases.rake:183:in
     `block (2 levels) in '
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activerecord-4.2.5/lib/active_record/railties/databases.rake:142:in
     `block (2 levels) in '
     RestClient::Unauthorized: 401 Unauthorized
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/rest-client-1.8.0/lib/restclient/abstract_response.rb:74:in
     `return!'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/rest-client-1.8.0/lib/restclient/request.rb:495:in
     `process_result'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/rest-client-1.8.0/lib/restclient/request.rb:421:in
     `block in transmit'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/rest-client-1.8.0/lib/restclient/request.rb:413:in
     `transmit'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/rest-client-1.8.0/lib/restclient/request.rb:176:in
     `execute'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/rest-client-1.8.0/lib/restclient/request.rb:41:in
     `execute'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/stripe-1.20.1/lib/stripe.rb:213:in
     `execute_request'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/stripe-1.20.1/lib/stripe.rb:126:in
     `request'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/stripe-1.20.1/lib/stripe/api_operations/request.rb:15:in
     `request'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/stripe-1.20.1/lib/stripe/api_operations/request.rb:37:in
     `request'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/stripe-1.20.1/lib/stripe/api_resource.rb:24:in
     `refresh'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/stripe-1.20.1/lib/stripe/api_resource.rb:31:in
     `retrieve'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/payola-payments-1.3.2/app/services/payola/create_plan.rb:7:in
     `call'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/payola-payments-1.3.2/app/models/concerns/payola/plan.rb:23:in
     `create_stripe_plan'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:432:in
     `block in make_lambda'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:164:in
     `call'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:164:in
     `block in halting'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:504:in
     `call'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:504:in
     `block in call'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:504:in
     `each'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:504:in
     `call'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:92:in
     `__run_callbacks__'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:778:in
     `_run_create_callbacks'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activerecord-4.2.5/lib/active_record/callbacks.rb:306:in
     `_create_record'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activerecord-4.2.5/lib/active_record/timestamp.rb:57:in
     `_create_record'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activerecord-4.2.5/lib/active_record/persistence.rb:504:in
     `create_or_update'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activerecord-4.2.5/lib/active_record/callbacks.rb:302:in
     `block in create_or_update'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:117:in
     `call'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:117:in
     `call'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:555:in
     `block (2 levels) in compile'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:505:in
     `call'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:505:in
     `call'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:92:in
     `__run_callbacks__'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/callbacks.rb:778:in
     `_run_save_callbacks'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activerecord-4.2.5/lib/active_record/callbacks.rb:302:in
     `create_or_update'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activerecord-4.2.5/lib/active_record/persistence.rb:142:in
     `save!'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activerecord-4.2.5/lib/active_record/validations.rb:43:in
     `save!'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activerecord-4.2.5/lib/active_record/attribute_methods/dirty.rb:29:in
     `save!'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activerecord-4.2.5/lib/active_record/transactions.rb:291:in
     `block in save!'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activerecord-4.2.5/lib/active_record/transactions.rb:351:in
     `block in with_transaction_returning_status'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activerecord-4.2.5/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in
     `block in transaction'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activerecord-4.2.5/lib/active_record/connection_adapters/abstract/transaction.rb:184:in
     `within_new_transaction'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activerecord-4.2.5/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in
     `transaction'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activerecord-4.2.5/lib/active_record/transactions.rb:220:in
     `transaction'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activerecord-4.2.5/lib/active_record/transactions.rb:348:in
     `with_transaction_returning_status'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activerecord-4.2.5/lib/active_record/transactions.rb:291:in
     `save!'
     /Users/jonathan/Projects/DoneThis/app/services/create_plan_service.rb:8:in
     `call'
     /Users/jonathan/Projects/DoneThis/db/seeds.rb:10:in `'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:268:in
     `load'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:268:in
     `block in load'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:240:in
     `load_dependency'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:268:in
     `load'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/railties-4.2.5/lib/rails/engine.rb:547:in
     `load_seed'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activerecord-4.2.5/lib/active_record/tasks/database_tasks.rb:250:in
     `load_seed'
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activerecord-4.2.5/lib/active_record/railties/databases.rake:183:in
     `block (2 levels) in '
     /Users/jonathan/.rvm/gems/ruby-2.2.3@DoneThis/gems/activerecord-4.2.5/lib/active_record/railties/databases.rake:142:in
     `block (2 levels) in '
     Tasks: TOP => db:setup => db:seed
     
     (See full trace by running task with --trace)
     Posted 25th December 2015 by Upgrade to a Google+ profile
     
     0
     
     
     ADD A COMMENT
     
     
 4.  May
     11
     
     
     
     THANK YOU TESLA...
     
     I became an inadvertent Tesla Roadster owner when an investment I made went
     South and the company was left holding the lease. You may have seen it--it
     was sublet to be used in the film Looper... with a bit of body kit applied:
     
     
     
     
     
     
     
     I'm a Tesla fanboy for many reasons--an adolescent obsession with electric
     cars, the beauty of changing an industry by beating it in every possible
     dimension and the exhilaration of constant, gearless acceleration. Then
     there's Elon's ability to build a $1bn business in the midst of a regulated
     environment where the aristocratic incumbents are subsidized through
     longstanding government and business relationships.
     
     
     But if you were an early Tesla owner, you'd have seen something else--the
     employees at Tesla didn't act like employees. They acted like a meetup of
     electric car enthusiasts--sharing their time, thoughts and resources to
     make sure you had a phenomenal experience with the vehicle. In 2010 Tesla
     was a few hundred employees servicing 2,500 vehicles--and when you spoke to
     Johnny about a question on your car, you'd also talk to Johnny when Tesla
     detected a low tire pressure on your vehicle--and to Johnny again when you
     heard your software was updated along with a tire replacement (you *ahem*
     get a lot of tire wear on your Tesla).
     
     
     Fast-forward to today, Tesla has 10,000 employees and cranks out 2,000 new
     cars a month. Alongside this growth, the culture is changing--instead of a
     low-key showroom next to a garage bay or a nondescript Palo Alto industrial
     building, the company has matured a vehicle brand. They have real offices,
     real showrooms, real receptionists. They have a style guide and brand
     consistency (even Tesla Red™).
     
     
     So I wasn't entirely surprised when my latest vehicle issue (a Roadster
     with a well-used battery) exposed the first hiccup I've experienced.
     Instead of a "we already have three solutions for you, let us know how we
     can best serve you!", I got a "here's your problem, it's pretty shitty, and
     good luck with it."
     
     
     It's times like these that expose the character of a company--and its
     leadership--where personality ultimately flows from. Maybe "good luck with
     it" wasn't exactly what was said, but instead of accepting a mediocre
     response, I asked to speak with the original team that had helped me... the
     team that had been so helpful in the past. What happened next was
     unexpected and delightful. Rather than continuing to pursue a Tesla
     position--in this case, that I had caused a rapid decline of the vehicle
     battery--and would have a really expensive paperweight until the new
     battery came out--Tesla went over and beyond and offered to work with me on
     getting the car back on the road now--with them bearing the brunt of the
     burden. It took three phone calls and in the end six Tesla teammates to
     make it happen... but a few days later I had my Tesla back and can continue
     to be a shameless Tesla fanboy.
     
     
     Thank you's to the Tesla team that had to deal with (me and...) my issue!
     Thomas Canchola, Shaun Matthies, Johnny Chan, Anthony Wells, and Jerome
     Guillen. Stellar work. Thank you!
     Posted 11th May 2015 by Upgrade to a Google+ profile
     
     0
     
     
     ADD A COMMENT
     
     
 5.  
 6.  May
     7
     
     
     
     READY PLAYER ONE... WHY WASN'T FYNDORO'S TABLET USED?
     
     OK. Willful suspension of disbelief is great. Enjoyed Ready Player One for
     many great recalled memories of childhood. If you were alive in the 80's
     you'll likely get the same joy. That said--to those that have read it--why
     wasn't Fyndoro's Tablet of Finding used to track down Parzival (and the
     others) and eliminate them prior to the final showdown? There's multiple
     references to the 6'ers wanting to find them, but they have an artifact
     that allows them to do just that.
     
     
     
     
     Besides that--good twisty read for a third of the book. Probably a dead-hit
     for my 13yr old self, but then again--nobody that age was around in the
     80's. :-P
     
     
     
     
     
     
     
     
     Posted 7th May 2015 by Upgrade to a Google+ profile
     
     1
     
     
     VIEW COMMENTS
     
     
 7.  Nov
     7
     
     
     
     RIGHTSIGNATURE NOW MORE POPULAR THAN RIGHTSCALE
     
     I cofounded RightSignature with Daryl Bernstein and Cary Dunn a year after
     starting RightScale (nee AWS-Console) with Thorsten Von Eicken. Since then,
     RightScale has been a juggernaut raising over $40m, creating a legion of
     T-Shirts and generally helping to promote an early cloud-centric world. So
     you can imagine my surprise when I saw Alexa showing RightSignature
     skyrocketing into popularity--well ahead of RightScale.
     
     
     Both businesses took advantage of a greater rising tide. In RightScale's
     case, it was the reduction in friction that instant provisioning via an
     infrastructure API brought. Over time, technologists will find greater
     value by automating their infrastructure in the same way that companies
     automate tasks using software that were once relegated to manual
     calculations. And for RightSignature, the rising tide is the increased
     efficiency of capturing intent when paper is removed. This means contracts
     are signed faster, sales made quicker and formerly manual processes become
     automated. In ten years from now, nobody will look back fondly wishing, "if
     only I could send this contract by a postal service and have my customer
     get it in three or maybe two days--and then I can hope that they sign and
     return it... yes maybe in a week or so that deal will be done!"
     
     
     Cloud computing is mainstream. But mainstream in a microcosm--the techie
     world. Online Signatures are mainstream too (seen the billboards on 101
     from SFO into the city?)--but they are mainstream in the business world.
     This is a much larger market and may make RightSignature a much larger
     business than RightScale. Certainly Alexa thinks so:
     
     
     
     
     
     
     
     vs
     
     
     
     Posted 7th November 2013 by Upgrade to a Google+ profile
     
     0
     
     
     ADD A COMMENT
     
     
 8.  Apr
     7
     
     
     
     FUTURE WORLD SQUASH PLAYER VS THE WORLD #1 SQUASH PLAYER :-)
     
     Liam Siegel vs David Palmer
     
     Posted 7th April 2013 by Upgrade to a Google+ profile
     
     0
     
     
     ADD A COMMENT
     
     
 9.  
 10. Jan
     5
     
     
     
     HEROKU PLEASE ENABLE **AT LEAST BASIC** DENIAL OF SERVICE PREVENTION
     
     I've been an unabashed fanboy of Heroku, but recently I've been running
     into serious blockers trying to maintain production code on the platform.
     This time it was lack of basic network IP blocking for an offending
     address. If this sounds like a non-concern for you and your applications,
     stay with Heroku! If this is disconcerting and worrisome for your
     production apps, read on...
     
     One application is a Golang app that has been tested on AWS micro instances
     capable of handling thousands of transactions per second. All logic is
     based on in-memory data and the app is really well optimized.
     
     On Heroku, we've been able to handle just over a thousand requests per
     second with one dyno.
     
     However--recently we started seeing downtime reported by our external
     monitoring. We added internal debugging instrumentation to the app (since
     Heroku lacks platform inspection) and found a malicious or at least
     negligent user hitting our app continuously 430 times per second. This on
     top of our normal load was causing Heroku's request-router to stop routing
     requests to our app.
     
     We contacted Heroku support and over a 24 hour period were advised that we
     should add more dynos in order to better handle traffic. Now--this irks us
     for a number of reasons. Firstly--the same code handles almost an
     order-of-magnitude more traffic when run direct on an AWS micro instance
     compared to Heroku. We have no visibility into the activity in Heroku's
     routing layer vs the requests that make it to our app--is it them or us?
     And in the end we are basically grasping at straws--their official
     suggestion is to start turning dials on a black box to try and "guess" a
     solution rather than understand the real root cause.
     
     In our case, even when we don't know the exact reason Heroku is dropping
     requests, we know that basic network hygiene says--block the IP address
     that is effecting a DoS. On real hardware on our own network, within AWS,
     or even within Google AppEngine it is TRIVIAL to prevent access on an IP by
     IP basis. We assumed that even though Heroku might not expose this
     functionality, that they did in fact have the ability to block IPs. But
     their support response to a request to block an IP is:
     
     
     
     
     > "Heroku does not offer any kind of direct DDoS mitigation unfortunately.
     > You could try increasing your dynos until the DDoS attack is over to
     > prevent your API from being saturated. I will forward this on to our
     > Security team for more suggestions here."
     
     Heroku has been excellent for our side projects. Their team has excellent
     developers and a great ethos for easing the development process. But
     building an automated hosting platform is a different task than building an
     "Enterprise Grade" environment. As we find more holes in the platform we're
     finding it harder to commit to Heroku as the right choice for us given the
     lack of platform maturity.
     
     
     We hope that Heroku's team finds the bandwidth to address this issue!
     
     
     
     Posted 5th January 2013 by Upgrade to a Google+ profile
     Labels: heroku
     
     6
     
     
     VIEW COMMENTS
     
     
 11. Oct
     30
     
     
     
     BEST PIANOMAN EVAR
     
     
     
     Posted 30th October 2012 by Upgrade to a Google+ profile
     
     0
     
     
     ADD A COMMENT
     
     
 12. Oct
     28
     
     
     
     DYLAN STILL ROCKING AT ?
     
     
     Posted 28th October 2012 by Upgrade to a Google+ profile
     
     0
     
     
     ADD A COMMENT
     
     
 13. 
 14. Oct
     28
     
     
     
     DINNER IZAKAYA STYLE... THANKS TO ICHIZA ☺
     
     
     
     Posted 28th October 2012 by Upgrade to a Google+ profile
     
     0
     
     
     ADD A COMMENT
     
     


About Me
About Me
Upgrade to a Google+ profile

Blog Archive
Blog Archive
 * 20161
   * January1
     * RailsApps Composer Heroku deploy issue
 * 20153
   * December1
   * May2
 * 20133
   * November1
   * April1
   * January1
 * 201211
   * October3
   * September3
   * August1
   * May1
   * March1
   * February2
 * 201117
   * December3
   * November2
   * October2
   * September2
   * August2
   * July1
   * May3
   * March2
 * 201032
   * December2
   * November2
   * October5
   * September3
   * August2
   * July1
   * June1
   * May1
   * April8
   * March1
   * February1
   * January5
 * 20097
   * October1
   * August2
   * July1
   * June2
   * January1
 * 200826
   * December4
   * October5
   * September6
   * August3
   * June4
   * May4
 * 200633
   * October1
   * September4
   * August8
   * July1
   * May1
   * April2
   * March10
   * February2
   * January4
 * 20051
   * December1


My Totally Biased Links
My Totally Biased Links
 * Stop emailing, printing and faxing documents. Sign with eSignatures instead..
 * RightSprite iPhone Development
 * Don't SEO without Usability Testing
 * Put your music on iTunes with TuneCore
 * RightScale EC2 Management
 * RightCart
 * Baby Shower Gifts
 * Ruby on Rails Development


Tags
Tags
 * Ireland18
 * Speaking13
 * Business12
 * programming10
 * heroku9
 * SysAdmin8
 * Ruby7
 * Rails6
 * Travel6
 * appengine6
 * Ubuntu5
 * domain registrars5
 * iedr5
 * Kids4
 * howto4
 * poor customer service4
 * Cloud3
 * EC23
 * ELC3
 * MacBook3
 * OS X3
 * AWS2
 * Asia2
 * Boys2
 * Clojure2
 * Dad2
 * Europe2
 * Google Apps2
 * RightScale2
 * RightSignature2
 * Robots2
 * Writing2
 * cooking2
 * gdata2
 * indian2
 * Apple1
 * Applications1
 * Beijing1
 * China1
 * DNS1
 * DRAC1
 * Dell1
 * Ecomony1
 * Fixed1
 * FunConf1
 * Funding1
 * Gem1
 * Hadoop1
 * Launch1
 * Riak1
 * Sqlite1
 * Trac1
 * Unfuddle1
 * Venturenet1
 * Vertu1
 * Weather1
 * XMPP1
 * iPad1
 * iTouch1
 * knol1
 * python1

Loading