タグ

ブックマーク / kazuhooku.hatenadiary.org (12)

  • TwitterやFacebookのURLには、なぜ#!が含まれるのか (SEOとAjaxのおいしい関係) - kazuhoのメモ置き場

    Ajaxを使うためにはページ内リンク (hash fragment=URLの#以降) を使うのが一般的*1 hash fragmentはサーバに送信されないから、JavaScript非対応のブラウザだと動作しない 特にサーチエンジンのクローラ等で問題になる*2 そこで Google は、#! が含まれる URL を hash を含まないものに読み替える仕組みを提唱している。例えば「www.example.com/ajax.html#!key=value」のサーチエンジン用URLは「www.example.com/ajax.html?_escaped_fragment_=key=value」になる。 TwitterやFacebookはこの仕様に従うことで、Ajax な UISEO を同時に実現している、というわけ。ということを調べたなう。 参照: Getting Started  | 

    TwitterやFacebookのURLには、なぜ#!が含まれるのか (SEOとAjaxのおいしい関係) - kazuhoのメモ置き場
    kmachu
    kmachu 2011/05/14
    tDiaryのPermalinkでも活用できないかな? - TwitterやFacebookのURLには、なぜ#!が含まれるのか (SEOとAjaxのおいしい関係) - kazuhoのメモ置き場
  • 2010年代には Apache の mpm_prefork とか流行らない (もしくは HTTP keep-alive のメリットとデメリット) - kazuhoのメモ置き場

    HTTP の持続的接続の功罪について はじめに、HTTP の持続的接続 (keep-alive) のメリットについて。持続的接続を使うメリットは、以下の2点。 TCP 接続の確立にかかる時間の節約*1 TCP の接続と切断に必要な資源 (CPUとネットワーク) の節約 ウェブブラウザ〜データセンタ間の通信で、持続的接続を使う理由は、このうちの前者。特に太平洋を超えるようなケースだと、TCP 接続に0.2秒とかかかるので、メリットが大きい。 一方、持続的接続のデメリットは、 接続が切断されるまでの間、その接続を維持するためにコストがかかる (主としてメモリが無駄になる) という点になる。特に、1プロセス1コネクションを前提とするアーキテクチャ (例: mod_perl) だと、メモリの無駄使いが、とてもひどいことになる。 そこで、ブラウザからの接続を受ける HTTP サーバとアプリケーション

    2010年代には Apache の mpm_prefork とか流行らない (もしくは HTTP keep-alive のメリットとデメリット) - kazuhoのメモ置き場
    kmachu
    kmachu 2010/03/28
    WebブラウザとフロントWebサーバ間はkeep-aliveが有効→同時接続数が増える→mpm_preforkだとメモリが増える→マルチスレッド等が有利 / バックエンドは組み込みHTTPサーバでいいよね、という話。 / PHPだとFastCGIなのかな?うーん
  • 彼氏がMyISAM使ってた。別れたい… - kazuhoのメモ置き場

    追記: マジメな比較はこちら:Open database life: MyISAMとInnoDBのどちらを使うべきか MyISAMだとPostgreSQLと並べられた時なんか恥ずかしいww 下向いちゃうしww ウェブサイトにはせめてInnoDB使って欲しい・・・ 勉強会とかで発表されたら・・・・もう最悪ww せめて普通にトランザクションやMVCCぐらいは対応して欲しい。 常識的に考えて欲しいだけなんです! MyISAMでテーブルロックしちゃった時の遅さとか分かる? あのね?たとえばピーク時10〜20並行ぐらいで書込みとか行くでしょ? それぞれ別の接続で来るわけじゃない? みんな普通にグループコミットやアシッドネス期待してるわけでしょ? MyISAMでテーブル壊れてリペアしてたら大恥かくでしょうがww じゃあ MyISAM はどういう用途に適しているのか。待て! 次号!*1 参考: 彼氏が軽

    彼氏がMyISAM使ってた。別れたい… - kazuhoのメモ置き場
    kmachu
    kmachu 2009/10/28
    うまいなぁ
  • 「テキストプロトコルは遅くないよ」という話 - kazuhoのメモ置き場

    「バイナリプロトコルは速い」「テキストプロトコルは遅い」という言説を、ときおり目にするけど、それって当なのか。個人的には、それって昔の話だと思ってる。 SMTP みたいな、ペイロードについてもターミネータ(とエスケープ)を使うプロトコル*1は確かに遅い。で、FTPプロトコルでは、大容量のデータを「高速」に転送するために、制御用のTCPコネクションと転送用のコネクションを分けたりしてた。 だけど、HTTPプロトコルは、テキストプロトコルだけど、ペイロードについてはターミネータを使わない。keep-alive を行う際には、Content-Length ヘッダ(あるいはchunkedエンコーディング)を使うことで、ペイロードのパース/変換処理を不要にしている。別の言い方をすると、テキストプロトコルだからと言って、バイナリプトロコルよりペイロードの処理時間が長くなるとは限らない。HTTP 以降

    「テキストプロトコルは遅くないよ」という話 - kazuhoのメモ置き場
    kmachu
    kmachu 2009/09/28
    「ペイロードのパースとエスケープを避けるために、ヘッダにペイロードサイズを入れるようなことをすべき」 / 例えばimgタグにwigthとheight属性を書きましょうという話(ちょっと違う)
  • SSD とストレージの将来 - kazuhoのメモ置き場

    SQL に痛痒感を感じる日々を過ごしている身としては、RDBMS がレガシーだというのは、まったく同感ですが。 SSDを前提にしたプログラムモデルになれば、そもそもシーク時間と戦うこともなく、ストレージを意識せずにプログラムが組めます。そうなったとき、アプリケーションのデータを永続化するためにRDBMSをわざわざ使うことはないでしょう。 2008-12-12 そんなことないと思います。理由は以下の2点。 フラッシュの書き換えブロックサイズは数キロバイト以上 トランザクションは意識して実装せざるを得ない フラッシュメモリはランダムリードできますが、DRAM のようにランダムライトできるわけではありません。書き込みが非常に遅いのに加えて書き換え回数の制限もあるので、メインメモリと同様のプログラム手法を使うのは難しいと思います。 次にトランザクションについてですが、組み込み型データベースとして

    SSD とストレージの将来 - kazuhoのメモ置き場
    kmachu
    kmachu 2008/12/15
    「フラッシュメモリはランダムリードできますが、DRAM のようにランダムライトできるわけではありません。」
  • テンプレートエンジン作りたい - kazuhoのメモ置き場

    いちおうまとめておきます。先週末の NanoA のテンプレートエンジン - kazuhoのメモ置き場 は妥協の産物で、当は、 なぜ、いちいちエスケープを手動で指定しなければいけないのか 文脈によって、自動的にエスケープ手法は決定できるはず と思ってます。言うまでもないかもしれませんが。たとえば以下の例。 こんにちは、<?= username ?>さん <a href="/user?id=<?= userid ?>">マイページ</a>前者は、 HTML encode するのが正しく、後者は、URI escape した後に HTML encode するのが正しい。そして、どのようなエスケープ手法を組み合わせるべきかは、テンプレートエンジンレベルで判別できること。反論としては、「テンプレートエンジンが重たくなる」というものがあり得るが、それはテンプレートをパースして実行形式に変換する際の問題

    テンプレートエンジン作りたい - kazuhoのメモ置き場
    kmachu
    kmachu 2008/11/25
    期待
  • BASIC 認証でログアウトを可能にする方法 - kazuhoのメモ置き場

    Cookie でログイン状態を管理すればいいんじゃいのかな。 まず、ログインボタンを押した時「だけ」is_logged_on を真にする。 HTTP/1.1 Authorization Required Set-Cookie: is_logged_on=1 WWW-Authenticate: Basic realm="Hoge123456" ...サーバ側では、Basic 認証のパスワードがあり、かつ、is_logged_on の値が真であることをチェックすればいい。 GET / HTTP/1.1 Cookie: is_logged_on=1 Authorization: Basic ... ... HTTP/1.1 200 OK ...で、ログアウトの際には、Cookie を消す。 HTTP/1.1 200 OK Set-Cookie: is_logged_on=0 ...そして、is_

    BASIC 認証でログアウトを可能にする方法 - kazuhoのメモ置き場
  • リモートサーバに接続できない場合の telnet による原因切り分け方法 - kazuhoのメモ置き場

    1) telnet host port して Escape character is ... と出た後、すぐ (あるいは少しして) 接続が切れる → 接続後 fork() 等で落ちている → サーバのメモリ不足やプロセスの無限増殖を疑う 2) telnet host port して Escape character is ... と出るが、その後何も起こらない → SYN_ACK が返ってきている → カーネルは生きている。ユーザーランドの負荷が極めて高い可能性 3) telnet host port して、すぐ connection refused と出る → RST が返ってきている → port が閉じている (サーバプロセスが落ちた?) か、または accept(2) していない 4) telnet host port して、しばらくたってから connectin refused

    リモートサーバに接続できない場合の telnet による原因切り分け方法 - kazuhoのメモ置き場
  • CGI で Authorization ヘッダが読めない理由と認証用クッキー - kazuhoのメモ置き場

    昔から CGI で Authorization ヘッダは読めないようになっていて、それが WSSE のような規格が使われちゃったりしちゃう原因のひとつにもなっていたりするわけですが。で、その理由は Apache の server/util_script.c あたりを見ると、以下のように書いてある。というのは知っている人は知っている話。 /* * You really don't want to disable this check, since it leaves you * wide open to CGIs stealing passwords and people viewing them * in the environment with "ps -e". But, if you must... */ #ifndef SECURITY_HOLE_PASS_AUTHORIZATION

    CGI で Authorization ヘッダが読めない理由と認証用クッキー - kazuhoのメモ置き場
    kmachu
    kmachu 2007/12/08
    ps -eを知らなかった…orz / WSSEがBodyに認証情報を入れるのはそのためだったのか。 / WSSEを使うようなケースでCGIってあるのかな?
  • 上の続き - kazuhoのメモ置き場

    kmachu
    kmachu 2007/12/08
    OAuthが有用なのは「ユーザーの許可を求めずに Consumer がデータソースにアクセスすべき場合」/「それOpenAuthで(ry」なるほど。あとでOpenAuth&iframe調べます!コメント感謝です。
  • Re: クロスドメインのセキュリティ問題を OAuth で解決する - kazuhoのメモ置き場

    [あとで] タグをつけていたら、スターがついていた件。中途半端な反応ですみません。 ちゃんと検証してない思いつきレベルの話。 JSONP や Flash の crossdomain.xml を使ったクロスドメインアクセスで機密情報を取得する場合は、(何も対策をしないと)機密情報が外部に漏洩するという問題があるけど、この対策に OAuth が使えるんじゃないかと思った。 クロスドメインのセキュリティ問題を OAuth で解決する, OAuth のアイデアに kazuho さんからツッコミをいただいた, それ OpenAuth で (ry - まちゅダイアリー(2007-12-07) そもそも、OAuth が使えるということはサーバサイドでマッシュアップが可能だということであり、そのような状況下において、あえてクライアントサイドでマッシュアップを行うメリットがあるのか (ユーザーに公開非公開の

    Re: クロスドメインのセキュリティ問題を OAuth で解決する - kazuhoのメモ置き場
    kmachu
    kmachu 2007/12/07
    こんなところでスターが役に立つなんて! / ツッコミありがとうございます。クライアントサイドなのは、ビジネス的な要請というのが出発点でした。しっかり考えてお返事します。
  • メールアドレスをチェックするたったひとつの冴えたやり方 - kazuhoのメモ置き場

    VRFY コマンドを使えば、そのメールアドレスが当に存在するかまでチェックできるよ。完璧だね☆ PS. ネタですからねっ!!!

    メールアドレスをチェックするたったひとつの冴えたやり方 - kazuhoのメモ置き場
    kmachu
    kmachu 2007/10/22
    逆空メール手法
  • 1