How to recapitalize the banks without handing them money outright

February 12th, 2009 Mark Turansky 2 comments

I recently read an article about how the tax cuts in the stimulus package would affect me.  This particular sentence caught my eye:

Officials estimated it would mean about $13 a week more in people’s paychecks this year when withholding tables are adjusted in late spring. Next year, the measure could yield workers about $8 a week. Critics say that’s unlikely to do much to boost consumption.

I originally thought the same thing.  $1000 over the course of a year is not much money for me to spend.  I wouldn’t explicitly spend $13 more per week.  It would sit in my checking account, because that’s where my direct deposit goes.

And that’s the point.  It will be deposited in the bank (specifically checking, which were the original bank accounts needed for reserve requirements) and sit there, quietly recapitalizing banks with taxpayer money but leaving the money in taxpayer hands.

I like this plan — if this is, indeed, the purpose of the tax cut — a whole lot better than TARP simply handing money to banks without accountability.  Recapitalize with my money, but let it remain my money.

It’s a little bit brilliant.  Forget the critics.

Categories: Business Tags:

An economic silver lining

January 27th, 2009 Mark Turansky No comments

Anyone reading the financial news these past several years is well aware of the impending stress that Baby Boomers will put on the retirement and entitlement systems.  In a nutshell, the U.S. is underfunded for the Boomers’ retirement to the tune of dozens of trillions of dollars.

It occurred to me — and probably many real economists, though I’ve not read about it yet — that the current meltdown of the financial system will require many Boomers to postpone retirement, to keep on working, thus contributing back to the system and staving off the impending financial crisis of the entire generation’s retirement.  The stock market is down 40% from last year.  That’s a lot of wealth lost.  Moreover, CDOs were Triple-A rated securities.  Conservative pension funds devoured them for the yield they promised because they were, after all, rated highly and therefore not risky to pensioners.

It turns out those CDOs were risky.  Lots of wealth was lost from mutual funds, 401ks, and retirement plans.  There is less equity in people’s homes than a year or two ago.  Anyone planning for retirement is taking this into account.  Many of them will have to continue working.  This leaves more workers paying into the entitlement system (which retiring Boomers would have turned upside down).  There will be more savings and investment.   Health insurance will cover these millions of workers longer before they join Medicare, thus reducing the taxpayer’s burden.

I don’t know how much of an impact this would make on our underfunded entitlements.  It will be non-zero, but it will not be as much as we need.  We’ll still be in the hole, but I wonder if that hole is a bit shallower now.

Categories: Business Tags:

The Zombie Horde vs. A Posse of Cowboys

January 7th, 2009 Mark Turansky 2 comments

A recent blog entry attempts to paint Big M Methodology as a zombie creating process and quotes Peopleware as the sole evidence of its argument.  You, the poor developer, are turned into a mindless zombie by having a defined process to follow.  You are given no license for creativity, no room for error, and you are discouraged from making mistakes.

This apparently makes you a zombie that must be told what to do and how to do it.  Or, to put it another way, this makes you a grown-up software developer that can write code for the space shuttle.

Fast Company has a fascinating article called “They Write the Right Stuff” that looks into the methodology that produces bug free software.  The software powering the space shuttle has to be bug free or people die.  Quality matters.  It was originally written in the internet stone age (1996), but it is just as relevant today as it was a decade ago.

[The shuttle group] is aggressively intolerant of ego-driven hotshots.In the shuttle group’s culture, there are no superstar programmers. The whole approach to developing software is intentionally designed not to rely on any particular person.

Mindless zombines cannot be superstars! Joel said that only superstars can hit the high notes!  How can bug free software be written by zombies?!  Don’t CMM Level 5 certified organizations (of which there are only a handful in the world) know they need superstars to send space ships into the wild blue yonder?

The blog entry makes the claim that disallowing developers to make mistakes is teamicide.  The blog author further claims that by stifling creativity, management and Big M Methodology shows distrust of their developers which dooms a project in the long run.

Again, someone forgot to tell the guys writing bug free code:

And the culture is equally intolerant of creativity, the individual coding flourishes and styles that are the signature of the all-night software world. “People ask, doesn’t this process stifle creativity? You have to do exactly what the manual says, and you’ve got someone looking over your shoulder,” says Keller. “The answer is, yes, the process does stifle creativity.”

