I don’t understand the immigration debate/issue. It seems to me in a world of issues that come in so many shades of gray, this one is clearly black and white (no, not a racist remark). The way I see it, immigration is actually two issues:

1) National security. The first and most important thing in national security is securing the borders. That means patrolling it with such forces as the coast guard, border patrols, etc. For the most part, this should be sufficient. In parts of the border where patrolling isn’t enough of a deterrent to illegal border crossing, building walls, fences, etc. should be employed. That way, we can track the comings of anyone across the border.

This doesn’t mean of course that we don’t want people crossing the border. We just want to know who, when, where, etc. plus have control so if there is someone crossing we don’t want to (ie. drug lords, murderers, terrorists, etc.) we can actually stop them.

2) Immigration itself. From everything I can glean from the debate as it stands today, nobody is saying we don’t want people coming here. Sure, Republicans stress they don’t want them coming illegally, and Democrats call them racists for it (something I really, really don’t understand), but no one is saying they shouldn’t be here, just that they shouldn’t be here illegally.

Immigration reform then presents really only two problems. First, those that are already here illegally. What do we do with them? Do we simply give them amnesty, thereby supposedly rewarding bad (and illegal) behavior? Do we throw them out but let them come back legally somehow? Do we “send them to the back of the line” but put them on a path to legal status?

Second, what to do about actual immigration laws. I’m no legal expert, but I’d say here is where we need to do the most work (aside from securing the borders). We obviously need a sane and reasonable set of immigration laws. These may include such things as quotas (though I doubt we care that much), or at least provisions for quotas in the future should we need them. They should include reasonable requirements that people can actually satisfy without having to marry a citizen, prove the marriage is anything but a legal maneuver, and manage not to have that spouse die for 5-10 years. The process should probably include provisions of legal, productive activity (or at least good faith efforts toward such), and swearing loyalty to the country. This really shouldn’t take more than a couple years to prove the person is law abiding, desiring to work, as loyal as the next guy, etc. Again, I don’t know how that law would work but we need it.

Back to the first issue. Given that our laws are insane right now (and broadly unenforced when it comes to Latinos coming from Mexico), I don’t think it’s right to punish those that have come here illegally, just for the sake of pretending to uphold the law. As Democrats are fond of pointing out, most of these are hard working, law abiding (except for the immigration thing) people who just want a better life. I don’t think granting some variety of an amnesty-like thing to these people is rewarding bad behavior. I’m in favor of it. Of course, “reform” can’t include only this, otherwise we’re left with the same problem, using the amnesty “solution” every 15-20 years.

If we secure our borders, discouraging illegal immigration, give those already here a path to citizenship (not just meaningless hurtles), and provide reasonable immigration laws that will encourage legal immigration, then we might just solve our problem once and for all. And as a benefit, we would stem the flow of drugs and drug related violence that’s swamping our southern border.

It doesn’t seem like such a complicated issue. I’m sure the exact wording of the law will need to be delicate, but I’m sure we can all agree on the principles, assuming of course we actually WANT to solve it (More on that later).

In short, we have a great house and people want in. Let’s just close the windows and open the doors!

Comments Off

It struck me quite suddenly how the sub-prime lending meltdown with all the associated money madness that nearly caused a market meltdown resulting in bailouts that angered most and a recession that’s hurt many, is connected to Health Care.

Many years ago (30 if you believe some stories), the government decided it wasn’t fair that certain people couldn’t afford to buy a house. After all, it is the American Dream. Someone probably even mentioned it was “a right” to own your own home.

Naturally, the government had to do something. So it forced banks to lend money to people who were at high risk of not paying them back, people who had little or no money for a down payment, no collateral, etc. These people would lose little more than their credit rating if they simply walked away and paid nothing back to the banks.

To manage the risk financial institutions were forced to take on these mortgages, they came up with all the monkey business we’ve heard about. The assumption was that by grouping high risk mortgages together and buying securities (credit default swap, etc.) on them, they could sell them around and reduce their individual risk.

This was all well and good until the risky mortgages started to show why they were risky. So many people were defaulting on their loans, some because they couldn’t afford them, others because they were totally irresponsible, more yet because they were convinced they could afford them. The result of all that buying and selling of bundled debt and securities on that debt was lower individual risk, but unacceptably high systemic risk.

So it all fell apart and only ridiculously large sums of money from governments around the world kept the economy from collapsing (or so we’re told).

