さとやn Blog

試合はRuby,勝負はC#!

2009年12月

ActiveScaffoldでundefined method `render_component'と出る件

表題のエラーが出てしまい、reder_componentがないっていうこと? とぐぐってみたら、Rails2.3からは削除されてしまったらしい。
単にActiveScaffoldが未対応なようだったので、

script/plugin install git://github.com/lackac/render_component.git -r rails-edge

として、プラグインでreder_componentなるものをインストールしてやったら上手くいきました。

iPhone充電スタンド購入

やっぱり置くだけで充電して欲しいので、サンコーというところが発売している2000円の充電スタンドを購入しました。 やっぱコッチのほうがいいですね。 カバーしたままでもOKです。
*私のはシリコンラバー製です。あまりに分厚いやつはどうだかはわかりません
Amazonのレビューで、3GSでは使えない、というのがありましたが、そんなことはなく普通に使用できます。
Image194

OSXでファンクションキーが突然効かなくなる件について

何の拍子かはわかりませんが、突然キーボードのファンクションキーが効かなくなる場合があります。というかしょっちゅうあります。
ググってみるとどうもDockが悪さをしているとかで、Dockを再起動すれば直るとのこと。
試しにアクティビティモニタ(Windowsで言うところのタスクマネージャのプロセス一覧にあたるものか)からDockのプロセスを終了したところ、勝手にDockは起動してきました。
で、ファンクションキーも無事復活。
でも何なんだ、,,。
次回のアップデートで直してくれないかな、,,。

49)

RailsでjQueryをGoogleCDNでインクルード

また新規にRailsプロジェクトを作成しているのですが、最初の段階で毎回jQueryをダウンロードして解凍して配置、するのは今後も面倒だな、ということでGoogleが何かそういうの提供していたのを思い出して、使ってみることにしました。
実は最初にMicrosoftの同様のサービスを調べてみたのですが、やる気なさそうなので止めました。(^_^;)

アドレスを静的に指定する方法と、GoogleAjaxAPIローダーを使って動的に読み込む方法があるようです。
直接指定した方が簡単ですが、APIを使った方が柔軟な指定が可能、ということでそっちでやってみました。
※APIを使用するにはキーが必要とのことでした。


<script type="text/javascript"
src="http://www.google.com/jsapi?key=APIのキー">
</script>


取り敢えずGoogleAjaxAPIローダーをインクルードして、

google.load("jquery", "1.3");

で、jQeuryの1.3系の最新版をインクルードするようにしてみました。
1.3.xのように詳細なバージョンを指定することも可能で、省略すると勝手に最新のものを持ってきてくれるとのことです。

で、RailsではPrototypeも使うので、jQueryの競合を避けるために、すぐ下に
jQuery.noConflict();
とやったみたら、jQueryなんてないよ、と怒られる。
静的にリンクした訳じゃないので、下に書いたからって駄目なようです。

google.setOnLoadCallback(function(){
jQuery.noConflict();
});


としてやって、ページロード後にやってあげることにしました。
何かドキュメント読むと、loadメソッドのオプションに callbackというのがあって、スクリプトロード後に呼び出される、みたいなことが書いてあったんだけど、何か上手くいきませんでした。

あとは同じように
google.load("jqueryui", "1.7");
で、UIも使えるようしておきました。

iPhoneのスタンド購入

本当は置くだけで充電できるやつが欲しかったんですが、中々なかったので取り敢えず購入しました。

Image193



で、今気づいたのですが、USBはキーボードからじゃなくてiMacの裏側から取ればもうちょとすっきりするかも。

しかし、これで2000円はちょっと高いような気がします。

RailsとMySQL 文字化けテーブルの修正やっと完了

MySQLではUTF8でデータベース、テーブルを作成してはあるものの、Railsのdatabase.ymlのアダプタの設定に
encoding: utf8
を書き忘れたために、どうもlatin1の文字をUTF8として書き込んでしまっているらしく、しかもWindwsアプリでアクセスするまで気づかなかったために、もうそれなりにデータが蓄積してしまっていて、さあ、どうしよう、てなことになりました。

で、なんとか悪戦苦闘した結果、下記の手順で既存のUTF8のテーブルにlatin1で書き込まれたデータをちゃんとUTF8に統一することができました。

まず、

mysqldump my_db --default-character-set=latin1 > db_temp.dump

でダンプ。

create databaseでちゃんとUTF8を指定しているので、ダンプの中身を見るとちゃんと文字コードの指定はUTF8になっていはいるのですが、Railsの設定ミスで実際のデータはlatin1。なのでlatin1のDBを作成するようにダンプファイルを書き換え。

sed -e s/utf8/latin1/ db_temp.dump > latin1_db.dump

MySql側で一時的に使用するlatin1のDBを作成、

create database temp_db character set latin1;

として、latin1のDBを作成して、上記のダンプを流し込む。

mysql temp_db < latin1_db.dump

これでlatin1データベースができるので、これをもう一回ダンプ。

mysqldump temp_db --default-character-set=latin1 > temp_db.dump

今度はlatin1をUTF8に置き換える

sed -e s/utf8/latin1/ temp_db.dump > utf8_db.dump

で、変換したダンプをオリジナルのDBに流し込みます。

mysql my_db < temp_db.dump

これで設定も実際のデータもUTF8の出来上がり。
ちゃんとRailsのdatabase.ymlに
encoding: utf8
を追記して、念のため
./script/cosole
でデータの中身を覗いてうまくいっていることを確認。

何か、多分、もっと別の方法があるとは思うのですが、、、、。

MobileMe が便利かも

年間1万円は高いなーとか思っていたアップルのMobileMeですが、iPhone,MacBook,iMacと複数のMacを使っている今となっては、それぞれのデータの同期を自動的にやってくれるこのサービスに加入する動機が十分にできたので、1昨日加入してしまいました。

以前、iPodTochを購入したときにお試しで使ってみたのですが、その時はMacにつなげたときに同期取れるんだから、別にいらないじゃん、とか思ったのですが、Macが2台あってどっちもそれなりに使っていると、どうしてもデータを同期したくなってしまいました。
かなり便利です、、、。
でももうちょっと安くして欲しいな。

09)


EverNoteが便利という噂を聞いて、ちょっと調べたのですが、あまり好みに合わなそうだったのでやめました。

MobileMe、、、デスクトップとノートでマックを使っている人には便利なサービスです。

マックでWindowsのalt + tab

WindowsではAlt+TabですべてのWindowの中から任意のものを選択できましたが、マックでは command + tab でやろうとするとWindow単位ではなくアプリ単位になってしまいます。
でも command + tab でアプリを選択した状態で、上下のカーソルキーを押すと、そのアプリケーションのWindow一覧が表示されることをついさっき、偶然知りました。
仕事で知り合った、ごく最近マックユーザーになった人もちょっと困っていたようなので、これ見てたらやってみてください。

あー、何か、家で仕事したって感じがする。。。

Railsでの通貨フォーマット

Viewヘルパーにその名もズバリ
number_to_currency

number_to_currency(number, options = {}) public

Formats a number into a currency string (e.g., $13.65). You can customize the format in the options hash.
Options

* :precision - Sets the level of precision (defaults to 2).
* :unit - Sets the denomination of the currency (defaults to "$").
* :separator - Sets the separator between the units (defaults to ".").
* :delimiter - Sets the thousands delimiter (defaults to ",").
* :format - Sets the format of the output string (defaults to "%u%n"). The field types are:

%u The currency unit
%n The number


ということなので、よくありがちな

?100,000-
としたい場合は、

<%= number_to_currency(1000000, :precision => 0, :format => "%u%n-", :unit => '?') %>

とすればいいわけですね。
なるほど。

6時間後に君は死ぬ

高野和明さん、久しぶりに読みました。
内容は下のとおりですが、どれも心温まる感じで良かったと思います。
あ、最初の1話は、あまり心温まる話でもないです。

タイトル6時間後に君は死ぬ
著者/監督/Artist高野 和明
価格, 出版¥ 1,680 講談社
評価★★★★
2009-12-05

【出版社/著者からの内容紹介】

回りつづける運命の時計未来を賭けた戦いが始まる! 稀代のストーリーテラーが放つ、緊迫のカウントダウン・ミステリー 運命の岐路に迷う時、1人の予言者が現れる。 「6時間後に君は死ぬ」。街で出会った見知らぬ青年に予言をされた美緒。信じられるのは誰なのか。「運命」を変えることはできるのか。 未来は決まってなんかいない

【内容(「BOOK」データベースより)】

「六時間後に君は死ぬ」。街で出会った見知らぬ青年に予言された美緒。信じられるのは誰なのか。「運命」を変えることはできるのか。


プロフィール

さとやn

C#が好きだけど仕事はRubyばかりな開発者。
最近はDockerとか関数型言語とかAngularJSにハマっている。
武蔵小杉とか田町とか柏とかに出没。

QRコード
QRコード
  • ライブドアブログ