And that is precisely the point — you can’t have people freelancing their way through software code that flies a spaceship, and then, with peoples lives depending on it, try to patch it once its in orbit. “Houston, we have a problem,” may make for a good movie; it’s no way to write software. “People have to channel their creativity into changing the process,” says Keller, “not changing the software.”

An interesting idea arises from Big M: You don’t fix bugs, you fix the process that allowed the bug in the first place.  The shuttle group “avoids blaming people for errors. The process assumes blame – and it’s the process that is analyzed to discover why and how an error got through.”

Capability and Maturity Model

CMM certification is an interesting thing, and I find the wording particularly enlightening:  “Maturity model.”  A CMM certified process is for grown-ups, not start ups.  It’s mature and rational, not for the cowboy coders who stay up all night slinging code from the hip in a heroic effort to ship version 1.0.

Tracking bugs, prioritizing issues, performing QA, and having basic version control and configuration management is the nuts and bolts of Level 2.  Many organizations have these basic project management processes in place and would qualify for level 2 certification. Level 3, though, is Big M Methodology and Process.  Without a defined process (level 3) that emits metrics (level 4), how can an organization possibly attempt to improve development, increase quality, and reduce costs via process improvement (level 5)?

When a process improvement demonstrably reduces the defect rate, the end user benefits with higher quality software at a reduced price.  This is absolutely required in the space shuttle, but isn’t it desired in everything else, from our operating system (no blue screens of death!) to our applications?  I don’t like kernel panics or having my computer crash from a bad driver.  I don’t like losing all my data because a bug shutdown my program.  A posse of cowboys can hack out a bad version 1 of their product, but it’s the Big M zombies lead by mature management that engineers the quality software I want to buy or manage our nuclear reactors.

It’s Just a Software Problem

The B-2 bomber wouldn’t fly on its maiden flight — but it was just a software problem. The new Denver airport was months late opening and millions of dollars over budget because its baggage handling system didn’t work right — but it was just a software problem. This spring, the European Space Agency’s new Ariane 5 rocket blew up on its maiden launch because of a little software problem. The federal government’s major agencies – from the IRS to the National Weather Service — are beset with projects that are years late and hundreds of millions of dollars over budget, often because of simple software problems.

blue-screen-of-death-airport.jpg

Talent does vary by developer — after all, we’re not resources and interchangeable cogs — but we need better processes for developing software.  We need process improvement to increase quality, which leaves more time for more features because we’re not consumed by rework issues.  We need to reduce the cost of software development, which reduces the price and increases demand.

We need developers to stop thinking all their creativity goes into the code because their creativity should be put into improving how we write code in the first place.

Categories: Engineering, Technology Tags:

Two “orders of magnitude” is one too many

November 23rd, 2008 Mark Turansky No comments

An “order of magnitude” gain in efficiency, whether its a business process or computer program, is something to strive for, but two orders of magnitude, despite sounding cool, is one too many.

Why?

Assume you have a perfectly linear process — say, a computer program processing data –  whereby you can add additional processing nodes for parallel processing.  If 1 run of your program takes 1 minute and you’ve got 100 iterations, you can reasonably expect to wait for 100 minutes.

100 units of work x 1 minute per unit = 100 minutes elapsed time

But since your program can scale linearly, you can add an additional program and cut the time in half!

(100 units x 1 minute) / 2 processors = 50 minutes elapsed time

Similarly, you can scale up to 4 processors and reduce elapsed time to 25 minutes.  This is perfect linear scaling and with your big math brain, you figure out that you can get a 10X gain by scaling up to 10 processors!

So far, so good.  10x is an order of magnitude and represents a 90% decrease in elapsed time.

(100 units x 1 minutes) / 10 processors = 10 minutes elapsed time
10 minutes is 10% of the original 100 minute elapsed time. 10x gain!

I think the second order of magnitude is a waste of time.  That’s right, it’s not worth going for another 10x gain.

Why?  It costs too much!

Assume that a server costs $1000 and your process will consume the entire processing capacity of a server.  Scaling up to 10 servers costs $10,000.  You reduced processing time by 90% for $10k.

