یه سری تغییرات اساسی توی UI/UX دانلود منیجیر دادم.
خودم روتین ازش استفاده میکنم و مدام سعی میکنم بهترش کنم. جدا از اون خیلی نحوهی کارم با کلود توی این پروژه بهتر شده. میشه گفت از Spec-driven گذر کردم و بنظرم هرجایی خوب نیست.
برای ui براش sketch میکشم خودش میسازه و تست میکنه، ولی باید پختهترش کنم و برم از selenium یا ابزارهای مشابه استفاده کنم تا تمیزتر تست کنه خودش. الان با پایتون و screenshot گرفتن تست میکنه و موس رو حرکت میده.
در کل پروژه روند جالبی گرفته.
با اینکه تو گیتهابم هست، ولی هنوز لانچ رسمی نکردم. منتظرم به یه استیت خاصی برسه و یه سری فیچر مونده که از دانلود منیجر انتظار میره داشته باشه. البته اگه الان دانلود کنید، خود اپ قابلیت auto update داره و میتونید توی این مسیر همراه باشید و آپدیتها رو دریافت کنید. میتونید تو تنظیماتش فعالش کنید.
@ever_code
خودم روتین ازش استفاده میکنم و مدام سعی میکنم بهترش کنم. جدا از اون خیلی نحوهی کارم با کلود توی این پروژه بهتر شده. میشه گفت از Spec-driven گذر کردم و بنظرم هرجایی خوب نیست.
برای ui براش sketch میکشم خودش میسازه و تست میکنه، ولی باید پختهترش کنم و برم از selenium یا ابزارهای مشابه استفاده کنم تا تمیزتر تست کنه خودش. الان با پایتون و screenshot گرفتن تست میکنه و موس رو حرکت میده.
در کل پروژه روند جالبی گرفته.
با اینکه تو گیتهابم هست، ولی هنوز لانچ رسمی نکردم. منتظرم به یه استیت خاصی برسه و یه سری فیچر مونده که از دانلود منیجر انتظار میره داشته باشه. البته اگه الان دانلود کنید، خود اپ قابلیت auto update داره و میتونید توی این مسیر همراه باشید و آپدیتها رو دریافت کنید. میتونید تو تنظیماتش فعالش کنید.
@ever_code
❤1👍1👌1
این چندوقته با چندتا از همکاران و دوستان داشتیم راجب این بحث میکردیم که کد بهینه نوشتن دنیای خیلی متفاوتی با کد تمیز نوشتن داره. خیلی سخته که جفتش رو با هم داشته باشی، بیشتر شبیه دو سر یه نمودار هستن که تصمیم میگیری چی رو فدای چی بکنی. اگه بخوای واقعا کدت تماما بهینه باشه، احتمالا با دیگه تمیز نخواهد بود. نکته اینجاست که کد بهینه نوشتن نیازمند دانش بالایی هست و باید درک خوبی از یه سری چیزا داشته باشی. توسعه و نگهداریش سختتره، و هرکسی نمیتونه به راحتی بهش دست بزنه.
این موضوع منو یاد یه جملهی دیگه انداخت. کامپایلر نوشتن شاید اونجوری سخت نباشه و بشه یادش گرفت. ولی بهینه سازی کامپایلر ۸۰ درصد کاره.
این موضوع رو وقتی داشتم کتاب کامپایلر میخوندم به چشم دیدم. مفاهیم پایهی کامپایلر، حداقل برای شروع و یادگیری اونقدر پیچیده نبود و با کمی وقت گذاشتن میشد فهمید چی به چیه. اما کامپایلرهای واقعی که توی کار استفاده میشن زمین تا آسمون با کتاب فرق دارن.
بنظرم راجب همه مفاهیم این صدق میکنه.
@ever_code
این موضوع منو یاد یه جملهی دیگه انداخت. کامپایلر نوشتن شاید اونجوری سخت نباشه و بشه یادش گرفت. ولی بهینه سازی کامپایلر ۸۰ درصد کاره.
این موضوع رو وقتی داشتم کتاب کامپایلر میخوندم به چشم دیدم. مفاهیم پایهی کامپایلر، حداقل برای شروع و یادگیری اونقدر پیچیده نبود و با کمی وقت گذاشتن میشد فهمید چی به چیه. اما کامپایلرهای واقعی که توی کار استفاده میشن زمین تا آسمون با کتاب فرق دارن.
بنظرم راجب همه مفاهیم این صدق میکنه.
@ever_code
👌3
یکی از تفکرات کسب و کاری که خیلی آزارم میده این ایدهی "سوپر اپ" یا همون "یچی بزنیم همه چی توش باشه" هست.
فکر میکنم همونطور که توی کد باید تفکیک قائل بشیم توی محصولات هم باید قائل بشیم. چرا باید همه چی یجا باشه؟ اونم بخصوص وقتی کاربر شاید واقعا از ۲۰-۳۰ درصد قابلیتهاش استفاده بکنه.
بنظرم یه نمونه از Feature Creep میشه که ترند شده و scope پروژه رو الکی بزرگ میکنه
@ever_code
فکر میکنم همونطور که توی کد باید تفکیک قائل بشیم توی محصولات هم باید قائل بشیم. چرا باید همه چی یجا باشه؟ اونم بخصوص وقتی کاربر شاید واقعا از ۲۰-۳۰ درصد قابلیتهاش استفاده بکنه.
بنظرم یه نمونه از Feature Creep میشه که ترند شده و scope پروژه رو الکی بزرگ میکنه
@ever_code
👍4💯1
Forwarded from جادی | Jadi
بیرجند لاگی ها توی روز برنامه نویس یه چلنج باحال دیگه داشتن: چلنج فشرده سازی! (:
توی این رپو یه فایل به شما داده شده که باید فشرده اش کنین و بر اساس اینکه برنامه شما چقدره و چقدر فشرده می کنه، یه امتیاز میگیرین. دقت کنین که هدف نهایی درک کردن فشرده سازی، ور رفتن باهاش و .. است. اگر یه چیزی بنویسین که یه الگوریتم فشرده سازی رو به کار ببره نسبتا بیمزه است و شاید حتی خارج از رده بندی.
اگر من بخوام بازی کنم اول آنتروپی و چند تا فاکتور دیگه رو تست می کنم. بخصوص با برنامه
enp
تا ببینم این فایل اصولا چقدر دیتا داره. یه فایل رندوم چندان قابل فشرده سازی نیست.
بعدش سعی می کنم ایده های خیلی بیسیک فشرده سازی رو پیاده کنم. مثل
RLE, huffman
برای یادگیری بگم که توی آر.ال.ای، اگر ۵ تا A پشت هم هست ممکنه بتونین بنویسین 5A. معلومه که چند تا مشکل ریز داریم که باید حلش کنین.
توی هافمن یه بار متن رو می بینیم و ترکیب های تکراری رو توش پیدا می کنیم، بعد اینها رو کد گذاری می کنیم و سعی می کنیم هر موردش رو با کدش جایگذاری کنیم و این چیزها.
این ها مسائل جالبی هستن و چیزهای باحالی بهتون یاد می دن؛ پس اگر می خواین بازی کنین معما اینجاست:
https://github.com/birlug/256
البته معلومه که سطح چنین چیزی در رده متوسط است ولی اتفاقا مسائل رده متوسط خوبیشون اینه که اگر شما تازه کار هستین، بهتون ایده می ده چطوری شروع کنین و از اونطرف بررسی کنین بقیه چیکار کردن.
و مرسی از بچه های بیرجندلاگ که مدت ها است گاه گداری مسائلی واقعا جالب برامون مطرح کردن. منم چند ساعت دیگه اگر فرصت کنم تست می کنم و جواب های شما رو هم می بینم که لذت ببرم.
توی این رپو یه فایل به شما داده شده که باید فشرده اش کنین و بر اساس اینکه برنامه شما چقدره و چقدر فشرده می کنه، یه امتیاز میگیرین. دقت کنین که هدف نهایی درک کردن فشرده سازی، ور رفتن باهاش و .. است. اگر یه چیزی بنویسین که یه الگوریتم فشرده سازی رو به کار ببره نسبتا بیمزه است و شاید حتی خارج از رده بندی.
اگر من بخوام بازی کنم اول آنتروپی و چند تا فاکتور دیگه رو تست می کنم. بخصوص با برنامه
enp
تا ببینم این فایل اصولا چقدر دیتا داره. یه فایل رندوم چندان قابل فشرده سازی نیست.
بعدش سعی می کنم ایده های خیلی بیسیک فشرده سازی رو پیاده کنم. مثل
RLE, huffman
برای یادگیری بگم که توی آر.ال.ای، اگر ۵ تا A پشت هم هست ممکنه بتونین بنویسین 5A. معلومه که چند تا مشکل ریز داریم که باید حلش کنین.
توی هافمن یه بار متن رو می بینیم و ترکیب های تکراری رو توش پیدا می کنیم، بعد اینها رو کد گذاری می کنیم و سعی می کنیم هر موردش رو با کدش جایگذاری کنیم و این چیزها.
این ها مسائل جالبی هستن و چیزهای باحالی بهتون یاد می دن؛ پس اگر می خواین بازی کنین معما اینجاست:
https://github.com/birlug/256
البته معلومه که سطح چنین چیزی در رده متوسط است ولی اتفاقا مسائل رده متوسط خوبیشون اینه که اگر شما تازه کار هستین، بهتون ایده می ده چطوری شروع کنین و از اونطرف بررسی کنین بقیه چیکار کردن.
و مرسی از بچه های بیرجندلاگ که مدت ها است گاه گداری مسائلی واقعا جالب برامون مطرح کردن. منم چند ساعت دیگه اگر فرصت کنم تست می کنم و جواب های شما رو هم می بینم که لذت ببرم.
GitHub
GitHub - birlug/256: happy programmer's day
happy programmer's day. Contribute to birlug/256 development by creating an account on GitHub.
❤3
اگر تو انتخاب پلت رنگی برای پروژهتون مشکل دارین، میتونین از این ابزار استفاده کنید:
https://coolors.co/
@ever_code
https://coolors.co/
@ever_code
Coolors.co
Coolors - The super fast color palettes generator!
Generate or browse beautiful color combinations for your designs.
🔥1
اگر هم صفحهای تو وب اعصابتونو خورد کرد میتونید بزنید و داغونش کنید :)
https://page-rage.com/
@ever_code
https://page-rage.com/
@ever_code
Page Rage
Page Rage: Destroy any web page
Page Rage is a free game that lets you destroy any page. Dealing with things in a healthy way is overrated. Hide from your problems and break things instead!
😍2
اگر وقت اضافی دارید، و یا میخواین یه جونیوری رو بدبخت کنید، بدید بره ببینه کجا سمیکولون (;) جا افتاده و پیداش کنه
https://semicolon.trm.sh
@ever_code
https://semicolon.trm.sh
@ever_code
❤1👍1
https://github.com/martinothamar/Mediator
این یه ریپوی خوب برای مطالعه و یادگیری Mediator هست.
چندوقته حس میکنم کمی تنبل شدم از بس که با ai کار کردم، خواستم خودم یه mediator بنویسم و یه سری ایده ها داشتم. سرچ کردم دیدم اینو خیلی وقت پیش که MediatR پولی شد استار کرده بودم. کدش خوانا و ساده ست تقریبا و عملا همون ایده هایی که خودم داشتم رو پیاده سازی کرده. بنظرم اگه دوست دارید تمرین کنید ریپوی خوبیه. از طرفی میشه کار کرد روش و contribute کرد.
برای یادگیری source generator هم خوبه.
@ever_code
این یه ریپوی خوب برای مطالعه و یادگیری Mediator هست.
چندوقته حس میکنم کمی تنبل شدم از بس که با ai کار کردم، خواستم خودم یه mediator بنویسم و یه سری ایده ها داشتم. سرچ کردم دیدم اینو خیلی وقت پیش که MediatR پولی شد استار کرده بودم. کدش خوانا و ساده ست تقریبا و عملا همون ایده هایی که خودم داشتم رو پیاده سازی کرده. بنظرم اگه دوست دارید تمرین کنید ریپوی خوبیه. از طرفی میشه کار کرد روش و contribute کرد.
برای یادگیری source generator هم خوبه.
@ever_code
GitHub
GitHub - martinothamar/Mediator: A high performance implementation of Mediator pattern in .NET using source generators.
A high performance implementation of Mediator pattern in .NET using source generators. - martinothamar/Mediator
❤3
خب کلودفلر هم سرویس DDNS راه اندازی کرده.
تا حالا شده روی Localhost یچی بالا بیارین، بعد بخواین روی اینترنت به بقیه نشون بدین؟
برای اینکار از سرویسهای
Dynamic DNS
استفاده میکنیم. یکی از معروفاش Ngrok هست که خیلی راحت و سریع میتونیم راهش بندازیم. من استفاده کردم و تنها مشکلش این بود که یکم کند بود.
حالا کلودفلر هم بصورت رایگان این قابلیت رو آورده مثل اینکه و میتونین ازش استفاده کنین:
https://try.cloudflare.com
@ever_code
تا حالا شده روی Localhost یچی بالا بیارین، بعد بخواین روی اینترنت به بقیه نشون بدین؟
برای اینکار از سرویسهای
Dynamic DNS
استفاده میکنیم. یکی از معروفاش Ngrok هست که خیلی راحت و سریع میتونیم راهش بندازیم. من استفاده کردم و تنها مشکلش این بود که یکم کند بود.
حالا کلودفلر هم بصورت رایگان این قابلیت رو آورده مثل اینکه و میتونین ازش استفاده کنین:
https://try.cloudflare.com
@ever_code
Cloudflare
Cloudflare Quick Tunnels
Put localhost on the Internet with a free, encrypted Cloudflare Quick Tunnel. No account, DNS, or open ports required.
❤1
EverCode
خب کلودفلر هم سرویس DDNS راه اندازی کرده. تا حالا شده روی Localhost یچی بالا بیارین، بعد بخواین روی اینترنت به بقیه نشون بدین؟ برای اینکار از سرویسهای Dynamic DNS استفاده میکنیم. یکی از معروفاش Ngrok هست که خیلی راحت و سریع میتونیم راهش بندازیم. من استفاده…
خب یه چندتا نکته راجب این پست هست که باید بگم.
یه سرچ زدم و این سرویس رو چندسالی هست که داره، و اینکه من از ادبیات اشتباهی استفاده کردم.
من گفتم ddns داره، ولی در اصل ddns برای وقتیه که ip متغیره و سرویس باید ip رو عوض کنه هنگام تغییر تا دامنه همچنان به سیستم شما برسه.
این یکی بیشتر شبیه reverse proxy tunnel هست که هربار که اجرا میکنین یک دامنه جدید بهتون میده و کوتاه مدته.
من قبلا ندیده بودم اینو و فکر کردم جدیده اما مدتی هست که دارتش.
ازونجایی که کاربری خودم با ngrok بیشتر در همین جهت بود، فکر کردم که یکی هستن، اما فکر کنم که ngrok یک ddns واقعیه. اون هم سرچ میکنم مطمئن شم.
@ever_code
یه سرچ زدم و این سرویس رو چندسالی هست که داره، و اینکه من از ادبیات اشتباهی استفاده کردم.
من گفتم ddns داره، ولی در اصل ddns برای وقتیه که ip متغیره و سرویس باید ip رو عوض کنه هنگام تغییر تا دامنه همچنان به سیستم شما برسه.
این یکی بیشتر شبیه reverse proxy tunnel هست که هربار که اجرا میکنین یک دامنه جدید بهتون میده و کوتاه مدته.
من قبلا ندیده بودم اینو و فکر کردم جدیده اما مدتی هست که دارتش.
ازونجایی که کاربری خودم با ngrok بیشتر در همین جهت بود، فکر کردم که یکی هستن، اما فکر کنم که ngrok یک ddns واقعیه. اون هم سرچ میکنم مطمئن شم.
@ever_code
❤1
بحث اینکه آیندهی کاری ما چطوری میشه و برنامه نویسی منسوخ شده در همه سطوح به اشکال مختلف دیده میشه.
یکی از تحلیلهایی که دوست داشتم این بود که تکامل شغلی مهندسی نرم افزار به سمت مهندسی محصول میره.
در نظر بگیرید قبل از هوش مصنوعی، چه چیزهایی باید یاد میگرفتیم تا برای کار qualified باشیم؟
چندسال قبل فقط دونستن api و database و یه سری نکات "کلی" برای ورود به بازار کار کافی بود. یکم جلوتر اومدیم و بحث میکروسرویس خیلی داغ شد. جدا از هایپی که بود، باید یکم دیدمون رو باز تر کنیم. اون مواقع زمانی بود که هزینه زیرساخت ارزونتر بود. چیزهایی مثل storage و processing power به راحتی قابل ارتقا شدن، docker تکامل پیدا کرد و k8s خیلی تو بازار داغ شد، و همین مسیر منجر به این شد که:
"ما که میتونیم چندتا سرور داشته باشیم، بیایم کد رو در لایهی سرور بشکنیم!"
و این هایپ توی بازار افتاد. جونیورها حالا باید خیلی سریع وارد مباحث گستردهتر میشدن. اون خط حداقلی جابجا شد. باید جدا از یه api و database وارد مباحث معماری و مهندسی میشدن. در نظر داشته باشین که دارم میگم جونیور.
حالا که ai اومده هم همین مسیر ادامه پیدا کرده. دوست خوبمون uncle bob تو مصاحبه اخیرش میگفت که کد دیگه یه مبحث حل شدست. باید بزرگتر بهش نگاه کرد. پس همین خط رو بریم، میبینیم که برای اینکه یه جونیور توی بازار دوام بیاره، باید بتونه دیدش رو باز تر کنه.
باید فرای معماری و طراحی سیستم، به محصول هم فکر بکنه. احتمالا همینجاها مبحث product engineering مطرح میشه.
اما سوال اصلی اینجاست، اگه کد "حل" شده، آیا هنوز نیازه مباحث سطح پایین رو یاد بگیریم؟
بیاین نقل قولی از Sir Jackie Stewart که ۳ بار world champion مسابقات فرمول ۱ بوده رو ببینیم:
نویسندهی کتاب Writing an interpreter in Go اول کتاب میخواد به سوال اینکه "چرا با Go بیایم یه مفصر بنویسیم؟ چه نیازی به این دانش هست اصلا؟" به این نقل قول اشاره میکنه و براساس اون اصطلاح Machine Sympathy رو بیان میکنه. ما برای رانندگی فرمول یک نیاز نیست مکانیک باشیم، ولی باید با مکانیک اون ماشین بتونیم "همدردی" کنیم. تو کامپیوتر هم بنظر من همینه. شاید برای "کار راه انداختن" نیاز نباشه تو دوران هوش مصنوعی دانش سطح پایین داشته باشیم. ولی ۱۰۰ درصد برای مهندس خوبی بودن، به قول خارجیا برای "10x Engineer" بودن، نیاز داریم بتونیم با کامپیوتر همدردی کنیم. ما سیستم عامل، شبکه، کامپایلر، حتی اسمبلی یاد نمیگیریم که خودمون بتونیم بنویسیمشون یا مستقیم باهاشون کار کنیم. یاد میگیریم که بتونیم یه درک "احساسی" درستی از نحوه رفتار کامپیوتر داشته باشیم.
خلاصه که شاید امروزه همه Generalist بخوان، ولی اون Specialist ها هستن که به اون اهداف خاص میرسن.
بنظر من البته😁✋
@ever_code
یکی از تحلیلهایی که دوست داشتم این بود که تکامل شغلی مهندسی نرم افزار به سمت مهندسی محصول میره.
در نظر بگیرید قبل از هوش مصنوعی، چه چیزهایی باید یاد میگرفتیم تا برای کار qualified باشیم؟
چندسال قبل فقط دونستن api و database و یه سری نکات "کلی" برای ورود به بازار کار کافی بود. یکم جلوتر اومدیم و بحث میکروسرویس خیلی داغ شد. جدا از هایپی که بود، باید یکم دیدمون رو باز تر کنیم. اون مواقع زمانی بود که هزینه زیرساخت ارزونتر بود. چیزهایی مثل storage و processing power به راحتی قابل ارتقا شدن، docker تکامل پیدا کرد و k8s خیلی تو بازار داغ شد، و همین مسیر منجر به این شد که:
"ما که میتونیم چندتا سرور داشته باشیم، بیایم کد رو در لایهی سرور بشکنیم!"
و این هایپ توی بازار افتاد. جونیورها حالا باید خیلی سریع وارد مباحث گستردهتر میشدن. اون خط حداقلی جابجا شد. باید جدا از یه api و database وارد مباحث معماری و مهندسی میشدن. در نظر داشته باشین که دارم میگم جونیور.
حالا که ai اومده هم همین مسیر ادامه پیدا کرده. دوست خوبمون uncle bob تو مصاحبه اخیرش میگفت که کد دیگه یه مبحث حل شدست. باید بزرگتر بهش نگاه کرد. پس همین خط رو بریم، میبینیم که برای اینکه یه جونیور توی بازار دوام بیاره، باید بتونه دیدش رو باز تر کنه.
باید فرای معماری و طراحی سیستم، به محصول هم فکر بکنه. احتمالا همینجاها مبحث product engineering مطرح میشه.
اما سوال اصلی اینجاست، اگه کد "حل" شده، آیا هنوز نیازه مباحث سطح پایین رو یاد بگیریم؟
بیاین نقل قولی از Sir Jackie Stewart که ۳ بار world champion مسابقات فرمول ۱ بوده رو ببینیم:
You don't have to be an engineer to be a racing driver, but you have to have mechanical sympathy.
نویسندهی کتاب Writing an interpreter in Go اول کتاب میخواد به سوال اینکه "چرا با Go بیایم یه مفصر بنویسیم؟ چه نیازی به این دانش هست اصلا؟" به این نقل قول اشاره میکنه و براساس اون اصطلاح Machine Sympathy رو بیان میکنه. ما برای رانندگی فرمول یک نیاز نیست مکانیک باشیم، ولی باید با مکانیک اون ماشین بتونیم "همدردی" کنیم. تو کامپیوتر هم بنظر من همینه. شاید برای "کار راه انداختن" نیاز نباشه تو دوران هوش مصنوعی دانش سطح پایین داشته باشیم. ولی ۱۰۰ درصد برای مهندس خوبی بودن، به قول خارجیا برای "10x Engineer" بودن، نیاز داریم بتونیم با کامپیوتر همدردی کنیم. ما سیستم عامل، شبکه، کامپایلر، حتی اسمبلی یاد نمیگیریم که خودمون بتونیم بنویسیمشون یا مستقیم باهاشون کار کنیم. یاد میگیریم که بتونیم یه درک "احساسی" درستی از نحوه رفتار کامپیوتر داشته باشیم.
خلاصه که شاید امروزه همه Generalist بخوان، ولی اون Specialist ها هستن که به اون اهداف خاص میرسن.
بنظر من البته😁✋
@ever_code
❤3
این مدت که خیلی جدی درگیر download manager ام شدم، یکی از چالش های اصلیم بحث UI/UX بوده. این قسمت همیشه ضعف من بود. اما وقتی قراره یه اپ رو خودت کامل بنویسی و مسئولیتش رو بپذیری دیگه "من خیلی طراحی بلد نیستم اما کار میکنه" قشنگ نیست. برای خودم تصمیم گرفتم که حداقل، اگه حال فیگما یاد گرفتن نداشتم، دانش تئوری و کمی عملی رو بهتر کنم تا بتونم ai رو راحت تر و مفید تر هدایت کنم. در حد اینکه بفهمم چی به چیه و مسیر درستی بهش بدم.
ازین به بعد سعی میکنم منابع در این زمینه هم معرفی کنم.
یکی از بلاگ های جالبی که دارم الان میخونم اینه:
https://www.joelonsoftware.com/2001/10/24/user-interface-design-for-programmers
بنظر شروع خوبی برای ui میاد.
@ever_code
ازین به بعد سعی میکنم منابع در این زمینه هم معرفی کنم.
یکی از بلاگ های جالبی که دارم الان میخونم اینه:
https://www.joelonsoftware.com/2001/10/24/user-interface-design-for-programmers
بنظر شروع خوبی برای ui میاد.
@ever_code
Joel on Software
User Interface Design For Programmers
Chapter 1: Controlling Your Environment Makes You Happy Most of the hard core C++ programmers I know hate user interface programming. This surprises me, because I find UI programming to be quintess…
EverCode
کلود دیزاین هم ابزار جالبی شده، با دوتا اسکرین شات خودش کارو دراورد. @ever_code
به زودی از رابط جدید رونمایی میکنم، ولی واقعا وقتی آدم نمیدونه داره چیکار میکنه نتیجه خیلی متفاوته. چندوقته هم بیشتر راجب طراحی و اینا خوندم و هم از کاربلداش پرس و جو کردم، و نوع کارم با claude در زمینهی دیزاین عوض شد. نتیجهش هم آمادهست ولی طرحه، پیاده سازی نشده هنوز.
@ever_code
@ever_code