ふつーのプログラマです。主に企業内Webシステムの要件定義から保守まで何でもやってる、ふつーのプログラマです。

イノウーの憂鬱 (9) 椅子とキーボード

»

 「椅子も買ってもらえばよかったな」ぼくはぼやいた。
 「え?」マリが訊き返した。「なんすか?」
 「椅子だよ、椅子」
 ぼくが座っているのは、ダイニングチェアにカテゴライズされるだろう、古い木製の椅子だった。このマンションの賃貸契約を結んだとき、不動産屋さんが、もしよかったら使いますか、と無料で付けてくれたデスクとセットになっていたものだ。いかにも頑丈な造りだが、可動部分が皆無で、長時間のPC ワークには不向きな代物だ。テレワーク勤務になってからというもの、デスクにノートPC を置き、この椅子に座って仕事をしてきたが、不自由を感じることはなかった。
 正確には、不自由を感じるレベルの仕事をしていなかった、というべきだろう。なにしろ、ぼくとマリで互いに持っているノウハウを教え合っていただけで、長時間集中してモニタとキーボードに向かうようなこともなかったのだから。あまり大きな声では言えないが、勤務時間の半分ぐらいは、これは調べ物、と自分に暗示をかけてネットを見ていたような気がする。先日のノートPC 申請フォーム構築が、システム開発室における初の本格的な開発業務だったが、作業自体は会社で行ったので、真の意味でのテレワーク勤務は、昨日の夜に始まったと言える。
 申請フォームは正式にリリースされ、総務課から全社向けにアナウンスもされたが、アクセス数は少なかった。翌日が祝日だということもあったが、感染者が確認されたことで、多くの社員がテレワークではなく、自宅待機、というステータスに置かれたからだ。それなりに苦労して構築したシステムが無関心で放置されているのは悲しむべきなのだが、ぼくたちにはそんな感傷にひたる贅沢も許されなかった。全社員の検温データ登録システム構築が、会社全体の最優先事項に上がったからだ。
 最初に手を付けたのはメルマガサーバの環境確認だった。プロセスを調べるとhttpd が動いていたので、バージョンを調べてみると2.0 だった。湊くんが最新版のApache のtar ボールを入れておいてくれたので、早速解凍して、セットアップを実行した。make を流している間に、Python3 の最新版、Flask、その他必要なモジュールを順次インストールしていく。マリはhtml 部分の作成に取りかかっていたので、項目名などを相談しながらの作業だ。
 Apache のセットアップはサードアイ時代に二、三回やっただけで、それももう何年も前だ。あまりスペックの高くないサーバなので、組み込むモジュールは最低限にとどめたが、それでも何度もmake を繰り返さなければならなかった。せめて既存の設定ファイル群が参考になれば良かったのだが、最後にこのサーバのメンテナンスを担当したのは、物事をあまり深く考えないエンジニアだったらしい。httpd.conf はほとんどデフォルトのままで、ServerTokens の設定すらされていないし、ディレクトリのファイル一覧表示も無効になっていなかった。
 設定に苦労している間にも、Teams とメールで連絡が入り続けた。シノッチからはUSB-HDMI 変換コネクタを購入してきたが、後追いでいいので、システム開発室から購入申請を出しておいてほしい、との連絡。湊くんからはモニタ類をぼくとマリにそれぞれ発送した、との連絡。斉木室長からはサーバ証明書の申し込み手続きを開始した、との連絡。
 Apache が起動し、自分のスマートフォンから接続できることを確認できたのは19 時過ぎだった。胃が空腹を訴えているのを無視して、すぐにサーバ証明書申請用のCSR の生成に取りかかる。会社で待機している斉木室長が申し込み手続きを進められるようにするためだ。会社には斉木室長だけではなく、財務課にも課長と社員が一人ずつ残っているはずだった。マーズでは基本的に先払い精算は認めていないが、サーバ証明書の即日発行にはクレジットカードが必要となる。会社名義のクレジットカードは、財務課でのみ使用可能なため、申し込み手続きが完了するまで残業してもらっているのだ。
 ディスティングイッシュネームの確認に少し時間を要したものの、CSR の生成は無事に完了した。斉木室長にメールで送信し、申し込み手続きを進めてくれるように頼んでおいて、ぼくは食料品の買い出しのために、近くのスーパーまで走った。冷蔵庫の中が、空に近い状態だったからだ。
 テレワーク勤務は料理が好きな人種にとっては、それまでできなかったことにチャレンジできるチャンスであるらしい。埼玉県のベッドタウンに住む大学時代の友人もその一人で、先日、オンライン飲み会をやったときに、自慢げに成果を披露していた。最近の成功例は、焼き目を付けた豚のロース肉の塊に、60℃ の低温で2 時間かけてゆっくり火を通したローストポークだとか。市販の焼き肉のタレに肉汁とバターを足したソースがよく合うんだ、と嬉しそうに画像を見せてくれた。
 あいにくぼくは、料理にそこまで時間を費やす気になれない。2 時間の自由時間があるなら、豚を焼くより、本を読んで過ごす方を選ぶだろう。このときもカゴに放り込んだのは、調理の手間が最小限ですむことを基準にした食材だった。卵とソーセージ、スライス食パンと、カップ麺を5 個、ポッキーやプリッツなどのスナック菓子、発泡酒の6 缶パック、それに直近の夕食用として、半額シールが貼ってあるハンバーグ弁当だ。
 平日の夜なのに、レジには行列ができていた。以前ならレジ手前のポールには、本日の特売品やセールの予告のビラが貼ってあったのだが、全てなくなっている。代わりに掲示されているのは、「マスクの入荷・在庫はありません」と太ゴシック体で印刷された紙だ。それにも関わらず、レジの店員さんにマスクの有無をしつこく訊いている中年女性がいて、渋滞の原因となっていた。店員さんはみなマスクをしているので、店が入荷分をため込んでいるのではないか、と疑っているらしい。自分さえ良ければ他人はどうなってもいいのか、と非難する言葉が耳に届いた。その言葉を、そっくり投げ返してやりたい。
 帰宅すると、斉木室長から申し込み手続きは完了したとの連絡が入っていた。サーバ証明書が届くまで、数時間程度の見込み、とのことだった。「いいね」マークで答えると、ぼくはレンジで温め直した弁当に取りかかった。
 夕食をかき込んでいる間に、マリからTeams で連絡が入った。テンプレートになるhtml の大枠ができたので確認してほしい、とのことだった。css による画面の装飾や、JavaScript によるバリデーションは、動かしながら適用していきたい、というので、まずはFlask でルーティングの設定だけでも済ませておく必要がある。
 「あたしも早く」マリは申しわけなさそうに言った。「それぐらいできるようにならないといけないっすね」
 「実戦で試行錯誤するのが早いんだけどね」
 本来なら、この規模のシステム構築が実戦練習には最適なのだが、今回は時間的余裕がないのでムリだ。カットオーバー後、時間があれば、同じものを一から作ってもらうのがいいかもしれない。正解があるから理解しやすいだろうし、機能追加やバグ修正などもやってもらえる。
 「今日はもう終わっていいよ」ぼくは言った。「明日の朝から、笠掛さんが作業できるようにしておくから」
 「お願いします」マリはそう言うと、視線を微妙にずらした。「あの、ちょっといいすか?」
 「うん?」
 「その、呼び方なんすけど、同じ部署になったことだし、笠掛さんってのは、なんか他人行儀な気が。木名瀬さんみたいにマリって呼んでもらえると嬉しいかなあって」
 「あ、ああ」ぼくは戸惑った。「そっか、でも、会社の人を名前の方で呼ぶのはどうかな......」
 そう言いながら、ぼくは去年のクリスマスのとき、木名瀬さんに似たようなお願いをしたことを思い出した。歴史は繰り返す、というわけだ。
 「本人がいいって言ってるんだから、いいじゃないすか。あたしだって、イノウーさんって呼んでるんだし」
 「......ちょっと練習してからでいい?」
 「練習も何も」マリは呆れたように笑った。「言うだけじゃないすか。はい、リピートアフターミー。マリちゃん」
 「マリ......さん」
 「さん付けだと、こっちが落ち着かないっすよ。呼び捨てか、ちゃん付けでおなしゃす」
 プライベートならともかく、会社の同僚をちゃん付けで呼ぶというのは、社会人になってから経験がない。斉木室長などは、誰彼構わず、ちゃん付けだが、そこまでの図太さは持ち合わせていない。何度かやり直した後、当面は二人だけのときだけ、という条件付きで、マリが満足する呼称を口にすることができた。
 ビデオ通話を終え、残っていた弁当を食べ終えると、ぼくは新しいFlask プロジェクトを作成し、マリが作ってくれたhtml をコピーした。ログインページ、検温データの入力と画像ファイルのアップロードページ、確認ページ、完了ページだ。ログインエラーや、登録ページでのエラーの表示箇所を追加しつつ、ページ遷移を定義していく。このあたりは申請フォームと同じルーチンだ。
 一通りルーティング設定ができたので、マリにTeams でURL を送信した後、インスタントコーヒーを濃いめに淹れた。本格的な実装は明日、モニタ類が届いてからにするとしても、スムーズに作業を進めるためにも、今夜のうちにできることはやっておきたい。
 メルマガサーバと開発サーバ間の疎通確認から始めて、データベース設計、ビジネスロジックとして作らなければならない機能一覧、をまとめた。総務課宛に登録内容を送信する機能は、最初の実行が二日の朝になるので、後回しにする。
 21 時近くになって、ようやく斉木室長からメールが届いた。サーバ証明書が添付されている。受領を返信してから、Apache への組み込みを行った。作業の優先順位としては高くないが、外部と関連する作業は、早めに終えておいた方がいい、と経験からわかっているからだ。中間証明書と一緒に設定ファイルに追加し、Apache を再起動する。再びスマートフォンで接続してみると、無事にindex.html が表示されたので安堵した。もっとも、ぼくはセキュリティの知識は初心者に近いレベルでしかないので、いずれ落ち着いたら、脆弱性診断をどこかの専門業者に依頼した方がいいだろう。
 22 時頃、木名瀬さんがTeams で呼びかけてきた。
 「ちょっと気になることがあって連絡しました」音声だけのチャットで、木名瀬さんは言った。「必須チェックはどうなっていますか?」
 「必須チェックですか?」ぼくは首を傾げた。「普通に確認ボタンを押したときに入力エリアをチェックして、空だったら......」
 「そうではなくて」木名瀬さんは穏やかに遮った。「全員が検温結果を登録するんですよね。登録していない人はどうやってチェックするんですか」
 「......総務から全社員に呼びかけるんですよね」
 「何人かは絶対に忘れますよ」木名瀬さんは指摘した。「または、何らかの理由があって意図的に登録しない人とか」
 その点は総務課からの依頼内容になかった。気付いてしまった以上、なかったから、といって放置しておくわけにはいかない。
 「確かにそうですね。どうしましょうね」
 「プログラマとしては、どういう解決方法が考えられますか」
 ぼくは冷めたコーヒーをすすった。すぐに思いついたのは、早朝と夕方に一斉メールでリマインドメールを送信する方法だった。次に頭に浮かんだのは、登録時刻のリミットを決めておいて、それを過ぎた時点で警告メールを送るという手だ。
 「悪くはないですね」ぼくの案を聞いた木名瀬さんは、そう言ってくれた。「ただしメールというのはいろいろ問題があるかもしれません。気付かなかった、と言われればそれまでですし、夕方のはともかく、早朝のメールなど見ないかもしれません。それに......」
 「それに?」
 「残念ですが、システム開発室はまだ実績もなく、組織上の重要度も低い部署です。そこが作ったシステムからメールが届いたとしても、軽く扱われてしまうかもしれません」
 「......」
 「メールの宛先を本人ではなく、その上長にした方がいいですね」木名瀬さんは提案した。「同時に総務課にもCC しておきましょう」
 「ああ、なるほど」ぼくは笑った。「つまり、未登録者に登録を促す責任を上長に移譲してしまうわけですか」
 総務課にもCC で一報しておけば、届いていない、という言い逃れはできなくなる。
 「それでいきましょう」
 「ただそうなると、未登録者の上長が誰か、を判断するロジックが必要になりますよ」
 そうか。ぼくは唸った。また作成リストの項目が一つ増える。だが、放置しておけば、どうせ後になって「なぜそれぐらい考慮しなかったのか」と責められるに決まっている。
 「何とかします」
 「イノウーくんが何とかしてくれることはわかっています」木名瀬さんは優しい声で言った。「一人に作業を集中させて申し訳ないですね」
 「仕事ですから」
 「明日は一日、家にいるので」木名瀬さんは最後に言った。「何かあれば呼んでください」
 通話を終えた後、ぼくは相談した仕様を追加して、ビジネスロジックの構成を考えた。ようやく一通りの目処がついたのは、深夜2 時過ぎだった。

 ◇ ◇ ◇ ◇ ◇

 総務課のシノッチと、IT システム管理課の湊くんがやるべきことをやってくれたおかげで、今朝の9 時過ぎにモニタ類が届いた。気を利かせた湊くんが、電源タップや各種ケーブルを同梱してくれていたので、セッティングはスムーズに進み、10 時前には、無事にマルチモニタ環境で社内にあるPC にリモート接続することができた。マリも同じ環境が整ったことを確認すると、ヘッドセットを着けたまま、実装作業を開始した。
 この椅子が長時間のプログラミングワークには向かない、と気付いたのは、12 時前にマリとビデオ通話をしているときだった。コードに集中しているときには気にならなかったが、意識を人間に切り替えたとたん、足の痛みに気付いたのだ。
 ぼくはプログラミングに熱中すると、どちらかの足を椅子の上に折り曲げる半あぐらの態勢になっていることが多い。会社のオフィスチェアは、座面のクッションが効いているので気にならないが、固い木製の椅子の上でこれをやると、血行が妨げられるらしい。ずっと折り曲げていた左足が痺れたように感覚がない。
 「ダメ元で、ちょっといい椅子も頼んでみればよかった」ぼくは足をマッサージしながらマリに言った。「最優先業務なんだから、エルゴヒューマンの高性能チェアでも通ったかもしれなかったな」
 マリはクスクス笑った。
 「大丈夫っすか? そりゃ木の椅子じゃ痛いでしょうねえ」
 「かさ......」ぼくは昨日の約束を思い出して言い直した。「マリちゃんは、どんな椅子?」
 「あたしは椅子じゃなくて、バランスボールですよ」
 マリはノートPC を傾けて、カメラのレンズを下方に向けた。オレンジ色のバランスボールの上に座っているマリの下半身が映った。自宅にいる気安さからか、ショートパンツ姿だ。無防備な白い太腿がウィンドウ全体にアップになる。ぼくは何とコメントしていいのか迷い、無難な質問を発した。
 「えーと、それ、疲れないの?」
 「働く女性の足は常に緊張しているべし、ってココ・シャネルさんも言ったそうっすよ。それを実践してるんです」
 カメラの位置が元に戻った。ぼくは少しホッとしながら話題を変えた。
 「あと、キーボードだなあ」ぼくはノートPC のキーボードを見た。「贅沢は言えないんだけど」
 前職のサードアイにはユニークな制度があった。キーボード補助金制度だ。弘法筆を選ばず、と言うが、いい道具があるに越したことはない、という東海林さんの発案でスタートしたらしい。新入社員が自分の好みのキーボードを決められるのだ。社内には数種類のいわゆる高級キーボードを使っているユーザがいて、不在時などに試すことが許されていた。次の賞与までを猶予期間として、自分に合ったキーボードが決まったら、15,000 円を上限としたキーボード補助金が賞与に加算されて支給される。
 ぼくは東海林さんが使っていたREALFORCE に惚れ込んでしまい、迷うことなく同じものを購入した。非常に快適なのだが、困るのは別のキーボードを使わなければならなくなったときに、作業効率が大幅に落ちることだ。
 「へえ」マリは感心したように言った。「キーボードっすか。気にしたこともなかったなあ」
 「ノートPC の薄いキーはどうもね」
 「あたしなんかは、そっちの方が多いっすからね」
 そのときインターホンがチャイムを鳴らした。
 「あれ、誰か来た」
 「彼女っすか?」
 「そんなのはいないよ。ちょっと切るね」
 ぼくは、マリに断ってビデオ通話を切ると玄関に向かいドアを開けた。宅急便の制服を着たマスク姿の男性が、細長い段ボール箱を抱えて立っている。何か注文したっけな、と不思議に思いながら、認め印を押して受け取った。ドアを閉じ、伝票を見たぼくは、あまりにも意外な送り主に目を見張った。サードアイ株式会社からだ。箱には精密機器のシールが貼ってある。
 箱を開けたぼくは、不思議な符合に驚くことになった。丁寧に梱包されていたのは、サードアイでぼくが使っていたREALFORCE のキーボードだった。同梱されていたプリントアウトには「イノウーの育てたキーボードを送ります。大事にしてやってください」と印刷されていた。
 早速、ノートPC に差し込むと、命が吹き込まれたようにブルーのLED が点灯した。ぼくはEclipse のエディタで入力途中だったコードの続きを叩いた。長い間会っていないのに、顔を合わせると自然と軽口を言い合える友人のような心地よさが指先に蘇った。
 後で忘れずにお礼のメールを送らなければ、と思いつつ、コーディングを再開した。たちまちコードの世界に没頭したぼくが、マリとの通話途中だったことを思い出したのは1 時間後だった。

 (続)

 この物語はフィクションです。実在する団体名、個人とは一切関係ありません。また、特定の技術や製品の優位性などを主張するものではありません。

