Sooey

2012-02-20 13:12:33 +0900

Titanium MobileでTi.Facebook.BUTTON_STYLE_WIDEを参照するとAndroidではNullPointerExceptionが発生するので場合分けが必要、という話。

Titanium Mobile SDK 1.8.1でTi.Facebook.createLoginButtonを以下のように呼び出していたところ、

実行時に以下のような警告がログに出力された。

[WARN] Styling Options 'wide' will be DEPRECATED in 1.8.0 in favour of
Ti.Facebook.BUTTON_STYLE_WIDE: REMOVED in 1.9)

'wide'という指定は1.8.0でDEPRECATEDとなり1.9では削除される予定なので、かわりにTi.Facebook.BUTTON_STYLE_WIDEを使え、ということです。

そこで、以下のように定数を参照するように書き換えて実行してみると、

iOSでは警告も表示されず問題なく動作するようになったが、AndroidではNullPointerExceptionが発生してアプリが落ちてしまうようになった。

API for Titanium.Facebook.LoginButton.style (version 1.8.1)によると、Androidでは'wide'のままにしておく必要があるようなので、結局以下のようにした。

参考

2012-02-15 14:33:58 +0900

ジャック・ドーシー(Jack Dorsey)氏についての日本語の情報を集めてみた。

ジャック・ドーシー氏は「Twitterの発案者&モバイル決済プラットフォームのSquareの創業者」という感じで知られているけれど、その人となりを調べてみるとかなり興味深い人物だったので、メモ代わりに日本語でドーシー氏のことを紹介しているページを集めてみた。

hsakawa's Radar — ジャック・ドーシーの『ツィッターは第一幕』(Vanity Fair)

こちらのブログでは、Vanity Fair誌に掲載されたドーシー氏に関する記事をかなり詳細に紹介されている。

「世界的に著名な有力者や芸能人と親しく、プラダのスーツを愛用し、有名なフランス人バレリーナと浮き名を流す、若き億万長者」といえば、扱い方によってはずいぶんとイヤったらしい人間として描くこともできてしまいそうな対象に思える。だが、記者はこういう材料をうまく組み合わせつつ、さまざまな要素を内部に抱える興味深い人物像を読者に伝えようとしているかのようだ。その人物像とは「一見異質に思える事柄が、内部で自然に解け合っている」ような人間。

他にジャック・ドーシーが米国メディアから大きな期待をあつめる本当の理由という記事も。

ジョブズ後にテクノロジーの未来を指し示すのは誰か | ニューズウィーク日本版 オフィシャルサイト

ツイッターのドーシーは、「美的」要素にこだわる人物である。使いやすさや、それをわかりやすい方法で表現することを最重視する。その点では、テクノロジー界においてジョブズが実現しようとした「リベラル・アーツ(人文科学)」的な要素の大切さをよくわかっているのだ。ただ、ツイッターという技術のかたちが今のところ限られている。今後、どう応用されていくのか、そこにもっと大きな影響力が隠されているはずだ。

アップルの6人目のスタッフいわく「ジャック・ドーシーは次のスティーブ・ジョブズ」 - eigokunの手記

―あなたは今、ジャック・ドーシーの会社のSquareで働いていますね。たくさんの人がジャック・ドーシーはスティーブ・ジョブズを思い出させると言います。あなたから見ての、彼らの共通してる部分を聞かせてください。

ジャックはいつも、まだ存在していないものについてのビジョンを持っている。そして彼は、それらがうまくいくものと信じている。それらは美しくなくてはいけないし、利益を生むために急いで売却されたりしてはいけない。そして彼は全てのディテールにこだわるんだ。

私は本当に、彼はシリコン・バレーの次のスティーブ・ジョブズだと思ってるよ。彼はテクノロジーが好きなんじゃなくて、人間に興味があり、人間の問題を解決したいと願ってるんだ。

TwitterのJack Dorsey会長曰く:単純なものを作ることは実に複雑である

このインタビューを見ると、Dorseyの実績には運の要素が殆どなく、彼があらゆる不必要な飾りを捨てることで純粋な製品を作ることに的を絞ってきたことがわかる。彼は「単純なものを作ることは実に複雑である」とRoseに言った。

Dorseyは自らを、テクノロジーとチームを編集する「編集者」であり「そうすることで自信を持って一貫した製品を送り出せる」と言う。上のビデオ(Charle Rose Show提供)でDorseyは、どうやってSquareのアイディアを得たか、モバイル支払いをカードを通す以上に複雑なものにしないことがいかに大変だったかを話している。

