Image Image Image Image Image
Jim Weirich

Jim Weirich at the Scottish Ruby Conference in 2010

We lost a star in the Ruby community last night, Jim Weirich.  Everything I want to say sounds tinny and cheap.  I wasn’t a close friend, but I was an admirer.  Jim, more than any other Ruby leader, personified the kind of person I want to be: kind, jovial, approachable, helpful, informed, patient, committed to the end.

I remember sitting in a conference a few years ago, hearing about the creation of Rake.  The details are a little fuzzy, but basically Jim had a conversation and a need and wrote it in a day or an afternoon.  It’s improved since then, but remained simple and durable.  I retold that story a few dozen times to new Rubyists.  It’s not that the solution is elegant, though it is.  It’s not that it was written quickly, though it was.  It’s the joy Jim had in making something useful.  He had a boy-like pride in his contribution.

Jim taught a testing workshop I attended in 2008 or so.  He had taught that same course many, many times.  He knew how to walk us through the concepts, knew what pain we were experiencing.  He made himself approachable as he came around to all the tables and looked at our code.  He could see things from our eyes and disregard the hundreds of times he must have seen the same things.

When Jim came to Mountain West Ruby Conference, we met in the hallway.  Nothing noteworthy happened.  His default demeanor was respectful and relaxed.  I don’t know why that was the most-impressive part of the whole conference.  I had met many old friends, learned good things, came away recharged like I always do from a conference of that caliber.  Jim’s kindness was what I thought about as I drove home that night.

This must have been the common experience of Jim.  His kindness is mentioned over and over.  That and his ukulele at conferences.

I want to be like Jim.  I want to keep things simple.  I want to respect people and have them feel comfortable around me.  I don’t want to see these boisterous arguments online.  I’d rather see people make  their points with simple code commits, simple demonstrations of their ideas.  We all have a heavy burden we carry.  It seems Jim’s way was to lift that with us.

I wrote a simple application this weekend.  I’ve written this same application 30 times or so, over the last 15 years.  It’s a constant draw for me, to capture my thoughts as I find them.

How do thoughts flow through consciousness?

They don’t come linearly, as I’m sure you know.  They can be interrupted, blocked, fading, weak, supportive, declarative…but that’s not all.  The way that I work with my thoughts changes the way they flow.

If I write a dialog of my thoughts, they tend to come faster, but also more deliberately.  I can explore nuances and get myself back to the main thread.

If I make a list, I focus on the balanced ideas.  Or, I focus on the ideas in a prioritized way, fading into the horizon.

If I write a concept graph, it adds a little speed.  It also limits some of the nuanced wandering thoughts.  A concept graph, by the way, is just a tree of ideas.  In this version, tags and parent/child relationships give my thoughts structure.  I’m not sure why my thoughts stay more focused with a concept graph, but that seems to be the way.

I wrote the application as a concept graph this time, by the way.  I’m using this tool to break down a challenge at work.  I have a broad and deep problem to work on.  We’re launching a project that takes a lot of correlation and ties into immense amounts of prior work.  My colleagues have shared my experience of things so far, stunned into confusion.  So far, it’s working really well.  Priorities are becoming more-clear.  Relating the parts to the whole are my primary activity.

So what?

To develop proficiency in difficult things, sometimes even simple exercises can make all the difference.  Organizing the parts is one of those difficult things.  Lists, dialog, mind maps, index cards, or a concept graph will get this done.  It’s important enough that I choose how to address the problem deliberately.  I keep writing the same application, striving to get to the heart of more-important things.

I listened to an NPR story last week about how Amazon patents trivial and obvious features on their site to force people to have a poor experience on other sites.  Things like the One-Click Checkout button.  Jeff Bezos has a strategy of competing with a thousand micro improvements to be better than their competition.  Every advantage they can take, they take it, squeezing out other players.

But what happens when they’re just wrong?  What happens when I’m having a poor experience with Amazon? Well, I move on to other sites, quietly.

Why would I leave?  When Amazon’s failings and greed get personal.  When they have something so mind-boggling stupid as a hover that covers their full screen button.  So, if I mouse to the full-screen button from below, I get advanced to the closing credits of my show instead of getting the full screen experience I’m looking for at the beginning of the show.  Now, I can go to full screen with command + f, which I often do, unless I’m tired and vegging out and watching something to just relax.  At that moment, their brain-dead feature drives me absolutely bonkers.

