Dan PodsedlyDan Podsedly
OAuth For Tracker Twitter Notifications
edit Posted by Dan Podsedly on Sunday June 06, 2010 at 05:10PM

Starting Jun 30, the Twitter API will no longer allow 3rd party applications (such as Tracker) to connect using your Twitter username and password. Instead, applications will be required to use OAuth, an authentication protocol that allows users to approve a 3rd party application to act on their behalf without sharing their username/password.

Pivotal Tracker now uses OAuth for project Twitter notifications. When you enable this feature for your project (see the integrations help page for more on that), you'll be asked to sign in to Twitter (on the Twitter site), and give the Pivotal Tracker application permission to access your Twitter account.

If you have enabled Twitter notifications for your project(s) prior to this release, the stored credentials are in the username/password format. You'll need to remove these old credentials, by clicking the 'Remove Twitter Credentials' button. After you've done that, click the 'Sign In With Twitter' button to re-enable the Twitter notifications using the new, more secure OAuth way.

More information on Twitter and OAuth can be found here.

Adam MilliganAdam Milligan
BDD-style testing for iPhone projects
edit Posted by Adam Milligan on Thursday June 03, 2010 at 10:19PM

A little while ago I wrote about Cedar, a BDD-style testing framework for Objective-C. The responses I received nearly all went something along these lines: "That's great! Too bad I can't use it, since I'm writing an iPhone app."

Hogwash.

I actually wrote Cedar specifically for testing iPhone OS projects we're working on at Pivotal. To prove it, I've started a small public iPhone project that I've test-driven entirely with Cedar. You can get the project here (more on that in a bit); it should eventually allow you to log into Pivotal Tracker, see all the delivered stories in a given project, and accept or reject each one. At the moment it does little more than start up and display the Pivotal Chicken*, but it does contain Cedar specs that run on and off the device.

Sean BeckettSean Beckett
ProFounder seeks Sr. Rails Dev (San Francisco)
edit Posted by Sean Beckett on Thursday June 03, 2010 at 06:01PM

At Pivotal Labs, one of the services we provide is helping clients interview and hire. Pivotal Labs and our clients place a strong emphasis on Agile development and its many aspects: test-driven development, rapid iterations, frequent refactoring, etc.

Here is a job posting from ProFounder, a Pivotal client looking for a senior Rails developer.

Sr. Rails Developer - San Francisco

ProFounder is a new way of crowdfunding startups and small businesses through friends, family, and social network/community involvement online. There is a huge gap and need for funding for startups/small businesses right now and ProFounder has an innovative solution for it.

