タグ

2012年1月20日のブックマーク (11件)

  • HashTableのアルゴリズムを突いたDoS攻撃 | 水無月ばけらのえび日記

    更新: 2012年1月20日1時0分頃 これは興味深いですね……「Webアプリケーションに対する広範なDoS攻撃手法(hashdos)の影響と対策 (blog.tokumaru.org)」。 PHPなど多くの言語では、文字列をキーとする配列(連想配列、ハッシュ)が用意されており、HTTPリクエストのパラメータも連想配列の形で提供されます。PHPの場合、$_GET、$_POSTなどです。 連想配列の実装には、高速な検索が要求されるためハッシュテーブルが用いられます。ハッシュテーブルは、文字列を整数値(ハッシュ値)に変換するハッシュ関数を用いて、平均的には一定時間に検索・挿入・削除が行えるデータ構造です。しかし、ハッシュ値が一致する(衝突する)キー文字列については、通常ハッシュテーブルは順次的な探索となり、検索・挿入などが遅くなります。 以上、Webアプリケーションに対する広範なDoS攻撃手法

  • 外部提供インタフェース(API)| 国立国会図書館サーチについて

    17. APIのご利用について国立国会図書館サーチの外部提供インタフェース(API)をご利用いただくにあたっては、事前に以下の点をお読みいただいたうえで、条件を守ってご利用ください。 また、「著作権・リンクについて」も併せてご覧ください。 17-1. 国立国会図書館サーチで提供するAPI国立国会図書館サーチ(NDLサーチ)では、次のAPIを提供しています。 検索用APINDLサーチの検索ができます。SRU、OpenSearch、OpenURLに対応しています。ハーベスト用APINDLサーチに格納されたメタデータのダウンロードができます。OAI-PMHで提供しています。 ※機能の一部でキャッシュ機能を用いているため、リクエスト条件やタイミングによって応答性能が大きく変わる場合があります。書影APINDLサーチに保存・公開されている書影を検索・表示できます。※各APIの詳細についてお知りになり

    外部提供インタフェース(API)| 国立国会図書館サーチについて
    t_a_o
    t_a_o 2012/01/20
  • Is there a reason for C#'s reuse of the variable in a foreach?

    When using lambda expressions or anonymous methods in C#, we have to be wary of the access to modified closure pitfall. For example: foreach (var s in strings) { query = query.Where(i => i.Prop == s); // access to modified closure ... } Due to the modified closure, the above code will cause all of the Where clauses on the query to be based on the final value of s. As explained here, this happens b

    Is there a reason for C#'s reuse of the variable in a foreach?
    t_a_o
    t_a_o 2012/01/20
  • rvmで入れた各rubyにmecab rubyバインディングをインストールする - 橋本詳解

    mecab rubyバインディングはgemでインストールできないので、rvmで入れた各バージョンのrubyからmecabを使うのは少し面倒。 今までportで入れたrubyから、portのrb-mecabを使ってたけど、rvmで$GEM_HOMEが切り替わるとportで入れたrubyバインディングが読めないので、個別に入れる portでmecabの最新版0.9.8を入れておく sudo port install mecab +utf8only which mecab mecab -vちゃんと0.98になってた mecabのrubyバインディング入れる。 http://sourceforge.net/projects/mecab/files/ からmecab-ruby-0.98をダウンロードする tar -zxvf mecab-ruby-0.98.tar cd mecab-ruby-0.98

    rvmで入れた各rubyにmecab rubyバインディングをインストールする - 橋本詳解
    t_a_o
    t_a_o 2012/01/20
  • neue cc - C#のO/Rマッパーのパフォーマンス測定 Part2

    以前にneue cc - C#のMicro-ORM(Dapper, Massive, PetaPoco)についてで計測したのですが、@shibayan先生がEF 4.1のDbContextのRaw SQL Queriesはどうなの?とTwitterで言ってたのを見かけたので、再度測ってみました。ていうか私はDbContextとObjectContextの違いすら分かってないんですが、DbContextは軽量な感じっぽいそうです、はい。 ベンチマークは前回と引き続きdapper-dot-netのリポジトリにあるベンチを使用しました。それにEFのバージョンを4.2に上げて、DbContextのSqlQueryを追加。また、id:taediumさんの作られているSomaは最新バージョンの1.6にしておきました。そして私の作成しているMicro-ORMであるDbExecutorのベンチも引き続き載

    t_a_o
    t_a_o 2012/01/20
  • Cでのポインタの読み方

    Cでのポインタの読み方 Cのポインタの読み方は、ルールを知らないと摩訶不思議です。 ルールを覚えれば、 int (*p[5])[3]; char (*(*fp)(void))(int); なんてのも解読する事ができます。 大事な前程 ポインタを読む際には、「英語で読む」必要があります。 「え~、英語~」 と思う方もいるかもしれませんが、逆に日語で読む方が大変です。 基ルール ルール 後置演算子が優先。 関数の() 配列の[] 前置はあとで。 要は、「後ろに何かあったら、後ろが優先」です。 演算子の英語での読み方 * pointer to ... () function returning ... [] array of ... Lesson 1 まず、演算子が単独で出てくる場合です。 Lesson 1-1 pointer to ... int *p; これは、まずpを見ましょう。 i

    t_a_o
    t_a_o 2012/01/20
  • RSpecでモックとスタブ - ひげろぐ

    きちんと理解してなかったのでいろんなページを参考にいじくりまわしてみた。 そのメモ。 モックとはスタブとは Martin Fowler’s Bliki in Japanese – TestDoubleの定義がわかりやすいので引用。 スタブは、テスト時の呼び出しに対して、あらかじめ用意された結果を返す。 通常、テスト用にプログラムされたところ以外には応答しない。 スタブは呼び出しの情報を記録することもある。 例えば、Eメールゲートウェイスタブは「送られた」メッセージを記録するような場合だ。 単に「送られた」メールの数を記録する場合もあるだろう。 スタブによってデータベース接続やネットワークIOなどの要素をテストから分離することができる。 また時間のかかる処理をスタブで置き換えることによってテスト時間を短縮することにも使われる。 モックは、エクスペクテーションが事前にプログラムされたものである

    t_a_o
    t_a_o 2012/01/20
  • RSpecの構文 - Start! Ruby

    * RSpecの構文 見は、これ http://github.com/mitim/tddbc-lrucache/blob/master/lru_cache_spec.rb ** 慣習 RSpec用のテストとして書くテストコードは、[テスト対象のファイル]_spec.rb という名前でつくる。 ** なにはなくともrequire require 'lru_cache' テスト対象のファイルを読み込ませる。 ちなみに、RSpecの何かをrequireする必要なない。 ** まずは基 describe do end で、一番外側のブロックを記述する。 通常は、次のようにテスト対象のクラスを宣言しておく。 describe LRUCache do end また、一緒に説明を付けることも可能。 describe LRUCache, "を初期化する場合" do end もちろん、説明だけにすること

    RSpecの構文 - Start! Ruby
    t_a_o
    t_a_o 2012/01/20
  • MVPVM 設計パターン - WPF 向けのモデル - ビュー - プレゼンター - ビューモデル設計パターン

    このブラウザーはサポートされなくなりました。 Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。 WPF 向けのモデル - ビュー - プレゼンター - ビューモデル設計パターン Bill Kratochvil コード サンプルのダウンロード これまで私が携わり、成功を収めたすべてプロジェクトのうち、もっとも成功を収めたプロジェクトには共通する成果があります。それは、アプリケーションの規模が大きくなるほど、コード ベースが小さくなる、というものです。一見矛盾しているように思えますが、アジャイル環境でコーディングを行うと、コード ベースが小さくなります。要件が変化するにつれて、リファクタリングが行われます。こうしたリファクタリングの際に開発後に明らかになった情報を組み合わせて、既存コンポーネントの再利用効率

    MVPVM 設計パターン - WPF 向けのモデル - ビュー - プレゼンター - ビューモデル設計パターン
  • 「結構便利だからみんな使った方がいいぞ!」という7つのPythonライブラリ - None is None is None

    一部で最強と呼ばれているPythonには, virtualenvやipythonのような絶対入れる超定番以外にも, あると便利なライブラリというものがあります. ここではラッキーセブン, 7つご紹介しましょう. なお, furl以外は3.xに対応しています. requests 覚えやすいWebリクエスト(urllib.request.urlopenの代替) furl URLの扱いをもっとシンプルに(urllib.parse.urlparseの代替) PyQuery jQueryのスクレイピング力をPythonに(html.parser.HTTPParser, lxml, BeautifulSoupの代替) Send2Trash/Send2Trash3k クロスプラットフォームな「ごみ箱へ送る」 Windows向けPythonランチャー 2.xと3.xを切り替える PySide/PyQt4

    「結構便利だからみんな使った方がいいぞ!」という7つのPythonライブラリ - None is None is None
  • 再帰で考える - ぐるぐる~

    再帰は関数型言語を構成する重要な部品の一つです*1。 しかし、手続型言語に慣れたプログラマにとって、再帰で考えるというのは難しいものがあります。 このエントリは、そういうプログラマが再帰で考えることができるようになるために書きました。 言語としては、F# と C# を使っています (推奨は F#。C# の例は実用性が無いに等しい) が、Java プログラマでもある程度読めるでしょう。 前提条件として、これらの言語の文法は知っているものとします。 特に、C# で言う Func デリゲートを多用します。 すごい長いので、時間があるときに一気にどうぞ。 再帰以外の話もちょろちょろと出てきます。 再帰の重要性 いきなりですが、再帰はあくまで最後の手段です。 普通は再帰をカプセル化した関数を使うことになります。 通常使わないのであれば、再帰を学ぶことに意味はないのでしょうか? いいえ、それでも再帰を

    再帰で考える - ぐるぐる~