Python Hints
8.61K subscribers
170 photos
11 videos
9 files
141 links
Python tips and tricks
The Good, Bad and the Ugly

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

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

Admin: @Abbasi_ai
Download Telegram
Forwarded from RandRng
توضیحات پست توی گروه مربوط به کانال Rust
👍18🤯32😨2
جوابی به بیشترین سوال، اینو باید توی @pyhints می‌زدم ولی حالا که اینجا هستم بذارید بنویسم و اونجا فروارد کنم.

وقتی وارد یک کانال یوتیوب می‌شید (ویدئو مفید با محتوای مناسب)
لایک - کامنت - سابسکرایب رو فراموش نکنید.

دانلود کردن ویدیو و بستن ویدئو توی دقیقه ۵ (حتی اگر لایک کنید) باعث میشه یوتیوب فکر کنه اون ویدیو جذاب یا مفید نبوده و کمتر ریکامند بده اون رو.
طبیعی هست که بخواید دانلود کنید ویدئو‌هارو هزینه و سرعت اینترنت و ...
ولی حداقل یکبار با کیفیت پایین هم که شده ویدئو رو ببینید.

حالا چرا این رو می‌گم :
۱- انگیزه دادن
۲- حمایت کردن

توی این مدتی که لایوهای fluent python کتابی راجب مباحث advance تر در پایتون رو آپلود می‌کردم راجب قوانین یوتیوب بسیار یاد گرفتم.

از بسیاری از دوستان Senior هم خواستم که مباحث دیگری مثل
Linux, Ansible, Docker, K8s, Nginx, Backend, Rust, Security, ...

رو باهم کار کنیم (مباحثی که خودم راجبشون به اندازه کار production سواد دارم) اما تقریباً خروجی همه صحبت‌ها یک چیز بود.

جامعه ایران نگاه نمی‌کنه، دانلود می‌زنه که زودتر صفحه رو ببنده


برای همین بچه‌هایی که تدریس شغل آخرشون هست رو نمی‌شه مجاب کرد به آموزش دادن و خدا می‌دونه که بهترین آموزش‌ها دست این افراد هست (بخاطر تجربه بالایی که در زمینه پروداکشن دارند)

خلاصه که سعی کنید از بچه‌های یوتیوبر حمایت کنید (ترافیک رو خرج اینستا، یوتیوبر‌های دلقک نکنید درست می‌شه‌ها) که منم بتونم اینجا کانال‌ها و آموزش‌های فارسی بیشتری رو معرفی کنم.

بچه‌های سنیور، نیازی به درآمد یوتیوب فارسی ندارند چون جامعه هدف فارسی انقدر بزرگ نیست
ولی حمایت شما بهشون انگیزه میده برای ادامه دادن.



شخصاً بسیار درگیر مشکلات هستم، توی اولین فرصت لایو‌های Fluent Python رو ادامه خواهم داد (شاید ۳ بار در هفته)
113👍36👌7👎3🤔2❤‍🔥1🔥1
اون هیزم‌ها بود برای زمستان سرد اروپا جمع کردن

نمیشه یکی رو بفرستیم پس بگیره ؟
😁157👎12👍11😭7🗿5😢3💔2🆒1
گیت‌هاب دسترسی رایگان به copilot داره می‌ده؛ نمی‌دونم برای همه هست یا نه.

ولی دقیقاً وسط کانفیگ NeoVim و بعد از push اولین تنظیمات این ایمیل برام اومده.

جالب بود 😂

پ.ن :
دوستان اشاره کردند یک پلن رایگان بهش اضافه شده که همگی می‌توانند استفاده کنند.
ولی دقیقاً وسط سوییچ کردن من به NeoVim بود.
👍38🤩6😁4🤔32💯2🐳1
هلوکاست ایرانی

یک زمانی شهردار تهران رو بخاطر ترافیک تهران اعدام کردند.

آخوند جز ویرانی، برای ایران دستاورد نداشت.
👍186👎66😁4😱3💔3
این باگ جدید یوتیوب هم خیلی مزخرفه‌ها :
دقیقه ۱ یا ثانیه ۵۲ تا ۶۰ ویدئو استاپ میشه و دیگه نمیشه دید؛ اول برای جلوگیری از adblocker قرار بود باشه ولی حالا داره حتی روی یوزرهای عادی هم تاثیر میذاره.

