Rust for Python developers
2.34K subscribers
24 photos
1 video
2 files
89 links
Rust programming language for python developers

یک توسعه دهنده پایتون هستم که سعی میکنم rust یاد بگیرم.
تو این مسیر منابع و نظرات شخصی خودم رو با آیندگان هم به اشتراک میذارم

اگر به هوش مصنوعی و پایتون علاقه دارید به کانال :
@pytens
@pyhints
سر بزنید.
Download Telegram
"When the bad file with more than 200 features was propagated to our servers, this limit was hit — resulting in the system panicking."
"This resulted in the following panic which in turn resulted in a 5xx error:
thread fl2_worker_thread panicked: called Result::unwrap() on an Err value"



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

حالا مشخص شده اون باگ از یک خطای انسانی افتضاح میاد.
داستان اینه؛
یک سرور به محدودیت می‌خوره و از دسترس خارج می‌شه که باعث میشه تمام ریسپانس‌هاش خطای ۵۰۰ باشه؛ اما یک توسعه دهنده بجای اینکه response رو بررسی کنه که آیا ۲۰۰ هست یا نه
فرض کرده چون ما داخل دیتاسنتر هستیم و کلودفلیر هیچوقت غیر از ۲۰۰ نمی‌گیریم.
پس unwrap زده و چون غیر از ۲۰۰ گرفته بوده؛ سیستم ترکیده.

چندتا نکته :
۱- هیچ چیزی رو فرض نکنید، همه چیز رو تست کنید.
من هم توی بعضی کدهام unwrap می‌نویسم؛ اما خیلی وقتا عمدی هست چون واقعاً نمی‌دونم خروجی اون تابع یا ماکرو چطور می‌تونه Error باشه!
می‌نویسم که بیزینس در بیاد.

۲- زبان برنامه‌نویسی Rust فقط امنیت روی مموری بهتون میده؛ قراره نیست براتون نون هم بخره.
نکته جالبتر اینکه؛ AI هم این خطاهارو تشخیص نمی‌ده !!
اینه که همیشه از peer-review استقبال باید بشه.

۳- مورد راحتی مثل خطای 5xx توی http و اینکه حتی این مورد ساده هم تست نشده؛ نشون میده کلودفلیر هم که بری؛ قرار شیت کد ببینی.
پس دوست عزیز حداقل تست بنویس.
👍236
RandRng
Message
این پست خارج از بحث کانال هست ولی چون این اواخر خیلی بهم پیام داده شده
ترجیح دادم بصورت عمومی توی کانال اعلام کنم!

که حداقل خودتون حواستون رو جمع کنید!
20👍3
اگر ۱۱ ساعت وقت دارید و می‌خواید اندازه ۱۰۰ ساعت ازش استفاده کنید برای یادگیری این ویدئو رو از دست ندید.

Youtube Link (Jon Gjengset)

شخصا ۵ ساعت هست نشستم پاش و لذت می‌برم
28
برای یکی از پروژه‌هایی که دارم کار می‌کنم دیتابیسی بیشتر از SQLite نیاز نداریم اما یک سری فیچر‌ها رو هم نیاز داریم که SQLite نداره و نخواهد داشت.

توی جستجو‌هام به Turso رسیدم
و توی سرچ برای بررسی دقیقتر و آموزش به یک ویدئو روی یوتیوب رسیدم؛ و متوجه شدم اون شخصی که توی لینوکس کرنل بهش گفته بودند دیگه هیچوقت دست به کیبورد نزن کی بوده
Youtube Video Timestamp
نکته :
این ابزار فعلا روی بتا هست ولی برای کاری که ما می‌کنیم با توجه به اینکه ساعتی دیتا به دیتابیس اصلی منتقل میشه مشکلی بوجود نمیاد.

این ابزار روی Rust نوشته شده و از زبان‌های برنامه‌نویسی مهم هم پشتیبانی می‌کنه


اگر نمی‌دونید جریان چی هست این پست رو بخونید :
RandRng Channel
19👍2
Forwarded from Python Hints
ممکنه این کانال @pyhints و کانال @pytens و همچنین @pyrust هم ریپورت بشه.

چون با mass report طرف هستیم.
کانال‌ها هم که عمومی هست و برای ریپورت کردن نیازی به عضو شدن نیست.

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

شاید تلگرام باید یک راهکاری هم می‌ذاشت که کاربرهای کانال هم بتونند نظر یا حمایت شون رو اعلام کنند، بخصوص به وقت mass report با این همه گفتم زودتر اعلام کپینوش


