Thursday, January 12, 2023

Populism vs Elitism

Last month, I re-read Loose Lips, a novel whose central character is going through the first year of CIA training. When I first read it, I was mostly sympathetic to the main character and to the CIA and their secrecy. In fact, I cringed when she divulged information to a trusted source (who probably she should not have trusted).

I re-read it though last month after hearing Tucker Carlson's credible report that the CIA had a hand in the assassination of JFK. On second reading, the opaqueness and secrecy made me feel queasy (not to mention feeling dismay at the way that the institution is portrayed as sometimes using its assets with obvious disregard for their well-being).

What prompted me to re-read the novel was a brief Twitter exchange I had with the author, Claire Berlinski, regarding the safety and efficacy of the Covid vaccine. She did not share my skepticism of the vaccine (which is fine) but I was left thinking that her trust in the vaccine parallels her trust of elite institutions such as the so-called medical experts (and, I presume, the CIA, as well).

I suspect that she rejects Trump and the populist movement, as I did when Trump was running in 2016. But I was converted to the populist way of thinking after seeing how Trump as President strove to keep his promises, accomplishing things that recent past Presidents of both parties claimed to want but somehow never actually bothered to implement (e.g. moving US embassy to Jerusalem; brokering peace treaties between Israel and Arab countries; reining in excesses of the EPA; cutting regulation).

Yet Trump is despised or simply not respected by the elite and those loyal to them. He is considered crass and his simple use of language is often incorrectly seen as a sign of his stupidity. They do not credit him with purposely speaking that way, putting things bluntly and simply, in order to better communicate to his likely voters.

There's a reason that Trump puts things bluntly in simplified language. It's related to the reason he uses coarse language. It's also related to why the phrase "Fuck Joe Biden" and the bowdlerized "Let's Go Brandon" are popular. The people he wants to reach take the blunt and profane as a sign that he is not playing the nicey-nice game that the decorous elite insist on, giving him an air of authenticity among his supporters.

In the introduction to the book The New Class War, author Michael Lind posits that the pluralism of the postwar era (during which various groups shared power and negotiated with each other) has been replaced with a neoliberal managerial elite (neoliberalism calling for free markets and global trade; managers being corporate, academic and government bureaucrats). The managerial elite run things, intentionally or not, to the detriment of masses of disempowered people, spawning resentment among the majority.

And given recent revelations about how the Federal government has been surreptitiously suppressing free speech, censoring voices that diverged from their chosen narrative regardless of whether it was true, one begins to wonder whether the elite is intentionally disempowering the masses as the result of explicit disdain for those they seek to control.

Certainly, the way the FBI, DOJ and other agencies abused their power by making unconstitutional attacks on President Trump, starting in 2015 when he was merely a candidate for the office. None of it was justified. They knew as they were doing it it was unjustified. And after he became President, they had to work furiously to cover up their abuse. They have yet to fully come clean.

Trump in the US, and others in Europe, capitalize on this resentment of the elite manipulators. In order to communicate effectively with these millions of disaffected, less-educated voters, he speaks bluntly and avoids "politically correct" phrases (the very phrases that made the Clintons, Bush and Obama appeal to the managerial elite). By saying, "That's bullshit", he, in effect, demonstrates to the masses that he's not bullshitting them. He's not dressing up his thoughts.

By saying FJB, we're saying "Guys, we outnumber these bastards. Why are we letting them ruin our lives and run our country into the ground?"

We're saying that we don't buy into the charade anymore. A leader can't mouth a meaningless phrase like "compassionate conservative" and then foist uncompassionate results on the people. Or "Yes, we can" and then for 8 years tell us incessantly what we cannot do. Quoting Lind:

Populist demagogues have launched similar counterattacks on dominant neoliberal establishments in all three realms of social power. In the realm of the economy, populists favor national restrictions on trade and immigration to shield workers from competing with imports and immigrants. In the realm of politics, populists denounce neoliberal parties and factions as corrupt and elitist. And in the realm of culture, populists denounce elite-promulgated multiculturalism and globalism, while deliberately flouting the norms of the "politically correct" etiquette that marks membership in the university-educated managerial elite.

