Technology Archives

Google OpenSocial

Posted on December 11th, 2007 by Jeff

OpenSocialWith all the social networking sites out there it’s nice to see some sort of effort to move towards standardization. Google’s OpenSocial is a set of standard APIs for social websites. The list of sites implementing it is impressive, including Orkut, LinkedIn, and MySpace.

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

Small Merchants Growing Online Presence

Posted on December 3rd, 2007 by Chris

Nice article from New York Times Technology News regarding small merchants gaining a larger presence online. Bust Out currently does quite a bit of work in this area, most recently with several Shopify implementations. Drop us a line if you need any help doing anything similar.

Cheers!

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

DataMapper 0.2 and Rails

Posted on November 17th, 2007 by Chris

The DataMapper ORM framework is forging ahead and is now on version 0.2.3. In my previous DataMapper post I wrote about how to get started using the 0.1 release of DataMapper in Rails. Today, let’s look at some of what’s new installation-wise, as well as how well DataMapper is handling relationships between our model objects.

First of all, the DataMapper crew has changed to using DataObjects.rb for its database driver stuff. If you’re running OSX Leopard and MySQL as we are here at Bust Out, then you’ll want to visit this excellent post to help you get up and running.

Two addendums to the above. The first is that I needed to install the json_pure gem as well in order to get DataMapper running correctly:


    sudo gem install json_pure
 

Secondly, if you happen to encounter something like this little gem when firing up your Rails console:


dyld: NSLinkModule() error
dyld: Library not loaded: /usr/local/mysql/lib/mysql/libmysqlclient.
15.dylib
Referenced from: /usr/local/lib/ruby/gems/1.8/gems/mysql-2.7/lib/
mysql.bundle
Reason: image not found
Trace/BPT trap

you can fix it using the following suggestion from the DataMapper mailing list.

Now that we hopefully have our new version of DataMapper correctly installed, lets take a look at it in action. Last time around, I made myself a drink to celebrate the successful install of DataMapper. This time, let’s continue building our restaurant by including a bar and then invite some people over to discuss the relative merits of ORM design patterns (or not):


>> r = Restaurant.new
=> #
>> r.name = “Hawaiian BBQ”
=> “Hawaiian BBQ”
>> r.save
=> true
>> b = Bar.new
=> #
>> b.name = ‘Hula Lounge’
=> “Hula Lounge”
>> b.restaurant = r
=> #
>> b.save
=> true
>> b.restaurant
=> #
>> p = Patron.new
=> #
>> p.first_name = “jeff”
=> “jeff”
>> p.last_name = “lin”
=> “lin”
>> p.save
=> true
>> r.patrons << p
=> [#]
>> r.save
=> nil
>> r.patrons
=> [#]
>> p = Patron.find 1
=> #
>> p.restaurant
=> #
>> d = Drink.new
=> #
>> d.name = “Trumer Pils”
=> “Trumer Pils”
>> b.drinks << d
=> [#]
>> b.save

Hopefully at this point you get the idea that associations are working quite nicely in DataMapper (assuming any of the above is remotely helpful…wasn’t the most fun to type). So, rather than show you the model classes and keep typing along in the console, I suggest that DataMapper users read the specs that are bundled with the source. They’re quite informative and a good example of how to write specs as well.
Be sure to check out the DataMapper site as well and look for ways to contribute.
Cheers!

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

Open Source Abuse

Posted on September 22nd, 2007 by Chris

I was doing some research today on using the acts_as_ferret plugin for an upcoming Bust Out site, when I quite accidentally stumbled upon this interesting post regarding how terrible and misleading the plugin apparently is. The tone certainly seems disproportionate to the offense. And I’m no enterprise search architect, but I understand that distributing an index when running in a cluster is a fairly common architectural approach. I sure wouldn’t want to buy this guy a free meal he didn’t like.

I don’t mean to pick out this post in particular, especially as the blog advertises itself as some sort of open source debunking machine. I also don’t mean to oversimplify the (non)-validity of critical postings, as constructive criticism and community policing are both valid reasons for (negative) open exchanges. However, the frequency with which I see fairly narrow, one-sided rants about freely provided software - free to use, free to make all sorts of modifications to and likewise free to ignore, is disconcerting. It seems few things are free these days.

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

Radiant CMS for Rails Developers

Posted on September 16th, 2007 by Chris

I recently ported an existing Rails site to the Radiant CMS as our client wanted changes more frequently that initially anticipated. The good news is that the port went well. Radiant is a nice system. But I did struggle just a wee-bit. So, as I typically don’t do front-end stuff at Bust Out, I figured I would take the opportunity to post a few things about what I went through from the perspective of a Rails developer accustomed to controlling my own destiny vis-a-vis MVC/Erb, rather than letting a CMS do it for me.

I’ll start with the layout. Our Erb layout looked like the following:



<%= yield :layout %>
<%= render :partial => “/layouts/footer” %>

We’re setting the body class dynamically to highlight page navigation. The yield and render partial statements should look familiar to anyone with a working knowledge of Rails.

Now lets look at the Radiant version of the above, which uses the Radiant tagging system:



Radiant provides a number of different ways to generate content, the predominant methods being creating layouts, snippets and pages. In Radiant, our partials become shared snippets, our yield statement is replaced by a content tag, and our sidebar is replaced by a page content part (created in the pages tab) that is inherited by all child pages and can likewise be overridden by child pages with different sidebar content. Lastly, we’re using a Radiant tag that infers the title of the current page being navigated to in order to drive the “where am I” functionality of our header navigation.

A relatively simplistic example, but hopefully somewhat illuminating. In the next post, I’ll discuss creating pages and some more dynamic content. In the meantime, we encourage anyone looking for a nice clean ruby CMS to give Radiant a try. Cheers!

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

Microsoft unveils Surface

Posted on May 30th, 2007 by Jeff

What?! You’re doing what? Yup, I’m writing about a Microsoft product. Today Microsoft unveiled Surface, a computer that uses the tabletop as its high-resolution display, recognizes objects placed on the surface and skips the traditional keyboard and mouse in favor of fingers on the screen. It offers a new way for humans to interact with a machine, bringing to life technological ideas that were once only available in movies like Minority Report. As with any computerized technology (such as websites), the way in which the user interacts with the machine is critical in determining several factors such as productivity, enjoyment, pertinence, and function.

Although the Microsoft website gives a brief history of the concept and creation of Surface, I wonder if Jeff Han of NYU’s Courant Institute of Mathematical Sciences and founder of Perceptive Pixel has anything to do with it. Han presented his touch screen innovation at TED 2006, an annual conference about technology, entertainment, and design.

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]