Effective Behavior Models

When I was learning how to drive, part of the instruction was the Identify, Predict, Decide, Execute (IPDE) behavior model.  When I wrote a capture the flag AI in Scheme in college, I noticed we were essentially programming this model (sensors -> percepts -> new world model -> goal evaluator -> decision -> effectors).  In learning about Scrum, Jeff Sutherland mentions the Observe, Orient, Decide, Act (OODA loop) used by fighter pilots. The common theme in these models for effective behavior is that the first step is awareness.

Axes of Awareness

Awareness itself is kind of a huge topic.  There are many axes of awareness (no, I’m not talking about the mediaeval weapon).  These are some that I am aware of

  • metaawareness
  • time awareness
  • self awareness
  • social awareness
  • environment awareness
  • abstraction awareness
  • non-awareness
  • independence of awareness


Are you even aware of your awareness?  If not, you can’t control it.  Do you know when you are being too aware?  Perhaps you are a meddling busybody.  Do you know what your awareness is focused on?  You can’t pay attention to everything all at once.  I think it helps a lot to not self-identify with any aspect of yourself such as intelligence, awareness, emotions, etc.  If so, you can more often control those things rather than being controlled by them.

Time Awareness

The past is absolutely deadly if you dwell on it.  However, those who are ignorant of history are doomed to repeat it.

Entire books have been written on the power of being present in the now.

Planning works.  You know you need to go to work at 8 AM tomorrow.  Living in the moment and playing Civ until 6 AM (in my case it was FTL) is going to reduce the odds of that happening.  Anticipate the task dependency chains of the near future.  However, excessive planning up front does not work.  It’s as futile as trying to predict the detailed weather a year out.  You might know it will be winter next year, but you don’t know it will snow on a particular day.  Are you seriously going to put “Dec 2nd: shovel snow” on your calendar in April?  Taken to the extreme, catastrophizing about all possible things that might go wrong in the future can paralyze you to the point you need therapy.

For the most part, you are better off to “confine yourself to the present” as Marcus Aurelius advised long ago.  You need to spend some time in the past and the future.  Just realize they are very, very dangerous places.

Self Awareness

Do you see yourself?  Do you know what you are doing?  Why you are doing it?  Do you know what values you have?  Do you know how you are measuring value?  Are your measures useful?  Can you identify your own feelings?  Do you know what you believe?  Do you actually believe and value all that stuff, or was that just all baked into you by your context while growing up?  Do you know what your strengths and weaknesses are?  Are you sure, or are these just delusions and insecurities?  Do you have any purpose, goals, plans?  Or are you just some random thing that aimlessly reacts to the world with zero consciousness?

Social Awareness

Are you an asshole?  Are you passive-aggressive?  Are you a complete doormat?  Do you have any empathy?  Do you have any idea the impact your actions have on other people?  Can you see the world from another person’s point of view?  Do you know when you are getting in other people’s way?  Are you considerate of other people’s time and attention?  Do you know how to politely initiate a conversation?  Do you know when it is over?  Do you stir up unnecessary drama?  Can you tell when you are boring?  Are you a taker that does not give anything?  Are you a freeloader?  Are you an energy vampire?  Do you do disturbing things in public?  Do you believe the rest of the world is just too sensitive and needs to adapt to all your problems?  Are you too sensitive about things that don’t matter?  What are objective standards to determine this?  Are you doing anything for anyone but yourself?

Environmental Awareness

Does your environment block you from being effective?  Are you doing anything about it?  Is it snowing?

Be aware of your surroundings.  Open your eyes!  Don’t win a Darwin Award by walking into an open manhole because you are walking down the sidewalk with your face glued to your iPhone.

Abstraction Awareness

What level of abstraction are you documenting something at?  Sometimes I find myself writing a wiki for a command or making a detailed data model.  It helps a lot to write down abstract syntax and also provide a bunch of very concrete, known-working examples.

In requirements gathering, it helps to be aware of what level of abstraction you’re operating at.  Otherwise, your requirements end up stating how to do something (a specific solution) rather than what to do (the problem to be solved).

In leadership, you don’t want to become myopic, making greedy optimizations, and not being able to see the forest for the trees.  At the same time, you don’t want to be a hyper-optimistic, deluded, “visionary” who sees just the big pictures and believes that everything is so simple because no time has been spent in the details.


On one end of this axis, you can be in denial.  Let’s just pretend that never happens.

On the other end, you decide to actively prevent yourself from being aware of various things (like E! News, the Kardashians, Trump’s latest tweet, etc.).  You turn off all the communication apps, put on some Bose headphones, shut out the world, focus, and actually do something.  That’s a good thing to do for a couple hours here and there.  It allowed me to finish writing this, at least.  However, no matter how much of an introvert you are, you do need to reconnect with the rest of the world periodically to get some feedback to make sure you are still headed in the right direction.  Otherwise, you’ll end up with the awareness level of this guy.

Independence of Awareness

