Our story, integration


In response to two of David Brooks’ columns about “our” problems, 7/23 & an earlier one, I wrote the following. From the recommendations and replies, I gather I’m not the only one who feels this way…

 

Bill Abbott
Oakland California July 23
David,
The “we” you see is not the one I experience. You write,
We post-Cold War Americans haven’t really settled on what story we are a part of.
Really? I’m pretty clear what story I’m part of. Objective truth exists and is important. We are measured by how we treat the least among us. Science works because it is based on reality. Hope can overcome fear. Do unto others as we wish to be done to ourselves. The challenges we face mean we have no-one to waste, yet too many people are poor, marginalized and left behind. Women’s rights are human rights. Black lives matter. Power corrupts, and absolute power corrupts absolutely. Love wins. We don’t educate our neighbor’s children because of charity, we educate them because we will have to live with them. We are not perfect, we have never been perfect, but we can always get better. That’s my story. That’s the story of my country, and of humans in general.
The first President I voted for was Jimmy Carter, in 1976. I’m still waiting for a Republican I could vote for to appear on a ballot. Any ballot. Local, State or Federal.
In an earlier column, you wrote, “As a nation we seem to have lost all enthusiasm for racial integration.” Maybe that’s true for you. Its not true for me, or my friends, or our kids, or the cities and states we live in. Come visit us in Oakland. We are still working on it. Its hard work, that doesn’t mean its not the right goal.
Bill
546 Recommend
6 REPLIES
Mark Thomason commented July 24
M
Mark Thomason
Clawson, MIJuly 24
@Bill Abbott — Not everywhere is California. To win, we need the politics of the Venn Diagram overlap. I don’t devalue what you say, nor what is said in other regions. I say there is enough in common to make a politics that will resonate with a majority of voters, without using hate and fear.
2 Recommend
TinyBlueDot commented July 24
T
TinyBlueDot
AlabamaJuly 24
@Bill Abbott
Mr. Abbott, please consider running for office in some capacity. Your remarks are clear, intelligent, and convincing. And I agree with every word you wrote, perhaps especially the line, “We are measured by how we treat the least among us.”
Recommend
Leslie Durr commented July 24
L
Leslie Durr
Charlottesville, VAJuly 24
@Bill Abbott Brooks isn’t talking to you or to many of us. He’s talking to the disaffected white people who have been co-opted by the Republicans to ‘look over there, not over here.’ And, yes, some of them actually read the NY Times.
Recommend
Au Gold commented July 24
A
Au Gold
New Jersey, USAJuly 24
@Bill Abbott Well said!
Recommend
Pete Hollister commented July 24
P
Pete Hollister
Oregon WIJuly 24
What a great comment. Bravo!
Recommend
Leslie Durr commented July 24
L
Leslie Durr
Charlottesville, VAJuly 24
@TinyBlueDot We really need people like you who resonate with Bill Abbott’s words in places like Alabama to run; Oakland already has it down pat.
Recommend
Advertisements

The roots of “Enhanced Interrogation”


Since WWII, the United States forces have conducted one or another form or what’s now called SERE, “Survival, Evasion, Resistance and Escape”, training. The obvious intent is to prepare those going in harm’s way, particularly operating in or flying over enemy territory. Aircraft crash, or get shot down; unplanned and unforeseen events occur whenever service people are in enemy territory. Knowing how to shelter, hide, escape, fight back and resist interrogation are teachable skills and our services teach them.

SERE materials were at least one point of departure for the Bush II administration’s immoral and counter-productive “enhanced interrogation technique” debacle. None of the chicken-hawks in the Bush II administration had faced hostile fire or been trained to resist interrogation. But if you looked for experience and systematic application of illegal and immoral treatment to hostile captives, in the US Defense complex, you’d quickly find the Resistance training and the simulated interrogations.

And de-briefing of survivors of real interrogations by the bad guys, of course.

The simulated interrogations in SERE training should have taken in all that they could from real experience. And SERE would have training material explaining to the interrogators: what to do, how to do it, where our “bright lines” are, etc. Also, serious, real, experience of how the training interrogations were applied to our own people, how effective they were, what techniques we taught to oppose interrogation etc.

