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

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

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

Admin: @Abbasi_ai
Download Telegram
#خارج_از_بحث

از اونجایی که هر بار به مشکلات پرداختم به لطف شما عزیزان سریعا به گوش تیم پشت قضیه رسیده (خیلی‌ها پیام دادند)
اینبار هم می‌خوام همینکار رو بکنم+ پیشنهاد هم دارم.

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

اما مشکلات :
از بانک سینا شروع کنم که مزخرف‌ ترین سرویس احراز هویت آنلاین و افتتاح حساب رو داره :

۱- بصورت غیر مجاز و غیر قانونی و البته بدون هیچ اطلاع یا اخطاری روی بعضی گزینه‌ها که کلیک می‌کنید از دوربین جلو عکس می‌گیره، دوربین گوشی من کشویی هست و کاملاً مشخص میشه اینکار.

۲- احراز هویت چهره‌اش، اگر تصویر کارت ملی بدون ریش و کچل باشید (اگر عکس پروفایل من رو ببینید من ۷-۸ سال موهام رو میزدم) نمی‌تونه شمارو تأیید کنه و تیم هوش مصنوعی انقدر ناشی و نابلد بوده که گزینه‌ای برای درخواست تأیید هویت انسانی نداره چیزی که بدون شک باید وجود داشته باشه


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

حالا شما بیا هی رنگ کارت رو عوض کن، بانک‌های عزیز، تیم محصول و ....
لطفاً دست از دلقک بازی بردارید، خدماتی ارائه بدید که واقعاً بدرد بخوره و مشکل حل کنه.
شما همچین سرویسی رو ارائه بدید من قول میدم با شرکتی که با شما قرارداد نداره کار نکنم.

اضافه کنم : پیگیری کردم این مشکل رو همه اطرافیان دارند.
👍58👏42👎1
بیش از ۵۰ ساعت بیداری و گذراندن جلسات روزانه به زور قهوه حالا که باید خواب ندارم (زور کل‌ قهوه‌های صبح تا عصر هست)

پس تفاوت byte, unicode رو ببینم.
توی این مثال تمام دیتاهای داخل فایلی که من برای تست استفاده کردم (دیتای شرکت هست برای کاربرها و نمی‌تونم به اشتراک بذارم) داخل محدوده کاراکترهای ASCII هست همین باعث میشه که utf-8 برای من اهمیتی نداشته باشه.

بعلاوه من فقط یک سری regex و آنالیز کلی روی این دیتا نیاز دارم (مثلا شمارش میانگین استفاده کاربرها از سرویس A و ...) که این موارد هم نیازی به utf-8 نداره و میشه دیکشنری با کلید byte هم داشت و ...

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

اما یک اشتباه رایج رو هم بگم که پرفورمنس شما رو به راحتی خراب می‌کنه :
موقع استفاده از regex دقیقا ماژول regex رو منظورم هست و نه re ؛ باید حواستون باشه که پترنی که سرچ می‌کنید برای دیتای byte هست (نکاتی که توی لایو توضیح دادم)
و البته مهمتر از هرچیزی اگر مثل من حجم فایل شما هم به بیش از چند گیگ میرسه؛ حتما حتما اون regex pattern رو کامپایل کنید.

اضافه کنم:
توی زمان جوونی‌های ما؛ پایتون 2 رو اگر یادتون باشه ممکنه خیلی سورس کد بصورت rb برای دیتای txt دیده باشید (توی پایتون ۳ خیلی خیلی کمتر امکانش هست ببینید.) مخصوصا اینکه زمان ظهور بیگ دیتا بود.
دلیلش هم اینه که توی پایتون ۳ فرق بین r, rb معمولا بین ۱.۵ تا ۳ برابر هست از نظر زمانی (توی ورژن‌های ۳.۱۰ به بعد نهایتا تو بدترین حالت ۲ برابر سریعتر هست)

اما توی پایتون 2 این تفاوت سرعت بسیار بسیار بیشتر بود بطوری که حتی توی فایل‌های متنی چندصد مگابایتی هم این تفاوت کاملا مشهود بود و نیازی به timeit نبود.

