Pivotal Labs

Main menu

Skip to primary content
Skip to secondary content
  • About
  • Case Studies
  • Team
    • Executives
    • Locations
      • San Francisco (HQ)
      • Boston
      • Boulder
      • Denver
      • London
      • Los Angeles
      • New York
  • Community
    • Blogs
    • Tech Talks
    • Events
  • Careers
    • Lifestyle
    • Principles & Practices
    • Benefits
    • FAQ
    • Apply
  • Contact
    • Press Room
    • Press Releases
    • In The News
    • Press Kit
  • All
  • Labs
  • Standup
  • Tracker

Monthly Archives: March 2007

Joe Moore

Standup 03/21/2007

Joe Moore
Wednesday, March 21, 2007

Interesting Things

  • We’ve forked several 3rd party plugins (yes, we need to send patches) and we’re using the “3rd Party Branch Pattern” from Software Configuration Management Patterns. We’ll keep you posted as to how it’s working.
  • rake db:fixtures:load does not turn off database foreign key constraints, so be careful. We’ll see if we can either fix this for our needs or make it configurable.
  • CSS: We’ve found a technique claiming that overflow:hidden can dispose of the un-hip <div style="clear:both;"></div> float-clearing div. This seems to have multiple side effects, including undesirable scroll bar behavior, so be very careful if you do this.
  • In FireFox for Mac, you will encounter problems if you are trying to hide a Flash components using an opaque div. There is a workaround involving a .png background image which has the desired alpha-transparency… a more detailed post will (hopefully) come in a follow-up post.
  • Even More CSS: though some suggest it’s dangerous, setting an element to position:relative often saves the day if you have having layout problems.

Ask for Help

  • One of our new projects is using the Darcs source code management system… has anyone used it?
    • We have a few who’ve read about it, but not used it… looks like we’ll have to RTFM.
  • If anyone has experience getting rake tasks to work on both *NIX and Windows, talk to AC.
  • Here’s a good sign: we’re out of chairs!

Total Stand-up Meeting Time: 24:00 minutes

  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Pivotal Labs

Automatic invocation of multiple OS X terminal windows

Pivotal Labs
Tuesday, March 20, 2007

As the righteous wave of Intel iMacs surges into the Pivotal Labs offices, more Pivots are finding themselves working with multiple OS X Terminal windows. The opening and positioning of terminal windows often follows the same pattern: cd into project directory, run mongrel, open next window, cd into project directory, tail the test log, etc.. To avoid violating DRY, I’ve hacked up some simple ruby scripts that automate the process. See my original post for details and links to the scripts.

Now it’s just a matter of running one command:

$ terminals.rb myproject

This opens up all of the standard windows from the project in their specified positions and running the right processes.

  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Joe Moore

Standup 03/20/2007

Joe Moore
Tuesday, March 20, 2007

Interesting Things

  • An internal project has migrated to Ruby 1.86 and Mongrel 1.0.1 with no ill affects, with the bonus that this combo fixes a known memory leak in Mongrel.
  • Ruby Fu: it was pointed out that Ruby method argument defaults can refer to other arguments to that same method:
<code>
def wrangle_monkey(x, y = x + 1)
  # Above, `x + 1` refers to to method argument `x`
end
</code>
  • One project wrote a super-cool rake task that helps manage JSUnit servers and test runs. Talk to A.C. if you are interested.
  • Rails Helpers and template’s use of erb is…weird. Details are blurry and the developers who discovered the issues should post the heavy stuff on this blog, but suffice to say don’t be surprised if you have trouble working with the erb output stream in your helpers.

Ask for Help

  • The Men’s room key is missing, and one team needs CSS help… hopefully these are not related.

Total Stand-up Meeting Time: 16:00 minutes

  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Christian Sepulveda

Reintroducing… Pivotal Labs

Christian Sepulveda
Tuesday, March 20, 2007

Here we are again… again. Pivotal Labs has reinvented itself a few times over the years. But with each change, we’ve matured and expanded our commitment to helping teams produce better software and to do it more efficiently.