Comment(22)

コメント

匿名

えぇ会社やで…

匿名

イノウー君にも春が来そうですね〜

匿名

本当に彼女来た感。これで勝つる。

サム

リア充爆発しろ!

ガウディ

イノウー、フラグ折るなよ!
名前で呼ばせるなんて嫌いなわけがない
そして東海林さん…相変わらずかっけぇっす

匿名

サードアイ素晴らしい会社やで

匿名

トラックボーラーとしてはキーボードだけではなく、操作デバイス補助金にしてほしかったw

匿名

無防備な白い太腿…イノウーけしからんww

キーボード補助制度いいですねー。話題にはなったことはあるものの実現せず
トラックボールは製品が少なくなりすぎて…今のが壊れたらどうしよう

じぇいく

同梱されていたプリントアウトで涙出そうになった。
ずっとテレワークでちょっと人恋しいのかな、俺。

匿名

キーボードの話めちゃくちゃ共感出来る。
うちも会社支給はノートPCだけど、
コロナ騒ぎでテレワーク移行してからプライベートPCとキーボード使えるので
出社するよりも正直生産性は上がった。

h1r0

イノウー、その場所かわってくれ!

やっぱり技術を教える/教わるには対面の方が効率的、という名目でどちらかの部屋に転がり込む、と。

