I keep a small desktop computer next to the TV in our family room, primarily to use the TV as a big monitor for showing the digital photos and videos that were taken before camera phones, cloud storage and Chromecasts. I recently ordered a new wireless keyboard with a built-in trackpad to simplify controlling the computer from my lap while I sit in the chair across the room.

When the keyboard arrived and I started to plug it in, I realized that the primary hard drive on the computer had died. This wasn’t really a big deal because all of that was on the hard drive was the operating system (the photos and videos are on an external USB hard drive) and the computer was really old. I think I bought 4 that were just alike in about 2007. (They came with Windows Vista.) I knew I had at least one more just like it in storage somewhere.

A couple of weeks later, I caught a bit of the spring cleaning bug (which is very unlike me) and wiped the old hard drive and threw away the old computer. (Usually I leave stuff like that sitting around in the basement for months before dealing with it.) The next day, I got one of the identical computers out of storage and was about to plug the new keyboard in when it hit me – I had left the small wireless dongle plugged into the USB port of the old computer and hadn’t retrieved it before throwing the old computer away. All of a sudden I had a flashback to when the keyboard had arrived and I had unpacked it from the box before realizing the hard drive was dead. I remember thinking that the USB port of the old computer was the best place to leave that little piece because if I just left it sitting on the counter, it would get lost.

After yelling some, the thought that popped into my head was “no good deed goes unpunished.” If I had only been my normal procrastinating self – the old computer would still be in the basement and I could just go get it and everything would be fine. Instead – I had a brand new, utterly worthless keyboard. (My next thought was that I if threw the keyboard away – the missing piece would turn up immediately proving that I hadn’t left it in the old computer, but that if I hung on to the keyboard, it would sit around for months waiting for me to decide that the piece was, in fact, plugged into the old computer and gone.)

I think the keyboard cost around $30, so it wasn’t exactly an economic catastrophe – but it was frustrating on principle. Maybe I did need to keep old computers around to ensure that I never threw away something that I was actually going to need later.

In the field of dynamics (the physics of motion), friction is always something that has to be accounted for. Friction makes processes less efficient than they might be. Friction is why we can’t have perpetual motion machines.

For an engineer trying to improve efficiency, friction can be frustrating. It can be reduced, but never completely eliminated. Engineers have accepted that there will always be some friction. Trying to completely eliminate friction would be a quixotic quest, and would just suck up time that could be spent actually getting things done.

It occurred to me that my brand new, worthless keyboard was friction. Stuff like this is going to happen. It’s a cost of doing business. I could spend a lot of time trying to figure out “how can I make sure this never happens again” or I could throw the keyboard away and move on to try to do something productive.

Friction exists in life. Try to reduce it, but don’t waste time trying to eliminate it. Once you accept that – you can move on and get something done.

Who’s the jackass here?

Whenever there’s a misunderstanding between you and a customer, you have a choice of how you respond. If I’m your customer and your response leaves me thinking “Really – I’m the jackass here?” (whether I say it out loud or not) – you’ve chosen poorly.

Unfortunately, for a lot of people (most people?) – that’s their reflexive reaction. Regardless of how good your product or service is – if you make me feel like a jackass, I’m not going to be your customer for long.

Microsoft – development tools for old guys

I’m sitting in a conference room at a Microsoft sales office watching a presentation on the latest version of Visual Studio (Microsoft’s software development tool). Looking around the room at the other attendees, the majority of attendees appear to be 40-ish and older (including me). By my estimate, there are only 1 or 2 that could be younger than 30.

This is hardly a statistically valid sample size, but it’s consistent with my observation. (I wrote this several years ago reflecting on Microsoft following the path of IBM.)

This isn’t a reflection on the product. I’ve used it for years and think it’s the best tool there is for software development. I wish the environment wouldn’t change to make skills that I’ve honed for years become obsolete.

But – if you’re a Microsoft guy (like I am), you need to realize that the winds are changing.


Where I live, it’s easy to look around and see people who have more than I do. What’s also true is – it’s easy to look around and see people who don’t have nearly as much as I do. (I bet this is true of where you live too.)

Unfortunately – I tend to notice the first group much more than I notice the second group. No wonder it’s so hard to feel thankful all of the time.

I hope you had a wonderful Thanksgiving today. I did. I have a roof over my head, enough food to eat, and my family is healthy. Here’s to remembering how lucky we really are.




Plans vs Decisions

It’s easy to confuse plans and decisions. I can “decide” right now to go the gym to workout tonight, but that’s not really a decision. That’s a plan. If tonight rolls around and I decide I’m too tired to go – my earlier “decision” was meaningless.

