Skip to content

Instantly share code, notes, and snippets.

View shaoshing's full-sized avatar

Shaoshing Li shaoshing

  • Meta
  • Bay Area, CA
  • 20:18 (UTC -07:00)
View GitHub Profile
@shaoshing
shaoshing / examples.js
Created March 29, 2015 15:23
The Symmetry of JavaScript Functions (revised) http://raganwald.com/2015/03/12/symmetry.html
// Yellow - Decorator for method
function isFruit(name){
return ['banana', 'apple'].indexOf(name) !== -1;
}
function not(fn){
return function(){
return !fn.apply(null, arguments);
};
}
@shaoshing
shaoshing / examples.js
Created March 29, 2015 15:23
The Symmetry of JavaScript Functions (revised) http://raganwald.com/2015/03/12/symmetry.html
// Yellow - Decorator for method
function isFruit(name){
return ['banana', 'apple'].indexOf(name) !== -1;
}
function not(fn){
return function(){
return !fn.apply(null, arguments);
};
}
@shaoshing
shaoshing / examples.js
Created March 29, 2015 15:23
The Symmetry of JavaScript Functions (revised) http://raganwald.com/2015/03/12/symmetry.html
// Yellow - Decorator for method
function isFruit(name){
return ['banana', 'apple'].indexOf(name) !== -1;
}
function not(fn){
return function(){
return !fn.apply(null, arguments);
};
}
@shaoshing
shaoshing / examples.js
Created March 29, 2015 15:23
The Symmetry of JavaScript Functions (revised) http://raganwald.com/2015/03/12/symmetry.html
// Yellow - Decorator for method
function isFruit(name){
return ['banana', 'apple'].indexOf(name) !== -1;
}
function not(fn){
return function(){
return !fn.apply(null, arguments);
};
}
@shaoshing
shaoshing / examples.js
Created March 29, 2015 15:23
The Symmetry of JavaScript Functions (revised) http://raganwald.com/2015/03/12/symmetry.html
// Yellow - Decorator for method
function isFruit(name){
return ['banana', 'apple'].indexOf(name) !== -1;
}
function not(fn){
return function(){
return !fn.apply(null, arguments);
};
}
@shaoshing
shaoshing / example.jsx
Last active August 29, 2015 14:25
drag-and-drop
var Item = React.createClass({
propTypes: {
document: React.PropTypes.object.required
},
_handleDrag: function(position){
this.setState({
dragging: true,
dragPosition: position
});
var detectNewOpenDocument = function () {
return Promise.delay(50).bind(this)
.then(function () {
return documentActions._getDocumentByRef(documentLib.referenceBy.current);
})
.then(function (doc) {
var currentDocumentID = this.flux.store("application").getCurrentDocumentID();
if (doc.documentID === currentDocumentID) {
throw "Retry";
}
batchPlay: ([
{
"name": "select",
"descriptor": {
"null": {
"_ref": [
{
"_ref": "layer",
"_id": 7
},
{
"name": "transform",
"descriptor": {
"null": {
"_ref": [
{
"_ref": "layer",
"_id": 19
},
{
console.time("documentID");
_spaces.ps.descriptor.get({
"_multiGetRef": [
{
"_propertyList": [
"documentID"
]
},
{
"_range": "document",