پی‌نوشت‌:
اگر این اتفاق افتاد برای دوستان نزدیک لینک خصوصی خواهم فرستاد.
مثل روزهای اول @pytens و البته خصوصی خواهد بود.
56
Forwarded from RandRng
من این لینک رو گذاشتم:

Github Raw V2Ray All

گفتم که اکثر کانال‌های تلگرامی رو کرال می‌کنه اگر کانفیگی اومده باشه همرو یکجا جمع می‌کنه

اما چون معمولاً ۳۰۰۰ یا بیشتر کانفیگ داره و خیلی از سرورها پشت هم فیلتر میشه حوصله سر برهست که هی بخوایم url تست بزنیم.

کاری که شخصاً می‌کنم برای متصل موندن این هست :

۱- اول داخل گروهی که ایجاد می‌شه، لینک‌هایی Duplicate رو پاک کنید

۲- بعد از اینکه اون موارد پاک شد، درخواست بدید که TCP ping بزنه براتون (سرعت بیشتری داره)
معمولاً سرورهایی که جواب نمیده یا فیلتر شده و قطع کردند یا خاموش هست یا ...

۳- بعد از حذف دو مورد قبلی تعداد کمی می‌مونه حالا با خیال راحت url test بزنید.

نکته مهم حتماً حواستون به ۲ مورد باشه :

۱- برای url test آدرس تست رو به سایتی که براش دنبال vpn می‌گردید تغییر بدید، مثلاً اگر می‌خواهید یوتیوب ببینید باهاش آدرس رو روی یوتیوب بذارید.
بعضی از کانفیگ‌ها برای سایت‌های خاص طراحی شده (مثلاً فقط تلگرام) و اکثر درخواست‌های دیگه رو drop می‌کنه

۲- کانفیگ‌ها رو سعی کنید اگر تونستید با چندتا DNS که توی این مدت خوب جواب داده بهتون تست کنید.


پینوشت:
بد نیست چندین گروه برای همین کانفیگ‌های all نگه دارید.
بعضی از کانال‌ها، بعد از یک مدت خدمات vpn دادند سروری که سرعت بالایی هم شاید داشته رو خاموش می‌کنند که فیلتر نشه.

چیزی که چندین ساعت یا چندروز بهش وصل بودید رو نگهدارید، چون اکثراً بعد از یک مدت دوباره اون سرور رو فعال می‌کنند و اینبار بار سرور هم کمتر هست و سرعتش بهتر خواهد بود.
6👍5
Forwarded from RandRng
یک vpn دوستان معرفی کردند؛ بسیار هم توسط اشخاص دیگه توی اینستاگرام و ... داره معرفی می‌شه.

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

اما:
بسیار بسیار اینکار خطرناک هست؛ دلایلش

۱- وقتی با یک ربات کار می‌کنید توی تلگرام اون ربات می‌تونه تمام اطلاعات اکانت شمارو بگیره (عکس، آیدی، کد یونیک و ...)

۲- ربات به شما یک کد اختصاصی می‌ده برای اینکه اکانت شما ۶ ماه دسترسی رایگان بگیره و خب فکر می‌کنم خودتون فهمیدید که با این کد شمارو شناسایی می‌کنه توی اپلیکیشن

پس تا اینجا می‌دونه، شما کی هستید و کجا‌ها میرید با vpn خودتون.

۳- فرض کنیم این vpn داخلی و سهمیه‌ای هم باشه؛ توی اپلیکیشن دیتاهای مربوط به گوشی شمارو بصورت دیفالت میگیره
Device model, model number, ....
که خب بعضی از این‌ها دقیقاً برای شناسایی گوشی شما هست مثل یوزرنیم تلگرام که یونیک هست اینم همونطوری هست‌.

۴- بصورت پیش‌فرض کل اپلیکیشن‌ها رو vpn می‌کنه و دیتاهای diagnostic, analytic برای خودش می‌‌فرسته که یعنی هرچیزی که دلش خواست.

دیدید وقتی سیمکارت دیگری رو توی گوشی می‌ندازید پیام میاد گوشی با این شماره رجیستر نشده یا برای این فرد نیست ؟

حالا همه اینارو بذاریم کنار هم :

۱- من از vpn میفهمم شما کجاها میری با چه پترنی (چقدر آپلود و چقدر دانلود داری) توی چه ساعت‌هایی