Math is not on your side for the second order of magnitude.  Taking your elapsed time from 10 minutes to 1 minute is another order of magnitude, but it also is 90% of your cost!

You have a perfectly linearly scalable process, right?  So, reducing your 100 minute elapsed time requires 100 servers at $1000 each.  That’s $100,000!  Meanwhile, already achieved a 90% reduction for $10,000.

90% of the gain is achieved by 10% of the investment.  The remaining 10% of the gain requires 90% of the investment!

Pareto was right.  The 80/20 rule applies, but in our case its 90/10.

The chart below shows two orders of magnitude.  You can’t help but notice the point of diminishing returns.  It doesn’t seem worthwhile to go for that second order of magnitude.

100x.jpg

Categories: Business, Technology Tags:

Best technical definition ever

November 14th, 2008 Mark Turansky 1 comment

“ORA-12505: TNS: listener does not currently know of SID given in connect descriptor

What does that error mean?  The site below defines the error eloquently:

ora-12505.png

Categories: Engineering Tags:

Being an oversexed man in a whorehouse

November 12th, 2008 Mark Turansky 1 comment

What can you learn from the consumer confidence index?  Plenty, if you’re a fan of Warren Buffet!

Let’s look at this graph for a moment and focus solely on the points where consumer confidence slipped below 70: 1974, 1980, 1982, 1990/1, 2008.

confidence.gif

1974

The first big dip on the consumer confidence graph above is October 1974 when the stock market tanked 40% in a single year (why does that sound familiar?).  How did Uncle Warren feel at that time?  “Like an oversexed guy in a harem.” The quote is from a Fortune article from 1974.

Note that consumer confidence cratered in 1974, touching below 60.  Buffet’s feeling was “Now is the time to invest and get rich.”

And what happened after the crash? Up 30% in one year.  Up 60% in two years.

1974.png

1980

Another big dip in consumer confidence in 1980.  Lower than 1974.  If you were waiting for clear bargains in the stock market, how would you have faired?  Had you bought in the panic, you’d have gained nearly 30% in a couple of months.

1980.png

1982

Consumer confidence gained after the 1980 dip, only to retreat again in the recession of 1982.  From nearly any point in 1982 (DOW around 850) to nearly any point in 1983 (DOW around 1250), you’d have gained 47%.

1982.png

1990

Another hit to consumer confidence in 1990-1991.  Bill Clinton campaigned with the theme “It’s the economy, stupid!”   From the panic to the recovery by Clinton’s inauguration day (a little over a year), you’d have gained33%.

1990.png

NOTABLE CRASH – 1987

Black Monday (again in October!) saw a 22% decline in prices.  Your shares would have recovered in two years, but buying in the panic yielded 16% in one year and 50% in two years.

1987.png

 RECESSION 2002

We all know the market hit record highs in recent years, but simply focusing on the panic (again, October!) yielded 25% in a year and lots more if you held for another 5.

2002.png

TODAY!

It’s October again and the market is down 40% year over year.  The world is ending!  Panic ensues!  Everyone get out of the market before all the banks melt!

present.png

Consumer confidence is as bad as it was in 1974, when that decade saw oil shocks and a renewed focus on ending dependence on foreign oil.  Sounds familiar.  History repeats itself.

But “it’s different this time!”  Maybe.  Yes, we’ve lived beyond our means as a nation for twenty years.  Yes, the housing bubble is causing a global financial mess that requires us to recapitalize our banks, but the Asian Tigers did it in the late 90s and Sweden did it in the early 1990s.  It costs money and it’s painful, but we’ll recover.  The dollar, incidentally, has surged during this global crisis.  Traders are moving towards a currency and economy they are confident will recover.

We might be good and truly screwed or this might be another deep panic by the masses.  It might be a good time to be an oversexed man in a whorehouse.

Categories: Business Tags:

The stock market, math, and you

October 14th, 2008 Mark Turansky 1 comment

It’s funny how math works.  The Dow Jones Industrial Average has declined 40% from its high last year of 14,000.  Sure, that’s bad if you’re near retirement and had all your money wrapped up in stocks.  It’s a fantastic buying opportunity if you’re young.

