iPadはソフトバンクから発売

たったいまiPadソフトバンクから出ることが発表されました。孫さんTwitterで発表。

Appleのサイトで「iPadに関する通知を受ける」というのにメール登録してたんですが、まだ来てません。圧倒的にTwitterのほうが速かった。


価格表はこちら




でもソフトバンク経由で販売されるiPadにはSIMロックかかってるっぽいです。。。。


SIMフリーにしてよ。どうせ2年しばりつけてるんだからさ。



でも予想以上に安いから買おうかな。と思ってしまう。





ところで、AppleStoreで本体のみ(SIMフリー)は発売されるのでしょうか。発売されるのなら、DoCoMoiPad用のマイクロSIMを出すって前に意気込んでたので、SIMフリーの本体だけ買って、DoCoMoのSIM挿して使った方がいいのかも。電波も入るし。

とりあえず触りたいだけなら、最初はSIMすら買わずにWi-Fiだけでも十分いいし。


さすがにDoCoMoもこのソフトバンクの価格見たら、そんなに高い金額では出せないでしょうからね。

Android か iPhone か

ずっと他のところでブログ書いてたのですが、訳あって久々に、はてなダイアリーにログインしました。

なのでちょっと軽く書いてみたいと思います。




スマートフォン市場ではいまiPhoneが世界的にかなりのシェアを持っていますが、Android OS搭載のスマートフォンも続々登場していて、Androidアプリの数も急速に増えていっています。


docomoXperiaがバカ売れしてますね。私はあの機種はそこまで興味ないですが、数日前にSoftbankから出た、HTC Desireは欲しいなと思います。でもiPhoneの契約まだ残ってるし当分買えませんが。。




で、最近よく友達とかに聞かれるのが、iPhoneと、Android携帯、いま買うならどっちがいいの?という質問。



正直答えに結構困ります。Androidって決めてる人には、Xperiaにするくらいなら、HTC Desireがいいよって答えているのですが。


とりあえずいまの両者を一通り説明して、個人的にはiPhoneだと答えています。もちろん「今のところ」ですが。


アプリの数がまだまだiPhoneのほうが多いってのと、ユーザーインターフェースがどうしてもまだiPhoneのほうがいいと思うから。

でもiPhoneにするなら、夏に出る(と思われる)新しいiPhone (4G とか、HDとかいわれてるヤツ。)がいいよと付け加えます。




開発者の視点で言うと、これからモバイル向けにアプリ作るなら、Android向けのほうがメリットが大きいのか、あるいはiPhone(iPadも含む)向けの方がいいのかと迷うところです。(まぁ別にどっちも勉強してどっちも作ればいいんでしょうが)


AdobeFlash CS5で、せっかくiPhoneアプリを作れるツールを提供しようとしたにも関わらず、Jobs率いるAppleが、Appleの専用開発ツール以外で作られたアプリはApp Storeに置けないという規約にしたので、世界中の開発者からはその閉鎖的な態度に相当いろいろ不満なんかが出てましたが、逆にアプリがネイティブコードで書かれることによって起動や動作スピードが速くなり、省電力にもつながるからユーザーメリットが大きいということで、Jobsの判断に賛同する意見もあるから、吉と出るか凶と出るかますますビミョーな感じです。


来月日本でもiPad出ますし、iPhoneの新しいやつも夏におそらく出ますし、とりあえずAndroidじゃなくて、iPhone,iPadのほうに注力していこうかと個人的には考えてます。



長期的にはAndroidがシェアを伸ばすとは思ってるんですがね。





プライベートのブログでは書きづらい、こんな感じの話題なら、このはてなのほうがフィットするみたいなんで、今後こっちにもちょくちょく書いていこうと思います。

JRuby + POI で Excel ファイルを作る(税理士業界のSaaS開発も大変だ・・)

当社のような税理士法人では、クライアントさんに毎月さまざまな資料を提供しています。

今でもその資料の多くはExcelで作られています。いま社内向けのWebアプリ開発をしていて帳票類はPDFを自動生成させているのですが、やっぱりスタッフからは「Excelで自由に加工したい」という要望があとをたちません。後々熟成したらSaaSにする予定ですので要望には耳をかたむけねばなりません。

というわけで、本当はやりたくないのですが、サーバーサイドでExcelファイルを自動生成させないといけなくなりました。税理士業界って独自のシステム作って自動化しても、スタッフの人たちは結局最後は自分で資料をカスタマイズしたがるんです。。。