۲- اکانت تلگرامت رو هم که برای ۶ ماه رایگان بهم دادی؛ از اون هم می‌تونم کلی چیز پیدا کنم.
مثلاً یوزر نیم مشابه روی توییتر و ...
یا از عکس شما چیزای بیشتر
یا از کانالی که به اکانت وصل هست و ...

۳- مدل نامبر و .... گوشی رو هم که بر میدارم و اگر به دیتابیس ثبت گوشی هم دسترسی داشته باشم؛ دقیقاً می‌دونم کی هستی.
شماره موبایل، کد ملی و .... همه در میاد.



خلاصه خیلی خیلی مراقب باشید،
پنیر مفت تو تله موشه

این کانالای تک اینستاگرام هم ۹۸٪ یک بچه که ۴ تا اصطلاح یادگرفته نشسته بدون هیچ درکی ...شر پشت هم میبافه.

البته اینجا ۹۸-۹۹٪ حرفه‌ای هستید خودتون و متوجه مشکل شدید ولی لطفاً به باقی هم اطلاع بدید که حداقل حواسشون باشه.


کپی این مطلب حتی بدون ذکر منبع هم آزاد هست.
👍209
این روزها که خیلی حوصله توسعه چیزی ندارم برای جلوگیری از اسکرول کردن‌های بی‌نهایت؛ تصمیم گرفتم یکسری گیت‌هاب ها رو بخونم
https://github.com/xai-org/x-algorithm

و گفتم شاید شما هم دوس داشته باشید این مورد رو بخونید؛‌چون کل سورس کد با ۲ تا زبانی که توقع میره اینجا همه بهش آشنا باشید نوشته شده :
Rust + Python
❤‍🔥19👍73
Forwarded from RandRng
فکر نمی‌کردم اینو بگم؛ ولی بعد از صحبت حتی با یکی از دوستان قدیمی Golang کار به این نتیتجه رسیدیم.

کد زدن توی Rust (Axum) نه تنها از Python (هر ۳ فریمورک) بلکه حتی از Golang هم سریعتر و تمیزتر هست.
15
RandRng
فکر نمی‌کردم اینو بگم؛ ولی بعد از صحبت حتی با یکی از دوستان قدیمی Golang کار به این نتیتجه رسیدیم. کد زدن توی Rust (Axum) نه تنها از Python (هر ۳ فریمورک) بلکه حتی از Golang هم سریعتر و تمیزتر هست.
چرا این صحبت رو کردم ؟

۱- قدرت کامپایلر؛ اگر حالتی رو درنظر نگیری محکم می‌کوبه تو صورتت

۲- ساختار پروژه، فرقی نمی‌کنه تو چه حالتی پروژه رو بچینی و بزنی.
چون کامپایلر همیشه ایراداتت رو میگیره فقط اگر نامگذاری استاندارد استفاده کنی هر کسی متوجه کل پروژه میشه، کاملاً میشه با استاندارد شخصی پیشرفت

۳- هزینه ریفکتور کردن خیلی خیلی کم هست، بخصوص اگر هدف فقط ایجاد یا تغییر ساختار باشه، هرکاری بکنی تهش کامپایلر بهت میگه درست بود یا نه.

۴- بهترین فیچر دنیا بنظرم:
proc-macro
مثلاً من توی یک مورد برای پروژه‌ای گفتم تمام توابع log بشه
یک ماکرو نوشتم به اسم logit که یک لاگ info می‌نویسه از function اما بر اساس نتیجه‌ای که از تابع بر میگرده می‌تونه به
Warning, Error
تغییرش بده یا اطلاعات اضافه یا کم کنه یک چیزی مثل
instrument
از tracing-subscriber ولی یک مقدار خروجی استانداردتر برای Loki, Grafana

توی پایتون هم میشه با decorator به بخش زیادی از این کارایی رسید، اما proc-macro خیلی خیلی دست رو باز می‌ذاره واقعاً لذت بردم.


تا اینجا بهترین فیچری از Rust هست که استفاده کردم

۵- یک سری موارد دیگه هم مثل sqlx و ماکروهاش که دیتابیس رو چک می‌کنه برای کوئری‌ها یا همین tracing, traving-subscriber , ....

که همگی اینها کنار هم باعث میشه تو با خیال راحت‌تری کد بزنی و ذهنت کمتر درگیر این باشه که آیا پروژه استاندارد شد، ریفکتور نخواد بعدا، به فلان و فلان آیا فکر کردم و ازین دست موارد
👍18🔥64
نوروز مبارک 🤗🎉🎊
27
Forwarded 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
👍7
چندتا آپدیت و کتاب :

