[HN Gopher] Click
       ___________________________________________________________________
        
       Click
        
       Author : st_goliath
       Score  : 174 points
       Date   : 2021-03-19 21:27 UTC (1 hours ago)
        
 (HTM) web link (clickclickclick.click)
 (TXT) w3m dump (clickclickclick.click)
        
       | wlesieutre wrote:
       | Why does a webpage get to know how many CPU cores I have?
        
         | tomg wrote:
         | window.navigator.hardwareConcurrency
         | 
         | [edit: well this is more of a 'how' than a 'why']
        
           | Sephr wrote:
           | The answer to why: It helps with efficient allocation of
           | worker thread pools.
           | 
           | I made a timing attack[1] as justification for adding this
           | API, and then presented this suggested API to each browser
           | vendor along with the timing attack. The result was that
           | every browser has adopted my suggestion.
           | 
           | If this API was not present, ads could get this data in a
           | more resource-intensive manner anyways.
           | 
           | 1. https://github.com/oftn-oswg/core-estimator
        
             | simias wrote:
             | Ahah, I like the "give up" approach to fighting browser
             | fingerprinting! "If ads can track us, we might as well make
             | it efficient".
        
         | fred123 wrote:
         | Reported by the browser but not always accurate. Used in
         | browser fingerprinting btw
        
         | moron4hire wrote:
         | So I can know how many worker threads to create before it's
         | just a waste of thread scheduling
        
         | seniorgarcia wrote:
         | https://developer.mozilla.org/en-US/docs/Web/API/NavigatorCo...
         | 
         | There is no good answer to why, except to improve
         | fingerprinting. Which is most of what this site shows, the
         | amount of data a site, even open in the background, can use to
         | continuously fingerprint you. Or maybe I misjudge what this is
         | supposed to do.
        
       | franky47 wrote:
       | This is great. I tried to hack the progress by automating clicks,
       | using:                 let button =
       | document.getElementsByClassName('button')[0]
       | Array(100000).fill(undefined).forEach(() => button.click())
       | 
       | In response, I got the following log message:                 >
       | Such a smart subject.
        
         | skavi wrote:
         | Is that actually the best way to do ranges on JS?
        
           | halfmatthalfcat wrote:
           | Traditional for loops are probably the most common for ranges
           | but if you want a more functional approach you can use the
           | Array constructor or Array.prototype.from with its various
           | parameters.
        
             | franky47 wrote:
             | The functional approach also works better as a one-liner
             | when typed in the devtools console.
        
           | smoe wrote:
           | The other comment points out Array.from, which seems pretty
           | nifty. Have not seen it before. I would have used:
           | for(i of Array(1000).keys()) { doSomething() }
           | 
           | or                 [...Array(1000)].forEach(() =>
           | doSomething())
        
         | johnfn wrote:
         | Well, _that 's_ an unconventional way to write a for loop.
         | Maybe the website is commending you on that :-)
        
           | notJim wrote:
           | This is your brain on javascript :)
           | 
           | Guessing it's bc one-liners are easier to write than for
           | loops in the console.
        
           | halfmatthalfcat wrote:
           | Can save more bits by doing:
           | 
           | Array.from({ length: 10000 }, button.click);
        
             | phogster wrote:
             | Never heard of a "from" loop before.
        
               | franky47 wrote:
               | Array.from lets you build an array from an iterable
               | source (often used in conjunction with `new Set` to
               | eliminate duplicates), or in this case, of a fixed
               | length.
        
               | [deleted]
        
             | franky47 wrote:
             | I did not know this variant, thanks. Having to fill the
             | array with anything (even `undefined`) to iterate on it
             | seemed such a weird concept (but then again, JS is weird).
        
         | makach wrote:
         | It responded correctly, it said: Robot, Exciting and then wrote
         | "subject has run script to click on the button ten times within
         | one second" whereafter "subject has clicked on the button a
         | thousand times"
         | 
         | Maybe a contender to CookieClicker? 73% achievements atm
        
       | kag0 wrote:
       | Given the trick they use to prevent you from using the browser
       | back button, I was expecting it to comment "subject is trying to
       | escape!"
        
       | pmastela wrote:
       | Nifty. Now if only this was the required homepage on all major
       | browsers starting up for the first time then folks at home would
       | quickly become aware of just how well tracked they all are.
        
       | MarxOk wrote:
       | Sites like this often go down when they reach the HN first page.
       | I've naively deployed stuff on AWS free tier with no scaling or
       | anything that's handled thousands of concurrent requests out of
       | the box. Is the HN kiss of death that bad, or is it just that a
       | lot of people use weird/shared hosting providers?
        
         | jcpham2 wrote:
         | Surely not the first appearance?
        
         | codegeek wrote:
         | It depends on what type of site it is. A dynamic site with lot
         | of database calls/no caching would probably crash much quicker
         | than a static HTML page with same amount of traffic. HN easily
         | sends 100s of concurrent users if not many so it can crash a
         | shared hosted dynamic site with no caching.
        
         | geek_at wrote:
         | either badly coded website (heavily relying on some backend
         | without static files) or weak hosters but not sure I have a
         | blog that survived every single HN/reddit hug on a pretty weak
         | VPS.
         | 
         | Blog written in PHP but without database interaction
        
       | alvarop wrote:
       | Reminds me of Samy's website. For a fun time, try to view the
       | page source: https://samy.pl/
        
         | pkkim wrote:
         | Well there goes an hour.
        
       | runningmike wrote:
       | Security's worst nightmare! But brilliant creation from a
       | psychological point of view. Awareness Awareness Awareness...
        
       | gnicholas wrote:
       | > _subject disconnected from internet_
       | 
       | Not sure why I got this message, which is not true.
        
       | huskyr wrote:
       | This is a piece created by the Amsterdam-based Studio Moniker.
       | They have many more projects that play with the same ideas, see
       | here: https://studiomoniker.com/projects
        
         | tyingq wrote:
         | I did get a kick out of "https://donotdrawapenis.com/", which
         | has apparently collected 25,000 reasonable penis sketches. I
         | guess for ML training to keep penis drawings off of your
         | website?
        
       | navaati wrote:
       | "You visited about n sites before coming here" How the hell does
       | that work ?
        
         | tomg wrote:
         | window.history.length
         | 
         | would be my guess.
        
           | navaati wrote:
           | Ugh, slightly creepy. Thanks for your answer !
        
         | acwan93 wrote:
         | I can't find the website, but there's a site that specifically
         | tells you _everything_ it knows about you just by keeping the
         | page open.
         | 
         | It tells you if it knows where your cursor is, what pages
         | you've been to, what your computer is, etc.
         | 
         | It was intended to show that you, the user, give out a lot of
         | data without even realizing it.
        
       | zaczekadam wrote:
       | It's crazy how many things they predicted. Love it
        
       | TruthWillHurt wrote:
       | site is down.
       | 
       | downdowndown.down
        
         | runningmike wrote:
         | The deathly HN kiss of lovelove.love
        
       ___________________________________________________________________
       (page generated 2021-03-19 23:00 UTC)