カテゴリー「ruby」の47件の記事

2009.09.11

Snow Leopardでuninitialized constant MysqlCompat::MysqlRes

Snow LeopardにしたらRailsが動かなくなった。

MySQLをインストールし直す必要があるようだ。
http://journal.mycom.co.jp/news/2009/09/01/033/index.html

によると
Mac OS X 10.5 (x86_64)

と64ビット版のMySQLクライアントをインストールしないといけないらしい。


んで、gemのmysqlを以下のようにインストール


sudo env ARCHFLAGS="-arch x86_64" gem install mysql --with-mysql-config=/usr/local/mysql/bin/mysql_config

| | コメント (0) | トラックバック (0)

2009.08.07

Ambling(amchartsのRubyのラッパー)の折れ線グラフのサンプルコード

Amblingはいいんだけど、サンプルコードないし、Googleで検索しても情報ゼロなので、公開する。欲しい人は多いはずだ。
暴想家計簿作るときにしんどかったので。


これは折れ線グラフのサンプル。
そもそも、Amblingの使い方として、グラフのデータを返すactionとグラフを表示する(Flashをレンダリングする)Actionが必要。
で、Flashのレンダリングタグのなかから、データを返すactionを呼び出してグラフを表示する。

んで、↓がデータを表示するactionのサンプルコード。
こっちのほうは、testコードを見ると意外とサンプルが多いので比較的楽。
------------------------------------------------------
simple_chart = Ambling::Data::LineChart.new

#横軸を定義。ここでは12ヶ月(1年)にするためにこうしている。必要に応じて変更する。
12.times{|i|
simple_chart.series.push(i+1)
}
#グラフに入れ込みたいデータを呼び出す。
#ここでは、yearをキーにしたhashをやっている。こうすることで年単位の比較折れ線グラフが作れる。
#折れ線が一本で良いときは単なる配列を突っ込めばいい。
data_hash.each_key{|year|
#chart_year[year]はただ単に縦軸の数字が詰まった配列(Array)。家計簿で言うところの月単位の金額が詰まった12個の配列。
#[200, 344, 445, 553, ...]みたいな感じ。
#titleには、まあ好きなラベルを入れればいい。
simple_chart.graphs << Ambling::Data::LineGraph.new(chart_year[year], :title => year)
}

return simple_chat.to_xml

------------------------------------------------------

んでこれまたわかりにくいのが、viewの方。


------------------------------------------------------
#data_fileには上記xmlデータを返すactionを指定
#approx_countは横軸の単位を表示する値を指定。今回は12ヶ月なので12。これを指定しないと、1, 6, 12とかしか横軸の単位が表示されない。
#指定しなければデフォルトになる
#そのほか細かい指定はdocumentにあるとおりで、このdocumentにある定義を↓みたいにHashで渡してあげればいい。一度理解すれば簡単。
<%=
ambling_chart(:line, :data_file => '',
:id => 'pie_data', :width => 800, :height => 360,
:chart_settings => Ambling::Line::Settings.new({
:grid => {
:x => {:approx_count => 12}
}
}).to_xml) do
"<p>To see this page properly, you need to upgrade your Flash Player</p>"
end
%>
------------------------------------------------------

あーあと、当たり前だけど、amchatの本体Flashは別途ダウンロードしておかないとだめ。忘れがち。

| | コメント (0) | トラックバック (0)

2009.07.18

matzがブログ更新しないと思っていたらtwitterやってたのか・・

今日、基調講演聴いて始めて知ったんだけど、常識・・??


http://twitter.com/yukihiro_matz


しかも、iPhone買ってハマっているのか。。


それにしても、twitterの文章見ると今までのブログの文体とはずいぶん違うから、違和感というかへぇ、という感じ。

ツールは人を逆支配するんだな。

| | コメント (0) | トラックバック (0)

Ruby会議で海外スピーカーセッションは辛すぎる

RubyKaigi2009では海外スピーカセッションに参加しよう!


↑のような記事の趣旨はわかるし、そうだと思うから、試しに今日は「From Rails to Rack: Making Rails 3 a Better Ruby Citizen」のセッションを聞いてみたんだけど、、、これがもう、半端ない難易度。

あの会場で、あのスピーチちゃんと理解できている人ってどれくらい居るんだろう・・


どういう風に辛いかというと

・ネイティブ英語でマシンガントーク
 せ、せめてスローに喋ってくれないかと思うんだけど、もう、超スピード英語で喋る。んで、最後あたりには時間も足りなくなってさらにマシンガン。いやぁ、あれ、理解するのってどれくらいのレベルのリスニング力なんだろう。。


・プレゼンスライドに補助的文章(英文、翻訳両方)がない
 例えば、英語のプレゼンでも、英文がスライドに書いてあると理解の助けになる。けれども、ほとんどない。なんか、ネコの写真っぽいのが出てたりもしたけど、そんなのいらないから概要を英語で良いから表示して欲しいと思った。

英語が分からなくても,プレゼンには日本語訳が入っているし,通訳スタッフがいるから質疑応答も日本語でも大丈夫(だと思う)。

ということで、英語が分からない、分かったとしてもネイティブレベルがないと太刀打ちできないんじゃないかと思った。
プレゼンには日本語訳は入っているけど、そもそも訳すための英語がスライドになかったりするので、実質的に翻訳はゼロだと思った。

いやぁ、でも本当に、以外とアレみんな理解できているのかねぇ・・・???


明日からは素直に日本語のセッションのみに参加することにします。

つーか、英語のスピーチ聞くよりもRuby会議2009 1日目レポートのまとめが神すぎて、こっち読んだ方が理解が深まるし。。


っていうか、どうなんだろう。母語が英語の人って日本人の前で英語でマシンガントークするのってあまり気にならないのかな。

| | コメント (0) | トラックバック (0)

2009.06.04

senna(tritonn)で大文字小文字、全角半角を無視して検索できるようにする方法

えびログ: [Senna]インデックスの再生成

をみると、USING NORMALIZEを使えばいいみたい。

| | コメント (0) | トラックバック (0)

2009.05.20

Rubyで任意の場所にあるlibディレクトリにpathを通してrequireでモジュール(ライブラリ)をロード(読み込める)できるようにする方法

求めている人が多いんじゃないかと思ってGoogleでヒットできるように記事化した。

Perlの

use lib qw(/...);

のRubyでの書き方

$LOAD_PATH.unshift './lib'


もっと良い書き方があれば教えてください。あと、1.9でもこのまま?

| | コメント (3) | トラックバック (0)

AmchartsをRubyで使うときの便利なRailsのPlugin(ラッパー):Ambling

ambling : RDoc Documentation

暴想家計簿ではこれを使った。
RDocにあるサンプルコードを参考にすれば良いだけだから説明はいらないと思う。

ただ、amblingはRailsのPluginで、暴想家計簿はRailsじゃないから、手動でAction::ViewをIncludeしてamblingを手動でrequireした。


./libに各種ライブラリをコピーして、


$LOAD_PATH.unshift './lib'
require 'active_support'
require 'ambling/init'

include ERB::Util
include Ambling::Helper
include ActionView::Helpers::TagHelper
include ActionView::Helpers::JavascriptHelper

みたいな感じでもろもろをロードした。


しかし、Rubyは$LOAD_PATH.unshift './lib'をもう少し覚えやすくかっこよく書けないものかな。
Perlの

use lib qw(/...);

ってのは覚えやすくしわかりやすいんだけどなぁ。
しかも

$LOAD_PATH.unshift './lib'

って記法をGoogleで探すの難しいよね。
1.9もこのまま?

| | コメント (0) | トラックバック (0)

2009.04.21

衝撃の事実。Tritonn(上のsenna) による検索はスコア値(重み付け順)でソートされない

結論としては、↓のブログ様でかかれていることの通り。ここで4時間消費した。というか、↓のブログを発見するのに4時間費やしたということか。
Tritonn による検索はスコア値でソートされない - Ceekz Logs (吉田光男@筑波の日記)


senna 重み付けの方法 - Google 検索とかで検索すると、

Sennaのマルチセクション機能に対応 - mir the developer

のページがヒットする。

おお、マルチセクション機能を使えばカラム単位で重み付けができるのかと思って早速試してみるものの、結果に変化がない。まるでない。

これをやっているうちに、そもそもtritonn(っていうか、senna)の検索結果ってorder句を指定しなかったら何順なの?とかという素朴な疑問がわいてきた。
検索結果を見ると、なんだか普通のlike検索と同じだ。

んでも、LuceneとSennaの比較:スコア計算 | 関口宏司のLuceneブログを見ると、sennaでもちゃんとスコア計算しているみたい?という疑問。

つまり、sennaにはスコア計算の仕組みはあるけど、tritonnではそのスコアは活用されていない?手動でorder句を書かないといけないの?その場合、order by ***なんて書けばいいの?という疑問が。


んで、tritonn 重みとかで検索しても見つからなくて、tritonn score - Google 検索でようやく見つけた。

念のため、自分用にコピペメモ。
SELECT
*,
MATCH(col) AGAINST('*D+ 検索' IN BOOLEAN MODE) AS score
FROM
table
WHERE
MATCH(col) AGAINST('*D+ 検索' IN BOOLEAN MODE)
ORDER BY
score DESC;

| | コメント (0) | トラックバック (0)

feedtools0.2.27以降は日本語文字化け

の様子。

| | コメント (0) | トラックバック (0)

ruby gems で特定のライブラリの特定のバージョンだけをアンインストール(uninstall)する方法

まず最初に今はいっているライブラリの確認。
gem list --local | grep feed


gem uninstall feedtools --version '= 0.2.29'

| | コメント (0) | トラックバック (0)

より以前の記事一覧