### POSIX原理主義総会 というcgiをシェルスクリプトで書いてみんなで遊ぼうと思っておりました。 アクセス数が1万に達すると小鳥男に「目標達成」と言わせ、 危険シェル芸を起動してWebサーバを落す。というのがPOSIX原理主義総会であります。 ピニャータのイメージでございます。http://pinatakyoukai.com/page/pinata ところがこのcgiで書き書きし倒す危険シェル芸をやり倒していたら、ソフトウエアレイドがへこたれてしまい、 更にはSSDまで壊れる。という予想外の事態となり当該Webサーバは現在修理中です。 まさか危険シェル芸でSSDが壊れるとは思いませんが、この文章を公開しているWebサーバは医大用ですし、 壊したサーバはこのサーバのホットスタンバイなので、生来アホの私もここでの狼藉はしかねます。※追記 だいたい自分で修理もできないくせに危険シェル芸とかすんじゃねえよ!とゆきちゃん(インフラ担当の弟)に怒られそうですが、 うちの犬もひとりで階段を降りられないくせにジャカジャカのぼって私の枕の上にうんこをします。 飼い主は犬に似る。ということございます。 まあそんなこんなで代わりに雑文を書くことにいたしました。 この雑文にはまちがいが多々あると確信しておりますので、あらかじめ謝罪させて頂きます。 まことに申し訳ございませんでした。 ### POSIX原理主義が必要な場 POSIX原理主義が必要なのは公の場であります。 私的な場ではPOSIX原理主義など関係なく、好き勝手に何を使って書いてもいいのです。 しかし公の場なら、他人さまに迷惑をかけない配慮は自分のために必要です。 「さ〜愉快に遊べる楽しいシェルスクリプトが完成しました。みんなで楽しんでね!」 あなたはこのスクリプトをど〜んと公開しました。 ところがあちこちから「うごきませんけど」という困惑の声があがったらどうしましょう? 「あ〜シェルって環境依存がきついから仕方ないかも。自分でなんとかしてね」 そう答えますか? そう答えると「つかえねえシェルスクリプトをばらまきやがって」といわれかねません。 だから、他人さまに迷惑をかけない配慮は自分のために必要だと思うのです。 自分が恥をかかないために、完成品として公開するならどこでも動くシェルスクリプトを書くべきであり、 そのための作法がPOSIX原理主義でございます。 俺はシェルスクリプトを公開しないからPOSIX原理主義なんて関係ない。そのとおりです。 しかし、公だろうが夕焼けだろうがPOSIX原理主義なんて関係ない。というのはおおいに疑問です。 ツイッターは公の場ですから「POSIX原理主義なんて関係ない」というと誤解されます。 スクリプトを公開しないから、POSIX原理主義なんて関係ない。といえばよいのですが、 公開しない。という大切な前提が抜けていると、誤解をされるかなあ〜と思います。 そんなひとはいないと思いますので余計なおせわですね。 失礼いたしました。 ### 安心・安全のPOSIX印 POSIX原理主義で貫かれたシェルスクリプトは本当にどこでも動くので楽しいです。 小鳥男なんかポイっとコピーしただけで動いたし、チートシートもコピペタで使えました。 まず安心なんですよ。シェルショッカー印のスクリプトは心配いらずてまいらず♪てなもんです。 公にされたPOSIX原理主義は、自転車のBAAシールのような安全基準マークだと私は思います。 もしあなたが小粋なシェルスクリプトを書いて公開し、みんなにも使ってもらいたいなと思ったら、 多少面倒でもPOSIX原理主義を用いるべきなのは上で書いたとおりです。 そして多少苦労してPOSIX原理主義を用いたのであれば、 #!/bin/sh #-POSIX : と胸を張って書いてほしいです。そうすれば私は、 grep '^#-POSIX' script.sh && printf "POSIX原理主義\n" grep '^#--POSIX' script.sh && printf "POSIX中心主義\n" てな具合にチェックして使いたいと思います。 もし#-POSIXって書いてあるのに環境によるエラーがでたとしても、決してガタガタいいません。 そういうエラーはたいへんに貴重な知的財産だからです。シェルショッカーさまなら感謝感激するでしょう。 そんなふうにみんなでPOSIX原理主義を精進できれば素敵だなあって思います。 ### うぶんちゅについて。 マイクロソフトのえらい人がWindowsにbashをいれた理由を考えてみました。 やはり、うぶんちゅのせいではないでしょうか。 うぶんちゅユーザが増えれば自然にシェルスクリプトという個人資産が増えます。 ユーザにとっては自分で書いたプログラムほど愛らしいものはありませんので、 それが動く。ということがプラットフォームを選択する第一条件となります。 であれば今までのWindowsはアウトです。ベンダーロックインならぬベンダーロックアウトです。 マイクロソフトのえらい人は「う〜ん。やばくね?」と思ったのではないでしょうか。 それはさておき、今後シェルスクリプトという個人資産が増えることは必至です。 自分の可愛い資産を公開してみんなで共有してほしいと思うユーザは、POSIX原理主義を大切にするべきでしょう。 そうすればみんなが幸せになれると思います。 でもみんながPOSIX原理主義を無視したら………。 不平不満と赤っ恥大会になるおそれがあると思います。 ### POSIX中心主義について。 赤毛のアンをご存知でしょうか。 グリーンゲイブルズのカスバート家に引き取られた想像力豊かな孤児の小娘の物語です。 アンの養父のマシュウはひとのよいおっちゃんで、代々取引しているアベイ銀行を心から信頼し、全財産をアベイ銀行に託しておりました。 くちのわるいリンド夫人から「アベイ銀行ヤベイってさ」といわれてもマシュウは聞く耳をもたず、 「リンドのおしゃべりくそババア」などと思うのです。 ところがある日”アベイ銀行ど〜んと倒産”という新聞記事をみたマシュウは己の心臓をど〜んと止めてしまいます。 残されたマリラやアンは悲しみにくれますが、人生山あり谷あり禍福はあざなえる………で物語は続くのです。 えーと。POSIX中心主義です。 つまりマシュウは全財産をアベイ銀行以外の銀行にも分けておくべきでした。いわゆるリスクヘッジです。 こないだトランプが大統領に決まったとき、金が値を上げました。 政界にトランプというジョーカーが君臨すれば先が読めず、とりあえずインフレ懸念だべ。紙幣を金に換えておくべ。 というお金持ちの思惑の結果ではないかと思いますが、これもリスクヘッジです。 えーと。POSIX中心主義でございます。 つまり、重要ななにかをひとっところに置いてはいけません。という人生哲学がPOSIX中心主義です。 これは人生哲学だけではなく設計哲学でもあると思います。 日航123便の事故は冗長化された飛行機の全油圧系統が尾翼部分で密集していたことが原因ですし、 福島の原発事故は冗長化されたすべての緊急用自家発電機が一箇所それも全部地下にあったことが原因です。 POSIX中心主義は「非POSIXコマンドを使うなら、シングルベンダー(一箇所)ではだめです」と言ってます。 bashはGNUしか提供していない。というのがこの問題の最たる部分かもしれません。 解決方法は、腕のたつプログラマーにcでゼロからbashを書いてもらう。ではないでしょうか。 ちなみに私はHello Worldしか書けません。 ついでだから変数だのforだのをもっと速くしてくださいませ。 仕様は厳格なPOSIX縛りですので腕を見せられるのは速さだけです。 あでも変数が速くなるとみんな変数に頼ってしまい、スクリプトが汚れてバグ発生率が上がるかもしれません。 とにかく非GNUのbash(というかPOSIX縛りのsh)があると安心です。 懸賞金をかけて「素敵なPOSIX縛りのsh大会」をするのも手かとぞんじます。 私はお宝モデルガンを売り払って10万円くらい提供いたします。 以上おわり。 文責:FM横須賀 ※追記 その後ゆきちゃん(インフラ担当の弟)に「修理代は私が払うから」と申し出たところ、 「修理代は医大の教授に請求します。SSDは壊れ方が一気でハデやわ」という返答がありうしろめたいです。 レイドをやったのはアレかもしれませんが、いくらなんでもSSD本体までは………。 可能性は以下の二つかと存じます。 @私がSSDを一撃で破壊する最狂にして最怖にして最強にして最凶の危険シェル芸を発明した。 Aゆきちゃんが非常識極まりない最弟にして最低にして最弱にして最寂のSSDを搭載したマシンを購入していた。壊れたのは単なる偶然。  修理代は120GBのが5千なんぼだそうで安いんだか高いんだか不明。 99.9%Aですが、万が一もあるので再現テストを試みたい誘惑が……。 しかしもし再現した場合、ゆきちゃんに怒られるのか褒められるのかがわかりません。 どっちだろう。