Posts Tagged rant

Code Review

A lot of the ini­tial responses we get about Review Board go some­thing like this:

Review Board looks cool, but it’s designed for pre-commit reviews. I don’t like the idea of need­ing review before com­mit­ting, for a num­ber of rea­sons. Can my use case be supported?

The short answer to this ques­tion is “Yes, it’s sup­ported, but our UI isn’t opti­mized for that case.” In par­tic­u­lar, it requires using the post-review com­mand line tool to cre­ate the review request instead of hav­ing a nice web UI for select­ing a revi­sion to review, and it’s almost com­pletely undocumented.

While we’re inter­ested in gen­er­al­iz­ing Review Board into a tool which sup­ports a vari­ety of work­flows, I’m not writ­ing this today to explain how to make it work. I’m writ­ing this to explain why all of you who think this are wrong.

Before I fin­ish my attempts to offend every­one, some peo­ple should leave the room:

If you’re work­ing in an indus­try such as tele­com or aero­space, and you have a very inten­sive code review process to ensure per­fec­tion, this prob­a­bly doesn’t apply. I appre­ci­ate your hard work ensur­ing that the air­plane I’m fly­ing in won’t fall out of the sky, and that I can call 9–1-1 when needed.

Next, if you’re not using ver­sion con­trol, stand up, hang your head in shame, and go set up a server. SVN, Git, Mer­cu­r­ial, it doesn’t really mat­ter.  Visual Source­Safe is maybe a bad choice, though. Seri­ously, ver­sion con­trol is number-freaking-one on the famous Joel Test. Once you’re up and run­ning with that (get a bug tracker too, while you’re at it) you can start think­ing about code review.

Okay, now we’re down to just those enlight­ened, version-control-using hack­ers (ahem, soft­ware engi­neers) work­ing on the sort of nor­mal soft­ware that we do. I promised to offend the rest of you. Here we go.

It’s often kind of hard to define code review, since so many peo­ple do so many dif­fer­ent things. It cov­ers the spec­trum from “occa­sion­ally glanc­ing at a diff when a com­mit mes­sage sounds dubi­ous” to those autopi­lot engi­neers I already told to leave. In the absence of any sort of author­i­ta­tive def­i­n­i­tion, I’ll go with Wikipedia’s:

Code review is sys­tem­atic exam­i­na­tion (often as peer review) of com­puter source code intended to find and fix mis­takes over­looked in the ini­tial devel­op­ment phase, improv­ing both the over­all qual­ity of soft­ware and the devel­op­ers’ skills.

Why should I care?

That’s prob­a­bly as good a def­i­n­i­tion as any, and I almost fell asleep before I fin­ished read­ing it. Yawn. What the heck is this good for, anyways?

The big, super impor­tant rea­son any­one does code review is find­ing mis­takes.  We all make mis­takes, some­times. Even those super­hu­man hack­ers who seem to write 10x as much code as every­one else where every line looks per­fect. It’s really easy to stop really look­ing at code after hav­ing read through it a few times. Ever spent 10 min­utes try­ing to get some­thing to com­pile before notic­ing that you missed a semi­colon? A child could look at that code and tell you what’s wrong in sec­onds. It’s not that you’re dumb (well, maybe), it’s prob­a­bly that you stopped read­ing and started remem­ber­ing.

I remem­ber a paper I wrote in col­lege. I think it was about medieval Japan. My mother offered to read through it for me, and I wasn’t about to refuse some free edit­ing, so I sent it to her. In one sen­tence, I had two “the“s. That’s right. It said some­thing like “In the the Heian court…”. I must have read that para­graph twenty times before I sent it, and I had just stopped pay­ing atten­tion to what was on the page. I said that even super­hu­man hack­ers make mis­takes, and that means even me.

