Skip to content

Instantly share code, notes, and snippets.

View clouedoc's full-sized avatar
🌴
Doing absolutely nothing

Camille Louédoc-Eyriès clouedoc

🌴
Doing absolutely nothing
View GitHub Profile
@clouedoc
clouedoc / .eslintrc.js
Created March 21, 2022 16:48
My .eslintrc
// This is a workaround for https://github.com/eslint/eslint/issues/3458
require('@rushstack/eslint-config/patch/modern-module-resolution');
var isDev = process.env.NODE_ENV === "development";
module.exports = {
root: true,
extends: [
"@rushstack/eslint-config/profile/node",
"@rushstack/eslint-config/mixins/friendly-locals",
@clouedoc
clouedoc / akamai_canvases.md
Last active March 7, 2022 18:22
Akamai uses two canvases. Here's my interpretation of it.

Did anyone else notice that Akamai generated two canvases? One of them is large, and the other is pretty small.

The big canvas they use looks like this: https://arh.antoinevastel.com/assets/media/sneakers/anon_canvas1_footlocker.png. The small (16x16) canvas they use looks like this: https://arh.antoinevastel.com/assets/media/sneakers/anon_canvas2_footlocker.png.

My intuition is that the checksum of the small canvas will be the same on every GPU and OS. They use the first canvas for fingerprinting and the second one to check that the user did not apply noise to their canvases. (anti-canvas-fingerprinting extension will indiscriminately apply noise to all canvases)

This intuition coincides with a 2014 research paper I recently skimmed through where you can read:

@clouedoc
clouedoc / regex.re
Created January 3, 2022 15:12
Regexp to get the first line of text
(?m)(?:(.+?)\n(?:(?:.+?)?\n)+.+?$)|(.+?$)
# Replace with "$1$2"
@clouedoc
clouedoc / crunchbase_unblur.js
Created December 26, 2021 15:05
Crunchbase unblur
document.querySelectorAll('.blurred-row').forEach(row => row.setAttribute('class', 'ng-star-inserted'))
@clouedoc
clouedoc / mark all github files as viewed.md
Created December 10, 2021 18:34
Mark all github files as viewed

Mark all github files as viewed

Add this to your bookmarks:

javascript:(() => document.querySelectorAll('.js-reviewed-checkbox:not([checked])').forEach(box => box.click()))()

Then click the created bookmark to execute it!

@clouedoc
clouedoc / Chrome-SIGILL.md
Created November 26, 2021 18:44
If you get SIGILL with a Dockerized Chrome instance, here is the solution.

Chrome SIGILL

Add these arguments:

  '--no-sandbox',
  '--enable-logging',
  '--v1=1',
  '--disable-dev-shm-usage',
 '--no-first-run',
@clouedoc
clouedoc / Dockerfile
Created October 21, 2021 10:13
Add 3proxy to an alpine Dockerfile
FROM alpine
ENV THREEPROXY_VERSION=0.9.4
# Install 3proxy to /usr/local/bin
RUN apk add alpine-sdk && \
export DIR=$(mktemp -d) && cd $DIR && \
wget https://github.com/3proxy/3proxy/archive/refs/tags/${THREEPROXY_VERSION}.tar.gz && tar -xf ${THREEPROXY_VERSION}.tar.gz && mv 3proxy* 3proxy && \
cd 3proxy && \
make -f Makefile.Linux || true && \
@clouedoc
clouedoc / 3proxy_install.sh
Last active October 21, 2021 09:48
3Proxy installation instructions for MacOS
cd /tmp
git clone https://github.com/3proxy/3proxy.git
cd 3proxy
ln -s Makefile.unix Makefile
make || true # ignore final installation step errors
sudo mv ./bin/3proxy /usr/local/bin
echo "3proxy installed!"
cd ../
sudo rm -rf ./3proxy
echo "cleanup done"
@clouedoc
clouedoc / migration.md
Last active June 9, 2021 05:30
Migrating from VSCode Insiders to VSCode Stable

Migrating from VSCode Insiders to VSCode Stable

The problem with VSCode Insiders is that it's unstable, and you have to fix issues every few days to have it still running properly.

This guide will help you with replicating your VSCode Insiders profile into VSCode Stable. There's no automated way of doing it.

1. Remove all extensions from VSCode Stable

Do it manually.

@clouedoc
clouedoc / multilogin_puppeteer.md
Created April 21, 2021 22:01
Unofficial documentation of Multilogin + puppeteer

clouedoc's Multilogin documentation

net::ERR_INVALID_AUTH_CREDENTIALS

When using a proxy with authentication, this error does come up.

The solution is to:

  1. add delay
  2. make the page go to a dummy URL first (httpbin.org/ip) and handle the ERR_INVALID_AUTH_CREDENTIALS error by throwing a warning