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

Java言語で学ぶデザインパターン入門【マルチスレッド編】

以前、仕事でマルチスレッドで動くアプリケーションを開発していたのですが、同期化の部分が思っていた以上に難しく、改めて勉強しなおせねば、と思っていました。特に困難なのは、どういう構造で同期を取るのが良いかを決めること。同期を取る部分はもちろ…

pluginのinit.rbでメソッドを再定義できない理由

「日付コントロールを変える」の最後で、プラグインの読み込みをconfig/environment.rbに記述しました。 require 'yads'その後調べてみたら、vendor/plugin/(プラグイン名)/init.rbで上記コードを記述すれば良いことが分かりました。各プラグインのinit.rbは…

Dependenciesのログ

クラスやモジュールが定義されるタイミングを知りたくてコードを追っていたところ、Rails2.3.2のCHANGELOGに以下のような記述があることに気がつきました。 * Add debugging logging to Dependencies. Currently can be enabled with Dependencies.log_activ…

ピアレビュー

レビューの時間を有効活用したい、という動機から読んでみました。というのも、レビューの時間はなかなか効果的に時間を使えていないと感じるからです。正しいレビューの仕方を知ることがその一番の近道だと考えたのですが、読み進めていくうちに、レビュー…

日付コントロールを変える

前回、「scaffoldした際に、引数で指定される各フィールドの型によって自動的に決まるwebのコントロールを、自分の都合の良いように変えてみたい」と思い、scaffoldのコードを見てみました。その後よく考えてみると、field_typeによってコントロールを表示す…

scaffoldのコードを読む(その1)

scaffoldした際に、引数で指定される各フィールドの型によって自動的に決まるwebのコントロールを、自分の都合の良いように変えてみたいと思います。その為に、scaffoldに関連するコードを読んでみます。前回railsからコピーしてきたtemplateから、view_edit…

scaffoldのviewのテンプレートをカスタマイズする

昨日の『ソフトウエア開発プロフェッショナル』を読んだ後、エンジニアリングを軽視してはいけないと思いました。本書中にあった簡単に石を運ぶような仕組みというのは、事前準備の賜物でしょう。ということで、railsのscaffoldをカスタマイズしてみることに…

正直、あまりタイトルには惹かれなかったのですが、思ったよりも面白かったです。ソフトウエア開発についての本なのですが、技よりも工程や品質にフォーカスしており、十分な品質を持つソフトウエア開発を行う為のエンジニアリング、さらにプロセスや組織だ…

Ruby1.8.7+Rails2.1.1→Ruby1.9.1+Rails2.3.2(その2)

昨日の続きを。7. incompatible character encodings: ASCII-8BIT and UTF-8 ASCII-8BIT外の文字を使っているソースの先頭に「#coding: utf-8」をつけた patchをあててみた で展開される文字がASCII-8BITの外だと「incompatible character encodings: ASCII-…

Ruby1.8.7+Rails2.1.1→Ruby1.9.1+Rails2.3.2(その1)

これまで作ってきたものを、Ruby1.8.7+Rails2.1.1の環境からRuby1.9.1+Rails2.3.2に移行してみたいと思います。1. rake rails:update:configsで失敗 masayuki@ubuntu-vm:~/work/rails/shrimp$ rake rails:update:configs (in /home/masayuki/work/rails/shri…

VMware PlayerとUbuntu 8.04 LTS

これまでずっとcoLinuxで開発をしてきました。が、ゲストOSとして使用してきたUbuntu7系のサポートが終わり、また容量もかなりギリギリになってきたので、この機会にUbuntu8に乗り換えようとcoLinuxのサイトに行ってみたところ、ダウンロードページが表示で…

WEBrickの停止をフックする

前回プロファイリングの話で、当初はプロファイリングの終了をサーバの停止のタイミングで行いたいと考えていました。(結局その必要は無かったのですが)その際に調べてみると、WEBrickはStopCallbackというコールバックを登録しておくことで、サーバ終了時に…

perftools.rb

前回、ruby-profを使ってみたのですが、今回はperftools.rbというプロファイラを使ってみました。もともと、google-perftoolsというプロファイリングツールがあり、それをRubyで使用できるようにしたのがperftools.rb。現在はCpuProfilerのみですが、TODOに…

あるモードでのみ適用されるフィルタを定義する

productionモードの時だけ実行されるフィルタが必要になり、いつどこで定義するのが良いか調べてみましました。githubを見て回ったところ、RAILS_ROOT/config/environments/production.rbで、config.after_initializeの中で定義すれば良いみたい。下記のコー…