Our Disastrous Debt Economy

I’m pretty old-fashioned economically, really. I put a relatively new name on my economic opinions (I call them “distributism,” a term derived from “distributive justice” and only in existence for less than a hundred years), but it’s really a set of pretty conservative principles, some of which even Republicans and libertarians will agree with. A few of my fundamental principles:

  • An economy, like all parts of society, exists to help its members proceed away from vice and toward virtue. The provision of sufficient quantities of material goods, however it may be done, is a necessary part of this.
  • Because economics deals with the distribution of material goods in a society, distributive justice is its fundamental principle. This distinguishes it from, say, criminal law, in which retributive justice is the fundamental principle.
  • The bedrock of any economy is production of useful goods for human consumption. We cannot consume what has not first been made. Putting consumption before production is putting the cart before the horse.
  • At least considered in the abstract, local is better than remote. The perfection of a society comes in part from possessing the greatest possible degree of self-sufficiency. Thus, encouraging reliance on remote, or even foreign, sources of goods when such goods can be produced locally is a Bad Idea.
  • Debt is a burden on an economy; too much debt will cripple or kill it. My grandmother once told me, “If you can’t afford it until tomorrow, wait until tomorrow to buy it.” But she is a child of a different age, with saner principles in her mind.

That last is my topic today. We’re awash in debt. The primary issue most businesses have had during our current “economic crisis” is the inability to acquire more debt quickly enough. Our federal government, even, is in the hole nearly twelve trillion dollars, and that crushing debt is increasing at a record pace while our government lives out to its fullest Dick Cheney’s idiotic principle that “deficits don’t matter“.

The average American’s credit card debt is $8,329. That’s just credit card debt alone; that doesn’t include pesky little things like mortgages, car payments, student loans, hospital bills, and the million other things that people need to take out credit for. Indeed, in 2007 14.7 percent of U.S. families had debt exceeding 40 percent of their income. And then they still had to pay their mortgages, pediatricians, and so on.

Can anyone seriously look at this situation and claim it represents a healthy government and a healthy economy? At first, of course, it seems great; that’s why the Fed “stimulates” the economy by lowering interest rates to encourage people to borrow more. People are flush with cash with which they buy lots of stuff that they otherwise couldn’t afford; this makes car dealers and television salesmen very, very happy, which makes stocks go up, which means people borrow even more because they feel that things are only getting better, and so on. But this is a very limited boost to the economy.

Because, of course, it can only last so long. Eventually, the people lending this money out do actually want it back. With interest. And people begin struggling to make their payments. Many of them default; many of those who do not are forced to forego many purchases which they would otherwise make in order to pay off those bills. Businesses which might have hired one more person with real money, rather than three with debt, have to fire their three debt employees and hire nobody instead while they pay it back. It’s clearly a loss from the individual perspective; but for a while, the economy managed to cancel out those negatives and continue apace, building itself on ever-increasing piles of debt.

Too bad it was bad debt. Eventually, those individual financial disasters begin to accumulate. It goes from a trickle, to a flow, to a tidal wave. And here we are, at the beginning of the tidal wave, right now, while our years and years of living beyond our means by borrowing for things that we couldn’t afford finally, at long last, catch up to us.

Who’s responsible for this situation? Facially, of course, it’s citizens and businesses who engaged in very risky credit behavior. Namely, it’s almost everybody in the country. But most of these people were relying on advice and on policies from higher up, coming from everywhere from the banks to the Fed itself. I myself, when buying my house, had to deal with constant encouragement from mortgage lenders to spend more than I had, despite my repeated insistence, and provision of a specific maximum figure, that I would spend only this much and no more. Those with less control or knowledge over their financial situation are surely much more likely to succumb.

The banks are really responsible, taking their cue from the Federal Reserve, who encouraged their reckless lending behavior with obscenely low interest rates. (Rates which remain obscenely low even as we speak.) And so, naturally, the banks ended up holding the biggest and heaviest bag when the debt hit the fan. But the banks also had the most money, even if it was funny money. They asked their friends at the Fed and the Treasury to help. And those friends moved heaven and earth to ensure that these banks would never, under any circumstances, face the consequences of their own actions, even as the poor in this great country literally lose house and home for following the advice that the Fed and these banks gave them.

So the banks are the truest of capitalists. Profit is privatized, as they made billions of dollars thanks to the government’s easy-lending policies. But costs are publicized, as the taxpayers of this generation and of countless generations to come pay the price when those policies finally run up against the inevitable wall. This is wrongdoing in the extreme. We have become a country run not by the people, nor even by a despot. We are an oligarchy, in which our very richest get whatever they want, taking the profits of the public largesse while forcing the hoi polloi to stomach the losses.

MSNBC, of all places, put up an interesting monologue which prompted me to return to this topic after so long. We’re still paying the price for this idiocy; let us hope that it ends soon.

Praise be to Christ the King!

Published in:  on 4 February 2010 at 6:08 pm Comments (1)
Tags: , , , , , ,

Evolution, Idiocracy, and Catholicism