Founded by Jessica Jackley (Previously Co-Founder of Kiva, the world's first peer2peer microfinance site) and Dana Mauriello (previously an entrepreneur with real experience). We are all passionate about entrepreneurship and its transformative power in the world.

We are looking for a Senior Rails Developer to work along side our CTO (Ryan Garver). This person should have experience with TDD and modern Rails best practices. You will be our second developer pairing with our CTO and eventually helping to build a team as our company grows.

Tommy SullivanTommy Sullivan
Standup 6/3/2010: Jasmine bundled with RubyRacer
edit Posted by Tommy Sullivan on Thursday June 03, 2010 at 12:16PM

Interesting Things

Jasmine bundled with RubyRacer
Jasmine is now optionally bundled with the RubyRacer gem. This lets you run Jasmine tests through Google's V8 engine in a browser-less environment. Similarly, some Pivots paired Jasmine with Johnson and env.js to produce JazzMoney. Right now, JazzMoney is the only headless testing tool for Ruby that has DOM support, but I'm sure RubyRacer has that in mind. You can find JazzMoney here.

Help

Does anyone know how to run specs with a certain name? We're using RSpec to generate fixtures for our Jasmine tests and want those to be updated right before we run our Jasmine task.

You can set SPEC_OPTS with the 'e' flag and give it a string to match test names. Something like this: rake spec SPEC_OPTS='-e "should generate a fixture"'

Tommy SullivanTommy Sullivan
Standup 6/2/2010: RubyMine integrates with Tracker
edit Posted by Tommy Sullivan on Wednesday June 02, 2010 at 12:50PM

Interesting Things

RubyMine Integration
RubyMine is integrating with Pivotal Tracker! Beta version 2.5 lets you follow stories through the IDE's task tool and tags your source control comments with the current tasks. It's nice to see the title of your current story as you work. I'm excited to see what deeper integrations lie ahead. This screenshot shows what it looks like selecting a story through the menu item Tools > Task > Open... Selecting stories through open task autocomplete.

Steve ConoverSteve Conover
"Pivotal News Network" Highlights from May
edit Posted by Steve Conover on Wednesday June 02, 2010 at 07:10AM

The Pivotal News Network has been going strong for six months (Pivots: talk to me if you'd like to share into the feed). Here are some highlights from May:

When starting any software project, there’s an age old argument: should we build something simple that solves our current problem or should we use an existing product that’s more complex, but more feature rich, since we know that’s where we’re going to end up in the future?

...

an oft neglected repercussion of building too much too quickly is that the extra functionality can calcify your product and make it very rigid. Releases become more complex, new features take longer to implement and bugs take longer to fix. You can find yourself a prisoner of your product, maintaining functionality and features that no one ( or very few ) people use. It can demoralize a engineering team, making them more and more susceptible to the nuclear option: the big rewrite.

I think the tendency to lean towards a more exhaustive solution upfront comes from a time when the effort require to change software was much higher than it is today. When systems were written in C, C++, Perl or even Java, making changes was a large undertaking. The thought of possibly throwing away chunks of code was nerve racking. It represented a huge investment in time and money. However, with todays rapid development languages and frameworks like Ruby/Rails & Python/Django, the investment required to create something, both in time and money, is rapidly shrinking.

Jeff [Patton]’s reply shocked me:

“The Ruby community cares about building high-quality apps, but doesn’t necessarily care about shipping high-value apps.”

Jeff went on to say that the Ruby community is obsessive about craftsmanship. This is a good thing, of course. We test. We write clean code. We take the time and care to build applications that are beautiful and do what our customers ask for.

Therein lies the rub: what customers ask for is rarely what they want, and almost never what they need. As Henry Ford put it, “If I had asked what people wanted, they would have said faster horses.” Or as I put it, your customer may pay you $1000 to deliver him a knuckle sandwich, but no amount of precision or strength training is going to leave you with a happy customer.

It turns out that constructing a high-quality application is not enough – you have to conceptualize and design an application that users will actually find useful. Doing this is every bit as difficult as constructing the software, if not harder. It requires a combination of research – generating new ideas from asking questions & identifying problems – and feedback – testing out ideas you’ve created. The Ruby & Agile worlds have been primarily focused on getting user feedback, without doing the all-important research.

Weeks ago, some people in the Ubuntu community got a bit disappointed with the distribution’s core team:

We are supposed to be a community, we all use Ubuntu and contribute to it, and we deserve some respect regarding these kind of decisions. We all make Ubuntu together, or is it a big lie?

We all make Ubuntu, but we do not all make all of it. In other words, we delegate well. We have a kernel team, and they make kernel decisions. You don’t get to make kernel decisions unless you’re in that kernel team. You can file bugs and comment, and engage, but you don’t get to second-guess their decisions. We have a security team. They get to make decisions about security. You don’t get to see a lot of what they see unless you’re on that team. We have processes to help make sure we’re doing a good job of delegation, but being an open community is not the same as saying everybody has a say in everything.

  • from Velocity as a Goal

    From my experience having velocity as a goal doesn't make any difference to the motivation of the team which is often cited as the reason for referring to it as a target. In all the teams I've worked on people are giving their best effort anyway so they can only really have an impact on the velocity by doing one of the following:

    • Working longer hours
    • Cutting corners on quality (by less testing perhaps)
    • Finding a smarter way of working

    ... In reality I haven't noticed that people on the teams I've worked on pay that much attention to whether velocity is considered a target or not. People just do their job and we pretty much always have the same velocity each week regardless.

More popular shared items:

Tommy SullivanTommy Sullivan
Standup 6/1/2010: TextMate debugging & Hack Night
edit Posted by Tommy Sullivan on Tuesday June 01, 2010 at 12:00PM

Ask for Help

"Has anyone run into issues with TextMate's 'convert to RTF'?"

Interesting Things

  • Sarah Mei is hosting another SF Ruby Ruby Hack Night in our office tonight at 7PM

Other articles: