Abhijit Hiremagalur's blog



Abhijit HiremagalurAbhijit Hiremagalur
Standup 08/05/2010: 'bundle check' and Websockets
edit Posted by Abhijit Hiremagalur on Friday August 06, 2010 at 08:28AM

Ask for Help

  • How to specify compile flags when installing the mysql gem with Bundler 1.0.0RC1?

Don't. Instead use version 2.8.1 of the mysql gem and ensure mysql_config is on your PATH.

Interesting Things

This saved about three minutes of build time (from what used to be 11ish runs of bundle install instead of bundle check.)

  • Websocksets are easy, use them if you need to 'push' to your webapp and your server can handle many persistent connections.

This was in reaction to some recent conversation between Pivots about Pusher, which will keep persistent connections on your behalf.

This said, here's a quote from websockets.org:

WebSockets represent an alternative to Comet and Ajax. However, each technology has its own unique capabilities. Learn how these technologies vary so you can make the right choice.

Abhijit HiremagalurAbhijit Hiremagalur
Standup 08/04/2010: Accounting on Rails anybody?
edit Posted by Abhijit Hiremagalur on Wednesday August 04, 2010 at 10:09AM

Ask for Help

  • Double-entry/ledger based accounting in Rails (i.e. Quickbooks in Rails for free)
Ideally would be tied in with user/role system where each accounting entry would be tied to a user, but also reconciled against a master account. Recommendations? Latest and greatest?

One suggestion was to look at the code that Wesabe open sourced code when they closed their doors.

  • Error message when opening Rubymine "Invalid Git Root"

This is likely because the project included a submodule that wasn't configured correctly, fix this in under Rubymine's version control preferences.

Add submodule screen in Rubymine

Interesting Things

  • Test 404 handling (e.g. rescue_from ActiveRecord::RecordNotFound, :with => :render_record_not_found) with Cucumber by temporarily setting ActionController::Base.allow_rescue = true. This is usually set to false in features/support/env.rb

  • JSON.pretty_generate hates Rails 3 Hashes

This should work in most modern browsers. Follow the Mozilla docs, NOT the various blog posts about this.

Abhijit HiremagalurAbhijit Hiremagalur
Standup 08/03/2010: Bundle me this Batman!
edit Posted by Abhijit Hiremagalur on Tuesday August 03, 2010 at 10:48PM

Ask for Help

  • I asked if there's a date library in Ruby as rich as Java's JODA

Suggestions included Chronic and RI_CAL though I'm hoping for something that can represent arbitrary periods (ranges?) of time JODA and handles interval calculation and other such date/time arithmetic.

  • is(':visible') doesn't always work as expected in Jasmine

One project reported that using this to as part of a Jasmine spec to ensure that an element becomes visible doesn't appear to be reliable.

  • Annotate and Git History failed for a team using Rubymine 2.0.2 and git 1.7.2.1 in combination with svn.

They solved the problem by downgrading to git 1.7.1.1:

I followed instructions here to create a local set of portfiles:

http://guide.macports.org/#development.local-repositories and grabbed the older portfile from here:

https://trac.macports.org/browser/trunk/dports/devel/git-core?rev=69357

After I could do a port search git-core and have 1.7.1.1 show up, I was able to sudo port deactivate git-core @1.7.2_0+doc+svn and sudo port install git-core @1.7.1.1+doc+svn

  • One person was experienced compile errors when installing memprof on Ubuntu, fortunately somebody else had gotten this working before and offered to help him through thee.

  • A team noticed that Bundler ran multiple (4) times on CI taking nearly 11mins overall and wanted to know to make Bundler run only once

It was suggested that the problem may be due to the way they'd setup their preinitializer.rb and they should move the bundle install into a Rake task.

if ENV['IS_CI_BOX'] puts "IS_CI_BOX is set, running bundle install..."

system('bundle install') || raise("'bundle install' command failed. Install bundler with gem install bundler.")

end

It was pointed out that they should make sure their Gemfile.lock file is checked into version control, which it was. Additionally Bundler 1.0.0 RC1 will allow isolating gems to a local path using bundle install path --disable-shared-gems

Interesting Things

  • The Facebook Graph API doesn't appear to implement OAuth 2.0 properly/completely so it doesn't work with the OAuth2 gem
  • One Pivot noticed that the version of ImageMagick installed on the default EngineYard solo image is out of date and had to upgrade this manually.

Abhijit HiremagalurAbhijit Hiremagalur
Standup 08/02/2010: weird errors and convenient Jasmine fixture generation
edit Posted by Abhijit Hiremagalur on Monday August 02, 2010 at 11:42AM

Interesting Things

  • One team noticed an odd error when they mistyped a Thor constant name.

ArgumentError: Thor is not missing constant Sandbox!.

This appears to due to how #const_missing in activesupport handles nested constant names. Specifically when trying to reference one nested constant from within another nested constant that isn't its parent:

Curiously the spec that exposed the previous issue also returned this odd summary:

0 examples, 1 failure, -1 passed

This is also similar to another standup blog post from almost a year ago.