2006-12-15
おなかへってないけどおなかへった
帰宅途中、全く空腹感がなくておなかへってないし何にも買わなくてイイかぁ、などと考えつつ、帰宅後、晩ご飯食べてないじゃん!と考えたとたんおなかが減ってきたぉ…。でも茎わかめがあるので明日昼ぐらいまではがんばれる!がんばりたい…。
RMagick でImageオブジェクトをバイト列として出力
to_blob で。
だいぶ前にも解らなくて API 探しまくった記憶が。read とかで読み出せろよ!とかいつも思う。もーーー RMagick は多機能なのはいいのだが API が複雑すぎてわからんよ…。
image.to_blob
memcache_stats
探すよりちゃっちゃと作った方が楽そうだったので作った。memcache-client memcache-client-stats パッケージが必要。
]$ ./memcache_stats 192.168.10.112 localhost
+ localhost:11211
bytes 1106
bytes_read 292462
bytes_written 305268
cmd_get 1987
cmd_set 1139
connection_structures 11
curr_connections 1
curr_items 7
get_hits 1933
get_misses 54
limit_maxbytes 4194304
pid 1397
rusage_system 7.760000
rusage_user 4.820000
time 1166161738
total_connections 34
total_items 1139
uptime 1799195
version 1.1.12
+ 192.168.10.112:11211
bytes 42144103
bytes_read 5667489398
bytes_written 5496319183
cmd_get 98653156
cmd_set 16260858
connection_structures 751
curr_connections 130
curr_items 429547
get_hits 82317143
get_misses 16336013
limit_maxbytes 67108864
pid 305
rusage_system 4997.215307
rusage_user 2563.752250
time 1166161724
total_connections 3841608
total_items 16260858
uptime 5535565
version 1.1.12
みたいな。ソース
#!/usr/bin/env ruby
require 'rubygems'
require 'memcache'
require 'memcache_client_stats'
class MemCache
def output_stats(io = STDOUT, options = {})
stats = {}
key = options.is_a?(Hash) ? options[:key] : options
type = options[:type] if options.is_a?(Hash)
@mutex.synchronize do
if self.active?
@servers.each do |server|
begin
stats[server.key] = server.stats(type)
rescue
stats[server.key] = "Error: Not Found Server"
end
end
end
end
unless key.nil?
new_stats = {}
stats.each_pair {|k,v| new_stats[k] = v[key]}
stats = new_stats
end
stats.each_pair do |k, v|
io.puts "+ #{k}"
if v.kind_of?(Hash)
max_length = v.map{|s| s.first.length }.max
v.sort_by {|s| s.first }.each {|key, val| io.puts "#{key.ljust(max_length)} #{val}" }
else
io.puts v
end
io.puts ''
end
stats
end
end
if ARGV.empty?
puts "usage: #{__FILE__} 192.168.10.10:11211 192.168.10.11:11211"
exit 1
else
cache = MemCache.new ARGV, :multithread => true
cache.output_stats
end
Readline::History::Restore
作って上げて放置してた。path の違う irb を利用したアプリケーションごとに History が使いたくて作った。最近 capistrano や script/console や iar なんかでヒストリーを一緒くたにしたくないことがよくあるので。
利用方法は
$ sudo gem install readline-history-restore
してから irb で使いたい場合 ~/.irbrc に
require 'rubygems'
require 'readline/history/restore/auto_save'
Readline::History::Restore::AutoSave.scriptname
とか書いておく。デフォルトだと ~/.ruby_readline_history/* に履歴ができる。つーか rubyforge また落ちてる。。