This Just-in! Justin Myles Holmes

by Justin Myles Holmes

Posts categorized “Original Writing”


Is “Operation Payback” either appropriate or effective?

December 8th, 2010 at 3:45 pm

I have spent a good amount of time today conducting some research on “Operation Payback,” (sometimes also called “Operation Avenge Assange”) and pondering whether or not it represents a tactical toolbox that is appropriate as a response to the recent trend of government and corporate entities attempting to cut off support (financial and otherwise) from wikileaks.

(If you aren’t familiar with the background of this story, here’s some background.)

First, of course, I wanted to be on the “inside” of the story and really see the play-by-play of what was happening.  I tried to go to the publicly announced planning center, a chat room on irc.anonops.net.  Unfortunately, this domain name had also been the target of the volley of attacks that was transpiring.  However, a nice gentlemen in the #wikileaks channel of irc.freenode.net directed me to the server by IP address: 88.198.224.117.  Do have a visit with your IRC client if you are interested.

Upon arrival, I was prompted to check out #operationpayback, the central meeting spot for these hacktivists.  Once in the channel, I was astounded at the pace of the conversation – about 5-7 comments EVERY SECOND.

Most were updates on the state of the LOIC (Low-Orbit Ion Cannon), the tool of choice for taking mastercard.com down from the Internet (LOIC is, or at least was, a fairly mainstream tool for testing server defenses).  The tone was absolutely jovial – mastercard.com was down, and the mainstream media regarded the events of this chatroom as headline-worthy.

Yet, I did not get a sense of constructive, radical civic duty.  In fact it seemed to me that the average age (judging by comment maturity and grammer) was probably about 14.

I do understand how a person of a different bent might derive a bit of glee from the spectacle of the denial of service attack being coordinated.  I, however, noticed a very different sentiment unfold in my gut:

Mere destruction of existing power structures, without contemporaneous (or, for that matter, preceding) construction of alternatives is unlikely to ever result in sustainable positive change.

May I suggest to all the people who are distressed about Amazon, Visa, Mastercard, and whomever else abandoning Wikileaks that their mission needs to be to build peaceful, sustainable alternatives to Amazon, Visa, and Mastercard?

May I further suggest that this is the only truly radical use of information technology?  Destruction has been possible (and in fact normative) since the beginning of time.  Only now, however, is parallel construction possible.

Stop the temper tantrum.  Stop the blame game.  Instead, just work toward an information age where the the quasi-censorship that has characterized the industrial age is mathematically precluded at the infrastructural level.  I suspect that thanks for this work will come not only from Wikileaks (and all those who are spiritually motivated by its basic premises) but in fact also from governments and corporations too.  Everybody has an interest in the tech infrastructure working more efficiently and smoothly, and this will naturally translate to lower costs and increased availability in disadvantaged communities.

Make no mistake: I’m not happy about the treatment wikileaks is getting. But is this really the best that we can come up with as a response? Have we really run out of civil, ethical, and constructive ways to deal with these kinds of issues? If so, doesn’t that make us as bad as “them?”

I urge the young, tech-savvy people who are concerned about technological freedom: shut down LOIC, start up Eclipse and Miro, and get to work – there’s plenty to be done.


Jamie Varner “Clears the Air” while Donald Cerrone earns his Yellow Belt

October 2nd, 2010 at 8:15 pm

Let’s review the recent history of the “feud” between Jamie Varner, former WEC lightweight champion, and Donald Cerrone.

In January of 2009, these two talented fighters met in the cage for the first time, with top contender Cerrone looking to dethrone Varner at a time when, by all accounts, the division was running rather thin.  Apart from these two and future (and now current) champion Benson Henderson, no real competition existed in the WEC lightweight division.

Their 5 round battle was historic – widely and rightly regarded as one of the best fights in the division’s history.

Jamie Varner, while not completely dominating the fight, unambiguously won the first 3 rounds.  He exercised far better control of the cage, landed a higher percentage of his strikes, and was the unquestionably superior wrestler.  The 4th round was much closer, but many commentators still had it going narrowly to Varner 10-9.

