RandRng – Telegram
RandRng
2.13K subscribers
158 photos
16 videos
8 files
74 links
جایی واسه احمق‌ها نیست...
Download Telegram
از شرکت استعفا دادم،

همکاری که تسک‌ها و سرورها و پروژه‌ها و .... رو بهش تحویل می‌دم می‌گه من تا آخر سال بیشتر نیستم نمی‌شه بمونی تا آخر سال ؟

بهش می‌گم؛ خیالت راحت من اینارو جوری اتوماتیک کردم که تا ۲ سال دیگه هیچ مشکلی پیش نیاد.

یاد جمله اون خدابیامرز افتادم و اینکه؛ چه کشوری چید که ۴۷ سال طول کشید تا ملت فهمید چه گنجی رو از دست داد.

البته ما که جونیوری بیش نیستیم ولی خب.
👍8022😁11😐4🍾1
غروب ساده‌ترین درآمد ۱۰ سال اخیرم رو داشتم
طوری که فکر کنم دقیقه‌ای از رونالدو/مسی هم بیشتر درآمد داشتم برای همین یک تسک (اصن روم نمی‌شه بگم پروژه بهش😂)

تسکی که از نظر کاری، ۵ دقیقه زمان برد و اینطوری شد که من عاشق حرکت شرکت‌ها به سمت Vibe coding شدم.

لطفاً ادامه بدید، دیباگ این پروژه‌ها برای من لذت بخش هست، چون پولش خوبه 😁
😁46👍105
یکی از بیشترین ابزارهایی که بهش نیاز دارم!
اگر دارید، با Rust یا Go کد می‌زنید یک تولز بنویسید که یک کامند که وارد می‌کنم مسیری که بهش میدم رو روی یک پورت خاص فایل‌هاش رو بهم بده

مثلاً توی پایتون اینو داریم:
python3 -m http.server 8080

که پوشه‌ای که داخلش این دستور اجرا بشه رو روی ای‌پی و پورت ۸۰۸۰ در اختیار دستگاهای روی اون شبکه می‌ذاره.


حالا چیزی که کم داره؛
VideoPlayer, Image view, music player
هست، که کلاینت مجبور به نصب اینا نباشه!

بله با NextCloud, ... هم آشنا هستم ولی مزیت تو سادگی هست.
یک ابزاری قبلاً نوشته بودم؛ ولی خیلی قدیمی شده و فرمت‌های جدید رو خوب پشتیبانی نمی‌کنه.

اگر کسی همچین کدی رو زد باهامون به اشتراک بذاره گیت‌هابش رو
👍323🗿1
وقتی تو عمرت، بیشتر از hello world از زبان برنامه‌نویسی کار نکشیدی!


#چرندیات
👏35😁11👍7🗿2
RandRng
وقتی تو عمرت، بیشتر از hello world از زبان برنامه‌نویسی کار نکشیدی! #چرندیات
من کلی کد پایتون دارم که طرف از دنیای Java اومده و شروع کرده بکند پایتون زده.
مفاهیم رو خیلی خوب بلد بوده (از تلاشش توی کد مشخص هست)

اما کد shit خالص هست؛ قشنگ میشه برداشت بجاش 💩گذاشت.

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

بدترین حالتش هم یک شرکت بود که برای یکی از استارتاپ‌هاش؛ این اتفاق افتاده بود و بعد از ۲ سال توسعه توی اولین روز لانچ پروژه سرورهاشون down شده بود؛ تعداد یوزرهای دیتابیس به ۱ میلیون که می‌رسید بعضی درخواست‌ها بیش از ۱ دقیقه طول می‌کشید تا دیتا بگیره و tcp close می‌خورد. (تمام مواردی که گفتم با پروفایلینگ بدست اومد)

تنها راه‌کار؛ بازنویسی کامل کد. چون هیچ‌کس از کد سر در نمیاورد والبته هیچ جایی از کد هم استاندارد نبود (شخصاً ۱ هفته وقت گذاشتم کد رو خوندم)

پینوشت:

ازین به بعد یک هشتگ جدید به اسم چرندیات خواهیم داشت.
متن‌های اشتباه لینکدینی که میذارن رو دور هم می‌ترکونیم.
👍703😁3🗿2
دارم فصل ۱۰ کتاب Rust web programming 3rd edition رو ریویو می‌کنم، این بخش بهترین نکته‌ای هست که داره.
👍122
RandRng
یک اتفاق جالب امروز برام افتاد؛ یک هم تیمی جدید داریم سطح بالایی هم داره، امروز برای اولین بار به repo های من دسترسی گرفت. من دوتا پروژه بکند دارم؛ یکیش Python هست، اون یکی Rust رفته بود پروژه Python رو خونده بود اومد گفت چرا هر کدوم رو یک فایل نمی‌کنی؟…
خیلی پست‌های مختلف می‌بینم که می‌گن؛ لایه logic, data, view, .... رو از هم جدا کنید و ازین حرفا (طرف ۲ هفتس کلین کد خونده) که نکته خیلی خوبی هست اما نه همه جا

و خیلی وقتا هم کد دستم اومده که دیدم؛ طرف زده get_repository بعد این رو گذاشته توی یک پوشه و فایل دیگه
میرم کد رو می‌خونم می‌بینم ۱ خط کد نوشته یک return ساده.

این مدل جداسازی مزخرف‌ترین کاری هست که می‌تونید انجام بدید.

نکته‌اش توی کتاب بالا هم هست؛
دولوپر بعدی، بیچاره میشه تا ذهنش رو دور این چیزا سر و سامون بده و متوجه بشه فایل‌ها و ... چطوری به هم ارتباط داره

repository= .....

همون کار رو می‌کنه؛ ۱۰۰ برابر خواناتر و تمیزتر‌ هست و در صورت رشد کردن کدش؛ توی refactor جدا خواهد شد.

بعضی وقتا آدما برای clean code زدن، گند میزنند توی خوانایی و حتی clean بودن پروژه چرا چون clean code رو فقط در سطح یک اسکریپت بهش نگاه می‌کنند در سطح کل پروژه.


مثال دیگر:
این رو زیاد می‌بینم؛

cleaned_text = preprocess(mytext)

بعد میرم توی مسیری که گفته شده:
utils/preprocessing.py

def preprocess(text:str):
return text.strip()

ببین ذهن من چقدر باید اذیت بشه که توی توسعه کدهای بعدی یادش باشه که اینکار رو برای یک strip ساده انجام بده.
حالا فرض کنید یک پروژه ۱ میلیون خط کدی؛ اینطوری نوشته شده باشه!

بنظرتون این پروژه clean code هست یا shit code ؟!

یادتون نره؛ refactor پنالتی نیست، بلکه نشون می‌ده شما به کد و پروژه زیر دستتون اهمیت می‌دید!
من ترجیح میدم
text = input.strip()
رو داشته باشم و وقتی این تمیز کاری دیتای ورودی بزرگتر شد اونوقت اون رو جدا کنم.
8👍7
#موقت
وسط توضیح برق رفت

utils/preprocessing.py:
def preprocessing(text: str) :
return text.strip()

utils/__init__.py
```python
```

from utils.preprocessing import preprocess

...
cleaned_text = preprocess(text)
...

این میزان کدی هست که باید برنامه نویس بعدی توی ذهنش نگهداره 👆

بجای :

text = input.strip()

حالا اینو ضربدر ۱۰۰ یا ۱,۰۰۰ کنید برای یک پروژه توی اسکیل استاندارد.
11👍7
نزدیک انتخاب رشته‌‌اس گفتم اینو بگم:

اینکه که می‌گن
کاری رو بکن که دوس داری.

این ماهارو بیچاره کرده؛ من و چندتای دیگه که اطرافم دیدم توی تخصص‌های مختلف.

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

حالا که روزای انتخاب رشته‌اس، خواستم بگم که حواستون به این نکته هم باشه؛ ما چند نفر (من و دوستانی که گفتم) چون به کاری که می‌کنیم علاقه داریم خیلی به چشم درآمد بهش نگاه نمی‌کنیم؛ چرا ازش درآمد داریم و زندگی هامون رو می‌چرخونیم ولی برای همه ما پیش اومده که:

موقعیت بهتر مالی رو فدای یادگیری یا کاری با چالش بیشتر کردیم.

