僕は発展途上技術者

[RAILS_APP]/config/boot.rb:26:Warning: Gem::SourceIndex#search support for String patterns is deprecated メッセージを消す

以前の案件の Rails アプリケーションで


# rake db:migrate


を実行してみたところ、うまく動くは動くのだが



[RAILS_APP]/config/boot.rb:26:Warning: Gem::SourceIndex#search support for String patterns is deprecated


という Warning メッセージが出る。


config/boot.rb の26行目



rails_gem = Gem.cache.search('rails', "~>#{version}.0").sort_by { |g| g.version.version }.last




rails_gem = Gem.cache.find_name('rails', "~>#{version}.0").sort_by { |g| g.version.version }.last


に修正すれば、Warning は消える。


» #8729 ([PATCH] Rake rails:freeze:gems loads the last gem that starts with the string "rails") - Rails Trac - Trac


に詳細が書かれている。



In the source for the rake task, the code is calling the search method for the Gem SourceIndex. This method matches anything that has the pattern of the string passed in, in this case "rails" which would include any gem starting with the string "rails." I have patched this code to use the find_name method that returns the exact match of the string that is passed in; in this case, "rails."


search メソッドだと、rails で始まるすべての gem にマッチしてしまうので、"rails" gem だけにマッチさせるよう find_name に変更された、とのこと。


Facebooker を使い Facebook プロフィールを更新する

いったいどのくらいの人にこの情報が役立つか疑問だが、日本語の情報は皆無ではまりにはまったので、自分のためにもメモしておきます。


Facebooker は Rails で Facebook アプリを開発するのを助けてくれるプラグイン。Kanji-Fandom Facebook 版を開発するのに使いました。


» 英語の名前を漢字に変換する Kanji-Fandom Facebook 版をリリースしました : 僕は発展途上技術者


作成したアプリから Facebook のプロフィールに自由に情報を追加したり、更新できるのですが、Facebook 側の仕様が変わっていて、開発当初の方法ではうまくプロフィールが操作できなくなっていました。



StandardError (This method is deprecated):

