Iterate, Iterate, Iterate

How many times have you started a task—or thought about starting a task—only to quit immediately because it seemed too hard? You wouldn’t be alone. I’ve quit many, many things for the simple but dumb reason that it looked like too much work. We all fall into this trap.

The worst is allowing your brain to shut down a task before you’ve even begun. For example, re-designing my personal website has been on my mind for a couple of years now. I’ve thought about it over and over, about all the work that would be required, about the new content I’d need to develop. My brain would register these seemingly endless tasks and then shut me down. It was just too daunting for me to take on a re-design of my site.

So I quit.Keep Reading

Building a Garden Box

Building a backyard garden is something I’ve always wanted to do since I bought my house. 2017 was the year to make that happen. In order to keep things looking nice, I decided a garden box was the best approach. Below is a small photo diary of that process.Keep Reading

Waiting for the Perfect Time

I’ve spent a lot of my life waiting. Waiting in traffic, waiting in line, waiting for a friend. Waiting is never going to go away — it’s always going to be there.

But there are things we don’t need to wait on. Creativity, writing, adventures — none of those need to be constrained by waiting. But I do it all the time. I always wait for the perfect time to write a blog post (which, judging by the timestamps of my blog, is an apparent rare occasion…). I say to myself that I need to update my website first, that it must look better, that I must fix some feature before I can write. That’s all bogus. It’s an excuse not to write. And frankly, no one cares. It’s the content that matters, and to create content, you must write.

It’s hard not to wait. Procrastination is threaded within all of us. We rely on waiting to delay the hard work, to be lazy.Keep Reading

Making Email Testing Easier with Grunt.js, Mailgun and Amazon S3

After seeing Lee Munroe’s excellent Grunt.js script for automating the email design testing process, I decided to expand on it and fork it over to my development process. Both Grunt and Gulp have made enormous contributions to my workflow in recent months. And when it comes to designing, building, and testing emails, automation is key.

When testing an email campaign, here’s what’s needed:

  • Legacy code that works across email clients (especially Outlook)
  • A place to host images
  • A way to send test emails
  • And, preferably, a tool to render test emails in different environments

Lee’s script handles all of this, from using Handlebar templates for multiple email bodies to compiling Sass and inlining the styles. Mailgun then steps in to send out the freshly created email code to whatever email account you want.

The only modifications I made to this script was to dump Rackspace Cloud Files in favor of Amazon s3. I also added support for image optimization. Here’s the code I added to my Gruntfile:

Keep Reading

Getting CodeMirror to Work with Ruby on Rails

codemirrorI’m in the process of building a pattern library at my current job. Keeping with the culture of the company, I’m building the library on Rails, using Sass and Haml to expedite the code writing. Part of the library needs to show code snippets, so to do this, I needed pretty output for the Haml source code I wanted to show. Basically, I didn’t want to settle for outputting code using <pre> and <code>.

Enter CodeMirror. CodeMirror is an in-browser editor that enables you to display source code with much of the power and theming capabilities of a full-blown editor. For my purposes, I just want it to show code coloring and line numbers.Keep Reading

Boosting Customer Retention in an Increasingly Service-Oriented Marketplace

600_295750542I recently attended a super awesome meetup held by the DC Lean Startup Circle group in downtown DC. The talk, titled How to Retain Customers, Create Raving Fans & Make ‘Em Beg for More, was about — you guessed it — customer retention.

I was intrigued by this topic because customer retention is a huge issue. I suppose it’s actually always been an issue for businesses, especially startups, but it seems to me that with “Software As A Service” taking off, keeping customers around has never been more essential for growth.

So with pen and paper in hand, I trudged my way through the hot mugginess that is DC in June and found myself enthralled by the first speaker.

Her name is Donna Khalife, and she’s the CEO of Surprise Ride, a startup business that sells parents on a monthly educational/care package for their children. I think this is a winner of a concept. Even more interesting about this speaker was that her company was a recent Shark Tank contestant. I don’t watch the show, but I know it’s popular, and anyone who cut their teeth under the derision of Mark Cuban must have something good to say.