I can come up with a plan for the future and I can commit to the plan, but when the time comes for action, I can decide to act in such a way that keeps my previous commitment (or not).

When you think of it like that, you realize you can’t really decide you’re going to do something in the future. All you can really decide at any given moment is – what am I going to do right now? (For me, that’s kind of a simplifying, liberating thought.)

Say that I spend time at noon “deciding” (actually planning and committing) that I’ll go to the gym that night at 7:00. Then 7 rolls around and I re-debate the issue. In that case, I wasn’t really committed to the plan. Discipline is making your current decisions/actions consistent with your previous plans/commitments.

That doesn’t mean that planning is useless. The point of planning (ahead of time) is to make better decisions (in the moment). If you plan and commit and tell yourself you’ve decided, but don’t have the discipline to follow through, you’re going through the motions, wasting time, and kidding yourself.

Thoughts on the Common Core 5×3 problem

I recently read about a 3rd grade student whose seemingly correct answer to 5×3 was marked as incorrect by his teacher.  Details of the issue are here.

A Common Core supporter defends the teacher here. Follow the link to get his words directly, but part of his argument is “…but here’s the beauty of it: It won’t be long before they can do 11 x 27 in their heads.”

Is the fact that someone can’t do 11 x 27 in their head really a problem that needs solving? Furthermore, given that basically everyone carries around a phone with a calculator in it – I’m not sure I still believe that it’s that important for someone to be able to do 11 x 27 on paper. (I know that’s a bold statement and it’s not an easy thing for me to say. It’s entirely possible that I’m wrong, but I’m having a hard time coming up with a situation today where someone is going to suffer because they can’t figure out the answer to 11 x 27 without the use of a calculator.)

I’m not a “I could never do math either” kind of guy. I was on the math team in high school. I got perfect scores on the math sections of the ACT and SAT. I’ve got a degree in Electrical Engineering that required lots of calculus.  I can do 11 x 27 in my head and would have done it exactly the way that the Common Core support explains. I’m what you’d call a “math person”.

Here’s the thing. I firmly believe that some people’s brains are wired so that mathematical concepts come easy to them, and that trying to teach everyone to think this way is an uphill battle. This is not a smarter/dumber thing. People are different. I’m good at math but there are a lot of things that I struggle with. (Ask my wife. She’ll be happy to give you details.)

When I went to my first math tournament in 9th grade, there was a question that went something like this – “Calculate the sum of 1 + 2 + 3 + 4 + 5 + … + 98 + 99 + 100”. After we got back, my teacher said “there’s a trick to doing problems like that”. If you re-arrange the sequence to pair numbers starting from the outside and add parentheses like this – (1 + 100) + (2 + 99) + (3 + 98) + … + (50 + 51) – you realize that each of those adds up to 101. There are 50 pairs, so the answer is 50 x 101. Easy, when you know the trick. Not only that – but it works for a sequence ending  in 100, 100, 1 million, or 1 billion.

It’s a neat parlor trick, but that’s all it is.  It seems like I used it at every math tournament I ever went to, but I feel safe in saying that my adult life wouldn’t have been any worse if I had never learned this trick.

I think a lot of what’s being taught in common core math is like this. I think if you have a “math brain” (for lack of a better term), the concepts they are trying to teach come naturally to you. If you don’t, I think being asked to think about math this way just adds to the frustration of what’s already a tough subject for you.

Let’s teach math, but let’s also realize that not everyone is going to be a mathematician or engineer, so we don’t need to try to get everyone to think like one.  For a lot of kids who view school as sort of a prison sentence to suffer through, this is cruel and unusual punishment.

My Response to Common Core has nothing to do with this

Excerpt: “While this worksheet does present a frustrating situation, it has nothing to do with Common Core. Common Core lays out a set of objectives for what students should be learning in each grade level. It’s still up to individual states, districts, and teachers to come up with the curricula and lesson plans to achieve those objectives.”  – Andy Kiersz

If you look at the Common Core website, there are specific grade level standards. I think that’s what he is referring to when he talks about “a set of objectives”. But – at the bottom of the page, in the Mathematics Standards section, it says (emphasis added):

These standards define what students should understand and be able to do in their study of mathematics. But asking a student to understand something also means asking a teacher to assess whether the student has understood it. But what does mathematical understanding look like? One way for teachers to do that is to ask the student to justify, in a way that is appropriate to the student’s mathematical maturity, why a particular mathematical statement is true or where a mathematical rule comes from. Mathematical understanding and procedural skill are equally important, and both are assessable using mathematical tasks of sufficient richness.

I feel like the teacher in this incident could defend his/her action with these statements. So, yes – Common Core does have something to do with it.

