Canned Platypus

Saving the world one byte at a time since 2000

Oct
31
Why Buy RHEL?

Yet again, I’m going to post about something related to my employer. Yet again, I’m going to reiterate that this is not an official Red Hat position. In fact, I more than half expect I’ll get in trouble for saying it, but it just had to be said. You see, there’s a discussion on Slashdot about How Can I Justify Using Red Hat When CentOS Exists? The poster wants the functionality of Red Hat Enterprise Linux, but the CIO doesn’t want to pay for it and demands that they use CentOS instead. A lot of people have tried to explain the various aspects of what a RHEL subscription gets you. I’m not going to expand or correct those comments, because that will definitely get me in trouble and partly because I just don’t care. Here’s the reason that apparently carries no weight at all with CIOs and never even occurs to Slashdotters.

Because it’s the fucking right thing to do, you assholes.

Yeah, I used profanity on what has almost always been a family-friendly blog. I did that because it’s so utterly infuriating that such an obvious and important principle has totally escaped notice elsewhere. If you value something, you pay for it. Even the worst free-market zealots claim to believe that. They often use the same rationale to justify eliminating regulations (especially environmental ones) or replacing public aid with private charity. Red Hat folks do more work than anyone to improve the Linux kernel, GNOME, and dozens of other projects. They write the code, do the testing, fix the bugs, write the documentation, and provide all kinds of logistical support. The beneficiaries include not just obvious derivatives like CentOS and Scientific but even commercial competitors from Oracle and Amazon’s obvious clones to completely separate distributions like Ubuntu which also package that code and fixes. This work isn’t done by volunteers. It costs a lot of money. The fact that we allow the code to be distributed for free should have nothing to do with the principle that you pay for what you value. When you violate that principle you ensure that there will be less of what you value. The result will be a net loss for everyone, as less innovation occurs and more energy is wasted making sure everyone’s “intellectual property” remains under lock and key. Even the thieves lose.

I’d really like to hear from someone who can offer a better moral justification than “we can so we should” for using CentOS on thousands of machines without paying for even one RHEL subscription, because nothing I’ve heard so far is even close. “Duty to maximize profits” arguments will be deleted, because I’ve already turned that one into swiss cheese enough times in my life. Does anybody seriously believe that freeloading should be on the “good” side of our collective moral map?

Alex Tabarrok has written what might very well be the stupidest thing I’ll read this year, about the Mexican Mafia. In it, he portrays their extortion as “taxes” because folks like him love to do the opposite and portray taxes as extortion. He takes it a little further than most, though, by claiming that the MM “became a kind of government” because some of their actions could be construed as protecting property rights or adjudicating disputes. Is that enough to make a government? Is it really equivalent to the torts and courts on which even the most free societies and markets depend? Does the MM provide anything equivalent to national defense – the one institution even the most radical government-haters seem to favor? No, they rely on prison guards, and beyond them the real military, for that. In fact, their whole enterprise depends on Real Government doing all the hard work of delivering victims by incarceration. Tabarrok concludes that the Mexican Mafia has “much to teach us about crime and governance” despite all this. I disagree. An unelected and unaccountable authority defined by ethnic homogeneity and engaging in “taxation” without representation would have no legitimacy as a government, and bears no resemblance to the one with which Alex is not so subtly comparing it. Even a meth habit doesn’t explain that kind of writing.

In other, slightly better, news, Radley Balko has finally figured out that the limited-liability corporation is really an exercise in political economy, and might not be truly compatible with libertarian ideals. Yeah, the “limited liability” part, unaccompanied by anything in return for that governmental favor, kind of gave that away. The corporate structure is to liability what an address in the Caymans is to taxation. Many people have recognized that for years. They’ve suggested that, if we’re going to break the relationship between profit and risk (which real free-market theory tells us is essential), we should at least try to limit or recover the losses that result. Do you suppose that whole careers spent attacking such people as socialist might explain why normal people see “libertarian” as nothing to do with free markets? Of course, the comments to Radley’s article make it quite clear that even asking an innocent question is viewed as heresy. Ours is not to question. Ours is only to accept our position below the New Aristocracy in Washington and Wall Street.