در حال حاضر ما این تکنیک‌ها رو روی پردازش داده‌های هوش مصنوعی استفاده می‌کنیم بخصوص وقتی حجم داده‌ها بیش از چند صد گیگابایت هست.
بازم تاکید می‌کنم regex هاتون رو همیشه کامپایل کنید.
👍485🤓5🆒211🔥1🍓1
Lose Control
Teddy Swims
هندزفری لازم


پ.ن: من موسیقی که باهاش حال کنم رو توی این کانال میذارم
@pytensMusic
22👍11👎7❤‍🔥4👌31🕊1💯1
#Quick

هارد‌هاتون رو تمیز کنید

1.6 TB

فضای خالی بدست اومد.


کاری که من کردم :
۱- کل فایل‌های روی ۳ تا هارد اصلیم رو بدست آوردم و توی یک csv شامل این ستون‌ها ریختم؛

اسم فایل، پسوند، مسیر، حجم فایل، تاریخ ایجاد


بعد اول بر اساس اسم
و بعد از اون بر اساس تاریخ مرتب کردم
حدود ۸۰۰ گیگ با همین وضعیت پاک شد.
دیتاهای duplicate نبودند ولی مثلاً بکاپ فایل‌ها بودند که خب با وجود اینکه توی تاریخ‌های بعدی نسخه آپدیتش رو گرفته بودم فراموش کرده بودم نسخه قبلی رو حذف کنم.

کد قبلی رو با multi-threading, ThreadPool زدم و کمتر از ۱ ثانیه اجرا شد.

۲- بعد از اون یک سری فایل‌ها بودند که مشکوک بودم duplicate باشند؛
پس با md5 شروع کردم hash کردن، از multi-process استفاده کردم، و اینجا هم حدود ۱۰۰ گیگ duplicate پیدا شد که بعد بررسی دیدم دقیقاً یکسان هستند و پاک شد.

۳- من همیشه توی کدهام، اسم virtualenv هارو .venv میذارم پس دنبال این‌ها هم گشتم + مدل‌های هوش مصنوعی با پسوندهای مختلف باقی موارد هم همگی برای این‌ها بود
دقیق بررسی نکردم ولی فکر کنم ۲۰۰ گیگ .venv داشتم (عادت دارم کل پوشه پروژه رو میفرستم روی هارد بکاپ)


خلاصه که کار خوبیه و تکنیک‌هایی هم که گفتم برای من خیلی جواب بود، شما هم دوست داشتید استفاده کنید

.

۹۰٪ کدهاشم دادم codestral برام نوشت و فقط مطمئن شدم پیاده‌سازی درست هست و اجرا کردم، اما دسترسی دیلیت بهش ندادم.
همرو دستی دیلیت کردم که این بخش یک مقدار زمانبر شد.


اضافه کنم:
برای آخر هفته یک auto indexer + notifier + web هم پیاده خواهم کرد که بهم یادآوری کنه بکاپ‌های قدیمی رو پاک کنم اگر بر اساس اسم مشابه بود (همچنین باقی فایلا)
یک مورد هم برای .venv اضافه کنم و در نهایت web endpoint رو هم بذارم قبل از اینکه چیزی رو برای چندمین بار دانلود کنم بتونم سرچ کنم که آیا دانلود شده روی سیستم دارم یا خیر
❤‍🔥38👍24🔥2👌21
Python Hints
#بسیار_مهم #خارج_از_بحث خواهشاً بیاید این مورد رو آنقدر به اشتراک بذاریم که همه رعایت کنند. چند وقت پیش دنبال یک نیروی React برای شرکت یکی از دوستان می‌گشتم، گفتم میرم لینکدین چندتا پروفایل open to work رو می‌بینم و درخواست رزومه میدم به اون‌هایی که بنظرم…
#Quick

اگر توی LinkedIn وضعیت خودتون رو به #OpenToWork تغییر می‌دید حتماً قبلش پروفایل و اطلاعات اصلی خودتون رو تکمیل کنید.
مهمترین موارد :

