Java Appletのように重いこみゅすけのUIだが、こみゅすけの次の一手として、思い切ってこみゅすけの情報を取得あるいは操作するためのRESTful APIの公開を開始することにした。すでに実装は完了し、下記のドキュメントも執筆完了。
RESTful APIリファレンス – Trac
リソースの削除については、間違ったAPIの利用によって情報が消去されてしまう懸念があるため、HTTP DELETEメソッドは受け付けないようにしてある。その他のGET、POST、PUTメソッドについては、ちゃんと実装を行っているので、試してみて欲しい。利用条件なども上記のページに記載してあるので、一読願いたい。
こみゅすけの開発当初は、Dojo Toolkitをフルに使ったUIをみんなに使って欲しい、という考えだったのだが、今ではこみゅすけの管理下にあるデータベースこそ、価値のあるものであり、みんなにうまく活用して欲しい、と思っている。なかなか完全なRESTful APIというのも、まだ世の中に少ないと思うので、RESTful APIを使ったサービスのマッシュアップを、こみゅすけを題材にして、ぜひ皆さんにいろんな言語で行ってみて頂きたい。その結果、こみゅすけがいろんな場所でいろんな使われ方を見れるようになることが、僕が今考えている最も嬉しいこみゅすけの将来である。
データベースのバックアップは毎時取っているので、「壊しちゃったらどうしよう」など考えず、ぜひチャレンジして見て欲しい。もちろん節度ある行動を求めたいが、ま、とにかく気軽にご利用ください、ということである。
みんなでこみゅすけの将来を一緒に作っていきましょう。作って欲しいです。作ってください。作ってー!
- Posted:
- 01.15.2008
- Category:
- Commusuke

こみゅすけには、イベントの参加申込を受け付ける機能がある。参加申込時にはメールアドレスも入力させているのだが、ロボットに拾われてスパムメールの情報発信源になるのは避けたかったので、入力されたメールアドレスは表示しない(Ajaxのレスポンスにも含めない)ようにしている。
ただ、それだとイベントの主催側がリマインドメールなどを送信できないので、メールアドレスも含め、参加申込者の一覧をコミュニティ管理者にメール送信する機能を追加した。

コミュニティの登録時に入力したメールアドレスを入力して右のボタンを押すと、そのメールアドレス宛にに参加申込者の一覧がメール送信される仕組みである。もちろん間違ったメールアドレスを入力してもメール送信されないようにしている。
ぜひ活用してみて欲しい。
- Posted:
- 11.22.2007
- Category:
- Commusuke

Sun&リクルート主催で行われたMash up Award 3rdのこみゅすけトリプル受賞からすでに1ヶ月以上経過しているが、先週サン・マイクロシステムズ賞の副賞が届いた。

スニーカー全面にDukeが6パターンちりばめられている。まさにJava好きにはたまらないシューズ。
これ、完全にオーダーメイドなので、1、2万円なのかと思っていたら、とんでもない。その4倍以上したらしい。しかも、Sunの方々の重い重い想い(=念)が詰まっているので、逆に普段履けない。
イベント事に参加するときには、このシューズとDuke Tシャツ、Sunの白シャツにDuke巾着をさげて登壇する予定。あとは、Glassfish関連とJRuby関連グッズも欲しいところである。。。
サン・マイクロシステムズのスタッフの皆さま、ありがとうございました!
- Posted:
- 11.22.2007
- Category:
- Commusuke

こみゅすけに登録されたイベント情報は、RSS FeedによってRSSリーダーなどで購読できるようにしている。また、Google Calendarから、イベント情報をGData APIを使ってインポートする機能も提供している。
id:yoshioriさんからの要望もあり、iCalendar形式でイベント情報をエクスポートできるようにしてみた。

これにより、こみゅすけに登録されたイベントを、iCalendar形式に対応したスケジューラ(Google CalendarとかmacのiCalとか)に取り込むことができるようになる。ぜひ活用してみて欲しい。
- Posted:
- 11.17.2007
- Category:
- Commusuke

イベントの参加申し込みを受け付ける機能を持つこみゅすけ。今までは、参加申し込みページに直接行くことができず、こみゅすけ上でイベントの検索を参加申込者が自分で行わなければならなかった。これだと、利便性が良いとは言えない。
そこで、あるお方からの要望もあり、イベントの参加申し込みページにリンクを設置して、そのリンクを配布することにより直接参加申し込みページに行くことができるようにした。

コミュニティの登録は自由なので、コミュニティを主催されている方は、ぜひこみゅすけに登録して利用してみて欲しい。
- Posted:
- 11.16.2007
- Category:
- Commusuke

