2017/05/16

schedule

01:20 睡眠
11:50 起床・朝食
13:00 出家
13:45 研究室
18:50 帰宅
19:30 自宅着・夕食
20:30 読書
22:00 風呂
23:30 電話 (-24:30)

やったこと

  • C言語 入門書の次に読む本 (pp.117-168)

得たこととしては

  • 外部に公開するheader file、公開しないheader file (.cに対して1つずつが望ましい) を作る。しかし、Cでは、ライブラリのみでグローバルの関数(としたいもの)と、外部に公開するグローバル関数を区別できない。適当にプロトタイプ宣言してlink可能である。
  • Makefileは、BSD makeとGNU make、どちらでも通るように。
  • 必ずexit()で終了する
  • 大きなライブラリでは、複数のオブジェクトファイルをアーカイブ形式にまとめる。
  • 構造体のメンバ変数の隠蔽 : 面白い
  • Algorithm + Data structure = Programs !!!
  • ハッシュは、既存のプログラムを余り変えずに導入できる。既存の検索アルゴリズムやデータ構造を変えられない時に導入するのが主。時間(速度)と空間(ハッシュ個数、メモリ量)のトレードオフあり。ハッシュ個数でこれを調節可能。

疑問

  • makeは文章の整形などにも使える…?
  • 乱数発生用ライブラリ : 自分は0と1が交互に出現することを再現できなかった。
  • ここでの説明のHashと、自分がイメージしているHashが違った。というか、hash mapをhashと思っていた。C++だとunordered_mapだが、あれどうやって実装しているんだろう。hashの閾値分のindexをもつ配列を予め確保しているんだろうか…効率…。
  • C++のstd::mapは二分木らしい。今度手で書いてみようか。

コメント

  • 今日も眠い。前日すぐ寝たのに。ずっと眠い。
  • PCを閉じていると作業が進む。やはりPCは害悪。
  • 今日は沢山本を読めた。よかった。自分が長年疑問だったことの答えがあったからかもしれない。
  • この後にリファクタリング読んで、Effective C++を読み直して…とモチベーションが上がった(これは久しぶりのこと)。
  • 研究を行う。研究室に所属した当初は、「プログラムバリバリ書くぞ(テーマが数値計算使う)」という感じだったのに、今では急いでいるからなるべく既存ので済まそう…というレベルに低下
  • 研究があまり上手く行っていない。正統的な発想を誰も試していないというのは、そこに泥沼があるからなのか。
  • “100 Power Tips For FPGA Designers"という本が気になっている。FPGAは和書が極端に少ない。きっと電気系エンジニアぐらいしか触らず、そういう人達は英語文献を読んじゃうし、訳してもニッチだから利益が少ないのだと想像。
  • FPGAで例えば配列の平均を取るとして、どういうアルゴリズムがよいか?これだけでも結構考えてしまう。アルゴリズム実装集みたいな本が欲しい。
  • 凄いと思ったニュース ソニー、1,000fpsで対象物をセンシングできる超高速センサー - PC Watch

(?)

  • A + D = Pを初めて知った。特にAlgorithmに気をつけよう…。
  • コーディングを通じてだとよく知識を吸収できるのは、人に何かを説明するのとかなり似ている (自分の言いたい / 書きたい範囲で、必要性が及ぶ知識を総動員する。実現のために自身の知識の参照領域を制限できない。)