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 2010

Will Read

"Obnoxious" Means It's Working

Will Read
Wednesday, March 31, 2010

Back at the ‘Labs we start off every morning with breakfast at 8:45, then at 9:05 someone rings the cowbell. The cowbell lets everyone know, “Hey we’re doing stand-up, come if you want, carry on if you need to be doing something else.”

The whole company is on their feet, one big 40 person circle. We don’t do the Scrummy standup here. We first intro any new employees, guests, interviewees, etc. Then on to things people need help on that they’re having a hard time solving within their team. Then lastly the “interestings”, stuff like “I made a thing in our tool set that’ll make doing stuff easier”, or “Don’t park your bike on Market Street tomorrow.”

The format is all about being relevant to [most] people who are attending. This is very different from a status meeting – problems get attention and knowledge gets disseminated. I love this stand-up.

Unfortunately, Pivots sometimes go off-site, where there isn’t stand-up Nirvana. In one case, the client was large enough that a handful of us Pivots were at the same place, distributed across several teams. As Pivots do, we created a hybrid of the status stand-up and our company stand-up. Every morning, we’d form a circle, and every morning the circle would be absent of client developers. I didn’t think much of it until I started to realize that stuff we talked about and addressed proactively in our stand-up was biting our client’s developers and they were getting placed in situations where they could only react.

As had been done before my arrival, I invited the client developers to join our stand up in the morning. To make the time easy to remember, and to help propagate the awareness of the event each morning, I obtained a cow bell for our use. Just like being at our HQ, I rang that bell when we gathered for stand-up. For three weeks, no one came.

No one really even acknowledged the sound of the bell. We joked that it only added to our cult-like appearance of standing in a circle. Then one day, I was running late, and missed breakfast, and as it was time for stand-up another Pivot told me he had just over-heard some people talking about the bell… JOY!!!!… using the word “obnoxious”… SADNESS, and he implied that it would be wise to have the ringing stop.

While it may be true that the bell has laid silent, and that it may have been foolhardy to assume what works in one place will work in another, I am not so certain it was a failure. As I said before, the purpose of the bell was to raise awareness, and to call it “obnoxious” is to certainly be aware. If it were just me, I might have continued to ring on. I think the better idea would be to make the stand-up itself be the thing that draws attention, “Where is everyone?”, “Oh they’re all at stand-up, didn’t you know?”

Trust me, I know.

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

Standup 3/31/2010: Ruby Summer Of Code, Neo4j

Pivotal Labs
Wednesday, March 31, 2010

Ask for Help

“Our demo site is running on nginx and protected by basic auth. Flash doesn’t do basic auth. What do do?”

“Any suggestions for using ActiveResource to access nested resources?”
One team was trying to use ActiveResource to access a nested restful web service and found the documentation lacking.

Interesting Things

  • RSOC (Ruby Summer of Code) is looking for mentors. Pivotal is a sponsor and in addition will be providing desk space for some RSOC participants.
  • Neo4j meetup at Twitter HQ tonight! Details on the neo4j blog
  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Sean Beckett

New Tech Talk: Typekit

Sean Beckett
Tuesday, March 30, 2010

Support for @font-face in CSS has created new possibilities for typography on the web. Like all new technologies there are hurdles, both technical and legal. Typekit aims to solve those problems with a centralized, continuously upgraded font-serving platform and licensing models that make sense for the web.

Ryan Carver of Small Batch, makers of Typekit, gives an intro to Typekit. He describes how to use the fonts and demonstrates advanced client-side tools. He also discusses their internal tools for testing and screen-shotting fonts across browsers and platforms.

See all our talks at http://pivotallabs.com/talks

  • 0 Shares
  • Share on Facebook
  • Share on Twitter

Typekit

Tuesday, March 30, 2010 | Run time: 52:42

@font-face in CSS creates new possibilities for web typography but there are technical and legal hurdles. Ryan Carver describes Typekit, a service addressing the problems with a centralized, updateable font-serving platform and web-savvy licensing model.

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

Pivotal Pulse now supports Hudson CI

Joe Moore
Friday, March 26, 2010

Pivotal Pulse isn’t just for Cruise Control any more: our open source CI aggregator now supports Hudson CI, one of the most popular open source continuous integration systems. We use Hudson on several of our projects, so supporting it in addition to Cruise Control was a natural choice. We’ve refactored the code to make it much easier to add support for other CI systems (hint hint).

Download the latest code from http://github.com/pivotal/pulse. When upgrading, be sure to run both bundle install and rake db:migrate.

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

Automating Bundler In Your Deploy

Chad Woolley
Thursday, March 25, 2010

If you are using Bundler to lock and package your gem dependencies in your app (which you should), here’s some tips on making everything automatic in your Capistrano deploy.

Refer to the Bundler Documentation for instructions on how to use Bundler to properly package your gems and check everything in.

Once this is done, however, you still must ensure that two things are done on every machine to which you will deploy:

  1. Bundler is installed
  2. You run ‘bundle install’ on every deploy to install the packaged gems on the local machine (and compile any gems with native dependencies)

Here’s the Capistrano magic to accomplish these two tasks automatically on every deploy:

before "deploy:bundle_install", "deploy:install_bundler"
after "deploy:update_code", "deploy:bundle_install"

