Yehuda Katz discusses MERB, the Ruby application development framework sponsored by Engine Yard.
Alan Cooper, joined by three colleagues from his renowned design firm of the same name, discusses the challenges faced and lessons learned from their forays into using a more agile process for design consulting. Questions from the audience help drive the discussion towards topics of interest specifically to developers.
Heroku founder Adam Wiggins outlines their vision of next-generation application deployment architectures. He describes the challenges and choices Heroku has made and the upcoming technologies and capabilities that are exciting in their space.
Jason Huggins, Al Sargent, and Steve Hazel from Sauce Labs describe their Selenium-in-the-cloud testing framework, including integration with CI systems like CruiseControl.
- Functional tests running slowly after upgrade to Rails 2.2
A project upgraded to Rails 2.2 which was previously able to complete its functional suite in under 300 seconds now takes a leisurely 6000 seconds to finish. Speculation about possible causes is welcomed. Meanwhile, I suspect ghosts.
UPDATE: apparently the functional tests were running slow due to memory swappage (the memory swappage, in turn, caused by ghosts, no doubt).
- Rails 2.2 may break Selenium tests
- FixtureScenarios and slow test suites
A pivot installed FixtureScenarios on a project and found that the addition of the plugin alone (with no configured fixtures) doubled the time the project’s test suites took to complete. FixtureScenarios are now dead to Adam. Dead!
- No Pivotal Breakfast tomorrow
Karen Tsui and Ling-Wen Chang tirelessly prepare the world-famous Pivotal breakfast each day and generally make the San Francisco office an awesome place to work. They’re finally taking a much deserved break tomorrow, so now is a wonderful time to publicly recognize their much appreciated work. Thanks, and happy holidays!
- Helper tests failing after Rails 2.2 upgrade.
A project was upgraded to run on Rails 2.2 and now has a handful of hate for helper tests. The tests in question use a stub Controller to generate a template and end up getting some nil variables. cache_classes is off. Suggestions welcome.
- Pivotal Tracker Team Strength Reminder
If team members are out sick or on vacation, you can adjust your team strength settings by clicking on the blue icon at the end of the current iterations release marker. This will recalculate your current iteration velocity accordingly.
- ‘flash’ Partials
It is bad form to name your partials ‘flash’, because they attempt to populate a flash variable which has the nasty side effect of blowing away your notification array. Naming a partial ‘phlash’ produces no adverse effects outside of looking a little silly. ‘shazzam’ and ‘booyakkasha’ are also acceptable although somewhat less descriptive.
- Capistrano and Git
A default deploy with capistrano and git appears to prefer using the local working set instead of the configured repo (in this case, github). This may end up surprising you a great deal if you do a deploy from a machine that isn’t an exact copy of HEAD. It was suggested that best practice is to deploy tags from a dedicated CI box rather than a development workstation.
- Ruby On Rails Noteworthy Applications
http://rubyonrails.org has a new design, and with it came a page of noteworthy apps running RoR. Are you a Pivotal client who’d like to see your site up there? Get in touch!
Here’s a good, quick read. It got its start about 10 years ago:
- Modular Design
- Tolerance (”Be liberal in what you require but conservative in what you do”)
- Test of Independent Invention (”If someone else had already invented your system, would theirs work with yours?”)
- Principle of Least Power
When you’re heads-down doing Agile or OOP sometimes you find yourself accidentally assuming that certain useful general principles are special to what you practice – when the truth is they’re probably not even unique to your discipline, and some Greeks wrote them down around 500 BC.
One project reported a problem with the enumeration mixin when upgrading to Rails 2.2. The problem was with the all method.
The enumerations mixin allows you to treat instances of your ActiveRecord models as though they were an enumeration of values.
The proposed solution is to switch to in memory enumeration instead of using ActiveRecord.
Great article comparing Pivotal Tracker to Mingle, as an example of a tool that simplifies things, rather than trying to manage complexity (and getting in the way):
Thanks for the positive feedback, Matthias!
Ask for Help
A new project would like to find a useful deploy.rb for Engine Yard. Preferably using git. There were a few suggestions from other projects to view theirs.
Do not create records in a
The transactional wrapper around the tests don’t apply to the before(:all).
Ask for Help
“How can asset_host and retardation_inhibitor could work together nicely?”
Tells your Rails application to generate external resources’ links pointing to the host of your choosing.
The general opinion was that any sophistication should be handled by asset_host configurations in the appropriate rails environment files.
This lead to the sticky problem of our CI process running the Selenium tests in the development environment rather than the test environment. The asset_host using the development environment configuration rather than the test environment.
Everyone agreed that this wasn’t the best way to run the selenium tests.
A desperate request to rename the Pivotal project “retardation_inhibitor” met with no resistance, much to the delight of the Pivot responsible for explaining it’s usefulness.
“New Relic & Desert?”
Ruby & Rails can sometimes appear to be moving so quickly that not advancing feels like standing still. A project found problems with the latest versions of New Relic and Desert.
Every page request resulted in a stack trace in the log.
The general consensus was that the latest version of New Relic would solve this problem. Of course the team had already tried this along with several other versions.
Some Pivots in New York had apparently encountered and solved similar problems. Hopefully they can help out.
Another Pivotal project had similar problems and had to upgrade to 2.7.3. They used these update steps.
They originally tried to just install the latest without following the steps outlined in the link above and still had problems.
Look out for a public Pivotal Pulse announcement soon.