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

Let us know how we can contact you.

Thank you!

We'll respond shortly.

Standup 07/09/2010: Jumbo Edition


“Any recommendations for a recurring-payment system that has to support charge amounts that change?”

Check out Active Merchant, PayPal API, Chargify, or simply rolling your own and charging the credit cards directly.

“I’m having a hard time debugging jQuery live events…”

Check out FireQuery. You can also look at the data attributes attached to the target DOM elements.

“Sometimes our S3 assets download incompletely when using Net::HTTP.”

Things to try include:

  • Save a checksum for all assets and compare that after download to detect incomplete downloads.
  • Check the Content-Length header against the actual content length of the asset.
  • Did you set the Content-Type header? Maybe Net::HTTP is confused.
  • Try witching from Net::HTTP to the S3 gem.

“How can we prevent users from printing the web page?”

Though nothing can prevent users from making a screen shot, deterrents might include:

“Our Solr commits have sloooooooooooooooowed doooooooooooooooooooooooown.”

As Solr commits increase the warmers might take longer to spin up. You might need to add more servers or space our your commits.

Interesting Things

  • Pivotal is trying to retire our saucelabs-adapter for Sauce Labs. Sauce has improved their adapters — if you are having problems with them, let Sauce (and us) know!
  • MySQL Partial Indexes can be super handy.
  • YouTube announced a while back that they are changing their URL format for videos. In a nutshell they are moving away from query parameters, changing the “?” to “#!”, so changes to!v=ylLzyHk54Z0.
  • My Tether turns your Palm Pre into a WiFi hotspot. Sprint only!
  • RubyMine blah blah Rspec blah blah… check out this blog post to find out how to fix Rspec stack traces.
  • SproutCore Founder Leaves Apple to Build HTML5 iPad Apps
  • Don’t use Ruby’s split() method to parse tab-delimited files — you might lose the extra white space at the end of the file when you have empty columns:
  irb> "Mr.tBobtSmith".split("t")
  => ["Mr.", "Bob", "Smith"]
  irb> "Princett".split("t")
  => ["Prince"]

  1. Joseph Palermo says:

    With regards to `split`, it takes a second parameter that limits the number of fields returned.

    If the second parameter is negative, there is no limit to the number of fields returned, and it won’t eat trailing white space at the end.

    irb> “Princett”.split(“t”, -1)
    => [“Prince”, “”, “”]

  2. Joseph Palermo says:

    With regards to Solr commits being slow. If you are using a library that does a commit after every save/delete, I’ve found it best to turn this behavior off because the `commit`call is done as a blocking call which will kill your app’s performance.

    You can then rely on the [autoCommit]( config option for all of your commits so they don’t block your app.

    You may still need to manually force a `commit` from your app in rare situations where the user is performing an update/delete and being redirect back to search results where they would expect the results to be updated.

  3. Regarding a recurring billing system that can charge amounts that change… the SaaS Rails Kit ( does exactly that. :)

Post a Comment

Your Information (Name required. Email address will not be displayed with comment.)

* Copy This Password *

* Type Or Paste Password Here *