第71話 俺たちのバイトが本格的に始まった件

λ□らむだきゅーぶ社で、初めての仕事を言い渡されてから一週間経った。次は一週間後ね、と言われたので、今日はちょうどλ□社を訪問している。


「さて、と。先週渡した、HyperEtherハイパーイーサの資料だけど、どうだい?」

「どう、と言われましても……」


 何を問われているのかわからず困惑する。


「ああ、ごめん、ごめん。実装じっそうできそうかどうか聞きたかったんだ」


 なるほど。実のところ、自分一人だとあまり自信がないというのが本音だ。


「はい。たぶんですけど……行けると思います」


 ミユが答える。


「俺はちょっと自信がないんですが、ミユの補助って形ならなんとか」


 二人で話し合った結果がそれだった。ある程度のコードを書く事は俺だけでもできるかもしれないが、完成させるとなると心もとない。


「なるほどね。じゃあ、二人にはチームという形で作業をお願いしようかな」

「チーム、ですか?」


 あまりピンと来ない。


「協力して開発するのを前提にしてもらうって事だよ。本当は、別々のところを実装してもらいたかったんだけどね」

「それはすいません」

「いやいや、別にいいんだよ。バイトだから徐々に慣れてもらえればいい」


 大学1年生の俺たちに、あくまで下手に出る山崎やまざきさん。


「それで、今日はHyperEtherでデータを転送するプログラムを見てもらおうかな」

「えーと、マシン間をHyperEtherで繋ぐという感じでしょうか」

「そうそう。論より証拠。見てもらう方が早いだろう」


 そう言って、会議室を出た俺たちは、少し狭い部屋に案内された。そこには、二台のパソコンがあって、二台の機械がLANランケーブルのようなもので繋がれている。


「これ、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エーピーアイ仕様書も、金城研の人からもらってるから、後で渡しておくよ」


 APIというのは、アプリケーションプログラミングインターフェースの略で、ライブラリを「どうやれば呼び出せるのか」を決めた文書だ。たとえば、俺が以前使ったfgetsというライブラリのAPIは、


/*

* ...

*/

char *fgets(char *str, int n, FILE *stream);



 という感じだ。


「で、改めて、だけど。できそうかい?」

「は、はい。たぶん、なんとか」


 やはり初めて作るものなので不安は拭えない。


「わからない事があったらなんでも聞いていいからね。適切な質問をするのも、だよ」

「適切な質問もスキル……ですか」


 調べ物をする能力、というのはわかるが、質問をするのがスキルである、というのはまだよくわからない。


「たとえば、君が、プログラミングの初心者に質問をされたとしよう」

「はい」

「で、もし、「何かわからないけど、動かないんです」て言われたらどう思う?」

「困りますね。そもそも、何が動かないかを教えてもらわないと」

「だよね。じゃあ、「ファイルから一行を読み込むプログラムを書いているんですけど、fgetsが呼び出せないようです」だとどうだい?」

「それなら、fgetsを呼び出しているところのソースコードを見せてって言いますね」

「と、これが、適切な質問という事だ」

「納得が行きました」


 ちゃんと何がうまく行かないかを整理して質問しろ、とでも言い換えればいいのだろうか。


「説教臭くなっちゃったね。まず、ゆっくりAPI仕様書を読んでくれればいいから」

「はい」


 そして、俺達は、あてがわれた席に座って、しばらく渡された資料を読みふけることになるのだった。


「じゃ、次はまた一週間後にね。お疲れ様」


 そんな言葉とともに見送られる俺たち。帰り道の途中、ミユはずっと黙ったままだ。


「なあ、ミユ」


 ふと、声をかけてみる。


「うん?」


 はっと、物思いから覚めたような反応をするこいつ。さては、ずっと考え事をしていたな。


「ひょっとして、ずっとプログラムの事考えてたのか?」

「ごめん。またやっちゃったよ」


 ミユの集中力は時に物凄いが、一度考え事に入り込むと、ほんとに物音が聞こえない状態に陥るらしい。


「それでよく無事に横断歩道歩けるな」

「それとこれは別だよ」

「器用なんだか、不器用なんだか」

「そういう時は、呼び戻してねって言ってるでしょ?」

「そうだけどさ」


 なんて、愚痴っぽく言ってみるものの、この集中力こそが、ミユが凄いところなのだから、仕方ないのだろう。


 そんな、幼馴染のちょっと変わった一面を改めて認識したのだった。

  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る