I hereby claim:
- I am mattmcmanus on github.
- I am mattmcmanus (https://keybase.io/mattmcmanus) on keybase.
- I have a public key whose fingerprint is 2707 C363 EB45 5469 CA10 E39C E9AF B3F4 EDB8 F457
To claim this, I am signing this object:
I hereby claim:
To claim this, I am signing this object:
$ curl -vvL 'https://d29vzk4ow07wi7.cloudfront.net/02b7cd7d01d9134dadebb3ce50ce3906ee572f4b?response-content-disposition=attachment%3Bfilename%3D%22vagrant_1.5.2.dmg%22&Policy=eyJTdGF0ZW1lbnQiOiBbeyJSZXNvdXJjZSI6Imh0dHA6Ly9kMjl2ems0b3cwN3dpNy5jbG91ZGZyb250Lm5ldC8wMmI3Y2Q3ZDAxZDkxMzRkYWRlYmIzY2U1MGNlMzkwNmVlNTcyZjRiP3Jlc3BvbnNlLWNvbnRlbnQtZGlzcG9zaXRpb249YXR0YWNobWVudCUzQmZpbGVuYW1lJTNEJTIydmFncmFudF8xLjUuMi5kbWclMjIiLCJDb25kaXRpb24iOnsiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjEzOTY5NjY2OTZ9LCJJcEFkZHJlc3MiOnsiQVdTOlNvdXJjZUlwIjoiMC4wLjAuMC8wIn19fV19&Signature=STRkslDAMudEMPwSgaQom9ziOMy1hoUprd9yzRyunktqSpZd8rTBRTbdyswGFprZs8~gUibAB~kX-30HPGATTeuXmvRP5ShG0j8xmpg1seVnAd07lo8VEcQSljrgTa1lEXsmqyAXv4WuDHtsLmMBol6CQ47w5cT8SsHPncY2u8vTHQcZK~XMkiW0hdGxLMjZkv1zb5ipx4REO8Sh5N8TJjjjzynqO-bPPNq5zE6wC9dmbzR0chBxqZ4JWREEMhoS4O5lokDt~VIUbo0Iz1tx54zu9vPcekDvx5AnMQxvDmF-UhprgFIxO5Z9WAQdrxq4U4Qxk5s6UkICHUd-K1DxCw__&Key-Pair-Id=APKAIQIOJCQ5764M5VTQ' | |
* Adding handle: conn: 0x7fdbe8801c00 | |
* Adding handle: send: 0 | |
* Adding handle |
These are some things I've found helpful after doing React for a couple months. It's possible these practices are short sighted and will cause other problems, I just haven't hit those bumps in the road yet.
This list started after reading this phenomincal article on React Tips and Best Practicies.
Think of propTypes
as a love letter to whatever developer will work on a component after you. Your components should be as declarative as possible. React's error messaging is so clear and helpful and this will make things so much easier.
import Ember from 'ember'; | |
const { | |
get, | |
computed | |
} = Ember; | |
import InViewportMixin from 'ember-in-viewport'; | |
export default Ember.Component.extend( | |
InViewportMixin, |
# Your init script | |
# | |
# Atom will evaluate this file each time a new window is opened. It is run | |
# after packages are loaded/activated and after the previous editor state | |
# has been restored. | |
# | |
# An example hack to make opened Markdown files always be soft wrapped: | |
# | |
# path = require 'path' | |
# |
import { helper } from '@ember/component/helper'; | |
import { isDestroyed } from '@ember/destroyable'; | |
import { buildWaiter } from '@ember/test-waiters'; | |
const testWaiter = buildWaiter('debounce-helper'); | |
// WeakMap<Function, { timeoutId, asyncToken }>(); | |
const TIMERS = new WeakMap(); | |
function debounceHelper([context, action], { timeout }) { | |
return function(...args) { |