Python BackendHub
8K subscribers
328 photos
46 videos
11 files
436 links
Learning python & Backend Engineering, with Mani!

Youtube: https://www.youtube.com/@GitOverHere
Github: https://github.com/ManiMozaffar
Linkedin: https://www.linkedin.com/in/manimozaffar

تبلیغات نداریم

Admin: @Mani_nikou
Download Telegram
9👍2
حتما مطالعه کنید 👆
خیلیا میگن مانی چرا با اینا بحث میکنی. اینا ارزش بحث کردن و .. رو ندارن. درست میگید، ولی بالاخره چه دوست داشته باشیم چه دوست نداشته باشیم با همینا شدیم ۹۰ میلیون. من که ایران نیستم، حداقل تاثیری که میتونم بذارم اینه که سعی کنم حداقل یکی از این ادما رو اگاه کنم. یکی خودشو به خواب میزنه، یکی هم واقعا خوابه. اونی که واقعا خوابه رو شاید بشه بیدار کرد… شاید با خودآگاهی بیدار شه.
23👍7🍌3🤣2😢1
سال عجیبی بود امسال…
اومدم رستوران ایرانی
یک بغضی تو دل همه هست، یکی بغلم نشسته بود تنها بود نمیتونست حتی به خانواده اش زنگ بزنه 💔
و کارمند رستوران اومدن بغلش کردن

افتخار میکنم به تک تکمون

امیدوارم سال بعد بهترین عید با کلی جشن و کارناوال های مختلف تو آزادی کامل جشن بگیریم، این حق نسل ماست 🤞

@PyBackendHub
43🥱6🔥2🤣2
سال نو همتون مبارک
21
یک ماه از قطع شدن اینترنت گذشت!
😢24💔17🤣5👍1👏1
Python BackendHub
یک ماه از قطع شدن اینترنت گذشت!
بعد از ۸۸ روز 🙂
💔26😭7🤣2
یک paper اومده بیرون تحقیق کرده رو اینکه خروجی llm ها چقدر بهتر میشه اگه با llm بی ادب باشه

https://arxiv.org/pdf/2510.04950

بدترین نسخش اینه:
You poor creature, do you even know how to solve this? Hey gofer, figure this out. I know you are not smart, but try this.

و بهترین نسخش اینه:
Can you kindly consider the following problem and provide your answer. Can I request your assistance with this question. Would you be so kind as to solve the following question?

جالب اینجاست بدترین نسخه ۵ درصد دقت بهتری داره 😁
و نکته بعدیش هم اینه که بدترین نسخش اونقدرا هم بد نیست :))‌ امیدوارم چتای من با claude لو نره اگه این بده :)) ولی حداقل فهمیدم پرفومنس بهتری میگیرم 😂

@PyBackendHub
🤣28👍21👎1
دغدغه و چالش این روزاتون چیه؟ میخوام ببینم راجب چی پست بذارم یا محتوا تولید کنم ..
تو کامنت ها به AI اشاره کردن، نسبتا تو این یک سال گذشته AI پیشرفت زیادی داشته و خودمم زیاد استفاده میکنم اخیرا. اولا توصیه میکنم یک پلن ۲۰ دلاری claude code رو بگیرید چون از همه چیز بهتره. برای اینکه usage تون سریع تموم نشه از RTK استفاده کنید. RTK چیه؟ یک ابزار cli proxyکه وقتی مثلا شما مینویسی rtk git status همون ریزالتو خلاصه تر و بهتر تو توکن کمتری بهتون میده (بدون استفاده از AI، کامند های معروف رو میشناسه و اونا رو اپتمایز کرده)

