Neo Inspiration

  • Search

    • About Me

      • inspi 改め
        jakk@webアーキテクト(自称)
        php,javascript,seoなど
        得意技は extract();

  • Categories

  • Ranking

  • Comments

  • Others


  • Archive for 2 月, 2008

    日本語の解析の仕方とかで悩む

    水曜日, 2 月 13th, 2008

    サーチエンジンっぽいものを自作していると
    どういう形でインデックスするかとか
    どういう形でヒットにしてSerpにだすかを考えていくわけですが

    googleでは
    http://nanto.asablo.jp/blog/2008/01/25/2578762

    日本語の知識の利用は皆無。品詞情報なども使っていない。

    テキスト処理は言語非依存。

    らしいです。

    一瞬目を疑いましたがw

    でも 良く考えると現時点での自分のSerpもそういう形で出してるわけで
    突き詰めれば品詞情報とかはなくても 文脈がとれるってことなんでしょう。

    でも 日本語の品詞情報があれば精度は高まるはずなので、
    API公開してるくらいのYahooなら こと日本語にかぎっていえば
    Googleより精度が高くていいはずなのになぁ。

    とりあえず当面はブログに限って、日本語に限って
    ある程度文脈を理解して解析できるようなプログラムを組めるように
    研究したいとおもっています。

    最終的にはやっぱり
    http://nanto.asablo.jp/blog/2008/01/25/2578762

    Web を文脈つきの辞書とみなす。

    こういう形にしたいなぁ。

    seo vertical blog search をリリースしました

    金曜日, 2 月 8th, 2008

    seo vertical blog search をリリースしました

    長ったらしい名前ですが。。
    seo vertical blog search

    個人としてSEOのブログの縦断検索がしてみたいなーということで
    前々から色々と本文抽出やら形態素解析やらのPHPを作っていたのですが
    全部こういうことがしたかったためです。

    まあ 使い道はあんまりない気もしますが、
    一応作ったんだし公開とします。

    自分が見ているようなブログは大抵突っ込んだんですが、
    自分の知らないブログもいっぱいあるので
    ユーザ参加型w というかURL教えてくださいってことで
    クローラ投稿フォーム設置してあります。

    インデックスの仕方とかSERPの作り方とか
    作ってみると色々悩むもので
    googleはすげーなぁ と改めて実感しました。

    いや、何1000億のページから検索かけて0.1秒で結果返すとか
    キャッシュ使っててもきついってば。。。

    seo vertical blog search

    PHPのコーディング規約?メモ?

    月曜日, 2 月 4th, 2008

    PHPがメインのうちの人たち用に

    PHPのコーディング規約?メモ?
    全て網羅されてるか というと自分でもよくわからないですが、
    最低限ここは抑えよう という指標としてみて欲しいです。

    以下すべて引用
    http://slashdot.jp/askslashdot/comments.pl?sid=389009&cid=1290697

    * コーディング規約を守る。組織にコーディング規約がないなら、Zend Framework PHP標準コーディング規約 [zend.com]を使う。オレ流コーディングスタイルは禁止。
    * 内部コードにはEUC-JPかUTF-8を使う。入出力もできるだけShift JISを避ける。Shift JISを使う場合には2byte目に0×5Cを含む文字の動作を忘れずに確認する。
    * 開発環境の警告レベルをE_STRICTにする。本番環境ではdisplay_errorsをオフにする。
    * register_globals、magic_quotesはオフにする。
    * type hintingを積極的に使う。
    * スコープの長い配列をクラスでラップする。
    * プレゼンテーションとロジックを分割すること。プレゼンテーションには変数または関数の出力とループ以外のロジックを残さないこと。ロジックの中で直接出力をしないこと。ロジックはSimpleTestを使って単体テストすること。
    * SQL文に変数を埋め込むときにはプレースホルダを使う(PDOのprepareとbindParams)。
    * リクエストから取得したパラメータを出力するときはhtmlspecialcharsを使う。
    * 関数が長くなったら分割する(composite methodパターンを使おう)。
    * グローバル変数を使うのは避ける。
    * 変数を定数として使わない。定数はdefineで定義するか、const宣言する。
    * 常に最新バージョンでテストできる環境を作り、サービスイン後もバージョンアップに対応するための予算をとっておく(サービスイン後にお金をかけたくないなら、PHPは避けるべき)。
    * 継承を使うなら、クラス図くらいは書いておく(単にコードを再利用したいだけなら、移譲を検討すること)。
    * 各URLにおけるパラメータとその閾値を文書化すること。パラメータの閾値の境界線についてソースレビューし、テストすること。
    * 既存のフレームワークを学習することに投資すること(学習コストを嫌って自己流のフレームワークを作ることは、バグを作りこむことになるのでかえってコスト高になる)。
    * PHPしか使えない作業者の成果物はこまめにレビューすること。
    * 設計を重視すること。
    * コピー&ペーストプログラミングの匂いを発見したら、そのコードを書いた人にプログラミングの基礎を教えること。
    * リファクタリングの時間をスケジュールに入れること。
    * require/includeを条件文や関数宣言の中に記述しないこと。

    量があるように見えて、
    最低でもこのくらいチェックできないとダメなんですよね。

    自分でもテスト環境のこととかちゃんと管理しないとなー。

    おまけ
    1:htmspecialcharsは ENT_QUOTESつけてやろう。
      htmspecialchars($data, ENT_QUOTES);

    2:ZENDの PHP標準コーディング規約
    http://framework.zend.com/manual/ja/coding-standard.html

    2008/10/13 05:57:06