Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Arantor
5671
Development blog / Re: Banning, and what I want to do with it
« on October 29th, 2011, 11:26 PM »
Quote
Google hammers my site more than Baidu, which seems... interesting.
You have Bad Behaviour, right?

Baidu doesn't typically send an Accept header so BB should be kicking it out.
5672
Development blog / Re: Banning, and what I want to do with it
« on October 29th, 2011, 07:54 PM »
*nods* But that's only in terms of spammers actually getting as far as registration - spammers hammering away trying to get in is still a silent issue that's present, and is really what butchs' Forum Firewall was designed to solve.[1]

Mind you, people are realising that Baidu is a problem even though it's a 'legitimate' site, it's a bit heavy on the accessing, so I'm not even sure I want to unblock it from the current exclusions in our Bad Behaviour implementation.
 1. Though, I find it hilarious that he's written in a 'no SMF fork can make use of any of the ideas in this mod' which was written almost entirely because he thought I was trolling him. Sad really, the guy has some good ideas, but has a lot of bad ideas about execution of them.
5673
Development blog / Re: Banning, and what I want to do with it
« on October 29th, 2011, 07:30 PM »
Let me draw your attention to one thing, from the OP.
Quote
What is the ban system for? Primarily it's for getting rid of miscreants, and troublemakers. It isn't really a spam-solving solution, and it's not really for keeping users out that you're not interested in - it's for keeping users out that you don't want, which isn't the same thing.

Now before you start, I'm well aware that users do currently use it for keeping users out that they're not interested in, but on a variety of levels, I'm just not sure how viable that is, but we'll get on that in a minute.
I never intended to overhaul the ban system to keep out spammers because of that very assertion, it's for the trolls etc, that don't take no for an answer and don't give up at a little bit of resistance. People like our friend Clara, for example. The idea is that instead of having a generic blocking system, it should be people-centric to curtail their activities as necessary.

Custom questions do a lot of it, and the custom CAPTCHA is effective in that it hasn't yet gone mainstream and thus not yet been examined or broken by the likes of xrumer, because it's not worth their time and effort to do so - yet. It will, though, as and when Wedge gets popular, however the custom question angle does make a lot of difference.
5674
Features / Re: New revs
« on October 29th, 2011, 02:15 AM »
(5 modified, 18KB)

Revision: 1136
Author: arantor
Date: 01:13:39, 29 October 2011
Message:
+ Converted Post structure to modular block/layer setup, and don't appear to have broken anything in the interim, though time will tell. (Post.php, Post.template.php)
! Added a few hooks to posting to be able to manipulate the process. This is a bit more malleable than others because the process is intensely complex. It may be that we change these hooks or do more with them. They're also untested. (ManagePlugins.php, Post.php, Post2.php, Subs-Post.php)
----
Modified : /trunk/Sources/ManagePlugins.php
Modified : /trunk/Sources/Post.php
Modified : /trunk/Sources/Post2.php
Modified : /trunk/Sources/Subs-Post.php
Modified : /trunk/Themes/default/Post.template.php


@ This wasn't pretty, especially after I spent several minutes swearing at the dynamic inclusion, suspecting a bug in the template skeleton because I was only getting the 'poll' dialogue up until it dawned on me that I was already in a topic, and had hit Add Poll (as in add poll to topic) rather than creating an entirely new post+poll.

As indicated, the hooks may be enough, they may not. Post's handling is very complex and it does occur to me that maybe I should split it out into several functions like I did in SimpleDesk, but for now at least this gives us a starting point for plugins, and IIRC is the last remaining dependency for me to make the calendar a plugin.
5675
Development blog / Re: Banning, and what I want to do with it
« on October 29th, 2011, 01:59 AM »
Yes, I realise that's the problem, as soon as it was mentioned that having multiple tags on a message was on the cards, I realised it would be a problem, being core or not is actually totally irrelevant.
5676
Off-topic / Re: Had trouble deciding where to post this
« on October 29th, 2011, 01:26 AM »
There isn't a question. It's more of a monologue on the fun I've having.

