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
Sarah Mei

Election Day Special!

Sarah Mei
Tuesday, November 2, 2010

Help:

We made a branch in git called “–track” by accident, and now we can’t get rid of it. git thinks it’s a command-line argument, even when it’s in quotes.

Here’s the command what did it:

$ git checkout -b --track origin/actual_branch_name
Branch --track set up to track remote branch refs/remotes/origin/actual_branch_name.
Switched to a new branch "--track"

Consensus: kill it through RubyMine or gitX. There is also a way through the command line:

$ git branch -d -- --track

…but make sure you get the dashes in all the right places.

Interesting:

  • reset after tail – sometimes, if your PS1 has colors (or square brackets, or … ?) you can lose your Terminal after tailing a file. To get it back, type reset, which should work even if you can’t see it echoing. You may need an extra return before it.

  • The Giants seem to have won! There’s a parade tomorrow, right in front of the office. If you’re coming for the tech talk, leave extra time as streets will be closed and they’re expecting a crowd.

  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Andrew Kitchen

Open Source Development Workshop — Thursday, October 28 at 6:30PM

Andrew Kitchen
Wednesday, October 27, 2010

Open Source Development Workshop

Thursday, October 28 at 6:30PM

Pivotal Labs is hosting and our own Sarah Mei is leading an open source workshop for developers interested in learning about contributing to open source projects. Sarah will be using the Diaspora project as an example, and the Diaspora team will be on hand to assist. Email Sarah at sarahmei at pivotallabs dot com for more info, or view the meetup page here

Standup 2010-10-26 and 2010-10-27

Help!

“How do I use RVM on the server?”

RVM on the server can be fraught with peril. Be sure that your (or your process’s) shell is being invoked in a way which plays nice with RVM, for instance bash -lc or bash -ic in cron.

“Why does Google Street View give me a grey dead area instead of a picture of some dude’s house?”

Most likely this is due to having requested a view for an area where none is available. The Google docs have been found to be a bit misleading on this, however there is an api call to see if there is an available street view for a given radius — try increasing this radius near your lat & long until you get success in order to avoid a useless response.

Interesting

  • Running MySql in ramdisk does not yield any discernable performance boost for small to medium-sized rails projects, for test suites or the app itself. This is probably due to the fact that most projects’ code and data are already small enough to fit in cache.
  • Looking for a real perf boost? Try REE with the Twitter GC tweaks
  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Andrew Kitchen

Standup 2010-10-25 — Rails 3-related helps and interestings

Andrew Kitchen
Monday, October 25, 2010

Help

  • Edit: followup to delayed_job job logging failures

Switching to resque might help, but not without first rewriting the jobs.

More research yielded the fact that delayed_job reopens all files (including the log files) when it spins up. Under Ruby 1.8, File#reopen defaults file mode to last set, while 1.9 defaults to read only. This could easily cause logging failures. (with a nod to Davis W. Frank for the followup info)

Interesting

  • Calling .destroy on a has_one relationship does not update the record association to nil, which can cause problems when the relationship is subsequently updated. It was suggested that calling .clear on the association might help work around the issue.

  • Rails 3 request helper methods in ActionController::TestCase::Behavior take the session and flash hashes as parameters, as opposed to setting them explicitly before making a normal get request. Compare http://api.rubyonrails.org/classes/ActionController/TestCase/Behavior.html#method-i-get with http://api.rubyonrails.org/classes/ActionDispatch/Integration/RequestHelpers.html#method-i-get for more detail

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

Standup 10/15/2010: OAuth without net/http, right_aws with webmock oddities, which gem for aws

Pivotal Labs
Friday, October 15, 2010

Help

“Anybody have any experience using the oath gem without net/http? There are some things we want to do that it’s not good at”

Like posting large files? Shell out to curl. There are a couple things nobody seems to have done right, yet, and that you just have to use curl for.

“What is the right gem to use for AWS? The official one seems newer than this right_aws that hasn’t had a commit in a couple years”

You are probably looking at the wrong version. Another project was using right_aws and they swear it’s newer than that. It sounds like the gem forked and you probably want the RightScale one. Either way it definitely works better than Amazons ec2 gem, which will get the job done sometimes, but is less than optimal.

Interesting

Testing right_aws with webmock

A team was seeing webmock continuing to feed a bad result to all of their tests (within a timeout for the shared connection) when one failed, instead of trying again. They switched to using connection=dedicated instead of shared.

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

Standup 10/14/2010: Digest Auth with filters, Flot FTW, Jasmine in Selenium size issues