So goes Health Insurance (not the same as Health Care). Health Insurance is a bet. When you buy health insurance, you’re betting you’ll get sick. The insurer is betting against you. If you get sick, you win the bet and the insurance company pays. If you don’t get sick, the insurance company wins and you pay (your premium).

Insurance companies disallow preexisting conditions because it isn’t a fair bet. If you’re betting you’ll get sick when you’re already sick, that’s cheating. There’s probably ways the insurance companies take advantage of this rule, unfairly excluding people, particularly those who were cut off of their insurance just when they got sick, but that’s not the issue here.

Each bet insurance companies make is a risk. They try to balance the risk by charging appropriate premiums so they can pay out potential insurance claims, pay their employees, and make a profit in the process, which is the whole point of running a business. Decent profits allow them to grow and expand coverage and make more policies. Exorbitant profits should show consumers they don’t play fair (or possibly are just winning a lot of bets at the moment).

Once again however, the government has stepped in saying “it’s not fair.” This time, it’s not fair that people can’t afford insurance or are being excluded for preexisting conditions, etc. Instead of changing the rules so valid preexisting conditions are covered while others may still not be, the government has simply said, “Insurance companies can’t deny coverage based on preexisting conditions.” Or essentially, “Insurance companies have to cover everyone, or else.”

Insurance companies will essentially be forced to take on excessive risk, resulting in much more money going out in claims, so more money must come in.

“That’s okay,” the government says. “Everybody must buy insurance, or else.” This the government says so insurance companies have a chance at balancing risk. If healthy young people have to buy insurance, it’ll help pay for the older or sicker people to get health care, instead of simply waiting until they’re old and sick to get insurance.

Sounds like a win for everyone, right? Possibly. If all the rules are written just right, it might balance risk well enough to allow insurance companies to continue operating in the long term. But if there’s anything wrong with the rules, risk will be unbalanced and we’ll be headed for a health insurance crisis on the scale of the sub-prime mortgage fiasco.

Further, mandating that everyone buy insurance is outright unconstitutional. I buy insurance. I like having insurance. But I don’t think the government has the right to mandate that I do so. I’ve heard all the arguments and they fall flat. Car insurance is not required, unless you want to drive on public roads. Regulating commerce is not the same as mandating that commerce take place. Promoting the general welfare is not the same as mandating the purchase of a commodity.

Comments Off

Software and Health Care

February 24th, 2010

Recently, at work I was given the task of improving a piece of software that ran slowly, consumed far to many resources and was far to rigid to perform any more than the single task for which it was originally created. As I began looking into the code, I discovered that worse than all that, the code was an utter mess and there was absolutely no way I could may even the most marginal of improvements without starting from scratch.

So I did. While I worked on recreating one part of the software, a colleague of mine worked on another. Eventually, I finished my parts and got to testing and tuning his parts. As I went, I continually tested my new code and ideas against the existing system to ensure the new product was better than the old one. With little exception, the new product ran at least twice as fast as the old, consumed fewer resources and was flexible enough to handle the original task as well as a wide range of current and future potential tasks. I was pleased.

Then I got to the code my colleague worked on. There didn’t seem to be anything wrong with it on the surface. Given ideal and even the least ideal circumstances we imagined the software might face, it appeared it would run faster than the old code, perhaps even two or three times faster. Yes, we had to admit it would consume much more memory, but the speed improvement would be worth it as the old software was far too slow.

But once I got into testing against the old software (like I did for the parts I worked on) I came to a stunning and all together disappointing realization. First, we were consuming far too many resources which was bringing the hardware to its knees, even more so than the old software did. Second, and far worse, we were running as much as seven to ten times slower.

So what happened? Even in far from ideal circumstances the software should have easily out performed the old software. The answer was simple: circumstances were even farther from ideal than we thought. This made our software (which was smart enough to deal with even the worst case) take much more time and resources dealing with the terrible cases it faced. Unfortunately, this was the standard case and our beautifully crafted software was far from adequate for the task.

So I worked tirelessly (then tiredly) for weeks trying to squeeze the new code my colleague wrote to get the performance out of it that we needed. After all, we couldn’t go back to the old software since it was a nightmare to maintain and too rigid for even current tasks. But finally, I had to admit there was nothing I could do.

Nothing short of rewriting it yet again myself. So I finally threw away the code my colleague wrote and started from scratch for a second time. Carefully considering how the old software did the task, comparing it to the flexibility of how our attempted solution was designed, in the space of just two days, I wrote a solution that not only consumed fewer resources, but ended up running two to three times faster than the old software.