I can’t say that I’m an evolutionist. I’ve seen a lot of evidence that points to it and a lot of evidence that points against it, and I’ve seen pretty convincing critiques of both sides from the other. (Guy Berthault has done some fascinating work on sedimentation that really calls into question the existence of so-called “geologic” time scales necessary for evolution, for example. Though note that this doesn’t mean these time scales don’t exist, just that they don’t necessarily exist; and Berthault himself refuses to call himself a creationist.) My attitude on the subject is identical to that of the great Hilaire Belloc:

The main issue for European civilization in general is whether man fell or no. Whether man was created for beatitude, enjoyed a supernatural state, fell by rebellion from that state into the natural but unhappy condition in which he now stands, subject to death, clouded in intellect and rotted with pride, yet with a memory of greater things, an aspiration to recover them, and a power of so doing by right living in this world of his exile; or whether man is on a perpetual ascent from viler to nobler things, a biped worthy of his own respect in this life and sufficient to his own destiny.

On that great quarrel the future of our race depends. But the inventors of Bible Christianity, even when they have lost their original creeds, do not see it thus. They take the main point to be, whether it were an apple—who munched it—exactly where—and exactly when. They triumphantly discover that no fruit or date can be established, and they conclude that the Christian scheme is ruined and the Fall a myth.

What matters here is not whether the earth is six thousand years old (though most young-earth creationists believe it’s more like ten thousand) or four billion; what matters is that man is a supernatural being with a soul created by God and now burdened by the effects of the Fall, from which Christ has come to save us and will come again. It’s both philosophically and theologically certain that creation was ex nihilo; whether it was ex nihilo in its present form, or in some other form that the operation of natural laws (which themselves were created by God) has transformed into its current state, is interesting but comparatively irrelevant.

Sometimes, though, evolutionism produces results with which I do, and must, passionately disagree. One such result is this strange movie that came out a few years ago, Idiocracy. The basic premise of the film is that evolution favors the most prolific (which, if evolution be true, is only partially correct anyway), and that in this day and age the intelligent are having few children—because only idiots would have many, apparently—while the stupid are having tons of them. Furthermore, while in yesteryear morons frequently killed themselves prior to reproducing due to their own stupidity, modern medicine has enabled such cretins to survive and produce offspring similar in intelligence to themselves. Therefore, evolution is tending to make us all stupider, and in five hundred years the human race will have become clinically, and universally, retarded.

Let’s simply assume the truth of the theory of evolution for purposes of this brief discussion so that we can move to more important matters. Evolution favors the successful; those strategies which are a help to survival result in a more successful species, while those which are less result in a less. So why is it a bad thing if the idiots shall inherit the earth?

Really. In many ways the dinosaurs were pretty impressive creatures, and on an immediate level their successors were pretty pathetic; tiny, cowardly, sniveling creatures living in dark holes in the ground, fuzzy and vulnerable rather than huge and dominant, and if not for the lucky coincidence of a large asteroid (or whatever it was) these sad little mammals would never have proceeded out of their burrows and into the brave new tomorrow. Some evidence suggests the development of not inconsiderable intelligence in these dinosaurs, while the greatest of the mammals at the time had a brain the size of a walnut, if that large. If a dinosaur, while his kind were dying off, had mastered the arts of language and letters and produced some written corpus for us to discover fossilized in some cave in the deserts of Montana, what would it say? Would we feel sympathetic understanding as he described the world decaying into idiocy with these pathetic mammals taking over the earth?

No, of course we wouldn’t. Because it’s stupid. Evolution doesn’t favor the intelligent; it doesn’t favor the wise; and it doesn’t favor the artistically inclined. It favors successful survival. Our evolution may have tended to larger and more elaborate neural wetware, but that doesn’t make it the One True Way; and evolutionists tell us that we came pretty close to extinction more than once despite all our vaunted brainpower. There is no “ladder of evolution” as is often depicted in popular myth. Evolution isn’t a ladder; it’s just a road, going nowhere in particular. There’s no scale of development with prokaryotes on the one end and Albert Einstein on the other; there’s just more successful and less successful. Frankly, in evolutionary terms certain bacteria are probably the most “highly evolved” of all forms of life. So if a lower intelligence is a better survival strategy, what’s the problem?

We may not like it. We may think that the coming “idiocracy” would be a terrible place to live. But that’s really just evolutionary sour grapes. We’re on the “more intelligent” evolutionary track, and ours is losing. Maybe that makes us unhappy. But what does it matter who’s more intelligent, when evolutionarily speaking what’s important is not intelligence, but success?

It’s become rather fashionable in some circles to refer to the Idiocracy as a sad commentary on how we’re ruining our species. I say rather than such a view of Idiocracy is such a sad commentary. It betrays a total lack of understanding of evolution, which is ironic since such people general tout themselves as the evolutionary cognoscenti.

Now, things get really interesting when you take it to the next level. If you want to ensure that the more intelligent survive and reproduce while the idiots don’t, why don’t you just handle it the old-fashioned way? This way has two prongs. The first is rather obvious: have more children. If the problem is that morons are reproducing too much and smart men not enough, surely an easy answer to that problem is for smart men to reproduce more. The second is equally obvious, though much more distasteful: go out and kill the idiots. Dead men, at least in my experience, rarely produce offspring. Evolutionarily, this makes perfect sense; an evolutionist who does not believe in the spiritual soul should have absolutely no moral problem with this solution.

