タグ

ブックマーク / nishiohirokazu.hatenadiary.org (5)

  • 書評:アンダースタンディングコンピュテーション - 西尾泰和のはてなダイアリー

    監訳者のささださんから「アンダースタンディング コンピュテーション―単純な機械から不可能なプログラムまで」を頂いたので紹介。 「プログラムの『意味』とは何か?」という抽象的な問いに真っ向から挑む。プログラムの「意味」には、「それによって計算機がどう操作されるか」で表現する方法と、「それを別の(もっとシンプルな)言語に変換するとしたらどうなるか」で表現する手法とがある。書ではこの2つの手法があることを解説し、それぞれの手法について深堀りしていく。 「計算機がどう操作されるか」路線では、もちろん次に「『計算機』って何だ?」という問いに挑む必要性が出てくる。まずは能力の劣った計算機である「決定性有限オートマトン」から初めて、それが正規表現というある種のプログラミング言語とどういう対応の仕方をしているのかを解説するのにまる1章割いている。このストーリー仕立ては面白い。 その後、有限オートマト

    書評:アンダースタンディングコンピュテーション - 西尾泰和のはてなダイアリー
  • JDK7でメッセージを英語にする(-J-Duser.language=en) - 西尾泰和のはてなダイアリー

    「env LC_ALL=en javacってやれば英語になるよ」という趣旨のブログがたくさんヒットするが、それをやっても変化がない。確かに昔はLC_ALL=enでできたような記憶があるけどなぁ〜と思ったら、どうもJDK7からOSの言語設定を見るとかいう余計なおせっかいをしてくれるようになったようだ。英語でのメッセージ出力を強制するには、javac -J-Duser.language=enやjava -Duser.language=enと指定すれば良いようだ。 $ javac Nothing.java javac: ????????????: Nothing.java ????: javac <options> <source files> ????????????????????-help?????? $ javac -J-Duser.language=en Nothing.java ja

    JDK7でメッセージを英語にする(-J-Duser.language=en) - 西尾泰和のはてなダイアリー
    yass
    yass 2014/01/07
    " 確かに昔はLC_ALL=enでできたような記憶があるけどなぁ~と思ったら、どうもJDK7からOSの言語設定を見るとかいう余計なおせっかいをしてくれるようになったようだ。"
  • 何をどう学ぶか? - 西尾泰和のはてなダイアリー

    何をどう学ぶか? from nishio 「コーディングを支える技術」を執筆している時に考えていたことをスライドにまとめました。

    何をどう学ぶか? - 西尾泰和のはてなダイアリー
  • リスコフの置換原則の絵を描いた - 西尾泰和のはてなダイアリー

    T 型のオブジェクト x に関して真となる属性を q(x) とする。このとき S が T の派生型であれば、S 型のオブジェクト y について q(y) が真となる。 リスコフの置換原則 - Wikipedia Tの丸の中にあるものすべてq(x)の丸の中にある場合に、SがTの派生型であればSの丸の中にあるものはすべてq(x)の丸の中にある、という絵。 なんかとても自然すぎて、何を当たり前のことを言ってるの?と思う人もいるかも知れない。というわけでリスコフの置換原則が満たされない場合の絵も描いてみた。 Sがニョッキリとq(x)の外に突き出している。SがTのサブタイプだというなら、SはTの中に収まっているのが自然なわけだ。でも「T 型のオブジェクト x に関して真となる属性を q(x)」を満たさないSの要素yがあるってことは、SはTの中に収まっていない。リスコフの置換原則が守られていないっての

    リスコフの置換原則の絵を描いた - 西尾泰和のはてなダイアリー
    yass
    yass 2012/02/14
  • GAEでPagination - 西尾泰和のはてなダイアリー

    fetchの制限があるからどうやってpaginationを実装するのがスマートかなーと思ってたらまさにズバリな内容の文章が公式であった。App Engine でページングを行う方法 - Google App Engine - Google Code シャードって何だ カウンタのシャーディング - Google App Engine - Google Code あー、ようするに ユーザの操作によってがんがん行われる処理でDatastoreの単一のオブジェクトに読み書きしていると、いずれユーザが増えたときにボトルネックになるよね?まずはタスクキューを使って平坦にしたうえで、それでもさばけなくなったらオブジェクト自体をいくつかに分散するべきか。 http://twitter.com/nishio/statuses/10957320426 の後半のことをシャーディングって言うのか。

    GAEでPagination - 西尾泰和のはてなダイアリー
    yass
    yass 2010/04/10
  • 1