プロシンメモ

  • Structured Programming with go to Statements [Knuth]
  • 「誰のためのデザイン」は柔軟な発想を妨げる可能性もあることに注意
  • プロセッサに求められる設計が速度重視一辺倒から省電力など多様な価値観に変わってきている
  • 「CPUはとても高価なので多人数で使おう」という時代があった。
  • 2006現在Minix 3.1.2は核部分が4000行
  • システムコールだけではなくAPIの呼び出しまでOSの機能呼び出しととらえられがち。GUIまでひっくるめてOSと呼んでしまっている。
  • シンプルなコードが早いとは限らない
  • Sketchpad(1963) 論文になっている最初のGUI
  • Alto(1973) 512KBもメモリがあった。
  • 品格の定義するよりも品格のないものを列挙する方が優しい
  • William R. Floyd (1978) Turing賞記念講演
# 初心者が犯しがちな間違い
for ...
   x = f(x, y)
   y = g(x, y)
# こういうことは人間がすべきではない
for ...
   tmp = x
   x = f(x, y)
   y = g(tmp, y)
  • Fail-safe C
  • 特許法第29条で自然現象を使ってないものは拒絶
  • ソフトウェアはハードウェアとの関連を持たせることで自然法則を利用しているという
  • Web関係で自動化するならSeleniumを使うのが楽
  • モンテカルロ木探索
    • Upper Confidence Bound
  • 統計的最小コスト法
  • http://cl.naist.jp/~mamoru-k/chaime/
  • 請求書の支払い日時, 近く市場調査を行う、はじめっから持ってけばいいのに、熱々の肉まんにぱくついた
  • ことえりが意外とうまく行っている
  • Pythonで200行も書けばこの程度のかな漢字変換は出来る」「偉いのはGoogleが集めた2億文のコーパス
  • [obinata] こんなにプログラムを書くとは思わなかった、プログラムは動けばいいと思っていた、今はコピペしている
  • The Advantage of Abstract Example in Learning Math[2008]
    • 具体例で教えると抽象的な例で教えた場合より応用が利かない。
    • 具体例で教えた後で抽象的な話をしても具体例だけのときよりよくならない。
      • 変な癖がついてしまうのか?
  • コードを修正してコメントを修正し忘れるので、書いた日付がわかるようにする
  • 「動けばいい」は間違いではない。本当に動くならそれでいい。「動けばいい」は生易しくない。
  • Lv0: 聞ける, Lv1: 聞いてもわからない, Lv2: 聞いてわかる, Lv3: 聞かなくてもわかる
  • Lv3の人が聞かなくてもわかるようなコードが品のあるコード
  • Jeannieを使うとJNIを直接叩くよりらくちん
  • SQS : Shared Questionnaire System http://sqs-xml.sourceforge.jp/
    • 紙のアンケートを集計するニーズがある仕事にはとても便利そうだ。オープンソースらしい。
  • バグ祓い祭
    • バグを要領よく面白く語れない人にバグを生み出す資格はない
  • Debian OpenSSLの脆弱性について
    • 初期化の際に初期化されていない変数を突っ込んである。「ゴミが入っているかもしれないけど入ってたらおいしくなりそうだからつっこんじゃえ」しかしそれを理解せずに「ゴミを入れるな」と削除したので甚大な被害が。
    • #ifndef PURIFYとか書いてあればそれは「ここではpurifyが警告を出すかもしれないけど意図的なものなんだぞ」という意味だったはずだが伝わらなかった。
  • 暗号にメルセンヌツイスターとか使っちゃダメ。漸化式だからすぐわかる。
  • ゴールプール表現は並列向き
  • I/Oはガードで行う
  • Streamlt: グリッドアーキテクチャのための共通機械語