I have a problem with it, though; namely, that it would be a monstrous deed of cruelty and injustice. Even if our bodies were produced by natural processes, our souls weren’t; these are what make us men rather than just man-shaped beasts, and therefore these are what govern our moral conduct. We cannot simply rely on what works; we must instead rely on what’s right. Our souls have nothing to do with man’s survivability, and everything to do with his salvation.

Praise be to Christ the King!

P.S. I don’t address whether it’s true that the species is becoming progressively dumber in this little posting, though I do question that part of the movie’s premise, as well.

Published in:  on 29 January 2010 at 6:59 pm Leave a Comment
Tags: , , , , , , ,

A Cooperative Business Model

My, my. It has been a long time since I’ve posted, hasn’t it? Well, here’s one for you: cooperative business models.

Business in the West has traditionally been seen to be competitive. And it is, of course, to a certain degree. That’s even healthy, of course—to a certain degree. As Pope Pius XI taught us, competition “within certain limits [is] just and productive of good results” (Quadragesimo Anno, p. 44), and no distributist would say that all competition has to be done away with. However, Pius XI also taught us that competition “cannot be the ruling principle of the economic world” (id.), and it’s here that distributists generally part ways with their capitalist confreres on this issue.

How, after all, is innovation and development supposed to occur without competition, the capitalists ask? Without the incentive to beat out their competitors, why would anyone devote money, time, and expertise to solving problems? And if people aren’t devoting these thing to solving problems, how can we expect any industry to advance? Do you want us all plowing with wooden shares on inadequately rotated crops again?

To which the distributists can cite any number of examples, many of which have been cited to directly on this site. One that’s often neglected, however, is one that’s at the forefront of one of the most innovative and quickly-changing industries in the world, computers and the software that runs them. So for purposes of this brief article, I will respond to this capitalist argument with one simple word: Linux.

GNU/Linux, actually. It’s by now a well-known phenomenon that has been enormously successful in the computing world, effectively competing with the likes of Sun Microsystems (once an industry powerhouse with its SPARC servers and Solaris operating system; now much reduced, being purchased by database company Oracle), Microsoft, IBM, and Hewlett-Packard. A clone of Unix, versions of which were sold competitively by IBM, HP, AT&T, Sun, and other companies, GNU/Linux has overtaken all of them.

GNU/Linux is used on an incredible 443 of the top 500 supercomputers in the world. It has become by far the most dominant system in this field. Of the top ten most reliable sites on the Internet in December 2009, six were running some version of Linux. (Two more were running FreeBSD, another free operating system; only one was running a Microsoft server.) Despite being powerful enough to run the world’s supercomputers and the world’s most reliable web servers, it’s still versatile enough to be a strong competitor in the smartphone market (Google’s Android, for example, is based on Linux), and it’s got a small but not negligible share of the desktop market, as well. (The author uses it exclusively himself.)

Whether Linux is better or worse than its competitors is beside the point here; what’s significant is that it is a competitor, and that much no one can deny. How did it get to be such? How did Linux become such a significant player in such a wide variety of operating system markets? Surely it must be by the most cutthroat of competition, doing whatever it can to outsmart and outplay the other players in the field?

No. It did so by cooperation.

It was recently announced by the kernel community (Linux is, technically, a kernel, or the central core of the operating system; in other words, the part of your operating system that interacts directly with the bare metal of your hardware) that a full 75% of developers of the Linux kernel are paid. This is a big deal for a kernel that started out almost twenty years ago with a guy in his dorm room coding an operating system for fun. Red Hat, a Linux corporation, unsurprisingly contributed the most code, some 12%. But Intel, the chip manufacturer, contributed 8%, IBM and Novell contributed 6% each, and Oracle contributed 3%. Some of these companies, like IBM, produce competing operating systems, or once did. Most of them are competitors of each other; for example, Oracle produces its own Linux distribution (Unbreakable Linux), as does Red Hat (Red Hat Enterprise Linux) and Novell (SUSE Linux).

This may bear some explanation. Linus Torvalds, the original coder of the Linux kernel, is still in charge of its development. He is paid by the Linux Foundation, a non-profit which is contributed to by many corporations, from IBM to Google. When people contribute to the kernel, it’s vetted by a huge number of coders and others, until it’s finally (if it’s good enough) approved by Torvalds and put into the kernel itself. Once it’s there, it’s available to everyone on the planet to use as they will. Really; once it’s in the kernel, anybody can use it for whatever they want, as long as they don’t prevent anyone else from doing the same. So when IBM contributes to the Linux kernel, its competitors can take the contribution and use it to compete with IBM. And yet they continue, year after year, to contribute a large part of the improvements to the Linux kernel. And their competitors continue to do the same, even though they’re fully aware that IBM can turn around and use that contribution to compete with them. Essentially, each of these companies, when they contribute to the kernel, is assisting its competitors. This, according to the competition-uber-alles argument, makes absolutely no sense.

These companies have every incentive to improve their product and leave the others in the lurch. So why are they contributing to the Linux kernel, which make all their improvements to that kernel available to all of their competitors?

The simple answer is that doing so makes the world better for everyone.