فعلا تنها راهکار اینه که روی ویدئو کلیک راست کنید و لینک رو با تایم استمپ کپی کنید.
تیم یوتیوب نوشته که این باگ ۵-۶ روز پیش بهشون گزارش شده و دارند روش کار می‌کنند.

ولی تو مخی شده برای همه نوع یوزرها


لینک :
Google Support
👍86🤯51😁1🌚1
Python Hints
این باگ جدید یوتیوب هم خیلی مزخرفه‌ها : دقیقه ۱ یا ثانیه ۵۲ تا ۶۰ ویدئو استاپ میشه و دیگه نمیشه دید؛ اول برای جلوگیری از adblocker قرار بود باشه ولی حالا داره حتی روی یوزرهای عادی هم تاثیر میذاره. فعلا تنها راهکار اینه که روی ویدئو کلیک راست کنید و لینک…
یکی از کاربرامون ( منبع ذکر نشود ) بعد از خوردن فروم‌ها و وقت گذاشتن و تست کردن
یک پیشنهادی داد؛ آنبلاک کردن یک دامنه و دسترسی دادن بهش روی ادبلاکر ها مشکل رو حل می‌کنه :

https://jnn-pa.googleapis.com


تا راهکار درست بیاد؛ Adblocker رو روشن نگهدارید و دامنه بالا رو به Trusted site توی تنظیمات Adblocker خودتون اضافه کنید.

همچنان تبلیغات یوتیوب برای شما بسته خواهد ماند ولی مشکل ویدئوها حل میشه.

حداقل برای من و ایشون حل شده
38👍11😁5🙊3👏2🕊1
وسط پروژه‌های مختلف دیگه vscode بهم جواب نمیده.

من عادت دارم؛ چندتا پروژه رو همزمان انجام میدم. وقتی یکی به Blocking, need data, ... میخوره یا اینکه تسک اون روزم تموم میشه.
میرم سراغ پروژه بعدی و vscode قبلی رو نمی‌بندم.

یک workspace جدید باز می‌کنم و ...

دیگه انقدر زیاد شد که Electron بودن vscode شروع به اذیت کرد خیلی دیر load میشد یا کارهارو دیر انجام میداد.

برای همین بعد از چندین سال برگشتم روی vim البته اینبار NeoVim چند روزی هست با بچه‌های DevChat مشورت می‌کنم و دارم محیط رو کانفیگ می‌کنم (خودمم این چندروز با این محیط کد میزنم) دارم سعی می‌کنم یک تنظیمات مینیمال نگهدارم که به اشتراک بذارم؛ برای کسایی که دوس دارند یاد بگیرند و تجریه کنند؛ ساده باشه مثل vscode با تمام کارایی‌های مهم برای حرفه‌ای‌ها هم بیس باشه برای تنظیمات بیشتر.

تنظیماتم برای python تقریبا تکمیل هست؛ برای Rust هم اضافه بشه + پیشنهاد یکی از بچه‌ها پلاگین برای اتصال به هوش مصنوعی رو هم اضافه کنم.

به اشتراک میذارم.

اگر ایده یا نیازمندی خاصی برای Python, Rust دارید بگید (اگر کلی باشه و مفید اضافه می‌کنم)

تصویر :
NeoVim + Zellij


مقداری توضیحات بیشتر:
۱- تم روی catppuccin هست؛ چون خیلی از همکارا حتی دیفالت دوستش دارند (خودم تغییرش میدم)
۲- تریمینال سمت راست رو من برای موزیک و داکیومنت خوندن و البته اکثر وقتا بررسی لاگ سرور و مانیتورینگ و ... استفاده می‌کنم
۳- محیط btop رو همیشه دارم برای بررسی پرفورمنس و البته اپتیمایزیشن
۴- بله lsp هم داریم؛ روی متدها یا توابع که برید؛
داکیومنت رو نشون میده؛ پارامترهای ورودی و خروجی و مثال و ...
۵- بله auto-complete رو هم فعال داریم اینجا.

