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

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

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

Admin: @Abbasi_ai
Download Telegram
Python Hints
Jimmy Witherspoon – Evenin
موسیقی تقدیم شما بابت 1k شدن کانال توی کمتر از ۱ ماه

مرسی از همگی، امیدوارم لذت ببرید.🌹



بازم تاکید می‌کنم
share , reference
دادن به کانال رو هستم، ولی اگر میخواید مطالب رو کپی هم‌ کنید

کپی کاملاً آزاد.

مطالب رو ویدئو youtube کردن، کاملاً آزاد.

کلا هر روشی که باعث بشه استفاده از مطالب کمک به پیشرفت جامعه پایتون کنه آزاد هست.

اینارو گفتم چون به دفعات سوال شده (البته قبلاً هم گفته بودم)
43👍18❤‍🔥6
فونت vscode من وقتی کسی نباید بفهمه چی کد میزنم (چون افرادی که بخشی از کار بهشون سپرده شده توی تیم رقیب رفقای صمیمی دارند)

این جنگ تیمی هست 😂😂😂

شماهم ازین جنگ‌ها دارید ؟

پ.ن :
اومدم ی مثال واقعی از پست قبلی بزنم font اینطوری بود گفتم از شما هم بپرسم. (البته اینجا زوم هم زیاد شده راحت‌تره خوندنش)
🤪12😐7😁5👍2😈1
همه‌ی فونت‌های vscode من اینطوری هست
اعتماد موج میزنه 😂😂

فونت رو تغییر میخوام بدم که مثال خوانا باشه دوستان
😐14😁12🔥1
Python Hints
حتما شما هم با with open توی پایتون کار کردید فوق‌العاده کمک کننده و مفید هست همین که دیگه لازم نیست یادتون بمونه فایل رو ببیند یا اینکه کد درست رو بزنید بستن فایل باید توی بخش finally باشه و ... try: excpet: finally: همین شرایط برای connection به دیتابیس…
image_2023-04-16_17-55-10.png
389.6 KB
خلاصه بگم شرایط اینطوری هست که ۱۰۰ تا اسکریپت shit code داشتیم توی شرکت که هرکدوم رو ی نفر زده موقتی هم بوده

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

نیروهای فنی تیم ما زیر بار نمیرن؛ بیزینس هم مدیریتی هستند و پول براشون مهم هست مدیر بنده هم از گردنش خودش باز کرده و من باید هر ۲ طرف رو آشتی بدم.

تنها چیزی که به ذهنم رسید این بود که
Exception
هارو لاگ بندازیم پروژه دپلوی بشه تیم‌های خودمون باهاش کارکنند (چون با اون اسکریپت یبار مصرف‌ها داشتن کار میکردن)

ماهم ارورها رو لاگ داشته باشیم؛ که توی ۲ ماه وقتی که داریم بتونیم کدهارو مناسب سازی کنیم.

اینجا بود که
context manager protocol

به کمک ما اومد و بدون Exception handler پروژه اسکریپت‌های یکبار مصرف (این کد دسکریپشن پروژه‌ هست بین اعضای تیم) رفت برای دپلوی
👍141
توی لینکدین یک پستی دیدم راجب همین مشکل
pip
و عدم دانلود و ...

اول اینکه تنها راهکار مطمئن همون استفاده از

--proxy
هست

pip install --proxy <proxy-url> packagename


بعد دیدم کلی آدم زدن که از رپو‌‌های چین استفاده کن
یکی دیگه زده، از این url استفاده کن و ....

نکنید اینکارارو

سایت‌های معروف زیادی هستند که سر اشتباه یک دولوپر به فنا رفتند

خود
pypi

دقیقاً توضیح داده که security check نداره، ینی شما الان یک ویروسی چیزی بنویسی بدی بره pypi تأیید می‌کنه اگر استانداردهاش رو رعایت کرده باشید.

بعد طرف می‌گه بریم از رپوهای دیگه استفاده کنیم ؟!

آقا/خانم چندسال پیش ی مورد بود یک هکر اومده بود کمک کرده بود روی یک سورس کد برای پرداخت بانکی (مستر، پی‌پال و ...)

بعدها فهمیدن کدهاش رو توش باگ گذاشته و خودش به سرورهای شرکت‌هایی که
pip install
زدند حمله می‌کنه.

خلاصه :

