The Free Software Security Paradigm

After noting recently that Microsoft’s software is inherently insecure for reasons entirely unrelated to its popularity, I’ve been presented with still more evidence that the proprietary software security paradigm is terrible.

Read that carefully. Microsoft was fully aware of an actively exploitable, well-known, and frequently-used gaping security hole in ActiveX (which is itself a massive security hole anyway) for eighteen (18) full months without ever doing a single thing about it. They allowed an active security hole to fester for a year and a half before releasing a patch. What’s more, they’re perfectly happy to admit to this incompetence, secure that their desktop market share will protect them from any adverse effects.

Compare this with the famous Kaminsky DNS exploit, which threatened the entire Internet. FOSS projects had this hole patched in no time (whether server operators applied that patch, of course, is a different matter). Even Microsoft, in this case, managed to get itself patched reasonably quickly. But Apple, relying on the blind faithfulness of its customers, failed to patch the security hole for an extended period, despite it being a devastating and very well-publicized exploit. Looking carefully, you’ll see that incidents such as Apple’s tardiness regarding the Kaminsky exploit, and Microsoft’s gross negligence regarding the ActiveX exploit, are anything but rare; they are common. You’ll never see such things happening in FOSS.

Does that mean there are no security holes in FOSS? Far from it; there are many, and some are quite devastating, like the Kaminsky DNS exploit. But the code is there for everyone to see. In FOSS, when there’s a hole in the code, it’s available for everyone to look at, and it’s available for everyone to fix. As Linux Torvalds has remarked in his famous Linus’s law, “Given enough eyeballs, all bugs are shallow.” (“Shallow bugs” are those which are easy to fix.) There are so many people looking at these problems that they are easily fixed, and not being able to rely on proprietary vendor lock-in provides additional incentive for quickly patching security problems.

Microsoft and other proprietary software companies, however, attempt “security through obscurity.” When there’s an exploit, they have absolutely no incentive to fix it unless it’s already public; since their code is hidden and secret, they can and do just sit there and hope that nobody will notice the flaw. When somebody does notice it, then they get to work on fixing it; yet while they’re fixing it, people are able to exploit it. And bugs which would be quite shallow to, say, the enormous Linux development community, or Apache web server community, or whatever, are extremely deep for a closed company like Microsoft; this leads to ridiculous patch times on the order of eighteen months for a known vulnerability.

The Unix software paradigm is simply more secure than the Microsoft, by its very design. But the development paradigm of FOSS is simply better than that of proprietary software, as well, which leads to much more secure systems even independently of the system’s design.

Praise be to Christ the King!

Published in:  on 29 July 2009 at 1:50 pm Leave a Comment
Tags: , , , ,

Congressional Duplicity from Tom Perriello

I know we’ll all be absolutely shocked to see congressional duplicity. Why, they’ve all seen Mr. Smith Goes to Washington, haven’t they, and become Scout leaders and refuse to prevaricate about their principles? But I’ve got another one, and it comes from the Pence Amendment.

For those of you who don’t know, the Pence Amendment was set to amend an appropriations bill to forbid any of the funds going to Planned Parenthood, which not coincidentally is the largest provider of abortions in the country. Indeed, Planned Parenthood already receives large quantities of cash from the government, and those quantities actually increased to the tune of some $26,000,000 during the Bush presidency. So much for our “pro-life” former president.

In other words, the Pence amendment would mean that Planned Parenthood wouldn’t get any of the funds appropriated in this bill. Simple enough.

Naturally, the pro-abortion factions in Congress opposed it strongly. This included my own congressman, Virginia’s 5th District Congressman Tom Perriello. His vote agreeing to allow these funds to go to the murder of unborn babies is recorded at congress.org.

This by itself is unsurprising. Congressmen vote to fund the slaughter of innocent children on a regular basis, be it by foreign wars or domestic policy. The (more) upsetting part is what happened only a few weeks ago.

My church conducted a little leaflet-drive, sending large quantities of leaflets opposing the Freedom of Choice Act to our congressman and senators. Eventually, I did get a reply from Congressman Perriello (which is more than I can say for either of my senators), by mail, several months later. The letter was a model of prevarication, duplicity, and other typically congressional characteristics. I’ll cite some of it here.

(Given that this is a letter stating the Congressman’s policy [or not stating it, as the case may be], I don’t consider this publishing private correspondence. If the letter was meant as private correspondence, I hope someone from the Congressman’s office will explain to me why they consider it such.)

Congressman Perriello refused to say what he would do if the Freedom of Choice Act were proposed in Congress. He explained to us, ignorant peasants that we are, that Roe v. Wade is well-established law, and that he considered the Freedom of Choice Act to have merely a “largely symbolic impact” and a “low chance of passage.” Therefore, “[s]hould this legislation be reintroduced, I would not cosponsor it.”

Very definitive, of course. Notice that Congressman Perriello refuses to say whether he would vote for the bill, even though that’s precisely the issue that we’d written him about (namely, asking him to vote against it). He just says that he won’t cosponsor it, which of course makes little difference if he’s going to vote for it anyway.

