TECH STASH – Telegram
TECH STASH
212 subscribers
114 photos
5 videos
15 files
253 links
اینجا هر چی رو که یاد میگیرم، به اشتراک میزارم...
هوش مصنوعی، لینوکس، اوپن سورس، برنامه نویسی و...

Admin: @D3F4U1T_ARS
Download Telegram
وقتی بدون خوندن داکیومنت زبان جدید میخوای کد بزنی 😁

@devefun ✌️
TECH STASH
برنامه py-spy یه profiler خیلی خفنی هست که با rust نوشتن. ولی خب تنها کارش profiling هم نیست. آپشن اینم داره که stack frame هاتون رو هم نشون بده. و همینطور متغییر های داخل هر frame. خیلی چیز خوبی هست و من ازش تو ویندوز استفاده کردم که یه باگ مزخرفی رو پیدا…
این برنامه py-spy که بهتون معرفی کرده بودم.
یه سری مشکلاتی داشت روی ویندوز که با استفاده conda از محیط conda فیکسشون کردم.

یا مثلا pyinstaller که یه سری ارور هایی میداد که با اجرا تو محیط conda عملا برطرف شد.

یادگیری محیط conda به نظرم میتونه مفید باشه از اونجایی که کاملا stable و ایزوله هست.
اونایی هم که ML و Data Science کار میکنن که دیگه حتما باهاش آشنایی پیدا کنن چون بیشتر استفادش واسه اینه.
دو ورژن ازش داریم
Anaconda
که سنگین هست و به نظرم بدردتون نمیخوره مگر اینکه نیاز دارید به همه ابزاراش
https://www.anaconda.com/

miniconda
که خودم استفاده میکنم و سبکه.
https://docs.conda.io/projects/miniconda/en/latest/

عملا فرقی ندارن و فقط یکی آماده تره واسه مصارف ML و Data Science.
داکیومنتش هم اینجاست
https://docs.conda.io/en/latest/

آموزش ویدیویی راجبش ندیدم ولی خب بعد از نصب حواستون باشه که مسیر
/path/to/miniconda3/condabin
داخل PATH برنامه سیستمتون باشه

و همینطور
conda init
هم یه دور بزنید که ساپورت شل conda آماده بشه.
TECH STASH
این برنامه py-spy که بهتون معرفی کرده بودم. یه سری مشکلاتی داشت روی ویندوز که با استفاده conda از محیط conda فیکسشون کردم. یا مثلا pyinstaller که یه سری ارور هایی میداد که با اجرا تو محیط conda عملا برطرف شد. یادگیری محیط conda به نظرم میتونه مفید باشه از…
مشکلاتی که سر pyinstaller رو داشتم بخوام دقیق بگم این بود که نمیتونست لایبرری کامپایل شده
_ctypes
رو پیدا کنه.

کلا عجیب بود...
فکر هم نمیکردم مشکل از installation من باشه. چون چند بار تست کردم.
TECH STASH
داکیومنتش هم اینجاست https://docs.conda.io/en/latest/ آموزش ویدیویی راجبش ندیدم ولی خب بعد از نصب حواستون باشه که مسیر /path/to/miniconda3/condabin داخل PATH برنامه سیستمتون باشه و همینطور conda init هم یه دور بزنید که ساپورت شل conda آماده بشه.
حالا که تست کردم
conda init
کار ست کردن PATH رو انجام میده. فقط رانش کنید از اون مسیر دیگه حله.

یه چیزی هم یادم رفته بود بهتون بگم
conda config --set auto_activate_base false
اینم ران بکنید که بعدا اذیت نشید.
اکتیو شدن اتوماتیک محیط conda رو با اجرای هر شل جدید غیر فعال میکنه.
اگر دوست دارید کد پایتون اتون رو مخفی کنید از یوزر ها و توزیعش بکنید حتما از Cython استفاده بکنید.

دیدم دوستان به سمت
https://pypi.org/project/pyarmor/
که استفاده کردم و آنچنان امن نیست

و همینطور
https://github.com/0sir1ss/Anubis
که اینم متاسفانه درست کار نمیکنه و تو این issue مشخصه.

