comntr

Joined 7 years ago

Karma
184
Submissions
55
Member since
Jun 25
https://github.com/comntr/webext
View on Hacker News

Recent submissions

Comment · 7 years ago
That's what I'm trying to test. Last time I've got 800 mostly meaningless comments.

The idea is to stop numerous zergs: you can't ban them one by one, but a little bump on their way can do the job.

To avoid annoying more serious commenters, the captcha should be as simple as it can be. So asking to add 321+625 would be too much, while a question like 2+4 doesn't need any thinking, so I chose two-digit numbers.

This is a small social experiment. I don't know how it'll go.

Comment · 7 years ago
Comment · 7 years ago
And just rendering to canvas may be very tricky if the captcha is animated with css, i.e. it moves a bit and different parts of it appear at different times.
Comment · 7 years ago
The catch is that the text will be represented as small geometric svg shapes, so the spammer will need to first render the svg to png and then run text recognition tools. But in that svg we can easily add some css animations that make sure the entire image is never rendered, so spammers will need to run the entire browser to take screenshots and will need to assemble the image from multiple frames.
Comment · 7 years ago
That's true when we talk about 10M monthly pageviews, but I doubt that this little extension will reach such popularity levels. If this somehow happens, by that time there will be a way to enable 3rd party captchas for any page.
Comment · 7 years ago
Comment · 7 years ago
I think, "comntr" is more like "integrated 3rd party" that can be run like a self hosted solution.
Comment · 7 years ago
Can you elaborate on those one word answer questions?
Comment · 7 years ago
That's right, I haven't.

The puzzle will be sent as an SVG, obviously.

Em.. "off-the-shelf OCR" sounds neat, but anyone who knows such words isn't an average spammer. The goal of basic SVG puzzles is to block 99% of the spammers who just type dumb comments on keyboards. The rest 1% can be taken care of by human mods.

TBH, I don't like the reCAPTCHA-like solutions. They are just annoying from my personal experience and if they rely on any 3rd party service, I'll give them a hard pass for this reason alone. My approach is to use trivial SVG-style captchas with adjustable complexity, e.g. instead of asking "23+34", we can ask "log(32)/log(2)" and effectively filter out everyone except people familiar with math, or "md5(2615), first 7 hex digits" and let in only people familiar with cryptography. Forcing users to detect birds and crosswalks will just make them upset, IMHO.

Comment · 7 years ago
Comment · 7 years ago
You can git clone and launch your web client too.
Comment · 7 years ago
Or rather time-delay moderation, as it's easier to implement. Comments are added to the server as usual, but the web client shows them only after 1 hour.
Comment · 7 years ago
I think most of the spammers can be deterred by a simple puzzle, like 23+47. If we want to raise the bar, we make the puzzle more and more complex. Obviously, the puzzle is returned as an svg picture where the letters are "rendered" with little squares. My point is that 99% of the spammers out there are lazy and won't be able to pass this little test vs someone who's written a thoughtful comment and can definitely add 23 to 47.
Comment · 7 years ago
That's right. My first attempt was to use IPFS or DAT. Figured out it's not quite possible, but we can get very close to that, in theory. Imagine the extension or the iframe could run a ipfs.js or dat.js that would discover all the http servers with comments via DHT: servers that want to participate, publish a unique key to the DHT and the web clients discover this key and then the IP addresses of the servers. In practice, this doesn't quite work because DHTs are based on the assumption that any node can quickly ping (with a UDP packet) any other node and thus perform the DHT discovery using the Kademlia algorithm in log(N) steps. But in the web, the only way to "ping" someone is to set up a p2p connection with WebRTC: this not only needs a signaling relay, but also implies a multi step exchange with SDPs and has other costly overhead. And I haven't even approached the Symmetric NAT problem. This is why ipfs.js hogs CPU, allocates a 1 GB and keeps 4-8 sockets always open (they aren't even p2p now, but rather web sockets to some relay, for perf reasons).

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton