新人をバイナリアンに育てる ~ その3 ~

サブタイトル:そら飛ぶ バイナリアン

新人の高橋君 GNU Development Tools を2週間で読了。どんな本かというと、、、
オーバーシー・パブリッシング - GNU開発ツール
このウェブサイトには目次もある。
http://www.oversea-pub.com/wp/wp-content/uploads/2013/01/gnudevjp_index_1st.pdf
なんで、社長の私がこれ読ませたのかなぞ。よくよく考えたら、正直無理だろう。でも2週間で読み切った。で、ちょっと早く行き過ぎたということで、「C言語プログラミング」(どの本かは今となっては不明)という本を読んでもらうことにした。

技術系の上司の良くあるミス。期待しすぎて、高望みのして、実力以上の事をさせてしまったんだ。こうなると、かじ取りが難しくなる。本人に「ちょっと難しかったね。」といってしまうと「がっかりして」しまう。ごまかしながら、易しい本に変えたのだった(たぶんそういうことだろう)。

まぁそれでも、もらったソースをコンパイルぐらいはできるから OpenCV のソースをコンパイルして、72x34 の画像を作ることには成功した。

中堅社員の日報 6/17(Fri) 18:42

- 昨日の作業の整理
- git の登録
- FrameBuffer 対応
- CMakeLists.txt の更新
- GTK, QT と同じレベルで、FB というのを追加
- cmake オプションで -DWITH_FB=ON とすると、
modules/highgui/src/window_fb.cpp をコンパイルするよう変更
- WITH_FB=ON の場合、デフォルトのダミー APIコンパイルされないよう変更
- ほぼ空の、window_fb.cpp を作成
- cvNamedWindow() に、printf() による呼ばれたことを明示する処理を追加
- cmake & make のやりなおし
- qemu で、自分の作った cvNamedWindow() が呼ばれたことを確認

  • 高橋君の環境で OpenCV を動かす作業のサポート

コメント

OpenCV で FrameBuffer 対応している。ここでやってたのか。今の会社の資産になっている。6年前にはじめてたんだな。一応、高橋君の作業のサポートをやってもらっている。まぁ、やっぱり新人君にはいやってね、じゃ、できないわな。

新人:高橋君 日報 6/20(Mon) 18:35

作業報告します。
今日行ったこと
 unix/linuxコマンドの使い方322ページ中 55-63ページまで読み進める。
 知識にあるコマンドがあるため問題なく進んでいる。
 C実践プログラミングを404ページ中39-57ページまで読み進める。
 こちらは配列に入ったため少し慎重に行うべき。
 OpenCV関連
  -72×34の白黒イメージに四角形を描くところまでは進むことができた。
今後行うべきこと
 unix/linuxコマンドの使い方64ページ以降を読み進める。
 C実践プログラミングを58ページ以降をプログラムを行いながら読み進める。
 OpenCV関連
 -72×34の白黒イメージを45度傾ける。
  -その後白黒のrawデータでセーブを行う。
  -普通のプログラムで白黒のrawデータを読み込んで白と黒の数を数えるプログラムを作成する。
  -普通のプログラムで72×34の白黒イメージに書いた四角形を書き、rawデータで書き出す。
  -普通のプログラムで72×34の白黒イメージに書いた四角形を書き、45度傾けてrawデータで書き出す。

コメント

どうやら「C実践プログラミング」を読んでいるようだ。

これ、難しいでしょ。C 初心者には。下方修正したけど、やっぱり難しいことになっている。それでも、一日 P20 くらい読んでいる。このペースだとまぁ、読んでいるだけだな。「配列に入ったため少し慎重に行うべき」というのが新人ぽくって良い。最初の GNU Development Tools はなんだったのだ。完全に見誤っている。

同時に「unix/linuxコマンド」も読んでいる。ちょっと詰め込みすぎかもしれない。

週刊社長通信 6/20

■ 読書
ゲーテル・エッシャー・バッハ」再帰が難しいまま、160ページくらい
最新コンパイラ構成技法の読み返しとプログラミング
生存解析を Lisp で書いている途中

