TGViewer
Channel Public Channel
Python Hints

Python Hints

@pyhints

Python tips and tricks
The Good, Bad and the Ugly

توی این کانال فقط قرار هست در مورد core python صحبت کنیم.

این کانال یک بلاگ شخصی هست و پیرامون نظرات و چیزهایی که توی بیش از ۱۰ سال کد زدن یاد گرفتم (فقط برای کمک به دوستان تازه‌کار)

Admin: @Abbasi_ai
Subscribers
10.2K
Photos
205
Videos
11
Links
174
Recent Posts 14 shown
Post #1091 1.86K
#Quick@pyHints


حالا که همه دارند از قابلیت Lazy import توی پایتون ۳.۱۵ میگن گفتم یادآوری کنم:

اگر پروژه تست نداشته باشه و توی توسعه‌ی یک فیچر یا بخش اون ماژول که Lazy import داره صدا زده نشه و به import نیازی نباشه، ارورهای اون بخش رو نمی‌بینیدا

اینم یک دلیل خوب دیگه که باید تست بنویسید.
  • 👍 41
  • ❤ 3
Post #1090 3.34K
RandRng Photo
تقریباً ۳ هفته‌اس دارم این پروژه رو میزنم با
Rust, Tauri v2

و هرچی دوستان بیشتری تست می‌کنند ایده‌های جالبتری بهش اضافه می‌شه.
فعلاً فقط نسخه لینوکس رو داریم و روی ورژن
v0.2.0
هستیم (شاید بعداً ویندوز و مک هم اضافه شد)


اگر دوست داشتید تست کنید توی کانال
https://t.me/per3onnel

فایل‌های باینتری برای دبیان، ردهت و آرچ وجود داره

پینوشت:
بعد از انتشار v1.0.0 بصورت open source منتشر خواهد شد
  • 👍 16
  • ❤ 6
Post #1083 2.26K

Forwarded from RandRng

تم دیفالت Kanagawa هست و ۷ تم معروف دیگر ترمینال هم بصورت پیشفرض وجود داره (تم‌هایی که اضافه می‌کنید بین ورژن‌ها آپدیت نمی‌مونه؛ اگر فکر می‌کنید لازم هست که این مورد رو هم اضافه کنم که توی دیتابیس ذخیره بشه)

Kanagawa (default)
Argonaut
Tokyo Night
Catppuccin Mocha
Nord
Gruvbox Dark
One Dark
Night Owl
  • ❤ 11
  • 👍 2
Post #1082 2.79K
git commit --allow-empty -m "from: develop"

لطفا دستور بالا رو یاد بگیرید البته بخش commit message رو خودتون باید تغییر بدید و بعد از یادگیری خواهشا استفاده کنید.

برای یک کار موقت وارد شدم؛ فکر کنم بالای ۷۰ تا برنچ دارند (مدیر فنی خدافظی کرده و سنیورهارو هم اخراج کردند.)
حالا ۷۰ تا برنچ هست که هرکدوم یک سری فیچر رو اضافه کردند؛ هیچکدوم مرج نشده و پروژه از روی یکی از برنچ‌ها دپلوی شده باقی برنچ‌ها هم هرکدوم یکی از فیچرهای پروژه رو داره که لازم بوده و ...
و البته که
git log —graph
و ... وجود داره ولی انقدر بهم ریخته و کثیف شده که خوندن اونم دردسر داره.

اضافه کردن یک کامیت خالی که فقط بگه برنچ parent چیزی که توسعه داده میشه کی هست باعث میشه بعدا خودتون هم راحت باشید و خواهشا وقتی چیزی رو merge می‌کنید حتما برنچ رو پاک کنید. اگر فکر می‌کنید حذف نکردن برنچ بعدا کمک شما خواهد کرد شما مشکل مهارتی git دارید و معلوم هست git رو درست یاد نگرفتید.

با سنیورها تماس گرفته شده هرکسی چندتا برنچ رو یادش هست و کمک کرد ولی خب خیلی برنچ‌ها نامشخص هست. (دلیل پاک نکردن هم همین فراموشی بوده)
  • 👍 40
  • ❤ 10
Post #1081 3.07K

Forwarded from RandRng

می‌دونستید کل ارائه رو می‌تونید به comic book تبدیل کنید ؟
هر مدلی که Image generation داشته باشه (مثال بالا Gemini Notebook هست)

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