۱- لوکیشن (محل سکونت٫اقامت)
۲- توضیح مختصر در مورد خودتون، تجربیاتی که دارید
۳- اطلاعات سابقه کاری
۴- وضعیت تحصیل (دانشجو هستید یا خیر)
۵- مدارک و ....

توی این هفته، کلی پروفایل LinkedIn رو که Open2Work بودند بررسی کردم شاید بتونم بگم فقط ۳۰٪ بطور کامل تمام اطلاعات مهم رو درست و دقیق داشتند.

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

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

۱- تصویر پروفایل (بهتره تصویر پارک و ... نگذارید.)
۲- تصویر بنر
۳- پست‌هایی که پین کردید
۴- پست‌هایی که لایک٫کامنت می‌کنید

بازم همون قانونی که توی رزومه نویسی گفتم،
نه خیلی رنگی و ... که انگار برای موقعیت شغلی دلقک شرکت کردید (عاشق دلقک هستم)
و نه خیلی مشکی و بدون چیزی که حوصله سر بر باشه
مثل یک ui/ux کار ببینید.
باید جوری باشه که طرف حداقل ۱۰ دقیقه وقت بذاره (ولی توی ۲ دقیقه اطلاعات مهم روزمه شمارو بخونه، شما تو چشمش فرو کنید.)

پروفایل من رو مرجع نکنید، من توی لینکدین دنبال کار نمی‌گردم، برای همین اصلا آپدیت نشده.


اضافه کنم :

لطفاً از ابزارهای رزومه سازی استفاده نکنید (مخصوصاً اینایی که همه‌جای روزمه شما اطلاعات سایت رو می‌نویسند)
نهایتاً اینکه
ازشون ایده بگیرید، قالب رو بسازید و بعد خودتون خروجی pdf بدون watermark رو بگیرید و ارسال کنید.
این موضوع خیلی مهم هست، و رعایت نکردنش نکته منفی بزرگی می‌تونه باشه برای کارجو.
👍4210😨1
#موقت

اگر دقت نکرده بودید
تمام تصاویر گروها، لوگو کانال، لوگو یوتیوب و ....
+
تمامی thumbnail های ویدئو‌های یوتیوب همگی با کمک هوش مصنوعی ایجاد شده
صفر تا ۱۰۰ بدون هیچ تغییری (غیر از لوگو البته)
👍29❤‍🔥7🆒6🤓4😭1
#خارج_از_بحث

به بهانه انتشار خبر تولید Framwork laptop با پردازشگر Risc-V
خیلی سال هست که معماری Risc-v رو دنبال می‌کنم اما نه حرفه‌ای فقط از روی اولی که OpenSource بودنش رو فهمیدم دنبال اخبار هستم (بنظرم خیلی چیز و چیزهای بزرگی ازش بیرون خواهد آمد)
این خبر که حالا framework داره با این پردازشگر هم تولید میشه و مردم هم خرید می‌کنند و از طرفی هر دو غول Linux :

Canonical (Ubuntu), RedHat (Fedora)

از این معماری پشتیبانی خواهند کرد قدم بزرگی هست.

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

چندسال قبل System76 گزینه اولم بود ولی به محض ورود Framework به بازار با System76 خدافظی کردم؛ البته خود System76 هم مقصر بود چون اون آزادی در انتخاب قطعات و ... رو از روی سایت برداشت.

برای کسایی که آشنایی ندارند؛ Framework یک تولید کننده لپ‌تاپ هست که کاملا ماژولار هست؛ نه تنها موقع خرید حتی سال‌های بعد.
یعنی شما می‌تونید بعد از چندسال یک مادربرد یا cpu یا gpu یا حتی display, ... جدیدتر سفارش بدید و بدون نیاز به تعمیرکار و نهایتا با چند دقیقه وقت لپ‌تاپ رو کامل آپگرید کنید.
قیمت قطعات هم بسیار بسیار ارزون و بسیار بسیار فوق‌العاده هست.

