Born Neet
Google Apps(Google Sites)が404に
- 2009-06-20 (Sat)
- Web
最近メモにGoogle AppsのSitesを使ってるんだけど、
突然「404 Server Not Found」になってアクセスできなくなった。
(独自ドメインでアクセスできるようにしてるやつ)
Googleはもちろん、DNSの設定も全くいじってないのに…;
とりあえず、一旦デフォルト(sites.google.com/a/ドメイン名/サイト名/)に戻して再設定したら直った。
というわけでデフォルトのURL(ではアクセスできたので)も覚えておいたほうがいいな、と思いました。
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
タイトルミスってました。
- Search
-
Loading
- Feeds
- Links
- スポンサードリンク