پینوشت:
سورس دیتای تصویر بخشی از ارائه خودم هست؛ قراره ۱۲-۱۶ ساعت آموزش Axum بدم.
بطوریکه از روز بعدش بکند پروژه جدید رو روی Axum شروع به کد زدن کنند و از اونجایی که از درست کردن powerpoint نفرت دارم؛ به ذهنم رسید این کار رو بکنم (چون ۹۰٪ کد هست) برای مواقعی که کد نیست و باید توضیح بدم این بهترین گزینه هست بنظرم.
  • ❤ 29
  • 👍 6
Post #1080 5.01K
Python Hints At its peak, Python helped us serve more than 20 million requests every second. تیم مهندسی openai یک مقاله داده در مورد یک لایبراری برای دسترسی ساده‌تر به دیتابیس که با پایتون روز اول نوشته شده بوده و بعد به سرویس پایتون تبدیل شده و نشون داده با طراحی درست…
ملت skill issue های خودشون رو میندازند گردن پایتون.
  • 👍 44
  • ❤ 2
Post #1079 5.46K
Python Hints تا ۱۰۹ هزار درخواست در ثانیه رو می‌تونه جواب بده روی این بنچمارک؛ من اگر سرویسم به ۶۰۰۰ درخواست در ثانیه هم برسه یک چیزی در حد Stackoverflow هستم (بر اساس مصاحبه Roberta Arcoverde می‌گم) برای تعجب بیشتر شما؛ توی مصاحبه به monolithic بودن معماری سیستم اشاره…
At its peak, Python helped us serve more than 20 million requests every second.


تیم مهندسی openai یک مقاله داده در مورد یک لایبراری برای دسترسی ساده‌تر به دیتابیس که با پایتون روز اول نوشته شده بوده و بعد به سرویس پایتون تبدیل شده و نشون داده با طراحی درست سیستم تا ۲۰ میلیون درخواست رو داشتند باهاش هندل می‌کردند.

البته توی این مقاله راجب تصمیم برای سوییچ کردن به Rust صحبت شده ولی کل مقاله رو اگر بخونید از ابتدا درمورد مزایای استفاده از پایتون برای اینکار هست؛ پیشنهاد می‌کننم حتما این مقاله رو بخونید (پارت دوم هم داره که scale اش رو می‌گه)

علاوه بر اون برای دوستان علاقمند پیشنهاد می‌کنم حتما مقاله مربوط به Postgres رو هم بخونید بخصوص اگر توی تیمی هستید که از روز اول Shard کردن رو دوس داره.

How we adapted our application storage platform, Habitat, in Python to manage unprecedented growth. (Part 1)

Scaling PostgreSQL to power 800 million ChatGPT users
OpenAI Rapidly scaling online storage to serve over 1 billion ChatGPT users Learn how OpenAI evolved Habitat from a Python library into a globally distributed storage platform serving 1 billion ChatGPT users and 22M requests per second.
  • ❤ 31
  • 👍 5
Post #1078 5.58K
@pyhints
انقدر محبوب و معروف شده که پیشنهاد اسپانسر و تبلیغات دلاری براش داره میاد؛ توی تمام این سال‌ها هیچکدوم از کانال‌ها تبلیغات نداشته و ترجیح میدم این روند رو ادامه بدم.

اما باید از تمام دوستانی که این مدت همراه کانال بودند و مطالب رو به اشتراک گذاشتند هم تشکر کنم.

بابت همراهی شما با تمام کانال‌ها و تمام این سال‌ها ممنونم

@pyhints
@pytens
@pyrust
@per3onnel
  • ❤ 159
  • 👍 14
Post #1077 7.17K
Python Hints این دقیقا یکی از اون جاهایی هست که گفتم نیروی جونیور توی تیم لازم هست. مسئله این هست که من اسکریپت‌هام و راه‌اندازی کانتینر dev برای ابزارها و کانفیگشون با اسکریپت و ... رو شاید ۱-۲ ماه بعد از یادگیری داکر (اوایل معروف شدن) شروع کردم همین امروز هم اگر تنبلی…
داشتم دنبال یک ویدئو می‌گشتم که ببینم کسی ماژول‌های مهم رو برای پایتون توضیح داده ؟
یک بخشی از داکیومنت رو خوندم و فهمیدم ماژول چیزی هست که دنبالشم و توی این سرچ متوجه شدم ۳ سال قبل با این ابزار آشنا شدم؛ یا اون موقع بدردم نمیخورده یا پروژه‌هام همه رو اسکریپت بوده و کار میکرده یا ایراداتی داشته که نتونستم استفاده کنم.

