Subscribe for updates

Thursday, March 23, 2023

Software Design – history and principles – how to fix our software nightmare

 Software Design – history and principles – how to fix our software nightmare.

I first wrote this in 2018 - and just discovered it. I was writing a bit to one of my grandson’s about his career in architecture, and wanted to give him an example of “patterns.” I know it does not fit with most of the stuff here - but I thought it was worth the time when I wrote it. Worst case - just skip this one. I will not be offended. Thanks.

We have had some software design debacles of late. The Affordable Care Act website craziness, and the MN vehicle registration system are two examples. I worked in software for 30 years, I taught software design and architecture, and was a practitioner. I actually stumbled on the right way to do this stuff, and always assumed that everyone else would eventually get the message. I did not create the solution – a bunch of other people created it – but it amazes me how poorly understood the problem is at this late date.

As is my wont in these pieces, I will explain the problem and the solution as succinctly and briefly as possible. Then I will expand on each point with a few examples and stories, to drive it home.

Brief Outline Summary

“Structured Design” is the key. The alternative is spaghetti design, amorphous design, uncontrolled design – whatever else you want to name it. Structured Design has a very simple set of principles:

  1. Single Entry – Single Exit.
    Every component in a software system must have these attributes. You invoke it by a “Perform” or a BAL – but never by a GOTO or a branch. The software component starts up – does its thing – and then does a RETURN or goes back to where it was invoked. It CANNOT go anywhere else. This seems relatively simple, but it is rarely accomplished in practice. I have stories! In structured software methodologies, these components might be called “methods”, or “subroutines”.  This is the MOST important principle, and would, all by itself, solve 90% of the software quality problems. Sometimes you will see this referred to as “object oriented” design, and implemented via languages like Smalltalk, C+, etc., but it can be done in any language, any technical infrastructure.

  2. Reusable Components.
    Every component is designed to be reused. This is also a brilliantly simple principle, but rarely if ever used. Trust me on this. To enable reuse, each component is published to the larger community, and given a descriptive name, so that people can find it when they need it. This also requires that the interface be as flexible and simple as possible, for which see the next principle. This is more focused on productivity, but it also enhances quality. If we figured out how to do something once without errors, why do it again?

  3. Standard Descriptive Interfaces.
    Every invocation of a component follows standard rules for flexible interfaces. By “standard” I mean STANDARD. This means people from an industry or domain have met, discussed and agreed upon what things are named, and how they are described. If it isn’t a standard, you have to make it one before you can use it. The best example of this today is XML. When you invoke a process, the interface requires that you describe the components you are passing, and the components you are expecting, according to a standard protocol, which requires that you use the descriptive terms as part of the interface. If you know html or xml, this will seem obvious, but others might need an example.
    I invoke a routine to calculate premium. I pass it two fields in this way: <Type of risk>Auto</Type of risk>  <Value of risk>1000</Value of risk>. The values are surrounded by the descriptor – and it indicates when it starts, and when it ends. The subroutine likely would return a single field: <Premium>50</Premium>. You get it? Simple, eh? No length variable, no figuring out a location in a string – THIS FIELD RIGHT HERE is the one. It starts here, and ends there.
    The way things used to be done, and the way idiots continue to do it, is to pass to the subroutine a single address pointing at the location of the beginning of the data, or to actually send the data in a bit stream, consisting purely of the data – nothing else. That seems effective and efficient, but totally dangerous. See below for a fuller understanding of how this works.

  4. Use a Common Message Queue.
    This is not an absolute requirement, but a really useful one. To maintain logical isolation, all subroutine invocation is done through a common message queue. This means that the subroutines must have names and published, standardized interfaces – see above. To invoke a subroutine, you name it, and provide the standard descriptive data it needs. The subroutine processes the data, and then RETURNS the result in the same way. This also implies that a QUEUE can only hand the message to one subroutine, and then MUST return the results to the invoker – no one else – see principle 1 above. This might be called a “Message Broker” if you are looking stuff up here.

  5. Use Software Design Patterns.
    An architect by the name of Christopher Alexander first came up with the idea that physical architecture could be reduced to repeatable “patterns” that worked well. A few pioneers in software picked this up and expanded it into software patterns. This is more focused on productivity than quality, but it helps both. If someone has a genius solution to a difficult problem, and they publish it, then everyone else faced with that problem does not need to reinvent the wheel. This is called a software design pattern. The pattern description should appear in a standard journal or thesaurus, which might be collected into reference works, education classes, etc. Just for a simple example, if I described a design pattern as “publish and subscribe”, what does that mean? One use would be where you have a variable or a data item which changes every January 1. You want everyone that uses that variable to get the change as soon as it appears. How to do that? You should keep a catalog of every piece of software that uses it, and then go change them all at about the same time and hope for the best. You could broadcast it to the whole world using the queue above. Hit and miss. Instead, you establish a publish / subscribe relationship. The owner of the data builds a subscription list – anyone that sends that owner a “subscribe” message is put on the list. If they are no longer interested, they send an “unsubscribe” message. When the data changes, the change is sent to all subscribers via a queued message, instantly. Problem solved. 

  6. Use a Framework.
    This is a little more advanced, and it is not as fundamental a requirement, but the benefits are similarly advanced. A “framework” is a collection of sub-routines or methods, constructed around a common problem, or a common industry. Think about it. How much of your HR system is unique to your company? How much is common to a whole raft of companies? Make the common stuff into a standard framework. Publish it, or sell it, and everyone benefits. If you use the design principles above, you can even upgrade it and change it, pretty much on the fly. If you add new functionality, you can drop the new framework right in, and NONE of the new functions will be invoked, because none of the higher routines even know about them. But they can be used immediately – as soon you make the needed changes. Using a standard descriptive data interface and a message queue delivers that capability.

Why Would Anyone Do This?

Back when I was gainfully employed, I was researching this stuff, and found a noted expert who had published several studies on the topics. I asked him to come and visit with the senior staff of our IT division, and we could change the world. I contacted him, we negotiated a fee, and he agreed to come and talk to the senior management. He had one proviso – he had to meet with the division head, the VP, before he would address the group. Fine by me. We set up the appointment, and I accompanied him to the meeting. After introductions and some general discussion about the field and what he was about, he asked the boss, “What do you think the potential is in your staff to improve the productivity and quality of their software development?” The boss said – 10 to 15%. The discussion continued politely for a bit, and then we made our exit. As we walked out, he said – it’s not worth the time and effort. If the boss’s vision is that narrow, you are not going to get anywhere. He and I both knew that the potential for using the above techniques is not a percentage – but a multiple – 2 to 3 times as productive. You don’t need to believe me – look it up.

Why Isn’t Everyone Doing This?

I think it is like a religion. You can explain things to people until you turn blue. If it is contrary to what they believe, it goes nowhere. The field of economics is exactly like this, and politics is as well. The other side of that, once you do see this, you cannot let it go. It is so obvious, you cannot just forget it. But tread carefully and watch your step. If you try to foment a revolution in one big step, the powers that be will class you as a radical and you will be terminated, removed, etc. I know this from experience. If you aren’t THE boss, go with the flow, move it gently, bide your time.

More Details

In this section, we will expand on the above principles, to explain why they work and what they can do. I have seen enough examples of the wrong way to do things that my experience might persuade you whereas the dry explanation of the right way might not. We shall see.

Single Entry Single Exit

You will see this described in more complex fashion in the literature, but let me give you the way I learned it. I took a software design class in 1970 which really brought it home to me. At the time, I was writing a piece of software which would be used as a utility to make global changes to some software instructions called JCL stored in a procedure library. The boss wanted all of the JCL procedures standardized and simplified, and suggested that I write some software to do it rather than trying to code all of the things by hand. It seemed easy enough, but it was a nightmare. The logic was very complex. So, I took a class in “structured design”.

The instructor started with this example, which I used in every class I ever taught on this topic. In this example you have a file with 50 variables or fields. To simplify things a bit, every field can have only 2 states – they are binary – either one or the other value. If you were to build software the standard way, design around functions and inputs and outputs, in order to completely test this software, you would need to test every possible combination of the 50 fields that might appear in the input file. There is a formula for that: 2 to the 50th power minus 1. It means, there are 2 possible states, and those states must be squared for every possible combination – so 50 times, more or less. I actually calculated that number and proceeded to write it out on the black or white board for all of the class to see. Written in scientific notation: 1.1259E+15. OR: 1,125,899,906,842,620. That is 1 quadrillion – the number above trillion. You get that – it’s a LOT of test cases. Guess what – NO ONE is ever going to run all combinations to test that program. In my prior life, there were many examples of software design that had even more complex situations, and software is daily becoming ever more complex. 

Now how can you design software to handle these 50 fields and be able to thoroughly test it? What is principle number 1? One entry, one exit. You design a separate routine to process each field, or each combination of fields in a hierarchical fashion. In Cobol you do a Perform for any routine you need – a perform goes to the routine, and then returns to the caller. ALL subroutines can only process, invoke another subroutine with a perform, and then end or return. NO OTHER branching is allowed. If you structure it as a hierarchy, at the top level, you say, perform premium payment, perform coverage change, perform whatever. You are not going to have 50 routines for 50 fields at that level, but even if you do – that is only 50. At the lowest level, you could have 50 tests times 2 – one for each field and each of the two variables. Then you have a test for each routine that processes any combination of fields – say we have another 50 or 100. Then another test for every routine that invokes any combination of those, etc.  The result might be several hundred test cases, or even a thousand if the thing is really complex. But if you are certain that all routines stay in the confines of their data and code – the problem is greatly simplified. You can test it completely with a modest number of carefully designed test cases. And if a test fails, you know exactly where it happened.

Trust me on this – very few people in the published literature on programming design really understand this and the power it has. Isolating each logical component and structuring them in a hierarchy gives enormous gains in simplicity.

An Example:
I remember one program in particular called “Main Run.” It was a collection of COBOL programs that processed the Personal Lines insurance for a large insurance company. It ran every night, so it could process the payments received, and keep track of the changes to every policy. It was classic spaghetti code. It would run for hours – and it NEVER ran without encountering a problem. The programming staff were on call every single night to try to fix the thing and get it running again. When I heard about this, I came up with a “genius” solution. IBM had a feature on their 360 generation computers called “checkpoint / restart”. Every so many records or minutes, the system would stop the program, and take a complete dump or checkpoint of the state of the program and store it on disk. Then it would start things up again at that point. That way, in case something died in the system, or the power went out, they could restart the program from one of those checkpoints. To take advantage of this feature, I wrote a little software routine which used the STAE routine to catch the program abend in flight. When this routine got control from the OS, it would take a copy of the data in the buffers – which record was being processed – and write that to a disk file, and then let the abend proceed so there was a dump of the problem. Every time the software started a new record, it passed the data to this subroutine and asked – “Have we been here before?” The routine would hold that data and then write it to disk if it caught an abend. And it would read the records on the disk and compare them. If this one caused an abend the first time, the program was instructed to write out a log record and just skip it this time – thank you very much. You could set how many abends you wanted to process – 10 would usually get them through the night. So, instead of testing the thing to death, you just catch the failures and then avoid them. Worked slick. I know for a fact that people used that routine for over 20 years, because I would get questions about it all the time.

In a perverse approach to this same problem from the other angle, the original space shuttle software development team set a “zero defect” goal with their software. After all, any problem there would endanger the lives of the astronauts. Their approach was literally, to run every single possible test against the software. That works, but it is pricey! 

Just so you know, in the original descent to the moon, astronaut Buzz Aldrin had to deal with five alarms from the lunar module computer that it was its memory was full. He had to restart it three times. Imagine the excitement around that. The “memory full” was a known bug! 

As I noted above, be very careful using the term “zero defect”, lest you be labeled a crazy, irrational idealistic nut, and be shown the door. Rather, talk about defect reduction, etc. Slow but easy, we can get there.

Reusable Components