40% down means a 70% increase when it returns to the same level.  8300 is 60% 14,000, but 14,000 is 168% of 8300!

The Dow closed Friday 8/10/2008 at around 8300 points.  It’s a five year low.  When it hits 14,000 again, that represents a 69% increase from Friday’s closing price.  If it takes five years to return to the 14k level, that’s a very respectable 14% increase per year, not including reinvested dividends.  The dividend yield on a Dow ETF (I like DIA) is 4%, but even at 2% your five year return is increased another 8% for a total of 77% gain. A 4% yield would increase your five year return to 86%.

Consider the following table showing a 2% yield reinvested year over year:

1	$10,000.00  	0.00%
2	$10,200.00  	2.00%
3	$10,404.00  	4.04%
4	$10,612.08  	6.12%
5	$10,824.32  	8.24%
6	$11,040.81  	10.41%
7	$11,261.62  	12.62%
8	$11,486.86  	14.87%
9	$11,716.59  	17.17%
10	$11,950.93  	19.51%

Let’s not forget that the yield is a stock’s current dividend compared to price.  Your yield might be a lot higher.  How so?

If you buy stock in, say, Verizon at yesterday’s closing price (around $29), your dividend yield would be 6%.  Not too shabby.  $0.46 per share per quarter is $1.84 annually.  $1.84 / $29 = 6%.

But what happens if VZ increases their dividend two years from now?  Instead of paying .46 they start paying .52 per share.  Yield on your investment at $29 grows to over 7%!  The price of the stock may rise and new investors might still get a 6% yield, but your money is now earning 7%.  If they increase the dividend again two years later to .57, your yield relative to the price you paid will increase again to nearly 8%.

This blog post cannot be considered investment advice for anyone.  Consult your own financial adviser and be sure to diligently research any investment you’re thinking about making.  Just know that math is on your side should you invest wisely.

Categories: Business Tags:

Money as Debt

September 23rd, 2008 Mark Turansky 2 comments

Want to know why the credit crunch is going on? Watch this highly enlightening video (broken down into 5 individual movies to fit YouTube limits). The video clearly explains why a “run on the bank” is deadly to an individual bank, and why there would be a “credit crunch” when there’s a run on all the banks.

And that’s what’s going on today. We’ve got a run on all the banks. Money created as debt is only good when the debts are repaid (which isn’t happening with rising foreclosure rates), so the entire highly leveraged system is crashing down. And that’s why we need a $1 trillion bailout of the financial system.

The fractional reserve system (as practiced by all banks today in the world) is awesome, scary, brilliant, and fragile. Money created as debt is fascinating and frightening. No debt == no money. That’s what happened during the Depression. Banks stopped or couldn’t lend

“That is what our money system is. If there were no debts in our money system, there wouldn’t be any money.” ~ Marriner Eccles, Chairman and Governor of the Federal Reserve Board

Enjoy or shudder!

Categories: Engineering Tags:

HOW TO: Enable debug and JMX ports in your java app

September 15th, 2008 Mark Turansky No comments

Ever have a stuck or deadlocked thread in a production application? Use JMX to inspect what’s going on inside your JVM, which includes thread views.  It’ll show you which threads are running, waiting, or blocked and where in the stacktrace they currently are.  I’ve used this information to find blocked threads in strange places.  JMX also shows you the memory usage of your java process, including memory consumed by classloaders in permspace.

The debug options will open your debug ports, naturally, and let you connect your debugger.

All you have to do is run your java process with these startup options:
DEBUG
-Xdebug -Xrunjdwp:transport=dt_socket,address=$DEBUG_PORT,server=y,suspend=n
JMX
-Dcom.sun.management.jmxremote.port=$JMX_PORT -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
Look in your $JAVA_HOME/bin and you’ll see a jconsole executable. That GUI will let you connect to the machine running your java process on the port specified.

I hope you find these tips useful.  Both have been extremely useful to me (as well as adding optional profiling vars to a JVM!).

Categories: Engineering, HOW TO Tags:

Art imitates life

September 14th, 2008 Mark Turansky No comments

Tina Fey is a deadringer for Sarah Palin. Funny stuff.

Categories: Politics Tags:

Switch to our mobile site