Python Hints
الذهاب إلى القناة على Telegram
Python tips and tricks The Good, Bad and the Ugly توی این کانال فقط قرار هست در مورد core python صحبت کنیم. این کانال یک بلاگ شخصی هست و پیرامون نظرات و چیزهایی که توی بیش از ۱۰ سال کد زدن یاد گرفتم (فقط برای کمک به دوستان تازهکار) Admin: @Abbasi_ai
إظهار المزيد9 605
المشتركون
+924 ساعات
+647 أيام
+22130 أيام
أرشيف المشاركات
9 605
به طرز خیره کنندهای تعداد مشاغل
remote
برای پایتون و django با پرداخت دلاری مبالغ خوب توی چند هفته گذشته بالا رفته
حتماً یک سری بزنید (لینکدین)
جالبتر اینکه توی پایتون دیگه هوش مصنوعی و ... نیست
Senior Python Software Engineer
بسیار زیاد شده.
من هم که کرم مصاحبه رو دارم، چندتا مورد رو که مصاحبه دادم واقعاً سوالات بطور خیلی منطقی و درستی همون موضوعات
Software Engineering
هست، فارغ از هرگونه سوال درمورد
Framework
های معروف پایتون،
خیلیها فهمیدند که کسی که core python رو بخوبی بلد باشه میتونه توی همون چندماه onboard, تسکهای اولیه فریمورک مورد نظر شرکت رو یاد بگیره
به امید روزی که توی ایران خودمون هم این موضوع جا افتاده بشه (هرجا که خودم مسئول باشم تمام تلاشم رو میکنم آدمهارو با میزان درک از core python استخدام کنم فریمورک رو همه میتونند زود یاد بگیرند)
یکی از خفنترین مصاحبهها سوالات الگوریتمش
2-3-4 Tree
بود که خب جزو مسائل سخت هست (حتی برای Senior Software Engineering که بسیار مصاحبه جذابی بود برای خودم).
9 605
اگر راجب چیزی اطلاعی نداریم
نه توضیح میدیم
نه تخصصی حرف میزنیم
نه شوخی میکنیم.
این اصول رو یادگرفتن از خود کد زدن هم مهمتر هست.
9 605
این آخرین پست درباره موضوع لینوکس و ... هست (با توجه به اتفاقات اخیر)
ببخشید که کمی از بحث دور شدم؛ اما هدف داشتم
خیلی از بچههایی که روی AI کار میکنند و خیلی دیگه از توسعه دهندههای پایتون که وقت کاستومایز کردن و ... ندارند به جز Ubuntu متاسفانه گزینه دیگری ندارند برای همین وقتی دیدم Ubuntu دیگه رو به افول گذاشته (تمرکزش روی سرور هست و داره تلاش میکنه مثل RedHat بتونه از سرور پول در بیاره) ترجیح دادم کمی از موضوع اصلی کانال دور بشم و روی جایگزینهای Ubuntu صحبت کنم.
توزیعهای بسیار زیادی رو دوستان معرفی کردند و خودم میشناختم اما موضوع پشتیبانی از فریمورکها و پکیجهای مورد نیاز AI هم بود و البته سادگی راهاندازی توزیع هدف و میزان استیبل بودنش
همه اینها من رو رسوند به
Rocky Linux :
1- روی کاغذ هیچ توزیعی به اندازه این مورد استیبل نیست (که رایگان هم باشه) از روی RedHat Enterprise ساخته میشه و افراد مهمی پشتش هستند ( کسانی که CentOS رو این همه سال توسعه دادند )؛ پشتیبانی ۱۰ ساله هم داره ورژنهای اصلی.
۲- راهاندازیش میتونه به اندازه سواد و توانایی شما؛ ساده یا سخت باشه
مثلا من برای راهاندازی چون کارت گرافیک Onboard ندارم نمیتونستم از نسخه workstation برای نصب استفاده کنم و رفتم سراغ نسخه minimal ترتیب نصب هم برای اینکه به مشکل نخورید :
Rocky linux minimal --> install
tty : --> sudo dnf update
reboot
sudo dnf install group Workstation
nvidia-driver installation (follow cuda installation documentation instructions)
Before Reboot, Disable nouveau
reboot
Install cuda and ...
۲ تا نکته من چون تنبل بودم install group رو استفاده کرد بعد مواردی که بدردم نمیخورد رو حذف یا ادیت کردم
cuda, cudnn,
رو از روی داکیومنت اصلی خودشون که سایت nvidia منتشر کرده نصب کردم و بعد از نصب (چون ورژن قدیمی تر رو میخواستم نه آخرین نسخه)
repo
اش رو حذف کردم.
3- پکیجهایی که وجود نداره رو توی epel-release, flatpak, rpmfusion قطعا پیدا میکنید که خیلی راحت نصب میشه
چندتا توصیه اگر این ویژگیها رو دوست دارید و دستی هم بر آتش دارید یا علاقه به کاستومایز کردن : Xfce رو بجای Gnome استفاده کنید؛ چندتا باگ وجود داره که احتمالا بخاطر تجهیزات من هست (البته بسیار بسیار کمتر از میزان تغییراتی هست که روی Ubuntu باید میدادم تا سختافزارهام کار کنه) و اینکه آزار دهنده نیست.
در نهایت Python3.10 وجود نداره که خب باید کامپایل کنید و نصب کنید؛ اصلا هم سخت نیست دیگه (دیفالت 3.9 نصب هست و روی رپو هم 3.11 وجود داره) من اینطوری نصب کردم :
dnf update dnf install gcc openssl-devel bzip2-devel libffi-devel zlib-devel wget make sqlite-devel wget https://www.python.org/ftp/python/3.10.13/Python-3.10.13.tgz tar xzf Python-3.10.13.tgz cd Python-3.10.13 ./configure --enable-optimizationsبرای دستور بعدی من ۱۴ تا ترد رو در اختیار گذاشتم که سریعتر کامپایل بشه (این عدد رو کمتر میتونید بکنید شما)
make -j 14 nproc make altinstallبعد هم تست کنید که درست نصب شده باشه. تا اینجا هنوز هیچکدوم از مشکلات
ubuntu رو ندارم و با نصب هیچکدوم از پکیجها هم به مشکل نخوردم (حتی مشکلات و ارورهای بعد از نصب که توی ubuntu وجود داشت رو هم ندارم)
امیدوارم تا چندسال آبنده هم همینطوری بمونه.
جایگزین مناسب برای Ubuntu توی کارهای ما فعلا فقط و فقط Rocky Linux رو میتونم تایید کنم.
سوال بحث یا ... اگر بود توی گروه بحث آزاد :
@DevChaiChat9 605
Opera browser
رو نصب کنید، علاوه بر ویژگیهای خوبی که داره ( Adblock - Islands , ... )
که یک مرورگر فوقالعاده سریع هست و ...
مثل
Microsoft Edge
یک هوش مصنوعی برای پاسخ به سوالات هم داره من چندین سوال رو ازش پرسیدم بسیار بهتر از
Edge
جواب داد، بهش میگم که بهم توصیه شده فلان ابزار روی توی
/usr/local
نصب کنم ولی میدونم جاش باید توی
/opt
باشه، برام تحلیل کرده چرا opt منطقیتر هست، البته خودش هم از اول opt رو پیشنهاد کرده بود.9 605
#موقت
در طول این پروسه چون فکر میکنم خیلی طولانی تر از آنچه که باید میشه (بخاطر چیزایی که در مورد
Nvidia - linux
و درگیریشون میدونیم)
ادامه بحث رو توی
@DevChaiChat
میذارم، الان توی این وضعیتم که خب
Ubuntu *.04
که دیگه stable نیست (سرچ کنید دلایلش میاد)
Fedora
هم که LTS نداره و اتفاقات اخیر
RedHat
حتی تصمیم رو خطری میکنه
RockyLinux
به تنهایی فوقالعادهاس اما
Nvidia 3090
داره اذیت میکنه و نمیذاره محیطهای گرافیکی حتی موقت نمایش داده بشه (blank screen یا no reponse دارم)
یکی از بچهها پیشنهاد داد
Rocky
رو نصب کنم بعد توی tty2 بیام nvidia رو نصب کنم و ...
نمیدونم چطوری میشه اوضاع باید تست کنم ولی احتمال زیاد میرم سمت Xfce و بعد باید دستی بشینم کانفیگ کنم.
پافشاریم روی Rocky برای این هست که ۱۰ سال پشتیبانی داره
و اگر همین بار اول درست کانفیگ بشه، دیگه نباید دردسر خاصی داشته باشم.
9 605
این گذارش برای بچههای توسعه دهنده هوش مصنوعی و انتخاب توزیع جایگزین برای ubuntu :
CentOS هست و توسط مدیران ارشد همون پروژه اداره میشه، در پاسخ به IBM و عدم حمایت از
Fedora 38
رو نصب کردم، مشکلات ubuntu رو اصلا نداشت، درایور تمام سختافزارها رو به درستی نصب کرده بود (خیلی جای تعجب داشت، چون روی اوبونتو و ... همیشه شخصا اینکار رو میکردم، اونم نسخه کاستومایز شده)
و البته dual screen رو خیلی فوقالعاده پشتیبانی میکرد
اما مشکلاتش برای کار ما:
متأسفانه تقریباً هر ورژن اصلی cuda فقط برای یک نسخه و ورژن از fedora اومده
11.8 --> fedora 35
12.0 --> fedora 36
12.2 --> fedora 37
و هیچکدوم بطور رسمی fedora 38 رو هم پشتیبانی نمیکنه که خب خوب نیست. (مشکل از LTS نبودن فدورا هست)
اما واقعاً فوقالعاده بود و بیش از حد سریع.
Rocky Linux 9
با نسخه ۸ بسیار کار کرده بودم و عالی بود بخصوص روی سرور ورژن ۹ قطعاً بهتر خواهد بود (امیدوارم)
و چون بر اساس
RedHat
ساخته میشه خیالم کاملاً راحته که مشکلات آپدیت و ...
Ubuntu
رو نخواهد داشت (این پروژه جایگزین CentOS بعد از خرید Redhat)
در نهایت اگر با این مورد هم زه مشکل بخورم
Pop_OS!
خیلی سال پیش معرفی کردم و روش بودم، (چون طرفدار system76 بودم)
و حالا که پیشرفت زیادی داشته بهتر از ubuntu هم هست (بالاخره یک سرس چشم دیگه روی کدهای ،،u9 605
داشتم با یکی از بچهها چت میکردم
یادم انداخت (حدوداً) سری قبلی که این اتفاق برام افتاده بود
البته اون موقع
Bad sector
روی HDD بود تازه داشتم پایتون یاد میگرفتم و همه کدهام رو روی پایتون بازنویسی کردم
الان دارم
Rust یاد میگیرم.9 605
تا ۳ ماه که فکر نمیکنم جز کد زدن و رسوندن خودم به جایی که دیشب بودم کاری داشته باشم 😂🤣
ولی اگر وقت کتاب هوش خوندن داشتم قطعاً این کتاب رو شروع میکردم به بررسی :
Understand deep learning (book with codes)
ولی کد از دست دادن، مرگ که نیست
نهایتاً مجبور میشم دوباره بشینم فکر کنم و بزنم (علمش رو که از دست ندادم)
خلاصه خیلی هم ناراحت نیستم واقعیتش.
9 605
برای من بدترین بخش این داستان نوشتن و ارسال این متن به شرکتها بود، برای منی که تا حالا مرخصی ساعتی هم نگرفتم تسک عقب افتادن واقعاً درد هست :
I am sorry to inform you that I will be unavailable for any work-related tasks for at least the next three days. I have lost more than 700GB of code and data due to a technical issue and I need some time to recover it. I appreciate your understanding and patience in this difficult situation. I will only be able to answer calls and provide help if needed, but I cannot do any coding or other assignments until I restore my environment and files. Thank you for your cooperation and support.
امیدوارم قبل از روز ۱ شنبه بتونم حداقل کدها رو برگردونم (نسخه اصلی رو روی گیتهاب دارم اما خیلی نسخهها ایدههای خودم بودم و شخصی نگه میداشتم که مجبور نشم چندباره تست بگیرم) باقی دیتاها رو هیچ نیازی ندارم.
9 605
rm -rf
روی پارتیشن اشتباه زدم
۷۰۰ گیگ دیتا و کد و ... به فاک رفت
بعد از آپگرید، اوبونتو اطلاعات
UUID
۲ تا از پارتیشنها رو تغییر داده بود، فکر کردم
mount
نشده چون چندبار که تست کردم نشده بود و دستور رو اجرا کردم تا دستی
mount
کنم و بکاپ بگیرم که همهی دادهها پاک شد.
با این خبر احتمالا چند هفتهای در دسترس نیستم.9 605
5-10 دقیقه دیگه لینک رو بر میدارم که دیگه وسط صحبت
حواس پرتی بابت تایید درخواست حضور ایجاد نشه
9 605
هی خودش رو غیر فعال کردم،
حالا نیرو فرستاده
یک سوال جدی ولی دارم، چطوری میشه ریپلای رو روی
Message
لینکدین بست ؟ کسی اگر میدونه بگه لطفاً
9 605
فردا بین ساعت ۱۳ تا ۱۵ (شروع قطعاً نزدیک به ۱۳ خواهد بود با ۵-۱۰ دقیقه اختلاف) لینک این جلسه رو خواهم گذاشت
با توجه به تعداد
Reaction
مثبت، فکر میکنم google meet ظرفیت کافی رو خواهد داشت.
9 605
سخت ترین متقلبی که گرفتم (هندی بود)،
این مدل لپتاپ رو داشت و توی اسکرین پایین براش تایپ میکردند و توی اسکرین بالا هم خودش تایپ میکرد و ما میدیدیم،
از نظر دوربین و .... هم برای ما انگار طرف داره فقط به اسکرین اصلی یا کیبورد نگاه میکنه.
9 605
تقلب توی مصاحبه از هندیها به ایرانیها هم رسیده.
توی مصاحبه زرنگ باشید و خفت کنید.
تخصص (خفت کردن) رو دارم، شخصاً
9 605
توی اون مسئله معرفی توزیع لینوکس جایگزین
یکی از دوستان
Senior DevOpsبهم این مورد رو معرفی کرد : NixOS از اونجایی که کاملا خاص بود و تا حالا راجبش نشنیده بودم؛ یک سری جستجو زدم روی این موضوع. و خدا میدونه آرزو میکردم زمانی که شغلم سرور بود این رو پیدا کرده بودم و یاد میگرفتم (برای من کاربردی نداره اما اگر شما
devops یا linux server کار میکنید حتما بهش نگاهی داشته باشید)
دستمزدهای کاریش رو هم دیدم (پرداختهاش خیلی خیلی بیشتر از باقی تخصصهای این زمینه هست)
متاح الآن! بحث تيليغرام 2025 — أهم رؤى العام 
