ruby

Java VMが確保するヒープサイズを調べる

javaの実行引数に-Xmxっていうオプションを追加することで明示的にヒープサイズを確保するわけですが、確保できる上限ってのがどうやらOSとかCPUとかに依存して一意じゃないということを会社の同期のT君に教えてもらいました。じゃぁ使っているPCはどこまで…

代入処理と同時にifを評価

rubyの場合、nilとfalse以外はtrueとなる。 よって、こういう書き方ができる。 if name puts name end この書き方はjavascriptでもできますね。 で、ここまでは知ってたんだけど、こんな書き方も出来るってのは知らなかった。 ary = ["hello"] if name = ary…

ファイル中から必要箇所を抽出する

ポイントは正規表現パターンの()でくくったところが、$1という変数で取得できるというところ。 当然()を複数用意すれば$2,$3という変数でマッチング箇所が抽出されます。以下はhtmlファイル中の<input type="text" value="" class="sample">みたいなtextフィールドのvalue部分を抽出して画面に表示するプ…

Ruby on Rails2.1 validateメソッドの学習

StrutsのActionForm#validateと同じ機能がRailsにもあります。 RailsにもActionFormのようなrequest情報を保持し、簡単にアクセスできるparamsという変数のオブジェクトがあります。ただ、validateメソッドを定義するのはそこじゃぁない。どこかというとモデ…

rubyを1.8.5から1.8.7にバージョンアップしてみた

そしたらRailsが動かなくなった、という話(泣)。あ、でもちゃんと動くようになりました。 rubyのバージョンアップ rubyのバージョンは1.8.5でした。OSはCentOSですが、どうやって入れたんだったかな・・・。当時(といってもつい最近ですが)1.8.6が出てい…

Ruby on Rails2.1 ログインユーザー情報の取得

current_user変数で取得可能。html.erbファイルの中なら <%= current_user.id %> ってな感じで使います。

Ruby on Rails2.1でログイン画面の作成

Railsの勉強3日目です。そういえば、ログイン機能を作るのを忘れていました。今まではモデルの作成とCRUD画面およびそのためのコントローラーの作成は文字通りレールに乗っかって出来たわけですがログイン機能ってどうやって作るんだろう。。 私気づいたんで…

Ruby on Railsで多対多の実現

昨日からRailsを使ってちょっとしたプロジェクト支援ツールを作っています。 プロジェクトにはメンバーが所属することになりますが、その関連は多対多です。今日はこれを実現してみたい。 モデル作成、テーブル作成 必要なのはProjectクラスとMemberクラス。…

Ruby on Rails2.1やってみた。

rubyが大分使えるようになってきたので、Ruby on Railsにチャレンジしてみた。 vmware上にCentOSが入っているので、そちらに環境を作ってみた。 準備 Railsのダウンロードページにいくと、手順が表示されています。 http://www.rubyonrails.org/down まずはr…

既存クラスの拡張

javaのコードでよくある、空文字かどうかのチェックロジック。 if (str == null || str.equals("")) { これは次のようにcommonsのStringUtilsを使えばもうちょっとすっきり書ける。 if (StringUtils.isEmpty(str)){ で、rubyはどうかというとStringクラスにe…

プロファイル

rubyプログラム中でrequire 'profile'と書くだけでプログラム実行に対するプロファイリング結果が標準出力に表示されます。5月29日の「テストデータ作成」で書いた記事の改良版の方がなんとなく早そうな気はしてたんですが、実際のところどうなんやろ、と思…

5/30のMステ

晩御飯食べながら、Mステ見てたんだけど、マライアキャリーが出てた。Mステも久々に見たがマライアキャリーはもっと久々に見た。ウケタのが鈴木その子みたく顔に照明がガンガンあたってんの。横にいるタモさんと輝きが違いすぎてワラタ。マライアキャリーの後方…

linux上のサイズの大きいディレクトリを表示させるrubyスクリプト

大容量のHDDが安価に手に入る時代において何故かうちのサーバー環境はいっぱいいっぱい。 つい昨日もdfコマンドを実行してみたら空きが全く無くなっていました。。 こんな時はデータを削除していくことになるんですが、全部を見ていくのはできないのでどのデ…

テストデータ作成

結合テストフェーズで、10MBのファイルが急遽必要になった。内容はどうでもいい。とりあえず10MBであればいい。 以下のプログラムで出来た♪ f = File.open("F:/Temp/sample10m.txt", 'w') (1024*1024*10).times { f.print "a" } f.close 6/7 追記 次のように…

linuxコマンドをrubyから実行!

以前、linuxコマンドをperlから実行!というエントリを書きましたが、同様のことがrubyでも出来ました。 基本的にはperlと一緒で、実行したいコマンドをバッククォートで囲んでやればOK。これで「ls -l」を実行した結果を画面に表示できる。 puts `ls -l` ユ…

emacsの設定

linux上でrubyのプログラミングをやるにあたって、emacsをセットアップすることにした。 yum install emacs yum install ruby yum install irb wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.6.tar.gzで、ruby-1.8.6.tar.gzを解凍し、miscフォルダ以…

10進数から2進数への変換

300Mってjavaのint型(32)に収まるのかなー、とふと思って調べようと思ったのですが、rubyだとすぐ出ますね♪ to_sメソッドの引数に2を渡せば2進数でどうなるかが返ります。で、その桁数を取れば、何bitかが分かる。 300000000.to_s(2) # "10001111000011010…

数字を文字列に変換。ついでに文字列を数字に変換。

ちょっとしたことなんですが、C#で数字→文字列をどうやるのかがすぐにわからずイライラ・・・ 誘惑に駆られて一瞬以下のようにしようかと思ったワタシ・・・ string str = "" + 23; 数字を文字列に java脳で考えてたからか、これがなかなか分からなかった。r…

イントロスペクション

今日はイントロスペクションを学習。javaでいうリフレクションってやつです。 では早速。 methods = "a".methods ってやると、文字列aのメソッドが配列の形で取得できる。特定のメソッドを取得するには以下のようにする。 method = "a".method("*") ちなみに…

rubyのmix-in

rubyにはJavaと同じようにクラス階層がある。が、rubyにはモジュールという概念もある。 簡単に言うと、クラス階層を横断して機能を再利用するための仕組みといったところでしょうか。 クラスに組み込んで(mix-in)して使うもので、1つのクラスに対して複数…

継承と特異メソッド

今日はこの2つについて勉強したのでまとめてみる。 継承 オブジェクト指向言語が持つ代表的な機能。親クラスを拡張したい時に使う。 クラス定義時に「 class MyString < String end 特異メソッド インスタンスに対して固有のメソッドを追加できるという機能…

rubyの勉強本格始動 [クラス定義]

rubyの勉強を本格的に始めることにした。以下がよさそうだったんだけど、「言語編」と「ライブラリ編」に分かれていて、しかも両方とも約4000円なのです。たかー。 プログラミングRuby 第2版 言語編作者: Dave Thomas,Chad Fowler,Andy Hunt,田和勝,まつもと…

excelの行・列

excelをjavaで操作する必要が出たために久々にpoi使いました。 その中で、行オブジェクトから特定のセルを取得する際の引数がshortだったので、あれ、8bitで足りるの?なんてふと思って調べてみると列はIVってのが右端。えーっとIVっていくつ??ちなみに下…

ちょっとしたことなんだけど

例えば1,2,3,4,5,6,6,6という数字がつまった配列があった時、それぞれ偶数なのか奇数なのかを判断してコンソールに出力する、といったプログラムを組む必要があるとする。その時の区切り文字は「, 」とする。 上記の配列の場合、次のように出力されるのが期…