Find­ing mis­takes is pretty obvi­ously a good thing, I think. After sev­eral decades of using soft­ware, peo­ple have pretty low expec­ta­tions for qual­ity. You wouldn’t believe how often I tell peo­ple where I work and they start talk­ing my ear off about how our soft­ware never crashes, and how it’s such a dif­fer­ent expe­ri­ence from, well, almost every­thing else they have to use. It turns out that writ­ing soft­ware is really hard. Shock­ing, I know.

The next big rea­son for code review is train­ing. Most large soft­ware projects have some under­ly­ing archi­tec­ture and design prin­ci­ples which can take some time to learn. One exam­ple that imme­di­ately springs to mind is the way we use sig­nals and slots in our UI code at VMware; this sort of asyn­chro­nous design can take a while for peo­ple to get the hang of, and pro­vid­ing sug­ges­tions dur­ing code review is a great way to get peo­ple up to speed in the con­text of doing real work.

Code review also helps us improve our truck fac­tor. This is my term for “if you were to get hit by a truck tomor­row, how many peo­ple would under­stand the code you’ve writ­ten?” If it’s been peer reviewed, that num­ber will be at least one. Gas prices may be dri­ving down SUV sales, but there’s still a lot of trucks. Be care­ful out there on the roads, guys.

And last but not least, it’s so we can learn from each other. I’ve lost track of the num­ber of times I’ve seen some­thing I didn’t under­stand in someone’s code and ended up learn­ing a new trick. Every­one likes new tricks, right?

How to ruin everything

So, over­all, code review seems like a pretty good thing. We can improve the qual­ity of our soft­ware, train new employees/contributors, and learn stuff all at the same time. Now lets look at how peo­ple do it wrong.

The first extreme I’ve men­tioned is where every­one gets together and pores over some code to find every prob­lem with it. If you’re doing this and your soft­ware doesn’t have lives on the line, stop it. Per­fect code is a nice ideal, but “some­times it is not worth fix­ing a bug.” There’s no way that an entire code­base can be scru­ti­nized in this detail and still live in the fast-paced world of software.

On the other extreme, the eas­i­est way to do it wrong is just not to do it. Sure, you may get an extra few hours a week to surf pornog­ra­phy and make faces at the dude in the adja­cent cubi­cle, but it’s not gonna help the qual­ity of your software.

So, assum­ing that you’re some­where in the mid­dle, and you’re doing code reviews with­out inter­rupt­ing your devel­op­ers’ lives too much with hours of meet­ings, you’ve prob­a­bly fallen into one of two camps: pre-commit and post-commit. There are some pros and cons for each, but to me, the choice is obvi­ous. Here’s why.

In a post-commit envi­ron­ment, a devel­oper makes some change to the code and sub­mits it to ver­sion con­trol. At this point, usu­ally in an auto­mated fash­ion, that change is sent out to the other devel­op­ers. This almost always takes one of three forms:

  1. The com­mit mes­sage and a list of files is sent to a mail­ing list (lame).
  2. The com­mit mes­sage and a diff is sent to a mail­ing list (slightly less lame).
  3. The change is auto­mat­i­cally made avail­able to a tool like Review Board or Trac (okay, I guess)

At this point, those other devel­op­ers can look at the code and see if there’s any­thing they dis­agree with. The big, major, 600-pound hairy smelly gorilla of a prob­lem with this is that /they don’t/. For exam­ple, one of the peo­ple who checked out Review Board and asked about post-commit reviews wrote this:

Sure, some bugs can (and do) creep in because they are missed in larger com­mits where we don’t read the entire email, but I’m not wor­ried because QA should catch those…

It’s exactly the larger com­mits that need the most review! Any devel­oper writ­ing a three line triv­ial bug­fix patch can con­vince them­selves fairly eas­ily that it’s not going to com­pletely fuck shit up (that’s a tech­ni­cal term). It’s a bit harder when the patch is thou­sands of lines and imple­ment­ing com­plex functionality.

