Posts from blog.talbott.ws...

120 Seconds of the Talbotts

It might be more than you can stand, but I edited together some footage from our first 12 hours with the Flip:

Man those are some cute kids!

Review: Vonage

I love plugging things that I love as much as I hate shilling for things that are lackluster. Vonage is in the former category. There’s something so great about having telemarketers for the phone companies hang up on me when they find out I’m on Vonage – they just can’t compete. I just have to chuckle when they offer me 5¢/minute long distance, and I’m amazed that anyone’s willing to pay for long distance by the minute anymore.

I actually have three Vonage lines: one personal, one business, and one business fax (which comes free with the business line!) They all work great, and I’ve never had anyone notice that I’m using a VOIP phone. While I also have an iPhone, the low price of the Vonage plans let me keep the “land-line” access as well, which I find super-convenient. Oh, and the features that come free with Vonage – three-way calling, caller ID, call forwarding, etc. – make it all the more attractive.

All that to say, I highly recommend using Vonage if you have a need for a land-line phone. It’s convenient, cost-effective, and high quality. Now, while Vonage didn’t pay me in any way to write this, both you and I can get a deal if you put my number (9194621888) in when you sign up. Enjoy, and let me know how it works out for you!

23 Hacks @ RailsConf 2008

I had the opportunity to give a RubyConf-esque talk at “RailsConf”: this year, and at least so far the feedback has been great. I had three goals in 23 Hacks: to delight the audience with some cool creative hacks, to motivate them to do more hacking, and to empower them to enjoy hacking more. I define a hack as “fun code you write for yourself”, and Nathaniel’s Rules of the Hack are:

  1. You must hack at your own impetus.
  2. You must enjoy the time you spend hacking.

I walked through 13 hacks and polled another 10+ from the audience, and just tried to inspire everyone to hack more. I hope I succeeded!

I actually wrote the talk in a git repository, and while I’m making the repository available via gitjour here at the conference, I’ve also put it up on github so that anyone who couldn’t get at the code during the talk can grab it now, and so that the talk can live on in to the future. Just so you know, I varied widely from the written NOTES, but they’re still at least a decent outline of what we discussed.

Finally, I just have to say that it makes me sad to give a talk and not have it live on as a video. I love what Confreaks has done with taping regional Ruby conferences and RubyConf itself because it’s so motivating as a speaker to know that you’ll be able to have a wider influence than just the conference. Whether it’s Confreaks or another recording company, I really wish O’Reilly would start taping their conferences and making the sessions publicly available. I think doing so would increase attendence.

So with that rant out of the way, go hack something!

Creating Constraints

I have a lot of stuff on my plate. Really. And I’ve recently found a trick that’s made me about 2x as productive while drastically lowering my stress level. It’s not Inbox Zero or a great GTD system (I’ve actually had both of those going consistently for months). It’s also not a four-day work week (though I think it’s a good idea) or getting more sleep (also a good idea!). It’s really simpler than all of those, and it’s something that maybe only works for me, but I thought I’d share just in case it might be a fit for you.

So what is it? Well, I’ve introduced an artificial constraint upon myself when sorting through which tasks to tackle on which day. That filter is really simple: Tuesday and Thursday are my short-term, interrupt driven days. I spend them talking to clients, meeting folks for lunch, writing longer replies to emails, etc. That leaves Monday, Wednesday and Friday for long-term/strategic work, such as pushing out a Terralien website refresh, learning to write a Radiant extension, or working on a background project (such as Spreedly).

Why has this been so helpful? Because all the small, interrupt driven tasks have to get done, but they distract me from focused creative work and leave me always feeling behind. It’s really empowering to get a client email, evaluate it for anything incredibly time-sensitive, and then shove it in to my system to handle tomorrow. Also, on Tuesday and Thursdays it’s much more efficient (and fun!) to have a big pile of small tasks that I can schedule efficiently and knock out quickly.