多くのmacユーザは、Leopard(10.5)に移行したことだろう。僕も販売開始のその日にLeopardに移行した。Leopardには、Safariの新しいバージョン3が搭載されている。このSafari3でこみゅすけを見てみると、なんと見事に文字化けしていた。Safari2でも文字化けしていて直したというのに、だ。
Safari2では、dojoによって読み込まれるjsファイルおよびhtmlテンプレートファイルの両方が文字化けしていたのだが、dojoに手を入れて文字化けの補正をした状態でSafari3で見てみると、htmlテンプレートファイルのみ文字化けしていた。むー、何なんだSafariは。。。
jsファイルは文字化けしていないので、いっそのことhtmlテンプレートファイルは廃止し、その内容はjsファイルに書いてしまう手法で修正を行った。手元のMacbook ProのSafari3では、文字化けは解消されている。読み込むファイル数がhtmlファイルがなくなった分減っているので、起動時の高速化も実現できている。ま、高速になったといっても、微々たるもんだけど。
macユーザの方々にも、ぜひSafari3でこみゅすけを利用してみて欲しい。
- Posted:
- 11.15.2007
- Category:
- Commusuke

昨日のSun Tech Days 2007 Day-2にて行われたMash upに関するセッションに登壇し、こみゅすけについての話を行ってきた。その時のプレゼン資料が↓である。
実際には3人(Sunの藤井さん、リクルートの川崎さん、僕)で担当。藤井さんが司会&全体のまとめ、川崎さんがWeb API提供側としてのMash upに関する話、僕が受賞作品の紹介と個人的に感じている今後のMash upの方向性についての話を行った。かなり内容的には濃かったと思う。コンテストの大規模化、Web APIの広がり、単なるWebからソーシャルOSへの変化など、今後を占う上での重要かつ3人の(偶然なんだけど)統一された意見がわかってもらえたのではないかと思う。
本当はUstream配信をしようと思っていたのだが、ちょっとしたハプニングが発生し、急に僕のmacを本番で使うことになったため、残念ながらUst配信をすることはできなかった。身近な人には配信を予告していたのだが、ごめんなさい。
やっぱり最近のこみゅすけに対するみんなの印象は、「重い」ってことのようだ。「HTML版も提供して欲しい」という意見もあった。ものすごく「アンチWebページ」的な思想で作ってしまった面もあり、dojoを使ったことも、「重さ」に拍車をかけている。パフォーマンスチューニングをする余地はあるのだが、現状のUIだとどうしても限界があるため、ちょっと考えを改めないといけないかもしれない。
ま、何はともあれ、無事に発表ができてほっとしている。当日会場にいらしていただいた方々、そして応援をくれた方々には、感謝の意を伝えたい。ありがとうございました。
そして、これからも「こみゅすけ」をよろしくお願いいたします。
- Posted:
- 11.09.2007
- Category:
- Commusuke

Sun&リクルート主催のMash up Award 3rdで3部門同時受賞に輝いた「こみゅすけ」について,Sun Tech Daysのセッションで紹介させていただくことになった。
日付: 2007年11月8日(Day-2)
時間: 18時10分〜19時00分
セッション: 2-J1-6 Mash up Award Demonstration
こみゅすけ開発のきっかけ,搭載している機能,技術的な解説,そして今後の展望などを,デモンストレーションを交えながらお話させていただく予定。「いろいろなトラブルに直面しては乗り越える」という,まさに「運用」と言える話もあったりするので,自分でサービスを立ち上げたいと思っている方には,ぜひセッションに足を運んでいただきたい。
また、Sun藤井さんからMash up Awardに関する話や、リクルート川崎さんからWebサービスの提供側から見たMash up Applicationの話も、逃すことのできない内容となるはずである。
Mash upをやったことのある方も、そうでない方も、ぜひお越しください。
- Posted:
- 10.30.2007
- Category:
- Commusuke

