return to table of content

One Million Checkboxes

eieio
110 replies
1d1h

(developer here)

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

nomel
50 replies
1d

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
42 replies
23h20m

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.

cyanydeez
19 replies
22h22m

¯_ (ツ)_/¯

MaxikCZ
17 replies
21h42m

Here, you dropped this: \

tekknolagi
16 replies
21h24m

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

jowea
3 replies
15h53m

wait what?

rabbitofdeath
2 replies
15h2m

(╯°□°)╯︵ ┻━┻

graeber_28927
1 replies
12h45m

┳━┳ ノ( ゜-゜ノ)

yard2010
0 replies
10h41m

Φ,Φ

latentsea
0 replies
17h26m

╯‵Д′)╯彡┻━┻

Angry guy flipping a table has always been my favorite.

Vicinity9635
5 replies
20h44m

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

moritzwarhier
3 replies
20h38m

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 replies
20h27m

No plugins, just HTML, no credentials

moritzwarhier
1 replies
19h56m

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
0 replies
14h31m

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
0 replies
20h27m

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

nemo1618
2 replies
16h18m

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

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

dayjaby
1 replies
11h52m

Did this ever turn against you when coding?

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

fredoliveira
0 replies
1h52m

‾\_(ツ)_/‾

unstatusthequo
0 replies
18h43m

Posts like this is what makes HN great.

fsckboy
0 replies
20h18m

_/`(ツ)_/¯

walk like an Egyptian

crdrost
11 replies
17h53m

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.

sillysaurusx
4 replies
15h40m

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.

ultracakebakery
0 replies
7h46m

I thought the same thing

boomskats
0 replies
10h15m

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.

anon533783
0 replies
5h45m

    ┌───────────────────────┐
    │ https://asciiflow.com │
    └───────────────────────┘

pavel_lishin
3 replies
17h10m

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

crdrost
2 replies
16h13m

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.

eru
0 replies
14h0m

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

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

defrost
0 replies
16h1m

Not enough boustrophedon order comments on HN, congrats.

shaftway
0 replies
2m

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).

madcaptenor
0 replies
4h57m

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.

TZubiri
6 replies
18h10m

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
5 replies
17h52m

It's a rectangular grid. People aren't going to troll with dicks, but swastikas.

falseprofit
2 replies
17h43m

Virtually all monitors are rectangular grids

nomel
1 replies
15h45m

You could sorta kinda claim that most OLED displays are not rectangular [1], since only green is at full resolution, with blue and red being at a partial resolution, by sharing those sub pixels between "logical" pixels.

[1] https://www.oled-info.com/gs5-diamond-pixel-architecture-not...

Macha
0 replies
9h17m

Note for anyone confused, this is about AMOLED displays commonly used in phones and some OLED laptops from a few years ago.

W-OLED and QD-OLED have unconventional layouts compared to LCDs but every pixel has the complete set of sub pixels (RGB for QD-OLED, RGBW for W-OLED) so it looks more like this:

https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2F...

Just mentioning as while AMOLED phones being the majority of OLED displays seems plausible to me, it's likely not what people in this thread are picturing when they see OLED.

LorenDB
0 replies
5h1m

Shortly after posting this to HN I drew Tux at position 99999. It's long gone now, of course.

brookst
2 replies
22h25m

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

jaggederest
0 replies
22h3m

bcdofsteua perhaps.

Dwedit
0 replies
18h44m

Encrypted using EBCDIC

paulddraper
3 replies
1d

We need community consensus on checkboxes per line

brookst
2 replies
23h57m

43. 43 per line.

oo0shiny
1 replies
23h8m

42

chromoblob
0 replies
7h23m

}}~

sdenton4
0 replies
23h5m

Morse code would do the trick!

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

altairprime
0 replies
22h5m

That sounds like a feature.

CobrastanJorji
0 replies
11h54m

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.

ayhanfuat
20 replies
1d

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

eieio
16 replies
1d

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!

green-eclipse
7 replies
21h35m

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

lobsterthief
5 replies
21h3m

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
1 replies
20h13m

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
0 replies
18h53m

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

teractiveodular
0 replies
15h36m

But can I mint an NFT of my checkbox designs?

adhamsalama
0 replies
16h10m

You forgot to add NFTs.

Vicinity9635
0 replies
20h40m

retching noises

nomel
0 replies
15h40m

Actual Intelligence + Logical Language Manifestation

eieio
2 replies
23h10m

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

paulnpace
1 replies
19h9m

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
0 replies
15h39m

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

nomilk
1 replies
23h38m

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

dylan604
0 replies
22h51m

userscript to make real fire on hosted server for bonus points

ggregoire
0 replies
18h45m

react-window

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

cyanydeez
0 replies
22h20m

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.

TheCraiggers
0 replies
21h19m

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

tazu
2 replies
1d

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

eieio
0 replies
1d

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

dylan604
0 replies
1d

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

sillysaurusx
7 replies
21h14m

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.)

eieio
2 replies
14h43m

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
1 replies
11h40m

Haha. Cutting rate limiting to speed things up

eieio
0 replies
3h47m

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

LorenDB
1 replies
21h11m

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

sillysaurusx
0 replies
21h10m

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

yard2010
0 replies
10h46m

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

grog454
0 replies
16h50m

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

JdeBP
5 replies
22h10m

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 replies
21h17m

Out of curiosity, what’s the Reddit thread?

JdeBP
0 replies
8h25m

Ironically, I was looking to see whether Hacker News and anyone else had picked it up, from the FediVerse post. Bing found the Reddit thread from "One Million Checkboxes" as the search query. It's the second search result as I type this.

Other interesting Bing search results are Arnold Trakhtenberg's re-creation of the WWW site code using Convex, at https://github.com/atrakh/one-million-checkboxes .

assimpleaspossi
0 replies
11h14m

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

adaptbrian
0 replies
20h8m

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.

thomasfromcdnjs
4 replies
1d1h

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

eieio
2 replies
1d1h

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

razster
1 replies
1d

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

brookst
0 replies
23h56m

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

hipadev23
0 replies
21h42m

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

eieio
2 replies
23h20m

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

rldjbpin
0 replies
10h6m

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

CodeWriter23
0 replies
22h37m

I think you just hit the 640K problem.

stavros
0 replies
21h46m

The HDD sound doesn't correspond to the defragging :(

sneak
1 replies
1d

just ban all those jerks who keep unchecking

the_arun
0 replies
1d

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

dtonon
1 replies
23h56m

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

nomilk
0 replies
23h40m

The devtools console is chaos

wordToDaBird
0 replies
16h48m

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
0 replies
16h40m

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
0 replies
14h31m

How much is all this costing you?

is_true
0 replies
15h49m

Congrats!!

giancarlostoro
0 replies
5h19m

What's the backend look like for this? :)

daynthelife
0 replies
3h29m

Can you make the checkboxes indexed from zero?

(Maybe I am too dogmatic)

bobmcnamara
0 replies
17h58m

One whole megabit!

akarve
0 replies
21h59m

more popular than i expected

we know what's important here on hn

RcouF1uZ4gsC
0 replies
18h33m

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.

PROgrammerTHREE
0 replies
22h16m

white screen of death for me :(

ssalka
14 replies
1d

tried doing:

```

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