بنظرم باید اینطوری گفت که؛ کاری رو بکنید که ازش خوشتون میاد: اینطوری اصل نگاهتون بهش درآمدی هست.
کاری که دوست دارید رو بذارید برای اوقات فراغت و تفریح و ....

اینجوری هم ازش بیشتر لذت می‌برید؛ هم درآمد بیشتر رو فدای علاقه و چالش نمی‌کنید.
👍627😐2😁1
یک شعاری داده شد که یک نوع راهکار بود، مثل اینکه یک عده یک پرچمی دستشون بوده و نمی‌دونستند باهاش چکار باید بکنند، برای همین ملت ایران بهشون راهکار دادند.



این شعار بین‌المللی شده؛ همکارم (ایرانی نیست) ازم پرسید موضوع این شعار چیه و چطور شروع شد؟
حال بحث کردن باهاش رو نداشتم؛ با متن بالا بهش توضیح دادم، خدایی چی می‌گفتم ؟
😁31🔥4🗿21💯1
Forwarded from Meysam
رائفی پور هر وقت میخواد حرف بزنه
😁55👍4😐3🗿2
RandRng
آخ جون؛ من این تیم و دولوپر‌هاش رو فالو می‌کنم. درآمد بعدیم جور شد 😁😁
یک نفر پرسیده، یعنی شما مخالف توسعه کد با ai هستید ؟

نه قبلاً هم گفتم، software engineer بدون اینکه از ai استفاده کنه توی تیم ما خیلی کار سختی داره چون میشه سنگ جلوی پای باقی تیم.

اما، نحوه استفاده فرق داره؛ مثلاً من دقیقاً می‌دونم سرویس لاگین چطوری کار می‌کنه همه جزئیات مهمش رو هم می‌دونم مثلاً پسورد باید هش بشه و توی دیتابیس نوشته بشه الگوریتم‌هاس باید جزو الگوریتم‌های مطرح باشه نه هر روش هش کردنی، حتماً باید salt رندم داشته باشه و به درستی توی دیتابیس نوشته بشه و ...
یک سری دیزاین پترن خاص برای پروژه دارم استفاده می‌کنم که حتماً باید رعایت بشه

وقتی می‌خوام از ai استفاده کنم براش می‌نویسم :

با رعایت این دیزاین پترن‌ها:
اسم می‌برم
کد مربوط به signup رو برام بزن که این فیلدها رو برای یوزر بگیره و داخل دیتابیس بنویسه :
اسم فیلدها و نوعشون

توی schema دوتا فیلد برای پسورد در نظر بگیر فیلد دوم confirm باشه؛ یک unique_id برای یوزر بذار که uuid7 باشه و یوزر رو با این فیلد هندل کنیم.
پسورد باید نهایتاً با الگوریتم argon2 و یک salt رندوم برای هر یوزر هش بشه و داخل دیتابیس قرار بگیره!

یوزر حتماً باید ایمیل / موبایل خودش رو verify کنه وگرنه اکانت فعال نمی‌شه و کاری نمی‌تونه بکنه و ....


این مدل استفاده از AI با اینکه من بهش بگم؛ یک کد signup توی پایتون بهم بده خیلی خیلی فرق داره.
طراحی، درست بودن و امنیت سیستم با من software engineer هست و فقط کد زدن رو دارم به AI می‌سپارم.
مثل یک سنیور که همه چیز رو به کارآموز می‌گه و فقط کد زدنش رو به عهده کارآموز می‌ذاره.
👍5012🔥2
از جابجایی بعضی سرویس‌ها از Python به Rust و تغییر RestApi به gRPC چندماهی می‌گذره.

با همکارای مسئول cloud server صحبت می‌کردم؛ هزینه‌ سرور از 3000$ به 300$ درماه کاهش پیدا کرده.

بخش زیادی ازین موارد به لطف Rust هست؛
مثلاً داکر ایمیج چندتا از سرویس‌های مربوط به Rust (بکند و فرانت باهم از طریق Rust سرو میشه) حجمی حدوداً ۳۵ مگ داره که روی سرویس دهنده بابت نگهداری ۱۰ ورژن آخرش هزینه 0$ هست.

فقط بکند همین سرویس‌ها روی پایتون توی بهترین حالت ۳۹۰ مگ حجم هر ایمیج بود.

