argius note

プログラミング関連

Ruby

Mac OS X で Redmine

Tracに少々不満を感じてきたので、Redmineを使ってみることにしました。最初は通常のインストールを試してはみたものの、早々に断念し、All-In-Oneインストーラを使ったらあっさりインストール完了。 下記サイトからAll-In-Oneパッケージを入手し、unzipし、…

英単語の頻度を簡易集計する

なんとなく思いついたので、やってみました。入力に使ったページはhttp://en.wikipedia.org/wiki/Multiprocessing,http://en.wikipedia.org/wiki/Blogです。マルチバイト文字には対応してません。 shコマンドだけでやってみる 出現回数が多い順に、上位10件…

手動ソート

いくつかの候補を順位付けしたいんだけど、普通にやると上手くいかない。そこで、「AとBならどっち?」と言う風に聞かれたら答えやすいかな、と考え付いたのがこれ。 正確には比較を手動で行うので「手動比較ソート」となるのでしょうか。 PerlとRubyとJav…

ctimeを表示するone-liner

どこかに書いておいた気がするんですが、見当たらないので。 $ find . | ruby -ne 'print File.ctime($_.chomp).strftime("%Y/%m/%d %H:%M:%S "), $_'strftimeはお好みで、無くてもOK。 最近はPerlやRubyを触ってなかったので混乱していたのか、"chomp"を忘…

ポーカーの役判定

久々にどう書く?orgに挑戦。既に半月前のですが、何とか自分でもヒントとか無しで解けそうだったのでやってみました。こういうのをLispかHaskellで、すらすら書けようになりたい。 本体はpoker_hand。それより下はテスト実行用。本体はごちゃっとしたのをす…

簡易データベースの実装

配列の配列を、SQLを使って操作できるようにしたものを作ってみました。簡易なので、制限は山ほどありますが、一部は以下のようなものです。 SQLと言っても、限られたものしか使えない SELECT,UPDATE,INSERT,DELETE,WHEREと不完全な CREATE TABLE 内部値は全…

Ruby1.9

http://www.ruby-lang.org/ja/news/2007/12/25/ruby-1-9-0-release/ いわゆるクリスマスリリース。YARVが載るのって、てっきり2.0からだと思ってました。2.0からはRiteになるんだとか。 1.8と共存可能なのかな。Ruby版Javadocみたいなのも出来たみたいです。

ローカル用ブックマーク(今度はRubyで)

調子に乗って、Ruby版も作ってみました。やっぱりRubyのほうが楽に書ける半面、WEBrickとか使ったことなかったのでその辺で苦労してます。 起動は以下のような感じ。 ./bukma.rb ポート [(プロキシを使う場合にURLを指定)]今のところ、タイトルのところとか…

ruby_dev(ML)

開発者レベルの話なんて、「きっと私には縁の無い話ばかり飛び交っているに違いない」、と思い込んでいて敬遠していましたが、ちょっと読んでみたら意外と面白くて為になりました*1。 試しにひとつ→[提案]Array#tail。 *1:メールでパッチが飛んでるんです…

Rubyの標準ライブラリをPureJavaで書いてみる (2)

懲りずに続けてみます。 クラス名の衝突を先頭3文字にして回避してみましたが、ちょっと格好悪い。 Strクラス:Stringのwrapper。Enumerableを実装してる。 Numericクラス:数値のスーパークラス。自動変換(できるだけ)。 Intクラス:Integerのwrapper。当…

NetBeans IDE 6.0

Milestone7の時にちょっと触ったけど、前のバージョンよりは格段に良くなってます。 5.0のときも十分使えるようにはなってましたけどね。特にMatisseにはお世話になりましたし。だけどやっぱり、使い込んでる時間に差がありすぎることを考慮しても、エディタ…

Rubyの標準ライブラリをPureJavaで書いてみる (1)

これは11/27に書いたものの続きです。Rubyの記述力の高さをJavaでも実現してみたいので、RubyのつもりでJavaのコードが書けるようなライブラリを作ってみます。既にどこかで同じかそれ以上のものが作られていたりするかもしれません*1が、JavaSE5.0から導入…

JavaでLL言語のようにリスト(配列)を操作したい

Lisp発祥かと思いますが、LL言語でリストor配列を扱う関数orメソッドのようなことを、Javaでやりたい場合はどうやるのが一般的なのでしょうか。 具体的にはRubyで例を挙げてみますが、 ia = [3, 2, 7] p( ia.select() do |item| item >= 3 end ) # => [3, 7]…

Zlibでアーカイビング

正直に言いますが、特にネタが無かったので。アーカイビングって言葉、なんか違和感がありますね。 require "zlib" path = ARGV.shift text = ARGV.shift if text.nil? or text.empty? Zlib::GzipReader.open(path) do |inp| print inp.read end else Zlib::…

"ubygems"って? CygwinのRubyが動かない

