Skip to content

Instantly share code, notes, and snippets.

View shigeki's full-sized avatar

Shigeki Ohtsu shigeki

View GitHub Profile
@shigeki
shigeki / domain_stack4.js
Created July 4, 2012 14:00
Domain Stack Sample #4
// domain stack sample #3
var domain = require('domain');
var d1 = domain.create();
var d2 = domain.create();
var d3 = domain.create();
d1.on('error', function(err) {
console.log('d1:', err.message);
});
d2.on('error', function(err) {
@shigeki
shigeki / domain_stack3.js
Created July 4, 2012 11:53
Domain Stack Sample #3
// domain stack sample #3
var domain = require('domain');
var d1 = domain.create();
var d2 = domain.create();
var d3 = domain.create();
d1.on('error', function(err) {
console.log('d1:', err.message);
});
d2.on('error', function(err) {
@shigeki
shigeki / domain_stack2.js
Created July 4, 2012 11:30
Domain Stack Sample #2
// domain stack sample
var domain = require('domain');
var d1 = domain.create();
var d2 = domain.create();
var d3 = domain.create();
d1.on('error', function(err) {
console.log('d1:', err.message);
});
d2.on('error', function(err) {
@shigeki
shigeki / domain_stack.js
Created July 4, 2012 11:21
Domain Stack Sample
// domain stack sample
var domain = require('domain');
var d1 = domain.create();
var d2 = domain.create();
var d3 = domain.create();
d1.on('error', function(err) {
console.log('d1:', err.message);
});
d2.on('error', function(err) {
@shigeki
shigeki / superagent-proxy-patch.diff
Created June 13, 2012 01:11
superagentをプロキシ対応するパッチ(SSL対応:要 tunnel モジュール) original from https://gist.github.com/2914780
--- node_modules/tower/node_modules/superagent/lib/node/index.js.org 2012-06-03 04:27:15.000000000 +0900
+++ node_modules/tower/node_modules/superagent/lib/node/index.js 2012-06-13 10:07:53.142584979 +0900
@@ -458,6 +458,29 @@
// initiate request
var mod = exports.protocols[url.protocol];
+ // use proxy
+ if(process.env.http_proxy) {
+ var proxy = parse(process.env.http_proxy);
+ if (url.protocol === 'http:') {
@shigeki
shigeki / test.js
Created May 31, 2012 01:30
socket.io memoryUsage profile with heatbeat by manually gc
var io = require('socket.io').listen(8081);
var parser = require('socket.io').parser;
io.sockets.on('connection', function(socket) {
var pre;
var i = 0;
io.transports[socket.id].parser.on('data', function(p) {
var packet = parser.decodePacket(p);
if(packet.type === 'heartbeat') {
if(global.gc) global.gc();
var memoryUsage = process.memoryUsage();
@shigeki
shigeki / socketio_checkmemory.js
Created May 30, 2012 15:11
Check memory leak on socket.io
var io = require('socket.io').listen(8081);
var parser = require('socket.io').parser;
io.sockets.on('connection', function(socket) {
var pre;
var i = 0;
io.transports[socket.id].parser.on('data', function(p) {
var packet = parser.decodePacket(p);
if(packet.type === 'heartbeat') {
var memoryUsage = process.memoryUsage();
var rss = memoryUsage.rss;
@shigeki
shigeki / http-request_rev.js
Created May 24, 2012 12:45
Node.js HTTP Request Sample Code
var http = require('http');
var ran = 0;
var queryNum = 100;
var parallel = 10;
var agent = new http.Agent({maxSockets: parallel});
if (process.argv.length != 5) {
console.error('usage: node http-request.js host port url\n' +
'ex). node http-request.js example.com 8080 /index.html');
process.exit(-1);
@shigeki
shigeki / hello-spdy3.js
Created May 17, 2012 04:10
Hello SPDY by Node-0.7.x
var tls = require('tls');
var fs = require('fs');
var zlib = require('zlib');
var events = require('events');
var util = require('util');
var dictionary = require('./dict.js').dictionary;
var word = '<!DOCTYPE html><html><head><title>Hello SPDY</title></head><body>Hello SPDY</body></html>';
function parseNV_HeaderBlock(buffer) {
var nv = [];
@shigeki
shigeki / gist:2427216
Created April 20, 2012 08:59
patch for d.run(fn, argument, ...), d.apply(fn, this, arguments) , d.call(fn, this, argument, ... )
--- a/lib/domain.js
+++ b/lib/domain.js
@@ -136,7 +136,15 @@ Domain.prototype.remove = function(ee) {
};
Domain.prototype.run = function(fn) {
- this.bind(fn)();
+ this.bind(fn).apply(null, Array.prototype.slice.call(arguments,1));
+};
+