eieio 2 years ago

(developer here)

this is....more popular than i expected. the server's gonna be having some problems for a while

  • thomasfromcdnjs 2 years ago

    What are you running that can handle that many websocket connections/messages?

    • eieio 2 years ago

      just a bunch of little flask servers lmao i thought I'd get like 50 people on this thing tops

      • razster 2 years ago

        I've been having it out with someone clicking my green box. The rage grows playing this.

        • brookst 2 years ago

          So it's you unchecking my box?!?!

    • hipadev23 2 years ago

      basically anything that supports async/event-based would work just fine on a $10/mo vps

  • nomel 2 years ago

    I think there's a severe problem with this implementation. By using wrapping, I can't write "boobs" and have everyone else read my graffiti without them having having the same zoom wrapping point.

    • matthewfcarlson 2 years ago

      I spent five minutes writing “hey you, yes you” only to read your comment and realize my message is unparsable for those not on mobile.

      • brookst 2 years ago

        These days we say "encrypted" rather than "unparseable".

        • Dwedit 2 years ago

          Encrypted using EBCDIC

      • cyanydeez 2 years ago

        ¯_ (ツ)_/¯

        • MaxikCZ 2 years ago

          Here, you dropped this: \

          • tekknolagi 2 years ago

            I made https://shru.gg/r for this reason

            • Vicinity9635 2 years ago

              What's the r for? reddit (markdown?)

              • moritzwarhier 2 years ago

                There's a link in the bottom-left corner, haven't checked, but reads like an accompanying reddit tool (since there's no real plugin system, guess it's a web app requiring credentials)

                • tekknolagi 2 years ago

                  No plugins, just HTML, no credentials

                  • moritzwarhier 2 years ago

                    Cool!

                    Sorry that my comment read like an accusation, should have clicked/tapped the link ;)

                    Not following links is a bad habit easy to pick up on mobile.

                    • WildGreenLeave 2 years ago

                      On iOS long pressing a link so it previews is very nice for these kind of things. I only wished you were able to scroll inside that popup/preview.

              • tekknolagi 2 years ago

                Reddit (and other fora). The homepage is for non-escaped. There's also /free

            • nemo1618 2 years ago

              I added a Mac keyboard shortcut, so anywhere I type "shrg" it expands to ‾\_(ツ)_/‾

              If I need an escaped version, that's "shrgg": ‾\\\_(ツ)\_/‾

              • dayjaby 2 years ago

                Did this ever turn against you when coding?

                `std::shared_ptr<Gate> shrg = ...` or similar?

        • fsckboy 2 years ago

          _/`(ツ)_/¯

          walk like an Egyptian

      • TZubiri 2 years ago

        The idea of public canvases has been explored thousands of times: r/place, 1 million pixels,...

        This feels like something else, it's ok if it has its own identity, otherwise it devolves/converges into a place to draw dicks in.

      • crdrost 2 years ago

        This problem is traditionally solved by attempting to teach the aliens how to decode the pattern inside the pattern itself. For example a rendering might look like

            x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
            x _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ x
            x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
            x _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ x
            x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
            x _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ x
            x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
            x _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ x
            x _ _ x _ x _ x x x _ x _ x _ _ x _ x _ x x x _ x _ x _ _ x
            x _ _ x _ x _ x _ _ _ x _ x _ _ x _ x _ x _ x _ x _ x _ _ x
            x _ _ x x x _ x x _ _ x x x _ _ x x x _ x _ x _ x _ x _ _ x
            x _ _ x _ x _ x _ _ _ _ x _ _ _ _ x _ _ x _ x _ x _ x _ _ x
            x _ _ x _ x _ x x x _ _ x _ _ _ _ x _ _ x x x _ x x x _ _ x
            x _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ x
            x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
            x _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ x
            x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
            x _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ x
            x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
            x _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ x
            x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
        

        The idea is that the aliens can figure out first that these opening and closing sections have periodicity 30, and because they are so repetitive they do not contain the actual data bits, but then there is a central section which does contain complexity.

        So then they will hopefully alight upon the idea of looking at the code two-dimensionally, and adjust their browser width until the lines all line up, at which point they get the custom message.

        • pavel_lishin 2 years ago

          Wouldn't it be slightly simpler to use a prime number of rows and columns?

          • crdrost 2 years ago

            Slightly, yes! The Arecibo message was 73×23 bits, with the hope that the aliens would break lines after 23 bits. But,

                i f . t h e s 
                n e i l a . e
                s . l i k e .
                o r t s u o b
                p h e d o n .
                w . r e d r o
                e . a r e . k
                c s . a d n i
                r e w e d . o
                a . e h t . n
                r e c i b o .
                e g a s s e m
                . a n y w a y
            

            and that's to say nothing of spiraling orders etc.

            • defrost 2 years ago

              Not enough boustrophedon order comments on HN, congrats.

            • eru 2 years ago

              I like 'conventional' order, and I could figure out your message block.

              Give the aliens some credit, they might figure it out.

        • sillysaurusx 2 years ago

          How long did you spend crafting this comment? Be honest.

          I could imagine doing that with Vim, but I don’t think I could do it in less than ten minutes. And then I’d get sidetracked about whether to represent empty checkboxes with _ or - or a Unicode box.

          • boomskats 2 years ago

            Thank you so much for this. I wonder, at a global level, how many potentially productive man-minutes will be wasted thanks to your comment.

          • _0j9w 2 years ago

            I thought the same thing

          • anon533783 2 years ago
                ┌───────────────────────┐
                │ https://asciiflow.com │
                └───────────────────────┘
          • kangalioo 2 years ago

            Can be pretty fast if you know your tools well :)

            Just tried in VSCode; 2:38min using its fabulous multiline editing. 1:34min on second try due to practice

        • madcaptenor 2 years ago

          IIRC these messages usually have their dimensions equal to primes, to help the aliens a little bit - for example the Arecibo message was 1679 = 73 * 23 bits. We're hoping the aliens have the sense to recognize a product of two primes.

        • shaftway 2 years ago

          If you used a prime number instead of 30 (e.g. 29) then the aliens would spend less time checking the factors of 30 (15, 10, 6, 5, 3, 2).

    • sdenton4 2 years ago

      Morse code would do the trick!

      One check for short, two checks for long, two blanks for end-of-character.

    • CobrastanJorji 2 years ago

      No, no, it's a feature. Your message has been cleverly hidden behind a modern day scytale cipher. Intended recipients must know the correct screen width.

    • some_random 2 years ago

      The other problem is that there are a bunch of people here running scripts to automatically erase anything you do in the name of checking every box

  • sneak 2 years ago

    just ban all those jerks who keep unchecking

    • the_arun 2 years ago

      Before I read your comment, I was looking for a way to uncheck all at once :)

  • ayhanfuat 2 years ago

    Would be fun to read a writeup of how you implemented it.

    • tazu 2 years ago

      By the performance of it, probably some bloated server-side Javascript running on a toaster.

      • eieio 2 years ago

        that's not fair it's a slow python server running across 5 toasters

      • dylan604 2 years ago

        How else do you propose a toaster generate heat to make the toast? At least it's not the thermostat so it thinks the AC needs to constantly be running. So there's quite a bit of positive logic in the toaster decision

    • eieio 2 years ago

      it's a tiny flask server, a bitset stored in redis, updates broadcast (too frequently! but i don't want to change it now) via websockets, and react-window to only render the checkboxes that are in view.

      I'll do a writeup when i finish putting out fires!

      • nomilk 2 years ago

        Fun challenge: userscript to make an animated fire out of checkboxes

        • dylan604 2 years ago

          userscript to make real fire on hosted server for bonus points

      • eieio 2 years ago

        for future readers, i ended up swapping things out and batching my updates. spooky to do live, but helped a lot with performance

        • paulnpace 2 years ago

          You could sell T-shirts to cover your costs:

          A T-shirt with a checked box on the front an unchecked box on the back.

          A T-shirt with an unchecked box on the front and a checked box on the back.

          • nomel 2 years ago

            You have two bits, which clearly results in four shirts.

      • cyanydeez 2 years ago

        I don't think you can put out a fire like this. Should have tried some kind of webrtc and Kademilia network and crypto to eventually communicate all updates.

      • green-eclipse 2 years ago

        I don't understand, where is the AI + LLM part

        • lobsterthief 2 years ago

          Each time a checkbox is checked, a backend job asks ChatGPT to analyze the board state and write a script using Brainfuck that updates the checkbox states and runs it directly in production.

          AI LLM cloud crypto.

          • crazygringo 2 years ago

            You said crypto but you forgot where running it in production writes the checkbox change event to the blockchain. Checkbox display states only get read from the blockchain, obvi. Otherwise how could it possibly be secure

            Checkboxcoin will be a separate product though, that's for the funding

            • mr90210 2 years ago

              How can I pump? 3 months from now I should dump.

        • nomel 2 years ago

          Actual Intelligence + Logical Language Manifestation

      • fooqux 2 years ago

        But how did you do this without (ab)using a blockchain? You'll never get get funding like this...

      • ggregoire 2 years ago

        > react-window

        I'm confused, I read everyday on hacker news that react is the slowest JS framework ever made. Seems fine to me.

  • dtonon 2 years ago

    Funny, a websockes hell! Can you port it to Nostr? Could be an interesting stress-test

    • nomilk 2 years ago

      The devtools console is chaos

  • eieio 2 years ago

    i spun up 5 more servers and pushed some optimizations and i think it's gonna be ok for a bit.

    • CodeWriter23 2 years ago

      I think you just hit the 640K problem.

    • rldjbpin 2 years ago

      hn hug of death in full action. currently unable to visit. all the best working it out tho!

  • JdeBP 2 years ago

    You announced it on the FediVerse, where it has already been boosted almost 700 times as I write this 4 hours later, and it spread to Reddit within 2 hours of that, as you know because you replied to the Reddit post. There is definitely going to be an initial spike of activity, given those. (-:

    • sillysaurusx 2 years ago

      Out of curiosity, what’s the Reddit thread?

    • adaptbrian 2 years ago

      Love seeing things go viral off the fediverse, it's not designed to push the end of the spectrum out and more organic examples like this might help bring another layer of user adoption.

    • assimpleaspossi 2 years ago

      I'm glad about that. Should keep Reddit type people occupied for days.

  • akarve 2 years ago

    > more popular than i expected

    we know what's important here on hn

  • sillysaurusx 2 years ago

    Is it ok if I try to write a script to uncheck all the boxes? I don’t want to spam your server and ruin it for everyone if there’s no rate limiting.

    (I wince mentioning this publicly; still have flashback trauma from when some HNer wrote a script to download as much data as possible from our Firebase and got a $1k bill overnight.)

    • LorenDB 2 years ago

      Stop that script, I'm watching you ruin the board!

      • sillysaurusx 2 years ago

        I haven’t opened my laptop yet. But it’s inevitable someone will write one.

    • grog454 2 years ago

      Either there's some kind of update batching or it's already happening.

    • eieio 2 years ago

      Hi! Sorry it took me a bit to get to this, I've been hacking to keep the server up for the last several hours.

      Lots of people are botting, I don't think there's anything wrong if you bot too. There's a tiny bit of client-side rate limiting and originally i had server side rate limiting too, but I got rid of that a while ago (I was cutting anything I could to speed things up).

      • montag 2 years ago

        Haha. Cutting rate limiting to speed things up

        • eieio 2 years ago

          alright yes this sounds funny now but at the time my rate-limiting implementation was very slow!

          • eieio 2 years ago

            (it's back in and faster now)

    • yard2010 2 years ago

      Oh my god that sounds like my worst nightmare.. this is why I'm scared to death with these pay as you solutions

  • RcouF1uZ4gsC 2 years ago

    If you have time, one cool suggestion for gamification would be to do a SHA-256 hash of the binary values of the checkboxes and display current hash and the lowest hash so far.

  • wordToDaBird 2 years ago

    Just an idea, but make it an internet game. Have a level 2,3,4.

    The question is under what circumstances should that game switch to the next version. The idea I had was if all 1Million boxes are unchecked, but this is the internet someone would make it their life’s mission to keep one box checked.

    IDK, I think you hinted upon something fun that we all like, it’s the Twitch vs thing, where everyone can interact and our total capacity makes the experience. This is also like the reddit/r/place which was also very fun.

    I think you have a genuinely interesting idea, how can you grow it, nurture and change it to hit the true itch of humanity?

  • webappguy 2 years ago

    I love some stats and details on this, what kind of traffic are you seeing etc. Do you have a way to determine how many boxes in your visitor checks/unchecks? 97% of your pictures from Hacker News etc. Congrats on the hit!!!! Fun playing with it!!!

  • j0hnyl 2 years ago

    How much is all this costing you?

    • eieio 2 years ago

      I am very late to this but as of now I think it has cost me about $85, although that will go up a little more quickly once I go through the bandwidth buffer I have with digital ocean (shouldn't be too bad tho)

      • j0hnyl 2 years ago

        Thanks for the reply! That's actually less than I would have guessed.

  • daynthelife 2 years ago

    Can you make the checkboxes indexed from zero?

    (Maybe I am too dogmatic)

adityaathalye 2 years ago

> "One million checkboxes that anyone can check"

> Why

> I don’t really know. The idea came up in a conversation last Friday and I felt compelled to make it.

The best kind of reason :)

  • DaoVeles 2 years ago

    So silly it had to be done.

johnchristopher 2 years ago

At first I was clicking the top but people kept unchecking my stuff. Why can't we (we ? who's that we ?) all get along toward clicking them all ?

So I figured there would be less people fighting down the window, right ? For a while I was alone. It was a boring and meaningless job but it felt peaceful.

Then I met someone who's also checking boxes, 5 seconds top, they are gone. Okay, then I kept scrolling, checking boxes. Then, I don't know why... I scroll back up, just a little bit, just 2 lines of boxes, just to... goddammit there are random unchecked boxes now and I didn't see nobody unchecking them !

There's a ghost unchecking boxes :(.

  • paulnpace 2 years ago

    Why must you destroy things? I am merely trying to restore the checkboxes to their original state in nature.

    • verdverm 2 years ago

      bureaucrats, always making us check the boxes, we must fight back

  • amscanne 2 years ago

    Such a strange reflection of ourselves that I had the exact same intent and methodology as you.

    I’m sure that we were not alone, and there were many of us appeasing the goblins in our brains yelling for order, diligently checking boxes row by row (or some other orderly pattern). If I had landed on the page with every box checked, I would have felt a sense of doneness and left it in that perfect state. It’s so hard to empathize with all these maniacs here who would destroy that beauty just to write “boobs” ;)

  • AA-BA-94-2A-56 2 years ago

    I jumped to a random spot, very far down. I decided to write HELLO in checks. I didn't get past the H before someone found me and griefed it. Must this 1 million checkbox ledger of art, devolve into madness? No matter how far I scroll there is nothing discernable. A wasteland of meaninglessness. This is just chaos.

    • stevebmark 2 years ago

      You missed the poor website design that the columns are dynamic with your browser window width, so letters are random for anyone but you

    • Shocka1 2 years ago

      I did the same, but started writing Fudge, to keep it clean. I got to FU and someone finished it with CK. It made me laugh much harder than it should have.

      • throwaway14356 2 years ago

        I didn't think it was fun or original but as i was checking boxes anyway for reasons beyond me i got annoyed someone else unchecked them.

ssalka 2 years ago

tried doing:

```