This makes perfect sense, but almost no one is doing this. Instead of looking around for well designed software that can do some parts of what we want to do, virtually every system design starts from scratch. Let’s say you want a really fancy bathroom. You hire a first class architect – he does a wonderful, unique design, just for you. Now you get a contractor to build it. Let me ask you, does the contractor go fell trees, to cut them into 2 x 4s? Does he dig in the dirt and get clay and build a kiln to make the tiles you need for the wall and the floor? Does he refine copper to make the wire, make steel to create the faucets, build a plastic factory for the tub and shower curtain? Of course not – he finds things off the shelf that will do the job. And, amazingly, these things will all work together, because, even more amazingly, they all share STANDARD DESIGN INTERFACES. You can almost buy any sink or tub, and almost any faucet will fit on it. You can get any light fixture, and it will connect to the standard power line. Talk about standardized design. If you want to get real creative, you can design your own sink, but you better have a standard set of holes for the faucet, or you are not going to make it work. Reusable components go hand in hand with the standard design interfaces. Which is our next topic. 

The other side of this problem is that even if people are building reusable components, they are not publishing them for others. At a minimum, within one software operation, you should be able to document and publish “utility software” – standard, reusable components. Not everyone needs to store and update name and address on every person that is connected to your company. Put them all in one system, give it a clear interface with standard data and your problem is solved. If a customer has more than one policy, or is also an agent or a supplier – they still have one address, one bank, etc.

Standard Descriptive Interfaces

This is another key component of this approach, since it reduces enormously the problem of passing data back and forth between systems. It used to be, if you wanted to send information to a government entity, and then get results back, you had to conform to the standard bit oriented data structure published by that agency. And it might be very different from state to state, agency to agency. But, in this modern era, you can define standard terms for every possible data entity. The problems with bits is that they can change, and you can drop one or two, which totally messes up everything. When we were shuttling data back and forth with agents, every time we added a new system, we had to redo the whole business, because no one actually implemented the standards the way they were designed.

Now, with XML and its derivatives, the entire insurance industry has designed a standard set of terms for all of the data elements that exist in this business domain. And, there are tools which can transform data elements from one domain into another, like from building maintenance to insurance. It’s called XSLT – check it out.

For an example, let’s say that 3M wants to shop ALL of its risks for a new insurance bid. Guess how many data elements 3M would have to provide to the underwriters to give them a reasonable guess on the cost. How many? Remember, they are worldwide, and they have numerous plants and facilities, and numerous different businesses. I think it is safe to say that no one is going to do the bid based on all of that data. But, what if building and infrastructure maintenance had an XML standard for every location, every building, every component that they maintain. What if the insurance industry had a standard for every insurable risk and option – that standard actually exists – I helped create the first version. Now, with a handy little conversion tool – I also helped design one of them – you can define an XSLT transform which would accept all of the 3M data and spit out the insurance data. It is the same data – you are just changing the descriptors required by the different industry. Would that we could adopt universal descriptors for common things, like, say name and address and telephone – maybe someday. Until then, you can actually transform from one standard to another.

Having set up your transform utility, you company is now in the position to be able to quote virtually any business they would like, with almost NO EFFORT. I am on the board of a townhome association. We have 111 homes – they are of 8 different architecture styles. We have a heck of a time getting an insurance agent to bid on them – it is just too much work. I know the insurance standard exists – I would be pleased to hand code the 8 different models and identify them in the 111 risks, if I could find any carrier sophisticated enough to pull this off. When will the future arrive? 

Common Message Queue

This seems pretty simple. You set up, or better, buy, a message queuing facility. Every piece of software in your enterprise is connected to this. Every software routine only gets its input from a message that is delivered via this common queue, and it only puts its results back into that queue. You define the standard transactions and standard descriptive data – and you are done. For example, let’s say you are very forward thinking and have designed a common name and address database, so that all of your systems only have to look in one place to locate the contact information for any entity, any risk, any person that you deal with. If you define the interface correctly, all requests for that data, and all changes to it are conducted via a message with a variable amount of data that has standard descriptors attached. Problem resolved. 

In an actual example, a long time ago, my employer had built just such a common database. They had, however, neglected some of the necessary design features. The database was a single entity, but the support staff decided, probably under some pressure from the other programmers, to adapt their interface to almost every requestor. They published 60 interfaces. I had the staff in a design review session, and we asked them how they could support 60 interfaces. They told us that there were 250 interfaces – they only published 50 of them. Mamma mia! What a nightmare. Some of these were passed via sequential files, so nothing could be done in real time. 

Software Design Patterns

Let’s say you are a mechanical engineer. You want to design a throttle regulator. The problem is that the throttle is an in and out gadget – it increases fuel by pushing down, decreases by pulling up. The engine you want to throttle is a rotating gadget – it spins a flywheel or axel, or something that rotates. How do you translate the rotating speed of one gadget into an in and out or up and down motion in another gadget? You need a bit of genius thinking. That, or go to any standard engineering workbook or catalogue and look it up. It has been done – it is as simple as pie. You have the rotating component spin a control with a weighted pair of arms. The faster it spins, the further out the arms go, which pulls up a slide on the center of the rotating gadget, which is connected to your throttle. Image result for design throttle governor diagram


ALL kinds of engineering problems are designed and available just like that. New ones are created and added all the time. If you are a mechanical engineer or electrical engineer or a carpenter or a plumber, you do not design things from scratch – you go look and see what someone has already contributed to the field. There are literally catalogs of software design patterns. But precious few system software engineers even know they exist. People building a motor vehicle registration system should NOT be designing it from scratch – please!

For a simple example of how not to do this, I used to teach a COBOL programming class. And I was good at it. I would teach the students all of the commands, and give them exercises so that they could use them. Then I would throw a final exam at them – here’s the transaction file, the master file, and what required reports. Figure it out and show me a successful test. The students would literally spend weeks trying to figure out how to apply transactions to a master file. I could have shown them that pattern in about 30 minutes, and we could have spent the rest of the time learning more and different design patterns. But that simple idea never occurred to me, and it does not occur to most system developers to this day. In my day, there were no design patterns – we were making the things up. Now there are hundreds if not thousands of them. Look around a bit.

Frameworks

This is getting out there a bit, but a framework is just collections of the above components that are tailored to an industry or a problem. No one designs a new automobile by figuring out how to caste steel and how to make plastic. That infrastructure already exists. You can specify what you want from the suppliers, and they will deliver it. 

Similarly, in the software world, find a framework that works for your problem, and tailor it. Most of the current literature treats a framework as a very generic set of infrastructure – similar to an operating system, or functions of a coding language. Those are very low level frameworks – just above the hardware level. The genius here is to build or find a framework designed for an industry or domain. This type of framework provides the basic functions needed for every part of that business domain, and allows the end user to combine them in creative ways to solve their unique problem. IBM constructed an insurance framework back in the 80s and 90s, and it is still being advertised. Look at the reference listed below to get a decent pitch on how this all works. IBM was the clear leader in this field way back when, and they seem to be marketing a wide variety of industry specific frameworks. 