The United States has freedom of the press for a reason.  If the government owns the news, all it will print is self-serving lies (propaganda).  The chain of effectiveness is broken.  This is the same reason why a dysfunctional couple needs an external marriage counselor rather than trying to get their kids to judge the situation or working things out themselves.  This is why the best athletes have coaches.  You can’t see yourself.  You are incentivized to lie to yourself and thereby fail.



I recently wrote an article on Effectiveness.  It could have easily been called Winning.  The opposite of winning is failure.  As I’ve said, the first step to effectiveness (winning) is awareness.  To that end,  I am going to enumerate many of the causes of failure that I have seen in action lately.  This is a perhaps exhausting, though not exhaustive, list.  There are many paths to failure–it is no surprise so much of it happens in the world.


  • Let’s jump straight to the root cause of a lot of failure: assholes.  These sociopaths destroy the trust and psychological safety necessary to foster a culture that enables extreme effectiveness. Unfortunately, they tend to rise to the top because they are good at looking good and making other people look bad. It’s all an illusion: they are a huge net loss in any organization.  Kill them with fire (figuratively, of course, as in fire them or get them fired if you can).  If your boss is an asshole, and you can’t get rid of him, look for another job.

bad culture

  • Beyond the assholes who create bad culture, the bad culture itself is the #1 cause of organizational failure.  You simply cannot organize effectively and run an effective process if the culture established by the leadership of your organization does not support it.

cognitive biases

  • Even if you are aware, your brain is messed up.  It has lots of blind spots.  You are predictably irrational.  One such blind spot is the fundamental attribution error.  Are these assholes intrinsically that way?  Or does the culture bring out the worst in them?  Well, I say if you are the CEO that creates the culture, and you are still an asshole, then you are intrinsically an asshole.  You need to be replaced.

morale failure, unhappiness, turnover

  • Abysmal leadership establishes a toxic culture that generates widespread unhappiness.  The unhappy workers (death-marched, micromanaged, underpaid, etc.) just try to mark time and get paid (all the while plotting their escape) rather than trying to win because they realize (after many futile attempts to fix it from below) that their context is irredeemably incompatible with winning.  Rome: Total War, Stronghold, and Civilization V/VI do justice to the power of this mechanic.

freeloaders, yes-men, sycophants, and other leeches

  • What’s worse than personally driving all the best people out of your company?  Not getting rid of all the freeloaders first.  You’ve just created a corporate welfare state.  But those guys never strive for improvement (raise troublesome, “negative” issues) or question your bad decisions (or do anything else of value for that matter), so it’s okay.

lack of empathy

  • Empathy is the key to listening which is a key to awareness which is a key to effectiveness.
  • Assholes do not have empathy.  They may feign it when their back is to the wall.
  • How much empathy should I have for assholes though?  Killing them with fire sounds extreme.  This is a difficult thing to consider.  It becomes the Baldur’s Gate Battle not with monsters lest ye become a monster” problem to some degree.

black and white thinking

  • Blanket statements like “assholes have no empathy” will probably not lead you to the nuanced distinctions in thinking necessary to solve difficult problems.
  • If you are practicing awareness, you should notice that many causes of failure (underbatching/overbatching, underplanning/overplanning, etc.) are just extreme versions of good concepts (batching, planning, etc.).  Often there is an optimal sweet spot in the middle that changes given context for any such vector of effectiveness.

making assumptions, thinking you are always right

  • You are not always right.  Other people do not think the same way you do.  Deal with it.
  • Even with a healthy dose of empathy, you are not a perfect mind reader nor are the people around you.  A lot of your assumptions are therefor wrong as are other people’s perceptions of you.  This means that often no one is actually aware: you are acting on faulty information and allowing others to act on faulty information.  Improve communication.

taking things personally

  • It’s becoming clear that failing is easy–the default state.  You, and a lot of people around you are failing constantly.  This causes many problems for you.  Generally, others aren’t even aware of the problems they are causing (lack of awareness being a huge part of the reason they are failing in the first place).  Taking it all personally, as if everyone is out to ruin you, is a mistake.  Take a page from the Taylor Swift playbook and shake it off.  You need a degree of kindness (linking this may have been unkind) and forgiveness for others as well as for yourself to even allow actual teamwork to happen.
  • However, this doesn’t imply being a timid doormat.  When you confirm conscious, repeated maliciousness (real asshole behavior), burn it down with fire.  If you can’t destroy the problem, use another page from the Taylor Swift playbook and just leave.  Then go back to being the nice, reasonable, patient person you are.

wielding golden hammers, shooting silver bullets

  • To a hammer, everything looks like a nail.  Unfortunately, everything is most certainly not a nail.  Use the right tool rightly for the right job.
  • There are no silver bullets.  Unfortunately, there is this thing called context, and it is always changing.  Try opening your eyes and actually aiming at the target.

multitasking, not limiting WIP

  • Just stop.  It does not work.  People who do this and organize their companies this way think they look good because they are so “busy, busy, busy”–the reality is, they are naïve, frantic, headless chickens who get nothing of value done.  They are “stupid, stupid, stupid.”  Being busy != being effective.
  • Any employee in an effective company should have exactly three tasks
    • Being a good corporate citizen.
    • One project that creates value for customers.
    • Improvements to the process used in the value creation project.

