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

Will Read

Standup 2010.07.15 That's-What-You-Get-For-Leaving-A-Comedian-In-Charge Edition

Will Read
Thursday, July 15, 2010

Interesting Things

Checkout http://meriline.com and/or monoprice.com for a much more economical cable adapter solution. DVI to mini-display port adapters will only set you back about 1/3 the cost.

And today, standup was ended on a humorous note.

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

Standup 2010.07.14 Bastille Day Edition

Davis W. Frank
Wednesday, July 14, 2010

Ask for Help

“What’s the best way to use Bundler and Rubymine?”

Rubymine 2.5 supposedly supports Bundler. Our default workstation install now uses RVM to manage Ruby interpreters & Gemsets, Rubymine 2.0 sees each interpreter/gemset as a separate Ruby SDK. So RVM manages our gem bundles.

Interesting Things

  • Nokogiri v1.4.2, really needs JRuby 1.5.1 to work properly

A JRuby project had an issue where they upgraded Nokogiri, but got a “Can’t find this function pointer” message. It turns out that the issue was an out-of-date libxml. The solution was to upgrade JRuby to 1.5.1, which they did with this addition to their Chef scripts:

execute "install_libxml2_2.7.6" do
  command 'ACCEPT_KEYWORDS="~amd64 ~x86" emerge =libxml2-2.7.6'
  not_if { FileTest.directory?("/var/db/pkg/dev-libs/libxml2-2.7.6") }
end
  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Pivotal Labs

Hello World

Pivotal Labs
Wednesday, July 14, 2010

It may be cliche, but I felt that it was appropriate to start my first blog post with the introductory phrase “Hello World.” Just as the first thing I learned to program was how to print the phrase “Hello world” on a computer screen, I feel that the month I’ve spent interning at Pivotal Labs has been an introduction into the world of software engineering.

Before I begin reflecting about my time at Pivotal in ernest, I feel that I should give some background about me so that my posts can be understood in the proper context. I am a Computer Science major at Berkeley going into my Senior Year. My first job in the field of software engineering was last summer, where I worked for a small company that did technology strategy campaigns for grassroot political movements. The first language I programmed in was Java, followed by Scheme, more Java, C, a little Python, and Groovy on Grails for my job last summer. Also, the only version control system I had really used prior to Pivotal was Subversion, and only when my professors had forced me to. Given all that, just about everything at Pivotal has been new to me, from Ruby and Rails to Git to Pair Programming, I feel like I’ve learned at least one new thing a day since I’ve started, and I will attempt to reflect on all of it going forward from today.

The first thing I noticed on my first day was how open the office felt. I had been to the office for my interview, but I was pretty nervous at the time and not particularly aware of my surroundings. As I’ve continued to work there, I’ve realized what a boon it is to work in an office with no cubicles. For one thing, I feel less trapped and enclosed by the office environment, which at the very least, prevents going to work from feeling like a prison. In addition, I’ve noticed how it promotes knowledge sharing because since all space is essentially public, developers feel free to walk over to each other’s areas to ask for help.

Another thing that stands out is the 9-6 work day, and how almost every programmer leaves their desks at 6 pm everyday. This was pretty surprising to me coming in. Almost everyone is familiar with the stereotype of a programmer pulling an all-nighter, or staying late to fix a particularly devious bug, and while I wasn’t expecting anything so drastic, I imagined that there would at least be a few people staying late coding. After leaving work while in the middle of a hard problem, I realized that not only does the strict 9-6 work week help keep us from getting burned out, but that by going home and sleeping on a problem (no matter how tempting it is to try and solve it immediately), I have been able to come up with better solutions quicker than I would have had I sat there for an extra hour or two.

The last reflection I want to make about my first couple of days at Pivotal is the breakfast. It has been widely publicized that eating breakfast in the morning helps people be more productive and focused. As a student who tries not to schedule classes before noon if possible, I have found this to be particularly true. Also, I feel that the breakfast tends to promote some sort of unity/harmony since a majority of the office shows up and socializes with one another.

That’s all I have for now. In my next post I’m planning on giving my thoughts on pair programming.

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