Also note that unless you’re work­ing on a pri­vate branch (which is fairly rare), com­mit­ting that big patch before review has a good chance of break­ing stuff. Raise your hand if you’ve done an svn up (p4 sync, git pull, what­ever) and the code you pulled down didn’t build. Or crashed in a super obvi­ous place as soon as you tried to run it. Every­one? Yeah.

The rea­son for this is because most peo­ple are ama­teurs, and those who aren’t some­times get sloppy. Shortly before I started work­ing at VMware, they split the main per­force depot into three sep­a­rate main branches. They couldn’t com­po­nen­tize the code, so they decided to com­po­nen­tize the devel­op­ers into branches based on the orga­ni­za­tion they worked on, in some mea­ger hope of mak­ing it so peo­ple could actu­ally get work done instead of spend­ing all day hunt­ing for a change­set that wasn’t broken.

That’s right, with the most amaz­ing group of hack­ers I’ve ever had the plea­sure of work­ing with, they couldn’t keep *main* build­ing cleanly once there were more than a few hun­dred peo­ple work­ing on the code. I’ve heard sim­i­lar sto­ries from many other engi­neer­ing orga­ni­za­tions that I deeply respect. If they can’t do it, what makes you think that you can?

Real­is­ti­cally, you can’t. Noone can. That’s why we have to take steps to try to pre­vent it. Steps like branch­ing. And, sur­prise sur­prise, code review. And tools. Because if the build is bro­ken, it’s not just you and your QA con­tacts whose time is wasted, it’s every sin­gle engi­neer you’ve got.

Why would any­one want to do it wrong?

So why do peo­ple do this? I’ve seen two com­mon reasons.

REASON NUMBER ONE! “Because that’s how peo­ple are used to doing things.” This is a pow­er­ful rea­son, and I won’t deny that it’s very hard to get peo­ple to change their ways. How­ever pow­er­ful iner­tia is, it doesn’t mean it’s right. It took a lot of effort to get doc­tors to start wash­ing their hands, but I’m pretty happy that it changed.

Num­ber two, and this is the big stu­pid one. “Because we’re a fast-paced devel­op­ment shop, and it would slow us down.” I’ve heard this from sev­eral peo­ple. It’s par­tic­u­larly hilar­i­ous to me, because they talk as if slow­ing down is a bad thing. How many MP3 play­ers hit the mar­ket before the iPod?  How many search engines came and went before Google? Being first to mar­ket is great, but being best to mar­ket is better.

And finally, a sil­ver bullet

So how do we solve this big morass? Sim­ple. Review code before it’s com­mit­ted. If you’ve got branch­ing that doesn’t hurt, com­mit to a branch and review it there, but before it affects any­one other than the orig­i­nal devel­op­ers. Slow down, pay atten­tion to what you and your team­mates are doing, and you may find that you’re not quite so good at what you were doing as you thought. And once you’ve real­ized that, it’s hard not to want to take every pos­si­ble step to improve.

Finally, before you com­ment, keep this in mind: I inten­tion­ally wrote this in a con­fronta­tional tone for my own amuse­ment, and to encour­age peo­ple to talk. I’ve been doing this soft­ware thing for a while, but I don’t have any­where near all the answers. Think I’m wrong about all of this? Let me know!

Tags: , , ,

A certain number

Warn­ing and dis­claimer: vit­ri­olic rant ahead; I am not a lawyer, just angry.

Recently I’ve been see­ing a lot of a cer­tain num­ber on the inter­net. Specif­i­cally, the pro­cess­ing key for most of the HD-DVD movies pub­lished so far. And I’m get­ting really sick of it.

Most of the peo­ple copy­ing this key did so under some delu­sional notion of “free speech” or “num­bers not being copy­rightable”. Under cur­rent US law (regard­less of what you think of it), this num­ber is part of an “cir­cum­ven­tion device”, and as such is not under copy­right, but is it also not pro­tected speech. This num­ber has no artis­tic merit or value beyond its pur­pose towards break­ing the DRM on HD-DVD prod­ucts. As far as I’m con­cerned, it’s just garbage that I’ve had shoved in my face con­stantly for the last few days.