$$('input[type=checkbox]').forEach(elt => elt.click());

```

and got an alert that said "CHILL LOL". fun site

  • misiek08 2 years ago

    You need to directly send 42["toggle.... via WebSocket. Of course you need to check which are checked before if you want to clear instead of reverse.

  • beretguy 2 years ago

    Hmm… Is there a way to trick it to accept js that checks all boxes?

    • recursive 2 years ago

      Yes

      • ryandrake 2 years ago

        I trust this guy knows how, just by his username.

        • Recursing 2 years ago

          HN usernames are not that hard to get

          • em-bee 2 years ago

            i am pretty sure cursing is against the site rules, so i object ;-)

            • pbhjpbhj 2 years ago

              The fuck it is, shit, what kinda cunt makes a rule like that!?

              (With apologies should anyone be offended).

        • em-bee 2 years ago

          maybe he is campaigning for the reintroduction of cursive script in schools

    • paulddraper 2 years ago

      IDK if the problem is JS or the rate

    • misiek08 2 years ago

      The problem is you need to send 467k (current count of checked boxes) websocket messages and backend(s) are already dying for ~1 hour. Good luck with that, I only played for some time by clearing first 1000 boxes every few seconds.

      Even after you send those 467k messages they need to be sent to (I assume) few thousands browsers each, so you need to wait for 467M messages to go through :D

  • 999900000999 2 years ago

    Time to write a Playwright script.

    const { chromium } = require('playwright');

    (async () => { // Launch the browser const browser = await chromium.launch({ headless: false }); const context = await browser.newContext(); const page = await context.newPage();

        // Navigate to your page
        await page.goto('https://example.com'); // Replace with the actual URL
    
        // Click all checkboxes
        await page.$$eval('input[type=checkbox]', checkboxes => {
            checkboxes.forEach(checkbox => checkbox.click());
        });
    
        // Close the browser
        await browser.close();

    })();

    I'm proud of myself for getting the chill alert without even running a script, just frantically tapping with my fingers!

  • hk1337 2 years ago

    document.querySelectorAll("input[type=checkbox]").forEach(i => { i.checked = false; });

    seems to work for a second. no alert.

    • Scarblac 2 years ago

      Presumably that skips the code that sends the event to the backend?

binarymax 2 years ago

All the boxes must be checked. To whoever is unchecking them, please reconsider and come over to the checked side.

  • elf25 2 years ago

    No. I want the world to burn.

    • lcnPylGDnU4H9OF 2 years ago
        document.querySelectorAll('input[type="checkbox"]').forEach(function(checkbox) {
          checkbox.checked = Math.random() >= 0.5;
        });
  • localfirst 2 years ago

    Reconsidered and im with the uncheck gang fam

  • khazhoux 2 years ago

    That “both sides are the same” attitude is how we got ourselves into this situation in the first place.

    Vote Unchecked in November!

  • em-bee 2 years ago

    stay out of my boxes.

    the more you check, the less freedom you have, so i am in favor of leaving some boxes unchecked. especially the boxes that contain my private stuff.

    • airspresso 2 years ago

      treasure hunting for those boxes

      • em-bee 2 years ago

        ok, fair point. i like treasure hunting. i should keep my private boxes locked.

        and that makes me think of a new version of the game: actually hide treasures in some of the boxes. cookies, and also colored keys. keys allow you to lock (or unlock) boxes of a matching color. each key can only be used once.

  • jonahx 2 years ago

    "The road to hell is paved with good intentions."

  • drisden84 2 years ago

    I did 1k (0.1 percent) then figured I'd done my job. No scripts, just human labor/algorithm.

    Could I boost it to 2-5x time with a simple JS script? Sure. However I figured rate limits were in place/that wasn't the spirit of...whatever this is.

    Reminds me of Peter Molyneux's Curiousity: https://en.wikipedia.org/wiki/Curiosity%3A_What%27s_Inside_t...

MechanicalFish 2 years ago

// ==UserScript== // @name Check All Unchecked Checkboxes // @namespace http://tampermonkey.net/ // @version 1.0 // @description Check all unchecked checkboxes on the page // @author MechanicalFish // @match https://onemillioncheckboxes.com/* // @grant none // ==/UserScript==

(function() { 'use strict';

    function checkAllCheckboxes() {
        var checkboxes = document.querySelectorAll('input[type="checkbox"]');

        checkboxes.forEach(function(checkbox) {
            if (!checkbox.checked) {
                checkbox.checked = true;
            }
        });
    }

    const observer = new MutationObserver((mutations) => {
        checkAllCheckboxes();
    });

    observer.observe(document.body, { childList: true, subtree: true });

    checkAllCheckboxes();

})();

  • Mystery-Machine 2 years ago

    This ain't gonna work for 1,000,000 checkboxes. You could try using requestAnimationFrame or querying only non-checked checkboxes querySelectorAll('input[type="checkbox"]:not(:checked)') or not calling checkAllCheckboxes for all mutations.

    Edit: or just call querySelector('input[type="checkbox"]:not(:checked)') and do them one by one in some kinda while(true) loop

    • sillysaurusx 2 years ago

      Just write data to the underlying API. No need to interact with the browser UI at all.

  • some_random 2 years ago

    This really feels like it defeats the purpose of the site ngl

    • Vampiero 2 years ago

      Well maybe next time OP will actually do their analysis and figure out that the project is DOA before even writing one line of code.

LorenDB 2 years ago

I feel like the checkbox grid should have been locked to a certain width. I can see people attempting to draw things, but they're skewed on my screen.

  • eieio 2 years ago

    (I made the site)

    this was on purpose! I figured there have been enough collaborative internet drawing experiences (with a locked canvas that was easy to draw on) that it'd be interesting to try something a little different and see what emerged.

    That said, it might be a dumb idea! But I wanted to try it.

    • jslakro 2 years ago

      If one uncheck and check again should claim it as checked

  • striking 2 years ago

    I think having to "scan" to identify images is kind of fun! And it means the artist gets to choose the width of their own art. A lot of folks have a common screen width so there are fewer combinations than you think.

  • scrumper 2 years ago

    Oh, that's a shame. The big willy I drew is only visible at exactly the width I have it set at. I wonder what random things I'm missing. It takes a while to reflow too so it's not like it's easy to resize the window and see in realtime what other people are ding.

misiek08 2 years ago

Great stuff. Little jealous, because I'd love to work on quickly scaling such experiment seeing how many people are playing with it. Sad, but having my head too burned out by corpo bullshit and my creativity level is in the basement :(

Are there any companies hiring where you can still work and not waste 90% of time on meetings and docs?

Probably too many clicks and my mind is just spitting out here instead of just dying in pain in silence :D

  • lobsterthief 2 years ago

    Early stage startups, or starting your own company from scratch. That seems to be the case these days. I’m in the same boat, but side projects help cope!

  • sillysaurusx 2 years ago

    I think your sentiment is very common, and I’ve started writing about the underlying feeling.

    The answer is no, if the answer is no for you. It turns out that people fall into one of two buckets: either your job doesn’t take over your mind, or it does. And when it does, it becomes difficult to do anything else without neglecting the job.

    Most jobs are 90% meetings and docs. This is roughly the definition of a job. Startups are the exception, but those will definitely take over your mind.

    My creativity level has been in the basement for the last year or so. It happens. Don’t try to fight it; try to be happy. In my experience it’s the only way to restore my creativity.

currere 2 years ago

Unchecking all these boxes is a thankless task.

skilled 2 years ago

You have checked -100 boxes

Pick your side folks.

  • creshal 2 years ago

    -120, I just want to make neat patterns :(

    • __MatrixMan__ 2 years ago

      > You have checked -264 boxes

      Then got a message:

      > Chill LOL

      Good advice, thanks.

    • semi-extrinsic 2 years ago

      The meta now is people upvoting/downvoting HN comments which are in favour of checking or unchecking boxes, depending on their ahem kinks.

  • tamimio 2 years ago

    The first unchecked box and I saw -1, knew I was in the wrong side of history

  • ysofunny 2 years ago

    You have checked 720 boxes

    but it started out empty?

    this will get more interesting around half a mill checked. 427608 boxes are [√]

  • nalinidash 2 years ago

    You have checked -448 (-9) boxes

mindprism 2 years ago

Gives me concert ticket purchase anxiety

hk1337 2 years ago

You Maniacs! You blew it up! Ah, damn you! God damn you all to hell!

  • rendall 2 years ago

    When I was a kid I thought he was talking about the apes.

    Also, I have not yet had a good, clever opportunity to say "Take your stinking paws offa me you damn dirty ape" but it is awaiting its moment.

khazhoux 2 years ago

It’s considered bad UX to have a million checkboxes (or a million of any UI element) on a single page.

Consider breaking this up into 3-deep nested pages, each with 100 options.

  • jerbearito 2 years ago

    Or at least an accordion for each row of checkboxes, with the first row expanded but all others closed by default.

    • _benj 2 years ago

      The UX team recommends to make it infinite scrolling… improves user “engagement”.

  • dylan604 2 years ago

    That feature is only added when it is bought and they force ads to be used. The original site is always much more useful than after purchase

  • zrezzed 2 years ago

    Ah yes, the Backrooms of UX hell.

    With the right procedural generation and some decent flavor, that could be genuinely horrifying!

  • the8472 2 years ago

    Next you're going to complain that all the pixels of an image are too close to each other and there should be some grille patterns separating them.

baapercollege 2 years ago

The article above this on HN homepage was of Claude Sonnet 3.5. So, I used Claude Sonnet 3.5 and pasted an unchecking script. Presently I am at (-150)-ish checks.

function clickTickedCheckboxes() { // Find all checked checkboxes const checkedBoxes = document.querySelectorAll('input[type="checkbox"]:checked');

  // Iterate through each checked checkbox
  checkedBoxes.forEach((checkbox, index) => {
    // Use setTimeout to add a delay between clicks
    setTimeout(() => {
      // Click the checkbox
      checkbox.click();
      
      // If this is the last checkbox, call the function again after 2 seconds
      if (index === checkedBoxes.length - 1) {
        setTimeout(clickTickedCheckboxes, 2000);
      }
    }, index * 2000); // 2000ms (2 seconds) delay between each click
  });

}

// Start the process clickTickedCheckboxes();

BurningFrog 2 years ago

Time to get started on my One Billion Date Pickers app!

bears-n-beets 2 years ago

I wrote "HELLO WORLD" and two smiley faces and a heart and someone erased it within 5 minutes :(

amelius 2 years ago

What's next? One million sliders? One million rich-text widgets?

  • hk__2 2 years ago

    One million pixels? That you would sell for $1 each?

ScottWRobinson 2 years ago

Can't tell if someone is unchecking/checking my boxes or if it's lag and my own previous (mistake) checks coming back from the server lol

  • pbhjpbhj 2 years ago

    Perhaps the server unchecks them automatically after a few minutes!

ta8645 2 years ago

As someone who wanted to see the first page entirely checkmarked, I'd just like to say how profoundly disappointed I am, in you people.

Mineneurem 2 years ago

I'd like a total counter of extra CO2 generated overtime by this

NKosmatos 2 years ago

I can see some click wars currently ongoing :-)

  • jslakro 2 years ago

    Done vs undone

dgrin91 2 years ago

Fun and pointless, I love it.

Why do some checkboxes have colored borders?

  • croes 2 years ago

    I don't know why they exist but if you check them they are listed separately in your click stats.

    At the moment I found 4 colors

    • JdeBP 2 years ago

      You can cheat and look at the JavaScript code. (-:

bruce343434 2 years ago

This is great, anything I make is grieved instantly. I unironically love this cathartic chaos!

checkboxesftw24 2 years ago

I think I found a bug.

The site was loading really slow, and when it loaded, the number of checkboxes checked was greater than 1 million. Maybe there is a sync issue?

https://ibb.co/Cwq2kCP

bluish29 2 years ago

> I don’t really know. The idea came up in a conversation last Friday and I felt compelled to make it.

That's probably one of these reasons that cross your mind to justify buying new domains. Which is an addiction to some folks (including me)

devonsolomon 2 years ago

Me: Design something simple. My UX designer:

EA 2 years ago

Plot twist, you are competing against several dozen pigeons in Central Park.

paulddraper 2 years ago
  for (const input of document.querySelectorAll('input[type=checkbox]')) {
    if (!input.checked) {
      input.click();
      await new Promise(res => setTimeout(res, 250));
    }
  }
  • n42 2 years ago

    or the defensive maneuver

      window.addEventListener("change", function(e) {
          if (e.target instanceof HTMLInputElement && !e.target.checked) {
              e.target.click();
          }
      });
MereInterest 2 years ago

Keyboard shortcuts to scroll up/down don't work unless you click into the array of checkboxes. I think this could be fixed by adding `tabindex="0"` to the div holding the grid.

jonahx 2 years ago

An epic battle between good (uncheckers) and evil (checkers)

  • airspresso 2 years ago

    You got it all backwards. Go for a million!

    • jonahx 2 years ago

      A million, yes.

      Unchecked.

ericHosick 2 years ago

there are a lot of great usage patterns going on.

i saw checked boxes hit almost 800K and then start dropping fast.

i've seen every other checkbox get checked on the entire screen in a second. some great scripting going on and i'm sure a lot insight is being learned by watching the tech stack handle these loads.

i noticed initially log messages were showing one check box change at a time but at some point updated to batching which is great. release and optimize!

cute_boi 2 years ago

Tried and seems to work.

async function main(){ let elems = Array.from(document.querySelectorAll("#root > div > div.grid > div input")).filter(v=>!v.checked) for(let ee of elems){ await (new Promise(resolve => setTimeout(() => { resolve() }, 500))) ee.click() } }

main()

jprete 2 years ago

What is special about the red checkboxes?

  • jslakro 2 years ago

    Those with borders is people jumping

  • em-bee 2 years ago

    they are red

l7l 2 years ago

One script to rule them all ( ͡° ͜ʖ ͡°)ノ⌐■-■ var c=document.querySelectorAll('input[type="checkbox"]');function a(e){e<c.length&&(c[e].checked&&(c[e].click(),setTimeout(()=>a(e+1),500)),!c[e].checked&&a(e+1))}a(0);

  • cwilby 2 years ago

    The timeout can be about 200 before you need to chill out..

jader201 2 years ago

I want to see a time graph of the total number of checked boxes.

I would think that over time more boxes are being unchecked, but I also see a lot of people re-checking the unchecked boxes.

Also, I would think the script kiddies would be automatically unchecking most of them by now.

Yet, nearly all (over 900k) remain checked.

darepublic 2 years ago

Fun game. I tried to go way out into the sticks and was able to write some ASCII like message but then was ruined. Liked trying to draw a picture in the sand right next to the waves. One question, I assume unchecking a box will uncheck for everyone?

syx 2 years ago

this is very neat, I love this kind of experiments! could I ask you what's your hardware configuration for handling so many WebSocket connections? I'm just curious to know what's the maximum capacity of WS connections you can reach now that you posted on HN :)

ddejohn 2 years ago

I wonder what we'd see if you could only check boxes that are adjacent to already checked boxes (you'd obviously need to seed the array with some "anchors"). How long would it take for people to clear it?

Labo333 2 years ago

I'm sorry, I think I made the server crash with the following js code:

    Array.from(document.getElementsByTagName("input")).forEach(e => {e.checked = true})
3yanlis1bos 2 years ago

Great work! I hope unchecking them would not result in a ban...

__MatrixMan__ 2 years ago

It would be fun to attempt this with crdt's and libp2p (...or similar, I don't actually know those tools well I just like the idea of getting the server out of the loop).

krsna 2 years ago

New feature idea: micro-transaction to check / uncheck all.

dayjaby 2 years ago

Can I buy exclusive access to 10x10 checkboxes?

nottorp 2 years ago

Checkbox count doesn't update on Firefox.

  • ochrist 2 years ago

    Same here (on Windows). And I can't even get it to work properly in Chrome.

martin293 2 years ago

Stop scripting this yall. The site is having enough trouble as is. I thought we were more mature than reddit.

  • sandwitches 2 years ago

    Are you really gatekeeping a silly nonsense site?

    • martin293 2 years ago

      I guess I had a bit of a harsh reaction yeah, sorry about that. I came back here and found the site down. It seems to be back up now though and you're right that it doesn't really matter anyway.

      I still do think that at least some people would prefer even their silly site not being spammed with scripted requests.

      • DangitBobby 2 years ago

        I would certainly prefer it not to be scripted. As it is, I can't really enjoy it due to anything I check being undone in an instant by scripts.

  • JdeBP 2 years ago

    Who is "we"? The developer also announced this on the FediVerse, and it spread to Reddit within 2 hours of that.

a3w 2 years ago

You have checked -464 (-4-26-30-3) boxes

webprofusion 2 years ago

Lol, I love the competitive aspect, draw a little figure then someone comes along and tries to undo it.

Aeolun 2 years ago

We’re slowly losing to the uncheckers.

andrelaszlo 2 years ago

TCP over onemillioncheckboxes.com?

aitchnyu 2 years ago

Perfect site to practice all those keyboard-only navigation tools like Tridactyl.

Bloating 2 years ago

A to do list for bureaucrats! You can monetize this with a federal or f100 contract

edgarvaldes 2 years ago

Zooming out, I see patterns of empty lines. Screen resolution borders I guess.

moribvndvs 2 years ago

I am currently in a pitched battle with some other asshole on checkbox 88.

elijahbenizzy 2 years ago

heh, me guarding my area I wrote my name in heavily for a bit

bitsinthesky 2 years ago

I noticed your “jump to” function is 1 indexed >:(

  • noman-land 2 years ago

    It's not an index! It's a checkbox number.

renecito 2 years ago

this is not even realistic, there are 8 billion+ people in the world, what if I wanted to have a checkbox for each of them? Needs way more.

mirzap 2 years ago

It doesn't load for me, but it looks fun :)

s1mplicissimus 2 years ago

doesn't seem to do anything. from the looks of it, it seems like it's the reddit wall, but with checkboxes

mehulashah 2 years ago

I was excited by the colored boxes!

atleastoptimal 2 years ago

You have presented a marketplace of information. Now you have to develop a genetic conduit for information storage and transfer

49pctber 2 years ago

I absolutely love this. Brilliant!

xyst 2 years ago

lol entire rows of boxes are getting flipped. Someone already beat me to a simple bot

rossant 2 years ago

Just checked 1000 boxes. Fun.

pontifk8r 2 years ago

anyone implement the game of life on this yet, for a particular line length?

  • em-bee 2 years ago

    i drew some gliders. but they didn't survive long.

wfhBrian 2 years ago

The new bubble wrap, nice!

hansoolo 2 years ago

Go, check 'em all!

bdcp 2 years ago

Got an alert lmao, noped out

spark_chicken 2 years ago

It kept me busy for several mins. omg lmao. i met the server crashing

mb389 2 years ago

love this

wlaurance 2 years ago

Are you gonna setup Adsense? lol

Congeec 2 years ago

It only works in Chrome, not Firefox or Safari. Sad.

  • eieio 2 years ago

    huh! I tested in firefox and safari and it worked for me on both. maybe you're just running into the fact that the website is kinda dying right now?

drivers99 2 years ago

Scrolled down randomly, found a swastika, clicked back.

  • lucasmullens 2 years ago

    Honestly that was one of my first thoughts when I saw this, someone is going to draw one of those. People love trying to be offensive in something that barely allows communication. I remember seeing some MMORPG that had no chat where players would log in and just stand in the shape of a swastika.

    Makes me wonder if it's reasonable to write an algorithm to detect that.

    • DigiEggz 2 years ago

      Which MMO was that in? I'm working on my own and now I have a new worry on my plate. Short of standard moderation, an algorithm to detect it could be interesting.

      • nottorp 2 years ago

        You could search for the article about how the Lego mmo (or that's what i think it was) was shut down, then stop worrying about it. Unless you want to spend the rest of your natural life on detecting penises, swastikas and everything else. I mean, everything is offensive to someone.

        • DigiEggz 2 years ago

          I realized it would be easy enough to detect when certain lines are forming and manually shuffling the players a few spots, but your comment made me smile. Somewhere in there is the start of a biography title.

    • shriracha 2 years ago

      I built a grid-based music sequencer for the web a while ago that lets people see projects other people made in a side panel.

      I very quickly realized I needed some manual content moderation because some people immediately started sharing patterns that looked like dicks and swastikas lol

      • jojobas 2 years ago

        Paternalism at its finest.

    • JdeBP 2 years ago

      Here's an extra part of the spec: Deliberately there is no correct WWW browser window width. So you'll also have to account for the swastika writers using a whole range of window widths.

      * https://news.ycombinator.com/item?id=40801007

  • jtriangle 2 years ago

    On the old internet, there was a rule, which was, "if you let users create dicks and swastikas, they're going to create dicks and swastikas".

    • lvturner 2 years ago

      Worked in a games company in the early(ish) days of UGC - we (and I'm sure we weren't alone) dubbed it the "Swasticock problem"

  • risenshinetech 2 years ago

    People draw these things precisely because of this kind of pearl clutching overreaction