reinventing the wheel (badly)

  • A four-sided wheel will be simpler to maintain because it has less moving parts.  Also, round wheels are looking tired in fashion circles.
  • Rewriting your code base from scratch without extremely compelling reasons.

adding more people to a broken system

  • Adding more people to a late project generally just makes it later.
  • Having a child to save a broken marriage probably won’t work.

premature optimization

  • Optimizing without profiling.  Optimizing non-bottlenecks.

premature disambiguation

  • Trying to plan things in excessive detail up front. You have no idea what weather you will face or what roadblocks will actually occur.  Scrum is all about using JIT planning to avoid this path to failure.
  • Buying something you are ABSOLUTELY SURE you will use only to have it become another dust collector (like 90% of your possessions).  Marie Kondo is not happy with you!

failure to capture valuable information

  • This is an aspect of awareness.  GTD is all about “ubiquitous capture” to sidestep this path to failure.
  • If you have a great song idea and don’t record it right then, it will be lost forever.

doing things manually

  • Not having automated builds for your software project.

not having enough choices

  • A micromanaging boss taking away all your autonomy. This will destroy your motivation.

having too many choices

  • Which of the five billion varieties of cereal will you buy at the store? Or should you avoid carbs and not buy the cereal at all?  Should it be gluten free?  If you do buy it, should you use almond milk or regular milk? If regular milk, what fat % content?
  • Which of my 600+ Steam games should I play today, if any?

obsession with things that create no value
(yak shaving, bike shedding, productive procrastination)

  • You notice all the blades of grass on your lawn aren’t equal in length and you take out a pair of scissors and a laser caliper to remedy the situation.
  • Which of my 600+ Steam games should I play today, if any?  (Okay, yes, I do think there can be significant value in playing video games, but it can be taken to excess.)

inability to deliver value

  • You have 90% of 7 different projects done, but you can’t deliver anything to anybody.  You have produced no actual value.  You have completely failed.

inability to let go, clinginess

  • Sunk costs are irrelevant.
  • Dwelling on the past excessively is dangerous.

not having the basics down

inability to execute

  • My brother was recently injured. Although he had the awareness, motivation, and decisiveness to be effective, he lacked the ability to execute anything (let alone efficiently).  Recovering from such injuries, staying healthy, and avoiding future injuries are therefor a priority in remaining effective.

excessive pickiness, ridiculously high standards

  • A group of friends wants to go out to lunch. But you are only willing to eat free range Vermont broccoli (?) picked on Aug 2nd with a digitally signed certificate of authenticity.

low standards, low quality

  • You accept whatever garbage comes your way or whatever sloppy work you do without any standard of quality.  You are not early Simon Cowell.

defect rework costs, phase escapes

  • A bug you catch today might take you an hour to fix; three weeks later (when it has escaped into the production phase, and you can’t remember what you did way back then), it will take you, say,  24 hours to fix.
  • Letting a network hardware issue escape all the way into production can easily cause 1000x rework costs and kill a project completely.  This is why you should absolutely not in a million years let an intern lead your engineering department.

overprotection, coddling

  • Doing all of your child’s laundry until he/she goes off to college.

overprocessing, gold plating

  • The new accounting system passes user acceptance, but you spend another week making the gray GUI skinnable because you think that it “would be cool”.  The accountants like gray.  Don’t underestimate how much engineers tend to do this.


  • You do all your requirements gathering and analysis in excruciating detail for a multi-year project all up front.  As Jeff Sutherland says, “The map is not the trip.”

underbatching, excessive transaction costs

  • For each item on your grocery list, you make a separate trip to the grocery store.

excessive coordination costs

  • You try to go to lunch with 7 people.  It takes you the whole lunch hour to figure out where to go.  At least you’ll lose some weight today.

unavailability of tool, input, person, etc.

  • Time to go to the store.  Where did you put your car keys?
  • You need (?) a decision from your boss to move forward (because he set his blamethrower on maximum last time you took any initiative), but it takes him two weeks to get back to you.  Executive bottleneck is a form of organizational indecision, and is thus not effective.  This means authoritarian, command and control, fear and blame organizations are inherently suboptimal.  Unsurprisingly, assholes tend to run their companies this way because it optimizes for their own ego-driven sense of power and superiority rather than for value creation (organizational effectiveness).

things obtusely getting in the way

  • You are going down the aisle at Walmart, and yet another person has conveniently decided to orient their cart such that it blocks the entire aisle.  Their lack of awareness and greedy optimization has contributed to your failure.

interruptions, distractions, context switching, chain yanking

  • You work on one of the five projects assigned to you for a few days only to have your boss make you abandon it to deal with the emergency du jour.
  • Micromanaging assholes like to yank chains because it makes them feel powerful.