۱- هر پکیجی رو نصب نکنید (اگر سورس مطمئنی نداره برید بخونید سورس کد رو و کدهاش رو که براتون مهم هست کپی‌ کنید توی پروژه خودتون).

۲- از هر mirror یا سرویس دهنده‌ای پکیج نگیرید.


@PyHints
👍533🌚2
Python Hints
توی لینکدین یک پستی دیدم راجب همین مشکل pip و عدم دانلود و ... اول اینکه تنها راهکار مطمئن همون استفاده از --proxy هست pip install --proxy <proxy-url> packagename بعد دیدم کلی آدم زدن که از رپو‌‌های چین استفاده کن یکی دیگه زده، از این url استفاده…
https://github.com/freedomofdevelopers/fod


درباب صحبت‌هایی که داخل گروه و کامنت شد،
این مورد رو جایگزین شِکن کنید.

قطعاً رستگار می‌شید

متأسفانه بعد از اتفاقات اخیری که توی کشور افتاد، وضعیت برنامه‌نویس‌ها و بطور کلی حوزه IT به شدت خراب شد.

بسیاری مهاجرت کردند توی همین مدت و شرکت‌های نوپای زیادی هم یا سرمایه رو از ایران خارج کردند یا ورشکسته شدند.

اینکه بعضی دوستان می‌پرسند بمونیم یا بریم :
قطعاً به رفتن فکر کنید، موندن جز پشیمانی دستاوردی نداره (ماها موندیم)


پروژه شکن هم همونطور که قبلاً درباره‌اش صحبت کردم ،
DNS leakage
های بسیاری این اواخر داره و چون از شما میخواد روی کل ترافیک سیستم تنظیم کنید

امنیت کمتری داره نسبت به FOD.


بهشت اونجایی هست که آدما حق انتخاب داشته باشند حتی به غلط 👌

خدا خودش قدرت انتخاب به آدم داده (حتی برای گناه) جمهوری اسلامی شده کاسه داغ‌تر از آش، میگه ما مواظب هستیم به زور کسی گناه نکنه، اینا خدارو هم به سخره گرفتن.
👍464👎4😭3😢1💔1
#Quick

PyScript

هم به نقطه‌ای رسیده که شرکت‌ها حداقل برای prototype دارند ازش استفاده می‌کنند؛ شاید عالی نباشه ولی برای تست ایده‌ها ؛ دموها ؛ حتی ارائه به استاد توی دانشگاه و ...

واقعا جالب هست و ارزش بررسی داره

PyScript GitHub

اینو میگم چون خودم برای تست ایده مجبور به یادگیری React شدم.
👍20
ازین مدل کد توی سورس کد پکیج‌ها زیاد دیدید همون استاندارد
EAFP
امروز یکی از نیروهای junior که باهاشون کار می‌کنم روی یکی از کدها به اروری میخورد و کار پیش نمی‌رفت.
ارور فریمورک هم واقعا نامشخص نبود و چیزی ازش دستمون رو نمی‌گرفت (زمانی که tensorflow 0.7 اومده بود قشنگ یادم هست ازین چالش‌ها زیاد داشتیم)

توی سورس اگر کدهارو بخونید یک ساختاری شبیه عکس وجود داره که باعث میشه در نهایت ارور خاص فریمورک برگرده؛ البته با یک تغییر کوچیک توی خط 10 :
raise CustomException('Finally we raise our custom error in framework.') from None

همین from None باعث میشه exception های قبلی چاپ نشه.

پاک کردن همین ۲ کلمه باعث شد توی ۵ دقیقه مشکل حل بشه‌.

دیدم نیروی خودم بلد نبود گفتم شاید بهتر باشه اینجا هم بذارم بدرد کسی بخوره.
👍214
Python Hints
نحوه تعریف decorator می‌تونه نشون بده دولوپر پروژه junior هست یا نه اگر توی یک پروژه حرفه‌ای مثل کد بالا decorator تعریف می‌کنید و بیش از ۳-۴ بار ازش استفاده میشه شما سیگنال junior developer بودن میدی به کسی که کد رو میخونه. همیشه گفتم بازم میگم : اگر…
از Bard گوگل خواستم برام کد review انجام بده روی این کد decorator بالا

نه تنها جزئیاتش درست و خوبه
مزیتش اینه که دسترسی بهش رایگان هست، مسخره بازی chatGpt رو نداره
و فقط کافیه ip ایران نداشته باشید


