TorhamDev | تورهام 😳 – Telegram
TorhamDev | تورهام 😳
2.84K subscribers
420 photos
49 videos
21 files
591 links
code, linux and anything related.

• YouTube
youtube.com/@techwithtori

• CodeNaline Podcast
@CodeNaline

• Group
@GothamProgrammers

• Github
github.com/TorhamDev

• Email
torhamdev@gmail.com
Download Telegram
TorhamDev | تورهام 😳 pinned «link: https://youtu.be/hFliPqg4BNM تو این قسمت عمیق در پایتون به آبجکت‌ها Callable سر میزنیم و میفهمیم اینکه میگن همچی یک آبجکته در پایتون یعنی چی و یک آبجکت callable چطوری کار میکنه و خودمون چه شکلی میتونیم یکی بسازیم؟ 🍰 @Torham»
Forwarded from Sadra Codes
نوشتن گیت‌هاب اکشن با پایتون!

در این مقاله ۵ دقیقه‌ای، از PyAction استفاده کردیم تا یه اکشن Hello World خیلی ساده بنویسیم. اکشنمون به این صورته که یه اسم بهش می‌دیم و اون اکشن در محیط اجرایی Workflow، یه مسیج Greeting بهمون نمایش میده.

مطالعه مقاله: https://imsadra.me/writing-github-actions-in-python
پای‌اکشن: https://github.com/lnxpy/cookiecutter-pyaction

امیدوارم مفید باشه :) ❤️
1
Remember This
NF
perfect people don't exist, so don't pretend to be one.

#music
👍5
Reverse proxy vs. API gateway vs. load balancer

As modern websites and applications are like busy beehives, we use a variety of tools to manage the buzz. Here we'll explore three superheroes: Reverse Proxy, API Gateway, and Load Balancer.

🔹Reverse Proxy: change identity
- Fetching data secretly, keeping servers hidden.
- Perfect for shielding sensitive websites from cyber-attacks and prying eyes.

🔹API Gateway: postman
- Delivers requests to the right services.
- Ideal for bustling applications with numerous intercommunicating services.

🔹Load Balancer: traffic cop
- Directs traffic evenly across servers, preventing bottlenecks
- Essential for popular websites with heavy traffic and high demand.

In a nutshell, choose a Reverse Proxy for stealth, an API Gateway for organized communications, and a Load Balancer for traffic control. Sometimes, it's wise to have all three - they make a super team that keeps your digital kingdom safe and efficient.

credit link

@Torham
پست جدید شهریار شریعتی:

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

https://shahriarshm.com/?p=63
5
https://youtu.be/eMsCKR3nd-Q

تو این ویدیو میفهمیم reverse proxy و load balancer چی هستن و کجا به درد میخورن. بعدش با nginx و flask یکدونه ازشون میسازیم :)

00:00 : intro
00:37 : What is the reverse proxy?
02:46 : What is the load balancer?
04:45 : Load balancer via Nginx
10:10 : Reverse Proxy via Nginx
15:19 Summary

🍰 @Torham
🔥7👍1
TorhamDev | تورهام 😳 pinned «https://youtu.be/eMsCKR3nd-Q تو این ویدیو میفهمیم reverse proxy و load balancer چی هستن و کجا به درد میخورن. بعدش با nginx و flask یکدونه ازشون میسازیم :) 00:00 : intro 00:37 : What is the reverse proxy? 02:46 : What is the load balancer? 04:45 : Load balancer…»
دقیقا من 😂
😁5💔2
چطوری در پایتون آبجکتی خلق کنیم که با همه چیز مساوی باشه؟!

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

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

حالا چی میشه اگر ما ابجکتی بسازیم که متد __eq__ اون آبجکت همیشه true بر گردونه؟! درسته اون آبجکت با همه چیز در جهان پایتون برابر :).

بیایید یکی بسازیم :
class MyObj:

def __eq__(self, value):
return True

my_obj = MyObj()

print(my_obj == 12)
# OUT: True
print(my_obj == 1.2)
# OUT: True
print(my_obj == "Hi")
# OUT: True
print(my_obj == list)
# OUT: True


به همین راحتی :). اگه دوست داشتید درباره این ماجرا بیشتر بدونید به این ویدیو سر بزنید.

🐍 @Torham
👍16🆒1
از علایق جدیدم براتون بگم ریفکتور کردنه. داشتم این پروژه کپچا که با fastapi هست رو ریفکتور میکردم که اولین جایی که سراغش رفتم فرایند لاگین بود که دیدم داخل فرایند لاگین(که میشه ساخت توکن jwt برای کاربر ) دارم یوزرنیم و پسورد کاربر هم چک میکنم :). که این کار اشتباس و باید این فرایند یکجا جدا بشه و قابلیت reusability داشته باشه که بعدا بشه ازش دوباره استفاده کرد. فک کن تو هر view میخایی یوزرنیم و پسورد داخل بدنه ویو چک کنی؟!. تو جنگو قالب میان میدلور یا دکوریتور برای این کار مینویسن ولی خوب FastAPI یک ویژگی دیپندنسی اینجکشن داره ( اگر اشتباه نکنم ) که با Depends میتونید قبل وارد شدن به بدنه view یک کار دیگه رو هم انجام بدید که اینجا من یوزرنیم و پسورد رو چک میکنم و مدل مورد نیاز بر میگردونم.

به طور کلی بهتره این شکل فرایندها رو از لاجیک خود view جدا کنید که هم view تمیز تری داشته باشید هم از تکرار جلوگیری کنید.

میتونید داخل این کامیت تغییر رو ببینید اگر مشکلی داشت لطفا بهم بگید.

🐍 @Torham
👍101
چرا نباید از try و except استفاده کنیم؟! و چرا کدی که try و except داره کد بدیه؟

موضوع ویدیو بعدی :)
👀10
Forwarded from جادی | Jadi
این روزها اخبار فنی پر بوده از«حذف گیل از پایتون». توی این ویدئو با هم می‌بینیم شمارش رفرنس چیه و مشکلش توی چند نخی چیه و چطوری گیل حلش می‌کنه و چه مشکل جدید رو درست می‌:نه. همراه کد نویسی و نگاه به سورس پایتون. جالبیش؟ حتی برای غیرفنی‌ها احتمالا قشنگه.

https://youtu.be/CsD20IlhWFU
🗿3
دوستان اون docstring برای نوشتن توضیحات درباره class یا متودی که پیاده سازی شده و قرار اطلاعات بیشتری به برنامه‌نویس بعدی بده که اون class یا متد بهتر درک کنه. نه اینکه اسم class یا متود دوباره بنویسید داخلش!
اگر همچین docstring‌هایی مینوشتید یا نوشته‌اید به نظرم تغییرش بدید بیشتر سعی کنید که اطلاعاتی رو داخلش قرار بدید که یک نفر بخونش بفهمه قراره چه اتفاقی اونجا رخ بده.
2👍2