But he goes on. “I believe it is a tragedy that 1.2 million abortions are performed yearly in the United States, and it is critical that we work together to reduce this number.” This, of course, means little or nothing. If abortion is a right, why is this a tragedy? If it’s not, and this is a tragedy, why not assure us that you’ll vote against bills that allow it? Congressman Perriello doesn’t even come close to answering these questions; indeed, all we get from him are more non-answers.

“I will support legislation that helps decrease the number of abortions performed in America without returning to the era in which abortion was criminalized.” His ideas for doing so are, naturally, myriad:

There are a number of improvements in our current policies that need to be made to make this possible, including education, access to family planning services and contraception, teen pregnancy prevention programs, pre- and post-natal and pediatric health care, child care assistance, and economic policies that empower women.

In other words, he’ll reduce abortions by throwing condoms around, telling teenagers to make sure that they wear the condoms when they fornicate, funding day care, and “empowering women,” whatever that may mean. This, he says, will “make great strides in changing the circumstances that currently propel many women to decide to terminate a pregnancy.” Terminate a pregnancy? You mean, kill a baby? Never mind that some of these proposals are only tentatively related to abortion at best, and others are also morally objectionable.

Congressman Perriello quite cowardly refuses to state his position on abortion itself or on abortion legislation; however, he gives us enough information that, if we work hard, we can glean a few facts about his ideas.

  1. Abortion’s the law. Get used to it, guys, it’s here to stay, thanks to Obama’s election and his contribution to the Supreme Court.
  2. I am happy to use “reducing the number of abortions” as an excuse to pass all sorts of legislation that I like, including those projects that many of those who are opposed to abortion will consider morally unacceptable. I hope that placates your moral qualms about ripping unborn children from their mothers’ wombs.
  3. I’ll probably vote in favor of anything that makes abortion cheaper and easier.

This, at least, is what the letter would say, if it were honest. Instead, it’s a bunch of wishy-washy political Newspeak that does its level best to say nothing at all, but fails even at that.

But let’s assume that what little the letter actually does say is at least honest. Let’s assume that Congressman Perriello really wants fewer abortions; he really thinks that abortion is a tragedy and that reducing the number of abortions is a Good Thing. Wouldn’t an excellent way to accomplish that goal be to stop giving loads of money to people who use that money to provide abortions? I know I’m not in Congress, but surely that’s a reasonable conclusion that a reasonable person might draw?

Yet Congressman Perriello bravely stepped to the plate yesterday and voted against legislation that would do just that. He’d absolutely love to reduce the number of abortions, 5th District; really! That’s why he wants to make sure that the country’s biggest abortion provider will have even more money available to help fund its operations!

Congressional duplicity? Perish the thought! This is America! The good guys always win! Haven’t you seen Mr. Smith Goes to Washington?

Praise be to Christ the King!

The Reasons for Microsoft’s Insecurity

We all know it: Microsoft is insecure. Dangerously so. Windows is just a bundle of security holes with an operating system wrapped around it. Office, as Steven Vaughan-Nichols recently observed, is just a bundle of security holes with an office suite wrapped around it. The only way it’s safe to run a Microsoft application, or even an application on top of Microsoft’s operating system, is on a non-network-connected computer. Microsoft is dangerous for your computer.

No one really denies this; but many people dispute why Microsoft is dangerous for your computer. “Market share!” shout the Microsofties. “It’s because Microsoft software is so popular, and it therefore presents the biggest target! If $program were as popular as Microsoft’s, it too would be a giant security nightmare!”

But this claim simply doesn’t hold water. In fact, it doesn’t even hold air. It’s a vacuum, pure and simple. Let me explain why.

What do you mean, Microsoft is the most popular?

Microsoft is the most popular desktop operating system, without a doubt. But the entire Internet runs on free and open source software. Let’s just look at servers, for example. According to Netcraft (and even Netcraft’s objectivity has recently been convincingly questioned, indicating a slant toward Microsoft on at least some of its indices), something like 45% of web servers on the Internet are Apache, a FOSS web server project. Only a little under 30% run Microsoft’s IIS. Yet Microsoft is the biggest target?

At least four of the five most reliable servers on the Internet, and at least seven of the top ten, ran BSD or Linux, two FOSS operating systems. Yet Microsoft is the biggest target?

Such totally minor and unimportant Internet website as Google, Yahoo, and Wikipedia are running Linux, BSD, or combinations thereof. Yet Microsoft is the biggest target?

You tell me. You’re a computer cracker; which do you consider a more important target, Google or the guy next door looking at porn and playing Half-life?

Microsoft is not the biggest target. Microsoft is the easiest target, and that’s the material point.

Praise be to Christ the King!

Postscript: As if on queue, Microsoft and Adobe provide us with another reason why proprietary software is inherently insecure.

Published in:  on 27 July 2009 at 5:59 pm Leave a Comment
Tags: , , ,

The Mainstream Media is Terrible

Really, the title just about says it all.