Yay for me, right? Sort of. If it hadn’t been for the original implementation I wouldn’t have known what works well. If it hadn’t been for the second implementation I wouldn’t have known how bad the circumstances were the software faces, and wouldn’t have seen how that can effect performance. While I’d like to claim a stroke of genius here, I pretty much have to say it was the process of elimination: we already did everything that wouldn’t work, then I did what would.

This, it seems to me, is like the Health Care debate/bill in the United States Congress today. Clearly, the current system isn’t working for everyone, and increasingly for anyone. It is slow, cumbersome, expensive and getting more expensive at a rate no one can afford in the long term. The Federal budget already devotes a huge percentage to health care related programs and will continue to have to devote more money to them, else abolish or diminish them. So, President Obama rightly made it his agenda to “fix” it, by asking Congress to create a piece of legislation that would somehow make things better.

There’s probably a lot of good things in the bill Congress eventually came up with. I hear there’s some sort of tax incentive, rules against insurance companies dropping patients when they actually become sick. There’s probably a lot that’s good. However, there’s enough that is – let’s call it “less good” – about the bill that public opinion has turned sharply against it. Some examples of “less good” qualities of the bill include throwing money at states wholesale just to win votes from their senators/representatives.

Does that mean we should keep the current system as is? Absolutely not. Many people still want reform, just not this reform. Like my software system, the original health care system isn’t working like we want and consumes far too many resources. But if the new system is only being approved by a slim margin (if indeed it gets that much) because votes were effectively purchased for it, how much better can we hope it will actually be? Reform yes, for the better? Maybe not.

I don’t expect us (by “us” I mean Congress) to just throw that bill away and let it go to waste. I expect us to start from scratch again, taking lessons learned from the current system as well as the bill and try to make something beautiful. I don’t pretend to know what that bill will look like, but whatever it is, it had better not resort to pork, special interests, or any other means of purchasing votes to get through either house. Health care is far too important a subject for any bill to be voted for or accepted for anything other than its merits.

Comments Off

Software Should be so Lucky

February 19th, 2010

It never fails to elicit an eye roll and a heavy sigh. The days of Deities descending in a chariot to save the protagonist may be over, but “Deus Ex Machina” has taken on a new (if you can call it new) twist has become the cliché that refuses to die.

I speak of course of how computers (and in particular software in any form) are portrayed in television and movies. You know what I’m talking about, the “who done it” crime shows where the right computer software can enhance an image, clean it up and add almost infinite detail if the right protagonist is manipulating it. Other examples include, hackers and viruses that can break into any system, even the most secure, even those that have no external connectivity, and sometimes those of other times, races, worlds and even galaxies. Yes, these computer programs are almost deified in their own right according to screenwriters (and other writers too I’m sure).

One “classic” example comes from Independence Day when the lowly Earthlings uploaded a virus to a never before encountered race of alien’s computers, dropping their impenetrable shields and allowing them to be destroyed by mere missiles and nuclear weapons. One might ask – How did this little virus some guy wrote know how to effect the alien systems? Is there any reason to believe the virus wouldn’t look like static noise to the alien system if it saw it at all? How did they get the alien ship to even interface with the human technology? Well, fear not – it was a Mac!

The problem here is this: as a software engineer, programmer, and computer scientist myself I find these plots, and devices so horrifically fantastical that it completely destroys my ability to suspend my disbelief. Whether the genre is basic fiction, science fiction, mystery, or any other I see how poorly they understand computers and it makes me wonder how badly they must understand law, police or military protocol, other sciences, and anything else that may be in the story.

If a computer centric episode that gets it wrong occurs occasionally, I can usually still enjoy the series (ie. Stargate-SG1 and Atlantis seem to throw these in now and then), but when the dependence on utterly wrong and impossible computing takes place 1-2 times per episode (ie. CSI, and similar shows) I lose all ability to watch. The cringe factor becomes too large.

For all of you writers out there, I have only one plea. PLEASE STOP! Stop, writing super viruses, hackers, and otherwise magical programs that can’t possibly exist. Unless you’re writing science fiction (and even then if you don’t have a good explanation) just say no. Just as you can’t extract blood from a stone (for the simple reason that a stone doesn’t have blood), you can’t extract additional detail from a digital photo! It just doesn’t have the detail beyond the original pixels. Yes, you can enlarge it and blur it a bit then sharpen the image, but that’s not more detail, that’s less and with increased uncertainty, and you certainly can’t do that to the extent done on TV on a weekly basis to solve crime. All of these things are blatantly wrong! They show ignorance. They mislead and misinform the public. But worst of all – they’re cliché.

Comments Off