Home > 2009年06月
2009年06月
iPod touchでnavitimeにアクセスできない
- 2009-06-11 (Thu)
- モバイル
UserAgentを見てるらしく、
touch.navitime.co.jpに転送されて、
「去年の12月で終了しましたよー」って言われる。
ちょっと前まで普通にPC用サイトにアクセスできた気がするけど勘違いか?
とにかく早めに解除されることを祈ります。
やっぱUAで分けちゃうのはイマイチかな、と改めて思いました。
(ユーザに選択肢を残しといて欲しい。touch/iPhoneならJS普通に動くからPCサイト使えるんだし。)
ブラウザが落ちた時textareaの内容が消えちゃうのがショックなので、cookieに保存しておくという無謀な試み
- 2009-06-07 (Sun)
- JavaScript
自作JSエディタのテストがてらブログを書いてたら、
Firefoxが落ちた。(3になってからIE6レベルに落ちるようになって困ってます…)
当然textareaにしたためていたブログの内容は消えちゃうわけです。
これはショックということで対策を考えました。
- アドオンでsqliteに保存(出来るのか?)
- location.hashに保存
- cookieに保存
1が出来ればいろんなサイトに使えてよさそうだけど、ハードル高いので今回は除外。
(Jetpackで作れるようになるとありがたいなー)
2は…トリッキーなのでやめときましょう。
まぁ3が妥当ですねー。じゃ、早速。
テキスト圧縮
クッキーの最大サイズは4096バイトらしいので小さくしなくちゃいけません。
そこで、高度な JavaScript 技集からJSでzipできちゃうスーパーライブラリを拝借してきます。
var value = textarea.value;
var data = utf16to8(value);
data = zip_deflate(data);
data = base64encode(data);
とやれば、そこそこサイズを小さくできます。
ちなみに
var data2 = base64decode(data);
data2 = zip_inflate(data2);
data2 = utf8to16(data2);
で戻せます。
Cookieに保存
Cookieへの保存はjquery.cookie.jsで行います。
保存のタイミングはエディタのイベントと合わせてtextarea.onkeyupにします。
(onchangeはJSからの変更の時に発生しないので使ってない)
最後にこれが一番重要ですが、上記の通りcookieにはサイズ制限がありますので、
保存する前に長さをチェックし、(余裕を持たせて)4000バイトより大きければあきらめることにします。
これをまとめると以下のコードになります。
editor.keyup(function() {
var value = this.value;
var data = utf16to8(value);
data = zip_deflate(data);
data = base64encode(data);
var size = data.length;
if(size <= 4000) {
$.cookie('t', data, { 'expires': 1 });
}
$('#byte').val(size);
$('#byte2').val(document.cookie.length);
$('#cookie').val(document.cookie);
});
デモはこちらから。
textareaの内容をcookieに保存
以上、どう考えても実用には耐えないと思いますが…。
記事のsummaryを書くのを止めました
- 2009-06-07 (Sun)
- お知らせ
ネタバレどうのこうのより、
自分で記事書いてるとき何かつまんなくなるという、
致命的なデメリットがあることが判明したので。
そもそもタイトルでわかるようにするのがベストだろうし。
※ あと、タイトル→本文を続けて文章にするというスタイルを使えないのが
一番のストレスでした。
OP initiated(っていうか第三者initiated?)でOpenID Launcherなるサービスを作ろうとした
- 2009-06-07 (Sun)
- OpenID
summary
OP initiatedを利用すれば、
「このRPにこのOPでログイン」
っていうボタンが作れるんじゃ?と言う話。
OP-Initiated Flow(2) - r-weblifeの下記の部分を読んで、
■ 今回やってみて気づいたこと 『OP側の実装はそんなに大変ではなさそう』 1. return_toを知る 2. Statelessモードの認証要求を自分自身のエンドポイントに送信 3. OP駆動のときだけRP確認画面を省略?
「RPのreturn_toを調べて、statelessなリクエストをOPに送りつければ、
指定したRPにログインされられる」という当たり前なことに今さら気づいた。
(第三者initiatedとでも言っておきましょうか・・・)
というわけで、RP一覧+このOPログインボタンを並べたランチャー的なものを作れば、
OpenID普及に一役買えるのでは…なんて思って作ってみました。
OpenID Laucher
結果は…見ての通り惨敗です。
OpenID - Wikipediaの一覧を上から試していってたんですが、
認証失敗しまくりで心折れちゃいました。
そんなこんなで今までの作品の中で一番と言っていいほど、
ものすごく中途半端な状態での公開となりました。
return_toをもっと簡単に調べれる時代が来たら、再挑戦したいと思います。
※ 手動で調べてたらかなり体力かかりました^^
XRDSから機械的に取ってくれば楽なんだろうけど、
そのXRDSを返してくれるURLがわからんから結局人力調査が…
追記 2009/06/07 14:00
わざわざreturn_to調べてOPに送り付けなくても、
RP側のOpenIDログイン用のリクエストを叩けばよかったのか…?
(JanRainでいうtry_auth.php?~みたいなの)
追記 2009/06/10 21:00
OP駆動→OP initiatedに改めました。
業務連絡、OP initiated と言う言い回しで!
追記 2009/06/11 23:00
タイトルミスってました。
[メモ]ResutfulDB、OP駆動
- 2009-06-01 (Mon)
- メモ
今日のお気に入り。
MOONGIFT: » CouchDBを使ったチャットシステム「Toast」:オープンソースを毎日紹介
RESTfulなDB。おもしろい。
その他参考
Web 時代の非リレーショナルデータベース: 第 1 回 Apache CouchDB の概要とインストール
OP-Initiated Flow(2) - r-weblife
最近気になってるOP駆動。OpenIDを使ってスムーズなSSO。JALとかこういう実装なのかな?
PHP OpenID Server(OP駆動ログインページ)
RPのreturn_toを指定して、Statelessモード(Associationなし)で自分(OP)にログイン要求する。
http://r-weblife.sakura.ne.jp/server/server.php/OPinit?openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0&openid.ns.sreg=http%3A%2F%2Fopenid.net%2Fextensions%2Fsreg%2F1.1&openid.sreg.required=nickname%2Cemail%2Cfullname%2Cdob%2Cgender%2Cpostcode%2Ccountry%2Clanguage%2Ctimezone&openid.realm=http%3A%2F%2Fr-weblife.sakura.ne.jp%2F&openid.mode=checkid_setup&openid.return_to=http%3A%2F%2Fr-weblife.sakura.ne.jp%2Flibraries%2Fphp-openid-2.1.3%2Fexamples%2Fconsumer%2Ffinish_auth.php%3F&openid.identity=http%3A%2F%2Fr-weblife.sakura.ne.jp%2Fserver%2Fserver.php%2Fidpage%3Fuser%3Dtestuser&openid.claimed_id=http%3A%2F%2Fr-weblife.sakura.ne.jp%2Fserver%2Fserver.php%2Fidpage%3Fuser%3Dtestuser
sregなしでも(当然)動く。
http://r-weblife.sakura.ne.jp/server/server.php/OPinit?openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0&openid.realm=http%3A%2F%2Fr-weblife.sakura.ne.jp%2F&openid.mode=checkid_setup&openid.return_to=http%3A%2F%2Fr-weblife.sakura.ne.jp%2Flibraries%2Fphp-openid-2.1.3%2Fexamples%2Fconsumer%2Ffinish_auth.php%3F&openid.identity=http%3A%2F%2Fr-weblife.sakura.ne.jp%2Fserver%2Fserver.php%2Fidpage%3Fuser%3Dtestuser&openid.claimed_id=http%3A%2F%2Fr-weblife.sakura.ne.jp%2Fserver%2Fserver.php%2Fidpage%3Fuser%3Dtestuser
JavaScriptでよく使う書き方。 - こせきの技術日記
正規表現リテラルは静的。これははまりそう。
JavaScriptで起こりがちなよくあるミスを早期発見する - 素人がプログラミングを勉強するブログ
Firebugでデバッグ支援。オブジェクト末尾のカンマはFirefoxだと動いちゃってわかりづらいので、警告してくれると助かる。
Home > 2009年06月