まぁこれはもちろんクライアント企業のために各スタッフがいろいろ考えてのことなので、我々開発する人間はスタッフたちの要望を満たすようにあれこれ試行錯誤しながら実現するだけなんですけどね。

というわけで本題に。


環境

WindowsXP Pro SP3
jruby 1.1.6
Rails 2.2.2

RubyExcelを扱うなら、Win32OLEモジュールというのがあるようですが、Windowsサーバーじゃないとだめっぽいので、どうせJRuby使ってるしJavaのライブラリでExcelを扱えるのがないかと調べたところ、POIプロジェクトというのがありましたので、これを使用することに決定!


さっそくPOIのjarファイルをGETしまして、jruby/lib にコピー。
ちなみに以下の6ファイルをコピーしました。

・commons-logging-1.1.jar
junit-3.8.1.jar
log4j-1.2.13.jar
・poi-3.2-FINAL-20081019.jar
・poi-contrib-3.2-FINAL-20081019.jar
・poi-scratchpad-3.2-FINAL-20081019.jar

もちろんCLASSPATHの設定をお忘れなく。最初から設定してたらOKですよ。


で、早速簡単なサンプルを書いてみる。

include_class "org.apache.poi.poifs.filesystem.POIFSFileSystem"
include_class "org.apache.poi.hssf.usermodel.HSSFWorkbook"
include_class "org.apache.poi.hssf.usermodel.HSSFSheet"
include_class "org.apache.poi.hssf.usermodel.HSSFRow"
include_class "org.apache.poi.hssf.usermodel.HSSFCell"
include_class "org.jruby.util.IOInputStream"

def test_excel
  wb = HSSFWorkbook.new
  sheet = wb.createSheet
  wb.setSheetName(0, "シート1")
   row = sheet.createRow(0)
  cell = row.createCell(0)
  cell.setCellValue("POIテスト")

  baos = ByteArrayOutputStream.new
  wb.write(baos)
  baos.close
  send_data String.from_java_bytes(baos.toByteArray), :type=> "application/vnd.ms-excel", :filename => "JrubyPOItest.xls"
end

できたーー!
こんな感じです。


フォントやセルの色や罫線やその他いろんな細かい設定については、POI HSSF機能ガイド を見るとだいたいわかります。


これで税理士事務所のスタッフも納得してくれるでしょう・・・税理士業界のSaaS開発もなかなか大変です。

JRuby + POI で Excel ファイルを作る(税理士業界のSaaS開発も大変だ・・)

当社のような税理士法人では、クライアントさんに毎月さまざまな資料を提供しています。

今でもその資料の多くはExcelで作られています。いま社内向けのWebアプリ開発をしていて帳票類はPDFを自動生成させているのですが、やっぱりスタッフからは「Excelで自由に加工したい」という要望があとをたちません。後々熟成したらSaaSにする予定ですので要望には耳をかたむけねばなりません。

というわけで、本当はやりたくないのですが、サーバーサイドでExcelファイルを自動生成させないといけなくなりました。税理士業界って独自のシステム作って自動化しても、スタッフの人たちは結局最後は自分で資料をカスタマイズしたがるんです。。。

まぁこれはもちろんクライアント企業のために各スタッフがいろいろ考えてのことなので、我々開発する人間はスタッフたちの要望を満たすようにあれこれ試行錯誤しながら実現するだけなんですけどね。

というわけで本題に。


環境

WindowsXP Pro SP3
jruby 1.1.6
Rails 2.2.2

RubyExcelを扱うなら、Win32OLEモジュールというのがあるようですが、Windowsサーバーじゃないとだめっぽいので、どうせJRuby使ってるしJavaのライブラリでExcelを扱えるのがないかと調べたところ、POIプロジェクトというのがありましたので、これを使用することに決定!


さっそくPOIのjarファイルをGETしまして、jruby/lib にコピー。
ちなみに以下の6ファイルをコピーしました。

・commons-logging-1.1.jar
junit-3.8.1.jar
log4j-1.2.13.jar
・poi-3.2-FINAL-20081019.jar
・poi-contrib-3.2-FINAL-20081019.jar
・poi-scratchpad-3.2-FINAL-20081019.jar

もちろんCLASSPATHの設定をお忘れなく。最初から設定してたらOKですよ。


で、早速簡単なサンプルを書いてみる。

