Skip to content

Instantly share code, notes, and snippets.

View unbug's full-sized avatar
🐝
Keep calm.

Unbug Lee unbug

🐝
Keep calm.
View GitHub Profile
@unbug
unbug / app.js
Last active September 8, 2015 03:09 — forked from zulfajuniadi/app.js
Backbone VirtualDOM using fiduswriter/diffDOM
/*
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>VirtualDOM Example</title>
</head>
<body>
<div id="output"></div>
@unbug
unbug / what-forces-layout.md
Last active September 20, 2015 05:06 — forked from paulirish/what-forces-layout.md
What forces layout/reflow. The comprehensive list.

What forces layout / reflow

All of the below properties or methods, when requested/called in JavaScript, will trigger the browser to synchronously calculate the style and layout. This is also called reflow or layout thrashing, and is common performance bottleneck.

Element

Box metrics
  • elem.offsetLeft, elem.offsetTop, elem.offsetWidth, elem.offsetHeight, elem.offsetParent
  • elem.clientLeft, elem.clientTop, elem.clientWidth, elem.clientHeight
  • elem.getClientRects(), elem.getBoundingClientRect()
(([-_\w\d]*)?soup([-_\w\d]*)?)
@unbug
unbug / gist:e007ac69189d43a65d0f
Created December 28, 2015 06:46
cool loading....
https://365webresources.com/10-best-pure-css-loading-spinners-front-end-developers/
@unbug
unbug / Sync gh-pages + master branches
Created March 24, 2016 11:12 — forked from mandiwise/Sync gh-pages + master branches
Keep gh-pages up to date with a master branch
// Reference: http://lea.verou.me/2011/10/easily-keep-gh-pages-in-sync-with-master/
$ git add .
$ git status // to see what changes are going to be commited
$ git commit -m 'Some descriptive commit message'
$ git push origin master
$ git checkout gh-pages // go to the gh-pages branch
$ git rebase master // bring gh-pages up to date with master
$ git push origin gh-pages // commit the changes
@unbug
unbug / BST
Last active May 19, 2016 09:14
//https://www.cs.usfca.edu/~galles/visualization/BST.html
function Node(data, left, right){
this.data = data;
this.left = left;
this.right = right;
this.show = show;
}
function show(){
return this.data;
}
function quicksort(arr){
//base case
if(arr.length<=1){ return arr;}
//now find swap position and value
var swapPos = Math.floor((arr.length-1)/2),
swapVal = arr[swapPos],
less = [], more = [];
arr = arr.slice(0, swapPos).concat(arr.slice(swapPos+1));
for(var i=0;i<arr.length;i++){
function bubbleSort(arr){
if(arguments.lenght === 0 || !Array.isArray(arr)){
throw new Error();
}
var hasHadChange;
for(var i=0;i<arr.length-1;i++){
hasHadChange = false;
for(var x=0;x<arr.length-1;x++){
if(arr[x]>arr[x+1]){
hasHadChange = true;
function identity(x){
return x;
}
function add(a, b){
return a+b;
}
function mul(a, b){
return a*b;
@unbug
unbug / Middleware.js
Last active January 6, 2024 04:17
Powerful Javascript Middleware Pattern Implementation, apply middleweares to any object. https://unbug.github.io/js-middleware/
'use strict';
/* eslint-disable consistent-this */
let middlewareManagerHash = [];
/**
* Composes single-argument functions from right to left. The rightmost
* function can take multiple arguments as it provides the signature for
* the resulting composite function.
*