いつもコマンド名忘れて手でやってたけどいい加減辞める。

% brew install ssh-copy-id
% ssh-copy-id root@198.199.104.49
/usr/local/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/local/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@198.199.104.49's password: 

Number of key(s) added:        1

Now try logging into the machine, with:   "ssh 'root@198.199.104.49'"
and check to make sure that only the key(s) you wanted were added.

% ssh root@198.199.104.49
Linux fjord 3.2.0-4-amd64 #1 SMP Debian 3.2.41-2+deb7u2 x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Mon Jul 22 09:15:47 2013 from 36-2-206-69.tokyo.ap.gmo-isp.jp
root@fjord:~#

Yay!

kinesisでC-zがあまりに押しにくいのでscreenのキーをzからtに変えてみた。

それまでは@hrysdのtを

「ないわー、tとかないわー」

などと言っていましたが、変えてみた結果。

m(_ _)m 大変申し訳なく・・・

非常に快適です。tパねー。

考えてみると20才から職業プログラマーとして働き始めて今年で14年目になります。viとgrepは10年使えたし、今後10年も使えるとおもいます。screenはどうかな?

何がLinuxデスクトップを殺したか(What Killed the Linux Desktop 日本語訳)

要約すると、(a) 第一の要因:物事があまりに早く変化し、オープンソースも独占ソフトウェアも同じように壊れる。(b) Linux ディストリビューション間の非互換性。

これがデスクトップ分野で Linux をターゲットとしようとするサードパーティの開発者のエコシステムを殺した。一度は挑戦して、「トップ」ディストロや寛容な人なら「トップ3」ディストロをサポートするのに最善を尽くすだろう。それで知ることになるのは、6ヵ月後にはそのソフトウェアがもう動かないということだけ。

何か覚えのある感覚。僕(ら)はサーバー用OSとしてDebianを選ぶのにも同じような考えをしているなと思いました。

Linuxはサーバー分野では成功して、沢山のサードパーティー開発者(僕も)に使われている。サーバー分野でサードパーティー開発者が作るプロプライエタリなソフトといえばWebアプリだ。サーバー分野では上記の様な問題があまり無いからだ。

僕らにとってVistaがコケたことに対応する出来事はRedhatがフリー版の提供を辞めた事だった。事実上の標準だったRedhatが使えなくなるというのでみんなパニックになった。Fedoraに行った人は暫くして立ち上がったCentOSを使い始めた。または僕も含め、多くの人がそれを機会にDebianに移った。確かSergeが出るちょっと前ぐらいだったように記憶しているけど、プロプライエタリなWebアプリを作るサードパーティー開発者(僕だ)にとってDebianは楽園だった。安定版は一度セットアップすれば殆ど手がかからなかったし、APIの変更で自分たちのアプリにも変更が必要ということはまず無かった。OSのメジャーアップデートは再起動無しに出来た。

2012年の現在でも楽園は健在だ。現在の安定版Squeezeはやはり安定していて、丁度昨日も一つセットアップしてきたところだ。レガシーのPHPアプリケーションをSqueezeに持ってきたところ、すっかり動作した。Debian万歳。

サーバー用途でもGUIを重視する必要があるWindowsやMac OS Xに比べて、GUIを切り捨ててサーバー用途の安定性を重視した為、比較的少ない対象に開発リソースを集中できていることがその原因だろう。その代償としてのGUI周りの不安定さならば僕は受け入れてしまうだろう・・・。

どうしても先生という感じがしてしまうんだけど、jonesforthのRichard WM Jones先生が作ってるcron replacement。

whenjobs - a simple and powerful cron replacement

Two key advantages over cron are a simpler syntax for writing rules and a powerful dependency system that lets one job depend on variables set when other jobs run (allowing, for example, one job to run only when another job has finished successfully).

every 10 minutes :
     <<
       # Get the current load average.
       load=`awk '{print $1}' /proc/loadavg`
       whenjobs --set --type float load=$load
     >>

こんな感じで書けるのでシンプルでパワフルとのこと。

それはそうと、先生はRedhatの社員なんですね。whenjobsもRedhatのライセンスなので仕事の産物でしょうか。殆どがOCaml、Cちょっとって感じで書かれてます。

怖話ではさくらVPS512を使ってます。性能的にはまだ問題無いんだけど、HDD容量が20GBとちと不安。先日もproduction.logが1.7GBになってたのでちゃんとローテートする。

$ cat /etc/logrotate.d/kowabana 
/var/www/kowabana/shared/log/*.log {
  weekly
  missingok
  rotate 24
  dateext
  compress
  delaycompress

  lastaction
    pid=/var/www/kowabana/shared/pids/unicorn.pid
    test -s $pid && kill -USR1 "$(cat $pid)"
  endscript
}

newrelicのログとかunicornのログとかも一辺にローテートされるから楽でいいですね。-dをつければdry run。-fで強制実行。

sudo logrotate -df /etc/logrotate.d/kowabana

後は一日14MBぐらいずつ増えるDBのバックアップファイルを何とかしなきゃ。

Terminal — zsh — 80×24

$ touch ~/.hushlogin

Terminal — zsh — 80×24

sudo するときに sbin にパスを設定する方法 | Carpe Diem

僕はDebian派です。CentOSは嫌い・・・というかCentOSが俺のこと嫌いなんじゃないかと思っていた原因の一つがコレ。

オフィスにn0tsさんが来てたので、せっかくなので日ごろ気になってたアレコレを聞いてみたらスッキリした解決方法を教えてくれました。

「visudoは構文チェック機能のために存在する」こととか。