Saturday, May 23, 2015

Stirring the Pot

Pond water gets stagnant.
Soup settles.
People get complacent (or lazy.)

Once in a while, things need to be stirred up.  I have found I'm pretty good at that. I like to stir the pot.  I also like to help people learn if I have something to offer them.  This blog is my newest outlet for doing those things.  Most of the content will be about computers and electronics, especially developing software and hardware.  One of my favorite subjects is embedded systems.  But on occasion I will likely throw in some politics, or religion, or physics, or whatever.  But I hope you find something interesting.  If not, well, there are plenty of other blogs out there to read.  I welcome all constructive criticism.  If you disagree with what I say, that's fine.  Please let me know.  If you are just being nasty I may respond in kind or simply ignore you.  Whatever I feel like that day.

You're still here?  OK, how about a little background on me before anything else.  I was born and raised mostly a country boy in the southeast United States.  I owned guns from the time I was 12 and could shoot pretty well.  I was kicked out of high school on my 16th birthday, in my third year of the 9th grade.  When I turned 18 a good friend got me a job as a laborer in the cabinet shop he worked at. I liked the job, but after a couple months I realized I was in a rut.  I didn't want to spend the rest of my life that way.  Serendipity stepped in and saved me.  A series of circumstances led me to the army recruiter and I enlisted.  I enjoyed it, but wanted to become an engineer.  I got out after three years and started college.  More strange circumstances led me back to the army after three years.  I spent seventeen more years there and retired in 2007.

During that time,  I got married.  The most wonderful, beautiful woman in all the universes had been managing a Captain D's restaurant I frequented when I was out of the army.  I enjoyed my time in the army and still miss it, but I had always wanted to be an engineer.  And now I wanted to settle down with my family.  So, after retirement, I went back to school again.  The only university close enough to me didn't offer electrical engineering, my preferred choice.  So I majored in physics, concentrating on engineering type classes.  I minored in computer science.

After graduating, I got a job in Washington state as an embedded software developer.  My whole family hated Washington.  But again, things worked out great and we moved back to Clarksville, TN, where we had left two and a half years earlier.  I now develop Windows software for a defense contractor.  Some pretty cool stuff.  Not your average desktop apps.  Kind of embedded.

All along the way I have been building things and writing code.  And there are a lot of things I see that bother me.  Much software, and to a lesser extent hardware, is poorly designed and implemented.  I frequent hobby electronics and robot sites, and see people making serious mistakes.  I know some of them will become actual engineers, and others will build and sell products made the same way.  I have made it somewhat of a personal mission to get the word out on how things can and should be: better designs, better implementations, better products.  Before the bad habits set in too deep.

With that said, let's dive in and stir the pot.

Many people, hobbyists and engineers, refuse to see what's right in front of their face.  Even if you rub their nose in it.  For instance, all the research that has been done shows that peer code reviews (having other people look through your code early on) save way more time than they cost.  They are proven to find bugs that would have cost much time (and money!) to fix later.  Yet companies refuse to conduct them, often because they "don't have the time."  Yet they spend much more time later fixing the bugs that would have most likely been found.

Another example I just experienced (again) today.  There are a lot of bad circuits around that often don't work at all, or seem to work mostly, or are dangerous.  For example, using a capacitor to "debounce" a switch connected to a microcontroller.  Those who have done actual research and posted articles on the web or published them in magazines show that these are bad and why.  But gently pointing to that research, with scope photos and all, gets nasty or curt comments about "it works for me" or "I just wanted simple" when they often obviously didn't even read the article.  I realize that hobbyists especially often don't understand all the subtleties in the articles, but the conclusions are well stated and obvious.  Yet they continue to use things that don't work.  Why?

I make my living writing software.  Arduino (and others like it) have opened the floodgates on people writing embedded software.  Many of those people, especially young ones, will become embedded or software engineers.  But they learn from other Arduino users, who probably learned on their own or from still other Arduino users.  What happens is, these people never get introduced properly to good engineering habits and practices.  If and when they become engineers, they will have developed lots of bad habits that will be nearly impossible to break.  They will design the products we use, and depend on.  That our very lives depend on.  Ask Toyota what happens when you don't adhere to good engineering practices.  After the loss of several human lives, and a couple of cool billion dollars so far, Toyota is realizing that cutting corners is expensive.

So that is where I'm coming from.  That's my stated agenda.  Follow along as I rant and rave about things.  It might be politics, or people, or preachers, or PCs.  But it will always stir the pot.

Thanks for reading this far.  I hope you will come back later.

Will

6 comments:

  1. I'm a fellow spoon :). Code review? Why would you want to make sure that your devs are using proper procedure calls and maintainable configurations early on?

    As the Most Interesting Man in the World sez:
    I Don’t Always Test My Code. But When I Do I Do It In Production

    Great to see a bdk post again :)

    ReplyDelete
    Replies
    1. Hi Roxanna,
      Good to hear from you. I can use some help stirring things up.
      You also get the distinction of posting the very first reply.
      Thanks for the kind words

      Delete
    2. Whoot bdk6 is back! I always enjoyed and learned from you pages as a hobby guy I miss a lot, but also learn a lot. Thank you for sharing your smarts :)

      Delete
    3. Hi Christopher,
      I hope you find stuff that interests you. There will be plenty of electronics and programming stuff between the rants. Glad to see you here.

      Delete
  2. oh will sir, i have to learn many things, thanks

    vis

    ReplyDelete
    Replies
    1. Hi Vis!

      We all have much to learn. Thanks for teaching me!

      Delete