حتی خود pyinstaller هم همچنین روشی رو پیشنهاد کرده
https://pyinstaller.org/en/stable/operating-mode.html#hiding-the-source-code

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

و اینکه هر کاری هم بکنید مهندسی معکوس کردن غیر ممکنه نمیشه. اما به شدت سخت میشه.
PyPy
یه نوع پیاده سازی دیگه از پایتون که از JIT استفاده میکنه واسه سرعت بخشی به برنامه.

https://youtu.be/jDzarqUQvK0

بخش compatbility اش رو بخونید تا ببینید که استفاده ازش تو چه مواردی ممکنه مشکل هایی رو به همراه داشته باشه.
به نظرم که اوکی هست و خیلی compatibility خوبی داره.

https://www.pypy.org/compat.html

همینطور قابلیت ها و ویژگی های جالبی داره.
از جمله ساپورت stackless و greenlets که یه زمانی در اکوسیستم پایتون خیلی معروف شده بودن.

https://www.pypy.org/features.html
یه سری از دوستان از تغییراتی که نه چندان اخیر ایجاد شده بود تو pip و اجازه نصب پکیج ها روی سیستم رو نمیداد شاکی بودن.

چون یه سری از پکیج های پایتون عملا برنامه اجرایی هستن که بعضیا استفاده میکنن.
اگر میخواید چنین پکیج هایی رو نصب کنید سمت ایجاد کردن virtual environment نرید.
pipx
تو تمامی مخازن توزیع ها باید باشه و اینو نصب کنید میتونید باهاش تمام برنامه هایی که میخواید رو نصب بکنید.

دلیل تغییراتی هم که ایجاد شده اینه که پکیج های نصب شده با پکیج های سیستمی در تداخل نباشن.
اینطوری با نصب از pipx هیچ تاثیری منفی روی کارکرد و پایداری سیستمتون نخواهد داشت.
Forwarded from memealloc
Forwarded from Python Hints
متن این تصویر نصف ایران رو بدبخت کرده
نصف دیگه هم که نکرده، تو عمرشون برنامه‌نویس نبودند.

برنامه‌نویس سرمایه گذار شرکت شما نیست، به اندازه شما مطمئن به کار و ایده شما برای پیشرفت نیست (توی بهترین حالت اگر شما ۱۰۰٪ مطمئن از پیشرفت هستید برنامه‌نویس باید روی ۶۰-۷۰٪ بشینه بیش از اینش توهم و حرف هست)

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

حتی اگر پیشرفتی هم نباشه براش و هم سطح کار شما باشه، برنده شرکتی هست که مزایا + برخورد بهتر + امنیت فکری بیشتری رو به نیرو ارائه میده

به همه‌ی برنامه‌نویس ها هم باید بگم :
قبل از جابجایی مطمئن بشید ۲ بار فکر می‌کنید، جابجایی توی بهترین حالت هم همیشه ۱۰-۲۰٪ ریسک هست

اما پایندی به شرکتی لطف شما هست نه وظیفه شما.

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

روی IDE اش هر چیزی که بخوام سوار کردن و بیشتر.
حالا واسه اینکه شما هم لذت ببرید کرک برنامه هاشو از خود منبع اصلی (که soft98 هم ازش استفاده میکنه) گیر آوردم.

شامل دو بخش هست
1- یه فایل index.html که activation key ها داخلش هستن
2- پوشه files هم شامل فایل فشرده crack هستش. و مراحل نصبش هم خیلی ساده.
- از حالت فشرده خارجش کنید
- داخل فولدر استخراج شده سراغ پوشه noscripts برید. برای لینوکس install.sh و برای ویندوز install-all-users.vbs برای کل یوزر ها و install-current-user.vbs برای یوزر فعلی بزنید.


⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️
حواستون باشه که run as admin یا sudo نزنید
و در آخر هم بگم که من بررسی های متعددی روی فایل انجام دادم ولی نمیتونم صد در صد بگم که safe هست یا نه.
⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️
در ضمن. میدونستید که sqlite هم قابلیت profiling داره؟
خیلی ویژگی جالبی هست چون نمیدونستم دیتابیس ها پروفایلر هم دارن.
بزودی ازش استفاده میکنم تجربه کارم رو بهتون میگم.

https://www.sqlite.org/profile.html