interface violation, no rule of law

  • You are the CEO.  You repeatedly take expensive things out of inventory without following the process you endorsed.  When confronted, you get angry and say “How dare you question me?  This is my company, and I’ll do whatever the hell I want.”  Guess what?  You are a giant bag of failure.  Give up.  You can’t lead water downhill.

disorganization, not knowing what you know, not having what you have

  • You go to find your notes on failure only to realize you do not know where they are!  They’re in Dropbox . . . somewhere.  And the CEO still has those expensive inventory items . . . somewhere.

moving in the wrong direction, ladder against the wrong wall

  • Before the days of Google Maps, my dad once drove an hour in the wrong direction while trying to drive to Florida.  My mom was asleep.  When she woke up and found out an extra two hours had been added to our trip, she FREAKED out (she has back issues, so the long trip was already pushing her limits).

faulty goals, unclear requirements

  • Your “goals” and “requirements” are just vague wishful thinking–more delusional visions.  They are not specific, measurable, actionable, realistic, or time-boxed (SMART).  They are not independent, negotiable, value-producing, estimable, small, and testable (INVEST).  The only course they chart is to the land of failure.


  • Assuming you deserve something just because you are something (beautiful, rich, a genius, the CEO, etc.), rather than because you do anything of value.
  • Being appointed to an organizational position that you are not qualified to be in just because you know someone in power.

ignorance, lack of awareness

  • If you don’t know the causes of failure, chances are you won’t avoid them.
  • Assholes who are not self-aware enough to know they are assholes.

lack of motivation

  • How did you read this far into my article?
  • Would you show up to work unless you were getting paid?


  • Indecision is the skeleton of someone who starved to death staring into a full refrigerator.

foolish aversion to risk, assuming outcomes imply past correctness of action

  • You shy away from +EV actions that even usually result in “failure” because your ego can’t handle the mere short-term appearance/pain of failure/loss.
  • You assume that because a course of action failed, it was a bad decision at the time you made the decision.  This is not necessarily true.  I call this the “hindsight is 50/50” fallacy.

foolish affinity to risk

  • While pushing your entire life savings all in with AA is +EV, it’s still dumb because your risk of falling below the financial death line is extremely high for that single transaction.

lack of discipline, entropy

  • Your natural inclination is to fail (unless your life goal really is to watch Netflix with a bag of chips all day).  This guy makes eating a single potato chip as epic as it can be though.


  • Showing up to your job one day out of the week is not enough.

unrealistic thinking

  • Hypernegativity (catastrophization).  Chicken Little.
  • Hyperpositivity (delusion).  Most CEOs.  They’ve gotta wear shades.

not prioritizing for value creation

  • Trying to not look lame instead of actually doing right by your customers.

lack of balance

  • Who’s up for another death march?

oversteering, overreaction

  • There is nothing so small that it cannot be blown out of all proportion, but that’s just the tip of the ice cube!
  • Often this is due to executive feedback bottlenecks inherent in command and control cultures (which are usually also fear and blame cultures).

goal inversion

  • A leader becomes more concerned with increasing his own power rather than performing the work he was given the power to do.
  • This is why we have presidential term limits in the USA.


  • I built a bird house once. A skyscraper is really just a giant bird house. I can build a skyscraper.
  • I wrote a Python script once in an hour. It was easy. I therefor estimate my team can build a scaleable SaaS enterprise app that seamlessly integrates with a dozen legacy systems for 10,000 concurrent users in two weeks max.  After all, they are experts.

virtual meta hyper-excessive over-complificationation analysis methodology

greedy optimization

  • If I commit this piece of shit code I wrote that I haven’t even tested once, I can call it done and go home for the day.  My coworker who depends on it to get his work done will have to clean up my mess, so I win, especially since I’m going on vacation next week.

lack of accountability, invisible costs

  • Allowing people to get away with their greedy optimizations.  This will lead to massive accumulation of technical debt.


Books I Have Read

One of my goals is to read 1,000 books.  I started tracking this a few years back.  I tend to read about 30 a year, so this is going to take a while.

This list is where I am at today.  I can’t remember the titles of some of the books I read in college and earlier (hopefully some of their contents still dwells in my subconscious at least–these days I keep permanent notes in Dropbox for easy reference).   Also, some of these are audio books I’ve listened to.  This list seems fairly large to me, but it only represents reaching about 1/3 of my goal.


Got into a bunch of web development stuff for my new job.  Ended up reading more than usual since my current job is more balanced than the previous one.  Over half of it is tech books, and I don’t think there’s a  single fiction title in the mix.

jQuery Enlightenment
jQuery UI in Action
Grow a Pair (audiobook)
Learning Bootstrap 4
The Art of Learning (audiobook)
Merriam-Webster Dictionary: M-S

Unraveling Bootstrap 3.3
Toad for Oracle 13.1 User Guide
Dreaming in Code (audiobook)