Who is Pivotal Labs? We’re a consulting firm located in San Francisco that incubates the engineering efforts of startups and enables Agile software process adoption for mature companies. We started out doing Smalltalk, moved to Java development once that hit the scene, and a year and a half ago, we started falling in love with Ruby on Rails. And we’ve been doing Agile development since before it was called that, and we do it all the way.

We hire bright, talented, experienced folks and weave them into our growing team. We want to work with people we can learn from, people with vision, people with serious chops. Life’s too short not to be working with people like that.

Anyone who works in software knows about missed deadlines, exhausted budgets and death marches. But we do things differently, and we’ve got the track record to prove it. We’ve been producing great software, repeatedly and predictably, for a long time. And while we know there are many great software teams in the industry, few have the ability to transfer “the how they do it” to others.

This makes us somewhat unique. We share our techniques, processes, and recipes, with clients and partners and colleagues. Interaction, collaboration and exchange — in a word, openness — are the core values of Pivotal.

This blog will be an example of that openness. Expect a mix of topics — from technical (AJAX / JSON performance problems, acceptance testing with Selenium), to process (scaling Agile development, how to balance features and infrastructure), to business, always with some Pivotal personality and perspective.

We hope that you will get to know us and possibly benefit from some of our experience. We also want to hear from you; we love sharing ideas and experience, as this type of exchange has been the cornerstone of our success.

  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Chad Woolley

Subversion gotcha – deleted folders not shown in diff by default

Chad Woolley
Tuesday, March 20, 2007

Say you have two tags you want to diff, and one has a deleted directory. If you do an ‘svn diff’, you won’t see the deleted directory UNLESS you give the ‘–summarize’ option:

svn diff --summarize http://host/project/tags/old_version http://host/project/tags/old_version

  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Joe Moore

Standup 03/19/2007

Joe Moore
Monday, March 19, 2007

Interesting Things

  • Markaby: while Rails helpers are available when using Markaby to generate HTML, some of those Rails helpers do not return strings of HTML, but instead add content directly to the ERB output stream, which won’t help you. You can capture this ERB output by using the Rails helper capture().
  • The appable_plugins folks fixed the Class non-reloading issue we talked about earlier. Thanks guys for fixing Bug 7!
  • Adobe just released their Apollo framework, which allows web applications access to a computer’s local file system, amongst may other features.

Ask for Help

  • Please save us from… PS2 keyboards! We’re flooded with them. Perhaps we can use them in an art project.

Total Stand-up Meeting Time: 14:00 minutes

  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Joe Moore

Standup 03/16/2007

Joe Moore
Friday, March 16, 2007

Interesting Things

  • Selenium: one team is experimenting with running multiple Selenium tests at the same time and getting major performance boosts without any database collisions. They’ll keep us posted and roll this out to the rest of us if it’s successful.
  • cc.rb – we’re still looking at it and will provide updates when we have some results.
  • Markaby: +1 vote. More and more people seem to like Why’s HTML/XML parsing library.

Ask for Help

  • Does anyone know if you can use URL sub-domain information in Rails’ routes.rb?
    • We don’t think so. Most teams launch multiple instances of their application and use this information in their routes.rb to dictate routings, or Apache URL rewriting or redirects.

Total Stand-up Meeting Time: 15:00 minutes

  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Joe Moore

Standup 03/15/2007

Joe Moore
Thursday, March 15, 2007

Interesting Things

  • Note that the Rails testing framework might be the only place that performs a require for classes and libraries that are needed by your application. End result: your tests pass, but your application doesn’t work. For all the testing frameworks and methodologies, nothing beats the ol’ “click through” for peace of mind.

  • Flexmock: When using Flexmock, you are must specify that the mock is called at least once, or your assertions might erroneously pass. Example:

<code>
    # Will pass even if :monkey is never called!
    my_flex_mock.should_receive(:monkey!)

    # Will fail if :monkey is not called once
    my_flex_mock.should_receive(:monkey!).once
</code>
  • Rspec syntax: old vs. new — the new style for should assertions is a “multi word” style rather than “under_score_word”. Example:
<code>
    # Old style: underscored word
    monkey.should_be_nil

    # New style: multi word, multi method
    monkey.should be_nil