Lind goes on to predict that populists will almost certainly lose the battle with the establishment. "History suggests that populist movements are likely to fail when confronting well-entrenched ruling classes whose members enjoy near-monopolies of expertise, wealth, and cultural influence".

Sad, but probably true. It's a hill worth (metaphorically) dying on, though. And if this be insurrection, so be it.

No theory, no promises, no morality, no amount of good will, no religion will restrain power. . . . Only power restrains power.

-- James Burnham (1943)

 

Thursday, January 25, 2018

What turns Leftist Tears into Rightie Tears?

What turns Leftist Tears into Rightie Tears?

Finding your daughter has put your mug in the dishwasher.


DOJ official to Nunes "Please don't release the [FISA] memo"

The link to this story was blocked by facebook, so I'm publishing it here.

Asyndeton vs Polysyndeton

Use asyndeton:
Smart. Terse. Effective.

Use polysyndeton: To add description, to bring clarity, to create drama, to inspire poetry, to artfully elevate one's writing.
And Use polysyndeton: For the structure, for the thoroughness, for the liveliness, for the children, for all that is good and holy.
And Use polysyndeton: When nothing else will do, when the mood strikes, when bad turns to worse, when making a long speech, when you get paid by the word, when you never get tired of your own writing.

Wednesday, June 15, 2016

Handshake failure trying to make SSL connection to MS SQL Server using Java JRE 1.6

I had a very strange Java problem today. I am posting the description of the problem and solution here in hopes that it might help out someone else in the same arcane pickle.

This morning, Windows installed two updates on my development laptop at around 5:00 am. The next time I restarted the laptop after these updates were installed, the program I work with (Oracle Xstore) stopped working. I know that it was working at 4:30 am, because I made screen shots of my latest fix to show the client. Imagine my dismay when it failed when I tried running it again at 10 am. [See actual exception text and the Windows update ids at the bottom of the post.]


Xstore would fail within 5 seconds of starting. It quit with a fatal error because it could not open any data sources. This is the kind of thing that might happen if the SQL Server service is not running. But in this case, the service was running and none of the Xstore files had been changed since before the update was installed.

My guess is that one of the updates is forcing MS SQL Server to be more cryptographically demanding when a client makes an SSL connection.

Boring details
In the case of Xstore, that client is the Microsoft JDBC driver. The failure is not the fault of the database driver, however, because Java programs rely on the Java Runtime Environment (JRE) to provide cryptographic services. No sense making everybody implement cryptography on their own.

In fact, Java allows for multiple implementations of the Java cryptography environment (JCE) API. There is a list of 9 of them that come with the JRE in the /lib/security/java.security file.

It turns out that the latest Java JRE (Java 1.8.x) can handle the higher demands of SQL Server. I tried running Xstore under the 1.8 JRE and it had no problem handshaking with MS SQL Server and opening the data sources. So why was it failing for me?

Unfortunately, our client uses an old version of Xstore (4.5.1) that requires an old version of the JRE (1.6.x). The default Sun implementations that come with the old JRE were just not up to the job. Sun made a trade-off of speed vs cryptographic strength that was not good enough anymore after Microsoft decided to strengthen the security around SSL handshaking.

[Specifically, the old Sun JCE providers limit the maximum acceptable prime size for Diffie-Hellman primes to 1024 bits - whatever that means. See http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6521495]

How to fix
The solution was to add another implementation of JCE from bouncycastle.org (a non-profit organization headquartered in Australia chock full of people who actually understand what a Diffie-Hellman prime is). I had to download their library to
/lib/ext folder (i.e. c:\xstore\windows\jre\lib\ext in my case). Then I added a line to the java.security file (which is just a text file) to add the bouncy castle library to the list of acceptable JCE providers.


  1. Copy bcprov-debug-jdk15on-154.jar to /lib/ext  
  2. Add a line to /lib/security/java.security as shown below.