I think this is really a combination of a few different ideas and techniques I’ve read about, for instance Embracing Constraints (though in this case we’re creating them) and the Poison of Urgency. Now, if you don’t have a good system for capturing what it is you need to do I’m not sure this technique will help you much – it’s really about filtering and scheduling tasks, not creating and tracking them (I’ll try to blog about my capture system sometime soon). But if you do have a pile of tasks and you often wonder if you’re working on the right ones, I encourage you to find some constraints to apply, and to try to group tasks of similar size and distraction level. You might just find yourself getting a lot more done – I know I have!

And just to prove it really helps, here you have the first blog post I’ve written since October of last year! Of course, the real proof will come when I get another post up in a reasonable amount of time…

So what do you think? Sound like something that could be useful to you? Have you tried something similar yourself? I’d love to hear about it in the comments!

Navigating RubyConf

RubyConf is in Charlotte this year, just 3 hours from my home base in Raleigh, and I’m so looking forward to heading down there in a few weeks. I’ve attended a fair number of technical conferences, and RubyConf remains my all-time favorite, bar none. Judging by the agenda, this year is shaping up to meet or exceed past expectations, and whether you’re going for the first or the fifth time, I don’t think you’re going to regret it.

Needless to say, having the international Ruby conference in Charlotte has stirred up some Ruby interest in the queen city, and I was recently contacted by two Charlotte Rubyists in my role as organizer for Raleigh.rb. It looks like the Charlotte Ruby Group has been ably resurrected, and I’m going to be getting together with some of them to swap Ruby group tips at the conference. It’ll be great to have another strong Ruby group in a nearby city, and I’m looking forward to doing some joint activities in the future.

While talking with the Charlotte folks I started asking them about the RubyConf locale, and ended up convincing Scott Nedderman to put together a Google map to help us out-of-towners to get the lay of the land: Charlotte RubyConf Area Map. It looks like there’s some great places to eat (and to get a coffee fix) within easy walking distance, which is totally cool.

Which brings us to the last item: anyone want to go grab a bite to eat and get the conference kicked off right on Thursday night? And more generally, want to keep up with what’s going on between sessions during the conference? If so, head over to Facebook and join the RubyConf Event where I’ll be hanging out trying to organize some fun stuff. Werewolf, Settlers of Catan, Mario Kart, the Erlang Video Club, we’ll be talking about all of it.

Oh, and just in case anyone hasn’t caught on: I’M EXCITED ABOUT THIS CONFERENCE!!!! And I can’t wait to see you all there…

Four! Announcing Elaine Grace Talbott

I’m running a few months behind with this, but I’ve now got four kids worth of excuses: we had a little girl, Elaine Grace Talbott, on Friday, June 15th at 12:06pm – she weighed 8 lbs, 15 oz and was 21.5 inches long. It was a short, smooth (I didn’t say easy!) labor of just over two hours, and both mother and baby came through with flying colors. Elaine’s been eating like a champ since, and has grown a prodigious amount… with three older siblings to keep up with, I think she’s determined to make up her late start as quick as she can!

Every time one of these little miracles is on the way, Katie and I spend time trying to figure out what name to give them. Sometimes it feels like trying to find that perfect domain name for a new web site: the name needs to be easy to spell, easy to pronounce, not too long, somewhat unique but not bizarre, and wouldn’t it be great if it actually meant something! Of course, when naming a baby, it’s easier and harder; easier, since you’re not trying to convert name impressions in to sales, but harder because you’re contemplating the moniker that a real, live person is going to carry for the rest of their life.

So, rather than just slapping the name on and calling it good, I like to take some time to put down in writing some thoughts on what the name means, and what I hope the little person bearing it will (and will not) grow in to:

My little Elaine Grace, let me tell you about your name. Elaine is French and has its roots in the name Helen (another name which your mother was fond of), and means “light”. Your middle name, Grace, is defined very simply as “simple elegance or refinement of movement”.

As a fourth child, you may sometimes feel that you just blend in to the background and aren’t appreciated as your own person. The promise in your name is this: that you will shine with the light of a grace all your own. Already, at a mere two months old, I’m starting to see your personality come out as you lay so contentedly on the floor and smile sweetly when someone stops to talk to you. As you grow older, you will find that this graciousness attracts others to you, and you will have the opportunity to influence them for good. You will be like a “city that is set on a hill [and] cannot be hid” (Matthew 5:14).

There is a warning here as well, though: your light and attractiveness spring from your grace, and it’s very clear that “God resisteth the proud, but giveth grace unto the humble” (James 4:6). If you choose to exalt yourself rather than serving others with humility, you will cease to burn brightly.

I love you my little Elaine, and I can’t wait to see you grow up in to a vibrant woman. May God bless you and keep you with His grace.

I truly believe our names ought to be more than just what people yell out to pick us out of a crowd, so if you’ve never done so, I’d encourage you to look up the meaning of your name: it might inspire you!

Related: Reuben, Anne Marie and William’s namings.

test/unit: A time to maintain, and a time to hand off

Back in 2000, after having purchased a brand spanking new Pickaxe book, I was trying to figure out what to do with this shiny new Ruby thing that I’d found. Being a very test infected developer, I had tried out the current de facto Ruby unit testing framework, RubyUnit, and wasn’t terribly impressed. In retrospect, some of the things I didn’t like about it were due to my nubishness, but it was enough to make my first Ruby project a testing framework, which I dubbed Lapidary.

I gave a presentation on testing at the first international Ruby conference in 2001, and pushed Lapidary while there. Lots of folks were intrigued, and Lapidary usage picked up quite a bit. Then in October of 2001, I was contacted by Masaki Suketa (RubyUnit’s maintainer) about Matz’ desire to include a unit testing package in the Ruby standard library. After various discussions back and forth, it was decided to rename Lapidary to test/unit, build a RubyUnit compatibility layer on top of it, and include it in the standard library for Ruby. Needless to say I was thrilled, and have been very happy to see something I created used by thousands upon thousands of Ruby programmers.

Fast forward to early 2007, i.e. a few months ago. test/unit has been languishing for years, and I’m just not motivated enough to knuckle down and move it in the direction I’d like to see it go. Then I read Ryan Tomayko’s post about Lesson #5 and it’s like a much-needed slap in the face. If you maintain or ever want to maintain an open source project and haven’t read the chapter from The Cathedral and the Bazaar that he references, go do it now: The Mail Must Get Through is incredibly insightful (and short). The gist: if you’re not maintaining your project, you owe it to the community to hand it off to someone who will.

Before I unveil test/unit’s future, I want to take a short side trip and say that I’ve been very excited to see the ideas and innovations coming out of the Ruby testing community. Calling it the “testing” community is a bit ironic, since some of the interesting stuff going on has been the work by the Behavior Driven Development folks to expunge testing vocabulary from the practice, but I can’t come up with a better moniker. Of course, it’s not just BDD, but also cool stuff like the various mocking libraries, higher level frameworks like WATIR and Selenium, and cool tools like autotest.

Which brings us right back to the big question: where’s test/unit going, and more importantly, who’s taking it there? Who first: in a lot of ways, I think of Ryan Davis as “Mr. Testy”. I mean, come on, he’s probably been doing automated testing work since before I was programming! I’ve watched his work with a lot of respect for a while now, and enjoyed hanging out with him at all the RubyConfs we’ve shared. The various tools of ZenTest are a cornucopia of helpful testing goodness, and in general I like his opinionated style of clean code.

After talking with Ryan at RailsConf, and giving myself an intervening month to make sure there would be no regrets, I’ve made the decision: Ryan Davis is now the test/unit maintainer. What does that mean for test/unit? First and most importantly, it’s going to get a lot more attention than it has for the past few years. Secondly… well, I can’t really say – I would suggest asking Ryan (and/or Eric Hodel, who I’m sure will be teaming up with Ryan as they have on so many other projects). I know some things I’d like to see happen, but will be very happy to just watch from afar as the little library I wrote to learn Ruby continues to mature in the hands of an engaged, very Ruby-savvy developer.

Writing test/unit and seeing it used so widely counts as the single greatest achievement I’ve yet had in my professional life. I wouldn’t trade the experience for the world. And don’t think I’m gone… I have a few other open source projects out there, and one or two more cooking, all in areas that itch a bit more for me these days.

Thanks for the great ride!

Sales Jeopardy!

I just posted "a little blurb":http://blog.terralien.com/past/2007/5/16/sales_jeopardy_at_railsconf/ about the latest plan for "my RailsConf talk":http://conferences.oreillynet.com/cs/rails2007/view/e_sess/11559 on Saturday over on "the Terralien blog":http://blog.terralien.com/. Check it out, and I can't wait to meet all my Ruby and Rails homeys in Portland!

Ruby Hoedown Ad

So Michael Kimsal offered to put an ad for the Ruby Hoedown in his WebDevRadio podcast, so I whipped one up. Have a listen and let me know what you think. And of course, feel free to put it in your own podcasts – I just ask that you let me know so I can listen to myself and brag to Katie!

Update: I had some mime-type issues, and the ad wasn’t getting delivered as audio. Those should be fixed now, though you might need to force a refresh after you click on the ad again. Enjoy!

My RailsConf 2007 Plans

After finding out that my talk has been accepted, the next most important question on my mind when approaching a conference is, “when am I speaking?” I was just wondering this about RailsConf 2007, when lo and behold, I find that Dr Nic has gifted the world with an uber-spiffy tool: myconfplan.com [no longer available].

The gist of myconfplan is that you can sign up, tick off the sessions you figure on attending, and then tell the world about it. Not only can you use it for the aforesaid vanity, but you can also track the crowd popularity of various talks – pretty nifty. Oh, and for the more fragile among us, you can now deal with the mental anguish a lack of omnipresence can cause at a multi-track conference. Picking between Dan Benjamin and Robert Martin is something some of us really need to tackle in our own homes.

For me, myconfplan kills two birds with one stone: I now know when I’m speaking (was this published elsewhere? O’Reilly’s conference site seems a bit lacking in usability) and I can also publish my own plans in all their glory. Yay vanity!

Of course, myconfplan isn’t all roses – it also gives us speakers a heavy does of reality as to what folks think of our talk proposal skills. Which brings up an interesting point: in a multi-track conference, the talk title and abstract are king, since they’re all most people ever have to go by when deciding what to do with the next 45 minutes of their conference-going life.

Next year I need to spiff up my talk titles… “The Business of Rails” – boring! I wonder if “Capitalists on Rails” would’ve doubled the attendence? ;-)

Ruby Hoedown!

Ever since Ruby started getting so successful that RubyConf filled up, and especially after I heard about the Ruby Central Regional Conference Grant Program, I’ve thought that it would be super-cool to have a regional Ruby conference down here in the south. Well, it’s a wish no longer: Ruby Hoedown 2007 has been announced, and behind the scenes things are moving along at a brisk pace to make this a Ruby conference to remember.

A little history: I started to organize a regional Ruby conference late last year, but as I got busy it sort of fizzled. Thankfully, Jeremy McAnally picked up the baton this winter and started pushing things forward, and I’ve been able to serve a support role as the conference has gotten off the ground. We’ve lined up a great location at Red Hat’s headquarters near downtown Raleigh, and are in the process of inviting a few speakers and putting the Call for Proposals (CFP) together.

If you’re at all interested in the conference do please head over to the conference website and sign up for the announcement list – we’ll be using it to communicate major happenings such as the CFP opening, the final conference schedule and the opening of registration. And of course, be sure to mark your calendar with the date registration opens (June 11th) and the conference dates themselves (August 10-11th) since we’re expecting this to be a sell out crowd – we wouldn’t want you to miss it.

See you in August!

Java User's Group Talk

This Monday I gave a talk on Rails to the local Java User’s Group and had a great time doing it. While I tried to be a bit controversial, they were very gracious and decided not to lynch me.

It was a fun presentation because it was my first time doing one in the Lawrence Lessig / Dick Hardt style, and it was my first time doing screencasts in a presentation. Nothing like using the local user groups as guinea pigs… thanks to all who came!

One of the things I promised was that I would put the citations for the talk online, and to keep everything in the same place I’m going to go ahead and throw the abstract up too. Someday I’d like to convert the presentation to web form, but that’s going to take more time than I can dedicate at the moment.

Also, if you were there and have any feedback, feel free to drop it in the comments. Don’t worry, I can take it :-)

Abstract

Grownup Web-apps, or Why I am a Java Programmer No Longer

Six years ago, if you had told me I would eventually turn down Java work on a regular basis, I would’ve probably looked at you a bit crazy. Four years ago, if you had told me I would eventually get paid to do Ruby full time, I would’ve shaken my head with a wistful sigh. Two years ago, if you had told me RubyConf ‘05 would fill up at 200 people, and the first RailsConf would sell out 400 seats in a week, I might’ve suggested you get some psychiatric help. Yet all these things are now true…

So what in the world is Ruby on Rails? Where does it make sense to use it? How do you get started developing with it? And why would I forsake the established Java community for the wild ravages of a “new” technology, and love every minute of it? All those questions and more will be answered in words, images, and code. Don’t be late, though – this Rails stuff is hot, and has been known to fill up an auditorium or two.

Citations

Moved to Mephisto and Slicehost

Typo was getting creaky, and I wasn’t very happy with the old host I was on, so it was time to move the little Talbott blog over to something more maintainable. The majority of the move is done now that you’re reading this, and we’re running on Slicehost with Mephisto under the covers. Of course, the 80/20 rule says that the few things I have left to fix will take most of the time, but c’est la vi. Please, if you do find anything broken, don’t hesitate to drop me an email (nathaniel@talbott.ws) or add a comment here. Thanks!

Update: Here are a few of the resources I used in the transition from Typo to Mephisto:

Trying out Twitter

Is Twitter useful, fun, tyrannical, or some interesting combination of all three? That’s what I’m going to try to figure out. I don’t have any friends currently (that sounds bad, doesn’t it…), so if you’re already on Twitter or want to try it out, look me up via my personal email address and help increase the value of my trial.

If you’re on a Mac and you’re trying Twitter out, here are a few interesting tools:

If you have any thoughts on Twitter, let loose in the comments – I’m curious to hear what people think.

Way Up There on the Scariness Scale...

The latest piece of genius viral marketing: watch Nathaniel dance in elf attire. Sorry if that curdled your milk, but after seeing Clarence, Duff, and DHH dance, I couldn’t resist elfing myself. Hey, it can’t be any worse than watching the monkey boy dance, right?

Merry Christmas!

Uncle Mark - 2007 Gift Guide & Almanac

Trying to figure out which digital camera is the best this year? Or what computer you ought to by? Or, conversely, are you tired of your family and friends pestering you, the “family techy”, with questions about how many megapixels, Apple vs. PC, which video game console is hot, and on and on and on? If so, then the Uncle Mark – Gift Guide and Almanac is for you.

Eschewing choice and embracing the power of simplicity, Uncle Mark’s gift guide doesn’t attempt to lay out the five top cameras with an eye-glazing feature comparison chart. No, he just tells you exactly which camera you should buy, gives you a few reasons for his choice, and leaves you with the simple steps of:

  1. Find Uncle Mark’s recommendation on Amazon
  2. Purchase
  3. There is no step 3!

I found all of his recommendations to be well thought out, entertaining and very concise. Our family gift this year is a new Canon SD30, and I didn’t have to spend hours poring over the specs for the nine jillion digital cameras on the market. Instead I just followed the simple steps above and we now have an amazing new camera just in time to take pictures of our cute kids opening gifts on Christmas.

It’s a bit strange writing a review of a bunch of reviews, but they’ve saved me a heap of time, and I think they’ll save you time, too. So check out Uncle Mark – Gift Guide and Almanac, and spend the your time drinking hot chocolate by the fire instead of scratching head over yet another feature comparison chart.

Merry Christmas!

RubyConf 2006 Talk

If the word “Ruby” signifies nothing to you other than a pretty red gem, you can safely skip this entry…

Since I know there are still a lot more people following this blog than there are following the Terralien blog, I thought I would mention that I just posted the talk I gave at the 2006 RubyConf, entitled “Open Classes, Open Companies”, to the Ship’s Log. Enjoy!

Blog Divergence

A long time ago, I started a little personal blog under the name, “Nerfanu.” It was fun, it was me, and I don’t think even my Mom read it. Fast-forward to now – I apparently have ~150 faithful subscribers, and this blog has turned in to more of a tech/geek/biz blog than a personal blog. While tech is definitely a part of me, it’s such a big part that I feel like it has overwhelmed my ability to blog about more personal things here. So it’s time to move it out under its own roof, a move that I think will increase my motivation to blog about both personal and tech stuff.

Introducing The Ship’s Log, Terralien’s newly inaugurated group blog. Currently it’s just myself, but I’m really aiming to grow it in to a vehicle for giving the designers and developers in the Terralien network a much greater exposure than they have had to date, as well as for giving potential clients and collaborators a feel for the Terralien “personality.” If you’re interested in general tech, programming, entrepreneurship, small business, etc., head on over and grab the feed.

So where does that leave blog.talbott.ws? Well, it’s going to get a lot more personal around here – I’ll probably be spending more time talking about kids, and Christianity, and marriage, and perhaps even politics. Please do stick around if you’re interested in such, but don’t feel obligated – odds are, The Ship’s Log is probably more along the lines of what you were expecting when you grabbed my feed.

Now, none of the old content is going away, and I’ll probably occasionally cross-link articles between here and Terralien when subjects blur (as they will) between the two. But I’ve finally gotten over a somewhat irrational fear of dual blogs, and am really invigorated by the new setup. So do follow along with one or both, and I hope you enjoy the ride!

terralien.com Launched

Since I returned to consulting and contracting in November, I’ve had a to-do item on my list to actually announce that fact and get a website up. Thankfully, I’ve been so busy doing paid work that I haven’t gotten around to it – until now. Click on over to terralien.com and have a look, and then come back for a bit of (I think) interesting background.

Why did I finally get the Terralien website up? Well, when I released the QueryTrace plugin, my logs told me that a bunch of folks checking it out got curious and backed up to terralien.com, and all they saw was a two-year-old holder page. Oops. And going in to my talk at RailsConf 2006 I had a feeling the same thing was going to happen again. It would be a shame to waste all those eyeballs, and so I worked with Matt McCray to get a simple site up that would let folks know how Terralien could help them out.

That’s what I’m really interested in – letting you know how Terralien might be able to help you. I’m passionate about small business, and a large part of that passion is for helping other people start their own businesses, or further build out an existing business. Terralien gives me an incredible opportunity to do exactly that, and the more the merrier. So lets get started, shall we?

QueryTrace: My First "Official" Rails Plugin

I just released my first “offical” Rails plugin today – yay for me! So, what does it do? Well:

It’s nice that ActiveRecord logs the queries that are performed when your actions are executed, since it makes it easy to see when you have serious inefficiencies in your application. The next question, though, is always, “OK, so where are those being run from?” Before QueryTrace, that question could be a real pain to answer, since you’d have to go trawling through your code looking for the culprit. Once you have QueryTrace installed, though, your logs won’t just tell you that you have a problem, they will pinpoint the location of that problem for you.

You can read more about it, including an example, or you can get it either directly from Subversion or via:

$ script/plugin discover
$ script/plugin install query_trace

Feedback is welcome, either here on the blog, or via email. Hope it helps you!

next page »