By post­ing this num­ber on your blog/web site/google notebook/tattoo-on-your-chest (I’m not mak­ing that up), you are not mak­ing a valu­able con­tri­bu­tion to the world. You are not even incon­ve­nienc­ing the AACS-LA or their lawyers. If you want to make a dif­fer­ence, you have sev­eral pro­duc­tive options:

  • Con­tact your leg­isla­tive rep­re­sen­ta­tives and lobby for copyright/DMCA reform.
  • Put eco­nomic and social pres­sure on the var­i­ous back­ers of DRM tech­nol­ogy by writ­ing let­ters and talk­ing to peo­ple on the street. Teach peo­ple why these tech­nolo­gies are bad. Maybe you’ll even get them to help cam­paign for open formats.
  • Get out there and pro­duce a com­pet­ing tech­nol­ogy for dis­tri­b­u­tion of dig­i­tal media that’s so bet­ter that every­one will want to adopt it.

I sus­pect these will be unpop­u­lar options, since they actu­ally require some effort. The sort of “civil dis­obe­di­ence” exhib­ited by plas­ter­ing this num­ber all over the inter­net is idi­otic. Pick­et­ing is effec­tive. Boy­cotts are effec­tive. Polit­i­cal action is some­times effec­tive. Whin­ing on the inter­net is not. Espe­cially when that whin­ing is in vio­la­tion of exist­ing law. What hap­pens when, in court, use­ful argu­ments are thrown out because the per­son mak­ing them was shown to have will­fully dis­re­garded exist­ing statutes?

Please, stop pol­lut­ing my inter­net with this garbage. Most of you doing this are bright, tal­ented human beings. Go use that tal­ent to cre­ate some­thing wonderful.

Tags:

Dear Web 2.0,

There aint enough room for both of us in this town.

Screenshot.png

Love, David.

Tags: ,

Raising my ire and tempting my wrath

I just dis­cov­ered that the wiki on zero (the host my blog is on) got hit pretty hard by the spam­mers the last few days — hard enough that I don’t have the energy to clean it up at the moment. I shud­der to think what it would be like if I still allowed anony­mous edits.

Any­one know of an eas­ily set-up captcha plu­gin for medi­awiki 1.5? Until I have the chance to crack some spammer-skulls, it’s the only thing I can think of to help with the problem.

Tags: ,

Tagging love and community ire

A cou­ple days ago, search­ing for some­thing cool to hack on, I came back to leaf­tag. Shortly after I started updat­ing the deskbar han­dler, Luis Villa posted on his desire for it, and a release got cut. It’s pretty incom­plete and buggy, and not very use­ful right now, but still enough to get a num­ber of peo­ple excited.

How­ever, it’s also enough for peo­ple to start giv­ing us their opin­ions. I really don’t know why, but for some rea­son there’s a large group of peo­ple who really want us to use extended attrib­utes to store the tags. Even after giv­ing them a bunch of rea­sons why it’s not use­ful for our pur­poses, they keep try­ing to tell us how to build our bike shed.

I don’t under­stand why xat­trs are such a big deal, and I don’t under­stand why every­one cares so much about how our imple­men­ta­tion works. They’re never going to touch the code, and as long as it does what they want, why should they care what’s under the hood? I’ve set to see one com­ment on Christian’s blog that asked for a fea­ture that required xat­trs with­out first say­ing we should use xat­trs. It really felt like all the fea­tures they listed were just attempts to jus­tify their posi­tion that xat­trs are the coolest thing since sliced cheese.

I’m start­ing to under­stand why Nov­ell kept Xgl’s devel­op­ment under wraps until things worked.