Algorithms to Live By (audiobook)
PowerPoint 2016 for Dummies
Auto Repair for Dummies
ThinkPad T550 and W550s User Guide
Software Design Decoded: 66 Ways Experts Think
Narconomics (audiobook)
Eats, Shoots & Leaves: The Zero Tolerance Approach to Punctuation
1999 Toyota Avalon Owner’s Manual
The Only Grammar Book You’ll Ever Need

Barking Up the Wrong Tree (audiobook)
Ettiquette Rules!

Banner Finance Approvals Training Workbook
Application Navigator Handbook 3.0
Ukulele Primer
The Book of Awesome
The DataTables Editor Manual, Reference, and Examples

The Tipping Point (audiobook)
The jQuery DataTables Reference
Unraveling AngularJS 1.5
Unraveling HTML5, CSS3, and JavaScript
The Secret to Success (audiobook)
The Modern Rules of Order
The 48 Laws of Power (audiobook)
Pro AngularJS
Churchill: The Power of Words

The Path: Creating Your Mission Statement for Work and Life
101 Mission Statements from Top Companies
A Better Way to Learn jQuery
The jQuery DataTables Manual

Smarter, Faster, Better
Financial Accounting for Dummies
The Power of Habit

Oracle Database 11g PL/SQL Programming (Oracle Press)
Material Design Implementation with AngularJS

Jira Software Essentials, 2nd ed.
JIRA Software Users Guide 7.4
The Web Tailor 8.3 User’s Guide
Soft Skills: The Sw Dev’s Life Manual (audiobook)
TouchNet Marketplace 6.5 User’s Guide
TouchNet uPay Technical Guide
Beginning Node.js (2014)

A Smarter Way to Learn JavaScript
Personal Finance for Dummies
What is Node.js?
A Smarter Way to Learn HTML & CSS
Grails in Action
The Lessons of History (audiobook)
Introduction to Balsamiq Mockups 3


Scrum: A Pocket Guide
Scrum Insights for Practicioners: The Scrum Guide Companion
Agile Project Management with Scrum
The Scrum Guide
Succeeding with Agile: Software Development Using Scrum
Agile Project Management for Dummies
Use Case 2.0
The Four Agreements
AHK Tutorial
Merriam-Webster Dictionary: I, J, K
Kanban: Successful Evolutionary Change for Your Technology Business
Personal Kanban
Mastering the Requirements Process
Lists of Note
Letters of Note
The Useful Book
Adulting: How to Become a Grown-up in 468 Easy(ish) Steps
Grow the F*ck Up
Manual to Manhood
Home Ec 101
The Lost Art of House Cleaning
How Your House Works
How to Stop Worrying and Start Living
Soft Skills: The Software Developer’s Life Manual
Inside the Mind of a Narcissist
The Subtle Art of Not Giving A Fuck
Scrum: The Art of Doing Twice the Work in Half the Time
The Science of Cheese

Sometime in the Past

JDBC API Tutorial and Reference, Second Edition
JBuilder 3 Unleashed
Core Java 1.2, Volume I: Fundamentals 4/e
Thinking in Java, an earlier edition
Thinking in Java, 4th edition
Java Network Programming (O’Reilly)
Core Servlets and Java Server Pages
Concurrent Programming in Java: Design Principles and Patterns
Java Threads (O’Reilly)
Java Collections
The Elements of Java Style
Graphic Java 2, Mastering the JFC, AWT Volume 1
Graphic Java 2, Volume 2, Swing
Java and XML (O’Reilly)
Java 2 Exam Cram
Complete Java 2 Certification Study Guide
A Programmer’s Guide to Java Certification
Java 2 Exam Prep
The Sun Certified Java Developer Exam with J2SE 1.4
Java Tools for Extreme Programming: Mastering open source tools including Ant, JUnit, and Cactus
SCJD Exam with J2SE 5
Effective Java
Java Concurrency in Practice
SCJP Exam for J2SE 5 Platform (Apress)
SCJP Sun Certified Programmer for Java 6 Exam 310-065 (McGraw-Hill)
The Java Servlet 3.0 Specification
Pragmatic Unit Testing with JUnit
Flex on Java
Java Servlet 3.0 Specification
The Java EE 6 Tutorial
Hello, Android
Professional Android 4 Application Development (Wrox)
The Java EE 6 Tutorial

The C Programming Language
Head First C
Beginning Visual C++ 2008
C++ How to Program, 6th edition
Windows via C/C++
The C++ Programming Language
The C Programming Language (2nd edition)
C++ GUI Programming with Qt 4 (2nd edition)
Thinking in C++ Volume 1 (2nd edition)
Thinking in C++ Volume 2 (2nd edition)
Foundations of Qt Development
The Art of Unix Programming
Programming Arduino: Getting Started With Sketches

Bioinformatics: Sequence and Genome Analysis
Developing Bioinformatics Computer Skills
Beginning Perl for Bioinformatics
CGI Programming with Perl, 2nd edition
Programming the Perl DBI
Computer Science & Perl Programming: Best of TPJ
Object Oriented Perl
Perl & LWP
MySQL and Perl for the Web
Web Development with Apache and Perl
Advanced Perl Programming
The Perl Cookbook
Mastering Algorithms with Perl
Data Munging with Perl
Mastering Perl for Bioinformatics
Programming Web Services with Perl
Programming Perl, 3rd edition
Embedding Perl in HTML with Mason
Perl Template Toolkit