Conclusion

Once you see this, you can’t forget it, right? Then why on earth are we still building nightmare software? We don’t design buildings or cars that way – why can’t we teach software design and engineering like we teach mechanical engineering? You can do it. I’m pulling for you!

For an OLD but GOOD set of software design principles, you could do worse than this set: https://sites.google.com/site/carlscheider/carls-papers/design-principles

Bibliography

Anonymous, this discussion reaches the conclusion that it is impossible to fully test a highly complex system. I would agree, if they are not using these basic design principles. See what you think.
https://softwareengineering.stackexchange.com/questions/195571/is-it-possible-to-reach-absolute-zero-bug-state-for-large-scale-software?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa 

Fishman, Charles, on Nasa’s zero defect attempt.
https://www.fastcompany.com/28121/they-write-right-stuff 

Gamma, Eric, et al: Design Patterns, 1995.
https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612/ref=sr_1_2?ie=UTF8&qid=1525208081&sr=8-2&keywords=software+patterns&dpID=51szD9HC9pL&preST=_SX218_BO1,204,203,200_QL40_&dpSrc=srch 

https://en.wikipedia.org/wiki/Software_design_pattern 

Rouse, Margaret – a definition of structured programming – or modular programming. Introduces the ideas “micro services”, “container technology”, “service oriented architecture”.
https://searchsoftwarequality.techtarget.com/definition/structured-programming-modular-programming 

Saltarello, Andrea and Dino Esposito: Design principles and patterns for “software engineering”. OK, but beware, this is from Microsoft, after all.
https://www.microsoftpressstore.com/articles/article.aspx?p=2233326 

https://www.codingame.com/playgrounds/503/design-patterns/origin-of-design-patterns
Nice explanation of Christopher Alexander’s 253 architecture patterns that worked, and how that led to software patterns. Gamma et al applied the idea to software with their book: Design Patterns: Elements of Reusable Object-Oriented Software

Insurance Software Framework:
ftp://public.dhe.ibm.com/software/industries/frameworks/insurance/2010_04_11_Insurance_Framework__Detailed-V4.pdf
http://www.fasttechnology.com/software/components/ 

Software Frameworks:
https://en.wikipedia.org/wiki/Software_framework
https://techterms.com/definition/framework
https://www.quora.com/What-is-a-framework-in-programming
https://www.infoworld.com/article/2902242/application-development/7-reasons-why-frameworks-are-the-new-programming-languages.html
https://www.ibm.com/us-en/marketplace/hospitality-framework 

Fayed, Mohammad E, and Johnson, Ralph E.: Domain Specific Application Frameworks Experience, 1999. https://www.amazon.com/Domain-Specific-Application-Frameworks-Experience-Industry/dp/0471332801 

Governor for a steam turbine
https://en.wikipedia.org/wiki/Steam_turbine_governing 


Monday, February 27, 2023

2018 08 08 An Interesting Week in My Life

I wrote this in 2018. Just found it. I still like it. Trust that it will speak to something in you as well. Stay Safe! Thanks. 

2018.08.08 Interesting Week

Well, it has been an interesting week. You might call it my End of Life Crisis or something - like the mid life crisis. A confluence of things just hit me to make me pause and reflect a bit. Not a bad thing to do - probably the best response I could come up with.


These are the events:

  • I took a stress test for my heart, and followed that up with a CAT Angiogram - who knew they could do these things? I am now scheduled for an angioplasty or stent or some such. End of life indeed.

  • I just finished reading The Unpersuadables: Adventures with the Enemies of Science by Will Storr. Very interesting but odd book about the problems of trying to persuade people about anything. He has some good insights though - one is that THIS IS NORMAL behavior for humans.

  • I also finished reading John Shelby Spong’s book, Unbelievable: Why Neither Ancient Creeds Nor the Reformation Can Produce a Living Faith Today - which I enjoyed thoroughly. And then Jude and I listened to a recording of his final lectures at Chautauqua - which were given to us by a good friend. His comments on his legacy led me to review mine - or lack thereof! The short version - he does not think he has made much of a dent in traditional Christianity, but hope remains.

  • Nicaragua has gone to blazes in a handbasket. All the work we have been helping with there for 30 years, and the non profit we started here to assist, are all up in the air, and potentially gone for good.


SO - a crisis of the limits. It all made me think, what good is all this stuff that I have been messing with for all these years. It is like it is all gone up in smoke. So, I had another chance to reflect - always a good thing - and I have recovered a bit of wisdom about life and love and such. See what you think. And if this makes you think, maybe, just maybe, there is some small hope!


Heart Problems

I now have a cardiologist! Marvelous! He is Dr. Dayuan Li - of Chinese extraction, with an MD from China and a PhD from the University of Sweden - and quite a remarkable individual. He taught me a little bit about Chinese customs with respect to education and just who pays for it - and a few things about my heart. I had been huffing and puffing up the hill at the lake - note - we own a lake place - how bad can this be? My son noticed my labored breathing, and said, “You should get a stress test.” Note, one of my sons is an MD - another positive thing. All of my kids are positive in my life - but at that moment having an MD right next to me was a pretty good thing. I have been laboring up that hill for a year or more. I thought it had to do with my cutting back my exercise routine because I fell off my bike - I FELL off my bike. Not a good thing, that.


My response, “What’s a stress test?” was met with a bit more information. I had my annual physical coming up, with another wonderful MD, with whom I have shared wisdom over the decades - and he scheduled one - “Just to be sure,” he said. The stress test is interesting. They get you all hooked up to a heart monitor, you walk uphill until your heart gets to the required rate, they pump you with some radioactive something, and watch your recovering heart in some kind of radioactivity scanner while it tries to pump blood at some accelerated rate. As my son Tom said, it’s not dangerous, but you probably don’t want to go through an airport scanner too soon after the procedure!


My family practice doc called the minute he saw the results and said, “Not terrible results, but not good either.” And he prescribed a beta blocker and nitroglycerin - just in case! Nitroglycerin! I asked, “What is that for?” His response: “That is for WHEN you have your heart attack.” What!? Got my attention. Bottom line, things are not wonderful in a small portion of my heart, and we need to look more closely. So, now I have a cardiologist.


The cardiologist looked at the stress test results and said - “We may have a problem here, but we need another test to be sure.” There is a procedure called a CTA - CT Angiogram. It’s like the angiogram where they put a little camera in your heart but they do it with a shot of dye and a bit of nitroglycerin and an external CT scanner. So I had the test, and he calls the next evening, with the news that one artery is 75% blocked, and a couple of others compromised. Do you know what statins are? So I am taking those too. Statins and beta blockers. Rats. There goes my image of my healthy self.


Here I had thought that my consistent exercise routine would protect me forever from the heart disease that both of my parents had - my mom died at 51, and my dad at 68. Well, it may have delayed things a bit, but  . . .  I have never even had an elevated cholesterol reading - but that does not cut any mustard now. 


As I was talking with the cardiologist, I asked him what I need to do to prevent this from getting worse - and he said, and I quote: “You know what you need to do - follow the mediterranean diet, fruits and vegetables and no red meat!”. Does not mince words, that fellow. I liked the exercise approach better, it is easier than controlling my diet. I even thought about doubling up on the exercise and forgetting about the diet thing - but  . . .


So, now that I have the procedure scheduled, I need to ignore those phony problems that I feel in my chest when my heart does its flip / flop thing. Crazy how our brain works. OK, so now I am reminded that I am going to die - and not too far into the future - and there is a good chance that heart disease is going to be the culprit. Fine!  Makes one think a bit.


Will Storr - The Unpersuadables

This was a very interesting book. I got into it as a referral from Amazon when I bought Jonathan Haidt’s book, The Righteous Mind, which was published in 2013. I bought both of them some time ago, but had not gotten around to reading them. Then I read Daniel Kahneman’s Thinking, Fast and Slow. Kahneman and Haidt are scientists of a sort - a psychologist and a behavioral or evolutionary sociologist / psychologist. Whatever. If you have not read those two books yet, you need to do that. I’ve written a bit about both in this blog, and they are excellent introductions to the behavioral approach to modern psychology, behavioral economics, and the like. To be clear, these are not books of their OPINIONS. These are wonderful books which talk about their EXPERIMENTS with people and groups, and how we think and operate. Kahneman kind of opened the door, but Haidt has taken things much further. 


The “fast brain” analogy that Kahneman uses refers to our “emotional” brain, our “gut” in Haidt’s world. The “slow brain” analogy is the thinking brain - where we actually do some thinking. All of the research indicates that we do 99% of responding with the FAST brain - no thinking required. We can think, but it is a lot of work, we are not very good at it, and many, many other things are going on in our brain that make it very hard to actually pay attention to what we are trying to think about. Haidt uses the analogy of the elephant - our emotional brain - and the rider on top who thinks he is controlling the elephant - our thinking brain. I tend to write things down because it helps me focus my thinking - a trick I learned. You should try it.


Storr talks about Haidt’s research a lot, but in a narrative style. He tells you a story about someone who has a firm opinion about something, and how he interviews them, and explores with them the basis for their opinion, and why they hold it, and the like. In some of his stories he talks to both sides of the coin - at considerable length. The interesting thing about the book is how much Storr intervenes to express his opinions and likes and dislikes. I found it annoying at first, but toward the end, it became quite enlightening.


Storr talks with people who travel the world speaking against evolution, and for creation. He visits with an honest to god climate scientist who denies that global warming is a problem. He interviews a noted historian who thinks that Adolf Hitler knew nothing about the holocaust or mass extermination of the Jewish population. This guy was actually sued for libel and defamation because he denied that the holocaust even happened. Storr paid good money to take part in one of his guided tours of Auschwitz. While they were standing in the gas chambers, this guy maintained that they were designed to eliminate lice. He noted that they had handles on the inside of the doors - ignoring the separate locks on the outside. 


I could go on - the book is good fun, in a perverse way. Storr’s bottom line is that there is nothing wrong with these people and their ideas. This is perfectly normal human behavior, given the research that Kahneman and Haidt have identified. These people may not be mainstream, but they are serious, they are not evil, they are normal human beings who cannot get beyond the tribal view they have of life. We are ALL in that tribal, or team view. We simply cannot step outside of it.


So, I have spent the last decade reading neuroscience and psychology, trying to figure out what is wrong with these people, and how we can possibly raise a campaign, a method, a way to persuade them about the actual truth of these things. They are NOT persuadable. Can’t be done. Your neighbor that voted for Donald Trump is not going to change their mind based on any information from any source. This is not a rational thing - this is a gut, emotional thing. The causes lie in their genetics, childhood, and emotional experiences. As Haidt points out, we have a genetic propensity to be either progressive or conservative. I know where mine comes down - where is yours? If you are mostly focused on hierarchy, authority, sacred and tradition - you are traditional. If you are focused on fairness and harm, you are likely progressive, or “liberal”. I give up!


John Shelby Spong - Unbelievable

I liked Spong’s book, and I am glad I paid him for the privilege. I can also find someone to give it to and to try to persuade them to change their mind - oh - wait - that isn’t going to work. RATS.


Spong is a retired Episcopal bishop of the progressive ilk. He is also an eminent scripture scholar. My scripture professor of long ago would have loved him. Bultman and Dibelius have nothing on him. His insight into the Bible is pretty amazing, and his grasp of the New Testament is stellar. I hold an advanced degree in this stuff, and he taught me plenty. There - I threw out my credentials - trying to persuade you again - but it will not work. RATS.


The book is a call for a “new reformation”. Let’s get rid of the middle ages approach to science and technology, and get with the program. Copernicus was right. There is nothing literal in the Bible - it is a wonderful collection of oral myths and stories that were of tremendous importance to the people when they were written down. The gospel message was cast into Greek ideas, and forged by warring controversies to come up with dogmas that fit the time - but no longer work at all. Creation is a mythical story trying to explain human values. The fall from Paradise is like every other origin story trying to explain how the all powerful deity could create a reality with so many flaws in it. The idea of salvation from some original guilt has more to do with Paul’s and Augustine’s psychological problems than anything related to the deity. The idea of personal deity that is listening and intervening is totally wishful thinking.