Yet, the 4th round signaled a clear turn for the fight, and as we’d later learn, for the WEC lightweight division.  Jamie Varner was loosing his control and energy, and Cerrone was gaining on him.  Cerrone was becoming the best fighter he had yet been – it was truly a pleasure to watch.

At the beginning of the fifth round, Varner signaled to Cerrone that he wanted a hug.  The two fighters, bruised and bloody, raced to the center of the cage where they took the first ten seconds to celebrate each other.  They had a long embrace, and Jamie Varner gave the clear impression that he wanted to bring out the very best in Cerrone for the final round.  They smiled, the audience went ballistic, and Cerrone let out a loud whoop.  It was one of the best moments in the history of American Mixed Martial Arts.  The message was clear:  These two fighters respected and – dare I say – loved each other and their sport so much that they could take 10 seconds to stop brutalizing each other and express themselves emotionally.

After these 10 seconds, the fight immediately took on the most serious and aggressive tone yet.  Both men landed several devastating blows and showed off their very best skills.  Varner was fading, and he knew it.  He was ready – even proud, to hand the title away.  All eyes watched as he fell to his knees, seconds away from fading into TKO.

And then, something terrible happened.

Donald Cerrone, a professional fighter and trained martial artist, through a heavy, full-speed knee directly at Jamie Varner’s head as he sat on his knees.

Apart from obviously being completely prohibited by the unified MMA rules, this manuever was reckless, unsportsmanlike, and potentially deadly for his opponent who had just shown him the very best affection a man can after being beat half senseless.

The knee glanced Varner’s head and right temple.  The referee immediately intervened.  Everyone gasped.  A collective, “what. the. fuck. did he just do?” escapsed the lips of the MMA fan community.

All attention focused on Varner’s well-being for that moment.  The replay showed that the knee had only glanced, so a sigh of relief was in order.

Yet, when Varner was asked, on the spot, if he was OK, he responded, “I can’t see straight.”

Now, think about this for a moment.  Is this anything other than a candid, honest answer?  No, it is not.  Surely he truly was unable to see straight, whether due to Cerrone’s knee or otherwise.  Did Varner expect these words to end the fight?  Probably not.  Did he expect these words to change the course of the WEC lightweight division, and perhaps all of MMA?  Definitely not.

Yet, hearing this, the referee ended the fight, sending the decision to the judge’s scorecards.  Strangely, the fight was ended due to “incidental” contact on the part of Cerrone.  This is perposterous.  Cerrone intentionally through the knee, and intentionally aimed at Varner’s head.  No other conclusion is reasonable.  Was it done with outright malice?  No, probably not.  Cerrone was probably just really amped up and lost control for a second.  Nevertheless, nothing about the technique was “incidental.”  It was a textbook example of a prohibited knee to the head.

Amid the confusion, the judges announced the obvious: Based on the scores, Varner had won the fight.

At this time, some members of the audience began to boo.  This caused Jamie Varner, who isn’t much of a public speaker to begin with, to loose his cool and approach tears.

At this point, I expected, or at least hoped, for Donald Cerrone to do the only responsible thing.  He had a moral imperative to take the microphone from Varner and say, “Hey, listen up.  This is not Jamie’s fault.  I threw an illegal knee in the heat of the moment, and the fight got called.  It was a mistake, and one that I will work to make sure I never make again.  With Jamie’s blessing, we’ll get a rematch ASAP.”

This simple response would have elicited an uproarious approval from the crowd and averted a feud that has plagued the sport ever since that night.

Not only did Cerrone not make such a remark, but he clearly did not make any effort to change his conduct.

Two fights later, Cerrone, facing Ed Ratcliff, Cerrone threw another illegal knee – to Ratcliff’s groin.  And then another illegal knee – to Ratcliff’s groin.  And then ANOTHER illegal knee – to Ratcliff’s groin.  Although 2 points down and sure to loose on the scorecards, Cerrone secured a rear naked choke and submitted the newly sterile Ratcliff.

Another fight with Varner was scheduled for 20 months after the initial one.  Cerrone, determined, as Varner accurately put it, to “set the sport back 10 years,” referred to Varner as a “fag” and express hope that Varner would become “the first death in American MMA.”

How, after all this miscondcut and bigotry, this man is still allowed to fight, is a question you’ll have to ask the WEC.

