<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Irc on dyama&#39;s page</title>
		<link>https://dyama.org/tag/irc/</link>
		<description>Recent content in Irc on dyama&#39;s page</description>
		<generator>Hugo</generator>
		<language>ja</language>
		
		
		
		
			<lastBuildDate>Thu, 08 Aug 2013 00:00:02 +0900</lastBuildDate>
		
			<atom:link href="https://dyama.org/tag/irc/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Tiarra やめました。</title>
				<link>https://dyama.org/2013/08/831/</link>
				<pubDate>Thu, 08 Aug 2013 00:00:02 +0900</pubDate>
				<guid>https://dyama.org/2013/08/831/</guid>
				<description>&lt;p&gt;長らく利用していた IRC プロキシソフト Tiarra の利用をやめました。理由は次のとおりです。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;tscreen(GNU Screenみたいなの)上の riece で IRC には常駐しているので、端末ログインすればどこからでも繋がる。&#xA;&lt;ul&gt;&#xA;&lt;li&gt;携帯電話なんかの専用クライアントから接続できる手軽さはあるけれど、果たしてサーバソフトを常駐させるまで使うかっていうと、そうでもなかった。&lt;/li&gt;&#xA;&lt;li&gt;携帯電話なんかの専用クライアントから接続する場合は、大人しく別USERとしてログインすればいい気がしてた。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;頼んでもない大量の WHO リストが1,2分おきに tiarra サーバから出力されるようになって、チャットどころじゃなくなる。&#xA;&lt;ul&gt;&#xA;&lt;li&gt;サーバメッセージをメインログじゃなくてチャンネルログに流して、かつアクティブを持っていっちゃうようなクライアント側にも問題があるはずなんだけど、なんだか気持ち悪い。XChatやLimechatで接続すると、WHOリストは「プロトコルログ」のような生ログ表示以外には表示されないので、特に問題ない。&lt;/li&gt;&#xA;&lt;li&gt;tiarra を経由しなかったら、riece でも WHOリストの大量取得現象は見られなかったから、IRCサーバ側にリクエストを投げているのは tiarra のはず。ここ1年くらいで、現象が起きる日と起きないがある。設定はいじってないし、なんだろうな。&lt;/li&gt;&#xA;&lt;li&gt;次の理由により、詳しく調べる前にtiarraの利用をやめることにしました。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;かなり高度かつ柔軟な設定が出来るわりに、得られる効果がほとんどない。&#xA;&lt;ul&gt;&#xA;&lt;li&gt;tiarra のメリットと言えば、同一ホストからのセッション数を減らすことができる点。&lt;/li&gt;&#xA;&lt;li&gt;それ以外だと、メイン宛のPRIVMSGを外部から読める、チャンネルの入退室を最小限にできる、常駐ロガーとして活躍…くらいか。&#xA;&lt;ul&gt;&#xA;&lt;li&gt;常駐ロガーという意味では、自分のように既にクライアントソフトが常駐しているユーザにとってまるで意味がないもの。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;デメリット&#xA;&lt;ul&gt;&#xA;&lt;li&gt;設定が高度な分、煩雑でもあり、接続ができなくなったり、DCCのルーティング設定で問題があった場合など、問題を複雑化してしまいそう。&lt;/li&gt;&#xA;&lt;li&gt;複数サーバーに対し、それぞれ違う nick でログインしている/したいのに、そこらへんの設定が考慮されずに設計されていそう。&lt;/li&gt;&#xA;&lt;li&gt;設定自体、ちょっとWindows寄り。起動スクリプトを書いてcronなどに登録したり、ユーザごとの設定ファイルに対応させたり、いろいろ改造して使ってました。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;お世話になっていたのは確かなのですが、IRC を便利に手間なく使うための Tiarra を本気で改良するのも本末転倒になってしまいそうで、結果的に利用をやめてしまいました。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Python で IRC クライアント的な</title>
				<link>https://dyama.org/2011/08/254/</link>
				<pubDate>Mon, 15 Aug 2011 00:00:00 +0900</pubDate>
				<guid>https://dyama.org/2011/08/254/</guid>
				<description>&lt;h2 id=&#34;基本&#34;&gt;基本&lt;/h2&gt;&#xA;&lt;p&gt;無駄がなくて綺麗なコード。やっぱり Python って素敵。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;#!/usr/bin/env python&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;# -*- coding: utf-8 -*-&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;import socket, string&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;# ソケット作成、接続、ログイン&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;irc = socket.socket( socket.AF_INET, socket.SOCK_STREAM )&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;irc.connect( ( &amp;#39;irc.example.com&amp;#39;, 6667 ) )&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;irc.send( &amp;#39;&amp;#39;&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    USER arianne * * arianne&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   NICK arianne&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   JOIN #hogefuga&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;#39;&amp;#39;&amp;#39; )&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;while True:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   # recv() で、受信するまでブロッキング&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   buf = unicode( irc.recv( 1024 ).strip(), &amp;#39;utf-8&amp;#39; )&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   # コマンドプロンプトの場合は、&amp;#39;cp932&amp;#39; を指定&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   print buf.encode( &amp;#39;utf-8&amp;#39; )&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   # IRC サーバから PING が来たら PONG を自動応答する&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   if string.split( buf )[0] == &amp;#34;PING&amp;#34;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      irc.send( &amp;#34;PONG &amp;#34; + string.split( buf )[1] + &amp;#34;\n&amp;#34; )&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   # 文字列に反応してみたり&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   if buf.find( u&amp;#34;こんにちは&amp;#34; ) &amp;gt; -1:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      irc.send( u&amp;#34;PRIVMSG #hogefuga :こんにちわぁ\n&amp;#34;.encode( &amp;#39;utf-8&amp;#39; ) )&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h5 id=&#34;モジュール化&#34;&gt;モジュール化&lt;/h5&gt;&#xA;&lt;p&gt;車輪の再発明だと思いつつ、自分の使い易い形のクラスにしてみた。サーバー応答対応やエラーと例外処理が未実装だけれど「スレッド化した受信監視→外部から指定されたイベントハンドラ実行」は、これで・・・いけるはず・・・。もうちょっとスマートに書けるようになったらいいな。&lt;/p&gt;</description>
			</item>
			<item>
				<title>POE::Component::IRC で遊ぶ</title>
				<link>https://dyama.org/2011/04/37/</link>
				<pubDate>Wed, 13 Apr 2011 00:00:18 +0900</pubDate>
				<guid>https://dyama.org/2011/04/37/</guid>
				<description>&lt;p&gt;Perl の IRC モジュールと言えば、ちょっと前まで Net::IRC だと思っていたが、久しく cpan でそいつをインストールしようとすると、&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;時代遅れだから POE::Component::IRC を使っちゃいなー ! “&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;と言われた。&lt;/p&gt;&#xA;&lt;p&gt;イベントドリブンな IRC クライアントを書く為のモジュールで、PING/PONG の自動応答など、IRC セッションを裏で面倒見てくれる便利なモジュールらしい。&lt;/p&gt;</description>
			</item>
			<item>
				<title>IRCのDCCファイル送信は簡単に”横取り”する事が可能</title>
				<link>https://dyama.org/2010/06/209/</link>
				<pubDate>Fri, 25 Jun 2010 00:00:00 +0900</pubDate>
				<guid>https://dyama.org/2010/06/209/</guid>
				<description>&lt;p&gt;IRC(Internet Reray Chat)には、DCCというファイル送受信や個人チャット用途に設けられた機能がある。Direct Crient-to-Crient という名前のとおり、IRCサーバを介しない通信に用いられる。これには、以下の2つの利点と目的がある。&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
