ZZに見るviの無比性
ZZの話 をするたび、多くの人が「なぜ自分はZZを使わないか」をひどく熱心に語ってくれる。まあ人にはそれぞれ事情があるのだろうから、別に使わないでいるのは自由だと思うし、なんならEmacsを使っていただければよいのではないかと思うのだが……。最新のエピソードは「右手でシフトキーを押せないので大文字のZが押しづらい」という話だった。ちなみに自分は左手をちょっとずらして、左手の小指でシフト、薬指でZを押している。viを使うにあたってホームポジションがずれることに抵抗はない。さもないとhjklでカーソル移動なんてできっこないのだ。
さてまつもとりーさんのブログの追記や前後のTweetを見て、自分なりに「なぜ人はZZを使わないのか」を考えてみた。その結果ひとつの仮説が浮かび上がってきた。それはZZがviを終了させるにあたって、他のエディタにはない特徴があるということだ。
[続きを読む]viのZZのこと
実をいうとZZのことは書かないつもりだったのだが、成り行きで書いた方がいい雰囲気になってきたので書くことにした。viに関する記事は2週間ぐらいのうちに別途公開予定なので、本論はそちらで語りたい。今回は完全に脱線だ。
最近の若い人(まあ自分はそう言う権利はあると思う)は、だいたいviを終了するのに :wq を使う。だがこれには問題がある。ファイルをtouchしてしまうのだ。自分にとっては不用意なtouchは不要なmakeなどにつながるので困るのではないかと思うのだが、近年のコードの管理手法や、必ずしもコンパイルしなければならない訳ではない開発環境や、コンパイルに一晩かかるわけではない強力なマシンの普及などによって、touchされても問題ないという向きなのかなと考えるようになった。が、なんだかよくよく話を聞いてみると「ZZなんて知らない、だいたい:wqと:qと:q!を習うので使い分けている」などというのだ。それはまったく困った話だ。
実際、巷にあふれている入門書や、繰り返し掲載される雑誌の記事などを見ると、viの終了コマンドとして「保存して終了します」などと称して:wq、「書き込まずに強制終了します」と:q!を紹介して終わり、というようなケースが多い。ZZを紹介しないのだ。そういうわけなので、そんなものがあると知らない人が増える一方なのだ。
[続きを読む]Fluentd/Elasticsearch/Kibanaでsyslogを管理してみる
この記事では、Elasticsearch/Kibanaのver5.xをインストールしている。2019年6月時点での最新版 7.1 をインストールしたい方は Fluentd/Elasticsearch7/Kibana7でsyslogを管理してみる のほうをご覧いただきたい。
rsyslogとjournaldのことの回で、長いことsyslog管理をほったらかしにしていたことを告白したわけだが、これを機にFluentdで集めてKibanaで閲覧する環境を整えてみることにした。というわけでインストール手順と結果についてまとめてみる。
全体の構成はこんな感じだ。
[続きを読む]さくらのクラウドでスタートアップスクリプトを連動・整備する
サーバ作成時の環境整備の手法は数多あるが、個人的には
- クラシックで
- 変化が少なく
- メンテしやすい
方法がいいかな、と思う。そうするとだいたい、バッチをsshで流し込む方法にたどり着く。バッチはエディタで編集するだけなので、変化も少ないしメンテも簡単というわけだ。
だがこの方法は一番最初のセットアップの諸々の作業の自動化が難しい。そこで、最近サーバを作るといえばクラウドの仮想サーバばかりなのだし、この自動化機能のひとつである「スタートアップスクリプト」を活用しようと思う。
スタートアップスクリプトの原理は非常に単純だ。コンパネで書いたbashのスクリプトを、サーバ作成時にディスクに書き込んでしまい、起動時に自動実行するというものだ。スクリプトにはうまい仕掛けを施して、最初の一度目だけ実行したら自分を消してしまうようになっている(残すこともできる)。MS-DOS世代にはautoexec.batを連想させる仕組みだ。サーバ起動時に行う決まりきったコマンドラインやバッチ処理なら、スタートアップスクリプトにコマンドを書き連ねるだけで、大抵の作業は完璧にこなせる。詳しいことはオンラインマニュアルをご覧いただきたい。
スタートアップスクリプトの欠点を強いてあげるとすれば、スクリプトの編集をコンパネに任せざるを得ず、バージョン管理などが難しいことだ。だが実はこれは簡単に改善できる。スタートアップスクリプトを「GitHubからスクリプトを読み込むコード」にしておき、実際に処理したい作業はGitHubでメンテナンスすればよいのだ。というわけで以下に具体的な方法を示そう。
[続きを読む]