Skip to content

Instantly share code, notes, and snippets.

View takeshy's full-sized avatar

takeshy takeshy

  • Sun Asterisk
  • Yokohama
View GitHub Profile
@takeshy
takeshy / hash_with_value_indifferent_access_spec.rb
Created November 12, 2011 17:01
HashWithValueIndifferentAccessのspec
require 'rspec'
require File.expand_path('../../hash_with_value_indifferent_access',__FILE__)
describe HashWithValueIndifferentAccess do
context "initialize" do
before do
@hash = HashWithValueIndifferentAccess.new({:a=>:b})
end
it "symbole value compare string value " do
@hash[:a].should == "b"
@takeshy
takeshy / gist:3040198
Created July 3, 2012 14:50
10枚中1枚が当たりがある中で、自分で1枚選んで、無作為に他の八枚を開いて当たりが途中で出た時は最初からやり直して、残り2枚になるまで開けた場合
#!/usr/bin/ruby
def init
(1..9).to_a.shuffle
end
success=0
failure=0
10000000.times do
@takeshy
takeshy / dinamic_reverse_proxy.js
Created December 28, 2012 08:28
http-proxyを使ったWebSocket対応のreverse proxy。 proxy先のHostの情報のJSONファイルを監視していて、変更があれば読み込むようになっているため動的にproxy先のサーバを変更できる。死活監視プログラムがJSONを作成すればFailOverが実現できる。
var http = require('http')
, httpProxy = require('http-proxy')
, Cookie = require('cookie')
, fs = require('fs');
var SERVERS_FILE_NAME = "servers.json"
var PROXY_PORT = 4000
var SERVERS = null;
var g_httpProxies = {};
@takeshy
takeshy / route.html
Created December 31, 2012 02:56
Backbone.jsのroute機能をlocalで実行できるsample
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript" src="http://underscorejs.org/underscore-min.js"></script>
<script type="text/javascript" src="https://raw.github.com/LearnBoost/socket.io-client/master/dist/socket.io.min.js"></script>
<script type="text/javascript" src="http://backbonejs.org/backbone-min.js"></script>
<script type="text/javascript">
var ExampleRouter = Backbone.Router.extend({
@takeshy
takeshy / model.html
Created December 31, 2012 03:25
Backbone.jsのModel機能をローカルで実現できるようにしたsample
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript" src="http://underscorejs.org/underscore-min.js"></script>
<script type="text/javascript" src="https://raw.github.com/LearnBoost/socket.io-client/master/dist/socket.io.min.js"></script>
<script type="text/javascript" src="http://backbonejs.org/backbone-min.js"></script>
<script type="text/javascript">
var ExampleModel = Backbone.Model.extend({
@takeshy
takeshy / view.html
Created December 31, 2012 03:26
Backbone.jsのView機能をローカルで実現できるようにしたSample
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript" src="http://underscorejs.org/underscore-min.js"></script>
<script type="text/javascript" src="https://raw.github.com/LearnBoost/socket.io-client/master/dist/socket.io.min.js"></script>
<script type="text/javascript" src="http://backbonejs.org/backbone-min.js"></script>
<script type="text/javascript">
jQuery(function() {
@takeshy
takeshy / app.js
Last active December 26, 2017 23:56
Node.js with Backbone.js for CSRF Protection
app.use(express.session());
app.use(express.csrf());
app.get('/', index);
index = function(req,res,next){
res.render('index',{token: req.session._csrf});
}
@takeshy
takeshy / .mongorc.js
Last active March 19, 2016 12:02
現在の時間から指定された秒より前のISODateを作成して、Mongo Shellで検索しやすくする
function zp(num){
return(num < 10 ? "0"+num.toString() : num.toString());
}
function toISODate(d){
return ISODate(d.getUTCFullYear() + "-" + zp(d.getUTCMonth() + 1) + "-" + zp(d.getUTCDate()) + "T"+zp(d.getUTCHours()) + ":" + zp(d.getUTCMinutes()) + ":" + zp(d.getUTCSeconds()));
}
function before(n){
return toISODate(new Date(Date.now() - n * 1000));
}
//accessコレクションのTimeフィールドのDataが600秒(10分)以内のレコードを検索
@takeshy
takeshy / search_no_use_port.js
Created March 21, 2013 09:26
node.jsで使っていないポートを取得する
function getPort(host,port,maxPort,callback) {
var net = require('net');
var socket = new net.Socket();
socket.on('error', function(e) {
if(e.code == 'ECONNREFUSED'){
callback(null, port);
return;
}
loop(++port);
});
@takeshy
takeshy / app.js
Last active December 17, 2015 23:29
asset pipline & minify & gzip and s3 upload for node.js
require('./lib/compiled');
app.configure('development', function(){
var Mincer = require('mincer');
var environment = new Mincer.Environment();
environment.appendPath(__dirname + '/app/assets/javascripts');
app.use('/assets', Mincer.createServer(environment));
ASSET_JS_PATH = null
});
app.get('/', index);