نسخه سوم کتاب
The Rust Programming Language
هم منتشر شد که با edition 2024 زبان Rust آپدیت شده


کتاب
The Rust Programming Handbook (Francesco Ciulla)
رو هم شخصاً خوندم و بنظرم کتاب بسیار روان و عالی برای شروع هست.

نسخه سوم کتاب
Rust Web Programming (Maxwell Flitton)

هم منتشر شده که خب فکر کنم قبلاً راجبش صحبت کردم Early Review انجام دادم برای packt

اما راجب Async Rust داشتم با یکی از دوستان صحبت می‌کردم من قبلتر کتاب

Async Rust (Maxwell Filtton)

رو معرفی کرده بودم که بسیار هم کتاب خوبی هست اما متوجه شدم این دوست بیشتر نیاز داره زیر قضیه رو بشناسه و چون این موارد رو نمی‌دونه باعث میشه درک یک سری مفاهیم توی async Rust براش خیلی سخت باشه

اگر شما هم همین شرایط رو دارید کتاب

Asynchronous Programming in Rust (Carl Fredrik Samson)

رو بهتون معرفی می‌کنم.

درنهایت اگر هیچ درکی از async ندارید سراغ توسعه web با Rust نرید.
👍10
Forwarded from RandRng
از ۱۶ مارس تا امروز که ۳ آپریل هست
تصمیم گرفتم بجای اینکه خودم رو درگیر vpn کنم کتاب بخونم.

با این وضعیت اینترنت که کلا کار کردن درش تخته‌‌اس، توی بخش هوش مصنوعی هم که اندازه حداقل یک سال تلاش تا همینجا عقب افتادیم (که قطعاً بیشتر هم میشه) کلی هم که خبر تعدیل و لغو پروژه دارم می‌شنوم از دوستان.

خلاصه؛ دیدم جز اعصاب خوردی و ... چیزی برام نداره کلا همه چیز رو کنار گذاشتم و نشستم به یادگیری ولی جالب‌ترین کارش این بود که تعداد صفحاتی که هرروز می‌خونم رو یکجا یادداشت کردم تا ببینم فقط اگه درگیر vpn نباشم چقدر وقت می‌ذارم برای کتاب خوندن، که دیدم توی همین ۱۹ روز (با امروز) ۵۵۸ صفحه کتاب خوندم.

جدای از موارد دیگه که ویدئویی دارم یاد میگیرم، خلاصه گفتم همین ۱ ساعت وقتی هم که برای وصل شدن vpn روزانه میذارم رو بیخیال بشم.

و ازین سوشال مدیا خدافظی کنم برای مدتی!

به امید روزای بهتری که همه منتظرش پیر شدیم. 🌹

کلا پیشنهاد می‌کنم سمت کارهایی که اینترنت نیاز دارند نیاید، بخصوص برنامه‌نویسی.
دیوونه می‌شید.
15
Forwarded from RandRng
بازم مرام نت‌بلاکس حداقل صدای ماها هست.
نهادهای دولتی‌ شبکه و اینترنت که همه خفه‌خون گرفتن.
👍132
Forwarded from RandRng
با خبرهایی که از رسانه‌های داخلی درباره اینترنت می‌آید (که خب دیگه طبقاتی شده)، یاد این ویدئوی یوتیوب افتادم؛ درباره بررسی یک گوشی موبایل از کره شمالی و دسترسی به آنچه توسط حکومت کره شمالی اینترنت خوانده می‌شود.

Youtube Link (MrWhoseTheBoss)
👍6
Forwarded from RandRng
خواستم بگم اینا باعث شدند که اینترنت طبقاتی داریم الان

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

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

مغز عرررزشی جماعت رو با تاپاله گاوی پر کردن

اینترنت آزاد برای همه باید باشه
اینترنت مهمترین ابزار برای پیشرفت هست
اینترنت مهمترین ابزار برای یادگیری هست

برای بچه‌هایی که طبقه اجتماعی (درآمدی) پایین‌تری دارند اینترنت بهترین ابزار برای یادگیری و داشتن آینده بهتر هست.

ولی عرررزشی پدرسگ زبون نفهم، انقدر خر بود که باعث شد این ابزار فقط از قشر ضعیف‌تر (مالی) جامعه گرفته بشه.
👍304
Forwarded 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 دستکاری شده و بهتره باهاش کانتینر اجرا نکنید.
👍84