Looks fantastic! As someone who has done it before, if this gets popular you'll run into some abusive users that you'll want to deal with. Microsoft will often give out free access to it's PhotoDNA service for detection of explicit images of minors. VirusTotal will often do the same for malware in exchange for samples. You'll also want to have a structured retention process, e.g. size is inversely proportional to storage time.
Good luck, get in contact (see my profile) if you run into any issues.
> I only shared the solution and technique with one other server operator I fully trusted based in the UK
I think that was us! We ended up combining it with other fingerprinting indicators, but the whole 'use VGUI' was a surprisingly effective way at handling this. I believe they removed the web browser in ~2018, which was disappointing. Being able to have custom skill trees / fun integrations with servers was really powerful!
It feels like having a predefined list of keys that are ignored is a "hack". Would a better solution be to simply wait until none of the _trigger_ keys were pressed?
E.g. if the sequence was "Ctrl" + "F8" then it would just ensure that neither Ctrl nor F8 were pressed.
Yeah! Whilst usually a side show to real events there's a bunch of virtual and in person events.
Two years there was an event in the UK dedicated to typing. Last year the US. Virtual tournaments happen frequently throughout the year. The most famous one is likely the yearly event hosted by Keymash[0].
Octahedron is also a famous player in the scene. He hosts a Discord server for proficient typists and regularly puts on events.
Most people typically speak in the 130 - 180 word per minute range, although this can vastly change based on context. Preprepared speeches, arguments and monologues generally have a higher pace than a usual conversation between two people.
> It’s difficult to type and think at the same time, so any time spent writing is a pause in thoughts, which can derail the flow.
I'm a competitive typist. I'm also a programmer. The main positive that I see is that typing no longer requires thought. I think of the code I want to write and it's transcripted onto the computer.
I would say that it's more advantageous to type _accurately_ than quickly. Typing competitions generally require 100% accuracy, which gives me a great amount of belief that what I'm typing is correct, without having to look at it / check it over and get side tracked from the code itself.
This was really enjoyable, although I found it difficult to read all the letters when it got a little faster! Ended up scoring 170 after a couple of attempts. I looked at the code and it is fairly clean. I'd probably recommend using 'requestAnimationFrame' over the 'setTimeout' you currently use for the loop. I'd also make it clearer that bad accuracy lowers your score!
This was incredible feedback, thanks so much for taking the time to write it out. I've implemented 2, 3 and 4. You can now directly link to pages[0] and it'll auto-expand all boxes. The icons are intended to show whether the sequence has a code submission attached. There's now a popover attached to them to explain this.
1 will take some design work, and I've only got an hour or so to work on it now. I definitely agree however that a 'submit' button on a search is essential.
I keep on meaning to finish a redesign of the oeis site that I started a few months ago[0]. I've only spent a day on it so far, but I'm hoping it makes the site far more approachable to new comers.
`/dev/urandom` isn't a real file / stream. It's part of the 'everything is a a file' *nix mantra. Even if two users are reading from /dev/urandom simultaneously, they'll each get unique values. The CSPRNG keeps track of a sequence number and so you'll end up with something like [process 0 requests sequence 0, process 1 requests sequence 1, process 1 requests sequence 2, proceess 0 requests sequence 3...].