ブックマーク / dev.ariel-networks.com (3)

  • 古のテクニックを見せようと思ったら最近の技術の前にあっさり敗北した話

    オブジェクトについて抽象から具象まで取り混ぜて説明していた時、最も具象なレベルで見れば、オブジェクトはメモリ上に確保した領域にすぎないと説明しました。 そんな説明をしていた時、メソッドの実体ってどこにどうあるのですかと質問を受けました。人の心はどこにどうあるのですかという質問に比べると緩い質問ですが、良い質問だと思いました。こういう疑問を持つのは大事だと思うからです。自分もかつてプログラムとは結局のところどう実行されるのかが気になりました。プログラマなら誰もが通る道だと思います。 そんなわけでJavaのような箱入り娘から離れて、デレのないツンデレ娘ことC言語で古のテクニックを見せることにしました。 とりあえず次の簡単なコードから始めます。C言語は知らなくても構いません。関数fnがあって、引数に2を加算して返すことだけを読み取ってください。 #include <stdio.h>

    daiki_17
    daiki_17 2015/09/15
  • Apacheのリクエスト処理時間(%T or %D)は正確には何の時間か — ありえるえりあ

    Apacheのログに%T or %Dでリクエスト処理時間を載せることができます。%Tと%Dは内部的には同じ計算値で、単位が異なるだけです(%Tは秒、%Dはマイクロ秒)。 このリクエスト処理時間は、いつからいつまでの処理時間でしょうか。つまり計測時間の開始と終了はどのタイミングでしょうか。 終了はレスポンスデータをsend(2)し切ったタイミングです。 開始として思いつくのは次の3つのタイミングです。 listenキューに入ったタイミング(3wayハンドシェイクの最初のACKを受けたタイミング) accept(2)が返ったタイミング(3wayハンドシェイクの最後のACKを受けたタイミング) リクエストデータをrecv(2)する前 実はどれも間違いです。正解は、リクエストデータの1行目のリクエスト行を読み終わったタイミングです(ソースコードで言うと server/protocol.cのread

    daiki_17
    daiki_17 2014/10/24
  • 社内Java8勉強会 ラムダ式とストリームAPI

    先週Java8がリリースされましたが、さっそく社内での開発でも使うことになりそうです。 というわけで、Java8の目玉機能であるラムダ式とストリームAPIについて、社内勉強会を開催しました。 普段の社内勉強会よりも参加者数が多くて、みんなの関心の高さが伺えますね。

    daiki_17
    daiki_17 2014/03/26
  • 1