It’s truly awful. They spent more time covering the Obama family’s new dog than they did relevant events in this nation. “In breaking news today, Barack Obama had a cheeseburger and onion rings for lunch….[proceed with twenty minute exposition of Obama's food and exercise habits]…In other news, two Marines were killed in Baghdad today.”

Honestly. How much worse can this get? The United States is occupying two countries thousands of miles away, the economy continues to tank, millions are out of work, babies continue to be ripped apart with the full protection of the law on a daily basis, fifty percent of marriages wind up in divorce, an increasingly enormous percentage of children are born out of wedlock, our educational system has collapsed to the point of complete worthlessness, et cetera ad nauseum, and the best the media can come up with is to talk about what a great entertainer Michael Jackson was?

The mainstream media is not only terrible; it’s a joke, a complete waste of time, money, and energy. We ought to have no part of it.

Praise be to Christ the King!

Published in:  on 23 July 2009 at 1:48 am Leave a Comment
Tags: , ,

Fix it Yourself

I did something revolutionary the other day. I fixed my car myself.

Granted, there wasn’t much wrong with it; all I needed to do was some routine maintenance. A taillight was dead, so I needed to take off the cover and replace the bulb. And the air filter was filthy; it was long overdue for a change, and the car had even begun hiccuping when it couldn’t get enough air through all the nastiness. So I replaced that, too (which couldn’t be done, as far as I could tell, without removing the entirety of the air filtration system, but it only took half an hour all told).

So am I a mechanic? No; I’m not even a grease monkey. I know how to change oil, tires, air filters, and light bulbs. That’s really about it. I don’t even have the tools for an oil change anymore, though I’ll fix that next time I need one. (I don’t have a jack or jack stands anymore; they were lost in a car accident several years ago.) I do have a very nice set of automobile tools, given to me by my parents many years ago; I keep them in the car all the time, and they are a very useful asset. But at the most, I’m just a tinkerer who can fix a few minor problems with his car, nothing more.

But I did it myself, and that’s the point.

We live in a disposable culture, in which we’d rather have all the dirty work done by somebody else. Don’t like doing dishes? Use paper or plastic plates. Don’t like sharpening razors or recharging batteries? Use disposable razors. Don’t like wearing older clothes? Just throw them away and buy a new wardrobe. Don’t like getting your hands dirty? Hire a lawn service, a mechanic, a plumber, an electrician, a carpenter.

Now, such professionals are assets in a society, plying honorable trades, and are often needed by people. I would never try to build an addition on my house without a professional carpenter, nor would I repair my fuel injection system without a professional mechanic. That would be stupid; I just don’t have that kind of expertise.

But I do have normal, everyday competence. For example, one of our toilets has been running. The workings are a bit odd, since it’s got a triangular tank to allow it to fit into a corner; however, the problem was simply that the stopper wasn’t sealing against the drain properly, thus allowing water to leak out and increasing our water bills. To stop this, one had to open the tank and push the stopper down manually. Why call a plumber for this? Why not just try it and see if my diagnosis was right? So I bought a new stopper (about two dollars), took off the old one with a monkey wrench and a pair of needle-nose pliers, and put on the new one. After a flush or two to allow it to get settled, the problem is solved. Total expense: $2, 30 minutes. Total expense if I called a plumber: at least $100, and as long as it took him to get to the house, go out, buy the stopper, and come back.

Sure, I’m a professional who spent tens of thousands of dollars and years of my life getting trained for a career that doesn’t involve putting my hands into plumbing fixtures. Sure, I had to get my hands dirty to do this. But I saved my family a lot of money, a lot of time, and a lot of trouble. Why shouldn’t I do it myself? Am I too good for manual labor? Or am I just too proud and stuck up?

Manual labor of this type is liberating. It is self-reliance of the very best kind, the sort of independence that Americans used to be famous for, and that once constituted one of our primary national virtues.

But now, of course, we’re all too good for that. I remember hearing a lawyer tell me once that he could bill $300 for an hour of his time, so unless he could save at least that much by spending an hour mowing his own lawn, he would hire someone to do it. This is precisely the wrong way of looking at things. Americans once valued property, ownership, hard work, and self-reliance; now we look at our time and our efforts and wonder how many dollars they can bring to us. That’s not the point. The point is that this is my family, it’s my property, and I have both the ability and the knowledge to do this myself. Therefore, I ought to do it myself.

My ancestors arrived on this shore long ago, with next to nothing. The benefits of European civilization, including many of the professionals with professional skills, were three thousand miles and ten long, weary weeks at sea away. So we made do here. We cut our own shingles with hatchets; we built our homes from axe-hewn logs and wattle-and-daub. We made our own tool handles out of hickory wood; we made new tool heads out of exhausted old ones, since iron importation was so expensive. And, when necessary, we did without.

If they could rely on themselves in this way, and if it made them stronger and better men, why should I not rely on myself, and why will it not make me a better man?

Looking over my property, there are a lot of things that I could do around my house, instead of waiting to save the money for a professional to do them. I may need some new tools, but I’ll buy them as I need them; the expense will be much lower than hiring someone else to do work that I can do myself. And with that, I’d better sign off; there’s a lot of work to be done.

Praise be to Christ the King!

Published in:  on 10 July 2009 at 4:31 pm Comments (4)
Tags: , , , ,

Movie Review: Gran Turino

I saw, for the first time in a long time, a movie that was not only worth watching, but possibly even worth buying: Gran Torino, starring the improbably cast Clint Eastwood as the main character, Walt Kowalski. The movie is a real gem, complete with a reasonably decent religious element, a total lack of sexual scenes, and a tale of the ultimate sacrifice. The language is less than stellar, I’ll admit, and includes repeated violations of the Second Commandment, but overall the movie is quite clean. This review may (read: “will”) contain spoilers, so if you care about that sort of thing, wait until you’ve seen the movie. Otherwise, read on.

I’m not a Clint Eastwood fan. When it comes to Clint Eastwood’s real trademark genre, the western, it’s been done better and more often by a number of others, most notably the redoubtable and invincible Duke himself, John Wayne. Tom Selleck and others have also done very credible westerns; even Val Kilmer, as an incredibly well-played Doc Holiday in Tombstone, has my western allegiance before Clint Eastwood, whose westerns I’ve never found more than mildly entertaining, and often downright tedious. (The final duel in The Good, the Bad, and the Ugly was not suspenseful; it was boring. See the final duel in, for example, Quigley Down Under, Selleck’s western masterpiece, or that of John Wayne in his long-overdue Oscar performance in True Grit, for better examples.) I’ve never seen his cop movies (no, not even Dirty Harry), so I can’t speak for them. But overall, of what I know of him, Clint Eastwood is far from being a favorite actor for me.

Still, he nailed this performance, and really made the movie by it.

Eastwood stars, as mentioned previously, as Walt Kowalski, a retired Ford autoworker living in what appears to be Detroit in a once predominantly Polish neighborhood now occupied almost entirely by himself, a white lady across the street, and Hmong immigrants. The Hmong—”Humong,” as Kowalski pronounces it early on—are totally alien to Kowalski, and he’s not particularly fond of them. (Nor are they of him, for that matter.) Furthermore, Kowalski is a Korean war veteran, and therefore sees all those of Oriental race as Chinese soldiers trying their hardest to kill him and his friends. He neither trusts nor likes them on sight. To be fair, he neither trusts nor likes anyone on sight, but the movie starts out making it absolutely clear that Kowalski is an unreconstructed racist.

It’s not just Orientals, either. (I don’t like the word “Asian.” Indians, Pakistanis, Siberian Russians are Asian, but they’re not what we’re talking about when we say “Asian.” What I’m trying to talk about here are those of Oriental race, like Chinese, Japanese, Korean, Hmong, Vietnamese, and so on. I’m not talking about the inhabitants of a particular continent. “Oriental” just means “Eastern,” after all, and is considerably less offensive than calling all those of white European descent “Caucasian,” when most of us and our ancestors have never been anywhere near the Caucasus. But “Caucasian” is fine for white folks, and I think “Oriental” is fine for the race I’m using it to identify.) Kowalski appears to be racists against everybody: blacks, Jews, Italians, and Irish are routinely referred to by racial or ethnic epithets. The movie is trying to set Kowalski up as a jerk, just a mean, hateful old man that nobody likes, and for good reason. And it does a pretty good job of that.

The opening scene is the funeral of Kowalski’s dear wife, Dorothy, whom he clearly loved very deeply. Kowalski, being Polish, is of course a Catholic, and Father Janovich (who is an important character) gives a typical Novus Ordo “bitter-sweet” death sermon which Kowalski clearly finds grating. Standing beside his wife’s coffin, preparing to put her body into the ground, we see Kowalski’s two sons approach with their families. Mitch and Steve Kowalski are disappointments to Walt; he doesn’t understand them and doesn’t relate well to them. For this reason, they treat him with contempt that is open to all but Walt, though Walt himself is certainly aware of it. One of his granddaughters comes into the church with her midriff bare, a belly-button ring exposed; this visibly displeases Walt, prompting the two sons to exchange some derisive words about their father being “stuck in the 50s.” After the funeral, we see more of this uncomfortable relationship between Walt and his sons: disappointment on Walt’s side, clear contempt on the sons’. Walt clearly disapproves also of his sons’ raising of their children, most especially of his oldest granddaughter.

At one point during the funeral, Walt goes downstairs to get some chairs. (To his credit, Mitch offers to do it for him; Walt replies that he needs them now, not later that week.) In the basement, he has a great many keepsakes, including his footlocker from the Korean war. His grandsons are digging through it, looking at his things, finding a few pictures of Walt with his unit along with a silver star, the story behind which we don’t learn until much later. It’s clear, however, that Walt was not only a veteran, but a combat veteran of some distinction.

Walt later goes into his garage, where we first lay eyes on his prize possession, from which the movie takes its name: a 1972 Gran Torino. He later tells another character that he put the steering column in the vehicle with his own hands. His granddaughter, Ashley, is out looking at it, congratulates him on his “bitchin’” car, and then bluntly and unapologetically asks what he intends to do with it when he dies, all but asking him for it. He refuses to respond, simply walking out, clearly (and rightly) disgusted with his descendents in general and Ashley in particular.

Also at the funeral, a movie-long relationship with Father Janovich begins. The priest, a very young man (honestly; I’ve got a baby face myself, but this kid looks about twelve years old), gives his condolences and tells Walt that Dorothy had asked him to look after Walt after she died. Walt is disdainful, informs Father Janovich that he’d only ever gone to church because Dorothy wanted it, and had no intentions of keeping up a relationship with the priest. Father Janovich tells him that he promised and intends to keep the promise. Walt is again disdainful, makes a wisecrack, and walks away.

Shortly, however, we see that the young Hmong man next door, Thao (pronounced “Tao”), is being pressured to join a Hmong gang, to protect him from the various other gangs whose territories border the fast-deteriorating neighborhood. This gang involves Thao’s cousin. He finally succumbs, and is given his task for entry into the gang: stealing Walt Kowalski’s 1972 Gran Torino. Thao gets as far as the garage; he’s then confronted by Walt pointing a very large and very operational M1 Garand directly at his face. Walt is clearly enraged, and as Thao backs up, Walt pursues. However, Walt trips, the gun goes off and hits a Pabst sign hanging in the garage, and Thao manages to escape. It was dark, so Walt didn’t recognize Thao, nor did he call the police. But he does get a better lock for his garage.

The next night, Thao refuses to continue pursuing gang membership, and the gang begins to beat him up. Thao’s sister, Sue, protests loudly, but to no avail. Walt hears the commotion, which is spilling over onto his lawn, and marches out again with his M1 Garand, facing down the gangbangers and sending them away. At one point he tells them, “We used to stack punks like you five high in Korea; use you for sandbags.” The Lor family, to which Sue and Thao belong, are intensely grateful, and the Hmong throughout the neighborhood begin bringing gifts to Walt, much to his chagrin, since his only aim in coming out at all was to get the dispute out of his lawn. When asked what they can do to thank him, Walt tells Sue (she and Thao are the only English-speaking members of the family) “Just get out of my lawn” and “leave me alone.” Sue and Thao, for their part, listen.

However, the Lor family learns that Thao had tried to steal from Walt, and in shame they approach him with Sue as their translator. Sue tells the irritated Walt and Thao had disgraced the family and needed to make it right. Thus, they offered Thao in essentially slave labor for a period of weeks. After repeated refusals, and Sue explaining several times that refusing would only further disgrace the family, Walt accepts. He tells Thao to count the birds in the tree outside his house and walks back in to read his paper.

Throughout the movie, we see Walt occasionally coughing up blood. (There’s a rather amusing scene when he goes to the doctor and a female Oriental comes in to discuss his chart. He asks what happened to his regular doctor, giving a German name; the Oriental woman explains that that doctor had retired three years ago, and she was his replacement, Dr. Chu.) It becomes clear that he’s not healthy and will probably be joining his wife soon; however, this fact is kept distant throughout the movie, and Walt never becomes fatalistic or otherwise melancholy about it, with one exception that in the long run is rather unimportant.

Thao protests at this useless “work” the next day, telling Walt that as long as he was going to be working, he should at least be doing something useful. Walt agrees and sets Thao to work fixing up houses around the neighborhood. After a few days of this, Walt begins to like Thao, who appears to be an honest and hard-working individual, values that Walt holds very dear. He even opens up to Thao at one point about his sons, telling Thao how frustrated he is with them. “I worked fifty years in a Ford plant,” he says, “and my son is selling Toyotas.” Walt really takes Thao under his wing, finding him a job with a local construction site, providing him with an initial set of tools at Walt’s own expense, and otherwise teaching him the skills and values that Walt holds dear. Thao, in other words, becomes a surrogate son, a chance for Walt to do right what he had done wrong with Mitch and Steve.

Meanwhile, Sue Lor is also developing as a character, one of whom Walt is becoming equally fond. He sees Sue walking down a street in a bad neighborhood, being confronted by some gangbangers with some obviously bad intentions. He takes the pistol that he apparently carries with him at all times, faces down the gangbangers, tells Sue to get in the truck, gives the gangbangers some hard words (some of which are, indeed, racist), and then drives away. He tells Sue how stupid she was to be walking in that neighborhood. Sue, for her part, begins to tell him a little about her people, the Hmong, and by the time he gets her home he says, “You’re not bad, kid.” Coming from Walt Kowalski, that’s high praise.

Slowly, Walt gets to know and respect the Hmong. At one point, he has to leave a barbecue with them to go to the bathroom to cough up some blood; he looks in the mirror and says, “I can’t believe this. I have more in common with these people than I do with my own sons.” It’s becoming increasingly clear that while Walt talks like a racist, he doesn’t act like one, and therefore isn’t really one. He likes and respects people not based on their race—he is quite contemptuous of his sons, despite their being Polish whites like himself, yet likes and respect Thao, despite his being a Hmong—but on their honesty, their work ethic, and their courage.

The Hmong gangbangers from the beginning, however, are not gone. They beat up Thao on his way back from his job; Walt beats one of them up and threatens him with a pistol, telling him that further trouble with Thao would cause further trouble. The gang then does a drive-by shooting of Thao’s home; Thao is nicked, but everyone is otherwise fine, though Sue was missing for several hours. When she finally returns home, she’s been brutally beaten and apparently raped. Thao is filled with a brother’s rage at this violation of his sister, and he asks Walt for help seeking revenge. Walt tells him to return to the home later, and at that time they would avenge Sue Lor.

While Thao is gone, Walt gets a haircut and a shave; gets fitted for a suit (“I’ve never had a fitted suit before”), and takes his dog to the Lors’ home, leaving her there. He’s quite clearly preparing for death. Most importantly, though, he goes to confession to Father Janovich, to whom he’s stated several times throughout the movie that he would never go to confession. Father Janovich hears his confession, which consists of failing to pay the tax on a $900 profit (“it’s just the same as stealing”) and failing to have a good relationship with his sons. Having expected more, due to earlier conversations, Father Janovich says, “That’s it?” Incensed, Walt replies, “That’s it? It’s bothered me most of my life!” He is then given absolution and leaves.

The confession scene is critical, because in it we find out directly what Walt’s true character, revealed indirectly for the whole movie, really is. In short, we find out that he’s really a good man. The movie started out by convincing us that Walt was a dirty old racist with nothing better to do than read the paper on his porch and wax his Gran Torino. But here he is, and the only bad things he can think of to confess was a few dozen dollars in tax fraud and not keeping a good enough relationship with his sons. True, if Father Janovich were a real confessor, he would certainly have probed more about further sins Walt was neglecting. But the bottom line is that Walt has led a good life; he’d served his country, married, raised his family, worked hard, maintained his property, and dealt honestly with everyone he knew. And now he was about to deal more honestly than ever before, finally giving what he’d risked for his country so many years before.

When Thao comes back to the house, Walt has his Garand and his pistol out on the table. Thao asks which one is his, and Walt takes him down to the basement.

“How many men have you killed?” Thao asks him. “Thirteen, maybe more.” “What’s it like?” Walt visibly grimaces. “You don’t want to know.” Walt then explains how he’d gotten his silver star. A Chinese machine gun nest had been harassing his unit, and Walt and several other men had been dispatched to take it out. Walt was the only man to return alive. At the end, the gunner had surrendered; Walt had shot him in the face with his Garand anyway. It had haunted him, he said, his entire life. (Presumably, he’d confessed that at some previous confession.) Walt tells Thao that he never wanted to boy to experience what it was like to kill another human being. He walked upstairs, locked Thao in the basement, and proceeded to the gangbanger’s house by himself.

He approaches at nightfall. We’re all braced for a big shoot-’em-up. The gangbangers come out and draw down on him. Walt rebukes them for their deed, expressing particular disgust that they had not only raped a woman, but raped one of their own blood. (Sue and Thao’s cousin was a member of the gang.) He uses his finger as a mock pistol, shooting at each of them. He then puts a cigarette in his mouth and asks if any of them have a light. He says, “I have a light. I’m going to get one.” He puts his hand in his pocket—and the gangbangers open up. Walt is shot more times than we can count, and he falls to the ground before he can even get his gun from under his coat.

On the ground, his hand falls from his coat. There’s no gun in it—just a lighter. He really was reaching for a light.

The commotion, though, had brought lots of people outside, all of whom were watching when Walt was murdered. The police arrest the gang members and are confident that they can get a conviction. Walt is dead; but he gave his life to protect Thao, Sue, and all the other Hmong that he’d come to respect and love. Walt is not only a good man; he’s a great man. “Greater love than this no man hath, that a man lay down his life for his friends.”

At the reading of his will, Walt leaves his house to the church, “because Dorothy would have liked it.” His sons roll their eyes, clearly irritated; Thao sits quietly and respectfully in the corner, away from the family. Really, though, Thao is Walt’s family now, and that becomes perfectly clear. While Ashley Kowalski sits expectantly, obviously expecting the Gran Torino to be left to her, Walt leaves it to Thao Lor, who accepts it gratefully, and the movie ends happily ever after.

In the end, Walt’s a bit of a jerk. He says mean things to people, insulting their races and their cultures. (To be fair, he takes it as well as he dishes it out; many of his friends mock this old “dumb Polack,” and he’s perfectly happy to receive this mocking.) But in the end, he’s an honest man, a fair man, who respects anyone who deserves his respect, without regard to their race or ethnicity. He’s changed the lives of Thao, or Sue, and of the Lor family forever for the good. And he gave his very life for them, something that no one should ever hold lightly.

A movie well worth watching, and probably even worth buying. At over 3000 words, this review is absurdly long for a blog, so I’ll end at that.

Praise be to Christ the King!

Published in:  on 7 July 2009 at 2:02 pm Comments (3)
Tags: , , , , , ,

FOSS Logos

Here are a few FOSS logos I’ve come up with, for one of the greatest of FOSS programs and for FOSS itself. They were all drawn in the GIMP. They’re not much, but they’re something. They are all released under the same license as everything else on this site, unless otherwise stated: the Creative Commons Attribution-Share Alike License.

vi:  The Editor for the New Generation

vi: The Editor for the New Generation

vi:  The Editor for Men

vi: The Editor for Men

FOSS:  It Does a System Good

FOSS: It Does a System Good

I hope somebody enjoys them. Long live free and open source software!

Praise be to Christ the King!

Published in:  on 3 July 2009 at 2:34 am Leave a Comment
Tags: , , , ,

Why Unix is the Best

Yesterday, I was repackaging an updated version of the dozenal package to include some new (inferior) Type 1 fonts so that evil Acrobat Reader won’t gag on the (superior) Metafont fonts, and I found myself face-to-face with a perfect example of the superiority of the Unix paradigm: stringing lots of tools together with text interfaces, and text interfaces themselves.

Here’s the deal: including Type 1 fonts required lots of new files. They had different names from the Metafont fonts; size 10 roman in Metafont, for example, was called dozchars10.mf, while the roman Type 1 file was fdzr8a.pfb, to conform to the Karl Berry Type 1 naming scheme. (The “f” is for “free,” the “dz” is the font name, the “r” means that it’s standard upright roman, and the “8a” is a complete mystery to me, but it worked.) I started out with the following text in the README file:
This work consists of the files dozenal.dtx, dozenal.sty,
dozchars6.mf, dozchars7.mf, dozchars8.mf, dozchars9.mf,
dozchars10.mf, dozchars12.mf, dozchars17.mf, dozchsl8.mf,
dozchsl9.mf, dozchsl10.mf, dozchsl12.mf, dozchb10.mf,
dozchbx5.mf, dozchbx6.mf, dozchbx7.mf, dozchbx8.mf, dozchbx9.mf,
dozchbx10.mf, dozchbx12.mf, dozchit7.mf, dozchit8.mf,
dozchit9.mf, dozchit10.mf, dozchit12.mf, dozchbxi10.mf,
dozchbxsl10.mf, dozenal.mf, dozenalb.mf, dozenali.mf,
testdozchars.tex, dozenal.sty, and dozenal.pdf, along with
the README.

I needed to turn it into this:

This work consists of the files dozenal.dtx, dozenal.sty,
dozchars6.mf, dozchars7.mf, dozchars8.mf, dozchars9.mf,
dozchars10.mf, dozchars12.mf, dozchars17.mf, dozchsl8.mf,
dozchsl9.mf, dozchsl10.mf, dozchsl12.mf, dozchb10.mf,
dozchbx5.mf, dozchbx6.mf, dozchbx7.mf, dozchbx8.mf, dozchbx9.mf,
dozchbx10.mf, dozchbx12.mf, dozchit7.mf, dozchit8.mf,
dozchit9.mf, dozchit10.mf, dozchit12.mf, dozchbxi10.mf,
dozchbxsl10.mf, dozenal.mf, dozenalb.mf, dozenali.mf,
fdzb8a.pfb, fdzbi8a.pfb, fdzbs8a.pfb, fdzi8a.pfb,
fdzr8a.pfb, fdzs8a.pfb, fdz.map, , fdzb7t.tfm, fdzb8a.tfm,
fdzb8c.tfm, fdzb8r.tfm, fdzb8t.tfm, fdzbc7t.tfm,
fdzbc8t.tfm, fdzbi7t.tfm, fdzbi8a.tfm, fdzbi8c.tfm,
fdzbi8r.tfm, fdzbi8t.tfm, fdzbo7t.tfm, fdzbo8c.tfm,
fdzbo8r.tfm, fdzbo8t.tfm, fdzbs8a.tfm, fdzi8a.tfm,
fdzr7t.tfm, fdzr8a.tfm, fdzr8c.tfm, fdzr8r.tfm, fdzr8t.tfm,
fdzrc7t.tfm, fdzrc8t.tfm, fdzro7t.tfm, fdzro8c.tfm,
fdzro8r.tfm, fdzro8t.tfm, fdzs7t.tfm, fdzs8a.tfm,
fdzs8c.tfm, fdzs8r.tfm, fdzs8t.tfm, fdzsc7t.tfm,
fdzsc8t.tfm, fdzso7t.tfm, fdzso8c.tfm, fdzso8r.tfm,
fdzso8t.tfm,, fdzb7t.vf, fdzb8c.vf, fdzb8t.vf, fdzbc7t.vf,
fdzbc8t.vf, fdzbi7t.vf, fdzbi8c.vf, fdzbi8t.vf, fdzbo7t.vf,
fdzbo8c.vf, fdzbo8t.vf, fdzr7t.vf, fdzr8c.vf, fdzr8t.vf,
fdzrc7t.vf, fdzrc8t.vf, fdzro7t.vf, fdzro8c.vf, fdzro8t.vf,
fdzs7t.vf, fdzs8c.vf, fdzs8t.vf, fdzsc7t.vf, fdzsc8t.vf,
fdzso7t.vf, fdzso8c.vf, fdzso8t.vf, testfdzchars.tex,
testdozchars.tex, dozenal.sty, and dozenal.pdf, along with
this README.

What’s a hard-working young Unix aficionado to do? Easy: utilize the traditional tools of the Unix environment.

I knew that I needed all the Type 1 font files out of the Type 1 font directory (extension pfb), along with metric files (extension tfm) and virtual fonts (extension vf). The Type 1 font directory was, in this case, “./t1doz”. I had the README file open in vi; could I use vi, the best text editor in the universe, to get those files?

In Windows Land, the best I could do is open the directory in Windows Explorer and start typing out the names I needed. But I could do better than that; this is Linux, a Unix derivative. This is the way computers were meant to work.

So I hit the “:” key in vi to get me into ex mode. Once into ex mode, I entered “r”, which instructs vi to read something into the file currently being edited. I then entered in “!”, which tells vi that I’m making a shell command (that is, a command that would normally be typed at the command prompt, or “shell”). I then hit “space”, so that vi would know where said shell command was supposed to begin. I then utilized the standard Linux “ls” command, directing it to list all the files with extension “pfb” in the Type 1 fonts directory. I then hit enter. The entire command is very simple:

:r! ls ./t1doz/*.pfb

Lo and behold, I received exactly what I wanted, a list of the files with the extension “pfb” in my file:

./t1doz/fdzb8a.pfb
./t1doz/fdzbi8a.pfb
./t1doz/fdzbs8a.pfb
./t1doz/fdzi8a.pfb
./t1doz/fdzr8a.pfb
./t1doz/fdzs8a.pfb

Rinse and repeat for all the extensions I need (namely, “tfm” and “vf”). So now I had all the file names that I needed for my list of files in the README.

However, it still wasn’t right. For one thing, I just want raw file names, not the path, not even the relative paths as listed above. (That is, I don’t want the “./t1doz/” part, just the filename part.) For another, I don’t want them all separated out into lines; I just want them all together in a paragraph. For the final thing, I want them to have commas and spaces between them. What to do?

In Windows Land, you open it up in Notepad (a toy of an editor; or, even worse, MS Word) and start deleting. You might highlight, or you might just hit “delete” repeatedly until it’s right. If you’re really advanced, you might do a find-and-replace for “./t1doz/” and replace it with “”, which will do it in one fell swoop, but still leave the commas, the spaces, and the line joining for manual work. But I had a lot of files here; doing them by hand would be wasteful.

Fortunately, Unix and its tools provide better means, in this case the traditional Unix editor vi and the brilliance of regular expressions. The nature of regular expressions is beyond the scope of this little account; suffice to say that they are massively powerful, and easy to use once you’ve learned them. A little bit of regular expression magic solved my problem quite quickly:

:1,6s/\.\/t1doz\/\(fdz.*\.\(pfb\|tfm\|vf\)\)\n/\1, /

Running this code on the relevant lines will result in this (much fewer lines for illustrative purposes):

fdzb8a.pfb, fdzbi8a.pfb, fdzbs8a.pfb, fdzi8a.pfb, fdzr8a.pfb, fdzs8a.pfb, fdzs8a.tfm, fdzs8a.vf,

Now, the only manual alteration I’ll need to do is delete that last comma and I’ll be done.

Is this magic? No, though it’s so powerful it sometimes seems like it. It’s regular expressions, an incredibly powerful searching and replacing language that comes standard in almost all real editors. Rather than half an hour of manually altering each line, it took two minutes to write that little line of regex (as they’re often called) and I was there.

:1,6s/\.\/t1doz\/\(fdz.*\.\(pfb\|tfm\|vf\)\)\n/\1, /

It’s quite simple, once you’ve learned the language. The colon takes vi into ex mode; the numbers are a range of lines (1,6 is illustrative here; in reality, it was more like a hundred-line range); the “s” indicates that we’re not just matching, we’re also substituting new text for matches made; the forward slash indicates the start of the text to be matched. Then the “\.\/t1doz\/” matches “./t1doz/”; the backslashes tell the regex to match the literal character, not the special meaning of “.” and “/” (“.” matches any character, “/” marks the beginning and the ending of matching text.) Then we want the regex to save some of the match, so that we can put it into the replacement text, even though we’re not exactly sure what the matched text will be. All the text in the first group of “\(” and “\)” will be saved in this way; in the replacement text, it can be accessed by “\1″ (the second group by “\2″, and so on). The “fdz” means we want it to match “fdz” literally. Then the “.*” means “match any character, zero or more times,” until we get to the next character entered. The “\.” means “match a period, literally,” so when we get to the “.” before the extension, it will match that. Then we have another group of “\(” and “\)”, which contain the text “pfb\|tfm\|vf”. That means that the next match should be any one of either “pfb”, “tfm”, or “vf”. Then we end that group with “\)”, then we end the first with “\)” (remember, the whole will be accessible in the replacement text as “\1″, while the file extension text would be as “\2″, though we don’t use it in this example). Finally, we ask it to match “\n”, which means “newline.” Then the “/” means we’re done with the matched text and beginning the replacement text. All we want to do is replace all the matched text with “\1″ (the filename we saved from earlier), followed by a comma and a space; the rest of it will be discarded. We end the replacement text with a “/” and hit “enter,” and our problem is solved.

Learning curve? Absolutely. But the power one gains, the degree to which one’s work is facilitated, is unquestionably worth it.

That is why Unix is the best. It doesn’t make the computer needlessly hard to use, nor does it dumb it down in easiness to make it next to useless. It caters to your level of skill. If all you can do is manually change every line, it’ll let you do that. If you’ve mastered regular expressions, you can do that. And if you don’t know them, you can just read the manual pages and learn all about it, without having to shell out for some “advanced” version of the program or some type of certification.

Windows (and Mac) are like a carpenter with only one tool, a giant hammer with which he bashes everything until he gets what he needs. And usually he ends up with something reasonably useful. Unix, on the other hand, is like the toolbox of a master carpenter, full of small, specialized, powerful tools well-suited to a single task. Can anyone really debate which one is better?

Praise be to Christ the King!

Published in:  on 2 July 2009 at 6:29 pm Comments (8)
Tags: , , , , ,