And so here are my notes from Donna’s talk.Keep Reading

Are Website Overhauls Really Worth It?

When I was heavily involved in web design projects, I noticed an annoying trend. Too many websites were being completely overhauled, meaning their original design was trashed completely, new ideas constructed from the ground up, and every old notion thrown out the window.

Wait — is this a bad thing?

Of course not. Fresh blood is a necessary ingredient to forward momentum, but it’s a catalyst that should only be called upon under rare circumstances. When a website’s entire infrastructure and design is discarded, it tends to leave a blank slate (well, maybe not completely blank). But many, many good elements are trashed in favor of something fresh. Those good elements might be obvious, like certain pages and design traits that were working, or maybe they were a little less obvious, like hidden visitor trends that just needed some sussing out.

My point is, website overhauls should not be done on the fly. Websites should follow an evolutionary chain whereby the ineffective elements of one iteration are eliminated and the effective elements rolled into a new iteration that also incorporates new ideas based on past trends. Wiping the slate clean nukes everything, the good and bad, and leaves very little to work with — and that’s a tough challenge to create a website from!Keep Reading

How Creative Agencies are Putting Remote Teams to Work

I recently had the opportunity to attend a panel discussion regarding the merit of remote teamwork in a creative environment. On the panel were four owners of creative agencies in the Washington D.C. metropolitan area. In fact, the panelists were:

  • Carl Smith of nGen Works, which “uses strategy, technology and creativity to help people kick ass.”
  • Marc Garrett of Intridea, which “designs and develops simple, intuitive web and mobile applications to help companies realize the power of social business collaboration, cloud computing, and next-generation tools for the enterprise.”
  • Nathan Curtis of EightShapes, which “designs interactive experiences that balance custom needs with business objectives.”
  • Brian Williams of Viget, which is “a full-service interactive agency that helps plan, design, build, and measure successful websites and digital products.

That’s quite a line-up—and the main reason I wanted to attend this panel. These guys are heavy hitters on the local DC scene, so it was fascinating to hear their take on remote team management, especially as a follow-up to Yahoo’s recent declaration of war against employees working from home.Keep Reading

Four Activities to Turbocharge Downtime Between Web Projects

Let me throw you a hypothetical: Say you have free time between your last project and the next one that has yet to start.

I know, I know—who has free time anymore? But perhaps there’s a slow period in your work, where you aren’t inundated with projects. What’s the most productive way to spend that time?

Sure, you could busy yourself with small, insignificant tasks or old emails that don’t really matter anymore; but ultimately, that’s not productive—it’s just a way to pass the time.

Here are four activities that can help you evolve as a web project manager, recharge your batteries, and put in you in a ready state for the next onslaught of calls, meetings, and web work.Keep Reading

Responding to Bad Situations

A couple of weeks I found a big problem in one of my client’s Wufoo forms. The submit button on a payment form had disappeared.

Despite many vain attempts to fix the problem, I eventually resorted to contacting the Wufoo support team. After all, a missing submit button on a payment form is a pretty big deal.

I don’t usually contact support. I like to try to figure out things on my own. It’s one of the best ways to learn. But the biggest reason why I cringe at contacting support at most companies is because they can be slow and unhelpful.

Unfortunately, I was really stuck in a rut. So I filled out Wufoo’s contact form and shifted to another task. Pretty soon I received a response. Wufoo was aware of the bug in the system, but the developer working on it was unavailable.

I gritted my teeth and responded that it was a fairly significant issue. This wasn’t just affecting my form, but many others as well.

They got the message.

Shortly after, I received an email that the issue was being looked at. Better than nothing, I said to myself. Within an hour, though, the problem was fixed.

I never doubted Wufoo. Their service is excellent and they have some bright people working hard to make it even better. And I think there are some lessons we can learn from the way Wufoo handled this situation.Keep Reading