include_class "org.apache.poi.poifs.filesystem.POIFSFileSystem"
include_class "org.apache.poi.hssf.usermodel.HSSFWorkbook"
include_class "org.apache.poi.hssf.usermodel.HSSFSheet"
include_class "org.apache.poi.hssf.usermodel.HSSFRow"
include_class "org.apache.poi.hssf.usermodel.HSSFCell"
include_class "org.jruby.util.IOInputStream"

def test_excel
  wb = HSSFWorkbook.new
  sheet = wb.createSheet
  wb.setSheetName(0, "シート1")
   row = sheet.createRow(0)
  cell = row.createCell(0)
  cell.setCellValue("POIテスト")

  baos = ByteArrayOutputStream.new
  wb.write(baos)
  baos.close
  send_data String.from_java_bytes(baos.toByteArray), :type=> "application/vnd.ms-excel", :filename => "JrubyPOItest.xls"
end

できたーー!
こんな感じです。


フォントやセルの色や罫線やその他いろんな細かい設定については、POI HSSF機能ガイド を見るとだいたいわかります。


これで税理士事務所のスタッフも納得してくれるでしょう・・・税理士業界のSaaS開発もなかなか大変です。

エラー回避 date_select -- can't convert Symbol into String

環境

Ubuntu 8.1.0
jruby 1.1.6
Rails 2.2.2
MySQL 5.0

Rails 2.1 から Rails 2.2 にバージョンアップしていたら、View の date_select で以下のエラーが出た。

can't convert Symbol into String

なんでだ!?
エラー内容を見ると、

〜/jruby/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_view/helpers/date_helper.rb:564:in 'select_date'
〜/jruby/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_view/helpers/date_helper.rb:845:in 'to_date_select_tag'

などなど出ているが、該当箇所のコードを見ても特におかしい点はないような気がする。。。

う〜〜ん、わからない。1日悩む。。


Rails 2.2 から、国際化(i18n)に関する簡単な機能が搭載されるようになった。
validation のメッセージとかを日本語化したかったので、早速 environment.rb の以下の一文を入れていた。

config.i18n.default_locale = :ja

これをコメントアウトしてWebサーバー再起動して実行したところ、date_select は普通に動くではないか!!

これが原因か。。Railsのバグだ。たぶん・・・

というわけで調べたところこんな書き込みを発見!

これを元に、
〜/jruby/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_view/helpers/date_helper.rb

の以下のコードを

def translated_date_order
  begin
    I18n.translate(:'date.order', :locale => @options[:locale]) || []
  end
end


下のように書き換えたところ

def translated_date_order
  begin
    order = I18n.translate(:'date.order', :locale => @options[:locale])
    if order.respond_to?(:to_ary)
      order
    else
      [:year, :month, :day]
    end
  end
end

動いたーー!

というわけで次のRailsのバージョンアップで対応してもらいたい問題だと思います。。
まぁとりあえず動いてよかった。。

エラー回避 ObjectSpace is disabled; each_object will only work with Class, pass +O to enable (RuntimeError)

特に何もしていないのに突然Mongrelサーバーが起動しなくなった。(> <);

Ubuntu 8.0.4
jruby 1.1.4
Rails 2.1.1

エラーの内容はこれ↓


=> Booting Mongrel (use 'script/server webrick' to force WEBrick)
=> Rails 2.1.1 application starting on http://127.0.0.1:3006
=> Call with -d to detach
=> Ctrl-C to shutdown server

Starting Mongrel listening at 127.0.0.1:3006

Starting Rails with development environment...

