Adobe AIR for Linuxの日本語対応度

Posted filed under Ruby on Rails.

 Adobe AIR for Linux アルファ版がリリースされたので、早速インストール。 やっぱり気になるのは、日本語の対応度。Linux版にコードが近いであろう、OSX版は表示は出来るけど入力がだめだったので、入力はあまり期待できない。でもせめて表示だけは出来てほしいなと思いつつ、適当なアプリを実行してみる。  サンプルで配布されているFreshというExtJSを使ったフィードリーダを実行して、日本語のフィードを入れてみると、無事表示。  で、問題は入力。これは他のアプリで試したけど、案の定ダメ。他のアプリで入力した後、コピペしても2バイト文字以降がペーストされない。これはWindowsなどで日本語版が出ないと解決されないようだ。残念。  あと気になるのは、フォント処理。同じ処理で表示しているはずの文字でフォントサイズが違う場合がある。 このスクリーンショットの下の本文のフォントが、さっきのスクリーンショットに比べて大きい。  もしかしたら、文字表示にも問題あるかも。これは要検証だな。  でも、ちょっと試した範囲では、WindowsやOSXと同じように動くようだ。公衆端末みたいな特定用途のPCにはとてもいい環境だと思うなぁ。最近、EeePCとかで安いミニノートも出てるし。  詳しくは、日経LinuxでAIRの連載をしているので、そっちでよろしく!

Amazon EC2で固定IPが使えるようになった

Posted filed under Ruby on Rails.

Amazon Web Services Developer Connection : Feature Guide: Amazon EC2 Elastic IP Addressesによると、Amazon EC2で固定IPが使えるようになったとのこと。 Elastic IPってのは固定IPの事らしい。 詳しくは起きてから書く。

【Rails】一部のフィールドのみvalidを実行する

Posted filed under Ruby on Rails.

友達のブログで探してるって書いてたので、自分で使ってるソースを晒してみる。 # 指定したカラムのみでvalid?を実行 # # ActiveRecord#valid_columns?(:login, :password) # class ActiveRecord::Errors # 指定したカラムのエラーを削除 def delete(column) @errors.delete(column.to_s) end end module ActiveRecord::Validations # 指定したカラムのみをvalid? def valid_columns?(*columns) valid? cols = columns.flatten.collect(&:to_s) errors.delete_if do |column, error| !cols.include?(column) end errors.empty? end end * 変更 02/24 06:58*  eachの中でdeleteやめて、delete_ifを使う様にした。

札幌ビズカフェでRailsの話をします

Posted filed under Ruby on Rails.

札幌ビズカフェで、3/5 18:30からRailsの話をします。 特にサービスインに必要なサーバの話や、運用の話を中心に出来たらいいなと思っています。 最近、注目されてきている、Adobe AIRとの組み合わせについても、少し話す予定です。 http://www.bizcafe.jp/whatsnew/index.php?itemid=1143

【実は】マクドナルドの100円コーヒーはお代わり無料【有名なの?】

Posted filed under Ruby on Rails.

 店舗によってですが、mobilepointで無線LANが使えたり、コンセントまで使えちゃうので、よく仕事の気分転換に行くマクドナルドですが、今日、妻と一緒に行ったところ、驚愕の事実を知りました。  マクドナルドのコーヒーってお代わり自由なんですね。 どこにも書いてないけど。  最近、コーヒーおいしくなったし、電源も使えるし、無線もOK。すばらしすぎるマクドナルド。  今日、一緒に行ったマクドで「隣のレジでコーヒーのカップを持って、『お代わりください』って言っている人がいた」というので「次頼むときに聞いてきて」と言って聞いてきて貰いました。ありがとうw

[予告編 30分]AIRとBlazeDSとRubyでメッセンジャーを作る[129ページ]

Posted filed under Ruby on Rails.

| View | Upload your own 今日デブサミライブで話をしてきた資料を公開します。 Adobe AIRとBlazeDS、JRubyを合わせて企業内向けメッセンジャーを作ろうという話です。 時間が30分と短いのでざっくりとした内容ですが、BlazeDSとAIRの連携を中心に、JRubyからメッセージを送信するまでを解説しています。 この話は、まだ途中で、続きは3月に入ってからAdobe Developer Connectionで公開する予定です。 実装してほしい機能などありましたら、コメントください。よろしくお願いします。 PDFダウンロード

もうすぐだけど、デブサミで発表します

Posted filed under Publications, Ruby on Rails.

デブサミ2008のデブサミライブ 2/13 14:20-の枠で、BlazeDSをRubyから扱う話をします。 BlazeDS(Java), Ruby, AIR(ActionScript)と扱う言語だけは多いですが、マニアックな話ので、誰もこないんじゃないかと心配です。 内容的には、BlazeDS+AIR+Rubyを使って企業向けインスタンスメッセンジャーを作る話をします。 殆ど時間をPCに向かっているこの業界では、内線電話よりもメッセンジャーの方が便利な事も多々あると思います。 しかし、GTalkやMSNメッセンジャーはセキュリティの問題があり使えない、、、 そんな企業の為に、簡単に作れるメッセンジャーをご紹介します。 多分、同時に100人以上が接続しても大丈夫。はなず。クラスタリングもできるっぽいし。 そして、いまそのサンプルを間違って消してしまって、作り直しちゅう。。。。。 サンプルだから、svnに突っ込んでなかったんだよなぁ。