Companies contribute to the kernel because not only do other companies get the benefit of their work, but they get the benefit of other companies’ work. No one company could possibly have produced an operating system that scales from incredibly massive supercomputers to a cell phone that fits in my pants pocket. It couldn’t happen. It had to be done by an enormous number of developers, all cooperating on the same project; no one company alone could have paid them all. The Unix market was fragmenting and dying when Linux came along; the many different Unix vendors were killing one another by competing instead of cooperating. Linux changed all that; the Unix derivatives are now stronger than ever, and getting stronger by the day. Because companies are cooperating on it, rather than fighting about it.

Their incentive, in other words, doesn’t have to be beating out the competition; it can be making things better for themselves. Certainly, when a company contributes to Linux, it’s not being altruistic; it contributes because it knows that by improving the kernel, it’s making it more useful to others, who will improve it in turn, and that company will then get the benefit of that. And competition isn’t totally out of the picture, either; beating out Microsoft is almost certainly one of the motives that leads these companies to cooperate on the Linux kernel. But it’s not being solely competitive; it’s being cooperative, and competitive within proper limits. It’s recognizing that by cooperating with others to make a better product, it’s able to compete in other areas.

No distributist dislikes competition. But no distributist likes corporate throat-cutting, either. Sometimes competition just isn’t in the best interests of an industry; sometimes the improvement of the industry can only come from cooperation, rather than competition. The sooner many industries realize this, the better off we all will be.

Praise be to Christ the King!

Published in:  on 22 January 2010 at 2:53 pm Comments (5)
Tags: , , , , , ,

Why Latin?

Just for a break on the computer stuff, let me say a few words about Latin.

My Latin has never been particularly good; at one point I could read it reasonably fluently, with infrequent references to a dictionary, and it has descended since then. Periodically I study it for a while, get it going again, and then let it fall off once more into disuse. I’m resolving to make it good again; more than that, I’m resolving to make it fluent. Nothing could be more important for a Catholic today than to study, read, speak, and think in Latin, and so I intend to do all of these things.

I know that I’m given to hyperbole, and this particularly line is no exception. Really, nothing could be more important for a Catholic than learning Latin? Some things are, of course. Learn the catechism. Maintain a life of dedicated prayer. Do your duties in your state in life, be they lay or clerical, with dedication and charity.

But once you’ve done that, or at least are making a concerted effort to do that, what better thing could a Catholic do than learn Latin?

Our entire tradition is composed in the Latin tongue. In the distant past, I am told, the language of the Roman Church was Greek; but that time is so distant, and was so short, that little or nothing of it remains in that tongue. What was there, is now in Latin. The greatest councils are preserved in Latin; particularly the Council of Trent and the First Vatican Council. Even the Second Vatican Council was published in Latin, in a time when most clergy spoke Latin quite fluently, and I daresay that the Latin gives us a better idea of its meaning than the translations do. Even our lackluster modern liturgy, almost universally celebrated in the vernacular, is truer and better in Latin. (Most translations are awful, genuinely chunk-hurlingly awful, even when they are not actually heretical. Email me and I’ll share, if you like.) The greatest of the Fathers, St. Augustine, wrote entirely in Latin. The undisputed, unquestionable greatest theologian in history (Aeterni Patris), St. Thomas Aquinas, composed all his works, without exception, in the Latin tongue. Papal encyclicals and other documents have been in Latin literally forever, for as long as such documents have existed.

Even the Scriptures themselves. Surely, most of the Old Testament was originally in Hebrew, with bits of it probably originally in Greek, and the New Testament was probably written almost entirely in Greek (though I’ve seen reports that St. Paul composed the Epistle to the Romans in both Greek and Latin, which would make sense, and that St. Matthew’s Gospel was originally in Aramaic). But the original copies of these books are long gone. Fortunately, one great translator, who spoke Greek, Hebrew, and Aramaic literally like a native, lived sixteen hundred years ago when those original texts, and the most faithful copies therefrom, were still extent. He was ordered by the great Pope Damasus to translate them, which he did. St. Jerome thus bequeathed us the glorious legacy of the Latin Vulgate, the most faithful copy of the Scriptures in existence, and the only one guaranteed by the Church’s immemorial tradition to be without error. And what language is that in? The only language for the Church. Latin.

Parts of the Church speak different languages, of course. The Byzantine church has always spoken Greek. The Ruthenian has always spoken Old Church Slavonic. The Russian has always spoken Russian. The Ethiopian, Ethiopian. Some of these churches have traditionally used the vernacular. These are true and valid traditions of particular churches which should not be disturbed. Even the Roman church has not always spoken Latin, though she almost always has. But the Catholic Church, the Church above all churches, the one that spans the world and is headed by the Vicar of Christ, the Servant of the Servants of God, speaks Latin.

Our entire tradition is in Latin. Large chunks of that tradition have not been translated, or have only been translated long ago into archaic vernacular, or have only been translated badly. And translation, no matter how good, always loses something of the original. It is in the nature of language that exact equivalence is not always possible; the translated version, if it is to be manageable, must entail some loss of meaning. The only way to get true, real access to our tradition is to do so in the language in which it was written. To do otherwise is like a native-speaking Russian and a native-speaking Chinese learning about horse-racing in English; they’ll probably get the main ideas, but all hope for precision and faithfulness is lost.

Dr. Mark Clark of Christendom College, my own alma mater, has composed a fantastic piece on the importance of real, living Latin in The Homiletic and Pastoral Review. It has inspired me anew in my efforts to become truly facile in the tongue of the Church. I hope that it inspires others to do the same.

