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: July 2010

Dan Podsedly

Groupon launches Deal Personalization

Dan Podsedly
Thursday, July 29, 2010

Local deal pioneer, and our client Groupon has just launched deal personalization, allowing users to receive deals that are more relevant based on zip code and personal preferences. This is great for all the fans of Groupon out there, as it gives them more interesting deals to choose from, and it allows Groupon to distribute more deals in each city it serves.

We’re excited to have gotten a chance to help with this feature, and look forward to seeing how this reshapes the daily deal landscape!

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

RubyConf awaits!

Pivotal Labs
Thursday, July 29, 2010

Ask for Help

“What do you do when your JS files are so big they crash RubyMine? Like when they are bigger than 300k..?”

Try turning off syntax highlighting. We’re going to try to send a project to JetBrains that reproduces this issue so they can get log a ticket for it.

Interesting Things

  • RubyConf registration starts 8/1 @ noon!
  • You can use swfobject to inject http content into an https page to bypass the warnings in IE. Obviously use this responsibly :)
  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Dan Podsedly

Tracker outages this week

Dan Podsedly
Thursday, July 29, 2010

There appears to have been a data center outage early morning, affecting a number of applications including Pivotal Tracker. This has caused connectivity problems for users in some locations, and it appears to still be persisting for some.

We’re working with our hosting provider to get this resolved as soon as possible, this is our top priority.

This is the second data center outage this week. At the moment, we do not have enough information to know whether the outages are related.

Also, we have received reports that Tracker has been unreachable from certain parts of the world (including China) since the migration to a new data center last week. We’ve filed a request with Engine Yard to investigate, and hope to have this resolved soon.

Our apologies for the inconvenience these outages have caused. We’ll post more information here as we receive it. You can also follow @pivotaltracker on Twitter for updates.

  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Davis W. Frank

Jasmine Presentation at Chicago's BSCamp

Davis W. Frank
Wednesday, July 28, 2010

Jasmine user Roy Kolak gave a presentation last night at BSCamp in Chicago. His slides are here

As you can see, we now have a blog just for Jasmine and want to talk more about people and projects using it. Let us know.

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

Rails 3 RC!

Pivotal Labs
Tuesday, July 27, 2010

Ask for Help

“What good OpenID solutions are there for rails?”

Janrain provides a service and the rpx_now gem that can handle a lot of the OpenID logic for you.

Interesting Things

  • You can use rvm with the --rvmrc --create flags to create a .rc file in any directory that will set the version of ruby to use in that directory. A few people said this is particularly useful to do in the root directory of your projects.
  • jQuery 1.4.3 has a bug with IE7 and live events, e.g. if you register a live event for form submits and for button clicks, when a user clicks a form’s submit button on the click event is fired and not the submit event. 1.42 seems to work correctly.
  • There’s an Android meetup tonight about real time development here in SF. Check it out if you’re interested! We’ve had good experiences at previous meetups with this group.
  • And last but not least… a Rails 3 RC came out late last night! Looks like they’re hoping to have an official release in a few weeks.
  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Pivotal Labs

Standup 07/26/2010: The Bleeding Edge of Bundler

Pivotal Labs
Monday, July 26, 2010

Interesting Things

  • Bundler 1.0.0.rc.1 was released – try it out and help find any issues!
  • There was a warning that running thin in dev mode can cause all requests to be cached in memory… not so thin. Running in production mode doesn’t seem to have this issue.
  • Another warning today – Rails 2.3.8 and mongrel don’t play nicely together. There are some issues with headers not being passed correctly between the two of them. It was recommended to use passenger instead of mongrel if you want to use 2.3.8.
  • 0 Shares
  • Share on Facebook
  • Share on Twitter

monkey patch of the day – activesupport vs. json_pure vs. Ruby 1.8

Alex Chaffee
Sunday, July 25, 2010

The error:

/Library/Ruby/Gems/1.8/gems/json_pure-1.4.3/lib/json/pure/generator.rb:232:in `__send__': undefined method `except' for #<JSON::Pure::Generator::State:0x102f245b0> (NoMethodError)

The environment: Ruby 1.8.7, DataMapper, dm-types, ActiveSupport, or just

require 'json/pure'
require 'active_support'

