keitairc 1.31 & 1.32
Posted by yoosee on Debian at 2007-09-30 22:00 JST1 keitairc 最新版
携帯電話向けの IRC web interface を提供するソフト、keitairc の 1.31 (その後アップデートで1.32) がリリースされた。新しいPOEへの対応、自動再接続機能やポケットはてな経由のURLアクセスなどが実装されている。再接続はこういう風に書けばよかったのか。コメントでリリースを教えて頂いて大変ありがたい。es からだと本格的に IRC で会話したいときは EbIRC を使うけど、ログを見たい場合は keitairc の方が便利だし、w3m から IRC するのにも役に立ったりする。そこまでして IRC したいのかといわれると返す言葉もないが、まぁ中毒みたいなもんなんです。
2 prefix が ! な irc channel
で、! で始まるチャンネルは存在し得るのかという話を書き込んで頂いたけど、rfc1459 には無いものの IRCNet で使われているはずの irc server 2.10 以降には ! で始まるチャネルがある。以下は ChangeLog より抜粋。New features in 2.10.0:と言う具合に、split/collision proof タイプのチャンネルになる。自動的にチャネル名に unique な文字列が付き、特定の mode (特に re-op の +r) が設定されるチャンネルになる。POE のイベントとしては irc_public ではなく irc_msg になるらしい。
* creation of a collision proof type of channels (prefix !).
* opless !channels may be reoped by the server (mode +r).
上記を含めて前回の 1.30 時に個人的に変更した機能は手元の自分が使うものには追従したけど、とりあえず今回は公開しないでおく。
bitlbee の文字化け問題
Posted by yoosee on Debian at 2007-09-29 22:00 JST1 bitlbee は一部変換出来ない文字があると全部化けるのが困る
最近は AIM, Gtalk (+twitter) は全て bitlbee 経由の IRC クライアントで使っているのだが、bitlbee では utf8 のハンドリングで一文字でも変換に失敗するとメッセージ全文が文字化けしてしまう。文字コード変換をしている bitlbee/util.c を見ると、do_iconv(...) 内で iconv() が (size_t) -1 を返したときの事後処理が全くないから、そりゃ化けるだろうという感じではある。特に鬼門かつ頻繁に出るのが "〜" (0x2141) なわけだが、ad-hoc にこれだけでもエスケープするコードを書いて逃げるのがいいか。真っ当に対応するならどうするべきだろう。
2 Pidgin (aka Gaim) での対応
と言う事で Pidgin ではどうしてるんだろうと思ってみてみたら、libpurple/desktopitem.c 内で glib の g_convert(...) を使ってる。で、glib の gconvert.c では iconv() の EILSEQ エラー(入力に無効なマルチバイト文字列がある) の場合はその先の文字列を継続して変換しているっぽい。真面目に自前で書くと結構面倒そうだが、Glib 以外にこの手の iconv wrapper で良いのは無いかな。Google Calc の IRC bridge bot を今更実装
Posted by yoosee on Web at 2007-08-07 22:00 JST1 Google Calc の IRC bridge bot を今更実装
nadoka から、Google に query を投げて結果ページの一部を切り出して、Google Calc の結果がある場合のみ IRC に戻すと言う処理の bot を書いた。思いついてから動くまで45分。計算機能自体よりは通貨レートや度量衡換算が簡単に調べられるのが便利。他に何か IRC に持ち込んだら便利なものはないかな。などと考えるのはもちろん現実逃避です、はい。BitlBee への接続時に自動的に identify を送る
Posted by yoosee on Debian at 2007-06-09 22:00 JST1 Bitlbee の接続時認証を自動化する
Bitlbee は各種 IM を IRC に統合してくれるしごく便利なソフトなのだが、接続のたびに identify password と入れるのが面倒だった。Windows で使っている IRC クライアント Cotton のサーバ設定には接続時コマンドを送る機能があったので、privmsg &bitlbee :identify passwordと設定したら自動的に繋がるようになってますます便利に。
2 Riece でも同じ事をしたいと思ったが
Riece では接続時の処理として :function を定義できるようなのだけど、これは riece-open-server から irc を over ssh tunnel する際などに呼ぶものらしく、接続後にサーバにコマンドを送るという感じの処理ではなさそう。どこかで hook をかませばなんとかなるんだろうけど。bitlbee と irc client の間に nadoka や tiarra のような irc proxy をかませば済む上にログまで取れて一石二鳥な話ではあるのだが、bitlbee 自体の daemon mode がお勧めされていない現状では、実質
BitlBee で AIM や GTalk や Twitter を IRC にまとめる
Posted by yoosee on Debian at 2007-05-13 22:00 JST1 BitlBee - An IRC to other chat networks gateway
Day Tripper の記述を読んで、IM - IRC gateway の BitlBee を導入した。BitlBeeとはインスタントメッセンジャーとIRCをつなぐゲートウェイサーバーです。実際うはうはだった。IM のクライアントを IRC に集約できてかなり便利。もちろん Twitter - IM も BitlBee から使える。IM 周りの対応は Gaim のコードから派生して作りこんだものらしい。
これを使うとIRCクライアント一つでMSNメッセンジャーやGoogle Talkも使えるし、おまけに大ヒット中のTwitterをJabber経由で投稿できるのでウハウハじゃね?nofuture.tv - BitlBeeを使ってXchatでIRCとMSNメッセンジャーとTwitterをひとまとめにする
インストールは上記サイトにある通り、Debian ならば
# aptitude install bitlbeeで完了。標準では 6667 を listen しようとするので、変更するなら dpkg-reconfigure bitlbee とするか、手で /etc/bitlbee/bitlbee.conf と /etc/inetd.conf を編集する。AuthMode は標準で Open (誰でも接続・利用可能) なので、利用形態にあわせて Closed や Registered にしておくのが良いだろう。なお root 権限が無い場合は、付属の bitlbeed.c.gz 使うことで利用できるようだ。要は socket を 開いて常駐し、 bitlbee を kick するだけのプログラムのようだが。
IRC クライアントは Linux では riece と xchat (IRC over SSLを使う用)、Windows では Cotton を使っている。どれも複数サーバ対応で、問題なく接続が出来た。パスワードその他は平文で飛ぶので、インターネット経由で繋ぐ際には ssh tunnel でも使った方が良さそうか。
2 BitlBee の使いかた
使いかたは上記サイトにある通りで、基本的に help と打てば使いかたに関しての色々な情報を得ることが出来る。まずはregister <password>でパスワードを設定する。ここで設定したパスワードは、次回接続時に identify コマンドとともに呼び出すもの。続いて IM のログイン情報を登録。AIM の場合は
account add oscar <account> <password> login.oscar.aol.comと言った感じ。AIM では空白を含むアカウント名を使っているのだが、"〜" で囲んだら問題なくログインできた。登録後は
account listで番号を確認し、
account on 0のように接続する。接続時に inactive な buddy はリストに上がってこない。メッセージの送信は private message にしてもいいし、root window で nick: message と言う具合にしても送れる。問題なく繋がったら忘れずに save しよう。
twitter の更新も問題なく出来たし、twritter からの update もちゃんと表示された。日本語も set charset iso-2022-jp 設定で大丈夫(たぶん裏で utf-8 に変換してるのだろう)。欲をいえば Skype chat にも対応してほしいが、プロトコルが非公開ということもあるし難しいか。
ちなみにこのプログラムは inetd 経由で起動するものなので、非接続時は IM サーバ側からも接続されていない状態になる。IRC proxy は常駐するのが普通なので感覚の違いにちょっと注意した方が良さそう。常駐する Daemon mode もあるようだが、現時点では experimental としてお勧めは出来ないとされている。
また、BitlBee 公開サーバ もあるようだ。もちろん第三者のサーバにIMアカウント情報を預けることになるし、通信も基本平文のままなので利用は慎重に。
EbIRC - IRC Client for Windows Mobile
Posted by yoosee on Gadget at 2006-09-27 23:42 JST1 伊勢的新常識 - EbIRC
Windows Mobile 用の新しい IRC クライアントが出ていた。.NET Framework 2.0 で書かれているようで起動は多少遅いが、その後の動作は快適。WM5.0 のソフトキーにも対応しているので、チャンネルの切替えなどは片手ででも出来る。既存の ちゃっとCE と比べた利点は、個人的な使いかたからすると nadoka や plum のような pirc (IRC常駐プログラム) と高速に接続が可能という点に尽きる。サーバからのメッセージを一部無視しているそうなので、それが効を奏しているのかもしれないが、とにかく早い。
ちゃっとCEは 10チャネル程に常駐している pirc と繋ぐと処理中に切れるし、IRCサーバに直接繋ぎに行っても接続完了まで30秒以上もかかってしまい、個人的には使いものにならなかったが、こちらだと [PT] が出てから接続まで数秒と非常に早い。
あとはこれも個人的要望だが、Chocoa や Cotton や Riece のような (チャンネル|入力|その他全チャンネル) と言った 3ペイン表示してくれると非常に嬉しいのだけど、実装は難しいのだろうか。他の機能はあまりいじらずシンプルで構わないのだけど。
Riece 3.x.x での Ring (Shrink) Buffer
Posted by yoosee on Debian at 2006-08-26 23:42 JST1 Riece - IRC client for emacsen
以前 Riece と Ring Buffer で設定した 1.0.8-1 (sarge) の時には riece-max-buffer-size を設定しておけばよかったのだが、最近の 3.1.0-1 (sid) で効かなくなったと思ったら plugin として独立したらしい。addon に追加する設定が必要になっている。(add-to-list 'riece-addons 'riece-shrink-buffer t) (setq riece-max-buffer-size 4000)設定は ~/.riece/init(.el) に書く。
2 余談: riece で irchat(-pj).el のように横にユーザ一覧・チャネル一覧を出さない設定
Riece でユーザ一覧・チャネル一覧を非表示にし、(チャンネルの発言|入力エリア|他チャネルの発言) の 3画面構成のみにする設定。(setq riece-user-list-buffer-mode nil) (setq riece-channel-list-buffer-mode nil)この前 IRC で聞かれたこともあり、意外と知らない人が多いようなので。
keitairc 1.30 への patch
Posted by yoosee on Web at 2006-08-05 23:42 JST1 keitairc 1.30
2年ぶりのリリース。内容は URL へのリンクに Google Wireless Transcoder へのリンクを追加するもの。現状スマートフォンを使っているものの、良いIRCクライアントがないので相変わらずこれを使っている。と言うことで以前のバージョンに個人的に手を入れたものを改めて keitairc-1.30.patch として置いておく。内容は- チャネル一覧に各チャネルの最終発言日時を表示
- ! で始まるチャネルを扱えるように irc_msg のハンドラを用意
- recent は正順に表示(通常は逆順)
- プロセス再起動ボタンを付ける(本当はセッション切断時の自動再接続が欲しいが実装方法がわからん)
- joined イベントは表示しない
- NOTICE は NOTICE と分かるよう prefix を入れて表示
keitairc の自動再接続
Posted by yoosee on Web at 2005-03-25 23:42 JST1 keitairc の再接続
keitairc を使っていて、繋ぎ先の irc proxy との接続が切れると再接続してくれないのが不便だったので少しいじってみた。disconnect 時に connect と同じ処理をしているだけなんだけど、これで動くのかは未確認。POE::Session->new( ... irc_disconnected => \&on_irc_disconnected, ); ... sub on_irc_disconnected{ my $kernel = $_[KERNEL]; $kernel->post('keitairc' => 'connect' => { Nick => $config->irc_nick, Username => $config->irc_username, Ircname => $config->irc_desc, Server => $config->irc_server, Port => $config->irc_port, Password => $config->irc_password }); }しばらく試してみて、うまく動くようなら patch 投げてみよう。retly 回数や delay はどうやって与えたらいいんだろう?
国内IRCサーバの一斉メンテナンス
Posted by yoosee on Web at 2004-03-12 23:42 JST1 IRCサーバメンテナンス情報
2004年3月12日 22:00 より国内IRCNET網の一斉メンテナンスを行います。上記時間帯はIRCサーバへの接続が出来なくなりますが、ご理解下さい。と言うわけで 12 日の 22:20 くらいから接続が切れて、結局 23 日午前 2 時くらいまでかかった模様。管理者の方々、お疲れさまでした。最近の IRCNet は不安定な状態が続いていたけど、これで少しは安定するようになったのかな。
作業内容は OSのアップデート及び IRCサーバのバージョンアップを行います。また、長時間、海外への接続が切れておりましたが、irc.media.kyoto-u.ac.jpのサーバより海外への接点を設ける事により、海外との接続の安定化を図る予定です。