第2回Chiyoda.rb開催のお知らせ
下記日程で第2回Chiyoda.rbを開催いたしますのでお知らせします。
- 日時: 3/31(土曜日) 14:00〜18:00
- atnd: http://atnd.org/events/26088
- 会費: 無料
今回はサイバーエージェントベンチャーズ様のStartup Base Camp 会議室 (東京都港区赤坂8-5-26 赤坂DSビル3階)をお借りして開催いたします。
お誘い合わせの上ふるってご参加ください。
下記日程で第2回Chiyoda.rbを開催いたしますのでお知らせします。
今回はサイバーエージェントベンチャーズ様のStartup Base Camp 会議室 (東京都港区赤坂8-5-26 赤坂DSビル3階)をお借りして開催いたします。
お誘い合わせの上ふるってご参加ください。
久々にrubygemsをリリースしました。
Rack::Requestで検索エンジンのbotからのアクセスかどうか判定します。
ruby>>
request.bot? #=> true or false
<<--
これだけ。
githubで検索してみたら、個別に実装している例がたくさん見つかったわりに、単体で切り出されているものがあまりなさそうだったので作ってみました。
新しい地域Rubyコミュニティ Chiyoda.rb を発足いたしました。
千代田区周辺のRubyに縁のある企業に会場をお借りして定期的に会合を開催し、Rubyプログラマーの間で情報交換を行う場所を提供する事を目的としております。
株式会社万葉様のご協力により、第1回の会合を開催する運びとなりました。
Rubyistの皆様方におかれましてはお誘い合わせの上ご参加いただければ幸いです。
よろしくお願いいたします。

EC2のSpotインスタンスの価格変動がどんなものか把握するのが面倒だったので、直近の相場をグラフで表示するwebサービスを作りました。

相場はリージョン、OS毎に違うので、適当な組み合わせを選択してみてください。
データはだいたい5分ごとに更新されています。
実は SpotHistory.com という良さそうな既存サービスがあったのですが、
なぜか1月ぐらいでデータ更新が止まっていて残念な感じだったので、
適当に作ったほうが早そうだということで製作しました。
またプロセスがハングアップする問題が発生したため、システム構成を見直し。
passengerからunicornに切り替えました。
正確な構成は、
という感じです。
unicornのマスタープロセスのPIDを取得するために、以下のようなスクリプトを使ってます。
unicorn_master.rb
ruby>>
port = ARGV.shift
pids = lsof -i:#{port} | awk "{print \\$2}".split("\n")[1..-1]
pids.each do |pid|
puts pid if ps --ppid #{pid}.split("\n").size > 1
end
<<--
またしばらく様子をみてみます。
本日の午前中、比較的長期間当ブログにアクセス出来ない状態が発生しておりました。ご不便をおかけいたしましたことをお詫びいたします。
原因としては、Railsプロセスが暴走していたことが考えられます。
そのため、当blogで使用しているRailsのバージョンを 2.3.5から2.3.11に
アップグレードいたしました。
またしばらく様子を見て対応を考えます。
よろしくお願いいたします。
長いこと Apache + passenger環境で奇妙な高負荷状態が続いていたため、
nginx + passengerに移行してみました。
nginxはreloadしてもコネクションが切れないのが素晴らしいですね。
unicornの-USR2/-QUIT 的な感じです。
設定ファイルも簡潔で良い感じです。
ということで、しばらく様子見です。
本日をもちまして、合同会社S21Gは株式会社S21Gになります。
変わらぬご愛顧のほど、よろしくお願いいたします。
長いこと不安定だったので一時期 mod_proxy_balancer + mongrel_cluster
に逃げていましたが、
@yuumi3
から2.2.11で直ったよという情報をいただいたので passengerに戻してみました。
今のところは安定している感じです。
このブログシステムは長いことapache2/passengerで運用してきましたが、
頻繁にrubyプロセスが暴走してアクセスできなくなるということが発生していたので、apache2/mod_proxy_balancer/mongrel_clusterの構成に変えてみました。
しばらく様子見です。
先日お伝えしました通り、個人アカウントでのezPhotoMail, 投稿百景, Shopping Pinkのアプリ販売の準備が整いましたのでご連絡致します。
(※ 全く同じアプリ名で申請は出来ませんでしたので、「ezPhotoMail - email picture with resizing」などの名前で発売しています)
ezPhotoMail**
iTunesリンク:http://itunes.apple.com/jp/app/id348875079?mt=8
投稿百景
iTunesリンク:http://itunes.apple.com/jp/app/id348874085?mt=8
Shopping Pink
iTunesリンク:http://itunes.apple.com/jp/app/id343514976?mt=8
これに伴いまして、2010年1月8日から1月14日まで無料にて配布致します。以前、ご購入頂いた方も買い逃していた方も是非ご購入よろしくお願い致します。
以上、今後ともよろしくお願い致します。
2010年、あけましておめでとうございます。
今年もどうぞよろしくお願いします。
さて、年初からお知らせなのですが、タイトルにありますとおり、**「ezPhotoMail」、「投稿百景」、「Shopping Pink」**はs21gでの開発・販売を終了し、個人アカウント(Satoko Hibi)で開発・販売することになりました。現在、それぞれAppleに申請中です。
またs21gでの販売終了に伴いまして、大変申し訳ない/残念なことに、これまで購入して頂いた方々にアップデートを受けて頂くことができなくなってしまいます(AppIDが変わってしまうため)。
これを考慮しまして販売開始時には、これまで購入して頂いた方の乗り換え促進/お詫びとしまして1週間の無料配布を行いたいと思っています。
また、販売開始はこのブログ, Twitter(@satoko)にてお知らせをする予定ですので、もうしばらくお待ち頂きますようよろしくお願い致します。
しばらくRails-2.3.2を使っていましたが、passengerのバージョンを上げてから微妙に不安定になった気がしたのでRails-2.3.5にアップデートしてみました。
今回は無変更でアップデートできました。
Chrome Extensionがリリースされるという事で、
以前作っていた
GoogleDocs Outliner
を一般化して、全てのWebページに
アウトラインを表示するExtensionを作ってみました。
Chrome Outliner