The rematch, unlike their earlier fight, was slow and frankly boring as hell.  Neither fighter looked like a professional-level athlete.  Varner was just plain nervous (understandable for a man who’d been issued a straight-up death threat vis a vis the fight in question) and Cerrone looked decidedly mediocre.

Cerrone out-wrestled, out-boxed and out-fought Varner in every round by just enough to get the score.  Like all three judges and probably every other viewer, I had the fight at 30-27 at its conclusion.

Cerrone managed to refrain from throwing any illegal knees and actually showed a modicum of control and cognition of the rules of the sport in which he was participating.  At the dojo at which I train, this would probably qualify Cerrone to graduate to from White Belt to Yellow.  So congratulations, Donald, you can now be regarded as something other than a completely out-of-control bigot with an “I don’t care about no rules” attitude.  Now you are just a bigot.

Nothing about Thursday’s fight suggested to me that Cerrone was a better fighter than Varner, only that he was having a better night.  Like every other fan with a pulse, I am looking forward to part III of this saga.  I hope that by then both fighters have returned to the attitudes that characterized their first match.


A rare example of “magic” and Gnosticism in Django

July 4th, 2010 at 5:57 pm

Among my personal friends, I don’t think it’s any secret that Django is currently my favorite web framework.  In particular, Django has what I believe to be the very most important element that a MVC framework can have – a solid, consistent philosophy that developers can adopt, meditate on, and integrate into their thinking as they proceed through any project.

One of the tenets of Django (albeit not a “top-level” holding like DRY, OaoO, minimal code, explicit over implicit, etc.) is that Django declines to use “Magic” unless it is overwhelmingly easier than the mundane solution that it replaces.  Django also veers toward the agnostic – meaning that one can use any naming paradigm, template strategy, URL convention, etc.

Exactly what techniques constitute “Magic” may be in the eye of the beholder, but generally we think of magic encompassing those techniques that are not part of a programming paradigm, but that work anyway “just because.”  Gnosticism, on the other hand, is pretty obvious when it rears itself: If you MUST use jQuery or you MUST name every variable drupal.something, you know that you are not working with an agnostic framework.

The SlashRoot team is currently working on a great project for Carbon Ads – a project that aims to enable small publishers to collectively sell ad space to pre-vetted, exclusive, and otherwise unattainable advertisers.  Think Adsense meets your favorite organic co-op.

Among the interesting elements to tackle in Django, as is often challenging in MVC frameworks, in the question of how to model different types of users.

The lazy (inorganic) way, of course, is to simply apply a “type” attribute to the user model and then ForeignKey each individual user class.  However, this leaves tremendous room for error.  For example (and this example in fact has come up in this project) – what if the developer creating the “admin” model has a different idea of how to track names than the developer creating the “publisher” model – may one of them thinks that the full name belongs in a single field while the other separates first and last names.  This is a major problem for any page that lists all users by real name.

To me, the most organic solution is to separate elements into two categories: Those that two or more classes of people have vs. those that only one class of people has.  That way, the attributes in the former category can be assigned to a parent class (perhaps as an optional field) while the latter can belong exclusively in a child class, on a separate database table to enhance performance.

So, how does Django treat this contingency?  With magic, I’m afraid.

The Django documentation on this point suggests using the “lower case” name of the class in question, which has two deviations from the general Django philosophy:

1) It is gnostic, plain and simple.  It assumes that you have adopted upper-case or CamelCase naming conventions for your models, and that you can use lowercase as an alternative.

2) It seems to me to be magic.  There is no *reason* why the lower-case class name should refer to the logical question of whether or not an object is in a child class of a parent model.  It just…. works.

Mind you, I can deal with both these issues.  I think that the “magic” issue is of more concern to the programming purist, because it can be genuinely confusing.  Case in point, I actually had to wonder how to access the “not magic” of this solution – although “if not someobject.somelowercaseclass” does in fact return TRUE for objects outside the child class in question, it took me some time to wrap my head around this, simply because “someobject.somelowercaseclass” is not instinctively a logical value to me – the “magic” distracted my view for a moment.