کاملاً هم رایگان هست
👍242👎1
کانفیگ logging برای من همیشه اذیت کننده هست.
بخش عمده‌ای از تسک‌های من مربوط میشه به
Deep learning, ML engineering

اما وجه دیگه کارم backend هست و software engineer برای همین خیلی کم پیش میاد نیاز داشته باشم ی لاگر با جزئیات بنویسم

از طرفی هم ۹۰٪ کدهایی که از بچه‌های بکند تحویل میگیرم ی logging نوشته شده که حافظه زیادی قرار هست بگیره (بخصوص روی سرور تست دارم صحبت میکنم که حجم لاگ بالا میره)

این کد رو قبلا برای Django نوشتم ؛ توضیح دادم تقریبا چند هفته بعد از شروع یادگیری یکی از بدترین پروژه‌های شرکت رو دست گذاشتم روش و شروع کردم به بازنویسی این لاگر رو برای اون نوشتم

هر لاگ فایل تا ۱۰ مگ حجم می‌تونه اشغال کنه و بعد از اون فایل ذخیره میشه به اسم backup تا ۱۰ تا ورژن ازین بکاپ‌ها نگه میدارم فقط و روی نسخه ۱۱
log rotate 
میخوره و قدیمی‌ترین فایل حذف میشه

البته این خیلی ساده‌اس ولی خب از اون کیلویی اضافه کردن logging فایل قطعا بهتره

پیشنهاد میدم شما هم ازین کد بعنوان base استفاده کنید و لاگ فایل‌های تمیز داشته باشید چون دیر یا زود خودتون مجبور به خوندنشون هستید.

@PyHints
👍194👎1
چندتا توضیح بدم راجب کد بالا و مسائل دیگه :

۱- کد بالا ربطی به django نداره، هرچند توی یک خط من برای مسیر فایل از django استفاده کردم. Logging مربوط به core python هست.

۲- بیش از ۳۰ نفر سوالاتشون راجب همین موضوع بود، تماماً هم مشترک (دوستان گروه برای همین منظور ساخته شده و بخش کامنت) ازین به بعد این سوالات رو فقط توی گروه بپرسید.

۳- توی پیام‌ها ویس ندید، مخصوصاً قبل از هماهنگ کردن ۹۹.۹٪ اصلا پیام رو باز نمی‌کنم اگر اینطور باش

۴- احوال پرسی و خبر پرسیدن رو نمی‌فهمم، بعد حالا اگر پرسیدید چرا منتظر جواب نمی‌مونید ؟
بجای خوب هستی و چه خبر، همون سلام کفایت می‌کنه و یا اگر عادت کردید برای غریبه از
امیدوارم سلامت باشید استفاده کنید بخدا قشنگتر هم هست

۵- قبل از سوال پرسیدن نیازی به تاریخچه نویسی نداره، کی بودید و چیکار کردید و چرا به من ربطی نداره واقعاً و اگر برای راهنمایی لازم باشه قطعاً خودم می‌پرسم از شما (بعضی‌ها ۲۰ تا پیام میذارند آخر سوال از یکی از پست‌های کانال می‌پرسند)

۶- نهایتاً، خواهش می‌کنم
خواهش می‌کنم
اصلی ترین رفتار برنامه‌نویسی رو رعایت کنید

پیام‌ها رو مختصر بنویسید همه‌ی موارد رو داخل یک پیام ارسال کنید بریده بریده پیام دادن اسپم حساب می‌شه

بدتر از بریده بریده پیام دادن ۷-۸ تا پیام فرستادن و در نهایت گفتن این هست که بگید، می‌تونم سوال بپرسم ؟!

بجای اسپم کردن، اصل سوال رو بپرسید لطفاً این خیلی خیلی مهم هست.


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

مرسی از همگی دوستانی که رعایت می‌کنند یا خواهند کرد 🌹
👍4214👎1👌1
This media is not supported in your browser
VIEW IN TELEGRAM
ازینجا تا همه‌جا حق 😂😂😂
😁31👎41🤷‍♀1😢1👌1
بنظر من توانایی درک و خوندن کدهای باقی افراد و کار کردن با اون فرمت کد خودش یک تخصص و مزیت هست توی کار برنامه نویسی تخصصی که متاسفانه خیلی از برنامه‌نویس‌های ایرانی ندارند حتی در سطوح بالاتر.

