TapTapTumblrが各自設置型CGIな理由

非常に限られた一部の方々に好評なTapTapTumblrですが、使うためにはCGIを各自サーバーに設置しなければなりません。Webサービスとして提供できないこともないんですが、提供するメリットよりもデメリットのほうが大きいのでWebサービス化は今のところするつもりはありません。広告設置してそこそこ金になりそう、とか苦労にペイする程度の見返りが期待できそうならやるかもしれません。

いろいろと理由がありますが、まず前提としてTapTapTumblrは自分が満足できればそれでいいというスタンスのものなので、他人の役に立つかどうかなんてどうでもいいということをご理解ください。便利そうだと思った人は、ソースが全て公開されていますから、自分で設置するなり、Webサービス化するなりしてください。

ログイン情報を預かりたくない

現状のTumblr APIの実装、またTapTapTumblrの実装(Dashboardスクレイピング)の都合上、Webサービスとして提供するにはtumblrのログイン情報(メールアドレス、パスワード)をユーザーから預かる必要があります。Webサービスにログイン情報を預けるというのはユーザーからするとリスキーですし、開発者としてもそんなもの預かりたくありません。

サーバーを用意するのがめんどい

不特定多数に使われるサービスを提供する場合、突発的な負荷の増加のことを考えるとサービス用のサーバを用意しておきたいものですが、面倒です。現状自由に使えるサーバーは自宅サーバー1台のみで、自分専用メールサーバーとか落ちると困るものが非力なマシンの上で動作しているのでこれを使うわけにもいかず。

Tumblrからアク禁くらいそう

ダッシュボードのスクレイピングとか、APIリクエストがWebサービスバックエンドのサーバーからTumblrへと大量に送信されることになります。それでアク禁をくらってしまうと色々と困ります。

まあほかにもサービス化するとモンスターユーザーが現れそうとか、理由をあげると101くらいになりそうなのでこのへんで。

TapTapTumblrによる高速reblog

iPhone向けに作っていたTapTapTumblrですが、Google Chrome向けにキーバインドを追加してみたらすさまじく便利になりました。写真なら秒間2reblogくらいはできます。人類が100reblogs/minuteの壁を越える日も遠くないのかもしれません。

Firefoxは不可、MacSafariは未確認ですがiPhone Safariで動くので多分大丈夫です。

  • j: 次のポスト
  • k: 前のポスト
  • t: reblog
  • space: スクロール
  • s: 写真skipのon/off
  • h: 高解像度画像のon/off
  • R: リロード

公開場所、インストール方法などはこちら: Tumblr gear lovers, reblog monkeyに贈る: TapTapTumblr - 日記を書く [・w・] はやみずさん

iPhoneのSafariで大量に画像をロードすると画像が表示されなくなる

ちょっと戯れにiPhone向けのWebページをつくっていて、jQueryで大量に画像をひっぱってきてスライドショーするみたいなことをしていたら、途中で画像が表示されなくなってしまうという現象が発生。途中までは表示されていて、JavaScriptで画像の部分を入れ替えているうちに表示されなくなるので、たぶん扱う画像が多いのが問題? しかし高々500x500pixelくらいの画像を100枚程度ロードしただけで問題が発生するものなのだろうか?

しかし、JavaScriptなんてほとんど書かないから勘所がわからないとはいえ、ちょっと富豪的にプログラムを書いただけでSafariがヘタってしまうようでは、HTML5でマトモなアプリなんて書けないんじゃないかという疑問が湧いてくる。やはりマトモなものを作りたかったらAppleに身も心も捧げてiPhoneアプリ開発環境を整えるしかないのかな。

Tumblr gear lovers, reblog monkeyに贈る: TapTapTumblr

Reblog monkeyのみなさまこんにちは。暇さえあればtumblrダッシュボードを開いてreblogに精を出している皆様のために、TapTapTumblrというiPhone向けWebアプリを開発しました。

