((sum(wrongs) % 2)==0) ? right : er, let's say moral ambiguity

It's that time of year again: the FishbowlDC Hottest Media Types contest is upon us. And frankly, I'm a bit disappointed: due to last year's... irregularities, Patrick Gavin promised new and improved technology. And I was ready! I checked Crowbar out of SVN and into a virtualized environment; I created a custom screen-scraper script for it, and got it working with XulRunner in such a way that it could be called by Ruby. I started looking into firing up a farm of Amazon EC2 instances to run the operation in parallel. I hit a snag when trying to find a decent RDF parsing gem for examining Crowbar's output, but then the poll went up and I saw it didn't matter.

It's the same goddamn PollDaddy crap as last year! And it's still just as vulnerable to a looped one-liner shell script. Fire up Firebug to grab the AJAX call's URL, then set curl to keep loading it. You don't even need to fake your user agent.

Ah well. We can still have some fun with this. Thanks to this handy GreaseMonkey script compiler I've put together a little Firefox extension that should help this year's voting arrive at the appropriate result: namely, one that puts Mr. Brian Beutler at the top.

For those who question the propriety of this enterprise or (gasp) Brian's hotness — well, there's probably no hope for you. But look, maybe an analogy will help: Fifty Cent got shot a bunch and it made people start acting like he can rap. Now he's a millionaire with access to unlimited supplies of Vitamin Water. A public acknowledgment of Brian's post-shooting beauty is a pittance in comparison. It's the very least we can do.

And it should be really easy, too. All you have to do is click the link below, say OK to whatever security warnings come up, and install the extension. I think it'll work in Firefox 2 and 3; I've only tested it in the latter, though. After it's installed and you've restarted Firefox, navigate over to the appropriate page. A message should pop up, then the robovoting will begin. You'll get feedback, too, and the total number of votes you've cast (and your associated rank) will be displayed as it proceeds (it should remember the total even if you stop and restart the process).

And if you really want to demonstrate your love for Brian, you can leave proof of your vote total here in comments by pasting the tiny hexadecimal garbage displayed under it (along with the vote total you're claiming) — each total has a unique code. No cheating!

Install the Beutlerator

Comments

Real men read the javascript source to figure out how to cheat.

 

I've earned the rank of Black Cat Bartender. 1,183 votes and counting.

 

Nice! As you might imagine, Amanda, that's the highest rank attainable.

Ben: heed your own advice! If you examine the XPI you'll see that I'm using PollDaddy's own Javascript to handle voting. My custom code is just to calculate hashes, delete tracking cookies, display progress and provide appropriate pauses so that users can see the voting as it occurs. The actual action occurs through those unsafeWindow.xxx calls.

 

Votes Cast: 3572
Your Rank: Black Cat bartender
2f424735610f2a3272a6efe1fd18abbd

 

Chris's score: legit! Can anyone top it?

I'm abstaining, myself -- I'm not sure how many I racked up during testing, since I had to periodically reset the count. Should be a couple thousand at least, though.

 

I probably beat Chris's score last night during my two and half hours of nonstop wgetting.

 

It seems as if at least three other people have unjustifiable bots running on their behalf, too—you want I should get the unfogged people in on this?

 

Hmm. Possibly. The complicating factor is a desire to have another contestant (Sommer's bf Jeff) come in a close second. I'm somewhat worried that if we get the Unfogged folks involved Brian's lead will become so great that a dignified second place will become unattainable.

But that wouldn't be the end of the world. I'm confident we can provide a decent finish for him. So follow your heart -- if you want to post something about it, have at it.

 

Ryan Lizza is currently in the lead anyway, you know.

I assume that Jeff = J.P., and not the guy nominated on the form "Jeff", since that guy only has 207 votes—I assume that there's a Jeffanator, too? Since otherwise having racked up 16,000 votes is pretty impressive. And if there is, then if a pointer to it is provided as well, well—problem solved. (Or one could have a script that votes n times for Brian, and n-1 for Jeff, or whatever—for all I know, since I still haven't looked at it, the Beutlerator does just that.)

 

No, I haven't done anything on Jeff's behalf yet, which is the reason for his low total. I was planning to write a last-minute script to get to v(Brian)-1, but you're right: that might not be realistic given other contestants' bot use.

 

Onward and upward.

Votes Cast: 6405
Your Rank: Black Cat bartender
667b1053f77216e422a9763cffb3a952

 

Am I correct in assuming that one can simply unzip the xpi, modify the script, and zip it back up? If so, it would be trivial to add a vote for Jeff for every vote for Brian—the current disparity would ensure that the former won't overtake the latter, and he'll need to get going if he's going to make second.

(Closing the gap to make it more dignified would be a more delicate operation, of course.)

 

I think that should work, yes, although you may also need to alter the GUID of the package to make it take priority over the existing one. I do sort of like making this one Brian-only, though -- best to make sure people know what they're voting for.

I'll go run curl ten thousand times on Jeff's behalf to get the ball rolling.

 

Be careful with that—unfogged's IP got blocked for suspicious voting behavior. (Shoulda slept a little between wgets.)

I find the rdm element of the request kind of bizarre—is the idea that, if they get thousands of votes from the same IP, they can evaluate the randomness of that variable and see whether (a) the person used his browser and deleted cookies, voting manually; (b) same as (a) but the browser has a bad random number generator; (c) the person cheated with mechanical help?

 

I appreciate the tip -- I hadn't realized they blocked for hammering the server. Sounds like it might just be mod_security kicking in on Apache.

And yeah, I don't know what to say about rdm. I haven't looked at the code at that level of depth, but I certainly agree that there doesn't seem to be much parameter-changing required to register a vote. At the moment I'm assuming all that junk represents some disabled features not in use on Fishbowl's account.

 

That Lizza twerp has seriously pulled ahead. I'm going to post to unfogged.

 

Hi, can you tell me how to create a script to rig another polldaddy poll?

 

Hi John. No, I'm not willing to share that knowledge. I don't think it's a bad thing to make it only available to those willing to figure it out for themselves--minimizes the pool of potential malefactors to those who can't be stopped anyway.

 

Post a comment