No problem, right?  Just drop them a note, someone will get around to fixing such an obvious oversight.  No dice.  I spent an hour today trying to figure out how to let Amazon know they’ve screwed up.  I’m not sure who is more stupid: Amazon for their greedy, brain-dead ways or me for wasting an hour of my life trying to help them out.  I think I’m pretty stupid for wasting my time and money on them.

And I think that’s how it happens.  Some MBA looks at the cost of letting customers tell them there’s a problem, and there’s nobody around to calculate the benefit to the company of hearing that kind of information.  I bet the cost is really high.  But what is the experience when we can’t get a hold of them?  Feeling isolated, angry, and looking for alternatives is an obvious outcome from the situation.  There’s an inexorable progression from striving to serve the customer to striving to protect themselves from the customer.

Is self-interest going to be our resting pulse?  This is a challenge levied in the pilot of Newsroom.  Is that who we are as a society?  There is no higher ideal to strive for?

I got a high-five from a professor once, defending passionately self-interest and the invisible hand.  A capitalistic society can be incredibly efficient in some cases.  But in so many cases, we settle for others’ self interest instead of our own.  We get nickled and dimed from companies whose service is bad, but not quite bad enough for us to leave them.  Our own interests are trampled.  We’re just too complacent to shake things up.

My children have been getting ready for science fair again this year.

My daughter studied plastic last year.  She’s nine, but she can recite how plastics are made, the different types of plastics, their effects on the environment.  She made some toys out of casein plastic from milk.  I don’t know what she’ll be doing this year.

One son is interested in aquatic environments and pollution.  He was a grand champion in the fair last year for studying the effects of heavy metals in aquatic environments.  This year he’s interested in understanding ways to clean aquatic environments from heavy metals.

Another son is interested in engineering cyber-physical systems.  He’s been learning how to use the Raspberry Pi and interact with a dog with it.  He’s also been studying classical conditioning and trying to figure out if he could enhance a pet’s life with inexpensive electronics.

They’re all doing great.  I’ve asked them to work on a few chapters from a college text book on the design and analysis of experiments. They’re taking it slow, defining terms, asking questions and teaching each other what they’re learning.  They’re learning about bias and different types of experiment design that help avoid some kinds of bias.  They’re learning to think about their thinking.

I encourage science fair every year because it’s a collaboration with adults.  They are invited to work with adults on things that are important to them, explain how far they’ve come, subject themselves to scrutiny.  They don’t have limits with this kind of project.  They can go as far as they have time and interest.  They’re doing work that I’d be proud of at my age.

As I think about life ten years from now, I imagine we’ll have an ever-greater need to think clearly and deliver innovative results.  I think we’ll all need to know how to collaborate on projects that we care about, subjecting ourselves to scrutiny, and hopefully building a better future together.  Hopefully I can do this with the kind of wonder and excitement we see in the science fair.

I sat on a plane last week next to a neurosurgeon.  I almost never speak with people on the plane, but it was a red-eye flight, and I was punchy.  We spoke about the kind of training a neurosurgeon goes through.  For him, it wasn’t just medical school, a residency and a specialty.  He also underwent sub-specialty training to focus on dealing with particular cancers.  He is a dedicated man that’s spent an incredible amount of time learning everything he can about how our brains work and what he can do to help out when things go wrong.

In about a decade, the world’s fastest computer may be able to simulate the activity of the human brain.  Right now, the K computer was able to simulate about 1% of 1 second of the brains compute capacity in 40 minutes using the open-source NEST program.  That won’t mean we will have the capacity to comprehend the complexity of the brain yet, but it will mean that we will have the power to simulate it.

The BRAIN Initiative is seeking to build that kind of understanding:

Researchers will be able to produce a revolutionary new dynamic picture of the brain that, for the first time, shows how individual cells and complex neural circuits interact in both time and space….this picture will fill major gaps in our current knowledge and provide unprecedented opportunities for exploring exactly how the brain enables the human body to record, process, utilize, store, and retrieve vast quantities of information, all at the speed of thought.

That is, the BRAIN Initiative (and the Human Brain Project out of Europe) are working on how the brain works, the NEST program is seeking to simulate the power of the brain.

I don’t know if reasonable models of how the brain works could be integrated with the power of these systems within two or three decades, but I imagine we’ll get this moving along within my lifetime, roughly.  We’ll have the capacity to simulate a complete brain in some rough-shod fashion.


The Supreme Court ruled today on Hollingsworth v. Perry:

