If you are reading this and you are experienced with Perl, then your community needs you.
You see the heroic work being done by our devs Proposed Moderation Rework Experiment and think that couldn't be you? Think again Comrade - you too could be a SN hero!
Seriously - we need some Perl skilled people to offer some time. It doesn't need to be a massive commitment, a few hours here and there to squash a bug or two as it suits would be just fine.
You can contact me by email (above), or you'll find the usual reprobates malingering around #soylent on our irc server.
Related Stories
I've been hinting around about this for a week or two, so here it is. I circulated this proposal around the staff mailing list before Thanksgiving and got nobody telling me it sucks and to die in a fire, so it falls to you lot to do it if necessary. Let's be clear beforehand though. This is not a complete solution; no meta-mod consideration included for instance. Nor is it a permanent change. What it is is an experiment. Unless you lot are overwhelmingly opposed, we'll run it for a month or two and either keep it, keep parts of it, or trash it entirely based on staff and community feedback. We're not the other site and this isn't Beta; what we as a community want is what's going to happen.
So, here's the deal with the bit that's likely to be most controversial right out front. Bad downmods and mod-bombing both suck hardcore but you can't really get rid of them and still have downmods even with meta-moderation because you still have the same ideologically driven few who think Troll/Flamebait/Overrated means Disagree. To that end, I converted all the downmods to +0 mods and added a proper Disagree +0 mod. They affect neither score of the comment nor karma of the commenter but will show up beside the comment score (and be subject to user adjustment from their comments preferences page) if they hold a majority vote. It'll be entirely possible, for instance, to have a +5 Troll comment and equally possible that the same comment will show as -1 Troll to someone who has Troll set to -6 in their preferences.
Underrated and Overrated are also out. For Underrated, I for one would really like to know why you think it's underrated. For Overrated, it was almost exclusively used as Disagree, which we now have.
Second, everyone who's been registered for a month or more gets five mod points a day. We're not getting enough mods on comments to suit the number of comments; this should have been tweaked a while back but we quite frankly just let it slip through the cracks. Also, the zero-mod system will need the extra points to reliably push comments from +5 insightful to +5 Flamebait if they warrant it. We may end up tweaking this number as necessary to find the right balance during The Experiment.
Third, we're introducing a new Spam mod. As of this writing it's a -1 to comment score and a -10 to the commenter's karma; this may very well change. Sounds easily abused, yeah? Not so much. Every comment with this mod applied to it will have a link out beside the score that any staff with editor or above clearance on the main site (this excludes me by the way) can simply click to undo every aspect of the spam moderation and ban the moderator(s) who said it was from moderating. First time for a month, second time for six months; these also are arbitrary numbers that could easily change. So, what qualifies as spam so you don't inadvertently get mod-banned?
- Proper spam. Anything whose primary purpose is advertisement.
- HOSTS/GNAA/etc... type posts. Recurring, useless annoyances we're all familiar with.
- Posts so offtopic and lacking value to even be a troll that they can't be called anything else. See here for an example.
Caveats about banning aside, if something is really spam, please use the mod. It will make it much, much easier for us to find spam posts and attempt to block the spammers. One SELECT statement period vs one per post level of easier.
Lastly, if I can find it and change it in time for thorough testing on dev, we'll be doing away with mod-then-post in favor of mod-and-post. Without proper downmods, there's really just no point in limiting you on when you can moderate a comment.
Right, that's pretty much it. Flame or agree as the spirit moves you. Suggestions will all be read and considered but getting them debated, coded, and tested before the January release will be a bit tricky for all but the exceedingly simple ones.
(Score: -1, Troll) by Anonymous Coward on Tuesday December 09 2014, @02:19PM
Sorry, boys, too busy lynching niggers to help.
- Ethanol-fueled
(Score: -1, Troll) by Anonymous Coward on Tuesday December 09 2014, @04:34PM
Shit, this one is a bit harder... Let me see ... high-level engagement of a nigger-jew-9/11 troll.
No need to apologise, AC. You may think you lack the multitasking skills necessary to both lynch and work in Perl but how can you know until you try?
Lynching is also tiring work so when you need to take a break you can take a glance at a bug report.
(Score: 0) by Anonymous Coward on Tuesday December 09 2014, @07:44PM
the real e-f wouldn't bother with italicizing his name
(Score: -1, Troll) by Anonymous Coward on Tuesday December 09 2014, @08:08PM
Go choke on a bucket of dicks you nigger-loving Jew boy.
- Ethanol-fueled
(Score: -1, Troll) by Anonymous Coward on Tuesday December 09 2014, @02:41PM
Fuck you, Trotsky. I could help but I just don't want to.
Well, back to compiling my own custom build of systemd. That's some good shit.
(Score: 0) by Anonymous Coward on Tuesday December 09 2014, @04:26PM
AC, get ready for some high-level engagement.
You think you don't want to help. The reality of the situation is that you are afraid of failure. That you aren't good enough to make this place better.
I think that is bullshit. You can do it! Show everyone what you are made of. Challenge yourself and prove that you are worth something to this community.
(Score: 2) by everdred on Tuesday December 09 2014, @05:07PM
A troll that's actually funny! Wish I had mod points.
(Score: 2, Funny) by Blackmoore on Tuesday December 09 2014, @03:43PM
That's me in the corner
That's me in the spotlight
Losing my religion
Trying to keep up with you
And I don't know if I can do it
Oh no, I've said too much
I haven't said enough
I thought that I heard you laughing
I thought that I heard you sing
I think I thought I saw you try
http://vimeo.com/57685359 [vimeo.com]
(Score: 0) by Anonymous Coward on Tuesday December 09 2014, @04:20PM
Yes! I'm ready for this.
High Level Engagement Powers ... Activate! http://soylentnews.org/article.pl?sid=14/12/08/193246 [soylentnews.org]
That is a great point you bring up, Blackmoore.
There is often prejudice and distrust of those that lack belief in a particular religion, but not here at SoylentNews! You don't have to worry about anyone judging you or laughing. We have a supportive environment here and can accommodate those who wish to sing while coding in Perl. Let me remind you that every bit helps, even if you lack the confidence to do it or believe that you can't keep up with the others on the team.
We believe in you and you can help make this site better.
(Score: 2) by The Mighty Buzzard on Tuesday December 09 2014, @04:38PM
What "others on the team"? There's paulej72 heading the division as well as the sysadmin division and that Life stuff, so he's often very otherwise busy. There's martyb who does QA like a boss but does not himself code. And there's me who has a job that allows him essentially all the coding time he can stomach.
So, speaking as the entire team of dev coding peons, don't worry about keeping up with me. If you can deal with three minor bugs or requests a month, I'm probably going to hurt myself trying to riverdance.
My rights don't end where your fear begins.
(Score: 2) by Blackmoore on Tuesday December 09 2014, @04:45PM
Dude - I'm already on the Editors team.
doesnt mean i won't badly segway into bad corners.
(Score: 1) by drgibbon on Tuesday December 09 2014, @04:55PM
God damn that engagement level is HIGH!!! Where'd you learn to engage like that?
Certified Soylent Fresh!
(Score: 1) by Blackmoore on Tuesday December 09 2014, @05:34PM
..... porn...
I'm so sorry..
(Score: 4, Funny) by Leebert on Tuesday December 09 2014, @04:12PM
#!/usr/bin/perl
system('/bin/echo "When can I start? I do pearl real good."');
(Score: 2) by ticho on Tuesday December 09 2014, @04:58PM
Dammit, where's my +1 Funny mod point when I need it? The mod system rework can't get here soon enough. Parent would then also earn a +1 Expert from me. :-)
(Score: 2) by isostatic on Tuesday December 09 2014, @05:18PM
That's not good perl
1) I can read it
2) I can see what it's doing
3) The symbol:text ratio is far too low
4) Stupid ifs, and embrace the lack of use strict by default, like
(Score: 2) by francois.barbier on Tuesday December 09 2014, @06:33PM
At least there's no bug in his program...
Yours on the otherhand...
Shouldn't that be $notify?
Oh, it's a feature you say? ;-)
(Score: 2) by isostatic on Tuesday December 09 2014, @07:51PM
Definitely a feature ("embrace the lack of use strict by default"). Change $notfy to $notify and you get a whole other experience
But by default Perl doesn't check you've declared variables, which is dumb.
Don't get me wrong, I love perl, and use it all over the place, but I'm a terrible programmer, and write terrible code.
(Score: 2) by Leebert on Tuesday December 09 2014, @06:45PM
Not to mention I totally forgot to not call echo via the full pathname.
I fail at sucking. :(
(Score: 3, Informative) by isostatic on Tuesday December 09 2014, @08:00PM
If you don't know perl
* notfy and notify are different, because you don't need to define variables unless you have "use strict;" at the top
* The lack of semicolon on line 4 is fine, the program will only run system if $notify is set to a non-zero value (and it's undef at this point). Perl allows if statements to go after code.
* "I really did it" is always printed, as you might have guessed from the semicolon, however in most languages a line with "if ($A) print 'MSG';" would print MSG if $A was set. In Perl it's invalid code. You need
print 'MSG' if ($A);
But if you want two lines you have to refactor to
Perl does have a redeeming feature though
Is perfectly valid code.
(Score: 2) by Tork on Tuesday December 09 2014, @09:06PM
🏳️🌈 Proud Ally 🏳️🌈
(Score: 2) by Marand on Wednesday December 10 2014, @01:25AM
That's not good perl
1) I can read it
2) I can see what it's doing
3) The symbol:text ratio is far too low
I made a command line parser in the '90s that fixed all those "problems" plus added regex, anonymous subroutines, anonymous arrays, and even called subs by dereferencing the aforementioned anonymous arrays. By your definition it was probably some of the best Perl ever. It'd be a waste of space to paste the whole thing, but one bit at the end stands out as "true Perl code":
foreach (@sub) {
&{$$_[0]}(@{$$_[1]});
}
In my defense, it was the end result of sleep-deprived "inspiration" and I normally avoid writing line-noise Perl. As bad as it is, it's an example of why I still like Perl more than Python: it doesn't try to force someone else's style and idea of "correct" on you. The flexibility is great, though it also means that if you want to shoot yourself in the foot, it has everything from shotguns to nukes and it won't try to stop your attempt at foot genocide. It's up to you to make the code readable, and if you want you can make something clever first and then refactor it to be readable later because Perl doesn't care.
(Score: 3, Funny) by Marand on Wednesday December 10 2014, @01:28AM
...and by posting that one line I probably guaranteed the SN staff will want to keep me as far away from slashcode as possible. Oops.
(Score: 2) by The Mighty Buzzard on Wednesday December 10 2014, @01:54AM
Not remotely. Slashcode has a habit of sticking sub references in hash/object references to be called later like $ops->{$op}{function}->(some args here) that would have you right at home.
My rights don't end where your fear begins.
(Score: 2) by Marand on Wednesday December 10 2014, @02:15AM
Really? Ouch, what were they thinking? That's not the sort of thing you usually want to do on code you know will need tweaking and maintaining later.
Hell, even when I did the above insane snippet I knew it was a bad idea, but I didn't care because it was a reusable code snippet that was unlikely to need maintenance later. The idea was that I could set up a list of command line switches (long and short form) by populating a hash (using the switch as a key) with sub names and the # of args expected, so I didn't care if it looked like line noise, because the only part I interacted with past creation was a pair of hashes.
The only reason I still have it as-written is it's been completely hands-off for ~15 years. I originally planned to turn it into a module and clean it up to be less insane, but CPAN had enough parsers of the type, so I didn't see a point. I just throw it into code if I need a quick-n-dirty switch parser and occasionally trot out the line noise as an example of how not to write readable Perl. :)
For what it's worth, I'm willing to poke around and help with the codebase if I can, but I don't know how useful I'd be since my Perl's a bit rusty. It's still my go-to choice for quick hacks but I haven't done anything of reasonable size in a while.
(Score: 2) by The Mighty Buzzard on Wednesday December 10 2014, @12:24PM
It actually works pretty well and it's not difficult to modify... it's just a bit weird to wrap your brain around at first glance. Have a look here [github.com] if you want to see what I mean. It defines the locations of the subs and various other things about them then calls whatever came in as &op=foo (or default) via something like this [github.com] later after doing various checks. Easiest thing in the world to grok the first time you see it? Not so much. Does make things quite easy to maintain after it clicks in your head though.
If you haven't already, feel free to get in touch with juggs@soylentnews.org and he can get you set on the path to the dark side.
My rights don't end where your fear begins.
(Score: 2) by Marand on Thursday December 11 2014, @01:21AM
I see...It's almost identical to what I was doing, except easier to read because they used the arrow operator shorthand and a second hash instead of an array. Same idea, though; it's basically a struct with a reference to the sub to call, sort of like a ghetto object.
Probably not the best way to do it, but definitely more readable than I expected, and I can certainly understand the temptation to do it that way. Perl can do a lot of really weird things that would be hard (maybe impossible?) in other languages and I used to spend a lot of time experimenting with them, so I know that temptation well. Especially metaprogramming type stuff. Perl code that modifies its own source and execs itself so that it basically evolves; scripts that keep most of their code in separate source files and eval() them in so that you can change code without re-executing; objects that load and unload parts of themselves on the fly; etc.
Stuff that is so easy to do in Perl that you want to use it even when you know you probably shouldn't. :)
If you haven't already, feel free to get in touch with juggs@soylentnews.org and he can get you set on the path to the dark side.
I haven't yet, but I think I will. It wasn't clear what sort of work was needed so i wasn't sure I'd be useful, but hey, anything helps I guess.
(Score: 2) by francois.barbier on Tuesday December 09 2014, @06:30PM
I'm sorry, I'm can't help. I can only program with the best languages: PHP, JavaScript, SystemD and BrainFuck...
(Score: 0) by Anonymous Coward on Wednesday December 10 2014, @03:11AM
Hey now, brainfuck does not belong in that list!
It actually does the job as specified.
(Score: 0) by Anonymous Coward on Wednesday December 10 2014, @12:18AM
Just curious.
(Score: 2) by juggs on Wednesday December 10 2014, @01:40AM
Yep - 3 or 4 so far. Which is great news.
(Score: 0) by Anonymous Coward on Wednesday December 10 2014, @10:34AM
Yep - 3 or 4 so far. Which is great news.
Cool! I'd step in but it looks like you're covered. Good stuff.