I have known all of this since about 1967. At that time, the deity as conceived by most religions simply did not work any more. Ground of our Being - perhaps. Source of meaning and purpose - perhaps. Universal love for humankind kind of works. My bottom line is that I CHOOSE to believe that life has meaning and purpose, and I am going to work to support human growth and development. If you want to call that FAITH, I won’t stop you. But it is a choice to me - nothing emotional about it. Or, wait,  . . . that IS my emotional need, to have meaning and purpose. So be it.


Spong’s legacy

The good bishop has tried mightily to save Christianity by moving it into the 21st century. This book was his last. His talk at Chautauqua was his last public appearance. After his final talk, one person asked him what he thought of his legacy. His simple reply, he hoped that someone would appear in the next one to two years that would carry this on, or change it, or move it further down the road. He doubted that anyone would care about his contribution in a few years. He said that the progress toward a new Christianity may take many years. 


When I look back on the biblical scholarship of the past, we have been at this a long time. Bultmann wrote in the 1930s and 1940s, exploring the mythical and historical Jesus. His scholarship and the progressive tradition have flourished, but the impact on mainstream Christianity is hard to identify. The literal interpretation of the Bible myths still reigns supreme. In spite of the Enlightenment, in spite of great scholarship, the vast majority of Christians hold beliefs that are “unbelievable”. I read John A T Robinson’s book Honest To God in 1964. Most Christians would find it problematic to this day. On the other hand, the number of Christians continues to decline precipitously. Perhaps there is hope.


Nicaragua

Our parish started a relationship with a small community in Nicaragua back in 1980 or so when my lovely wife worked at the parish. We have traveled there as a couple. I have been there nine times - studying Spanish - working with the non profit which is our liaison and support there. I lived there once for two months - trying to help organize things and improve my Spanish.  I started a non-profit to help them with fundraising and grants - the whole ball of wax. I am on the non profit board there, and the one here.


AND  . . . Nicaragua has gone to heck. The current fearless leader, the original leader of the great revolution against the dictator Somoza, has become a corrupt oligarch. He and his family are wealthy and in charge. His supporters have taken to the streets with guns to keep him in power. He has destroyed the constitutional democracy, and he is not going to leave. The police do not intervene to stop the gangs that threaten every demonstration, that shoot and kidnap people. Civil order has disappeared. It has all gone to hell in a handbasket. I have no plans to ever visit there again. I hope our friends there will survive in some form or other - but their economy has collapsed. Their outside income has disappeared. Their sense of peace and tranquility may never return. 


RATS

So, all the work to understand how humans work and think. All the effort to persuade people to vote, how to think. All the labor for the poor in Nicaragua. It’s all come down to naught! AND, I am going to die from a heart attack someday. RATS. 


Reflection

Well, that was fun. What did I learn? I learned that it is a total waste of time trying to persuade anyone of anything. I spent a lot of time trying to learn how we think, so I could persuade others. I’d like to persuade them about economics, politics, and religion. I have wisdom and insight from my 80 years of reading and studying - listen to me, darnn it. 


Not going to happen. Let it go. There is nothing wrong with those people - that is just how people are - different from you. Unpersuadable, irrational, defensive, protective, frightened of the unknown and the progressive. 


So, what is life about? What is the role of Christianity? As Spong has put it, the key thing about the Jesus experience is the same today. Paul was the earliest writer about the new Judaism, and he said it well. “When Paul tried to describe to the Galatians what was involved in his call to ‘put on Christ,’ he said that it meant that human divisions must disappear. In Christ there is no longer ‘Jew nor Greek,’ ‘slave nor free,’ ‘male nor female’.  All are ‘one in Christ Jesus’ (Gal. 3:26-29). That is what Jesus meant, and that is what the original Christ experience was. . .” 


The Jesus experience is about life and love, to experience life, to become all that you can be. Love is the power that enhances life. Love is the gift of life and consciousness. We are at our fullest when we love fully. “It is in the act of loving ‘wastefully’ that I believe I make God visible.” p. 286. I choose that life of meaning and purpose. The Christian experience is about the universal value of life and love. All of life is priceless - human life is even more so. That is the hope of monotheism - all children of the one God, all sharing the one gift of life and love. 


==============================

Post Note. I wrote ALL of the above in 1988. 

I have moved on in many areas - especially my diet and health - but this still speaks to me. Hopefully it speaks to you as well. Let me know. Thanks. 

We are all in this together, and I’m pulling for you.


Wednesday, February 8, 2023

The Good Life - a Book Report - For Friends!!

 The Good Life: Lessons from the World's Longest Scientific Study of Happiness by Robert J. Waldinger and Marc Schulz Ph.D

I have just finished reading this exceptional book, and I would like to highly recommend it to FRIENDS.  And YOU are one of those. Thanks for that. Read on to see why. 


I spent the past decade reading about neuroscience and brains and emotions and stuff like that. I started out trying to understand why people sometimes are not doing “rational” things. I was very analytical about it. The authors of this book already know all of that stuff that I have been reading - ALL of it. And they put it to much better use than I have. But they have an extremely valuable resource which I do not have: the Harvard 80 year longitudinal study. They were all men in the beginning. They expanded it to their families and descendents. Many of the men in this study lived wonderful, happy lives. Some had major problems, psychosis, depression. They lived through the great depression and WW II and many other traumatic parts of our history. 


The authors are also a practicing psychiatrist and PhD psychologist with a world of experience with all manner of patients. They also do formal research in this field.


The book is focused on how we can use the experience of all of the people in this study, together with science from many other similar studies and research, to give ourselves the very best shot at a “good life”. A life full of meaning and purpose. A life with more joy than sorrow.


First of all they tell STORIES. Real stories of real people - most of them drawn from the Harvard study. They are great stories - they stick with you.


Then they describe the RESEARCH. This is key to me. I am not fond of authors who express their personal wisdom and opinion to the exclusion of what science has discovered about us. As it turns out, many of those old and wise authors and philosophers did understand the same things, but the scientific filter gives me a better shot at understanding and learning. It may be the way I am built. 


And they SIMPLIFY all of this to strategies to apply this wisdom in your own life. They talk about birth, death, and love. They talk about loneliness, happiness, family, friends - all of the parts of life. 