命令レベル並列実行処理(プロセッサ・アーキテクチャコンパイラ)スーパースカラのプロセッサを作ってみたくなった
関連して Interface のCPUの動作原理とアセンブラの基礎知識を読む

社長通信<技術編> 6/20

みんながリーナス・トラバースさんになろう。=>どうすらばなれるか考えよう

GLSL について調査した。
http://http.developer.nvidia.com/Cg/arbvp1.html
vertex 用の Low Level Shader 言語(ほぼアセンブラ)。ジャンプ命令すらない。
文法通りに作ればよさそう。レジスタ(変数)は無限に使える。
したがって、
 まず文法の木を作る=>一直線の木。複雑な木構造にならない。
 生存解析をする
 カラーリングする
 レジスタの割り当て

をすれば、Low Level Shader 言語用のアセンブラに落とせそうだ。
構文解析は本質ではないので、人間が文法の木を作ってコンパイラに渡す。
つまり lisp で書く。(書いている途中)

アセンブラに落としたら今度はそれが動く vertex 用のプロセッサが必要。
これは
 Lisp でシミュレーション
VHDL で簡単なプロセッサを書く
 VHDL で複雑なプロセッサを書く

できればスーパースカラーに対応したプロセッサを書きたい。
積和演算をするので、スーパスカラーいらないかも。

スーパースカラー=>アウトオブオーダーなプロセッサ
ついでにレジスタを動的に割り当てるかレジスタウィンドウにするかしたい。

コメント

とりあえず、社長の私が何を読んでいるか、何をしているか伝えなきゃと思って、読んでいる本を伝えている。「命令レベル並列実行処理」はいい本だった。今でも使う。そして、今の仕事に役立っている。あと、Lispコンパイラ作ってるのね。この作業が結局いまの polyphony につながったのだ。「ゲーテル・エッシャー・バッハ」はそういえば挫折したんだっけ。

新人:高橋君 日報 6/22(Tue) 18:25

作業報告します。
今日行ったこと
 unix/linuxコマンドの使い方322ページ中64-96ページまで読み進める。
 使ったことがあるコマンドがあるため問題なく進んでいる。
 C実践プログラミングを404ページ中58-60ページまで読み進める。
 配列文字列で思った以上に手間取った。
 OpenCV関連
  72×34の白黒イメージを45度傾けるプログラムを作成していたが終了させることはで
きなかった。アフィン変換をするところに原因があると思われる。

今後行うべきこと
 unix/linuxコマンドの使い方95ページ以降を読み進める。
 C実践プログラミングを61ページ以降をプログラムを行いながら読み進める。
 OpenCV関連
 -72×34の白黒イメージを45度傾ける。
  -その後白黒のrawデータでセーブを行う。
  -普通のプログラムで白黒のrawデータを読み込んで白と黒の数を数えるプログラムを作成する。
  -普通のプログラムで72×34の白黒イメージに書いた四角形を書き、rawデータで書き
出す。
  -普通のプログラムで72×34の白黒イメージに書いた四角形を書き、45度傾けてrawデ
ータで書き出す。

コメント

配列の文字列でつまずいてますよ~~。数学ができるので、アフィン変換って何?とか教えなくて済むのは楽。ただ、OpenCV で 45度傾けるのはできない。 unix/linux コマンド。このままいくと、終わるのは1カ月後だ。
あと、18:25 にメール書いている。18:00 越えが常態化しているようだ。こうしてブラックになるのか?ちなみに、今のうちの会社は 19:00 には人がいない、ブラックではない(かといってホワイトでもないな)グレーな会社です。

新人:高橋君 日報 6/23(Wed) 18:35

作業報告します。
今日行ったこと
 unix/linuxコマンドの使い方322ページ中97-110ページまで読み進める。
  シェル系統の知識はあまりないため慎重に読み進めたい。
 C実践プログラミングを404ページ中61-74ページまで読み進める。 
 OpenCV関連
  白黒イメージに四角形書き45度傾けるプログラムを作成した。
  またrawデータのセーブを行った。
