December 03, 2014
On Wednesday, 3 December 2014 at 07:46:42 UTC, Brad Anderson wrote:
>> I could add links to DPaste and the #d IRC channel.
>
> Both good ideas.

Done. You can see this here:

http://forum.dlang.org/reply/qpfcqedcbkipjllnkyum@forum.dlang.org

(just click "Send")

> If it's that low than I'm not worried about it anymore. The captcha was just very familiar to me before you fixed the IP address problem.

It was caused by a bug, not some heuristic false positive... I'd have fixed it if I knew about it.
December 03, 2014
On Wednesday, 3 December 2014 at 08:51:13 UTC, Gary Willoughby wrote:
> On Wednesday, 3 December 2014 at 08:28:25 UTC, Vladimir Panteleev wrote:
>> Got it. But we're not going back to reCAPTCHA either. I'm tired of deleting spam by hand.
>>
>> Please suggest some ideas (or better, send pull requests).
>
> I got fed up of having spam on an old blog so i implemented a simple question, click on Darth Vader. Then i had lots of little images of film icons and would not post anything until Darth Vader was correctly selected. This sounds simple but the order of the images was randomised to stop bots and humans didn't seem to get it. Also if the wrong icon was selected, i presented a countdown on the page of 2 minutes letting them know this is a anti-spam measure and they can't post until the timer reached zero. Anyone managing to post spam to the blog was IP logged and always redirected to the countdown (once redirected and once the countdown reached zero it always reset forever to make it extremely frustrating for them). Yes you have to put in the effort to log IP's but i found there were very few persistent spammers. It honestly stopped all spam on my old blog.

I'm seeing a very large variation of IPs here. The humans seem to be connecting through a botnet, or a large open proxy directory.

125 IPs banned so far on the forum, for all the good that did. I suppose I could now clear the banlist, so that any future visitors happening to have those IPs are not turned away.

For my personal blog, the "Anti-spam" plugin (with no additional configuration) seems to work fine for now, but it relies on its relative obscurity. No canned solution would be suitable for an active forum, it's too high-profile of a target.
December 03, 2014
> For an idea of what sort of questions DCaptcha asks, you can demo it on the following page, so you don't have to clutter the

I think all code fragments should have just one exact answer (like number or single word) a any programmer without specific D knowledge should be able to answer them correctly. Asking for D feature names in not good IMHO.
December 03, 2014
On Wednesday, 3 December 2014 at 00:56:12 UTC, Brad Anderson wrote:
> Maybe make the ones on d.learn extremely simple.
>
> ---
> What does the follow program print?
>
>     void main()
>     {
>         import std.stdio : writeln;
>         writeln("foo");
>     }
> ---
>
> No algorithms, no math. Just extremely basic stuff. Nobody, not even our weirdly efficient resident furniture spam bot is going to take the time to write a bot to answer a question like that.

Bots don't write bots, lol.

I think, a little math doesn't hurt.

void main()
{
    int a, b=2;
    a++;
    a = a+b+1;
    writeln("foo",a);
}
December 03, 2014
On 2014-12-03 14:02, Martin Krejcirik wrote:

> Asking for D feature names in not good IMHO.

I agree. I try the demo at got a question about what this feature is called:

auto u = new class M {};

Exactly what is referred to here? The type inference or the anonymous class? The answer is "anonymous class".

-- 
/Jacob Carlborg
December 03, 2014
On Wednesday, 3 December 2014 at 09:00:25 UTC, Vladimir Panteleev wrote:
> On Wednesday, 3 December 2014 at 07:46:42 UTC, Brad Anderson wrote:
>>> I could add links to DPaste and the #d IRC channel.
>>
>> Both good ideas.
>
> Done. You can see this here:
>
> http://forum.dlang.org/reply/qpfcqedcbkipjllnkyum@forum.dlang.org
>
> (just click "Send")
>
>> If it's that low than I'm not worried about it anymore. The captcha was just very familiar to me before you fixed the IP address problem.
>
> It was caused by a bug, not some heuristic false positive... I'd have fixed it if I knew about it.

I mentioned it a few times in IRC but you were probably asleep. Should have used .note.
December 03, 2014
On 12/2/14, 6:41 PM, Vladimir Panteleev wrote:

> Enter DCaptcha

I think this could work with just two or three variants of a question. Always ask what's the return value of the function.

1. int foo() { return 8 % 3; }

I don't think non-programmers know what that '%' symbol is, but programmers of any language would recognize this.

2. int foo() { int x = 8; x++; x++; return x; }

I don't think non-programmers would guess ++ is increment, but programmers most probably know it.

3. bool foo() { return 42 != 30 };

I don't think non-programmers know what "!=" is.




December 03, 2014
On Wed, 03 Dec 2014 14:47:09 +0100
Jacob Carlborg via Digitalmars-d-announce
<digitalmars-d-announce@puremagic.com> wrote:

> On 2014-12-03 14:02, Martin Krejcirik wrote:
> 
> > Asking for D feature names in not good IMHO.
> 
> I agree. I try the demo at got a question about what this feature is called:
> 
> auto u = new class M {};
> 
> Exactly what is referred to here? The type inference or the anonymous class? The answer is "anonymous class".
besides, it's not "anonymous", it has a name!


December 03, 2014
On Wednesday, 3 December 2014 at 20:19:34 UTC, ketmar via Digitalmars-d-announce wrote:
> On Wed, 03 Dec 2014 14:47:09 +0100
> Jacob Carlborg via Digitalmars-d-announce
> <digitalmars-d-announce@puremagic.com> wrote:
>
>> On 2014-12-03 14:02, Martin Krejcirik wrote:
>> 
>> > Asking for D feature names in not good IMHO.
>> 
>> I agree. I try the demo at got a question about what this feature is called:
>> 
>> auto u = new class M {};
>> 
>> Exactly what is referred to here? The type inference or the anonymous class? The answer is "anonymous class".
> besides, it's not "anonymous", it has a name!

The type is anonymous.

I agree that this is not a good question :) I'll remove it (probably along with the rest of the "name this feature" ones).
December 03, 2014
On Wed, 03 Dec 2014 20:22:31 +0000
Vladimir Panteleev via Digitalmars-d-announce
<digitalmars-d-announce@puremagic.com> wrote:

> On Wednesday, 3 December 2014 at 20:19:34 UTC, ketmar via Digitalmars-d-announce wrote:
> > On Wed, 03 Dec 2014 14:47:09 +0100
> > Jacob Carlborg via Digitalmars-d-announce
> > <digitalmars-d-announce@puremagic.com> wrote:
> >
> >> On 2014-12-03 14:02, Martin Krejcirik wrote:
> >> 
> >> > Asking for D feature names in not good IMHO.
> >> 
> >> I agree. I try the demo at got a question about what this feature is called:
> >> 
> >> auto u = new class M {};
> >> 
> >> Exactly what is referred to here? The type inference or the anonymous class? The answer is "anonymous class".
> > besides, it's not "anonymous", it has a name!
> 
> The type is anonymous.
so what that "M" after `class` means then? anonymous with a name, that's cool! ;-)