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: August 2012

Jonathan Berger

[Standup][NY] 08/23/12: So Long And Thanks For All The Pong

Jonathan Berger
Thursday, August 23, 2012

Interestings

Airbrake integration for Pivotal Tracker

You can pull errors from Airbrake into a PT project as bugs utilizing PT’s “Integrations” feature.
Updates from PT can be propagated back to Airbrake.

http://pivotallabs.com/users/rdunlop/blog/articles/2248-airbrake-the-art-of-fingerpointing

patternify.com: pixel pattern-making tool

http://www.patternify.com/ is a neat little web app that helps you make patterns for background images.

Bullet

https://github.com/flyerhzm/bullet

A gem that helps you optimize N+1 queries and find unused eager loaded queries

Events

Thursday: Hardware Hacking Group Lunch

We’re going to review setting up the Arduino environment and look at the beginnings of our first project, the Vim Clutch aka Pivedal.

Thursday: The First Annual Summer Intern Farewell Table Tennis Memorial Tournament

In honor of our interns who will be departing soon, the NY is holding an office-wide ping pong tournament to decide for once and for all who the best ping pong player is.

Direct questions to Acting Commissioner Somers or Acting Deputy Vice Commissioner Goddard.

  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Ben Moss

Running JSHint from within Jasmine

Ben Moss
Wednesday, August 22, 2012

I often find myself wasting a lot of time debugging a mysteriously failing Jasmine spec, only to find the root cause being some missing semicolon, the accidental use of double-equals equality or some similar Javascript eccentricity hiding inside my code. On my current project we had been using JSHint through the jslint_on_rails gem to lint our Javascript as part of our test suite, but the unfortunate part of that is that it’s outside of our normal TDD cycle, functioning more like a style enforcer than something that can actually help you find bugs.

To help with getting more instant feedback, I wanted to see if we could get JSHint to run against our code from within the Jasmine test suite itself. I came across this blog post from Brandon Keepers describing how he does exactly that.

One gotcha I ran into was that I had a number of global objects defined in my specs both by Jasmine and several libraries we were using. JSHint defines some options for whitelisting common globals in its docs under “Environments”, but does a poor job of explaining how to whitelist additional variables. I discovered that by passing an object literal of globals as a third argument to the JSHINT function, I could exempt these from definition warnings.

A partial list of ones I’ve so far found handy:

var globals = {
   _: false,
   _V_: false,
   afterEach: false,
   beforeEach: false,
   confirm: false,
   context: false,
   describe: false,
   expect: false,
   it: false,
   jasmine: false,
   JSHINT: false,
   mostRecentAjaxRequest: false,
   qq: false,
   runs: false,
   spyOn: false,
   spyOnEvent: false,
   waitsFor: false,
   xdescribe: false
};
  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Ronan Dunlop

Airbrake – The art of fingerpointing

Ronan Dunlop
Wednesday, August 22, 2012

Airbrake is a great tool for identifying errors generated by other apps all in one place. I guess if you’re the offending app you might call it a rat, snitch, stool pigeon or fink – but to the rest of us it’s the canary in the coal mine that can save your butt.

As of today you can view Airbrake errors from within Pivotal Tracker and link activity back into Airbrake as a Tracker comment on the error it’s self.

The folks at Airbrake have explained in detail the two stage setup required to integrate Tracker with their app. Check it out here. If you’re new to Airbrake, it’s free for 30 days, so give it a try and tell us what you think.

  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Whitney Schaefer

Standup SF 8/22/12 – Database Backup Fun

Whitney Schaefer
Wednesday, August 22, 2012

Helps

  • ActiveRecord::UnknownPrimaryKey error when restoring backup on Heroku

Suggestions:

  • Check foreign key constraints
  • Use pgbackup

  • Taps Server Error: PGError: ERROR: time zone displacement out of range:

Taps Server Error: PGError: ERROR: time zone displacement out of range: “1970-01-01 12:00:00.000000+5857411200″

Suggestions:

  • Use pgbackup
  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Jonathan Berger

[Standup][NY] 08/22/12: Glacial Downloads

Jonathan Berger
Wednesday, August 22, 2012

Interestings

Amazon Glacier: really slow storage

Amazon Glacier is an extremely low-cost storage service that provides secure and durable storage for data archiving and backup.

Amazon Blog Post explaining more:
http://aws.typepad.com/aws/2012/08/amazon-glacier-offsite-archival-storage-for-one-penny-per-gb-per-month.html

Direct link: http://aws.amazon.com/glacier/

Events

Wednesday: Ember/Sproutcore meetup

Thursday: The First Annual Summer Intern Farewell Table Tennis Memorial Tournament

We’ll send off this summer’s interns with an office-wide ping pong tournament. Many will enter. One will leave.

Seeds and format to be done at lunch today. Direct questions to Acting Commissioner Somers or Acting Deputy Vice Commissioner Goddard.

  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Jeff Hui

[SF] Standup 7/21/12

Jeff Hui
Tuesday, August 21, 2012

Interestings

  • Always call jasmine.Clock.useMock() after anything that uses setTimeout or setInterval (e.g. _.throttle)

This is smallest example that reproduces the problem we saw in our codebase:

describe(”underscore”, function() {
var foo, throttledFoo;

beforeEach(function() {
jasmine.Clock.useMock(); // bad!

var Mod = Backbone.RelationalModel.extend({});
var Col = Backbone.Collection.extend({model: Mod});
new Col([{selected: false, trashed: false}]);

foo = jasmine.createSpy();
throttledFoo = _.throttle(foo, 500);

// jasmine.Clock.useMock(); // good!
});

it(”should 1″, function() {
throttledFoo();
});

it(”should 2″, function() {
throttledFoo();
});

it(”should 3″, function() {
});

it(”should 4″, function() {
});

it(”should consistently pass but doesn’t”, function() {
expect(foo.calls.length).toEqual(0);
throttledFoo();

expect(foo.calls.length).toEqual(1);

throttledFoo();

expect(foo.calls.length).toEqual(1);

jasmine.Clock.tick(501);

expect(foo.calls.length).toEqual(2);

});
});

  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Austin Vance

[Standup][Boulder] 08/21/12: Wanna redo the repeater?

Austin Vance
Tuesday, August 21, 2012

Helps

  • Does anyone have any tips to get the Rails source running with all the ActiveRecord tests painlessly?

Interestings

  • rake db:migrate:redo does not generate a schema.rb so if you want your schema to reflect your current database rake db:migrate:redo db:schema:dump
  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Jonathan Berger

[Standup][NY] 08/21/12: Ping Pong Culture

Jonathan Berger
Tuesday, August 21, 2012

Interestings

Rails console –sandbox

Rails console --sandbox

If you run the Rails console in “sandbox” mode, all of your changes to the database will be rolled back — as in a transaction — once you close your session. Good for mucking around.

Events

Tuesday: Brown Bag – by Johnny Mukai

“What we talk about when we talk about code.”

Thursday: Ping pong tournament

NY office-wide ping pong tournament to decide for once and for all who the best ping pong player is.

Seeds and format TBD.

  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Charlie Springer

Tracker Screencast: Shortcuts!

Charlie Springer
Monday, August 20, 2012

Shortcuts rock, make things easier, and let you move more quickly in Tracker. This screencast says it all but here’s the cheat sheet which you can get to with the ? button.

The seatbelt light’s off, you’re free to move about Tracker with your keyboard!
Wait till the end to hear about what’s coming up in shortcut development.

  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Whitney Schaefer

[Standup][SF] 08/20/12

Whitney Schaefer
Monday, August 20, 2012

Interestings

  • Capybara/Selenium wait_for_ajax is your friend

A good generic wait until the last AJAX call has returned before moving on to your next assertion. Solved a lot of unstable-in-ci Capybara specs for us

http://agilesoftwaretesting.com/selenium-wait-for-ajax-the-right-way/

  • 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. ←
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. →
  • 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 >