タグ

2015年8月16日のブックマーク (6件)

  • How DNS works

    A fun and colorful explanation of how DNS works. Hey there! We made this comic to explain what happens when you type a website address in your browser. Enjoy! No jetpacks required. Start reading now

    How DNS works
  • 3分でサービスのOSを入れ替える技術 - YAPC::Asia Tokyo 2015

    ユーザーに Web サービスを提供し続けるためにはコード、インフラストラクチャー、開発プロセス、セキュリティデータ分析などあらゆる要素を継続的にメンテナンスし続ける必要があります。 近年では Web アプリケーションが生活のあらゆる所で利用されるようになりました。その結果としてサービスの提供者である私達には先に述べたような問題の中でも OS、Web フレームワーク、言語などのセキュリティの問題の評価、対応のリードタイム短縮がより一層求められています。 私が勤務する GMO ペパボでは、上記の問題を解決するために最速で 3 分でサービスを無停止のまま大規模に運用しているサーバーを入れ替えるという Blue-Green デプロイメントの仕組みを構築しました。この仕組により、OSのディストリビュータによる脆弱性対策がなされ次第、即座にユーザーに安全な環境を提供することが可能となりました。

  • (昔の) PHP が誇った最高の機能 register_globals の真実、そして未来へ - YAPC::Asia Tokyo 2015

    The truth of register_globals -the best feature of (old) PHP-, and together in the future Accepted #yapcasiaA Tweet かつて Q.「セキュアなWebアプリケーションを作るにはどうすればいいか」 A.「まず PHP を避ける」 とまで言わしめた 古い PHP が活躍していた時代、その中心的機能である register_globals を知っていますか。この機能を on にしたが最後、リクエストパラメータは問答無用でグローバル変数に展開されてしまうという、お手軽且つ凶悪な機能でした。変数汚染攻撃の温床ともなり、「PHP is 脆弱性」とまで言われるようになった所以です。 最新の PHP ではこの機能は無くなりましたが、この機能の強烈さに侵された古き良きアプリケーションは、2015年

  • Return value and constructor

    戻値とコンストラクタの妖しい関係 C++ では、関数の引数として、ユーザが定義したクラスのオブジェクトが 必要な場合は、たいてい、リファレンスを使う。 そうしないと、引数用に一時オブジェクトが生成され、 オブェクトのコピーが発生するからである。リファレンスを使えば、 一般的にはオブジェクトのアドレスが渡されるだけなので、オブジェクト 全体をコピーするよりはるかに効率的だ。 関数引数はリファレンスで渡すというのは、まあ、常識の部類であろう。 では、関数からの戻値としてオブジェクトを返す必要がある場合はどうだろうか。 オブジェクトが保持している属性値を返すようなときは、 const 修飾子を付けた上で、リファレンスで返すのが普通だろう。 その属性値を含むオブジェクト自身を呼び出し側が保持しているので、 アドレスだけ返しても特に問題はないからだ。 では、新しくオブジェクトを生成して返さなければな

    escape_artist
    escape_artist 2015/08/16
    戻り値コピーを省略する最適化。できればこんなの気にしたくないもんなー
  • More C++ Idioms/内部クラス(Inner Class) - Wikibooks

    [編集] 意図[編集] 多重継承なしに複数のインタフェースを実装し、さらに自然に見えるアップキャストを提供する。 単一の抽象化で同一インタフェースに対する複数の実装を提供する。 別名[編集] 動機[編集] 2つの独立したクラスライブラリによって提供される、 2つの独立したインタフェース中の仮想関数のシグネチャが 衝突する可能性がある。 特に、単一のクラスにおいてその衝突した関数を、 対象とするインタフェース毎に異なる方法で実装する必要がある場合、問題になる。 例えば、 class Base1 /// Moon によって提供 { public: virtual int open (int) = 0; /* virtual */ ~Base1() {} // 多態的な delete が禁止されている }; class Base2 /// Jupitor によって提供 { public: vir

    escape_artist
    escape_artist 2015/08/16
    な、なるほど。。
  • クックブック — Google Mock ドキュメント日本語訳

    クックブック¶ Google C++ Mocking Framework クックブック モッククラスを作る Private または Protected なメソッドをモック化する オーバーロードされたメソッドをモック化する クラステンプレートをモック化する 非仮想メソッドをモック化する フリー関数をモック化する Nice モックと Strict モック 既存のコードを壊さずにインタフェースを単純化する 具象クラスのモック化に対する代替案 フェイクに呼び出しを委譲する 実際のオブジェクトに呼び出しを委譲する 親クラスに呼び出しを委譲する Matcher を使う 引数の値に対して厳密にマッチさせる 単純な Matcher を利用する Matcher を組み合わせる Matcher をキャストする オーバーロードされた関数の選択 引数に応じて異なる Action を実行する 複数の引数全体にマッチ

    escape_artist
    escape_artist 2015/08/16
    C形式の関数を直接モック化することはできず、クラスを経由する必要があるとな。やっぱり書き換え必要かなあ