Pivotal Labs
Thursday, October 14, 2010

Help

“We’re using Rails 2.3.x built-in Digest Auth to hide the production/demo env of a site that doesn’t have a user model yet. It seems like every few requests we have to reauth – possible worse when multiple computers request concurrently”

Make sure there aren’t any failing requests (such as an ajax firing off an illegal route) that might be causing the browser to think it is no longer authed? Maybe just stick with using Basic Auth via an .htaccess? A number of other comments and guessed were thrown around, but nothing conclusive.

Interesting

Flot FTW

The team asking about charting yesterday said Flot was the answer. Highchart has licensing/pricing they didn’t like, Graphael might be getting stale, as it hadn’t been touched in a while, and they needed more data than the GET limit, which prevents the use of Google Charts.

Some Jasmine tests were failing on CI in Selenium, but not locally.

It turned out to be some tests that fail when the window size is to small. The team bringing this up added a helper for Jasmine to resize the window if it was too small. Another team mentioned new Selenium runs fullscreen by default. Another team gave the Jasmine test block a static style and large size in css.

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

Standup 10/13/2010: Charting suggestions, rvm issues, spewing errors to hoptoad/newrelic

Pivotal Labs
Wednesday, October 13, 2010

Help

“Anybody have a favorite for charting on the client-side?”

Google charts works well for getting something simple going quickly, use Flot for anything beyond that. Some people mentioned the existence of Raphael.js, but nobody had much experience with it.

“We had to make sure we were using rvm as a function instead of a binary and-”

You installed it wrong – the install checks that rvm is a function.

“We are seeing a lot of errors (more than the hoptoad limits) going to hoptoad and newrelic for error types that are handled by rails built-in rescues, like 404s for ActiveRecord::RecordNotFound. The app is serving up the correct error page, but still sending an error to the services.”

These services hook in lower than that so they can get all error info. Make sure nothing happened to their config of which errors to ignore, because they have their own way of skipping them.

Also consider turning off the default route to cut back on crawlers. This would likely just trade 405s for 404s, though.

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

Standup 10/12/2010: checking in Gemfile.lock versus ruby version differences

Pivotal Labs
Tuesday, October 12, 2010

Help

“Yesterday we agreed to always check in the Gemfile.lock, but 1.8 and 1.9 versions differ slightly so…?”

It wouldn’t quite make sense to maintain a whole separate branch, but someone cleverly suggested making the file a symlink and having your .rvmrc manage which file the symlink points to.

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

Standup 10/11/2010: checking in Gemfile.lock, chef client-server, rspec test vs. develoment, and IE7 only quirks mode

Pivotal Labs
Monday, October 11, 2010

Ask for Help

“Does everybody check their Gemfile.lock into source control?”

Yes! Yehuda said so and if you don’t the earth might fall into the sun.

“Anybody have any experience using chef client-server?”

A number of people said they had seen it go down in flames and get ripped out of projects in favor of chef solo.

*”Is there a way to get IE7 to render in quirks mode, but IE8 and everything else in standards?”

Not that anybody knows of. IE6 can be triggered by an xml prolog before the doctype, but they fixed that for IE7. So your choices are IE6 and earlier in quirks and IE7+ in standard, or all IEs in quirks.

Interesting Things

  • A pivot had trouble with rspec being not be installed in development mode and getting rake spec to run right, but others had had no trouble with it in test env only.

  • You can do layouts in pure css that used to be a lot of work, like 100% height with fixed px headers/footers, using the display:table|table-row|table-cell styles.

This will work in the standards based browsers and IE8+. This means you need to use an alternative for IE7, either js, expressions in an IE only stylesheet, or a quirks-mode based layout using fixed padding. I experimented with this over the week-end and blogged about it: The new css 100% width and height with header and sidebar

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

Standup 9/29/2010: ActiveRecord finders strings vs ints; Paperclip and S3 timeouts

Joseph Palermo
Wednesday, September 29, 2010

Ask for Help

“S3 is giving us 400 timeout responses on every first upload for a request. All subsequent uploads for the same request seem to work fine.”

This turned out to be a bug in the HEAD version of Paperclip. They added a fingerprint method that creates a MD5 hash out of the original file, but the method forgets to rewind the original file when done. So S3 times out while waiting for data, but then rewinds the file before trying again. So it does ultimately get uploaded, but it was leading to ~10 second delays in the middle of the request.

Interesting Things

  • Be careful when doing MyModel.find_by_column-that-is-a-string in ActiveRecord. If you pass it an integer it won’t do a type conversion and will pass it down to SQL as an unquoted integer. MySQL will then not use any indexes you have on that column. This is with Rails 2.3.x and MySQL 5.0.x
  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Dan Podsedly