(as seen in http://gist.github.com/339528)

My solution:

# workaround for activesupport vs. json_pure vs. Ruby 1.8 glitch
if JSON.const_defined?(:Pure)
  class JSON::Pure::Generator::State
    include ActiveSupport::CoreExtensions::Hash::Except
  end
end
  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Pivotal Labs

Standup 7/23/2010: Workin' in a RubyMine, going down-down

Pivotal Labs
Friday, July 23, 2010

“I’ve upgraded Firefox to 3.6 and my selenium and cucumber specs are busted. Anyone else have this issue?”

The selenium-rc jar that comes with webrat needs to be manually updated to the latest version. See prior(http://pivotallabs.com/users/alexander/blog/articles/1241-standup-5-10-2010) posts(http://wjb-tech.blogspot.com/2010/03/ruby-cucumber-webrat-selenium.html).

“Does anyone else ever get ghost files, where RubyMine shows the file as empty but other text editors show the contents, only to have the file return on its own after a few hours?”

Removing RubyMine’s cache directory doesn’t seem to help, nor does restarting RubyMine. Perhaps we can look for a “Mediocre Code Opacity: 0″ in the RubyMine display settings?

Interesting Things

If your debugger stops working in RubyMine, you may want to uninstall all your ruby-debug gems and start from a fresh copy of ruby-debug-ide version >= 3.4.7.

JetBrains often asks for a copy of the project displaying the problem when a ticket is submitted. Maybe we should set up a “RubyMine problem project”.

EngineYard is making progress on their new command-line deploy interface. If you’d like the EY web deploy interface to conform to the patterns of the CLI gem, there’s now a setting in Engine Yard to convert your project over to those rules, meaning you can deploy without re-chef-ing your server. Much faster.

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

Standup 7/22/2010: XML <-> JS scrimmage. Go!

Pivotal Labs
Thursday, July 22, 2010

Ask for Help

“Is there a good heap analyzer to debug some memory issues in our app?”

Some options to look into include rubyprof, valgrind, bleakhouse and memprof.

“Anyone else having problems with RubyMine 2.02 allowing the cursor to be placed at arbitrary locations out beyond the end of the line? We’ve turned off the setting that controls this.”

This can happen if RM is in column-edit mode. Also there’s a setting to “Strip Trailing Spaces” — if you previously were allowing arbitrary cursor placement, you may need to enable this to clean up.

“Anyone have experience dealing with E4X to parse javascript in XML? It seems to be choking on é characters — in the iso-8559 doctype these are legal content.”

No solutions were forthcoming. To recreate this error yourself, plug the following into your Firebug console:

var someHtml = '<p>cr&egrave;me fraiche</p>';
new XML(someHtml);

// => "TypeError: unknown XML entity egrave"

“What is the best javascript XML parser?”

jQuery is recommended in the browser and also works on top of env.js in Rhino. libxmljs is built on top of V8.

“Webmock is having trouble correctly parsing matching query params in SSL. Anyone seen this?”

The easiest thing may be to skip the SSL requirement for the tests.

UPDATE: The webmock issue was resolved using a couple of techniques. Firstly, the keys for your query params have to be symbols, not strings. This avoids a problem with sorting them for the comparisons. Secondly, it’s better to pass the expected url as a regex. This may be related to :443 getting added to the end of SSL requests, or may just be a bug.

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

One team, one Tracker project

Dan Podsedly
Wednesday, July 21, 2010

I often hear questions from Pivotal Tracker users about how to organize teams and projects. We also see many requests for features that would make it easier to see stories from across multiple projects.

Tracker is designed for full immersion in one project at a given time. This stems from how we work at Pivotal Labs.

We organize teams such that a single team (and the people on that team) have a single backlog (and Tracker project). This means that within a team, there are no conflicts in terms of priorities, there is less context switching, and the team is completely focused. It leads to more consistency from iteration to iteration and therefore a steadier velocity, which allows you to have a more accurate insight into how long the rest of the backlog (or a release) might take to complete.

We also make it so that anyone on a given team can grab the next available story from the top of the backlog (or the current iteration). This implies few or no specialists (there is no back-end guy), and is generally referred to as collective ownership. It increases overall efficiency by allowing the team to dynamically re-balance, and minimizes reliance on any individual person (which among other things, leads to more relaxing vacations for developers).

The project’s customer (or product manager) focuses on prioritizing stories in the backlog, and the development team is collectively responsible for delivering software based on the backlog.

We use labels to tie related stories together within a project. These can represent a major feature, specific end customer, etc. Labels can help answer questions like, how much work is left in this large feature?

A single backlog for the entire team does put more work on the plate of the owner of the backlog (customer / product manager), as he or she has to constantly make potentially difficult prioritization decisions, but, thinking hard about priorities is a good thing, and it allows the development team to focus on getting more work done. That ultimately makes everyone happier.

Also, there are people in certain roles (for example executives and designers), that given their nature, tend to be involved with multiple projects at once. Tracker could certainly use some features to help these roles, and we’re thinking about these, but overall, it’s more oriented towards enabling the immersed team.

A single team/project can get large enough to the point where it becomes challenging to manage a single backlog. For us, this point is generally reached with 5 to 6 pairs of developers (or 10 – 12 people). Assuming that more developers can actually add value to the overall project (this is not always the case), it’s probably worth considering splitting the team into multiple smaller teams, each with their own single backlog.

To avoid knowledge and cultural silos with multiple teams, we find it helpful to rotate a few people around teams every iteration. It’s important to maintain consistency (and therefore a steady velocity), so you don’t want to shift too many people around too often – usually rotating just 1 person (on each team) each iteration is enough, assuming you’re pairing and switching pairs within each team often.

In a multi-team (and Tracker project) environment, the product/project manager acts as a load balancer, and allocates work across the multiple teams/backlogs by considering velocity, dependencies, etc. This is typically a full time job. Tracker doesn’t have much out of the box to help with this, but we’re thinking about this as well, although it may be that some of this kind of work is better done in a spreadsheet, or other, more traditional project management tools. (As a side note, we did recently add the ability to move stories between Tracker projects, making things a tiny bit easier for people who manage multiple teams/projects).

I’d love to hear your thoughts on any of this, including suggestions for how to organize large projects and multiple teams (and how Tracker can help with that).

  • 0 Shares
  • Share on Facebook
  • Share on Twitter

Topics

  • agile (781)
  • 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 (21)
  • cucumber (20)
  • design (19)
  • jasmine (19)
  • ios (18)
  • webos (17)
  • objective-c (17)
  • android (16)
  • tracker ecosystem (16)
  • palm (16)
  • "soft" ware (16)
  • fun (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 >