It almost certainly will conflict, but I suspect it won't be a huge problem to fix.
5677
Development blog / Re: Banning, and what I want to do with it
« on October 29th, 2011, 01:09 AM »
It doesn't really matter how you did it, if you can attach two or more states to a message that are not expressly exclusive, precedence is going to be a problem. (Even attaching arbitrary tags would have the same problem)

If it's ghosted, I'd argue that should be the most prominent one. After that, moderator. However note that I don't see 'correct answer' being a core item, which does make me think about making it arbitrary states and putting it in a separate table - though that is irrelevant as far as precedence is concerned.

Generally, selectivity is the usual criteria for determining precedence (that something more selective takes precedence over something general) - I'd argue that ghosting is going to be more selective than moderator/admin posting and so should take precedence. (Though, why would you ghost either a moderator post, or a correct answer?)
5678
Development blog / Re: Banning, and what I want to do with it
« on October 29th, 2011, 12:53 AM »
Well, the different ways to flag posts raises all kinds of other issues that I don't really want to get into at this stage, as it has all kinds of interesting side effects (not least how a mod would extend it and still have it be done efficiently; with the method I have in mind, there would be a limit of 64 tags that could be attached to a post, but configurability would be... limited)

Actually, thinking about it, this would be useful in solving another issue that I had; I want to be able to provide a style hook of some description to say 'this post was made by the admin' or 'this post was made by a moderator', and I'd never been able to figure out a way of doing it before that made sense (without querying for the users and their permissions each page load) - so while the base might not make use of it, it would be trivial to style a staff member's post much as Blizzard's forums do.

The downside to that method is that it has to be maintained manually and it causes trouble if you demote someone, but it is certainly food for thought (and has yet other consequences that I can envisage)

Note that I'm not thinking of an 'arbitrary' set of tags. It would, for the sake of efficiency, be up to 64 pre-defined tags in the system that would be attached to a post, and adding new ones potentially would cause big issues. (There's a field type in MySQL called SET. It lets you set 64 tags which are either attached or not attached in that value. But it compresses to use the minimum number of bytes. 1-8 fields = 1 byte, but 9 fields = 2 bytes. If you add that ninth field after the table is created, you have to go through and shunt all the data for every row along to fit it in... Hence not making it particularly extensible. But it would be fast.)

And yeah, the Banned group is something I've long thought about implementing. There's a bunch of tricks needed internally to make it work properly (and to make it function meaningfully as a banned group, like not letting you delete it, for one thing) and that users would likely go in and out of it at a different rate to normal assignment, so it would be managed by the system instead. It's complex!
5679
Off-topic / Had trouble deciding where to post this
« on October 29th, 2011, 12:46 AM »
For once I had trouble deciding where to post this. It's sort of plugin related, sort of feature related and sort of rant related. Eh, let's go for off-topic then, heh.

OK, so my current project for this evening is to break up that damn post template. Seriously, even with the changes I made before, which split the poll creation and event creation and some other oddments out into their own functions, there's still a massive unit that is the post form.

And, sadly, the more I hack away at it the worst I feel like I'm getting with it :/ In the new template skeleton structure, you have layers and blocks. A block is, semantically, an atomic piece of content that doesn't need to contain anything inside it, e.g. one item in the info center, while a layer is a container of blocks, as in it has one or more blocks in it and maybe some code before or after the list of blocks in it. The info center itself is a layer, the bit before the contents is the opening of the IC, then the content blocks, then the end of the IC.

And, that's stored inside the sidebar layout so you can add things either before or after the info center as a single item or you can add things inside the IC. It's pretty cool actually.

But the post form is enormously complex, far more than anything I've yet made with the system.

In case you're wondering why it's so complex, just imagine what the post form might contain.

Start the post form
    Preview area
    Display any errors
    If it will require moderator approval, advise user
    If locked, advise user that only moderators can reply
    Begin the post header
        If guest, ask for name and address
        Post subject, icon
    End the post header
    Optionally, the calendar event builder
    Optionally, polls
    The postbox
    Additional options
    Attachments
    Verification/CAPTCHA
    The submit buttons
End the post form

