EverCode
252 subscribers
64 photos
3 videos
4 files
97 links
اینجا راجب کامپیوتر، نرم افزار، زبان‌ها و مطالب مرتبط با هم گپ میزنیم

سایت و بلاگ:
mazdakparnian.com

dev.to/purejoymind

هم توی سایت شخصیم و هم توی دِو بلاگ هام رو میزارم.
Download Telegram
این چندوقته با چندتا از همکاران و دوستان داشتیم راجب این بحث میکردیم که کد بهینه نوشتن دنیای خیلی متفاوتی با کد تمیز نوشتن داره. خیلی سخته که جفتش رو با هم داشته باشی، بیشتر شبیه دو سر یه نمودار هستن که تصمیم میگیری چی رو فدای چی بکنی. اگه بخوای واقعا کدت تماما بهینه باشه، احتمالا با دیگه تمیز نخواهد بود. نکته اینجاست که کد بهینه نوشتن نیازمند دانش بالایی هست و باید درک خوبی از یه سری چیزا داشته باشی. توسعه و نگهداریش سخت‌تره، و هرکسی نمیتونه به راحتی بهش دست بزنه.
این موضوع منو یاد یه جمله‌ی دیگه انداخت. کامپایلر نوشتن شاید اونجوری سخت نباشه و بشه یادش گرفت. ولی بهینه سازی کامپایلر ۸۰ درصد کاره.
این موضوع رو وقتی داشتم کتاب کامپایلر میخوندم به چشم دیدم. مفاهیم پایه‌ی کامپایلر، حداقل برای شروع و یادگیری اونقدر پیچیده نبود و با کمی وقت گذاشتن میشد فهمید چی به چیه. اما کامپایلر‌های واقعی که توی کار استفاده میشن زمین تا آسمون با کتاب فرق دارن.
بنظرم راجب همه مفاهیم این صدق میکنه.

@ever_code
👌3
فروردین ۱۳۹۹ 😞💔
@ever_code
😢5💔2
یکی از تفکرات کسب و کاری که خیلی آزارم میده این ایده‌ی "سوپر اپ" یا همون "یچی بزنیم همه چی توش باشه" هست.
فکر میکنم همونطور که توی کد باید تفکیک قائل بشیم توی محصولات هم باید قائل بشیم. چرا باید همه چی یجا باشه؟ اونم بخصوص وقتی کاربر شاید واقعا از ۲۰-۳۰ درصد قابلیت‌هاش استفاده بکنه.

بنظرم یه نمونه از Feature Creep میشه که ترند شده و scope پروژه رو الکی بزرگ میکنه

@ever_code
👍4💯1
کلود دیزاین هم ابزار جالبی شده، با دوتا اسکرین شات خودش کارو دراورد.

@ever_code
🔥4
Forwarded from جادی | Jadi
بیرجند لاگی ها توی روز برنامه نویس یه چلنج باحال دیگه داشتن: چلنج فشرده سازی! (:

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

اگر من بخوام بازی کنم اول آنتروپی و چند تا فاکتور دیگه رو تست می کنم. بخصوص با برنامه
enp
تا ببینم این فایل اصولا چقدر دیتا داره. یه فایل رندوم چندان قابل فشرده سازی نیست.

بعدش سعی می کنم ایده های خیلی بیسیک فشرده سازی رو پیاده کنم. مثل
RLE, huffman

برای یادگیری بگم که توی آر.ال.ای، اگر ۵ تا A پشت هم هست ممکنه بتونین بنویسین 5A. معلومه که چند تا مشکل ریز داریم که باید حلش کنین.

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

این ها مسائل جالبی هستن و چیزهای باحالی بهتون یاد می دن؛ پس اگر می خواین بازی کنین معما اینجاست:

https://github.com/birlug/256

البته معلومه که سطح چنین چیزی در رده متوسط است ولی اتفاقا مسائل رده متوسط خوبیشون اینه که اگر شما تازه کار هستین، بهتون ایده می ده چطوری شروع کنین و از اونطرف بررسی کنین بقیه چیکار کردن.

و مرسی از بچه های بیرجندلاگ که مدت ها است گاه گداری مسائلی واقعا جالب برامون مطرح کردن. منم چند ساعت دیگه اگر فرصت کنم تست می کنم و جواب های شما رو هم می بینم که لذت ببرم.
❤3
اگر تو انتخاب پلت رنگی برای پروژه‌تون مشکل دارین، میتونین از این ابزار استفاده کنید:
https://coolors.co/

@ever_code
🔥1
Forwarded from مسعود بیگی (مسعود بیگی)
مرسی از تک‌تک‌تون بچه ها ❤️
❤5
اگر وقت اضافی دارید، و یا میخواین یه جونیوری رو بدبخت کنید، بدید بره ببینه کجا سمیکولون (;) جا افتاده و پیداش کنه

https://semicolon.trm.sh

@ever_code
❤1👍1
لبخند روزانه
@ever_code
❤2
https://github.com/martinothamar/Mediator
این یه ریپوی خوب برای مطالعه و یادگیری Mediator هست.
چندوقته حس میکنم کمی تنبل شدم از بس که با ai کار کردم، خواستم خودم یه mediator بنویسم و یه سری ایده ها داشتم. سرچ کردم دیدم اینو خیلی وقت پیش که MediatR پولی شد استار کرده بودم. کدش خوانا و ساده ست تقریبا و عملا همون ایده هایی که خودم داشتم رو پیاده سازی کرده. بنظرم اگه دوست دارید تمرین کنید ریپوی خوبیه. از طرفی میشه کار کرد روش و contribute کرد.
برای یادگیری source generator هم خوبه.

@ever_code
❤3
خب کلودفلر هم سرویس DDNS راه اندازی کرده.
تا حالا شده روی Localhost یچی بالا بیارین، بعد بخواین روی اینترنت به بقیه نشون بدین؟
برای اینکار از سرویس‌های
Dynamic DNS
استفاده می‌کنیم. یکی از معروفاش Ngrok هست که خیلی راحت و سریع میتونیم راهش بندازیم. من استفاده کردم و تنها مشکلش این بود که یکم کند بود.
حالا کلودفلر هم بصورت رایگان این قابلیت رو آورده مثل اینکه و میتونین ازش استفاده کنین:
https://try.cloudflare.com

@ever_code
❤1
EverCode
خب کلودفلر هم سرویس DDNS راه اندازی کرده. تا حالا شده روی Localhost یچی بالا بیارین، بعد بخواین روی اینترنت به بقیه نشون بدین؟ برای اینکار از سرویس‌های Dynamic DNS استفاده می‌کنیم. یکی از معروفاش Ngrok هست که خیلی راحت و سریع میتونیم راهش بندازیم. من استفاده…
خب یه چندتا نکته راجب این پست هست که باید بگم.
یه سرچ زدم و این سرویس رو چندسالی هست که داره، و اینکه من از ادبیات اشتباهی استفاده کردم.
من گفتم 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 مسابقات فرمول ۱ بوده رو ببینیم:
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
EverCode
کلود دیزاین هم ابزار جالبی شده، با دوتا اسکرین شات خودش کارو دراورد. @ever_code
به زودی از رابط جدید رونمایی میکنم، ولی واقعا وقتی آدم نمیدونه داره چیکار میکنه نتیجه خیلی متفاوته. چندوقته هم بیشتر راجب طراحی و اینا خوندم و هم از کاربلداش پرس و جو کردم، و نوع کارم با claude در زمینه‌ی دیزاین عوض شد. نتیجه‌ش هم آماده‌ست ولی طرحه، پیاده سازی نشده هنوز.

@ever_code
جدا از بحث خود هوش مصنوعی خیلی علاقه دارم بدونم claude و openai معماری و طراحی سیستماشون چیه که این حجم از درخواست ها رو مثل کره جواب میدن؟ البته که منایع هم زیاد سمتش پرتاب میکنن و همش معماری تمیز و بهینه نیست حس میکنم.
@ever_code
👍5
sneak peek at the new design 🙈😜
@ever_code
❤3👍1
از دیروز تحریم‌های claude شروع شده و متاسفانه فعلا بدون فیلترشکن یا تغییر dns نمیشه وصل شد.
@ever_code
🥰1