2010-06-04
■ [ruby][games] 変愚蛮怒のプレイ記録をパースするツールを書いた
耐性パズルのお供にどうぞ。
例えば
$ kavlax shiwake ~/.angband/Hengband/yhara.txt
-- weapon
* a) ★首切りソード『クリスドゥリアン』 (4d5) (+18,+19) {視|毒切/邪人竜オト巨死} は、
g) ★カタナ『斬鉄剣』 (10d4) (+17,+21) (+2) {+腕器掘|切} でいいんじゃない?
みたいなことができます。(耐性が被ってて攻撃力がより大きいやつを表示します。まだ/邪とか見てないんで、いい加減ですが、たまに「確かに」というサジェストが出ます)
手抜きなんでRuby 1.9にしか対応してないですが、要望が多ければ1.8にも対応させるかも。
2010-06-05
■ [ruby] Rubyの新リファレンスマニュアルをコマンドラインから簡単に引くためのツールを書いた
Rubyリファレンスマニュアル刷新計画(通称るりま)のリファレンスを、コマンドラインから簡単に引けるようにするgemを作りました。
多くの人はWeb版か、chm版を使ってると思いますが、同じものがコマンドラインから見れるようになります。
インストール方法とかはgithubに書いてますが、
$ sudo gem install myrurema $ rurema --init $ rurema Array#length Array#length --- length -> Integer --- size -> Integer 配列の長さを返します。配列が空のときは 0 を返します。 p [1, nil, 3, nil].size #=> 4
という感じです。初回のみ、データベースを構築するので数分から十数分かかります。
RubyとSubversionが必要です。
間違いを見つけたら
るりまはまだ未完成ですので、間違いとか、分かりにくい箇所がいろいろあると思います。
RedMineにアカウントを作って チケットを登録するか、 Web版のコメント欄で報告してください。
仕組み
~/.rurema以下にbitclustとdoctreeをチェックアウトし、データベースを作ります。
bitclust同梱のrefeはバージョン指定が必要だったりするのですが、myruremaではRUBY_VERSIONをデフォルトとすることでオプションがいらなくなりました。
rvmで1.8/1.9を共存してる場合も、それぞれのRubyでmyruremaをインストールすれば、自動的に現在のRubyバージョンのリファレンスが表示されるんじゃないかな。たぶん。
るりまのリファレンスは随時更新されているので、最新のリファレンスデータにアップデートするには
$ rurema --update
とします。(svn upして、データベースを再構築します)
そのうちrurema --serverとか、リファレンス書く人用に rurema --preview /some/file とかできるようにしたいですね(パッチ歓迎!)
2010-06-21
■ [ruby][memo] 1.9のスレッド
pros
- Tkなどのネイティブスレッドを使うライブラリとの相性が良くなった
- コンテキストスイッチが速い
cons
- スレッドを作ったときにスタックが固定量確保されるので:
- stack level too deepになる限界が早くなった
- (動かさない)スレッドを大量に作った場合にもメモリ消費が大きい
まあどちらかというとFiberの方が活用された気もしますが…
■ [ruby] ruremaコマンドでローカルWebサーバを起動できるようになった
るりまの私家版コマンドラインツール、myruremaをバージョンアップしました。
るりまの公式ツールであるbitclustには、ローカルでサーバを起動して、Web版と同じ画面をブラウザで見られるという機能があります。 今回のバージョンアップで、ruremaコマンドをこれに対応させました。
$ rurema --server --browser
とすると、自動的にサーバが起動し、ブラウザで http://localhost:9292/view/ を開きます。
■ [ruby] 毎回「git」と打つのが面倒な人のためのツール、reposh 0.1.8をリリースしました
便利だと思うんだけど俺以外に使ってる人をみたことないツール、reposhを久しぶりにバージョンアップしました。
reposhは毎回「git」とか「svn」とか打つのが面倒な人のためのツールです。
reposhがない場合:
$ git st $ git add -A $ git ci
reposhがある場合:
$ reposh > [Enter] # 空Enterでgit statusを表示します > add -A > ci
普通のコマンドは「:」から始めます。
> :ls
あと、設定ファイル(~/.reposh.yaml)で俺コマンドを定義できたりもします。 最近はgit svn rebaseを「get」、git svn dcommitを「put」に割り当てています。
どのVCSを使っているかは、.gitや.svnの存在を見て自動的に判定されます。*1
今回のアップデートではgitに対応した(.gitがあったらgitと判定)のと、カレントディレクトリに.git等がない場合は上のディレクトリも見るようにしました。
インストール
(1) gemでインストールする
$ gem install reposh
(2) 必要なら設定ファイルを書く
$ vi ~/.reposh.yaml
サンプルの設定ファイル: http://github.com/yhara/reposh/blob/master/sample.reposh.yaml
(3) プロジェクトのディレクトリに移動し、起動する
$ reposh loaded config file: /Users/yhara/.reposh.yaml Welcome to reposh 0.1.8 (mode: git) >
(4) Enjoy!!
*1 なのでsvnとhgとsvkを使い分けてた時代はとても便利だったんですけど、最近はgitしか使ってないという…
2010-06-23
■ [prog][book] 「エキスパートPythonプログラミング」を他の言語でいうと
こういうことでしょうか?
4797353953→4048686291
4873114276→4798119172
4797357401→4873114454
入門本だけじゃなく、中級者のための本が出るってのはいいことですね。
ついでに:
4274067815→4873114233
4798119415→4274067211 (ちょっと違うか)
4822284239→4844327453 (もっと違うか)
よりマイナーな言語になると、一冊で両方兼ねてる感じになる傾向が。
4274067149477413264042740678904873113482
よりメジャーな言語に関しては……あまり詳しくないので誰か書いてください。Effective ○○がそういうポジションなんだろうか。
(追記:上級者のための本について。「Metaprogramming in Ruby」の日本語版が出るらしい。あと絶版かつプレミア価格(今はオンラインで読める)のRHGもそうだな。)
19343564764844317210
2010-06-25
■ [ruby][book] Web+DB PRESSで「Ruby in your hands」という連載をやります
第一回はSinatraです!
4774142727
W+Dは連載陣↓がすごいので、光栄というか恐縮というか。
- アンカテ
- Life is beautiful
- kaisehのブログ
- latest log
- ユビキタスの街角
- YappoLogs
- naoyaのはてなダイアリー
- hnwの日記
- クリップ:濃縮還元オレンジニュース|gihyo.jp … 技術評論社
- ぼくはまちちゃん!(Hatena) (読者コーナー)
内容としては、「RubyとWeb開発」という枠でいろんな話をするという感じになりそうです。
□ shinriyo [PHPはありませんか?]
□ yhara [昨年秋に「パーフェクトPHP」が出ましたね。 http://www.amazon.co.jp/dp/47741443..]