(And that's all inside just the main area) Small wonder it's been giving me a headache, and that's before I begin to worry about how the wireless template is going to support any changes, though to a degree I almost don't care about WAP2 support for extensibility; it's not like most post-form mods extend WAP2 anyway, but that's not the right attitude to have.

Yeah, it's complicated, but the upshot is that adding items into the form is absolutely trivial now, and you have a pretty good degree of control about where things go. (Note that some of these already have other related facilities, e.g. the post/preview/save draft buttons are manipulatable through another interface, so you don't need to mess about to add buttons, as well as extending CAPTCHA types is done through other hooks)

That wasn't much of a rant. I guess I'm a bit tired of ranting :P The problem is that it's a very large block of a template, and that sort of thing has to change. The downside is that it ends up being lots of little bits rather than one big bit which can make it harder to deal with.


:edit: I missed some stuff. Duly added.
5680
Development blog / Re: Banning, and what I want to do with it
« on October 29th, 2011, 12:25 AM »
Well, we're looking at implementing deletions much like that anyway (as opposed to the current recycle bin approach) which means it's just another flag to play with. Essentially, the current flag used for approved/not approved is looking to be renamed to a general status flag for that post.

So approved/not approved, deleted, and essentially ghosted, are all variants on the post's status, and can be excluded as such. In fact, thinking about it, that would mean we could create a SET for it, and apply it as a filter, and if it's suitably indexed it shouldn't be too much of a problem to work with, though benchmarking will of course need to be done (on a big enough scale to validate that it isn't going to hurt too much compared to where we are now, though it may even improve things, you never know)

There's an awful lot of other stuff going on at the moment that means it's going to be a little while before I attack this in particular but it is going to get done :)

On a related anti-troll note, it is (and has been for some time) to deny problem groups from given boards (something not readily possible in SMF) so that you can create a 'Sin Bin' or similar group and just give them only a single board to vent in, perhaps to appeal their sanctions.
5681
Off-topic / Re: New coding music :D
« on October 29th, 2011, 12:10 AM »
In other news, found album I haven't listened to in far too long. Auracle by Lesiem.

It's a bit special, it has a New Age feel to it but with a rock type edge to it in places, written by a German band with lyrics in both English and Latin (most of the tracks have a Latin name with the English in brackets)

Here's the opening track which sets the mood for the album.


Lesiem - Humilitas with lyrics
5682
Development blog / Re: Banning, and what I want to do with it
« on October 29th, 2011, 12:00 AM »
No, you'd have to do it server-side, and frankly the notion of embedding an evercookie just feels wrong. I may want to get rid of persistent pain users, but I don't want to do it by 'below the belt' means if at all possible.

I mean, we still have the same inherent problem with post moderation. Essentially I think it's going to have to be an extension of the post moderation system, just adding a flag to unhide it (and hide all traces of it being hidden, as it were) to the person it affects.

On a side note, would administrators continue to see these posts? What about moderators?
5683
Development blog / Re: Banning, and what I want to do with it
« on October 28th, 2011, 11:21 PM »
Very true, yes. But at the same time, I'd rather not slow down forum-wide operations. I mean, we're already going to be seeing a gain because of not having the banning query per page (which is deceptively expensive), so my job is to figure out a way to make that work as desired and be efficient.

It isn't that I don't want to do it - it would be a smart way to get rid of trolls for sure or at least clean up after them - but I guarantee you, selecting a list just based on 'the first ten of those in this topic' is significantly faster than 'the first ten of those in this topic, excluding this other information in this other table'. Even post moderation is actually hurtful in performance as it stands, so maybe we'll end up looking at doing it in a similar fashion to how post moderation is looking to be expanded upon internally.
5684
Development blog / Re: Banning, and what I want to do with it
« on October 28th, 2011, 10:44 PM »
Hmm, I'll see what I can do, global ignore like that wasn't quite part of my plan, but other account level sanctions certainly were.
5685
Development blog / Re: Banning, and what I want to do with it
« on October 28th, 2011, 09:57 PM »
No, I think you might misunderstand me. The per user banning is going away in its present form, and per user banning will instead be handled as account level sanctions rather than being looked up against a general list of bans, especially because of the IP bans being unreliable and trivial to get around, but blocking at bigger levels becomes useful for now.

Implementing bans in the current ban system is, frankly, laughable.