برای همین توی ایران تا دلتون بخواد ریفکتور می‌بینیم (خیلی موارد البته بخاطر شیت کد بودن هست) ؛ ریفکتورهایی که فقط استانداردها رو تغییر دادند و وقتی کد رو مقایسه می‌کنید لزومی نمی‌بینید برای وقتی که گذاشته شده

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

نکته : اگر دارید system design رو تغییر میدید دیگه اسمش refactor نمی‌شه و این تکنیک جواب نمیده
اما اگر بعنوان مثال کدی رو روی پروداکشن دارید که داره کار می‌کنه و system design مناسبی داره و فقط کدها بد پیاده سازی شده و پرفورمنس خوبی نداره اونوقت به ریفکتور نیاز دارید و تکنیکی که میگم :

شخصا از تکنیکی استفاده می‌کنم که توی تیم بهش میگیم
3 step refactor
وقتی بیزینس درخواست فیچر جدیدی میده که اصن معلوم نیست موندگار هست یا رفتنی یا ... و فعلا فقط روی سرور تست قرار هست بالا بیاد
step 1:
do it as fast as possible (even shit code is ok)
توی سریعترین زمان ممکن اون رو توسعه میدیم حتی اگر shit code باشه (شیت کد رو هم توی تیم براش سقف گذاشتیم)

برای همین خیلی از فیچرها و اید‌ه‌های اولیه در ۵-۳۰ دقیقه پیاده‌سازی می‌شه
Fail fast

اما اگر کدی که قبلا زده شده رو داریم می‌بینم چون بیزینس توی یک بخشی تغییر خواسته یا سرعت بالاتر خواسته و ما توی بررسی به یک کد dependent هم برخورد کردیم
step 1 (not new feature):
Tag it as first seen ( CHECKED: )

با یک کلید مشترک (کل تیم سرش اجماع کردند) بصورت کامنت تگ میزنید مثلا توی تیم من کلید CHECKED: هست.
نکته این کلیدهارو به ابزارهای highlight توی IDE اضافه می‌کنید که سریعتر و راحت تر دیده بشه

اگر خود شما یا دولوپر دیگری توی تیم مجددا این کد رو ببینه اولین کاری که می‌کنه تبدیل تگ هست
step 2 (see it again) :
Tag it with ( Attention: )

اگر مجدد برای بار سوم اون تابع یا کلاس یا ... رو دیدید باید refactor بزنید رو سرش
step 3 ( 3rd time) :
PROBLEM:
first priority is to refactor the code

توی این لحظه اولویت اصلی شما ریفکتور کردن تایع هست (هیچ چیزی مهمتر از این نیست)

البته شرایط خاص و ۱٪ هم داریم که در اون مواقع فقط tag میزنیم بدون ریفکتور
PROBLEM:

هر کدوم از اعضای تیم وقتی کدی رو pull - fetch میکنه اولین کاری که می‌کنه اینه که دنبال PROBLEM: باید بگرده و مشکلش رو برطرف کنه.
بعد می‌تونه به کار خودش ادامه بده.


توی پروژه خیلی از توابع و کلاس‌ها هستند که ممکنه سالی ۱ بار استفاده بشه یا اصلا استفاده نشه و انقدر پروژه بزرگ هست که کسی متوجه این موضوع نمیشه

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

@PyHints

پ.ن : وقتی یک نیرو تسک برای انجام دادن نداشته باشه بجای منتظر موندن تگ‌ها رو توی کد بر اساس اهمیت refactor سرچ میکنه و شروع به refactor کردن
👍332👎1
Python Hints
این سوالات احمقانه‌اس که خب متأسفانه توی لینکدین و توییتر و اینستاگرام پر شده و فقط وقتتون رو داره میگیره بنظرم این موارد توهم زا هم هست، تازه‌کار فکر می‌کنه اینکه می‌تونه این سوالات رو جواب بده یعنی خیلی بلد هست. ولی آیا واقعاً اهمیتی داره دونستن این…
من فهمیدم، دلیل علاقه شدید بچه‌ها تو ایران به این سوالات رو میگم.

توی چندماه گذشته که خیلی درگیر مارکت ایران شدم، متوجه شدم ما توی ایران از هر ۱۰۰۰ برنامه‌نویس ۹۹۹ تا فیلسوف داریم، یعنی خودمون اینطوری تربیت کردیم

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

وقتی من نوعی که ادعای تجربه و سنیور بودن دارم سکوت می‌کنم چون دوست یا آشنا یا کسی که طرفدارشم ازین مدل سوالات توی پیجش می‌ذاره که خدا می‌دونه فقط برای جذب فالوئر هست نه چیزی یاد دادن

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

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

کدوم رفتار :
Fail Fast
محیط تست و develop رو برای همین گذاشتند برای اینکه وقتی یک ایده میاد سریع کد بزنید و توی ۲ روز اثبات کنید که خوب هست یا نه

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

اینجوری می‌شه که چون بین فلاسفه اختلاف میوفته تستی که باید ۲ روزه انجام می‌شد و مطمئن می‌شدیم موضوع کار می‌کنه یا نه

۱ ماه طول می‌کشه تا یک گروه از فلاسفه گروه دوم رو متقاعد کنه که کار می‌کنه یا نه
اگر متقاعد کننده‌ها گروه کار نمی‌کنه باشند که اصلاً تستی گرفته نمی‌شه
اگر متقاعد کننده‌ها گروه کار می‌کنه باشند، بعد از ۱ ماه کدی که باید تو ۲ روز بررسی می‌شد تازه میره برای بررسی


توسعه استارتاپ و ایده برنامه‌نویسی تو ایران با این وضعیت صبر ایوب می‌خواد و عمر نوح.

برای همه‌ی 1.4k عضو کانال می‌نویسم:

ماها برنامه‌نویس هستیم نه فلاسفه، ما می‌تونیم ایده رو کد بزنیم و fail بشیم (محیط تست و توسعه برای همین هست) ما فیلسوف نیستیم که راجب مفاهیم انتزاعی فقط صحبت کنیم و چیزی جز همین بحث کردن در دست نداشته باشیم
بذارید fail fast رو برای ایران بومی سازی کنم :

Fail Fast, As Soon As Possible


@PyHints
👍6510👎6❤‍🔥11
جواب بر اساس تجربه شخصی خودم هست

چند وقتی هست که میخواستم راجب این موضوع بنویسم ولی خب شرایط جور نمی‌شد

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

نمی‌دونم چرا ولی خیلی از دوستان نگران و ناراحت می‌شوند وقتی صحبت قرارداد موقت میشه
توی پیام‌هایی که برای من اومده بیش از ۶۰٪ حتی ترس دارند (مخصوصاً وقتی بیزینس متفاوت هست) بعضی‌ها حتی تست نکرده از ترس می‌خوان استعفا بدهند.

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

خواستم بگم یک موضوع طبیعی هست، فقط نباید بترسید برای رشد کردن و برای پیدا کردن اون موقعیتی که بهش علاقه دارید :

Seek discomfort

شاید ۱۰ تا بیزینس رو اصلا بهش علاقه نداشته باشید، قطعا اونجاها با چنگ و دندون هم که بمونید بازم پیشرفت نخواهید داشت دنبال تیم و بیزینسی باشید که سر شوق بیارتتون ولی از تست کردن نترسید

در نهایت بگم که من با هیچ شرکتی و هیچ آدمی قرارداد بلندمدت نمی‌بندم

قبل از این : حتماً باید ۳ ماهه - ۶ ماهه - ۱ ساله باشه و تحت هر شرایطی برای قراداد ۱ ساله حق دارم با اعلام بین ۲ هفته تا ۱ ماه زودتر از کار خارج بشم.

توی ۳ ماه گذشته : حتماً با قرارداد پاره‌وقت شروع می‌کنم و نهایتاً ۳ ماهه (حتی با بهترین دوستانم)
توی این ۳ ماه با ۱ تیم خداحافظی کردم و توی ۲ هفته گذشته تصمیم گرفتم با تیم دیگری هم خدافظی کنم.

شاید اگر برگردیم به ۱۰ سال قبل، منم همین نگرانی رو داشتم که وای قرارداد موقت و ....
ولی ۵ سال گذشته متوجه شدم، اولویت قطعاً شخص خودم هستم نه هیچ شرکتی، حتی کنار بهترین دوستانم اگر توی همکاری حالم خوب نباشه اون کار بدردم نمی‌خوره 👌

