Python Hints
前往频道在 Telegram
Python tips and tricks The Good, Bad and the Ugly توی این کانال فقط قرار هست در مورد core python صحبت کنیم. این کانال یک بلاگ شخصی هست و پیرامون نظرات و چیزهایی که توی بیش از ۱۰ سال کد زدن یاد گرفتم (فقط برای کمک به دوستان تازهکار) Admin: @Abbasi_ai
显示更多9 518
订阅者
+124 小时
+367 天
+15830 天
帖子存档
9 518
Repost from RandRng
به ذهنم رسید همین کار رو برای این کتاب هم میشه کرد؛ ولی خب این کتاب ویدئویی براش وجود نداره.
این شد که به هوش مصنوعی رو آوردم بدون اینکه لذت خوندن کتاب رو از کسی بگیریم ازش خواستم کتاب رو تبدیل به پادکست کنه اما توی کل پادکست باید همه چیز با مثال پیش بره و خیلی ساده و روان باشه.
برای منی که این مباحث رو اکثرا کار کردم بنظرم خیلی ساده اومد؛ شما هم گوش بدید ببینید چطور هست ؟
بنظرتون اینکار و پادکست کردن فصل به فصل کتابها ادامه بدم یا نه ؟
البته باقی پادکستها رو توی این کانال نخواهم گذاشت؛ چون کانال رو پر میکنه.
اول این سمپل پادکست رو گوش بدید و بعد کتاب رو بخونید سادهتر میشه قضیه برای شما هم ؟
آیا این بخش پادکست به اندازه کافی مباحث رو ساده توضیح داده ؟
پینوشت:
reaction بزنید روی پست متوجه میشم ادامه بدیم یا نه؛ البته شخصا اینکار رو ادامه خواهم داد. چون وسط هرکاری میتونم این پادکست رو گوش بدم.9 518
Repost from RandRng
Designing Data-Intensive Applications
یکی از کتابهای مورد علاقه من هست؛ وقتی نسخه اول این کتاب منتشر شد من هم بسیار درگیر سیستمهایی بودم که دیتای زیادی داشتند و BigData بخشی از کارم بود.
خوندن این کتاب دریچه جدیدی رو برام باز کرد و الان که فکر میکنم کتاب سنگینی بود؛ حالا چرا الان این رو میگم ؟
قبل از اتفاقات اخیر کمک یکی از دوستان قدیمی میکردم که تازه (۲ سال) هست وارد دنیای برنامهنویسی بعنوان شغل شده و چندوقتی رو درگیر یک سری مشکلات پروژهاش بوده؛ بعد از اینکه کمکش کردم مشکلش حل شد ازم پرسید این موارد رو از کجا یاد گرفتی و چطوری میتونم یاد بگیرم ؟
منم این کتاب رو بهش معرفی کردم.
امروز دوباره پیام داد (ایران نیستند) و بعد از صحبت از کتاب گفت که بسیار خوندنش سخت هست براش؛ برای خیلی از سنیورها هم درک این موضوعات سخت هست بطور کلی این کتاب کتاب آسونی نیست هرچند همه چیز ساده بیان شده.
همینطوری که داشتم فکر میکردم چطوری میشه این کتاب رو برای دیگران ساده کرد و پروسه یادگیری خودم رو مرور میکردم ( همون روش ویدئو ببین و تخمه بشکون : ویدئو اول یوتیوب pyhints )9 518
Repost from RandRng
یادآوری کنم:
نه بنده و نه هیچ کدوم از کانالهای بنده روی هیچ یک از پلتفرمهای ایرانی اکانت نداره و نخواهد داشت.
ویدئویی، متنی یا ...
9 518
Repost from RandRng
یک راهکار این هست که داکر ایمیج رو از یک دوستی که قبلتر
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 دستکاری شده و بهتره باهاش کانتینر اجرا نکنید.9 518
Repost from RandRng
خواستم بگم اینا باعث شدند که اینترنت طبقاتی داریم الان
بعد سگ و شغال میومدند میگفتند برای امنیت اینترنت رو قطع کردند.
خب جاکشای پدرسگ، الان فقط اونی که توان مالی خرید نداره نمیتونه اینترنت داشته باشه.
مغز عرررزشی جماعت رو با تاپاله گاوی پر کردن
اینترنت آزاد برای همه باید باشه
اینترنت مهمترین ابزار برای پیشرفت هست
اینترنت مهمترین ابزار برای یادگیری هست
برای بچههایی که طبقه اجتماعی (درآمدی) پایینتری دارند اینترنت بهترین ابزار برای یادگیری و داشتن آینده بهتر هست.
ولی عرررزشی پدرسگ زبون نفهم، انقدر خر بود که باعث شد این ابزار فقط از قشر ضعیفتر (مالی) جامعه گرفته بشه.
9 518
Repost from RandRng
با خبرهایی که از رسانههای داخلی درباره اینترنت میآید (که خب دیگه طبقاتی شده)، یاد این ویدئوی یوتیوب افتادم؛ درباره بررسی یک گوشی موبایل از کره شمالی و دسترسی به آنچه توسط حکومت کره شمالی اینترنت خوانده میشود.
Youtube Link (MrWhoseTheBoss)
9 518
Repost from RandRng
بازم مرام نتبلاکس حداقل صدای ماها هست.
نهادهای دولتی شبکه و اینترنت که همه خفهخون گرفتن.
9 518
Repost from RandRng
از ۱۶ مارس تا امروز که ۳ آپریل هست
تصمیم گرفتم بجای اینکه خودم رو درگیر
vpn کنم کتاب بخونم.
با این وضعیت اینترنت که کلا کار کردن درش تختهاس، توی بخش هوش مصنوعی هم که اندازه حداقل یک سال تلاش تا همینجا عقب افتادیم (که قطعاً بیشتر هم میشه) کلی هم که خبر تعدیل و لغو پروژه دارم میشنوم از دوستان.
خلاصه؛ دیدم جز اعصاب خوردی و ... چیزی برام نداره کلا همه چیز رو کنار گذاشتم و نشستم به یادگیری ولی جالبترین کارش این بود که تعداد صفحاتی که هرروز میخونم رو یکجا یادداشت کردم تا ببینم فقط اگه درگیر vpn نباشم چقدر وقت میذارم برای کتاب خوندن، که دیدم توی همین ۱۹ روز (با امروز) ۵۵۸ صفحه کتاب خوندم.
جدای از موارد دیگه که ویدئویی دارم یاد میگیرم، خلاصه گفتم همین ۱ ساعت وقتی هم که برای وصل شدن vpn روزانه میذارم رو بیخیال بشم.
و ازین سوشال مدیا خدافظی کنم برای مدتی!
به امید روزای بهتری که همه منتظرش پیر شدیم. 🌹
کلا پیشنهاد میکنم سمت کارهایی که اینترنت نیاز دارند نیاید، بخصوص برنامهنویسی.
دیوونه میشید.9 518
Repost from RandRng
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
9 518
Repost from RandRng
اگر مثل من نیاز دارید با عزیزان و خانواده خارج از ایران تماس داشته باشید و اونها رو از نگرانی در بیارید:
https://t.me/ProxyMTProto
https://t.me/vmessorg
https://t.me/invoProxy
این کانالها و مواردی که قبلتر معرفی کرده بودم متصل هستند.
سرعت بسیار ضعیف هست، اگر متصل شدید زودتر خبر سلامتی بدید و از نگرانی در بیاریدشون ♥️
9 518
#موقت
بنظرم این رو شما هم باید ببینید؛ که از بحثهای آینده که فلان دیتابیس چقدر خوبه پیشگیری کنیم.
تو دنیای
opensource هم دروغ شاخ دار نگید. تابلوئه و سریعا هم لو میره!9 518
Repost from RandRng
چطوری میشه با بنچمارک دروغ گفت ؟
SpacetimeDB
اینکار رو برای شما کرده
ویدئو بالا رو چندساعت پیش دوستان برام فرستادند (من به
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 رو برای من فرستاد شما تو تله نبوفتید.9 518
+1
توی دوران قطعی اینترنت اخیر نشستم یک مقدار هارد آرشیوم رو تمیز کردم ( چیزی توش نیست جز دوره و جزوه و کدهای قدیمی)
بعد این رو دیدم ۱۷ سال پیش (قبل اینکه به سن قانونی برسم) داشتم میخوندم برای آزمون
RHCE = RedHat Certified Engineerچه روزهایی؛ یادم میاد مدرسه آیلتس کار و خوندن برای آزمون لینوکس رو ...
9 518
Repost from RandRng
یک
vpn دوستان معرفی کردند؛ بسیار هم توسط اشخاص دیگه توی اینستاگرام و ... داره معرفی میشه.
داستان اینجوری هست که شما برنامه رو روی اپاستور یا پلیاستور دانلود میکنی؛ بعد وارد یک ربات تلگرامی به اسم برنامه میشی و یک کد بهت میده
با این کد ۶ ماه اکانت پرمیوم رایگان میگیری.
اما:
بسیار بسیار اینکار خطرناک هست؛ دلایلش
۱- وقتی با یک ربات کار میکنید توی تلگرام اون ربات میتونه تمام اطلاعات اکانت شمارو بگیره (عکس، آیدی، کد یونیک و ...)
۲- ربات به شما یک کد اختصاصی میده برای اینکه اکانت شما ۶ ماه دسترسی رایگان بگیره و خب فکر میکنم خودتون فهمیدید که با این کد شمارو شناسایی میکنه توی اپلیکیشن
پس تا اینجا میدونه، شما کی هستید و کجاها میرید با vpn خودتون.
۳- فرض کنیم این vpn داخلی و سهمیهای هم باشه؛ توی اپلیکیشن دیتاهای مربوط به گوشی شمارو بصورت دیفالت میگیره
Device model, model number, ....
که خب بعضی از اینها دقیقاً برای شناسایی گوشی شما هست مثل یوزرنیم تلگرام که یونیک هست اینم همونطوری هست.
۴- بصورت پیشفرض کل اپلیکیشنها رو vpn میکنه و دیتاهای diagnostic, analytic برای خودش میفرسته که یعنی هرچیزی که دلش خواست.
دیدید وقتی سیمکارت دیگری رو توی گوشی میندازید پیام میاد گوشی با این شماره رجیستر نشده یا برای این فرد نیست ؟
حالا همه اینارو بذاریم کنار هم :
۱- من از vpn میفهمم شما کجاها میری با چه پترنی (چقدر آپلود و چقدر دانلود داری) توی چه ساعتهایی
۲- اکانت تلگرامت رو هم که برای ۶ ماه رایگان بهم دادی؛ از اون هم میتونم کلی چیز پیدا کنم.
مثلاً یوزر نیم مشابه روی توییتر و ...
یا از عکس شما چیزای بیشتر
یا از کانالی که به اکانت وصل هست و ...
۳- مدل نامبر و .... گوشی رو هم که بر میدارم و اگر به دیتابیس ثبت گوشی هم دسترسی داشته باشم؛ دقیقاً میدونم کی هستی.
شماره موبایل، کد ملی و .... همه در میاد.
خلاصه خیلی خیلی مراقب باشید،
پنیر مفت تو تله موشه
این کانالای تک اینستاگرام هم ۹۸٪ یک بچه که ۴ تا اصطلاح یادگرفته نشسته بدون هیچ درکی ...شر پشت هم میبافه.
البته اینجا ۹۸-۹۹٪ حرفهای هستید خودتون و متوجه مشکل شدید ولی لطفاً به باقی هم اطلاع بدید که حداقل حواسشون باشه.
کپی این مطلب حتی بدون ذکر منبع هم آزاد هست.9 518
Repost from RandRng
تست سرعت اینترنت بینالملل بنده بعنوان یک برنامهنویس
بعد یارو میاد:
دنبال قرارداد دلاری از ایران و ریموت هم میگرده
9 518
اول اینکه پوشه
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 ها توی جلسه میشستند.9 518
توی
RandRng گفتم که خیلی وقت هست که ساختار پروژههام نسبت به پست قبلی عوض شده اونم به لطف ابزارهایی که تبدیل به استاندارد شدند.
مثلا؛ دیگه از requirements خیلی خیلی کم استفاده میکنیم؛ به لطف uv این مسئله برامون خیلی راحتتر شده بخصوص اینکه سرعت خیلی خوبی هم داره.
یا مثلا دیگه از editorconfig تقریبا میشه گفت استفاده نمیکنم؛ اینبار به لطف ruff و البته بازم uv خود ابزار ruff اکثر دیفالتهای استاندارد رو داره و چون uv با pyproject.toml کار میکنه باقی ابزارها مثل mypy , ... هم داخل همین مورد قابل کانفیگ هست و تقریبا با همینا میشه کل نیازمندی رو برطرف کرد.
(دلیل اینکه pyproject.toml رو توی تصویر نمیبینید اینه که uv بصورت خودکار ایجادش میکنه)
مثل قبل pre-commit-config.yaml رو همچنان داریمش؛ تقریبا همه هم باهاش خوشحالند برای همین اصلا به اینکه عوضش کنم فکر نکردم.
معمولا python-version رو انیجا نگه نمیدارم بخصوص اینکه این مورد هم توسط uv ایجاد میشه ولی چون دیدم بعضیها حذفش میکنند (نمیدونم چرا) گذاشتم باشه.
ادامه پست بعدی...9 518
توی
RandRng گفتم که خیلی وقت هست که ساختار پروژههام نسبت به پست قبلی عوض شده اونم به لطف ابزارهایی که تبدیل به استاندارد شدند.
مثلا؛ دیگه از requirements خیلی خیلی کم استفاده میکنیم؛ به لطف uv این مسئله برامون خیلی راحتتر شده بخصوص اینکه سرعت خیلی خوبی هم داره.
یا مثلا دیگه از editorconfig تقریبا میشه گفت استفاده نمیکنم؛ اینبار به لطف ruff و البته بازم uv خود ابزار ruff اکثر دیفالتهای استاندارد رو داره و چون uv با pyproject.toml کار میکنه باقی ابزارها مثل mypy , ... هم داخل همین مورد قابل کانفیگ هست و تقریبا با همینا میشه کل نیازمندی رو برطرف کرد.
(دلیل اینکه pyproject.toml رو توی تصویر نمیبینید اینه که uv بصورت خودکار ایجادش میکنه)
مثل قبل pre-commit-config.yaml رو همچنان داریمش؛ تقریبا همه هم باهاش خوشحالند برای همین اصلا به اینکه عوضش کنم فکر نکردم.
معمولا python-version رو انیجا نگه نمیدارم بخصوص اینکه این مورد هم توسط uv ایجاد میشه ولی چون دیدم بعضیها حذفش میکنند (نمیدونم چرا) گذاشتم باشه.
شاید بشه گ
现已上线!2025 年 Telegram 研究 — 年度关键洞察 
