به نام خدا فعالیت رو شروع میکنیم
این چنل فقط برای کساییه که برنامه نویس روبی یا دارن روبی رو یاد میگیرن چون منبعی نبود توی تلگرام فقط برای روبی باشه این چنل رو زدم تا بتونم به کسایی که دارن روبی رو یاد میگیرن کمک کنم و هرچی که خودم بلدم رو قراره به شما هم یاد بدم و پروژه های روبی تیکه کد های روبی اخبار روبی و … تو کانال قرار میگیره و با حماییتون هم منو خوشحال میکنید :)
اموزش روبی صفر تا صد بنده رایگان توی سایت تاپلرن هست سعی کردم خیلی روون و ساده روبی رو یاد بدم و چون منبع های ایرانی هم کم بودن و پولی بودن شاید کسی پولش نرسه دوره رو بخره من هم تا جایی که تونستم کامل کامل همه چیو توی دوره گفتم دوست داشتید حتما ببینیدش:
https://toplearn.com/courses/windows/آموزش_جامع_زبان_ruby
اونایی که پایتون کار کردن میدونن برای ارسال درخواست های http باید از کتابخونه requests استفاده کنن
یکی اومده همینو برای روبی نوشته که خیلی هم راحته یعنی پایتون کار کرده باشید اینجا هم میتونید ازش استفاده کنید
یه تیکه کد درخواست :
require 'requests/sugar'
url = Requests.get('https://api.codebazan.ir/ping/?url=google.com')
puts url.text
برای نصب کتابخونه :
gem install requests
خب بچه ها یه سایت زدم که اومدم کتابخونه های مهم رو جمع اوری کردم از گوگل و به صورت فارسی و انگلیسی قرار دادم امیدوارم به کارتون بیاد:
https://monji024.github.io/Ruby_Library/
یسریا فکر میکنن وقتی یه زبان برنامه نویسی مثل پایتون یا روبی رو یاد بگیرن میتونن باهاش هر بد افزاری بنویسن نمونه ای مثل روت کیت باید دانشی از سطح کرنل داشته باشی باید با زبان های سطح پایین مثل زبان c رو یاد بگیری و درکنارش باید درک عمیقی از سیستم عامل داشته باشی چون c مستقیم با سخت افزار در ارتباطه ولی زبان های سطح بالا مثل روبی یا پایتون نیاز به مفسر برای اجرا شدن لازم دارن و بدون پیش نیاز نمیتونن اجرا شن و باید کامپایل شن به 01 بخاطر این توی اکثر سایت ها مینویسن اقا فلان کرک معتبر نیست احتمال داره روت کیت توی فایل باشه و روت کیت هم مستقیم میره توی بایوس مخفی میشه و بعد از ری استارت سیستم تکثیر میشه بخاطر همین زبان c یکی از مهم ترین زبان برای امنیته وقتی تو ریشه رو بلد نباشی نمیتونی دستکاریش کنی
شاید برای بعضیا پیش اومده باشه توی سیستم لینوکسی خودشون خواستن یه فایل رو انتقال بدن به یه درایوشون توی ویندوز و وقتی اومدن روی ویندوز تا ببینن فایل اومده میبینن اصلا فایل کپی نشده تو درایو خب یه راه حل خیلی ساده هستش که میتونید با استفاده از یه برنامه توی ویندوزتون فایل های لینوکسی خودتونو ببیند و انتقالشون بدید و دیگه نیازی به ری استارت مجدد هم نیست🐧
https://www.diskinternals.com/linux-reader/
یه سایت هست که میتونید زبان خودتونو انتخاب کنید و بهتون تمرین میده که برای پیشرفت تو زبونی مثل روبی که منبع کمی داره خیلی میتونه کمکتون کنه!!
آدرس سایت
تو سال ۲۰۱۳ یه باگ عجیب تو Ruby کشف شد.
یکی از معروف ترین باگهای Ruby با شناسه CVE-2013-1854 بود. مشکل از اون جایی شروع میشد که هر بار متد to_sym روی یک رشته اجرا میشد، یک Symbol جدید تو حافظه ساخته میشد، اما Garbage Collector (GC) قادر به آزاد کردن اون نبود.
این یعنی اگه یه مهاجم هزاران یا حتی میلیون ها Symbol منحصر به فرد ایجاد میکرد حافظه برنامه به تدریج پر میشد تا جایی که برنامه کرش میکرد یا دچار Denial of Service (DoS) میشد
این آسیب پذیری بعدها در Ruby 2.2 با اضافه شدن Garbage Collection برای Symbolها برطرف شد و یکی از مهم ترین باگ های تاریخ Ruby محسوب میشهه.
این باگ باعث شد توسعه دهندگان Ruby یکی از تغییرات اساسی تو مدیریت حافظه این زبان رو پیادهسازی کنن.
100_000.times do |i|
"user_#{i}".to_sym
end
مشکل اینجا بود که در نسخه های قدیمی Ruby، هر بار to_sym روی یک رشته جدید اجرا میشد، یک Symbol در حافظه ساخته می شد که Garbage Collector (GC) نمیتونست اون رو حذف کنه
اگه این اتفاق بارها تکرار میشد حافظه رفته رفته پر میشد و اخر برنامه کرش میکرد یا دچار Denial of Service (DoS) میشد
Ruby Code : @RubyCode1💎
نسخه جدید Ruby 4.0.5 تو ۳۰ اردیبهشت ۱۴۰۵ منتشر شدش که
برخلاف چیزی که خیلیا فکر میکنن، این نسخه قابلیت جدیدی به Ruby اضافه نمیکنه و بیشتر روی رفع باگ ها، افزایش امنیت و پایدارتر شدن زبان تمرکز داره.
مهم ترین تغییرات این نسخه :
رفع آسیب پذیری امنیتی CVE-2026-46727
این باگ باعث میشد تو بعضی از شرایط خاص، هنگام استفاده از getaddrinfo حافظه به اشتباه مدیریت بشه و احتمال کرش شدن برنامه وجود داشته باشه.
مثال:
require "socket"
1000.times do
Addrinfo.getaddrinfo("localhost", 80)
end
تو نسخه های قدیمی روبی، این بخش تو شرایط خاص میتونست باعث بروز مشکل تو حافظه بشه اما تو Ruby 4.0.5 این آسیب پذیری برطرف شده.
رفع باگ سیستم Build:
بعضی برنامه نویسا موقع کامپایل کردن Ruby از سورس با خطا مواجه میشدن.
مثلا:
./configure
make
تو بعضی سیستم عامل ها، دستور make با خطا متوقف میشد که تو نسخه 4.0.5 این مشکل برطرف شده.
بهبود پایداری Runtime :
توسعه دهنده ها چند باگ داخلی رو هم رفع کردن تا برنامه ها در اجرای طولانی مدت پایدارتر باشن.
مثلا اگه یه برنامه Ruby چند روز بدون توقف اجرا میشد، احتمال بروز بعضی خطاهای داخلی کمتر شده.
توی روبی میتونید برای اعداد بزرگ که خوندنش براتون سخته تویپروژه هاتون بیاین از _ استفاده کنید
number = 1_000_000
روی خروجی هیچ تاثیری نداره فقط جهت خوانا تر شدن اعداد به کار میره 👾
شاید براتون پیش اومده باشه از پینترست چیزی رو دانلود کنید یا سرچ بزنید ولی خب ابزارای دیگه نیاز به api_key دارن ولی با این کتابخونه میتونید راحت بدون هیچ محدودیتی از پینترست دانلود کنید یا سرچ بزنید
توی ربات های تلگرام هم بدردتون میخوره.
روش نصبش:
gem install pinterest-dl
وقتی نصب شد فقط pinterest-dl رو بنویسید تا راهنمای کامل براتون بیاد
https://github.com/monji024/pinterest-dl