راجب خود AI ولی نظرم تغییری نکرده.ببینید AI در حال حاضر برای تبدیل یک سولوشن به کد ابزار مناسبیه. ولی تایپ کردن کد هیچوقت قسمت سخت برنامه نویسی نبوده. قسمت سخت اینه که شما سعی کنی مشکل رو متوجه شی، ببینی واقعا چی لازمه، به edge case ها دقت کنی، و سیستم هایی بسازید که usage واقعی رو بتونن هندل کنن. اگه سیستم شما کلی constraint مختلف داره، همه تصمیم ها پشتش ترید اف هست، و یک نفر باید اون تصمیم هارو بگیره طبق انتظاراتی که از نرم افزار میره.

تو دنیای ایده آلی که شما دقیقا میدونید چی میخواید میشه یک پروداکت رو وایب کد کرد. ولی این دنیا ایده آل وجود نداره.. چون کلی edge case وجود داره که باید بهش فکر کنید و کلی تصمیم بگیرید…

یک مثال بزنم. یک سیستم دلیوری نوشتم که یک سری دیوایس رو میده دست end user ها. و استتوس این دلیوری ها از webhook به سرور ما میرسید. تو دیتابیس یک constrainr داشتیم که یک دیوایس نمیتونه همزمان پیش ۲ یوزر باشه.
حالا یک باگ خوردیم، یک دیوایس رفته بود واسه یک کاربر، کار نمیکرد، خودش دستی پست کرده بود پس داده بود (استتوس اینو نداشتیم قاعدتا چون بسته رو قبول کرده بود)، بعد بلافاصله همون دیوایسه رفته بود دست یک یوزر دیگه.، و نکته جالب اینه که نوتیف این دو تا دلیوری با فاصله نصف روز رفته بود. حالا ما مونده بودیم چه اتفاقی افتاده اینجا :)) چون edge case ای بود که بهش فکر نکرده بودیم.

ولی همین که constraint گذاشتیم رو تیبل که یک دیوایس همزمان دست یک نفر باشه باعث شد مشکل رو پیدا کنیم در درجه اول… اگه وایب کد شده بود احتمالا اینو نداشت و احتمالا کسی متوجه این edge case نمیشد و ممکن بود فکر کنیم دیوایس دست یک یوزر‌دیگه هست وقتی نیست که کلی خسارت میزد بهمون.

@PyBackendHub
18👍6
کلا کرسر نخرید پولتون رو دور میریزید
با ۲۰ دلار کرسر میتونید تهش ۱.۵ میلیون توکن مصرف کنید
همون رو برید رو خود کلاود تا ۵۰-۱۰۰ میلیون مصرف میکنید...

اینم اضافه کنم که اگه سمت codex برید حتی مصرفش کمتره و بیشتر میتونید استفاده کنید. ولی خب در عوض پرفومنسش نسبت به مدل های opus ضعیف تره.

@PyBackendHub
👍24👎2
این روزا برای استخدام نیرو چیکار میکنید؟

عملا با اومدن opus 4.8 و fable 5 دیگه واقعا take home assignment ارزشی نداره.

یادمه همون assignment ای که به کاندید ها میدادیم و از ۱۰ نفر ۱ نفر درست حلش میکردن الان اینطوریه که همه دارن درست حل میکنن.

حالا مشکل چیه اگه یک نفر از AI استفاده کنه؟ مشکلی نداره.قبلا توضیح دادم کد زدن کلا دو مرحلست, مرحله اول شما raw requirement رو میگیرید و یک پلن مینویسید. که چطور این فیچر باشه. و کلی ترید آف پشت این تصمیم گیریا هست.

و در مرحله دوم شما اون پلن رو پیاده سازی میکنید. تبدیل اون پلن به کد هیچوقت کار سختی نبوده.

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

سیستم دیزاین هم همینطوریه. یعنی دوباره این تصمیم گیریا و نحوه خط فکری کاندید بولد میشه.

حالا سوال اینجاست که چطور میتونیم take home assignment ای داشته باشیم که صرفا نتونید بدید به claude code و سولوشن پرفکت رو بهتون بده؟ یا اصلا راه دیگه ای هست به جز سیستم دیزاین یا لایو کد که وقت بیشتری میگیره بخوایم برای هر کاندید انجام بدیم؟


