Sunday, February 25, 2007

On the joy of being rational

I really like to use reason - to be logical about things.

Of course, that should come as no great surprise; logic is a critical factor of success in my chosen line of work: software programming.

In fact, all of cyberspace (as well as everything that humans manufacture from the "raw materials" of the world) is based on and needs reasoning, logic, rationality to work.

So, yes, sure, "cold, hard logic" is required to get beyond mere survival, mere existence.

But it is also a lot of fun. Fun, you say? How can it be fun to think about things like:

"If a = b and b = c, then a must surely equal c."

Well, heck, you don't have to ask me.

Ask the millions of people who are not software developers, who do not apply logic so explicitly and knowingly in their work do, but who, in fact, express their joy of being rationale on a daily basis.

I am talking about Sudoko players (and players of other logic puzzles). Same process as programming, but it is a game, and almost addictively enjoyable.

So that's one aspect of the joy of being rationale. I would like to offer another: applying logic and rationality to the activities of human beings to help clarify one's view of the world and how it works.

Today, I spent an hour or so shoveling off the crusty, heavy, wet snow/sleet/hail that fell last night in Chicago. As I did so, I found myself thinking about Martin Luther King and Martin Luther King Day. I have no idea why, I just did.

MLK is universally acknowledged to be a great hero (well, at least as universally acknowledged as is global warming).

And I support that sentiment. He was an incredibly courageous, smart, eloquent and compassionate human being. He was, in short, a good guy.

But you can't have good guys without bad guys, right? That only makes sense. That's only logical.

So who were the bad guys back then? Sure we always hear about Sheriff Eugene "Bull" Connor and others like him, who were in the front lines of maintaining segregation and Jim Crow laws. Who fired the guns, did the lynching, held the water cannons, and released the dogs.

But Connor was not a leader. He was doing his job. He was elected to his job and he was paid, he was protected and he protected in turn. "Elected?" you say to yourself. "Ah, I see where Steven is heading. All those people in the South were bad guys."

Yes and no. Anyone who actively supported segregation certainly was a "bad guy." And those who stood by in silence, whether out of fear or out of secret loathing, were also "bad guys," to some extent.

But let's fact it: most people living in the South then (and now) -- and not just the South -- had no power. The direction and content of their lives were largely determined by the those with real power: those with money, those with property, those who made sure that certain people were elected and not elected, those who financed the KKK and the Christian Conservative Council, as well as the City Councilmen.

The way I figure it, if MLK is a good guy, then the real bad guys of those days were the so -called leaders of our society. The CEOs of almost every corporations, the publishers of almost every newspapers, and certainly the politicians they put into place to write and pass laws that suited them and benefited them.

Isn't that obvious? Isn't this nothing more than simple logic?

Surely, we know how the world works, in our most cynical of hearts. We know that most Congresspeople are in the pockets of the lobbyists who provide most of the funds (and junkets to the Carribbean) that fill their election campaign coffers. We know that, more than ever before, the laws passed by Congress and signed by President Bush are in large part written by representatives of the companies that will benefit from those laws. Think: energy bill and Dick Cheney. Think: hundreds of millions of tax dollars spent on "mark ups" and sweet deals brokered behind closed doors in final "negotiating" sessions.

We also know that when things modern concepts like the 40 hour work week are finally enshrined in law, they are the result of massive social movements, of people who often sacrifice their lives, to bring about a modicum of justice in the world. And the reason they must do this is that they fight against the so-called leaders of our society who push back, who do everything they can for as long as they can to keep their power and wealth as concentrated as possible -- in their own hands.

Now, you might say, "Hey, that is just human nature. Dog eat dog. Nothing you can do about it."

And you might be right. There might not be much we can do about it -- except to work long and hard (decades, centuries) to push back against the most brutal aspects of human society, and make it a little bit more humane (like giving women and African Americans the vote, ending slavery, etc.), just a little bit at a time (and of course, there are periods of setbacks -- such as life under George W. Bush, during which we have seen our civil rights greatly eroded).

But at least while this is happening, at least while there are some people (and I am not so presumptuous as to include myself in this group) who are willing to sacrifice their well-being and often their lives for such noble goals, at least while there are heroes in the making and heroes to be saluted in the past, at least we can be honest and open about not just who the "good guys" were (and are), but also who the "bad guys" were (and are).

