Saturday, November 05, 2011

The Federal Pay Gap

The Washington Post reports that federal "employees are underpaid by 26.3 percent when compared with similar non-federal jobs, a “pay gap” that increased by about 2 percentage points over the last year while federal salary rates were frozen."
If I was being paid 26.3 percent more than I was worth, I'd ummm, quit my job and get a 26.3 percent pay increase somewhere else.
Yet, it turns out that the "quit rate" for federal jobs is one-third of the aggregate private sector rate. (source: http://www.aei.org/paper/100203)

Now, I don't believe that fed workers are lazy, shiftless shirkers sucking the government teat until they earn a cushy retirement. 

Heck, some of them are even my friends.

But none of them are going broke working for the feds, most of them gain a lot of satisfaction from their jobs, and there is categorically no way I can believe that they are taking a 25% pay cut just to "have a fed job". I don't believe they're getting paid "an overall federal compensation premium of approximately 61 percent", as the AEI paper claims, but don't believe for a moment that they are underpaid.

Saturday, October 29, 2011

The Madoffs

So, Mrs. Madoff reports that she and her husband tried to commit suicide after he admitted the essential facts to her.
If I were her, I'd be worried that they did successfully commit suicide, it's just that no one will know it for about 7 years.

Thursday, October 27, 2011

Occupy #Something

I had a ... chance? ... to pass through the occupysf area in front of the Fed Reserve building a couple of times a day early this month, when it was much smaller. It was reasonably tidy, pretty calm, and while I don't understand quite what they were asking for, it certainly seemed like it wasn't out of control.
I joked at the time that there were a lot of midwestern parents who would be thrilled to get the call from their kids that they "finally found an occupation".
I'm still baffled at what their desired outcome -- short- or long- term -- is, but sure, go ahead and camp out. I myself would worry a bit out the long-term cleanliness issue, and I have to imagine that there will be some sort of coherent idea or request that will coalesce, but since we don't have enough jobs to "get everyone back to work", this will have to do.
It is eerily reminiscent of the old adage "Something must be done. This is something. Therefore, it must be done."

Wednesday, September 21, 2011

What kind of barrier?

Jeb Bush and Florida's Education Success
"The union is one of the principle barriers to moving to a child-centered educational system."
The nice thing, though, is that you don't need to write well to write professionally. 

Tuesday, September 13, 2011

The American Jobs Act, by the numbers

So, let me get this straight. Mr. Obama is proposing giving payroll tax breaks totaling $245B to spur "employment".
Then he adds $100B in "infrastructure".
Then finishes off with $60B in unemployment aid.
“The purpose of the American Jobs Act is simple: to put more people back to work and more money in the pockets of those who are working,” Obama said. “It will provide a jolt to an economy that has stalled and give companies confidence that if they invest and hire, there will be customers for their products and services. You should pass this jobs plan right away.”
Ok, so the goal is to reduce unemployment. Let's assume that the target is 4 million jobs (which would likely reduce the unemployment rate to something like 7% and would, in my mind, spur substantial economic growth enough to put us on a much more optimistic growth path. The first stimulus created (or saved) "up to 3.6 million jobs" (per CBO), so 4 million isn't an unrealistic figure.
...“The question is whether, in the face of an ongoing national crisis, we can stop the political circus and actually do something to help the economy,” Obama said. “The question is whether we can restore some of the fairness and the security that has defined this nation since our beginning.”
[An aside: those are two questions. Two distinct questions. They are related in that one's concept of "fairness and security" is the crux of the political differences that have become such a "circus", but Mr. Obama is a participant in the circus.]

This quote seems to me to be relevant in thinking through what the overall impact of the plan will be:
“If you give somebody a tax cut and they just save it, then there are no jobs created,”said Nigel Gault, chief U.S. economist with IHS Global Insight.
Thankfully, he let congress wait until he told us how he planned to pay for it.
President Obama announced plans Monday to fund his $447 billion jobs bill largely by raising taxes on wealthier families, provoking immediate opposition from congressional Republicans. The sequence of event suggests that despite the recent pledges of greater bipartisanship, many of the fiscal and economic stumbling blocks that have left Washington gridlocked in recent months remain firmly in place. “This is the bill that Congress needs to pass,” Obama said. “No games. No politics. No delays.” The White House said Congress should pay for the jobs plan by imposing new limits on itemized deductions for individuals who earn more than $200,000 a year and families earning more than $250,000. Eliminating those deductions would bring in an additional $400 billion in revenue, aides said.
$400B in deduction elimination just might affect things like a small business owner (let's say an operator of a half dozen dry cleaners) open that next location (can't afford to go over $250K and become a millionaire!)
$40B in "closing loopholes for oil and gas companies". I'm not a huge fan of oil and gas companies, but I don't see their profits being usurious (the raw dollar figures are huge, but look at how many freakin' gas stations there are in America). I won't count this as a tax increase, because oil and gas companies can avoid the tax by not making investments that can't be deducted. I can only assume that those $40B in "loopholes" will prevent oil and gas companies from buying things (that might be made by other companies and umm, people [aka employees]). This "puts more people back to work"? Hate to be the doohickey manufacturer that supplies a lot of gelderfarb connectors to the oil and gas industry. Might be a tough couple of years, might have to lay off some people.
$18B taxing "carried interest" as regular income. The "tax Warren Buffet" tax plan. I don't mind this in that this type of earnings is more akin to what ordinary people think of as payroll income vs. investment income, but you're taking an additional $18B in taxes out of people's pockets.
$3B expense corporate jets over five years instead of seven. Hmm. Hate to be a corporate jet manufacturer this year. I don't know what the "correct" depreciation schedule for a jet is, but I know from the lessons of the 1990s and "luxury cars and yachts" that congress will be passing a bill in the next year or so restoring the old schedule in order to "save American jobs". Don't know how many people it takes to build a corporate jet, but assume that it's not going to be a growth area for the next little while.
Call it $418B in tax increases, $43B in tax "modifications" that -- whether you agree with them or not -- are not job creators.

So giving $245B in tax cuts - $418B in tax hikes = +3M jobs.
You're putting 3% more cash in the pockets of the "average" guy... at $40K/year, that's like $100/month? I guess that counts as "more money in the pockets of those who are working", but.. wow, doesn't make me think they'll be investing in a new car. Or a used car. Or a new washer. Or even that blender you've had your eye on. Maybe an extra trip to the restaurant once every couple of months, but more likely save it up for a nicer set of Christmas gifts, or a rainy day.

No matter how you slice it, unless these $250K-aires are stuffing the money into their mattresses, you're taking $418B out of disposable money and doling it out to "the people" in such totally insignificant amounts that it doesn't make sense to assume that any job growth will occur. I don't pretend to know the breakdown of how these $250K-aires use their $418B, but I would assume that at least some (and probably a lot more than "some") are spent on things like nice Christmas gifts, cars, washers, and yes, that new blender they had their eye on.

Not a chance of this working; not a chance that Mr. Obama thinks this will work. This looks to me like the essence of political theatre, and the only job that he wants to affect is one.

We are the jolt we've been waiting for.

Thursday, September 01, 2011

GOP forces Obama to reschedule jobs speech

... or so screams the top headline at washingtonpost.com. I'm pretty sure he could have gone ahead and given his big speech anyway, just might have to give up on the joint session (or should that read "scold session").
I don't get how the smartest man in the room can pick a process fight right here, right now, when everyone's coming back from vacation and heading back to work for the fall. It would seem like the "coincidental" selection of that particular date and time would be a petty slight by someone in the White House designed to cause a stir. Maybe this will carry through the weekend and keep people's attention off the release of the president's Mid-Session Budget Review; beyond that, the impact is now that his non-newsmaking speech will cause about 535 people to miss part of a football game.

But that's just my opinion. Others apparently believe this is a fundamental issue that represents a true test of Obama's leadership, and indeed threatens Western civilization itself! Jonathan Capehart, writing in the Washington Post:
In Obama, we have a president more grounded and comfortable in his own skin than many of the people he has to work with to govern this country. He’s bigger than most of us. So the petty slights that get a lot of us riled up probably don’t register to him. He’s a thinker and plotter with his eyes on the prize down the road, not the daily hysteria taking place on the road to get there.

Words fail me. Again.

When George W. Bush was president, harsh things were said all the time by congressional Democrats and their leaders. Some even crossed the line. Yet, while there was disdain for the man in the Oval Office, respect for the office itself was never in doubt. I seriously worry that it’s in doubt now among some Republicans. Each petty slight by Boehner is one more chip away at respect for the presidency.

Seriously?
I mean, really? This is going to somehow bring down the American system of government?
I don't see a lot of success in separating the office from the occupant. When I tried to discuss the dangers of ascribing success in office to the alleged superiority of the new occupant in 2008, I was assured that this time everything would work out. I'll continue to point out that the man is a politician, which (as far as I can tell) puts an upper bound on just how intelligent he can be. Our system survives the 'petty slights', failures, and outright incompetence of the adversaries, analysts, and occupants. I'm pretty sure it'll survive this, too.

Friday, August 19, 2011

What on Earth are they Thinking?

So now I'm supposed to criticize the President for taking a little vacation time? He's supposed to fly back to DC to "make a statement"... about how the Republicans are still obstructing him?

Sorry, I need a break from that noise at least as much as he does.

And the next report of this idiocy that mentions how much more vacation time Mr. Bush took at this point in his reign of error deserves a punch in the face. Reminds me of the apocryphal Oscar Wilde story about propositioning a woman: "we've already established what you are, madam. We're just trying to settle on the price".

If someone can tell me the number of days both men failed to receive the President's Daily Brief, then I'll start to be concerned.

Wednesday, August 10, 2011

Why I love the Washington Post

"Markets remain volative as Wall Street pares back some of the day’s losses in afternoon trading."

Volative? Is that some kind of mixture of volatile and explosive, kind of like 'interwebs'?

The shame of it is that someone will fix it before it becomes a meme. This could be, in the words of Tiger Woods (a former pro golfer), "Huge".

Tuesday, August 02, 2011

Not the Tea Party, dagnabit... the PEA Party

The Liquidity 'crisis' of the last few weeks has been a bit of fun entertainment. I guess I can understand those who paid close attention and are gnashing their teeth at the outcome, but I think some of the analysis is a little overblown.
So Ms. Marcus believes that the Tea Partiers are 'carjackers', eh? I have two responses, both informed mainly by Robert Axelrod's "The Evolution of Cooperation", something that hit the hollow walls of academia while I was in college. Axelrod's thesis was that Tit-for-Tat is a very robust way to work/cooperate/negotiate with others.
So I look at the last nine months (since the Nov. 2010 elections) as a tit-for-tat response by the noble, justified, and right-thinking "Republicans"[1] to the a stream of decisions taken by the ignoble, unjustified, and left-thinking "Democrats"[2] over the last few years. "It's time for everyone to eat your peas," implores Mr. Obama. I think one side has been eating peas now for a couple of years straight -- actually, I'd characterize it more as having peas shoved down your throat with a fire hose.
In this sense, the election of Scott Brown was a shot across the bow -- "we hired you to be the adult in the room, not to hold the firehose", and the 2010 elections were a firm rap on the knuckles -- "still with the peas, huh? We thought we told you to behave!" So he can come on TV and tell us all that it's time to eat peas, but I'd say it's time for him to eat some damn peas.
The debt limit framework gives both sides a chance to have another turn, and the electioneer-in-chief can restart the game by discussing how tasty these deficit reduction peas are. The "bush tax cuts for the rich" peas don't count toward the end goal, so we can skip that trope. If the president dares, maybe real tax reform -- yes, the elimination of loopholes "for the rich", a long-term reduction in sacred cows like the mortgage interest deduction, [gosh, sounds a lot like the Bowles-Simpson plan] might be possible.
My second response is to Ms. Marcus herself. Since tit-for-tat suggests that she might become more... charitable... if she realizes that tit-for-tat is in effect, I have to tell you that she is a barely literate serial shoplifter and plagarist who gets her talking points straight from the DNC.
Your move.

[1] It's nice that they put the label (R) after the names of the reactionary, racist, rich-loving homophobes.
[2] It's also nice that they put the label (D) after the names of the ones who are deceptive demagogues who are dumber-than-a-rock.

Tuesday, July 12, 2011

So Much for the Pelosi Plan

President Obama explained:

“The vast majority of Democrats on Capitol Hill would prefer not to have to do anything on entitlements. Would prefer, frankly, not to have to do anything on some of these debt and deficit problems.... And what I’ve tried to explain to them is number one, if you look at the numbers, Medicare in particular will run out of money, and we will not be able to sustain that program no matter how much taxes go up. I mean, it’s not an option for us to just sit by and do nothing.”

Wednesday, June 22, 2011

Reliable Tally of Gay Population Proves Elusive

I like to do what I can to tie together information that might not be closely linked on the interwebs. For the 2020 census, hopefully they can hire some additional census takers to check:

It's Always in the Last Place You Look
"Study: Nearly Half of College-Educated Gay Americans Are in the Closet at Work"--headline, Yahoo! News, June 21

Thursday, June 09, 2011

How's that hopey-changey thing workin' for ya, Newt?

After virtually all of Newt Gingrich’s senior aides resign, the former House speaker pledges to continue his run for president.

Wouldn't that be "wobble" for president? Or is "waddle" a better fit?

Tuesday, June 07, 2011

Will the last economist leaving please turn off the lights?

“While I am looking forward to returning home to Chicago, I will always be proud of the years I have spent working for this President,” Goolsbee said. “I believe that his judgment, his courage in confronting the worst economic crisis of our lifetimes, and his commitment to the American people have made a tremendous difference for the nation.”

Tremendous difference indeed.
At least he didn't describe how smart Mr. Obama is; I've had a couple of years to assess that one myself.

Thursday, May 12, 2011

Oracle Patch Notes

[The header link is for the Oracle Support Document for 11.2.0.2 Patch 5; login to Oracle support is required].
I'm updating my development box with the latest quarterly critical patch update (CPU) from oracle. Actually, I'm going one step beyond that; Patch 4 is the CPU revision (from early April), but by the time I checked for the download, Patch 5 was available.
I'm installing this on a Windows Vista64 box; this information applies specifically to this combination (although it looks like this is a common windows/oracle issue).
The patch instructions are pretty standard: shutdown all oracle services, shut down the MS Distributed Transaction Coordinator service, and apply the patch.
This didn't work for me; there were two problems that I ended up having to resolve.
1. The installation log is documented as follows:
Inspect the opatch.log file generated in %ORACLE_HOME%\cfgtoollogs\opatch for any errors.
My first error messages indicated that the installer couldn't create the log file in C:\Program Files\Oracle\Inventory\logs. That ended up to be pretty easy to resolve -- my domain account didn't have permission to write to Program Files (and probably shouldn't have such permissions in general), so I had to grant "write" privileges to the \logs directory explicitly. This is one of those cases where "setup.exe" can do things that individual logins can't. Since OPATCH isn't named "setup.exe", you don't get the inherited ability to write to that directory.
However, access to the \logs directory wasn't sufficient. Opatch needed to do something to \Inventory\install.platform as well, so I needed to update permissions on that directory as well.
Lesson: The account used to run opatch must have write access to C:\Program Files\Oracle\Inventory and Inventory\logs.
(2) After resolving the permissions issue, opatch failed with a different error -- error code 74 -- with a long list of ora .dlls that were listed as "still active".
I had shutdown all services properly.
I had shutdown the Distributed Transaction Coordinator service.
So, maybe something got hung up, let's restart the machine.
No change -- same error, same files locked.
The error code 74 is common enough to get some Google hits, but the standard response is to "restart the database", or, failing that, "use this fine freeware application to review your open files and determine which service is to blame". ProcessExplorer (from msdn technet) to the rescue...
A process named “wmiprvse.exe” had the dlls open. That is the Windows Management Instrumentation service. Stop that service and you get:

Return Code = 0

The local system has been patched and can be restarted.

OPatch succeeded.

Don't forget to run catcpu.sql after the patch updated is complete!

Monday, May 02, 2011

Revenge we do in 2 hour movies, Vengeance takes a little longer...

Fine art and pizza delivery, what we do falls neatly in between!
- David Letterman

... and did I read right that it was information provided by Gitmo detainees that proved vital in acquiring the leads that led to last night's action?

Today's achievement is a testament to the greatness of our country and the determination of the American people.... Tonight, we are once again reminded that America can do whatever we set our mind to.... Let us remember that we can do these things not just because of wealth or power, but because of who we are: one nation, under God, indivisible, with liberty and justice for all.

Let's not forget to add the keyword 'patience' to the list. The last ten years have proven that patience is too important - and too rarely provided - to discount in our political calculus.

Tuesday, April 26, 2011

Beware of Nulls

I ran across what I think was an interesting issue recently.
We've been trying to implement a text search component using Oracle 11.2.0.2, featuring an 11g enhancement called SDATA (structured data) sections. It helps solve one of Oracle Text's biggest issues -- that of "mixed" queries (a query that contains a basic text search with structured data qualifiers -like date limits- that are supposed to make the query faster).
In past versions, this type of query would never perform as fast as either a straight text query or a structured-only query; the optimizer would pick one way or the other to generate the list of matching rowids for one part of the query, then run the other part to generate the "final" list of matching rows. So the query takes longer, when the user intuitively feels that the additional information provided should help make the query faster.
In this case, our testing was giving us some unexpected results when we were filtering SDATA negation-- chiefly, the resultset count of matches was lower than it should have been. So, for example, a query for something like 'Ben Franklin and SDATA(language != "FRENCH")' did not return the right number of rows based on the tester's description of the test data.
Investigation revealed that the core issue was that the language field was null in some documents (even though the XML document described the element as mandatory).
Here's an example:
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning, Oracle Label Security and OLAP options

SQL> create table test_tab
  2  (text        varchar2 (30),
  3  language  varchar2 (10));

Table created.

SQL> insert all
  2    into test_tab values ('Bon Homme Richard', 'ENGLISH')
  3    into test_tab values ('Bon Homme Richard', 'FRENCH')
  4    into test_tab values ('Bon Homme Richard', 'CANADIAN')
  5    into test_tab values ('Bon Homme Richard', '')
  6    select * from dual;

4 rows created.

SQL> insert into test_tab select object_name, null from all_objects;

54562 rows created.

SQL> create index test_idx on test_tab (text)
  2    indextype is ctxsys.context filter by language;

Index created.

SQL> select score (1), text, language from test_tab
  2    where contains(text,'(Bon Homme Richard)', 1) > 0;

  SCORE(1) TEXT                           LANGUAGE
---------- ------------------------------ ----------
        15 Bon Homme Richard              ENGLISH
        15 Bon Homme Richard              FRENCH
        15 Bon Homme Richard              CANADIAN
        15 Bon Homme Richard


SQL> select score (1), text, language from test_tab
  2    where  contains(text,'(Bon Homme Richard)
  3    AND sdata (language != "FRENCH")', 1) > 0;

  SCORE(1) TEXT                           LANGUAGE
---------- ------------------------------ ----------
        15 Bon Homme Richard              ENGLISH
        15 Bon Homme Richard              CANADIAN
In this case, the fix was to correct the source data to set the language field properly. In a case where null values are permitted, the searcher [or developer] needs to be aware of these comparison rules:
select score (1), text, language from test_tab
where  contains(text,'(Bon Homme Richard)
AND (sdata (language != "FRENCH") OR sdata(language is null))', 1) > 0;

  SCORE(1) TEXT                           LANGUAGE
---------- ------------------------------ ----------
        15 Bon Homme Richard              ENGLISH
        15 Bon Homme Richard              CANADIAN
        15 Bon Homme Richard              

Fine-Grained Auditing

Someone recently asked about Oracle fine-grained auditing (FGA) and how to apply it to a situation in which "everyone except Joe in HR gets audited".
Here is the sample solution I provided (where the table owner FGATEST is the user that won't get audited):
conn / as sysdba
create user fgatest identified by fgatest;
grant connect, resource, dba to fgatest;

connect fgatest/fgatest
create table foobar (fooid number, bar varchar2(30));
grant select, insert, update, delete on foobar to PUBLIC;


BEGIN
  dbms_fga.add_policy(
  object_schema => 'FGATEST',
  object_name => 'FOOBAR',
  policy_name => 'FOOBAR_AUD',
  audit_condition => 'sys_context(''userenv'',''session_user'') != ''FGATEST''' ,
  statement_types => 'SELECT,INSERT,UPDATE,DELETE');
end;
/

insert into foobar select 1, sys_context('userenv','current_user') from dual;
insert into foobar select 2, sys_context('userenv','session_user') from dual;
select * from foobar;

select username from dba_users where account_status='OPEN';
conn tst/tst
insert into foobar select 3, sys_context('userenv','current_user') from dual;
insert into foobar select 4, sys_context('userenv','current_user') from dual;
The script creates the FGATEST user, table, and FGA policy, then adds rows as both FGATEST and TST. Our expectation is that the inserts and selects performed by FGATEST won't be audited, but the ones performed by TST will. Let's check it out:
conn / as sysdba
select db_user, os_user, object_schema, object_name, sql_text from dba_fga_audit_trail;

DB_USER              OS_USER              OBJECT_SCHEMA        OBJECT_NAME          SQL_TEXT
-------------------- -------------------- -------------------- -------------------- ----------------------------------------
TST                  BARCLAY\kengel       FGATEST              FOOBAR               insert into foobar select 3,
                                                                                    sys_context('userenv','current_user')
                                                                                    from dual

TST                  BARCLAY\kengel       FGATEST              FOOBAR               insert into foobar select 4,
                                                                                    sys_context('userenv','current_user')
                                                                                    from dual

TST                  BARCLAY\kengel       FGATEST              FOOBAR               select * from foobar

Thursday, January 20, 2011

Killing off the Eliminationist Rhetoric

Andrew Sullivan writes:
So far, the paranoia and conspiracy theories dominate - but they also dominate the atmosphere of the far right. And when a mentally ill young man complains of the "Broken United States Constitution", or regards legal tender as illegitimate “I did not pay with gold and silver!”, some of this nuttiness has penetrated.

No. It means that his rice krispies were talking to him.

You might want to wait a bit before we engage in this deep, meaningful discussion of civility until such time as the accusation of nuttiness or stridency doesn't also carry the implication of manslaughter -- or worse.