Skip to content

Instantly share code, notes, and snippets.

View MauricioRobayo's full-sized avatar

Mauricio Robayo MauricioRobayo

View GitHub Profile
@MauricioRobayo
MauricioRobayo / quote.txt
Last active May 21, 2021 01:13
Donald E. Knuth, Selected Papers on Computer Science #gogofast
The best programs are written so that computing machines can perform them quickly and so that human beings can understand them clearly. A programmer is ideally an essayist who works with traditional aesthetic and literary forms as well as mathematical concepts, to communicate the way that an algorithm works and to convince a reader that the results will be correct.
@MauricioRobayo
MauricioRobayo / quote.txt
Last active May 21, 2021 01:15
The Humble Programmer by Edsger W. Dijkstra #gogofast
The competent programmer is fully aware of the strictly limited size of his own skull; therefore he approaches the programming task in full humility, and among other things he avoids clever tricks like the plague.
function inOrder(node) {
node.left && this.inOrder(node.left);
console.log(node.val);
node.right && this.inOrder(node.right);
}
@MauricioRobayo
MauricioRobayo / fisher-yates-shuffle.js
Last active June 13, 2022 14:39
Fisher Yates shuffle algorithm
function shuffle(array) {
for (let i = array.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[array[i], array[j]] = [array[j], array[i]];
}
return array;
}
const randomArrayElement = (array) => array[Math.floor(Math.random() * array.length)];
import { useState, useEffect } from "react";
function useDebounce<T>(value: T, delay: number): T {
const [debouncedValue, setDebouncedValue] = useState<T>(value);
useEffect(() => {
const handler = setTimeout(() => {
setDebouncedValue(value);
}, delay);
return () => {
clearTimeout(handler);
@MauricioRobayo
MauricioRobayo / sleepMs.js
Last active November 26, 2021 10:30
#gogofast
const sleepMs = (delayMs) => new Promise((resolve) => setTimeout(resolve, delayMs));
@MauricioRobayo
MauricioRobayo / debounce.js
Last active May 20, 2021 15:40
#gogofast
const debounce = (func, delay) => {
let timeout = null;
return (...args) => {
clearTimeout(timeout);
timeout = setTimeout(() => {
func.apply(this, args);
}, delay);
};
};
@MauricioRobayo
MauricioRobayo / git_ps1.sh
Last active November 22, 2020 11:35
Git PS1 using git-prompt.sh
# https://github.com/git/git/blob/master/contrib/completion/git-prompt.sh
[ -s "$HOME/.git-prompt.sh" ] && . "$HOME/.git-prompt.sh"
[ -s "$HOME/.git-completion.bash" ] && . "$HOME/.git-completion.bash"
GIT_PS1_SHOWDIRTYSTATE=1
GIT_PS1_SHOWSTASHSTATE=1
GIT_PS1_SHOWUNTRACKEDFILES=1
GIT_PS1_SHOWCOLORHINTS=1
GIT_PS1_SHOWUPSTREAM="auto"
GIT_PS1_DESCRIBE_STYLE="default"
exitstatus() {
@MauricioRobayo
MauricioRobayo / microvot.json
Last active May 20, 2021 13:09
Tracks microvot state
{"max_id_str":"1382726260682489858","datetime":"2021-04-15T16:03:25.399Z","retweets":0,"likes":0}