なにはともあれ、デモをごらんください。http://ttt-demo.tumblr.com/ダッシュボードになっています。iPhonetumblr gearを使ったことがある人なら、説明なしに使いこなせるはずです。

簡単な説明

  • iPhoneのブラウザに最適化されています。PCでも、Google ChromeなどWebKitなブラウザであればそこそこ使いものになると思います。Firefox不可
  • デフォルトでは写真は低解像度モードになっています。低解像度モードでは、写真をクリックすると高解像度な画像をロードします
  • 「これは!」というポストがきたら、reblogボタンではなく界王拳ボタンをクリックしてください

tumblr gearとの比較

そもそも、tumblr gear で画像のみをスキップしてreblogしたいというのがきっかけで、しばらく前からTapTapTumblrの開発を開始しました。では、元ネタとなったtumblr gearと比較してみましょう

  • 基本的なインターフェース(ダッシュボードを読んでひたすらreblog)は同じ
  • TapTapTumblrは写真スキップができる
  • TapTapTumblrはブラウザの処理性能で快適さがかなり左右される。iPhoneSafariではtumblr gearに比べてかなりもっさり
  • Safariでwebページを開いているだけなので、tumblr gearと違って中断しても途中から再開できる(tumblr gearでも move to 機能を使えば一応可能)
  • reblogにコメントがつけられない
  • Likeがない

今後

現状の実装では、各自がサーバーに設置する形でしか利用できませんが、そのうちWebサービスとして使えるようにする、かもしれません。あんまり期待しないで待っていてください。

ちなみにソースコードgithubで公開しています。興味のあるひとは自分のサーバーに置いて使ってみてください。わりと簡単に設置できます。

http://github.com/hayamiz/tap-tap-tumblr

OAuth対応のtwittering-mode 1.0.0 リリース

twittering-mode 1.0.0をリリースしました。

http://twmode.sourceforge.net/ja/

oauth

今回のリリースでは非常に多くの機能追加、改善、バグフィックスが行われています。その中でも最も重要なものはOAuth対応です。Basic認証はこの6月いっぱいで廃止されOAuthに完全移行することになっているので、その対応を行いました。

現在のtwittering-modeでは、ブラウザを開いてOAuth認証を行わなければならない仕様となっていますが、次期リリースではユーザーID・パスワードを入力することでブラウザを開くことなく認証ができるxAuthに対応する予定です。

また、複数タイムラインのサポートや、ポップアップバッファによるtweetの編集・投稿、アイコン画像取得の非同期化など使い勝手も大幅に改善されています。

詳細な変更点等は同梱してあるリリースノートを御覧下さい。

OAuthについて

追記

OAuthについては残念な気分にさせられるなあ。。。

デスクトップクライアントに関しては、OAuthはクライアントのなりすまし防止には本質的に無力であるようです。xAuth対応の某有名クライアントから簡単にconsumer key/secretが抽出できて、なりすましできました。

追記

OAuthの仕組みを勘違いしていました。consumer secretは毎API呼出ごとに必要になるので、現実的な対応としてはconsumer secretをクライアントと一緒に配布するしかないようです。


twittering-modeをそろそろOAuth対応にしなきゃと思って勉強中なのだけれど、OAuthの認証プロセスにかんしての疑問が2つ。

  1. consumer keyはオープンにしてしまってもOK。秘匿すべきは consumer secretのみである。
  2. request tokenを要求したレスポンスのoauth_tokenとoauth_token_secret自体は傍受されてしまっても大丈夫なはず

これらの理解は正しいのだろうか、ということ。1については、twittering-mode.elに埋め込んで配布するべきか否かというところに関わってくるのでかなり重要。

2については、request token取得代行するCGIを設置してconsumer secretを秘匿しようと考えているのだけれど、その際にユーザーにoauth_tokenとoauth_token_secretを教える通信路をSSLにするか否か(SSLが使えるサーバを容易すべきか否かという選択)に関わってくるのでそれなりに重要。

Twitterクライアントの作者さん、もしこれを見ていたらご意見きかせてください。