A Beginner’s Guide to AutoHotkey
AutoHotkey: Digging Deeper
AutoHotkey Beginner Tutorial

The Python Tutorial (from Python v2.7.2 documentation)
Learning Python (3rd edition)
Python Testing Beginners Guide
The Quick Python Book

Beginning JavaScript
JavaScript: The Definitive Guide, 3rd edition

Linux Apache Web Server Administration
Apache Jakarta-Tomcat
Tomcat: The Definitive Guide
Dreamweaver MX Complete Course

Berkeley DB Getting Started Guide
MySQL (New Riders)
SQL: The Complete Reference
The SQL Bible

Mac OS X: The Missing Manual, Second Edition
Windows XP Under the Hood: Hardcore Windows Scripting and Command Line Power
Peter Norton’s Complete Guide to Windows XP
Special Edition Using Microsoft Excel 2000
MCTS Windows Vista Client Configuration Study Guide
Windows 10: The Missing Manual

Serial Programming
Serial HOWTO, Terminal HOWTO, etc.
How Linux Works 2nd ed
Running Linux 5th ed
Building Embedded Linux Systems
Linux from Scratch 7.9
The Raspberry Pi User Guide
Using csh and tcsh
Unix Power Tools, Third Edition
Learning the vi editor, 6th edition
Mastering Regular Expressions (O’Reilly)
SSH, The Secure Shell: The Definitive Guide
SSH Mastery
Linux Shell Scripting with Bash
Red Hat Linux Fedora 3 Unleashed
Red Hat Linux Administrator’s Handbook
CompTIA Security+ Study Guide (Sybex)
CompTIA Security+ Exam JK0-010 (Syngress)
Network+, 4th edition
Exam Prep 2 Network+, 2nd ed.
CompTIA Linux+ Certification Study Guide
Mike Meyer’s Certification Passport: ComTIA Linux+
Beowulf Cluster Computing with Linux
PVM: Parallel Virtual Machine

Bash Cookbook
Classic Shell Scripting
ITBTWT Command Line
Learning the Bash Shell, 2nd Edition (O’Reilly)
Linux Command-Line and Shell Scripting Bible (2nd edition)
Pro Bash Programming
The Bash 4.1 Reference Manual
The Linux Command Line
Introduction to Linux
Beginning the Linux Command Line
Introduction to the Linux Command Line
The Filesystem Hierarchy Standard
Ubuntu 14.10 Unleashed 2015 Edition
The Linux Users’ Guide
Building and Installing Software Packages for Linux
The Linux System Administrator’s Guide
The Linux Network Administrator’s Guide
GNU/Linux Command-line Tools Summary
Linux 2.6 Kernel Documentations (a thesis paper)
CompTIA Server+ (SK0-003) LearnSmart
The Concise Server+ Study Guide (SK0-003)
The Server+ Bible (SK0-001)
CompTIA Server+ (SK0-004) ExamFOCUS Study Guide and Review Questions

Lauren Ipsum
Computer: The History
Developing User Interfaces (Dan Olsen)
The Career Programmer: Guerilla Tactics for an Imperfect World
The Healthy Programmer
The Computer Contradictionary
The Jargon File
Exploiting Online Games
GStreamer App Dev Manual 1.0.6
Starting Forth
Oblique Strategies
Adobe Flex 4.5 Fundamentals
ACE the IT Interview
Resumes for Computer Careers

Agile Project Management for Dummies
Personal Kanban
Kanban: Successful Evolutionary Change for Your Technology Business
The Unified Software Development Process
Software Runaways
Design Patterns
Head First Design Patterns
Code Generation in Action
UML Distilled
The Codeless Code

The Vim Users Manual
Vi IMproved by Steve Oualline
Practical Vim
A Byte of Vim
Learning the Vi and Vim Editors
The Vim Book
Vi IMproved (Steve Oualline)
Vim Habits 2

Hello, Android
Professional Android 4 Application Development (Wrox)
Android Phones for Dummies
Android Quick Start Guide (Android 5.0 Lollipop)
Android Quick Start Guide (Android 6.0 Marshmallow)

Ansible Configuration Management
GNU make Manual
Jenkins–The Definitive Guide
Jenkins Essentials
Managing Projects With GNU Make (3rd edition)
Maven–The Complete Reference
Gradle User Guide
Ant: The Definitive Guide
The Ant Manual
CVS Pocket Reference
Open Source Development with CVS
Pragmatic Unit Testing with JUnit
Pragmatic Guide to Git
Pro Git
Version Control with Git (O’Reilly)
Git: Version Control For Everyone
Ry’s Git Tutorial
Introducing GitHub
Git Recipes
Git from the Bottom Up
Git Pocket Guide
Conversational Git