```

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

beretguy
9 replies
1d

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

recursive
6 replies
1d

Yes

ryandrake
5 replies
1d

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

Recursing
3 replies
23h51m

HN usernames are not that hard to get

em-bee
2 replies
20h52m

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

pbhjpbhj
1 replies
9h47m

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

(With apologies should anyone be offended).

em-bee
0 replies
20h54m

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

paulddraper
0 replies
1d

IDK if the problem is JS or the rate

misiek08
0 replies
23h38m

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

hk1337
1 replies
23h18m

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

seems to work for a second. no alert.

Scarblac
0 replies
22h41m

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

misiek08
0 replies
1d

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.

999900000999
0 replies
23h40m

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!

binarymax
12 replies
1d

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

em-bee
2 replies
20h49m

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
1 replies
20h47m

treasure hunting for those boxes

em-bee
0 replies
20h35m

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.

paulddraper
1 replies
1d

Plot twist: half of viewers see it inverted

mastersummoner
0 replies
19h34m

Oh you absolute madman

elf25
1 replies
1d

No. I want the world to burn.

lcnPylGDnU4H9OF
0 replies
22h48m

  document.querySelectorAll('input[type="checkbox"]').forEach(function(checkbox) {
    checkbox.checked = Math.random() >= 0.5;
  });

sumtechguy
0 replies
23h38m

only if there are cookies

localfirst
0 replies
23h50m

Reconsidered and im with the uncheck gang fam

khazhoux
0 replies
20h49m

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

Vote Unchecked in November!

jonahx
0 replies
20h48m

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

drisden84
0 replies
14h36m

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...

drivers99
11 replies
1d1h

Scrolled down randomly, found a swastika, clicked back.

lucasmullens
7 replies
1d

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
3 replies
1d

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
1 replies
23h5m

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
0 replies
15h0m

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.

lucasmullens
0 replies
23h56m

Took me a while to remember the name, it was Habbo. The swastikas are mentioned on the Wikipedia article: https://en.wikipedia.org/wiki/Habbo

shriracha
1 replies
22h50m

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
0 replies
17h0m

Paternalism at its finest.

JdeBP
0 replies
22h20m

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
1 replies
22h8m

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
0 replies
16h41m

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
0 replies
14h49m

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

MechanicalFish
11 replies
23h8m

// ==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();
})();

some_random
8 replies
20h28m

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

Vampiero
7 replies
18h17m

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.

sillysaurusx
6 replies
17h42m

The project was wildly successful. I didn't know who eieio was, and now I do. I suspect that's true for lots of people now.

furyofantares
4 replies
15h43m

Oh that's Celine Dion minus the consonants

sillysaurusx
3 replies
13h32m

How on earth did you come up with this? Or did you hear it somewhere?

If it’s the former, you need to do improv. You have the gift.

furyofantares
0 replies
4h17m

Yep, that's the form I've seen it in before.

baapercollege
0 replies
11h10m

He is celine dion

em-bee
0 replies
17h12m

i thought it was old mac donald

Mystery-Machine
1 replies
21h47m

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
0 replies
21h12m

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

johnchristopher
7 replies
1d

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 replies
21h48m

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

vizzier
0 replies
19h5m

Agreed.

verdverm
0 replies
16h3m

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

AA-BA-94-2A-56
2 replies
14h39m

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
1 replies
13h32m

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

_kidlike
0 replies
13h5m

...or genius?

amscanne
0 replies
16h0m

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” ;)

skilled
6 replies
1d1h

You have checked -100 boxes

Pick your side folks.

creshal
2 replies
1d

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

semi-extrinsic
0 replies
1d

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

__MatrixMan__
0 replies
1d

You have checked -264 boxes

Then got a message:

Chill LOL

Good advice, thanks.

ysofunny
0 replies
23h51m

You have checked 720 boxes

but it started out empty?

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

tamimio
0 replies
1d

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

nalinidash
0 replies
8h6m

You have checked -448 (-9) boxes

khazhoux
5 replies
23h23m

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
1 replies
23h16m

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

_benj
0 replies
22h55m

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

zrezzed
0 replies
22h9m

Ah yes, the Backrooms of UX hell.

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

the8472
0 replies
22h7m

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.

dylan604
0 replies
22h53m

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

martin293
4 replies
22h59m

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

sandwitches
2 replies
22h31m

Are you really gatekeeping a silly nonsense site?

martin293
1 replies
22h6m

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
0 replies
13h29m

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
0 replies
22h26m

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

amelius
3 replies
22h40m

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

hk__2
2 replies
22h16m

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

mannycalavera42
1 replies
21h13m

boomer! ;)

lobsterthief
0 replies
21h0m

Nah, that was solidly Millennial and Gen X territory

LorenDB
3 replies
1d3h

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
1 replies
1d3h

(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
0 replies
1d1h

If one uncheck and check again should claim it as checked

striking
0 replies
1d1h

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.

misiek08
2 replies
21h10m

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

sillysaurusx
0 replies
21h5m

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.

lobsterthief
0 replies
21h6m

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!

jprete
2 replies
1d3h

What is special about the red checkboxes?

jslakro
0 replies
1d1h

Those with borders is people jumping

em-bee
0 replies
20h44m

they are red

jonahx
2 replies
20h50m

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

airspresso
1 replies
20h48m

You got it all backwards. Go for a million!

jonahx
0 replies
20h46m

A million, yes.

Unchecked.

dgrin91
2 replies
23h15m

Fun and pointless, I love it.

Why do some checkboxes have colored borders?

croes
1 replies
22h56m

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
0 replies
22h25m

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

davidguetta
2 replies
22h33m

Doesnt seem to work cureently (mobile btw)

paulryanrogers
1 replies
22h18m

Not Firefox anyway

bornfreddy
0 replies
21h47m

It does for me, ff mobile.

pontifk8r
1 replies
18h19m

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

em-bee
0 replies
17h9m

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

paulddraper
1 replies
23h59m

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

n42
0 replies
23h38m

or the defensive maneuver

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

nottorp
1 replies
1d

Checkbox count doesn't update on Firefox.

ochrist
0 replies
22h14m

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

l7l
1 replies
2h28m

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
0 replies
2h22m

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

johnmaguire
1 replies
1d

Fun! But I kind of wish it made a bubble wrap popping noise.

hk1337
1 replies
22h38m

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

rendall
0 replies
22h22m

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.

bitsinthesky
1 replies
20h28m

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

noman-land
0 replies
19h19m

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

adityaathalye
1 replies
1d2h

"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
0 replies
12h55m

So silly it had to be done.

ScottWRobinson
1 replies
23h58m

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
0 replies
9h43m

Perhaps the server unchecks them automatically after a few minutes!

NKosmatos
1 replies
1d3h

I can see some click wars currently ongoing :-)

jslakro
0 replies
1d1h

Done vs undone

Congeec
1 replies
1d

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

eieio
0 replies
1d

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?

xyst
0 replies
16h47m

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

wlaurance
0 replies
1d1h

Are you gonna setup Adsense? lol

wfhBrian
0 replies
19h49m

The new bubble wrap, nice!

webprofusion
0 replies
13h36m

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

throwaway0394
0 replies
8h53m

1000095 boxes are checked :/

ta8645
0 replies
10h9m

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.

syx
0 replies
1d2h

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 :)

spark_chicken
0 replies
4h24m

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

s1mplicissimus
0 replies
22h16m

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

rossant
0 replies
1d

Just checked 1000 boxes. Fun.

renecito
0 replies
22h51m

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.

paulnpace
0 replies
21h33m

The bots are winning.

moribvndvs
0 replies
14h0m

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

mirzap
0 replies
10h9m

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

mindprism
0 replies
1d1h

Gives me concert ticket purchase anxiety

mehulashah
0 replies
14h44m

I was excited by the colored boxes!

mb389
0 replies
5h7m

love this

lawlessone
0 replies
22h29m

"Select all"

lamuswawir
0 replies
4h34m

CHILL LOL.

krsna
0 replies
19h7m

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

jader201
0 replies
17h28m

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.

hansoolo
0 replies
23h44m

Go, check 'em all!

ericHosick
0 replies
14h32m

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!

elijahbenizzy
0 replies
1d1h

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

edgarvaldes
0 replies
1d

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

devonsolomon
0 replies
21h49m

Me: Design something simple. My UX designer:

ddejohn
0 replies
23h11m

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?

dayjaby
0 replies
11h45m

Can I buy exclusive access to 10x10 checkboxes?

darepublic
0 replies
3h12m

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?

cute_boi
0 replies
1d

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()

currere
0 replies
23h45m

Unchecking all these boxes is a thankless task.

checkboxesftw24
0 replies
7h49m

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

bruce343434
0 replies
1d

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

bluish29
0 replies
1d

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)

bears-n-beets
0 replies
20h3m

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

bdcp
0 replies
21h49m

Got an alert lmao, noped out

baapercollege
0 replies
11h11m

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();

atleastoptimal
0 replies
19h40m

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

andrelaszlo
0 replies
19h4m

TCP over onemillioncheckboxes.com?

aitchnyu
0 replies
12h11m

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

a3w
0 replies
21h42m

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

__MatrixMan__
0 replies
1d

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).

MereInterest
0 replies
1d

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.

Labo333
0 replies
8h41m

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})

EA
0 replies
21h38m

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

BurningFrog
0 replies
16h29m

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

Bloating
0 replies
21h36m

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

Aeolun
0 replies
18h43m

We’re slowly losing to the uncheckers.

49pctber
0 replies
17h58m

I absolutely love this. Brilliant!

3yanlis1bos
0 replies
8h26m

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