Python Hints
Python tips and tricks The Good, Bad and the Ugly توی این کانال فقط قرار هست در مورد core python صحبت کنیم. این کانال یک بلاگ شخصی هست و پیرامون نظرات و چیزهایی که توی بیش از ۱۰ سال کد زدن یاد گرفتم (فقط برای کمک به دوستان تازهکار) Admin: @Abbasi_ai
نمایش بیشتر📈 تحلیل کانال تلگرام Python Hints
کانال Python Hints (@pyhints) در بخش زبانی فارسی بازیگری فعال است. در حال حاضر جامعه شامل 10 190 مشترک است و جایگاه 11 887 را در دسته فناوری و برنامهها و رتبه 31 810 را در منطقه إيران دارد.
📊 شاخصهای مخاطب و پویایی
از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 10 190 مشترک جذب کرده است.
بر اساس آخرین دادهها در تاریخ 16 اکتبر, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر 108 و در ۲۴ ساعت گذشته برابر 4 بوده و همچنان دسترسی گستردهای حفظ شده است.
- وضعیت تأیید: تأیید نشده
- نرخ تعامل (ER): میانگین تعامل مخاطب 24.09% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 12.77% واکنش نسبت به کل مشترکان کسب میکند.
- دسترسی پستها: هر پست به طور میانگین 2 454 بازدید دریافت میکند. در اولین روز معمولاً 1 301 بازدید جمعآوری میشود.
- واکنشها و تعامل: مخاطبان بهطور فعال حمایت میکنند؛ میانگین واکنش به هر پست 32 است.
- علایق موضوعی: محتوا بر موضوعات کلیدی مانند ᴘʀᴏxʏ, کانفیگ, مورد, shift, ابزار تمرکز دارد.
📝 توضیح و سیاست محتوایی
نویسنده این فضا را محل بیان دیدگاههای شخصی توصیف میکند:
“Python tips and tricks
The Good, Bad and the Ugly
توی این کانال فقط قرار هست در مورد core python صحبت کنیم.
این کانال یک بلاگ شخصی هست و پیرامون نظرات و چیزهایی که توی بیش از ۱۰ سال کد زدن یاد گرفتم (فقط برای کمک به دوستان تازهکار)
Admin: @Abbasi...”
به لطف بهروزرسانیهای پرتکرار (آخرین داده در تاریخ 17 اکتبر, 2026)، کانال همواره بهروز و دارای دسترسی بالاست. تحلیلها نشان میدهد مخاطبان بهطور فعال با محتوا تعامل دارند و آن را به نقطه اثرگذاری مهم در دسته فناوری و برنامهها تبدیل کردهاند.
pull کرده بگیرید.
چون دیدم دوستان خودم این روش رو بلد نیستند گفتم اینجا هم بذارم:
سناریو اینطوری هست.
من روی registry شخصی خودم این image رو نداشتم و برای راهاندازی پروژه یکی از دوستان بهش نیاز داشتم، بعد از تماس با دوست دیگری متوجه شدم اونها هفته قبل موفق به pull کردن این ایمیج شدند و من اینطوری image رو برداشتم فرض کنیم مثلاً postgres:18 رو لازم داشتم
روی سروری که ایمیج رو داشتند (بله من از دوستانم دسترسی مستقیم به سرور میگیرم)
docker save postgres:18 | gzip > postgres_dockerimg.tar.gz
بعد این فایل رو با scp از سرور به سیستم خودم، و از سیستم خودم به سروری که ایمیج رو نداشت منتقل میکنم و این دستور رو روی اون سیستم میزنم :
docker load < postgres_dockerimg.tar.gz
و تمام حالا image رو روی این سرور دارم و میتونم به کارم ادامه بدم، اگر لازم شد میتونید با docker tag اسم و اطلاعات image رو تغییر بدید.
پینوشت :
یک توصیه امنیتی، اگر image رو از کسی یا جایی گرفتید که بهش اعتماد ندارید (۹۹.۹٪ بهتره اعتماد نداشته باشید)
اول این دستور رو وارد کنید:
docker image inspect --format='{{.Id}}' postgres:18
خروجی این باید یک sha256 باشه.
وارد سایت hub.docker.com بشید (گفتم که سایت کند باز میشه ولی pull نمیده چون کلودفلیر بستهاس) ایمیج مدنظر رو و تگ درستش رو پیدا کنید وارد جزئیات که بشید
Index Digest
رو گذاشته باید با چیزی که توی ترمینال دیدید یکسان باشه.
اگر نبود image دستکاری شده و بهتره باهاش کانتینر اجرا نکنید.vpn کنم کتاب بخونم.
با این وضعیت اینترنت که کلا کار کردن درش تختهاس، توی بخش هوش مصنوعی هم که اندازه حداقل یک سال تلاش تا همینجا عقب افتادیم (که قطعاً بیشتر هم میشه) کلی هم که خبر تعدیل و لغو پروژه دارم میشنوم از دوستان.
خلاصه؛ دیدم جز اعصاب خوردی و ... چیزی برام نداره کلا همه چیز رو کنار گذاشتم و نشستم به یادگیری ولی جالبترین کارش این بود که تعداد صفحاتی که هرروز میخونم رو یکجا یادداشت کردم تا ببینم فقط اگه درگیر vpn نباشم چقدر وقت میذارم برای کتاب خوندن، که دیدم توی همین ۱۹ روز (با امروز) ۵۵۸ صفحه کتاب خوندم.
جدای از موارد دیگه که ویدئویی دارم یاد میگیرم، خلاصه گفتم همین ۱ ساعت وقتی هم که برای وصل شدن vpn روزانه میذارم رو بیخیال بشم.
و ازین سوشال مدیا خدافظی کنم برای مدتی!
به امید روزای بهتری که همه منتظرش پیر شدیم. 🌹
کلا پیشنهاد میکنم سمت کارهایی که اینترنت نیاز دارند نیاید، بخصوص برنامهنویسی.
دیوونه میشید.From April 24 onward, your interactions with GitHub Copilot—including inputs, outputs, code snippets, and associated context—may be used to train and enhance AI models unless you opt out.کوپایلت از ۴ اردیبهشت از دیتاهای شما برای ترین استفاده خواهد کرد، اگر نمیخواید:
1) Go to GitHub Account Settings 2) Select Copilot 3) Choose whether to allow your data to be used for AI model training
opensource هم دروغ شاخ دار نگید. تابلوئه و سریعا هم لو میره!Postgres18 خیلی علاقمند شدم بخاطر اضافه کردن Async هرچند هنوز نتونستم کامل تستش کنم)
نشستم ویدئو رو دیدم؛ ویدئو 56K بازدید داشته 4.7K لایک و 642 تا کامنت که همه هم مثبت بوده
من تموم کامنتهارو چک نکردم ولی خیلیهاش نظر مثبت هست.
جالبی قضیه اینجاس هیچکس متوجه تفاوت توی نحوه بنچمارک گیری نشده یعنی واقعا ؟
چیزی هم که ادعا میکنه که SpacetimeDB میتونه نقش سرور رو هم بازی کنه؛ از Postgres15 من یادم هست که دارند این کار رو بصورت جدی انجام میدند ملت باهاش.
پس داستان چیه ؟ عدد سازی .
اومدم روی گیتهاب issue بسازم و بگم که تکنینک مقایسه درست نیست که دیدم یک نفر دیگه اینکار رو کرده.
توی ویدئو اول دقیقه 10 به بعد رو ببینید؛ تمام تستهایی که انجام میده
client + server + db
هست؛ ولی وقتی به دیتابیس خودشون میرسه.
client + db
هست بعد از بررسی گیتهاب حتی متوجه شدم برای همه کلاینت روی typescript هست ولی برای خودشون روی Rust نوشته شده با خوندن بیشتر اوضاع بدتر هم شد. علاوه بر اینکه پروتوکلهای متفاوتی استفاده شده و ...
تمام فلگهای optimization مربوط به کلاینت Rust رو که برای بنچمارک خودشون فقط استفاده میکنند تا ماکزیمم بالا بردند.
هیچ چیزی جز یک عددسازی بزرگ به ذهنم نمیرسه.
حالا شخصی که روی Github به این موضوع اشاره کرده بود اومده یک ویدئو هم براش ساخته (داشتم میگشتم ببینم کسی دیگه هم فهمیده این موضوع رو یا نه ویدئو رو پیدا کردم)
توی این ویدئو نشون میده که SpacetimeDB حتی با تمام optimization هایی که انجام داده توی شرایط برابر به Postgresql با کانفیگ دیفالت هم نمیرسه
Video on Youtube
پینوشت: خواستم بگم مثل این دوستی که ویدئو SpacetimeDB رو برای من فرستاد شما تو تله نبوفتید.RHCE = RedHat Certified Engineerچه روزهایی؛ یادم میاد مدرسه آیلتس کار و خوندن برای آزمون لینوکس رو ...
vpn دوستان معرفی کردند؛ بسیار هم توسط اشخاص دیگه توی اینستاگرام و ... داره معرفی میشه.
داستان اینجوری هست که شما برنامه رو روی اپاستور یا پلیاستور دانلود میکنی؛ بعد وارد یک ربات تلگرامی به اسم برنامه میشی و یک کد بهت میده
با این کد ۶ ماه اکانت پرمیوم رایگان میگیری.
اما:
بسیار بسیار اینکار خطرناک هست؛ دلایلش
۱- وقتی با یک ربات کار میکنید توی تلگرام اون ربات میتونه تمام اطلاعات اکانت شمارو بگیره (عکس، آیدی، کد یونیک و ...)
۲- ربات به شما یک کد اختصاصی میده برای اینکه اکانت شما ۶ ماه دسترسی رایگان بگیره و خب فکر میکنم خودتون فهمیدید که با این کد شمارو شناسایی میکنه توی اپلیکیشن
پس تا اینجا میدونه، شما کی هستید و کجاها میرید با vpn خودتون.
۳- فرض کنیم این vpn داخلی و سهمیهای هم باشه؛ توی اپلیکیشن دیتاهای مربوط به گوشی شمارو بصورت دیفالت میگیره
Device model, model number, ....
که خب بعضی از اینها دقیقاً برای شناسایی گوشی شما هست مثل یوزرنیم تلگرام که یونیک هست اینم همونطوری هست.
۴- بصورت پیشفرض کل اپلیکیشنها رو vpn میکنه و دیتاهای diagnostic, analytic برای خودش میفرسته که یعنی هرچیزی که دلش خواست.
دیدید وقتی سیمکارت دیگری رو توی گوشی میندازید پیام میاد گوشی با این شماره رجیستر نشده یا برای این فرد نیست ؟
حالا همه اینارو بذاریم کنار هم :
۱- من از vpn میفهمم شما کجاها میری با چه پترنی (چقدر آپلود و چقدر دانلود داری) توی چه ساعتهایی
۲- اکانت تلگرامت رو هم که برای ۶ ماه رایگان بهم دادی؛ از اون هم میتونم کلی چیز پیدا کنم.
مثلاً یوزر نیم مشابه روی توییتر و ...
یا از عکس شما چیزای بیشتر
یا از کانالی که به اکانت وصل هست و ...
۳- مدل نامبر و .... گوشی رو هم که بر میدارم و اگر به دیتابیس ثبت گوشی هم دسترسی داشته باشم؛ دقیقاً میدونم کی هستی.
شماره موبایل، کد ملی و .... همه در میاد.
خلاصه خیلی خیلی مراقب باشید،
پنیر مفت تو تله موشه
این کانالای تک اینستاگرام هم ۹۸٪ یک بچه که ۴ تا اصطلاح یادگرفته نشسته بدون هیچ درکی ...شر پشت هم میبافه.
البته اینجا ۹۸-۹۹٪ حرفهای هستید خودتون و متوجه مشکل شدید ولی لطفاً به باقی هم اطلاع بدید که حداقل حواسشون باشه.
کپی این مطلب حتی بدون ذکر منبع هم آزاد هست.backups اشتباه توی تصویر اومده؛ شخصا یک اسکریپت دارم که اگر فایل بکاپی داخل این پوشه بود موقع راهاندازی اولیه postgresql اون رو هم restore کنه که خب اینجا هم اومد. چیز مهمی نیست؛ شخصا برای راحتی تیم توسعه اینکار رو میکنم (تصمیم شخصی هست)
شاید بشه گفت compose.yml ربطی به اینجا نداره ولی این مورد رو گذاشتم که بگم توی سال 2026 خواهشا بدون داکر پروژه دست کسی ندید پوشه docker هم برای نگهداری تنظیمات؛ Dockerfileها و اسکریپت و ... هست
تغییر مهم بعدی justfile هست که بنظرم یکی از تصمیمات خیلی خوب بوده؛ مدت طولانی هست که توی پروژهها just رو با make جایگزین کردم هم کارهای بیشتری باهاش میشه کرد (یادتون باشه make یک builder هست خیلی برای کاری که ما باهاش میکردیم ساخته نشده بود) هم خیلی سریع و راحت هست.
درمورد sample.env این مورد شامل تمام تنظیماتی هست که compose.yml بهش نیاز داره؛ مثلا TAG ها چی باشه؛ port ها چطوری تعریف بشه؛ سایز و تعداد log ها چطور. خلاصه هرچیزی که میتونه درطول زمان ثابت نباشه اینجاس که بچههای DevOps بر اساس اون env. رو میسازند.
یک پوشه هم دارم به اسم envs که شامل env فایلهای هر container میشه؛ که همهی environment variable ها وارد همهی container ها نشه؛ داخل این هم به اسم هر بخش پروژه یا کانتینر یک sample وجود داره.
پوشه doc هم تغییراتی داشته اینبار؛ plan رو بهش اضافه کردیم که یک مورد تیمی هست راجب اینکه پروژه چطوری پیش بره اول چه چیزایی کد زده بشه بعدش چه چیزهایی و ...
این پوشه نسخه اولیه داره و دائم آپدیت میشه
حتما هم داخل
.dockerignore
اضافه میشه که توی تصویر بالا این فایل هم جا افتاده (پروژه جدید هست)
اما مهمترین و بهترین چیزی که توی document نویسی اضافه شده فایل adr هست (راجب adr توی RandRng قبلی گفته بودم) ولی بطور خلاصه هر داکیومنت داخل پوشه adr توضیح میده چرا تیم تصمیم به استفاده از یک ابزار خاص کرده؛ ما یک قدم هم جلوتر رفتیم البته:
اگر بین ۲ نقر یا چندنفر توی پروژه اختلاف نظر پیش بیاد که یک کاری رو چطوری انجام بدیم یا با چه ابزاری انجام بدیم؛ یکی از اون افراد شروع میکنه راجب مزایا و معایب ابزار مدنظر خودش ADR نوشتن و میفرسته روی گیتهاب بعدش یک نفر از گروه مخالف راجب روش یا ابزار خودش داکیومنت رو آپدیت میکنه.
درنهایت من بعنوان reviewer اضافه میشم و شرایط و توضیحات هر دوتا گروه رو میخونم؛ یک مقایسه نهایی و آپدیت تصمیم؛ هم پروسه و دلیل تصمیم داکیومنت میشه و هم از بحثها و جلسههای بی سر و ته جلوگیری میشه و توی کمترین زمان و با کمترین درگیری هم حرف همه شنیده شده و تیم تصمیم گرفته.
این مورد آخر رو بچههای تیم خودم خیلی خیلی دوسش دارند؛ بخصوص junior, mid ها چون قبلا برای این تصمیمات فقط senior ها توی جلسه میشستند.RandRng گفتم که خیلی وقت هست که ساختار پروژههام نسبت به پست قبلی عوض شده اونم به لطف ابزارهایی که تبدیل به استاندارد شدند.
مثلا؛ دیگه از requirements خیلی خیلی کم استفاده میکنیم؛ به لطف uv این مسئله برامون خیلی راحتتر شده بخصوص اینکه سرعت خیلی خوبی هم داره.
یا مثلا دیگه از editorconfig تقریبا میشه گفت استفاده نمیکنم؛ اینبار به لطف ruff و البته بازم uv خود ابزار ruff اکثر دیفالتهای استاندارد رو داره و چون uv با pyproject.toml کار میکنه باقی ابزارها مثل mypy , ... هم داخل همین مورد قابل کانفیگ هست و تقریبا با همینا میشه کل نیازمندی رو برطرف کرد.
(دلیل اینکه pyproject.toml رو توی تصویر نمیبینید اینه که uv بصورت خودکار ایجادش میکنه)
مثل قبل pre-commit-config.yaml رو همچنان داریمش؛ تقریبا همه هم باهاش خوشحالند برای همین اصلا به اینکه عوضش کنم فکر نکردم.
معمولا python-version رو انیجا نگه نمیدارم بخصوص اینکه این مورد هم توسط uv ایجاد میشه ولی چون دیدم بعضیها حذفش میکنند (نمیدونم چرا) گذاشتم باشه.
ادامه پست بعدی...RandRng گفتم که خیلی وقت هست که ساختار پروژههام نسبت به پست قبلی عوض شده اونم به لطف ابزارهایی که تبدیل به استاندارد شدند.
مثلا؛ دیگه از requirements خیلی خیلی کم استفاده میکنیم؛ به لطف uv این مسئله برامون خیلی راحتتر شده بخصوص اینکه سرعت خیلی خوبی هم داره.
یا مثلا دیگه از editorconfig تقریبا میشه گفت استفاده نمیکنم؛ اینبار به لطف ruff و البته بازم uv خود ابزار ruff اکثر دیفالتهای استاندارد رو داره و چون uv با pyproject.toml کار میکنه باقی ابزارها مثل mypy , ... هم داخل همین مورد قابل کانفیگ هست و تقریبا با همینا میشه کل نیازمندی رو برطرف کرد.
(دلیل اینکه pyproject.toml رو توی تصویر نمیبینید اینه که uv بصورت خودکار ایجادش میکنه)
مثل قبل pre-commit-config.yaml رو همچنان داریمش؛ تقریبا همه هم باهاش خوشحالند برای همین اصلا به اینکه عوضش کنم فکر نکردم.
معمولا python-version رو انیجا نگه نمیدارم بخصوص اینکه این مورد هم توسط uv ایجاد میشه ولی چون دیدم بعضیها حذفش میکنند (نمیدونم چرا) گذاشتم باشه.
شاید بشه گمهمتر از تخصص؛ انسانیت داشتن هست.
Last seen a month agoهستند توی چتهام کم نیست. امیدوارم فقط اینترنت نداشته باشند؛ یا اینکه تصمیم گرفته باشند چندوقتی آنلاین نشند. هر فکر دیگری، دیوانهام میکند 🖤💔🖤