Practical Crap Detection for Software Projects
The DevOps Handbook
The Prince (Machiavelli)
Predictably Irrational
Getting Things Done
The Pocket Oracle and Art of Prudence (Baltasar Gracian)
The Seven Habits of Highly Effective People
The Eighth Habit
How To Win Friends and Influence People
The Art of War
Zen and the Art of Motorcycle Maintenance
Essential Scrum
The Pragmatic Programmer
The Productive Programmer
The Rational Unified Process: An Introduction, 2nd edition
Winning (Jack Welch)
Crucial Conversations
The Logic of Failure
The Laws of Leadership
Boring Meetings Suck
Zen to Done
168 Hours: You Have More Time Than You Think
Mastering the Requirements Process: Getting Software Requirements Right
Software Requirements
User Stories Applied
Writing Effective Use Cases
Use Case 2.0
Software Failure, Management Failure
Software Runaways
CompTIA Project+ Study Guide
Good to Great
Great by Choice
Beautiful Teams

The Guitar Handbook
Money Chords
The Dance Music Manual
Guitar Secrets (Joe Satriani)
Ableton Live User Manual
The Listening Book
(a bunch of other music books I can’t recall the titles of)

Dave Ramsey’s Complete Guide to Money
The Art of Money Getting (P. T. Barnum)
The Money Book for the Young, Fabulous, and Broke (Suze Orman)
Money: Master the Game
Stop Working… Start Living
The Wealthy Barber
Total Money Makeover
The 10 Roads to Riches
Rich Dad, Poor Dad
Get Rich Carefully
How to Retire Happy, Wild, and Free
The Minimalist Budget

The Four Agreements
Utah Unemployment Claimant Guide
Letters of Note
Lists of Note
The Useful Book
Meditations of Marcus Aurelius
Dr. Phil: Life Code
The Ultimate Kauai Guidebook
The Declaration of Independence
The Communist Manefesto
Intermittent Fasting
Merriam-Webster Dictionary (up to the letter I so far)
Chicken Soup for the Soul: Find Your Happiness
The Psychology of Influence
The Little Book of Hygge
Energy Addict
Organization: Top 100 Ways to Organize Your Life
The Life-Changing Magic of Tidying Up

Treasure Island
Stranger in a Strange Land
Darwin Awards
Moby Dick
For Whom the Bell Tolls
Below the Root
Battlefield Earth
The Sword of Shannara
The Elfstones of Shannara
The Wishsong of Shannara
Magic Kingdom for Sale: Sold
Catcher in the Rye
Animal Farm
Anna Karenina

The King James Bible
The Book of Mormon
Pearl of Great Price

The Bro Code
Wisdom of the Ages: 6,500+ quotes
At least a dozen books on limit Texas Hold ’em poker
Aesop’s Fables
The Pocket Oracle
Change Your Life
Letters from a Stoic (Seneca)
What Would Wally Do? (Dilbert)
14 Years of Loyal Service in a Fabric-Covered Box (Dilbert)
A dozen other Dilbert books
Chicken Soup for the Soul
The Sayings of Confucius
The Power of Now
As a Man Thinketh
You Can Create an Exceptional Life

The Obesity Code
Wheat Belly
Why We Get Fat
The 4-Hour Body
The Amen Solution
Good Calories, Bad Calories
Dr. Atkins’ New Diet Revolution
The New Atkins Diet for a New You
Superfoods (Wolfe)
Forever Fat Loss
100 Weight Loss Tips You Wish You Knew
Intermittent Fasting
The FastDiet
The Shangri-La Diet
The Logic of Failure
Zen to Done
Getting Things Done
What the Most Successful People Do Before Breakfast
What the Most Successful People Do on the Weekend
168 Hours: You Have More Time Than You Think
The Productive Person
Don’t Sweat the Small Stuff
Drive: The Surprising Truth About What Motivates Us
Becoming the 1%
What the Most Successful People Do at Work
The Cub Scout Handbook
The Boy Scout Handbook
D&D Rule Book
Magic Realm Rule Book (Avalon Hill)

Eye of the Dragon (Stephen King)
The Hitchhikers’s Guide to the Galaxy
The Restaurant at the End of the Universe
Life, the Universe, and Everything
So Long, and Thanks for All the Fish
The Hobbit
The Fellowship of the Ring
The Two Towers
The Return of the King



Become Aware

To be effective, you have to become aware, gain motivation, be decisive, focus, take efficient action, move in the right direction, collect feedback, adapt, and iterate at a sustainable pace.

Blindly, unwillingly, indecisively flailing about in a diluted manner in the wrong direction is pointless.  Sitting around complaining about what you are not willing to change is pointless.  Busily multitasking inefficiently to show others what a hard worker you are is just vanity.  These things may feel good and even look good, but they are NOT good.  Being effective is good (well, depending on what your goal is–largely irrelevant because you, at least, likely believe your goal is good, even if you are wrong).

Awareness can be painful though.  Just writing this makes me aware of how ineffective I am at times.  Pain can be a good motivator, so onward!