مصرف و لود شبکه به شدت پایین اومد؛ که خب بخش زیادی از اون به لطف gRPC بود.

تونستیم disk کمتری رو خریداری کنیم مثلاً: برای لاگ سرور‌هامون چون 99% سناریوها رو دیگه می‌دونستیم خطا از چی هست (به لطف Result, Option) و این باعث شد اطلاعات خیلی کمتری رو نیاز داشته باشیم لاگ بندازیم.

مصرف Ram سرورها به شدت کم شد؛ توی یکی از سرویس‌ها بعنوان مثال؛ FastApi به محض استارت شدن ۲۰۰-۲۲۰ مگ مصرف رم داشت این رقم برای Actix-web روی ۲۷-۲۸ مگ بود.
موقع کار هم حداقل 8x مصرف رم Rust کمتر بود.
این درحالی هست که Rust تعداد Requestهای بیشتری رو هم جواب میداد.

توی CPU هم که بحثی وجود نداره.


مسئله با سرویس‌ها و سرورهای cloud هم همین هست؛ یک سری چیزها بدون هزینه هست اگر مصرف انقدر کم باشه؛ برای ذخیره لاگ و ... اگر تا ۵ گیگ بخوای بهت رایگان میدم، اگر Docker image هات کمتر از ۵۰ مگ باشه نگهداریش رایگان هست و ...

یا اگر Ram بیش از ۴ گیگ بخوای؛ اونوقت حداقل باید دو برابر بخری رم ۸ گیگ و حداقل باید CPU با ۴ هسته سفارش بدی اونوقت Storage هم حداقل از 100GB شروع میشه و ...


همه‌ی اینها روی هم هزینه‌هارو بالا می‌بره!

با همه‌ی این‌ها اما؛ همچنان اکثر پروژه‌های ما با FastApi و پایتون توسعه داده میشه.

وقتی ازش مطمئن شدیم و جواب داد و موفقیت آمیز بود میریم سراغ Rust

بطور خلاصه:
بکند ۹۹.۹٪ پروژه‌های استارتاپی شما به بیشتر از پایتون نیاز نخواهد داشت اگر معماری و طراحی درست باشه.



اما داشتن Rust درآینده خیلی کمک می‌کنه؛ همین شده که ما دوباره از پروژه‌های monolotic به سمت micro-service حرکت کردیم.

فرصت دستم بیاد، حتماً یک پروژه رو هم روی FastApi هم روی Actix-web کد میزنم تا تفاوت دیده بشه؛ البته چون توسعه دهنده پایتون هم هستم بایاس نمی‌کنم و زمان لازم برای توسعه رو هم خواهم گذاشت که هرکدوم چقدر ازم وقت گرفته.
👍4310🔥4
Docker
دوتا ابزار جدید اضافه کرده، چقدرم خوبه (البته من با یکیش کار کردم فعلا)

Docker model
برای دپلوی مدل‌های هوش مصنوعی، خوبیش اینه که docker compose هم می‌شناسه و می‌تونید مستقیم کانتینر کد خودتون رو به کانتینر مدل وصل کنید

دومی هم؛
Docker MCP
روی داکر دسکتاپ که کلاً راه‌اندازی سرور اختصاصی MCP رو تبدیل به بچه بازی کرده؛ ۴ تا تیک رو میزنی و وصل می‌شه 😑
23👍4
بهترین کاربرد
Nano banana
مدل تولید تصویر گوگل!
آیا درکی از تصویر رستم داشتید ؟
یا اونجاهایی که شاه‌نامه اون رو بزرگ و قدرتمند توصیف می‌کنه ؟

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


پینوشت؛
خیلی جالبه، حتی اگر بهش منبع از توصیف کوروش بزرگ هم بدید. از تولید تصاویرش اجتناب می‌کنه :
There are a lot of people I can help with, but I can't depict some public figures. Do you have anyone else in mind ?
21😁6🔥1👏1
RandRng
Photo
حکیم فردوسی،
فقط ی کتاب ننوشته، prompt engineering کرده!
چقدر جزئیات داره.

می‌تونید به مدل جزئیات رو بدید (از مدل‌های دیگه بخواید براتون از شاه‌نامه استخراج کنه)
25👍3🔥3💯1