Exiting
/usr/local/bin/jruby/lib/ruby/gems/1.8/gems/activesupport-2.1.1/lib/active_support/dependencies.rb:517:in `require': ObjectSpace is disabled; each_object will only work with Class, pass +O to enable (RuntimeError)
from /usr/local/bin/jruby/lib/ruby/gems/1.8/gems/rails-2.1.1/lib/commands/server.rb:39
from /usr/local/bin/jruby/lib/ruby/gems/1.8/gems/rails-2.1.1/lib/commands/server.rb:27:in `require'
from /usr/local/bin/jruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require'
from /home/user/workspace/testapp/./script/server:3
from /home/user/workspace/testapp/./script/server:2:in `load'

エラー内容から察するに、Active Support の dependencies.rb に問題があるようだ。
ObjectSpaceというのが怪しい。

調べてみたら Ruby Forum にこのようなトピックを発見。

これを元に、

/usr/local/bin/jruby/lib/ruby/gems/1.8/gems/activesupport-2.1.1/lib/active_support/dependencies.rb に下記の一行を追加してあげたら、うまく起動するようになった。

JRuby.objectspace=true

エラーは回避されたがいまいち原因と行った対策の是非が不明だ。。。ObjectSpace については少し調べてみないとな・・・

もうやんカレー + 食鮮館おおかわ釜揚げとうふ

今日はまたSaaS開発には全く関係のないカレーの話です。。


先月誕生日だった私のために、東京に住む自称美食研究家の友人からプレゼントが届きました。

開けてみると、かの有名店、新宿もうやんカレーの冷凍カレーではないですか!


我が家は数日前もカレーだったのですが、久々にもうやんカレーを食べれると思うと居ても立ってもいられなかったので、早速本日の夕食にいただくことにしました。

冷凍されているのでカチンコチンに凍っています。蓋をとるとこんな感じ。


本当は自然解凍がいいのでしょうが時間もなかったし、この容器がプラスチックだったため、電子レンジに入れることもできず、恐る恐る湯せんをしながら少しずつ溶かして、溶けたところから鍋にかき出していきました。これがなかなか大変な作業。。。


途中までは大変ながらも順調にいっていたのですが、途中からどうがんばっても溶けないようになりました。どうやら大きなポークの塊が入っている模様。。これは手ごわい。


スプーンに加え、ナイフやフォークまで総動員し、逆さにしたりしながら何とかかんとかポーク達の塊を鍋の中に産み落とし、ようやく容器の中身を全て鍋の中に入れることに成功!


まだ完全に溶けていないためポークが分離していない状態が少し続きます。


ポークの芯までじっくり火が通るように、水分が飛ばないように注意しながらゆっくりゆっくり混ぜていきます。


さてここで、今日は東彼杵にある老舗のお豆腐屋さんでもある「食鮮館おおかわ」さんから釜揚げ豆腐を買ってきていましたので、急遽、もうやんカレーとコラボレートしてみることにしました!

それほど口にする機会のない「豆腐カレー」に挑戦です。

おおかわさんの釜揚げ豆腐は、遠くからもわざわざ買いに来る人がいるという人気のお豆腐。他にもピーナツ豆腐や、釜揚げ豆腐を揚げてある通称「あげあげ」などもありどれも美味しいと評判なのです。


蓋とってみると、ぴかぴかに光る美しいお豆腐のお顔。私も食べるのは初めてなので楽しみです(よだれ)


カレーにのせるので暖めることにしました。少し小さく切ってから軽く湯豆腐にするためにお湯に浸して暖めます。


さぁ、もうやんカレーのほうは。。。


ようやくポークにも火が通ってきたようで、いい感じになってきました。う〜ん、うまそうですな〜。


お豆腐もカレーもほど良いくらいになったので、ご飯を用意します。


その銀シャリの上に、もうやんカレーをたっぷりかけます!



そして本日のもう一人の主役であるお豆腐もできたし、



カレーの上にダイナミックに乗せてみました!



いただきまーす。


カレーとご飯をパクリ。


うま〜い。久々のもうやんです。これです。強い存在感が特徴のカレーなんです。ポークも信じられないくらいやわらかくて今にも溶けそう。。グッときますな〜。それでいて少し甘いのです。コクのある甘みと申しましょうか。。。

容器に貼ってあるラベルを見ると、たまねぎ、にんじん、セロリ、トマト、にんにく、リンゴ、バナナ、砂糖 などなど。
形は跡形もなく溶けていますが、その一つ一つはこの味を構成するためにたしかにそこに存在しているんですね。


お次は、お豆腐も一緒にパクリ。おーー、このお豆腐はすごい!


暴力的な個性を持つもうやんカレーと一緒に食べているにもかかわらず、しっかりと口の中でお豆腐の味がします。実は食べる前にもうやんカレーと一緒に食べたら、豆腐の味の居場所がなくなるかもしれないなーと危惧していたのですが、杞憂に終わりました。しっかりとお豆腐としての個性を発揮しつつ、まろやかだからでしょうか、もうやんカレーとなんかよく合っているような気がします!グッドコラボレーションでした!


一口一口「オリジナルもうやん豆腐カレー」を味わっていたら、明日の朝食べようと思っていた豆腐単体でもすぐに食べたくなり、鍋に残っていた湯豆腐にネギをふってお醤油をかけて食べてみました。


これもうめぇーー!


なんか家にいながらにして高級料亭とかに出てきそうなお豆腐でした。


これは結構癖になりそうだ・・・次回はピーナツ豆腐も買ってみよう。


※ブーマーさん、もうやんカレーごちそうさま!