Over the past two to three years, I've engaged in many conversations featuring the appeal to moral principles asserted to be held in common. Some who've known me for a while may notice that over this period I've begun to distance myself from appealing to these moral principles as a basis for my arguments. This has been a rule I've adhered to largely from both my own investigations of my beliefs as well as the influence of Max Stirner's "The Ego and Its Own" (or, as Shawn Wilbur correctly points out is a better translation of the title, "The Unique One and Its Property").
Stirner taught me that abstractions and concepts ("spooks") often rule us just as completely and arbitrarily as corporeal authorities, and that true freedom requires one to break free of all preconceived notions of propriety, convention, and duty. This philosophy is often called "egoism" and is treated by many as a form of nihilistic realism culminating in an almost Nietzschean "will to power". All constraints on the ego are to be discarded in order for the self to express itself fully through its property, its ideas.
This causes understandable concern in many. The search for perfect and complete freedom is framed in terms that are positively anti-social. If adhering to ethical codes or moral laws or legal statutes or social conventions should displease you, why not throw them all out? After all, what makes them all more valuable than your own happiness? And I find this a hard argument to reject without appealing to other spooks.
Does this sound like a certain left libertarian group you know?
It is true that there existed among us "social study groups", but we know how ephemeral and precarious they were: born out of individual caprice, these groups were destined to disappear with it; those who made them up did not feel united enough, and the first difficulty they encountered caused them to split up. Furthermore, these groups do not seem to have ever had a clear notion of their goal. Now, the goal of an organization is at one and the same time thought and action. In my experience, however, those groups did not act at all: they disputed. And many reproached them for building all those little chapels, those talking shops.
This is Amedee Dunois at the 1907 International Anarchist Congress in Amsterdam. Read the full speech here. We can learn a lot from the example of those who have gone before.
Written on Saturday, August 14, 2010
Tags: ["anarchism,", "organizational-behavior,", "left-libertarianism"]
Comments
Tree hierarchies for your Mongoid::Document objects
I'm a bit late mentioning this, but I released another super-beta gem in the hopes it might help another poor soul: treeoid, the missing "acts_as_tree" library for mongoid. It couldn't be simpler, really: it gives you a "parent" accessor and a "children" collection. On top of that, it provides a scope allowing you to list a set of treeoid objects in hierarchical order, which is perfect for front end integration.
The tests are there but nominal; I'd love to see them fleshed out. I also had some ideas for making it cooler; for example, I keep an array of an object's descendants in the object, allowing me to hierarchically order objects. This opens up some novel means to simplify how I implement the parent and children accessor. Imagine this:
{% highlight ruby %}
field :ancestry, type => Array # contains ids of all ancestors including self, already exists
but instead of a parent_id accessor
def parent_id
ancestry.at(-2) # the parent can be fetched from the ancestry list
end
{% endhighlight %}
This also allows all descendants of a given object to be easily fetched - if the id shows up in the ancestry, return it! It's this kind of out-of-the-box thinking that has really endeared MongoDB to me. I hope you can benefit from this and help me improve it. Or help with greedy. I'd love to get said help at CVREG's upcomingWhy Day hackfest.
Written on Wednesday, August 11, 2010
Tags: ["mongoid,", "ruby,", "rails,", "development"]
Comments
A friend gave the pamphlet The Iron Fist Behind the Invisible Hand to a friend of his, passing along his reactions to me. This essay is an attempt to answer some of his concerns, which I am not publishing here. However, I think it stands reasonably well on its own as a meditation on genuine change and its propensity for resulting in some kind of suffering. The friend began by asking,
With whom, economically and culturally, should or does the contemporary poet or artist identify?
I appreciate the question. My personal opinion is that I see no difference between the answer to this question and the answer to the question, "With whom should anybody identify?" You either see an unjust system as acceptable or not. How honest you are with yourself about the actual decision you're making is the real matter, and I don't think anybody scores perfectly in that area.
I'm interested in establishing a co-working community in Richmond, Virginia. To that end, I've taken the initiative in setting up a wiki page for anybody who's interested. If there's interest, I'd like to put together a regular "jelly" somewhere centrally located in Richmond to start. That's a nice, informal way for people to see if this is something worth expanding.
Please visit / edit wiki.workatjelly.com/rva and provide your ideas, suggestions, and contact information.
Written on Wednesday, July 28, 2010
Tags: ["richmond,", "local,", "coworking"]
Comments
What an astounding video; can you imagine something like this ever happening in our country?
Note also that the bad cop who was striking the victim gets away. Meanwhile, the good cop who was trying to stop the bad cop gets beat down. The lesson here is that it's not enough to be a good cop yourself; the blue wall of silence that protects so-called "bad apples" also endangers "good apples". However high and thick that wall is, there will always more of us than them.
Written on Tuesday, July 27, 2010
Tags: ["video,", "law", "enforcement,", "police", "brutality"]
Comments
This weekend I released my first ruby gem: greedy. Greedy provides a layer on top of the Google Reader API to facilitate the consumption of feed items syndicated by Google Reader for a given Google account. John Nunemaker's GoogleReader gem was the inspiration, but it used an authentication method that has been discontinued by Google. I switched to using the gdata gem.
Right now I can't figure out how to post information to the Google Reader API. Anybody who could help me figure out why my code isn't working is welcome to fork and submit pull requests - I know I'm missing something simple. When that feature works, you'll be able to use greedy to change the state of items to "shared", "read", "unread", etc. However, the code that merely consumes feed items is ready for action.
Greedy was extracted from another project that went up today, although not for the first time: leftlibertarian.org. Now that the Google Reader API stuff has been successfully extracted, the next step is to make the code that runs leftlibertarian.org into something anybody can use to publish their Google Reader stream as a website. Hopefully, that won't be too long in coming...
Written on Sunday, July 25, 2010
Tags: ["ruby"]
Comments
Like everybody else in their right mind, I'm interested in the new Top Secret America project from the Washington Post. There's definitely much about this ballooning, labyrinthine fourth branch of the government to discuss. The project promises to explore the lack of accountability arising from all the secrecy and compartmentalization, the confusion and duplication of effort resulting from the creation of so much analysis material, and the private contractors being used to soak up all that excess cash thrown at these agencies. In particular, the phenomenon of agencies going after the low-hanging intelligence fruit, instead of looking into new, unexplored threats seems to reinforce the truth that intelligence professionals are no different than any other government employee: doing the least work for the most pay.
As you read the Post's stories on this topic, remember that the organization has had a cozy relationship with the intelligence community for decades. While it's not unique among the press in that regard (look into Operation Mockingbird, the CIA's media infiltration program), the question must be asked: why publish this now? That's the real story in my opinion, because as far as I can tell the investigation by the Post isn't treading on any important ground othershaven'tcoveredalready.
I'll leave you with this quote from a speech the Post's former owner, Katherine Graham, gave at the CIA in 1988.
How not thinking carefully about your test suite can hold you back
There were two conveniently sequential presentations today at RailsConf that reminded me of some thoughts I'd had regarding testing: Michael Feathers' talk on legacy code and Glenn Vanderberg's talk on real software engineering. It seems to me that both talks had a theme in common: what is the function of tests? Why do we want them, what role do they play from an engineering perspective in the larger process, and what precisely are they meant to indicate to us?
Michael at one point talked about the expense of 100% code coverage for tests, instead recommending we test the parts of the code that change the least and are most important. Ugly code in legacy projects has utility, he explained, and untested code is a rational response to churn. Afterwards, Glenn discussed software development in the context of engineering principles from older, more established disciplines like structural engineering, finding areas of similarity, analogy, and abject difference. However, his testing point compared experiments in code to experiments in more physical engineering fields, remarking on how relatively cheap tests are for us. I suppose the common thread I found concerned the emphasis on cost: that what it means for us to do our job well is to do it effectively, and not subordinate our conscience and creativity to a mechanical process.
For some background, I've been practicing behavior driven development for a year or two. I love the confidence that testing gives me, independent of the value to the client. Verifying that my code works is fine and all, but what lets me sleep at night is the assurance derived from approaching a problem in a rational, systemic manner. By moving in small chunks and expressing problems in terms I understand well enough to programmatically recreate, I ground myself in a real comprehension of the system I'm building at the most relevant level and stage. I avoid the confusion of jumping ahead, thinking too large scale or minutely, or making unwarranted assumptions that come back to bite.
Tammer Saleh on parachuting into disaster codebases
The first tutorial class at RailsConf on Rails Anti-Patterns has been phenomenal and incredibly validating given my experiences with consulting. Tammer Saleh gave a wonderful talk on how to handle troubled legacy codebases - what he calls "rescue missions". It's particularly relevant for me as much of my early freelance work centered on failing projects I was dumped into.
Because of the success of Rails, there's a lot of shitty code out there for you to fix. The harder issue is figuring out why shitty code was delivered, which can be trickier to figure out than you'd think. It can be really difficult to change the course of a project when much more than merely the code is dysfunctional.
Tammer suggested a ton of coping strategies, many of which end up being good practices for most situations. I'm sharing my cursory notes here in case others are interested. Feel free to strike up a conversation in the comments to explore these points. I'll link to the slides when they become available.
Over the last week I've started a project with Rails 3 and I'm impressed. The increased configurability of the framework has not diminished its ease of use nor its core concepts in the slightest. You'll have to get used to a few new conventions, especially regarding routing, but there's lots of help out there.
Since this project is something I'm doing in my off time, I decided to experiment with MongoDB using the Mongoid framework. I had played with MongoMapper before, but always felt like I was using an ActiveRecord clone that didn't take advantage of the full capabilities of a document database and was forcing and ActiveRecord-style approach on me. With Mongoid you get has_many, has_one, and belongs_to relationships that map to MongoDB concepts like embedded documents. Mongoid is fully compatible with the ActiveModel interface for Rails3, and things like associations and nested attributes work out of the box.
I also had been hearing great things about CarrierWave from co-workers. It employs the concept of an "uploader" outside of the MVC ecosystem. The uploader handles resizing, storage, and all other details. In your model, you simply "mount" the uploader and you're golden. Of course, for this project the killer feature is the GridFS storage option, which is something I wanted to play with.
...so, for example, I can't take a corporation out in the backyard and bury it alive. I can't smack a corporation flat across the face and break its nose. I can't take a corporation's head and split it with an axe, nor can I chop off all its fingers, nor stab out its eyes with a rusty screwdriver, nor burn off its flesh with a blowtorch, nor flay it with an electric sander, nor stomp its kneecaps with a sledgehammer, nor cut its head off and parade it around the room on a broomstick, nor use its entrails as a rappel rope, nor smash its testicles with a spiked bat, nor do any of the things that really should be done to corporations these days - if they were people - but which one would never do to a human being. If only corporate persons would finally show their fleshy faces.
Vicious? Yes. But nothing that Blackwater corporate person wouldn't do to you for the right price.
Written on Friday, April 23, 2010
Tags: ["corporatism,", "rights,", "personhood"]
Comments
Well, it's been a year since Brady and I attended the original Richmond Tea Party. Setting aside some encounters at Audit the Fed demonstrations and what not, this was the first time in quite a while I interacted with the tea party movement that has garnered so much attention over the past year. Although I've seen a lot coverage of the tea parties in the media, I wanted to experience the movement without the mediation of reporters. They're not usually known for their nuance.
Besides, this was a movement that said a lot of things I agreed with. While genuine disagreement is perfectly understandable, a philosophy containing contradicting opinions - advocating less government spending while supporting the expanding military budget and the empire it finances - is a target of opportunity. While there seem to be few tea partiers who care their ideology might be intellectually unsound, some can provide a reasoned argument. Those people often become thought leaders; they are the ones I'm looking for.