alertpay

Saturday, March 28, 2020

The Seven Habits Of Highly Effective People Part 1: Summary Of The 25Th Anniversary Edition

INTRODUCTION: WHY 7 HABITS?

This will be a long post, as I'll be summarizing Stephen Covey's The Seven Habits of Highly Effective People through the first 3 Habits. The last 4 Habits will be covered in a separate post to be more "organized".

After using self-compassion, I noticeably felt better. I recall in this past post,
that I tried reading Stephen Covey's The Seven Habits of Highly Effective People, but couldn't even do the first exercise due to fatigue. But now that I'm in a much better place, I decided to go through the book again.

I completed the entire book when I had way more energy in College, and really found it eye-opening and helpful. However, the lessons didn't stick, otherwise, I would've remembered and continued with these habits to this day.


These habits can be very difficult to follow as it takes a lot of due diligence, willpower to not do what you want in the moment, but to work on what you find worthy, meaningful and important.


You can feel demoralized as you continue to slide back into bad habits. You may even feel negatively towards yourself, and feeling like a failure for not being an "effective" person.


That's why it's absolutely imperative that you practice self-compassion. There are going to be many days where you'd rather sleep in and not exercise, and you may berate yourself.


However, if you're kind to yourself, you'll validate these universal feelings, indeed, animals tend to use the least amount of energy, evolutionary speaking! We try to conserve energy in the face of scarcity.


Using self-compassion, you will then say, but I'm a truly worthy person, so I'll commit to exercising after work. You can walk up and down the stairs for 10 mins, or walk around the house for 10 mins as alternative. Some movement is better than none!


Therefore, if you didn't do the one habit that would make an enormous difference in your life, with self-compassion on your side, you'll just pick yourself up and do light exercise later on in the day!


Carl Rogers noted that having unconditional positive regard is the key to change, and an important ingredient in making things work for you. 


Additionally, you must have energy. When I was exhausted, I couldn't accomplish anything. So exercise, getting a good night's sleep, eating fruits and vegetables, and so forth can help with energy.


Why follow the 7 Habits in the first place? Because of Covey's work, future self-help books base their principles on his work - namely, one book will be on empathic listening, another on synergy, and so forth.


Further, I found the book not only profound but practical, as it outlines steps that can help you reach your goals, in a principled manner. Covey gives you exercises to act on these positive habits.


Through these exercises, you will find what you value, not what society, family and friends say you should be. Then, the book helps you to live in line with your own truths, again in a principled way.


Again, do these habits with self-compassion, recognizing that it's very hard work. Even Covey mentioned that it's difficult in his Foreword to the 2004 edition. He writes, "I have personally found living the 7 Habits a constant struggle...Because I sincerely work and struggle every day at living these principle-embodied habits, I warmly join you in this adventure" (p. 20). And this is the man who wrote the book!


Because of self-compassion and seeing ourselves as worthy, we want to live with integrity and principle. After all, we don't treat our precious things with contempt and carelessness, but rather with care. Likewise, when we value ourselves, we want to take care of ourselves, we want to be happy and pursue purpose and meaning in our lives, in a principled way.


I'm summarizing the 7 Habits as I find it's in sore need of an update for people of diverse backgrounds. It appears that Covey is writing to the upper white middle class families. Even so, "don't throw the baby out with the bath water", but rather focus on the principles of what Covey is expounding.

FOREWARD TO THE 25th ANNIVERSARY EDITION

In this Foreword, Covey acknowledges that our problems and pain are universal, and solutions will be based upon universal, timeless, self-evident principles

These principled solutions stand in contrast to common thinking of modern society as outlined below.


BODY:

Cultural tendency: continue with unhealthy lifestyle habits; treat health problems with surgery and medication.

Principle: prevent diseases and problems by incorporating healthy life choices. Such as the tried and true sleep hygiene, eating healthy, exercising, meditation, preventive medical checkups, and so forth.


MIND:

Cultural tendency: watch television, "entertain me"

Principle: read broadly and deeply, continuous education


HEART:

Cultural tendency: use relationships with others to advance your personal, selfish interests

Principle: deep, respectful listening, helping and serving others brings greatest fulfillment and joy.


I found the above compelling because when people think about being an "effective" person, they think you need to manipulate and use others to get ahead of the game, seek and gain power and money to abuse others to get what you want and need.


This book proposes the exact opposite, that by following principles of honor and integrity to the best of your abilities, it can help solve painful problems, bringing you joy and contentment, as it aligns with universal truths.


Instead of using and abusing others, Covey calls for having utmost respect, listening and understanding others deeply, without judgment. By doing this, you move toward empowering not just the person, but yourself.


INSIDE-OUT AND OVERVIEW

The Seven Habits of Highly Effective People focuses on Character Ethic as a way to be an effective person. You must start first with your self, with your paradigms, your character and your motives.

For Covey, Character Ethic is the foundation of success - you can only experience enduring happiness when you integrate these principles.


The major principles are:

  • Fairness
  • Integrity and Honesty
  • Human Dignity
  • Service
  • Quality or Excellence
  • Potential/Growth
  • Patience, Nurturance and Encouragement
By following these principles, you're following the correct roadmap. You may falter, but you can always consult the map and find your way back - there's always opportunities to do so to exercise these principles!

Following is a great description of a person who fell off the map and got lost, not using principles as a guide post, in the words of Erich Fromm:
Today, we come across an individual who behaves like an automaton, who does not know or understand himself, and the only person that he knows is the person that he is supposed to be, whose meaningless chatter has replaced communicative speech, whose synthetic smile has replaced genuine laughter, and whose sense of dull despair has taken the place of genuine pain. Two statements may be said concerning this individual. One is that he suffers from defects of spontaneity and individuality which may seem to be incurable. At the same time, it may be said of him he does not differ essentially from the millions of the rest of us who walk upon this earth.
I appreciate this quote, because this is what we all go through, and suffer, being a universal condition. However, we can change course by steering ourselves toward universal principles.

Do these principles make sense? They do, if we look at the negative of these timeless principles.

Being unfair, judgmental, deceptive, manipulative, not wanting to "git gud" (gamer terminology), being nasty and impatient to others - this doesn't lead to success in the truest sense.

Malignant narcissists, who have those negative qualities, can be extremely successful financially, often ending up as CEOs. Because they'd do anything to get ahead, they can cut corners and make quick gains, pushing their way to the glass ceiling. But they're very miserable, having no meaningful, loving relationships or connections with anyone.

Please be advised that human beings and all mammals are hard-wired to have connection with one another. We're social animals. When we're cut off or don't have a sense of belonging, that brings about true suffering.

But being fair, open, honest, improving upon yourself, encouraging and helping others - these things make people happy and able to connect with others in a fulfilling way.

Some of the negative habits to combat:
  • procrastination
  • impatience
  • criticalness
  • selfishness
Procrastination definitely makes you less effective. What's interesting is that the last 3 negative habits lead to disconnect from others. What this book is steering us toward is to have positive connections with others to be successful.

The book explains how you can achieve principled habits, but of course, have self-compassion if you go back to bad habits. Covey admits that having good habits involve tremendous process and commitment.

Covey notes that habits are the intersection of knowledge, skill and desire:

Knowledge is the theory and paradigms of what to do.
Skill is how to do it.
Desire is you want to do it.

The 7 Habits are incremental and integrated approach to developing personal and interpersonal effectiveness. As you go through the habits, you move from dependence to independence, and finally to interdependence.

When we reach interdependence, we can combine our talents and abilities and create something greater together, compared to independently, achieving more success and becoming more effective together. Two heads are better than one.

When you share yourself deeply, meaningfully with others, you may have access to the vast resources and potential of other human beings.

Habits 1 to 3 help you move from dependence to independence. This is your Private Victory.

Habits 4 to 7 help you move from independence to interdependence. This is your Public Victory.

Although you need to achieve independence before you gain interdependence - you have to learn how to crawl before you walk - it may take many years, even a lifetime to "master" habits 1 to 3. However, you can also work on habits 4 to 7 concurrently!

HABIT 1 - BE PRO-ACTIVE

Being proactive means that you take responsibility for your own life. Our behavior is a function of our decisions, not our conditions.

Reactive people are often effected by their physical environment. If the weather is good, they feel good. If the weather is bad, they feel bad.


However, a proactive person carries their own weather with them. Whether it rains or shine, doesn't matter, because proactive people are value driven, and their value is to produce good quality work, being kind to others, and so forth, regardless of what's going on.


Covey mentions the proactivity of Victor Frankl, Holocaust survivor, who founded Logotherapy, and author of Man's Search For Meaning, which I wrote about here.


Despite the atrocities, Frankl chose how he acts, and found meaning in the suffering, and helped others to find their own meaning.


We all can't be Frankl. Indeed, if one of my hair strands is out of place, I feel that I can't stream as well. However, we can start slowly and have minor victories when we act positively rather than reacting. 


Suppose it's raining outside, and as a result your arthritis is really acting up. You can chose to stay at home and be in pain and miserable. Or you can have compassion and acknowledge your pain. Then you may problem-solve, give a middle finger to the crappy weather, and go out with your friends. 



Covey uses the model of circle of influence - those are the things you have control over, such as being patient, kind and understanding. Around the circle of influence, you have circle of concern, which you don't have control over such as the weather, politics and such. 

When you're proactive, you use your energy in working on your circle of influence, instead of reacting negatively to things you can't control, and then blaming others for your problems.


You have direct control by working on your habits, such as the Private Victories of Habits 1, 2, 3. Indirect control problems are solved by changing our methods of influence - Public Victories of Habits 4, 5, 6. No control problems can be dealt with accepting the way things are, even though we don't like it.


Here's an example on how you can expand your circle of influence, by working on yourself and how you respond.


Your boss tends to be critical of others, but doesn't have a verifiable DSM-V personality disorder, so you can work with her. Instead of complaining about yet another mistake she pointed out, you start trying to understand her and what she's looking for. 


Instead of avoiding her at all costs, or just saying "yes" to whatever she says to "get her off my back", you instead truly listen to what she wants and expects. Actually, she may be taken aback if she sees you actively searching out her advice when you have a question about the project, since she notices that people avoid her like the plague.


Because you truly understand what her vision is and you're able to implement it as a result, she will be impressed, and come to you for more of the "plum" projects.


You're clearly proactive in this situation. Instead of blaming her for being "bitchy" and saying, "if only she were more understanding, my work would be better", you decide to understand exactly what she wants, getting all the specifics so you can easily implement.


However, your other coworkers start getting jealous, one actually calls you a "brown noser" to your face. Instead of reacting, you have the wherewithal to tell him that you're not brown nosing, you're just following these particular steps that she finds useful and that's how you can "get ahead". By giving him these valuable tips, he can take it or leave it.


If he's "not convinced", you continue to make positive overtures toward him. Seeing that you're actually genuine and authentic, he starts using your tips, noticing that they actually work, and you gained an ally. 