A number of people would have been derelict in their duty if all the records, training materials, etc, didn’t exist, and it would have been further dereliction if this stuff wasn’t brought out when “W” and Cheney wanted to throw out the rule book and start abusing prisoners. At least I hope so.

But there’s one other thing about SERE that poorly supports being used for enhanced interrogation techniques. Getting “actionable intelligence” is a goal of any interrogation, but North Vietnam, North Korea and Iraq were fighting propaganda wars as well as shooting wars, and they really wanted their captives to confess their “crimes” to the international media. Even after the length of their captivity made any factual revelation of limited value, fake confessions to evil intent and behavior were highly desired. No doubt SERE prepared trainees for this as well. Thus SERE interrogators weren’t just trying to get actionable intelligence, they were also trying to coerce fake confessions. Coercing fake confessions wouldn’t be any benefit if applied to “high value” al-Qaeda or ISIL captives. We wanted to know what they knew, not force them to say what we wanted to hear.

Whether the SERE playbook separated interrogation for facts from “interrogation” to coerce lies, the fact is that the two activities were NOT separated, in practice, by our enemies. How well our nation’s intelligence folks separated before they were tried on random victims isn’t something I expect I’ll ever know. And I’m biased against “enhanced” techniques, I confess that. But I can’t believe that either copying our enemies, or the nastiest people we could ask, or using part of SERE’s play book, would lead to anything additional to what conventional, well-understood, interrogation as practiced, without “enhancement”, would yield.

 

Things to know about retirement, USA, married couples.


#1  Can one spouse can retire with the other spouse’s social security benefit?

Yes, a surviving spouse can choose to use their own Social Security Insurance* (SSI) benefit OR their deceased spouse’s SSI benefit – whichever is larger. But not both. SSI was created when a many (but not all) women’s jobs were in the home, and many (but not all) men’s jobs were outside the home. The spouse working outside had an employer and cash wages, the spouse keeping the home had neither.  So a non-working spouse who had no SSI benefits on their own could continue to collect the benefit their spouse had retired on, if the spouse died.

Here’s the clever bit: If both spouses had SSI benefits, each started drawing them when they retired. If one spouse died, the survivor could switch to whichever benefit amount was larger. Say, for example, Pat and Kim both worked and both earned maximum SSI benefits. If Pat starts drawing at age 62, the amount they get is substantially less (30% in my case) than if they hung on to “Full Retirement Age” – (66 2/3 years, in my case).  If Kim keeps working, or can otherwise hold-off starting SSI benefits, Kim’s monthly benefit will be larger, even if both have at least 40 quarters of paid employment and contributed the full amount required by law, every year. Thus, Pat and Kim have different monthly benefits from SSI and always will for the rest of their lives.

IF Kim dies before Pat, Pat can change to drawing Kim’s higher monthly benefit, but can’t keep their own benefit. Pat’s old benefit simply vanishes. If Pat doesn’t want Kim’s higher benefit, they keep their own and Kim’s vanishes. If Pat dies before Kim, Kim already has the larger benefit.

So the SSI monthly payment is a benefit for a living person, but it is not an asset which can be conveyed to a person that the original recipient chooses. This is a key difference between SSI, and employee pension plans, and 401Ks and the like. 401Ks, etc., etc., are assets. There are rules about how they are used, and rules about when and what taxes are paid on them. But they are as real as any other account at an investment firm.

 

#2 Is there a minimum amount you must withdraw from a 401K, every year?

Yes. Starting when you turn 70 1/2 years old. In one example I found, its 1/26 of the value of the account, a bit less than 4%. But it is complicated and Morgan Stanley’s retirement fund people say to come talk it through with them on the way to picking a number.

See topic 4, in:

http://fa.morganstanley.com/jteam/retirement_planning_mistakes.htm

There are retirement calculators that cover this as well, with their own lore, sacrifices and mod-cons:

http://www.choosetosave.org/ballpark/webapp/#/estimate

So if you’re 61 and haven’t retired yet, you don’t have to do anything. Yet. If you are working and can pack more money into the 401K, it’s probably wise to do so. If you wonder how much your 401K is worth to you as income, now, today, and you’re less than 70 and 1/2, its likely you can take out less than 4% each year. If you take out more than it makes every year, its a “decreasing asset” and you’ll have to judge your rate of consumption vs. expected lifespan. You can look up your life expectancy, for starters:

