日本のIT業界で過ごしていると、とても評価が低いのが身に沁みる。
ちょっとしたIT部門のリーダーなら、USでは平気で年俸 1,000万を超える。
有名企業の CIO ともなれば、そりゃ大変な額だし、引き抜きもすごい。
セリエAの移籍金かい!なぐらい)

日本ではIT部門は、コストセンター(経費扱い)
欧米ではプロフィットセンター(利益を産む扱い)

まぁ、事務方の扱いです。コストです。
なので、日本はいまだにFAXを使っているし、コストは悪なんだよね。
事務方が悪いとう意味ではなくて、コストなんです。お荷物なんです。

だから、いかに削減するかに目がいっている。
だから、イノベーションは起きないし、みんな疲弊する。

単位変換

インターネットが普及して、AmazonGoogle といった GAFA が席巻。
気づくと、昔使っていたコマンドは誰も使っていない。
正に失われた技術。今回は、 units(1) です。

例えば、cm と inch の変換をコマンドでやると、以下のようになる。

$ units 1cm inch
Currency exchange rates from 2012-10-24 
	* 0.39370079
	/ 2.54

これは、1 cm は 0.39 inch 、逆に 1 inch は 2.54 cm を表す。
双方向の結果を表示されるので、親切なような分かりにくいような。
枝雀師匠の落語にある
「今日は降るよ~な天気じゃない」
な感じ(明日は降る!天気じゃない)と
(明日は降るような天気ではない。晴れでもないけど)

そんなモヤモヤ感をさらに盛り上げるのが 2012年のレートだと?
誰も為替聞いてないけど??

タネ明かしすると、テキストのDBがあって、作成時のレートの事。
/usr/share/units/definitions.units

昔は、Syaku とか Ken, Ri とか追記してたな。

dd ベンチマーク

dd はデータコピーするコマンド。
本当は Carbon Copy の略で、cc と名づけたかったが、 C compiler がすでにあったので、dd になったとの噂。

よくベンチマークで使ったりする。

$ dd if=/dev/random of=/tmp/data bs=1M count=1000
dd: warning: partial read (115 bytes); suggest iflag=fullblock

入力ファイルが /dev/zero の時はワーニングが出ないことに気づいた。
この iflag=fullblock は入力データが 1ブロックに満たない場合、「ブロックがいっぱいになるまで貯蓄する」。
ふむふむ。

で、fullblock オプション付けたら、データ待ちで止まりやがんの。

3分クッキング問題

IT業界(私の周りだけかもしれないけれど)の問題というか、パラドックスのひとつ。

書き手(提供者)は、3分でレシピを教えてあげると思っている。
読み手(視聴者)は、3分でうまいものが食えると思っている。

よくある料理番組で、講師の「この状態で一晩冷蔵庫で寝かせます」
に対して、腹を空かした視聴者から、「ふざけるな!」

という、ありがちなシュチュエーション。
ITエンジニアと、エンドユーザとのミス・コミュニケーションを端的に表した例。

Windows sync

資料作成で、ExcelPowerPoint を使うので久しぶりに Windows PC を使う。
ただファイルの検索やら、ちょっとしたメモ書きなどが多いので、DOS プロンプトを開く。

いろいろ作業が進み、癖で「sync」コマンドを実行してしまう。
Linuxがまだ不安定で、一息つくときに投入していた)
すると、

C:\>sync

Sync v2.2 - Flush cached data to disk.
Copyright (C) 2016 Mark Russinovich
Sysinternals - www.sysinternals.com

Flushing: C

なんか変なツールインストールしたんだろうか?
調べたら、いつものMS手口であった。
Sysinternalsツールをオンラインで使う− @IT

昨夜何時に寝た?

普段はMacBookを使っている。
仕事でOffice、特に Excel を使う必要があるのでASUSの安いWinPCも用意している。

でも、心安らかに過ごすために両PCに VirtualBox インストールしている。
学校のこともあるので、教材のCentOSを稼働させている。
必須じゃないけど、ちょっとしたテキスト処理とかは便利。

以前、1万行ぐらいのCSVをソートや抽出したりすると、Excelがハングする。
仕方なくCSVCentOSに持っていって、コマンドで処理するとスイスイ行く。
正規表現でデータ抽出するのも、Excelだと面倒臭いが grep なら一発。
そんな状況なので、常時VBOXが稼働している。
朝、PCを開けるとVBOXは寝起き状態(スリープから復帰した状態)。
そこで、date コマンドを打つとPCがスリープした時点を示す。
つまり、昨夜PCを閉じた時のままなので、寝床に行った時間がわかる。

[root@cent79 student]# cat syncc
#! /bin/bash
# Sync clock forcibly

if [ `whoami` = "root" ] ;then
	date
	systemctl stop ntpd
	ntpdate ntp.nict.go.jp ntp.jst.mfeed.ad.jp
	systemctl start ntpd
	date
else
	echo "Must be root"
fi

[root@cent79 student]# syncc
2021年  6月 29日 火曜日 19:29:24 JST
30 Jun 05:39:33 ntpdate[3930]: step time server 133.243.238.244 offset 36601.505790 sec
2021年  6月 30日 水曜日 05:39:33 JST

シェルスクリプト =

暇つぶしというか、魔がさしたというか、とても簡単なスクリプトを作った。
ものすごく簡単なニャンコのアスキーアート表示。

f:id:shell-ycos:20210625174715p:plain

後付けて、バックスラッシュが正しく表示できること(たまに ¥ に置き換わってしまうから)、BEEP(Ctl+G)が鳴ることの確認用スクリプトとした。

作るだけ作って、面白い事に気づく。
なんと = で始まるコマンドは、補完機能(綴りの書き始めをタイプしてから(TAB)を押すと続きが出るやつ)が効かない。
ドラえもんの「続きスプレー」的な。

上記のスクリプトを作って(当然動作確認済ですよ)、= の後に(TAB)を押しても反応しない。(TAB)(TAB)
f:id:shell-ycos:20210625175220p:plain

なので、= で始まるファイルは、コマンド補完機能が動作しない模様。
bash のソースを眺めてみると、bashline.c のあたりで補完機能を実装している、
それらしい箇所を見つけるが、

static char **matches = (char **)NULL; 
  :
matches = rl_completion_matches (filename_text, command_word_completion_function);

倒れそうなぐらいポインタの山で、流石に諦める。