And the key, as they tell you right up front - it is all about RELATIONSHIPS. The quality of your relationships will determine the quality of your life, for emotion, happiness, health and length of life. They analyze the relationships, good and bad in the subjects of this study, and make concrete recommendations for how you can improve yours. I took several to heart. 


And there are ways to teach our children how to do this. A few schools call it SEL (Social Emotional Learning). Others call it Emotional Intelligence Training. We already teach our kids how to do Math and Science and Reading. Humans are born with that potential, but we really need formal training to learn those things. The same is true of our emotional / relational selves. We are absolutely social - but it is a learned skill, and we CAN improve it. Reading, Riting, Rithmetic and Relations. 


It is a great read - right down the last page. I learned something on almost every page. 

I am tempted to give a copy of this to everyone I love. We shall see!


Thanks. Stay Safe. You can do this.


Saturday, December 31, 2022

Homecoming - a Book Report

 Homecoming: The Path to Prosperity in a Post-Global World by Rana Foroohar.

Wow. What can I say about this book to get you to read it? When I first read Daniel Kahneman's Thinking Fast and Slow, I felt like every page was a new, fresh insight. It is the same with this book. Every page offers a fresh insight, a new piece of information, a surprising technology, a new bit of history, a really bright idea. The basic topic is the failure of the neo-liberal globalization of the free market economy.The author is a journalist, an editor for The Financial Times.  She builds her case well. This is an excerpt from a review:

She says that for decades, the neoliberal economic philosophy of prioritizing efficiency over resilience and profits over local prosperity has produced massive inequality, persistent economic insecurity, and distrust in our institutions. Place-based economics and a wave of technological innovations now make it possible to keep operations, investment and wealth closer to home, wherever that may be. With the pendulum of history swinging back, Foroohar explores both the challenges and the possibilities of this new era, and how she says it can usher in a more equitable and prosperous future.

The problem is that by the time you are halfway through the book, you realize that the problems and potentials she describes are very complex. We humans have created an economic and political engine of extreme complexity. I am fairly bright, but most of this has simply escaped my notice over the past few decades. Given the scope of the problems, she is amazingly positive on the future prospects for change. But I am wondering just how many business leaders, economists and politicians have the capacity to grasp the scope of the problems she explains, and have the initiative to undertake these innovative efforts to move the world forward. How many would ever even pick up the book to begin to learn a little about global economic and social trends?

To encourage you to read the book, here is some of the content that impressed me.

China is the key threat to world order. China grew tremendously under the neoliberal free trade and fair exchange approach. And they took advantage of the rest of the world. The hope was that their participation in the global economy would also encourage them to adopt a more open and free society. The reverse is true. China and other parts of Asia have almost complete control of large segments of our economy, especially computer chip manufacturing, solar power, batteries, etc.. 

Xi Jinping, the current leader of China with a new lifetime office, claims to be building “a community of common destiny for all mankind” and wants Chinese-style techno authoritarianism to be copied by countries around the world. Xi has called on people with Chinese heritage anywhere on earth, no matter their citizenship, to join together as “sons and daughters of the Yellow Emperor” who are obliged to work for the “great rejuvenation” in whatever way the party deems fit.

Taiwan country controls 55% of global chip manufacturing capacity. And there is no question that China wants them back. At the same time, they are experimenting with new ways to share government participation and decision making. Ultimate transparency reigns, with all meeting agendas and minutes posted on the internet/ They use "quadratic voting" to get the general populace input on government decisions and legislation.  

U.S. Healthcare - The United States has by far the largest healthcare costs in the world—about twice the level of most other developed nations. Our healthcare system is roughly the size of the entire French economy, but we don’t have the outcomes the French do; in fact, when ranked against other rich nations in terms of things like infant mortality, maternal mortality, and health in young people, the United States comes in toward the very bottom of the list.

Digital Banking. I had pretty much written off the bitcoin craze as a tulip bubble. She seems tremendous potential for the underlying technology to revolutionize banking. 

Hockett, who has been an adviser on some of the digital currency projects just mentioned, hopes to move toward a system of “citizen central banking,” in which everyone, whether or not they have access to a traditional bank account, can have a government-administered digital wallet. “Not only would this end the problem of the ‘unbanked’—meaning people like Chaka—but it would also make the entire process of monetary policy work better,” he says. Instead of the Fed keeping rates low in such a way that allows giant companies to run up debt paying back rich shareholders, central bankers might be able to target the flow of money more specifically to where it is most needed. Essentially, we’d have the national, digital equivalent of a shoebox bank, for all citizens. And different places could have different shoeboxes,

Local economics -  Production and distribution all local. Vertical farming, 3d printed homes, "Slow Cities". 

Food as a defense industry. DARPA is working on technology to create food from air, water and microbes as a key defense move. A more resilient economy 

Education - we need to focus on the skills needed in the coming changes - not general purpose arts degrees that burden families with education loans for decades. 

Conclusion
I could go on, but I trust you get the picture. Amazing collection of information. Amazing insight into how economic and political instructions work. Very positive and hopeful that we can actually make this all work. I pray that she is right. READ the book. Thanks. 

YouTube Options
For my reading challenged friends, here are a few YouTube interviews and presentations that will give you the basic gist of her work. 

https://youtu.be/bzA1ZmqZo9c 
In her illuminating new book, HOMECOMING: The Path to Prosperity in a Post Global World, the Financial Times Global Business Columnist Rana Foroohar shares her views on why the great globalization experiment has failed and what it really means for the US and the world economy. She joins the podcast to talk about her book, the genesis of her thesis, and chronicles her career as an international journalist for some of the world's leading financial publications.  

https://youtu.be/rUxnOHcklPQ The case against big tech firms - Rana Foroohar Ways to change the world

https://youtu.be/Z6FczBh8JVM Rana Foroohar: The Rise of Finance and the Fall of American Business 

https://youtu.be/8KTCCYHb21I  Rana Foroohar: The Path to Prosperity in a Post-Global World - Commonwealth Club 


Wednesday, December 28, 2022

Earth For All: A Survival Guide for Humanity - a book report and summary

 OK - get this book. NOW. Earth for All: A Survival Guide for Humanity  $10. 

The book has multiple authors, all scientists, researchers, Club of Rome, etc.

