Douglas Crockford
Frontend Masters - December 2015
- Programming Style and Your Brain
- And Then There Was JavaScript
function slackpost(channel, name, text) { | |
HTTP.post("https://q42.slack.com/services/hooks/incoming-webhook", {"params": | |
{"token": "TODO: fill in token!", | |
"payload": JSON.stringify({ | |
"channel": "#" + channel, | |
"username": name, | |
"text": text, | |
"icon_emoji": (name.indexOf("bot") > -1 ? ":ghost:" : "") | |
}) | |
}} |
:root { | |
--ease-in-quad: cubic-bezier(.55, .085, .68, .53); | |
--ease-in-cubic: cubic-bezier(.550, .055, .675, .19); | |
--ease-in-quart: cubic-bezier(.895, .03, .685, .22); | |
--ease-in-quint: cubic-bezier(.755, .05, .855, .06); | |
--ease-in-expo: cubic-bezier(.95, .05, .795, .035); | |
--ease-in-circ: cubic-bezier(.6, .04, .98, .335); | |
--ease-out-quad: cubic-bezier(.25, .46, .45, .94); | |
--ease-out-cubic: cubic-bezier(.215, .61, .355, 1); |
// Explanation: | |
// This is a migration script for your users to be compatible with the Apollo version of Nova | |
// We do not support anymore users properties on the `telescope` namespace. They will be duplicated onto __setting: | |
// Example: `user.telescope.karma` becomes `user.__karma` | |
// Note: we do not remove the `user.telescope` object, you'll still be able to go back to your previous full Meteor build if you feel that Apollo doesn't fit your needs | |
// How to use: | |
// Create a new /server directory at the root of your project then paste the script below in /server/migration.js | |
import Users from 'meteor/nova:users'; |
{ Machine } = require 'stateMachine' | |
{ TextLayer } = require 'TextLayer' # https://github.com/awt2542/textLayer-for-Framer | |
InputModule = require 'input' # https://github.com/ajimix/Input-Framer | |
Framer.Defaults.Layer = | |
backgroundColor: null | |
color: 'black' | |
p = |
This is a CFP for ReactiveConf 2017's open call for Lightning talks. If you'd like to see this talk become a reality, please ⭐ star this gist. #ReactiveConf
"use strict"; | |
// animation utils | |
// =============== | |
const trackTime = id => { | |
const [entry] = performance.getEntriesByName(id); | |
if (!entry) { | |
performance.mark(id); |