We’d like to congratulate Mavenlink, one of our clients, for being chosen as a finalist for TechAmerica High-Tech Innovation Awards. Mavenlink (http://www.mavenlink.com) provides an online workspace that helps businesses and their consultants collaborate better. We’ve really enjoyed our ongoing work with the Mavenlink team, and we’re excited about Mavenlink’s progress!
Pivotal Labs has been at the forefront of agile development since it’s early days. We’ve taken what we’ve learned by applying agile concepts on a countless number of real world projects, and honed these skills into a very effective way to build software. Along the way, we also built a great project management and collaboration tool – Pivotal Tracker.
Not only does Tracker serve as a critical component of our own development process, it’s also relied on by thousands of teams out there in the world, from open source developers, to fast growing startups, and high profile, established companies.
It’s a great app, yet we have lots of ideas for how we’d like to improve it. Want to help us? If you’re a Ruby on Rails developer, enthusiastic about agile development, and want to help us to take Tracker to the next level, read on.
If you’re interested in working with us, please send your current resume to email@example.com, and tell us a little about yourself. Principals only, please.
Does anybody have any good techniques for dealing with STDOUT/STDERR and exception handling when shelling out in Ruby on Windows?
Nobody did. Do you? Please share in the comments.
A pair ran system updates on their Snow Leopard box which caused bunch of test failures in their project. Most of the failures were occurring around the parts of the application that used BigDecimal. After digging they found:
>> BigDecimal.new("1.01").to_f => 1.1
Oops! Looks like Apple shipped Ruby 1.8.7 p173 with a recent update. p173 has a bug that some dude introduced into BigDecimal. The fix was to update to p174 which was released quickly after this was discovered.
While on the subject, BigDecimal is kind of a drag. Its #inspect output is inhumane and new’ing up BigDecimal objects requires an ugly call to its constructor. A Pivot recommended using the undocumented bigdecimal/util which adds a convenience method to Float for creating new BigDecimals:
>> require 'bigdecimal/util' >> 3.14159265.to_d => #<BigDecimal:10056bea8,'0.314159265E1',12(16)>
And a nickel’s worth of free advice?
>> BigDecimal.send :alias_method, :inspect, :to_s >> 98.6.to_d => 0.986E2
Unless you prefer:
Ask for Help
Anyone have advice for loading seed data in both regular and test environments? One of our projects has some data that is necessary to bootstrap the app into a working state and they’d like it to be in the database for all their tests as well.
EngineYard Cloud installs a weird version of JRuby. Some of the standard command line options don’t seem to work. Anyone have a pointer to a good chef recipe for getting JRuby up and running on EYCloud?
- Ever get a UTF-8 file with messed up encoding? If all the bytes are still in the right order, try using iconv to fix it. Telling iconv to convert from UTF-8 to UTF-8 fixed a file that had been emailed to one of our projects.
iconv -f UTF-8 -t UTF-8 es.yml > es2.yml
One of our teams saw a significant (20%+) speedup on their product by switching to Amazon’s Cloudfront service. They’re using Paperclip and it only took about 20 minutes to switch from S3 to Cloudfront.
If you have an integer column in MySQL that does not allow NULL values and you update a row and set that column to NULL the column ends up being set to 0. This was very surprising to one of our teams.
We recently added meta-tap for copying tweets. It seems to have some bugs and we are thinking about options.
Originally, we wanted to put Copy as an option in the tweet popup menu, but the menu is getting crowded. Currently, it can have
We are considering rearranging the items. There are two current ideas:
- More (sub group)
- More (sub group)
- Links (sub group)
Which do you prefer? Tell us at Survey Monkey
Voting ends Thursday, April 15.
Switching to Bundler 0.9.x?
If your old gem definitions use
:lib => false, don’t forget to change it to
:require => false
Additionally, older versions of Bundler use the deprecated named argument
:require_as (instead of Rails’
:lib and Bundler 0.9′s
:require) to override the path that Bundle
requires for you.
Here is an example of how to tell Bundler 0.9.x not to require a gem automatically:
gem "leetsauce", :require => false
Version 1.6 has been submitted and should be in the App Catalog soon.
- Load More showing gaps in home timeline (should finally be really fixed)
- List notifications were false/repeats in some cases
- links that had all capital letters didn’t work
- notification stability improvements (more may be needed though)
Features and Changes
- Goto User (tap App menu, Goto User)
- User Search (as you type in search box, option for user search will be presented)
- Copy Tweet (gesture-tap of tweet — hold finger in gesture area, then tap tweet )
- Internationalization beta
Tweed has been translated to the various languages for which webOS is available.
With this version, pricing returns to $2.99, though updates for existing paid users are free.
John Boykin teaches us to recognize the seven most common sources of confusion and how to avoid them. Using real-world case studies, John dissects each pattern, proposes a redesign to reduce confusion, and offers general guidelines for making your website more intuitive.
See all our talks at http://pivotallabs.com/talks
At Pivotal Labs, one of the services we provide our clients is helping them interview and hire. This is an excellent opportunity for you to learn Extreme Programming by working side-by-side with Pivotal’s talented and experienced developers while at the same time joining a small and dynamic product team. 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.
Gowalla, based in Austin, Texas, is looking for a Senior Android Developer. The full job posting follows.
Gowalla Inc. is a well-funded startup making an unconventional game for the latest smartphones, using virtual collectibles to motivate location discovery and sharing. We are a small, growing team, with strong design and technical chops. We work from a big, bright office in downtown Austin with multiple Xboxes and a full fridge. We’ve got an A-list roster of investors and advisors. We’ve got a passionate, fast-growing user base. And we’ve got a huge opportunity to build a genre-defining product.
About you: you will assume primary responsibility for Gowalla’s Android client. Gowalla for Android is more than a port of the original iPhone app — it should embrace the unique strengths of the platform. You won’t just be implementing features, but helping to determine the product direction for the platform. If you’re excited by the opportunity to build a stand-out, in-demand app for a hot platform, this is the gig for you. The position is full-time, on-site in Austin. Ideal candidates will have:
- Broad programming language experience, with significant Java experience. Mobile (especially Android) is a plus.
- Demonstrable ability to ship user-facing code
- Strong design sense
- Experience with test-driven development
- Familiarity with web development, REST service integration, HTTP caching concepts, etc.
Interested? Contact Scott Raymond at firstname.lastname@example.org.
John Boykin teaches us to recognize the seven most common sources of confusion and how to avoid them. Using case studies, John dissects each pattern, proposes a redesign to reduce confusion, and offers guidelines for making your website more intuitive.
Ask for Help
“How can Rails’ IP spoof attack safeguards be disabled when its guesses give false positives that block out important users?”
When Rails has this safeguard in place, it may block out users behind poorly configured firewalls and some mobile devices.
The safeguard causes Rails to return a 500 and log the following message:
ActionController::ActionControllerError: IP spoofing attack?! HTTP_CLIENT_IP="16.89.XX.XXX" HTTP_X_FORWARDED_FOR="15.243.YY.YYY"
Rails 2.3 and later lets you easily disable this by overriding a setting in your
Rails::Initializer.run do |config| config.action_controller.ip_spoofing_check = false end
As always, be sure you understand the implications of disabling this security feature!