It is at once, the scariest book I have ever read, and the most optimistic I have read in decades. We might be able to actually do something about this mess we have created. The authors are very convincing about that - which is a good thing - because the alternative is, frankly, scary as hell. Further on, I go on a bit about what I found in the book, but the review posted at Amazon is as good as it gets, so here it is: 
------------------------------------------------------------
Earth For All is both an antidote to despair and a road map to a better future. Using powerful state-of-the-art computer modeling to explore policies likely to deliver the most good for the majority of people, a leading group of scientists and economists from around the world present five extraordinary turnarounds to achieve prosperity for all within planetary limits in a single generation. Coverage includes: 

  • Results of new global modeling that indicates falling well-being and rising social tensions heighten risk of regional societal collapses
  • Two alternative scenarios – Too-Little-Too-Late vs The Giant Leap – and what they mean for our collective future
  • Five system-shifting steps that can upend poverty and inequality, lift up marginalized people, and transform our food and energy systems by 2050
  • A clear pathway to reboot our global economic system so it works for all people and the planet.

Written in an open, accessible, and inspirational style using clear language and high impact visuals, Earth For All is a profound vision for uncertain times and a map to a better future.

This survival guide for humanity is required reading for everyone concerned about living well on a fragile planet.
-----------------------------------------------------------------------------

For another excellent review, see:
    https://www.newstatesman.com/spotlight/2022/09/alternative-growth-save-humanity.

Yes, they are talking about ending poverty, ending inequality, transforming food and energy, and changing global trade and economics. They propose concrete steps to accomplish that, and they spell out the very real costs to accomplish those goals. 

And, yes, it will cost YOU something - but the price is very doable, and the ROI is immense. What it costs you is not a donation - it requires a shift in your thinking. Even if you are the wealthiest human on earth, what good does that "wealth" do if there is nothing left of the society and culture and people? Currency will not be a thing. You could put it into gold or diamonds - but those things are actually worthless trinkets if there is no social infrastructure to value them. When hundreds of millions of us need a bit of dry earth, we are not going to be polite about it. You really cannot store up enough food and water and air for a lifetime - without our help. 

Think about it a bit. 

SO; what can you do? The website has some concrete suggestions: https://www.earth4all.life/

WE can do this - but it will take a huge change by a lot of us. Think of it as an exponential growth thing - if every one of us can engage 2 more of us - that becomes a huge multiplier. 

RESOURCES

Tuesday, September 20, 2022

Book Report: Recapture the Rapture - A very SCARY book for me

Book Report: Recapture the Rapture: Rethinking God, Sex, and Death in a World That's Lost Its Mind by Jamie Wheal.

Remarkable Book
I found this book quite remarkable - he has read everything that I have in the past 15 years or so, but where he goes with it is really new to me. The first chapters are SCARY. Things are coming apart in our world - he cites examples I have never heard. His whole purpose is to use our latest learning from neuroanthropology and cultural architecture to craft a solution to this craziness. I wish him well on that, but I am not as positive as he is on the potential outcome

In almost every chapter I asked myself whether I would recommend this book or not!  His insights are amazing. His grasp of the recent research is amazing. Watching him talk about it, he is very, very good at this. Here's a simple video that will give you a sense of that: 
    Homegrown Humans https://youtu.be/MsePXW9vh3k     

This is a TED TALK about his background and his real business:  FLOW:
https://youtu.be/WqAtG77JjdM  

The Problem with DRUGS 
Part of the problem I have is the role of psychedelics / drugs. He is not pushing it - he emphasizes that one can accomplish these humanizing experiences with just breathing and meditation. And he is very aware of the potential problems of addiction and bad experiences. That stuff really scares me. He has come to terms with them. I am just not ready to go there - my gut reaction is NO! I can feel the defenses rising in my emotions.

Meaning 3.0 and a NEW "church"
I love the idea that we might be able to raise up everyone's sense of belonging to the human race, to have empathy for others, and to work together to improve everyone's life. He does a masterful job of crafting this new kind of "social religion." He has a good handle on the history of religions, and the science about their essential elements. He understands the dangers of this - but I get the underlying fear that he is really making a killing out of all this. It feels like a much better form of "Scientology" - which is a crazy set of stuff.

The Jesus Story
BUT I think his take on Jesus is perfect - Here's a couple of quotes:

P 284 Because what is beyond doubt is that the idea of Jesus, the Jesus Meme, which includes all versions—god, man, and myth—has shaped the last two thousand years of human history more than almost any other human who has ever lived. That in itself, in all of its ambiguity, is worth a real reckoning.

P 286  Because let’s face it—Christianity has some god-awful branding problems. For the faithful, there’s still some meat on that bone. But for the unchurched, twice shy, or followers of different faiths? It’s slim pickings trying to gin up enthusiasm for a Christian revival. It would be a mistake to even try.

But it would be an even bigger mistake to scrap it entirely. The Jesus Meme has been virally replicating for two thousand years. It’s created a tremendous amount of momentum, resonance, and shared reference points recognized around the world. What sticks with me most about the story of the Nazarene has little to do with canonical scripture at all.  . . . 

The idea that a flesh-and-blood mortal could feel a burning truth inside them, and seek to share it with the world, despite the betrayal and ridicule of those they were trying to help, while having to face personal doubt, despair, and uncertainty alone? That sounded more like the human experience we all have to live through than any of the more transcendent tales I’d found elsewhere.

If you found that interesting - here's an OLD homily that I did on this topic back when I was a lay preacher. See what you think.
    https://sites.google.com/site/carlscheider/carls-papers/1988-incarnation-reflection

Bottom Line
The key to me is that the focus is on increasing our empathy, increasing the sense in all of us that we are the children of one god, that we are all of priceless value. Every single one of us. If we can somehow get that into the general consciousness, we actually have the potential to solve most of our human problems. The disparity in wealth, the absolute ego sense, that I got mine and you are not worthy of my time - that is our primary enemy. We are all doing win / lose all the time. I guess if a bit of a drug can deliver a lasting sense that "we are all in this together", I could support that. We shall see.

It is just not obvious to me how this "movement" will progress. Looking at his website, it feels more like a money making venture than a non profit. https://www.flowgenomeproject.com/ 

Help me out here - if you read the book, think with me a bit about it.