yunomuのブログ

趣味のこと

エンジニア的コミュニケーション

前回までのあらすじ

2つ前の記事で「記事書くのに時間がかかるようになって一度ブログやめた」みたいな事を書いていますけど、理由は前回の記事で一目瞭然でしたね。
要するに前回の記事は
「CでB-Treeを実装してGitHubに置きました」
以上終わり。長いんだよ単に。
そしてたぶん今回も長いです。

本題

一般にプログラマというのは対人コミュニケーションが苦手とかいう誤解が蔓延している気がしますけれど、それはそれとして私はしゃべるのもメール書くのも苦手です。だから一日中プログラミングしてたりするんだろって言われても、特に反論の材料は無いですね。単に昼間遊ぶ相手がいないからですけど。

といったところで、面白いネタを思い出した。
職業と思考 - Togetter
「あるある」って思った人は、反省しましょう。特にこれ、"プログラマと話すならプログラムするつもりで話をしたほうが、よほどうまくいきます。"ってのがいいですよね。あるある。そしてごめんなさい、諦めましょうお互いに。

要するにコミュニケーション能力がどうとかじゃなくて、単にプロトコルが違うだけなんですよね。私も技術者と技術の話をする限りにおいては、それほど困ったことはない気がします。
一方で、ライターやってる飲み仲間には「あなたは『例えば』ってほとんど言わないよね。言ってることがわかりません」とか言われたことがありましたけど、物事を抽象化して抽象化したまま扱うというのは、いわゆる理系的というか、プログラマっぽいですよね言われてみれば。で、私はHaskell使い達を見て「そこまで抽象化するとわけわかんねぇ」って言う。
まあそれはいいや。

世間一般の人と対話しようとするとこんなふうに色々問題が起きたりするわけですけど、コンピュータ技術者との対話に特化すれば、自然言語以外のコミュニケーション手段が色々あったりする。

例えば、一番わかりやすいのはソースコードですね。GitHubなんか見てると面白いですし、共同開発してるソースを見ると、それぞれに癖があったり、書いた人が詳しい分野や苦手な分野がわかったり、同一組織内だと誰に教わったかとか誰に影響を受けたかとかがよくわかる。学生の頃、後輩が書いたコードが私のと見分けがつかなくて鼻水吹いた覚えがある。

あと、最近は一台のサーバにみんなでログインして使うって事があまり無いので少ないかもしれませんけど、先輩のホームディレクトリから設定ファイルをパクったりとか。勝手に~homu/binをPATHに追加したりとか。
私も先輩のホームを見てzshやscreenの存在を知り、設定ファイルをコピってカスタマイズして使ってました。その先輩も実は先生(@nom4476)の設定を元にして作っていたらしく、ある時先生に話を聞いてみると、昔はそういうコミュニケーションが当たり前だったとか、なんかそんな面白い話を教えてもらった思い出があります。screenのescapeキー設定なんかはモロに影響されますよね。
というのを友人のhon_yaさんがGitHubに設定ファイルを保存しているのを見て思い出した。
hon-ya/setting - GitHub

で、私も真似してみた。
yunomu/dotfiles - GitHub
調べてみるとGitHubで管理してる人結構いらっしゃるみたいですね。
私のは最近いい加減Macのターミナル環境を真面目に考えようと思い始めて、でも学生時代に使ってたスクリプト類は学校に置いてきてしまったもので、どうしたもんかと思ってたんですが、まあまた一から作ってみます。まだショボいですけど、そのうちもう少し成長すると思います。

あとは、他人が作ったスクリプトを勝手に使う時、当然ドキュメントなんか無いもので、historyから探ったりする。これもある意味会話だなぁと最近仕事関連でよくやるので思うんですけど、そういや昔共用のサーバのセットアップを頼まれた時にデフォルトのhistory保存数を増やすとかやった気が……。

そんな時にも活躍するhistoryですけど、標準のhistoryって行番号が入ってて、なぜかそれを消すオプションとかは無いっぽくて、historyからそのままシェルスクリプト作ろうとかする時に若干面倒なんですよね。
ということで、行番号を消すコマンドを書いた。

history | sed -re "s/^\s+[0-9]+\*\s+//"

特になんの面白みもなかった。
ところが、環境によってはsedの-rオプションが存在しないらしい。っていうかMacで無かった。
ので、代わりにこれを使ってる。

history | sed "s/ *[0-9]* *//"

この方が楽だった。なんだよrオプションて。

まとめ

コミュニケーション

  • 会話以外にもソースとか設定ファイルとか、色々あるよね。

GitHubで設定ファイルを管理しはじめました

history便利

  • ノウハウはhistoryから盗めるかもよ
  • 行番号を消すにはこうすればいいかも
history | sed "s/ *[0-9]* *//"

以上おわり。