خواستم این نکته رو هم اضافه کنم که :
هرچیزی به زمانش و به وقت نیاز بهش خوبه؛ چیزی که امروز خیلی راجبش هیجان دادم و خوشم اومد از پیدا کردنش
۳ سال قبل (کل ویدئو رو دیده بودم) هیجان زدم نکرده شاید به این فکر کردم که خودم با اسکریپت دارم همینکارو می‌کنم دیگه باقیشم که .env و پایتون انجام میده
امروز نیاز و نگاهم عوض شده

اگر جونیور هستید و توی تیم می‌خواید ابزار جدیدی رو پیشنهاد بدید یادتون باشه باید نشون بدید :‌
۱- این ابزار جایگزین روش قبلی هست
۲- جایگزین کردن ابزار قدیم چقدر هزینه داره (یادگیری نیروهای دیگه هم در نظر بگیرید)‌
۳- مزیت‌هاش چیه

که بازم بر میگرده به یکی از مهمترین چیزایی که قبلا گفتم حتما یاد بگیرید یعنی نوشتن ADR اونم صادقانه هم مزایا و هم معایب
  • 👍 26
Post #1076 5.63K
Python Hints من همیشه دیتابیس تست و ... رو براش اسکریپت می‌نویسم (دستی) بعد توی کدهام از اون موارد استفاده می‌کنم کار تمیزی هست ولی زمانبر الان همینطوری یک سرچ زدم آنلاین ببینم روش دیگری هست ؟ پروژه‌ای که دستم هست خیلی ساده‌اس و فقط می‌خواستم چندتا فیچر جدید رو هم تست…
این دقیقا یکی از اون جاهایی هست که گفتم نیروی جونیور توی تیم لازم هست.

مسئله این هست که من اسکریپت‌هام و راه‌اندازی کانتینر dev برای ابزارها و کانفیگشون با اسکریپت و ... رو شاید ۱-۲ ماه بعد از یادگیری داکر (اوایل معروف شدن) شروع کردم همین امروز هم اگر تنبلی باعثش نبود عمرا همچین چیزی رو سرچ نمیکردم.
حتی اگر احمق بودن بیش از حد LLM ها نبود هم اینکار رو نمی‌کردم؛‌فیچر‌هایی که خواستم تست کنم جدید بود و البته چون نمی‌دونستم رفتار درست ابزارها روی فیچرهای جدید چی‌ هست و چطوری عمل می‌کنه اعتمادی به LLM برای نوشتن این اسکریپت نداشتم دلیلش هم واضح هست :
از کجا بفهمم خطا توی کدم هست؛ یا توی اسکریپت LLM یا حتی اون فیچر رو اشتباه درک کردم یا اشتباه استفاده کردم و ...

این باعث شد سرچ کنم و testcontainers رو پیدا کنم؛ من همیشه محیط تست و توسعه‌ام یکی هست همه چیزش.
روی پروداکشن هم سرور dev, stage و prod همیشه یکسان کانفیگ میشه حتی تا سطح دسترسی و جزئیاتی مثل firewall , ...
فقط تفاوت این میشه که مثلا prod با ۱۰ تا سرور میاد بالا dev با ۱ سرور و stage با ۳ تا سرور اگر جنبه distribute بودن چیزی باشه که برامون مهم هست تست شدنش.

خلاصه اینا معمولا دانشی هست که یک جونیور خوب به تیم اضافه می‌کنه؛ توی جلسات هفتگی یا حتی ماهانه راهکارهای جدید و به روز شده رو جونیورها معمولا به تیم اضافه می‌کردند وگرنه من و مثل من که ۱۰ سال هست یک راهکار رو دنبال می‌کنیم و همیشه جواب داده چرا باید دنبال راه دیگه‌ای بگردیم ؟ (غیر از بروزرسانی و تمیزکردن و بهتر کردنش)
جونیورهای تیم رو نگه دارید؛ چونیور درست و خوب تیم رو آپدیت نگه میداره.
  • 👍 31
  • ❤ 2
Post #1075 4.52K
من همیشه دیتابیس تست و ... رو براش اسکریپت می‌نویسم (دستی) بعد توی کدهام از اون موارد استفاده می‌کنم کار تمیزی هست ولی زمانبر

