About Me

I am currently working at Cybrains, Inc. where I primarily engage with customers that need to build web applications with backends that support their everyday operations. I am also building the world's easiest to use firewall/router for home use and specifically targeted at non-techie Parents, that we call Chaperone."

What spare time I have left, I fill up by hanging with my family, playing tennis, cooking, playing piano, weight lifting, trail running, racquetball, squash, bocce, ping pong, and learning more about the Open Source community upon which, Linux, Apache, PostgreSQL, etc., are all based on. Lately, Ruby on Rails gets most of my attention as far as development frameworks go.

Code Connoisseur?

According to Webster's Dictionary...

Code noun 'kOd
Etymology: Middle English, from Middle French, from Latin caudex, codex trunk of a tree, document formed originally from wooden tablets Date: 14th century
  1. a systematic statement of a body of law; especially : one given statutory force
  2. a system of principles or rules <moral code>
  3. a system of signals or symbols for communication b : a system of symbols (as letters or numbers) used to represent assigned and often secret meanings
  4. a set of instructions for a computer
Con·nois·seur noun kä-n&-'sur
Etymology: obsolete French (now connaisseur), from Old French connoisseor,from connoistre to know, from Latin cognoscere Date: 1714
  1. EXPERT; especially: one who understands the details, technique, or principles of an art and is competent to act as a critical judge
  2. one who enjoys with discrimination and appreciation of subtleties <a connoisseur of fine wines>

So, why Code Connoisseur?

Well, it was a nickname given to me by two different people at two different jobs in their observations on my coding habits, what languages I chose to develop in (and why), and my general approach to solving problems, so it has sort of grown on me, eventually becoming my primary Yahoo! chat ID for a while. It was only a matter of time before I bought my own personal domain name and Code Connoisseur was the natural choice.


A page about me wouldn't be complete without mentioning tennis. I first exposed to the game in Jr. High during a brief four week period in P.E. where we learned what a forehand and a backhand and a serve was. However, I didn't seriously consider the game until my freshman year of high school where I once again picked up the racquet to give the H.S. tennis team a tryout. Surprisingly, I made the team and have been hooked ever since.
"I threw the kitchen sink at him, but he went to the bathroom and got a tub."
— Andy Roddick (on explaining his defeat to Federer in 2004 Wimbledon Final)


"I skate to where the puck is going to be, not to where it has been."
— Wayne Gretsky
"All things should be as simple as possible, but no simpler."
— Albert Einstein
"To see is to forget the name of that which one sees."
— Monet
"When one tugs at a single thing in nature, he finds it attached to the rest of the world."
— John Muir
"A mind, once stretched, never returns to its original dimension."
— Oliver Wendell Holmes
"The difference between genius and stupidity is genius has its limits."
— Albert Einstein
"Omit needless words."
— Strunk & White, The Elements of Style
"A designer knows he has achieved perfection not when there is nothing left to add, but when there is nothing left to take away,"
— Antoine de Saint-Exupery
"Drinking just to get drunk, is like having sex just to get pregnant."
— Robert Hess

What Amazes Me About Entrepreneurs

A city boy, Kenny, moved to the country and bought a donkey from an old farmer for $100.00. The farmer agreed to deliver the donkey the next day.

The next day the farmer drove up and said, "Sorry son, but I have some bad news, the donkey died."

Kenny replied, "Well then, just give me my money back."

The farmer said, "Can't do that. I went and spent it already."

Kenny said, "OK then, just unload the donkey."

The farmer asked, "What ya gonna do with him?"

Kenny, "I'm going to raffle him off."

Farmer, " You can't raffle off a dead donkey!"

Kenny, "Sure I can. Watch me. I just won't tell anybody he is dead."

A month later the farmer met up with Kenny and asked, "What happened with that dead donkey?"

Kenny, "I raffled him off. I sold 500 tickets at two dollars a piece and made a profit of $898.00."

Farmer, "Didn't anyone complain?"

Kenny, " Just the guy who won. So I gave him his two dollars back."

Kenny grew up and eventually became the chairman of Enron.

Perspective is Everything

If you have ever gone through a toll booth, you know that your relationship to the person in the booth is not the most intimate you'll ever have. It is one of life's frequent non-encounters: You hand over some money; you might get change; you drive off. I have been through every one of the 17 toll booths on the Oakland-San Francisco Bay Bridge on thousands of occasions, and never had an exchange worth remembering with anybody. Late one morning in 1984, headed for lunch in San Francisco, I drove toward one of the booths. I heard loud music. It sounded like a party, or a Michael Jackson concert. I looked around. No other cars with their windows open. No sound trucks. I looked at the toll booth. Inside it, the man was dancing.

"What are you doing?" I asked.

"I'm having a party," he said.

"What about the rest of these people?" I looked over at other booths; nothing moving there.

"They're not invited."

I had a dozen other questions for him, but somebody in a big hurry to get somewhere started punching his horn behind me and I drove off. But I made a note to myself: Find this guy again. There's something in his eye that says there's magic in his toll booth. Months later I did find him again, still with the loud music, still having a party.

Again I asked, "What are you doing?"

He said, "I remember you from the last time. I'm still dancing. I'm having the same party."

I said, "Look. What about the rest of the people." He said. "Stop. What do those look like to you?" He pointed down the row of toll booths.

"They look like toll booths."

"Noooo imagination!"

I said, "Okay, I give up. What do they look like to you?"

He said, "Vertical coffins."

"What are you talking about?"

"I can prove it. At 8:30 every morning, live people get in . Then they die for eight hours. At 4:30, like Lazarus from the dead, they reemerge and go home. For eight hours, brain is on hold, dead on the job. Going through the motions."

I was amazed. This guy had developed a philosophy, a mythology about his job. I could not help asking the next question: "Why is it different for you? You're having a good time."

He looked at me. "I knew you were going to ask that," he said. "I'm going to be a dancer someday." He pointed to the administration building. "My bosses are in there, and they're paying for my training."

Sixteen people dead on the job, and the seventeenth, in precisely the same situation, figures out a way to live. That man was having a party where you and I would probably not last three days. The boredom! He and I did have lunch later, and he said, "I don't understand why anybody would think my job is boring. I have a corner office, glass on all sides. I can see the Golden Gate, San Francisco, the Berkeley hills; half the Western world vacations here and I just stroll in every day and practice dancing.

"Most people are about as happy as they make up their minds to be." -- Abraham Lincoln

Blast From the Past

The longest-lived website I have ever maintained without changing content and style much. I was prolific in updating the website as I went through the Masters of Instructional Technology degree program at UGA. It was a playground instrumental in helping me learn web development and was originally built with Zope and Python. However, once I went to work in Baltimore, practically all updates stopped with the demands and pressures of the job at hand, which became my daytime job, nighttime job, and even my job while wining and dining! It is preserved for prosperity, so click and enjoy.

My very first home page It is a little, well...cheesy by today's standards, but back in 1994, it made for a pretty slick personal site. It was only updated once around 1996 as I changed Internet providers and also was no longer working for Argus Computing (which the original contents referenced quite a bit), but the original layout and all the original images, which were painstakingly produced back before the days of widespread photo manipulation tools for the web, are preserved here.

For a while, I was working on a Masters in Instructional Technology from the University of Georgia, but got side-lined when I took a job in Baltimore mid-way through my education that was supposed to be 100% telecommuting at the time. Being the nice-guy that I am, I couldn't say "No" to the repeated requests for me to move to Baltimore and head up the the entire development team. Little did I know what I was getting myself into and I quickly had to focus all of my attention on the job at hand as we went from a handful of developers to over thirty-five! Needless to say, my Masters degree wasn't completed, but I generated a body of work in my Instructional Technology Portfolio that is still generating a huge amount of traffic to this site. One of the most comprehensive research assignments I ever did was this paper asking the question: Instructional Designers and Software Architects: Are Instructional Designers Software Architects in Disguise? comparing Instructional Designers to Software Architects and I have gotten a surprising number of emails on the topic over the years.


my life, experiences, and reflections

On Hiring Good People

In the past, I have always felt it was my responsibility to put new hires at ease by letting them know that now that they're here, we'll do everything we can to make a long-term career path work. read more

Week Five in the Gym

Today, I saw a huge boost in the weights I was able to push and I'm not sure what exactly happened. read more

The True Power of the Internet

We are able to connect with other human beings that will uplift and enrich our own lives and journeys. We are able to uplift and enrich another's life by doing nothing more than sharing our own experience and journey. read more

Rekindling a desire to workout consistently

For the last 3 years, I've been pretty slack about staying in shape and my body was starting to let me know....like *really* let me know. read more

I'd Rather Eat my Britches than Do This

You're an entrepreneur! Congratulations. You're wearing every hat in the business. The technician, who executes on getting stuff done or making things work for the client. The marketer, who finds the next paying customer through writing, talking, greeting, calling, canvasing ad infintum. The visionary, who sees the grand picture of where the company can go and boils it down to actionable steps. The bookkeeper who's paying the tax man and minding every penny spent and earned. And so on! read more

Mold Killer Recipe

I went down into our basement and discovered what I thought to just be lots of dust was actually mold. At first, it just seemed like dust, but upon closer inspection there was a clear pattern to the growth that indicated mold and not dust. read more

Gonna be Starting Something New

Every once in a while, a number of good ideas that I've been churning in the back of my brain but never quite figured out how to do something useful or cohesive with finally gels. For the past week (first week of August 2014), I have literally been flying through pulling together a wealth of ideas. read more

Pitch Camp, what is it good for?

Last week, I attended FourAthens Pitch Camp. Although we were not seeking investors, it seemed like a great idea to put ourselves through the ringer and see how investors might respond to our message. read more

Less communication can be more

Have you noticed how "plugged in" you are lately? I recently rejoined the social media scenes after being almost universally absent for about three years. Yes, you read that right. No twitter, no Facebook, no Reddit, no Flickr, no Tumblr, no social anything. read more

Let the Musings Begin

I have long blogged about highly technical articles and usually only after I have figured all the hard parts out. It was my way of giving back to the community, but I have long felt I was missing another side of me online. read more


about fetching, interpreting, and executing

Working on a Referral Pre-Launch Site

Since I’m at zero followers, I’m crafting a plan to bring in as many emails as possible in a week’s time so I’m not “launching to crickets” as the Harry’s founders phrased it. What Harry’s did was nothing short of remarkable. They acquired more than 100,000 email addresses in seven days on a referral campaign where they awarded products to those who participated. The more referrals a person garnered, the greater the reward. If you’re interested in the whole story, check it out here.… read more

Making Commitments, Reaching Out

In a very real sense, today is monumental for me. Today, I committed developer resources (not just my own) to my upcoming mobile app. I don’t quite have the specs together for the developer, but I have enough now that I can get him started on building some of the foundational components of the app. We’re making room in our collective schedule to get this project formally under way.… read more

Preparing for Countdown

Today, I focused on setting up email and twitter accounts so I could begin to get the word out for Matchpoint.… read more

Ground Zero

I am at ground zero for a new venture I’m launching. So, let’s talk about what I’m planning and where I hope to go with it.… read more

A Reflection of the Technologies I Built Things With

Sometimes, a random event triggers a walk back down memory lane. That moment came for me the other day when I came across a CDR containing the code I ever wrote the first 15 years of my programming career. For just over 30 years, I’ve been building software professionally and I have kept backups of nearly everything I’ve ever written. What somewhat surprised me as I looked through all this old code is the breadth of machines, operating systems, and languages I touched along the way. As I thought on this list, I wondered what all I made use of during my career and wondered what that list might look like, so I set out to compile just such a list. If I used the language, operating system, or platform and built a complete application that was deployed and used… read more

Dynamic Routing in Rails Revisited

Ever since my original post Creating Dynamic Routes at runtime in Rails 4, I have been digging into Rails routing more and more. I’ve gotten a lot of feedback on the post itself as well as comments in the IRC #rubyonrails channel with an over abundance of passionate pleas not to do routing this way in Rails.… read more

Creating Dynamic Routes at runtime in Rails 4

I was working on a fairly simple site that has a content management component to it and wanted to find a way to dynamically generate the routes to the pages that were managed on the back-end by the site authors. This article presents an alternative to the usual approach of creating a catch-all route in the routes.rb by generating specific routes to each and every page.… read more

Adding Google Analytics script to Sprockets

Today, I wanted to add Google Analytics for tracking my website’s usage history. Rails 4.0 has an excellent assets pipeline that generally works well out of the box with little fuss, but when you try to do something outside adding another require to the “assets/javascripts/application.js.coffee” file, it gets a little more complicated to implement. Here, I show you exactly how to add Google Analytics as a coffeescripted script that is only loaded in the production environment.… read more

Gems you should consider for every Rails projects

Ruby on Rails provides a lot of great functionality out of box, but there are a few gems I almost always add to my new Rails projects. Here are some of those gems I practically cannot live without.… read more

Weak Password will get you Hacked!

If you’re like me and you are online a lot, you probably have more website accounts than you can count from Facebook and Twitter all the way to your banking and blogging accounts. Today, I got an alarming email from my email provider saying that multiple attempts were made to log into my account from Argentina. Fortunately, my provider blocked the attempt, sent me an alert and I was able to act promptly! How did they do it? Well, over time, the major web services collect a lot of data on break in attempts and patterns of behavior and, whether you like it or not, know your general behavior, frequency, and geographical areas where you log in most. If you live in Georgia and then fly to California and attempt to log into a service like Facebook, Twitter, or Google,… read more