Karl Martino, Last Update May 18, 2026
- 1. What is this?
- 2. Personal Mission Statement
- 3. Principles from Programming
- 4. Beliefs
- 5. On Human Nature, Technology, Music and Art
- 6. On Fate, Self Determination, and Free Will
- 7. On Starting and Finishing
- 8. On living honestly, and not selling out
- 9. On Depression and Anxiety
- 10. The future, the past, and now: on anxiety, depression, and tao
- 12. On Problem Solving and Teamwork
- 13. On Trust, Systems, and Complexity
- 14. On the World, Improving Governance, Civics
- 15. On Building Resilent Systems
- 16. Jokes and Interesting Phrases
- 17. Most Important
This is a small collection of aphorisms, quotes, poems, clippings and thoughts that to me, are worth remembering, keeping close, and passing on. Sprinkled througout are a few of my own thoughts, influenced in no small part by the people cited here, and by my own experience. I'll be adding plenty of hyperlinks throughout, I'm slightly embarrassed there are not enough of them yet.
I'm still adding and correcting attributions. If you notice anything missing, make sure to tell me at kmartino at pobox dot com and I'll correct it.
Even better, do a pull request!
The following is a personal mission statement I wrote shortly after reading "The Seven Habits of Highly Effective People", by Stephen Covey. I try and keep this central to my life, in order to be the best person I can be, by exercising my core beliefs. I wrote this after getting inspired from a post by Dave Rogers on his old blog "Time's Shadow".
*** To live my life as an expression of the principals I believe in: ***
People shine when given the chance to create, express and grow. Empower.
People feel the need to be understood, just as, or even more strongly then the need to be loved. Listen.
People don’t need more opinions, we already drown in data. People need clarity. Drill down.
People learn from example, not only from words. Exemplify.
People are attracted to honesty and have bullshit detectors. Be true.
People need new experiences to expand their knowledge of reality. Adventure.
People can learn from their mistakes. Recognize, Don’t fear failure.
People search for simple solutions to problems when they are rarely simple. Dig.
People shine when they believe they can make a lasting impact, this may be the core of everything we do. Inspire.
People and companies are driven by visions, not ideologies. Lead.
Ignorance is fear of the truth. Truth is more important than pride. Learn.
A life without passion is a life not lived. Live.
Faith is the cure to doubt. Have Faith.
When you forgive, you are forgiven. Forgive.
Love is stronger than death. Love.
Software Engineering provides a means of problem solving that uniquely reflects human nature. It traverses both arts and sciences. Because of this, it provides lessons that can be used in life in general.
- Complex problems are just a series of simpler problems smushed together.
- Pay attention to where systems, layers, resources and people communicate.
- Solve problems, don't just point them out.
- Steal ideas liberally from everyone else. Originality is not a virtue. Learn from the past.
- Put trust in people, not in things.
- Don't build solutions that try to do everything.
- Create solutions that play nicely with others, do only a few things, and do them well.
- Perfectionism can be taken too far.
- Nevertheless, first, do no harm!
- Goals clearly stated are more liable to be achieved.
- Sometimes you need to do the things that failures do not like to do.
- Every project begins with that first step. Sometimes it is the hardest.
- Schedule your priorities, not the other way around.
- A shared success is one that will last and grow.
- Projects that aren't solutions to diagnosed needs are usually wasteful. Diagnose before prescribing something.
- Great systems are easily modified by the people who most frequently work with them. They support unexpected changes, and are easy to maintain. They have a conceptual integrity to them that makes working on them predictable and possible to reason about.
- Metaphors and stories are great. And necessary.
- Feedback is required.
- Continuously improve skills and knowledge by seeing what others are doing in the world.
- Continuously improve the things you plan on keeping, otherwise, one day, they no longer will be worth keeping in the first place.
- I believe life is like a card game. We have no control over the
cards we are dealt. We have do control over how
we play them.
- This means that who we are is determined by the decisions we've made, the decisions we are making, the gifts we've been given, and the context we are living in.
- Good cards are dealt to bad people. And bad cards are dealt to good people. The trick is not to get caught up in why, but to focus on the cards themselves, and to try your best.
- If you are worried about the hands you may be dealt in the future, you won't be able to play the hand you have.
- If you are too concerned with bad hands you've been dealt in the past, you won't be able to play the hand you have.
- I believe that education, experience, information, rationality, love and faith can help us decide how to play the cards we are dealt, and a belief that we have CHOICE needs to proceed them.
- I believe the root of human nature is good and derived from rules written by God on our hearts.
- I believe in that a rising tide lifts all boats. The success of those around me helps elevate me with them. That means it is an investment in myself to help someone else be a success.
- I believe that technology does not change human nature. It changes how we do things, not why.
- John Adams in 1787 defined the ideal government as "a government, in which all men, rich and poor, magistrates and subjects, officers and people, masters and servants, the first citizen and the last, are equally subject to the laws."
- The purpose of government is to address problems collectively that we can't solve individually, this includes common defense and the general welfare of its citizens.
- Laws should be subject to to continuous reform to support current and future circumstances. Law and regulation are the software of government.
- Informed general participation in government, by all, is a goal worth fighting for.
- I believe when we see no one on high brought to answer to Rule of Law, and only those who are poor or weak brought before it, trust in shared government erodes.
- Literacy and education are requirements for healthy citizenry and it is self-destructive for a society not support them.
- Some services have no profit motive and thus, are better served by civil servants rather than private corporations.
- Affordable access to quality healthcare is a fundamental right.
- I believe all human beings have a right to live with dignity and respect.
- Marketing has a side effect of dividing people into smaller and smaller groups. If one group is denouncing another group, and you buy into it, you are being devided just for someone to sell something.
- Technology and media enable ever faster feedback pipelines. This enables ever quicker decisions to be made. This does not equate to better decision making.
Technology enables people to shrink time and effort between a desire and a result. When making something that isn't for the purpose of expression, ask whose life you are making easier and why.
— Karl Martino
Human Nature is unchanging. Technology does not change what human beings do, but how. People are no more selfish or generous today then they were a hundred generations ago. What's changed is the context within which we live.
— Karl Martino (inspired by Dave Rogers)
Saying that Human Nature is unchanging is not the same as saying we can't change, or the systems and context within which we live can't change. Far from it. We live in a world that would be thought impossible just two generations ago. And people who have bad habits can change them, by changing the context within which they live.
— Karl Martino
Small minds try to form religions, the great ones just want better routes up the mountain.
— Alan C. Kay, "The Early History of Smalltalk"
A man is what he thinks about all day long.
— Emerson
Learn the idea, and you don't need to memorize the details. The idea stays the same; the details change.
— Shai Simonson, Rediscovering Mathematics
Empathy takes time, and efficiency is for things, not people.
— Stephen Covey
Organizations which design systems are constrained to produce designs whose structure are copies of the communication structures of these organizations.
— Melvin Conway
Two people can see the same thing, disagree, and yet both be right. It's not logical; it's psychological.
— Stephen Covey
It is one thing to make a mistake, and quite another thing not to admit it. People will forgive mistakes, because mistakes are usually of the mind, mistakes of judgment. But people will not easily forgive the mistakes of the heart, the ill intention, the bad motives, the prideful justifying cover-up of the first mistake.
— Stephen Covey
"Three chords and the form of the blues is a Western wisdom if you'd be quiet/ but therefore I have to sing blind as if I were in the midst of a holy night/ It was better to interpret the occasion as angelic rather than as demonic otherwise we'd all be benighted/ It is best to pray from the heart when the angry voice or the fearful voice arise/ I'll end my song and finish with blues and say goodnight unto your eyes/ O Gregory, now the term is over for you and me, the night is finished for the poetry/ We'll start again May 7th, if you will be at the New School then you and I will have a bout/ but we need not, at this or that time, scream and shout/ So therefore I will say in silence ending all my song, goodnight"
— Allen Ginsberg
It is not a science. It is maybe engineering, it is maybe art. It has a lot to do with magic. It is not about Computers in the same sense that Geometry is not about using surveying instruments. It is easy to confuse the essence of what you are doing with the tools that you use. In the future people will look back and think about and mention those primitives in the 20th century fiddling around with those gadgets called computers but really what they were doing was starting to learn how to formalize intuitions about process, about how to do things. Starting to develop a way to talk precisely about 'how to' knowlege. As opposed to Geometry which talks about 'what is true'.
— Lecture 1A | MIT 6.001 Structure and Interpretation, 1986
The ability to specifiy a behavioral contract between specification and implementaton, along with the fact that method implementations can invoke arbitrary code, allows applications to outlive data.
— Erik Meijer, ACM Magazine September 2012
...as the abstraction ladder has shown, all we know are abstractions. What you know about the chair you are sitting in is an abstraction from the totality of the chair. When you eat white bread you cannot tell by the taste whether it has been "enriched by vitamin B" as it says on the wrapper; you simply have to trust that the process (from which the words "vitamin B" are abstracted) was performed. What you know about your spouse - even a spouse of thirty years - is again an abstraction. Distrusting all abstractions simply does not make sense.
The test of abstractions then is not whether they are "high-level" or "low-level" abstractions, but whether they are referable to lower levels. If one makes a statement about "culinary arts in America", one should be able to refer the statements down the abstraction ladder to particulars of American restraunts, American domestic science, American techniques of food preservation, down to Mrs. Levin in her kitchen. If one makes a statement about "civil rights in Wisconsin," one should know something about national, state and local statutes; one should also know something about the behavior of police officers, magistrates, judges, academic authorities, hotel managers, and the general public in Wisconson, all of which acts and whose decisions affect that minimum of decent treatment in the courts, in politics, and in society that we call "civil rights." A preacher, a professor, a journalist, or a politician whose high-level abstractions can systematically and surely be referred to lower-level abstractions is not only talking but saying something.
— S.I. Hayakawa, Language in Thought and Action
You can’t “make time” any more than you can make sunshine. You need to choose what to not do, in order to do. You need to sleep at night to be awake for the day.
— Karl Martino (and a few million other people)
Life is a card game. You have no control over the cards dealt. But you do have control over how you play your hand.
— Karl Martino (and a few million other people)
Nothing in the world can take the place of persistence. Talent will not; nothing is more common than unsuccessful men with talent. Genius will not; unrewarded genius is almost a proverb. Education alone will not; the world is full of educated derelicts. Persistence and determination alone are omnipotent. The slogan Press On, has solved and will always solve the problems of the human race.
— Calvin Coolidge
There are two mindsets people have: Either believing that we are 'fixed' - what we are is what we are - or that we can change and grow if the right conditions are met. The second mindset is supported by science.
— Karl Martino (reflecting on Carol Dweck's "Mindset")
It is not the strongest that survives, nor the most intelligent that survives. It is the one that is most adaptable to change.
— Charles Darwin
Don't compare yourself with others. Just try and be the best person you can be. Compete with yourself.
— Mindset, by Carol Dweck
If you can keep your head when all about you Are losing theirs and blaming it on you; If you can trust yourself when all men doubt you, But make allowance for their doubting too: If you can wait and not be tired by waiting, Or, being lied about, don't deal in lies, Or being hated don't give way to hating, And yet don't look too good, nor talk too wise;
If you can dream—and not make dreams your master; If you can think—and not make thoughts your aim, If you can meet with Triumph and Disaster And treat those two impostors just the same:. If you can bear to hear the truth you've spoken Twisted by knaves to make a trap for fools, Or watch the things you gave your life to, broken, And stoop and build'em up with worn-out tools;
If you can make one heap of all your winnings And risk it on one turn of pitch-and-toss, And lose, and start again at your beginnings, And never breathe a word about your loss: If you can force your heart and nerve and sinew To serve your turn long after they are gone, And so hold on when there is nothing in you Except the Will which says to them: "Hold on!"
If you can talk with crowds and keep your virtue, Or walk with Kings—nor lose the common touch, If neither foes nor loving friends can hurt you, If all men count with you, but none too much: If you can fill the unforgiving minute With sixty seconds' worth of distance run, Yours is the Earth and everything that's in it, And—which is more—you'll be a Man, my son!
— If, Rudyard Kipling
I returned, and saw under the sun, that the race is not to the swift, nor the battle to the strong, neither yet bread to the wise, nor yet riches to men of understanding, nor yet favour to men of skill; but time and chance happeneth to them all.
— Ecclesiastes 9:11-12
"Learning how to think" really means learning how to exercise some control over how and what you think.
It means being conscious and aware enough to choose what you pay attention to and to choose how you construct meaning from experience.
Because if you cannot or will not exercise this kind of choice in adult life, you will be totally hosed.
— This is Water, David Foster Wallace
Sow a thought, reap an action; sow an action, reap a habit; sow a habit, reap a character; sow a character, reap a destiny.
— Stephen Covey
Live out of your imagination, not your history.
— Stephen Covey
There is no such thing as a 'self-made' man. We are made up of thousands of others. Everyone who has ever done a kind deed for us, or spoken one word of encouragement to us, has entered into the makeup of our character and of our thoughts, as well as our success.
— George Burton Adams
Ever since the Industrial Revolution, Western society has benefited from science, logic, and reductionism over intuition and holism. Psychologically and politically we would much rather assume that the cause of a problem is "out there," rather than "in here." It's almost irresistible to blame something or someone else, to shift responsibility away from ourselves, and to look for the control knob, the product, the pill, the technical fix that will make a problem go away.
Serious problems have been solved by focusing on external agents - preventing smallpox, increasing food production, moving large weights and many people rapidly over long distances. Because they are embedded in larger systems, however, some of our "solutions" have created further problems. And some problems, those most rooted in the internal structure of complex systems, the real messes, have refused to go away.
Hunger, poverty, environmental degradation, economic instability, unemployment, chronic disease, drug addiction, and war, for example, persist in spite of the analytical ability and technical brilliance that have been directed toward eradicating them. No one deliberately creates those problems, no one wants them to persist, but they persist nonetheless. That is because they are intrinsically systems problems - undesirable behaviors characteristic of the system structures that produce them. They will yield only as we reclaim our intuition, stop casting blame, see the system as the source of its own problems, and find the courage and wisdom to restructure it.
Obvious. Yet subversive. An old way of seeing. Yet somehow new. Comforting, in that the solutions are in our hands. Disturbing, because we must do things, or at least see things and think about things, in a different way.
— Thinking in Systems, A Primer, Donella Meadows
If one purges the Judaism of the Prophets and Chrristianity as Jesus Christ taught it of all subsequent additions, especially those of the priets, one is left with a teaching which is capable of curing all the social ills of humanity.
It is the duty of every man of good will to strive steadfastly in his own little world to make this teaching of pure humanity a living force, so far as he can. If he makes an honest attempt in this direction without being crushed and trampled underfoot by his contemporaries, he may consider himself and the community to which he belongs lucky.
— Albert Einstein
I'm scared.
I'm scared that my abilities are gone
I'm scared that I'm going to fuck this up
And I'm scared of you
I don't want to start, but I will.
This is an invocation for anyone who hasn't begun
Who's stuck in a terrible place between zero and one
Let me realize that my past failures at follow-through are no indication of performance
They're just healthy little fires that'll warm up my ass
If my FILDI (fuck it let's do it) is strong let me keep him in a velvet box until I really really need him
If my FILDI is weak let me feed him oranges and not let him gorge himself in ego and arrogance
I may not hit up my facebook like it's a crack pipe
Keep the browser closed
If I catch myself wearing a to-to (too fat too late too old) let me shake it off like a donkey would shake off something it doesn't like
And when I get that feeling in my stomach - you know the feeling when all of the sudden you get a ball of energy and it shoots down into your legs and up into your arms and tells you to get up and stand up and go to the refrigerator and get a cheese sandwich - that's my cheese monster talking. And my cheese monster will never be satisfied by cheddar only the cheese of accomplishment.
Let me think about the people who I care about the most, and how when they fail or disappoint me I still love them, I still give them chances, and I still see the best of them. Let me extend that generosity to myself.
Let me find and use metaphors to help me understand the world around me and give me the strength to get rid of them when its apparent they no longer work.
Let me thank the parts of me that I don't understand or are outside of my rational control like my creativity and my courage.
Let me remember that my courage is a wild dog and it won't just come when I call it, I have to chase it down and hold on as tight as I can.
Let me not be so vain to think that I am the sole author of my victories and a victim of my defeats.
Let me remember that the unintended meaning that people project on to what I do is neither my fault or something I can take credit for.
Perfection might look good in his shiny shoes but he's a little bit of an asshole and noone invites him to their pool parties.
Let me remember that the impact of criticism is often not the intent of the critic, but when the intent is evil, that's what the block button's for.
And when I eat my critique, let me be able to separate the good advice from the bitter herbs.
[unintelligible]
Let me not think of my work only as a stepping stone to something else, and if it is, let me become fascinated by the shape of the stone.
Let me take the idea that has gotten me this far and put it to bed. What I am about to do will not be that. But it will be something.
There is no need to sharpen my pencils anymore. My pencils are sharp enough. Even the dull ones will make a mark.
Warts and all.
Let's start this shit up.
And god, let me enjoy this. Life isn't just a sequence of waiting for things to be done.
— An Invocation for Beginnings, zefrank
Creating a life that reflects your values and satisfies your soul is a rare achievement. In a culture that relentlessly promotes avarice and excess as the good life, a person happy doing his own work is usually considered an eccentric, if not a subversive. Ambition is only understood if it's to rise to the top of some imaginary ladder of success. Someone who takes an undemanding job because it affords him the time to pursue other interests and activities is considered a flake. A person who abandons a career in order to stay home and raise children is considered not to be living up to his potential-as if a job title and salary are the sole measure of human worth.
You'll be told in a hundred ways, some subtle and some not, to keep climbing, and never be satisfied with where you are, who you are, and what you're doing. There are a million ways to sell yourself out, and I guarantee you'll hear about them.
To invent your own life's meaning is not easy, but it's still allowed, and I think you'll be happier for the trouble.
Reading those turgid philosophers here in these remote stone buildings may not get you a job, but if those books have forced you to ask yourself questions about what makes life truthful, purposeful, meaningful, and redeeming, you have the Swiss Army Knife of mental tools, and it's going to come in handy all the time.
— Kenyon College Commencement, Bill Watterson
Whenever a person is faced in life with a choice, his whole being trembles with the dilemma of what to do. It trembles because, being human, he wants both things but can’t have both; because deciding always means being altered; and because alteration, however desirable, is always violent. Anxiety is the stage a person has to pass through on his way to creating himself.
…Everyone, in Kierkegaard’s estimation, feels anxiety; it’s part of the human condition. What separates the men from the boys is how you respond. Boys shut their eyes— they refuse to look into the abyss. The men look. They own up to ambiguity and conflict. They own up to reality. They are more tuned in to life as it actually is. A friend of mine who read a lot of Sartre used to say, “We all make decisions. Some of us more than others.” Kierkegaard said, “The greater the anxiety the greater the man.”
— Monkey Mind, Daniel Smith
The key point is that anxiety is not a feeling, but something we do to ward off feelings. Anxiety is a strategy we use to avoid feeling things.
— Cary Tennis
Deep within every human being there still lives the anxiety over the possibility of being alone in the world, forgotten by God, overlooked among the millions and millions in this enormous household. A person keeps this anxiety at a distance by looking at the many round about who are related to him as kin and friends, but the anxiety is still there.
— Kierkegaard
How to face the facts, quit worrying, and do something about it:
Rule one:
To avoid worry - live in day-type compartments.
Rule two:
Next time Trouble backs you up: a. Ask youself what's the worst that can happen b. Prepare yourself to accept the worst c. Calmly try and improve the worst
Rule three:
Remind yourself the price you can pay in your health for worry. Those who do not know how to fight worry die young.
— Dale Carnegie
There are three ways of looking at life: looking at the past, being in the present, and looking to the future. Some people spend too much time doing the first or last, and not enough time in the here and now.
— Karl Martino
Whatever you are doing - right now - you are practicing. What you are practicing, you are growing. What do you want to see grow?
— Karl Martino
Answering the 'what do I want to see grow' question impacts all decisions, from what to do on a Saturday afternoon, to whether you should move to a different city for your work. It makes near term and long term destinations clear, and then all that is left is to play the game, or maximize your potential, to enjoy the journey of getting there. It also explains why the Gordon Gekkos and Julius Caesars of the world, who play the game just for its own sake, are generally unhappy and unsuccessful in their own eyes, even though they appear to be doing everything right.
— You Are Not Running Out Of Time, Rahul Bijlani
Shutting off the thought process is not rejuvenating; the mind is like a car battery-it recharges by running.
— Bill Watterson
The more we live, the larger our repertoire of concepts becomes, which allows us to gobble up ever larger coherent stretches of life in single mental chunks. As we start seeing life's patterns on higher and higher levels, the lower levels nearly vanish from our perception. This effectively means that seconds, once so salient to our baby selves, nearly vanish from sight, and then minutes go the way of seconds, and soon so do hours, and then days, and then weeks…
"Boy, this year sure went by fast!" is so tempting to say because each year is perceived in terms of chunks at a higher, grander, larger level than any year preceding it, and therefore each passing year contains fewer top-level chunks than any year preceding it, and so, psychologically, each year seems sparser than any of its predecessors.
— Anaology as the Core of Cognition, Douglas Hostader
It was a rude shock to see just how empty and robotic life can be when you don't care about what you're doing, and the only reason you're there is to pay the bills. Thoreau said, "the mass of men lead lives of quiet desperation." That's one of those dumb cocktail quotations that will strike fear in your heart as you get older.
— Bill Watterson
God, grant me the serenity to accept the things I cannot change, Courage to change the things I can, And wisdom to know the difference.
— The Serenity Prayer, Reinhold Niebuhr
We can't change the Adversities we face. But we can change our Beliefs about them, which will lead to new Consequences. It's not Adversity that creates our reactions, but our beliefs about the adversity. When you Dispute, Dispel or Distract them, you are left with new Effects.
- Adversity: What is the setback or challenge you just faced?
- Belief: What is your Belief about the Adversity?
- Consequence: What is the Consequence of your Belief?
- Dispute, Dispel, Distract, Distance: Recognize the Belief is a cognitive distortion.
- Effect: After Disputing the Belief, how you feel will be changed.
Be still. Listen to the stones of the wall. Be silent, they try to speak your
name. Listen to the living walls.
Who are you? Who are you? Whose silence are you?
Who (be quiet) are you (as these stones are quiet). Do not think of what you are still less of what you may one day be.
Rather be what you are (but who?) be the unthinkable one you do not know.
O be still, while you are still alive, and all things live around you
speaking (I do not hear) to your own being, speaking by the unknown that is in you and in themselves.
“I will try, like them to be my own silence: and this is difficult. The whole world is secretly on fire. The stones burn, even the stones they burn me. How can a man be still or listen to all things burning? How can he dare to sit with them when all their silence is on fire?”
— Thomas Merton
- Criticize behavior, not character.
- Teach children their ABCs: A is for adversity, B is for beliefs, and C is for consequences.
- Teach children how to dispute their negative thoughts.
- Children need to try things on their own, fail at them, and experience negative emotions like sadness and frustration.
- They need to learn to persist in the face of failure. Without failure and persistence, there's no mastery (the feeling of being in control and knowing that taking certain actions get specific results).
- Encourage Exploration and Curiosity: Curious people are open-minded, they want to know more about the world and about other people.
- Give Conditional Praise.
- Give Unconditional Love.
It is typically a good practice to under promise and over deliver.
However, in dysfunctional organizations, many over promise to curry favor, and then blame others for overall failure.
— Unknown
Do not develop an attachment to any one weapon or any one school of fighting.
— Miyamoto Mushashi
Your software development organization is a request processing system.
— Jon Moore, How to Go Faster
Failure demand can be quite expensive: according to one estimate, fixing a bug in production can be more than 15 times as expensive than correcting it during development. In other words, having work show up as failure demand is probably the most expensive possible way to get that work done.
— Jon Moore, Managing Software Development Flow
The primary cause of new failure demand is trying to hit an aggressive deadline with a fixed scope--something has to give here, and what usually gives is quality. There may well be reasons that this is the right tradeoff to make; perhaps there are marketing campaigns scheduled to start or contractual obligations that must be met (we'll save a discussion for how those dates got planned for another time). At any rate, management needs to understand the tradeoffs that are being made, and needs to be given the readouts to responsibly govern the process.
— Jon Moore, Managing Software Development Flow
Beware the person with a golden hammer. To them, every square peg fits in a round hole. And that smarts.
— Unknown
Solving Problems is a fundamental human activity. In fact, the greater part of our conscious thinking is concerend with problems. When we do not indulge in mere musing or daydreaming, our thoughts are directed toward some end; we seek means, we seek to solve a problem.
— How to Solve It, Polya
Begin with the end in mind.
— Stephen Covey -- The 7 Habits of Highly Effective People (Habit #2)
Cut your coat according to the cloth.
— Unknown
What a fool does last, a wise man does at first.
— Unknown
The end suggests the means.
— Unknown
If someone is in front of you, and you run into them, it is your fault.
— Karl Martino
You have to be strong enough to let go of your preferred solution in favor of what is best for your team.
— Driving Technical Change, by Terrence Ryan
Before we make any moves to convince others of our solution, we have to ask ourselves a very important question: are we solving a problem or pushing a solution? Solving a problem is good; it's about fixing what ails our groups. But pushing a solution is neutral at best and usually detrimental. But often it is what happens. Why? In our excitement over the solution we found, we lose sight of the fact that we are trying to address a problem. We forget that most problems have more than one solution. Instead, we focus on pushing our solution, which may not be right for the particulars of the problem. So, despite that our tool can be a fix for our problem, there may be better fixes for the problem that work better with the technical environment, team skill set, or organizational politics.
— Driving Technical Change, by Terrence Ryan
Programming is not special. Programming is a the literacy of problem solving. Facing a required task and then using known tools to construct a method the achieve the required task in logical steps.
— RichMan, Slashdot contributor
Today what we call crisis is more of a profound change that we were not organized to meet properly.
— Israeli President Shimon Peres
When you're young, you look at television and think, There's a conspiracy. The networks have conspired to dumb us down. But when you get a little older, you realize that's not true. The networks are in business to give people exactly what they want. That's a far more depressing thought. Conspiracy is optimistic! You can shoot the bastards! We can have a revolution! But the networks are really in business to give people what they want. It's the truth.
— Steve Jobs
What do we mean by a software architecture? To me the term architecture conveys a notion of the core elements of the system, the pieces that are difficult to change. A foundation on which the rest must be built.
— Is Design Dead, Martin Fowler
Software is, after all, a service and not really a product, and its power lies in its ability to capture tasks and the growth and changes in tasks.
— The DCI Architecture
Many discussions of "good" design simply focus on specific techniques. These discussions often have undisclosed assumptions that one particular technology is better than another: that rich object-oriented domain models are obviously good, or that stored procedures are obviously good, or that service-oriented architecture is obviously good.
With so many conflicting points of view about what's "obviously" good, only one thing is clear: "good" isn't obvious.
— Quality With a Name, James Shore
…folks describe good design as "elegant" or "pretty." Some might say it has "Quality Without a Name" (QWAN)—an ineffable (that means "indescribable," kids) sense of rightness in the design. The term comes from Christopher Alexander, a building architect whose thoughts on "patterns" formed the inspiration for software's patterns movement.
…There's just one problem. My QWAN is not your QWAN. My "Truth And Beauty" is your "Falsehood And Defilement." Us software folks seem prone to religious wars, which makes it worse. (Emacs vs. vi, anyone? How about Windows vs. Linux or domain models vs. stored procedures?)
— Quality With a Name, James Shore
A good software design minimizes the time required to create, modify, and maintain the software while achieving acceptable run-time performance.
— Quality With a Name, James Shore
Just as every day thoughts are expressed in natural language, and formal deductions are expressed in mathematical language, methodological thoughts are expressed in programming languages. A programming language is a method for communicating methods, not just a means for getting a computer to perform operations–programs are written for people to read as much as they are written for machines to execute.
— Abelson and Sussman
So great designs are: Are easily modified by the people who most frequently work within them. Easily support unexpected changes, are easy to modify and maintain, and Prove their value by becoming steadily easier to modify over years of changes and upgrades.
— Quality With a Name, James Shore
Systems reflect the communication pathways of their host organizations (Conways Law), when they ideally should reflect the cost, risk, frequency, and initiators of change or need. When organizations are configured similar, you get a natural alignment. When they are not, you need well defined interfaces.
— Karl Martino
Loose coupling in system design is the goal. A complete absense of coupling is impossible. Define your seams based upon what changes in a system, who needs to change it, and how often.
— Karl Martino
A great example of loose coupling is thinking of a door handle as an API. What is behind the door can evolve infinitely, and turning that door handle can be any sort of person. But it still needs to be a human shaped hand, and a door handle shaped in recognition of that.
— Bryan Yurasits
Software projects are constrained by trust.
— Karl Martino
Honesty about Trust is Everything: whether it's relationships, software design, org structures, teams, institutions, brands, neighbors, life.
— Karl Martino
How much complexity, bureaucracy, heavy process, and reinvention happens just because we don't Trust other teams, software, organizations, governments - one another?
— Karl Martino
Is a fork in an #opensource project Conway's Law in action due to breakdown in trust between two subsets of originally united organization?
— Karl Martino
Sometimes we build-a-new when instead we should be fixing a bridge. Pre-existing bridges don't get much love these days.
— Karl Martino
Avoid network calls if you can do something local. Each network call increases complexity.
— Karl Martino
Avoid copying files and data. Not for concern about storage, storage is cheap. Each copied file or record, that needs to be maintained, is added complexity.
— Karl Martino
The more hops across systems and networks to accomplish a solution, the more complex that solution is.
— Karl Martino
Enable those who need to make changes in a system to do so. The less intermediaries and ceremony to accomplish any change, the better. Build interfaces and processes to mediate trust.
— Karl Martino
Favor deploying and distributing only what has changed in a release, instead of deploying an entire system tree of dependencies. Each new thing included in a release, whether changed or not, increases risk.
— Karl Martino (and I'm on the fence about this now)
Multiple paths in a system to accomplish similar tasks increase complexity. If there is a pre-existing way to accomplish something, and you ignore it for your own solution, it maybe faster now, but it will certainly be slower later to maintain and evolve. This breaks the conceptual integrity of a system and left unchecked, leads to a Ball of Mud.
— Karl Martino
The Unix tradition:
- Make each program do one thing well. To do a new job, build afresh rather than complicate old programs by adding new features.
- Expect the output of every program to become the input to another, as yet unknown, program. Don't clutter output with extraneous information. Avoid stringently columnar or binary input formats. Don't insist on interactive input.
- Design and build software, even operating systems, to be tried early, ideally within weeks. Don't hesitate to throw away the clumsy parts and rebuild them.
- Use tools in preference to unskilled help to lighten a programming task, even if you have to detour to build the tools and expect to throw some of them out after you've finished using them.
- This is the Unix philosophy: Write programs that do one thing and do it well. Write programs to work together. Write programs to handle text streams, because that is a universal interface.
— Doug McIlroy, the inventor of Unix pipes
Data dominates. If you've chosen the right data structures and organized things well, the algorithms will almost always be self-evident. Data structures, not algorithms, are central to programming.
— Rob Pike
Show me your flow charts and conceal your tables and I shall continue to be mystified, show me your tables and I won't usually need your flow charts; they'll be obvious.
— Fred Brooks
Agile software development embraces the idea of working with uncertainty.
— Pragmatic Thinking and Learning
You're not 100 certain which features will be present in the next iteration. You don't know how many iterations there will be.
— Pragmatic Thinking and Learning
Features tell, benefits sell
— Unknown, I learned this as a telemarketer at Sears
The Roman Empire provides history's best-documented example of how increasing complexity to resolve problems leads to higher costs, diminishing returns, alienation of a support population, economic weakness, and collapse. In the end it could no longer afford to solve the problems of its own existence.
— Unknown
A good architecture maximizes the number of decisions not made.
— Bob Martin
A good architecture allows major decisions to be deferred.
— Bob Martin
Agile and trust are mutually reinforcing.
— Agile at the Speed of Trust, LeadingAglie.com
An abstraction unites something fixed with something varying.
— HXA notes - Definition of abstract
In systems thinking, as in object-oriented programming, it's often the relationships between things that are interesting, not the things themselves. These relationships help form the context that makes all the difference.
— Pragmatic Thinking and Learning
The Bubble Pattern: "assets that perform well generate demand that outstrips supply, which in turn leads to a massive reduction in the quality of assets in that class."
— The bubble pattern applies to venture capital, Rafe Colburn
All for ourselves, and nothing for other people, seems, in every age of the world, to have been the vile maxim of the masters of mankind.
— Adam Smith, An Inquiry Into the Nature and Causes of the Wealth of Nations
The purpose of government is to enable the people of a nation to live in safety and happiness. Government exists for the interests of the governed, not for the governors.
— Thomas Jefferson
…it may be proved that no society can make a perpetual constitution, or even a perpetual law. The earth belongs always to the living generation. They may manage it then, and what proceeds from it, as they please, during their usufruct. They are masters too of their own persons, and consequently may govern them as they please. But persons and property make the sum of the objects of government. The constitution and the laws of their predecessors extinguished then in their natural course with those who gave them being. This could preserve that being till it ceased to be itself, and no longer. Every constitution then, and every law, naturally expires at the end of 19 years. If it be enforced longer, it is an act of force, and not of right.
— Thomas Jefferson, Letter to James Madison 1780
The liberty of democracy is not safe if people tolerate growth of private power to a point where it becomes stronger than their democratic state itself. That, in its essence, is fascism.
— Franklin D. Roosevelt
No man is an island, Entire of itself. Each is a piece of the continent, A part of the main. If a clod be washed away by the sea, Europe is the less. As well as if a promontory were. As well as if a manor of thine own Or of thine friend's were. Each man's death diminishes me, For I am involved in mankind. Therefore, send not to know For whom the bell tolls, It tolls for thee.
— John Donne
Tis true that governments cannot be supported without great charge, and it is fit everyone who enjoys a share of protection should pay out of his estate his proportion of the maintenance of it.
— John Locke
The subjects of every state ought to contribute toward the support of the government, as nearly as possible, in proportion to their respective abilities; that is, in proportion to the revenue which they respectively enjoy under the protection of the state ….[As Henry Home (Lord Kames) has written, a goal of taxation should be to] 'remedy inequality of riches as much as possible, by relieving the poor and burdening the rich.'
— Adam Smith
Such regulations [banking regulations] may, no doubt, be considered as in some respect a violation of natural liberty. But those exertions of the natural liberty of a few individuals, which might endanger the security of the whole society, are, and ought to be, restrained by the laws of all governments; of the most free, as well as of the most despotical. The obligation of building party walls, in order to prevent the communcation of fire, is a violation of natural liberty, exactly of the same kind with the regulations of the banking trade which are here proposed.
— Adam Smith, The Wealth Of Nations, pg. 263
Whenever the legislature attempts to regulate the differences between masters and their workmen, its counsellors are always the masters. When the regulation, therefore, is in favour of the workmen, it is always just and equitable; but it is sometimes otherwise when in favour of the masters.
— Adam Smith, The Wealth Of Nations, pg. 151
Personal property is the effect of Society; and it is as impossible for an individual to acquire personal property without the aid of society, as it is for him to make land originally. Separate an individual from society, and give him an island or a continent to possess, and he cannot acquire personal property. He cannot be rich. So inseparably are the means connected with the end, in all cases, that where the former do not exist, the latter cannot be obtained. All accumulation therefore of personal property, beyond what a man's own hands produce, is derived to him by living in society; and he owes, on every principle of justice, of gratitude, and of civilization, a part of that accumulation back again to society from whence the whole came. This is putting the matter on a general principle, and perhaps it is best to do so; for if we examine the case minutely, it will be found, that the accumulation of personal property is, in many instances, the effect of paying too little for the labour that produced it; the consequence of which is, that the working hand perishes in old age, and the employer abounds in affluence. It is perhaps impossible to proportion exactly the price of labour to the profits it produces; and it will also be said, as an apology for injustice, that were a workman to receive an increase of wages daily, he would not save it against old age nor be much the better for it in the interim. Make then Society the treasurer to guard it for him in a common fund, for it is no reason that because he might not make a good use of it for himself that another shall take it.
— Thomas Paine, Agrarian Justice 1797
I think by far the most important bill in our whole code is that for the diffusion of knowledge among the people. No other sure foundation can be devised, for the preservation of freedom and happiness…Preach, my dear Sir, a crusade against ignorance; establish & improve the law for educating the common people. Let our countrymen know that the people alone can protect us against these evils [tyranny, oppression, etc.] and that the tax which will be paid for this purpose is not more than the thousandth part of what will be paid to kings, priests and nobles who will rise up among us if we leave the people in ignorance.
— Thomas Jefferson, Letter to George Wythe
To want to "bring the manufacturing jobs back" is a lost cause. Programming is the new manufacturing and what Estonia is doing is brilliant. More and more everything in our daily lives is governed by software. Estonia is a small country and choosing this as their national specialty is going to prove monumental to their long-term success.
— jdbuz, a Slashdot comment
De-industrialization’s been going on for 50 years, the decline of organized labor’s been going on for 40 years, globalization: 20-25 years, and you’re gonna sit there and argue over this month’s employment report? The fact that we can’t have an adult electoral process is rooted in this kind of frenzy of who can we blame, and how fast.
…That business of four years being the metric for anything? We have a political culture that everyone plants annuals, they plant pretty flowers that come up the next spring. What we need is a political culture where somebody plants a fuckin’ olive tree, which doesn’t even give you an olive for seven years. That’s how you fix an economy…When that olive tree becomes an orchard.
— David Simon, creator of The Wire, on Real Time with Bill Maher
"A good scientist is a person with original ideas. A good engineer is a person who makes a design that works with as few original ideas as possible."
— Freeman Dyson
Programming is at heart a practical art in which real things are built, and a real implementation thus has to exist. In fact many if not most languages are in use today not because they have any real merits but because of their existence on one or more machines, their ability to be bootstrapped, etc.
— Alan C. Kay, The Early History of Smalltalk
Though OOP came from many motivations, two were central. The large scale one was to find a better module scheme for complex systems involving hiding of details, and the small scale one was to find a more flexible version of assignment, and then to try to eliminate it altogether.
— Alan C. Kay, The Early History of Smalltalk
Bob Barton, the main designer of the B5000 and a professor at Utah had said in one of his talks a few days earlier: “The basic principal of recursive design is to make the parts have the same power as the whole.” For the first time I thought of the whole as the entire computer and wondered why anyone would want to divide it up into weaker things called data structures and procedures. Why not divide it up into little computers, as time sharing was starting to? But not in dozens. Why not thousands of them, each simulating a useful structure?
— Alan C. Kay, The Early History of Smalltalk
Integration points are the number-one killer of systems. Every single one of those feeds presents a stability risk. Every socket, process, pipe, or remote procedure call can and will hang. Even database calls can hang, in ways obvious and subtle. Every feed into the system can hang it, crash it, or generate other impulses at the worst possible time.
— Michael T. Nygard, Release It!, p. 46
The most effective patterns to combat integration point failures are Circuit Breaker and Decoupling Middleware.
— Michael T. Nygard, Release It!, p. 59
Testing helps, too. Cynical software should handle violations of form and function, such as badly formed headers or abruptly closed connections. To make sure your software is cynical enough, you should make a test harness— a simulator that provides controllable behavior—for each integration test. Setting the test harness to spit back canned responses facilitates functional testing. It also provides isolation from the target system when you are testing. Finally, each such test harness should also allow you to simulate various kinds of system and network failure.
— Michael T. Nygard, Release It!, p. 59
A cascading failure occurs when a crack in one layer triggers a crack in a calling layer.
Cascading failures require some mechanism to transmit the failure from one layer to another. The failure 'jumps the gap' when bad behavior in the calling layer gets triggered by the failure condition in the called layer.
Just as integration points are the number-one source of cracks, cascading failures are the number-one crack accelerator. Preventing cascading failures is the very key to resilience. The most effective patterns to combat cascading failures are Circuit Breaker and Timeouts.
— Michael T. Nygard, Release It!, p. 65
If built naively, the probability of failure in Project Frammitz is the joint probability of a failure in any component or service. That is, a single failure in a dependency is enough to make Frammitz fail; therefore, P(frammitz up) = (1 - P(internal failure)) * P(partner 1 up) * P(inventory up) … ]. If Frammitz requires five external services that each have a 99.9% availability, then the best Frammitz can possibly do is 99.5%.
This is an SLA inversion: a system that must meet a high-availability SLA depends on systems of lower availability. You have to operate on wishful thinking to commit to that highavailability SLA.
— Michael T. Nygard, Release It!, p. 104
In the abstract, an unbounded result set occurs when the caller allows the other system to dictate terms. It is a failure in handshaking. In any API or protocol, the caller should always indicate how much of a response it is prepared to accept. TCP does this in the “window” header field. Search engine APIs allow the caller to specify how many results to return and what the starting offset should be.
— Michael T. Nygard, Release It!, p. 108
Hope is not a design method.
— Michael T. Nygard, Release It!, p. 111
Every single time a human touches a server is an opportunity for unforced errors
— Michael T. Nygard, Release It!, p. 124
Any mechanism that accumulates resources (whether it is log files in the filesystem, rows in the database, or caches in memory) is like the bucket from those high-school calculus problems. The bucket fills up at a certain rate, based on the accumulation of data. It must be drained at the same rate, or greater, or it will eventually overflow. When this bucket overflows, bad things happen: servers go down, databases get slow or throw errors, response times head for the stars. The Steady State pattern says, for every mechanism that accumulates a resource, some other mechanism must recycle that resource.
— Michael T. Nygard, Release It!, p. 124
Middleware occupies the essential interstices between enterprise systems. It is the connective tissue that bridges gaps between different islands of automation.
— Michael T. Nygard, Release It!, p. 141
Done well, middleware simultaneously integrates and decouples systems. It integrates them by passing data and events back and forth between the systems. It decouples them by letting the participating systems removing specific knowledge of and calls to the other systems. Since integration points are the number-one cause of instability, this looks like a good thing.
— Michael T. Nygard, Release It!, p. 141
Tightly coupled middleware amplifies shocks to the system. Synchronous calls are particularly vicious amplifiers that facilitate cascading failures.
Less tightly coupled forms of middleware allow the calling and receiving systems to process messages in different places and at different times.
— Michael T. Nygard, Release It!, p. 141
Manage:
- Integration Points
- Unbounded Result Sets
- Slow Responses
- Chain Reactions
- Attacks of Self-Denial
- Cascading Failures
- SLA Inversion
- Scaling Effects
Use:
- Timeouts
- Circuit Breaker
- Bulkheads
- Steady State
- Fail Fast
- Handshaking
- Test Harness
- Decoupling Middleware
— Michael T. Nygard, Release It!, p. 43
...there's no such thing as a website project. Every one is really an enterprise integration project with an HTML interface. Most projects have at least some kind of back end with which they must integrate. When the back end is being developed along with the front end, you might think the result would be a cleaner, better, tighter integration. It's possible that could happen, but it doesn't come automatically; it depends on Conway's law. The more common result is that both sides of the integration end up aiming at a moving target.
— Michael T. Nygard, Release It!, p. 43
- Q. What did the teddy bear say when he was offered dessert? A. No thanks, I'm stuffed!
- Q. Why did the pony cough? A. He was a little hoarse!
- 83.7 percent of all statistics are made up.
- I'm not trying to convince anyone of anything.
- You can verb any word.
- All generalizations are false, including this one.
- I'm totally opposed to absolutism.
- You are unique, just like everyone else.
- Exaggerating is overrated.
- Don't anthromophorize things, they hate it when you do that.
Lord, make me an instrument of Your Peace, Where there is hatred, let me sow Love; Where there is injury, Pardon; Where there is doubt, Faith; Where there is despair, Hope; Where there is darkness, Light; And Where there is sadness, Joy. O Divine Master, grant that I may not So much seek to be consoled, as to Console; To be understood as to Understand; To be loved as to Love; For it is in Giving that we recieve; It is in Pardoning that we are pardoned; It is in dying that we are born to eternal life.
— St. Francis of Assisi
Share everything. Play fair.
Don’t hit people. Put things back where you found them. Clean up your own mess. Don’t take things that aren’t yours. Say you’re sorry when you hurt somebody. Wash your hands before you eat. Flush. Warm cookies and cold milk are good for you. Live a balanced life – learn some and think some and draw some and paint and sing and dance and play and work every day some.
Take a nap every afternoon. When you go out into the world, watch out for traffic, hold hands, and stick together. Be aware of wonder. Remember the little seed in the Styrofoam cup: The roots go down and the plant goes up and nobody really knows how or why, but we are all like that. Goldfish and hamsters and white mice and even the little seed in the Styrofoam cup – they all die. So do we. And then remember the Dick-and-Jane books and the first word you learned – the biggest word of all – LOOK.
— All I Really Need to Know I Learned In Kindergarten, Robert Fulghum