2007年05月30日
iTunes7.2
iTunesがバージョンアップされ7.2になっています。
早速更新をして何が変わったかを確認…
外から見える部分については、何も変わっていない気がする。
軽く早くなったとか、そう言うのだったら嬉しい。
それならば、ちょっと使ってみないと分らないか。
2007年05月29日
RadRailsでステップ実行
EclipseのRuby on Rails開発環境、RadRails and Ruby Development Tools (RDT)がバージョンアップ(といっても5/14の様だが)されていて、ついにEclipse内でステップ実行が出来るようになっている。
コードを追いかけながら動きを掴めるのは初学社にはありがたい。
ServersビューのWEBrickやMongrelサーバのプロパティーを表示すると、「Run Mode」というのが追加されていて、ここを「run」から「debug」に変更するとOK。
既にインストールされている場合は「Help」メニューの「Software Updates → Manage Configuration → Search for updates of the currentry installed features」からRadRailsが最新かどうかの確認と、最新ではない場合はアップデートできる。
まだ入ってないなら「Software Updates → Find and Install... → Search for new features to install」で http://update.aptana.com/install/rails/3.2/ をURLに追加して続ければOK。
ただし、かなり動作が遅くなるので、常時debugモードにしておくとストレスがたまりそうですが(笑)
2007年05月28日
接続のキャラクタセットおよび照合順序
ほとんどPHPでできているシステムなのですが、訳あってPerlから更新作業をする必要ができてしまい(というかPerlで書きたかった)一通り思い通りに動くものができた。
ところが日本語のデータが化ける。MySQL(バージョンは4.1)で保持している日本語のデータはSJISで格納されている(不本意ながら今さら変えられない)。そして、もちろんDBIでINSERT/UPDATEする時にEncode::decode/encodeを使ってSJISで格納しているにも関わらず化けてしまう。かなり悩んだあげく、やっとMySQLのドキュメントを見つけた。
次のようにconnect()直後に送信/受信のキャラクタセットをSJISであると指定してあげれば良い様です。
ServerAliveInterval
WindowsのPoderosaからsshでFirewall内のサーバに接続していた時は、セッションのタイムアウトで接続が切れてしまうのに対応するため、「オプション設定」の「ターミナル」にある「KeepAliveパケットを送信する」オプションをONにしていた。
最近、Mac OS Xをメインに使用しているが、Terminalから件のサーバにつないだときに、切れてしまうのをどうすれば良いのか、やっと分かりました。
~/.ssh/config ファイルに下記の行を追加します。
60は60秒です。セッションのタイムアウト時間が長い場合は、環境に合わせてもっと長くするべきかも知れません。
2007年05月25日
Perlの配列とハッシュの初期化
自分のためのリマインダーです(笑)
- 配列の初期化(リストを使う)
- ハッシュの初期化(リストを使う)
- 配列の参照の初期化(無名配列を使う)
- ハッシュの参照の初期化(無名ハッシュを使う)
Amazon ECS
Amazon ECSですが、以前のエントリーでamazon-ecsを使うつもりと書いたのですが、これカテゴリーのトラバースをするOperationであるところのBrowseNodeLookupに対応していなさそうな感じ。
カテゴリーは結構使えそうな情報なので、他を当たってみたところ、素直(なのかどうなのか分りませんが)にNet::HTTPとREXMLで自分でやっても大したこと無さそうだという結論に。
試しにBrowseNodeLookupでサブカテゴリーにどんどん降りていくRailsアプリを書いてみたが、わりとすぐにできた。それもリクエストとレスポンスは開始1時間後にはできていて、そのあとREXMLの使い方がイマイチ分らず悩んでいただけでした。
やってておかしくないのにもかかわらず、XMLは何故だか使ったことがなかった私(笑)
2007年05月22日
EclipseのRuby Editor
最初からそうなのかも知れないが、EclipseのRuby Editorでインデントが微妙に崩れてしまっていることに気づき、気持ち悪い
どうやら、bold化されているキーワードやインスタンス変数が先頭に来ている行で、構造的にはあっているはず(デフォルトのスペース2個です)インデントが崩れて表示されていると思われる。
Eclipseのフォントの設定(Windows Menu → Preferences... → General → Appearance → Colors and Fonts → Ruby → Ruby Editor Text Font )をどう変更しても直らない。
Ruby EditorのSyntax Coloringの設定( Windows Menu → Preferences... → Ruby → Editor → Syntax Coloring)で、Boldにチェックが入っているElementを付けたり外したりすると、Preview表示からして、ぶっとなったり、しゅっとなったりしてずれているのが分る(バカっぽい表現で好感度アップ)
ずれるのは許せないので多少、コードの識別が悪くなってもBoldじゃない方がよい!
BoldになっているElementを全てBoldじゃなくしてみると、崩れなくなった。
うむ。美しい。
むろん崩れなければBoldの方が良いので、RadRailsの更新が入ったら、対策されていないか確認する必要がある。
ありがとうございます。分かりやすい説明でしょ(笑)
by iwa 2007/05/28 20:37ぶっとなる←ぶっとなった様が目に浮かぶようです。
これから参考にさせていただきますよ!・ω・
by mega 2007/05/29 13:54
text_field と text_field_tag
Ruby on RailsでViewに<input type="text"/>タグを出力する際、
text_field() と text_field_tag() があって、どちらを使えばよいのか分らず暫くキョトーンとしていたのですが、やはりライド・オン・Railsは優れています。最後の「付録 Appendix」のリファレンスに一言で分りやすく記載されていました。
ヘルパメソッドリファレンス(P353, 357)より参照。
■text_field() 達のグループ。
ActionView::Helpers::FormHelper
モデルを対象とするヘルパです。
■text_field_tag() 達のグループ。
ActionView::Helpers::FormTagHelper
モデルオブジェクトではなく、値を対象とするヘルパです。
すなわち、
・前者はテンプレートにアサインされたRailsのモデルオブジェクトとその属性にアクセスできるように、
・後者はHTMLタグの名前と値からアクセスできるように
HTMLタグをレンダリングするということらしい。前者が高レベル、後者が低レベルなAPIとも言えましょうか。
ちなみに、同じくここで知りましたが、tag()、content_tag() というパラメータで渡された名前とハッシュによる属性指定(および、content_tag()の場合はcontent部)によって、どんなタグでも生成できる、ヘルパーも発見。
divの様なタグを<%= %>の中で生成できて、Rubyの変数へのアクセスがし易くなり、コードも見やすくなる効果があるそうだ。
良く考えられている。
例によって、これで1時間近く悩んでいたのであった。そんな訳でコーディングがなかなか進まない。しかし納得したので気持ちは良い。
2007年05月21日
iTunesのフルスクリーン
iTunesのフルスクリーン表示は、いまさらですがかっこいいと思います。
フルスクリーンでも、曲を送ったり戻したり、音量を調整したりとプレイヤーとしての機能はちゃんと使えるし、なによりアートワークが大きくてシビレる。
パーティーシャッフルで音楽をかけっぱなしの読書に最適です。
2007年05月19日
InstantRailsとRuby-GetText-Package
当然作るアプリは最初、日本語が使えれば良いということで、viewなどはガリガリ日本語で直接書いてしまうのが、手っ取り早くて良いような気がした。
しかし性格的に全体がカッチリしてないと次に進めないのか、多言語対応するための仕組みを調べ始めてしまう。めっちゃ参考にしているライド・オン・Railsでは、Special-GenerationとRuby-GetText-Packageが紹介されている。
Supecial-Generationはscaffoldジェネレータの拡張で、多言語対応というより、Ruby on Railsの中の日本語に対応しているミニフレームワークと言った雰囲気。ちょっと私の趣味に合わない気がしたのでスルーの方向で。
Ruby-GetText-Packageはスタンダードっぽい。こっちを採用し、ごにょごにょ始めることに。
躓いたのは、InstantRailsでpoファイルのマージが出来ないというところ。ライド・オン・RailsではRakefileを拡張し、rakeタスクとしてpoファイルを作成できるようにしているが、内部でmsgmergeというコマンドが使われており、それが見つからないらしい。msgmergeはGnu GetTextのコマンドの様だ。
InstantRailsのRubyのインストールセットの中にrmsgmergeというコマンドがあり、これをGnu GetTextの代わりに使えるという情報をゲットした。やり方は<InstantRails install path>\use_ruby.cmdファイルに
という行を追加するというもの。これではInstantRailsのruby用コマンドプロンプトからしか実行できないが、radrailsでPATHを指定する方法が分らず妥協するとする。
あと、use_ruby.cmdファイルの冒頭のコメント部に、「このファイルはInstantRailsによって生成されるので、テンプレートな<InstantRails install path>\conf_files\use_ruby.cmdファイルを編集するように」といった、お達しがあるのだが、言われるままに変更してもいっこうに、コマンドプロンプトの環境が変わらなかったため、仕方なく直接書き換えました。
2007年05月18日
時間がずれる
iPodで聴いた曲をLast.fmに送れるiSprogglerですが、最近聴いた時間がかなりずれます。
実に11時間ずれている。9時間ならGMTとの差かなという気もしないでもなかったのだが、よく分からない。
あと、今日はiPodで同じアルバムをループして聴いていたので気づいたのだが、同じ曲を何回聴いても、iSprogglerで一度に送られる場合は1回となってしまう様です。おそらくiTunesの「最後に再生した日」という項目を元に送信しているためで、「最後に再生した日」は後で聴いた日時で上書きされるからだと思われる。
私の聴き方なら、特に問題ではありませんが。
面白いことにiTunesで聴いた場合も、同じ曲を続けて聴くと送信されないようだ。2曲を代わり交代に聴く分には、ちゃんと全て送信される。iPodからの場合はよりどころとなるデータがなくなるので、仕方ない気がするが、iTunesは毎回送れるわけで、いささか中途半端な感は否めない。
いや、同じ曲をずっと聴き続けることはまれだし、送られないからといって困るわけではない。
2007年05月17日
泣き虫弱虫諸葛孔明第弐部
今日は日付が返ってきたら、アマゾンに注文しておいた泣き虫 弱虫 諸葛孔明 第弐部 酒見賢一著が届いていた。嬉しい。
1年以上も枕元に積ん読にしていた泣き虫弱虫諸葛孔明 酒見賢一著だが、GWに一気に読み、強烈に面白かったので早く続きが読みたかったのだ。
第弐部の帯より、泣き虫弱虫諸葛孔明 第壱部の紹介を参照します。
酒見賢一、懇親の巨編。
第壱部では、孔明の嫁取りから
三顧の礼までが描かれる。
そして第弐部は長坂坡までの様です!楽しみだ。
2007年05月14日
CentOS 4.3とyumとsqlite
先日、tracのDB定義をsqliteのコマンドで直接参照するというのを書いたのですが、この時、sqliteのコマンドラインツールが入っていなかったため、yumを使ってインストールした。
これが良くなかったようで、今朝からtracに接続できなくなっていた。なぜ今朝からかというと、金曜の夜に一度ブレーカが落ちてtracを運用しているサーバを再起動したので、httpサーバ(さらに詳しく言うとmod_python)の読むライブラリがその時から新しくなり、その後、誰もアクセスしなかったため、今朝気付いた訳です。
#ブレーカが落ちるオフィスというのもアレですが(苦笑)
現象はhttpdがメモリをどんどん食いつぶしてメモリーエラーで落ちる。落ちるまでの間ロードアベレージもCPU使用率もバンバン上がる。最初はHDDのせいか?メモリ不良か?とハードを疑った(ブレーカー落ちの不正終了もあったので)のですが、他のサービスは問題なく動いているため、とりあえず、yum updateしてみた。
すると、こっちも落ちる。
これでsqliteのバージョンが合ってない事に気付きました(遅い)最後に行った設定変更をまず疑うのが基本でした。
OSはCentOS 4.3なので、RPMを探すとsqlite-3.2.2-1.i386.rpmである。金曜に入ったsqliteは、sqlite-3.3.3-1.2。
これで無事yumも起動、tracにもアクセスできるようになりました。ここのCentOSのバージョンも上げたいところだなぁ。
同じ現象で悩んでいました。
自己解決できず、この情報で解決できました。
ありがとうございました。ざっと、ブログを拝見させていただいて、
非常に興味深かったので、これからも訪問させて
いただきます。今後ともよろしくお願いいたします。
by char 2007/08/14 22:41体調を崩していたもので、返事が遅くなりまして済みません。
これ、私もかなりハマりました。
会社の開発環境だったんで、大慌てで調べて直した記憶があります(汗)
お役に立てて嬉しいです。
by iwa 2007/08/21 13:27
意外と進まない
Railsでコードを書き始めたのだが、意外とサクサク進まない。
こちとら、JavaでHibernateでバリバリ書いていたという自負(苦笑)があり、Railsのテーブル関連も、最初にRailsによるアジャイルWebアプリケーション開発を読んだとき、特に引っかかることもなくすらすら読めたし、Railsのmigrationも良くできている。Controllerだって、Strutsに比べたら簡単そうだ。Viewに関しては更に、である。
しかし実際にコードを書きながら進めていくと、この場合、モデルやコントローラを作るのか作らないのか、名前はどうするの?など、規約を知らないために右往左往してしまっている。本を読んでいると、分らないことは特になく、何でも今すぐ作れそうな気がしてしまうが、自分がやろうとしていることを、どうやるのかがすぐには分らない。
ウリであるところの規約は、規約自体を知らなければ意味がないと言うことです(笑)
いや別にRailsをけなしているわけではなく、これは当たり前のことで、今までの開発ツールであれば、
(1) 設定方法を調べ
(2) 設定し
(3) 設定を使う
といった3段階でやっていたことを、
(1) 規約を調べ
(3) 規約を使う
の2段階にしてくれる上に、感覚的には前者の(1)、(2)の難易度は後者の(1)よりも相応難しかったはずです。
ツールの使い方につても、習熟が足りない。generate modelやscaffoldや、rake db:migrateやその他、いろいろをいつやって、何ができて、本当にやっていいの?など迷う。
今はまだRailsをさわり始めたばかり(しかもほぼ休日の数時間)なため、なかなかノリが見えてこないが、慣れたらいけるはず。出来る子のはず(笑)
ある程度の規模のアプリを書くためにはRailsの規約の何パーセントくらいが分ったらサクサクいけるのかを身をもって体験していきたいと思います。今のところ…20%くらいか(自己申告)
2007年05月13日
Amazon ECS
連休にRuby on Railsでいろいろと試していたのは、もちろん作りたいサービスがあるからです。
それにはAmazon ECSを使うつもりであります。
処理自体は先日試した amazon-ecs プラグインで比較的簡単に書けそうですが、ECSからどのような情報が取得できるのかなど、具体的なところは、ちゃんとAmazon E-Commerce Service Developer Guideを見ないと分りません。
そして、もちろん英語なのでどの情報が必要なのか、いささか苦労しながら(笑)探したtころ、当面必要である、書籍の検索には次のリファレンスを見れば分りそうです。
上から、
- 操作の種類の一覧
- 商品検索操作の詳細
- 結果取得グループの一覧
- Mediumグループの結果の項目
といったところでしょう。Response Group(結果取得グループ)には用途によって様々な結果の取得パターンがあるようです。おそら私はくMedium Groupがちょうど良さそうです。
明日は早速、検索部分を作ってみたい。
2007年05月12日
getElementsByTagName
既にいない人のコードを修正するはめになり、今日そのコードを読んでいて、奇妙なことに気づきました。
この様なコード(あくまでもサンプルです)だったのですが、IEでは期待通りの動きをするのに、それ以外のブラウザでは、おかしなことになります。
ちなみに期待通りの動きとは、上の例ですとresult1のdivに下記のように表示される事です。これが期待通りというのは、あくまでも私の予想です。というのもIEではちゃんと動くが、それ以外ではまるで動かないコードの原因だったからです。
それでFirefoxでの出力を確認してみたわけです。
なんだか、読めてきました。
MDS DOM:element.getElementsByTagNameを見てみると、
とある。標準規格であるところのECMAScriptの定義を見てみると、
NodeListを見ると
どうやら、Mozillaのがちゃんとしているらしい。
そこで、MSのドキュメントを探してみると、なんだか同じ様な記述が。ということはと、
こんな風に直して実行してみると、IE、Firefox共に同じ動きをしました。ちなみにMacのSafariでも問題ありませんでした。
2007年05月10日
tracのテーブル定義
プロジェクト管理ツールtracのレポートはSQLを変更して、かなり自由にカスタマイズできるのですが、trac自体のテーブル定義がどうなっているのか、よく分からない。
最初から入っているレポートのSQLを参照すると、まぁだいたいは分かる。分かるのだが、もっと便利な項目が隠れていないか知りたいと思いGoogleに聞いてみたが。意外とすんなり見つからない。
私の探し方も悪いのかもしれないが、sqliteでスキーマ情報をダンプするコマンドがある事が分かり、それでやっと知る事ができた。これ。
いちいち、コンソールからこれをやるのも面倒なので、ここに載せておきます。
ちなみに、使っているtracのバージョンは
Trac 0.10.3 Trac-Ja(インタアクト株式会社による日本語化版)
2007年05月09日
JsUnit
JavaScript用の単体テストフレームワーク、さっそく調べてみると、JsUnitが見つかりました。おなじみのJUnit.org系列です。
日本語のドキュメントとしては、NRIのオブジェクトワークス | オープンソースドキュメントの「[PDF]jsUnit利用ガイド」 が優れています。(PDFファイルへの直接リンクは避けておきます)
JsUnitなかなか良いです。
ひとつだけハマりました。私のミスなんですが、テストケース内でJsUnitのライブラリjsUnitCore.jsを読むときのURLを間違うと、テストがタイムアウトする動きになります。どうしてなのか理由がわからず、しばらく悩みました。
何もせずにタイムアウトする時は、テストケースを書くHTML(もしくはHTMLをレンダリングする、アプリケーションのソース)内のJavaScriptの読み込みパスをチェックしましょう。
JavaScripのUnitTest
仕事でJavaScriptのコードを書くことが増えてきたのだが、単体テストが大変な気がする。
Java生活が長かったので、全部をUnitTestしまくるUnitTestジャンキーほどではないにしても、ライブラリ的に何度も呼ばれるメソッドについては、厳重に境界テストを含めたUnitTestを書く癖が付いてる。
これが気軽に出来るのはEclipseとJUnitのおかげだったのだが、さて最近は仕事ではPHP、JavaScriptを書くことが多い。特にPHPは元々あるコードへの追加修正が主で、その上、元の作りがアレな事もあり、メソッドレベルの単体テストを殆どやっていない。というかメソッド(関数化)されてたらラッキー。グローバルな異存関係がありすぎてリファクタリングも大変といった有様。
JavaScriptに関しては、これからという感じなのが幸いして、まだ手の打ちようがありそうだ。そこでJavaScriptのJUnitみたいなのが欲しい。今日は、もう眠いので探すのは明日ですが(笑)
2007年05月08日
Subversion
Subversionを入れた。
連休中はRuby on Railsのお勉強だったので必要なかったが、実際にコードを書き始めると、一人でもバージョン管理システムがあれば非常に便利だ。
このサーバが Fedora だった時はビルドしてインストールしてあったのだが、CentOS を一から入れ直したので入っていなかった。
前に入れたときのビルドが非常に面倒だったので、今回はパッケージを使って入れる。
以下、やり方。
#とは言っても、とりたてて、載せるほどでもないのだが…
コレで入ってしまう。
Apacheを改めて入れている理由は、稼働しているのが Apache 1.3系で、パッケージのSubversionを使うのは面倒だから。というか出来ないかも。
なので、パッケージで入れたApache 2.0系を別ポートで起動することにした。
Subversionの設定をする。
/etc/httpd/conf.d/subversion.confを修正。
/etc/httpd/conf/httpd.confを編集し、Listenするポートを変更。(仮に9999とする)
そして、サービスが自動起動するように設定して、httpd起動。
これで全て準備OK。コマンドラインでテストしてみます。
2007年05月07日
Last.fm有料メンバー
なんとなくLast.fmのFAQを読んでいたら、「有料メンバー」なる項目があるのを発見!
「有料メンバーになる」ページを見てみたところ、
レッドカーペット待遇
我々のWebサイトは、有料メンバーを優先します。つまりサイトが混んでいる時間帯でも、高速で接続できます。何しろ、あなたは参加しているのですから。
!!今まで、なんだかもっそりと遅いなぁと思っていたのは無料メンバーだからですか!?
Last.fmは毎日欠かさずに見に行くので速いほうが良い。とりあえず最初は様子見で3ヶ月有料メンバー(\1,050-)になってみました。
これで、速くなるといいのだが。
マジで!?
なんかそれ、騙された気分・・・。
ホントに光速なのかどうか教えてください
by mega 2007/05/07 22:40光速じゃなかったです(笑)
でも、無料メンバーの時よりは速い気がします(・∀・)
by iwa 2007/05/07 22:50気のせいではないんですね?(乗り気)
by mega 2007/05/08 17:39いやぁ、おそらく気のせいです。
はっきり分りませんもん(笑)
by iwa 2007/05/09 00:43
2007年05月06日
Blogツール
そうだった。最初は、この休み中にBlogツールを変更しようと思っていたのだった。
今使っているのは、MovableType 2.64と旧世代の遺跡ですが、前はそれほど更新もせず、書いても短い文章だけだったため、特に不便を感じていなかった。
まる2年、休止している間に、世の中はフリーのBlogツールで溢れ、おれおれサーバ(人聞きが悪い)上で動くBlogツールも先日ちょっと調べただけでも複数見つかる。良い世の中だ。
当初の目的をすっかり忘れて、休日はRuby on Railsを楽しんでしまったが、Blogツールを自分で作ろうとしてRailsを一生懸命やっているわけではない。
#typoにちょっとクラっときてカスタマイズして使おうかと思ったのは確かだが…
今のところNucleus CMSが第一候補です。
この旧MTは友人用にずっと、動かしておいて、私だけが使うために設置するなら、マルチBlogでなくても良いのでWordPress、ppBlog、P_BLOG Projectも魅力的。みんなデフォルトのデザインでもちゃんと使えそうだ。見た目は大事だ
しかし、これらはPHPでできている。使うだけなら、別に何で実装されていようと気にすることはないはずである。が、このMTを自分でカリカリ、カスタマイズしたりした経験上、PHP以外がありがたいことは確かだ。何故か。PHPが好きじゃないから。
とすると、adiaryが俄然、浮上してくる。こちらは最初に見た目を頑張って作らないといけなそうですが、Perlってのは素敵。そういう意味ではRubyであるtDiary.orgもあるが、もうあまりアクティブじゃないように見えるのがちょっと。
そんなわけで、Ruby on Railsも楽しいし作りたい物もあるので、まだしばらくは、このままかな。
amazon-ecs
ライド・オン・Rails ですが、面白そうなので、リファレンス系のページはばっさり飛ばして、「Amazon Webサービスとの連携」やってみます。
本ではruby-amazonを使っての説明ですが、ちょっと調べると、amazon-ecs がよさげ。gemで簡単にインストールできます。
そうするとサンプルも書き直さないといけない。こんな感じか。
本ではruby-amazonが返すオブジェクトをそのまま使ってビューをレンダリングしてるが、amazon-ecsはイメージURLの持ち方が単純でないので、Bookモデルに詰め替えることにします。small_img_urlというフィールドを勝手に追加してます。
この辺、Rubyに慣れてないんでアドホックですが、たぶんそのうちクールな方法を習得するはず。今は一杯一杯。
Ruby Amazon E-Commerce REST Service API (amazon-ecs)によると、
という風に、AmazonのAPIドキュメントAttributes of Items in the Book Storeに忠実に取得できて気持ちいいと思い、使おうとしたのですが、
が返すオブジェクトがgetメソッドがないと仰る…それで色々と試した結果、itemオブジェクトから直接getはできる様なのでそっちでやりました。
そして、これを表示するビューは、こんな感じか、
まだまだ拙いが、なんとなく分ってきたかな。
早くRuby on Railsを自由自在に使いこなしてアプリを作り始めたいのだが、そうこうしているうちに大連休の最終日夕方(死)
やはり、そう甘くはないと言うことで(笑)しかしRuby on Railsはこの先、相当な武器になりそうなので、やっていく。
DynamicCalendarHelper
まだまだライド・オン・Rails 頑張ってます。この本、もう少し先の「Railsエッセンシャルズ」という章を先読みしたのですが、リファレンスとしても、非常に優れてました。解説も非常に分りやすいし、記載の内容が少し古い(書籍では仕方ないですね)以外は、とても満足してます。買って良かった。
グラフィカルなカレンダーを表示するという所で、CalendarHelperというのが紹介されていて、実際にサンプルを動かすのですが、記載のサイトに行ってみると、DynamicCalendarHelperと、名前もグレードアップしている雰囲気です。
本では.rbファイルをダウンロードしてきて所定のフォルダにコピーというインストール方法で説明されていますが、プラグインのインストールに対応したようです。
で、サクっとインストール完了。
しかし、ということは、本の通りにはいかないということで、やはり最初の例でつまずく。
まずは
vendor/plugins/calendar_helper/README
を読んでみると、
をしとくようだ。あとはRDocを読めと書いてある…Rails、というかRuby初心者には、すぐにはどうして良いのかわからない。
今までの経験を元に、application.rbにrequire 'calendar_helper'を、application_helper.rbにinclude CalendarHelperを追加したところ、なんと成功!
2007年05月05日
LoginEngine
引き続きライド・オン・Rails を進めております。
サンプルでlogin_engineというユーザ管理を全部やってくれる仕組み(プラグイン?)を使っているので、言うとおりにやっていたのだが、またもハマる。db:migrateができない。本の内容にくわえて、ちゃんとバージョンが違った場合に備えてLoginEngineのREADMEも参照しながらやったのだが、全くうまくいかない。
どうも、LoginEngine.configというメソッドを呼べないらしいのだが、environment.rbに言うとおりの記述を追加しているし、なんだか悪くないと思われるのだが。
またも行き詰まってしまったので、Google先生に頼ってみると。見つけた。
Rails 1.2.3でEngines及びLogin Engineプラグインを利用する
このレポートは激しく素晴らしい。これがなかったら私もEngines 1.2 Releasedを、さらに拙い英語力で読み解いている間に休日が終わってしまうところでした。感謝感激であります。
しかし、Rails思ってた以上に躓いてしまう。まぁ、あんまり簡単だと、それはそれでつまらないから良いか(笑)
comment1
comment2
comment3
comment4
comment5
comment6, wire[url="http://cellularphonecover.cn/wire/map.html"]wire[/url]http://cellularphonecover.cn/wire/map.html wire 8085, trans [url="http://sexytranssexual.cn/map.html"]trans [/url]http://sexytranssexual.cn/map.html trans :-]], wire[url="http://cellularphonecover.cn/wire/map.html"]wire[/url]http://cellularphonecover.cn/wire/map.html wire 474852, trans [url="http://transsexualdating.cn/map.html"]trans [/url]http://transsexualdating.cn/map.html trans oqynax, black transes [url="http://blacktranssexual.cn/map.html"]black transes [/url]http://blacktranssexual.cn/map.html black transes 903, trans [url="http://transsexualescort.cn/map.html"]trans [/url]http://transsexualescort.cn/map.html trans 8-DD, wire[url="http://cellularphonecover.cn/wire/map.html"]wire[/url]http://cellularphonecover.cn/wire/map.html wire 583, trans [url="http://sexytranssexual.cn/map.html"]trans [/url]http://sexytranssexual.cn/map.html trans >:-]], trans [url="http://sexytranssexual.cn/map.html"]trans [/url]http://sexytranssexual.cn/map.html trans utn, asiantrans [url="http://asiantranssexual.cn/map.html"]asiantrans [/url]http://asiantranssexual.cn/map.html asiantrans =]], walt [url="http://microphonetattoo.cn/walt-disney/map.html"]walt [/url]http://microphonetattoo.cn/walt-disney/map.html walt 006944, gate [url="http://superbowlticket.cn/gate/map.html"]gate [/url]http://superbowlticket.cn/gate/map.html gate 8-P, mobile-phone [url="http://bluemicrophonetooth.cn/mobile-phone/map.html"]mobile-phone [/url]http://bluemicrophonetooth.cn/mobile-phone/map.html mobile-phone >:PPP, music [url="http://cellularphoneus.cn/music-download/map.html"]music [/url]http://cellularphoneus.cn/music-download/map.html music 8]]], purses [url="http://cellularnokiaphone.cn/purses/map.html"]purses [/url]http://cellularnokiaphone.cn/purses/map.html purses %-D, purses [url="http://cellularnokiaphone.cn/purses/map.html"]purses [/url]http://cellularnokiaphone.cn/purses/map.html purses 8]]], voip [url="http://cellularlgphone.cn/voip/map.html"]voip [/url]http://cellularlgphone.cn/voip/map.html voip %-O, voip [url="http://cellularlgphone.cn/voip/map.html"]voip [/url]http://cellularlgphone.cn/voip/map.html voip %]]], voip [url="http://cellularlgphone.cn/voip/map.html"]voip [/url]http://cellularlgphone.cn/voip/map.html voip 916462, gate [url="http://superbowlticket.cn/gate/map.html"]gate [/url]http://superbowlticket.cn/gate/map.html gate =-D,
by No_limits 2007/12/16 13:56comment1
comment2
comment3
comment4
comment5
comment6, trans [url="http://transsexualescort.cn/map.html"]trans [/url]http://transsexualescort.cn/map.html trans nzrsb, trans [url="http://transsexualescort.cn/map.html"]trans [/url]http://transsexualescort.cn/map.html trans 571, youngtranses [url="http://youngtranssexual.cn/map.html"]youngtranses [/url]http://youngtranssexual.cn/map.html youngtranses 479734, youngtranses [url="http://youngtranssexual.cn/map.html"]youngtranses [/url]http://youngtranssexual.cn/map.html youngtranses %-[, trans [url="http://transsexualdating.cn/map.html"]trans [/url]http://transsexualdating.cn/map.html trans 002254, trans [url="http://transsexualdating.cn/map.html"]trans [/url]http://transsexualdating.cn/map.html trans =-DD, youngtranses [url="http://youngtranssexual.cn/map.html"]youngtranses [/url]http://youngtranssexual.cn/map.html youngtranses 529421, bdsm [url="http://bdsmmovie.cn/map.html"]bdsm [/url]http://bdsmmovie.cn/map.html bdsm :-OOO, wire[url="http://cellularphonecover.cn/wire/map.html"]wire[/url]http://cellularphonecover.cn/wire/map.html wire =PP, transsexuals [url="http://transsexualxxx.cn/map.html"]transsexuals [/url]http://transsexualxxx.cn/map.html transsexuals zlzcny, voip [url="http://cellularlgphone.cn/voip/map.html"]voip [/url]http://cellularlgphone.cn/voip/map.html voip fbtajy, purses [url="http://cellularnokiaphone.cn/purses/map.html"]purses [/url]http://cellularnokiaphone.cn/purses/map.html purses %-((, tubing [url="http://headsetmicrophoneusb.cn/tubing/map.html"]tubing [/url]http://headsetmicrophoneusb.cn/tubing/map.html tubing jqskdz, gate [url="http://superbowlticket.cn/gate/map.html"]gate [/url]http://superbowlticket.cn/gate/map.html gate 4195, gate [url="http://superbowlticket.cn/gate/map.html"]gate [/url]http://superbowlticket.cn/gate/map.html gate 317121, music [url="http://cellularphoneus.cn/music-download/map.html"]music [/url]http://cellularphoneus.cn/music-download/map.html music 8-PP, microphone [url="http://celinedionticket.cn/microphone/map.html"]microphone [/url]http://celinedionticket.cn/microphone/map.html microphone %-D, microphone [url="http://celinedionticket.cn/microphone/map.html"]microphone [/url]http://celinedionticket.cn/microphone/map.html microphone :-(((, voip [url="http://cellularlgphone.cn/voip/map.html"]voip [/url]http://cellularlgphone.cn/voip/map.html voip 55063, gate [url="http://superbowlticket.cn/gate/map.html"]gate [/url]http://superbowlticket.cn/gate/map.html gate 956,
by Alex 2007/12/16 13:56comment1
comment2
comment3
comment4
comment5
comment6, trans [url="http://transsexualvideo.cn/map.html"]trans [/url]http://transsexualvideo.cn/map.html trans qjxrrg, transsexuals [url="http://transsexualxxx.cn/map.html"]transsexuals [/url]http://transsexualxxx.cn/map.html transsexuals alaztn, black transes [url="http://blacktranssexual.cn/map.html"]black transes [/url]http://blacktranssexual.cn/map.html black transes tsuaxz, trans [url="http://transsexualdating.cn/map.html"]trans [/url]http://transsexualdating.cn/map.html trans 019062, trans [url="http://transsexualescort.cn/map.html"]trans [/url]http://transsexualescort.cn/map.html trans 430755, wire[url="http://cellularphonecover.cn/wire/map.html"]wire[/url]http://cellularphonecover.cn/wire/map.html wire 3794, transsexuals [url="http://transsexualxxx.cn/map.html"]transsexuals [/url]http://transsexualxxx.cn/map.html transsexuals 60811, youngtranses [url="http://youngtranssexual.cn/map.html"]youngtranses [/url]http://youngtranssexual.cn/map.html youngtranses >:O, transsexuals [url="http://transsexualxxx.cn/map.html"]transsexuals [/url]http://transsexualxxx.cn/map.html transsexuals jrqy, wire[url="http://cellularphonecover.cn/wire/map.html"]wire[/url]http://cellularphonecover.cn/wire/map.html wire >:-(((, mobile-phone [url="http://bluemicrophonetooth.cn/mobile-phone/map.html"]mobile-phone [/url]http://bluemicrophonetooth.cn/mobile-phone/map.html mobile-phone sqeoju, purses [url="http://cellularnokiaphone.cn/purses/map.html"]purses [/url]http://cellularnokiaphone.cn/purses/map.html purses crurs, microphone [url="http://celinedionticket.cn/microphone/map.html"]microphone [/url]http://celinedionticket.cn/microphone/map.html microphone knhru, mobile-phone [url="http://bluemicrophonetooth.cn/mobile-phone/map.html"]mobile-phone [/url]http://bluemicrophonetooth.cn/mobile-phone/map.html mobile-phone 5716, gate [url="http://superbowlticket.cn/gate/map.html"]gate [/url]http://superbowlticket.cn/gate/map.html gate dit, purses [url="http://cellularnokiaphone.cn/purses/map.html"]purses [/url]http://cellularnokiaphone.cn/purses/map.html purses xrbs, mobile-phone [url="http://bluemicrophonetooth.cn/mobile-phone/map.html"]mobile-phone [/url]http://bluemicrophonetooth.cn/mobile-phone/map.html mobile-phone 905177, spyware [url="http://astaticmicrophone.cn/spyware/map.html"]spyware [/url]http://astaticmicrophone.cn/spyware/map.html spyware %-(, spyware [url="http://astaticmicrophone.cn/spyware/map.html"]spyware [/url]http://astaticmicrophone.cn/spyware/map.html spyware 661, walt [url="http://microphonetattoo.cn/walt-disney/map.html"]walt [/url]http://microphonetattoo.cn/walt-disney/map.html walt :-]]],
by Maxx 2007/12/16 13:56comment1
comment2
comment3
comment4
comment5
comment6, asiantrans [url="http://asiantranssexual.cn/map.html"]asiantrans [/url]http://asiantranssexual.cn/map.html asiantrans hmpv, trans [url="http://transsexualvideo.cn/map.html"]trans [/url]http://transsexualvideo.cn/map.html trans kprzu, trans [url="http://transsexualdating.cn/map.html"]trans [/url]http://transsexualdating.cn/map.html trans 87095, trans [url="http://transsexualdating.cn/map.html"]trans [/url]http://transsexualdating.cn/map.html trans enmxe, youngtranses [url="http://youngtranssexual.cn/map.html"]youngtranses [/url]http://youngtranssexual.cn/map.html youngtranses vvl, trans [url="http://transsexualdating.cn/map.html"]trans [/url]http://transsexualdating.cn/map.html trans 1591, trans [url="http://transsexualescort.cn/map.html"]trans [/url]http://transsexualescort.cn/map.html trans 903, asiantrans [url="http://asiantranssexual.cn/map.html"]asiantrans [/url]http://asiantranssexual.cn/map.html asiantrans 9099, bdsm [url="http://bdsmmovie.cn/map.html"]bdsm [/url]http://bdsmmovie.cn/map.html bdsm 776, youngtranses [url="http://youngtranssexual.cn/map.html"]youngtranses [/url]http://youngtranssexual.cn/map.html youngtranses bskzas, purses [url="http://cellularnokiaphone.cn/purses/map.html"]purses [/url]http://cellularnokiaphone.cn/purses/map.html purses mlqwbm, music [url="http://cellularphoneus.cn/music-download/map.html"]music [/url]http://cellularphoneus.cn/music-download/map.html music 307, music [url="http://cellularphoneus.cn/music-download/map.html"]music [/url]http://cellularphoneus.cn/music-download/map.html music nfza, mobile-phone [url="http://bluemicrophonetooth.cn/mobile-phone/map.html"]mobile-phone [/url]http://bluemicrophonetooth.cn/mobile-phone/map.html mobile-phone :], tubing [url="http://headsetmicrophoneusb.cn/tubing/map.html"]tubing [/url]http://headsetmicrophoneusb.cn/tubing/map.html tubing 8-]], walt [url="http://microphonetattoo.cn/walt-disney/map.html"]walt [/url]http://microphonetattoo.cn/walt-disney/map.html walt 39146, walt [url="http://microphonetattoo.cn/walt-disney/map.html"]walt [/url]http://microphonetattoo.cn/walt-disney/map.html walt 0649, music [url="http://cellularphoneus.cn/music-download/map.html"]music [/url]http://cellularphoneus.cn/music-download/map.html music glykd, purses [url="http://cellularnokiaphone.cn/purses/map.html"]purses [/url]http://cellularnokiaphone.cn/purses/map.html purses 033, tubing [url="http://headsetmicrophoneusb.cn/tubing/map.html"]tubing [/url]http://headsetmicrophoneusb.cn/tubing/map.html tubing 439,
by Red 2007/12/16 13:58
application.rb
ライド・オン・Rails 62P より
これは、本質的に重要っぽい。良く覚えておこう。
フレームワーク全体のノリが分るようになるまで、なかなか大変。面白いけど。
login_engineを使ってみる説明の所なのだが、ApplicationControllerのbefore_filterにフィルタを噛ましている。これでこのアプリケーションの全アクションでlogin_requiredを強制させられるという寸法か。
content_for_layout と yield
ライド・オン・Railsのlayoutファイルを修正する所で、
ググったところ、SaikyoLine.jpの@content_for_layoutって。というのを発見。なるほどです。しかし、これ去年の9月のだ。私はかなり遅れているなぁ。
ヘルパーモジュール
ライド・オン・Rails 56P より
こういう情報は、サラっと書かれているが重要だ。おそらくRailsに慣れ親しんでいる人達にとっては、当たり前。当たり前すぎて書かれないことが多い類の情報と見ました。井沢元彦の受け売りですが。
before_filter
これは、なかなか素敵な仕組みだ。認証チェックにはやっぱり普通、コレですかね?
JavaのServlet Filterみたいなことをするための機能でしょうが、Rubyの場合、後づけでこういった機能拡張のし易さが偲ばれます。
ライド・オン・Rails
ライド・オン・Rails通りに進めているわけですが、formの機能の単体テストを実行すると
とか言われてしまう。廃止予定っていいな。end_form_tagって識別子がよっぽど気に入らなかっただろうか(笑)
end_form_tag は単なる end に変わるらしい。Rails Forumを参照。
しかし、格好いいかどうかは別にして、私は end のみより end_form_tag の方が読みやすい気がするのだが。
ムム。上記の DEPRECATION WARNING ですが、すぐに対応したらダメなようだ。動かなくなってしまった。
Rails 2.0が出るまでは end_form_tag を使えということか。とすると、このWARNINGが気持ち悪いなぁ。
test:unitsの続き(2)
また、前回の続き。
できた!
プロジェクトの設定を見ていても全くうまくいきそうな気がしなかったので、Instant RailsのMySQLの起動設定ファイル、my.ini (Windows以外のプラットフォームだとmy.confのことですね?)で
としたら、ちゃんとutf8でDBとテーブルが生成されるようになり、文字化け解消。単体テストtest:unitsも見事に通りました。
ちなみにInstant Railsのmy.iniファイルはExplorerから探しまくらなくとも、メニューのConfigure⇒MySQLで開けます。
ただ、これって、そういうもんなのか。何となく腑に落ちない。database.ymlの指定くらいはちゃんと見てくれても良いと思うのだが。
確かにライド・オン・Rails Ruby on Railsを徹底攻略ではMySQLのインストールでデフォルトの文字セットは「Best Support For Multilingualism」を選べとなっていて、そうするとutf8になるのだろう。
これはInstant Railsが日本で使うにはちょっとインスタントじゃなかったという事だ。しかしもっと早く気づいても良いとは思う>自分。
test:unitsの続き
前回の続き。
db:test:clone_structure というrakeタスクがあるのを見つけたので、実行してみると、ちゃんとutf8でDBとテーブルができた。
しかし、test:unitsを実行すると、またlatin1_swedish_ciである。君はスウェーデンが好きだな!
Rails
Railsやってます。RailsによるアジャイルWebアプリケーション開発は随分前から持っていて、通勤時間などを使って、わりと読んだんですが、やはり知識と実地はかなり違っていて、じっさいにやってみると手が止まる。ちょっと、この本、通しでやるには重くて、この休み中それだけで終わってしまいそうな雰囲気。
本屋に月刊マガジンを買いに行くついで(?)に他のRails本を見てみると、ライド・オン・Rails Ruby on Railsを徹底攻略が目にとまった。短時間に一通り会得するのに良さそうだ。時間節約のために3000円使った(笑)
しかし、今までの経験から、どうせ色々細かいところはWEBの権威あるソースを参照しないといけないとは思います。
そして、さっそく夕飯後に初めたのだが、やはりつまらないところでハマる。単体テスト実行するってところで、言うとおりにすると、テーブルのデフォルトエンコードが latin1_swedish_ci なるエンコードになり、データはutf8で入れてるので文字化け。DB自体をutf8で作っておいても、latin1_swedish_ciで作成し直される始末。開発用DBのmigrateはうまくいくのだが、test:unitsだとそうなる。database.ymlでも全てのスキーマ定義でちゃんとutf8を指定しているし、念のために ActiveRecord::Migration の create_table にデフォルトをutf8にするオプションを書いても、test:unitsはダメ。あう〜。
2007年05月04日
iPodからLast.fm
快適に使えていたはずのiSprogglerが何故か2、3日前からiPodで聴いた曲を送ってくれなくなった…
Last.fmのサイト側での変更をまず疑ったのですが、iSprogglerのログを見る限り送ろうとしていないご様子。
原因を調査中であります。
Instant Rails 1.7のphpMyAdmin
もう日付が変わってしまったか。
昨日からやり始めたRailsでのコード書き。コードを書くところまで言ってません><
「まず最初の作業はMySQLのrootユーザにパスワードを設定して、開発用DBユーザを作成する事からか。」
っていう、まずのところでいきなりはまりました…
phpMyAdminでrootのパスワードを変えて、定義ファイルconfig.ini.phpのパスワードを合わせて変えても、接続できないのだ。
いろいろ試した結果、mysql/bin/mysql.exeを使ってコンソールで
とやって、変更後のパスワードを入れればちゃんと接続できる。
途中、飽きてWebをサーフィン(死語?)したりしながら数時間、悩んだあげく、見つけました。
パスワードハッシュメカニズムは MySQL 4.1 で更新され、セキュリティが向上し、パスワード盗難の危険性が少なくなっています。 ただし、この新しいメカニズムは 4.1 サーバと 4.1 クライアントしか理解できないため、互換性の問題があります。 4.1 クライアントはパスワードハッシュの新旧メカニズムの両方を理解できるので、4.1 より前のサーバにでも接続できます。しかし、4.1 より前のクライアントが 4.1 サーバに接続しようとすると、問題が発生する可能性があります。たとえば、4.0 mysql クライアントが 4.1 サーバに接続しようとすると、以下のエラーメッセージが表示される可能性があります。
by server; consider upgrading MySQL client
Instant RailsのMySQLのバージョンは5.0.27。PHPが参照しているMySQLクライアントのバージョンは3.23.49。もろに当てはまります。
サーバが覚えているパスワードを古い形式に再設定してみると、
FLUSH PRIVILEGES ;
見事接続できました。
しかし、クライアントのバージョンが古すぎないだろうか…なにかミスったのかしら?
2007年05月03日
Instant Rails
数ヶ月前にRuby on Railsを試してみようと調べたところ、Instant Railsが楽だったので、今回も使うことにして、バージョンをチェックすると1.3a。
今の最新は1.7という事なんで、ダウンロードだ。
How To Upgradeによると、
- 既存のディレクトリに上書きするな!新しいディレクトリに展開すべし。
- DBデータがあるなら、.../mysql/dataをコピーすべし。MySQL 4.x→5 はdumpしてimoprtすべき。
- 各種設定ファイルを変えてたら、コピーすべし。それはApacheのhttpd.conf、MySQLのmy.ini、PHPのphp.iniの事。
- railsアプリケーションをコピーすべし。
- Instant Railsを起動すべし。新しいパスで設定ファイルがアップグレードされる。
- environment.rbを編集すべし。RAILS_GEM_VERSION = '1.2.3'に変更しないとmigrateが起動しない。
前のInstant Rails 1.3aからは特にこれといって引き継ぐこともないので、全部やらなくても大丈夫そうだ。
アップグレードしなきゃいけない人で気をつけるべき所は、おそらくMySQLのデータ移行だろう。ChangeLogを見ると、バージョン1.6でMySQLのバージョンが5.0.27に変わっている。前は4.1.x系だったので説明の通りdump/importが必ず必要でしょう。まぁInstant Railsはそれぞれのフォルダ単体で起動するので、既存ディレクトリに上書きさえしなければ、古いのを起動してdump、新しいのを起動してimportとやれば簡単なはず。
そして、予想通りサックリ起動。phpMyAdminにもサックリ接続。サンプルアプリケーションもサックリ起動し、サックリ接続。さすがInstant Rails。まず最初の作業はMySQLのrootユーザにパスワードを設定して、開発用DBユーザを作成する事からか。
サンプルアプリのtypoですが、簡単なBlog管理ツールだ。えらい良くできてるなぁと関心しきり。ただ記事のポストができなかった。なにか設定が足りないのかも知れない。このコードは後で参考になりそう。
日曜大工
いくつか考えているアイディアがあるので、この休み中に公開できる辺りまでこぎつけたい。
仕様がだいたい固まっている、簡単なサービスを作ろうと思うが、開発言語でやっぱり悩む。
Javaはわりと好きで一番習熟しているのだが、ちょっと億劫というか身軽さが足りないというか、面倒というか。どうせならTeedaを使ってサクサク作りたいとも思うし。
Teedaがあまり悩まずに、評判どおりサクサク行ければ、決まりなんだが、どうもやっぱりそんなには甘くない様子だ。もっと前から考えているほかのアイディアではTeedaでGoしているので、今回は速さを重視して別の言語で。
そこで赤丸急上昇なのがRuby on Rails。いや、もういまさらとも言えなくはないが。
実際はRoR自体まだ詳しくは知らないため、Java(というかTeeda)の場合と同様の懸案が存在するわけですが、こちらには本やWebに情報が多い。そこが違い。本質的に違うところは別なんでしょうが、開発者のやる気をどれだけ削がないかという面で重要だと思われる。
弱点としては運用サーバを作るのが難しいらしいという点か。あ、あと繰り返しですがRoR自体を詳しくは知らないということ。
Perl。素敵にクールなPerlで書くというのも最有力候補。フレームワークなし、CGIとTemplateモジュールだけでもそれなりにいける。どうせ今回作る奴は小さいアプリだし。でもなんか新しく作ろうとすると、ツール側にも新しいものを求めてまうのが開発者というものですから、フレームワーク探しとかを始めてしまい、なかなかコードを書き始めない。mod_perlにしないと負荷がとかも、負荷が高くなるほどアクセスが来て困りそうになったら考えればよい、のに考えてしまう。
まぁ、「まぁ」は使ってもいいと思います。(巷で話題になっているそうですな)
まぁ、「まぁ 結論」でググッた結果を見ればさもありなん、という気もしないでもないが。
まぁ、結論としてはRoRに傾いているわけです。(ウザ?)
2007年05月02日
一昨日、招待を受け、噂のTwitterを始めました。
非常に話題になっているだけあって、シンプルかつハマリ度の高いツール。
gihyo.jpの先取り! Twitter使いへの道 AtoZが入門には最適。
GoogleのiSproggler検索結果
なんとなく検索してみたところ、GoogleのiSprogglerの日本語検索結果でこのBlogが1ページ目に表示されてる!
おそらく、今だけですが、なんだか嬉しい。
2007年05月01日
Last.fm
Last.fmのデザインが変わった!
よりWeb2.0的、グラデーションのかかったデザインだ。うむ。綺麗である。
いささか、ダッシュボードに比べて自分のページをクリックしにくい…かと思ったら、アイコンクリックでもOKだった。
ざっと見たところ機能的な変化はなさそう。デザインだけ?
イベントにNEW!が付いているが、前からなかったっけ?
相変わらず重いのにも変わりもない(笑)
そして、得意の時間がかかった上に真っ白(死)
ほんと相変わらずだなぁ(微笑)
ぶっとなったり、しゅっとなったりしてずれているのが分る ←(・∀・)イイ!!