(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']; |