Skip to content

Instantly share code, notes, and snippets.

@uinz
uinz / tail.js
Last active March 30, 2018 03:32
尾递归优化
'use strict';
function fibonacci(n) {
if (n <= 1) {
return 1
};
return fibonacci(n - 1) + fibonacci(n - 2);
}
function fibonacciTail(n, ac1 = 1, ac2 = 1) {
@uinz
uinz / note.md
Last active March 29, 2018 13:22
所谓FLIP

首先我是被这个动画效果吸引到的, 效果好棒

说用到 FLIP (First, Last, Invert, Play) 不要被英文单词吓到, 原理可能比你想象的简单

虽然它很简单, 但也是为了解决一些问题才提出来的.

这个FLIP 要做的事情呢, 就是提高动画的帧率 但是呢, 浏览器这个东西吧, 就是比较矫情, 主要有一下2个特点

  1. 浏览器 transition 对 opacity transform 的动画会采用 GPU 加速
@uinz
uinz / reconnect-ws.ts
Last active March 26, 2018 15:23
reconnect ws
import { EventEmitter } from 'events';
import * as SocksProxyAgent from 'socks-proxy-agent';
import * as WebSocket from 'ws';
export class WS extends EventEmitter {
private instance?: WebSocket;
constructor(
private url: string,
private proxy?: string
function formate(num) {
return num.toFixed(8).replace(/(.+\.\d\d+?)(0+?)$/, '$1')
}
formate(0.10000) // 0.10
formate(0.111111000) // 0.111111
git checkout . && git clean -xdf
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Ansi 0 Color</key>
<dict>
<key>Blue Component</key>
<real>0.12923833727836609</real>
<key>Color Space</key>
<string>Calibrated</string>
@uinz
uinz / p-map.ts
Last active March 16, 2018 17:37
promise map concurrency
export function promiseMap<T>(iterable: T[], mapper: (item: T, index?: number) => void, concurrency?: number) {
if (!concurrency) {
return Promise.all(iterable.map(mapper));
}
return new Promise((resolve, reject) => {
let ongoing = 0;
let completed = 0;
const result = Array(iterable.length);
const promiseGens = iterable.map((item, index) => {