Really boring details
Below is the list of JCE provider libraries that came with JRE 1.6 (found in /jre/lib/security/java.security). I commented out the original list. This is followed by the new list with BouncyCastleProvider included. Bouncy Castle was added as provider #2, and pushed the others down numerically on the list. It is advised to leave the Sun provider at the top where the JRE expects it.

# List of providers and their preference orders (see above):
#
#security.provider.1=sun.security.provider.Sun
#security.provider.2=sun.security.rsa.SunRsaSign
#security.provider.3=com.sun.net.ssl.internal.ssl.Provider
#security.provider.4=com.sun.crypto.provider.SunJCE
#security.provider.5=sun.security.jgss.SunProvider
#security.provider.6=com.sun.security.sasl.Provider
#security.provider.7=org.jcp.xml.dsig.internal.dom.XMLDSigRI
#security.provider.8=sun.security.smartcardio.SunPCSC
#security.provider.9=sun.security.mscapi.SunMSCAPI

security.provider.1=sun.security.provider.Sun
security.provider.2=org.bouncycastle.jce.provider.BouncyCastleProvider
security.provider.3=sun.security.rsa.SunRsaSign
security.provider.4=com.sun.net.ssl.internal.ssl.Provider
security.provider.5=com.sun.crypto.provider.SunJCE
security.provider.6=sun.security.jgss.SunProvider
security.provider.7=com.sun.security.sasl.Provider
security.provider.8=org.jcp.xml.dsig.internal.dom.XMLDSigRI
security.provider.9=sun.security.smartcardio.SunPCSC
security.provider.10=sun.security.mscapi.SunMSCAPI

Specific details
[The Windows updates were: KB 3163018, KB 3149135; for 64-bit Windows 10]

The root cause exception that I was seeing was:
Caused by: java.security.InvalidAlgorithmParameterException: Prime size must be multiple of 64, and can only range from 512 to 1024 (inclusive)
at com.sun.crypto.provider.DHKeyPairGenerator.initialize(DashoA13*..)
at java.security.KeyPairGenerator$Delegate.initialize(KeyPairGenerator.java:627)
at com.sun.net.ssl.internal.ssl.DHCrypt.(DHCrypt.java:100)
... 42 more

Wednesday, April 17, 2013

Panic Over Common Core Conspiracy

After listening to various speakers last night at a 9-12 meeting, I was not at all convinced that Common Core Standard (CCS) is the bugaboo it is being portrayed as. Unless one is willing to look a fool (and discredit an entire movement that might actually accomplish some good), it pays to investigate the claims made by speakers such as those we heard last night. I will focus on just one of their claims.

400 data points
The speakers were highly critical of the fact that CCS contains a data model with over 400 data points. I think most people do not even know what a data model is. Most do not work in IT and don't know what data points are. Complaining about "400 data points" (oh my!) sounds pretty ignorant to someone who works with data. Here is why:

A data point is just a fact. Your first name is a data point. Your middle name is another. Your last name is a third. Do you go by Mr. or Mrs or Ms.? Now we're up to four. Are you junior or senior or III or none of those. There are 5 data points just in your name.

Then we come to your address -- there goes another 6 "data points". Add in phone number(s) and email address(es) and you get even more. The number of data points is nothing to be scared about.

If you weigh yourself every day for 365 days, you will end up with 365 data points, but only one type of fact (your weight) is being collected. So it is wrong to use the term "data point"

To be precise, what people are really worried about are the attributes of each student that will be tracked in the database. The key word is attribute, not data point. Here is an example. My name is Robert Lawrence White. That is three data points. It's public information now. The attributes are (1) First_name (2) Middle_name and (3) Last_name.

When we complain about voting_status, we are not complaining about the data point, we are complaining about the attribute. Why is this important? Because if you don't want to look foolish, you will want to use the right terminology (saying "data point" when you mean "attribute" is like saying "doohickey" when you mean "rotator cuff").

Also, if you want to look up the actual information that is proposed to be gathered, you will want to know what to look for. If you look for "400 data points", you will most likely only find more rumors being spread about CCS and not the original source material.


The Data Model
The source material, by the way, is here:
http://nces.sifinfo.org/datamodel/eiebrowser/techview.aspx?instance=studentElementarySecondary

