第71話 俺たちのバイトが本格的に始まった件
「さて、と。先週渡した、
「どう、と言われましても……」
何を問われているのかわからず困惑する。
「ああ、ごめん、ごめん。
なるほど。実のところ、自分一人だとあまり自信がないというのが本音だ。
「はい。たぶんですけど……行けると思います」
ミユが答える。
「俺はちょっと自信がないんですが、ミユの補助って形ならなんとか」
二人で話し合った結果がそれだった。ある程度のコードを書く事は俺だけでもできるかもしれないが、完成させるとなると心もとない。
「なるほどね。じゃあ、二人にはチームという形で作業をお願いしようかな」
「チーム、ですか?」
あまりピンと来ない。
「協力して開発するのを前提にしてもらうって事だよ。本当は、別々のところを実装してもらいたかったんだけどね」
「それはすいません」
「いやいや、別にいいんだよ。バイトだから徐々に慣れてもらえればいい」
大学1年生の俺たちに、あくまで下手に出る
「それで、今日はHyperEtherでデータを転送するプログラムを見てもらおうかな」
「えーと、マシン間をHyperEtherで繋ぐという感じでしょうか」
「そうそう。論より証拠。見てもらう方が早いだろう」
そう言って、会議室を出た俺たちは、少し狭い部屋に案内された。そこには、二台のパソコンがあって、二台の機械が
「これ、LANケーブルじゃないんですか?」
同じ事を疑問に思ったのか、ミユが尋ねる。
「はは。見た目は似てるけどね。これは、HyperEther用の専用ケーブルだ」
「あ、接続端子が○なんですね」
「じゃあ、これからデモをするから、ちょっと待ってて」
そう言って、山崎さんは手早く二台のパソコンを立ち上げて、両方のマシンのコンソールを立ち上げる。片方のマシンのコンソールには、
$ ./hyper_ether_receive
... wait for connection ...
と表示されていた。hyper_etherは、まさにHyperEtherの事だとして、receiveは「受け取る」だから、何かのデータを受け取るプログラムだろうか?
「この、hyper_ether_receiveというのは?」
「ああ。これは、単にもう片方のマシンからHyperEtherで送られて来たデータをそのまま表示するプログラム」
「これ、山崎さんが書いたんですか?」
「単純に通信待ちして、表示するだけだからね」
山崎さんは、ことも無さげに言うけど、先日、システムコールを呼び出すだけで一苦労した俺にとっては、雲の上のような話だった。
そのまま、もう片方のマシンで、何やら打ち込む山崎さん。
$ ./hyper_ether_send <
1
2
3
4
5
もう片方のマシンのプログラムの役割を考えると、こっちは送る方だろうか。山崎さんがエンターキーを押すと、さっきのマシンに
$ ./hyper_ether_receive
... wait for connection ...
... establish connection ...
1
2
3
4
5
... disconnect ...
と表示されていた。
なるほど。最初のマシンをA、もう片方のマシンをBとすると、Bから順に1, 2, 3, 4, 5と送信したのを、Aは順に1, 2, 3, 4, 5と表示しているようだ。
「これだけだと、見栄えがしないけどね。送信先のアドレスも決め打ちだし」
「その。俺の理解が正しいかわからないんですが……」
「ん?」
「これは、Linuxのシステムコールを使って書かれた、ということでしょうか?」
「そうそう。そういうこと。ちゃんと勉強して来たんだね」
嬉しそうに言う山崎さん。
「この、hyper_ether_sendやhyper_ether_receiveのようなプログラムを簡単に作れるようにするライブラリを作る、のが、私達のお仕事なんですよね?」
「そういうこと。依頼されたライブラリの
APIというのは、アプリケーションプログラミングインターフェースの略で、ライブラリを「どうやれば呼び出せるのか」を決めた文書だ。たとえば、俺が以前使ったfgetsというライブラリのAPIは、
/*
* ...
*/
char *fgets(char *str, int n, FILE *stream);
という感じだ。
「で、改めて、だけど。できそうかい?」
「は、はい。たぶん、なんとか」
やはり初めて作るものなので不安は拭えない。
「わからない事があったらなんでも聞いていいからね。適切な質問をするのも、仕事を円滑に進めるためのスキルだよ」
「適切な質問もスキル……ですか」
調べ物をする能力、というのはわかるが、質問をするのがスキルである、というのはまだよくわからない。
「たとえば、君が、プログラミングの初心者に質問をされたとしよう」
「はい」
「で、もし、「何かわからないけど、動かないんです」て言われたらどう思う?」
「困りますね。そもそも、何が動かないかを教えてもらわないと」
「だよね。じゃあ、「ファイルから一行を読み込むプログラムを書いているんですけど、fgetsが呼び出せないようです」だとどうだい?」
「それなら、fgetsを呼び出しているところのソースコードを見せてって言いますね」
「と、これが、適切な質問という事だ」
「納得が行きました」
ちゃんと何がうまく行かないかを整理して質問しろ、とでも言い換えればいいのだろうか。
「説教臭くなっちゃったね。まず、ゆっくりAPI仕様書を読んでくれればいいから」
「はい」
そして、俺達は、あてがわれた席に座って、しばらく渡された資料を読みふけることになるのだった。
「じゃ、次はまた一週間後にね。お疲れ様」
そんな言葉とともに見送られる俺たち。帰り道の途中、ミユはずっと黙ったままだ。
「なあ、ミユ」
ふと、声をかけてみる。
「うん?」
はっと、物思いから覚めたような反応をするこいつ。さては、ずっと考え事をしていたな。
「ひょっとして、ずっとプログラムの事考えてたのか?」
「ごめん。またやっちゃったよ」
ミユの集中力は時に物凄いが、一度考え事に入り込むと、ほんとに物音が聞こえない状態に陥るらしい。
「それでよく無事に横断歩道歩けるな」
「それとこれは別だよ」
「器用なんだか、不器用なんだか」
「そういう時は、呼び戻してねって言ってるでしょ?」
「そうだけどさ」
なんて、愚痴っぽく言ってみるものの、この集中力こそが、ミユが凄いところなのだから、仕方ないのだろう。
そんな、幼馴染のちょっと変わった一面を改めて認識したのだった。
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます