トップ 最新 追記

Route 477



2006-09-04

[misc] 帰宅

帰りました。さすがに7時〜24時まで輪行はしんどいわ。


2006-09-07

[kmc] コーディング合宿

温泉宿にいます。

NFに向けてクオータービューのRPGを作る…という噂。

[vim] Vim Color Scheme Test

vimの色テーマのサンプルを一覧表示してくれるサイト。背景が濃い色のが上の方に、淡い色なのが下の方にまとまっている。 *1 新しい色テーマを探すときにどうぞ。

サンプルファイルはC,HTML,Java,LaTeX,Perlの5種類。(各ページは結構重たいので注意)

使い方

テーマ名をクリックすると色テーマ本体(hoge.vim)がダウンロードできるので、これを~/.vim/colors/以下にコピーする。

あとはgvim上で編集-色テーマ選択を選ぶか、:colorscheme hoge とすればOK。 (参考)

*1 僕は白っぽい背景色の方が好きなんだけど、濃い背景色のテーマの方が圧倒的に多いなぁ

[music] project renga extra

久々にダウンロードしたら聞き覚えのないパートが!

2003年10月くらいまで、数回更新されていた模様。

FMPは98の末期にVectorのPACK 13000で見つけて触ってただけなので、持っている曲データはほとんど インターネットで入手したものだったりする。


2006-09-08

[ruby][SDL] 5x5フォントをRuby/SDLから使ってみる

shinichiro.hさんの5x5フォントをRuby/SDLから使ってみました。

「e」「y」あたりがちょっと気になるけど、思ったよりちゃんと読めるなぁ。

5x5

描画するのに使ったコードは、スクリーンショットに載っている通りです:-) (一応 5x5font.rb に上げておきます。)

[ruby][SDL] 4x4フォントをRuby/SDLから使ってみる

次に、上の記事でも紹介されている4x4フォントです。

4x4