Last week, my mother sent my daughter a gift – a “Mazin Hamster” from Ganz. It comes with a “feature code” that supposedly confers access to a special area of the Webkinz online world. No link; you’ll see why soon enough. The problem is that the hamster’s feature code by itself doesn’t give you access to the Webkinz site. For that, you need the “secret code” associated with a regular Webkinz animal first; then you can use the hamster’s code to get into the special area. Not having such a secret code, I set about procuring one. I went to eBay, found an auction for a cute little gecko with a sealed code attached, and quickly won the auction for far less than it would cost to buy a similar animal in a brick-and-mortar store. So far, so good.

When the gecko arrived, we tried to use its secret code to register on the website. I’m sure everyone can guess what happened next; we were informed that the code had already been used and thus was no longer valid. So here I am, in clear physical possession of both the toy itself and the associated card/ticket with a unique code printed on it, having provably paid for both, but as far as Ganz is concerned I do not own that code. Sometimes possession isn’t nine tenths of the law, after all. The first thing I did was contact the seller, who I will not name because I’m not really sure he did anything wrong. I was polite. I explained the situation, warned him that some of the “sealed” codes on toys he’s selling might not have been sealed in any useful sense after all, and sought his advice. As expected, he swore that the code had been sealed when he got the toy and when he sent it to me. He offered to send me a new code if he got one, but I have to say if I did get a code I could never shake the suspicion that it had come from some other kid’s toy. Having been disappointed twice, Amy was in tears by this point. I don’t much like the idea of merely causing yet another little boy or girl to cry, and I told the seller that.

My next step was to contact Ganz. The phone representative confirmed that the code had already been used, adding that it had been as far back as 2008 and even giving me the first name of who they considered the owner. The toy does appear brand new, in case you were wondering. I’ve seen plenty of these toys before. We even have one (sans code) already, and I can assure you that they don’t stay new-looking long after they get into the hands of a kid who would be interested in registering on the site. Phone Gal also informed me that they do not support sales via Amazon or eBay, only from physical stores or their own eStore. First I’d heard about that. I verified that physical possession of the object didn’t count, and then bade Phone Gal good day.

OK, so I got screwed, but that’s not what this is about. What’s the real problem here? The eBay seller had tried tell me that the codes could be guessed, but I’m skeptical. Each code has to be associated with a particular type of animal. There are enough digits in the code, and enough hundreds of animal types, that making five guesses per day on the Webkinz sites isn’t really going to be very rewarding. No, the first real problem is that the physical security on the authentic codes is very weak. It’s just a simple slip of paper in a plastic envelope tied shut with a little blue ribbon. There’s no plastic thing that you have to break to get at the code, no scratch area, not even a tamper-evident foil seal on the envelope. It would be trivial to buy the toy, use the code, put the code slip back in the envelope, and re-sell it. The physical security is so poor that it would even be possible to do all of this in the store without purchasing anything, and I suspect that’s where most illicitly used codes come from. I was briefly tempted to do exactly that myself, and I’m pretty sure that’s what the eBay seller intended to do, but I try to be a better person than that.

That’s not really the biggest problem here, though. The biggest problem is Ganz’s attitude. They must be aware of how easy it is to steal or misuse codes, and of how often it actually happens. They could secure the codes better, but that might add a couple of pennies to the price. Sadly, I know enough about our collective “race to the bottom” to understand and almost accept that they couldn’t be expected to do that. Alternatively, they could accept proof of physical possession as proof of virtual possession. That would cost them nothing, and would be the fair thing to do according to every moral standard I can think of. Why don’t they? I think it’s because they don’t want to support any kind of re-sale at all. They want to sell you a brand new toy, at full price, even if the toy you already have is only “not new” by virtue of illicit use that they have practically encouraged. Their position is even worse than the RIAA or MPAA, who have at least had to concede that physical transfer of a CD or DVD transfers rights as well. A stolen code is not a lost sale to them; it’s two sales. Doing the right thing would hurt their business. The status quo suits them just fine, and they don’t care how many children’s tears are shed because of it.