After the two same-sex couples filed their challenge to Proposition 8 in federal court in California, the California government officials who would normally have defended the law in court, declined to do so. So the proponents of Proposition 8 stepped in to defend the law, and the California Supreme Court (in response to a request by the lower court) ruled that they could do so under state law. But today the Supreme Court held that the proponents do not have the legal right to defend the law in court. As a result, it held, the decision by the U.S. Court of Appeals for the Ninth Circuit, the intermediate appellate court, has no legal force, and it sent the case back to that court with instructions for it to dismiss the case.

I don’t think I have a problem with the result of today’s decision.  It seems proper for the Supreme Court to  decide this.  However, I think I lost a little of my innocence about how democracy works today.

It feels like something other than the voice of the people are winning more and more in America.  That is, my vote counts less and less because the DA won’t uphold the people’s voice, or special interests are allowed to inject billions into our electoral process or simply that our votes are averaged out in an electoral college.

I don’t think that government should be in our bedrooms.  I don’t think that government should be doing many of the things it is doing.  But, I do think that government should be doing their jobs, despite their personal beliefs.

Put another way, what do I have to do to change things in America?  Vote?  Show up to council meetings?  Write my opinion for public forums?  Organize a phone tree?  Donate to the political process?  Create a shadow coalition?  Control the DAs office, a whole political party, the White House and Legislature?  How much power really has to be amassed before I have influence?  If the voice of the people can’t guide this government, then what kind of government do we have?


Looking Back
Creative Commons License photo credit: FeatheredTar

I’ve almost talked myself out of this post.  It’s a lot of self-disclosure.  However, I’m going to try and put on my big-boy pants and realize this might be useful to other people.

A lot of us build up a persona.  We want to be thought of as smart, competent professionals.  We do a lot to support this: our blog posts, open-source contributions, public speaking, participation in local users groups.  Not all of this has ulterior motives.  It’s a lot of fun to build worthwhile things, to collaborate with smart people.

But let’s be clear.  The smartest of us have dumb days.  The more I get to know highly-respected people, the more I see them as human, like me.  They are still laudable, but they have their quirks, their weaknesses and blind spots.

So do I.

For me, sometimes things build up.  The stress builds up, I can’t sleep, I can no longer concentrate.  The last thing I want is to hash it out in the open, let people see me weak.  I hole up and try to write code.  I have a pattern of this, unfortunately.  Things build to a head, then I want to drop off the grid and just be in a quiet space for a while.  I still write code and think, but I’m a shell of myself in those times.

Maybe this is common.  Maybe some of you have experienced this tendency?  I’ve seen it in others.

Some would say that this is evidence that I lack a solid foundation.  I might agree.  The more I learn from Mastery, the more I respect the immersive practice we all need to be competent.

However, the cold reality is that any of us can get overwhelmed in software development.  Aspects of it can grind us down.

Sometimes it’s the repetitively inane concerns of our users.  On my good days, I know they are real concerns, something I can help them with.  On my bad days, I get annoyed with how flippant they can be about work that can be terribly taxing and challenging.

Sometimes it’s the co-workers.  It’s easy to take offense at others’ failures.  The closer we get to others, the easier it is to get bristly with others.  I’ve found that this gets harder and harder the more ‘competent’ my co-workers are.  I.e., the really big players tend to have more quirks than the middle-of-the-road developers.  Middle-of-the-roaders don’t stick out, don’t risk being personally offensive.  The really good ones pick up prima donna habits.  But, they also have a lot to offer.  They take risks to give more, and they should be respected for it.

Whatever grinds me down, the truth is I can get ground down.  There is a lot of good advice around to handle that.  Don’t be a hero is one really-important piece of advice.  Stop after 8 hours.  Sleep.  Take interest in life, leave work to only a part of life.

I saw this from @tranqy today, it stopped me in my tracks:

Secret software sauce. Take work in the smallest size possible, communicate early and often with stakeholders, be honest. Everyone wins.

And that’s the reason I told you about my faults.  When life seems too big, the code too overwhelming, when I don’t want to talk to anyone (including stakeholders), when I lie to myself about my state of readiness…this is when I lose.  We can all get ourselves down.  The trick is to realize it and turn it around.  Take a break, then a breath, then break it down.  As small as possible.  I can write a single failing test when I’m down.  I can fix a mis-spelled word in documentation when I’m really overwhelmed.  I can be honest and write a note to myself about what’s really going on.

If I break it down to something really simple, I don’t have to be a hero, I can get back in the game.  Sooner than later.

Creative Commons License photo credit: Lauren Manning

