totetsu

...joined 3 years ago, and has 1889 karma

submissions / comments / favourites

        for (const u of document.querySelectorAll('.hnuser, #me')) {
            const p=4;
            const c=document.createElement('canvas');
            const x=c.getContext('2d');
                c.width=p*7, c.height=p*7;
                u.parentElement.prepend(c);
            for (let s=u.innerText, r=1, i=28+s.length; i--;) {
                // xorshift32
                r^=r<<13, r^=r>>>17, r^=r<<5;
                const X=i&3, Y=i>>2;
                if (i >= 28) {
                    // seed state
                    r+=s.charCodeAt(i-28);
                    x.fillStyle='#'+(r>>8&0xFFFFFF)
                    .toString(16).padStart(0, 6);
                } else {
                    // draw pixel
                    if (r>>>29 > X*X/3+Y/2)
                    x.fillRect(p*3+p*X, p*Y, p, p),
                    x.fillRect(p*3-p*X, p*Y, p, p);
                }
            }
        }