Thus, I had this interesting (and perhaps telling, I think) exchange in #django:

<jMyles> Philosophical question:  Does the ability to ask for a child class with lower-case lettering represent “magic”?  (see: http://docs.djangoproject.com/en/dev/topics/db/models/#id7)
<jMyles> To rephrase my question: Is the use of a lowercase letter to inquire about a child-class part of an established programming technique?  Or is it a (rare) example of magic in Django?
<igloo_x> jMyles> what do you mean “child class”
<jMyles> igloo_x: Actually I mean child model
<jMyles> igloo_x: Like “Restaurant” becomes “restaurant” in the test in this example: http://docs.djangoproject.com/en/dev/topics/db/models/#id7
<jMyles> igloo_x: Also, in that example, how can I ask if the object is NOT in the child class “restaurant”?
<jMyles> igloo_x: I’m looking at the third code block down from that link – “If you have a Place  that is also a Restaurant, you can get from the Place object to the Restaurant  object by using the lower-case version of the model name:”
<igloo_x> it’s magic, as far as I know. you can override it though. I think the argument is ‘related_name’ or something
<jMyles> igloo_x: OK, that’s what I thought.  :-)   And then, how can I ask if an object is NOT in that class?
<jMyles> igloo_x: ie, “if p.restaurant:” works fine, but how can I ask if it is not in that child class?
<igloo_x> i’m not sure about that, I’ve never messed with model inheritance before
<igloo_x> does “if not p.restaurant:” work though?
<jMyles> igloo_x: wow.  yes it does – mad overthinking on my part.
<igloo_x> good old python!
Good old Python indeed.  And therein I think lies the deeper truth: No matter what framework we use, it is imperative that developers adopt the philosophy of the language on which that framework is built, even if this means some extra time studying, sitting quietly, talking with friends, etc.
If I had allowed my mind to relax for a few minutes and really thought about the *context* in which this unexpected “magic” had arisen, surely my mind knew the way out of the situation.  That is the true developer discipline that is yet ahead for me.

Google did nothing wrong by collecting wifi data with the streetcar.

June 1st, 2010 at 12:41 pm

3033520.binCan somebody please explain what Google did wrong?

They drove around with a car, taking photos of the public surroundings of their car (that’s how they make StreetView).  While so doing, they picked up and recorded whatever wireless signals were coming in to their car.

Now people are whining that they are being spied upon.

Does anybody really think that preventing this kind of conduct has anything to do with making our communities secure against unwanted surveillance?  Is this line of defense the best we’ve got?

If you stand at your doorway, yelling at the top of your lungs about many intimate, private details of your life, is it fair to accuse a passerby of illegal (or unethical) surveillance because they happen to be recording their surroundings with an audio recorder?

Do you think that members of congress will rally to your defense, accusing those same pedestrians of spying on you?

There are plenty of very secure options for wireless communication.  If you aren’t using any of them, that’s your prerogative.  If you abstain from secure practices while at the same time communicating about sensitive issues which you bizarrely regard as private, that’s your problem.

On the bigger issue of Google being a scary monster of information collection… Sure, I see your point.  While on one hand, the information they collect is, in every practice I know of, voluntary (search phrases, email contents on Gmail, advertising clicks, cookies, the Google Toolbar, and many other methods), it’s not any less scary that they know more than anybody else about the modern polity.

I’m not usually a defender of google or any other giant corporation – I’ve expressed my fair share of google skepticism.  In this case, I think they’ve actually done wrong by repeatedly apologizing, but I guess that’s a PR move.

Nevertheless, their amazing (and thankless!) gift two weeks ago of releasing the VP8 codec to the public domain under an open source license was perhaps the single most significant act of bolstering independent radical journalism in the (still short) history of website-based video delivery.  Still not as profound as the movement that Miro represents, I’ll grant, but big (and a LOT more expensive).

To my mind, Google gave us as $124.6 million dollar gift, and I think we have a responsibility to accept it in full if we want to take advantage of it. That means in turn taking full responsibility for our network presence.  If your upload stream includes poignant, radical, inspirational content encoded in a free codec for the world to cherish, good.  If your upload stream (and wireless connection) includes unencrypted content that you irrationally regard as private, bad.