The trouble with Seven Databases in Seven Weeks is that it’s a bit of a playground.  Ostensibly, it’s about becoming a well-rounded developer.  That probably works, if you push through this in seven weeks.  I’ve been picking it up more for fun than for progress.  I don’t think that’s a bad thing.

The book is well organized. You’ve got seven databases to work on. You get to work on relational, key-value and graph databases. You get to work with systems that do a few things really well and some that are general purposed. You can crank the scale up with some of these, working in large clusters if you’d like. You work from a very basic introduction to beginning to explore and branch out. The topics interweave so that you don’t really feel lost.

There are some pretty hip databases in the list: PostgreSQL, Riak, HBase, MongoDB, CouchDB, Neo4J and Redis. PostgreSQL is becoming the new black (in my circles, anyway). Redis is my favorite go-to for NoSQL issues. But what about the others? Ha! Exactly! You’ll get into these technologies deep enough to not only see these technologies, but to see them in action.

And, that’s the big gap, isn’t it? Getting from the manual to a practical understanding of a technology. So, we write our hello world applications, and we Google around to find tutorials. But then we’ve got to leap out and start experimenting on our own. We’re groping for the big picture. That’s what this book is about.
You’ll learn about technologies surrounding these databases. HBase comes with a discussion of Thrift in a distributed cluster. Neo4J comes with a discussion of Gremlin. For PostgreSQL, you’ll learn about full-text searching and hypercubes. Redis comes with a practical discussion of configuration tradeoffs.

You don’t have to know what any of these are about. You are introduced to interesting things to do and interesting ways to solve them. Mostly, you’re encouraged to roll up your sleeves and get comfortable using these tools. And, if you’re like me, you’re going to find yourself straying from the track. I think that’s a good thing. Competence comes from practice.

Bottom Line: if you’re interested in data, pick up this book. If you want to get a job with these technologies, plan on going much further than the book. All in all, this book doesn’t sit on my bookshelf, it sits on my desk, for every time I want to try something interesting.


I have been bugged by the TV commercials 5-Hour Energy has been running during the Olympics. I was first irked by how many factors they threw into a 30-second commercial.  I was then irked by how much fine print they slapped into that commercial.  They are suggesting their product is healthy, even approved by doctors.

To my eyes, it seems not unlike cigarette commercials showing doctor recommendations.

Here’s what they’re saying, in a nutshell:

  • 5,000 doctors were approached in person
  • 2,500 of those responded
  • 73% would recommend a low-calorie energy drink if the patient is already using energy drinks and is healthy
  • 56% would recommend 5-Hour Energy for those patients that already use energy drinks and are healthy

Of course, they do it with a professional-looking woman rattling off numbers next to about 15 reams of paper.  The impression is a lie.

As far as I know, no doctors are saying to use energy drinks.  That’s the first issue.  Everything doctors actually recommend seems to be to run away from those as fast as you can.  But, if you’re going to do this kind of thing, and you are healthy, you might as well take a low-calorie approach.

What if I assume the 2,500 doctors who wouldn’t participate in this kind of study would not recommend any energy drink under these conditions?  Then we’re saying that about 28% of doctors would recommend using 5-hour Energy to those that are using energy drinks and are healthy.  So, if they’re not recommending low-calorie energy drinks, are they recommending high-calorie energy drinks?  Not likely.

Do I have to point this out?  Doctors don’t want you using these things.  5-Hour Energy is the snake oil vendor of today.

Ranting about this is kind of silly.  Here I am, acting a generation older than I am, yelling at the TV.  Sheesh!  It’s just grimy business, and they invaded my living room.

OK, I’m going to confess something here.  I’m terribly envious of Leigh Dodds.  Maybe you have people like this in your world?  Bright, effective and young?  The guy has done some amazing things, and done them gracefully.  Privately, I’ve referred to the ever-nagging problem of keeping sharp as the Leigh Dodds Problem.  Leigh is a concrete example of someone that makes me look like a doddering old fool before my time.

I’ve watched Leigh for a while.  I watched the rise of his company, Kasabi.  I was really sad to hear that he’s closing down.  I think Leigh was ahead of us a bit.  He built services that I wanted to integrate into several upcoming applications, but the development lifecycle can be a bit slow sometimes (especially if I’m driving it, right?).

Leigh’s work always seems to cut to the nub.  This last weekend, I used his Linked Data Design Patterns to help shape some models in a semantic knowledge base I’ve been building.  The result was an escape from the academic, practical and rich data relations that weren’t complicated to build.  It’s not surprising that Semantic University wanted to highlight this resource today.

