ブックマーク / kazu-yamamoto.hatenablog.jp (8)

  • 私とテストと自動化と - あどけない話

    何度か講演でこの話をしたのだが、気が向いたのでエッセンスを書き下しておこうと思う。 テスト駆動という言葉が流行る前にプログラマとなった私は、当初どのようにテストを書いてよいのか分からなかった。そんなとき、(当時はオーム社で現在はラムダノートの)鹿野さんから「ビューティフルコード」を献していただいた。分厚いなので、興味ある章から読んでいった。その一つがアルベルト・サボイア氏が書いた7章「ビューティフル・テスト」だ。 ビューティフルコード (THEORY/IN/PRACTICE) 作者:Brian Kernighan,Jon Bentley,まつもとゆきひろオライリージャパンAmazon この章では、例として二分探索が取り上げられる。二分探索のアイディアが出されたのは1946年だが、バグのない実装ができたのは12年後だという。実際に実装してみると分かるが、ソートされた配列の中に目的の要素が

    私とテストと自動化と - あどけない話
    onionskin
    onionskin 2024/02/10
  • TLS 1.3 開発日記 その22 公開鍵暗号の動向 - あどけない話

    P256とかX25519とかPSSとか聞いても、よくわからない人のための用語解説。 長い間TLSの世界では、鍵交換にも認証にもRSAが使われてきた。必要となる安全性が大きくなると、RSAの公開鍵は急激に大きくなり、したがって鍵交換や認証のコストが大きくなるという問題がある。 楕円曲線暗号(ECC: Elliptic Curve Cryptography)は、RSAやDiffie Hellmanに比べると、小さな公開鍵で同程度の安全性を実現するという特長を持つ。特許問題が不透明なせいで楕円曲線暗号は長年敬遠されてきたが、この数年で(少なくとも鍵交換に対しては)一気に普及してきた感じだ。 おおざっぱに言うと、楕円曲線暗号で実現できるのは、DH(Diffie Hellman)とDSA(Digital Signature Algorithm)であり、RSAは実現できない。 鍵交換のDHに関しては、

    TLS 1.3 開発日記 その22 公開鍵暗号の動向 - あどけない話
    onionskin
    onionskin 2017/11/16
  • HTTP/2から見えるTLS事情 - あどけない話

    これは HTTP/2 アドベントカレンダー19日目の記事です。 この記事はたくさんの資料を読んだ上で書きましたが、間違いとか勘違いとかがあるかもしれません。もしあれば、指摘していただけると幸いです。 実質的に必須となったTLS HTTP/2は、HTTP/1.1と同じく、暗号化なし/ありのポートとして、80と443を使います。そのため、通信開始時にHTTP/1.1とHTTP/2をネゴシエーションするための仕組みが、HTTP/2で定められています。 このように仕様としては暗号化なしのHTTP/2が定義されていますが、Firefox や Chrome が TLS を要求するために、実質的は暗号化ありが必須となっています。これは、米国の監視プログラムPRISMに代表される広域監視(pervasive surveillance)に対抗するために、IETFがさまざまな通信にプライバシの強化を要求する方

    HTTP/2から見えるTLS事情 - あどけない話
    onionskin
    onionskin 2014/12/19
  • Emacs 24.3/24.4 on Mac のフォント設定 - あどけない話

    Emacs で一番難しいのはフォントの設定です。特に Mac では地獄のように難しいです。とうわけで、Emacs 24.3 と来る Emacs 24.4 でうまくフォントを使うための設定を公開しておきます。 なお、Mac では素の Emacs を使ってはいけません。Emacs Mac port を使いましょう。パッチを当てるのは面倒なので、早く github なんかで公開されるといいですね。 ちなみに、素の Emacs を Dock から起動すると PATH を引き継がないので、はまります。Emacs Mac port なら PATH を引き継いでくれます。 フォントの設定 以下をお好みに合わせて変えて .emacs などに入れて下さい。 ;; 以下はフレームの設定 (defvar my-frame-parameters '((height . 40) (width . 80) (top

    Emacs 24.3/24.4 on Mac のフォント設定 - あどけない話
    onionskin
    onionskin 2014/06/26
  • 正規表現を超える - あどけない話

    まずは、Audrey さんが言った Haskell の殺し文句を思い出して頂きたい。 正規表現ベースのパーサはメンテナンスしにくいのに気づいた? Parsec を使って 15分で Perl6 の完全なパーサを書く方法を勉強しましょう。 15分というのは誇張が入っていると思うが、正規表現が保守しにくく、Haskell の Parsec は強力で保守し易いのは事実だ。その理由を Perl と Haskell のコードを示しながら説明してみたいと思う。 Perl を愛する方に:この記事は Perl を攻撃するために書いたのではない。Perl を選んだのは、正規表現を広めた言語であり、僕がそれなりに Perl のコードを書けるためである。この記事の目的は、正規表現よりも関数型パーサー(Parsec)の方が優れていると示すことだ。 例題 この記事では例題として、IPv4 アドレスを解析する関数を書く

    正規表現を超える - あどけない話
    onionskin
    onionskin 2009/03/10
  • https://kazu-yamamoto.hatenablog.jp/entry/20080401/1207032525

    https://kazu-yamamoto.hatenablog.jp/entry/20080401/1207032525
    onionskin
    onionskin 2008/04/01
  • はじめての Haskell - あどけない話

    昨日、友達にこんなことを話しました。 Haskell でプログラミングするときは、とりあえず効率のことは忘れる。 メモリーは無限にあると考え、コンパイラーと遅延評価が頑張ってくれると信じる。 Haskell では what を記述する。 効率を考えている時点で、how である。 what と how は、同一視されがちであり、区別するには訓練が必要。 変数は初期化できるが、再代入できない。 だから、インデックスが必要な for はない。 繰り返しが質なら、再帰で書く。 単にリストを走査したいなら map を使う。 リスト処理が得意なので、なんでもリストに落とし込む。 もう一度言うけれど、メモリーは無限にあると考えるから、リストが大きくても気にしない。 行を数えてみる ファイルの行数を数えるプログラムを考えるとします。命令型の頭で考えると、一行ずつ読み込みながらファイルの終わりまでループを

    はじめての Haskell - あどけない話
    onionskin
    onionskin 2008/02/18
  • メールの符号化は悪だ - あどけない話

    Subject: の日語文字を符号化する方法(RFC 2047)とファイル名のそれ(RFC 2231)とが何故違うのか説明する機会がありましたので、ブログでも公開するとともに、僕の意見を述べさせてもらいます。 予備知識 Subject: の値に ASCII 文字以外を入れる場合は、RFC 2047 に従って符号化します。たとえば、 Subject: 日語文字 は、以下のように変換されます。 Subject: =?iso-2022-jp?B?GyRCRnxLXDhsSjg7ehsoQg==?= 一方、「ファイル.pdf」というファイル名は、RFC 2231 に従って以下のように符号化します。 Content-Disposition: attachment; filename*=iso-2022-jp''%1B%24B%25U%25%21%25%24%25k%1B%28B%2Epdf RF

    メールの符号化は悪だ - あどけない話
    onionskin
    onionskin 2008/01/15
  • 1