Standup 2010.07.12 & 13: Two-fer BOOM Edition

Davis W. Frank
Tuesday, July 13, 2010

Interesting Things

iOS3 and hardware-accelerated CSS

CSS 3D Transforms are accelerated with hardware on iOS (3.2), but not the 2D ones. So if you want to take advantage of hardware, break out your linear algebra and add an extra dimension:

div {
       -webkit-transition: -webkit-transform 1s ease-in;
       -webkit-transform: translate(10, 0);  /* NOT ACCELERATED */
}

…will be slow. While this:

div {
       -webkit-transition: -webkit-transform 1s ease-in;
       -webkit-transform: translate3d(10, 0, 0);  /* ACCELERATED */
}

…will be crazy fast and smooth.

Also of note, the opacity CSS property is accelerated on iOS 3.2 and greater, iPhone and iPad.

BOOM!

Cached Taggings

Using act_as_taggable_on? There is an un/poorly-documented option for caching your taggings:

Say you have tv_shows tagged with genres. If you add a migration like this:

 add_column :tv_shows, :cached_genre_list, :string

The acts_as_taggable_on looks for this column and on save updates it with a comma separated list of the associated tags. Thus when you’re then reference in your view you can reference:

tv_show.cached_genre_list

BOOM!

Restart Rubymine to find your new specs

If you’re using the latest Rubymine EAP, and you create a new spec file but can’t seem to get Rubymine to execute it, just restart Rubymine. BOOM! And you’ll be able to run your specs.

S3, Net::HTTP and JRuby

A project on has workers that manipulate PDF files in a pipeline. Each processing step stores its result on Amazon S3. Subsequent processing steps start by fetching the previously stored pdf using net/https. Occasionally the fetched PDFs are truncated and invalid.

After much digging and headscratching, the problem appears to have been JRuby 1.3.1. Moving the app over to JRuby 1.5.1 BOOM! fixed the issue and the PDFs are now all fine.

  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Sean Beckett

New Tech Talk: Agile the Pivotal Way

Sean Beckett
Monday, July 12, 2010

Ian McFarland, Principal and VP of Technology for Pivotal Labs, reprises his popular RailsConf 2010 talk. Ian describes the technical and social aspects of how Pivotal practices agile software development.

“We’ve been practicing these methods for over 10 years, so we’ve learned a thing or two about how it all works. We want to share what we’ve learned…and we think it can make your own work more sustainable, delightful, and productive.”

Slides available at: http://cot.ag/cHHsCi

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

  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Will Read

Expectations: What if Life was a Rails Project?

Will Read
Monday, July 12, 2010

In any consulting job, a project truly fails when expectations are not clearly communicated. In Ruby, we have a great tool for communicating expectations about code. What if we applied that same tool to real life? The anchors at Pivotal Labs have a wealth of knowledge about what elements contribute to a smooth running project. I have my own ideas about what makes a project fun to work on. Below is a very short start to what I like to see about a project going in. This is not to say that a project that fails this spec is “bad”, just that I feel a lot better when a project already has these things in place.

Check out the Pastie

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

Standup 07/09/2010: Jumbo Edition

Joe Moore
Friday, July 9, 2010

HELP!

“Any recommendations for a recurring-payment system that has to support charge amounts that change?”

Check out Active Merchant, PayPal API, Chargify, or simply rolling your own and charging the credit cards directly.

“I’m having a hard time debugging jQuery live events…”

Check out FireQuery. You can also look at the data attributes attached to the target DOM elements.

“Sometimes our S3 assets download incompletely when using Net::HTTP.”

Things to try include:

  • Save a checksum for all assets and compare that after download to detect incomplete downloads.
  • Check the Content-Length header against the actual content length of the asset.
  • Did you set the Content-Type header? Maybe Net::HTTP is confused.
  • Try witching from Net::HTTP to the S3 gem.

“How can we prevent users from printing the web page?”

Though nothing can prevent users from making a screen shot, deterrents might include:

  • A custom print.css.
  • Some printers will not print the EURion constellation. Try embedding it in the image.