だいぶ厳しくなってきました(^^; それでも大文字のところはわりと可読性が高いです。

[ruby][SDL] 2x4フォントをRuby/SDLから使ってみる

最後に、上の記事でも紹介されている2x4フォントです。

2x4

正直これは無理だろと思いましたが…読める!読めるぞ!

色が色なんで実用は無理っぽいですが、ちょっと感動。

[ruby][SDL] 3x3フォントをRuby/SDLから使ってみる

おまけ。上の記事の次の日に掲載されている3x3フォントです。

画像の説明

…これはさすがに無理(^^;

まぁ大文字限定で、メニュー画面とか文字列の内容が予測可能なら実用可能……かも。

[ruby][SDL] Ruby/SDLで使う極小フォント

というわけで、Ruby/SDLから使いやすいように変換したものを置いておきます。

これを使って異常に情報量の多いゲームとか作るといいよ!

続きを読む


2006-09-09

[softs] svk

使ってみようとしたんだが、svk mirrorの段階で

指定されたファイルが見つかりません。  : Can't create tunnel

と出て止まってしまう罠。

Windows + svk + svn+ssh://... という組み合わせが悪いのか?

[softs] svk(2)

つーか、svkのソースには「ssh」という文字列が登場しないように見える(^^;

svnに丸投げなのか。

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

ohai [SVNもSSHコマンドに丸投げしてるはず。]


2006-09-10

[games] 変愚:賞金首で貰えるアイテム

変愚の賞金首の報酬について調べてみた。

src/bldg.cより引用。

       {TV_POTION, SV_POTION_CURING}, //癒しの薬
       {TV_POTION, SV_POTION_SPEED}, //スピードの薬
       {TV_POTION, SV_POTION_SPEED}, //スピードの薬
       {TV_POTION, SV_POTION_RESISTANCE}, //耐性の薬
       {TV_POTION, SV_POTION_ENLIGHTENMENT}, //啓蒙の薬

       {TV_POTION, SV_POTION_HEALING}, //体力回復の薬
       {TV_POTION, SV_POTION_RESTORE_MANA}, //魔力復活の薬
       {TV_SCROLL, SV_SCROLL_STAR_DESTRUCTION}, //*破壊*の巻物
       {TV_POTION, SV_POTION_STAR_ENLIGHTENMENT}, //*啓蒙*の薬
       {TV_SCROLL, SV_SCROLL_SUMMON_PET}, //ペット召喚の巻物

       {TV_SCROLL, SV_SCROLL_GENOCIDE}, //抹殺の巻物
       {TV_POTION, SV_POTION_STAR_HEALING}, //*体力回復*の薬
       {TV_POTION, SV_POTION_STAR_HEALING}, //*体力回復*の薬
       {TV_POTION, SV_POTION_NEW_LIFE}, //新生の薬
       {TV_SCROLL, SV_SCROLL_MASS_GENOCIDE}, //周辺抹殺の巻物

       {TV_POTION, SV_POTION_LIFE}, //生命の薬
       {TV_POTION, SV_POTION_LIFE}, //生命の薬
       {TV_POTION, SV_POTION_AUGMENTATION}, //増強の薬
       {TV_POTION, SV_POTION_INVULNERABILITY}, //無敵の薬
       {TV_SCROLL, SV_SCROLL_ARTIFACT}, //アーティファクト生成の巻物

なんかペット召喚の巻物が浮いてるような気が…


2006-09-12

[ruby] www.ruby-lang.org/ja/リニューアル

めっちゃモダンになっとる!(笑)

一つ気になったこと:「はじめよう」の一番上が「Try Ruby!」なんだが、クリックすると英語が ずらずらっと…。Try Ruby自体は非常に面白いコンテンツだと思うんだが、このままだと日本のRuby入門者 にとってとっつきにくい気がする。

Try Rubyの日本語版とかできないかなぁ。


2006-09-18

[junk] 日の出時刻

根室(北海道)
2006年9月19日(火) 日の出	 5:01
日南中時	11:12
日の入り	17:22
鹿児島(鹿児島県)
2006年9月19日(火) 日の出	 6:04
日南中時	12:12
日の入り	18:19

日本の中でも1時間も違うんですねぇ…。

ちなみに石垣島(沖縄県)は6:31、山口が6:00、京都は5:42です。

[junk] ねるねるねるね

こんな明るいページはなんとなく嫌だ(笑)。


2006-09-20

[event] CodeFest京都2006

去年に引き続き、KMCからも何人か参加する予定です。

まだ参加受付中なので、お近くの方はぜひ。(フリーソフトウェア関係であることと、 18歳以上であること(!)が必要だそうですが。)

[softs] svk(3)

英語版のplink.exeを使うようにしたら うまくいきました。(ごった煮版じゃダメなのか?)

plink.exeをsvk/bin/に置いて、

set SVN_SSH="plink.exe"
svk mirror //mirror/tobi svn+ssh://yhara@...

という感じ。

[softs] svk(4)

参考:

set SVN_SSH="plink.exe"
svk mirror //mirror/tobi svn+ssh://yhara@...
ソースを実際に取ってくる(今回はHEADのみ取ってきた)
svk sync //mirror/tobi --skipto HEAD
ローカルブランチを作る
svk cp -p //mirror/tobi //tobi
コミットログを適当に入力
新しいフォルダを作って、TortoiseSVNから
SVN Checkout → file:///D:/home/hogehoge/.svk/local/tobi/trunk
とかやってる間に新しいコミットがあったので、それも取ってくる
svk sync //mirror/tobi
svk smerge //mirror/tobi //tobi

で、TortoiseSVNでSVN Updateする、と。


2006-09-21

[misc] 4日ほど

旅に出ます。日曜帰宅予定。


2006-09-25

[misc] 帰宅しました

せっかくsvkのセットアップができたのに、結局ノートPCを触る暇がなかったという…(笑)。

そのかわり、移動時間を利用して買ったままになっていた「みんなのPython」を読みきりました。

[ruby] 例外表示を自分でやってみる

Rubyスクリプトの実行中に例外が発生すると、Rubyインタプリタはエラーの内容を表示して終了します。

例えば

./tobi/tobi.rb:236:in `initialize': undefined method `<<' for nil:NilClass (NoMethodError)
       from ./tobi/tobi.rb:235:in `initialize'
       from ./tobi/tobi.rb:419:in `initialize'
       from ./main.rb:11
       from tobi_debug.rb:5

こんな感じに。

以下のようにすると、この例外表示を「自前で」行うことができます。

begin
  #ここに例外の発生しそうなコードを書く
rescue Exception => e
  bt = e.backtrace
  puts "#{bt.shift}: #{e.message} (#{e.class})"
  print bt.map{|s| "\tfrom #{s}"}.join("\n")
end

全体をbegin〜rescue〜endで囲み、Exceptionの子クラス(つまり、全ての種類の例外)を変数eに捕捉しています。 eのもつメソッドについてはExceptionを 参照。

実行結果は以下のような感じになります(って、上と同じなんですけど)。

 ./tobi/tobi.rb:236:in `initialize': undefined method `<<' for nil:NilClass (NoMethodError)
         from ./tobi/tobi.rb:235:in `initialize'
         from ./tobi/tobi.rb:419:in `initialize'
         from ./main.rb:11
         from tobi_debug.rb:2

これが何の役に立つのかというと…あんまり使う機会は無さそうな気もしますが(笑)、例えば CGIのテスト中、例外が出るたびにapacheのログを読むのは面倒なので、上のコードを使って エラー画面をブラウザに表示するようにする…というのはありそうな場面です。 またExerbで固めたexeを作るときにこのコードを仕込んでおけば、「例外が出てるんだけど、 DOS窓が一瞬で閉じるんで読めなかった」という罠を回避することができます。 *1

他には、日本語表示にしてみるとか、

begin
  #ここに例外の発生しそうなコードを書く
rescue Exception => e
  bt = e.backtrace
  puts "「#{e.message}」っていう #{e.class} だよ!"
  puts "場所は #{bt.shift} で、"
  puts bt.map{|s| "その前は #{s} "}.join("で、\n") + "だよ!"
end
「undefined method `<<' for nil:NilClass」っていう NoMethodError だよ!
場所は ./tobi/tobi.rb:236:in `initialize' で、
その前は ./tobi/tobi.rb:235:in `initialize' で、
その前は ./tobi/tobi.rb:419:in `initialize' で、
その前は ./main.rb:11 で、
その前は tobi_debug.rb:2 だよ!

Python風に表示してみるとか。*2

 begin
   #ここに例外の発生しそうなコードを書く
 rescue Exception => e
   puts "Traceback (most recent call last):"
   e.backtrace.reverse.each do |s|
     if /(.+):(\d+)(:in `(.+)')?/ =~ s
       puts %<  File "#{$1}", line #{$2}, in #{$4 or "?"}>
       puts "    " + File.read($1).to_a.at($2.to_i-1).lstrip
     else
       puts s
     end
   end
   puts "#{e.class}: #{e.message}"
 end
 Traceback (most recent call last):
   File "tobi_debug.rb", line 2, in ?
     require 'main.rb'
   File "./main.rb", line 11, in ?
     Tobi.new(false).run
   File "./tobi/tobi.rb", line 419, in initialize
     @map = Map.new(@unit,30,12)
   File "./tobi/tobi.rb", line 235, in initialize
     umax.times{|u|
   File "./tobi/tobi.rb", line 236, in initialize
     @data << []
 NoMethodError: undefined method `<<' for nil:NilClass

「ファイルのn行目を取ってくる」が「File.read(fname).to_a.at(n-1)」で 書けてしまうあたりがLLらしくて良いですね。:-)

さあ、みんなも自分だけのスタックトレースをつくってみよう!(少年誌風)

*1 エラー表示のあとにgets()を呼んでキー入力を待つとか、ファイルにエラー内容を書き出すとか

*2 まだまじめにPython触ってないので、微妙に違ってるかも知れません


2006-09-27

[ruby] Ruby's ring

なんとなくはてなリングに登録してみた。