https://chrome.google.com/extensions/detail/jlppdmdapoeahlgfmioblnpfhfgcigim
もちろん、GoogleDocsのアウトラインも表示できます。

PageActionを使っているので、残念ながら現時点では Mac版のChromeでは動かないようです(※)。次回のアップデートに期待。
※開発版のChromiumでは動きます。
今日はお知らせです。
投稿百景
携帯百景に簡単に写真を投稿できるiPhoneアプリ
App Store:
http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=329808999&mt=8
いつも使わせてもらってる 携帯百景なんですが、専用の投稿アプリがあったらもっと楽しいのに...ということで運営会社の株式会社16Lens様との共同開発でリリースさせて頂きました。
共同開発は初めてだったのですが、アプリ名や罫線絵文字キーボード等のアイディアをkimzoさんから頂きとても楽しく仕事をさせてもらうことができました。kimzoさんありがとうございました!
###スクリーンショット

携帯百景には、「罫線絵文字」なるものがあって、ハートマークや晴れなど(21種類)をタイトルに含めることが出来ます。投稿百景では、罫線絵文字キーボードを用意し、簡単に罫線絵文字を入力することができるようになっています(上写真の右側)。
発売を記念して、10月6日から10月19日までの2週間、115円で販売します。
(その後は230円での販売予定)
「投稿百景」を末永くよろしくお願い致します。
お待たせいたしました。
アップデート申請が通り、本日よりiTunesストアにて地価2009バージョン1.1の配信が開始しました。
今回のアップデート内容は以下の通りです。
土地取引データについては、従来の3倍に増強し、都市部以外での地価推定精度を向上させました。また、都市部での取引データについても新しい情報に更新しました(全体的に値下がり傾向となっています)
See Also

ちょっと多忙につきblogでのアウトプットが低下してますが、
地価2009
バージョン1.1のアップデート申請を完了しました。
特に問題がなければ、1週間から2週間程度でお手元に届くと思います。
よろしくお願いいたします。
ご愛顧いただきありがとうございます。
おかげさまを持ちまして、ついにビジネスカテゴリの有料アプリランキング1位になることができました。

地価2009
では、高速で継ぎ目の無い地価の推定のために
映画制作などで使われている最先端のCGのレンダリング技術を応用しています。
そのため、大量のデータをもとに瞬時に地価を推定する事が可能となっています。
弊社では
iPhoneアプリの受注制作
や共同開発も行っておりますので、
緯度経度や住所等、位置情報にひもづいたデータをお持ちで、iPhoneアプリの制作に関心をお持ちであれば、ぜひ
までご連絡ください。
地価2009の今後の開発計画といたしましては、
などを行っていく予定です。
また、地価2010のスケジュールについてもお問い合わせを頂いておりますが、地価2010の販売を行う場合、地価2009をご購入いただいた方々には2010年のデータを無償アップデートにてご提供させて頂く予定です。
このたび弊社からリリースいたしましたiPhoneアプリの"地価2009"が
ビジネスカテゴリで有料アプリランキングの4位にランクインしました。
ありがとうございます!