As it is, I can still read and compose Latin with some difficulty. If you’d like, I’d encourage you to write me in Latin, and I’ll respond in kind. The more practice we all get, the better off we’ll be. Reviving Latin as the language of written discourse, or at least a language of such, is the first step to preventing its imminent demise.

Praise be to Christ the King!

Published in:  on 4 January 2010 at 6:32 pm Comments (10)
Tags: , , , ,

Just Not the iPod

Just not the iPod. I needed a digital sound recorder; while I was at it, I might as well get one that can play music, too. As I discovered, some video files, photographs, and FM radio were pretty standard on decent digital recorders, as well. But I refuse to get an iPod.

Apple’s as bad as Microsoft these days, except that their software is better and they’re smaller. They use a BSD kernel, so at least their operating system is not, on a technical level, as chunk-hurlingly awful as Microsoft’s is. But in terms of their customers, they’re as bad or worse than Microsoft is. As an Apple customer, you don’t own your computer, and you don’t get to decide what you do with it; Apple does. The same goes for your iPod, iPhone, iToilet, and whatever else people decide to buy because it’s shiny and it’s got the Apple logo on it.

The iPod is the worst of it. I understand that initially Apple probably didn’t support anything other than mp3 because they wanted mp3’s potential DRM misfeatures. (Those are misfeatures that allow them to control what you do with your data.) But what’s the deal now? iPods support mp3, wav, and aiff; I understand that they now support Audible, as well.

No Ogg Vorbis, no FLAC. Not even Windows Media Player. What’s the deal?

The deal is that Ogg and FLAC are free formats, unencumbered by patents that Apple might later be able to use to its advantage. Apple doesn’t like that. iTunes only started selling DRM-free mp3s because it was politically unavoidable; that doesn’t mean that Apple is suddenly against DRM. Oh, no. It wants to make sure that your entire music collection is in a format nicely encumbered by patents.

Well, nuts to that. I wanted a player that would use free formats, of equal or greater quality than the patent-encumbered ones.

There are lots of them out there. I eventually settled on the Sansa Fuze.

It’s a diminutive little thing; I’m told it’s about the same size as an iPod Nano. But it’s better. It’s got a nice, full-color screen of reasonable size; it supports not only mp3 and wav, but also Ogg, Flac, and wma (not that I have anything in wma, but still); and it even supports mp4 video files, though you have to run them through a filter first. So I can play all the music I want, in free formats, and listen to all the audiobooks I can download off Librivox. (Right now, Chesterton’s The Crimes of England.) It can display photos (no need for a thick photo flipper in my wallet anymore) up to a very reasonable resolution. And the recorder, the principal reason I wanted it in the first place, yields some amazing quality, considering that I still can’t even figure out where the microphone is. Not to mention the ability to record FM radio, which itself gets remarkably good reception.

I’ve got pretty small ears, and the earbud headphones it came with are driving me nuts (they keep falling out). But I can deal with that; that’s me, not the player.

And it’s not an iPod.

Praise be to Christ the King!

Published in:  on 3 January 2010 at 11:27 pm Leave a Comment
Tags: , , , , ,

Massive Kitschy Nerd Cred Obtained

You can thank my uncle, David Carothers, for this little piece of geek kitsch. He gave it to me. I am the proud owner of an actual piece of Luke Skywalker’s home planet. You know, the place where he lived when he whined like a dork about power converters.

Fragment of the meteorite Tatooine

Fragment of the meteorite Tatooine


Yes, this is an actual meteorite named Tatooine, the source of the name George Lucas used for Luke Skywalker’s desert home. In reality, of course, as one can see on the label, it’s Tatahouine, a city in Tunisia. This meteorite impacted near there in June of 1931; as a result, it is customarily referred to by the name of the city. It’s a rare achondrite type of meteorite (what that means precisely I’m not sure, and I don’t care enough to Google it, but it’s rare, so that’s cool), one of about twelve kilograms of fragments recovered.

So all you other geeks out there are going to have to put that in your pipes and smoke it. I…own…Skywalker’s…planet. Or at least a chunk of it. Ha!

Praise be to Christ the King!

Published in:  on 13 December 2009 at 8:05 am Comments (1)
Tags: , , , , , ,

Hardware Support in GNU/Linux

Well, really in just Linux, since drivers are mostly in the kernel. (For those who don’t know, “Linux” is the kernel, the central bits of the operating system that does the vast majority of the relations with the bare metal; “userland” is everything else, including most of the programs that we actively use on a daily basis, and is disproportionately GNU software). But for some reason people don’t think that Linux supports much hardware.

The reality, however, is that Linux has better hardware support than Windows. Indeed, Linux hardware support blows Mac and Windows completely out of the water. What’s more, Linux supports this hardware out of the box, with no need to install 250MB of drivers plus a helper program plus a load of adware and crapware off the CD that came with your device, which helpfully adds a desktop link, a “start menu” item (usually an entire directory!), and a little icon in your system tray on your menu bar (tried to install any printer on Windows lately?).

