IRC Bouncers(IRC Proxy)あれこれ

ここ最近のIRC環境としてはさくらVPS上でterminal multiplexer(以前はscreen、最近tmux使い始めた)上でirssiを動かし続けていたのだけど、mobircのようなものを使う際にはやはりTiarraのようなIRC Proxyが必要だな、と思い導入してみることにした。
日本語でそれ系の記事を探すとどうしてもTiarraがヒットするけど、海外とかではどうしてるんだろう?とちょっと気になって少し調べたり試したりしてみた。
そもそもこういったソフトウェアは"bouncer"と呼ばれるらしい。
BNC (software) - Wikipedia, the free encyclopedia
で、ここに幾つかSoftwareが紹介されている。

Tiarra

これは上記のリストでは紹介されていない。日本製でマニュアルやソースコードコメントも日本語で書かれていたりするし、海外で使っているヒトは少なそう。複数のネットワークに繋いだりモジュールの追加・再読み込みなどできるのが魅力。ただSSLでの接続をサポートしていなくて、stonestunnelといったものを使ってどうにかしてやる必要がある。
stone を使って tiarra を SSL 化する方法 | tech.kayac.com - KAYAC engineers' blog
stunnel を使って irssi を SSL 化する方法 | tech.kayac.com - KAYAC engineers' blog

Bip IRC Proxy

yumコマンドなどパッケージマネージャからインストールできるのが魅力。ホームページからドキュメント読みに行こうと思ったら腐ってた。だいぶ古いソフトウェアなのかな?ただインストールしたときに/etc/bip.confを参考にすることでそれなりに設定を記述することが出来そうだった。複数ネットワークに接続しようとすると別ユーザとして分けてログインする必要がある。SSLでの接続に対応しているようだったけど自分で試してみた限りでは上手くいかなかった…

psyBNC

これも相当古いものなのかな…?とてもシンプルなかんじで、make menuconfigコマンドからシンプルな設定GUIツールで設定ができる。でもあまり複雑な設定はできなそう…正直あまりよく分からなかった。

ZNC

これは高機能でイケてる気がする。様々なモジュールをロードして利用することができるので拡張性が高いと思う。webadminというモジュールがあってこれを利用することでwebの管理画面から諸設定を行うことができる。複数ネットワークに繋ぐにはやっぱりユーザを別々に登録しなくてはいけなくて、そこはちょっと不便な気がしてしまう。


結局

どれにも振り切れず、結局いまはTiarra(+stoneでssl接続)を使っている。もう一回ZNCにチャレンジしてみようかなぁ…まだまだIRC素人で何がなんだか分からない。むずい。

weechatを使い始めている。

折角IRCの環境をあれこれ弄っているのでclientも乗り換えてる。

と指摘いただくまで全然知らなかった、weechat。
WeeChat, the extensible chat client
テキストベースIRCクライアントweechatのススメ - Dマイナー志向
とりあえず入れて使ってみた。irssiに慣れていればそれほど大きな違いは感じない。
tmux上で動かしていると何か表示がおかしくなってしまったので

$ TERM=screen-256color weechat-curses

と起動している。デフォルトで色んな色が付いたりしててスゴい。

とは言えこんな派手である必要ないしコレじゃ全然メッセージ読めないしむしろ不便なのでsmart_filterでjoin/part/quitは無視するように。

/filter add irc_smart * irc_smart_filter *

他にも色々設定いじることができるみたいだけどドキュメント見てみたら設定値多すぎてドン引きしたので気になったところから変えていくつもり。
WeeChat user’s guide

「Emacs実践入門」が面白い!

縁あってid:tomoyaさんから献本をいただいてしまいまして、一足先に読ませていただいております。ありがとうございます。

Emacs実践入門 ?思考を直感的にコード化し、開発を加速する (WEB+DB PRESS plus)

Emacs実践入門 ?思考を直感的にコード化し、開発を加速する (WEB+DB PRESS plus)

tomoyaさん、Emacsを使いはじめてまだ4年しか経っていないと知って驚きました。自分と同じくらいの経験…なのにこんなによく知っていてしっかり使いこなしていている。そしてその知識を余すところなくこの本で伝えてくれている、と感じました。
一応自分も昨年末から今年にかけてEmacs LispテクニックバイブルEmacsテクニックバイブル ?作業効率をカイゼンする200の技?を読みつつ設定を見直したり勉強して色々と知識を身につけ、人並みくらいには使えるようになっていたつもりだったのですが、今回この「実践入門」を読んでまだまだ知らなかったことがたくさんあったことを思い知らされました。インストールなどの基本の部分から丁寧に説明しつつも、様々な豆知識やtomoyaさんらしいコラムが盛り込まれていたりして、純粋に読んでいて楽しいです。
なので、ある程度の中級者の方でも自分の知っている事項を確認しながら楽しんで読めると思いますし、初級者の方は一から始めても楽しく学習していける素晴らしい内容だと思います。
それなりに枯れているとはいえ、なんだかんだでバージョンアップで色々と機能が追加されたり昔の作法が通用しなくなっていたりと、webで情報を集めているだけでは正しい使いこなし方をマスターできない場合もある。そういった部分を本書がしっかり補ってくれているように感じました。
お世辞とかじゃなく本当に良い内容の本だと思ったので、Emacs使いの方、Emacsに興味を持っている方は是非とも読んでみて欲しいと思いました。
3月7日 明日発売! 楽しみですね!!


猛烈宇宙交響曲・第七楽章「無限の愛」 ← ついでにコチラも明日発売です!

hostごとにstatus lineの色を変える・改

hostごとにstatus lineの色を変える - すぎゃーんメモを書いたところ、@さんから

と教えていただいたので、真似してみることにした。ありがとうございます!

if [ "$TMUX" != "" ]; then
    tmux set-option status-bg colour$(($(echo -n $(whoami)@$(hostname) | sum | cut -f1 -d' ') % 8 + 8)) | cat > /dev/null
fi

sumコマンドで16ビットチェックサムが得られる! 便利! hostname(+ユーザ名)を標準入力で渡すようにしてsumを計算すれば、一意に決まる値が得られる。これをcutで切り抜いて$(())を使って剰余計算した値を使ってカラーコード指定。こうすればawkperlも使わずに環境によって一意に色を決められる!


ちなみにtmuxの設定ファイルをOSごとに切り分ける方法はあまり良いのが思い浮かばなくて、デフォルトシェルの.rcファイルで

alias tmux='tmux -f $HOME/.tmux.$(uname).conf'

としておいて、.tmux.Darwin.conf, .tmux.Linux.confでそれぞれ

source-file $HOME/.tmux.common.conf

を呼ぶようにしておき、そこで共通の設定を書くようにしてみている。
GitHub - sugyan/dotfiles at 02384b27c92be8af10b69fb7d0f8267aa153e68d