The Bull Og

Onine since 1994. Offline since 1976.

See also the archive

The five most recent posts.

I’ve seen this error a number of times:

Cannot perform operations on a Metamorph that is not in the DOM

… and I’ll admit, I’ve not known exactly what a Metamorph is but for the most part, I can usually remember whatever it was that I just did that caused that error to happen; so I undo and find a different way.

Today, the thought crossed my mind: “What is a Metamorph?” and that’s when I went digging.

I knew from having seen the “metamorph-#-start/end” references in script tags that it was part of the magic that makes Ember.js bindings work, but I didn’t know where they came from.

Suprisingly, I couldn’t find any search results answering the question. It was only after digging through some stackoverflow answers that my curiosity was satisfied when I found this.

Oct 29, 2012

tl;dr : Capybara with phantomjs is the fastest solution around

Years ago, I loved Selenium for everything it made possible, particularly for the Firefox plugin that made it so easy to script-record a user acceptance test and dump it for automation.

Over the years, I have done my fair share of futzing around with Selenium, and when I took a look at Lebowski a few months ago, I thought I had found a silver bullet. It’s really a clean solution for managing everything around acceptance testing, that is, if you’re going to use Selenium.

Today, my solution of choice is Capybara with PhantomJS/poltergeist

So far, Capybara’s DSL is so clean and robust for programmatically defining any user action I’ve come up with. I don’t have any benchmarks to share at this time for vanilla-Capybara tests vs. Capybara w/headless JS (poltergeist) but suffice it to say, I spend noticably less time at the command line.

More to come on how to (acceptance) test your Ember.js apps using Capybara/poltergeist.

Oct 15, 2012

Get started with #emberjs and #yeoman with a simple “yeoman init ember-starter”

Sep 10, 2012

I finally brought Resumatic into the 21st century; it’s now a Rails 3.2.0 app.

While I originally intended to go step-by-step, whereby I was going to wrap the app with some regression tests, upgrade, run the tests to prove I didn’t (or did) break something, and then be happy, I soon tired of that given the many dependencies (RSpec, rvm, Rails, etc.)

Given the size of the app, I just decided to get a fresh gemset, install Rails 3.2.0, create a new container project via ‘new’, and then copy all the necessary files from the Rails 2 version in to the Rails 3 container, tweaking wherever new syntax was required.

Someday I’ll add tests…

Jul 23, 2012