namespace :deploy do
  desc "installs Bundler if it is not already installed"
  task :install_bundler, :roles => :app do
    sudo "sh -c 'if [ -z `which bundle` ]; then echo Installing Bundler; sudo gem install bundler; fi'"
  end

  desc "run 'bundle install' to install Bundler's packaged gems for the current deploy"
  task :bundle_install, :roles => :app do
    run "cd #{release_path} && bundle install"
  end
end

Oh, and for you GemInstaller users out there – here’s an easy way to generate a Bundler Gemfile from your geminstaller.yml config:

geminstaller --bundler-export > Gemfile

You’ll probably still need some tweaks, but this will get you started. Just make sure you upgrade to GemInstaller 0.5.5 first (0.5.4 forgot to put the ‘source’ line in the Gemfile).

Happy Bundling!
– Chad

P.S. There is a similar article here, which includes tasks to symlink your .bundle dir into the Capistrano shared directory, but my deploy was pretty fast anyway, so I didn’t worry about it. YMMV.

  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Dan Podsedly

New from Carbon Five: Story Mapper for Pivotal Tracker

Dan Podsedly
Thursday, March 25, 2010

Our friends at Carbon Five have just announced Story Mapper, a release planning tool for your Pivotal Tracker projects. Story Mapper uses the Tracker API, and allows you to plan and manage your project milestones and releases at a high level. We’ve already begun to use Story Mapper on our projects at Pivotal Labs, and are excited about how well the tool complements Tracker and our planning process.

Check out Carbon Five’s blog post on Story Mapper to find out more, and to start using it today.

  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Joseph Palermo

Standup 03/25/2010: Something Interesting from the post

Joseph Palermo
Thursday, March 25, 2010

Ask for Help

“Is there any library for Base64 encoding on the iPhone?”

Interesting Things

  • Some Pivots created a jasmine-nodejs project to run your Jasmine specs headless using node.js

  • A team was getting the below error numerous times while running tests. They managed to track it down to a libxml / Nokogiri load order problem. The errors go away if they require libxml before they require Nokogiri.

ruby(59005,0xa0797720) malloc: *** error for object 0x9586b80: incorrect checksum for freed object - object was probably modified after being freed.
*** set a breakpoint in malloc_error_break to debug
  • 0 Shares
  • Share on Facebook
  • Share on Twitter

Operational Metrics: Justifying Continuous Deployment

Monday, March 22, 2010 | Run time: 57:53

John Allspaw often sees stability and productivity benefits from deploying small code changes more frequently. This talk describes how to determine the right balance for your environment, as well as how effective your current operational processes are.

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

NYC Standup Round-up for Mar 15th – Mar 19th

Pivotal Labs
Friday, March 19, 2010

Spring is just around the corner, and it has been a beautiful week here in sunny NYC. We’ve learned a lot this week, as you’ll see as we do the Round-up!

Ask For Help

  • Kevin and I are having a heck of a time using Web Driver to drive an app that uses Google Maps. Whenever we click on or type into anything displayed on the map, the contents of the map (including the Google logo and the zoom control) move about 20 pixels up. Our tests seem to still work, it just looks like it’s broken. Anyone else seen this or know what might cause it?

Interesting Things

  • Kevin and I discovered that Capybara’s page.execute_script doesn’t like to execute multiple statements. It really wants to evaluate a single expression. The upside of this is that it’s really good at casting Javascript values into Ruby; it seems to work well with strings, numbers, and even arrays. If you really want to execute multiple statements, you can do this:

      page.execute_script <<-JS
        (function(){
          statement1();
          statement2();
          return someValue;
        })()
      JS
    
  • Todd found out the hard way that Ruby’s String#sprintf (also seen as the String#%) will cast your string numbers to octal if you’re not careful. Behold:

      >> "%d" % "010"
      => "8"
      >> "%d" % "08"
      ArgumentError: invalid value for Integer: "08"
        from (irb):2:in `%'
        from (irb):2
    

    Make sure you don’t feed sprintf a string number that starts with a 0 unless you mean it to be octal.

  • Rachel tells us that there’s an upcoming Rails workshop for women in NYC. Rumor has it that Pivotal’s own Sarah Mei is behind it. She’s been known to do such things before. Details as they become available.

  • Pat’s improv show is tonight! Check him out at the Magnet Theater.

  • 0 Shares
  • Share on Facebook
  • Share on Twitter

Topics

  • agile (780)
  • rails (113)
  • testing (88)
  • ruby (83)
  • ruby on rails (70)
  • jobs (62)
  • javascript (55)
  • techtalk (44)
  • rspec (38)
  • ironblogger (32)
  • productivity (30)
  • activerecord (29)
  • gogaruco (29)
  • git (28)
  • nyc (27)
  • rubymine (26)
  • bloggerdome (23)
  • mobile (22)
  • process (21)
  • pivotal tracker (20)
  • cucumber (20)
  • jasmine (19)
  • design (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)
  • bdd (14)
  • gem (13)
  • css (13)
  • tdd (13)
  • selenium (12)
  • goruco (12)
  • bundler (12)
  • meetup (11)
  • railsconf (11)
  • nyc-standup (11)
  • capybara (10)
  • mac (10)
  • mojo (10)
  • chef (10)
  • api (10)
Subscribe to Community Feed
  1. 1
  2. 2
  3. 3
  4. 4
  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 >