خلاصه که این خبر برای من ۲ طرفش خوشحال کننده بود؛ هم Risc-V چون کاملا قابل کاستومایز شدن برای تسک خاص هست و هم Open Source بودنش یعتی هزینه ساخت و هزینه تمام شده برای مشتری پایین تر خواهد بود.
هم Framework که با این ریسکی که کرده یعنی اوضاع بیزینس خوبی داره و توی طراحی قطعات ماژولار خیلی خیلی وضعیت بهتری داره نسبت به نسخه‌های قبلی

قطعا لپ تاپ بعدی من Framework هست حتی اگر شخصا مجبور بشم وارد کنم؛ اما اینکه معماری Risc-V باشه نمیدونم.
38👍16🐳1👻1
توی سال‌های مختلف زندگیم
خیلی قشنگ درک کردم،

خر همون خره، فقط پالونش عوض می‌شه

رییس جمهوری هم همینه

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

دیروز دیدم، مدیرعامل (استارتاپ برای خودش هست) با کلی چرت و پرت و چرندیات زده که برید و رأی بدید و ...

یک جستجو زدم، دیدم سر خریتش تو آخور نظام هست.

پیام دادم به مدیر HR شرکت و گفتم که امکان ادامه همکاری نداریم تا وقتی ایشون قرار هست مدیرعامل باشند،
شریک آمریکایی طرف پیام داد (چون خیلی فنی با سواد هستند) و براش توضیح دادم.

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


نزدیک انتخاب شده،
خواستم بگم توی این سال‌ها نه رأی دادم، نه رأی میدم.
هر کی سمت گرفت توی این مملکت، هم دزدید هم کشت.

خلاصه که من فراموشکار نیستم.

#رای_نمیدم
از خیر سود شخصی هم می‌گذرم به امید آینده بهتر برای ایران و نسل بعدی.


اگر ازین دسته هستید، هم گروها هم کانال‌ها
هم لینکدین و هم هرجای دیگر
لطفاً آنفالو و ریمو کانکشن کنید.


اضافه کنم :
راجب concurrency و ... هم تصمیم گرفتم یک سری پست بذارم (شاید حتی کمی مبتدی).
👍16456👎38👏15❤‍🔥8😁3👌2🗿2🍾1
Python Hints
اوضاع اینترنت شما چطور هست ؟
درسی از دیتا.
گزینه سوم، کلا اشتباه هست.
طرح سوال و گزینه اشتباه توی پلتفرم اشتباه.
چون قطعاً کسی که اوضاع اینترنت براش افتضاح هست اینجا نیست که گزینه‌ای رو انتخاب کنه (پس دیتا بایاس میشه)

ولی اوضاع اینترنت سمت محل زندگی خودم اینطوری هست، و تقریباً ۱ ساعت طول کشید تونستم سروری پیدا کنم که vpn راحت بشه روش کانفیگ کرد.
21👍12👌3👎2🤷‍♂1🤔1
ویدئو این جلسه رو اگر کسی رکورد کرد لطفاً با بنده به اشتراک بذاره

متوجه نشدم،
قبل از شروع جلسه
Autoplay
یوتیوب شروع شده بود و یک دوره آموزشی رو با سرعت بالا پلی کرده که صدای ویدیو خودم رو خراب کرده

سر جلسه هی میگفتم چرا ی صدای ریزی میاد،
پ.ن : من از هندزفری‌های متفاوت برای ضبط صدای خودم و رکورد استفاده می‌کنم.
برای همین تا آخر جلسه متوجه مشکل صدا روی رکورد نشدم
😢23😁157👍6😐5🤝3🍓1🗿1
خواستم بگم رئیس جمهور جدیدتون نیومده
اینترنت و سرویس‌ها و سرورها به باد رفت که
👍85😁36👎25😢7🗿4🤪31🤯1🦄1
Python Hints
فصل ۶ https://youtu.be/kjSH58nKgfw
فصل ۷

https://youtu.be/cTw49b3X96k


