タグ

ブックマーク / blog.shibayu36.org (3)

  • 関数の仕様を正しく実装していることをどう保証するのか - $shibayu36->blog;

    静的型チェックがあったらテストはあまり書かなくて良いのか - $shibayu36->blog; で静的型チェックがあったとしても、テストをあまり書かなくて良いわけではないという話を書いた。するとブコメでいろいろ意見をもらえた。これらの意見から、関数の仕様を正しく実装していることをどう保証するのかについてもう少し深く考えてみようと思い、その考えがまとまってきたので、ブログに書いておく。 一応前提として、今回の話は自分の経験とこれまでのを読んだ知識を元に自分で考えたものであり、何かの理論に則って話しているわけではない。この部分が違うなどあれば突っ込みを受けたい。 今回考える仕様 このようなことを考える時、非常にシンプルに考えたほうが理解がしやすいので、以下の様な仕様を持つ関数addNaturalIntを考える。 関数addNaturalIntは正の整数を二つ受け取り、足しあわせて正の整数を

    関数の仕様を正しく実装していることをどう保証するのか - $shibayu36->blog;
    ajishixo
    ajishixo 2016/10/18
    型検査 表明 テスト
  • I/Oを多重化するためのシステムコール(select, poll, epoll, kqueue) - $shibayu36->blog;

    サーバ周りの勉強していると、たまにselectとかepollとか言葉が出てきて、理解できてなかったので調べてみた。 I/Oの多重化 例えばサーバ周りの実装を、特に何も考えずにやると、I/Oでブロッキングが発生し、一つのクライアントとしか通信できないということが起こります。これを解決するために fork threads I/Oの多重化 非同期I/O といった方法があります。 この中のI/Oの多重化を実装するためのシステムコールとして、select, poll, epoll, kqueueなどは実装されているようです。 少し調べてみると、次のような記述のような機能をそれぞれが実装するようです。 プログラムで複数のファイルディスクリプタを監視し、 一つ以上のファイルディスクリプタがある種の I/O 操作の 「ready (準備ができた)」状態 (例えば、読み込み可能になった状態) になるまで待つ

    I/Oを多重化するためのシステムコール(select, poll, epoll, kqueue) - $shibayu36->blog;
  • perlアプリケーションをVirtualHost環境で使うときに必要な設定 - $shibayu36->blog;

    perlアプリケーションをVirtualHost環境で使うときに、ちょっと注意しないといけない点があったのでメモ。 Apacheの設定 VirtualHost環境で使うときには、それぞれの環境ごとで異なる@INCや環境変数を用いなければなりません。そのためにApacheの設定で以下のような設定をVirtualHost内に書いておく必要が有ります。 PerlOptions +Parent PerlSwitches -I/var/www/Sample/current/lib設定の例は以下。 <VirtualHost *:80> ServerName sample.saficion.com DocumentRoot /var/www/Sample/current/public ErrorLog /var/www/Sample/shared/log/error.log CustomLog /var

    perlアプリケーションをVirtualHost環境で使うときに必要な設定 - $shibayu36->blog;
  • 1