rubyco(るびこ)の日記 2007年
このコンテンツに含まれるページ一覧
まつもとゆきひろ−第2回:Rubyを開発するということ
http://www.rubyist.net/~matz/20061228.html#p01
Matzさんは、
「組み合わせることも才能」と言ってくださった方もいるし、そういう才能が...
Rubyのインスタンスベース的な側面
sumimさんのRuby の落とし穴 2から引用。
クラスベースにはないインスタンスベースの本質は(よく言われるように、newを使わずcloneを使うとか、ク...
マクロとリフレクションの関係?
最上先生の文章を読んで…
http://homepage3.nifty.com/mogami/diary/d0701.html#08t1
マクロが無い言語ではプログラムしたくないと考える私のような人間からす...
文字のエンコーディングに関する「富豪的プログラミング」?
かずひこさんの「tDiary UTF8 化計画」を読んでふと思ったこと。
http://kazuhiko.tdiary.net/20070107.html#p02
文字のエンコーディ...
クラス変数の新しいルールCommentsAdd Star
* http://www.rubyist.net/~matz/20070104.html#p03
なかなか難しい。
でも、もともとクラス変数を使うケースは少ない(だろう)から、良いのかな?
...
双子素数の大きさ、記録更新
http://mathworld.wolfram.com/TwinPrimes.html
見つかった双子素数は、だそうです。十進表記だと58711桁の数…。
ってtextfile.orgに書いたんだけど、Rubyですぐに計...
変数の扱いで悩んだ解決
hash = Hash.new
hash["0"] = 0
hash["1"] = 1
hash["2"] = 1
def fib(n)
if hash["#{n}"] then return hash["#{n}"] end
f = fib(n-1) + fib(n-2)
hash["#{f}"] = f
f
end
(0..40).each do |n|
puts "F_{#{n}} = #{fib(n)...
PoLSPoLSoM
(半分ジョークです)
Rubyに対する改善要求の話題。
Rubyに対する提案のうち、PoLSに言及したものの優先度は自動的に下がることになっている。(私じゃない)誰かが自分のバ...
「広い」メッセージングって何だろう
Webで「Smalltalk, Smalltalk, Smalltalk」と三度唱えると、sumimさんを召還することができます。実際には一度でも大丈夫です。(sumimさん、ごめんな...
何もしないメソッドKernel#tapCommentsAdd Star
* http://yowaken.dip.jp/tdiary/20070312.html#p03
1.tap{|x| 2.tap{|y| p x+y}}
それってλバインディング?
...
Array#mapのメモリ確保を見る
ふと「Array#mapって、戻り値となる配列の要素数はレシーバの要素数と等しいな」と思った。
「Array#mapはおそらくCで書いてあるだろう」
「ということ...
日本語テキストに隣接しているASCIIの括弧を探すRubyスクリプト
『数学ガール・ミルカさんとテトラちゃん』という本を書いています。数式がたくさん出てくる読み物なのでLaTeXで...
今度、Rubyのまつもとさんにお会いします
この「rubycoの日記」の中の人(id:hyuki)が近々、Rubyのまつもとさんとお会いすることができそうです。
ということで、何かもしMatzさんへの...
-xオプションはファイル中のスクリプトを抽出して実行
Rubyで-xオプションをつけると、ファイル中のスクリプトを抽出して実行します。
たとえば以下のファイルをsample.txtとしま...
クラス定義の中は新しいフレーム、別のself
Rubyのクラス定義の中は新しいフレーム。
x = 123
p x #=> 123
class Rubyco
p x #=> undefined local variable or method `x' for Rubyco:Class (NameE...
Rubyのどこが好き?
artonさんのたくさんの好きを読んで。
rubycoはまだRubyが好きかどうかよくわかりませんが、今後好きになっていくとすれば…。
文法が好きだから好き(≒プログラ...
Fizz-Buzz問題
1から100までの数をプリントするプログラムを書け。ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には...
JRubyCommentsAdd Star
* JRuby - Java powered Ruby implementation
JRubyを使ってFizz-Buzz問題を解く
JRubyを使ってFizz-Buzz問題を解いてみましょう。以下手順。
Java(JDK)をインストールします。
(省略)
JRubyをダウンロードします。
JRubyDownload!zipファイル...
コマンドプロンプトでのCTRL+D
Windows XPのコマンドプロンプトでCTRL+Dを打ってもEOF代わりになるみたい。へえ。いままでCTRL+Zを使っていたよ。
C:\WORK> ruby
print "Rubyco"
^D
Rubyco
Perlでも...
配列をユニークにしてその個数とともに返せ
配列をユニークにしてその個数とともに返せ。
具体的には、["foo", "bar", "foo", "baz", "bar", "foo"] を、[ ["foo", 3], ["bar", 2], ["baz", 1] ] にする...
Rubyの配布パッケージにはProgramming Rubyの第1版がついてくる
Rubyの配布パッケージにはProgramming Rubyの第1版が含まれているのですね。知らなかった。 http://rubyforge.org/frs/?group_id=167 か...
Ruby on Railsインストールメモ
Rubyをインストールする。
http://rubyforge.org/frs/?group_id=167 へ行く。
ruby185-24.exe をダウンロードする。
ruby185-24.exe を実行し、指示に従う。
C:\work> ruby -v
rub...
RubyでdebugCommentsAdd Star
* Ruby で debug する7つの方法を読んでメモ。
o p, pp, ppp, y, backtrace, caller, set_trace_func, logger, profile, ruby-prof.
...
Structは値を集めるクラス(を作る手軽なクラス)
Structを使うと、構造体が作れます。
Person = Struct.new(:name, :email)
person = Person.new('Alice', 'alice@example.com')
p person #=> #<struct Person name=...
OpenStructで動的構造体を作る
RubyのOpenStruct(ostruct)を使うと、属性が自動生成される構造体を作ることができます。
require 'ostruct'
alice = OpenStruct.new
alice.name = 'Alice'
alice.mail = 'alice@exampl...
SQLite3で遊ぶ(1)
何となく、Rubyを使ってSQLite3で遊びたくなりました。
1. CREATE TABLEでテーブルを作ります
require 'sqlite3'
SQLite3::Database.new('rubyco.db').execute_batch(<<-'EOD')
CREATE TABLE people (
nam...
SQLite3で遊ぶ(2)
昨日は途中で眠っちゃったので、仕切り直し。今日はテーブルの作成(CREATE TABLE)、レコードの挿入(INSERT)、それにSELECTを実行します。それからトランザクションも。...
Rijndaelで遊ぶ
急にRubyで暗号化がしたくなりました。
1. cryptをインストールします。
C:\work> gem install crypt
Successfully installed crypt-1.1.4
ちなみにファイルは C:\ruby\lib\ruby\gems\1.8\gems\crypt-...
JRuby: JavaプラットホームのためのRuby
この土日はRuby会議2007があります。関係者のみなさま、頑張ってください。6月9日のセッション壱の最後にはJRubyがありますね。
Ruby has become one...
JRuby+RailsとRuby+Railsの速度比較
JRuby が「本家Rubyより速い」という @IT 記事をみて、Rails 上でスループットを比較してみました
結論としては、本家のほうがだんぜん速かったです...
...
JRuby: 速報ログCommentsAdd Star
* http://jp.rubyist.net/RubyKaigi2007/Log0609-S1-04.html
サンタクロース問題を解く(Ruby)
サンタクロース問題をRubyで書いてみました(via サンタクロース問題を Squeak Smalltalk で)。あちこちまだ変ですが、とりあえず公開。
require 'thread'
REIN...
Duck Typingは大規模プロジェクトでも大丈夫か?
整数として処理したければ、オブジェクトがto_iという振る舞いを持っていることを期待してなんでもとにかくto_iしてしまうのがDuck T...
Mailクラスでメールを解析する
Mailクラスを使うとメールを解析することができます。以下では、mbox形式のファイルストリームからメールを読み出し、差出人に example.com が含まれ...
Array#+とArray#concatの違い
Array#+では、新しいArrayオブジェクトが作られる。Array#concatではselfに足し込まれる。
以下のプログラムでは、新しいオブジェクトが作られたかどうかをobjec...
クロージャによる超軽量並行プロセス
sumiiさんの『クロージャによる超軽量並行プロセス』を、jijixiさんがRubyに移植したようなので、試してみました。jijixiさんが書いたサンプ...
メソッド定義の中でメソッド定義
Rubyでは、メソッド定義の中でもメソッドを定義することができます。
以下のプログラムでは、outerメソッドの定義の中でmethodというメソッドを...
正規表現の選択
正規表現の選択(|)の優先順位は低いので注意が必要です。
1. 以下のプログラムは、メールの中から「行頭にFrom:またはSubject:を含む行を抽出する」ものですが、期...
Rubyの父と対談CommentsAdd Star
rubycoの中の人id:hyukiが、Rubyの父Matzさんと対談しました。詳しくはこちらをどうぞ。
* 日経ソフトウエアで「まつもとゆきひろ×結城浩」の対談
1から1000まで続けて書いてできる整数…を考える
sumimさんの記事経由で灘中学校98年2日目第1問(問題)へ。
1から15まで続けて書くと123456789101112131415となる。これを1つの整数と考え...
指定した期間内から、ランダムで一日を選択する
randを使ってある期間(1940〜1980とか)をランダムに返すにはどうしたらいいんだぁあぁあぁあぁあ
randがぁ、randがぁああああ。 - bau...
添字に正規表現を使って置換
RubyではString#[]=で正規表現を指定すると破壊的な置換ができます。
以下の例では、strが保持しているStringオブジェクトを書き換えてcolorをflowerにして...
ようこそゲストさん
rubyco(るびこ)の日記
プロフィール
日記の検索
カレンダー
日
月
火
水
木
金
土
1
2
3
4
5
6
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
最近のコメント...
String#replace
[ruby-list:44038]を読んで、String#replaceという破壊的なメソッドを知る。
a = 'hyuki'
b = a
a.replace 'rubyco' # 破壊的
puts a, b
c = 'hyuki'
d = c
c = 'rubyco' # 非破壊的
puts c, d
実行結果...
JRubyが速くなっている?
JRubyが遅いという話は過去のものになるかもしれません。
trunkのJRubyがヤバいことになってる件 - recompile.net
だそうです。わくわく。
追記:
なひさんから情...
プログラミング言語Rubyの勉強会資料CommentsAdd Star
わかりやすいRubyの資料。
* http://dev.ariel-networks.com/articles/workshop/ruby/
via id:naoyaのブックマーク
...
Ruby 1.9.0 で tDiary を動かしてみる(トップページだけ)
http://www.machu.jp/diary/20071228.html#p01
まちゅさんによる記事。Ruby 1.8.5で動いていたtDiaryを1.9.0で動かす試み。
Rubyの違いに注目する...