Skip to content

Instantly share code, notes, and snippets.

View elierotenberg's full-sized avatar

Elie Rotenberg elierotenberg

View GitHub Profile
@stores({
...
})
@debouncePropsUpdate({
x: 1000,
})
@throttlePropsUpdate({
y: 1000,
})
class MyComponent extends React.Component {
@elierotenberg
elierotenberg / task.json
Created February 2, 2018 11:43
task.json file to run currently opened .m (octave/matlab) file with Ctrl+Shift+B
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "Run",
"type": "shell",
"windows": {
"command": "C:\\Octave\\Octave-4.2.1\\bin\\octave-gui.exe",
const state = {
counter: 0
};
const randomInt = (min, max) =>
Math.floor(Math.random() * (max - min + 1)) + min;
const sleep = (min, max = min) =>
new Promise(resolve => {
setTimeout(resolve, randomInt(min, max));
const state = {
counter: 0
};
const randomInt = (min, max) =>
Math.floor(Math.random() * (max - min + 1)) + min;
const sleep = (min, max = min) =>
new Promise(resolve => {
setTimeout(resolve, randomInt(min, max));
@elierotenberg
elierotenberg / async-assign.js
Created February 22, 2019 19:24
Evaluation order vs. concurrency
(async () => {
// small function that resolves after t ms
const sleep = t => new Promise(resolve => setTimeout(resolve, t));
let state = {
counter: 0,
running: true
};
const setCounter = v => {
@elierotenberg
elierotenberg / IMyProtocol.d.ts
Last active March 5, 2019 19:17
Statically typechecked serializable protocol
import { IProtocol, IRequestResponseMap, IEventMap } from "./IProtocol";
import { ISerializable } from "./ISerializable";
type RequestResponseMap = {
ping: {
RequestParams: {};
ResponseParams: {};
};
echo: {
RequestParams: ISerializable;
@elierotenberg
elierotenberg / prototype.js
Last active May 16, 2019 10:01
Get text within rectangle
(() => {
const MAX_BASENAME_LENGTH = 64;
const clicks = [];
const getNodesInRectangle = (topLeft, bottomRight) =>
Array.from(document.querySelectorAll("*").values()).filter(node => {
const { x, y, width, height } = node.getBoundingClientRect();
return (
x >= topLeft.x &&
x + width <= bottomRight.x &&
y >= topLeft.y &&
@elierotenberg
elierotenberg / DockerCompose.ts
Created August 15, 2019 07:28
Docker Compose TestUtils
interface IDockerComposeProps {
cwd?: string;
dockerComposeFile: string;
}
class DockerCompose {
private readonly props: IDockerComposeProps;
private state: "unknown" | "pending-up" | "up" | "pending-down" | "down";
public constructor(props: IDockerComposeProps) {
@elierotenberg
elierotenberg / DropDown.css
Created August 25, 2014 15:43
React + react-query + bootstrap
.DropDown-backdrop {
display: none;
position: fixed;
top: 0;
left: 0;
bottom: 0;
right: 0;
z-index: 100;
}
.DropDown.open .DropDown-backdrop{
@elierotenberg
elierotenberg / README.md
Last active January 11, 2020 09:50
Offline password generator bookmarklet

Notes:

  • password generation is purely offline; no risk of mitm
  • uses browser crypto API if available; fallback to Math.random
  1. Copy and paste the following URL in your browser address bar: