(IT) サマータイムは勘弁してくれ

サマータイムがなんでダメなのか、システム屋視点で。

「朝7時に起きてるオレが5時に起きるわけだろ」とか「18時に仕事終わるはずが16時に終わるわけだろ」的な標準時とサマータイムの差が嫌だみたいな感想はどうでもいい。まじでどうでもいい。2日目以降は通常の24時間サイクルなんだから、問題ないことに気がつけよと思う。太陽の傾きが健康に及ぼす被害があるかもしれないけど、そんなもん気にしなくていいって、前例はたくさんあると思うよ(未検証)。
でもね、システム屋視点で何がいやか書いておく。いや、ほら、検証に何年もかかるみたいなざっくりした批判がIT屋の総意みたいに取られても面白くないんでね。
要するに「できない」んじゃなくて、最初から(設計段階から)言っといてくれれば、ちゃんと動くように作れるのに、短い期間で後から対応するのが不可能なだけ。

2020年の5月のある日、日本にサマータイムが導入されたとしましょう。
5月下旬のある日、未明の「一般生活に影響がないと思われる早朝」のタイミングで導入されるとする。
深夜1時59分59秒の次に4時00分00秒が来る、と仮定しましょうか。
そうするとこの日は2時台と3時台の時刻が存在しないわけですよ。
ということは、まず、毎晩2時台とか3時台に取得することにしてるバックアップを実施するトリガーがないわけです。
サマータイムが導入されて何か起こるかわからない日のデータのバックアップ取れないことになるわけ。
その日だけ早めにバックアップすればいい?いやだから、1時台までにいろんな処理が終わったあとで2時台にバックアップしてるわけで、バックアップだけ早い時間にやればいいわけではないのはわかりますよね?データの更新終わってなくて前日のバックアップと同じデータのバックアップが取れてしまっても意味ないっしょ?全部の処理をちょっとずつ前倒しするの?その動作確認する?まじで?そこの再設計と検証が大変なんだよって話だよ。単一のシステムではなく、いろんなシステムが処理をして、翌朝の決済とか配送の処理してるのに、2時間たりなかったら、処理終わらないかもじゃん!誰が責任取ってくれんのよ、これ。

いや、神業的処理でサマータイム導入時を乗り切った俺たちの次の関門はサマータイムをやめる日。
深夜3時59分59秒の次に2時00分00秒が来るのかよ。その日2回めの2時台と3時台かよ。ふつーにバッチまわったら、重複処理になるだろう。お客様へ同じ商品2個届くよ。在庫足りなくなって自動発注かかるよ。それ、返品来るよね。おいー、まじかーってなるでしょ。1回めの3時台にパスワード変更したら、2回目の2時台はそのパスワードでログインできるべき?1回目の3時台のお客さんの方が2回めの2時台のお客さんの方が先だってこと、どうやってシステムに理解させればいいんだろう?これを起こさないように手配して実装してテストすんのか。あ、でも2回めの2時代の注文は全部ナシにしてはいかんわけだしうおー、気が狂いそうだ。
#あ、その2時間はサービス止めちゃえばいいのか(悪魔のささやき)。

∴サマータイム導入に反対です

(クルマ) 小傷修理

今のクルマを共有して使っている人がクルマを傷めた。
とわいえ、外側の傷だけなので、自分で補修することに。

まずは外れた部品を固定するパッキン部品をトヨタ部品共販で注文。
在庫がなくて数日納期がかかるとのこで、週末の朝取りに行く。

一つのパネルを固定するための部品が上下で微妙に違う。

トヨタ部品共販横浜店さんでは、部品番号がわかる図もコピーして
渡してくれるという徹底したサービスぶり。一般客にも手厚くてありがたい。
まあ部番が違うが、それぞれが他の場所で共通に使われているので、
すべてがユニークというわけではないのだが。

で、問題のパネルの傷はこんな感じ。

低い位置のブロックの角でガーっと削っている。
ボディにもダメージがあるようだが、ここはもうあきらめる。

一筋削られているので、周りと高さを合わせるために180番の
ヤスリで周囲と平準化する。
そのあと、320番で滑らかに仕上げてざっとマスキング。

シリコンオフで脱脂してから、シュッとスプレー。
ぼかしスプレーを吹きつつ、3回スプレー。

ここまで仕上げて来週コンパウンドかけて仕上げる予定。

(お父さん) ハラハラ

先日、会社でハラスメント研修があったりして。

セクハラ、パワハラまではなんとか我慢して聞いてたけど、
パタハラ、カラハラあたりから、なんだ、その略語ってってなって、
完全にリャクハラ(略語ハラスメント)。
ちなみにパタハラは「パタにティ・ハラスメント」(育児する男性に対する
いやがらせ)と「カラオケ・ハラスメント」(カラオケが苦手な人を
無理やりカラオケにつれていくとか執拗に誘うとか)だそうだ。
略さなくてもわからないよう。

