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/ 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]

How to fix
The solution was to add another implementation of JCE from (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 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/ 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/ 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):

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: Prime size must be multiple of 64, and can only range from 512 to 1024 (inclusive)
at com.sun.crypto.provider.DHKeyPairGenerator.initialize(DashoA13*..)
... 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:

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  Time for an update of the design.

Sunday, August 22, 2010

Do the people rule or are they ruled by their betters?

I forced myself to listen to Ted Olson on Fox News Sunday defending the judge who overturned California's Prop 8 that prohibited gay marriage.  He must have won most of his cases by boring his opponents to death.

Somehow, I managed to stay awake (until the very end).  He kept talking about how the Supreme Court has said 14 times that marriage is a fundamental right in America.  I don't know anyone who disagrees. Not all rights are specifically enumerated in the Constitution.  The question is whether the definition of marriage is so broad as to include the union of same-sex couples.  The question is not whether same-sex couples should live together.  That they do and our constitution protects that.  The question is whether such couples can be married.

I personally believe that they should be allowed to marry, however, the people of California voted to prohibit the gov't from equating the formal union of same-sex couples with the formal union of monogamous, opposite sex couples. It has been quite a while since the US has tolerated plural (non-monogamous) marriages, but even when it did, such couples were composed of opposite sex members.  Two women were allowed to marry one man, but not each other.

So the notion that same-sex couples can be married is a very new one.  It is doubtful that any of the justices who previously ruled on the matter had in mind same-sex couples.  If this is not the case and the record contains references to alternate definitions of marriage, Olson did not mention them.

In particular, Olson referred several times to Loving v Virginia, the ruling that overturned anti-miscegenation laws in this country.  His point was that this case established the principle that the state cannot dictate who can marry whom, for example, that a black person cannot be prevented from marrying a white person.

Again, I do not think that anyone disagrees with that point.  The question is really whether the state must regard the union of a same-sex couple as a marriage.  Once this redefinition of marriage exists in the law, then the state has no say in who may marry whom.  For example, the state could not prevent a black man from marrying a white man.  Clearly, the justices who decided Loving v. Virginia did not rule that same-sex unions are the equivalent of marriage or they would have written so at the time.  Olson seemed to believe that Loving v. Virginia did establish this kind of equivalence, but the evidence and history contradicts him.  Surely someone in the 42 years since that case was decided would have been able to point to where the justices redefined marriage to include same-sex unions.

What the justices did conclude, unanimously, was "The Fourteenth Amendment requires that the freedom of choice to marry not be restricted by invidious racial discriminations. Under our Constitution, the freedom to marry, or not to marry, a person of another race resides with the individual and cannot be infringed by the State."

They pretty clearly limited their observations to racial differences between opposite-sex mates.  There is no mention of the sex of those being married and certainly they presumed such a marriage to be composed of one man and one woman.  As for the race of the man and woman, take your pick.  In fact, they wrote, "Marriage is one of the 'basic civil rights of man,' fundamental to our very existence and survival...."  What makes marriage fundamental to our very existence and survival?  No doubt this refers to sexual procreation.

Let me clear: I support gay marriage.  I want all my gay friends to find someone they love enough to marry.  I hope that my fellow citizens care enough to allow them to marry.  But I am disgusted at the notion that arrogant judges overturn the expressed desire of the people.  Prop 8 did not prevent loving gay couples from living together.  It prevented marriage from being defined to include such unions.

Loving v. Virginia also stated this, "To deny this fundamental freedom on so unsupportable a basis as the racial classifications embodied in these statutes, classifications so directly subversive of the principle of equality at the heart of the Fourteenth Amendment, is surely to deprive all the State's citizens of liberty without due process of law."  I can't help but think of sexual orientation as equally unsupportable as a basis for classifying couples and think that to deny gay people the privilege of state recognition of their unions is also not treating them equally.  I hope that some day a majority of my fellow Americans will vote to redefine marriage, or at the very least establish its equivalent for gay couples.