That shows the attributes (and relationships) that are proposed to be kept on elementary and secondary students. There are 416 attributes listed there. That is probably where the "400 data points" claim arises from. But there are a number of reasons not to panic about this number of attributes:

  • They are redundant. Social_security_number is listed twice. Middle_name and middle_initial are both listed.
  • It is non-normalized (a technical term meaning that a single piece of information is listed in more than one way). For example, race is one coded attribute (with 5 possible codes: white, black, asian, etc). But it is also listed as: White (true/false) and Black (true/false) and Asian (true/false) etc., because a person can be both white and black (e.g. Obama) or black and Asian (e.g. Tiger Woods).
  • It is comprehensive. All the attributes do not apply to every student. It is very unlikely that a student would have an accurate, up to date, non-null answer for every single attribute -- extremely unlikely.

This last point is the main reason people should calm down about this data model. This point is critical.

Yes, the data model asks what the student's voting_status is. This is defined as: An indication as to whether an individual is registered to vote in public elections. The possible answers are Registered, Not Registered and Not Eligible. Almost every elementary and secondary student will be listed as Not Eligible. How this information could possibly be kept up to date is beyond me. You may recall that the gov't Voter Registration bureaus do not keep this info up to date, how the hell is the school going to do it? The answer is, they simply are not. This data is never going to be anywhere close to accurate.

So why put it in the data model? Think of it this way: A data model is just a proposal for how to organize data. It is not a law that says all information in the model must be completed. It is only a proposed standard way of expressing data and its relationships in a way that can capture the closest depiction of reality its authors could imagine.

I have worked with two very large data model standards. One for the hotel/travel/leisure industry. As you can imagine, hotel companies do not have much need for the portion of the data model that deals with cruise ships, and vice versa. But the data model describes a lot of details about both.

I have also worked with retail point of sales data model. I can vouch that the data modeled by a ladies apparel store is not the same as for an auto parts store. But there is a single POS data model that purports to cover most of the data that either type of store would need to keep. By the way, there is a good chance that Wal-Mart is keeping more than 400 attributes on you -- and way more than 400 data points if you shop there a lot and use a credit card or checking account that identifies you personally.

Nothing to do with parent's politics
So think about voting_status for a second. At last night's meeting, we were told that this was to keep track of the parent's party affiliation: Whose kids are Republicans? Whose kids are Democrats? Whose kids listen to Glenn Beck? This turns out to be inaccurate. The data model tracks whether the student is registered -- not the parent -- and not any political affiliation.

Bill Bennett was right when he said that the opposition to Common Core Standards is like the tin foil hat people. What typifies the so-called "tin foil hat" people is that they believe something weird without evidence of it and try to scare others into believing their ignorant and conspiratorial misunderstanding. That is what is happening when people make up stuff about the gov't tracking the political affiliations of the student's parents.

Wednesday, February 06, 2013

A general dissolution of principles and manners will more surely overthrow the liberties of America than the whole force of the common enemy. While the people are virtuous they cannot be subdued; but when once they lose their virtue then will be ready to surrender their liberties to the first external or internal invader.
Samuel Adams, letter to James Warren, February 12, 1779
This strikes me as the #1 problem in today's society. The people who vote today do not recognize the principle that the constitution limits what the federal gov't can do. It is only by that constitution that they are morally empowered to act. The alternative is to be governed by kings and princes, earls and barons. It seems there is something in man that desires to be ruled by royalty.

We face many problems today, but none so severe as the ignorance of the foundation of our law and government.

Friday, June 03, 2011

It does not work

We have tried spending money. We are spending more than we have ever spent before and it does not work. I want to see this country prosperous. I want to see people get a job. I want to see people get enough to eat. We have never made good on our promises. I say after eight years of this Administration we have just as much unemployment as when we started. … And an enormous debt to boot!
Henry Morgenthau, Jr. - FDR Treasury Secretary, testifying before Congress, May 1939

Imagine two scenarios:
  • Today's awful economy but Obama loses his re-election bid
  • A booming economy, > 7% growth and < 6% unemployment, but Obama gets re-elected.
