(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
let | |
text, | |
base36 = (number) => number.toString(36), | |
randomStr = (length) => { | |
for ( | |
text = ""; | |
text.length < length; | |
text = base36(Math.random()).slice(2, length + 2) | |
); | |
return text |
#!/usr/bin/env bash | |
# Credit to keraion for huge readability improvements and parallelization. | |
set -e | |
# Creates webp / avif images for images that don't already exist and places them in the public folder | |
# This script can take a while to run | |
# Install deps | |
# sudo apt-get install -f webp ffmpeg |
(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
[ | |
// Shows the build console, or at least it use to | |
{ "keys": ["ctrl+shift+b"], "command": "show_panel", "args": {"panel": "output.exec"} }, | |
// Makes it so Ctrl + Tab or Ctrl + Shift + Tab go between tabs in the | |
// order that they are displayed and not the order that they were opened. | |
{ "keys": ["ctrl+tab"], "command": "next_view" }, | |
{ "keys": ["ctrl+shift+tab"], "command": "prev_view" } | |
] |
TODO: | |
some indication to the user when clicking the submit button without a username (...maybe more than just a red border) |
// http://paulirish.com/2011/requestanimationframe-for-smart-animating/ | |
// http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating | |
// requestAnimationFrame polyfill by Erik Möller. fixes from Paul Irish and Tino Zijdel | |
// MIT license | |
(function() { | |
var lastTime = 0; | |
var vendors = ['ms', 'moz', 'webkit', 'o']; |