auto format, auto fix
به محض ذخیره اجرا میشه که هردو با ruff هست برای سرعت بیشتر.
اسکرین‌شات هم داریم از کدها دقیقا مثل پست‌های آموزشی که قبلا می‌ذاشتم.

نمایش خط به خط git blame, git change, ... هم داریم.

باقیشم توی تصویر هست
41👍11🔥4👎31
😂😂😂😂😂😂
😁167🤪15💯5🦄3🆒2🤷‍♂11
Python Hints
هلوکاست ایرانی یک زمانی شهردار تهران رو بخاطر ترافیک تهران اعدام کردند. آخوند جز ویرانی، برای ایران دستاورد نداشت.
تهران امروز

من میگم تهران، شما بخون ایران.

آخوند جز نابودی
هیچ چیزی برای ما نداره ...
👍184👎54😱7😨41💋1🆒1💘1
Forwarded from RandRng
مدل خودشون:


بی‌غیرت، اون مسئولیه که داره اینو القا می‌کنه که
حدود ۸ میلیون خمینی فدای ۱۰۰ تا فرانکلین

هر ۱۰۰ دلار حدوداً ۸ میلیون تومان
😁55👎17👍3👌1
Python Hints
وسط پروژه‌های مختلف دیگه vscode بهم جواب نمیده. من عادت دارم؛ چندتا پروژه رو همزمان انجام میدم. وقتی یکی به Blocking, need data, ... میخوره یا اینکه تسک اون روزم تموم میشه. میرم سراغ پروژه بعدی و vscode قبلی رو نمی‌بندم. یک workspace جدید باز می‌کنم و ...…
به تغییرات آخر رسیدیم :

1- کامندارو آوردم وسط صفحه.

2- فایلای بزرگ رو سپردم به بیگ‌فایل که بخش بخش نمایش بده روی صفحه تا زمان لود کردنشون کند نباشه.

3- ی پلاگین مثل cursor ai اضافه شد ولی بصورت دیفالت غیرفعال هست.

4- داشبورد اضافه شده که توی تصویر هست.

5- برای پایتون format, lint فقط و فقط ruff رو داریم و اونم موقع ذخیره کارش رو می‌کنه

6-پلاگین which-key اضافه شد؛ خیلی‌ها گفتن که فراموش می‌کنند کلیدهارو

7-دیباگر پایتون رو حذف کردم؛ زمان لود رو میبرد بالا

8-کی‌مپ برای حیسون اضافه کردم که پرتی‌پرینتش کنه (پلاگین نیست و از پایتون روی سیستم استفاده می‌کنه)

9-پلاگین برای مشاهده csv, tsv اضافه شد؛ بصورت جدول نشون میده و تمیز.

10-یک venv selector هم داریم؛ البته من برای pyright, ... قبلا کد زدم که .venv رو بخونه اگر نبود از بیس بگیره و ... ولی خب اینم اضافه شد.


احتمال زیاد برای Rust دیباگر رو فعال می‌کنم (چون نیازه ولی برای پایتون نداشته باشیم؛ نمیدونم)

چیز دیگه به ذهنم نمیرسه و ۹۰٪ چیزایی که پیشنهاد دادید روی این نسخه و نسخه قبلی بود.

هر جیزی هم که توی این توسعه دادن ۱ هفته‌ای که اومدم روی neovim بهش برخورد می‌کنم رو اضافه می‌کنم.
🤩21👍1532👎2
https://github.com/pykeras/neovim

بالاخره آماده شد.

تست هم رفتیم با ۸ نفر از دوستان و ۲ تا از بچه‌های گروه خودمون.

فکر می‌کنم خوب باشه.

توی ReadMe اصل داستان رو گفتم؛ نکاتی هم برای آنان که می‌اندیشند وجود داره
27👍9👎2🎉2❤‍🔥1
Python Hints
https://github.com/pykeras/neovim بالاخره آماده شد. تست هم رفتیم با ۸ نفر از دوستان و ۲ تا از بچه‌های گروه خودمون. فکر می‌کنم خوب باشه. توی ReadMe اصل داستان رو گفتم؛ نکاتی هم برای آنان که می‌اندیشند وجود داره
چون پرسیدید چرا (تو گروه توضیح دادم همون رو میذارم اینجا) :

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