“Our Solr commits have sloooooooooooooooowed doooooooooooooooooooooooown.”

As Solr commits increase the warmers might take longer to spin up. You might need to add more servers or space our your commits.

Interesting Things

  • Pivotal is trying to retire our saucelabs-adapter for Sauce Labs. Sauce has improved their adapters — if you are having problems with them, let Sauce (and us) know!
  • MySQL Partial Indexes can be super handy.
  • YouTube announced a while back that they are changing their URL format for videos. In a nutshell they are moving away from query parameters, changing the “?” to “#!”, so http://www.youtube.com/watch?v=ylLzyHk54Z0 changes to http://www.youtube.com/watch#!v=ylLzyHk54Z0.
  • My Tether turns your Palm Pre into a WiFi hotspot. Sprint only!
  • RubyMine blah blah Rspec blah blah… check out this blog post to find out how to fix Rspec stack traces.
  • SproutCore Founder Leaves Apple to Build HTML5 iPad Apps
  • Don’t use Ruby’s split() method to parse tab-delimited files — you might lose the extra white space at the end of the file when you have empty columns:
  irb> "Mr.tBobtSmith".split("t")
  => ["Mr.", "Bob", "Smith"]
  irb> "Princett".split("t")
  => ["Prince"]
  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Sean Beckett

SideReel seeks Rails Developers in San Francisco

Sean Beckett
Thursday, July 8, 2010

At Pivotal Labs, one of the services we provide our clients is helping them interview and hire. Pivotal Labs and our clients place a strong emphasis on Agile development and its many aspects: Pair Programming, Test-Driven Development, rapid iterations, and frequent refactoring.

SideReel, a three-year-old San Francisco company, is looking for a Rails Developer to join their team. The full job posting follows.

We eat Rails for breakfast, Gems for snacks!

Ruby on Rails you say?

Yep! We may be a profitable 3 year old startup, but SideReel is brand new to Ruby on Rails. But unlike other startups, we’ve got some serious traffic and intend to put Rails to the test. Someone once told us we were crazy to re-write our app in Rails, but they were really lazy so we ignored them. If you’re looking for a fun challenge to sink your coffee-stained teeth into, you’ve just found it.

What’s a SideReel.com?

Only the best website in the world for finding, tracking and watching TV online! Check it out, srsly. We’ve also got: millions of users who love us as much as we love them, a wicked cool dev team that works and plays together, a killer office in the top floor of an old brick office building south of Market Street in San Francisco, $$$, vacation time to spend it, a giant chunk of the company (aka equity) and fully-paid benefits.

Tell me about the job already!

Cool! We need an experienced Ruby on Rails web dev to become a core part of our team for the long-haul. Process-wise, we use a test-driven approach to engineering including most elements of Extreme Programming. We work at a sustainable pace and do rapid product iterations, frequent prototyping, and have a fanatical belief in user feedback. We test early and often. We’re very interested in how we can improve how we do what we do.

The ideal candidate is a Ruby/Rails expert who:

  • Has shipped multiple high-traffic Rails sites
  • Has published or maintained a Ruby Gem or Rails Plugin
  • Is generally really awesome at stuff

You should be skilled in many of following areas:

  • jQuery + Rails
  • Memcache
  • Rspec
  • CSS
  • Cucumber/Integration testing
  • Other skillful stuff

You must be at least this tall to ride:

  • Have shipped a Ruby (with or without Rails) web project
  • Have significant javascript expertise
  • Love working with and in teams
  • Be excited about Agile software development

Please respond with at least 2 of the 4 following pieces of information:

  • What previous projects are you particularly proud of?
  • Where did we leave our keys / do you have them?
  • What are your favorite agile development practices, and how have they helped you?
  • What excites you about software development in general?

To apply, pls send interwebs mail to jobs@sidereel.com with answers to the above and your resume.

  • 0 Shares
  • Share on Facebook
  • Share on Twitter
Sean Beckett

TaskRabbit looking for early stage Rails Developer in San Francisco

Sean Beckett
Thursday, July 8, 2010