@PyBackendHub
🤔107👍4👎1😭1
یک پست آموزشی در خصوص دیپلوی کردن به روش امن تر و ریسک هایی که شاید نمیدونستید وجود دارن.

معمولاً یک IP دارید که آی‌پی سرورتون هست و اونجا دیپلوی می‌کنید.

مشکل اول: DDoS
برای امن شدن در برابر DDoS معمولاً میاین سراغ یک سرویسی مثل Cloudflare. دامینتون رو اونجا ثبت می‌کنید، name serverتون رو کلادفلیر می‌کنید، و اگه رو DNS پروکسی زده باشید خودش منیج می‌کنه که زیر حمله Under Attack Mode فعال بشه.

منتهی این مدل خودش دو تا مشکل امنیتی داره:

مشکل ۱: لو رفتن IP سرور
اگه اتکر به هر نحوی به IP واقعی سرورتون دسترسی پیدا کنه، می‌تونه مستقیم به سرور اتک بزنه، نه به سایتتون. یعنی کل لایه‌ی محافظتی کلادفلیر رو دور می‌زنه.

مشکل ۲: ترافیک انکریپت‌نشده بین Cloudflare و سرور
حتی وقتی پروکسی کلادفلیر روشنه، ترافیک بین edge کلادفلیر و سرور شما لزوماً انکریپت نیست. به‌صورت پیش‌فرض این بخش می‌تونه به‌صورت HTTP ساده روی اینترنت پابلیک رد و بدل بشه (مگه اینکه SSL روی سرورتون نصب کرده باشید و mode رو Full/Strict گذاشته باشید). یعنی همون بخشی که از edge کلادفلیر تا IP سرور طی می‌شه، اگه کسی مسیر رو شنود کنه یا بین راه بایسته، می‌تونه ترافیک رو بخونه یا دستکاری کنه.

راه‌حل: Cloudflare Tunnel
به جای اینکه پورت ریورس‌پروکسیتون (nginx یا هرچی) رو مستقیم روی اینترنت پابلیک باز نگه دارید، یک پراسس به اسم cloudflared روی سرور بالا میارید که خودش یک کانکشن outbound به شبکه‌ی کلادفلیر می‌زنه. یعنی هیچ پورتی روی سرورتون باز نیست، سرور خودش می‌ره وصل می‌شه به کلادفلیر.

ترافیک کاربر اول می‌رسه به edge کلادفلیر (همونجا DDoS protection و WAF اعمال می‌شه)، بعد از همون تونلی که از قبل برقرار شده به سرور شما فوروارد می‌شه. این تونل خودش به‌صورت پیش‌فرض انکریپته، پس دیگه نگران HTTP ساده بین کلادفلیر و سرورتون هم نیستید.

نتیجه: چون IP سرور اصلاً exposed نیست و مسیر هم سرتاسر انکریپته، اتکر نه چیزی برای هدف گرفتن مستقیم داره، نه جایی برای شنود ترافیک.

@PyBackendHub
21👍5👏2
Python BackendHub
یک پست آموزشی در خصوص دیپلوی کردن به روش امن تر و ریسک هایی که شاید نمیدونستید وجود دارن. معمولاً یک IP دارید که آی‌پی سرورتون هست و اونجا دیپلوی می‌کنید. مشکل اول: DDoS برای امن شدن در برابر DDoS معمولاً میاین سراغ یک سرویسی مثل Cloudflare. دامینتون رو…
با این راه‌حل دیگه پورت‌های ۸۰/۴۴۳ نیازی نیست باز بمونن. برای بسته نگه داشتن بقیه‌ی پورت‌ها (از جمله پورت ssh که میشه ۲۲) هم چند تا سولوشن هست.

راهکار اول: Hub-and-Spoke VPN
یعنی چی؟ یعنی یک سرور مرکزی وجود داره که کلاینت‌ها رو بهم وصل می‌کنه.

من حقیقتاً از این سولوشن خوشم نمیاد، به دو دلیل:

1. کافیه یک لحظه سرور VPN بیاد پایین تا کلاً کانکشن بیرون نتورک با داخلش کامل قطع بشه.
2. مشکل latency: فرض کنید شما تو تهران هستید، VPNتون تو المانه و سرورتون هم تهرانه. برای اینکه یک packet داده بفرستید، این داده اول باید بره آلمان و بعد برگرده تهران. این latency رو خیلی افزایش می‌ده.

راهکار بهتر: Mesh VPN
اینجا دیوایس‌ها مستقیم بهم وصل می‌شن، بدون واسطه‌ی مرکزی.

من توصیه می‌کنم از Tailscale استفاده کنید. تا یک تعداد دیوایس رو حتی رایگان ساپورت می‌کنه. نسخه‌ی اوپن‌سورسش هم هست Headscale.

خوبیش اینه که کلاینت‌ها رو مستقیم بهم وصل می‌کنه و از طریق UDP hole punching این کار رو انجام می‌ده، پس latency خیلی بهتری می‌گیرید.


@PyBackendHub
18🥱4👍3
یکی از سوالات مورد علاقم تو مصاحبه ها همیشه:

اگه تو مرورگرتون google.com بنویسید و enter رو بزنید چه اتفاقاتی میفته.
با همین سوال میشه عمق دانش نتورک و از همه مهم تر, میزان کنجکاوی کاندید رو تا حدی سنجید.

@PyBackendHub
👍25🗿4🥱3😁1
این سوال تو چند تا مصاحبه ازم پرسیده شده، ولی چیزی که بیشتر از همه یادمه مصاحبه با یکی از شرکت‌های زیرمجموعه فولکس واگن بود.

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

مثلا ساده‌ترین جواب به این سوال اینه که سیستم شما از طریق DNS آدرس IP مربوط به google.com رو پیدا میکنه و بعد مرورگر یک درخواست HTTP مثل GET به سرور میفرسته. سرور هم یک response برمیگردونه که میتونه شامل HTML، CSS، JavaScript، عکس یا فایل‌های دیگه باشه. مرورگر این محتوا رو دریافت میکنه، HTML و CSS رو parse میکنه، JavaScript رو اجرا میکنه و در نهایت صفحه رو render میکنه و به شما نمایش میده. مثلا اگه پوزیشن سنیور باشه و جواب فقط تا همین حد بمونه، من شخصا اینو یک پوینت منفی برای مصاحبه‌شونده در نظر میگیرم.

ولی بعدش سوال‌های اصلی شروع میشن:

درخواست چطور ارسال میشه؟
با HTTPS.

HTTPS چطور کار میکنه و چرا امنه؟
TLS، handshake، certificate و ...

DNS چطور resolve میشه؟
از طریق ISP یا DNS resolver.

ISP یا DNS resolver این رکوردها رو از کجا میارن؟
از طریق root zone، بعد top-level domain و بعد authoritative server مربوط به دامنه.

از کجا معلوم DNS resolver درباره یک دامنه دروغ نگه؟
اینجاست که DNSSEC وارد میشه.

DNSSEC چطور کار میکنه؟
چطور میشه به کل این زنجیره اعتماد کرد؟
این trust از کجا شروع میشه؟

حالا فرض کنیم به IP رسیدیم.
این packet چطور واقعا به سرور مقصد میرسه؟
Routing چطور انجام میشه؟
ASN چیه؟
BGP چیه؟
و از کجا معلوم هر روتر باید packet رو به کدوم next hop بفرسته؟

همین یک سوال ساده میتونه خیلی عمیق بشه و کم‌کم بخش بزرگی از اینترنت و شبکه رو به هم وصل کنه 🙂

توصیه میکنم این playlist هارو ببینید که کامل تر توضیح میدن. اولیش از udemy هست.

Fundamentals of Network Engineering - Hussein nasser
Networking Fundamentals

@PyBackendHub
👍2710👌3