まずは略すのをやめよう。
タイマーズの「サマータイム・ブルース」で三浦友和さんも叫んでおられる。
なんでも省略するのはニッポンの悪いクセだ。

そして、最近では50歳オーバーの「おっさん」へのバッシング記事も
たくさんあるなか、オレは「ハラハラ」を主張しようと思う。
「ハラスメント・ハラスメント」だ。
なんでもかんでもすぐに「ハラスメントだ!」といっておっさんを
糾弾するような事のことだ。
おっさんが嫌だなあ、と思ったら十分ハラスメントだ。

みんな、ハラハラに気をつけよう。
そのうちハラハラハラって言われるようになるのかしら。

(IT) viエディター

1980年代でも、CPUをシェアして使うという考え方は一般的だった。
汎用機もUNIXも一台も「ホスト」にダム端末と言われていたグリーン
一色のディスプレイをもつ端末がたくさん繋がれており、操作する人は
時々まわってくるCPUの順番で処理を許された。
こんなやつ。

CPUは文字の入力、プログラムの実行、コンパイルなど様々な処理に
対して「時々まわってくるもの」だった。ヒナがたくさんいる親鳥が
一斉に口を開けてピーピー言ってるヒナに順番に餌を与えるように。

オレの最初の端末もSun4-330にRS232cで接続されたtty端末だった。
いまでは/dev/tty0とかは、マルチウインドウの1枚のウインドウに割当
られているが、当時はダム端末の一台に割り当てられていた。
config.sysやautoexec.betを書いていた世代だったので、.cshrcや.loginを
書くことには抵抗がなかった。
当然、.cshrcも.loginもviで編集せざるを得なかったわけである。

だから、カーソルを移動するだけでCPUを使うのは、時間の無駄だった。
スクリーンは10行ほどスクロールすると動きを止め、数秒後にまたスクロール
した(感覚には個人差があります)。
viはそんな時代に開発されているので、いかにすくないキータッチで目的の
編集ができるかを主眼に開発されていると行っても過言ではなかった。
「カーソルを行末へ移動する」「カーソルを最終行へ移動する」などは
「$」と「G」に割当られているし、10行ヤンク(コピー)してペーストも
「10yy」と「p」で実現される。文字列の検索も置換も秀逸だ。

ながながと書いたのは、若い人も是非viを修得して欲しいということ。
サーバー管理でよくあることは、とあるプロセスがメモリを食いつぶして
今にも息絶えそうなサーバーにログインさえできれば、問題のプロセスの
設定ファイルを書き直して、プロセスの再起動をする、というようなことが
できる。設定ファイルをftpで落としてきてローカルのメモ帳で直して再度
アップロードするなんてするなら、ftpdも動いてないといけないし、ポート
も開いてないかもしれない。

以前から採用の面接の時、「エディターはviです」という子は贔屓するように
しているのはナイショだ。

(IT) Apple関連ドメインのメールがblockされたら

しばらく前に個人で管理しているメールサーバーで発生してたんだけど、今日は会社のメールサーバーでも発生してたので、blogにまとめておく。

Apple社のサービスで使ってるドメイン(me.comとかicloud.com)へのメールが届いてないんだけど、と相談されたら大抵これ、という解決策。
Apple社が自社サービスのメールサーバーの受信フィルタで使っている「proofpoint」というサービスがあって、こいつがある日、急に送信元のIPアドレスに従ってメールをブロックする。その基準はわからない。
ブロックされたらそのIPアドレスのサーバーを使っているドメインからme.comとかicloud.com宛のメールが届かなくなる。
/var/mail/maillog に対応策がログとして残っているので、それを実施。
logの内容はこんな;

Apr 11 06:14:46 smtp_server_name postfix/smtp[ID]: B7E93A****: to=<hogehoge@icloud.com>, relay=mx3.mail.icloud.com[17.172.34.64]:25, delay=2, delays=0.12/0.01/1.3/0.55, dsn=5.7.0, status=bounced (host mx3.mail.icloud.com[17.172.34.64] said: 550 5.7.0 Blocked – see https://support.proofpoint.com/dnsbl-lookup.cgi?ip=IP_ADDRESS (in reply to MAIL FROM command))

(smtp_server_name=自分のSMTPサーバーの名前、 IP_ADDRESS=自分のSMTPサーバーのグローバルIPアドレス)

要は「ブロックしたからなんとかしたけりゃここのサイトにおいで」と。
ログにある https://support.proofpoint.com/dnsbl-lookup.cgi?ip= へ行って自分のSMTPサーバーのグローバルIPアドレスを入力し、「ロボットではありません」にチェックを入れて「LOOKUP IP」ボタンを押す。

ブロックされてない場合はこんなだが、

ブロックされてた場合はこんな。

なので、名前とアドレスと(あれば)会社名を入力し、「ブロック解除お願いします」と日本語でもいいので、入力の上、「SUBMIT」ボタンを押す。審査中はこんな画面だけど、1時間前後でブロックが解除され、最初のブロックされてない画面になる。

一度解除されても、またブロックされているケースもあるので、注意が必要。