At Pivotal Labs, one of the services we provide our clients is helping them interview and hire. Pivotal Labs and our clients place a strong emphasis on Agile development and its many aspects: Pair Programming, Test-Driven Development, rapid iterations, and frequent refactoring.

TaskRabbit, based in San Francisco, is looking for a Rails Developer to double their development team. The full job posting follows.

Are you looking for an experience beyond the normal 9 to 5? Do you want to collaborate with a fun team working on the latest technology? Or maybe you just have too much dry cleaning. Come and join TaskRabbit, where the driving vision is to change the way people get every day tasks done.

<techstuff>We are built with Ruby on Rails, MySQL, and HTML with a sprinkle of jQuery (for added hotness). We’re deploying to EC2 using Capistrano and Bundler and run delayed_job to get stuff done. Our controllers lean on inherited_resources, authlogic, and declarative_authorization. Most of the code is in the models. We have great test coverage in Cucumber and RSpec.</techstuff>

Not used that stuff before, but ready to dive in? Perfect, too. You would be the second full-time engineer on the team and would be working with some passionate, smart, and savvy entrepreneurs who like to work hard, play hard, get home for dinner, and then maybe code a little bit more.

At TaskRabbit, we are creating innovative and impactful web and mobile features through the melding of social graph analysis, high-quality user experience, and analytics-driven optimization. We err on the side of execution over strategy, following the numbers and our guts to get stuff in front of our customers to see what they think. If you can do that in a solid way, you will be a real owner in TaskRabbit’s future and contribute at a highly impactful level.

We are currently working out of Dogpatch Labs at Pier 38, an awesome environment with a lot of other cool startups and entrepreneurs. We are also kicking off an exciting summer project with Pivotal Labs. This is an amazing opportunity to work with the experts in the Ruby on Rails development space.

Did we mention the PERKS?

  • Cash comp will be balanced with high equity – we’re willing to reward and invest in the best talent
  • MacBook Pro and any/all resources you need to produce great work
  • FREE Tasks done by TaskRabbit Runners – seriously, we have a built-in personal concierge force 24×7 you can make use of.
  • Work directly alongside the smartest team of entrepreneurs, advisers, and investors you have ever met.

About TaskRabbit

TaskRabbit is a social networking inspired web and mobile platform, creating a marketplace where a community can connect to get everyday tasks done. Our driving vision is to create a community of solutions, leveraging a people cloud, and providing a standard for a new industry we are calling Service Networking.

We won placement in the Facebook Fund incubator program, called fbFund REV, which brought us to the Bay Area for 12 weeks over the summer of 2009. We are backed by savvy and experienced investors including, FLOODGATE FUND (Maples Investments) and Baseline Ventures. We are supported by amazing advisers such as Tim Ferriss (4 Hour Work Week), Shervin Pishevar (SGN), and Scott Griffith (Zipcar).

You will work with a dynamic, fast-moving team who are creative, entrepreneurial, hard-working and focused on excelling in everything we do.

Interested? Please email careers@taskrabbit.com with your resume and cover letter.

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

Standup 2010.07.08: It's Thursday Already Edition

Davis W. Frank
Thursday, July 8, 2010

Ask for Help

“Does anyone have experience with Google Custom Search v. Google Site Search?”

The results sets appear to be different and I don’t expect them to be…

Interesting Things

Heroku’s Console runs in production mode

This means that, unlike script/console on your local box, the Rails Environment doesn’t reload completely before you start hacking away. So if you’re expecting changes to be live, like migrations, they won’t be until you redeploy, restart your app heroku restart, and then run the console.

Request Log Analyzer & Rack::Bug

If you’re doing some performance tuning on your Rails app make sure to check out Request Log Analyzer. It’s great for helping show you all the stupid things you didn’t realize you were doing that was making your requests slow. Another great tool for this type of analysis is Rack::Bug.

  • 0 Shares
  • Share on Facebook
  • Share on Twitter

Topics

  • agile (778)
  • rails (113)
  • testing (86)
  • 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)
  • mobile (22)
  • bloggerdome (20)
  • 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)
  • 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. 4
  6. →
  • 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 >