Skip to content

Instantly share code, notes, and snippets.

Avatar
⛩️
On the way to refactoring

othree othree

⛩️
On the way to refactoring
View GitHub Profile
View gulp-rollup-react.js
var gulp = require('gulp');
var rollup = require('rollup').rollup;
var nodeResolve = require('rollup-plugin-node-resolve');
var commonjs = require('rollup-plugin-commonjs');
var typescript = require('rollup-plugin-typescript');
var replace = require('rollup-plugin-replace');
gulp.task('default', ['bundle']);
gulp.task('bundle', function () {
View tern-def-jquery.json
{
"!name": "jQuery",
"!define": {
"offset": {
"top": "number",
"left": "number"
},
"keyvalue": {
"name": "string",
"value": "string"
View simple-search-query.pegjs
start
= orQuery?
orQuery
= left:andQuery Or right:orQuery { return {"op": "or", "left": left, "right": right}; }
/ andQuery
andQuery
= left:notQuery And right:andQuery { return {"op": "and", "left": left, "right": right}; }
/ notQuery
@othree
othree / switchCase.vim
Created May 27, 2013
Switch between different case type: camelCase -> MixedCase -> snake_case -> UPPER_CASE -> dash-case -> camelCase
View switchCase.vim
let g:switch_custom_definitions =
\ [
\ {
\ '\<\(\l\)\(\l\+\(\u\l\+\)\+\)\>': '\=toupper(submatch(1)) . submatch(2)',
\ '\<\(\u\l\+\)\(\u\l\+\)\+\>': "\\=tolower(substitute(submatch(0), '\\(\\l\\)\\(\\u\\)', '\\1_\\2', 'g'))",
\ '\<\(\l\+\)\(_\l\+\)\+\>': '\U\0',
\ '\<\(\u\+\)\(_\u\+\)\+\>': "\\=tolower(substitute(submatch(0), '_', '-', 'g'))",
\ '\<\(\l\+\)\(-\l\+\)\+\>': "\\=substitute(submatch(0), '-\\(\\l\\)', '\\u\\1', 'g')",
\ }
\ ]
View nfapply.js
const nfapply = function (fn, args) {
return new Promise(function (resolve, reject) {
var cb = function (err, data) {
if (err) { reject(err); }
resolve(data);
};
args.push(cb);
fn.apply(null, args);
View exec
const spawn = require('child_process').spawn;
// const exec = require('child_process').execSync;
const exec = function (cmd, args) {
return new Promise(function (resolve) {
const execution = spawn(cmd, args);
execution.stdout.on('data', (data) => {
var str = data.toString();
var lines = str.split(/(\r?\n)/g);
for (var i = 0; i < lines.length; i++) {
View blog.othree.net-telegram-instant-view-template
?exists: //article/div[@id="comments"]
author: "othree"
channel: "@othree"
body: //article
title: $body//h3[1]
cover: $body/section[@itemprop="articleBody"]/p[1]/a[@itemprop="image"]/img
View keybase.md

Keybase proof

I hereby claim:

  • I am othree on github.
  • I am othree (https://keybase.io/othree) on keybase.
  • I have a public key ASD8QgnNRrlnxy-XpqdiCk2-CHr3ejT_H0zWozq8zm1r7Qo

To claim this, I am signing this object:

View github link.sh
View .tigrc
# https://gist.github.com/cpjolicoeur/8864444
bind generic f !@git fetch
bind generic p !@git pull
bind generic P !@git push
bind generic { !?git push -f
bind generic r !git rebase -i master
bind generic U !@sh -c "git checkout master && git pull && git checkout - && git rebase master"
bind generic M !@git checkout master
bind generic ! !@git reset HEAD^
You can’t perform that action at this time.