Why is that? Substantially, it’s the Linux Driver Project’s doing. This massive project, utilizing some of the most competent programmers in the world and led by famous kernel hacker Greg Kroah-Hartman, offers free driver development for any device manufacturer that asks. This project has ensured that almost every single device on the planet can run on Linux. Kroah-Hartman (despite working for the execrable Novell) is a real hero in Linux, not only managing the USB kernel subsystem (being part of the first-ever implementation of USB 3.0, working in Linux before any other OS in the world), but also heading up this vital project. Kroah-Hartman explains it thus:

Part of the issue is that we support more devices than any other operating system ever has. That’s a fact that’s been verified by other companies. The problem is that people only care about the devices that they have. Therefore, if your device doesn’t work for some reason, you don’t care how many thousands of other devices out there work.

When I started the Linux driver project, I’d been hearing this from all the major companies that were shipping Linux and cared about Linux. So, I went around to them individually and said, “OK, what do you need me to do? What needs to be worked on?”

Every single major hardware company, said, “Hey, you’re right. Everything works on Linux. We’re fine.” That’s shown by these companies that ship Linux on their machines. Dell, HP, and all the big hardware companies and laptop manufacturers now ship Linux, and we’re working with them.

Compare that, now, with Windows. Every “upgrade” (e.g., XP to Vista, Vista to 7) breaks large numbers of drivers, which will need to be rewritten. Windows has comparatively few drivers built-in, necessitating downloads and CDs which consequently can, and usually do, contain vast quantities of adware and crapware that can only be removed with difficulty, if at all, without removing the driver itself. (Does your printer work in Windows without the nonsense software the printer company released? No? Mine does, in Linux.) And if you replace something really fundamental—say, put in a new motherboard—Windows will freak, gag, and probably break.

Forget about replacing your primary hard drive. Most likely, your copy of Windows came with your computer, so you don’t have an install disk; so if you replace that drive, your installation is all gone. You might be able to mirror your current drive onto the new one, then take out the old one—but not with out-of-the-box Windows software. Often, replacing fundamental bits of hardware will cause Windows to assume that it’s an illegal copy, requiring you to jump through ridiculous hoops to ensure Microsoft that you’re not cheating them. This last applies even if you do have an installation disk, not to mention the hundreds of dollars you probably had to drop to get it.

Incidentally, even on the software level Windows is gratuitously incompatible. It won’t read from any filesystem not produced by Microsoft at all. Really; it’ll gag, if it can even see the partition. Linux happily reads, and even writes, to filesystems as varied as NTFS and FAT32 (Microsoft’s own crappy filesystems), along with its native ext3 and friends. Windows just won’t. Nor will Windows easily network with non-Windows machines; to do that, non-Windows systems have to do all the work. Not to mention that Linux, upon installation, will tread very lightly, respecting everything else that’s on the computer, even Windows. When you install Linux on a computer that already has Windows on it, Linux is ready and willing to let Windows continue to exist; it will install a boot loader, allowing you to choose your operating system at boot time. Try it with Windows. On installation, Windows takes a big stinky dump on top of your boot sector, and adds insult to injury by not even bothering to wipe. Windows is here; all your box are belong to us. Surely you didn’t need to boot anything else? Microsoft will solve all your problems, whether you like it or not!

Mac? Forget about it. Mac works with Mac; Steve Jobs wants you to be entirely dependent on his little “walled garden,” so Apple doesn’t bother to even try putting in compatibility with a wide range of hardware. As Kroah-Hartman again points out, “Mac OS X does not support very many devices at all.”

So if you want hardware support, if you want compatibility with many other systems, GNU/Linux is your best choice. Saying otherwise is ignorance at best, FUD at worst.

Praise be to Christ the King!

Published in:  on 30 November 2009 at 4:32 pm Comments (2)
Tags: , , , , ,

On C Programming and K & R’s Impossible Exercise 1-21

No, it’s not really impossible; it’s just extremely difficult until you make a certain, particular mental leap, one which was long in coming for my idiot little brain.

However, some brief background: K & R is Kernighan and Ritchie, authors of the monumental The C Programming Language. When I say “monumental,” I don’t mean “huge,” because it’s not; it’s actually remarkably short, given that it describes the programming language which underlies just about every significant systems program of the modern computing age. As K & R themselves state in said wise tome:

We have tried to retain the brevity of the first edition. C is not a big language, and it is not well served by a big book.

Such wisdom! Such restraint! If only more programming book authors could conduct themselves with such brevity! As a student of the Thomists, themselves dedicated studentes brevitatis, I can’t help but admire this kind of sensibility.

K & R have, rightly, exercised enormous influence in the world of computing, particular in that of GNU/Linux. Now, GNU has one coding style, while Linux has another; it’s the same language, but each uses different styles. The primary difference is that the Linux style is wonderful, while the GNU style is awful[1]; the reason for this is that the Linux style respects K & R, while the GNU style neglects them, thus consigning itself to the nether regions of illegibility. As Linus Torvalds himself has noted,

First off, I’d suggest printing out a copy of the GNU coding standards, and NOT read it. Burn them, it’s a great symbolic gesture. . . . the preferred way [of coding is] shown to us by the prophets Kernighan and Ritchie . . . Heretic people all over the world have claimed that this [style is] inconsistent, but all right-thinking people know that (a) K&R are _right_ and (b) K&R are right.[2]

So, in other words, K & R are right. Period. Moving on.