The other coworkers eventually follow suit. You turned an unpleasant work experience into a positive one.


Now the issue here is if your boss actually has a verifiable personality disorder. She completely belittles and insults others, lies about her employees to cover herself, fires employees indiscriminately, and creates a truly toxic environment. 


You have a family to feed, so you can't quit your job, even though your wife and children are begging you to leave for your health.


However, even in this dire situation, you can be proactive. Take notes whenever she says something demeaning to you or another person. Make sure you write down the exact day and time this occurs. If you have good reflexes, you can also record the toxicity on your smartphone.


On the weekends, you and your wife scour the internet for job opportunities. If you get fired, you can hire a lawyer, armed with scores of exceptionally detailed notes, which is every lawyer's wet dream for a lawsuit.


If you manage to not get fired, once you find another job, you can put in your 2 weeks notice.


How can you tell if you're proactive or not? If you're reactive you use "have" statements. If you're proactive, you use "be" statements.


Reactive statements examples:

  • I'll be happy when I have my house paid off...
  • If only had a boss who wasn't such a dictator (use the techniques above instead)...
  • If I had more obedient kids...
  • If I had my degree...
  • If I could just have more time to myself...
Proactive statements examples:
  • I can be more patient
  • I can be more wise
  • I can be more understanding
  • I can be more resourceful
  • I can be more diligent
The Application Suggestions are:
  1. For a full day, listen to your language and to the language of the people around you. How often do you use and hear reactive phrases such as "If only," "I can't", or "I have to".
  2. Identify an experience that have behaved reactively. How could you respond proactively. Create this experience vividly in you mind, picturing yourself responding in a proactive manner. 
  3. Select a problem from work or personal life that is frustrating to you. Determine whether it's direct, indirect, or no control problem. Identify the first step you can take in your Circle of Influence to solve it and then take that step.
  4. Try the 30-day test of proactivity. Be aware of the change in your Circle of Influence.
HABIT 2: BEGIN WITH THE END IN MIND

The following exercise will help define what you find truly valuable in your life.

Imagine yourself at a funeral, the whole procession. What would you want your loved ones (family and friends) and coworkers to say about you during your eulogy?


Those will be your values and what you consider important.


When I tried that exercise, I wanted people to say some positive things that I'm not. One is "she's someone who honors commitments" but I tend to cancel social engagements.


Therefore, through this funeral exercise, I know I need to work on only making promises that I can truly keep and really following through, as one of my core principles.


The other interesting thing is that nowhere in the eulogy did I want someone to say that "she valued her freedom" because that sounds "bad". However, when I really looked deep into myself, choosing only three things I value most, they are: 

  1. Freedom
  2. Love
  3. Growth
The last two showed up in the eulogy, but my most valued, Freedom, did not. Even so, I find that I can't be authentic if I don't have freedom.

Therefore, do the eulogy, which is crucial, but in a separate list, find three things that make you happy.

A lot of us, in the happiness list, would put down being wealthy. As studies show, materialism doesn't lead to happiness, so being wealthy isn't your value.

Instead, write down why you want to be wealthy. What comes up mostly is you want money so you can travel, eat amazing foods, go to concerts and experience other unique activities and events.

Therefore, I would say that you value rich experiences, and that could be something you can work toward. 

It's important to come up with your unique mission statement. It will change as you consider things more, as you get older, as you go through different milestones in life, and such. But at least you have a blue print as to what you're aiming for.

Do the funeral exercise - it can be rather eye-opening to see where your values really lie.

Next, with this "End in Mind", you want to focus on what you want to be (character), and to do (contributions and achievements), and put that in your life mission statement.

Since this funeral exercise is so open-ended, as well as mission statements being equally open-ended, and I struggle in pinning things down, the Franklin Covey mission statement builder was quite helpful. 

I would do the funeral exercise, and then the mission statement builder.

Once armed with this knowledge, you have your own blueprint as to how you want to live your life, not how others perceive you.

You want to make sure that you follow your vision and values, which is your Circle of Influence, and the more you work, the more your Circle of Influence expands. That's where you want to focus your attention on.

You want a Principled Center. By focusing our lives on correct principles, we create a solid foundation, that doesn't fluctuate based on people or things that constantly change, and are quite fickle. 

Alternative Centers
Covey next lists alternative centers that we tend to have, rather than a Principled Center. These are spouse, family, money, work, possession, pleasure, friend/enemy, church/institution and self-centeredness.

Let's take work-centeredness as an example of why not having a Principled Center is problematic. When you're work-centered, your personal worth is determined by your occupation. You're only comfortable when you're working. You make your decisions based on the needs and expectations of work. You tend to be limited by your work role. You see your work as your life. 

The other alternative centers are equally problematic. But having a principled center, you aren't being acted upon by other people or circumstances, rather you make your decision based on looking at the whole picture, factoring in work, family and other needs to come up with the best solution.

Covey gives a good example of an alternative center versus principled center approach. Your husband was looking forward to this concert for the past month or so. But at the night of the concert, your employer calls you to do some prep work for tomorrow's 9 AM meeting.

If you're spouse-centered, you go to the concert with your husband. Or you may feel you have to work instead, but very anxious about his response, justifying your decision and protecting yourself from his disappointment,

If you're money-centered, you'd call your husband to cancel the concert b/c this could lead to a potential raise. 

Covey goes down the other alternative-centered options which we won't outline here, but the principled-centered option makes the most sense.

