スポンサーリンク

Ruby

デブサミ2013 参加レポート

今年も目黒・雅叙園にて,翔泳社主催のDevelopers Summit(デブサミ) 2013が開催されている。事前申し込み制,参加は無料。ITエンジニアやデベロッパ向けの講演・セッションが多数。年一度2月に開催される,開発者の最大のイベント。 今年の目玉は,まつも…

あなたが理解できない,たった一行のRubyのコード (動的言語に対する静的解析の限界)

あなたは,下記のコードを理解できない。 p f /g+h/i これはRubyのコードである。「p」は,コンソールに出力する関数である。 問: だいたい,何をやっているコードですか? ※例えば,四則演算など。 構文をおおまかに説明して下さい。 どれが変数で,どれが…

Heroku(ヘロク)で,Ruby on Railsアプリを簡単に公開する方法の入門 (無料のRuby向けPaaS環境の使い方)

Heroku (ヘロク) とは,Ruby on RailsのWebアプリを簡単にデプロイできるPaaS。基本的に無料。 拡張機能を使う場合は,段階的に有料になる。 レンタルサーバやVPSを借りず,面倒な「環境構築」作業も一切なく,いま流行りの"クラウド"上で,非常に簡単にWeb…

Ruby on Railsのバージョン間での違いのまとめ 一覧表(1系・2系・3系の差異と歴史)

Ruby on Railsの,バージョン間での違いのまとめ。一覧表を見て,Ruby on Railsの発展・遷移の歴史をたどる事ができる。また,各バージョンの仕様の変化(リリースノート)についてのリンク集も掲載。 一覧表(簡易年表) 現時点での最新版と,次期バージョ…

CentOS 5.6上で Apache+Passenger+Ruby on Rails 1.2 を動作させる手順 (仮想マシン上に,レガシーRailsの実運用環境を構築)

Ruby on Railsのアプリを実用的に動作させるためには,Passenger(mod_rails)を使う。これはApacheのモジュールであり,Linux上でしか動かない。 したがって,もしRailsで真面目に開発・運用したい場合,Linux上に Apache+Passenger+Ruby on Rails の環境…

JavaScriptの動かないコード (中級編) 重いページで,onloadのイベントリスナが実行されない

連載目次へ 以下のJavaScriptコードが意図した動作をしないのは,なぜですか。(制限時間1分)やりたい事: サーバサイドで、画面上のフォーム内に、大量のhiddenデータを描画する。 描画が終わったら、自動的にフォームを送信(submit)する。 <body> ↓このフォ</body>…

Ruby on Rails 1.2 での開発のはまり所

Ruby on Rails 1.2.6 でWebアプリケーションを開発する際,はまった事のまとめ。既に世の中では Rails 3.x以降のバージョンが出ているが, この情報はレガシーRailsアプリケーションの保守・メンテに役立つだろう。 (1) プラグイン関連 (1−1) acts_as…

DBの「トランザクション分離レベル」が必要な理由  (PostgreSQLで,ファントム・リードを防止すべきサンプル事例)

データベースには,「トランザクション分離レベル」というものがある。 以下では,それが なぜ必要なのか? デフォルトのレベルでは,どうして駄目なのか? PostgreSQLでは,どうやってレベルを変更・確認するのか? などを取り上げる。 トランザクション分…

Rubyの動かないコード (中級編) Ruby on Railsで,スレッドごとにトランザクションを分離したい

以下のRuby on Railsのコードが,意図した動作をしないのはなぜですか。(制限時間1分) やりたい事 2つのスレッドを同時に動かす。 スレッド1では,レコードを登録後,ロールバックする。 スレッド2では,レコードを登録後,コミットする。 タイミング…

Rubyの動かないコード (中級編) ローカル変数の「暗黙の初期化」に関するエラー(ローカル変数のスコープが事前コンパイルで決まる)

以下のRubyのコードが,意図した動作をしないのはなぜですか。(制限時間1分)やりたい事: 画面に「1」と表示する。 # aに1を代入する eval "a = 1" # aを呼び出す p a

Rubyの動かないコード (初級編) ブロックとクロージャの性質

以下のRubyのコードが,意図した動作をしないのはなぜですか。(制限時間1分)やりたい事: 1から3までの各数値の2乗を計算する。 プログラム終了時点での,変数の状態を表示する。 # 「p」で日本語を出力するための設定 $KCODE = "sjis" # 1から3までの範…

Railsのモデルを,簡単に単体テストしよう (フィクスチャを使わない,気軽なテストバッチ)

Ruby on RailsでのWebアプリ開発では,何もかも「レール」が敷かれていて便利。しかし「そのレールはいらない」という時もある。レールが,かえって足かせになるのだ。 その一例が,単体テストのテストデータ(フィクスチャ)の面倒くささ。 Ruby on Railsの…

Rubyの動かないコード (初級編) 同じクラス内なのに,privateメソッドを呼べない場合がある

以下のRubyのコードが,意図した動作をしないのはなぜですか。(制限時間1分)やりたい事: 1つのクラス内で定義されているメソッドを,順番に呼び出して実行する。 hoge.rb # クラス定義 class Hoge def self.main_method # このクラス中で定義されている…

Rails と Excel VBA で,XMLファイルを読み書きしよう (MSXMLとREXMLの使い方)

バッチ・マクロのTOPへ Webアプリ(Ruby on Rails)とデスクトップ(Excel VBA)の間で,XMLをやり取りするサンプルコード。 VBAでXMLを読み込み(そしてシート上に表示する), VBAでXMLを書き出し(シート上の情報をもとにファイルを吐きだす), Ruby on …

Ruby on Railsのテストの書き方 (モデルの単体テストと,コントローラの機能テスト)

Ruby on Rails のテストの書き方のまとめ。 RSpecを使わない,素の unit test (モデルのテスト) functional test(コントローラ+ビューのテスト) について,どう書いたらいいのか,どこの情報を参照したらよいのか,などを列挙。Rails入門者が初めてテスト…

CGIが動くWebサーバを,3分で自作しよう (ブラウザからのHTTPリクエストを処理する,簡易ソケットプログラム)

Webサーバを3分で自作する。 ローカルPC内の HTMLなどの固定ファイル PHP, Rubyなど動的ページ を,どちらもブラウザ越しでアクセスできるよう,インターネットに公開する。