In any case, one thing that K & R absolutely love to do is throw into their text, as if it’s a minor practice step, programs that are incredibly difficult to execute correctly. These exercises are described in a way which implies mere employment of what has already been discussed, and that much is technically true; however, they often require cognitive leaps quite beyond the text to that point. Doubtlessly K & R’s immense brilliance render these cognitive leaps hardly worth mentioning, mere flickers of their intellectual thumbs; for puny mortals such as myself, however, they’re more equivalent to running the Boston marathon. There are many such exercises; however, without a doubt the worst example of this that I’ve encountered thus far is the dreaded Exercise 1-21, the entab program.

It sounds benign enough:

Write a program entab that replaces strings of blans by the minimum number of tabs and blanks to achieve the same spacing. Use the same tab stops as for detab. [The program in Exercise 1-20; also difficult, but not murderously so.] When either a tab or a single blank would suffice to reach a tab stop, which should be given preference?

Hardly designing a rocket guidance system, is it? This one shouldn’t take more than half an hour.

Wrong. You couldn’t be more wrong. For hours I struggled, never successfully attaining this simple end. I’m even ashamed to say that I resorted to the answers site, just for ideas. But even those programs didn’t work. Seriously; I tried them. They don’t do what the exercise says they should do.

They do something, of course; they do what my initial attempt at the program did. They take any group of spaces equal to a tab and replace it with a tab. That’s great and all, but it’s not what the exercise requires.

Here’s an example. The programs at Heathfield’s are fine programs, but they don’t meet what the exercise requires. Here’s what they do; first line is the ruler, second the input, third the output:

             |________|________|________|________|
             |Now__________is____the______time
             |Now\t__is____the_____time

For those of you who don’t know, that ‘\t’ means “tab,” the pipes (“|”) represent tab stops, and the underscores are there because they’re easier to see than spaces. In other words, these programs simply find sequences of eight spaces and replaces them with tabs. It takes no notice of where the tab stops actually are. All well and good. But the exercise doesn’t just want sequences of eight blanks replaced by tabs; it wants some sequences of less than eight blanks replaced, if that would yield the same spacing as the original input.

This second solution is much harder than the first (which I was able to achieve quite quickly, even with my tiny brain and limited programming acumen). I beat my head against the wall for a long time—then finally had an epiphany. I can make the program work!

If I’d sat down and planned out how to solve this problem, like a real programmer, instead of just started banging away at it the way I did, I would have solved this very quickly. But I didn’t, so I got started off on the wrong track, and because I already had a program in front of me, albeit one that didn’t work, I wasn’t able to see that I’d gone wrong from the very beginning.

The answer is that you need two variables, in addition to the string; one to keep the basic index on the line, and one that keeps track of the tab characters. If you know programming, look at the code and you’ll see what I mean. If you don’t, just take my word for it: two variables made all the difference.

And it works!

So, for your enlightenment (by “enlightenment,” I mean “amusement that it took someone so long to solve such a simple problem, and yet that someone is so excited about it”), here’s the code. I hope other anxious learners beating their heads against bricks with this problem will learn from my own egregious errors.

/* +AMDG */
/*
 * A program that replaces a sequence of blanks by the
 * minimum number of tabs and blanks necessary to achieve
 * the same spacing.  Gives preference to tabs when either a
 * tab or a single blank would suffice to reach a tab stop.
 *
 * This program is released under the GNU General Public
 * License, version 3.
 *
 */

#include
#include

#define MAXLINE 10000
#define TABSTOP 8

int getline(char s[], int lim);
int tabreplace(char s[], int tabspot, int index);

int main(void)
{
	int i; /* keep track of string index */
	int j; /* keep track of tab stops */
	char string[MAXLINE];

	while(getline(string, MAXLINE) > 0) {
		for(i=1,j=1; string[i] != ''; ++i,++j)
			i -= tabreplace(string,j,i);
		printf("%s",string);
	}
	return 0;
}

int tabreplace(char s[], int tabspot, int index)
{
	int i;
	int numspaces;

	if (((tabspot % TABSTOP) == 0) && (s[index-1] == '_')) {
		for (i = index-1; (s[i] == '_') && (i > (index-TABSTOP)); --i);
		numspaces = (i>(index-TABSTOP)) ? index-i-1 : index-i;
		if (numspaces > 0)
			s[index-numspaces] = '\t';
		for(i=index-numspaces+1; s[i] != ''; ++i)
			s[i] = s[i+numspaces-1];
		s[++i] = '';
		return numspaces-1;
	}
	return 0;
}

int getline(char s[], int lim)
{
	int c, i;

	for (i=0; i<lim-1 && (c=getchar())!=EOF && c!='\n'; ++i)
		s[i] = c;
	if (c == '\n')
		s[i++] = c;
	s[i] = '';
	return i;
}

It works! I’m really excited. Technology, though often abused, is incredibly powerful; learning more about it is more powerful still.

Praise be to Christ the King!

1. Don’t worry; both produce programs of equal usability, all other things being equal. It’s just that reading GNU-styled code is crazily impossible to me, while reading Linux-styled code, given that it’s directly from the immortal K & R, is pure pleasure.
2. I’m citing with legal standards here; that is, brackets indicate not only inserted material, but also possibly excluded material. This unencumbers selective quotations significantly, removing the need for braces and ellipses; I’ve provided a link to the full text. So many interpolations and exclusions were required because Torvalds is being much more specific than I am here; the spirit of his remarks is the same.

Published in:  on 22 November 2009 at 8:57 pm Comments (1)
Tags: , , , , ,

Computers, Manuals, and the Command Line

Among Linux forums, Linux users are constantly being accused of elitism. They’re up on their high horses, secure in their comfort with Linux and other Unix-like operating systems, looking down their pointy noses on the hapless noobs who just want their computers to “just work.” Poor Joe Sixpack, trying to free himself from proprietary tyranny, is constantly being chased away from Linux by such superior elitists, who make him feel like an idiot just for asking an innocent question.

What yields such charges of elitism? More often than not, it’s the simple suggestion that the asker of a given question should resort to the documents which were written precisely for the purpose of answering such questions: the manuals. In other words, people who really cared about Joe Sixpack would spoon-feed him like a newborn baby; hateful people who point him to the answers to not only his specific question, but also to most other questions in the computerized universe, are elitists. To this, I can only respond with one short, trite phrase:

Read the f@#$ing manual.[1]

Seriously. Read it. That’ll probably answer your question. If it doesn’t, Google it. Google is your friend.[2] If you don’t know how to get to the manual, go to a command line and type “man command“. That’s it; your manual will come up. Read it. If it doesn’t work, as it very occasionally doesn’t, then once again, Google it. You’ll get a manual shortly. Once you’ve read it, and you actually understand the program you’re trying to use, you probably won’t have a question anymore. You’ll have educated yourself to know something, rather than simply doing something without knowing what or why. And isn’t that better? Isn’t it better to learn than simply to ape what some ubergeek tells you on a help forum?

If you’ve done all this, and you still can’t figure it out, please feel free to ask the question. Geeks and hackers throughout the world will be happy to help you find the solution. Remember that we hang around in help forums answering questions on our own time. Nobody’s paying us for it (most of the time); we’re doing it because we like the program and we like helping people. What we don’t like is people who demand we solve their every problem without them ever making any effort to solve it themselves, or even to understand what it is. That tends to make us a bit ornery. And with good reason.

You see, those of us who are called “geeks” or “hackers” didn’t become such by opening our heads up and letting people pour stuff into them. We got that way by study and effort. Some of us learned in college; some of us never went to college; some of us went to college, but learned little about computers there, gaining this knowledge on our own. But all of us value self-teaching and self-study, with deference to the masters when one cannot find the answers on one’s own. The deeper one gets into computers, the more one will require such consultation. As a corollary, however, the shallower one is in computers, the more rarely one will require it. If you’re just a hapless noob looking for help, then I can more or less guarantee that the answer to your question is easy, and that you’ll find it in the manual. But even if it winds up not being there, at least do us the courtesy of looking first, please.

We’re the ones who wrote those manuals, see. We don’t just write software; we write documentation for it. We work hard at it, and try to include all the normal situations as well as any unusual ones that have been reported to us. As such, your problem is probably in there; in the unlikely event that you’ve found an edge case that nobody else has noticed yet, then we want to know about it. But we don’t want to answer the same question thousands of times when we’ve already answered it in a thorough and complete way by putting it in the manual.

Nobody expects to drive a car without taking a driving class. Nobody expects to wire a house without studying up on electronics. Nobody expects to fix their dishwasher without learning a little plumbing. Yet for some reason everybody expects their computer to sit up and beg whenever they point at it and tell it what they want it to do. The computer is an immensely powerful machine that will do many wonderful things, but one must first learn how to tell it what to do. Sometimes that’s pretty easy; sometimes it takes significant study; sometimes it’s deep magic that only the very greatest masters can manage. In no case, however, can it be done without learning something, and the place to learn that something is, more often than not, the manual.

People who call us elitists for saying things like this are completely missing the point. We’re not elitists. Elitists would want to maintain their superior knowledge and keep everyone else dependent upon them. We’re doing precisely the opposite; we’re helping other people obtain the same knowledge we have, from the same sources that we have it. A truer egalitarianism is difficult to imagine.

It’s the difference between giving a man a fish and teaching him to fish. Is it elitist to teach a man how to provide for himself, or to perpetually infantilize him by giving him everything he needs and pretending that it takes no effort for somebody else to get it?

The computer is a tool, and like all tools it takes knowledge, study, and experience to use it effectively. When we refer you to a manual or to a search engine for an answer, we’re not doing it because we think you’re stupid, or because we think we’re better than you. We’re doing it to teach you how to find the answers yourself. That’s not elitism; it’s humanitarianism, pure and simple.

Praise be to Christ the King!

1. This saying is frequently abbreviated to “RTFM,” which is variably rendered as “read the f@#$ing manual,” “read the fun manual,” “read the fine manual,” or something similar, depending on the speaker.
2. This saying is frequently abbreviated “GIYF.” Truer words in the computer world could hardly be imagined.
3. Please, also, learn how to ask a question correctly should the manual or the Internet fail to yield a helpful solution. This will go a long way to showing that you’ve filled your end of the computer help bargain; people will respect you, and thus be more interested in helping you.

Published in:  on 13 November 2009 at 9:41 pm Comments (2)
Tags: , , , , ,