Firefoxの終了が遅い

しばらく前からFirefoxの終了が異常に遅く困っていたのですが、Firefox3.6の公開を機に同じ症状の人がいないかと調べてみるとやっぱりいました。
しゅろぐ: Firefoxを終了させるのが異様に遅い
ここに書いてある通りに履歴を削除して設定を変更したらサクサク終了するようになりました。
ありがとうございます!

CookingPadで出来ないこと

CookingPadをダウンロードしてくださった皆様、ありがとうございます。
昨日の段階でダウンロード数が2万を超え、現在無料アプリランキングの2位に入っています。
あらためてクックパッドの人気に驚いています。

しかし、ここで水を差すようなことを言って申し訳ないのですが、CookingPadへの要望の中で実現不可能なこと、やるつもりがないことがあります。
過剰な期待を抱かれないように今のうちにその辺りをはっきりさせておきたいと思います。

  1. CookingPadは非公式アプリです

CookingPadで表示しているクックパッドのデータは、スクレイピングという手法で取得しています。
簡単にいうとPCのブラウザで見えるクックパッドのページからプログラムで必要な情報を抜き出して表示する手法です。
そのため、クックパッドがページをリニューアルするなどして構造が変わってしまった場合、何も表示できなくなってしまう可能性があります。
実際、開発中につくれぽのページに変更がありプログラムを変更しないとCookingPadで表示できない状態になりました。

今後同様のことがあった場合、私がそれに気づいてプログラムを修正し、Appleに提出して審査を通過するまで最短でも2週間程度(場合によってはもっと長期間)CookingPadが使えなくなってしまいます。
これはこのアプリの仕組み上やむを得ないことですのでご了承ください。
(中間サーバでパースする方式はサーバ維持コスト等の問題によりやりません)

  1. ログイン機能も実装しません

クックパッドの携帯サイトモバれぴを見たところ、携帯からのログインはプレミアムユーザ限定ということがわかりました。
そのため技術的な問題もさることながら、CookingPadでログインを実現した場合クックパッドのビジネスを阻害することになります。
それは私の本意ではありませんのでログイン機能は実装しません。(クックパッドが公式APIを提供するなど状況が変化した場合は別です)

  1. 人気順検索の実装は不可能です

人気順検索はプレミアムユーザ限定なので前述の理由により実装できません。
また基本的にレシピのソートはサーバ側でしか出来ませんので非公式アプリであるCookingPadでは実装できません。

  1. 機能追加した有料版は作りません

そもそもクックパッドのデータを勝手に表示させてもらっているアプリですので有料化はしません。

  1. 最後に

というようにCookingPadは非公式アプリのため様々な制約があります。
私としてはPC版のクックパッド並の機能を有した公式のクックパッドアプリが公開されることが一番だと思っています。
CookingPadについて沢山の要望やお褒めの言葉をいただいてとてもうれしく思っていますが、このような事情のためすべてにお答えすることが出来ないことをお許しください。

初めてのiPhoneアプリ公開

10月4日にsubmitしていたアプリが公開されました。
CookingPad(※iTunesが起動します)
投稿レシピサイトのCookPadiPhoneから簡単に見ることが出来るアプリです。
旬のキーワードや任意のキーワードでレシピを検索して、作り方や材料、つくれぽなどを見ることが出来ます。
無料なのでぜひダウンロードしてください!
f:id:y_310:20091019215546p:image
f:id:y_310:20091019215547p:image

WidgetPadを使ってみて

こういう簡単なテストをするのにいちいちファイルを作ったりせずにブラウザ上でさくっと書けるのはWidgetPadの良いところだと思いました。
また書き方がわからない時に他の人のソースを見られるのも良いですね。
まだpre-betaということでスクリーンショットが登録できなかったり、エディタのオートインデントが微妙な動作だったりしますがHTML5を体験するのには便利だと思いました。

HTML5のCanvas

CanvasHTML5で正式に追加される新しい仕様です。詳しい経緯はCanvasとは - Canvas - HTML5.JP
などで書かれています。
要はHTMLとJavaScriptだけで好きなように絵が描けるということですね。
このCanvasを使って以前Flashで実装したデモを移植してみました。
Page not found - newcritics.com
f:id:y_310:20091004165710p:image
光の玉が流れていくデモなのですが、Flash(ActionScript)より簡単に書けた気がします。
ただ動作速度がFlashより圧倒的に遅いですね。画面をクリックするとBlurエフェクトがかかるようになっているのですが、これをかけるとがくっと速度が落ちます。(Blurをかけすぎというのもあるのですが・・・)
高速化する手法もわからなかったのでエフェクトを切り替えられるようにしてお茶を濁してしまいました。
恐らくぼかしのアルゴリズムは近傍の画素から補間する手法だと思うので、ぼかしすぎると近傍サイズが巨大になってしまって負荷が簡単に増大するんでしょうね。
今回の場合は背景が黒、光の玉は白、円形と決まっているのでBlurを使わずに自分で円の周りにグラデーションを書くような処理を書いた方が良いのかもしれません。
CanvasクラスのgetImageDataを使えばピクセル単位のアクセスが出来るようです。

WidgetPad

いつも使ってるiPhoneアプリPhotoShare作者の中島さんと増井さんが新たなサービスを開始したみたいですね。
Widgetpad - newcritics.com
HTML5&CSS3&JavaScriptiPhoneなどのスマートフォン向けのWebアプリを作るためのサービスのようです。
f:id:y_310:20091004165709p:image

ということでCanvasの勉強もかねて使ってみました。

Provisioning Profileの期限が切れた

6月に作成したProvisioning Profileの期限が数日前に切れてしまった。
更新のために3ヶ月おきに同じことをしないといけないようなのでメモを残しておく。

  1. 1.iPhone Developer Program Portalにアクセス

iPhone Developer Program Portal

  1. 2.左側のメニューのProvisioningをクリック
  2. 3.表示されたProvisioning ProfileのAction列にあるRenewをクリック
  3. 4.期限が更新されて表示がDownloadに変わるので、Provisioning ProfileをダウンロードしてXcodeで開く
  4. 5.オーガナイザを開いてDEVICESのインストールしたいiPhoneを選択
  5. 6.Provisioningの-ボタンをクリックして古いProvisioning Profileを削除
  6. 7. +ボタンをクリックして/Volumes/Data/Users/{ユーザ名}/Library/MobileDeviceにある新しいProfileを選択

これでビルドしてみたら動くようになった。
手順がおかしいところがあったらコメント等で指摘してください。