A possible outcome using the principle-centered approach is to communicate to your husband and boss, whom you both have a strong connection. You genuinely want to prepare for this meeting because you value your boss's effectiveness and you want to contribute to the team (proactive) rather than staying at work to get the edge on someone else (reactive).

You want to go to the concert with your husband because you both were committed to this for the past month or so, and this is your husband's favorite band growing up. 

You chose what is ultimately most valuable to you in your mission statement, which happens to be your relationship with your husband, when you did your eulogy.

Therefore, you tell your boss that you'll come in early in the morning to prepare for the meeting because you care about the welfare of the team, and go to the concert with hubby.

Application suggestions:
  1. Record funeral impressions.
  2. Write down your roles.
  3. Begin work on your personal statement, this tool can help.
  4. Circle all the alternate centers that you tend to follow
  5. Start a collection of notes, quotes and ideas you may want to use as resource material for your mission statement
  6. Identify a project you'll face, and envision how to solve this using a principled center approach.
  7. Share the principles of Habit 2 to loved ones and/or work group, and suggest that together, being the process of a family and/or group mission statement.
HABIT 3: PUT FIRST THINGS FIRST
The answers to these questions will direct you during Habit 3.

Question 1: What one thing could you do (something you aren't doing now) that, if you did it regularly, would make a tremendous positive difference in your personal life?

Question 2: What one thing in your business or professional life would bring similar results?

For the first question, I came up with 3: going to bed and getting up at the same time, exercising, and eating more fruits and vegetables. For the second question, being more organized by using to-do lists.

Covey poses that Habit 3 is the practical fulfillment of Habits 1 and 2.

Habit 1 says, "You're in charge". It challenges you to realize, "that's an unhealthy program I've been given from my childhood, from my social mirror. I don't like that wrong script, I can change it".

Habit 2 shows us what's most important to us.

Habit 3 is the exercise that you do to become principle-centered, and how you carry out what's most important to you. Covey describes a time management matrix.


Quadrant 1 are important and urgent such as crises, pressing problems, deadlines.

Quadrant 2 is important but not urgent.

Quadrant 3 are non-important but urgent such as interruptions, some calls, some mail, some meetings.

Quadrant 4 are not important and not urgent such as trivia, time-wasters.

Write down all of your roles, such as personal, parent, spouse, employee and for each one, write down the essentials such for each of these roles - that will most likely be Quadrant 1, 2 and 3 concerns. Exercise would fall under your personal role, Quadrant 2.

If you, like most families, work multiple jobs, and you find that you don't have time to have dinner with your children (I would say this is a very basic Quadrant 2 issue), look again at your roles list. Delegate any Quadrant 3. 

If still pinched for time, look at your roles again, weeding out the unimportant positions. If you see one as being PTA member, then I'd quit, since your values are with your children (Habit 2).

If work is getting in the way, then cut unnecessary expenses to reduce work hours. I often see families struggling to make ends meet (leading to multiple jobs). Come to find out I see their children (as young as 5-years old) with the latest, largest iPhone ($1,500), when all they really need is clamshell for emergencies ($30). 

In other words, resist the urge to keep up with the Joneses. It's not worth working multiple jobs for all these unnecessary luxury items.

Here's an example that often comes up:

A mother brings in her daughter ("Jill") as she's severely depressed. Jill is concerned about her mother because she works too many hours, and her health is declining as a result. Further, they can't spend time together, which Jill says also makes her depressed. She spends her time alone in her room while her mother works. If that's not depressing, I don't know what is.

It was obvious that their relationship is their most-valued principle (Habit 2), so Quadrant II is working on their relationship.

When I asked the mother why she's working full-time and then Uber after work and on weekends, she reports that she has to pay bills (Quadrant 1 Urgent) and buy things for Jill to make her happy (allegedly Quadrant 2).

Jill then mentions that she doesn't even want these things, which include the mother paying for Jill and her friends to go out to eat, hair extensions, fancy manicures, smartphones, and so forth. We calculated that it comes to $1000/month. Uber = $8/hr, so that's 31.5 hours/week.

Since Jill convinced the mother that she'd rather spend the time with her, foregoing the luxuries, the mother agreed to quit Uber altogether and keep the full-time job. 

Jill went even further and agreed to do almost all the chores (Quadrant III), so that they both can spend even more time together, which is their Quadrant II, most important values.


I saw them 2 weeks later and Jill was beaming with joy - so not only did her depression go away completely, but she's very happy having all these special moments with her mother.

In other words, cut out the crap and focus on what's meaningful to you.

Click here for Part II - Public Victories.

The How of Happiness Review

Brainstorming With Transpose

Sometimes I get stuck and look for a way to think about a problem a different way. There are some problems that you can view in the form of a matrix/table. The structure looks like this:

A B C D E
1 A1 B1 C1 D1 E1
2 A2 B2 C2 D2 E2
3 A3 B3 C3 D3 E3
4 A4 B4 C4 D4 E4
5 A5 B5 C5 D5 E5

There are rows and columns, and I'm trying to work on the cells. Let's try an example from a simple game:

Attack Defend Special
Fighter sword armor slam
Mage fireball reflect freeze
Thief dagger dodge disarm

The rows are the character classes: Fighter, Mage, Thief.

The columns are the types of actions: Attack, Defend, Special.

The matrix contains all the code to handle each of these types of actions for each of the types of characters.

What does the code look like? The usual thing to do is to organize this into three modules:

  1. Fighter will contain code to handle sword attacks, damage reduction from armor, and slam special attacks.
  2. Mage will contain code to handle fireballs, damage reflect, and freeze special attacks.
  3. Thief will contain code to handle dagger attacks, damage avoidance from dodge, and disarm special attacks.

Sometimes it's useful to transpose the matrix. I can organize along the other axis:

Fighter Mage Thief
Attack sword fireball dagger
Defend armor reflect dodge
Special slam freeze disarm
  1. Attack will contain code to handle sword attacks, fireball attacks, and dagger attacks.
  2. Defend will contain code to handle damage reduction, damage reflect, and damage avoidance.
  3. Special will contain code to handle slam, freeze, and disarm.

I was taught that the one style is "good" and the other style is "bad". But it's not obvious why this should be so. The reason is that there is an assumption that we will often add more character classes (nouns) but rarely add more types of actions (verbs). That way I can add more code with a new module, without touching all the existing ones. It may or may not be true for this game. By looking at the transpose, it makes me aware of the assumption, and I can question it. I'll then think about what kind of flexibility I want, then decide on the code structure.

Let's consider another example.

In programming language implementations, there are different types of nodes corresponding to the primitives: constants, operators, loops, branches, functions, types, etc. I need to generate code for each of these.

Generate Code
Constant
Operator
Loop
Branch
Function
Type

Great! I can have one class for each type of node, and they can all derive from a superclass Node. But this is based on the assumption that I will often add more rows and rarely add more columns. What happens in an optimizing compiler? We add more optimization passes. Each one is another column.

Generate Code Data flow Constant folding Loop fusion
Constant
Operator
Loop
Branch
Function
Type

If I want to add a new optimization pass, I would need to add a new method to each class, and all the code for an optimization pass is spread out all over the place. This is the situation I was trying to avoid! So some systems will add another layer on top of this. Using "visitors" I can keep all the loop fusion code in one module instead of splitting it up among lots of files.

If I look at the transpose of the matrix, it reveals another approach:

Constant Operator Loop Branch Function Type
Generate code
Data flow
Constant folding
SSA
Loop fusion

Now instead of classes with methods, I can use tagged unions with pattern matching (not all languages support this). This keeps all the code for each optimization pass together without requiring the indirection of visitors.

It's often useful to look a a problem in terms of a matrix. Applied to the object-oriented structure that everyone thinks about, it might lead me to use something different, such as an entity-component-systems, relational databases, or reactive programming.

It's not just for code. Here's an example of applying the idea to products. Let's suppose there are people with various interests:

Nick Feng Sayid Alice
cars X X
politics X X
math X X
travel X X

If I were designing a social web site, I might let people follow other people. Nick might follow Alice because they're both interested in cars and Feng because they're both interested in travel. But Nick would also get Alice's math posts and Feng's politics posts. If I consider the transpose of this matrix, I might let people follow topics. Nick might join a cars group and also a travel group. Facebook and Reddit started around the same time, but they're transposes of each other. Facebook lets you follow people; Reddit lets you follow topics.

When I get stuck, or when I'm wanting to consider alternatives, I look at the problem to see if there are multiple axes of organization. Sometimes approaching the problem from a different direction can yield a better approach.

[KKB]Retro Dining Room


Monday, March 23, 2020

The Last Sane Man In A World Gone Mad






The passing of The Daily Banter's Chez Pazienza is a great loss to journalism that few will ever know about. While The Banter, which he co-founded with Bob Cesca, is small potatoes compared to the Internet powerhouses of Buzzfeed, Salon, Vox, and The Huffington Post, he helped bring something to the online paper that is quickly become a dying practice: quality writing. In the obsessive desire for traffic and shares, otherwise reliable bastions of liberal thought have devolved into cheap listicles and sensationalist outrage blogging. It is a dumbing down of the Left comparable to what Rush Limbaugh and Sean Hannity did to the Right.

A lone auteur in a wilderness of mediocrity.

Chez was left-wing P.J. O'Rourke with a sharp scintilla of Hitch. He opposed nonsense and bullshit wherever he saw it, from the hourly insanity of President Trump, to the maddening political correctness on colleges, to the insipid humor of Jimmy Fallon, to the left-wing nihilists who refused to vote for Hillary, to the self-destructive madness of the Republican Party, and the inability of many liberals to be frank about critiquing Islam. I didn't always agree with Chez, nor did I always agree with Hitch, but what they held in common, for me, was their witty and no-holds-barred takes the latest news events. Their perspectives were always fresh, often sating my hunger for something savage, contrarian, and nuanced all in the same piece.

If there were an overriding theme to Chez's latest Banter writings, if one can be salvaged, it'd be that America is going further and further down the shithole of absurdity, with the only comforting reprieve being the ability to laugh in defiance like George C. Scott riding the nuclear bomb in the finale of Dr. Strangelove. Literary voices like Chez are a dying breed. Even The Washington Post and The New Republic are falling prey to the Buzzfeed effect. Gravitas on the guillotine.

In his death, however tragic, it can hoped that Chez'll receive the due recognition that he deserved in life. I could quote any number of passages from his long bibliography to give you an idea of what I'm taking about, but I think it most prescient, given the toddler-in-chief, that I quote from one of his more recent warnings about Trump, as he tried tirelessly to resist the normalization of this imbecile of a president in the media, a resistance that we need to continue,

"So the time for arguing amongst ourselves over petty outrages and miniscule transgressions is over. It has to be. We don't have the time for it anymore. Those closest to Trump's firing line within our diverse population will be counting on every single decent person in this country to take a stand for them and the only way we can do that is with a unified front and sheer numbers. Our voices have to be loud. Our anger has to be righteous and it needs to be seen and heard in everything from our politics and those who speak for us politically, to our music, to our art, to even, ironically, our comedy. We're already seeing our artists, creators, and thought leaders giving us a hint of what might be to come. And come it must. That's the voice of the resistance."



Further Reading

Chez Pazienza's Articles For The Daily Banter.
http://thedailybanter.com/author/chez-pazienza/

"In Memory Of Chez Pazienza, The Writer I Always Wished I Could Be."
 http://thedailybanter.com/2017/02/in-memory-of-chez-pazienza/


Bibliography

Pazienza, Chez. "Make America Rage Again." The Daily Banter, November 10, 2016. Web. http://thedailybanter.com/2016/11/make-america-rage-again/





Friday, March 20, 2020

Tech Book Face Off: Seven Concurrency Models In Seven Weeks Vs. CUDA By Example

Concurrency and parallelism are becoming more important by the day, as processor cores are becoming more numerous per CPU and more widespread in every type of computing device, while single core performance is stagnating. Something that used to be barely accessible to the average programmer is now becoming ubiquitous, which makes it even more pertinent to learn how to utilize all of these supercomputers effectively. Besides, parallel processing is a fascinating topic, and I think it's great that it is now so easy to experiment at home with things that used to be reserved for huge companies and university research departments. In order to become more proficient at programming in this way, I started with the book Seven Concurrency Models in Seven Weeks: When Threads Unravel by Paul Butcher for an overview of the current state of affairs in concurrent and parallel programming. Then I went for an introduction to CUDA programming for GPUs with CUDA by Example by Jason Sanders and Edward Kandrot. I've been looking forward to digging into these fascinating books for a while now, so let's see how they stack up.

Seven Concurrency Models in Seven Weeks front coverVS.CUDA By Example front cover

Seven Concurrency Models in Seven Weeks

I had previously enjoyed reading three other Seven in Seven Weeks books so I figured this one was an obvious choice for a solid book on concurrency, and that hunch held true. Butcher gives an excellent tour of the current state of concurrency and parallelism in the software development world, and he does it with a compelling story that builds up from the foundations of concurrency to the modern state-of-the-art services available for Big Data processing, at least circa 2014.

The main rationale for paying more attention to concurrency and parallelism is that that is where the hardware is taking us. As Butcher argues in the introduction:
The primary driver behind this resurgence of interest is what's become known as the "multicore crisis." Moore's law continues to deliver more transistors per chip, but instead of those transistors being used to make a single CPU faster, we're seeing computers with more and more cores.
As Herb Sutter said, "The free lunch is over." You can no longer make your code run faster by simply waiting for faster hardware. These days if you need more performance, you need to exploit multiple cores, and that means exploiting parallelism.
So if we're going to take advantage of all of these multiplying cores, we'd better figure out how to handle doing multiple things at once in our programs.

Our concurrency story begins with the little things. The first week focuses on the fundamentals of concurrency: threads and locks. Each week is split into three days, each day building on the day before, with the intention of being able to learn and experiment with the chapter's contents over a weekend. This first week on threads and locks is not meant to show the reader how to do modern parallel programming with threads, but to give a foundation of understanding for the higher-level concepts that come later. Threads are notoriously difficult to use without corrupting program state and crashing programs, and locks are a necessary evil that can help solve those corruption problems but have problems of their own, like deadlocks and livelocks. These problems are especially insidious because they're most often invisible, as Butcher warns:
To my mind, what makes multithreaded programming difficult is not that writing it is hard, but that testing it is hard. It's not the pitfalls that you can fall into; it's the fact that you don't necessarily know whether you've fallen into one of them. 
The first concurrency model gives us a view into that abyss, but then pulls back and moves on to better alternatives right away. The first better model turns out to be an old programming paradigm that has recently become more and more popular: functional programming. One of the biggest problems with programming languages like C or Java is that they have mutable state. That means most of their data structures and variables can and do change by default. Functional languages, on the other hand, default to immutable data structures that don't have the same problems when sharing state across threads.

The next model goes into detail about how one functional language, Clojure, uses the basic advantages of immutable state by separating identity and state. The identity of a data structure is what that data structure is inherently, like a list of names. It doesn't change. The state, which specific names are in the list, can change over time, and a persistent data structure in Clojure will guarantee that if the state changes for one thread, it will not change for other threads unless that state is explicitly passed from one thread to another. This separation of identity and state is accomplished by atoms and agents, but we don't have time to get into the specifics here. It's in the book.

After Clojure, we move on to Elixir, another functional language that takes a different approach to parallelism. Instead of threads, Elixir has extremely lightweight processes that can be used to make highly reliable applications out of unreliable components. The perspective to take when programming in Elixir is to design the application so that individual processes are not critical and can fail. Then instead of trying to do thorough error checking, we can just let them crash and depend on the system to recover and restart them. This approach makes for incredibly reliable systems, and with Elixir running on the Erlang VM, it has a solid foundation for bulletproof systems.

With the next model, we come back to Clojure to explore communicating sequential processes (CSP). Instead of making the endpoints in a message the important thing, CSP concentrates on the communication channel between the endpoints. In Clojure this is implemented with Go Blocks, and it's an intriguing change to the normal way of thinking about message passing between threads or processes.

What are we at now, the sixth model? This model steps outside of the CPU and takes a look at the other supercomputer in your PC, the massively parallel GPU. This chapter was a little too short for the subject to get a great understanding of what was going on, but it does use OpenCL for some simple word-counting applications that run on the GPU. It was neat to see how it works, but it was a lot of boilerplate code that was pretty opaque to me. I'm hoping the other book in this face-off will shed much more light on how to do GPU programming.

The final model takes us into the stratosphere with serious Big Data processing using Hadoop and Storm, frameworks that enable massively parallel data processing on large compute clusters. It was surprising to see how little code was needed to get a program up and running on such an industrial strength framework. Granted, the program was a simple one, but thinking about what the framework accomplishes is pretty intense.

That brings us to the end of the tour of concurrency models. The breadth of topics covered was exceptional, and the book flowed quite nicely. Butcher's explanations were clear, and he did an excellent job covering a wide-ranging, complex topic in a concise 300 pages. If you're looking for an overview of what's out there today in the way of concurrent and parallel programming, this is definitely the book to start you on that journey.

CUDA by Example

CUDA used to be an acronym that stood for Compute Unified Device Architecture, but Nvidia, it's creator, rightly decided that such a definition was silly and stopped using it. Now CUDA is just CUDA, and it refers to a programming platform used to turn your Nvidia graphics card into a massively parallel supercomputer. This book takes the reader through how to write this code using the CUDA libraries for your very own graphics card. It does a fairly decent job at this task.

The first chapter starts out with a bit of history on the graphics processing unit (GPU) and why we would need a general-purpose platform such as CUDA for doing computations on it. The short answer is that the prior situation was dire. The longer answer is as follows:
The general approach in the early days of GPU computing was extraordinarily convoluted. Because standard graphics APIs such as OpenGL and DirectX were still the only way to interact with a GPU, any attempt to perform arbitrary computations on a GPU would still be subject to the constraints of programming within a graphics API. Because of this, researchers explored general-purpose computation through graphics APIs by trying to make their problems appear to the GPU to be traditional rendering.
Suffice it to say, people were not particularly satisfied shoehorning  their algorithms into the GPU through graphics programming, so CUDA and OpenCL were a welcome development.

The next chapter goes through how to get everything ready on your computer in order to start writing and running CUDA code, and the chapter after that finally unveils the first program to run on the GPU. It's not exciting, just the standard "Hello, World!" program, but this example does introduce some of the special syntax and keywords that are used in CUDA programming.

Chapter 4 is where the real fun begins. We get to run an honest-to-goodness parallel program on the GPU. It's still simple in that it's only summing two vectors together element by element, but it's doing the calculation with each pair of elements in its own thread. Each thread gets assigned to its own resource on the GPU, so theoretically, if the GPU had at least as many compute resources as there are pairs of elements, all of the additions would happen simultaneously. It may not seem quite right to use compute resources in this way since we're so used to programming on much more serial CPUs, but the GPU hardware is designed specifically to do thousands of small calculations in parallel in a highly efficient manner. It's definitely a programming paradigm shift.

After another more interesting example of calculating and displaying the Julia Set, a kind of fractal set of numbers, the next chapter follows up with how to synchronize these thousands of threads in calculations that aren't completely parallel. The example here is the dot product calculation, and this example ends up getting used multiple times throughout the rest of the book. So far the examples have been unique, but they'll start to get reused from here on, partly in order to not need to keep introducing more new algorithms for each example.

The next couple chapters discuss the different types of memory available in a GPU. A small amount of constant memory is there to hold values that are, well, constant, for fast access instead of needing to keep fetching those unchanging values from main memory or having them fill up the cache unnecessarily. Then there's texture memory available for optimized 2-D memory accesses, which are common in certain algorithms that operate on neighboring memory locations in two dimensions instead of the normal one dimension of vector calculations.

Chapter 8 discusses how to combine the use of the GPU as both a CUDA processor and a graphics processor without needing to copy buffers back and forth to the host memory. Actually, a lot of CUDA programming is optimized by thinking about how best to use the memory resources available. There are now at least three more memories to consider: the GPU main memory, constant memory, and texture memory, in addition to the normal system memory attached to the CPU we're used to thinking about. The options have multiplied, and it's important to use both the CPU and GPU efficiently to get the best performance.

We're nearing the end now, with chapters on using atomics to maintain memory consistency when multiple threads are accessing the same locations, using streams to more fully utilize a GPU's resources, and using multiple GPUs to their full potential, if your system is blessed with more than one GPU. By this point much of the content is starting to feel redundant, with incremental features being added to the mix and most of the examples and explanations of the code being copies of previous examples with minor tweaks for the new features.

The last chapter is a review of what was covered in the book, some recommendations of more resources to learn from, and a quick tour of the debugging tools available for CUDA. While overall this book was fairly good for learning how to do massively parallel programming with CUDA, and I certainly enjoyed coming up to speed with this exciting and powerful technology, the second half of the book especially felt drawn out and repetitive. The explanations got to be too verbose, and frankly, the cringe-worthy sense of humor couldn't carry the redundancy through. The book could have easily been half as long without losing much, although the pace was certainly easy to keep up with. I never struggled to understand anything, and that's always a plus. I've got a couple other CUDA books that may be better, but CUDA by Example is sufficient to learn the ropes in a pinch.


Of these two books, Seven Concurrency Models in Seven Weeks was the more wide-ranging and enlightening book. It gave a wonderful overview of the landscape for concurrent and parallel programming, even though it couldn't go into enough depth on any one topic to do it justice or allow the reader to competently start working in that area. Like all of the Seven in Seven books, its purpose is not to make the reader an expert, but to provide enough information to give the reader a fighting chance at making their own decision on a path. Then, the reader can follow that path further with a more specialized book. CUDA by Example is one such specialized book, although it was somewhat light on the real details of GPU programming. As an introductory book, it was adequate, but I'm hoping the next couple of books I read on GPU programming will have more substance. In any case parallel programming is growing in importance, and it's exciting to be able to play around with it on consumer-grade hardware today.

Thursday, March 19, 2020

Character Developments

When you say it out loud, a whole board game about creating a D&D style fantasy character sounds silly. But how different is it from games where you're trying to build a western town, an expedition journal, or a space empire? And besides, there are many that would argue that building and developing your character is the most compelling part of playing Dungeons & Dragons, or indeed almost any role playing game.

Roll Player had intrigued me for some time, but it's done by a small publisher who primarily uses Kickstarter so availability has been spotty since it came out in 2016. I finally got a chance to play it at a convention earlier this year, and was instantly hooked, so much so that I bought a copy right then and there.

The game features a game board for each player denoting one of the standard fantasy races such as elf, dwarf, or halfling, plus a few more esoteric choices like minotaur or cat person. From there players are dealt a random set of character class cards from which they choose their profession, a backstory, and an alignment.

Game play revolves around randomly choosing 6-sided dice from a bag, rolling them, and then taking turns choosing which ones to add to the different statistics on your character sheet. The number rolled on the dice is important, but so is the color -- your profession tells you what range of numbers you want, and your back story (as well as other factors) tell you what color and where on the sheet you want to place them.

After dice are chosen, players choose from a row of equipment cards which further enhance their characters, with specific equipment and skills being more or less suited to specific types of characters. Among the choices are skill cards that adjust your character's alignment (their moral compass) when used, as well as trait cards that give a point bonus at the end of the game.

These two phases are repeated 12 times, at which time all the players will have a full player board. Points are awarded based on how well optimized the character is, with bonus points for placing the the right colors of dice in the right places on your sheet, acquiring equipment and traits best suited to your character, and getting your alignment marker placed in a way that suits your alignment card.

It's a well-designed engine-building game, and I find it a bit more compelling than empire-building games like Race for the Galaxy because I'm building and individual character and equipping him (or her) for adventure, rather than a more abstract empire of planets and starships. An expansion adds the ability to fight minor monsters, building up experience in order to face off against a big bad at the end of the game, but honestly I find that addition a little distracting; I would rather just spend time building my character.

Rating: 5 (out of 5) a terrific game that's compelling but reasonably simple to play and not overly competitive, making it a great choice for a casual game night.

Re-Home, Short Film, Review And Interview


Our current reality being pushed just a little further is what makes this a great little horror film. What would you be willing to do to survive when you are on the edge?

I saw Re-Home at the 2019 FilmQuest film festival (website). It was nominated for Best Horror Short and Best Actress (Gigi Saul Guerrero). Izzy Lee was also nominated for the Minerva Award.

I recommend Re-Home to those who like dystopian future stories and the struggles of the everyday people to make it in such times.

Synopsis: In the near future, the U.S.-Mexico border wall has been completed and the high cost of living has skyrocketed. As a result, loved ones are re-homed like pets.

Izzy Lee was willing to answer a few questions to give her inspiration for her film, what she has coming up, and some personal points of inspiration and relaxation.

What was the inspiration for Re-Home?

The whole mess with immigration, ICE, and the US/Mexico border wall is extremely upsetting. We need empathy in times like this, which is why I needed to create Re-Home. We're traumatizing a generation of children and it's not okay.

What project(s) do you have coming up you're excited about?

I write short fiction and you can find my work in horror anthologies like Tales From the Crust(pizza horror) and Lost Films (about the perils of filmmaking). I also have a really weird short film called The Obliteration of the Chickenson the circuit right now, which played The Overlook and FrightFest film festivals, among others. I've got a few features I'm writing, and I'm now the VP of Programming & Outreach for a forthcoming mobile app called Ficto, which will launch in November. I'm looking for great horror and true crime series and possibly long shorts we can segment into series. You can find out more about me at www.nihilnoctem.com.


What was your early inspiration for pursuing a career in film?

I always loved the Hammer horror films, the Edgar Allan Poe/Roger Corman-Vincent Price-AIP films, and I loved acting and writing. Not long out of college, I became a programmer and film journalist. From there, I decided to try my hand making shorts, and got addicted.

What would be your dream project?

Working with any of the following in any capacity: Guillermo del Toro, David Lynch, Tom Atkins, John Carpenter. I'd also love to be able to help make other films for other filmmakers (development/producing) if I had the money.

What are some of your favorite pastimes when not working on a movie?

Writing fiction, hiking, sleeping, and hanging out with fellow filmmakers at film festivals.

What is one of your favorite movies and why?

That's a hard question, but I'll go with John Carpenter's The Thing, which I consider to be a near-perfect film. The terror, dread, isolation, and nihilism are all on-point, as are the acting and special effects. It's a joy to watch; I find it mesmerizing and put it on at least once a year.
You can watch a trailer of Re-Home on Vimeo (link).

You can find out more about the film on IMDb (link).

I'm working at keeping my material free of subscription charges by supplementing costs by being an Amazon Associate and having advertising appear. I earn a fee when people make purchases of qualified products from Amazon when they enter the site from a link on Guild Master Gaming and when people click on an ad. If you do either, thank you.

If you have a comment, suggestion, or critique please leave a comment here or send an email to guildmastergaming@gmail.com.

I have articles being published by others and you can find most of them on Guild Master Gaming on Facebookand Twitter(@GuildMstrGmng).