They live amongst us now.

They reap billions of dollars in unearned and outrageous compensation, while thousands of children sharing their town, city or state go hungry.

They have cozy dinners and meetings with Vice President Cheney, whenever they are in town.

They get your Congressperson on the phone for a chat whenever they feel the need.

They urge us to drink responsibly while pushing every irresponsible button in our brains.

And they have little or no conception of what it means to be hungry without the prospect of eating, ill without the prospect of receiving medical care, cold without the prospect of getting warm.

They are the most successful people in our society. We are taught to see them as role models, as the ideal to which we should strive. And they are, in so many ways, monsters.

At least that's what rationality leads me to believe.

Sunday, February 18, 2007

"Party in a box"? What irresponsible marketeers!

OK, check out this link:

http://abclocal.go.com/kgo/story?section=automotive&id=5018164

Then check out this link (text below in case the link dies):

http://www.chicagotribune.com/news/local/chi-070211oswego,0,5584278.story

There is a growing realization that young men behind the wheel of a car are a particularly high-risk group for driving accidents. Gee, what a surprise. Testosterone coursing their veins like never before, advertisements shouting at them every way they turn about the sexiness of alcholol, the excitement of the "fast life"....of course teen drivers will be a menace to themselves and others.

States are now even passing laws restricting the number of teens allowed in cars when a teen is driving. Good idea, though how much any young buck will pay attention to this is another matter.

So given that state of affairs, I am outraged and appalled to find that Toyota and their super-hip Scion line are promoting one of their vehicles as a "party in a box."

I hope they catch lots of flak for this, publicly state their apology, and urge sensible driving.

Cars are not toys and they are not a good place for parties. In fact, I think Scion should drop their whole marketing line which is all about promoting their cars and things in which to strut and demonstrate one's superior coolness. Bad news all around.

Four teenagers killed in Oswego accident
By Jeff Long, Jack McCarthy and Andrew L. Wang
Chicago Tribune
Published February 12, 2007, 12:04 AM CST

Four white crosses jutted from snow-covered ground along a road in Oswego, each bearing the name of a teenager killed there early Sunday in the crash of a car filled with nine young people.

Andrew Allseitz, 15, visited the makeshift memorial by Illinois Highway 31 to pay respects to the girl who last week had asked him to her high school's "turnabout" dance. Jessica Nutoni, 15, never got to give her date the gifts she had bought: a chocolate heart, a teddy bear and a Valentine's Day card.

Allseitz received the gifts Sunday morning through Nutoni's family, said his older brother Matt, "but he hasn't been able to open the card yet."

On a cold, gray Sunday, dozens of teens—eyes full of tears, hearts heavy with grief—stopped to stand vigil before the crosses, one of which was affixed with the photocopied text of the 23rd Psalm.

Meanwhile, authorities charged the car's driver, Sandra Vasquez, 24, of Aurora, with drunken driving in connection with the crash, which claimed the lives of four Oswego High School students and left five people, including Vasquez, severely injured.

The crash made the weekend the third one in a row in the Chicago area in which multiple teenagers have died in violent auto accidents. On Feb. 4, three male teens were killed and another injured on Chicago's West Side when their speeding rental car slammed into an elevated train support. Six teens died the previous weekend in separate accidents in Riverside and Blue Island.

Oswego police said the 2001 Infiniti sedan with nine people inside was headed south on Illinois 31 at 2:20 a.m. As the car approached River Run Boulevard, it went out of control, veered across the northbound lane and struck a pole on the east side of the road, police said.

The four teenagers killed were all pronounced dead at the scene. In addition to Nutoni, they were identified as Katherine Merkel, 14, Tiffany Urso, 16, and Matthew Frank, 17, said Kendall County Deputy Coroner Jacquie Marcellis.

Autopsies were not conducted because the cause of death—ruled multiple blunt force trauma—was apparent, she added.

Police did not release Vasquez's blood-alcohol level, though she was tested "and the results were high enough to charge her," said Oswego police Detective Rob Sherwood.

He said the drunken-driving charge is a misdemeanor, but the Kendall County state's attorney's office is investigating the accident to determine if felony charges are warranted.