少し前に、Railsで遊ぼうと思ったときに色々とインストールしたりしたのですが、忙しくなってしまい途中で放置していました。 久しぶりに使い捨てスクリプトをRubyで書いたので動かしてみたら、何か変なエラーがでました。 $ wruby -v ruby 1.8.6 (2007-03-1…

REXML DOMの場合

RubyのXMLライブラリREXMLを使ってみました。 次のスクリプトは、XMLをタブ区切りテキストに変換します。コマンドラインから渡されたすべてのファイルを繰り返し処理します。 require "rexml/document" ARGV.each do |path| doc = REXML::Document.new File.…

長方形の交差判定 (2)

復習がてら、Ruby版。 class Rectangle attr_reader :left, :top, :right, :bottom def initialize(left, top, right, bottom) @left, @top, @right, @bottom = left, top, right, bottom end def valid? left < right and top < bottom end end def overlap…

JavaからRubyへ ―マネージャのための実践移行ガイド

3週間くらい前に読んだきり忘れていました..... Rubyに移行できれば開発効率の向上などの恩恵を受けられるかもしれないけど、やっぱり色々なリスクもあります。そこで、移行するにあたって注意すべき点、考慮すべき点などを示して、現実的な移行を提案してい…

正規表現の一例

久々のRuby。リファレンスマニュアルにまとめられているので敢えて書くこともないのですが、練習がてら書いておきます。 s = "ab12c345d" puts s[/\d{3}/] #=> 345 puts s.match(/\d/) #=> 1 re = /[^ab\d]/ puts re.match(s) #=> cこれ↓を書いていて、Ruby…

IDE:EclipseとNetBeans

今回は、フリーのJavaIDE、EclipseとNetBeansについての所感を述べてみたいと思います。 どっち派? そう問われたら、どちらかと言えばEclipse派、です。が、2.1〜3.2まで使ってみて、一番使い勝手が良いのが3.0なので、未だに3.0がメインです。性能は新しい…

サイトトップがリニューアル

http://www.ruby-lang.org/ja/ いつのまにかリニューアルしてました。すっきりしましたね。 さらっと見て回りましたが、これ↓、いままで知りませんでした。トップの"Try Ruby!"リンクから行けます。 http://tryruby.hobix.com/ インタラクティブモードのRuby…

簡易アクセスログ解析

# 月ごとにファイルが分かれる YYYY/MM/DD HH:MI:SS : ip-address [path] user-agentこんな感じのフォーマットで出力されたアクセスログを、FTPで取得して集計するスクリプトを書こうと思い、久しぶりにRubyを使ってみた。packとFTPとuniqがメインかな。同じ…

RDT 0.8.0

RDEが不安定なのと、Eclipseの重さが気にならなくなったので、RDTをセットアップ(Eclipse3.2)。以前書いたグラフとかを動かしてみた。

♪複雑な波形を作ってみる

これから「ディジタルフィルタ」の練習をするにあたって、グラフ書くぞうくん(そんな名前じゃないが)をちょっと進化させた。ファイルの最後に式を書けるようになった。組み込み定数DATAを使ってみた。 で、ただのサイン波からちょっと複雑な波形を作ってみ…

練習:任意のグラフを描く

ちょっとくどいですが、前回のグラフ描画クラスを使って、任意のグラフを描く処理。標準入力から入力された方程式をグラフ化する。 require "graph" include Math print "> " s = STDIN.gets.chomp # y = 2 * x のように入力 GraphScreen.new.loop() do |x| …

練習:グラフ描画クラス

グラフを書くとき、いちいち物理的な座標で描画すると面倒なので、論理座標で指定して、描くときに内部で物理座標に変換するような機能を持ったグラフ描画クラスを作ってみた。 新たな参考資料として、ここを見つけた。大いに役立った。感謝。 多少手直しが…

練習:サイン波グラフ

グラフ描画クラスを使って、サイン波のグラフを描いてみた。 require "graph" include GraphModule GraphScreen.new.loop(1/2.0) do |x| theta = x * 360 sin(theta) # y = sinθ end Tk.mainloopこれも、簡易お絵かきクラスを使った練習。Graphクラスを作っ…

練習:螺旋を描く

引き続き、簡易お絵かきクラスを使った練習。樹木曲線の流用で。 require "painter" include Math UNIT = 1 TURN = 5 INCR = 0.005 def to_radian(d) d * Math::PI / 180 end def curve(p, n, length, angle) x = length * sin(to_radian(angle)) * UNIT y =…

Tkお絵かきクラス

簡易お絵かきクラスを作ってみました。 # painter.rb require "tk" class Painter def initialize x = 200, y = 200 @c = TkCanvas.new("background" => "white") set(x, y) end def draw x, y xx, yy = @x + x, @y + y i = TkcLine.new(@c, @x, @y, xx, yy)…

Ruby/Tk 導入

アルゴリズムの模様を書くやつがやりたいので、Ruby/Tkを使うことにしました。幸いなことに、Cygwin版には最初から入ってるということなので、早速テストしてみました。ruby/tk FAQを参考にさせていただきました。 require "tk" c = TkCanvas.new i = TkcLin…