So much to say. I think the core lessons are: be patient, don’t give up, and always be learning. You can turn even the most crappy situation into valuable lessons. Teach them to others. Be happy with what you have yet always strive to improve things. Don’t let people flatter you into playing their games. When things get weird, keep a log. Love and respect good people. Learn to keep the assholes at a distance. Don’t get hung-up on the past. Be nice to people, even those trying to hurt you. Speak up when things are bad, and tell the truth. Trust your emotions yet check where they come from. Don’t be afraid of taking risks, and learn to identify and manage risks. Solve one problem at a time. Be generous. Teach others whenever you can. Remember Sturgeon’s Law.

Confessions of a Necromancer

Simple, or why companies reinvent solutions

A designer knows that he has achieved perfection not when there is nothing left to add, but when there is nothing left to take away – Antoine de St-Expurey


At work, we are currently experimenting with HipChat.  HipChat, if you aren’t aware, is chat client like IRC.  In fact, the similarities are great.  You log in, you join a chat room, you can talk to people, it keeps a history.  Even there client reminds you of an IRC client.  So the question becomes, in a world with IRC freely available and at your disposal, with MSN and ICQ and various other chat applications available, how could HipChat hope to make an entrance.

Through simplicity.

How does HipChat work? Well, you log into your account, and then you can start chatting away in whatever room you want.  Its contrary to the way IRC works.  With IRC, you have to decide on a server.  Actually, before that, you have to figure out which IRC client you want.  And, of course, you have to learn to use the application.  You probably still have to set up an account on the IRC server (unless you don’t mind not “owning” your name).  Doing this means learning how nickserv works on that network.  Then you have to learn how to join a chatroom… well, it’s annoying.

How does your car work?

Specifically? How do all the computers in your car play a part?  Do you know?  Does it affect your ability to drive?

HipChat works by hiding the complexity.  Driving works because it hides the complexity of the engine and everything that makes it work.  Computers do this as well.  Considering all someone has to do to get a computer and OS up and running is turning the power on, it’s fairly simple from a user perspective.

So, HipChat is successful because it has removed everything unnecessary from the process of group chat.  It doesn’t even require a local client.  You can log in to a website like you do everywhere else and start chatting.  No download required.

One Button

Oddly enough, this is something Microsoft discovered and pioneered before Apple’s iPhone.  Once you started your computer up, there was a button: Start. This made further use of the computer simple.  It was the single starting point, and it even said “Start” so you had a good understanding that whenever you wanted to do something with Windows, you’d Start there.  This of course led to the joke that if you wanted to shut down, you’d want to Start the shutdown process with the Start button.

Regardless, both the Start button and the iPhone/iPad/iPod’s single home button have become popular.  The idea here is removing all unnecessary buttons from the device or system.  The less you have to do, the easier the action becomes.

Less is more, as they say.

Apple took this further with their Magic Mouse.  I’ll admit, I love the little thing.  The combination of a mouse and a touch interface makes it a pleasure to use.  The Magic Touch Pad is also another nice addition.  In this case, there really is no button on the device (that the actual device is an entire button is beside the point).  It’s just flat.


Keyboards are, in some respects, the anti-thesis. It has many different buttons, and modifiers that do different things. Luckily, for the most part, the buttons follow simple rules. The layout is in such a way that makes touch typing incredibly easy.  That touch typing is a skill that’s been around since before computers makes it an easy mechanism to use.  After all, why not build on top of what people already know.  We do this with most calendar applications, which are laid out in a way that is familiar to most everyone.

So, even with all those buttons, a keyboard is still fairly simple because it’s not necessarily attached to the keyboard.  It helps that the letters are printed on the keys in a standard order.  So, because of these simple rules and the fact that their is a history attached to the use of the keyboard, it’s an exception to the rule.  Somewhat.

Virtual keyboards, while following the same layout in most cases, generally don’t share some of the common properties with physical keyboards.  After all, one of the principles of touch typing is actually touching the keys, returning to the home row, and this is facilitated by the little bumps on the ‘F’ and ‘J’ key.  With these, we can easily return to our starting position (And, if you’ll note, on a numerical key pad, you have the same bump on the 5 key).  Virtual keyboards don’t actually have this (despite the “bumps” appearing drawn on.

I’m actually surprised by the number of people that don’t realize what these little bumps are for.

Regardless, people like Swype are looking at ways to improve the virtual keyboard experience.  In Swypes case, while the virtual buttons remain, the actual number of presses are reduced.  You just move the pointer, or your finger, over the keyboard.  This ceases to be a keyboard, and more a drawing tool.

What does this all mean?

I don’t think it’s surprising that simple works best.  Simple doesn’t just mean one button (HipChat isn’t just one button, and keyboards have many), efficiently usable by everyone (keyboards work best when touch typing, but other people can get by pecking along with their fingers), or copying what already exists (after all, the single button approach for the iPhone was completely different from any other phone at the time).

Simple is an odd combination of all these things.  More importantly, it’s about understanding what actually makes things difficult.  Having a common rule for keyboards make them easy to use.  The iPhone copied this style.  All those little apps do something, and they all work the same way.  HipChat works just like any other site.  It’s akin to email, and one of the first things people learn to use is email.  The difficulty in using a smartphone wasn’t the nature of a mobile computing device.  It was simply that applications suddenly had different rules, keyboards had to be modified to account for the size, and they tried to carry over the windows motif from the desktop to the mobile device.  Function keys, modifiers, special keys for different things.

And this leads us to the point: removing that difficulty is something people will pay for.  Keyboards haven’t changed much because the difficult is displayed by the keyboard literally spelling out what each button does.  The challenge now is how to solve the problem of typing on a smaller device.  For the vast majority of users, this isn’t an issue.  They don’t touch type anyways.  However, this doesn’t mean it’s the most efficient way for them.  Swype has one solution.  Apple has another solution: Siri.

HipChat tackled the chat arena.  It was a market that wasn’t exciting from my perspective, and felt saturated.  After all, when you thought about chat, you thought about IRC, and the various clients out there competing for users.  HipChat came in and made a business out of it.

This is important.  When we look for future solutions, one thing we often ignore are the current solutions we use.  Is it really as easy as it can be.  Could we improve on it? What are the painful parts?

It’s not easy to do this.  Google, in some ways, has tried this in the past with things like Buzz and Wave.  Twitter is an example of this same thing: a problem existing, and while solutions existing, they weren’t simplified.  Facebook is the same thing (in some regards).

This all goes back to the Unix mantra: do one thing and do it well.

When I want to run a chat room, I want to run a chat room.  I don’t want to setup a server, or manually set up users.  I don’t want to manage nickserv, or anything else.  I simply want to do something, not manage or setup.  Lots of companies understand this.  Amazon’s cloud hosting services, Netflix and their video streaming, and even Amazon with it’s 1 Click purchasing.

So, don’t be scared to solve something that’s already been solved.  Countless companies have built empires on top of “simply” removing things from existing solutions.

I picked the destination

In August, I moved from Montreal after almost 10 years to the small town of Telford, Pennsylvania, a little less than an hour north of Philadelphia.  It’s a beautiful little town.  Our home is nestled in a small development filled with couples with kids that are around the same age as Joseph and Julian.  Lots of prospective baby sitters in the next few years as well.  Within 10 minutes, we have pretty much everything we could be looking for in terms of local shopping, as well as several wonderful local pizza joints.

It’s a wonderful place.

I work at myYearbook.com, a wonderful social discovery site, in New Hope, Pennsylvania.  It’s a good hour commute in the morning, and a bit longer on the way back home.  The people that work there are incredibly smart, highly motivated, and know their field extremely well.  It’s wonderful working with them.  Every day is a learning experience.  It’s a wonderful place to grow and expand professionally.  Between the number of published authors and open source contributors, as well different technologies we are using, it’s hard for anyone not be learning something new every day.

But why did I move?

Joseph.  Born in November of 2008, he was pre-diagnosed with autism in the summer of 2010 at one-and-a-half years old.  For a year, my wife and I fought he Quebec government to get help for him.  Between both private and public care, he was constantly denied treatment.  Coming to Pennsylvania, the public care he receives as a child with autism is light years beyond what Quebec had to offer.  Before getting here, we’d gotten appointments.  Within the first month, he’d received more help for autism then he’d ever gotten in Quebec.  It was at the same time wonderful and sickening.  To know he was getting help, and to realize how many people are still suffering in Quebec.

My greatest hack was moving to Pennsylvania and getting my son help.  It was making that decision to move.  When you’ve lived in a place for 10 years, it’s hard to disrupt your life.  But one afternoon, after another major setback, I told my wife that I was going to move us to the US and get Joseph care.  It wasn’t a discussion.  It was a decision.  A few months later, we left Quebec hoping for the best.

There are times in your life you are given an opportunity, but those are far and few between.  Waiting on them is a mistake.  Instead, you need to make your own opportunities.  You need to make a decision.  There was a lot of work between deciding to move, and finally moving in to our new place.  I won’t say it was easy.  But it was easier than I thought it would be.  But still, it was a lot of work.  But the hardest part was finally admitting that the only person that could make this happen was my wife and me.  Making a decision.

We all make choices in our lives. They can be simple choices.  What to have for dinner?  What to name a variable?  What tree to use for this data set?  These are easy choices.  They are easy because we have control over them.

The decision to move, as big as it was, was easy to make when I understood I had to take control.  I couldn’t wait on a careless government.  Who could I trust, more than my wife and I, for my son’s well-being?  No one.

Since moving, Joseph has received a tremendous amount of real help tailored for his condition.  In November, when he turns 3, he goes in for more intensive treatment.  Everywhere doors are open.  The effort is on his treatment, not on finding treatment.

From the moment I made that decision until today, I never reflected on the difference of that decision as opposed to others I’ve made in my life. What, after all, truly made this decision different?

I made a choice about what I wanted.  After that was made, I simply had to make it happen.  Plot the course.  I didn’t make a choice to make a plan to reach an outcome.  I picked the destination.

People will tell you it’s not where we go but how we get there that matters.  And while I don’t disagree with the latter part, the destination had better matter, or else you’re just wandering aimlessly.  So what does all this mean?

Pick a destination.  Get there well.

How to get an invite to Forrst

If you don’t know, Forrst is a invite-online developer and designer community started by Kyle Bragger (@kylebragger).  It’s a fairly friendly community, with lots of great feedback from a wide variety of people with all levels of skill.  However, one thing Forrst strives for is a community for all levels of people.  From beginners to experts, designers and developers, Windows/Mac/Linux users, all are invited.  At least, as long as you are willing to put forth the effort.

To get an invite, an existing member must invite you (and invites only come to those who contribute back to the community), or you have to be voted in after having applied.  To join, you go to the “I want to join” page.  On that page, it asks for a few pieces of information, including a  link to something you’ve done.  A github page, open source project, some fancy design.  Something to show that you are a developer or designer oriented person.

The second part, however, is the most important part.  The Forrst join page asks you to provide sample feedback for a random post.

Provide Good Feedback

Listen.  Forrst is all about communication.  Communication between all types of people.  This means feedback is important.  Poor feedback is bad.  We don’t like it.  However, good feedback is cherished, loved, and rewarded.  So, when Forrst asks you to provide feedback for a post on the Join page, realise that real Forrst members are going to review this feedback.  It takes 3 votes to get you in, and chances of finding 3 people to agree that “That looks awesome” is good feedback is slim.

Let me try to make this clear: the feedback you provide on the join page indicates to us the type of feedback you’ll provide once a member.  If the feedback provided is essentially worthless, then making you a member won’t help the community.  A community built up around feedback.  What this means is that you should put some effort into your feedback.

So, here are some tips on how to write good feedback.

1. Pick a post you can answer

Forrst provides a nice little button that you can click on.  It will reload the post to provide feedback for.  Don’t just settle for the first post you see.  Instead, find something you are actually interested in commenting on.  You aren’t expected to comment on everything that gets posted to Forrst.  Not everyone that gets posted to Forrst is going to get good comments.  So, click a way and find something that will allow you to provide good feedback.

2. Why, not what

“That looks awesome!”

The person you are providing feedback too is probably not going to see your post, so you aren’t going to win brownie points for complimenting work.  Though, if the work is good, providing compliments is fine.

However, in this case, “That looks awesome” is fairly useless.  It just explains what you feel.  It doesn’t explain “why” it looks awesome.  Take a few minutes to go into detail about what you like and why.  Even if you can’t express it clearly, try.  Remember, effort is key here.  Explaining why you like something takes a bit more than just saying you like it, but it provides a lot more value.  Others can learn from it, the original poster can focus on those areas.  Who knows, in explaining why you like something, you might learn a little about yourself.

3. We need Effortmore, not Effortless

Okay, that was bad.  But, the point is, your feedback should take a bit of effort.  It is, after all, an application to join.  And regular members like me are going to read this feedback.  I’ll by frank, if I see a 10 word comment, I don’t bother looking at anything else and move on to the next person.  Maybe it’s unfair, but I figure it’s the same amount of effort put into the comment.

It doesn’t take long.  A couple minutes at most.  Ask yourself after you’ve finished the comment if it’s something you’d like to receive.  Does it actually share a unique idea.  Does it express an opinion? Is that opinion explained?

The Elite

Forrst isn’t about being among the elite.  It’s about being among people who are just like you.  Frankly, if you feel applying to the site and actually putting effort into the feedback is too much work, then Forrst probably won’t benefit you.  That’s fine.  However, if you truly want to join, then maybe this little piece of advice will help you avoid a pitfall you might not think about.  From the Forrst join page:

Since Forrst is a very critique- and discussion-oriented community, we ask prospective users to leave sample feedback on a post from one of our members.

We review this.  The members.  And I imagine those of us that review these potential members are very interested in keeping Forrst’s quality high.  We will be picky.  After all, we want to log into Forrst and enjoy what we read there.  We want to be part of a community of people that we’d go out drinking with.  A little bit of effort will go a long way.

Join us!  We aren’t elitist.  We just want you to know that this is the place for you, and we want to know that you’ll get a lot out of this community.  But only as long as you are willing to give.

Of course, as mentioned, the other way to join is to be invited by an existing member with invites.  Like myself.  In that case, beer is ALWAYS a welcomed bribe.


Personal itches are the best way to get started. After all, if your dissatisfied with what is out there, chances are, other people are as well. One of the worst things you could ever do is assume that just because a space is crowded means it’s full.