استفاده موثر از IRC

یک‌شنبه ۱۷ تیر ۱۳۹۷
۳ دقیقه مطالعه

تهران‌لاگ از قدیم یک کانال آی‌آر‌سی متروکه داره که هر از گاهی راه‌گم‌کرده‌ای از راه می‌رسه و سلامی می‌کنه و سوالی می‌پرسه و سرخورده از جوابی که نگرفته کانال رو ترک می‌کنه. غافل از اینکه آی‌آر‌سی چت‌روم نیست. در ادامه نحوه استفاده موثر از آی‌آر‌سی رو شرح می‌دم.

طولانیه؟ خلاصه مطلب در پاراگراف آخر رو بخون.

آی‌آر‌سی بین برنامه‌نویسان پروژه‌های اوپن سورس همچنان محبوبیت بالایی داره. یک دلیلش نامتمرکز و رایگان و اوپن‌سورس بودنشه. هر کسی می‌تونه به سادگی یک سرور آی‌آر‌سی راه بندازه و تعداد زیادی کانال روی اون بسازه. کاربر هم می‌تونه با یک کلاینت آی‌آر‌سی به همه این سرورها وصل بشه و به سادگی به کانال‌های مختلف سر بزنه. متنها نکته مهم اینجاست که آی‌آر‌سی حافظه نداره. یعنی وقتی کسی به یک کانال ملحق می‌شه (معادل چت‌روم) فقط پیام‌هایی رو می‌بینه که پس از ورودش به کانال ارسال می‌شوند. بنابراین در صورت قطع اتصال با سرور و یا خروج از کانال پیامی به دست بازدید‌کننده نمی‌رسه.

ما اینجا از شرح اینکه چرا آی‌آر‌سی اینگونه طراحی شده صرف نظر می‌کنیم و مستقیم می‌ریم سروقت اینکه باید چطور از این ابزار استفاده کنیم.

اولین کاری که باید انجام داد تغییر نگاه به این ابزاره. آی‌آر‌سی یک وسیله ارتباطی مستقیم نیست. بلکه یک چیزی بین چت و ایمیله. یعنی وقتی در یک کانال سوالی می‌پرسیم نباید در لحظه انتظار پاسخ داشته باشیم. بلکه باید صبور باشیم تا یک برنامه‌نویس یا یک کاربر علاقه‌مند به سوال ما پاسخ بده. لازمه‌ی اینکار هم در وهله اول فرموله کردن یک سوال خوب و کامله. برنامه‌نویس حرفه‌ای معمولا وقتش رو برای پاسخ به سوالات بی سر و ته تلف نمی‌کنه ولی در عین حال با دیدن یک پرسش خوب به وجد میاد و پاسخ می‌ده.

باز از بحث منحرف شدم. خوب حالا که باید صبر پیشه کرد با قطع اتصال با سرور آی‌آر‌سی چه کنیم؟ راه حل ساده اینه که ارتباط باید وصل بمونه. وقتی در یک کانال لیست کاربران رو می‌بینید که همیشه حاضر (اما ساکت!) هستند شک نکنید که از یک سرور به کانال وصل شده‌اند. بله، راه حل استفاده از یک سروره که همواره و بدون قطعی به اینترنت وصل باشه. در غیر اینصورت بهتره دور استفاده از آی‌آر‌سی رو خط کشید، مگر برای طرح پرسش‌های ساده در کانال‌های شلوغ که بلافاصله کسی پیدا می‌شه که جواب ما رو بده.

اگر به یک سرور دسترسی شل (ssh) دارید ساده‌ترین کار برای اتصال دائمی به یک سرور آی‌آر‌سی ترکیب یک برنامه‌ی مالتی‌پلکسر ترمینال و یک کلاینت آی‌آر‌سی است. نقش مالتی‌پلکسر اینه که وقتی اتصال اس‌اس‌اچ به سرور قطع می‌شه و کاربر لاگ‌اوت می‌شه اون برنامه در پشت صحنه همواره در حال اجراست. چون معمولا پراسسش زیر پراسس اصلی (پراسس شماره ۱) قرار می‌گیره و بنابراین با قطع ارتباط اس‌اس‌اچ یا لاگ‌اوت شدن یوزر نمی‌میره.

شاید معروفترین مالتی‌پلکسر tmux باشه که روی هر لینوکسی پیدا می‌شه. من از byobu استفاده می‌کنم که اون هم به نوبه خودش از tmux استفاده می‌کنه. روش کار اینه که وصل می‌شه به سرورت، مالتی‌پلکسرت رو روشن می‌کنی و بعد توی مالتی‌پلکسرت کلاینت آی‌آر‌سی رو اجرا می‌کنه. من معمولا از کلاینت irssi استفاده می‌کنم. البته الان مدتی است که یک کلاینت وب به نام thelounge رو روی سرورم نصب کردم که مزایای مختلفی داره. اول از همه اینکه بدون لاگین به سرور می‌تونم فقط با براوزر به آی‌آر‌سی دسترسی داشته باشم. دوم اینکه یونیکد رو کاملا ساپورت می‌کنه و فارسی رو هم به درستی نمایش می‌ده.

خلاصه مطلب این شد که برای استفاده موثر از آی‌آر‌سی باید به یک سرور دسترسی داشته باشیم یا دائم به اینترنت وصل باشیم. سوال بپرسیم و بعد از زمانی مثلا چند ساعت برگردیم و ببینیم که آیا کسی جوابی داده یا نه. چون سرورهای آی‌آر‌سی مسج‌های قبلی رو پاک می‌کنند باید در این مدت حتما به سرور وصل بود تا پیام‌های جدید رو دریافت کرد.

