Ian McFarlandIan McFarland
Pivotal Tracker write-up on Rail Spikes
edit Posted by Ian McFarland on Monday February 02, 2009 at 11:19PM

Jon Dahl has a great write-up on Rail Spikes comparing Pivotal Tracker to just about every bug tracking application out there.

http://railspikes.com/2009/2/2/pivotal-tracker-bug-trackers

He hasn't had a chance to try it out on longer projects yet, but we use it everyday on projects (like tracker itself) that have been years in development and refinement.

Thanks, Jon, for the thoughtful exploration of the product!

David StevensonDavid Stevenson
Standup 2/2/2009: Rails 2.3 is gonna be sweet
edit Posted by David Stevenson on Monday February 02, 2009 at 05:18PM

Interesting Things

  • Neat Plugin: Caio Chassot suggested a patch to rails that makes rails template finder traverse the controller inheritance chain when looking for templates. This would make the view system work "correctly" with inheritance, which one of our projects needed. The patch wasn't applied, but the code was released as a plugin called inheritable_templates, which we are now using and enjoying.
  • What's the opposite of {:a => 1, :b => 2}.to_a? It's Hash[:a, 1, :b, 2].
  • Rails 2.3 is going to be awesome! We're most looking forward to
    • Nested model assignment and views
    • Nested transactions, even on MySQL!
    • Default Scopes, no more adding :order => "position" on every acts_as_list model
    • Smarter rendering of partials
    • Rack support
    • Bringing of Engines back. Pivotal is still going to support Desert at this time. Desert is similar to engines, but loads every class that matches in the load path, not just the first one. This allows you to build plugins that extend previous plugins. Using engines, however, we are hoping to make the source code for desert even more trivial.

Steve ConoverSteve Conover
Best Buy Remix PHP library available
edit Posted by Steve Conover on Sunday February 01, 2009 at 07:00PM

It's getting hard to keep up with all the Remix activity.

Matt Williams has put together a PHP library for Remix.

Code sample:

require_once 'BestBuy/Service/Remix.php';

$apiKey = '12345678'; // Your API key
$remix  = new BestBuy_Service_Remix($apiKey);

// Retrieve a list of stores within 10 miles of a zip code
$result = $remix->stores(array('area(10006,10)'))->query();

// Result objects may be implicitly cast as strings
echo $result;

// Retrieve a list of Movies containing the text "Bat"
$result = $remix->products(array('name=bat*','type=Movie'))->query();

if(!$result->isError())
{
    echo $result;
}
else if(403 != $result->http_code)
{
    // API errors result in an error document with detailed info
    echo current($result->toSimpleXml()->xpath('/error/message'));
}
else
{
    // 403 errors do not contain a full error document, only an h1 message
    echo $result->data;
}

// Retrieve fields from a list of Movies starting with "Bat" in JSON format
$result = $remix->products(array('type=Movie', 'name=bat*'))
            ->show(array('name','regularPrice','url', 'sku'))
            ->format('json')
            ->query();

echo $result;

// Check for store availability of a Playstation 3 in a given area
$result = $remix->stores(array('area(10006,10)'))
            ->products(array('sku=8982988'))
            ->sort('distance')
            ->query();

echo $result;

Other articles: