5 lessons from the NPJobSearch.com launch

On Feb. 1, Rumblestrut launched NPJobSearch, a job board specifically for advanced practice nurses. It’s been an interesting month. Here are five lessons that have been quite revealing.

It’s easy to tweak a design to death before a launch.

Oh my gosh. I can be pretty anal retentive at times with a design, but the level I took it to for this project was unlike anything I had done before. Perhaps it’s the designer in me maturing, but I made change after change after change until I got to where I had to say “enough”. I launched with a site that I was very proud of, even if there were a few things that I wanted to change. It’s a good thing I didn’t let the changes keep me from rolling it out beyond my Feb. 1 deadline, because …

The feedback you get immediately after a web site launch is invaluable.

To announce the launch, I sent the link through the usual channels (Facebook, Twitter), but also I e-mailed many of my close friends who I knew would give me unfiltered feedback. On NPJobSearch, the entries are listed from newest entry to oldest, but many found that confusing. Most of them expected listings to be alphabetized but since I gave job posters the flexibility to post something like “near Kansas City”, that didn’t work out well. I was unwilling to backtrack on the ability for flexible location listings, so I had to find another fix.

I implemented a live search shortly thereafter, which satisfied almost everyone. There were other comments, some I noted for future changes, some I changed immediately and others I ignored. Generally speaking, changes were based upon the volume of requests for a certain feature. If enough people complained about one thing, it got changed.

Advertising is essential. Period.

I’ve never advertised anything online before, but I’ve read enough Seth Godin and stories about Google to know it has value. So, I gave it a shot.

After some tests with Facebook and Google advertising, the results were clear: about one-third of visitors came from the ads we were running. Both Facebook and Google are great for targeted marketing so you don’t waste money throwing ads to people who wouldn’t be interested. We had 444 visits and 1,125 pageviews. That might not sound like a lot to most, but to me it was incredible. After all, up to Jan. 30, out total visitors were zero.

Advertising online is not that expensive.

Advertising online is cheap (and exactly the opposite in print). For Facebook, it only cost $33 and we got 76,000 impressions (and some clicks, of course). Granted, what we’re doing with NPJobSearch is very, very niche and only a fairly specific group of people are going to click if they find it worth doing. That said, Facebook ads have pictures with them, so $33 to build brand awareness for one month with 76,000 impressions? I think that’s money well spent.

Putting out your own product and having people use it is awesome.

I look at Rumblestrut as something akin to putting some musicians together and making music. I grabbed some close friends, we threw around some ideas, and then threw in a lot of work and a little cash to get on stage.

The best thing about getting NPJobSearch online was getting NPJobSearch online. I’ve had a few projects that never got out of the basement (my laptop) and therefore, never made it on stage (the World Wide Web), but not this one. It’s out there, it’s live and now it needs taken care of or it will die. It’s an amazing feeling to know you put something out there that you built from scratch and there is an even greater feeling when you see it being used.

I hope these lessons are something you have found valuable. And if you’re on the fence about getting your work out there, don’t be. Set a deadline, push it out, then let it breathe. The world needs you to create something and I don’t think you’ll regret the experience.

Web Site 101 – getting newbies started

In November I gave this talk to a group of non-profit workers who had absolutely no idea what it took to get a web site up and running.

It’s pretty basic to those of us with experience under our belt, but I can remember what it was like to be in that position. Like when I wanted to show off my new web site and e-mailed my friend the URL of 127.0.0.1.

Ah, memories.

2009 Survey for People Who Makes Web sites

The great web magazine, A List Apart, has released it’s third annual Survey for People Who Makes Web sites. If you work in the field, I suggest you run over and take the survey. It shouldn’t take more than 15 minutes to complete.

While you’re there, check out the results from last year’s survey. There’s some really interesting data there about those of us who work with web publishing.

I look forward to seeing how the data compares to last year, especially with the Great Recession really showing its ugly head this year. I hope most of my web publishing counterparts have managed to keep their jobs, but we’ll see.

Take the survey.

Linking to an image with link_to and image_tag

I came across a situation tonight that I needed to display an image, and have it link somewhere. In HTML, it would appear like this:

<a href=”http://example.com”><img src=”image.png” border=”0″ /></a>

But in Rails there’s no need to use the HTML. Instead, do this:

<%= link_to image_tag(“image.png”, :border=>0), :action => ’show’, :id => user %>

Of course, the location where you’re linking to will be different than :action => ’show’, :id => user, but you get the point.

The quest for a role-based authentication holy grail

The wonderful thing abut web technology is that with each advancement, there’s another group of slightly less technical users who can stand on the shoulders of giants and look better than we really are.

Count me in. Although I like learning new things, sometimes I simply need to get a task done. Rather than reinventing the wheel, there are plenty of tools freely available for use. Sometimes these tools need a little tweaking to get them to work and other times they work out of the box.

Anyone who creates a dynamic web site knows that user authentication will need to be added. For my Rails projects so far, I’ve found the restful_authentication plugin to do the heavy lifting for me without the need for much else. Once installed, I can quickly have an authentication system running, keeping out anyone I don’t want to have access to update an application. But restful_authentication need more tweaking to add roles, such as using the well crafted restful_acl, but even that solution will need you to install something like forgot_password to add a feature where users can have their password e-mailed to them should they forget (and they will forget).

I’m beginning to find this whole role-based authentication pursuit annoying. I’m not alone. After Ryan Bates recently did a Railscast of Declarative Authorization,  he had this to say:

“After looking over a dozen authorization solutions late last night, I’m tempted to make my own. Yes, we need another one.”

And that he did. Bates released CanCan on Github shortly after.

Authentication Basics

I’m sure there’s a lot that I don’t fully understand about the user authentication process, but it seems to me that it should be a lot simpler. Visit any web application today, and you’ll need a minimum of these things to connect:

  • Create a username
  • Create a password
  • Provide an e-mail address (if it isn’t your username)

But on the backend, you’ll need this:

  • Get the credentials from the user
  • A way to assign roles (are they an admin, moderator, user, etc.?)
  • Provide a way for the user to be e-mailed a password if it’s forgotten

I won’t lie. A present I don’t have the skills or the patience to create an all-in-one system. I’m not even sure, given the complexities of any application, that it’s even possible. Still, I want someone to build one, and they should be rewarded by the community to do it (I’d gladly donate money).

Why is it so hard to find a all-in-one solution? Surely not everyone is rolling their own, right? I must be missing something.

Testing the Waters

So where does that leave me? I need to come up with a solution, so I’m going to whole-heartedly evaluate existing solutions and write about the experience here. I’ve got some personal projects that I’ve put off because of my inadequate ability to implement a role-based authentication without doing it by hand myself I can’t ignore it any longer.

When possible I’ll write up some basic instructions about them, as I often find the documentation less than user-friendly on Github.

I want to foster a discussion about this: what are you using in your Rails projects? Why do you like it? What would you improve upon? What have I left out?

An advent calendar for web geeks

It’s December, which can only mean one thing: 24 Ways has opened its annual advent calendar for week geeks once again.

Started in 2005, the site only has posts 24 days each year, from now through Christmas. Its authors have included the best in the business: Jon Hicks, Andy Clarke, Cameron Moll, Dan Cederholm, Eric Meyer, and more. One of my favorites was the final post from last year by Jeffrey Zeldman, Recession Tips For Web Designers. That’s quality.

These posts are quality nuggets, minus the chocolate goodness of a typical advent calendar. Maybe they can add that in the future.

Let the advent of web geeks begin!

30 days of PragProWriMo

Today marks my final day of writing for Pragmatic Programmers Writing Month (PragProWriMo), the writing challenge inspired by the very popular National Novel Writing Month (NaNoWriMo).

PragProWriMo was championed by Pragmatic Bookshelf, a publishing company that makes high-quality tech books that web nerds like me go gaga for. I was first introduced to Pragmatic Bookshelf in 2005 when I learned of Ruby, picking up Chris Pine’s book, Learn to Program. A fan of the Rails framework, Pragmatic Bookshelf has been the leader in educational materials on the subject, which I’ve also enjoyed.

But it was Daniel Steinberg’s piece in the October edition (PDF, 13.6 MB) of PragPub Magazine that really caught my attention. Steinberg said PragProWriMo would challenge fans of the style of Pragmatic Bookshelf to “write that book you’ve always wanted to write” by getting us wannabes to write something every day.

And so I did. With 30 consecutive days of writing under my belt, I’ve reached 23,144 words and haven’t even taken a screen shot yet. Even with some heavy editing (which I’d welcome), I think it would make an excellent book.

Picking a Topic

I wrote about Coda, my preferred editor for web development, which I’ve wanted to do for a long time. I’ve found that Coda meets my tastes better than other editors preferred by Rails developers. There are a lot of people out there using TextMate, which is a great program, but it’s not my thing. I think I lean toward Coda more than TextMate because I come from a design background, and Coda falls into place better with that mindset.

On the Ruby on Rails podcast, 37signals’ Ryan Singer explained the connection between learning Rails and thinking like a designer.

“Actually, designers who have familiarity with hand-coding and separation of content and presentation are extremely well-poised to look at the top end of the Rails stack and start moving down toward the code because it’s using basic abstractions that they’re already familiar with.”

That makes sense to me, and I know I’m not alone. There are other designer-types who are making their way into development because they need to in order to keep advancing. That’s where Coda fits in: it’s a better choice for that other group of developers who are coming down the pike.

The really great thing about this whole experience is that I’ve learned so much more about Coda than I did on Oct. 31. Have you ever heard the Seneca saying “by teaching we are learning?” If you’re ever interested in becoming an expert (not that I’d dare claim that title), teaching is a great way to get there and writing is simply an extension of the process.

Getting Going and Staying Motivated

Who hasn’t browsed the stacks and thought, “I’d like to write a book someday?”

For a long time I’ve wanted to write something like this but never “got around to it.” There was always a reason not to start. I was too busy. I had a lot of family obligations. Work was keeping me busy. I had my side projects that needed my attention. I had plenty of excuses, but no action. Did I really want to write this thing or not?

I have two daughters, Ember, 3, and Remi, 5 months old. I work full-time during the day then watch the girls a few evenings a week while my wife, Amy, heads to work. That keeps me busy enough, but I also chair a group of government webmasters who meet monthly to talk shop and also meet twice a month with some local Ruby on Rails (among other things) users. I keep busy.

To keep things simple, I decided to shoot for a daily word count of 1,000. I managed to end the month with an average of 771 words a day, but I consider that highly successful. Why? I never went a day without writing, no matter how small the amount, even being (really) sick one day and having a long holiday near the end.

I’ll admit I was a bit afraid to tell anyone I was doing this. Being the busybody I am, I sometimes don’t finish things I start, which bugs the life out of me, especially when it’s something I want to finish. Fortunately for me, I came across some great materials right as I was getting started that kept me going.

In Seth Godin’s presentation Quieting The Lizard Brain, I was hit upside the head with the reality that nature was something I’d have to fight to make it the whole month. Watch the video. It’s worth your time. I had read Hugh MacLeod’s book “Ignore Everybody: and 39 Other Keys to Creativity,” which was quite inspiring. Finally, one of the most inspirational pieces I read was Merlin Mann’s excellent blog post “Top 1 Habit of Amazing Writers.”

It’s Not Easy Because It’s Hard

In another life, I was a journalist and had to write between six to 10 stories per week. As you might expect, writing a book isn’t exactly the same thing. In some ways, it’s easier, because there weren’t interviews to conduct or office hours to keep.

But it’s certainly not easy. Research is difficult. Conveying your research into something meaningful that isn’t dry is also difficult. Then there’s the lizard brain that you have to beat down all the time, in addition to the reminder that’s in your head “You have to write today … You must write today …” If I had all day to focus on writing, it would be a great way to earn a living, but competing with a day job and other obligations makes it taxing.

It’s a good thing the experience was fun. If it wasn’t fun, I wouldn’t pursue it anyway, but it was good that I took 30 days to at least discover for myself if it was fun or not.

Now What?

Merlin Mann’s advice about writing included a warning not to read too many posts or books about how to write, because then you’re not writing. Instead, he summarized with five key points that “every (good) book on writing will end up telling you …

  1. Set reasonable goals and honor them
  2. Draft with complete abandon; edit with surgical precision
  3. When you sit down to write, focus without distraction; when you’re not writing, keep it off your mind
  4. Read great books (actual big books, not blogs or magazines) as often as you can
  5. Just write, and just keep writing, and just keep writing, writing, writing. Then write more.

There’s been a lot of wading through each of these, but there’s one part that I now need to address: edit with surgical precision. I’d vomit on the page every night or during my lunch breaks at work, and keep moving. That’s a great practice, but when you get done, it’s messy.

So now I need to piece this thing together into something more coherent. After that, I’ll be ready to see what to do with it next. Maybe it’ll just sit and collect digital dust in a folder on my Mac (linked to my Dropbox account, of course).

Or perhaps I’ll do more than that. What are my chances of seeing this move into a real, published work? I’m not sure; I suppose it’s up to the “powers that be” (publishers, unless I decide to just do it myself for the heck of it).

But I can’t help but think I should put together a book proposal and see what happens. As Stern put it in his PragProWriMo announcement, “If you’re successful (and we think you will be), then we’d love for you to submit a proposal for your book to us.

Oh, look! Pragmatic Bookshelf has a page called Write for Us. Sounds like a good idea to me.

I began by saying this was the final day of writing for PragProWriMo, but the experience was so much fun, I’ve decided to take it further and make writing a part of my daily routine.

What about you? Have you wanted to write a book or a blog or awesome tweets or whatever? If so, get going!

Taming the Snow Leopard

A couple of weeks ago I purchased one of the new 13″ MacBook Pro laptops. One of the first things I like to do when getting a new machine is to reinstall the OS so I can remove any software that isn’t deemed install-worthy (extra printer drivers, additional language support, iWeb, etc).

But also, I wanted to do a clean install of Ruby and Rails, and attempt to install MySQL and get it running again. I didn’t have luck with it in the past and think I fouled some things up in the process, and SQLite3 had been working fine for my purposes in the meantime. But the time had come that I need MySQL and wanted to make sure I did it right.

Fortunately, the Ruby on Rails weblog had a great post about the writer’s effort to get everything working, and the writeup was just what I needed to get everything working nicely on my machine.

So if you want to tame the Snow Leopard save yourself the headache of scouring the interwebs and just head over to the Ruby on Rails Weblog post Upgrading to Snow Leopard.

Introduction to Rails (slideshow)

This presentation was given at a professional organization I belong to earlier this year. I’d definitely like to do more in the future.

Keeping ideas tamed with Action Method

Sometimes I’ll be out and about when I have an idea for something I’d like to create. I’ll take a quick note about it, then forget about it until I stumble across the note months later. Sometimes, it’s a great idea and sometimes, it’s just terrible.

But often, I’ve not gotten around to finding out if it’s good or bad because I’ve not tried it. It’s been scratched away on a piece of paper somewhere, not having room to breathe.

After this year’s South by Southwest Conference, I was listening to the podcast for a session called “Tip For Making Ideas Happen” with the makers of Action Method, Behance.

One of the things I got from that podcast really stood out. I’ll paraphrase here, but it boiled down to this: a glut of ideas can be as dangerous as a drought. Listening to the podcast, I realized I was a lot like those that Behance surveyed when they were putting Action Method together – creative types that need a solid foundation for organizing their ideas and then taking action.

I ended up signing up for their free trial, but it didn’t take long for me to purchase a monthly subscription. The service is great. I’m able to clearly organize ideas I have, then outline what steps I need to take to make those ideas materialize. One of those ideas I recently accomplished when I put the Lawrence on Rails website into a simple content management system I created. I knew what I wanted to achieve, I outlined my steps, then I worked my way through each step until I was finished. Now that project is archived, at least, until I improve it even more.

If you find yourself in the same mindset, give the podcast a listen or head over to actionmethod.com to sign up for a free trial and see what they’re doing.

Action Method could be exactly what you need to go from “planner” to “doer.”