2009-03-01から1ヶ月間の記事一覧

Struct

Rubyにもstruct があるということを教えてもらったので、早速使ってみる。 Struct って? いわゆる構造体。語弊はあるけれど、メソッドの無いクラスのようなものと理解している。 Rubyの場合、Struct.new でstruct型のサブクラスを作り、それをさらにnewする…

Objectに動的にプロパティを追加する

php

object 生成後に、宣言とか関数とか使わずにプロパティを追加できるらしい。 by PHP 5.2.6 (Mac OSX) foo = 'bar'; // add property print_r(get_class_vars('Test')); print_r(get_object_vars($test)); // 実行結果 Array ( [a] => default ) Array ( [a] …

Passenger をアップデート

Redmine を svn up してアップデートしてみたが、 504 エラーが出た。 なにかと思ったら、先日Passengerのバージョンが上がったのを放置していたせいらしい。Passenger をアップデートすると、apache module を再インストールする必要がある。 $ sudo passen…

Project Euler - Problem 2

1分間でなんてとても解けません。 Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be:1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...Find the sum of all the even-…

Project Euler - Problem 3

素因数分解 - Wikipedia The prime factors of 13195 are 5, 7, 13 and 29.What is the largest prime factor of the number 600851475143 ? Ruby には便利なライブラリがありますね。 singleton method Integer.prime_division #!/usr/bin/env ruby require…

ついでにカリー化

カリー化 - Wikipedia 複数の引数をとる関数を、引数が「もとの関数の最初の引数」で戻り値が「もとの関数の残りの引数を取り結果を返す関数」であるような関数にすること。 クロージャよりもさっぱりだよ!! サンプル 書いてみたはいいけどいまいち良さが…

Ruby でクロージャ

クロージャってブロックとしてよく使っているが、何者なのかよくわかってなかった。 急に気になったので調べてみた。ただし Wikipedia。 クロージャ - Wikipedia 典型的には、クロージャはある関数全体が他の関数(以下、エンクロージャ)の内部で宣言された…

Rails 2.3.2 がリリースされた

rails 2.3 系の安定版がリリースされたようだ。 Riding Rails: Rails 2.3: Templates, Engines, Rack, Metal, much more! Ruby on Rails 2.3 Release Notes 目玉機能としては、 Templates: 新アプリのスケルトンを作ることができる Engines: アプリケーショ…

Macportsでnon-activeなものをアンインストールする

mac

1行でいいらしい。 $ sudo port uninstall inactive

Ruby で Singleton

Ruby で Singleton を実装してみる。 モジュールなし 生成したオブジェクトをクラス変数へ保存しておく。 #!/usr/bin/env ruby class Singleton @@instance = nil; def initialize puts "MyInitialize" end def self.instance @@instance = new if @@instanc…

public なメソッドを private でオーバーライドした場合

Java だと確か、アクセス制限を弱める方向でオーバーライドできた覚えがある。 PHP と Ruby で同じことを試す機会があったのでメモ。 PHP の場合 Error になる。public なメソッドは public でないといけないらしい。 Java と似た方式。

Rubygemsがhomeディレクトリに入ってしまう

現象 gem list で表示されるのに、gem uninstall してもエラーになってしまう。例えばgrowlnotifierを抜こうとする。 $ sudo gem uninstall growlnotifier [~] ERROR: While executing gem ... (Gem::InstallError) Unknown gem growlnotifier >= 0 原因 イ…