地価2009は、iPhone 3.0から利用可能になったMapKit(地図を使ったアプリケーションを簡単に作れる仕組み)を利用して、日本中どこでも好きな場所の地価を調べる事ができるアプリケーションです。

経営者の方、不動産業の方、土地の購入を検討されている方など、地価に興味のある方にお勧めです。
See Also
弊社で利用しているAmazon EC2のサーバ(インスタンス)に障害が発生したため、
今朝よりお昼頃までの間、サービスにつながりにくい状況が発生しておりました。
現在は新しいサーバ(インスタンス)に引っ越しを完了し、通常通りお使いいただける状態に復旧いたしました。
利用者の皆様におかれましては、
ご迷惑をおかけいたしまして、申し訳ございませんでした。
今後ともよろしくお願いいたします。
DataMapper用のDataStoreアダプター、dm-datastore-adapter-0.2.2をリリースしました。
今回のリリースで以下のような機能がサポートされます。
DataMapperのアダプタとして主に必要な機能はだいたい揃ってきました。
デモサイトであるWatchMe!もアップデートしています。
まだ実用的なサービスになってないですが、登録したサイトをクローリングして全てのページの監視を行い、エラーが発生したらメールで知らせるサービスになる予定です。
桜が散る前に、4/8の夜21時よりMerbJog#2を開催いたします。
詳細・参加申請は以下のサイトをご覧ください。
飛び入り参加もOKです。
よろしくお願いします。
今週末の4/5(日)にMerbJogを開催いたします。
Merb/Rubyなど、プログラミングに関する会話をしながら皇居の周りを走ります。
詳細・参加登録は以下のページをご覧ください。
開催時刻は多少変動する可能性があります。
雨天、悪天候の場合は延期となります。
ご了承ください。
データベースのメンテナンスのために、明日(2009/4/3)の早朝04:30ごろから30分程度、弊社のサービスに繋がりにくくなる時間が発生する見込みです。
ご迷惑をおかけいたしますが、よろしくお願いいたします。
Update
メンテナンスは無事に終了いたしました。
Formula
は、数式を簡単にブログに貼付けて共有できるサービスです。
このたび、FormulaをRails-2.3.2に対応させました。
また、対応作業の過程で、Rails用のpaginationライブラリである、
pagination_scopeのバージョン0.1.2をリリースいたしました。
:groupオプションを含むnamed scopeのpaginationに対応いたしました。
あのAsakusa.rbから、dm-paginationバージョン0.3.2がリリースされました。
dm-pagination-0.3.2 is out from Asakusa.rb
最近の改善が取り込まれています。
dm-paginationはMerb with DataMapper用のpaginationを提供するプラグインです。
Rails用の
pagination_scope
の姉妹プラグインです。
See Also
s21gブログをRails-2.2.2からRails-2.3.2に対応させました。
主に以下のようなところで作業が発生しました。
ローカライゼーションの問題で再びRejectされたので、再度アップデート申請いたしました。
審査結果がでるまで、おそらくもう一週間ほどかかる見通しです。
お待たせして申し訳ありません。
会社設立以来ほとんど更新していなかったのですが、
iPhoneアプリ等の開発で製品を紹介するページを置く場所が必要になったので、
Rails-2.3.2がリリースされた事もあり、I18nを使って国際化仕様のサイトを作りました。
従来通り、http://www.s21g.com/にアクセスすると、ブラウザの設定に従って、自動的に日本語か英語のサイトに振り分けられます。
localizationファイルをもっと用意すれば、ISOで定義されてる言語なら何語でも大丈夫なのですが、とりあえずはjaとenのみサポートです。
I18nの使い方
ローカライズファイルは、デフォルトではconfig/locales/*.ymlに配置します。
mutohさんの、
locale、
locale_rails
を使うと色々と便利です。
EdgeバージョンはRails-2.3.2でも利用出来ました。
自動的にロケールを判別するために、以下のようなコードを
ApplicationControllerに書きました。
ruby>>
class ApplicationController < ActionController::Base
before_filter :set_locale
(..snip..)
def set_locale
I18n.locale = @original_locale = fallback_locale(I18n.locale)
if request.host =~ /^([\w-]+).#{HOST.split(':')[0]}/i
I18n.locale = fallback_locale($1)
end
end
private
def fallback_locale(locale)
locale = locale.to_s
@available_locales ||= Set.new(I18n.available_locales)
until locale.empty? || @available_locales.include?(locale.intern)
locale = locale.split(/([-_])/)[0..-3].join
end
locale.present? ? locale.intern : I18n.default_locale
end
<<--
実際にローカライズする手順は、以下のような感じになります。
文字列のローカライズ
*.ymlファイルで定義されているメッセージキーに対して、
yaml>>
ja:
"hello": "こんにちわ"
<<--
こんな感じにt(...)ヘルパーメソッドを使います。
ruby>>
t("hello") #=> "こんにちわ"
<<--
時刻などのローカライズ
時刻の場合もほぼ同様で、以下のような*.ymlファイルで定義されている設定に対応して、
yaml>>
ja:
date:
formats:
default: "%Y/%m/%d"
short: "%m/%d"
long: "%Y年%m月%d日(%a)"
<<--
以下のようにl(...)ヘルパーメソッドを使ってローカライズします。
ruby>>
l(Date.today, :format => :short) #=> "03/22"
<<--
テンプレートのローカライズ
Viewテンプレートを丸ごとローカライズする場合は、
のようなファイル名すればOKです。
前回の申請がリジェクトされたため、再申請いたしました。
細かい点の修正だけだったので、機能的には前回お知らせした内容のままです。
またもう数日お待たせする事になってしまい、申し訳ありません。
PokéDiaはiPhone用の手帳アプリケーションです。
このたび、バージョン1.3のアップデート申請をいたしました。
今回のアップデートの内用は以下の通りです。
外字キーボードはフルスクラッチで作りました。

絵文字や矢印、括弧、など、全ての記号が利用出来ます。
利用可能な外字データは、http://gaiji.s21g.com/
から配信します(3/13日現在データ準備中です)
ウェブサイトからのメモ登録APIとアプリケーション連携機能については、
ウェブサイトや他のアプリケーションから、PokéDiaにメモを登録出来る機能です。
申請が通り次第、仕様の詳細を公開いたします。
もうしばらくお待たせいたしますが、
よろしくお願いいたします。
@maihaさんを中心として、私やMerb勉強会の参加者によって作り続けていたMerbのRuby-1.9.1対応のパッチ群が、Merb本体に取り込まれました。

http://github.com/wycats/merb/commits/
Merb勉強会での活動が実を結んだわけです。
めでたいです。ありがとうございます。
Merb-1.1では、Ruby-1.9.1に対応したMerbがリリースされそうです。
先日送ったpatchが採用され、Ruby-1.9.1対応の
bcrypt-ruby-2.0.4がリリースされました。
http://rubyforge.org/projects/bcrypt-ruby/
Thanks you, codahale!
長らくお待たせしておりました、PokéDiaのバージョン1.2が、
iTunesストアからアップデート可能になりました。

PokéDia-1.2では、重要なバグ(稀にメモが消える、メモの表示が乱れる事がある)の修正と、一覧表示機能、検索機能の実装を行いました。日本語でお使いのiPhoneでは絵文字を使うことも出来ます。
今後とも、頂いているご要望をもとに、さらなる機能改善をおこなって参りますので、ご愛顧のほどをお願いいたします。
See Also
先週申請していたPokéDia-1.2のアップデート申請ですが、
再申請が必要となってしまったので、問題を解決して再度申請いたしました。
今回の問題解決の過程で生じた副産物として、
Bookナビゲーション用のUIToolbarアイコンを提供いたします。

たいしたものではないので、役立つようであればご自由にお使いください。
おそらく、もう数日お待たせする事になってしまい、申し訳ありません。
See Also
irb_rocketがRuby-1.9.1で動かないよ、というコメントを頂いたので、
ruby-terminfoをRuby-1.9.1対応にしてみました。
これでirb_rocketをRuby-1.9.1で使う事が出来ます。
pre>>
% sudo gem install irb_rocket --source http://merbi.st
<<--
@maiha
さんがRuby-1.9.1でMongrelをインストールできるようにしてくれました。
修正したバージョンは、以下のコマンドでインストール出来ます。
pre>>
% sudo gem install mongrel --source http://merbi.st
<<--
不要になったと思われるfastthread関係のgemへの依存を切っています。
それにしても、Mongrelってメンテナンスされてるのかな。
結構メンテナンスされてるのかどうなのかわからないGemがあって悩みどころですね。
今回のアップデート内容は以下の通りです。
* メモが消えるバグを修正
* メモの表示が乱れる問題を修正
* 絵文字キーボードへの対応(左図参照)
* メモの一覧表示機能(右図参照)
* メモの検索機能(右図参照)
絵文字キーボードについては、
[Tweeter](http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=298729529&mt=8)
に習って日本のiPhoneのみ対応となっています。
今日の出来事を表示する機能については、次回のアップデートで追加予定です。今後ともよろしくお願いいたします。
審査が無事に通過する事を祈りつつ。
**See Also**
* [PokéDia ¥350 (iTunes Store)](http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=298763195&mt=8)merbで採用されているジェネレータフレームワークの本命、
templater
に、ruby-1.9.1対応のパッチを取り込んで頂きました。

Merbを使ってWebアプリケーションを開発している or
しようと考えている方の為に、
お勧めのプラグイン/Slice情報を共有するサービス
Merbist Plugins
をテスト公開いたします。

デザインもScaffoldに毛が生えた程度で、
この手のサービスには欠かせないRatingなどの基本機能が無い状態なのですが、
そもそもMerbのプラグイン情報を共有する場所が無いので、
無いよりはちょっとましかなという事で公開しておきます。
merb_rating, dm-has-rating のようなプラグインを見つけたら、
あるいは作ったら、Rating出来るようになると思います。
ちなみに、新着プラグインのFeedも配信しています。
よろしくお願いします。
本日(2009年1月23日)の10:20〜10:40の間、
弊社が提供しているウェブサービスに接続しにくくなるトラブルが発生いたしました。
原因としては、利用している外部サービスが一時的に停止した事を検出する処理に問題があり、連鎖的に影響を受けてしまった可能性が高いと思われます。
現在は当該箇所を修正の上、復旧いたしております。
ご不便をおかけいたしました事をお詫びいたします。
githubの仕様変更
により、githubでEdgeGem (EdgeのコードをGemにまとめたもの)
を常にフレッシュな状態で公開する事が難しくなってしまったので、
Merbist向けにプラグイン配布用のGemサーバを用意しました。
gems.rubyforge.orgやgems.github.comなどの通常のGemサーバと同様に、以下のようにsourcesに登録して使う事ができます。
pre>>
% sudo gem sources -a http://merbi.st
<<--
仕組みとしては、http://merbi.st/fetch にアクセスされると、
登録されているgithub上のリポジトリから、Edgeのコードがpullされ、
GemとGemサーバ用のインデックスデータを作成します。
現時点では、以下のGemを公開しています。
pre>>
% gem list -r -s http://merbi.st
*** REMOTE GEMS ***
dm-has-versions (0.1.1)
dm-pagination (0.1.1)
merb_babel (0.1.2.2)
merb_component (0.1.1)
merb_recognize_path (0.0.2)
merb_slice-gen (0.0.2)
merb_timezone_select (0.0.2)
pagination_scope (0.0.8)
rttool (1.0.2)
<<--
サーバの負荷の面で不安があるので、
現時点では同期するリポジトリの登録は管理者のみに制限していますが、
http://merbi.st/plugins
よりプラグイン情報を登録していただければ(要アカウント作成)、
問題が無い限り定期的に確認して同期リストに追加いたします。
反応がない場合は@takiuchi
までご一報ください。
株式会社万葉
さまより会場提供を頂きまして、
下記の日程でMerb勉強会を開催いたします。
内容
お昼時なので、ピザと飲み物を用意いたします。
参加をご希望の方は、以下のページより参加登録をお願いいたします。
それでは、よろしくお願いいたします。
s21gブログに、過去に書いた記事をまとめて紹介する記事を書くための機能を実装しました。
記事の新規作成画面(下図)から検索を行う事で、
検索結果の記事のタイトルとリンクを生成します。

よろしくお願いします。
当ブログシステムでプロファイル画像のアップロードの為に利用していた、SWFUploadが、flash10以降に動かなくなっていたため、
新しいバージョンにアップデートしました。

よろしくお願いいたします。
See Also
syoyoさんが主催しているOoOで、
第五回 レンダラ忘年会 '08
が12/20(土)に開催されます。
** (OoO =オフラインレンダラ野郎のためのオフラインレンダラについて議論するオフライン会)**
- 日時: 12 月20日(土) 13:00-19:00
- 場所: 恵比寿ガーデンプレイス SGI 株式会社様(31F)
- 集合: 13:00 B1F ホール(マックの隣)
http://www.sgi.co.jp/company_info/map1.html集合時間に間に合わない方には、当日 B1F の入り口に連絡先が書かれた張り紙をしておきます。
参加費: 0 円
懇親会(任意参加): 有料
今回はレンダラ忘年会 08 です. 今年のレンダラ界隈の話題をまったりと振り返ります.
レンダラに興味がある方は振るってご参加ください。
アップデートの申請中だったPokéDiaのversion 1.1の販売が開始されました。
今回のアップデートで更新される内容は、
以前お伝えした通り、
以下の通りです。
PokéDiaをすでにご購入頂いている皆様には、長らくお待ちいただきましてありがとうございます。
今後とも機能改善を続けていきますので、よろしくお願いいたします。