لایک، کامنت، سابسکرایب و اشتراک گذاری
همگی مفید هست قطعاً
فراموش نکنید 🌹



پ.ن :

به ۳.۲۰۰ ویو روی یوتیوب رسیدیم و همچنان بیشترین ویو رو ویدئو قسمت اول و نحوه کتابخونی داره.

بیشترین، درخواست هم برای این نوع ویدئو ها هست بجای ویدئو آموزش 🤔
41👍9❤‍🔥2🦄1
امروز صبح رفتم پروژه یک شرکتی رو دیدم؛
خیلی جالب بود واقعا (استارتاپی) اما هرچی جلوتر میرفت نمی‌دونستم بهشون بگم کل ۶ ماه زحمتشون رو باید بازنویسی کنند یا نه.

خودشون انقدر غرق کد و قشنگی ایده و ... شده بودند که هیچکدوم متوجه نشدن کدها و کاری که می‌کنند بخش‌های زیادیش
mission critical / safety-critical

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

بعضی وقتا از محصولتون فاصله بگیرید؛ از بیرون بهش نگاه کنید.
به کل سیستم.
👍63👏6👎3🤪32💘1
یکی از دوستان توی گروه بحث آزاد یک ویدئو در مورد GIL گذاشت و من یاد این موضوع افتادم که از نسخه Python 3.13 شما می‌تونید یک build تقریبا stable (البته نه برای پروداکشن) روی برنچ nogil داشته باشید برای Cpython
GitHub Link

که خب اگر به اندازه کافی طرفدار و کامیونیتی داشته باشه؛ pre-build منتشر خواهد شد و در دراز مدت بعنوان نسخه دیفالت پایتون منتشر خواهد شد.

این موضوع اهمیت بسیار؛ بسیار بالایی داره برای بهینه سازی پایتون و براحتی می‌تونه کدهای multi-thread رو چندین برابر سریعتر کنه

Python multithreading without GIL
PEP 703 - Making the GIL Optional in CPython
👍32👌21👏1😈1
یک خیر خوب دارم؛ یک خبر بد.

اول خبر بد؛ از vscode برای این چندسال اخیر ممنونم.
برای اینکه از نصب pycharm نجاتم داد.
ولی اصلی‌ترین مشکلی که همه باهاش داریم Electron هست.
و این یعنی همونطور که همه می‌دونستیم بالاخره یک روز همه‌ی ماها باید بذاریمش کنار و عاقبتش مثل Atom خواهد شد.

Zed is a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter. It's also open source.


اما خبر خوب؛ حتی اون روز هم که برسه بازم نیازی به نصب Pycharm نیست.
در مورد Zed قبلا توی کانال Rust صحبت کردیم؛ گفتیم چقدر سریع و موثر هست (دقیقا چون با Rust نوشته شده) اما باید بگم از GPUI هم استفاده می‌کنه .
ولی نسخه Mac داشت فقط تا اینکه با توجه به طرفدارهای لینوکسی پروژه بالاخره نسخه لینوکس هم اومد‌( ۲ روز پیش اومد)

بدون تعارف می‌گم فوق‌العاده هست؛ سرعت اعمال تغییراتش متعجبتون می‌کنه.

شخصا نصب کردم؛ باهاش ادامه میدم (البته فعلا جای vscode رو نمی‌گیره ولی بزودی ...)

اضافه کنم:
نسخه ویندوزی نداره (می‌تونید خودتون build کنید) البته فرقی هم نمی‌کنه چون اگر سرعت و پرفورمنس براتون مهم بود ویندوز نصب نمی‌کردید که 😂

https://zed.dev

پ.ن : 
ویژگی collaborator اش رو تست نکردم ولی خیلی مشتاقم براش.
توی vscode هم کند هست (extension) هم باگ داره هم فیلترینگ و تحریم داریم باهاش.
اینجا چون native هست فکر نمی‌کنم انقدر دردسر بشه؛ خیلی مشتاقم.
😁2313👍7😐6👎4👌32👏1😍1🍓1