2013-11-30(土) [長年日記]
■ Nexsus7にAndroid 4.4 (KitKat)が降ってきたのでアップデート
あいかわらず充電まわりに問題を抱えつつもだましだまし運用しているNexsus7、4.2なんかは誰よりも早くアップデートが降ってきたのに、なぜか4.4(KitKat)はぜんぜん来なくて、周囲の知人にはどんどん来ていて焦ってたのだが(←焦る必要ぜんぜんない)、今日になってようやく届いた。さっそく入れる。
もっとも今回はなんのトラブルもなく、常用しているアプリにはこれといって非互換は発生していない。まぁ、すでに対応版がリリースされているということかも知れないけど、それはそれでつまらんな(ぉぃ)。
■ Web日記をつけ始めて……えーと、14年 (2桁の計算ができない)
tDiary 4.0.1を変則的に1ヶ月後に出したおかげで、リリースの翌日にn周年を迎えられるようになったんだな。最近は毎日更新というわけにはいかないことも多いけど、まだまだ無理なく続けられそうな雰囲気ではある。
2013-11-29(金) [長年日記]
■ tDiary 4.0.2リリース
いい肉の日にtDiaryの4.0.2を無事リリースできたことをお喜び申し上げます。
(夜遅くになるまで@hsbtとおれの手があかなくてぎりぎりまでバタついていたとか言ってはいけない。というか↑の更新時刻が11/30になってるとか見て見ぬふりをしなくてはいけない)
今回のリリースで、スタイルやIO、キャッシュまわりの独立性を高めたので(@hsbtが)、標準品以外はgemに分離して本体のアップデートに依存しない構造になった。ので、環境の変化に応じていろいろ変更できるようになったはず。ここの日記も、環境を整備したらHerokuに移したいなーという野望をもってtdiary-io-mongodbなんかを書いているわけだけど、先は長いのだよなぁ(だからまだここは3.2.2なのだ)。
2013-11-28(木) [長年日記]
■ 対話型のコンソールアプリをpryの上に構築したらだいぶ楽できた
ゆえあってちょっとした対話型のアプリ、それもWebじゃなくてLinuxコンソールで動くものを作る必要が出てきた。入力をパースしたりするのも面倒だしなーと思い、ためしにpry上のDSLみたいな感じで作ってみたらなかなかいいものが簡単にできた。うん、これは楽でいいなぁ。今後も使おう。
こんな感じのsample.rbを書いて(2013-12-03追記: pryの仕様に合わせて一部リライト):
require 'pry' # business logic module Sample def self.hello(name) "Hello #{name}!" end end # helloというコマンドを定義する Pry.commands.block_command 'hello' do |*args| args.map{|name| output.puts Sample.hello(name)} end # pry標準のhelpはあえて潰してよけいなものを見せない Pry.commands.block_command 'help' do output.puts "hello [name...] : say hello" end # プロンプトをいじると専用アプリっぽさが増す Pry.prompt = [ proc{"sample> "}, proc{"sample* "}, ] puts "type 'help' to help. type 'exit' to terminate.\n\n" pry
実行する:
$ ruby sample.rb type 'help' for help. type 'exit' for terminate. sample> help hello [name...] : say hello sample> hello hoge Hello hoge! sample> hello foo "bar baz" Hello foo! Hello bar baz! sample> exit $
もちろんgemにして依存関係も解決するようにしておけば、導入も簡単になってさらに良い。