Skip to content

Instantly share code, notes, and snippets.

View shaoshing's full-sized avatar

Shaoshing Li shaoshing

View GitHub Profile
@shaoshing
shaoshing / 1587677649.txt
Created April 23, 2020 21:34
Created with Copy to Gist
/**
* @param {number[][]} intervals
* @return {number[]}
*/
var findRightInterval = function(intervals) {
// collecting and sort tne ends with their index
const starts = intervals.map(([start], index) => ({ start, index })).sort((a, b) => a.start - b.start)
return intervals.map(([_, end]) => {
const startIndex = findMinimumStart(starts, end)
@shaoshing
shaoshing / test.js
Created November 6, 2018 00:05
Nodejs event loop: setTimeout v.s. setImmediate v.s. process.nextTick
const fs = require("fs");
// The execution order of the setTimeout and setImmedate callbacks are non-deterministic.
setTimeout(() => {
console.info("setTimeout in main");
}, 0);
setImmediate(() => {
console.info("setImmediate in main");
@shaoshing
shaoshing / clone.sh
Created May 24, 2018 01:19
Clone all private github repos
TOKEN="[PERSONAL-ACCESS-TOKEN]"
curl -u "$TOKEN:x-oauth-basic" -s https://api.github.com/user/repos?visibility=private |
awk '/ssh_url/ {print $2}' |
sed 's/[\"\,]//g' |
xargs -L1 git clone
var HIGH_PRI = 'is%3Aopen+is%3Aissue+label%3A%22High+Pri%22',
MEDIUM_PRI = 'is%3Aopen+is%3Aissue+label%3A%22Medium+Pri%22',
LOW_PRI = 'is%3Aopen+is%3Aissue+label%3A%22Low+Pri%22',
documentID = 'GOOGLE_DOCUMENT_ID';
function getIssueCount(query, open) {
var page = UrlFetchApp.fetch('https://github.com/adobe-photoshop/spaces-design/issues?q=' + query),
content = page.getContentText(),
console.time("documentID");
_spaces.ps.descriptor.get({
"_multiGetRef": [
{
"_propertyList": [
"documentID"
]
},
{
"_range": "document",
{
"name": "transform",
"descriptor": {
"null": {
"_ref": [
{
"_ref": "layer",
"_id": 19
},
{
batchPlay: ([
{
"name": "select",
"descriptor": {
"null": {
"_ref": [
{
"_ref": "layer",
"_id": 7
},
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";
}
@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
});
@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);
};
}