Ruby

こんなコードが書けたらいいね

前回の日本語Ruby、こんな風に書けたらなあという、妄想。 アルバムは、カレントフォルダのベース名。 アルバムを表示する。 コマンドラインをひとつずつ片付ける |音楽ファイル| 音楽ファイルを表示する。 音楽ファイルをmp3情報として開いて片づける |曲| …

日本語Ruby?

見えないプログラムは、全角スペースが識別子に使えるというトリビアから生まれたわけですが、全角文字が識別子になるならRubyプログラムを日本語で書けないか?というわけでRuby1.9 用 mp3tag.rb。RubyGems で ruby-mp3info をインストールしてください。(…

見えないプログラム

近頃は @fusuian としてもっぱら Twitter しておりますです。先日 @etoさんと @_tad_ さんとで Tsukuba.rb を立ち上げ、今日は第2回の集まりでした。 筑波大春日キャンパスのラーニングコモンズをお借りして、大学2年で初めてさわったプログラム言語がRuby…

一年ぶりに気が付いた

http://d.hatena.ne.jp/ma-asa/20070617/p1 wxRuby2も1.9.7まで進んだし、日本語出るようになってるかも……と淡い期待を抱いてひさびさに使ってみるとやっぱりうまく行かない。しかしサンプルのunicode.rbは使える。エンコードちゃんとUTF-8にすれば、ソース…

privateメソッドをテストしたいときは

http://www.bookshelf.jp/2ch/tech/1204466626.html >>38 をもとにテストスクリプト test-sample.rb の冒頭にひとこと書いておく。 require 'runit/testcase' require 'runit/cui/testrunner' require 'sample' class Sample # テストしたいクラス private_i…

Hackety Hackで簡単ダウンローダ

Hackety Hackなら、正味4行でプログレスバーつきのダウンローダが書けます。 New で出てくるフォームに以下のリストをコピペして、url, format, rangeを適切に設定したら、「Run」を押すだけ。 # 連番になっているファイルをダウンロードする。 # url, forma…

wxruby2-0.0.40で日本語が出ないorz

wxruby2もぼちぼち開発が進んでるようなので、家でちょっと使ってみようかと、 wxruby2-0.0.40 VisualWx 087-6 Python 2.5.1(VisualWxのために必要) をインストール。VisualWxの方は、一見普段使ってる087-1とほとんど変わらず。 ただし吐き出すコードは「…

Ruby/SDLの3bppのサーフェスは

pixelsメソッドがバグってる。SDL::Surface#pixelsは、RGBデータをStringで吐くメソッドだ。 出力されるStringの大きさは、普通に考えると 幅x高さxbpp(Bits Per Pixel)になる。 ところが、new_fromを使って3bppのサーフェスを作ると、内部でラインごと…

RubyKaigi2007

プログラマの友達はあんまり多くないのだけど、その数少ないプログラマの友達の二人が参加していたRubyKaigi。 http://d.hatena.ne.jp/mikihoshi/20070610 http://d.hatena.ne.jp/yoosaki/20070610/p1正直やることは知っていたけどこれ見るまで完璧に忘れ去…

八卦亭八苦

Hackety Hack http://hacketyhack.net/ こちらが本家サイト。キツネのキャラが……クレヨンしんちゃんに出てきそう。さくさくとインストールして、Hackety Hackのアイコンを実行すると、あんまりプログラミングツールっぽくないウインドウが立ち上がる。 この…

ハック・ハッカー・ハッケヨイ(?)

http://www.radiumsoftware.com/0705.html#070515 「プログラミングってコモドール64のときのようにはできなくなってしまったんだ」 コモドール64じゃピンとこないけど、PC-8001とかMZ-80に置き換えて読むとせつない。人によってはここんとこMSXとかファ…

Praggerで遊ぼうと思ったら

ウチのRubyが1.8.3のままだったのに気がついた。pathname.rbがないとぶーたれるので、ワンクリックインストーラをdl。 あー、1.8.6なんだ、仕事場のは1.8.5……。 やったね父ちゃん、明日もアップデートだorzRMagickも新しいの入れかえにゃ……てなこと考えてる…

もっともぬるいFizzBuzz

FizzBuzzというのは、「どうしてプログラマに・・・プログラムが書けないのか?*1」の記事に出てくる、プログラマ面接のテスト問題です。 1〜100の数字に対して、3で割り切れる数なら"Fizz"、5で割り切れる数なら"Buzz"、3と5の両方で割り切れる数なら"FizzBu…

FizzBuzzのしくみ

id:yoosaki:20070510#p1 いくら見ても意味がわからないので、irbで動かしてみた。 (コーディング環境はeclipseに移したけれど、こういうときに役に立つからEmacsが捨てられない)肝はここ。 s=[[:Fizz][i%3],[:Buzz][i%5]]*'' :Fizz は 'Fizz' をシンボルで…

File.expand_pathがシフトJISのパスを返せない2

id:sshiさん、コメントありがとうございます。 試してみました。バッチリです。 require 'win32ole' $KCODE='sjis' fso = WIN32OLE.new('Scripting.FileSystemObject') p fso.GetAbsolutePathName(ARGV[0]) Win32OLEを使うと、ExcelやIEなど、Windows上のツ…

File.expand_pathがシフトJISのパスを返せない

応急処置ですが、RubyのFile.expand_pathを再定義して、中でWin32API "GetFullPathName" を呼んでみました。 module K32 extend DL::Importable dlload "kernel32.dll" extern 'long GetFullPathName(char *,long, char *, char **)' end class File def sel…

Rubyでmp3のタグをいじるには4

ちょっと前にできたんだけど、ちょっとしたバグが取れない(;_;) File.expand_path にシフトJISのファイル名食わすとバグるんですよー。

Rubyでmp3のタグをいじるには3

タグの中身が取れたぜ! イェイ。 #!/usr/bin/env ruby $KCODE="sjis" require "dl/import" module Id3lib extend DL::Importable dlload "id3lib.dll" typealias("ID3_Tag", "void") typealias("ID3_Frame", "void") typealias("ID3_FrameID", "int") typea…

Rubyでmp3のタグをいじるには2

http://d.hatena.ne.jp/ma-asa/20041223#p1 1ヶ月以上ほったらかしつつおもむろに開始。Win32APIではなくdl/importを使うことにしたのは良いけれど、id3lib.dllは、C++のクラスの扱い方が判らず断念(;_;) mp3infpを利用することにしました。 #!/usr/bin/env…

Rubyでmp3のタグをいじるには

mp3のタグをRubyで編集したくて、以前id3tagをdlしたのだけど、cygwinでコンパイルに失敗して挫折。 でも今日調べてみたら、なんのこたない配布元にWindows用バイナリあるやん(^^;さてこれをRubyから呼び出すには……Win32APIか。こちらhttp://na.yuki.st/diar…

ファイルのタグを数えるプログラム

#! /usr/bin/ruby =begin * 使い方 > ruby counttag.rb *.html htmlファイルを読んで、タグのリストを作る。 タグリストは「(使用回数) (タグ)」で、回数の多いものほど上にくる (例) 5161 br 2353 b 1814 strong 1349 p 437 a href =end counter = Hash.new…

RDindexが入らない

エラーログなんて面白くないので削除。cygwinがいかんのかなー。 とりあえずrefeは動いてるからいいっちやいいんだけど。

WideStudio

これいいなあ。 インストールだけで実にすんなり動きました。 IDEの類はVB2.0とかDelphiの古いやつしか使ったことないですが、こちらも付属のガイドを見るだけで難なく使えたし。 crusoe600 メモリ128MBの非力なリブL2でも重くないし、日本語が通らなくて悩…

やっとできた

年表AID次バージョンのパーサ部。 ちゅーか今までかかっとったんかい。「段落」「見出し」「引用」といったブロックをそれぞれクラスにして、各クラスが「開始条件」「終了条件」「ネストするか否か」を個別に判定していく仕組み。 完成すれば新しいブロック…

年表AIDバージョンアップ

結局mikiのエンジン部分にまで手を入れる羽目になって四苦ハック(ぁ)。rubyにおけるtemplate methodパターン*1の実装方法をよく理解してなかったのが苦労の原因ですなー。クラス定数のオーバーライドができないとわかるまでしばらくかかった(;_;) (サブク…

文字列を含む正規表現

header = "https?:|ftp:|mailto:|news:" dl = Regexp.new("^:((?:#{header})?.*?)(?!#{header}):(.*)") ちなみにこれ年表AIDの定義リストにurlを入れてもオッケーにするやつ。

年表AID 1.00

要望もあり、ついに配付開始です。 http://64.125.251.96/prog/nenpyoaid1.00.tgz突然ですがここで「年表AID占い」。 ダウンロードした貴方は勇者 説明の通りにインストールして、そのまま動いた貴方は幸運 トラブルの原因を見つけて動作させた貴方は優秀 あ…

SDL版スネーキー

作りました〜。 http://64.125.251.96/prog/snaky090.tgzついでにウィキフーの方に常設ページを。 スネーキー http://64.125.251.96/WalWiki2/wiki.cgi?%A5%B9%A5%CD%A1%BC%A5%AD%A1%BC%A1%A6%A5%B2%A1%BC%A5%E0 ダイヤモンドソリティア http://64.125.251.9…

Ruby/SDLにチャレンジ

http://d.hatena.ne.jp/mikihoshi/20040811#p5動きました。(早ッ!)http://www.kmc.gr.jp/~ohai/rubysdl/rubysdl-0.9.3-win32bin-pack.lzhこれをダウンロードして、c:\に展開して、autoexec.batに1行追加して、再起動。以上オワリ。 「終りですか?」 オワ…

snakyカラー化失敗

Ruby側でエスケープシーケンス使って、cursesのかわりにしてみました。 文字化けもしないし色もつけられます。でも秒間3〜4フレームでは遅くて使い物にならない……orz curses依存じゃ、Linuxとかないと事実上遊べないしなー。Ruby/SDLも魅力的だけど、ちょっ…