موقعی که تعداد پروژه‌های همزمان زیاد میشه :
۱- کندی شدیدی توی vscode دارم
۲- مصرف رم خیلی زیاد میشه
۳- ی وقتایی حتی خود به خود vscode بسته می‌شد
و ...

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

مختصرش این بود.

آیا vim بدرد همه میخوره ؟ نه
آیا باید یاد گرفت ؟ نه

ولی اگر کندی vscode اذیت کننده بود یا lag , ... داشتید.
—————————————————————————
چرا پایچارم نه ؟
سعی کن باهاش روی python, rust, javascript کار کنی 😂
بعد اینجوری هم هست که؛ تا دستت می‌خوره روش میگه علی الحساب ی ۴-۶ گیگ رم بده بعد می‌بینم چیکار داری.
😁33👍154👎2
Python Hints
نکاتی هم برای آنان که می‌اندیشند وجود داره
Mac Users: If you're struggling to optimize your workflow, don’t worry—you have plenty of money to waste. Just buy a newer Mac instead!

Windows Users: Before searching for a real IDE, you might want to get yourself a real operating system.

#موقت
😁64👎9🗿4🙊2👍1🔥1
Forwarded from RandRng
💯
😁32👍4👎1
RandRng
💯
لینکدین فارسی به معنای واقعی به ته ته خط رسیده :

۱- خانوم‌ها که میان از پیشنهادات برای آشنایی می‌گن (این خودش یک معقوله‌اس که بنظرم اصلا هم بد نیست ولی خب جای بحث داره)

۲- کلی درخواست کانکشن میاد بعد می‌بینی طرف بلاگر و تبلیغات چی بوده از اینستاگرام اومده لینکدینم به کثافت بکشه

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

۴- همه چیز تبدیل به دستاورد می‌شه؛ طرف زده رفتم تخم مرغ خریدم و ....

۵- داستان همه آدما کپی می‌شه؛ اگر یک داستان قشنگی هم پیدا بشه می‌بینی هزارنفر به اسم خودشون زدند. نمی‌شه به آدم واقعی داستان رسید شاید کسی بخواد کمک کنه.

۶- مهمترین، استفاده از لینکدین قرار بود این باشه که ما به آدمایی که می‌شناسیم بگیم آقا٫خانم من دنبال کار می‌گردم به همه شما اطلاع میدم.

۷- هرکسی open to work فقط #up , ... میگیره دریغ از یک پیشنهاد همکاری یا ...
قبلاً زده بودم که بهتره چطوری زیر این پست‌ها نظر بدید وگرنه که نادیده بگیرید.


خلاصه که شخصاً ۶-۷ ماه هست که لینکدین فقط میرم message هارو می‌خونم (همرو رد می‌کنم) و کانکشن‌ها رو قبول می‌کنم.
فکر کنم برای شما هم کاربردش همین شده باشه.
👍150👎7❤‍🔥63😁3👌21🤔1🤨1🤝1
می‌خوام راجب این صحبت کنم (از پروفایل خودم).

من پیغمبر مخالفت با اهمیت تعداد کامیت بودم و هستم؛ حداقل ۳-۴ ساله دارم این حرف رو میزنم و دلیلش رو هم گفتم (اینکه چندتا گیت‌هاب خودم به اینو اون دادم و ...)

ولی یک جو احمقانه توی لینکدین و توییتر راه افتاده ضد این بخش؛ ببین از من که گذشته ولی این صحبت‌های احمقانه برای کل جامعه برنامه‌نوبسی بد هست چند مورد :

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

همینجا جواب این رو میدم:
احمق جون تو تازه‌کاری گیت‌لب زمانی به یک سری باگ‌ها خورد (توی یوتیوب سرچ کنید) که خیلی شرکت‌ها برگشتند روی گیت‌هاب و نسخه organization رو خرید زدند.
خیلی از فعالیت‌های گیت‌هاب من ازونجا شروع شد.

۲- اینا همش ادا بازیه و ...