.../vendor/plugins/facebooker/lib/facebooker/parser.rb:505:in `process'


というエラーが頻発。method is deprecated らしいです。


そこで、あちこち検索を駆使してたどりついたのが以下の情報。


» Agile Ajax » Getting Started with Facebooker » Pathfinder Development


The Funner (More Fun) Stuff: Setting Information セクションの情報に救われました。


まず、大きなミソとなっていたのが、これまでは「Facebook プロフィールを更新しろ」という命令だけで更新できていたのが、


1) プロフィール情報を更新する

2) 更新した情報をプロフィールに明示的に追加する(初回だけ)


の二段階になっていたこと。


これに気づかず、1) だけをおこない、ログを眺めてもエラーが発生していない、でもプロフィールには更新した情報が追加されず、しばらく途方に暮れてしまいました。


まず、わりと比較的楽にクリアできる 1) の部分のコード。



これを



fbml = "This is test"


あるいは、



fbml = render_to_string(:partial => "profile", ...


のように fbml に表示したい内容を入れたあと



TestPublisher.deliver_profile_update(@user, fbml)


のように呼び出せば、プロフィールの情報が更新されます。


続いて 2) の部分をおこなうには、facebook で用意された「プロフィールに追加(Add to Profile)」ボタンをビューから呼び出すのです。



僕の場合は 1) をおこなった直後にリダイレクトされる画面に上記のコードを用意しました。


<fb:if-section-not-added section="profile">で挟むことによって、まだ一度もこの追加処理を行っていない場合にだけボタンが表示されるようにしています。なので、アプリケーションによってはいたるところ、ユーザーの目につくところに置くというのでもいいでしょう。


Facebook は API の仕様がころころ変わる印象を受けます。常にウォッチしていないと、僕のように、ごくたまにメンテで触るというレベルだと正直しんどい。。。


Mac のスクリーンをロックする方法

席を離れるときにロックしたい。windows のときは確か windows ボタン + L で簡単にできたはずなんですが。。。


mac だと意外とすんなりとはできない。以下の方法がスマートでよいです。


» わかばマークのMacの備忘録 : Macのスクリーンをロックする


DateHelperJa プラグインで date_select/datetime_select を和暦に対応させる

date_select/datetime_select を日本語表示させる Rails プラグイン DateHelperJa が和暦に対応した。


» DateHelperJa 0.2 リリース - Rails で行こう!


» elm200's date_helper_ja at master - GitHub


和暦対応と Rails 2.2.2 への対応部分で、微力ながら協力させていただいた。


DateHelperJa は、Rails やフリーでの仕事のしかたでいろいろと相談に乗ってくれる僕の師匠、酒井さんが公開していたプラグイン。date_select の部分を日本語化する必要があり、date_select_ja みたいなヘルパーを自分で作ってもよかったのだが、なにかスマートな方法がないかと調べていたところ偶然見つけた。


対応する Rails のバージョンが 1.2.x で、僕は 2.2.2 で対応させたかったのと、昭和、平成などの和暦に対応させたかったので、その部分は自分で書き足し、酒井さんにマージをお願いした。酒井さんは、現在ベトナムにいるにも関わらず快く応じてくれ、Skype とメールを駆使して全く距離の不便を感じることなく、スムーズにコミュニケーションが取れた。


おかげで、Rails プラグインの開発、オープンソースプロジェクトへの貢献、そして GitHub の利用と非常に貴重な体験をさせてもらって感謝している。ありがたく使わせていただきます。


rails のバージョンを指定して新規アプリケーションを作成

これを調べようと検索しても、探し方が悪いのかなかなか上位にヒットしないので、自分用にメモ。


たとえば rails のバージョンを 2.1.2 に指定して新規アプリケーションを作成したい場合は、


% rails _2.1.2_ <app name>


postgres へのクライアントからの接続を強制切断する ruby スクリプト

DB に postgres を使って rails の開発をおこなっていて、スキーマを大幅変更、面倒なので db を一旦削除して再作成ってときがある。


しかし、


% rake db:drop


とやって db を削除しようとしても、


Couldn't drop test_development : #<ActiveRecord::StatementInvalid: RuntimeError: ERROR C55006 Mdatabase "test_development" is being accessed by other users Fdbcommands.c L674 Rdropdb: DROP DATABASE IF EXISTS "test_development">


というエラーが表示されてできないときがある。


pgAdmin3 のような GUI ツールから db の操作をおこなっているとこれが確実に起きる。pgAdmin3 のようなクライアントからの接続が残っている限り、postgres では db を削除できないようだ。


でも、開発環境ではいちいち pgAdmin3 を閉じたりなどして接続を切るのも面倒。


そこで、ちょっと乱暴だが、postgres へのクライアントからの接続を強制切断する ruby スクリプトを書いてみた。


postgres への接続プロセスの pid を調べ、sudo kill -9 しているだけ。


もし使う場合は、各環境に応じて変更して自己責任でお使いください。



「竜馬がゆく」大河ドラマでやってくれないかなあ

と思ったら、1968年にやっていたのですね。


» 竜馬がゆく (NHK大河ドラマ) - Wikipedia


僕は小説とかの本を読むのが遅くて、「竜馬がゆく」全八巻をやっと読み終えたのですが、


» 富士の見える席 : 僕は発展途上技術者


で4月のエントリーで話題にしているから、約十ヶ月間もかかってしまった計算になります。


でも、それだけ存分に味わった感じです。これを読んで彼の功績を知ると、作者司馬遼太郎が作中何度も繰り返しているように、坂本龍馬は日本の歴史が生んだ奇跡だと思えます。


実際に会ったことのない人をあげるのは意味がないと思って、「あなたの尊敬する人物」のような質問に歴史上の偉人をあげることは今までなかったのですが、「坂本龍馬」が初めてそれに加わりました。


時間をおいてまたきっと読むと思います。


冒頭の「大河ドラマでまたやってくれないかなあ」という話題に戻ります。僕の中では、「新撰組!」で龍馬役を演じた江口洋介がしっくりきすぎていて、本を読んでいても頭の中に描いている竜馬は始終江口洋介だった。「篤姫」にでてきた、玉木宏の龍馬は綺麗すぎてちっともしっくりこない。というわけで「新撰組!」と同じになってしまうのですが、僕の希望は 脚本:三谷幸喜、竜馬:江口洋介で。


いつかやってくれないかなあ。



竜馬がゆく〈1〉 (文春文庫)



司馬 遼太郎
文藝春秋
売り上げランキング: 850


おすすめ度の平均: 5.0

5 前向きになる
5 国民的名作第1巻、竜馬の青春
5 若い人の読んでもらいたい本
5 あなたは、このような日本人がいた事を誇りに思うだろう
5 極上のストーリー






Passenger で rails アプリを動かしていて、しばらくアクセスがない後にアクセスするともたつく現象を解消する方法

Passenger を使ったことがあるなら、タイトルにある通りの現象を経験したことはないでしょうか。


開発環境を Passenger で動かすようになったら、この現象が気になったので、以前参考にさせてもらった


» Yakitara: Passenger: Keeping ApplicationSpawner alive speeds up spawning an instance(タイトル英語ですが、内容は日本語です)


にあるとおり、Passenger の設定を変更しました。


これで快適さ、さらにアップです。


ちなみに情報源の Yakitara は、僕に rails と rails の哲学をも教えてくれた師匠の hiroshi さんが書いているブログ。Rails や Mac がらみの話題が多いです。あまり人には知られていない、でもいつも良質な情報を提供している(だから、あまり人には教えたくないなあ、とちょっと思ってしまう)ブログの中のひとつです。


» Yakitara


最近、とってもなるほどなあ、と思ったのがこちらの記事↓


» Yakitara: My philosophy about testing


rails をやっている人は購読フィードに追加しておくといいんじゃないでしょうか。


2009/11/12 追記


最新版の Passenger では RailsFrameworkSpawnerIdleTime と RailsAppSpawnerIdleTime というオプションで変更できるようになっています。


» 参考:Phusion Passenger users guide


もっと早くから Passenger を Leopard (OS X 10.5) 上で動かしていればよかった

タイトル通りです。


» Installing Phusion’s Passenger on Leopard (OS X 10.5)


に書いてある通りそのまんまで、難なく Passenger を Leopard (OS X 10.5) 上で動かすことができました。


httpd.conf に追加する設定は、passenger-install-apache2-module 実行時の指示通りにします。


複数案件を抱えていて、いくつも開発環境で rails のアプリを立ち上げるような人には特におすすめ。楽ちん過ぎて、いままで mongrel 使っていたのが馬鹿みたい。。。


チョコレートが入ったビール「ヤング ダブルチョコレートスタウト」を飲んでみた

sany0014.gif



バレンタインデーも近いということで。。。


黒ビールに少しチョコレートの香りがついた感じです。といっても甘くはないです。ビールとチョコレートって意外とあうんじゃないでしょうか。


ギネスとかよりも苦みがおさえられていて飲みやすいです。




僕もそうなのですが、あんまり甘いのはちょっと、って男の人に送ると喜ばれるかもしれません。


» 【楽天市場】ヤング ダブルチョコレートスタウト:ただワインが好きなだけ



プロフィール

株式会社まちクエスト代表、つくる社LLC代表。

Scratchで楽しく学ぶ アート&サイエンスRaspberry Piではじめる どきどきプログラミングを書きました。

オンラインコンテンツ: 大人のためのScratch

Amazonから図書館検索 Libron、iPhoneアプリ ひらがなゲーム かなぶん を作っています。

Email: webmaster at champierre dot com

Twitter @jishiha

最近のエントリー

アーカイブ