Maybe I’m only start­ing to see some­thing that has existed for years, but it really feels like gnome is so encum­bered by end­less talk, bike shed­ding and stop energy that very lit­tle is hap­pen­ing. The cool things like gim­mie, deskbar, nau­tilus search and leaf­tag only hap­pen when some­one goes off in a cor­ner, shuts them­selves out from the com­mu­nity for a while and actu­ally writes some code. The mail­ing lists and irc chan­nels were recently aflurry with con­ver­sa­tion about what “com­mu­nity devel­op­ment” means, and just as quickly as it came, it was gone. A huge amount of time and effort was invested into that dis­cus­sion, and absolutely noth­ing came of it. This isn’t an unusual pattern.

I’ve heard it sug­gested by a cou­ple peo­ple that gnome needs a dic­ta­tor, and I really think that’s the case. At the very least, gnome needs some­one who can tell peo­ple to shut up and get back to work.

And for all you xattr fan­boys, code speaks a lot louder than words. Show us that xat­trs pro­vide some­thing use­ful and good, and we’ll talk. Until then, shut up and get back to work.

I’m usu­ally not one for movie quo­ta­tions, but I’m con­sid­er­ing adopt­ing one as my mantra. “Fuck the bozos!”

Tags: , , ,

GNOME API documentation

No won­der GNOME (and linux?) doesn’t have very many ISVs. The plat­form really needs a new doc­u­men­ta­tion sys­tem. Here’s why.

A cou­ple weeks ago, while work­ing on a gnome-vfs mod­ule for Chippy’s super-sexy tag­ging sys­tem, I noticed that gnome-python has no API doc­u­men­ta­tion. No HTML, no doc­strings, noth­ing. In order to find out a method sig­na­ture, I had to look in the source code and deci­pher the python/C bind­ing code.

Now, the python bind­ings are arguably some­what fur­ther out in the gnome orbit. How­ever, for an offi­cially sup­ported bind­ing, this is pretty bad. The doc­u­men­ta­tion for the C gnome-vfs API isn’t much bet­ter. When an ISV comes to gnome and takes a look at this, they’re going to run scream­ing. I know I did, and I’m will­ing to put up with a lot more of this crap because I know how hard it is.

How hard it is. Think about that for a moment. Set­ting up gtk-doc for a C mod­ule is a black art, full of copy­ing strange build-system stuff and hours spent try­ing to fig­ure out which XML files are auto-generated and which are safe to edit. If you’re lucky enough to be doc­u­ment­ing some­thing like gnome-python, all you have to do is write a bunch of doc­book. Let me say it for the record: doc­book is a total pain in the ass. I love the idea of using one source to gen­er­ate HTML, pdf, etc all in one go. This is a well under­stood prob­lem, and doc­book is a great solu­tion to it. Unfor­tu­nately, because doc­book is such a pain to write, peo­ple aren’t doing it, and that’s the real problem.

I decided that because I was already tak­ing the time to fig­ure it out, I’d doc­u­ment it. gnome-vfs isn’t a huge API (and the python bind­ings are even smaller), yet it’s tak­ing me at least two hours per object to get every­thing right.

The GNOME release team is requir­ing full API doc­u­men­ta­tion for new mod­ules, and that’s a step in the right direc­tion from a pol­icy stand­point. How­ever, we need a lot of steps from a tech­ni­cal stand­point. gnome-vfs is pretty close to “fully doc­u­mented” and yet com­pletely impos­si­ble to use. Mono is doing some­thing good here — any­body can edit API doc­u­men­ta­tion, in a wiki-like man­ner; it’s not hard to find what to edit, and the com­mit­ment involved is min­i­mal. I think if we got some­thing sim­i­lar across all of the GNOME plat­form (for every lan­guage), we might begin to see some real doc­u­men­ta­tion. Writ­ing API doc­u­men­ta­tion isn’t hard. Writ­ing API doc­u­men­ta­tion using the cur­rent frame­work is a nightmare.

Tags: , , ,

paper tigers

Big flame fest going on over at lists.osdl.org regard­ing print dialogs, “usabil­ity” and fea­tures. Kind of enter­tain­ing read­ing, kind of frus­trat­ing reading.

