IRCが面白いということを知ったので遊んでみよう
IRCを初めて使いました
最近会社にIRCサーバが立って、ついに人生初のIRCライフが始まりました。なにしろUNIX系で育ってない僕なのでこういうものにひどく弱いのです。IRCとかshellとかsshとかまあその辺。粒度ばらばらなのは勘弁してください。ニュアンスニュアンス
まあそこら辺の言い訳っぽいのはよしとして、IRCは面白いですね。実はIMと同じようなものかと思ってたんだけど、使用感は全然違うかも。IMだと1対1が基本の文字による会話で、IRCだと会議室でのコミュニケーションなんですね。
Internet Relay Chat - Wikipedia
IRCは根本的に"軽い"技術な感じがします。軽いのはいいことですよね。
なんかいい方向に印象が変わりました。聞きかじりだけじゃなくて使ってみるのは大事だなと思いました。
ちょうどこの記事読んだりした後で今、古くなった技術IRCを楽しむのはアリな感じがしてきました。ほら、Javascriptだってカラッカラに古くなったと思ったら新しい技術になったし。(ちょっと無理矢理)
“社内IRC”を駆使するエンジニアの仕事術とは――モバイルファクトリー・松野徳大さん - ITmedia エンタープライズ
IRCクライアント
周りではIRCクライアントは下の二つが人気です。
僕はLimechatを使ってます。
有名だし、Psychsさんが来てくれたりしますしね。IRC初心者の僕が戸惑いなくサクサクチャンネルも作って使えてる時点で良いクライアントソフトなのは間違いないです。
Operaは僕は使ってないのですがこれも人気あるみたいです。Operaはメーラーも人気だったりするし、いちいち使いやすい機能が入ってるみたいですねー。
gem install ruby-irc
というわけで早速RubyでのIRCライブラリってどういうものがあるのかなーと探してみました。ぱっと見つかるのは
- http://arika.org/ruby/rice
- 404 Not Found
- http://www.koka-in.org/~zophos/SideA/lsnt/rica.html
- Ruby-IRC
と4つくらいでしょうか。
最後のRuby-IRCはgemでインストールできるやつなんだけど、"ruby-irc"で検索してもたくさんヒットしすぎてHPがみつかりません。。当然かぁ。。。
でも、
IRCConnectionが変なんで修正
ところが、
READMEに入ってるサンプルを参考に実行してみてもエラーが出てしまいました。(require適当・・。)
require 'socket' require 'IRCConnection' require 'IRCEvent' require 'IRCChannel' require 'IRCUser' require 'IRCUtil' require 'IRC' bot = IRC.new("Nickname", "server.example.com", "6667", "Realname") IRCEvent.add_callback('endofmotd') { |event| bot.add_channel('#eris') } IRCEvent.add_callback('join') { |event| bot.send_message(event.channel, "Hello #{event.from}") } bot.connect
なんか
in `remove_IO_socket': undefined local variable or method `sock' for IRCConnection:Class (NameError)
とか出てくるのでIRCConnection.remove_IO_socketの中で、"sock"という変数が突然使われててundefinedで怒られるみたい??
勝手にIRCConnection.remove_IO_socket内の"sock"を本来使おうとしてたと思われた"socket"に変えたら動きました。
変更前
def IRCConnection.remove_IO_socket(socket) sock.close @@readsockets.delete_if {|item| item == sock } end
変更後
def IRCConnection.remove_IO_socket(socket) socket.close @@readsockets.delete_if {|item| item == socket } end
たぶんこれで合ってる。発言出来たし。
さあ、遊ぼうか!
余談
直ったのわかんないで何回も実行を繰り返してたらいつのまにか接続出来てて近くの人が
「うわぁ!うちのチャンネルがすごいことになってる!」
と軽く叫びました。
気をつけます。。。せめてテスト用チャンネル作るべきですね。