سورس

دیدگاه‌ها

امیر اچ.   ۱۹ تیر ۱۳۹۷   پاسخ 5b445e8fd031813ed42ab6ae

البته می‌شه با برنامه‌هایی هم خلا دائمی وصل بودن رو حل کرد. مثلا من با کامپوترهای تک برده و Quassel یک چیزی درست کردم که همیشه وصل بود. البته الان قطعش کردم چون برده برام مهم‌تر بود. لینک برنامه:

مهدی   ۰۱ مرداد ۱۳۹۷   پاسخ 5b55b8ea494e4a10667d850f

چه کار جالبی کردی. به نظرم مهمترین قسمتش مشکل تغییر آی‌پیه. خوب می‌شد که می‌نوشتی چکار کردی که بقیه هم پیدا کنندش و بخونند.

امیر اچ.   ۱۹ تیر ۱۳۹۷

البته می‌شه با برنامه‌هایی هم خلا دائمی وصل بودن رو حل کرد. مثلا من با کامپوترهای تک برده و Quassel یک چیزی درست کردم که همیشه وصل بود. البته الان قطعش کردم چون برده برام مهم‌تر بود. لینک برنامه:

منصور   ۰۴ شهریور ۱۳۹۷   پاسخ 5b8208c8e1e4d75bd03df378

من هم مشکل شمارو دارم و با irssi هم قبلا همه تلاشمو کردم ولی به هیچ صراطی مستقیم نمیشه و فارسی رو درست نمایش نمیده حالا گذشته از اون، گزینه thelounge برای من خیلی مهیج‌تر و باحال‌تر و بالطبع کلی کاربردی‌تر هم هست. من thelounge رو روی سرور نصب کردم، روی پورت 7000 ران کردم و پورت 7000 رو روی سرورم باز کردم (هم INPUT و هم OUTPUT) اما مشکل اینجاس که به هیچ سروری نمیتونه وصل شه و اصلا هم نفهمیدم از کجا باید لاگشو چک کنم که بفهمم دقیقا چه مشکلی سر راه اتصالش پیش میاد. اگه کمکی می‌کنه باید بگم که سرور من به صورت پیش‌فرض ارتباط‌هارو دراپ می‌کنه مگر اینکه پورتی رو من روش باز کنم و برای این مورد هم پورت 7000 رو باز کردم. سرور توسط دیجیتال اوشن میزبانی میشه و سیستم عامل هم CentOS 7.x و SELinux enabled و به جای firewalld از iptables استفاده می‌کنم. برای تست علاوه بر سرورهای دیگه، روی فری‌نود پورت‌های مختلف ذکر شده توی وب‌سایتش (منجمله 7000) رو تست کردم.

منصور   ۰۴ شهریور ۱۳۹۷   پاسخ 5b8209883297121bb5e87e46

در مورد تغییر آی‌پی با داشتن آی‌پی استاتیک یا استفاده از کانکشنی که امکان قطعیش خیلی پایینه (اغلب سرویس‌دهنده‌های درست و حسابی میشه گفت قطعی ندارن) و یا حتی استفاده از یه VPN میشه مشکل رو حل کرد. هرچند اگه اینترنت شما در حدی خوبه که امکان قطع شدنش خیلی خیلی ضعیفه، پس نباید نگران آی‌پی بود چون آی‌پی حین اینکه نت وصله که عوض نمیشه :-)

مهدی   ۰۸ شهریور ۱۳۹۷   پاسخ 5b87dce93297124d0fe7293a

حدس من اینه که لانژ می‌خواد به پورت‌های رایج آی‌آر‌سی روی سرورهای دیگه وصل بشه که تو همه رو تو فایروالت بلاک کردی. تنها پورت ۷۰۰۰ رو باز گذاشتی که اونهم فقط برای وب سرور لانژه. توی کانال آی‌آر‌سی خود لانژ بپرس.

منصور   ۰۴ شهریور ۱۳۹۷

من هم مشکل شمارو دارم و با irssi هم قبلا همه تلاشمو کردم ولی به هیچ صراطی مستقیم نمیشه و فارسی رو درست نمایش نمیده حالا گذشته از اون، گزینه thelounge برای من خیلی مهیج‌تر و باحال‌تر و بالطبع کلی کاربردی‌تر هم هست. من thelounge رو روی سرور نصب کردم، روی پورت 7000 ران کردم و پورت 7000 رو روی سرورم باز کردم (هم INPUT و هم OUTPUT) اما مشکل اینجاس که به هیچ سروری نمیتونه وصل شه و اصلا هم نفهمیدم از کجا باید لاگشو چک کنم که بفهمم دقیقا چه مشکلی سر راه اتصالش پیش میاد. اگه کمکی می‌کنه باید بگم که سرور من به صورت پیش‌فرض ارتباط‌هارو دراپ می‌کنه مگر اینکه پورتی رو من روش باز کنم و برای این مورد هم پورت 7000 رو باز کردم. سرور توسط دیجیتال اوشن میزبانی میشه و سیستم عامل هم CentOS 7.x و SELinux enabled و به جای firewalld از iptables استفاده می‌کنم. برای تست علاوه بر سرورهای دیگه، روی فری‌نود پورت‌های مختلف ذکر شده توی وب‌سایتش (منجمله 7000) رو تست کردم.