The paper tiger here is the ten­dency to assume intent behind any par­tic­u­lar result. In this par­tic­u­lar case it’s the assump­tion that options pro­vided by a PPD printer dri­ver aren’t exposed in the gnome print dia­log because they’re con­fus­ing to the user.

I’ve seen a num­ber of peo­ple com­plain about my own soft­ware (xchat-gnome) using sim­i­lar argu­ments. “Those idiots! They removed the abil­ity to get user infor­ma­tion!” “Those idiots! They removed the abil­ity to detach indi­vid­ual chan­nels from the main UI!” See­ing peo­ple I’ve never heard from before say things like that in pub­lic forums is painful — most of the time, xchat-gnome devel­op­ment is just me, and I’ve got school, work, and sev­eral other projects, in addi­tion to a usually-failing attempt at a social life. A lot of these kinds of prob­lems are non­triv­ial (such as detach­ing), and just because some­thing isn’t there doesn’t mean it will never be.

I won­der if any­body really talked to the gnome-print devel­op­ers about get­ting UI for the extra PPD options. Judg­ing from my own expe­ri­ence as both a user and a devel­oper, I’d be will­ing to bet that their answer would be “well, it’s hard and nobody’s fig­ured out how to do it right” rather than “we decided that our users were too stu­pid to use those fea­tures.” I’m not really famil­iar at all with these projects, so I’m just guessing.

There’s an old adage: never ascribe to mal­ice what can be ade­quately explained by incom­petance. I’d like to pro­pose an equiv­a­lent for the open-source world (and gnome in par­tic­u­lar). Never ascribe to mal­ice what can be ade­quately explained by a lack of time and man­power. I can’t think of any free soft­ware author who is will­ing to sac­ri­fice truly use­ful func­tion­al­ity in exchange for a slightly lower wid­get count.

In the ML thread, the word “usabil­ity” came up quite a bit. For the most part, peo­ple seem to be (quite cor­rectly) point­ing out that it’s a pretty mean­ing­less word. I got to won­der­ing — what does usabil­ity mean to me? I’ve writ­ten a lot of GUI soft­ware, and I gen­er­ally con­sider xchat-gnome to be pretty “usable,” but I’m not sure I ever really came up with a def­i­n­i­tion. After some thought, here it is: Soft­ware is usable when it pro­vides the func­tion­al­ity a user requires to exe­cute a cer­tain task, in a dis­cov­er­able (or at the very least least well-documented and learn­able) way, with said func­tion­al­ity orga­nized in log­i­cally and a min­i­mum of extra dis­trac­tion or clutter.

As always, there are peo­ple more elo­quent than I who have con­sid­ered this prob­lem. “A designer knows he has achieved per­fec­tion not when there is noth­ing left to add, but when there is noth­ing left to take away.”

Tags: , ,

computers suck

Looks like I have another dead hard disk, with another 230GB of data prob­a­bly gone. It’s pos­si­ble that I can get it off, but right now I have nowhere to put it, and buy­ing another disk was not high on my list of pri­or­i­ties. It seems like hard disks are the biggest money sink in my life right now, and there is seething involved.

Update: and of course, 2 min­utes after post­ing this, I get the acrid smell of burnt elec­tron­ics fill­ing my liv­ing room. So much for data recovery.

Tags:

guns don’t kill people, video games do

Those of you who pay atten­tion to the media have prob­a­bly heard about “hot cof­fee.” This is a mod for Grand Theft Auto: San Andreas which adds hot, steamy, polygon-based sex scenes to the game. The author claims that the con­tent was already there, and Rock­star games, unsur­pris­ingly, is claim­ing that they did noth­ing of the sort. Who­ever is respon­si­ble, I’m really grumpy at the response that this is getting.