حماقت محض
هست این حرف؛ اگر به اینجا رسیدی که این حرف رو زدی (شما تا حالا کسی رو دیدی عکس این کاشی‌کاری رو توی رزومه‌اش بذاره ؟)
هیچ شرکت و یا شخص با سوادی رو نمی‌شناسم که حتی ۱ درصد این موزاییک براش مهم باشه (مگر بچه‌هایی که روش نقاشی می‌کشند. اونم کل کل برنامه نویسی هست البته)

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

از این 2176 تا کامیت شاید 700-800 تاش برای شرکت‌هایی هست که روی گیت‌هاب هستند؛ باقیش کارهای خودمه؛ و حتی اگر یک روز تا ۱۰ شب هم سرکار باشم هرطور شده باید تا آخر شب ۲-۳ تا مطلب کتابی که خوندم رو برای خودم تمرین کنم (این بدترین حالت هست).

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

خلاصه که وظیفه ما :
هشدار دادن راجب افراد سودجو بود؛ که نیروی HR به این کاشی کاری گیت‌هاب اهمیتی نده برای دعوت به مصاحبه.
اما این موج تخریب افراد تازه‌کار و با انگیزه بالا هم کاری بس کثیف‌تر هست که مطمئنم از جامعه توسعه دهنده شروع نشده.
مثال از خودم زدم برای حمایت از تمام دولوپرهای تازه‌کار و با انگیزه دمتون
گرم ❤️
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9425🔥3❤‍🔥2👎2
#Quick

داشتم پروژه django شرکت رو می‌خوندم یک مشکل داریم سر بعضی endpointها و برخی تسک‌ها.
اولین کاری کردم این بوده که یک سری دیتا تست با faker بهش دادم مثه loadtest ولی بدون ابزار و بعد هم profiling گرفتم و ذخیره کردم.
چیز جالبی که دیدم؛ پروژه موقع کار کردن با redis به مشکل میخورد.
ولی redis منابعش بیشتر از حد مورد نیازش بود.

حجم دیتاهای تست رو کم کردم و مشکل حل شد؛ توی چندتا تست مختلف که زدم دیدم مسئله و مشگل از سمت پیکج redis هست توی پایتون و راهکار ساده رو هم خود redis داده (هرچند من برعکس بهش رسیدم)

$ pip install "redis[hiredis]"


بجای اینکه برای parse کردن دیتا از python استفاده کنه وقتی hiredis رو نصب کنید از C استفاده می‌کنه (بنچمارکاش هم توی گیت‌هاب hiredis هست ببینید)

مشکل خیلی ساده حل شد؛ ولی برای این حل ساده خیلی زمان و درک profiling لازم بود.

اهمیت profiling
👍68🔥32🆒2
Python Hints
https://github.com/pykeras/neovim بالاخره آماده شد. تست هم رفتیم با ۸ نفر از دوستان و ۲ تا از بچه‌های گروه خودمون. فکر می‌کنم خوب باشه. توی ReadMe اصل داستان رو گفتم؛ نکاتی هم برای آنان که می‌اندیشند وجود داره
یکسری فیچر دوستان درخواست داده بودند که گفتم اضافه می‌کنم ولی فرصت نمی‌شد؛ الان که منتظر کامپایل شدن کد بودم گفتم اینارو هم اضافه کنم.
من این موارد رو روی branch دیگری گذاشتم؛ چندروزی تست بشه بعد بیارم روی master تمام موارد رو هم بصورت keybinding اضافه کردم چون بنظرم همون فیچرهای موجود خیلی خوب و کافی هست (اینطوری load-time هم همون زیر ۱۰۰ میلی‌ثانیه می‌مونه)

داکیومنت روی برنچ :
feature/mist-requested-bindings

اضافه شده ولی خب تغییرات این موارد هست:

Easier switching between splits:
Move to the left split: <C-h>
Move to the right split: <C-l>
Move to the upper split: <C-k>
Move to the lower split: <C-j>
Toggle relative line numbers: <leader>rl
-----------------------------------------
Go to definition (vertical split): <leader>gdv
Go to definition (horizontal split): <leader>gds
Peek definition: <leader>gdp
Close all splits except current: <leader>qo
-----------------------------------------


در نهایت مرسی از همه اونایی که تست کردند و نظر دادند.
22👍9