A Coffee Shop Chat

Posted by Nathaniel on Feb 3rd, 2009

As part of the lead-up to RubyRX I got the opportunity to sit down with Jared Richardson and chat about Ruby, what makes a well-rounded programmer, Spreedly, the importance of going to at least one or two conferences a year, and more:

The funny thing (in retrospect at least!) is that we did the interview twice, but the first time, unbeknownst to us, the tape ran out halfway through! I’m just glad it turned out natural the second time, probably because we talked about a somewhat different set of topics.

Thanks to Jared for doing the interview – it was a blast. Hope you enjoy it!

Why You Should Be At RubyRX

Posted by Nathaniel on Jan 26th, 2009

In his excellent book The War of Art, Steven Pressfield talks about “Turning Pro” as the key to overcoming resistance and consistently spending time on what we truly value:

Aspiring artists defeated by Resistance share one trait. They all think like amateurs. They have not yet turned pro.

The traditional interpretation is that the amateur pursues his calling out of love, while the pro does it for money. Not the way I see it. In my view, the amateur does not love the game enough. If he did, he would not pursue it as a sideline, distinct from his “real” vocation.

The professional loves it so much he dedicates his life to it. He commits full-time.

That’s what I mean when I say turning pro.

Resistance hates it when we turn pro.

Steven Pressfield, The War of Art, “Professionals and Amateurs”

For myself, a big part of turning pro in software development was committing that I would go to at least one excellent conference every year. It’s a costly commitment at times, but it’s been so incredibly worth the investment. I’ve formed lasting relationships, gotten the jump on important techniques and technology, and found out about tools that I still use on a regular basis. I’ve also seen that a conference serves to get me pumped up to tackle things that I’ve been putting off, and gives me new perspective on problems I’ve been scratching my head over.

I’m a big fan of hobbyist conferences. RubyConf has been my mainstay for years, and I’ll be at the most excellent acts_as_conference in a few weeks. But I also think there’s an important part to be played by professional conferences that have an invite-only speaker list, and are paid for by attendees rather than by sponsors. If you look at the list of speakers and the set of sessions scheduled for RubyRX, you’ll find an A-list of smart folks and a wide set of topics guaranteed to teach you something outside your comfort zone. And if you’re a professional software developer, as I know many of you are, then I believe you’ll find yourself more than paid back in learning and growth by attending. There’ll be talks on Merb and Rails 3, Erlang, Clojure, Sinatra and more – how many of these topics have you wanted to explore but just haven’t had time to yet? Well here’s your chance!

If you’re not a professional yet, still sitting on the sidelines, then this could be a great opportunity to make the jump. A conference like RubyRX is a great kick in the pants, and can give you the confidence to go to the next level. You’ll get lots of hallway time to chat and get inspiration from those who’ve already turned pro, and the sessions will generate all kinds of ideas on how to go from being an amateur to being a professional. I’ll personally be giving two talks that I think every professional should hear – one on the Fear of Programming (with more from the War of Art) and one on the Five Skills Every Freelancer Should Have.

RubyRX is February 19th-21st, 2009 in Raleigh, NC. You have until the end of the week to (January 30th) to get the early bird price, so don’t delay. I can’t guarantee that RubyRX will be one of the excellent conferences this year, but I can guarantee that Jared, myself, the other speakers and all the attendees are going to do our best to make it so. And it’s even more likely to be excellent if you decide to come, so sign up, come out, and let us help you “turn pro”!

Sprint or Marathon?

Posted by Nathaniel on Jan 12th, 2009

Both sprints and marathons have starting lines, and the people lined up behind them are equally pumped up to start running the race. Adrenaline courses through the veins of a marathon runner on the starting line as surely as it does through the runner of a sprint waiting for the gun. And each kind of runner looks towards the finish line for their race, the end goal in sight.

And yet – what happens between the start and finish of a marathon and a sprint couldn’t be more different. In a sprint, the effort is focused in to mere seconds or perhaps minutes, and the runners push hard, giving everything they’ve got with each foot traveled. It doesn’t matter if they collapse after only running a few hundred yards – so long as they got over the finish line first, they’ve won. The start is critical, as it makes up a huge percentage of the race, and as the race is run, a tiny stumble spells doom. It’s a very unforgiving race – everything must be done just right, or there’ll be no trophy.

A marathon is something altogether different. Everyone knows as they leave the starting line that they’re going to be running a long time, and that if they don’t pace themselves they’ll never make it to the end much less have the best time. The start is important, but pales in comparison to sustained progress. Even a large stumble disappears in to the noise of the race so long as it doesn’t result in any physical damage. And the race is as much against the clock as it is against the other runners, with everyone striving towards their personal best.

Now, I’m more of a sitter than a runner, so I know these things not from experiencing them but rather from watching Chariots of Fire and talking to people who have run marathons. But what I do have lots of first hand experience with is building businesses, and I can tell you that there are important, enduring lessons to be had in this comparison for anyone thinking of starting a business. The external view of entrepreneurship, and the view of many just starting out in it, is that it’s a sprint: all the energy focused in to a small period of time for a huge pay-off at the end. Yet once you have a few months of a new business under your belt you’ll discover that it’s really a marathon, with the focus being on endurance and constant progress. Going really fast turns out to be overrated, and envisioning and constantly moving towards a finish line that is well out of sight is what separates the winners from the losers.