機能追加をして久々にmongrelを再起動したら,こみゅすけが起動しなくなった。というか,4つ動かしていたrailsアプリが全滅。すっごい緊急事態。
稼働させているサーバは,Fedora Core 6。64bitのクアッドコアCPUで,uname -aの結果は以下の通り。
Linux chako 2.6.20-1.3002.fc6xen #1 SMP Mon Aug 13 14:21:21 EDT 2007 x86_64 x86_64 x86_64 GNU/Linux
yumを毎日自動起動させていたのだが,先週の10月11日にruby関連のパッケージが「1.8.5.113-1.fc6」になった模様。たぶんこれが原因。ruby -vとrails -vの出力結果は以下の通り。
ruby 1.8.5 (2007-09-24 patchlevel 114) [x86_64-linux]
Rails 1.2.3
発生しているエラーは,NoMemoryError。あれ?機能追加した結果メモリ不足になった?と疑ってみるも,何もいじっていないrailsアプリもダメなため,アプリケーションコードが悪いわけではなさそう。具体的なエラー内容は,以下の通り。
NoMemoryError (negative allocation size (or too big)):
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/benchmarking.rb:86:in `sprintf’
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/benchmarking.rb:86:in `active_record_runtime’
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/benchmarking.rb:69:in `perform_action_without_rescue’
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/rescue.rb:83:in `perform_action’
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/base.rb:430:in `send’
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/base.rb:430:in `process_without_filters’
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/filters.rb:624:in `process_without_session_management_support’
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/session_management.rb:114:in `process’
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/base.rb:330:in `process’
/usr/lib/ruby/gems/1.8/gems/rails-1.2.3/lib/dispatcher.rb:41:in `dispatch’
/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/rails.rb:78:in `process’
/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/rails.rb:76:in `synchronize’
/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/rails.rb:76:in `process’
/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:618:in `process_client’
/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:617:in `each’
/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:617:in `process_client’
/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:736:in `run’
/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:736:in `initialize’
/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:736:in `new’
/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:736:in `run’
/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:720:in `initialize’
/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:720:in `new’
/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:720:in `run’
/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/configurator.rb:271:in `run’
/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/configurator.rb:270:in `each’
/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/configurator.rb:270:in `run’
/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/bin/mongrel_rails:127:in `run’
/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/command.rb:211:in `run’
/usr/lib/ruby/gems/1.8/gems/mongrel-1.0.1/bin/mongrel_rails:243
/usr/bin/mongrel_rails:16:in `load’
/usr/bin/mongrel_rails:16
sprintfメソッドでエラーになってる。そこで,NoMemoryErrorとsprintfでググってみると,同じ現象になってる人を発見
[ruby-dev:31404] negative allocation size in rb_f_sprintf
どうやら,x86_64環境でしか発生しない現象っぽい。上記で載ってる現象再現手順を実行してみると,見事に再現する。
yoichiro$ ruby -ve ‘printf “%d\n”, 0.9′
ruby 1.8.5 (2007-09-24 patchlevel 114) [x86_64-linux]
-e:1:in `printf’: negative allocation size (or too big) (NoMemoryError)
from -e:1
これをmacでやっても,エラーにはならない。
yoichiro$ ruby -ve ‘printf “%d\n”, 0.9′
ruby 1.8.6 (2007-03-13 patchlevel 0) [i686-darwin8.10.1]
0
どうすればいいのか,さっぱりわからない。「x86_64環境でrubyとrailsはテストされていない」ということ?うーん。
こみゅすけをこのままダウンさせておくわけにはいかないので,「railsが動く別の環境」を考える。そう,JRubyがある。JRuby上でrailsアプリはそのまま動作するはずなので,さっそくこみゅすけをJRuby上で動作確認することにした。mac上でJRubyをコンパイルして,railsなどをインストール。いろんなサイトを見ると,ActiveRecord-JDBCでデータベース接続を行っているっぽいので,インストールしてdatabase.ymlファイルなどを書き換える。
実行してみると,基本的にdatabase.ymlとenvironment.rbファイルの書き換えだけで,JRuby+ActiveRecord-JDBCで動作した。と思ったら,MySQLから取得した文字列が見事に文字化けしている。いろいろ文字コード関連の設定を試みてみるが,どれも改善に至らず。調べてみると,ここに載ってるように,同じ現象になっている人がいる。しかも,どうやらActiveRecord-JDBCはUTF-8の扱いでバグがあるらしく,パッチを当てないとダメらしい。
rubyもダメ。jrubyもダメ。万事休す。
人間の思い込みは怖いもので,jrubyの場合はActiveRecord-JDBCを使わなければいけないものだと思っていたが,別にActiveRecordのみでjrubyでもデータベースは扱えることに気がつく。jrubyを試している人がこぞってActiveRecord-JDBCを使っているのは,何故だろうか。。。
mac上でjrubyによるこみゅすけの稼働ができることを確認後,運用しているサーバにGlassfish v2をインストール。GoldSpikeプラグインをインストールして,warファイルを構築。その際にdatabase.ymlファイルの編集とenvironment.rbファイルを編集して,productionモードで動作するようにしておく。Glassfishにデプロイして,mod-proxyの設定を変更。すると,比較的あっさりとこみゅすけが動作を開始した。
というわけで,今日からこみゅすけは,JRuby on Glassfishで運用をしている。
今後JRubyでいくか,何とかmongrelで運用できる方法を見つけるか。悩むところだ。。。
- Posted:
- 10.20.2007
- Category:
- Commusuke