</code>
  • has_many gotcha: Many already know this, but for a has_many relationship, the append method (<<) performs a save if the subject exists in the database already. In a test, you might need to perform a monkey_wrangler.reload to pick up all of the changes after a monkey_wrangler.monkeys << baboon
  • We are developing a Rails + AJAX wizard framework. Stay tuned!

Ask for Help

  • Any concerns or issues regarding performing many AJAX requests over HTTPS?
    • The main concern shared by the group was performance. Any other issues that people know of?

ctrl+z

  • It turns out that the has_many :through order dependency issue we described was our fault.

Total Stand-up Meeting Time: 23:00 minutes

  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Joe Moore

Standup 03/14/2007

Joe Moore
Wednesday, March 14, 2007

Interesting Things

  • Another IE6 issue: CSS selectors. A div can have multiple classes, such as <div class="grey box"></div>, and there are multiple CSS selectors for this, only one of which works with IE6:
<code>
/* Works fine with IE6 */
.grey .box {
    border: 1px solid black;
}

/* DOES NOT WORK with IE6 */
.grey.box { /* Note the lack of space! */
    border: 1px solid black;
}
</code>
  • In Rails, It is possible to declare a “white list” and a “black list” of attributes that can be mass-assigned in an ActiveRecord model: Note that these cannot both be used in the same class!
    • attr_accessible (white list) – only attributes in this list can be mass-assigned.
    • attr_protected (black list) – as long as an attribute is not in this list, it can be mass-assigned.
  • Rspec redirect assertions now work! Use this in your controller specs:
<code>
response.should redirect_to(:controller => "my_controller", :action => :an_action)
</code>
  • alias_method_chain is an extremely handy new method in Rails, which encapulates a common pattern. Much of Rails and appable_plugins is built on this.
  • And most importantly: Taqueria Cancun now has carnitas!!!.

Ask for Help

  • Has anyone had problems with IE6 failing to send Ajax requests?

Total Stand-up Meeting Time: 18:00 minutes

  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Joe Moore

Standup 03/13/2007

Joe Moore
Tuesday, March 13, 2007

Interesting Things

  • svn:keywords: if you want to use svn:keywords in files checked-in to SVN, you have to do more than just put those keywords in your file — you have to explicitly list the keywords in a property, such as:
<code>
$ svn propset svn:keywords "LastChangedDate" weather.txt
property 'svn:keywords' set on 'weather.txt'
$
</code>

Then, weather.txt can display the date with the following: can have the following:

The weather on $LastChangedDate$ was good!

Total Stand-up Meeting Time: 10:00 minutes

  • 0 Shares
  • Share on Facebook
  • Share on Twitter

Topics

  • agile (778)
  • rails (113)
  • testing (86)
  • ruby (83)
  • ruby on rails (70)
  • jobs (62)
  • javascript (53)
  • techtalk (44)
  • rspec (38)
  • activerecord (29)
  • productivity (29)
  • gogaruco (29)
  • ironblogger (29)
  • git (28)
  • nyc (27)
  • rubymine (25)
  • mobile (21)
  • cucumber (20)
  • bloggerdome (19)
  • process (19)
  • pivotal tracker (19)
  • design (18)
  • jasmine (18)
  • ios (18)
  • webos (17)
  • objective-c (17)
  • android (16)
  • palm (16)
  • "soft" ware (16)
  • fun (15)
  • tracker ecosystem (15)
  • ci (15)
  • cedar (15)
  • rails3 (14)
  • performance (14)
  • gem (13)
  • bdd (13)
  • selenium (12)
  • css (12)
  • goruco (12)
  • bundler (12)
  • tdd (12)
  • meetup (11)
  • railsconf (11)
  • nyc-standup (11)
  • capybara (10)
  • mac (10)
  • mojo (10)
  • chef (10)
  • rubygems (9)
Subscribe to Community Feed
  1. ←
  2. 1
  3. 2
  4. 3
  5. →
  • About
  • Case Studies
  • Team
  • Community
  • Careers
  • Contact
  • Labs
  • Events

Contact Us

contact@pivotallabs.com
+1 415-77-PIVOT
TwitterLinkedInFacebook

Pivotal Tracker

Tracker is the award-winning agile project management tool that enables real-time collaboration around a shared, prioritized backlog.
Visit pivotaltracker.com >