タグ

2012年4月5日のブックマーク (13件)

  • PHP で MySQL FULLTEXT + MeCab で簡単に全文検索を実装する

    大量のデータがあるサイトに検索機能を実装することになりました。LIKE 演算子で %keyword% と検索してみたところ、結果が1分経っても返って来なかったのでで Ngram もしくは MeCab を使った全文検索をできるように仕組みを実装しました。 自分の勉強のために改めて自分で解説してみることにします。初心者の視点から書いてるので、全文検索をやったことがない方やこれから全文検索をしようと思ってる人は入門の参考にしてください。 MySQL での日語全文検索について MySQL の FULLTEXT 型とは そもそも MySQL の FULLTEXT 型というインデックスを使えばそれだけで全文検索をできます。しかし英語のように単語がスペースで区切られてる時だけであり、日語のように全て繋がっている場合は機能しません。 そのため MeCab などの日形態素解析で日語から単語を抽出し

  • DNS浸透を温かく見守るコマンドラインツール - Qiita

    サーバ移転とかしたときに、どのへんまでDNS情報が更新されてるか知りたい時に使います。 2012-04-04 追記: コメントにてgeekpageさんがこのツールの問題を指摘しています。コメントを参照の上、各自の修正するなりして状況に対応してくださいm(_ _)m ご指摘くださったgeekpageさんありがとうございます! #!/usr/bin/env php <?php //$monitor = new DNSPenetrationMonitor(ドメイン, 新しいIP); $monitor = new DNSPenetrationMonitor('suin.asia', '59.106.173.151'); $monitor->monitor(); class DNSPenetrationMonitor { protected static $providers = array( '2

    DNS浸透を温かく見守るコマンドラインツール - Qiita
  • 処理開始後の例外処理では「サニタイズ」が有効な場合もある

    このエントリでは、脆弱性対処における例外処理について、奥一穂氏(@kazuho)との会話から私が学んだことを共有いたします。セキュアプログラミングの心得として、異常が起これば直ちにプログラムを終了することが推奨される場合がありますが、必ずしもそうではないというのが結論です。 はじめに Webアプリケーションの脆弱性対策では、脆弱性が発生するのはデータを使うところであるので、データを使う際の適切なエスケープ処理などで対処するのがよいと言われます。しかし、処理内容によってはエスケープができない場合もあり、その場合の対処についてはまだ定説がないと考えます。 エスケープができない場合の例としては、以下があります。 SQLの数値リテラルを構成する際に、入力に数値以外の文字が入っていた メール送信しようとしたが、メールアドレスに改行文字が入っていた 入力されたURLにリダイレクトしようとしたところ、U

  • 悪いサニタイズ、良い(?)サニタイズ、そして例外処理

    先日のエントリ「処理開始後の例外処理では「サニタイズ」が有効な場合もある」は、素材の消化不足、私の表現の未熟等から、一部で誤解を招いてしまったようで申し訳ありません。アプローチを変えて、サニタイズについてもう一度考えてみたいと思います。結論から言えば、悪いサニタイズはあっても、「良いサニタイズ」はないと考えます。しかしながら、状況によっては妥協の産物としてサニタイズを使うことは、あり得ると考えます。 稿で用いる「サニタイズ」の定義 サニタイズという用語は、歴史的に都合の良いように使われてきた歴史があり、あらためてネット検索して見ると、当に多様な使われ方をしていると感じました。その様子は、高木浩光氏のブログ記事『「サニタイズ」という言葉はもう死んでいる』からも伺えます。 ここでは、議論の都合上、以下をサニタイズの定義として用いることにします。 サニタイズとは、 主にセキュリティ上の目的で

  • 『はじめる! Rails3(3)』β版を公開しました! - 達人出版会日記

    おなじみのシリーズ3巻目を公開しました。 『はじめる! Rails3(3)』 (黒田努著 達人出版会発行 PDF/EPUB) 1,000円(税込) 今回は認証とアクセス権限がテーマです。といっても、deviseやomniauthを使うのではなく、「そもそもWebアプリで認証はどう動くのか・どう作るのか」を説明するべく自作する流れになっています。ので、これまでのRailsとか触ったことがありません、といった「初心者」というよりも、認証とかはユーザとしては使ったことがあるけど詳しい仕組みとかよく知りません、というようなWebアプリ開発の「初心者」向けになっています。 また、それとは別に、Railsのバージョンが3.0から3.2にあがっています。Rails 3.0で開発を始めたけど3.2にしたい、という場合、やり方はいろいろありそうですが、そんな人にも簡単な実践例として参考になるのではないかと思

    『はじめる! Rails3(3)』β版を公開しました! - 達人出版会日記
  • WEB MEMO: fuelphpのコントローラのテストは簡単なのか?

    fuelphpのコントローラのテストは、 class Test_Controller_Post extends TestCase { protected function setUp() { parent::setUp(); } protected function tearDown() { parent::tearDown(); } public function test_index(){ $response = Request::forge('post/index')->execute()->response(); $render = $response->send(); } } とかでいいっぽい。 execute()にはコントローラーのアクションの引数を渡せばいいっぽい。 send()でレンダリングした結果が取得できるっぽい。 あとはアサーションしていけばいいのか? カスタムしたル

  • —————————————————————————————— 告 5/15 理学部物理学教室...

    "—————————————————————————————— 告 5/15 理学部物理学教室 浅川 「科学哲学第二」のレポートは、5/31 までに1号館1階の浅川の レターボックスに提出すること。このレポートを提出しない学生 には、単位は出ません。 —————————————————————————————— 告 6/3 理学部物理学教室 浅川 期限を過ぎて提出されたレポートは、いかなる理由があろうとも 受けつけません。締切を過ぎてもまだ私のレターボックスに「科 学哲学第二」のレポートを入れる者が居ますが、5/31 の午後 5:00 以降に投函されたレポートは全て破棄しました。 —————————————————————————————— 告 6/4 理学部物理学教室 浅川 「5/31 まで」と書いたら「5/31 の午後 5:00 まで」の意味です。 こんなことは社会常識です。 ————

    —————————————————————————————— 告 5/15 理学部物理学教室...
  • langturn.com is coming soon

    is a totally awesome idea still being worked on. Check back later.

  • x.com

  • x.com

    x.com
  • git pullの詳細な挙動を追ってみる - hokaccha memo

    git push/pullは何気なく使ってるけど実はよくわかってなかった。ことのきっかけはこういう質問。 hogeというリモートブランチをローカルのhogeブランチにもってきたい hogeをローカルのmasterにはマージしたくない pullでなんかこんな感じでいけそう? $ git pull origin hoge:hogeでもこれは間違えで、なぜか今いるブランチ(master)にhogeがmergeされるし、期待してる動作じゃない。正解はこう。 $ git branch hoge origin/hogeもしくはチェックアウトも同時にするなら $ git checkout -b hoge origin/hogeこう。自分は普段後者のやり方でやってたけど、なんで上のはダメで下のが正解なのか説明できなかったのでちゃんと調べてみた。 入門Gitと実用Git、あとhelpを参考にした。 ブランチ

    git pullの詳細な挙動を追ってみる - hokaccha memo
  • どんどんとクリエイターは失敗すればいい... ジェームズ・ダイソン、苦労と成功の人生を語る!

    どんどんとクリエイターは失敗すればいい... ジェームズ・ダイソン、苦労と成功の人生を語る!2012.04.04 13:00 湯木進悟 ダイソンに入社したくなっちゃいました... ジェームズ・ダイソンという名前を聞いて、紙パック不要のサイクロン掃除機のことが思い浮かばない人を探すほうが難しい、そんな成功の歴史を築いてきた男が、世の若きクリエイターや発明家、エンジニアへの熱いメッセージを書き綴っていますよ。苦労と失敗の人生を乗り越えて、現在あるダイソンの不動の地位を確立した人物だからこそ語れる、次世代への非常に重みある言葉の数々には大きなインパクトがありますね。新年度の初めに、まずはガツンと勇気をもらっちゃいましょう~ 掃除機といえば、溜まったゴミごとポイと捨ててしまえる清潔な紙パック式という製品ラインナップが常識の時代に、あのいまではすっかり有名になった「デュアルサイクロンテクノロジー」の

    どんどんとクリエイターは失敗すればいい... ジェームズ・ダイソン、苦労と成功の人生を語る!
  • 『redis、それは危険なほどのスピード』

    どうも、プラットフォームDivでエンジニアをやっている Wataru です。 最近3人目の子供が産まれて、産後自宅勤務をさせてくれた弊社はとてもいい会社だと思います。出産予定のあるエンジニアのかたは是非弊社に転職を。 さて、今回はRedisの紹介をさせて頂きたいと思います。 Redisってすごくマイナーなわけではないのですが、めちゃくちゃ便利なのにあまり注目されていないなーという印象があるので、これを機会に是非使ってみてもらえると嬉しいです。 Redisって何?Redisとは「remote dictionary server」から名前が付けられたオープンソースのkey-valueデータストアです。 MemcacheDB等のKVSとの最大の違いは、格納するバリューがデータ構造というところです。 つまり、リスト・セット・ハッシュなどのデータ構造で格納できるのでバリューに対してアトミックな操作が

    『redis、それは危険なほどのスピード』