http://www.ssa.gov/planners/lifeexpectancy.html

If your 401K is with a different investment firm, they’re who you should speak with.

 

More as I get it. I’ve foot-noted “Insurance” below.

*”Insurance” as in “Social Security Insurance” is misleading.

Conventional insurance products are based on shared risk and supposedly conservative investments. Every week, month or year, you send in your pennies, along with everyone else. All the pennies get invested wisely enough to cover whatever payouts are made over the lifetime of the product. Automobile and home products typically last 1 year, “Term” life insurance lasts for a fixed period, ending at a birthdate or some other agreed point in the future. Payments can be spread out over the term the insurance covers, or be one-time at the beginning.

“Whole” life insurance stays in force as long as the insured person is alive and the regular payments are made. The payout becomes an asset for survivors.

SSI is none of these things. If you want to start a fight, call it a modified Ponzi scheme. The money it pays out comes directly from the regular contributions collected immediately before the payout. Sort of. There need not be a pooled asset which yields profits which support payments. The term of art for this is “Pay as you go”, which is more attractive than “Ponzi Scheme”.

The details, where the devils lurk, are that a pay as you go scheme such as SSI starts with lots of contributors and no recipients. So the first funds collected did, actually, go into some investment, likely US Treasury Bonds, the most boring, safe asset. You’ll note this has the effect of retirees-to-be investing in the National Debt. Then the Baby Boom arrives and goes to work and the number of workers contributing is vastly larger than number of recipients. So the surplus continues going into bonds where it props up the National Debt.  Hiring new devils every year.

One wild-eyed argument against SSI is that NONE of the Treasury bonds will ever be sold, because actual tax dollars would have to pay them out. On the other hand, the Treasury pays bond dividends regularly, and returns the principle at the end of the bond’s life, to all the other bond holders inside and outside the USA. Does SSI surplus go into conventional “T-notes” similar to what anyone can buy, or are there conspiracy-special T-notes that pay no interest and don’t return the principle, because they exist only to suck up SSI surplus? I don’t know and I’m too busy to look it up, today.

A more plausible SSI disaster scenario is that the number of contributors won’t keep up with the number of recipients. This is the “SSI will go bankrupt” trope, and if nobody does anything about it, it will happen. Increasing the payments made by contributors or decreasing the benefits going to recipients seem like logical steps, but logic isn’t universally popular. It *could* happen. If nobody does anything about it.

So the payroll deduction is called “SSI” and it’s a gift to us from history, outdated and misleading marketing language. If we imagined we were as adult as other developed nations, we might make “SSI” part of taxes, in general, and make the payout an expense that must be paid, like our Congressperson’s retirement, medical and dental coverage.

Tami Wilson


via Tami Wilson

*Fortunate* Motorcyclist survives driving off cliff


http://www.cnn.com/videos/us/2017/08/11/motorcycle-plunges-off-cliff-santa-monica-mountains-california-orig-trnd-lab.cnn/video/playlists/caught-on-camera/

My comments to CNN:

Cliff-diving motorcyclist Matthew Murray, 27, passes a “25 MPH” advisory sign in the 12th second of CNN’s video clip. This is in the 2nd run through of the crash video. In the 15th second he’s going 68 MPH as he starts to lean into the turn. He’s still going more than 50 MPH as he slides off the pavement and onto the dirt. Text on the screen says something to the effect that he “was following the turn when he thinks his steering locked up”. The video shows no such thing. He was going too fast, and could not turn sharply enough to follow the turn. He started at more than 2.5 times the advised speed. He left the pavement at 2 times the advised speed. His speed “locked” his path, not his steering.

Get the an accurate map of the curve, the size and tread pattern of the motorcycle tires and a description of the motorcycle (make, model, horsepower, brakes,weight-as-crashed) and rider (weight). Give to “Mythbusters”. Have them duplicate the failure, during deceleration, then do a binary search for the steady speed at which a motorcycle on those tires, at that weight, could follow that turn. Braking uses traction, does that change maximum speed?. Find the entry speed, before braking, that would allow the bike to make the turn. Put a GoPro on the bike for comparison pictures, and a second one showing where the front tire touches the road.

A Software Tester’s journey from manual to political tester


I wrote this some years ago. I should simplify the context and incorporate what I reference from the OP and other responders, so that it stands alone. But this has  meaningful observations which took effort to reach, so I’m putting a copy up here to start with.

Wow, no exaggeration! I can see every event that befell poor Jim happening in the real world. HOWEVER, Jim’s a fortunate fellow, he has management attention at all! AND they look at results. AND there is a perception (no matter how shakily based) of overall product quality.

Jim was no worse than anyone else until he got automation started and mistook his personal satisfaction and enjoyment for the company’s obvious goal of shipping a stable or improving level of quality with fast turnaround on bugs and needed enhancements. This is engineering, not art. Its not self actualization, its a commercial business or a service enterprise which creates value.

All the way down this sad story, Jim accepts product failures, and testing failures. You Can Never Ignore Failures. Period. He should have turned political at that point and realized that Test, like anything, needs to be sold, shown to be valuable and productive, and needs allies. Therefore, tests need to actually be valuable and productive, and needs to make it easy for people to accept them, adopt them, and feel they are important support in their own success. Therefore he needed to measure success, as understood by his customers (developers, support, users) and maintain or improve its integrated value. Accepting failures leads to dead astronauts, wasted billions, wrongful convictions, Senate Select Committees, Frontline specials, sub-Redits, and worse.

Instead of seeing failures as a very, very, high priority, Jim turns into a man with a solution, wandering around, looking for a way to apply it. A tawdry tale, rendered no less tawdry by its oft retelling. Not insignificantly, Jim’s manager is clearly a weak and ineffective character who should have seen problems coming, or reacted when they appeared. Once Jim had made the case for automation, they might have hired someone who knew something about automation, or contracted with very carefully defined goals.

Jim might have split his team up front. He needed manual testers, who carried on the work that had been being done, with as much success as possible, and brain power applied to improve results and lower cost. A front line to hold success. Then a test automation group who focused on test automation with clear and obvious benefits

The automation environment needed to be something:

  • …anyone could run;
  • … which worked from a shippable product, as well as a release candidate or development build;
  • …which could be triggered directly from a product build, so the build group-and-release group ran it every time;
  • …which could be configured to run anything from a single, new, test to all existing tests
    • in a developer’s environment, before check-in, or
    • at any subsequent point, including on a previously shipped release with a support issue.

Setting up the test environment, creating a test to get the product to say “Hello world”, and recognizing that as a test pass ought to take no more than an hour longer than simply setting up the product. That assumption has to be proved every release or two with a calibrated innocent new-hire from somewhere.

Since all tests start by installing the product, license, etc, and starting it, the first thing to automate would be that. If there were changes in that functionality, over product history, the automation could start with the newest, but it had to support them all. Having this ‘smoke test’ be part of a full build would pay dividends to everyone, everywhere, and by designing with backward compatibility and future adaptability, thrash could be minimized, or at least recognized.

This would be a good time to look through the bugbase to determine where the most bugs were being found, where the most escapes were happening, and where the most critical bugs were coming from. Besides looking backward, a forward look at the product roadmap and with developers and management could highlight areas of future leverage

In parallel with automation, all of the above should be considered when selecting manual tests. Tests which never fail should be reduced relative to tests which find failures. Something that fails for diverse reasons may be a great canary in the coal mine, or might be a too fragile sponge that soaks up maintenance effort. In any event, continual improvement of the manual testing should run in parallel with introducing automation. After a small number of releases, the manual tests available should exceed the resources to run them. Selection of the ‘vital few’ should in intentional, not happenstance.

Most people can see the limitation of record and play back, so things should never stop there. The only tools worth looking at are tools that can be edited and rapidly expanded by iteration. Cut and paste is the lowest form of iteration and rapidly grows nightmares. Algorithmic test point generation is desirable, but data driven testing should get strong consideration. Algorithmic generation of literal tables which are then applied as tests separates the thing that needs to be done over and over, running the test, from the thing which is done less frequently, generating the test points.

In my life, I’ve seen a few of the failures in Jim’s story, but a lot of failures of usability by others, or by anyone, complete lack of testing in development plans. Test suites (with running tests) abandoned and no-longer run, until the next great hope get started. And far too little curiosity about which tests should be run, automatically or manually, to get the most bang for the buck.

Like I said, Jim is lucky!

View in discussion

Lets re-learn Python!


OK: here we go. I learned enough Python to write some, and to follow a lot of Jesse & Co’s at VMware. But I didn’t write all that much, I couldn’t check in anything, because there was not way to  test check-in candidates BEFORE going live. Or, at least, I couldn’t find one. And when I asked for help, I didn’t get what I needed.

But now I’m re-learning, since everyone says they want want proficiency in Python in their new hires. Better brush up on it then. .

So step one.  The canonical program in any Python book goes something like:

print (‘Lesson_1.py with single quote’)
print (2 ** 902)

to show off the easy familiarity Python has with very large numbers.

So I expanded on that. More print statements and if else and elif, Adding a demo of indents being isolated – The block for “if” must be all the same indent, the block for  else need to all be the same. But nothing requires the “if” block to match the “else” block. All they have to be is the same within themselves. Parseable.

Next, since we’re always printing things, what does “print()” return? Not-1, according to the if-then. If we print it, its “None”.  And we can test that it equals “None” (string equals is “==”. It does equal “None”.

But not only does it NOT not equal “none”, you can’t ask that question, without declaring/creating a “none”.  But its not a compile time call. The power of late binding is that nobody has checked “none” (or “NoNe”) until the “==” gets it.

And we get a lovely error:

“what comes back when we print one char
None
no char indent
None = print returned 1 or thereabouts
Traceback (most recent call last):
File “lesson_1.txt”, line 40, in <modul
if none == print(” no char indent”):
NameError: name ‘none’ is not defined”

And now our canonical program has an error, so we can canonically use the “try”, “except”, “finally”  statents.

And if we’re  really lucky, the response will have an error and we’ll get a SECOND TRIP through the error handler!

C:\Users\wabbott\python\Lesson_1>python lesson_1.txt
Lesson_1.py with double quote
Lesson_1.py with single quote
3381084999268257576654974623465706281720622886631177741618948537770712976363039
one char indent
else four char indent
elif six char indent
no char indent
print returned not-1 or thereabouts
what comes back when we print one char indent
None
None == print()
None == print returned 1 or thereabouts
we always do this, but don’t make any mistakes!
Traceback (most recent call last):
File “lesson_1.txt”, line 57, in <module>
if none == print(“none == print()”):
NameError: name ‘none’ is not defined

and there we go.

 

# Lesson_1.py
# picking-up the Python thread again, 5 years later.
# All the recruiters hope I know it, better look into that and perhaps I can find a job.
#

#!/usr/bin/python – ha!

try:

print (“Lesson_1.py with double quote”)
print (‘Lesson_1.py with single quote’)
print (2 ** 902)

# Python uses indentation instead of curly braces to identify blocks. Kind of a nice idea.

if 1:
print( ” one char indent”) # this one prints
else:
print( ” two char indent”)
if 0:
print( ” if three char indent”)
else:
print( ” else four char indent”) # this one prints

 

if 0:
print( ” if five char indent”)
elif 1:
print( ” elif six char indent”) # This one prints
elif 0:
print( ” elif seven char indent”)
elif 1:
print( ” elif eight char indent”)

 

 

if print(“no char indent”):
print(” print returned 1 or thereabouts”)
else:
print(”  print returned not-1 or thereabouts”)

print ( print (” what comes back when we print one char indent”))

 

if (None == print(“None == print()”)):
print(” None == print returned 1 or thereabouts”)
else:
print(” None != print returned not-1 or thereabouts”)

 

if none == print(“none == print()”):
print(” none == print returned 1 or thereabouts”)
else:
print(” none != print returned not-1 or thereabouts”)

 

if NoNe == print(“NoNe == print()”):
print(” NoNe ==44 print returned 1 or thereabouts”)
else:
print(” NoNe != print returned not-1 or thereabouts”)

#  except Argument:
# print(“The argument is>”, Argument, “< ” )

print(“And look, now it fell through!”)

finally:

print(“we always do this, but don’t make any mistakes!”)

# ———-X———-X———-X———-X———-X———-X———-X———-X———-X———-X