الان همینطوری یک سرچ زدم آنلاین ببینم روش دیگری هست ؟
پروژه‌ای که دستم هست خیلی ساده‌اس و فقط می‌خواستم چندتا فیچر جدید رو هم تست کنم اینکه یک سری اسکریپت دقیق بنویسم و کانفیگ کنم بنظرم زیاد بود

testcontainer

رو پیدا کردم که بنظر میاد دقیقا برای همچین وقتایی هست گفتم معرفی کنم برای دوستان دیگری که مثل من شاید نیازشون باشه و راجب این پروژه چیزی نشنیده باشند.

پینوشت:
هنوز استفاده نکردم؛ دارم داکیومنتش رو میخونم و بنظرم جذاب و عالی اومد.
GitHub GitHub - testcontainers/testcontainers-python: Testcontainers is a Python library that providing a friendly API to run Docker container.… Testcontainers is a Python library that providing a friendly API to run Docker container. It is designed to create runtime environment to use during your automatic tests. - testcontainers/testconta...
  • 👍 22
Post #1074 3.85K

Forwarded from RandRng

اینم برای دوستان دانشجو یا علاقمندای به
Data Structure & Algorithm

این سایت با انیمیشن بهتون نحوه کار هر اگوریتم رو نشون میده (برای دانشگاه سنگاپور هست) و برای هر کدوم :‌
۱- کوئیز داره (نمره نداره یک سری سوال رندم برای درک میزان یادگیری هست)
۲- یک بخش پرینت داره که خلاصه‌ی کامل رو بهتون میده مثل یک cheat sheet که توی چند مورد که من خوندم خیلی خوب و درست نوشته شده.

خلاصه این رو روزی ۱ بار بهش سر بزنید.
visualgo.net visualising data structures and algorithms through animation - VisuAlgo VisuAlgo was conceptualised in 2011 by Associate Professor Steven Halim (NUS School of Computing) as a tool to help his students better understand data structures and algorithms, by allowing them to learn the basics on their own and at their own pace. Together…
  • 👍 42
Post #1073 5K

Forwarded from RandRng

داشتم داستان ۲ هفته troubleshoot کردنم برای یک شرکت رو می‌نوشتم و اینکه ۷ نفر قبل من رفته بودند و راهکاری پیدا نشده بود.
حتی بهشون جابجایی استک پایتون رو هم پیشنهاد داده بودند.
و حتی اینکه خرید سرور تا ۳ برابر قویتر هم کمکی نکرده بود.

که سیستمم خاموش شد (نوسان برق)

خلاصه‌اش رو بگم،
تیبل refresh token رو براش بکگراند جاب بنویسید تمیز کنه.
که اگر یکی refresh token رو اشتباهی گذاشت روی 1 ساعت و ۵ میلیون یوزر داشتید

توی چندین ساعت تیبل بزرگ نشه، شما اون باگ رو توی ۳ ساعت بعدش حل می‌کنید
ولی ماها بعد حجم اون تیبل چندین برابر میشه و سرچ کردن توش تمام کوئری‌ها رو کند می‌کنه و می‌شه چیزی که نباید بشه و خفت می‌شید.

تقریباً داشتم از پیدا کردن راهکار ناامید می‌شدم که مشکل رو پیدا کردم.

پینوشت:
۱- دسترسی گرفتن به سرور پروداکشن سخت بود، شاید تنبلی شایدم هرچیز دیگری نفرات قبلی اینکار رو نکرده بودند.

۲- من بعد از اطمینان از کد و البته تست لود و پروفایل روی سرور dev مطمئن شدم باید روی پروداکشن دنبالش بگردم

۳- حتی فکرشم نمی‌کردم مشکل از refresh باشه چون کد تغییری نکرده بود (۱ سال این بخش کدها دست نخورده بود، گیت‌لاگ) و البته آخرین تغییر فایل .env روی سرور هم برای ۷ ماه قبل بود ولی مشکل ۲ ماه پیش شروع شده بود.

۴- اگر سوال پیش اومد چرا refresh رو توی دیتابیس داریم در مورد jti, family id توی jwt بخونید.
  • 👍 33
Older posts →

About this channel

How can I read @pyhints without a Telegram account?
TGViewer shows the public web preview Telegram publishes for Python Hints: recent posts, photos, videos and the subscriber count, with no app, login or account.
How many subscribers does Python Hints have?
Python Hints (@pyhints) has 10.2K subscribers on Telegram, refreshed roughly every 30 minutes.
Does Python Hints know I viewed it here?
No. Public channel previews carry no viewer identity, and TGViewer has no accounts or tracking of what you look up.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →