2005-06-30 (Thu)
_ Google Summer of Code for Mono
ものがたり経由:
Jaen Saul: Ruby.NET implementation
Florian GroB: Ruby.NET
[Summer2005 - Monoより引用]
Ruby.NETが二つ採用かあ。
_ 「httpの数」を閾値にするフィルタ
そこで、樂水開発日記にあった「httpの数」を閾値にするフィルタを導入。これは賢いね!
[ただのにっき(2005-06-30)より引用]
実はやまださんがすでに以前に公開されていたようです。
2006-06-30 (Fri)
_ Binding.of_caller
Binding.of_callerを実装しようと思い立った。
SCOPEのflagsをprevにしてRBasicのflagsを使うようにしたところまでは よかった*1のだが、ruby_dyna_varsどう しようと思ってPUSH_FRAME時にFRAMEに突っ込んでしまったり、vis_mode とかもあるじゃん、とか思ったらもう面倒になって挫折。
とりあえず、パッチを放置しとこう。
以下のコードくらいなら期待通り動く。
def Object.foo
eval("p [self, x, y, z]", Binding.of_caller)
end
x = 1
1.times do
y = 2
1.times do
z = 3
Object.foo
end
end
*1 本当は予期せぬ所でRBasicのflagsを書き換えてしまった せいでGCで落ちて大変だったんだけど。
2014-06-30 (Mon)
_ InfluxDBの古いデータの削除
InfluxDBを試しているが、InfluxDBには今のところ古いデータを自動で削除する機能がない(対応予定はあるようだ)。
古いshardを丸ごと削除するのが効率がよいらしい(InfluxDBでは一定期間ごとにshardが作成される)ので、以下のようなcron用スクリプトを書いてみた。
require "influxdb"
USER = "root"
PASS = "root"
TTL = "1d"
def parse_ttl(ttl)
case ttl
when /\A(\d+)s\z/
return $1.to_i
when /\A(\d+)m\z/
return 60 * $1.to_i
when /\A(\d+)h\z/
return 60 * 60 * $1.to_i
when /\A(\d+)d\z/
return 24 * 60 * 60 * $1.to_i
else
raise "invalid TTL - #{ttl}"
end
end
secs_to_live = parse_ttl(TTL)
influxdb = InfluxDB::Client.new
for shard in influxdb.get_shard_list["shortTerm"]
end_time = Time.at(shard["endTime"])
if Time.now - end_time > secs_to_live
influxdb.delete_shard(shard["id"], shard["serverIds"], USER, PASS)
end
end
InfluxDBでは小文字で始まる名前のseriesは短期間(short term)、大文字で始まる名前のseriesは長期間(long term)と決まっているが、上記のスクリプトでは短期間のshardだけ削除するようにしている。
ただ、デフォルトでは各shardの期間が7日間になっているので、それよりも短い期間でshardを削除する場合は/opt/influxdb/shared/config.tomlの設定を以下のように変更しておく必要がある(この例では6時間に設定している)。
[sharding.short-term] duration = "6h"
/opt/influxdb/current/config.tomlの方を変更しても反映されないので注意。
2018-06-30 (Sat)
_ 松江Ruby会議09
松江Ruby会議09に参加した。
LTで何か喋ってほしいとのことだったので、Rubyでスレッドをつくる話をしてきた。
もちろん実用性はないけど、Ruby 3でも継続が残るようなので、玩具として遊ぶ分には問題ないはず。スライドにも書いてあるように、TracePointのフック内の継続を取り出してフックを抜けた後でcallしたりするとおかしなことになる。継続を使う時は何が起きても泣かないこと。
恒例になりつつあるRuby Quizでは、途中で間違えるつもりが最終問題に行く前に一人だけ残ってしまったので、ファーエンドテクノロジー様からオライリー書籍一万円分をいただいてしまった。
- カーハッカーズ・ハンドブック ―車載システムの仕組み・分析・セキュリティ
- Mind Hacks ―実験で知る脳と心のシステム
- 退屈をぶっとばせ! ―自分の世界を広げるために本気で遊ぶ (Make: Japan Books)
今回も楽しい会議だった。来場者、スタッフ、スポンサーのみなさん、ありがとうございました。
_ ただただし [がーん。その記事は、読んでいたはずなのに……]
_ Florian Gross [(Mirrored from matz' blog.) Sorry for posting in English...]