H/T to the Leada Gore for the article on that made me aware of all of this.

SendGrid Inbound Parse

I’ve spent most of a weekend trying to figure out how to get attachments from SendGrid’s Inbound Parse service. If you haven’t heard of it – it accepts an incoming email, parses out the various parts and sends them to you by posting to a web form you have set up for this.

The “text” parts of the message (from, to, subject, etc.) were pretty straightforward, but trying to figure out how to get files that had been attached to the message took me a long time to figure out. (Much longer than it should have, in hindsight.)

I followed the recommendations of the tutorial video and configured Inbound Parse to send the information to RequestBin, a service that will accept and show you posted form values without your having to write any code.

The values that I sent to RequestBin agreed with the documentation. There was an “attachments” value that would tell how many attachments were included and “attachmentX” value(s) for each attachment. (If attachments = 2, there would be an attachment1 value and an attachment2 value.)

I reconfigured SendGrid to post the values to an Azure website I have. The code that I wrote based on the SendGrid documentation (and what I saw on RequestBin) kept throwing exceptions, so I took advantage of Azure’s remote debugging feature (which is awesome, by the way).

The attachment-related values weren’t showing up. SendGrid has posted 13 form values to RequestBin, but I was consistently only getting 9 in my ASP.Net application. For 2 days, I assumed that something was going on with ASP.Net, thinking that it was related to request validation, or something like that.

After hours of fighting with this, I finally realized that when I had re-configured SendGrid to post to my Azure site instead of RequestBin, I had checked the “SendRaw” checkbox. The explanation next to the checkbox says “This will post the full mime message”. What it doesn’t tell you is – it changes what SendGrid posts.

If you check the SendRaw checkbox – you won’t get these form values:

  • attachments
  • attachment-info
  • attachmentX
  • text
  • html

Instead you will get an “email” value that has the original email message.

Since the whole point of using the Inbound Parse is to not have to parse the email, I’d recommend not checking the SendRaw checkbox.

Hire people who you trust to “make it better”

Seth Godin had a short blog post today, but it really hit home with me. I realized that in the past, I have probably frequently had the attitude of “Don’t touch it, you might break it” with employees.

Going forward, when evaluating a candidate – I’m going to ask myself – “Am I comfortable letting this person touch it? Do I trust him or her to make it better?” If I can’t truthfully answer “Yes”, I need to pass and keep looking.

One of the many reasons I hate Apple

I need to vent for a second. People who know me are used to hearing me complain (usually loudly) about Apple. It frequently involves me comparing Apple to the Devil.

Here’s why I hate them at the moment. I need to set up an iPad for a client. It will be used for a very specific purpose, so I need to install one free app.

When setting up the new Apple account to download the app from the App Store, I’m asked for payment information. Again – I need to download 1 free app.

I tried Google to see if there was a way around this and came across Apple’s official support page – The title is “Why can’t I select None when I edit my Apple ID payment information?”

Here’s what they say – “If you’re using the store for the first time with an existing Apple ID, you must provide a payment method. After you create the account, you can change your payment information to None.” Who thought that was OK?

BTW – the next paragraph says “If you’re creating a new Apple ID, you might be able to create an account without entering your credit card details.” (Emphasis mine.) Might? Really? That’s your official position on this?

I feel much better having gotten that off of my chest. Thank you.


There’s Never Enough Reassurance

I recently heard Seth Godin talking about reassurance, and his point was – if you’re looking for reassurance, there will never be enough. That really struck a chord with me and I’ve been thinking about it a lot since then.

The craving to be part of the “in crowd” in middle school is one of the first symptoms of this quixotic quest for reassurance. Rosalind Wiseman wrote the book that the movie Mean Girls was based on. I had heard of the movie but had never seen it or thought much about it until she spoke in our community recently. She has a newer book about boys that I’ve been reading and one of the things she talks about it is – even the kids in the popular crowd are stressed about maintaining their status. I think this is a perfect example of what Seth is saying. These kids are looking for reassurance from their status, but even the ones who have made it to the pinnacle of the social hierarchy aren’t “quenched”. There’s never enough reassurance.

This need (addiction might be a better word) for reassurance doesn’t go away as we grow older. I seem to have a hard time saying “No” when asked to help with things. If I honestly assess what’s happening in those situations, I think there’s a subconcious fear of “them” withholding approval (approval is reassuring) and since we crave reassurance – I need the approval. I can tell you from experience – there’s never enough approval either.

What’s great about this is – as soon as you recognize what’s going on and the futility of it, you are free to stop seeking reassurance and to get on with the business at hand.


No more tilting at the windmill of Reassurance!