Twitterの共同ファウンダー、ジャック・ドーシー、デザインの本質を熱く語る(ビデオ)

最近の「Squareミーティング」で、彼はゴールデンゲート橋の審美的価値について語った。「われわれは世界で唯一のデザインに重きを置く支払いサービス企業だ」とプラダのスーツで決めたDorseyは説き起こした。彼は吊り橋のタワーの頂上から写したドラマチックな写真を見せ、「これこそわれわれが作ろうとしているものだ。これは優雅だ。インスピレーションをかきたてる。これは無限だ。どこを取っても美しい。諸君への週末の宿題はこの橋を渡ることだ。橋を渡り、そこから学んだことを、われわれの仕事、世界中のありとあらゆる取引の処理、に何を役立てられるか考えほしい。

「われわれの仕事はデザインすることだ」とDorseyは言う。「デザインとは何か? デザインとは編集だ。プロダクトの編集とは、あらゆる夾雑物をそぎ落として物語の核心だけを残すことだ。われわれは世界のユーザーに向かって首尾一貫したストーリーとして理解できるようなプロダクトを届けねばならない」。

また、GQ JAPANの“世界を変える”セレブの旅【2】 起業家 ジャック・ドーシーの場合では、珍しいスリーショット(Jack Dorsey、Biz Stone、Evan Williams)が見られる。

2012-01-20 10:44:22 +0900

会社を作って1週間が経ちました。

ずっとフリーランスという体(てい)でWebエンジニアをやってきましたが、1年ほど前にビジネスとして取り組んでみたいサービスを思いついてしまったので、去年からいろいろ準備をしてきて、1月11日に@mochizさんとQNYP(合同会社キュニップ)という会社を始めました。

コーポレートサイトは http://about.qnyp.com/ になります。

qnyp logo

URLがqnyp.comじゃなかったり、ロゴがあんまり企業っぽくなかったりするのは、「qnyp.comでキュニップというサービスを運営する」というのが目的だからです。しかし残念ながらサービスはまだまだ開発中ですので、当面はTitanium MobileでのiPhoneアプリ開発に業務として取り組んで行きたいなと思っています。

超スモールスタートなのでまだオフィススペースはなくて、ぼくの自宅を作業スペースにしたり、みんな大好きGitHubやCampfireTrelloといったツールを利用して各自の自宅で作業したりしながら進めています。コーポレートサイトにもあんまり具体的な情報が載せられていないのですが、新しめの技術とツールを利用して手触りのいいアプリを作るということには自信がありますので、

  • できるだけスモールスタートでiPhoneアプリを立ち上げたい
  • 美しさと機能性が両立した思わず触り続けたくなるiPhoneアプリを作りたい

といった面白いお話がありましたら、ぜひhello@qnyp.comにお声掛けいただければと思います。

また、LLC設立にあたっては、フィヨルドさん、つくる社さん、モバリーンさんといったLLC仲間に色々と教えて頂きとても助かりました。どうもありがとうございます。

もっとLLC仲間が増えていくといいなあ。

2011-12-15 11:48:43 +0900

Rails 3.1でリクエストのたびにassets関連のログが出力されるのをなんとかしたいなーと思って調べてみた。

11:41:34 web.1     | 11:41:34 Started GET "/assets/application.css?body=1" for 127.0.0.1 at 2011-12-15 11:41:34 +0900
11:41:34 web.1     | 
11:41:34 web.1     | 11:41:34 Served asset /application.css - 200 OK (0ms)

1行目がRailsのログで、2行目はSprocketsのログみたい。

結果的に、

にある以下のコードでうまく抑制できた。

#config/initializers/quiet_assets.rb
Rails.application.assets.logger = Logger.new('/dev/null')
Rails::Rack::Logger.class_eval do
  def before_dispatch_with_quiet_assets(env)
    before_dispatch_without_quiet_assets(env) unless env['PATH_INFO'].index("/assets/") == 0
  end
  alias_method_chain :before_dispatch, :quiet_assets
end

2011-12-13 20:23:42 +0900

rspec + shouldaで、Railsコントローラのステータスコードをテストする場合のメモ。

subject { controller }
it { should respond_with(:success) }  # 200にマッチ
it { should respond_with(:redirect) }  # 300〜399にマッチ
it { should respond_with(:missing) }  # 404にマッチ
it { should respond_with(:error) }  # 500〜599にマッチ

上記以外の場合はRack::Utils::SYMBOL_TO_STATUS_CODEおよびActionController::Base::SYMBOL_TO_STATUS_CODEを利用して変換が行われる。

いずれにもマッチしない場合は値がそのまま比較される。