今後行うべきこと
 unix/linuxコマンドの使い方111ページ以降を読み進める。
 C実践プログラミングを75ページ以降をプログラムを行いながら読み進める。
 OpenCV関連
  -普通のプログラムで白黒のrawデータを読み込んで白と黒の数を数えるプログラムを作成する。
  -普通のプログラムで72×34の白黒イメージに書いた四角形を書き、rawデータで書き
出す。
  -普通のプログラムで72×34の白黒イメージに書いた四角形を書き、45度傾けてrawデ
ータで書き出す

コメント

バイナリアンにするために unix のコマンドを使いこなせないとね。やっと 1/3 だ。「シェル系統の知識はあまりない」になりはじめた。最初の「使ったことがあるコマンドがあるため問題なく進んでいる」とどう違うのだ?

社長の指示 6/22(Wed) 22:40

よくよく考えたら、
”四角形を書き”
”45度に傾ける”
というプログラムを作るには、直線を書くプログラムを必要とするので後回しにします。

ということで以下のように変更

 グラフィック関係
  - OpenCVを使わず、グレイスケールのrawイメージデータを読み込んで
   各グレイスケール値の数を数え、表示するプログラムを作成する。
  - (OpenCV は使わずに) グレイスケールのrawイメージデータを読み込んで
Gimp が読めるカラーの rawイメージデータに変換しファイルにセーブする。

コメント

何を思ったか(おぼえてない)、突然、方向修正。OpenCV やっぱり新人には難しいということなんだろうね。どんどん、下方修正されている。ちょっとかわいそう。うちのような小さな会社にはこの手のノウハウはないんだよね。

新人:高橋君 日報 6/23(Thu) 19:38

作業報告します
今日行ったこと
 linuxコマンドの使い方111ページから120まで読み終わる。
  シェル系のため慎重に行いたい。
 C実践プログラミング75ページから93まで読み終わる。
  知識にほとんどないものがあるため、慎重に行いたい。
グラフィック関係
  ほとんど進展はなし。
今後行うべきこと
 linuxコマンドの使い方、C実践プログラミングをそれぞれ読み進める。
 OpenCVを使わずにrawイメージデータを読み込んで各グレイスケール値の数を数え、表
示するプログラムの作成を行う。
 同じくrawイメージデータを読み込みGimpが読めるカラーのrawイメージデータに変換しセーブする。

コメント

やっぱり、詰め込み過ぎで飽和した。OpenCV や raw データの扱いは早すぎたのだ。しかも 19:38 に報告でもうブラック企業。一方、C実践プログラミング は P75-P93 。どの辺だ?どうやら「5章の後半から 配列、修飾子および数値の使用」「6章 条件文と制御文」の前半くらいみたいだ。やはり配列は難しい。そして、8進数、16進数表現は難しい。

新人:高橋君 日報 6/24(Fri) 17:59

作業報告します
今日行ったこと
 linuxコマンドの使い方を322ページ中121-132ページまで読み進める。
 C実践プログラミングを404ページ中94-113まで読み進める。
 どちらも読みこぼしがないようにしたい。
グラフィック関係
 Opencvを使わずグレイスケールのrawイメージデータを読み込んで各グレイスケール値の数を数え表示するプログラムを作成した。
 Opencvを使わずグレイスケールのrawイメージデータwp読み込み、Gimpが読めるカラーのrawイメージデータに変換しセーブを行った。
今後行うべきこと
 linuxコマンドの使い方、C実践プログラミングをそれぞれ慎重に読み進める。
 普通のプログラムで72×34の白黒イメージに四角形を作成、rawデータで書き出す。
普通のプログラムで72×34の白黒イメージに書いた四角形を作成、45度傾けてrawデータで書き出す。

コメント

ブラック企業脱出。17:59 にメールがきている。「どちらも読みこぼしがないようにしたい。」とかなり弱気。やっぱり、最初に難しいのをさせ過ぎると自信を失うんだな。今頃になって反省。

とはいえ、なぜか復活して、各グレイスケールの値の数を数え表示するプログラムが出来上がっている。これもう今となってはどこにもない。取っておけばよかった。

このころすでに git を使っていると思うけど、まだ、高橋君は使えてないみたい。