Vasquez and four other Oswego High students ranging in age from 14 to 16 were taken to Advocate Good Samaritan Hospital in Downers Grove or Loyola University Medical Center in Maywood, police said.

Vasquez's father, Jesus, said he felt "real bad for the families" of the teens involved in the crash.

He said he did not know where his daughter was headed Sunday morning or why she was with the teenagers.

"As far I know, she was just giving them a ride home," he said, standing in the doorway of his Aurora home. He said his daughter graduated from East Aurora High School and worked as an aide at a nursing home.

He said he spent most of the day in the hospital with his daughter but on doctors' orders did not talk to her about the crash.

"They said ... she is going to make it," her father said, but "they don't know about internal injuries."

Authorities said Sunday that the accident was still under investigation. Still unclear was whether any of the occupants were wearing seat belts.

"With nine kids there could have been only five that were wearing seat belts," Sherwood said.

Police said the car's passenger side struck the pole first, and the impact caused temporary power outages in the area.

Friday, February 16, 2007

An exciting day for Yours Truly

February 15, 2007 was a very big day for me.

I am in Aliso Viejo, where Quest Software is headquartered. And today, at noon, PST, Quest Code Tester for Oracle 1.5.1 goes "GA", that is, becomes generally available.

In other words, Oracle technologists can now purchase and use the commercial version of the first automated testing tool for PL/SQL programs.

It's a big day, because I have worked very hard for a couple of years now to bring to fruition what was formerly just a vision. That vision was a response to this very hard reality:

We programmers will never have enough time to write all the test code needed to test our programs.

My vision:

To achieve comprehensive testing, we need a tool that will automatically generate the test code, run that test code and automatically verify the results.

In other words, let me focus on writing my programs. Let me simply describe the tests I need and then let someone else / something else do the "heavy lifting." Ah, that sounds sweet.

And the reality:

Quest Code Tester for Oracle 1.5

If you write PL/SQL code, if you manage a team of PL/SQL developers, you owe it to yourself to download the trial version and check out Quest Code Tester. I am convinced it will completely revolutionize how you test your code.

Lots of people have told me they really like my books and have learned a lot from me. That makes me happy. But I am convinced that in years to come, I will be remembered most not as the author of those books, but as the creator of Quest Code Tester. That's how excited I am about this tool.

Some other PL/SQL news that makes me feel good: I got an email from a developer complaining that registration for OPP2007, our two-day conference on PL/SQL, was closed. After a few calls and some hard work by the conference organizers, we opened registration again, but it sure is nice to know that we have so many people wanting to attend this intensive training experience. If you are doing PL/SQL programming, please check out the conference, and see if you can attend.

Saturday, February 03, 2007

Sharing the wealth (of knowledge and expertise)

I recently spent two days training a group of about 30 developers and DBAs out east. As with any sizeable collection of technologists, the level of expertise and the years of experience varied greatly (and don't always go hand in hand!).

I was pleased to see that everyone seemed to get along well, there wasn't any great reluctance to ask questions (that is, admit ignorance), and several attendees didn't hesitate to challenge my ideas and suggest other ways of doing things. Just the way I like it!

Yet, as with so many other organizations I'd visited, and developers I'd trained, they hadn't come up with any thorough and effective ways to share information, techniques and code among the various application teams.

I've always been surprised at this situation. In company after company, there will be dozens to even hundreds of PL/SQL developers working virtually side by side, yet also coding largely in isolation. Some companies will hold occasional, informal brown bag lunches, others might make some limited gestures at using Sharepoint or Lotus Notes or wikis to share some ideas. But it seemed that many developers would still end up reinventing the wheel, over and over again.

What a waste!

Now, I don't think this situation arises because developers don't want to share, or want to write everything from scratch. It can just be very hard to organize material, make it accessible, keep it current, create libraries or toolboxes of generic, reusable code, and so on. Everyone's busy and resources are limited.

I got to thinking about this on the plane ride home (yes, I am writing this at 37,000 feet) and realized that this situation is never going to change. Resources will always be tight. Time will always be precious. And expertise will reside largely in the brains of individuals, not written down on paper or deposited in some collaborative repository.

I had a revelation on the plane: if this is how it is going to be, why fight that? Why not accept reality and work with it?

So I came up with a simple idea that might actually help address this problem. For my full recording of thoughts on this topic, please visit my ToadWorld blog.