ラベル Ruby の投稿を表示しています。 すべての投稿を表示
ラベル Ruby の投稿を表示しています。 すべての投稿を表示

2011年9月9日金曜日

OpenSSL::Cipher::Cipher

RubyのOpenSSL::Cipher::Cipherについて。


パディングについて
OpenSSL::Cipher::CipherのパディングはPKCS#5形式。

下記が詳しい。

OpenSSL::Cipher::Cipher のパディング処理 | へびにっき
結果、PKCS#5 の PBES1, PBES2 と同じく RFC 1423 で定義されたパディング処理を行っていることが分かった。このパディングアルゴリズムは一般には PKCS#5 Padding などと呼ばれているらしい。


鍵長について
AES-128の場合、keyの長さは128ビット。
それより短いとエラー。
長いとはみ出た部分は無視された。
keyには文字列をセットすればOK。
ASCIIなら16文字(1文字で1バイト=8ビット)。
平仮名は1文字で(UTF-8なので)3バイト扱いになった。

2011年4月15日金曜日

ブラウザ上でRubyを実行できるサイト

try ruby! (in your browser)
Try out Ruby code in the prompt above. In addition to Ruby's builtin methods, the following commands are available:

ブラウザ上でコンソールのようにRuby(1.9)を実行できる。
さらにhelpのチュートリアルに従って入力していけば、Ruby初心者用の操作を覚えられる。
すごい。

2010年10月22日金曜日

Rubyなら 3行だけど PHPなら 1行さ!

javaはやっぱり長いので、ruby風にしてみる例 - @katzchang.contexts
長いですね。
読むのもイヤになります。
Rubyなら三行で書けるのに。

f = open( "hoge.txt" )
f.each {|line| print line}
f.close

最もタメになる「初心者用言語」は Java

長いですね。3行ですか。
読むのもイヤにはなりませんが、
PHPなら1行でかけるのに。
readfile("hoge.txt");

PHPは一番実用的なテンプレートエンジン言語だい!

2010年10月14日木曜日

JRubyは Mirahという言語で実装されるらしい

Mirahやばい - urekatのスカンク日記3
Mirahを作った動機は、JRubyを実装するためJavaを書くのが嫌になったこと。MirahでJRubyを実装する気だ。

そのうちJRubyをMirahで書くのが嫌になってまた別の言語を作ったりして...。

ところでMirahの実行(コンパイル?)にはJRubyが要るらしい

2010年8月27日金曜日

Rubyでインストール済みの場合のみ gemを requireする方法

Ruby/requireできない時を考慮する方法 - TOBY SOFT wiki
requireできないのをrescueする時は、LoadErrorで明示してトラップしないといけません。

あったら使うけど無くても構わない(少なくとも処理は続行する)ようなお助けツールをgemるときに便利。

2010年8月25日水曜日

Rubyで使える assert系メソッド一覧

Test::Unit - Rubyリファレンスマニュアル
各 assertion の最後の引数 message はテストが失敗したときに表示される メッセージ

assert_not_equalはあるのに、assert_not(あるいはassert_false)は無いんだー

2010年8月13日金曜日

Rubyで翌月の日付を求める方法

Date - Rubyリファレンスマニュアル
self >> n

self から n ヶ月後の日付オブジェクトを返します。 n は数値でなければなりません。

こんな感じ
date = Date.new(2010, 1, 1)
date >> 1 # => 2010-2-1

31日まで無い月はこんな感じに前倒しになった
Date.new(2010, 3, 31) >> -1 #=> 2010-2-28




2010年8月11日水曜日

Rubyの文字コード変換ライブラリ NKFのオプションパラメータ

Rubyist Magazine - 標準添付ライブラリ紹介 【第 3 回】 Kconv/NKF/Iconv
NKF は変換を converted = NKF.nkf( option_string, string ) といった文法で行います。オプションを文字列として与える方法は複雑で覚えづらいものではありますが、その一方で Kconv を使う場合に比べてはるかに複雑な処理を行うことが可能となります。なお、オプションは NKF モジュールのベースとなっている nkf のオプションをほぼ全て使うことが出来ます。

インプットの文字コードは指定した方がいいらしい

2010年7月23日金曜日

Rubyで switch case

制御構造 - Rubyリファレンスマニュアル
case [式]
[when 式 [, 式] ...[, `*' 式] [then]
  式..]..
[when `*' 式 [then]
  式..]..
[else
  式..]
end

いつも忘れる...
.

Ruby not on Rails

Ruby off Rails (japanese)
Ruby off Rails
by Stoyan Zhekov
Kyoto, 17-May-2008

タイトルが気に入った
.

2010年7月22日木曜日

Rubyの else if

制御構造 - Rubyリファレンスマニュアル
Ruby では if を繋げるのは elsif であり、else if (C のように)でも elif(sh のように)でもないことに注意してください。

elseifでもないんだね!
.

2010年7月16日金曜日

Rubyコーディング規約まとめ

Rubyコーディング規約 « 山本隆の開発日誌
Rubyコーディング規約について調べてみました。

3つの規約へのリンク+アルファで参考になる。
.

Rubyのまつもとさん (Matz)によるコーディング規約的な啓示

コーディング規約というほどカッチリしたものではないが、味わい深い。

Matzにっき(2004-10-06)
コーディングスタンダード

社内メーリングリストでRubyのコーディングスタンダードの話題が持ち上がる。 個人的には「自分で勝手に決めて」という感じなのだが、 まあ、私のスタイルを参考にしたい人もいるだろうということで、 まとめてみた。

だいたいはShugoさんのRubyコーディング規約と同じ。
でもRuby以外でも役に立つことがちらほら。
以下抜粋。
  • ライブラリファイルの末尾には if __FILE__ ==
    $0 で囲んで テストケース(かサンプルプログラム)を書いておくとよい。
  • 自明なことはコメントしない。なぜなら本当に大切なコメント が埋没してしまうから。
  • 「未来の自分が混乱しそう」と思ったことは躊躇せずコメント する。そうでなければコメントはあまり必要ない。
  • 「本当に必要だ」と感じた時以外はメソッドは20行以内に抑え る(数はどうでもよい、目安に過ぎない)。例外は巨大なcase文
    を含むディスパッチコードくらいか。

Rubyコーディング規約テンプレート

Rubyコーディング規約
本文書は、Rubyによりコーディングを行う際の規約について述べる。 実際のプロジェクトに適用する際には、このコーディング規約をカスタ マイズして用いることを推奨する。

まとまっていて助かる。

Rubyは言語内言語が作りやすい「緩い」言語なので、けっこう幅広い書き方ができるので、それだけに書く人の好みによって書き方が違ってくる。それだけにコーディング規約を決めようとすると、チームの人数が増えれば増えるだけ紛糾する。

上記規約について、個人的には下記の方が好き。
  • インデント:スペースよりタブが使いやすい。(インデントをまとめて戻す時に。)タブは4文字分が好き。(2文字だと窮屈。でも2文字のほうが「横幅80文字ルール」的に楽なことも多いけど。)
  • コメント:メソッド定義内でもコメントは入れちゃうよ。必要ならね。

Railsとかはどうなってるんだろう?

2010年5月28日金曜日

REXMLとは

RubyでXML操作: Netsphere Laboratories
Rubyの標準添付XMLライブラリ、REXMLの使い方。

Rubyに標準で付いてくるXML操作用ライブラリらしい。
XPathもできる。
.

ブログ アーカイブ

カテゴリー