トップ 最新 追記

Route 477



2010-06-02

[Ruby/SDL] るびま記事のinput.rbについて

ライセンスを聞かれたので、MITライセンスということにしました。


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しか使ってないという…

[ruby] ネット上から消失した_why先生を偲ぶイベントが開催予定

hpricotやshoes、camping、markabyなどさまざまな作品を残してネット上から消えてしまったWhy The Lucky Stiffを偲び、8/19に「_why的なハック」のコンテストが開かれるそうです。


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

本日のツッコミ(全2件) [ツッコミを入れる]

shinriyo [PHPはありませんか?]

yhara [昨年秋に「パーフェクトPHP」が出ましたね。 http://www.amazon.co.jp/dp/47741443..]


2010-06-25

[ruby][book] Web+DB PRESSで「Ruby in your hands」という連載をやります

第一回はSinatraです!

4774142727

W+Dは連載陣↓がすごいので、光栄というか恐縮というか。

内容としては、「RubyとWeb開発」という枠でいろんな話をするという感じになりそうです。