In the last few months, the usual polit­i­cal play­ers have been blast­ing the game for caus­ing a small hand­ful of peo­ple to kill other peo­ple. This is hardly sur­pris­ing — vio­lent video games have been blamed for such things, with­out any real sta­tis­ti­cally sig­nif­i­cant proof, ever since vio­lent video games first came out. Before, GTA was a con­tro­ver­sial game, but it seemed like it was still accepted by a lot of peo­ple. Now, appar­ently, the game is com­pletely inap­pro­pri­ate for chil­dren, and may be granted an “adults only” rat­ing, which pretty much requires that retail­ers fol­low the same rules as they would for hard­core porn.

Wait, did I hear myself right? It’s OK for kids to play a game that glo­ri­fies killing police offi­cers, but a game that glo­ri­fies sex, that’s inex­cus­able? Accord­ing to our elected rep­re­sen­ta­tives and media watch­dog groups, that’s the case.

Never mind that with 10 sec­onds and an inter­net con­nec­tion, teenagers can get access to sig­nif­i­cantly more explicit pornog­ra­phy fea­tur­ing actual humans. Never mind that get­ting access to these scenes requires down­load­ing the mod. Ban GTA! Ban Rock­star Games!

Tags: ,

If anyone needs me, I’ll be in the angry dome

Howard Dean has kicked up a few anthills recently, and the response to these things always amuses me. How­ever, after read­ing a cou­ple of opin­ion pieces linked from google news, I’m pretty cranky.

I keep see­ing democ­rats (at least, I’m assum­ing from their point of view that they’re democ­rats) talk­ing about how the demo­c­ra­tic party is “let­ting them­selves be defined by the repub­li­can party” and “this needs to stop”. I’ll agree that the demo­c­ra­tic plat­form has seemed a lit­tle weak on the ideals recently, but I can’t fathom how some­one can write an opin­ion piece about how peo­ple need to state their opin­ions with­out actu­ally stat­ing any opin­ions. I don’t know if it’s out of some weird sense of polit­i­cal cor­rect­ness, but these peo­ple aren’t help­ing their own cause at all.

Here. I’ll demon­strate: I’m in favor of migrant work­ers hav­ing access to the same qual­ity of health care as the CEO of a multi-billion-dollar com­pany. I don’t think the gov­ern­ment should be allowed to know what books I’ve checked out from the library or what web sites I visit, espe­cially if it can (and in the case of cur­rent law, must) be with­out noti­fy­ing me. See how easy that was? Con­vinc­ing peo­ple that these are good ideals is just as easy. Show­ing that the cur­rent repub­li­can gov­ern­ment isn’t doing any of this, and in many cases is doing the exact oppo­site, is easy too.

“We need to stop let­ting our­selves be defined by oth­ers” is about as use­ful as say­ing noth­ing at all. In the same way that pity can be harm­ful, jump­ing on this band­wagon dis­tracts every­one from the real issues at hand, and that hurts. Treat­ing the lib­eral plat­forms as vic­tims hurts, espe­cially when it’s com­ing from within.

I imag­ine it would be pretty easy to get most peo­ple fired up about things like the new patriot act dis­cus­sions. I can’t believe I haven’t heard some­one call the bluff on this. The idea that “we haven’t been abus­ing these pow­ers” is a valid excuse for giv­ing up fun­da­men­tal free­doms is pre­pos­ter­ous to me. There will always be abuses, and by legally giv­ing the gov­ern­ment extreme pow­ers, we’re giv­ing up our abil­ity to fix things when they go wrong. Appar­ently the “sneak and peek” search pow­ers have been exer­cised in “only about 1%” of cases, which turns out to be about 160 searches. Doesn’t this num­ber alarm any­body other than me?

At the time of the civil war, peo­ple weren’t say­ing “we have to stop let­ting slave-owners define our views”, they were say­ing “slav­ery is wrong.” The world is fraught with social prob­lems, and when peo­ple start actu­ally say­ing some­thing about it instead of beat­ing around the bush, maybe we can start to solve some of them.

Tags: ,

Bad Behavior has blocked 97 access attempts in the last 7 days.