خلاصه : اگر ازین قراردادها براتون اومد به این فکر کنید که توی این ۳ ماه می‌تونید بفهمید:
۱- مدیریت چطوری هست و البته برخورد با نیروها ؟! فیک هست یا واقعی ؟!
۲- تعهدات شرکت چطور هست ؟! رفتار نیروها ؟!
۳- پرداخت‌ها چطوری هستند ؟ و ....

برای اون دوستانی که همون ابتدا استعفا می‌دهند هم یک توصیه فقط دارم :

بدون جنگیدن، شکست رو قبول نکن
شاید حریفت فقط بلوف می‌زنه، اونم تو جنگی که تهش مرگ نیست 😉
👍46😎32👎1💋1
من خیلی از مواقع سعی می‌کنم کدهای قبلی خودم رو کپی‌ پیست نکنم حتی اگر
functionality
یکسان باشه.
بنظر خودمم راهکار خوبی هست؛ خیلی وقتا حوصله کد خوب زدن ندارم یا اینکه به هردلیلی عجله داشتم و فقط خواستم کار رو انجام بدم و زودتر برم سراغ کاری که خودم داشتم میکردم و...

برای مثال توی کدهای قبلی می‌تونستم از
__qualname__

استفاده کنم تا بتونم خیلی راحت تر توی یک اسکریپت چندصد خط کد تابع مدنظرم رو پیدا کنم یا اگر یک اسم چندین بار استفاده شده بود گیج نشم؛ که خب به هردلیلی اینکار رو نکرده بودم متاسفانه

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

__qualname__
رو هم جایگزین
__name__
کنید

@PyHints
👍1953👌3
تغییرات جالبی توی این ۲ روز داره اتفاق میوفته :

حدودا از ۱-۲ ماه قبل حالت
safe search
برای همه ایرانی ها فعال شد؛ google, duckduckgo , ... و خب تنظیماتش هم قابل غیرفعال سازی نبود

صحبتم این نیست ولی راهکارش :
sudo nmtui
Edit a connection
<select your network interface>
IPv4 Configuration section —> select show
DNS Server —-> select Add:
4.2.2.4
8.8.4.4
8.8.8.8
یکی ازینا یا هر ۳ رو انتخاب کنید
Select:
Ignore automatically obtained DNS parameters

بعد OK, میزنید و Back
Activate a connection
رو وارد میشید اون interface ایی که تنظیم کرده بودید رو یکبار غیر فعال و مجدد فعال می‌کنید
دیگه این اتفاق براتون نمیوفته توی آندروید و iOS و ... هم این تنظیمات هست.

حالا صحبتم این نیست؛ من تنظیمات بالا رو روی یکی از سیستم‌ها و چندتا از سرورها انجام نداده بودم؛ ۲ روز قبل به یکباره اتصالم به خیلی از سایت‌هایی که روزانه چک میکردم قطع شد.
بررسی کردم دیدم مشکل از DNS هست که خالی شده cache و بعدم دیگه این سایت‌هارو نمیگیره فکر کردم بخاطر تجهیزات و ابزارهایی هست که استفاده می‌کنم و تست میگیرم

امروز اومدم روی یکی از سرورها دسترسی بگیرم به سایت دیگری دیدم این اتفاق اونطرف هم افتاده؛ با سایت‌هایی که روی local خودم تست زده بودم چک کردم دیدم اونها هم همین مشکل رو دارند.

روی سرویس‌ دهنده‌های دیگه اینکار رو کردم (سرورهای خودم) دیدم اون‌ها هم همینطور شده

بنظرتون اوضاع داره بدتر هم می‌شه ؟

با این وضعیت باید با رفقا هماهنگ کنم از starlink ایی که دارند استفاده کنیم پروژه‌هامون رو تحویل بدیم.
چون روی یکی از سرورها گیت‌هاب رو هم ندارم.


پ.ن :
فکر کن یکی بیاد بگه push میزنم پروژه‌ات رو
هر push میشه ۲۰۰۰ تومن ؛ هر pull پروژه خودت باشه ۱۰۰۰ تومن پروژه سنگین باشه ۵۰۰۰ تومن
هر pull request بین ۲۰۰۰ تا ۱۰.۰۰۰ تومن میوفته
و برای fetch and merge هم ۵۰۰۰ تا ۲۰.۰۰۰ تومن
اگر merge با conflict باشه ۵۰.۰۰۰ تومن میشه


لطفاً اگر این اتفاق برای شما هم افتاده اطلاع بدید.
👍24😢9👎1