Anyway, it feels good to get that off my chest.  It’s important that people know they’re making an impact in this world.  I’ll keep watching Leigh and expect many great things from him.

Scroll to Top

To Top

Explicit Knowledge




In Explicit Knowledge

By david

Competence Matters

On 26, Apr 2012 | 2 Comments | In Explicit Knowledge | By david

First I’m going to tell you a shocking true story.  Then I’m going to wax philosophical about information in the Information Age.  Finally, I’ll challenge developers to build a better Information Age.

An Unnecessary Amputation

This morning, while lying in bed, I was thinking of a man I know.  He’s been having some health problems.  He went to his doctor, complaining of severe pains in his shoulder and foot.  The doctor told him they had to handle the shoulder before they could attend to the foot.  The man had surgery and a complicated recovery on his shoulder.  He kept complaining about the foot.  The doctor kept telling him it was fine, in due time they would attend to that.  Finally they switched doctors.  The new doctor took the foot seriously.  After a routine checkup, he discovered the foot was in serious trouble.  They had to amputate this man’s foot this morning.  

This man has meant a great deal to me.  He told me about his most proud accomplishment in his career.  He was given charge of a complicated system.  He organized and simplified it.  By 7:30 in the morning, he knew if there was anything wrong in this vast system.  He could balance and harmonize difficult matters.  Many times when I’ve quietly reached for greater competence in my professional life, this man’s example has come to mind.

From what I understand, the first doctor’s exam was outdated.  He wasn’t measuring the extent of systems failure in his patient’s body.  His patient’s feedback was of no concern to him.  He missed a sign that any competent doctor should have noticed.  I want to kick that doctor in the teeth.  I want to broadcast his failings to a vindictive public who would eschew his services and shame him.  None of this is going to happen.  A poor old man will learn to limp along with a prosthetic.

This Damn Information Age

We’re in a regrettable situation.  We got what we asked for.  Our forefathers didn’t know things like weather predictions or the latest medical treatments.  News traveled slowly.  We created this Information Age as a response.  Now, it’s too much, and nobody’s coping well.

That damned doctor missed something important.  I’ll bet that doctor has learned thousands of important things in the last year or two.  He just didn’t learn this important thing.  I hope someone’s told him he’s an incompetent ass and woke him up to a couple of issues.

I hope someone’s telling all of us what incompetent asses we all are.  If not, I’ll do the job.  You’re an incompetent ass, and you need to get your life together.  There’s important, non-urgent information coming out every day, and you need to know some of it.  You’ve got to find a way to resist becoming a cruel, disconnected robot and get to the important things.  There, I said it.  Feel better?  Neither do I.

The thing is, I don’t know if we can tackle this one.  I have some tools I use that help a bit (evernote, workflowy, xmind, prismatic, pocket).  I’ve built a few lately that might be useful (I’ll let you know if they are working for me).  There’s still this sense of losing grip on the important, and it’s not because I’m not applying myself to the problem.

If you’re not dedicating your life to building tools in the Information Age, I don’t have much more I can give you today.  Just go and try to consume useful information in ways that make you competent in your life.  Start with the list I mentioned above.  If I can, I’ll get you some better tools to make it in this world.

The Gauntlet

I don’t know much about knights and their world, but I think throwing down the gauntlet is a challenge.  I throw down my gauntlet, or glove, we go off, have a duel, and kill each other.  It’s a silly thing to do.  The idea is we have an honor to defend.

Our honor is that we’re the shapers of the Information Age.  Right now, we’re the ones that make it possible for everyone else to get along.  Maybe that doctor would have used a feed reader that would have kept his perspective current if someone had built him one and handed it to him.  Maybe your clients and employers have needs that only you can fulfill.

Read these comments on good design.  (Trust me, this is the good stuff.)

Build better filters.  We need to know what’s important.

Prismatic has upped the ante with good filters on a good news reader.  They have meaningful insight that delivers some of the best content.  They get the important stuff to us.  It’s a good example.  If you need access, I may have some beta requests I could send along.

So, while my friend’s getting his leg chopped off, I’m blogging.  I’m talking to the kinds of people that could have avoided this mess.  Let’s build a better Information Age.  Let’s do it for ourselves.  Let’s do it for everyone else that won’t be able to keep up with the important things unless we help them out.




  1. There’s no substitute for learning how to take care of yourself. At the very least trust yourself when you think something is wrong and get a second, third, fourth…. opinion.

  2. david

    Very true Jeremy. Ultimately, the buck stops here, doesn’t it?

Submit a Comment