Radiant CMS Extensions

Posted by Nathaniel Talbott on Jun 18, 2008

Up until recently I had admired the Radiant Content Management System from afar but hadn’t had a chance to really dig in to it. While the Terralien website runs on Radiant, a lot of the power of Radiant doesn’t come to the fore until you want to extend it, and our website’s needs are very vanilla. So when an opportunity came along for us to do the back-end for a content heavy site for Ignite Social Media, I jumped at the chance to put Radiant through its paces. In particular I got to do a bunch of Radiant extension development, both writing an extension from scratch as well as doing heavy hacking on some existing extensions, and I’d like to talk some about that process as well as highlighting the (all open source) extensions that came out of it.

Read More...

Ruby Hoedown!

Posted by Nathaniel Talbott on Jun 11, 2008

If there’s one thing that we believe in (and have benefited from in a big way) at Terralien, it’s the power of the Ruby community. Since I attended the first RubyConf in Tampa in 2001, I’ve been constantly amazed by the vibrancy, passion, and all-around niceness of Rubyists when they gather in groups, whether virtually or physically. And so it is with great pleasure I point you to the second annual Ruby Hoedown, the southeast region’s premier Ruby conference, taking place this year in Huntsville, AL. The organizers already have the schedule up and registration open, so head on over there, check out the top-notch offerings, and make your plans to be in Huntsville in August this year. While I’m not helping to organize the conference this year, I’m definitely going to be attending it, so I’ll see you there!

Read More...

Prices: To Publish, or Not to Publish?

Posted by Nathaniel Talbott on Jun 04, 2008

It’s an age-old question for services companies: should we publish our prices, at least some of them, or should we wait until we’ve had a conversation with a potential client before discussing price? Recently at Terralien we’ve changed our answer to that question and decided to start publishing some of our prices, and I thought I’d write a bit about the thought process that went in to the decision.

Read More...

Refining and Refreshing

Posted by Nathaniel Talbott on May 05, 2008

We just launched a refresh of the content on our main site – do check it out! While the changes aren’t very drastic, they do reflect a significant refinement to how we do business and I wanted to take the opportunity to talk a bit about why we made them…

Read More...

"Camping in 10" at BarCampRDU

Posted by Nathaniel Talbott on Aug 04, 2007

I’m currently hanging out at BarCampRDU 2007 and having a blast. BarCamps are “unconferences”, which means the talks are proposed and given by the attendees on the day of the conference. Rather than just soak it all in, I decided to throw my hat in to the presenting ring and do a redux of the Camping in 10 talk I put together for Raleigh.rb a little while ago. After getting through a few projector struggles, it went really well, and I was able to expose about 30 people to Camping.

A few folks asked for my slides, so I threw them up on the interwebs, and you can get them here: Camping in 10 slides. Enjoy, and if you attended the talk and end up writing a Camping app of your own, drop me an email or a comment and tell me about it – I’d love to see what folks come up with.

Ya’ll make delicious pork pies!

Read More...

Sales Jeopardy! at RailsConf!

Posted by Nathaniel Talbott on May 16, 2007

So the tricky part about proposing a talk so many months in advance is that you never know what you’ll have learned (or not learned) by the time the conference actually rolls around. Back in November when I proposed my RailsConf talk, I was thinking that by now I would’ve reduced my sales and marketing efforts down to at least a general outline I could share with those at the conference. Boy was I wrong! The more I work to land projects, the more I realize that at least in this business, each sales process is unique as a snowflake. Yup, that’s right, the “MVC” pattern I put in the abstract is really clever, but turns out to not be very useful, at least for me.

So where’s that leave my presentation on Saturday? Never fear! Because while snowflakes are each unique, they do share common properties. So what I’m going to do is switch from focusing on a process, and instead do my best to pass along the tips, tricks and rules of thumb I’ve picked up over the last year and a half of selling Terralien. I might not have a useful system for selling custom software, but I sure have a lot of great “lessons learned” that I think everyone at the talk will find hugely valuable.

Upon figuring all this out, I was left with one problem: how do I structure the presentation? I mean, c’mon, every presentation needs a gimmick, right? After much mulling, I struck upon the perfect approach a few days ago, and instead of doing a plain old boring presentation, we’re going to do a super-agile game show! That’s right, we’ll be playing Sales Jeopardy!, with actual cash prizes to boot. Of course, not being a rich TV show, the prizes will lose a few zeroes off the usual Jeopardy pay-out, but hey, somebody might be able to at least buy themselves dinner ;-)

Hope to see you on Saturday in Portland!

Read More...

Ruby Hoedown!

Posted by Nathaniel Talbott on Mar 27, 2007

I don’t want to dup the whole post, but in case you don’t follow my personal blog, I just posted over there about the upcoming  Ruby Hoedown 2007. Have a look and make sure to sign up for the announcement list if you’re at all interested in coming. See you in August!

Read More...

Ruby Tidbit: Enumerable#collect_one

Posted by Nathaniel Talbott on Mar 01, 2007
  module Enumerable
    def collect_one(default=nil)
      inject(default) do |d,e|
        if v = yield(e)
          break v
        else
          d
        end
      end
    end
  end

So this:

  element = %w(a bb ccc).detect{|e| /b/ =~ e}
  size = (element ? element.size : 0)

Becomes this:

  size = %w(a bb ccc).collect_one(0){|e| e.size if /b/ =~ e}

Discussion starter: does the name communicate?

Read More...

TextMate tip - Run Last

Posted by Nathaniel Talbott on Feb 08, 2007

When coding Ruby, I love being able to run a test suite right in TextMate (Command-R), but recently I was wanting something a bit more. Back in my bad old Eclipse days, I used a nice little feature that let you hit Ctrl-F11 to re-launch the last command you’d run in the IDE, regardless of where you currently were. After an intensive cycle of test-code-test-code in TextMate, I was getting tired of having to switch back to my test to re-run it, so I decided to take a page from Eclipse’s book and “Run Last” was born. Lets walk through it.

Read More...

Rails Sharing++

Posted by Nathaniel Talbott on Dec 19, 2006

Our own John Long has a very thought-provoking article over on his weblog about Rails needing something better than Engines for sharing large chunks of functionality between applications. While John and I have had a lively discussion about where the infrastructure for such sharing should live, we both agree 100% that (a) we need something better than what we have, and (b) Rails itself should at least make it easier to do things like add additional template_roots and externally define new routes. So go have a read, have a look at some of the various attempts in existence (such as Radiant’s extension system, Mephisto’s plugin infrastructure, PluginAWeek’s collection of plugins (no longer available) or the venerable Rails Engines) and lets all start brainstorming and hacking to find the best solution going forward.

Read More...

Contact us today at (919) 521-4240 or nathaniel@terralien.com

Ruby Rails Terralien specializes in Ruby and Ruby on Rails development.