Glad You're Ready. Let's Get Started!

Let us know how we can contact you.

Thank you!

We'll respond shortly.

Pivotal People–Matthew Reider

Our second entry in the Pivotal Profile series is about Matthew Reider, product manager on Pivotal's Cloud Foundry team, the open Platform-as-a-Service (PaaS) that provides web developers a faster and easier way to deliver applications at web-scale. A veteran agile developer, Reider has some big ideas on how to eliminate a lot of the mundane system maintenance out of the application lifecycle and make developers more productive.

HTML5 Facebook Style Sliding Menu Using Twitter Bootstrap Collapse

Ever since Facebook, and other “super” apps started to implement a side menu that slides out for their main navigation, this pattern has pretty much turned into the standard for any application that has a lot of content and a complex navigation stack.

Read more »

SF Standup – Feb 13, 2012 – The Sound of One Hand

Cries for help

Capybara is reporting "stale elements" for no good reason.

Any experience, war stories upgrading from jQuery 1.6 to 1.7, especially with the whole event delegation API change? [crickets] See interestings...


Have a really big spec file that takes a long time to run?, from our own Michael Grosser, will run a big spec file in smaller chunks.

url helpers cache results for better performance, but they seem to be losing custom options (in this case a locales setting).

In jQuery 1.6, triggering an event in an unattached DOM node would propagate the event up into the document, even though it was never attached to it. jQuery 1.7 (maybe 1.7.1) fixes this behavior.

SF Standup 5/5/2011: The Most Interesting Standup in the World

Interesting Things

  • jQuery mobile: awesome!
  • jQuery 1.6 is out and will break you. Read the change notes and upgrade with care. [Ed.: you do have JS tests, don't you?]

Waiting for jQuery Ajax calls to finish in Cucumber

You may be asking yourself why you'd want to do this in the first place. Well here's why I would want to do it.

We had some Webdriver based Cucumber tests that passed fine locally but kept failing on our CI box. Our CI box is a bit underpowered at the moment so I thought what might be happening is that our tests weren't waiting long enough for the Ajaxy stuff to happen because the Ajax responses were taking a long time.

After some poking around in the source code of jQuery, I found the $.active property. This property keeps track of the number of active Ajax requests that are going on and I thought this might help us out.

What I came up with was this gist:

I added this step right after my Cucumber step that caused the Ajax call so that Cucumber would wait to move on until I knew that everything was done.

This step solved our CI failures and all was good in our test suite again.

Standup 2010-11-19: TGIF


What options exist for mobile application development?

The general consensus seems to be that many of these frameworks work fine for simple applications, but quickly run into walls, bugs, and fails once things are less than straightforward. If you're writing a simple application, it probably falls in the mobile web application category and then all you need is a web view. YMMV, but know what you want your application to do before making a choice. Most likely, you have to write a native application for each platform.


  • jQuery 1.4.4 Released Read the blog entry for details; if you're having issues, they might be solved in this release.

more page dynamics, less client logic

Ajaxed pages frequently need to update many parts of the page within ajax callbacks. Here I'll outline how we use jQuery and Rails do this on Mavenlink. Our approach encodes behavior declaratively in markup and minimizes client-side logic.

NYC Standup Roundup – Thanksgiving Week


Is there a way to ensure at_exit will always be ran regardless of how the program exits without wrapping all code in an ensure block?

Ideas included:

  1. Use a runner class to execute the program and wrap that in an ensure block.

  2. trap("EXIT") { block } should get triggered no matter how the program terminates (sigint, exception, etc)

What are the likely causes of RangeError exceptions during test runs?

<RangeError: 0x23513ec is recycled object>
  1. This is generally caused by C extensions.

  2. Their appearance coincided with a Darwin ports update — perhaps you're running native gems against different versions of libraries than they were compiled against.

Are there any techniques out there to take a series of bytes and run some heuristics on them to determine the likely encoding of the string it represents?

Anybody out there have any ideas? Please let us know in the comments!


  • Passing :multiple => false or nil to the select helpers causes unpredictable results — the helper still builds input element names assuming an array of items will be passed back. The helper checks only that the key is present in the options hash and not the value which means if you need to conditionally render a multiple, you'll have to make sure you don't specify the :multiple key at all.

  • Using $('textarea').val() causes unpredictable results as a textarea doesn't keep its data in a value attribute. Use text()) instead.

  • IE 7 and 8 (and more than likely 6) seem to have a problem with jQuery selectors that match links based upon the href attribute — changing the href of the matched elements does not get reflected in the document.

  • From a Blabs comment: Taps is a Sinatra web service from Heroku that's used to move data from one database to another. It transmits data as serialized arrays and loads them using ActiveRecord so it's DB agnostic.

  • Disabling a label via jQuery will not disable the input that it refers to in the for attribute as the label is not a container.

Happy Thanksgiving!

Standup 01/16/2009: onReady() for AJAX, Web Sprites & Detecting UTF-8

Interesting Things

  • Web based sprite generator - here

This also makes the generated sprite really small which is great if you care about page load times. A Ruby+ImageMagick sprite generator might also be a good thing to build.

  • Cool way of detecting if a file is UTF-8 enconded using Ruby+IConv - here

Ask for Help

"Is there an onReady() for AJAX events?"