Railsでコントローラを作らずにerbだけ実行する方法

Posted filed under Ruby on Rails.

別にPHPの話題とは関係ないのですが、PHP見たいにHTMLにぺっとコードを貼って動かしたいなーというケースはRailsでアプリを組んでいて思う事が多々あります。 ヘルプページは静的なHTMLなんだけど、レイアウトはRails部分と共用したいなーとか、ヘッダ部分にログイン中のユーザ名だけは入れておきたいなーとか。 そこで、そんなときのため、http://example.com/helpにアクセスすると、RAILS_ROOT/erb/help.html.erbが実行されるような仕組みを考えてみました。めんどくさいのでプラグインにはしていません。 ルートファイルと、アプリケーションコントローラに下記のコードを追加してください。 config/routes.rbの最後の行に追加 map.connect ‘*path’, :controller => ‘application’, :action => ‘rescue_404′ if ::ActionController::Base.consider_all_requests_local app/controllers/application.rbの適当な所に追加 def rescue_404 absolute_root = File.join(File.expand_path(RAILS_ROOT),”) template = File.expand_path(File.join(‘erb’, *params[:path]), RAILS_ROOT) if template.index(absolute_root) == 0 template = File.join(template, ‘index’) if File.directory?(template) [‘.html.erb’, ‘.erb’, ‘.rhtml’].each do |ext| return render(:file => template+ext) if File.file?(template+ext) end end render :file => File.join(RAILS_ROOT, ‘public’, ‘404.html’)… Read more »

jpmobileのtrans sidをセッションのCookieStoreに対応させてみる

Posted filed under Ruby on Rails.

こっちが、ほんとの目的。地味に開発を続けているSticka.jpの携帯対応の為に必要なので。 AIR版とWeb版を同時にリリースするつもりだったのに、AIRの日本語は相変わらずダメダメなので、とりあえずWeb版ばかり開発が進んでます。 すでに十分使える様になったので、前に登録していただいた人を中心に近々ベータテストを開始します。 このコードはうまく動きません。対応はあきらめました。 (追記 2008/02/03) さて、このStickaはRails 2.0で作っています。セッションはCookieStore。どうせuser_idしか保存しないしね。 でも、そうするとクッキーを持たない携帯では使えない。それじゃ困る。 という事で書いてみました。jpmobileのtrans sidを使ってCookieStoreをパラメータに保存。 セキュリティ的にかなり微妙なので、使う人は気をつけてください。 とくにリファラーは一発です。 i-modeのブックマークのURLは256文字までらしいので、別に対策が必要です。 jpmobile/lib/jpmobile/trans_sid.rb # 〜〜 省略 〜〜 class CGI::Session::CookieStore #:nodoc: # ↓追加 def marshaled_data #:nodoc: if defined?(@data) && !@data.blank? updated = marshal(@data) raise CookieOverflow if updated.size > MAX return updated end nil end end # ↑追加 module Jpmobile::TransSid #:nodoc: # 〜〜 省略 〜〜… Read more »

jpmobileのtrans_sidがRails2.0で動かなかったのでパッチを作ってみた

Posted filed under Ruby on Rails.

Cookieが使えないDoCoMoなどの端末で、uriにセッションキーを追加するtrans_sidが、Rails 2.0系で動かないっていう話があったので、気分転換に手を動かしてみました。 http://dev.rubyonrails.org/browser/tags/rel_2-0-2/actionpack/lib/action_controller/cgi_ext/session.rb Railsのセッションは、Ruby標準のCGI::Sessionを使っています。ここでSessionを生成する時にCGIのオブジェクトから、クッキーやパラメータを見てセッションを生成してます。 そこで、このセッション生成のときを調べてみると、CGI#paramsが空でパラメータが渡っていません。 http://dev.rubyonrails.org/browser/tags/rel_2-0-2/actionpack/lib/action_controller/cgi_ext/query_extension.rb CGIの生成を追っていると、そもそも生成時にCGI#paramsを{}で上書きしています。 これは、CSRF対策のようです。これを上書きするのもちょっとなんな気がするので、セッション生成時にパラメータを再構築する様にしてみます。 jpmobile/lib/jpmobile/trans_sid.rb に下記のパッチを追加してください。 class ::CGI #:nodoc: class Session #:nodoc: alias_method :initialize_without_uri_session_key, :initialize def initialize(cgi, options = {}) cgi.params[options[‘session_key’]] ||= ENV[‘RAW_POST_DATA’] ? CGI.parse(ENV[‘RAW_POST_DATA’])[options[‘session_key’]] : CGI.parse(cgi.query_string)[options[‘session_key’]] if @cgi.cookies[options[‘session_key’]].empty? initialize_without_uri_session_key(cgi, options) end end end このままだと、jpmobileをインストールするだけで、セッションキーをパラメータで受け取る様になってしまいます。 本当は最低でもtrans_sidが起動された場合にのみ、このパッチが走る様にしないとな。 携帯用にするなら、携帯からのアクセスの場合のみURIパラメータでセッションキーを受け取る様にしたいなぁ。 このパッチは、作者のShidara君に送ってあるので、数日中に取り込まれると思います。 続いて、CookieStoreをパラメータに埋め込む様にしたいなぁ。