Forgot your password?
typodupeerror
Slashdot.org

Journal: When will I be eligible for M1? 8

Journal by James A. A. Joyce

If I may direct your attention to this part of the Slashdot FAQ, regarding moderation.

It outlines five prerequisites for moderator access:

  • You have to be logged in
  • You have to read regularly, but not obsessively (the front page doesn't count)
  • Your account must be fairly 'old' (the most recent few thousand accounts can't moderate)
  • 'Willing to Serve' must be set in your preferences
  • 'Positive' or better karma

I satisfy, as far as I can tell, all of those conditions except perhaps the second listed above. I do read Slashdot regularly, but I read it perhaps a little too regularly. I routinely reload my user page a good two or three dozen times a day. I think that would be my stumbling block. Or do I just need to wait a while more?

Could some users with UIDs in the 600,000-700,000 range inform me as to whether or not how many times they've gotten M1/M2? I need some data to seek my teeth into.

Slashdot.org

Journal: Am I Really This Dangerous? 4

Journal by James A. A. Joyce

Nero Online, a generic WWW/Slashdot troll portal appears to be a focal point for the GNAA. It is currently the only substantial web site I can find which is affiliated with them. However, they also run a troll library which features various trolls in plain text formats.

They also have templates of presumably useful trolls so that one can just cut-and-paste them for submission.

I discovered a template with the filename joyce.txt . It's a template which consists of:

Do not moderate Joyce up - he is a known copy and paste troll - he gets his stuff from any forum he can find it
see
<a href="http://slashdot.org/comments.pl?sid=72988&cid=6572707">http://slashdot.org/comments.pl?sid=72988&cid=6572707</a>
<a href="http://slashdot.org/comments.pl?sid=66730&cid=6562201">http://slashdot.org/comments.pl?sid=66730&cid=6562201</a>
<a href="http://slashdot.org/comments.pl?sid=66730&cid=6562201">http://slashdot.org/comments.pl?sid=66730&cid=6562201</a>
<a href="http://slashdot.org/comments.pl?sid=72603&cid=6546460">http://slashdot.org/comments.pl?sid=72603&cid=6546460</a>

Apparently the GNAA believes that I am the main threat to their wellbeing, since they have no other similarly accusative comments pertaining to particular users. This despite the fact that I haven't performed any anti-GNAA activities for some time now. However, when I get mod points, I will attack GNAA posts if I have some points left over.

Slashdot.org

Journal: Slashbot Script Use 3

Journal by James A. A. Joyce

My slashbot script works by using curl to repeatedly download the 'light' version of the Slashdot front page at regular intervals. The thing is, how frequently can you do this before you get banned?

I originally set out to use the Slashdot RDF file. Unfortunately, you can only get away with about 60 viewings of it per IP per day before being banned for 72 hours. This is about every 25 to 30 minutes, making it useless for checking new story postings.

Then I figured I might as well use the front page, despite the fact that it's a lot more bloated, but one can get away with refreshing it every 30 seconds for an hour or two nonstop. (I know this from bitter experience.) So now the front page looked a logical choice. And it still does; use the light version and that's only 30KB a pop.

But how frequently can one refresh the front page continuously for a day before one gets banned? I only have a 56K modem link to the Internet which I disconnect every hour or two, so there's not much scope for consistent hammering of the Slashdot servers. But if the script gets longtime use on a broadband link, then hypothetically it could retrieve the page every 20, 10 or even five seconds, and that would be 20 downloads per minute totalling 600KB. Is there any point in doing so, and could you get away with it?

I suspect that you probably would. The default setting for slashbot is to reload the page every two minutes until a Mysterious Future story message appears, at which point it reloads every one minute. This is almost certainly a setting which is safe to use for 24 hours nonstop; Slashdot hands out literally a million pages a day with a good number of those probably for the front page; in this case 800 page views from one IP wouldn't be too extraordinary. On the other hand, if slashbot checked three or four times as frequently I think it would be at risk of getting you banned. The current 120/60 time settings are a nice compromise which allow a small buffer zone without risking your access.

Notably, the default homepage only includes some stories from subsections, such as Games or Ask Slashdot. As far as I can tell, there is no GET variable you can pass to index.pl to get it to display stories from all sections. Nor, I believe, can you change the number of stories displayed to just the first few as opposed to a dozen or two without setting up a user. To get around this, I recommend just signing up a new dummy user for yourself, changing its settings to "collapse sections" and to only display three or four stories. Then copy or manufacture a cookie for that user and then you can use that cookie with slashbot to make it only get the new, desired home page.

Another thing I'm considering is the Slashdot page for Palm pilots and other such small-screened devices. This page would be delightful for use due to how bare it is - it fits comfortably inside one kilobyte! The problem? Since the Palm portal is rarely mentioned anywhere, I don't know how tolerant of abuse the Slashcrew are regarding it. Oh, and the HTML's all on two lines, making it harder to process with just egrep and sed.

Programming

Journal: Comment posting POST data

Journal by James A. A. Joyce
I'm just documenting some of my thought processes regarding noninteractive comment posting, which may help me to build an automated post poster out of bash.

When posting a comment AC (which is what my planned script will do for convenience's sake) one first has to preview the comment and then submit it: they're both exactly the same operations except that for one the POST variable "op" is set to "Preview" and for the other it's "Submit". So we can just post the same variables twice.

Except...there's the formkeys. We have to generate formkeys somehow. Actually, that's quite simple. We just simulate the clicking of a Reply link and we get a valid comment submit form with a valid formkey. We fill it in, hit Preview, then get a new form with another formkey. Use that, fill it in, submit, done.

Oh, and then, there's the waiting for a smidge under 20 seconds for the lameness filter.

OK, the rest of this journal entry is going to be another experimental bash shell script:

---------
#!/bin/bash

show_usage=0

if echo "$1" | egrep -q '^[0-9]+$'
then
    sid="$1"
    echo "Notice: sid=\"$1\""
    show_usage=$[$show_usage+1]
fi

if [ "$2" != "" ]
then
    postersubj=$2
    echo "Notice: postersubj=\"$2\""
    show_usage=$[$show_usage+1]
fi

#if [ "$3" != "" ]
#then
#    postercomment=$3
#    echo "Notice: postercomment=\"$3\""
#    show_usage=$[$show_usage+1]
#fi

if echo "$3" | egrep -q '^[1234]$'
then
    posttype=$3
    echo "Notice: posttype=\"$3\""
else
    echo "Notice: posttype=1"
fi

if echo "$4" | egrep -q '^[0-9]+$'
then
    pid=$4
else
    pid=0
fi

startat=$5

echo "SHOWUSAGE $show_usage"
if [ "$show_usage" -lt "2" ]
then
    echo "$0: usage $0 sid postersubj \"[posttype]\" \"[pid]\" \"[startat]\"" >&2
    echo "optional arguments are in square brackets" >&2
    exit 1
fi

postercomment=$(cat -)
echo "Notice: comment text read" >&2

#pid=0
#postersubj="fp bitchez VICTORY IS MINE ahahah"
#postercomment="testing using the kickass w3c fp tool from www.w3.org ($RANDOM)"
#posttype=1
op=Submit

function submit_comment_form()
{
    formkey=$(curl "http://slashdot.org/comments.pl?sid=$sid&cid=0&pid=$sid&startat=$startat&threshold=0&mode=thread&commentsort=0&op=Reply" 2> /dev/null | grep 'NAME="formkey" VALUE=".*">' | sed 's/<INPUT TYPE="HIDDEN" NAME="formkey" VALUE="//g' | sed 's/">//g')
    echo "Notice: form submission formkey: $formkey" >&2
    echo "Notice: waiting 18 seconds for 20 second timer to run out" >&2
    sleep 18

    if w3c -post "http://slashdot.org/comments.pl?sid=$sid&cid=0&pid=$pid&startat=$startat&threshold=$threshold&mode=$mode&commentsort=$commentsort&op=Submit" \
        -form \
        'commentsort=0' \
        "formkey=$formkey" \
        'mode=thread' \
        "op=$op" \
        "pid=$pid" \
        "postercomment=$postercomment" \
        "postersubj=$postersubj" \
        "posttype=$posttype" \
        "sid=$sid" \
        "startat=$startat" \
        'threshold=0'
        | grep -io 'Comment Submitted.'
    then
        echo "Notice: comment posted successfully."
    else
        echo "Error: comment not posted."
    fi
}

submit_comment_form
---------
Slashdot.org

Journal: Slashbot alpha 2

Journal by James A. A. Joyce
#!/bin/bash

##################################
#
# slashbot
# a public domain shell script
#
# A shell script for automatically and constantly checking the Slashdot
# front page for new stories in order to make getting the FP easier
#
# This will work fine if run in a random directory without arguments and
# without being run as root: it stores temporary files in /tmp and will
# send out a message using 'wall' when a new story is posted.
#
#################################
#
# 'slashbot' will take up to two arguments, both of which are optional.
#
# The first, if given, will be used as the number of seconds to pause for
# between each reloading of the Slashdot page: if this is set too low
# then this script could conceivably get you banned; at least 30 seconds is
# recommended unless you're very desperate.
#
# The second, if given, is a file from which HTTP cookies are read: this is
# useful if you want to masquerade as a logged in user. The cookie file must
# be in Lynx/Mozilla/Netscape format.
#
#################################

# naptime:
# how long to sleep for between front page grabs in seconds
# the default is two minutes, which is fairly conservative
if [ "$1" ]
then
    echo "Notice: setting naptime to $1 seconds" >&2
    NAPTIME="$1"    # first argument is naptime in seconds
else
    NAPTIME=120
fi

# mf_naptime:
# how long to sleep for between front page grabs in seconds when a story
# from the "Mysterious Future" is ready
# the default is one minute, which is OK for short lengths of time
if [ "$2" ]
then
    echo "Notice: setting mf_naptime to $2 seconds" >&2
    MF_NAPTIME="$2"
else
    MF_NAPTIME=60
fi

# cf:
# the location of a cookie file to use, if any
# the default is to read no cookies and use no cookies
if [ "$3" ]
then
    echo "Notice: using $3 as a cookie file" >&2
    CF="$3"
else
    CF=""
fi

ORIG_NAPTIME=$NAPTIME

#################################
# clean_die()
#################################
function clean_die()
{
    rm -f /tmp/slashbot_listing[12].txt /tmp/slashdot.html

    if [ "$1" != "" ]
    then
        exit $1
    else
        exit 0
    fi
}

#################################
# get_front_page_titles()
#    This function outputs to standard output the story titles listed on
#    the "light" cut-down version of the slashdot.org front page: it's
#    about 15-30KB; good for modem users and good for us!
#################################
function get_front_page_titles()
{
    if [ "$CF" != "" ]
    then
        curl --connect-timeout 3 --max-time 33 -b "$CF" \
            'http://slashdot.org/index.pl?light=1&noboxes=1' \
            2> /dev/null | \
            grep -v '<H2>News for nerds, stuff that matters</H2>' \
            > /tmp/slashdot.html
    else
        curl --connect-timeout 3 --max-time 33 \
            'http://slashdot.org/index.pl?light=1&noboxes=1' 2> /dev/null | \
            grep -v '<H2>News for nerds, stuff that matters</H2>' \
            > /tmp/slashdot.html
    fi

    # you need to be logged in for the next four lines to do anything
    if grep -q 'another story coming up soon' /tmp/slashdot.html
    then
        echo "New story currently in Mysterious Future" >&2
        NAPTIME=$MF_NAPTIME
    else
        NAPTIME=$ORIG_NAPTIME
    fi

    if test -s /tmp/slashdot.html
    then
        grep -o '<H2>.*</H2>' /tmp/slashdot.html | \
            sed 's/<A HREF=.*\/\">//g' | \
            sed 's/<\/A>//g' | \
            sed 's/<H2>//g' | \
            sed 's/<\/H2>//g'
    else
        echo "Error: couldn't retrieve front page articles' titles" >&2
        clean_die 1
    fi
}

#################################
# new_story_alert()
#################################
function new_story_alert()
{
    if test -g `which wall`
    then
        wall slashbot: new Slashdot story: \
            \'$(head -1 /tmp/slashbot_listing2.txt)\'
    else
        wall -n slashbot: new Slashdot story: \
            \'$(head -1 /tmp/slashbot_listing2.txt)\'
    fi
}

trap 'clean_die 0' 2 3

# Check to see if another instance of slashbot is currently running: if so,
# exit abnormally
if test -f /tmp/slashdot.html
then
    echo "Error: another instance of slashbot is running" >&2
    clean_die 2
fi

# Main program loop below

while [ 1 ]
do

    echo "Getting front page" >&2
    get_front_page_titles > /tmp/slashbot_listing1.txt
    if test -a /tmp/slashbot_listing2.txt
    then
        echo "Comparing to old copy" >&2
        diff /tmp/slashbot_listing[12].txt > /dev/null
        if [ "$?" == 1 ]
        then
            new_story_alert
        fi
    else
        echo "Notice: no old copy to compare" >&2
    fi

    echo -n "Info: most recent story is '" >&2
    echo $(head -1 /tmp/slashbot_listing1.txt)\' >&2

    mv /tmp/slashbot_listing1.txt /tmp/slashbot_listing2.txt

    echo "Info: sleeping for $NAPTIME seconds" >&2
    sleep $NAPTIME
    echo "Info: done waiting" >&2

done
Slashdot.org

Journal: An Experimental Shell Script For FP Whores 17

Journal by James A. A. Joyce
#!/bin/bash

#
# slashbot
#
# A shell script for automatically and constantly
# checking the Slashdot front page for new stories
# in order to make getting the FP easier.
# Written in bash shell script because Perl sucks.
# Hopefully Slashdot doesn't fuck this up.
#
# How to use it? Just download it into a directory
# and run it. It doesn't need root access; it just
# makes a couple of temporary files in /tmp but it
# cleans up after itself, even after a Ctrl-C.
# It works as a run-forever daemon, and it
# should send out a message via 'wall' when a new
# story pops out; that part is untested.
#

# naptime: how long to sleep for between front page grabs in seconds
if [ "$1" ]
then
    NAPTIME="$1"    # first argument is naptime in seconds
else
    NAPTIME=60
fi

############################
# clean_die()
############################
function clean_die()
{
    rm -f /tmp/slashbot_listing[12].txt

    if [ "$1" != "" ]
    then
        exit $1
    else
        exit 0
    fi
}

############################
# get_front_page_titles()
#    This function outputs to standard output the
#    story titles listed on the "light" cut-down
#    version of the slashdot.org front page: it's
#    about 5-10KB; good for modem users and good for us!
############################
function get_front_page_titles()
{
    curl --max-time 40 'http://slashdot.org/index.pl?light=1' 2> /dev/null | \
        grep -o '<H2>.*</H2>' | \
        sed 's/<A HREF=.*\/\">//g' | \
        sed 's/<\/A>//g' | \
        grep -v '<H2>News for nerds, stuff that matters</H2>' | \
        sed 's/<H2>//g' | \
        sed 's/<\/H2>//g'
}

############################
# new_story_alert()
############################
function new_story_alert()
{
    wall slashbot: new Slashdot story: \
        \'$(head -1 /tmp/slashbot_listing2.txt)\'
}

trap 'clean_die' 2 3

# main program loop below

while [ 1 ]
do

    echo "Getting front page"
    get_front_page_titles > /tmp/slashbot_listing1.txt
    if test -a /tmp/slashbot_listing2.txt
    then
        echo "Comparing to old copy"
        diff /tmp/slashbot_listing[12].txt > /dev/null
        if [ "$?" == 1 ]
        then
            new_story_alert
        fi
    else
        echo "Notice: no old copy to compare"
    fi

    echo "Notice: sleeping for $NAPTIME seconds"
    sleep $NAPTIME
    echo "Notice: done waiting"

    echo "Getting front page"
    get_front_page_titles > /tmp/slashbot_listing2.txt
    echo "Comparing to old copy"
    diff /tmp/slashbot_listing[12].txt > /dev/null

    if [ "$?" == 1 ]
    then
        new_story_alert
    fi

    echo "Notice: sleeping for $NAPTIME seconds"
    sleep $NAPTIME
    echo "Notice: done waiting"

done
Slashdot.org

Journal: A Comment Which Embodies My Trolling Philosophy

Journal by James A. A. Joyce

Some perceptive Anonymous "Coward" posted this insightful comment in response to an ignorant post.

Here it is if you can't be bothered to click the link:

'Why must we fellow trolls fight amongst each other over a silly piece of cyber real estate known as first post? If we worked together, first post may be shared by all, bringing peace and joy to all trolls, from the crapflooders and page wideners, to the crafty celebrity gay story trolls and yes, even GNAA can have it's spot in troll heaven. It's Troll Tuesday, our hallowed day. Save your insults for the infidels and Lunix zealots, for they never shall know true peace, the satisfaction of a +5 Insightful copy and paste, or the thought of hundreds of n00bs clicking on a gay porn link labeled as "In Case of Slashdotting...".'

This guy is about as right as you can get. We have to unite. Except for the GNAA, because they're lame wanabee crapflooders. Though they may follow the ideal of manual trolling detailed in my predictive manifesto, they are so immensely crap at following through that they should have their keyboard hands removed immediately.

Of equal interest to me (as an ardent anti-GNAA protestor) is the parent comment of that mentioned above:

'"Wanabee trolls?" Our organisation has been established far longer than yours. However, your organisation reached its peak with its first post, and is now a diseased mule, waiting to be shot by it's owner. Your laughable attempt at a trolling organisation has required me to have brain surgery from a cancer than developed in my mind when I was browsing your posts - the cancer spread when I looked at even more. At that point, I was placed in a coma and rushed to insensive care, where I had my organs removed in a dire struggle to save my life. Upon looking at my pus-infected bladder upon waking, I saw GNAA written on it, and my knob exploded in a foreskin of cum.'

While this is provocative and argumentative, I still agree with its core sentiments and its powerful use of imagery.

Slashdot.org

Journal: Note To Moderators

Journal by James A. A. Joyce

The contents of a Slashdotter's username and/or signature shouldn't affect your moderation of their comment.

Why am I getting riled up over this simple yet apparently nonobvious moderation maxim? Read this journal entry. The user is "I'm a racist." and his signature at the time of writing is "Down with Saudi Arabia!!!" Though I disagree strongly with the xenophobic views he expresses (regardless of whether he actually believes in them) I feel that it is unfair for ignorant moderators to mark an insightful post as "Flamebait" on the basis of a moronic ad hominem attack.

Education

Journal: An English Tutorial For Slashbots 7

Journal by James A. A. Joyce

I know this is a subject which has been covered before, but I felt that I might as well make a foray into this fertile ground. If just one gratuitous spelling error is prevented by my speaking out on this subject, it will have been worth my while.

"It's" and "Its"

This is the classic prototypal and archetypal Slashdot English fuck-up. "It's" is a contraction of "it is". "Its" indicates possession. The only time you should use "it's" is in place of "it is", certainly nowhere else.

"Their", "There" and "They're"

Homonyms strike again. "Their" is another possessive, indicating ownership of an object by multiple objects. "There" is used in relation to location (often in conjunction with various conjugations of the verb "to be") or sometimes as an expletive ('There!'). Finally, "They're" is a contraction of the phrase "They are". These three entities are not equivalent to each other.

"Article" and "Artical"

"Article" is a word. "Artical" is not. There is absolutely no logical explanation for writing "artical" as opposed to "article". Even if your 'a', 'e' and 'l' keys on your keyboard were mysteriously transposed, these would result in permutations such as "erticla". This inexplicable spelling error is so irritating and widespread that in some states of the US it is legal to decapitate those who make this mistake.

"Your" and "You're"

"Your" is a second person possessive. "You're" is a contraction of "you are", a form of the verb "to be". The two are completely unrelated. An example sentence: "You're your father.". Whilst it makes a statement which is false, it is grammatically correct.

"Could/would have" and "Could/would of"

"Could have" and "Would have" indicate states of possibility and intent, respectively. "Could of" and "Would of" are nonsensical, a mere inaccurate phonetic rendition of "could have" and "would have".

"Grammar" and "Grammer"

A simple spelling error here, folks. "Grammar" is the correct spelling. If you use any other vowel to spell "grammar", your spelling is incorrect. Even so-called "grammer nazis" get this one wrong.

"To" and "Too"

"To" is a preposition (or an adverb) whose meanings are too numerous to list sufficiently concisely here. "Too" is an adverb used to denote an excess and profundity of something. "There are too many people to count." I'll leave it at that.

Abbreviations and acronyms

"Abbreviation" is a word which may be used to describe any shortening of a word or series of words. An acronym is a more specific form of an abbreviation; acronyms are abbreviations which are pronounceable as a word or wordlike entity. For example, "BMW" is not an acronym, since each letter must be enunciated individually. Nor are "PPP", "GGV" or "BBC". However, "scuba" and "Hurd" are acronyms.


This document is released into the public domain. No rights reserved. You are strongly encouraged to post this text in response to any Slashdot article or comment containg any abuse of English, however marginal. James A. A. Joyce, Slashdot user number 681634, is not the real James Joyce. There is no warranty provided by or associated with this text.

Slashdot.org

Journal: Overused Slashdot Cliche: Joe Sixpack

Journal by James A. A. Joyce

I saw this article and I just knew - I was absolutely certain - that at least a dozen Slashbots would immediately splurge identical comments vaguely muttering about Linux and its "accessibility", "ease of use" and the inevitable references to "Joe Sixpack", "Jane Sixpack" or "Joe User". These references are stupid. We know about them. All too well. I even wrote about the Joe Sixpack character as a mode of trolling not entirely unlike the Right Wing Maniac, and how he has been rendered obsolete due to overuse by uninformed maniacs and morons who use him to project their own Linux-related inadequacies at every opportunity.

Why do people continue talking about the "fact" that Linux is not as easy to use as Windows? We are fully aware of that. And yet every time somebody parrots the concept back in a discussion, the moderators immediately leap on the comment to moderate it "Insightful" and "Interesting", and "Informative" too, if they include a made-up anecdote which vaguely involves Linux. It's not Informative, because we already know. It's not Interesting, because we already know. It's not Insightful, because we already know. It's old news.

Talking about Linux on Slashdot will not make any difference to the situation. It's as counterproductive as mentioning Natalie Portman or some similar trolling motif. Why don't the people who write these comments get off their arses and code something better themselves, instead of endlessly reusing the same old tired fluff as it degenerates into self parody?

Get this, moderators: maybe some of us don't actually care about whether or not "Joe Sixpack" uses Linux or likes Linux. If he doesn't like it, then quite frankly, Microsoft are welcome to take him.

(As a footnote: yes, I am fully aware that the word "cliche" has an accented 'e' but Slashdot changes it to a normal 'e'. Thanks a bunch, Malda.)

Bug

Journal: A Weird But Actually Useful Slashdot Bug?! 2

Journal by James A. A. Joyce

I was writing my previous journal entry (that which regards stories 1 and 2) and when I previewed it I noticed that under the "Comments" dropdown box I was able to select a variety of different posting options.

I am not a subscriber.

However, I had the full dropdown box of options:

  • Enabled
  • Disabled
  • Friends only
  • Friends and friends of friends only
  • No foes
  • No foes or foes of friends

This was very peculiar, and even more so when one considers that I still had the "Subscribers have the option to restrict posting access on their journals based on their Friends & Foes list" message directly underneath it. Shame I didn't get any other subscriber benefits, though.

I was able to grab the relevant HTML snippet of the form, if this helps any of you Slashdot trolls who want to try dicking around with POST requests. Here it is, somewhat edited but still fundamentally the same:

<form ACTION="/journal.pl" METHOD="POST" ENCTYPE="application/x-www-form-urlencoded">

...

<select NAME="journal_discuss">

<option VALUE="disabled">
Comments Disabled
</option>
<option VALUE="enabled" SELECTED>
Comments Enabled
</option>
<option VALUE="friends_fof_only">
Just Friends and their Friends
</option>
<option VALUE="friends_only">
Just Friends
</option>
<option VALUE="no_foe">
No Foes
</option>
<option VALUE="no_foe_eof">
No Foes and No Friend's Foes
</option>

</select>
<br />

...

</form>

"Call immediately. Time is running out. We both need to do something monstrous before we die." -- Message from Ralph Steadman to Hunter Thompson

Working...