JavaScript でクリックのイベント処理とか GET 以外ならトークンを含めるとか全部やらないといけないから面倒くさい
<a href="/some_action" class="some-action">some action</a>
# -*- coding: utf-8 -*- | |
set :application, "*** application name ***" | |
set :repository, "." | |
set :scm, :git | |
set :branch, "prod" | |
set :deploy_via, :rsync_with_remote_cache | |
role :app, "*** server address ***" |
sys = require 'sys' | |
events = require 'events' | |
util = require 'util' | |
OAuth = require('oauth').OAuth | |
class TwitterUserstream extends events.EventEmitter | |
constructor: (args, initializer) -> | |
@consumerKey = args.consumerKey | |
@consumerSecret = args.consumerSecret | |
@accessToken = args.accessToken |
path = ARGV.shift | |
if File.exists?(path) && path.match(/^(.+)\.(jpe?g|jp2)$/) | |
filename = $1 | |
ext = $2 | |
files = [] | |
10.times do |i| | |
10.times do |j| | |
if i != j | |
files << output = "#{filename}_ikemen_#{i}#{j}.#{ext}" | |
`cat #{path} | sed s/#{i}/#{j}/g > #{output}` |
var unekointhehousenow = function(input) { | |
var copy = function(source, buffer, pointer) { | |
for (var i = 0, l = source.length; i < l; ++i) { | |
buffer[pointer + i] = source[i]; | |
} | |
}; | |
var tokens = input.match(/うーねこいんざおうちなうよー|うーねこ|いんざ|おうち|なうよー/g) || []; | |
var buffer = [0]; | |
var pointer = 0; |
System.setOut(new PrintStream(new ByteArrayOutputStream()) { | |
@Override | |
public void println(String x) { | |
throw new RuntimeException("Assert使え(#゚Д゚)ゴルァ!!"); | |
} | |
}); |
(function() { | |
var Hametsu1; | |
Hametsu1 = (function() { | |
function Hametsu1() { | |
$(function() { | |
return $(document).delegate('a', 'click', this.say); // this が document を指すのであぼーん | |
}); | |
} |
class Spinner | |
constructor: (element) -> | |
@element = element | |
@spinner = $('<div class="spinner"><img src="/assets/spinner.gif"></div>') | |
show: -> | |
@spinner.css | |
width: @element.width(), | |
height: @element.height() | |
@spinner.fadeIn() |
slow 遅い | |
fast 速い | |
above より上に | |
below より下に | |
absolute 絶対的な | |
relative 相対的な | |
abstract 抽象的な |
TwitterのタイムラインはJSONで流れてくるので、JSONぽい形式でデータを突っ込むMongoDBと相性が良い。
今まではtimeline.logとして書き出してたけど、GB単位に膨らんだテキストファイル重すぎて扱いづらいし最近は専らMongoDBに流し込んでます。
全部保存しとくと、誰がいつどのtweetを消したとか分かって異常に便利。こわい。
全文検索したいときがあるので、ツイイトはわかち書きでsplitして配列としても入れといてます。
MongoDBは配列で保存出来て、配列内にインデックスを貼れるので、簡単にいい感じの検索機能が作れて楽しいですね。
TLの全保存やってる人自体はそこら中に居るだろうし目新しいことは特にないでした。