Gain Motivation

If you are not effective, you will not reach your goals.  All your effort is therefor pointless.  Harsh?  Yes.  True?  Enough.

The best motivation comes from intrinsic obsession.  If you are lucky enough to have some, roll with it.  You cannot learn obsession; you can only become aware of it in yourself.  There are other artificial/external means of motivation (money, ego, social pressure, etc.), but the spark of obsession is the best.  However, obsession without action yields nothing.

Be Decisive

Sometimes I find myself in the grocery store buying, say, some yogurt.  Every container is the same, and yet I hesitate to pick one.  Why?  They’re all the same!  Be decisive, pick one, and move on with your life.

Like all things in life, there must be balance.  Inaction is costly.  Suppose I just cannot decide.  I might die of starvation in a grocery store surrounded by food!  However, suppose I rashly run across a busy street without looking?  Or I become so paralyzed by fear that I decide never to cross a road?  Neither extreme is effective.  You need to be aware so that you gain just enough information to make a quality decision (positive expected value relative to the cost of analysis), and then act.  Perhaps wait until the last responsible moment to act (more information has diminishing returns and your window of opportunity is closing).  Paying attention helps you gain the information necessary to be decisive.  That said, you only have so much attention that you can pay out.


I have been studying Lean manufacturing principles lately (I mean, it’s clear I’ve been drinking some of that kool aid, right?).  One of the big ideas is limiting work in progress.  The basic idea is that if you juggle too many balls at once, you will drop them all eventually.  He who chases too many squirrels catches none.  Suppose you have 5 projects that are 50% done.  How much progress have you made?  50%?  No, the answer is zero.  You have accomplished nothing of final value yet.  Half a resume won’t get you a job.  Nobody is going to buy half of your iPhone app.  Once you focus on a particular goal, achieving it efficiently will yield real, value-captured progress.

Take Efficient Action

Great, you’ve decided to do something (hey, this does not always happen)!  You know which of the identical yogurt containers to take from the shelf and put into your shopping cart.  You slowly move your hand forward and reach for it.  Hours pass.  Angry customers trying to get at the yogurt gather around you with torches and pitchforks.  The store closes.  The rest of the food in your cart spoils.  Everything goes wrong because you were not sufficiently efficient.

Again, balance.  If you quickly thrust your hand forward to grab the yogurt, injure your hand, knock all the yogurt containers on the ground, rage stomp them, and then run over 3 innocent bystanders with your shopping cart as you efficiently beeline to nearest checkout lane, then you are full of fail.  You still need to perform high quality actions regardless of speed otherwise the damage produced by your efficiency more than negates any value it provides.  Efficiency without quality is in vain.  Even with quality, it does not matter if you are moving in the wrong direction.

Move in the Right Direction

You have trained your whole life.  You are an efficient machine.  The ultimate.  The best.  You are Usain Bolt.  You line up to start the race.  The gun fires.  You blaze forward like no one ever has–but in the wrong direction.  Congratulations!  You have just set the world record for failure.  To know where you are going, it helps to know where you are, so collect some feedback.

Collect Feedback

If you had opened your eyes for a second instead of visualizing your glorious success (thanks again, ego), you would have realized you were running the wrong way and then changed directions.  You might then win (or at least finish) the race.  Potential alone is not sufficient for success.

Obviously, the earlier and more often you gather feedback, the better (if its cost is essentially zero).  Imagine driving your car and adjusting the duty cycle of your eyes being opened ever less and less.  If you try this experiment in real life, you will know the value of frequent feedback (although you probably won’t live to apply that insight).


You are decisively, efficiently driving in the correct direction.  You are completely winning.  You see a shopping cart full of bricks in your path, look again, and, much to your dismay, it is still there.  Reality is annoying like that.  You need to adapt soon!   What was good enough to be effective in the past may no longer be good.  It might even be horrible now.  Your context is always changing.  This means there is no fixed set of rules you can apply to always succeed.

Iterate at a Sustainable Pace

Yay!  You dodged that shopping cart full of bricks.  You become so enamored with your own effectiveness that you decide to drive for 36 hours straight (thanks yet again, ego).  After all, how can you make any progress by sleeping?  Sleep is for fools!  You successfully dodge the next 8 or so shopping carts before your “effectiveness” ends permanently.  Bricks don’t care how great you think you are.

Become Even More Aware

While reading some of the situations above, you may think, “nobody could ever be so dumb as to do those things.”  However, they happen all the time.  Life unfolds slowly.  It is not always easy to tell when you are being ineffective when the consequences are still months or years away.  Try reviewing past less-than-successful long term projects in your mind in fast forward.  You will almost certainly find that more than one aspect of effectiveness was consistently neglected over that time.  The things you can’t see can hurt you.  I have enumerated some of these failure-inducing things that may be invisible to you in another post: Failure.

All this talk of effectiveness has made me supremely aware of how tired I am.  I am strongly motivated to decisively take a nap now so that I can sustain my efforts for the rest of the day.  May you also be so effective today.