Which would you choose?  I would choose the second, of course.

But the second scenario just will not happen.  Because the main causes prolonging this dismal grey economy are Obama's various policies -- big gov't spending chief among them. Sadly, I have no doubt that the second scenario could not possibly occur.

The sad thing is, we could right this ship tomorrow with little or no further gov't spending.  We would just have to repeal three bills: Sarbanes/Oxley, Dodd/Frank and Obamacare. Regulations in those bills are hampering job creation. All it would cost to repeal them and reinstate the status quo ante would be the cost of printing the repeal bill and signing it into law.

Picture a lion, chained to the ground so she cannot hunt, weighed down with a heavy iron collar so she cannot lift her head to eat, and presented with oatmeal instead of meat.  Is it any wonder such a beast would waste away and become sick? Would you express astonishment if her muscles atrophied and her skin sagged? But release her and let her hunt easy prey and will she not recover?

Saturday, December 18, 2010

Three popular fallacies

Have you noticed how some people discuss tax policy as though they were helping Santa describe who gets what toy or how many?  Give earners a break on their taxes by lowering the rate and, they think, they've just done them a special favor.  However, hike their taxes and, you are doing them no wrong, they should just be grateful you didn't take it all.

The discussion inevitably devolves into a claim of just how much said tax break "costs" Americans in "lost revenue".  There are three fallacies required to arrive at this distorted notion.
  1. That all income and property belongs first to the gov't and we are lucky for whatever they deign to let us keep.  The government is not protector of property, but owner of it from its inception.
  2. That government spending levels are a given and can be held hypothetically constant while we determine the contribution of tax rate changes to raise or lower the deficit. 
  3. Also presumed to be constant are the rates at which we earn money, most outrageously, that we work just as hard no matter what we earn after taxes. Incentives effect behavior in every aspect of human desire and endeavor except employment.
You have to believe every one of these fallacies or the arguments against lower tax rates fall apart.  Let's take them in reverse order.

3. Incentives matter, except when they don't
We get coupons in the mail. At the food store we're told that if we buy one box of crackers, we get another one free. Companies pay for all or part of your health care insurance, put money in your retirement account, allow you to purchase shares of stock at a discount, maybe even a bonus at Christmas time. We promise our kids ice cream if they eat their veggies. My mom wielded a special disincentive she called "the black belt" that put an end to a good deal of bad behavior when I was growing up.

We understand incentives. We use them because they work.  So why, in discussions of tax policy, do we pretend that people are immune to incentives (and disincentives) to work. We are supposed to believe that people will show up and work just as hard regardless of how the government increases or decreases their net pay by lowering or raising the tax rates.

Having been poor, I can well recall that the ever-present need for money led me to work extra hours just about any chance I got. And the threat that my unreliable car was going to break down in an unforeseen way provided a disincentive against turning down opportunities to sock away a little extra bread. Thirty years later with the wolf nowhere in the vicinity of the door, I am much more responsive to incentives and disincentives, as I have rediscovered along the way the joys of goofing off (especially when goofing off with the family I love). It takes something extra to get me off the couch and into the office (more often than not, that incentive is the work itself which I enjoy when it involves some new puzzle). We had two rounds of layoffs where I work; that's a strong disincentive against slacking.

It is never explained what makes decisions to work or stay at home immune from incentive. Never are we told what puts work beyond the reach of a the calculus that informs most of our other decisions large and small. Could it be that in fact incentives do apply and that lower tax rates would result in more hours worked, more wages taxed and that the decline in tax revenue would not be exactly proportional to the decline in tax rate?

Consumers are smart. People will switch credit cards when offered 2% cash back.  They will increase their spending when they get 5% cash back instead of 2% on rather small purchases. They will refinance their homes to lower their interest rate 1%/year on payments that comprise roughly one quarter of their expenses.  And we are supposed to believe that savvy earners will not respond to a 4% decrease in tax rates on every extra dollar they make.

2. Every penny of government spending is required
Some people will acknowledge that raising tax rates depresses GDP and that money the government leaves on the table can be used to build businesses and put people to work.
Every dollar released from taxation, that is spent or invested, will help create a new job. -- JFK

