Skip to content

Instantly share code, notes, and snippets.

@joanrieu
joanrieu / node-with-max-memory.sh
Created March 23, 2023 01:45
Node.js with 75% memory limit (usable as docker entrypoint)
#!/bin/sh -ex
MEMORY_LIMIT=$(lsmem -o SIZE -b | awk '{s+=$1} END {print s/1024/1024}')
MAX_OLD_SPACE_SIZE=$(expr $MEMORY_LIMIT \* 3 / 4)
exec node --max-old-space-size=$MAX_OLD_SPACE_SIZE "$@"
@joanrieu
joanrieu / gallery.html
Last active September 11, 2019 05:03
Pure HTML image gallery
@joanrieu
joanrieu / Loader.jsx
Created March 16, 2019 16:57
Loading indicator (jumping dots)
import React from "react";
import styled, { keyframes } from "styled-components";
const Jump = keyframes`
0% {
transform: translateY(0px);
}
20% {
transform: translateY(-16px);
}
@joanrieu
joanrieu / ObservableSet.ts
Created August 14, 2018 06:21
Observable Set class for MobX 5
import { observable } from "mobx";
export default class ObservableSet<T> implements Set<T> {
[Symbol.toStringTag]: "Set";
[Symbol.iterator](): IterableIterator<T> {
return this.values()
}
entries(): IterableIterator<[T, T]> {
@joanrieu
joanrieu / calc.test.js
Created October 19, 2017 21:47
RegExp-based calculator
function calc(acc, input) {
if (input.match(/^[-+*\/=]$/)) {
const split = acc.match(/^(-?\d+(?:\.\d*)?)(?:[-+*\/=]*)([-+*\/=])(\d+(?:\.\d*)?)$/)
if (!split)
return acc + input
const [_, x, op, y] = split
const ops = {
'+': (x, y) => x + y,
'-': (x, y) => x - y,
'*': (x, y) => x * y,
@joanrieu
joanrieu / DDD.md
Created May 12, 2017 11:16
Notes d'une formation DDD donnée par Cyril Martraire
title author date
DDD
Cyrille Martraire
10 et 11 Avril 2017

Introduction

DDD se situe du côté de XP. Bien comprendre le métier : transformer le savoir en code.

@joanrieu
joanrieu / Cube.java
Created October 3, 2016 16:11
Cube puzzle solver
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.stream.Collectors;
import org.jenetics.Genotype;
import org.jenetics.IntegerChromosome;
import org.jenetics.IntegerGene;
import org.jenetics.engine.Engine;
@joanrieu
joanrieu / android-sdk-installer.sh
Last active August 4, 2016 09:15
Android SDK installer
#!/bin/bash -ex
##############################
# Android SDK installation #
##############################
# Detect OS
case $OSTYPE in
linux*) PLATFORM=linux ;;
darwin*) PLATFORM=macosx ;;
@joanrieu
joanrieu / wacom.sh
Created February 15, 2014 03:38
Wacom tablet settings for xinput
#!/bin/bash
function list {
xinput list --name-only | grep Wacom
}
function create {
xinput create-master 'Wacom'
list | xargs -i{} xinput reattach {} 'Wacom pointer'
list | grep Pen | xargs -i{} xinput map-to-output {} 'DVI-0'