Development Posts

Article  |  Development

OS X Mavericks, failing specs and libxml

24 Oct 2013

After an OS X upgrade from 10.8 to 10.9, I noticed some previously-passing Capybara specs were failing. The failing specs all shared a similar structure:

  it 'should show some text in the 2nd tr' do
     visit some_path
     page.should have_selector('tr:nth-child(2)', text: 'some text')
  end

Notice nth-child pseudo-selector; this seemed likely to be involved as other specs using have_selector with plain class selectors continued to pass.

I applied a number of patches that folks seem to be performing on their new 10.9 installs (installed XCode 5.0.1 and then dev tools via xcode-select --install, running brew updates, etc) and nothing changed. What led me to a solution was this Nokogiri Github issue from the Mountain Lion release:

https://github.com/sparklemotion/nokogiri/issues/742

I ran one of my failing specs with the DYLD_PRINT_LIBRARIES=1 flag mentioned in this issue:

dyld: loaded: /usr/lib/libxml2.2.dylib
dyld: loaded: [repo]/vendor/ruby/1.9.1/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxml2/2.8.0/lib/libxml2.2.dylib

As the issue suggests, I added a reference to Nokogiri directly below Rails in my Gemfile (it did not have an explicit reference in the Gemfile before this). After that, I see this load order:

dyld: loaded: [repo]/vendor/ruby/1.9.1/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxml2/2.8.0/lib/libxml2.2.dylib
dyld: loaded: /usr/lib/libxml2.2.dylib

With the libxml dylib loaded first from the bundled Nokogiri, my specs pass again.

Continue Reading

Article  |  Development

Neil's Three Favorite Wicked Good Ruby Talks

21 Oct 2013

Last week Neil ventured to Boston for the inaugural Wicked Good Ruby Conf, an event drawing technologists from many disciplines who share a common trait: it was for those who love Ruby and use it to get work done. The two-day, two-track event provided a rich array of talks, from the pragmatic and studied, to the irreverent, theoretical and forward-looking. It speaks to the ambition of the conference that within its span, one could learn how to fine-tune a Rails backend, learn the innards of a linotype machine, use one language to bridge the chasm between desktop and mobile, predict capital market behaviors, and see how JRuby might come to eat the world. Here are his favorite three.

  1. MRI Magic Tricks by Charlie Somerville

    A hacker's hacker, Charlie used his time to decimate the Ruby language, peeling off the layers of the MRI implementation and revealing what it takes to build a dynamic language with the flexibility and power of Ruby. His initial caveat of "Don't try this at home" set the tone, as he proceeds to exhume the secret core classes of MRI, and use his findings (with some clever dynamic programming) to redefine some of the language's most basic behaviors, such as hash construction and method aliasing. He concludes by rewriting class hierarchies at runtime and patching the language to rescue itself from pesky segmentation faults.

  2. RubyMotion: Under the Hood by Joshua Ballanco

    Joshua's talk was the kind that adds to the depth and breadth of your knowledge. He uses RubyMotion, the increasingly popular iOS development platform, to convey some of the core abilities and limitations of code execution on desktop and mobile devices. He details the work that went into MacRuby on the OSX platform, highlighting the balance achieved through direct source compilation and the OSX Ruby VM. He then notes why RubyMotion relies on direct compilation alone: the memory isolation inherent in iOS. Meanwhile, we learn some of the nuances of garbage collection and reference counting on those platforms, and when one would need to be explicit in writing mobile Ruby code that interacts pleasantly with ARC. The power of these parallel platforms becomes more clear as he hits the REPL to express the same objects in both Objective-C and Ruby.

  3. Understanding Ruby's Method Cache by Rachel Myers and Sheena McCoy

    As as web developer, you typically would spend your time optimizing for reduced network and backend invocations, and so it was a nice break to get an introduction to language-level caching with Ruby. Rachel and Sheena led us down this path with a sense of humor and copious Jurassic Park references. We start with method-caching (or lackthereof) in Ruby 1.8, how everything changes in 1.9 with the merge of of the YARV implementation, and what lies ahead for more advanced, context-sensitive caching. Tips to avoid invalidating your cache are presented (hint: don't go crazy with define_method, alias_method, openstruct, refinements, etc), and we get a clear picture of how Ruby is evolving alongside its big-brother languages.

Continue Reading

Article  |  Development

A chat with Ken Stowell - local Javascript expert from Metal Toad

7 Oct 2013

I’ve been scouring the internet to find some folks in our fair city of Portland, OR who are willing to talk about their developer experience.

I was lucky enough to connect with Ken Stowell of Metal Toad Media. Metal Toad Media has an agency here in Portland as well as L.A. and San Francisco.

Ken lives here with us in Portland and was happy to answer my questions. I was hoping to learn a little more about Javascript developers and how developer interns like me could find our way into the industry.

Ken Stowell

Continue Reading

Article  |  Development

Get Your Photo on Google Results with Google Authorship

14 Aug 2013

I know you have seen it. You are searching for a hack to make IE behave itself and you come across search results with someone’s smiling mug right there next to the link. If you are like me, you are more likely to click these results instead of the boring, all-text results. Something about seeing the author’s face right next to their link inspires an added air of credibility and expertise. Pretty good deal for those people.

Image of search results with my photo next to them

So, now you are thinking, how can I get my photo up on my Google search results? Well, let me explain.

Continue Reading

Link  |  Development

The GitHub Pages Gem simplifies local GitHub Pages development

12 Aug 2013

Article  |  Development

Favorite talks of RailsConf 2013

31 May 2013

RailsConf 2013 was held in our hometown of Portland, Oregon. Most of us had been to RailsConf at least once before, though it had been a few years. The Rails ecosystem has really matured since then, and maintainability and APIs dominated many of the talks instead of social networks and new toolkits. There were many good talks and speakers, but a few truly exceptional ones that we really enjoyed. So we each selected our favorites and suggest anyone that couldn’t go this year should check these out online at Confreaks They should be posted shortly.

Continue Reading

Link  |  Development

Can I Use the first-child pseudo-element in IE8?

3 Apr 2013

Article  |  Development

Web Dev Workshop Announced!

25 Feb 2013

Planet Argon will hold its first Modern Web Dev workshop on May 6, 2013 in Portland, OR at the historic Kennedy School. This workshop will focus on new and emerging front-end development techniques including Bootstrap, SCSS, Jekyll and Github.

Continue Reading

Have a project that needs help?