But then these people say, "O, how we wish we could let people keep their property, but because the government has to pay its bills, tax revenue must be raised. And borrowing is no substitute for taxes, it merely shifts the tax burden from one generation to the next. No," they say, "taxes must be raised; we have no choice."

But of course we have a choice. We could simply decide not spend the money to begin with.  To believe that tax rate cuts are "blowing a hole in the deficit" (what a strange and inaccurate way of phrasing the issue) one has to believe that it is solely a lack of revenue that creates the deficit rather than the excess in spending. But in fact, raising revenue or lowering spending each have an equal effect on the budget.

A small portion of federal government spending is not really necessary. Yes, a small fraction, but a fraction of a very large number represents some real cabbage.  The rule in our household is that we don't buy what we can't afford.  We don't pretend to have access to money we will never get.  Most of us live by that simple rule.

How is it we have convinced ourselves that money spent by Congress is hallowed and money spent by those who earned it is tarnished by greed? Some have invented the notion that money spent by government helps the economy to a greater extent because of a multiplier effect: $1 spent by the government becomes $1.40 through a kind of magic that defies intuition. The theory is that the government is giving this dollar to people who will spend it immediately, putting back in circulation more quickly. This, of course, completely ignores the cost of distributing this boodle. Congress and all its agencies, the Executive and all its agencies, those who hand out this dough do not work for free.

And what is the cost of not taking the money? Zero.  It actually costs nothing to let people keep their own money. It's not hard to understand this, but what is hard to understand is why the state spenders refuse to rate the value of our spending as highly they rate their own.

Congress can avoid the half a trillion dollar deficit that high tax proponents claim to hate by not spending that half a trillion dollars. The real cost to the American people when spending exceeds revenues by a half a trillion dollars is the excess spending, not the constraints on revenue.

This points to another trick -- when they talk about the "cost" of a tax policy, by convention, they talk about its cost over 10 years. It would be difficult to find $500 billion to cut out of a single year's budget, but that is not the challenge. The challenge is to find a mere $50 billion in each of ten years. That's less than 1.5% of the budget (and about 1% of the proposed 2020 budget of $5 trillion).  Over the last 5 years the unemployment rate has gone from around 5.5% to around 9.5%, a 4% reduction of the workforce.  If the employers of this country, in aggregate, could of necessity cut back on its workforce by 4%, don't you think we could find 1.5% of the federal budget to cut?

Imagine going to your boss with the following argument: "Boss, I just bought a $50,000 car that I cannot afford.  I figure that given the high monthly payment on this car, I will run a monthly deficit of $500.  Thus, I figure that over the course of the year, the meagerness of the salary you pay me will cost me and my family $6,000. In short, you are costing me $60,000 over the course of 10 years.  What are you  going to do about this?"

1. It's our money, not yours
We're told we have to raise tax rates on high earners or it will "cost" Americans half a trillion dollars. We'll "lose revenue". Balderdash! The dollars are inanimate and agnostic. They don't care where they go.  The dollar resides in one account or the other. Nothing ever gets lost.

People who complain of "lost revenue" are suffering under the illusion that they have money that never really belonged to them to begin with. Despite rhetoric to the contrary, as the law is written today, each person actually owns all of his own money -- every cent of it.  And he deserves every cent that he has earned because whoever has paid him has done so in an even exchange of some sort.

At no point does this money belong to the government, nor to the American people in aggregate. So they have no call to say they lost some of this money.  In fact, the royalist notion that our government was instituted to possess our property rather than to protect it is the reverse of the idea that inspired our founders to declare us an independent nation. It is as un-American as any idea you could name.

So tax rate cuts for high earners are not giveaways to the rich, because the money has never been ours to give away.

Bear in mind these fallacies and read this article by economist Alan Blinder who claims that anything other than a tax hike on high earners is tantamount to Scrooge beating Tiny Tim to death with his own crutch.

Time to update the blog design

I just ran across a bunch of new templates from blogger.com.  Time for an update of the design.