No, Ganz, I will not be buying anything from you. Ever. I will endure Amy’s tears if I have to. I will use this as an opportunity to teach her about how companies sometimes do things that are wrong, about the concept of socially responsible purchase decisions, and about boycotts. Then I’ll substitute some other equivalent gift, perhaps a game or membership on some other site, because it’s not her fault (or my mother’s) that you’re evil. I’m so annoyed that I might even do more than that. You’ve made an enemy.

In just about every technical community but one, I probably have a higher profile nowadays than my brother Kevin. I say that not out of younger-sibling competitiveness, but almost for the exact opposite reason – to point out that he’s a pretty technical guy too, and largely responsible for my being one. Here are a couple of points of evidence.

  • His interest in computers predates mine. When a friend of the family loaned us what had to be one of the first TRS-80 computers in New Zealand, it was Kevin who really jumped all over the opportunity.
  • He made a lot more effort regarding computers. One of the very first things he did when he came to the US (a year after our mother and I did) was save up and buy an Apple II. Given the price tag and our economic circumstances at the time, that was a pretty major expenditure. He dove right into 6502 programming, still years before I took programming seriously.
  • He was involved in open-source long before I was . . . except it wasn’t called that back then. Kevin was on the NetHack 3 development team, which was a pretty complex global enterprise. If you were to look at the way the developers coordinated, you’d recognize a lot of the patterns in common use today. This was back in 1989, as I was just starting my own programming career.

Since then, I’ve gone on to infamy and misfortune. Kevin is now a DNS guru, which is why I said “every community but one” earlier. As it happens, this knowledge came in handy just recently. I’m trying to consolidate my web “properties” which are currently spread all over the place. I want to use one provider for DNS, one for email, and one for everything else. GlowHost is very soon going to web-only, and not even that as soon as I get un-stuck enough to set up my own nginx/PHP/etc. configuration on a cloud server I already use for a bunch of other things. As I was trying to move email from GlowHost to FastMail I ran into a glitch. I transferred DNS and email for one of my less-used domains just fine. When I tried to move atyp.us – yes, this domain right here – the DNS part seemed to be OK but I was having trouble with email. I was able to get email on FastMail, but I could see from the headers that it was still going through GlowHost first. I looked at the NS and MX records from a bunch of different places, and everything seemed fine, but even after several days I was still seeing this screwy behavior. Time to call in the DNS expert to see what I was missing.

Pause: can anyone else guess?

The problem turned out to be that mail transfer agents are dumber than I thought, and my silly insistence on using pl.atyp.us instead of atyp.us was confusing the poor babies. Even though I had the MX records for atyp.us and *.atyp.us in place, they’d still fail to find an MX record for pl.atyp.us specifically. Then, they wouldn’t even go “up the tree” and get the MX for atyp.us as I thought they would (and as the SOA for pl.atyp.us makes pretty clear). Instead – and this is the part where Kevin was able to point me in the right direction – they’d fall back to looking for an A record which was still pointing to GlowHost because that’s still where the website is. Bingo. I added the “pl” MX records, and I can already see email flowing in without going through GlowHost.

So thank you, Older Brother. No, not for the MX thing. For every thing.

Oct
19
Stop The Hate

I’ve noticed a significant increase lately in the number of complaints people are making about the operating systems they use, particularly Linux and most especially the storage stack. No, I’m not thinking of a certain foul-mouthed SSD salesman, who has made such kvetching the centerpiece of his Twitter persona. I’m talking about several people I know in the NoSQL/BigData world, who I’ve come to respect as very smart and generally reasonable people, complaining about things like OS caches, virtual memory in general, CPU schedulers, I/O schedulers, and so on. Sometimes the complaints are just developers being developers, which (unfortunately) seems to mean being disrespectful of developers in other specialties. Sometimes the complaints take the form of an unexamined assumption that OS facilities just can’t be trusted, get in the way, and kill performance. The meme seems to be that the way to get better application performance is to get the OS out of the way as much as possible and reinvent half of what it does within your application. That’s wrong. No matter how the complaint is framed, it’s highly likely to reflect more negatively on the complainer rather than the thing they’re complaining about.

