Skip to content

Instantly share code, notes, and snippets.

View fengmk2's full-sized avatar
:atom:
Coding at antgroup.com

fengmk2 fengmk2

:atom:
Coding at antgroup.com
View GitHub Profile
@fengmk2
fengmk2 / preinstall-canvas.sh
Created September 12, 2012 06:12
package installed before node-canvas, must be sudo
#!/bin/sh
####### package installed before node-canvas, must be sudo
PKG_CONFIG="http://pkgconfig.freedesktop.org/releases/pkg-config-0.23.tar.gz"
PIXMAN="http://www.cairographics.org/releases/pixman-0.22.0.tar.gz"
CAIRO="http://cairographics.org/releases/cairo-1.12.0.tar.gz"
LIBPNG="http://files.directadmin.com/services/custombuild/libpng-1.2.40.tar.gz"
PREFIX=${1-/usr}
@fengmk2
fengmk2 / httpserver-attack.js
Created November 10, 2012 22:44
httpserver-attack.js
/**
* node <= 0.6.18 attack: SOCKET Error: Parse Error
*/
var net = require('net');
var data = 'GET /\xC4\xD0\xD7\xB0 HTTP/1.1\r\n\
User-Agent: curl/7.24.0 (x86_64-apple-darwin12.0) libcurl/7.24.0 OpenSSL/0.9.8r zlib/1.2.5\r\n\
Host: 127.0.0.1\r\n\r\n';
var client = net.connect({
@fengmk2
fengmk2 / master.js
Created November 11, 2012 02:26
http parse error
var cluster = require('pm');
var master = cluster.createMaster({
pidfile : './aa'
})
master.register(
'test',
'./worker.js',
{
children:1,
listen:[55555],
@fengmk2
fengmk2 / timer-benchmark.js
Created December 20, 2012 14:32
Date.now VS microtime.now()
var Benchmark = require('benchmark');
var microtime = require('microtime');
var suite = new Benchmark.Suite();
suite
.add('Date.now()', function () {
var diff1 = Date.now() - Date.now();
})
.add('microtime.now()', function () {
var domain = require('domain');
var http = require('http');
var domainMiddleware = function (req, res, next, errorHandle) {
var d = domain.create();
d.once('error', errorHandle);
d.run(next);
};
var app = http.createServer(function (req, res) {
@fengmk2
fengmk2 / svn-to-git.md
Last active March 23, 2018 10:45
从 svn 迁移到 gitlab svn to git

从 svn 迁移到 gitlab

找出所有提交者

$ svn log --xml | grep author | sort -u | perl -pe 's/.>(.?)<./$1 = /'

手动设置对应关系 users.txt

@fengmk2
fengmk2 / loop.md
Created April 27, 2013 09:18
遍历map之前先重置
Connection.prototype._cleanupCalls = function (err) {
  var count = 0;
  var calls = this.calls;
  this.calls = {}; // should reset calls before traverse it.
  for (var id in calls) {
    var call = calls[id];
    call.setException(err);
    count++;
 }
2
一排的第二个星期,凯瑟琳已晚转动在她的每周客户通话tally表。
2
今天我观察到汤姆的资深团队
成员,批评巴里,他一直训练一个新的团队成员。汤姆这样做在前面的球队,巴里明显不高兴。后来,另一位团队成员告诉我说,他在另外一个场合,听到TELL汤姆·巴里,
“我不能相信你仍然无法做到这一点。”
2
我走进崖的工作区,发现他玩电脑游戏。也许这就是为什么他错过了一些他的最后期限上周。
3
虽然你跟她说过话,凯瑟琳两次后期继续转在她的每周客户通话tally表。
var __stack = { lineno: 1, input: "<%- this.name %>", filename: "options.scope.html" };
function rethrow(err, str, filename, lineno){
var lines = str.split('\n')
, start = Math.max(lineno - 3, 0)
, end = Math.min(lines.length, lineno + 3);
// Error context
var context = lines.slice(start, end).map(function(line, i){
var curr = i + start + 1;
return (curr == lineno ? ' >> ' : ' ')
@fengmk2
fengmk2 / .bash_profile
Created July 4, 2013 08:33
git master
##### git master #####
# https://gist.github.com/120804
# COLORS
LIGHT_GRAY="\[\033[0;37m\]"; BLUE="\[\033[1;36m\]"; RED="\[\033[0;31m\]"; LIGHT_RED="\[\033[1;31m\]";
GREEN="\[\033[0;32m\]"; WHITE="\[\033[1;37m\]"; LIGHT_GRAY="\[\033[0;37m\]"; YELLOW="\[\033[1;33m\]";
# GIT PROMPT (http://gist.github.com/120804)
function parse_git_branch {
git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ \(\1\)/';
}