Skip to content

Instantly share code, notes, and snippets.

@brothertao
brothertao / win-dev.md
Last active April 28, 2024 03:23
windows开发环境配置

开发环境

windows

  • 安装msys2/e/jamit/sdk
  • 初始话脚本如下
sed -i "s#https\?://mirror.msys2.org/#https://mirrors.tuna.tsinghua.edu.cn/msys2/#g" /etc/pacman.d/mirrorlist*
pacman -Syu --noconfirm
pacman -S rsync openssh vim git  --noconfirm
@brothertao
brothertao / supervisor1.py
Created February 8, 2023 12:15
监护进程:如果非正常退出自动,重新拉起
#!/usr/bin/env python3
import subprocess as sp
from datetime import datetime
import sys
lasttime = datetime.now()
cnt = 0
@brothertao
brothertao / .vimrc
Created June 20, 2020 03:45
简单的vim配置
#dummy vim config
set tabstop=4
set shiftwidth=4
set softtabstop=4
set expandtab
set nu
@brothertao
brothertao / quicksort.js
Created November 25, 2016 06:09
js递归实现quick sort
function quick(nums) {
if (nums.length===0) {
return [];
}
var pivot = nums.shift();
var a = nums.filter(function(num) {
return num<=pivot;
});
@brothertao
brothertao / closure.js
Last active September 15, 2015 04:59
闭包是什么?
function testClosure(paramClosure) {
var innerClosure = 100;
return function() {
paramClosure++;
innerClosure--;
}
}
@brothertao
brothertao / SortHelper.php
Last active November 25, 2016 05:28
sort by field use class
<?php
class SortHelper {
private static $field;
static function byField(&$data, $field) {
self::$field = $field;
return usort($data, array('self', 'cmp'));
}
private static function cmp($a, $b) {
return $a[self::$field] > $b[self::$field];
}
@brothertao
brothertao / sort_by_field.php
Last active September 8, 2015 11:42
php sort multidimension array by field
<?php
function msort(&$data, $field, $order='asc') {
return usort($data, function($a, $b) use ($field, $order) {
return $order==='asc' ? $a[$field] < $b[$field] : $a[$field] > $b[$field];
});
}
//example
$data = array(array('t'=>1, 'p'=>'aBc'), array('t'=>3, 'p'=>'aBb'));
$rzt = msort($data, 't', 'asc');
@brothertao
brothertao / jquery.mockhistory.js
Created January 24, 2014 03:33
当浏览器的history不好用的时候,可以试试这个。当然这种情况出现的概率很低
(function($) {
var key = 'history:mock';
var historyDb = {
cursor: null,
action: null,
urls: []
};
function saveState() {
sessionStorage.setItem(key, JSON.stringify(historyDb));
}
@brothertao
brothertao / getAttrSafe.js
Created January 3, 2014 01:33
安全获取对象属性值
function getAttrSafe(obj, keyChain, delimiter) {
delimiter = delimiter || '.';
if (!keyChain) { throw Error('keyChain should not be a empty value')};
var keys = keyChain.split(delimiter);
console.log(keys);
try {
for (var i = 0; i < keys.length; i++) {
obj = obj[keys[i]]
if (obj === undefined) { return null;};
(function(window) {
if (window.Float32Array) return;
var unsigned = 0;
var signed = 1;
var floated = 2;
function TypedArray(klass, arg, offset, length) {
var a, b, bits, i, imax;
if (Array.isArray(arg)) {