Thursday, July 29, 2010

The Junkshot Series: Let's talk about Reckless

This post will begin a series on HA's most obsessive and unrepentant troll: junkshot, my name for the troll you all know as Puddybud. We'll start at the margins and move in deeper. This will be an occasional series touching on stuff I find mostly laugh out loud hilarious, otherwise I'm sure you'll all agree that junkshot is a pretty tedious character. Focusing on individual trolls is somewhat of a distraction from the original goals of illustrating collective troll behavior through data mining but junkshot is the second most prolific commenter in the HA comment threads after Roger Rabbit, easily the most prolific troll and it'd be a disservice not to focus on him a bit.

So let's begin. Who or what is "Reckless"? Here's a noteworthy exchange between myself and junkshot:

302. YLB spews:

300 – LMAO @ you moron. You got nothing on me with names. MWS? Kingbud? Reckless? There were others for sure.

305. Puddybud, Hey it's the new year... spews:

MWS? Kingbud? Yep. Prove I was Reckless. Go on fool! 
Very interesting. He readily admits to being MWS (aka Mike Webb Sucks, kind of hard not to do that). And he readily admits to being Kingbud (I don't recall if he was ever outed by Goldy or Darryl or anyone else on that one) but.. he balks at Reckless. Why? But I digress. Let's first oblige him and prove it. Here:

37. Puddybud spews:


Moonbat!s I created Reckless to prove no matter how you speak to a Moonbat!, nasty or nice, they are nasty.
and:

Tried being nice with Reckless.
and:

John: I tried good discussion. That was my Reckless moniker.
and
BTW John, when I posted nicely without swearing as Reckless, without antagonism, without innuendo, just posting facts, it fell on deaf ears.
Of course we'd be remiss to leave out Goldy's outing:

13. Goldy spews:

Reckless/Mike Webb Sucks/Puddy/etc. @4,
Perhaps if we added together all the comments coming from your various aliases, you might turn out to be one of HA’s heaviest users?
Heaviest users? Indeed. He's the #2 heaviest user. But enough ok! Puddybud (junkshot) is/was Reckless..  Why do I have to "prove" it? Why couldn't he just admit he's Reckless along with MWS and Kingbud? Let's hold that thought for a moment. Let's look at Reckless' legacy at HA.

First of all, junkshot has this to say about Reckless:
Moonbat!s I created Reckless to prove no matter how you speak to a Moonbat!, nasty or nice, they are nasty. Reckless called everyone by their real name. Reckless was polite.
Reckless asked legitimate questions.
Reckless never challenged Goldy’s scratchy voice.
Reckless never challenged Goldy’s Koro’s disease.
Reckless never called YLB - Clueless.
Reckless never challenged FroggyASS.
Reckless never swore at Carl Grossman.

Well, well, how "nice" of Reckless. Let's see how much of that resembles the truth shall we? Reckless produced 111 comments between 1/13/2007 and 2/1/2007.

Reckless was polite? Here's a snip from his FIRST comment in response to concern troll Thomas Trainwinder:

Hypocrisy. I thought that was the Democratic mantra.

Nice dinner party guest he'd make. Polite? Questionable to say the least. Obnoxious? Right out of the gate.

Reckless never called YLB - Clueless. Hmmm.

Someone once blogged you wrte like Clueless. I’ll go one better, YOU ARE CLUELESS

Someone huh? No. I guess Reckless never "called" yours truly that. He merely spelled it out in caps. Classic right wing dodge.

Reckless never challenged Goldy’s scratchy voice. Oh?

I love pulling on Voice of Scratching Chalk’s chain.

No he pulled on his chain.. Let's see what else?

Reckless never swore at Carl Grossman.

You on the prowl Carl? I never heard of adults on myspace before unless they are predators!

Interesting.. How nice of Reckless not to swear. He merely "challenged" Carl with innuendo about predatory sexual behavior. (Didn't junkshot say no innuendo from Reckless?)

And here's Reckless trying to be "nice":

Roger: Post #2 isn’t funny? It’s not even hyperbole. Try not to politicize everything? It makes you look dumb. On second thought, you work hard on that all by your lonesome!

later same comment..

I realize you are a rabble rouser, but many times your tenuous use of words is silly, Rabbit! I’ll give your one: Silly Rabbit must be getting tired. Why doesn’t the Silly Rabbit go to sleep for a year!

and..

Richard@44. I like it. Since Moonbat!s inhabit King County, PERFECT! Again I ask why won’t King County Moonbat!s demonstrate your support for Ron Sims, sell your cars, give to the poor, and ride those bicycles to work?

Nice indeed!

And we'd be remiss to overlook that Reckless felt a special affinity with you-know-who!

Puddy: Clueless is YLB?
What?
When?
How?
Where?
Why?
Tell me more!

Being deceptive. Very nice. Did Kingbud circle-jerk with his master? I'll have to check one of these days.

So why did junkshot ask me long ago to "prove" that he was Reckless? Guess we'll never know for sure. You can ask till you're blue in the face and junkshot won't tell. If anyone has any special insight, feel free to leave it in comments.

Reckless indeed was a notable tactic of junkshot/Puddybud's "top-kill" strategy. Pretty much forgotten but now immortalized in this blog post. Again - someone's got to do it.

Next up in the series: Who called who what names?

Monday, July 26, 2010

Yet More Tagging Progress!

The 319 handles in the "between 100 and 999 comments" bracket have been tagged. Learned many interesting things.

About a third of the handles were pretty obvious names that were familiar to me. They took about as much time to tag as the over 1000 group.

However the remainder were kind of forgotten to me and I had to flip between my tag file and a little query script to scan their comments to answer the question - troll or non-troll?

It was a longer slog than I cared for but... It was a pretty interesting bunch of comments.

Some comments came from single-issue type people who impressed me with the depth of their knowledge on their pet issues - everything from the ferries to Sound Transit to whatever was the issue of the day at HA.

Some were from lefties that had little regard for the Dems and predicted (fairly accurately) that people on the left were getting their hopes up way too high for the Dems to deliver any appreciable change.

Some comments came from righties (a few, mind you) that believed more or less the same thing and were pretty disgusted with how the Republicans had screwed up things. I could not in good conscience call these righties trolls.

There was even one right winger who impressed me as being genuinely interested in putting forth an intellectually sound and nuanced argument. One. Just one! This winger was sounding out a lefty for his personal opposition to abortion. I made a note to myself to read the entirety of this right winger's comments.

See trolls? You can get some positive attention from us if you quit the name calling, turn off the right wing hate radio and other degenerate propaganda and think deeply through your positions on the issues.

All in all it was somewhat tedious but rewarding work and at this point I'm 84.5 percent of the way through tagging the entire comment database.

The next bracket, the "between 10 and 99 comments" bracket has a touch over 1400 handles in it. Already started with the ones that are most familiar. We'll see how it goes. Again, after that, I'll have the comments 94 percent tagged.

Beyond that? Well "the swamp" (almost 14,000 handles!) has some interesting critters in it indeed. I won't ignore it. Trolls, be advised: you can run (or swim) through "the swamp", but you can't hide.

Lastly there's the job of sifting through handles that have switched between troll and non-troll identities - separating the troll from the non-troll to even the spam comments wrapped under one handle. I started sketching out a user interface to a web app that will help with that and the whole tagging, typing chore to boot.

I've pretty much settled on the Sinatra framework for the web app. Gonna be a whole lotta fun!

Monday, July 12, 2010

Tagging Progress

Over the weekend I took the most comment-prolific 81 handles, grouped the contained aliases under a single tag (e.g. all of Puddybud's various handles under the tag "junkshot") and categorized the tag as troll or non-troll.

Remember that those top 81 handles have contributed 1,000 or more comments each and in total account for over 62 percent of all comments.

Conclusion: 30 percent of those comments are troll comments. That number will probably hold pretty steady as I tag the next 1700 or so most comment-prolific handles. And after I'm done with that?

Just a hair over 94 percent of all comments will be judged troll or non-troll.

Of course the work is never done. Some handles like "John" or "Bill" or "Steve" have exhibited either troll or non-troll character throughout their lifetimes. The troll comments contained under those handles will have to be laboriously sifted out and assigned their own special tags.

Wednesday, June 30, 2010

One for the Ages

“If your faith conflicts with reality, ignore reality.”

A distilled teabagger and HA troll maxim.

This blog cannot be about just the trolls. It should also from time to time salute the heroes.

Thanks to relative newcomer, Deathfrogg.


Thursday, June 17, 2010

Update

Been a while since the last post. Still tagging handles, still removing warts from my code. The latest code is almost where I want it. I could do a bit more factoring, removing some repetition but it would be more for aesthetic purposes. The code does what I want with satisfactory performance. Test coverage as is usually the case could be much better.

On a more relevant note, April and May 2010 are now in the database so I thought I'd update the big picture that I first sketched here.

As of the end of May 2010:

8,082 articles over the 73 months of HA.org's existence.

430,912 comments. (Haven't filtered out the spam yet.)

and last but not least:

Out of 15,728 unique handles!

Top 10 # of comments by handle:

10 GBS @ 5,317
9 rhp6033 @ 5,478
8 ArtFart @ 6,004
7 Steve @ 6,167
6 Marvin Stamn @ 6,774
5 Daddy Love @ 8,580
4 YLB @ 9,323
3 Mr. Cynical @ 9,827
2 Puddybud @ 11,369

and number one?

Our beloved Roger Rabbit at 58,310.


So Steve moves ahead of Art, gaining on Stamn. Puddybud barely budges due to begging everybody else to come to me to justify his drivel. (Useless, he'll ALWAYS be #2.) All the usual disclaimers on that top 10 list still apply.

An updated brackets report follows:


One handle has joined the 1000+ comments club. Right now I don't know who you are but congrats!

Update to "Update": The newest member of the 1000+ comments club is "John" which is a handle that's been used by many, many people, hero and troll alike, over the years. Again, congratulations "John"!

Friday, April 30, 2010

Entering the Twitterverse

Tagging handles in earnest indeed. In the meantime, I may tweet a few eureka moments about code or trolls.

While I was at it, I added an rss feed.

Ciao..

Monday, April 26, 2010

Still Distracted but Turning a Big Corner

In the last post I was all jazzed about an opportunity to make the data collection from my "select sources" run much faster.

Well, I'm pretty much at the other end of it and I'm quite happy about it. I did a major rework of the code. It's much better than before and my only regret is that I wish I'd thought of this speedup sooner.

The old code base accomplished the collecting (almost 8,000 articles and 415,000 comments) but it did the job kind of slowly and that was even with some good speedups I had spotted early. But if I had had what I've got now, it would have gone much faster. Also I would have totally minimized data collection from HA itself. Oh well. Better late than never.

In the last post I mentioned that I used code that would automate a web browser to navigate the web and collect HA articles from select sources. I also mentioned that by bringing up one browser instance and feeding requests to it, you will maximize the data collection performance.

The obvious speedup of course is to distribute requests across more browser instances - make it scale. But now we're talking about forking off objects from classes that encapsulate the browser-driving code. And once you create sub-processes you need a means to communicate requests to and retrieve results from those forked instances.

The tried and true method to accomplish this communication is to use a message queuing daemon. In a previous Ruby project I'd used a pretty slick one with a handy Ruby support library. No problem mon -  it's just a matter of finding the right places to insert this code. It was a lot of work but it made me take a hard look at the entire code base and throw away a lot of stuff that just wouldn't be needed anymore. And as I separated out code into Ruby modules by function, I was forced to come to a better understanding of instance variables. In my Repo class I totally overused class methods and was passing way too many parameters from method to method. Why? Way back in the beginning I thought it would be easier to test if I did it that way. Totally wrong. Thanks to this rework, the code in this project and my other projects will be so much better.

One of my select sources in the past really made me tear my hair out. I had only collected 4 or so articles from it because of all the trouble it gave me but now that's all changed. I've gotten much more than a handful from that source for March 2010 alone and I expect it to only get better.  And there's yet another select source out there that I didn't even bother to try because it was so weird and different from the others. I'm feeling pretty confident now. I will give it a shot but I have to do a couple things first.

I'm going to start tagging handles in earnest. This is really critical to separating the trolls from the heroes and then being able to make big picture analyses of troll behavior over the months and the election cycles.

Then I've got to scratch an itch about current month activity. So far I'm caught up to the end of March 2010. Normally I wouldn't add a month to my collection until 10 days into the next month. Why? Goldy doesn't shutdown comments to an article until 8 days or so after the article is published. So if I'm curious about some interesting activity in the current month, I have to develop a way to create a snapshot database with an eye on merging various snapshots into the real thing to save time when a month finally closes.