Look, folks, operating-system developers can’t read minds. They have to build very complex, very general systems. They set defaults that suit the most common use cases, and they provide knobs to tune for something different. Learn how to use those knobs to tune for your exotic workload, or STFU. Does your code perform well in every possible use on every possible configuration, without tuning? Not so much, huh? I’ve probably seen your developers deliver a very loud “RTFM” when users visit mailing lists or IRC channels looking for help with a “wrong” use or config. I’ve probably seen them say far worse, even. How can the same person do that, and then turn around to complain about an OS they haven’t learned properly, and not be a hypocrite? When you do find those tuning knobs, often after having been told about them because you had already condemned the things they control as broken, don’t try and pass it off as your personal victory over the lameness of operating systems and their developers. You just turned a knob, which was put there by someone else in the hopes that you’d be smart enough to use it before you complained. They did the hard work – not you.

I’m not going to say that all complaints about operating systems are invalid, of course. I still think it’s ridiculous that Linux requires swap space even when there’s plenty of memory, and behaves poorly when it can’t get any. I think the “OOM Killer” is one of the dumbest ideas ever, and the implementation is even worse than the idea. I won’t say that operating-system documentation is all that it should be, either. Still, if you haven’t even tried to find out what you can tune through /proc and /sys and fcntl/setsockopt/*advise, or gone looking in the Documentation subdirectory of your friendly neighborhood kernel tree, or accepted an offer of help from a kernel developer who came to you to help make things better, you’re just in no position to complain or criticize. It’s like complaining that your manual-transmission car stalled, when you never even learned to drive it. Not knowing something doesn’t make you a fool, but complaining instead of asking does. Maybe if you actually engaged with your peers instead of pissing on them, they could help you build better applications.

For some pretty obvious reasons, everybody’s asking me about this already and will probably continue to do so, so I might as well get some thoughts written down in semi-coherent form. First, though, let’s take care of some administrivia.

I do not – ever – represent Red Hat online. I neither can nor want to speak for them. Also, I was not directly involved in the acquisition. I’m sure my well known opinions about Gluster helped put the idea in people’s heads, and I’m sure I’ll be quite busy helping figure out exactly where to go from here, but it would have been neither appropriate nor useful for me to have been involved in between. Everybody who was involved knew and respected that, as did I, so I was not at all surprised to read about it in public sources first. I’m posting this on my personal site instead of the HekaFS site to underscore the fact that this is my personal, unofficial opinion as someone who is affected by but not responsible for this decision.

OK, enough of that. Personally, then, I am delighted by this. Let’s enumerate some of the things I’ve been feeling and saying about Gluster and GlusterFS since I joined Red Hat and started the CloudFS/HekaFS project.

  • This is an area where open source has needed to make a stronger play vs. proprietary solutions.
  • GlusterFS has a strong overall architecture – e.g. leveraging local filesystems, adding modular functionality – for dealing with emerging needs regarding unstructured data, cloud deployment, etc. Sure, there are some parts of the implementation that I think could improve, but I’d rather build on a strong base than have to rip out and throw away stuff built on a weak one.
  • The Gluster folks are as committed to open source as Red Hat is. Not only their code but their process is open, and so are their minds. Just think for a moment how open-minded someone must be to listen when I get all opinionated about their work. Despite my abrasive style, they have always listened and responded constructively.
  • Community matters, and the very strong Gluster/FS community has been one of the best parts of my job for the last couple of years.

All of this adds up to a move that somebody in open source had to make, and these were the best two companies to make it. Proprietary Big Storage has defined the field too long. This will make it a lot easier to implement not only my vision for HekaFS, but other visions as well. Scale-out shared-nothing storage that’s easy to configure, easy to tune, easy to monitor, is a powerful tool. It can be used to serve up files – or objects – directly to users, as part of either a traditional or cloud environment. It can be used to serve up the virtual-machine (and other disk) images that are an essential part of cloud computing. It can be used for many other things besides, either as-is or via extension modules. Compression or deduplication, snapshots or versioning, custom access controls, inline format conversions . . . the sky’s the limit. Layering separate functionality on top of dumb blocks/files/objects, each oblivious to the other, is so yesterday, but it’s all that competitors will ever make possible. When people have access to a strong and stable core, plus the ability to tinker with it, much more ambitious visions both within and outside Red Hat become possible. What would you do, if you could build storage that was exactly what you need?

I have the best readers. One sent me email expressing a hope that I’d write about Martin Fowler’s LMAX Architecture. I’d be glad to. In fact I had already thought of doing so, but the fact that at least one reader has already expressed an interest makes it even more fun. The architecture seems to incorporate three basic ideas.

  • Event sourcing, or the idea of using a sequentially written log as the “system of record” with the written-in-place copy as a cache – an almost direct inversion of roles compared to standard journaling.
  • The “disruptor” data/control structure.
  • Fitting everything in memory.

I don’t really have all that much to say about fitting everything in memory. I’m a storage guy, which almost by definition means I don’t get interested until there’s more data than will fit in memory. Application programmers should IMO strive to use storage only as a system of record, not as an extension of memory or networking (“sending” data from one machine to another through a disk is a pet peeve). If they want to cache storage contents in memory that’s great, and if they can do that intelligently enough to keep their entire working set in memory that’s better still, but if their locality of reference doesn’t allow that then LMAX’s prescription just won’t work for them and that’s that. The main thing that’s interesting about the “fit in memory” part is that it’s a strict prerequisite for the disruptor part. LMAX’s “one writer many readers” rule makes sense because of how cache invalidation and so forth work, but disks don’t work that way so the disruptor’s advantage over queues is lost.

With regard to the disruptor structure, I’ll also keep my comments fairly brief. It seems pretty cool, not that dissimilar to structures I’ve used and seen used elsewhere; some of the interfaces to the SiCortex chip’s built-in interconnect hardware come to mind quickly. I think it’s a mistake to contrast it with Actors or SEDA, though. I see them as complementary, with Actors and SEDA as high-level paradigms and the disruptor as an implementation alternative to the queues they often use internally. The idea of running these other models on top of disruptors doesn’t seem strange at all, and the familiar nature of disruptors doesn’t even make the combination seem all that innovative to me. It’s rather disappointing to see useful ideas dismissed because of a false premise that they’re alternatives to another instead of being complementary.

The really interesting part for me, as a storage guy, is the event-sourcing part. Again, this has some pretty strong antecedents. This time it recalls Seltzer et al’s work on log-structured filesystems, which is even based on may of the same observations e.g. about locality of reference and relative costs of random vs. sequential access. That work’s twenty years old, by the way. Because event sourcing is so similar to log-structured file systems, it runs into some of the same problems. Chief among these is the potentially high cost of reads that aren’t absorbed by the cache, and the complexity involved with pruning no-longer-relevant logs. Having to scan logs to find the most recent copy of a block/record/whatever can be extremely expensive, and building indices carries its own expense in terms of both resources and complexity. It’s not a big issue if your system has very high locality of reference, which time-oriented systems such as LMAX or several others types of systems tend to, but it can be a serious problem in the general case. Similarly, the cleanup problem doesn’t matter if you can simply drop records from the tail or at least stage them to somewhere else, but it’s a big issue for files that need to stay online – with online rather than near-line performance characteristics – indefinitely.

In conclusion, then, the approach Fowler describes seems like a good one if your data characteristics are similar to LMAX’s, but probably not otherwise. Is it an innovative approach? Maybe in some ways. Two out of the three main features seem strongly reminiscent of technology that already existed, and combinations of existing ideas are so common in this business that this particular combination doesn’t seem all that special. On the other hand, there might be more innovation in the low-level details than one would even expect to find in Fowler’s high-level overview. It’s interesting, well worth reading, but I don’t think people who have dealt with high data volumes already will find much inspiration there.

While we were in Ann Arbor last month, we stopped by the abolutely amazing Kaleidoscope used and rare bookstore. (I’d link, but can’t find a website.) I knew from our last visit that they have an excellent collection of old sci-fi magazines, so I decided to see if they had any from the month I was born – April 1965. Sure enough, they had a Galaxy from that month. I was surprised how many of the authors I recognized. Here are the stories mentioned on the cover:

  • “Wasted on the Young” by John Brunner
  • “War Against the Yukks” by Keith Laumer
  • “A Wobble in Wockii Futures” by Gordon R. Dickson
  • “Committee of the Whole” by Frank Herbert

That’s an all-star cast right there. However, the story that really made an impression on me was by someone I had never heard of – “The Decision Makers” by Joseph Green. It’s about an alien-contact specialist sent to decide whether a newly discovered species met relevant definitions of intelligence which would interfere with a planned terraforming operation. That’s pretty standard stuff for the SF of the time, but there’s a twist; the aliens, which are called seals, have a sort of collective intelligence which complicates the protagonist’s job. This leads to the passage that might be of interest to my usual technical audience.

Our group memory is an accumulated mass of knowledge which is impressed on the memory areas of young individuals at birth, at least three such young ones for each memory segment. We are a short-lived race, dying of natural causes after eight of your years. As each individual who carries a share of the memory feels death approaching he transfers his part to a newly born child, and thus the knowledge is transferred from generation to generation, forever.

Try to remember that this was written in 1965, long before the networked computer systems today were even imagined, and that the author wasn’t even writing about computers. He was trying to tell a completely different kind of story; the entire excerpt above could have been omitted entirely without affecting the plot. Nonetheless, he managed to describe a form of what we would now call sharding, with replication and even deliberate re-replication to preserve availability. The result should be instantly recognizable to anyone who has studied modern distributed databases such as Voldemort or Riak or Cassandra. A lot of people think of this stuff as cutting edge, but it’s also an incidental part of a barely-remembered story from 1965. Somehow I find that both humbling and hilarious.

Last night I went to my first concert in . . . I don’t know how long. I’m pretty sure the last one was before Cindy and I got married, so at least fifteen years. It was quite an experience. For one thing, I’m pretty sure I wasn’t the oldest person there, but I might have been the oldest who was there alone. All the other over-40 types seemed to be escorting kids. That didn’t keep me from being carded, though. The Palladium staff were simply carding everyone who wanted to purchase alcohol, which is totally fine with me.

The Palladium has, to put it bluntly, seen better days. It must have been a grand theatre once, but now things are in pretty serious disrepair. There’s paint and plaster hanging off the walls. Most of the balcony, where I had gone in hope of saving my ears, was closed for what were pretty clearly safety reasons. Somehow the only other unaccompanied 40-year-old in the place happened to be sitting next to me (hi Ben!) and I joked with him a little about the abandoned-theatre ambience providing an appropriate theme for this kind of music. I didn’t catch the name of the opening band at the time, but apparently it was 3. (Side note: naming your band “3″ in the era of Google search seems like a slightly bad idea, because it’s hard to search for.) I liked some of their songs quite a bit, though it also did occur to me that their style might not be the best possible match for the headline act. It was good hard-driving music, with some unique guitar technique adding a bit of flair. After a short break, Within Temptation hit the stage.

What can I say about the music? Of course it was amazing. Everyone has a certain set of musical features that get them excited. For many people, including me for most of my life, this has resulted in combinations that aren’t actually represented by any real-world act. I’m lucky, though, because the combination of mid-tempo high-dynamic range symphonic metal with strong female vocals is pretty well represented in Europe nowadays, and Within Temptation are clear leaders within that genre. Everyone else focuses on Sharon den Adel’s voice, and rightly so, but I think all of the band members play their parts just a bit better than anyone else. Special mention should probably go to Martijn Spierenburg’s work on keyboards, which is often hard to notice consciously but rounds out the sound in an important way. His band-member page also mentions his daughter among his hobbies, which I consider extremely cool. The most important thing about WT’s sound, though, is not the individual contributions but the way they all work together. The buildups are beautifully layered, and the timing when everyone comes in for a crescendo is flawless in both composition and execution. There’s a reason this is the first show I’ve gone to in a long time.

It’s a bit different hearing them in person, of course. First off, it was loud. My ears were still ringing when I got home, and the drive from Worcester to Lexington isn’t short. It wasn’t obnoxiously loud, though. From up in the balcony, at least, the vocals still came through and the overall distortion level was still reasonable so every song sounded just fine – just louder than I’m used to. Maybe that wouldn’t have been true down on the main floor. Also, Sharon’s voice wasn’t 100% last night. She was only twice as good as most other lead singers. ;) High notes were a particular problem, which might have led to disappointment on some of the songs where those particular talents are highlighted. Other than one “well, that didn’t work” shrug near the beginning (which I found endearing) and one not-even-attempted high note later on, though, I didn’t really notice. Like everyone else in the crowd, as far as I could tell, I was just far too enraptured to care about such things. Even at 99%, they provided a musical experience far beyond anything else I can recall. Listening to Within Temptation is a pleasure, but being immersed in the sound like that and with that much energy – from bands and audience alike – is something more.

Yes, I’m a fan. I’m even more of a fan now than I was at this time yesterday, and isn’t that what it’s all about?

Yesterday, it being Labor Day and everything, I made a comment expressing appreciation for the gains organized labor has brought. (It turns out that Labor Day might not really be about labor unions so much as the labor – i.e. work – itself, but that’s immaterial here.) My views were immediately branded “leftist” but that seems to be a particularly useless way to consider views toward organized labor. To be sure, unions and strikes have often been used by communists/socialists as weapons against capitalism, and many early union leaders here in the US were very red indeed. On the other hand, some leftist regimes such as China or the old Soviet Union have been markedly intolerant of unions. Go on strike there and you could get yourself shot. Show me a room full of trade-union members here in the US and I’ll show you a room where the dominant political beliefs are those of right-wing Limbaugh, O’Reilly and Beck rather than any “leftist” you could name. These contradictions spring from the fact that, in some essential ways, pro-labor vs. anti-labor sentiment isn’t really a left vs. right thing at all.

Left vs. right has traditionally been about the influence of government in people’s lives, and particularly in their economic lives. The union debate is about tension between two non-governmental centers of power – the providers of capital vs. the providers about labor. Unions are, at the most basic level, just voluntary associations pursuing common goals. The right of free association that’s involved is the same one exercised by the pilgrims at Plymouth Rock or the patriots at Lexington Green. Government has continued to honor this right not only by directly protecting its exercise but also by granting many kinds of associations favorable treatment – especially with respect to taxation. In the particular case of capital holders forming the associations that we call corporations, the benefits extend even further to limited liability, political influence, taxpayer-funded trade diplomacy, etc. If capital providers can voluntarily associate and receive all these benefits for doing so, why not labor providers (i.e. workers)? Why not allow the two groups to work things out directly between themselves, in the market, without government interference in the form of requiring government sanction for unions, enforcing exclusivity (labor monopolies are just as evil as capital monopolies), and so on? How is it “leftist” to recognize that voluntary association in the form of unions is an alternative to direct government interference in the market, and to support that alternative? Support for or opposition to unions is really more of a populist vs. authoritarian issue that doesn’t fit neatly into any simplistic “left vs. right” model. Those who would outlaw unions and replace them with government are leftist authoritarians. Those who would outlaw unions and replace them with nothing at all are neo-feudal authoritarians. I reject both. It’s absurd to think of “power to the people” as a leftist idea . . . but I guess if the right wingers want to make it clear that they’re against that idea then I shouldn’t complain.

[NB: if you go back far enough, to seating arrangements during the French revolution, the identification of "left" with populism and "right" with hereditary aristocracy does seem pretty strong. The axes have shifted since then, though, and by modern definitions the idea of opposing the left by favoring government interference with the right of free assembly seems rather absurd.]

By the way, my support of unions as a concept does not imply support of specific unions as they exist and operate today. Because of government interference such as I’ve mentioned, they have become another form of oppression for individual workers. That’s true whether they’re acting in league with company owners or in opposition to them. Having formerly lived in Detroit I reserve special hatred for the UAW, which in my view has harmed its members more than anyone by steadfastly resisting necessary adaptation to changing technology and globalization. They’ve done as much as the auto companies themselves to destroy that industry and that city. The kind of union I believe in, driven by voluntary participation and popular will of its members instead of being either neutered or captured by the politico-economic elite, hardly exists today. For the sake of real free markets the return of real unions would be a good thing.