匿名

笠掛さん、イノウーを狙ってる気がする。
東海林さんカッケー。同封している手紙の内容もお茶目さ具合も素敵。

ななし~

色々と素敵なお話の回...(^^)

「斉木室長にメールで送信し、〇で申し込み手続きを進めてくれるように」
 →〇の部分が抜けているような?

リーベルG

ななし~さん、ありがとうございます。
たぶん「Teamsで」としていたのを消したとき、不完全だったようです。

育野

同僚の名前呼び,笠掛さんからすれば仲間なんだしカジュアルにという感覚なのか「イノウー」呼びしてるのでお互い様という感じなのか.
ただ,性別によらず抵抗を感じる方の人間からすると当面いちいち意識しなきゃならないのが厄介な感じ.
しかし木無瀬さんには「イノウー」呼びを要請していたのに,他人を名前呼びするのは難しいというのはちょっと興味深い.
上下か対等かという立場の問題なのか?あだな(愛称)だったら大丈夫だったのだろうか?
最後に,「二人だけの時限定」というのはかえってアレな気が.オンラインの打ち合わせ中に木無瀬さんが入ってきたらどうする/なるんだろう,とか想像しちゃいます(軽いラブコメ脳).
PS. なぜこのベストタイミングで前職のサードアイから「プレゼント」が?SNSで愚痴でもこぼしてたのでしょうか.

匿名

イノウーのUSBを笠掛さんのポートに【アーン】する展開になる訳ですね。

匿名

ウルトラスーパーバズーカ

匿名

「本人がいいって言ってるだから、いいじゃないすか。あたしだって、イノウーさんって呼んでるんだし」

普通に考えると「言ってる ’ん' だから」だけど崩した表現であるっちゃあるのでキャラ設定も相まって仕様か抜けか分からない・・・。

リーベルG

匿名さん、どうも。
抜けでした。

ななし

歳をとると涙腺が。リーベルGさん、泣かすのうまい。岡田斗司夫の演出論的に勘所を押さえてると思う。
今回の場合で言えば、逆境?下での支援。イノウーさんにとって逆境かどうかは微妙だけとね。
イノウーさん、料理に興味ないって言うけど、それだけ段取りできたら料理も上手いと思うんだけどなー。もったいない。

匿名

サードアイ男前すぎる

コメントを投稿する