Matin SenPai
متین هستم و کامپیوتر رو دوست دارم! در حال یادگیری هستم و چیزهایی که یاد میگیرم رو سعی میکنم به شما هم یاد بدم اگر به دردتون بخوره=) •YouTube: http://www.youtube.com/@Matin_SenPai •Github: https://github.com/MatinSenPai
Show more📈 Analytical overview of Telegram channel Matin SenPai
Channel Matin SenPai (@matinsenpaii) is an active participant. Currently, the community unites 155 047 subscribers, ranking in the Other category.
📊 Audience metrics and dynamics
Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 155 047 subscribers.
According to the latest data from 03 September, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -1 374 over the last 30 days and by -88 over the last 24 hours, overall reach remains high.
- Verification status: Not verified
- Engagement rate (ER): The average audience engagement rate is 23.60%. Within the first 24 hours after publication, content typically collects 15.60% reactions from the total number of subscribers.
- Post reach: On average, each post receives 36 598 views. Within the first day, a publication typically gains 24 193 views.
- Reactions and interaction: The audience actively supports content: the average number of reactions per post is 424.
📝 Description and content policy
The author describes the resource as a platform for expressing subjective opinions:
“متین هستم و کامپیوتر رو دوست دارم! در حال یادگیری هستم و چیزهایی که یاد میگیرم رو سعی میکنم به شما هم یاد بدم اگر به دردتون بخوره=)
•YouTube:
http://www.youtube.com/@Matin_SenPai
•Github:
https://github.com/MatinSenPai”
Thanks to the high frequency of updates (latest data received on 04 September, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Other category.
اول از همه، magic methodهای افتضاحش. یعنی هی باید __init__،__ str__،__ repr__، __add__، __getitem__ و هزارتای دیگه رو یادت باشه. که این باعث میشه هی دست به دامن ai بشی. و همینطور باعث اینکه خیلی وقتا نفهمی چی داره پشت صحنه اتفاق میافته. یه operator ساده مینویسی، و یه magic method جادویی صدا زده میشه که اصلاً معلوم نیست کجاست. وقتی میخوای دیباگ کنی، باید بری دنبال این متدهای مخفی قبیلهی برگ(!) بگردی. و کلاً خیلی implicit و غیرشفافه. دوم اینکه اینترپرتری یا مفسریه. یعنی خط به خط اجرا میشه. تا نرسه به خط ۲۰۰، نمیفهمی اون خط مشکل داره. باید کل برنامه رو ران کنی تا به اون خط برسه و بعد بفهمی "آها، اینجا یه typo داشتم" یا "این متغیر تعریف نشده بوده". یعنی عملا یه کد بیس بالای 5 هزار خط پیرت میکنه. از اون طرف توی زبانهای کامپایلری مثل Go یا Rust، قبل از اجرا خود compiler همهچیز رو چک میکنه و بهت میگه کجاش اشتباهه. همهی ارورا، یک جا. ولی توی پایتون باید خودت خط به خط بری و ارورا پیدا کنی. سوم اینکه type safety نداره. یعنی یه متغیر الان string هست، یک ساعت دیگه int میشه، بعدش list میشه. تو runtime متوجه میشی که "اوه، اینجا یه list بود و برنامه کرش کرد". Type hintها هم که فقط تزئینین، اجباری نیستن و موقع runtime چک نمیشن. چهارم اینکه performance خیلی ضعیفه. برای یه API ساده که ترافیک بالا داشته باشه، باید چندتا سرور بزنی بره بالا. حالا همون کار رو با Go بنویسی، با یه سرور راه میافته. پنجم، dependency management و packaging اش یه فاجعست. pip، virtualenv، conda، poetry، pipenv... هرکس یه سازی میزنه برا خودش و شما باید به اون ساز برقصی. requirements.txt هم که دچار conflict میشه خیلی وقتا. Python 2 هم هنوز توی یه سری از پروژهها هست که تبدیل کردنش بدبختیه. خلاصه اینکه پایتون برای scriptهای کوچیک و زمینهی هوش مصنوعی و ماشین لرنینگ خوبه، ولی برای production backend واقعاً اعصاب خورد کنه. و من رفتم سراغ یه زبان compile شده که از همون اول بگه کجا اشتباه کردم، نه اینکه وسط شب production کرش کنه. مثل گولنگ یا حداقل حداقل تایپاسکریپت.
https://guardts.ir/f/bd5e72d7fc0595.100.69.108 104.83.5.203 92.122.166.146 104.66.70.133 104.121.0.17 104.83.5.65 92.122.166.168 104.83.5.82 92.123.104.67 104.110.191.57 92.123.104.7 104.109.250.232 96.16.122.74 23.40.63.69 23.73.2.161 138.201.54.122 144.76.1.88 94.130.33.41 95.216.69.37 185.137.25.214 94.130.70.160 94.130.50.12 37.255.133.30 104.81.104.13 92.122.73.138 96.16.122.55 104.81.108.51 23.72.248.214 104.126.37.185 104.83.5.201 92.122.166.141 104.83.5.216 172.237.127.6 104.81.108.10 23.73.2.148 81.91.145.2 65.109.34.234 81.12.72.218 185.143.232.122 96.16.122.66 88.221.168.138 92.122.166.175 96.16.122.82 96.17.207.149 96.17.207.151 23.220.113.51 5.160.13.85 142.54.178.211 63.141.252.203 96.17.207.135 2.23.168.144 2.23.168.254 2.23.168.250 2.23.168.96 2.21.239.29 184.86.103.210 23.36.162.202 95.101.29.30 2.23.170.80 185.200.232.16 2.16.245.188 95.101.23.82 185.200.232.34 184.28.230.87 2.16.19.136 2.23.168.174 50.7.5.83 2.23.168.47
دفید اینجوری کار میکنه: (عدد هایی که میگم دیفالت هست و قابل تغییر) هر ده دقیقه میره ۱۵ پیام اخر کانال ها و اکانت های تویتر رو میگیره میاره و اینهارو به یک فرمت خاص توی رم نگه میداره (دیتابیس نداره چون فقط ۱۵ پیام اخر رو نگه میداره) به هر کانال و یا اکانت تویتر یک عدد اختصاص میده که بهش میگه چنل، این عدد [چنل نامبر یا ch] رو مثل شبکه تلوزیون رو در نظر بگیرید که مثلا میگفتیم شبکه ۴ رو کسی نمیبینه! یا شبکه سه فوتبال داره!، حالا اینجا مثلا شبکه ۳ تو کانفیگ اخبار، وحید انلاین داره! دیتای هر شبکه رو به چانک های کوچیک و رندم تبدیل میکنه که بهش میگیم بلاک و این بلاک ها بین ۲۰۰ بایت تا ۵۰۰ بایت هستند تا کمترین محدودیت دی ان اس رو داشته باشه حالا اینو تا اینجا نگه دارید یچیز دیگه توضیح بدم بعد برگردم سراغ این یک سری شبکه خاص وجود داره توی پروژه که کارشون متفاوت هست مثلا شبکه 0 کارش برگردوندن متادیتا هست که خیلی مهمه!، این شبکه چی بر میگردونه واقعا؟ - زمان فتچ بعدی کانال ها از تلگرام و تویتر - یوزرنیم کانال ها و اکانت های تویتر - شماره شبکشون - تعداد بلاک های دیتای که دارن - اخرین ایدی پست و زمان اخرین پست کانال یا اکانت تویتر - چکسام - و یک سری چیز که الان یادم نیست (از اونجایی که دیتا رو به صورت رندم به بلاک های کوچیک بین ۲۰۰ تا ۵۰۰ بایت تقصیم میکنیم هر ده دقیقه تعداد بلاک ها عوض میشه حتی اگر اون کانال پست جدیدی نداشته باشه) خب پساولین کاری که کلاینت میکنه اینه که میره متا دیتا رو میگیره که لیست کانال هارو نمایش بده همینطور کلاینت هربار که میخواد یک کانال رو فتچ کنه اول متا دیتا رو فتچ میکنه تا تعداد بلاک های اون کانال و اینکه اصلا پست جدیدی هست یا نه رو بدونه، این متادیتا معمولا بین ۱ تا ۳ بلاک دیتا هست که میشه توی یک شبکه درست حسابی با ۱ تا ۳ کوئری دی ان اس بگیریش. (کلاینت متا دیتا رو واسه خودش تا ۳۰ ثانیه کش میکنه) حالا وقتی متا دیتا رو داشته باشی میتونی شروع کنی بصورت هم زمان بلاک های دیتای اون کانال تلگرامی و یا تویتری رو بگیری (معمولا کانال ها واسه ۱۵ تا پیام بین ۷ تا ۲۰ بلاک دیتا دارن)، و چون تا ده دقیقه این بلاک ها قراره ثابت باشن (کلاینت هم میدونه کِی اون ده دقیقه تموم میشه) میتونه هی تلاش مجدد کنه و حتی وقتی ریزالور خیلی کند هست هم در نهایت دیتا رو بگیره یچیز جالب اینه که چون کلاینت فقط واسه گرفتن دیتا نیازه شماره شبکه و شماره بلاک رو بفرسته کوئری ها خیلی کوچیک هست (البته چند بایت رندوم و اورهد انکریپشن و base32 بهش اضافه میشه که بزرگ تر میشه) کلاینت کلی شبکه معنی دار دیگه هم داره مثلا شبکه صفر متا دیتاهست شبکه 1 تا 10,000 واسه دیتای کانال ها و اکانت های تویتر هست شبکه 10,001 تا فکرکنم 50,000 واسه فایل ها هست. یکسری شبکه که عدد هاشو یادم نیست هم شامل این ها هست: - شبکه واسه گرفتن اخرین ورژن موجود کلاینت - شبکه واسه گرفتن ادرس ریپو گیتهاب که میشه ازش فایل هارو سریع تر از دی ان اس گرفت - شبکه واسه گرفتن نام نمایشی کانال ها (متا دیتا فقط یوزرنیم رو داره) - شبکه مخصوص اپلود پیام! اره دفید میتونه پیام هم بفرسته اگر سرور شخصی داشته باشی، ولی خیلی کنده! - شبکه مخصوص اینکه بگی میخوام پیام بفرستم! - و احتمالا چندتا شبکه دیگه که یادم نیست! یه سری جزئیات دیگه هم هست که من چندتاشو میگم: - سرور تلاش میکنه شماره شبکه و بلاک های دیتای فایل ها رو دیر به دیر تغییر بده، تا کلاینت فایل های بزرگ هم بتونه دانلود کنه حتی اگر زمان زیادی طول بکشه! - اگر چند کانال یک فایل تکراری رو بزارن کلاینت متوجه میشه و دوباره دانلود نمیکنه (با سایز فایل و چکسام) - دیفالت حجم فایل دفید برای رله گیتهاب ۱۵ مگابایت هست و برای دانلود از طریق دی ان اس ۱۰۰ کیلوبایت! - کلاینت قابلیت ارسال پکت تکراری به چند ریزلور هم زمان رو داره تا سریع تر دیتا رو بگیره - کلاینت قابلیت گرفتن هم زمان چند بلاک رو داره - کلاینت وقتی کل بلاک هارو بگیره یک هش که توی متا دیتا بوده رو با پیام ها چک میکنه تا مطمئن بشه دیتا ها ولید هست (این گاهی پیش میاد چون سرور هی داره بلاک های دیتا رو هر ده دقیقه عوض میکنه) - و کلی چیز دیگه که حتی خودمم یادم نیست ولی قبلا روشون کار کردم اسکنر چطوری کارمیکنه؟ اسکنر دفید میره اولین بلاک شبکه متادیتا (0) رو میگیره و ولیدیت میکنه تا مطمئن بشه ریزالور درست کار میکنه و چرتو پرت بر نمیگردونه! پروژه الان فقط از رکورد TXT استفاده میکنه..
