I have a large Rails 3 project with lots of reusable code in modules. Tests for these modules are placed in
test/lib to isolate them from database-heavy model tests. In order to run these tests automatically along with my unit, functional, and integration tests, I implemented the solution described here some time ago. However, at some point over the last year, either Rake or Rails or both broke this (I'm leaning towards Rails, since the new tasks in the Railties gem look much more complex, with special subtasks derived from the
Rake::TestTask class). I've been looking for a new approach, and today I got fed up and started fixing it myself.
I have a large Rails 3 project with lots of reusable code in modules. Tests for these modules are placed in
As a longtime libertarian and an avowed egalitarian socialist, I've struggled with the concept of "political correctness" for as long as I've had a political awareness. I went through a neoliberal democrat phase in the 90's where what many denounced as PC simply looked like good manners to me. Don't get me wrong; some of it was just that: the attempts of well-meaning people to navigate a culture permeated with deep-seated privilege and oppressive features. And yet, just as much polite talk is not exceedingly honest, I always had a nagging suspicion that politically correct habits were something more than mere social graces.
So this essay has been a long time coming for me, as I try to figure out where I fit in on the Left. My heart is in the struggle for an egalitarian, enlightened, peaceful world. But I don't consider leftism a religion, and the impulse of many to treat it as such -- to codify and regulate the behavior of people according to its tenets -- too often looks like a movement going through the motions instead of genuinely challenging the human condition. Indeed, my argument is that political correctness, far from being an expression of genuine compassion and anti-bigotry, has transformed into a cosmetic substitute for authentic radicalism legitimating authority and privilege while hampering our efforts to change our condition. The goal of this essay is to start a conversation within the Left about our means, not our ends.
Over at Bleeding Heart Libertarians, Dr. Matt Zwolinski has a video defending sweatshops. I suppose if this were just another libertarian site, it might not concern me. After all, he's hardly the first libertarian to associate our philosophy with defenses of exploitation.
What gets me is that the site is called "Bleeding Heart Libertarians". Ostensibly, the goal of the blog is to defend libertarianism as a compassionate philosophy. It adds insult to injury for libertarians to make the same tired arguments not only in a flashy new medium but also on a site intended to represent a compassionate, concerned variety of the philosophy whose label we both employ.
It's not that his arguments are wrong per se. Yes, sweatshop jobs are the best of a crappy set of options for far too many people in the third world. Yes, shutting down those sweatshops without doing anything else would not improve anybody's situation. And yes, I can't contest the point that people should do things to help their situation, even if they don't remedy it completely.
Scott Walker won his recall election, and labor has suffered a genuine defeat. Maybe the words of Big Bill Haywood can give us some perspective on the place of elections in the struggle and where we might go from here:
The Industrial Workers of the World is an economic organization without affiliation with any political party or any non-political sect. I as an Industrialist say that industrial unionism is the broadest possible political interpretation of the working-class political power, because by organizing the workers industrially you at once enfranchise the women in the shops, you at once give the black men who are disfranchised politically a voice in the operation of the industries; and the same would extend to every worker. That to my mind is the kind of political action that the working class wants. You must not be content to come to the ballot box on the first Tuesday after the first Monday in November, the ballot box erected by the capitalist class, guarded by capitalist henchmen, and deposit your ballot to be counted by black-handed thugs, and say, "That is political action." You must protect your ballot with an organization that will enforce the mandates of your class. I want political action that counts. I want a working class that can hold an election every day if they want to. (my emphasis)
Abstaining for Change
Why I will not vote for Barack Obama this year
I voted for Barack Obama in 2008. I didn't do so because I believed the hope and change hype. Since Obama changed two key positions almost immediately after winning the nomination (telecom immunity and caving to AIPAC on Iran) I had long abandoned such naivete. Instead, I voted for Obama because I thought at least he would be restrained and judicious in charge of the imperial war machine. The attitudes of the Bush years seemed more important to repudiate than the actual policies, and everything seemed to indicate that, while he wouldn't depart too much from Bush's war policy and domestic police state, he would at least go about it in a more measured, less bellicose manner.
I think after three years of Obama at the helm, we can safely put to rest any notion that he's any substantively different. Need I list the reasons? Composing "kill lists" for drone strikes that target any "military-age males" and kill scores of innocents. Duplicity on withdrawing from Iraq. Doubling down on Afghanistan. Waging a war on whistleblowers while indeminfying torturers and other criminals. Corporatized health care for all. Continuing and extending bailouts for corporate America. Crackdowns on medical marijuana despite his campaign rhetoric. The NDAA and indefinite detention of suspected terrorists.
Just as it is unwise to be reflexively partisan when voting, it's unwise to be a reflexive voter at all. I am not the kind of anarchist who believes voting is inherently evil or violent. You have to weigh each opportunity on its own, unique merits, surveying where you can make the most difference. Even when you choose to participate, most of the time the real opportunity has nothing to do with the office being contested or the people contesting it. Because the state is tied up so intricately in the civil society we want to liberate, and engaging those people is the real task anyway, we have to meet them where they're at.
Respecting the "Left" in "Left Libertarian"
C4SS and the Litz Affair
I am a long-time and enthusiastic supporter of the Center for a Stateless Society. Its steadfast advocacy for a society free of privilege has been both heroic and unique. One of the aspects I find most compelling is the sense in which it has popularized left libertarian ideas in the wider leftist movement, including all kinds of anarchists, socialists, communists, anarcho-syndicalists, greens, and other radicals. Indeed, many of us have become involved with a wider circle of friends, comrades and collaborators than we ever could by clinging to more conventional libertarianism.
So the revelation that C4SS staff member Stacy Litz served as a police informant for months comes as quite a shock to all of us. She is responsible for snitching on several of her fellow libertarians to escape jail time. The extent to which she attempted to mitigate the harm of her actions is unclear. None of us know for certain what we would do in her situation, and we can all have compassion for the horrible dilemna in which this person was placed -- even as we regret and condemn what she chose to do.
The Center released a statement reflecting the decision to non-judgmentally but resolutely remove Stacy from her position. The debate that brought about that decision was very contentious. Some members pushed to keep her, arguing that cutting anybody the state flips sends two messages: (A) if you make a mistake, you cannot rehabilitate yourself, and (B) the state has only to flip people to break our movement. Theories were advanced that we somehow throw this back in the government's face and turn it into some kind of PR coup. We're not going to let the state tell us who we can and can't work with!
So, it's been almost a year since I've updated this blog. There's a good reason for that. I love Jekyll but I love HAML and SASS so much for markup that I hacked Jekyll quite a bit and then never touched it again. When my computer went up in smoke (literally) last summer, and I had to reinstall everything, the old, fragile environment it ran on was gone, and I couldn't reestablish it. So I started playing with using Jekyll's plugin architecture. Finally got it working now.
It is kind of crazy to think about everything that's happened since then. I wrote a content management system that runs a major newspaper site and handles millions of hits a month. I went to Germany again and had a great time with Tasha and my host family. I got involved in Occupy Richmond which was a life-changing experience. My essay Let the Free Market Eat the Rich! was published in the new Markets Not Capitalism compendium. And so on.
I have lots of things I want to write about -- most pressingly to flesh out my ideas on political correctness culture and how it distracts the Left from building a genuinely egalitarian society. So stay tuned!
This quote from David Foster Wallace pretty much sums up my present thinking on the human condition and the possibilities for freedom and autonomy:
Everybody worships. The only choice we get is what to worship. And an outstanding reason for choosing some sort of god or spiritual-type thing to worship -- be it JC or Allah, be it Yahweh or the Wiccan mother-goddess or the Four Noble Truths or some intangible set of ethical principles -- is that pretty much anything else you worship will eat you alive. If you worship money and things -- if they are where you tap real meaning in life -- then you will never have enough. Never feel you have enough. It's the truth. Worship your own body and beauty and sexual allure and you will always feel ugly, and when time and age start showing, you will die a million deaths before they finally plant you. On one level, we all know this stuff already - it's been codified as myths, proverbs, cliches, bromides, epigrams, parables: the skeleton of every great story. The trick is keeping the truth up front in daily consciousness. Worship power - you will feel weak and afraid, and you will need ever more power over others to keep the fear at bay. Worship your intellect, being seen as smart -- you will end up feeling stupid, a fraud, always on the verge of being found out.
The insidious thing about these forms of worship is not that they're evil or sinful; it is that they are unconscious. They are default settings. They're the kind of worship you just gradually slip into, day after day, getting more and more selective about what you see and how you measure value without ever being fully aware that that's what you're doing. And the world will not discourage you from operating on your default settings, because the world of men and money and power hums along quite nicely on the fuel of fear and contempt and frustration and craving and the worship of self. Our own present culture has harnessed these forces in ways that have yielded extraordinary wealth and comfort and personal freedom. The freedom to be lords of our own tiny skull-sized kingdoms, alone at the center of all creation. This kind of freedom has much to recommend it. But there are all different kinds of freedom, and the kind that is most precious you will not hear much talked about in the great outside world of winning and achieving and displaying. The really important kind of freedom involves attention, and awareness, and discipline, and effort, and being able truly to care about other people and to sacrifice for them, over and over, in myriad petty little unsexy ways, every day. That is real freedom. The alternative is unconsciousness, the default setting, the "rat race" -- the constant gnawing sense of having had and lost some infinite thing.
As a footnote to my last post, here's the choice Jeffrey Tucker leaves us with in his ringing defense of fast food:
Murray Rothbard used the phrase "do you hate the state?" to ferret out real from mild libertarians. As a correlative question, we might ask "do you love commerce?" to ferret out real defenders of real markets as versus those who just enjoy standing in moral judgement over the whole world as it really exists. Yes, I too am against corn subsides, and against all subsidies, as well as taxes, regulations, inflation, zoning, public roads and everything else. In a free market, everything would thrive even more than it does today, and that goes for fast food too.
I have some responses.
Denial and the Exaltation of Personal Taste
We all fetishize our preferences, but we can do better politics than that
Every Taco Bell, McDonald's (MCD), Wendy's (WEN), and Burger King is a little factory, with a manager who oversees three dozen workers, devises schedules and shifts, keeps track of inventory and the supply chain, supervises an assembly line churning out a quality-controlled, high-volume product, and takes in revenue of $1 million to $3 million a year, all with customers who show up at the front end of the factory at all hours of the day to buy the product.
Yup, right up there with truth, symmetry, sublimity, and sunsets, for sure.
One of the great things about embedded documents in MongoDB is that you can design your "schema" according to how you're going to use the data. Ordered lists of objects is a great use for embedded documents, as you can just shove objects in an array and read them out in order. This allows one to dispense with the unpleasantness of "acts_as_list"-style approaches where you have to juggle a "position" field and do an explicit sort.
But what if you want to reorder the embedded documents? Should be simple to sort an array. Our ODM - Mongoid in this case - would never represent the embedded collection as an array and not let us work with it as an array, right?
class Container include Mongoid::Document embeds_many :items end class Item include Mongoid::Document embedded_in :container field :title, :as => String end c = Container.create c.items.create :title => "first" c.items.create :title => "second" >> c.items => [#<Item _id: 4dd2d971322bcdab7c000003, title: "first", _id: BSON::ObjectId('4dd2d971322bcdab7c000003'), _type: nil>, #<Item _id: 4dd2d981322bcdab7c000004, title: "second", _id: BSON::ObjectId('4dd2d981322bcdab7c000004'), _type: nil>] >> c.items.reverse! => [#<Item _id: 4dd2d981322bcdab7c000004, title: "second", _id: BSON::ObjectId('4dd2d981322bcdab7c000004'), _type: nil>, #<Item _id: 4dd2d971322bcdab7c000003, title: "first", _id: BSON::ObjectId('4dd2d971322bcdab7c000003'), _type: nil>] >> c.save => true >> c.reload.items => [#<Item _id: 4dd2d971322bcdab7c000003, title: "first", _id: BSON::ObjectId('4dd2d971322bcdab7c000003'), _type: nil>, #<Item _id: 4dd2d981322bcdab7c000004, title: "second", _id: BSON::ObjectId('4dd2d981322bcdab7c000004'), _type: nil>]
OK, so not that easy, but maybe this means we just need to set the new array explicitly.
I've been searching for this article and its author for years. What great timing that I finally found it in the Wayback Machine! It's one of the most important articles I think I've ever read, because it crystalizes perfectly what I consider the proper attitude to the domain of conspiracy. Here's an excerpt:
Almost all that is dismissed as conspiracy theory today is really only good or poor attempts at writing history in our own time. But why is it that when we are talking of the histories of whole different places in whole different times, we easily accept that this or that group of powerful people made this or that important event happen, yet when it comes to histories of our own time and place, we automatically reject any suggestion of any group of people making any important event happen? Throughout history, every important event always has some group of people behind it, and these events always offer revealing meanings about the kind of societies in which they occur. It is the same today.
I give this article the highest possible recommendation.
I think this is probably one of my favorite exchanges ever:
I guess you see your role as speaking truth to power, whoever happens to be in power. Which I can appreciate. The world definitely needs people like that.
What's the alternative? Flattering and cheering for power when it's on your side, no matter what it does?
The article Greenwald wrote is good, too.
Gary Chartier talks about the need to free oneself psychologically and emotionally before one can even free others. This dovetails with my thoughts on an inwardly-looking anarchism, one that sees society at large as only one half of the project. We need to become balanced people before we can effectively advocate for the balanced society that is amenable to voluntarism. Gary even goes so far as to identify love as the ideal basis for anarchist activism.
It is so gratifying to see this maturity of thought from the anarchist sector I consider my closest allies. Let this powerful presentation start the conversation on how we prosecute this next era of the struggle against privilege. If this presentation is representative of the topics discussed at the recently concluded AgoraI/O conference, then I really missed out, and will be there with bells on next year!
Class Struggle in Civil Service
Viewing Public Sector Unions Through the Lens of Class Theory
I support the public sector unions opposing Wisconsin Governor Scott Walker's agenda. While I'm neither a fan of government nor the civil service, it's clear that the so-called lavish benefits and salaries public sector unions defend against Republican encroachment represent not entrenched privilege but merely the last vestiges of a minimally fair employment deal. The last forty years have seen this deal eviscerated in the private sector, and it is only in comparison to the current paltry influence of contemporary labor that public sector unions seem pampered. One need not single out individual teachers to critique public schooling, for instance - in any case, the idea that a school teacher is grifting me provokes involuntary laughter.
As a Wobbly, however, the ideology of class struggle informs my activism on labor. Solidarity is never unconditional, as my friend Chris Lempa pointed out to me in a letter. True common purpose in the struggle against bosses must be framed in terms of legitimate class theory in order not to degenerate into the business-as-usual, reformist, junior-partner-in-the-ruling-class unionism that has prevailed since the Wagner Act. And so while I support public sector unions in this conflict, I find it difficult to place them in the traditional model of class struggle.
In the private sector the class dynamics are clear: workers and bosses can be easily seen as in zero-sum competition. One gains at the expense of the other, the prize is effective control over the means of production, and the players line up along the party whose control they favor. Customers and suppliers represent the third parties who, while not powerless in the equation, tend to deal with the organization as a whole on a voluntary basis. The adversarial relationship is more centered inside the organization, and market pressures from the third parties are accepted as a given. Much of the decline in labor power has arisen from capital's superior marketing of the narrative that union gains come at consumer losses.