Those who approach business as a sprint quickly burn out. They run the first few months, maybe even the first year or two, with a gusto that seems enviable. And yet, as time wears on, they tire and start to get discouraged, and often collapse well before the half way point. Those who realize they’re embarking on a marathon, however, get off to a good start, and yet quickly fall far behind the sprinters. But soon enough they catch up, and then gradually leave those less prepared behind.

As you think about the business you want to start (I know you have one!), are you prepared for it to be a marathon? Are you ready to stick it out for years to make it a success? Big, sudden success stories are usually the product of years of quiet persistence, or as Sam Walton said of Wal-Mart, “Like most other overnight successes, it was about 20 years in the making.”

So which are you planning to run? A sprint, or a marathon?

Nathaniel at acts_as_conference

Posted by Nathaniel on Dec 17th, 2008

I’ll be keynoting at acts_as_conference in Orlando, Florida in February, and I can’t wait! More details over at my personal blog.

Codename MC

Posted by Nathaniel on Dec 8th, 2008

Terralien’s building a product! Come follow along at Codename MC to get a peek at what we’re building and the process we’re building it with.

Now or Never

Posted by Nathaniel on Dec 4th, 2008

There’s a lot of uncertainty right now about the economy, about jobs, and more immediately for some folks, about paying for Christmas. Economic times are tough, or so they tell us, and all the talking heads (who were, it should be noted, saying how great things were six months ago) are telling us the sky is falling. Regardless of how sound your personal financial position is, it’s hard to not accept at least a part of that vibe in to your own thinking, and start panicking inside over what might (or might not) happen.

And yet, the amazing thing is that today is pretty much like yesterday, and this month is pretty much like last month. The only real difference is in our perception and understanding (right or wrong) of reality.

So the question is, why aren’t you starting that business you’ve been contemplating for months? Or maybe it’s been years? Is it because of the current economic news? I doubt it. If it was, you would’ve started it before we realized things were bad, and it would already be in process now.

The story we tell ourselves is key, and while we might be getting bombarded with a particularly sour story right now externally, it’s the internal story that prevents (or enables!) us to build something successful. And that’s why a whole bunch of smart people with way more experience than me are saying that right now is a great time to start a business, Seth Godin and Paul Graham being just two of them.

Regardless of what you decide to do, I know what I’m going to do: lean in to the wind of popular opinion and use this time to build something great. I hope you’ll join me!

Of course, I have an ulterior motive in encouraging you to get started, since it’s startups and entrepreneurs and small agile businesses that we focus on here at Terralien. If you need help on the software design+development side of things, I hope you’ll drop me a line so we can figure out how Terralien can help you succeed regardless of what the pundits say.

Smart Asset Management for Rails Plugins

Posted by Matthew Bass on Nov 14th, 2008

Many Rails plugins require that certain files like images, CSS, and JavaScript get copied to the public folder during installation. The typical way to do this is add code to install.rb, which then gets executed when you first install the plugin in your Rails project. What happens when the assets in a plugin you’re using change, though? You end up having to manually copy files around anytime the plugin gets updated, which is an extremely error-prone process (if you remember to do it in the first place!).

I got tired of mucking around with install.rb and having to sling files around whenever a plugin changed, and so I wrote asset_copier. It’s a generator that runs against your plugin and installs an asset management system that gets checked in with the rest of your plugin code. Once installed, any Rails app your plugin is installed in gets a plugin_name:install task that intelligently copies over any files located in the /files subdirectory in the plugin. Files will also be copied over every time the plugin is reloaded or Rails is restarted in development mode. When running in production mode, warnings will be printed to the log for files that are missing or have changed.

You can check out the README for installation instructions and additional documentation, and I’d love to get any and all feedback you have as you start using it in your own plugins.

Oh, and if you’re looking for a plugin using asset_copier, look no further than the textile_toolbar that Terralien announced recently.

Announcing the textile_toolbar Plugin

Posted by Matthew Bass on Oct 29th, 2008

I’m tired of settling for a WYSIWYG editor in my Rails apps. Plugins like FCKeditor and TinyMCE work moderately well for the end user, but they can generate ugly HTML on the backend. I hate dealing with that. Textile is so much better, but our clients often dislike dealing with the markup. Isn’t there a way to bridge the niceness of Textile with the end user experience of a WYSIWYG editor?

It turns out that there is: it’s the new textile_toolbar plugin. Extracted from a recent Terralien project, the plugin adds a handy toolbar to Textile-enabled form fields. The buttons on the toolbar generate the appropriate Textile markup for your users. For example, clicking the “Bold” button will surround the highlighted word with the correct Textile markup to make it bold.

textile_toolbar lets you retain the benefits of Textile while at the same time offering your users a friendly interface for generating markup. The plugin is a great way to learn Textile, but even if your users don’t want to bother with memorizing the markup, the toolbar will still be there to assist them with their editing.

It’s easy to get started with textile_toolbar. To install the plugin in your Rails 2.1 (or greater) project, run:

script/plugin install git://github.com/pelargir/textile_toolbar.git

To add the toolbar to an existing text area, change the text_area or text_field helper call to textile_area. It’s that simple! Be sure to check out the README for further integration guidelines and options.

Update: A live example of a Textile-enabled text area can now be found here.

Radiant CMS Extensions

Posted by Nathaniel on Jun 18th, 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 on Jun 11th, 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!

You can still contact Nathaniel at nathaniel@terralien.com