Defrosting your Icebox

Dan Podsedly
Tuesday, September 28, 2010

Pivotal Tracker makes it easy to add stories to you project. Hit Ctrl-A, type a quick sentence along the lines of “As a user, I can…so that…”. On most of our projects, we find ourselves discovering new stories all the time, based on the continuous feedback loop that Tracker encourages. Not all stories end up in the backlog, but it’s liberating to be able to capture new ideas and user feedback as they occur.

The downside of this is that the icebox, where all new and unprioritized stories live, can grow out of control very quickly. It’s not uncommon for longer lived, active projects to end up with hundreds, even thousands of stories on ice.

Yesterday’s Priorities

A large and growing icebox can be a burden. Your project takes longer to load, it’s harder to find that story you’re sure you added just a few weeks ago. It becomes harder to focus on the future, due to what feels like ever growing debt of promises and yesterday’s priorities.

In our eternal optimism as software developers, we like to hang on to our stories. We know we’ll have more bandwidth just as soon as we get through this month’s big release. Besides, we’re hiring, right?

Story Overflow

The reality is that on most software projects, the rate of new story discovery far exceeds the rate at which stories get completed. Typically, a new story in the icebox either gets prioritized and moved to the backlog fairly quickly (either immediately or in the next planning session), or it ends up staying in the Icebox indefinitely. New priorities have a way of displacing older ones.

Stories are perishable, and get stale over time, even when on ice (so to speak). It’s good practice to clean up your icebox regularly, and delete stories that have been sitting there for a while, and are unlikely to see the light of day any time soon. The old stories may have seemed really important at some point in the past, and involved the whole team spending hours in front of a whiteboard or a table full of cards writing them, but if the feature becomes a priority again in the future, you’re probably better off doing it again, based on all the new knowledge you’ll have by then. The important thing is the conversation and a fresh flow of ideas, not so much the stories themselves.

Export before Deleting

To preserve the ideas and any comment discussion in these old stories, it’s a good idea to export them before deleting them. You can do so by selecting them in the icebox via the selection boxes to the right of story titles, and using the Actions menu to export them. You can also export the entire icebox on the project Export CSV page, which is accessible via the Actions menu in your project.

Another option is to move old icebox stories from your active project to a separate project, which serves as a searchable archive. You can move stories from one project to another via the Actions menu as well.

We typically keep exported old stories in a Google Docs spreadsheet, shared with the entire development team. The flexibility of a spreadsheet makes it possible to slice and organize the stories in arbitrary ways, and the shared nature of Google Docs make it easy to for anyone on the team to go back and look for ideas from the past, even to re-import selected stories back into your Tracker project if it’s really needed.

Icebox as an Inbox

Use the Icebox as an inbox, for continuous review of new stories, rather than a permanent storage device. As new ideas, feature requests, and bugs come in, triage them regularly. If a new story is really important, for example a production bug, you’ll probably drag it into the backlog immediately. Otherwise, review newly created stories with the team at the next iteration review and planning session, and either estimate them and prioritize them (by dragging them to the backlog), or move them into a system better suited for long term storage, like a Google Docs spreadsheet or a more general purpose project management or issue tracking tool, like JIRA or Lighthouse. Tracker has built-in integrations with these tools, allowing you to bring back and link stories easily with drag and drop import.

  • 0 Shares
  • Share on Facebook
  • Share on Twitter

Topics

  • agile (778)
  • rails (113)
  • testing (87)
  • ruby (83)
  • ruby on rails (70)
  • jobs (62)
  • javascript (54)
  • techtalk (44)
  • rspec (38)
  • activerecord (29)
  • productivity (29)
  • gogaruco (29)
  • ironblogger (29)
  • git (28)
  • nyc (27)
  • rubymine (25)
  • bloggerdome (22)
  • mobile (22)
  • cucumber (20)
  • process (19)
  • pivotal tracker (19)
  • 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)
  • tdd (13)
  • selenium (12)
  • css (12)
  • goruco (12)
  • bundler (12)
  • meetup (11)
  • railsconf (11)
  • nyc-standup (11)
  • capybara (10)
  • mac (10)
  • mojo (10)
  • chef (10)
  • api (10)
Subscribe to agile Feed
  1. ←
  2. 1
  3. ...
  4. 32
  5. 33
  6. 34
  7. 35
  8. 36
  9. 37
  10. 38
  11. ...
  12. 78
  13. →
  • 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 >