استفاده موثر از IRC
تهرانلاگ از قدیم یک کانال آیآرسی متروکه داره که هر از گاهی راهگمکردهای از راه میرسه و سلامی میکنه و سوالی میپرسه و سرخورده از جوابی که نگرفته کانال رو ترک میکنه. غافل از اینکه آیآرسی چتروم نیست. در ادامه نحوه استفاده موثر از آیآرسی رو شرح میدم.
طولانیه؟ خلاصه مطلب در پاراگراف آخر رو بخون.
آیآرسی بین برنامهنویسان پروژههای اوپن سورس همچنان محبوبیت بالایی داره. یک دلیلش نامتمرکز و رایگان و اوپنسورس بودنشه. هر کسی میتونه به سادگی یک سرور آیآرسی راه بندازه و تعداد زیادی کانال روی اون بسازه. کاربر هم میتونه با یک کلاینت آیآرسی به همه این سرورها وصل بشه و به سادگی به کانالهای مختلف سر بزنه. متنها نکته مهم اینجاست که آیآرسی حافظه نداره. یعنی وقتی کسی به یک کانال ملحق میشه (معادل چتروم) فقط پیامهایی رو میبینه که پس از ورودش به کانال ارسال میشوند. بنابراین در صورت قطع اتصال با سرور و یا خروج از کانال پیامی به دست بازدیدکننده نمیرسه.
ما اینجا از شرح اینکه چرا آیآرسی اینگونه طراحی شده صرف نظر میکنیم و مستقیم میریم سروقت اینکه باید چطور از این ابزار استفاده کنیم.
اولین کاری که باید انجام داد تغییر نگاه به این ابزاره. آیآرسی یک وسیله ارتباطی مستقیم نیست. بلکه یک چیزی بین چت و ایمیله. یعنی وقتی در یک کانال سوالی میپرسیم نباید در لحظه انتظار پاسخ داشته باشیم. بلکه باید صبور باشیم تا یک برنامهنویس یا یک کاربر علاقهمند به سوال ما پاسخ بده. لازمهی اینکار هم در وهله اول فرموله کردن یک سوال خوب و کامله. برنامهنویس حرفهای معمولا وقتش رو برای پاسخ به سوالات بی سر و ته تلف نمیکنه ولی در عین حال با دیدن یک پرسش خوب به وجد میاد و پاسخ میده.
باز از بحث منحرف شدم. خوب حالا که باید صبر پیشه کرد با قطع اتصال با سرور آیآرسی چه کنیم؟ راه حل ساده اینه که ارتباط باید وصل بمونه. وقتی در یک کانال لیست کاربران رو میبینید که همیشه حاضر (اما ساکت!) هستند شک نکنید که از یک سرور به کانال وصل شدهاند. بله، راه حل استفاده از یک سروره که همواره و بدون قطعی به اینترنت وصل باشه. در غیر اینصورت بهتره دور استفاده از آیآرسی رو خط کشید، مگر برای طرح پرسشهای ساده در کانالهای شلوغ که بلافاصله کسی پیدا میشه که جواب ما رو بده.
اگر به یک سرور دسترسی شل (ssh) دارید سادهترین کار برای اتصال دائمی به یک سرور آیآرسی ترکیب یک برنامهی مالتیپلکسر ترمینال و یک کلاینت آیآرسی است. نقش مالتیپلکسر اینه که وقتی اتصال اساساچ به سرور قطع میشه و کاربر لاگاوت میشه اون برنامه در پشت صحنه همواره در حال اجراست. چون معمولا پراسسش زیر پراسس اصلی (پراسس شماره ۱) قرار میگیره و بنابراین با قطع ارتباط اساساچ یا لاگاوت شدن یوزر نمیمیره.
شاید معروفترین مالتیپلکسر tmux باشه که روی هر لینوکسی پیدا میشه. من از byobu استفاده میکنم که اون هم به نوبه خودش از tmux استفاده میکنه. روش کار اینه که وصل میشه به سرورت، مالتیپلکسرت رو روشن میکنی و بعد توی مالتیپلکسرت کلاینت آیآرسی رو اجرا میکنه. من معمولا از کلاینت irssi استفاده میکنم. البته الان مدتی است که یک کلاینت وب به نام thelounge رو روی سرورم نصب کردم که مزایای مختلفی داره. اول از همه اینکه بدون لاگین به سرور میتونم فقط با براوزر به آیآرسی دسترسی داشته باشم. دوم اینکه یونیکد رو کاملا ساپورت میکنه و فارسی رو هم به درستی نمایش میده.
خلاصه مطلب این شد که برای استفاده موثر از آیآرسی باید به یک سرور دسترسی داشته باشیم یا دائم به اینترنت وصل باشیم. سوال بپرسیم و بعد از زمانی مثلا چند ساعت برگردیم و ببینیم که آیا کسی جوابی داده یا نه. چون سرورهای آیآرسی مسجهای قبلی رو پاک میکنند باید در این مدت حتما به سرور وصل بود تا پیامهای جدید رو دریافت کرد.
البته میشه با برنامههایی هم خلا دائمی وصل بودن رو حل کرد. مثلا من با کامپوترهای تک برده و Quassel یک چیزی درست کردم که همیشه وصل بود. البته الان قطعش کردم چون برده برام مهمتر بود. لینک برنامه:
چه کار جالبی کردی. به نظرم مهمترین قسمتش مشکل تغییر آیپیه. خوب میشد که مینوشتی چکار کردی که بقیه هم پیدا کنندش و بخونند.
من هم مشکل شمارو دارم و با irssi هم قبلا همه تلاشمو کردم ولی به هیچ صراطی مستقیم نمیشه و فارسی رو درست نمایش نمیده حالا گذشته از اون، گزینه thelounge برای من خیلی مهیجتر و باحالتر و بالطبع کلی کاربردیتر هم هست. من thelounge رو روی سرور نصب کردم، روی پورت 7000 ران کردم و پورت 7000 رو روی سرورم باز کردم (هم INPUT و هم OUTPUT) اما مشکل اینجاس که به هیچ سروری نمیتونه وصل شه و اصلا هم نفهمیدم از کجا باید لاگشو چک کنم که بفهمم دقیقا چه مشکلی سر راه اتصالش پیش میاد. اگه کمکی میکنه باید بگم که سرور من به صورت پیشفرض ارتباطهارو دراپ میکنه مگر اینکه پورتی رو من روش باز کنم و برای این مورد هم پورت 7000 رو باز کردم. سرور توسط دیجیتال اوشن میزبانی میشه و سیستم عامل هم CentOS 7.x و SELinux enabled و به جای firewalld از iptables استفاده میکنم. برای تست علاوه بر سرورهای دیگه، روی فرینود پورتهای مختلف ذکر شده توی وبسایتش (منجمله 7000) رو تست کردم.
حدس من اینه که لانژ میخواد به پورتهای رایج آیآرسی روی سرورهای دیگه وصل بشه که تو همه رو تو فایروالت بلاک کردی. تنها پورت ۷۰۰۰ رو باز گذاشتی که اونهم فقط برای وب سرور لانژه. توی کانال آیآرسی خود لانژ بپرس.
در مورد تغییر آیپی با داشتن آیپی استاتیک یا استفاده از کانکشنی که امکان قطعیش خیلی پایینه (اغلب سرویسدهندههای درست و حسابی میشه گفت قطعی ندارن) و یا حتی استفاده از یه VPN میشه مشکل رو حل کرد. هرچند اگه اینترنت شما در حدی خوبه که امکان قطع شدنش خیلی خیلی ضعیفه، پس نباید نگران آیپی بود چون آیپی حین اینکه نت وصله که عوض نمیشه :-)
میتونید از IRC Bouncer استفاده کنید. نیازی نیست خودتون یک سرور داشته باشید اما در عوض بحث حریم خصوصی مطرح هست چون صاحب سرور میتونه پیامهای شما رو بخونه.