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

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

dev.to/purejoymind

هم توی سایت شخصیم و هم توی دِو بلاگ هام رو میزارم.
Download Telegram
اگر وقت اضافی دارید، و یا میخواین یه جونیوری رو بدبخت کنید، بدید بره ببینه کجا سمیکولون (;) جا افتاده و پیداش کنه

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
در مورد compression بگیم که یکی از موضوعات خیلی مهم در دنیای نرم افزاره. روش‌های زیادی براش وجود داره و ریاضیات جالبی پشتش هست. یه منبعی که برای شروع میتونه خوب باشه کتاب Understanding Compression از انتشارات O'Reilly هست.
شاید اول تو ذهنمون فقط Rar و Zip و این چیزا بیاد، اما این مبحث یکی از اون دسته مباحث کمتر دیده شده هست که یه بخش خیلی خیلی بزرگی از صنعت کامپیوتر دنیا و مخابرات و شبکه ازش استفاده میکنه.
بنظرم یکی از نیش های جذاب کامپیوتریه و جا داره توش عمیق شد. یجورایی مثل رمزنگاری.

@ever_code
تو دوران هوش مصنوعی، نه تنها سرعت تولید کد زیاد شده، بلکه ابعاد دیگه هم تغییرات بنیادی زیادی داشتن.
امروز، با صحبت کردن، در کمترین زمان از ایده تا طرح اولیه میرسیم. صنعت دیزاین هم از این موضوع در امان نمونده. خانم Katie Dill، مسئول دیزاین کمپانی Stripe، توی این ویدیو میاد از این موضوع حرف میزنه.
یکی از چیزهایی که بهش اشاره میکنه، Zombie UI هست. با حضور AI سایت هایی که در دو دقیقه زده میشن، یکی از مهم ترین عناصر طراحی رو در خودشون ندارن. هدف یا بقول خودش intentionality.
از تاریخ میگه که چرا بعد از جنگ جهانی دوم، خیلی از ساختمان ها شبیه هم شدن و هدف طراح توی اون دوران گم شد، و تشبیهش میکنه به الان که همه سایت خودشون رو میزنن اما توی رابط های کاربری، هدف از بین رفته. همچی یک شکل شده و اون طراحی دیگه معطوف به تجربه کاربری نیست.
یکی از نکته هایی که مطرح میکنه راجب اینه که هوش مصنوعی خیلی سریع به ما حس "تموم" شدن محصول رو میده.
بنظرم خیلی ویدیوی آموزنده و تامل برانگیزیه و جا داره چندین بار دیده بشه. وقتی همه دارن از نحوه بهتر کد زدن و سریعتر به محصول نهایی رسیدن صحبت میکنن، خوبه که یکم ترمز بگیریم و به کاربر بیشتر فکر کنیم بجای اینکه سریع محصول رو "تموم" کنیم.

https://youtu.be/GLvFTMtw4Jk?si=QLXreZR2XgtAHiPV

@ever_code
❤2
EverCode
تو دوران هوش مصنوعی، نه تنها سرعت تولید کد زیاد شده، بلکه ابعاد دیگه هم تغییرات بنیادی زیادی داشتن. امروز، با صحبت کردن، در کمترین زمان از ایده تا طرح اولیه میرسیم. صنعت دیزاین هم از این موضوع در امان نمونده. خانم Katie Dill، مسئول دیزاین کمپانی Stripe، توی…
- Avoid Zombie UI: Stop building generic, soulless interfaces.
- Refuse to confuse done with good: Speed and polish don't equal quality.
- Have a clear POV: Set human standards so AI doesn't default to generic outputs.
- Encode intent: Embed design standards directly into AI workflows.
- Embrace post-build editing: Human quality control shifts to rigorous editing at the end.
- Raise the ceiling: Use AI to invent new interfaces, not just make old ones faster.
شرکت Stripe چند وقتی میشه که به یکی از شرکت های مورد علاقم تبدیل شده. یکی از بزرگترین شرکت های تک دنیاست و صاحب سبک هست.
https://youtube.com/@stripe?si=iEp00TkmvUZ4FqH0

کانال یوتوبش رو هم ببینید و کلی چیزهای جذاب داره.

@ever_code
یه سری شاخه های کامپیوتر دقیقا اون جاهایی هستن که ما میگفتیم مگه ریاضی کجا تو زندگی به درد میخوره؟ بنظرم فیلدهای Graphics programming و Sound engineering تو نرم افزار جزو جواب هاش میشن. البته توی سخت افزار خیلی بیشتر به چشم میاد این، ولی بعنوان مهندس نرم افزار، این دوتا فیلد رو همیشه دوست داشتم توشون عمیق بشم. جفتشون بشدت با ریاضی سر و کار دارن و برای شروع و درکشون باید فرمول ها و منطق پشتش رو بدونین.
توی گرافیک یه مبحثی داریم به نام Shader Programming که یکی از زیر شاخه هاش میشه، با استفاده از جبر خطی و مثلثات، میشه تصویر ایجاد کرد.
با Claude دارم یه سری ریاضیات دوران دبیرستان و دانشگاه رو مرور میکنم و خیلی تمیز داره درس میده بهم. اما دوست دارم در همین حد ازش کمک بگیرم، خود تصاویری که ایجاد میشه نوعی هنر هست. بنظرم داریم به جایی میرسیم که ذوق هنری خیلی داره از مهارت فنی مهم تر میشه.
سالهاست که هنر کار میکنم اما هیچوقت حس نمیکردم بخوام با کارم بیشتر تلفیقش کنم، از موسیقی تا طراحی، اما بنظرم به جایی میریم که دونستن هنر واجبه.
توصیه خودم به دوستان، سعی کنید یه هنری یاد بگیرید از موسیقی (درست و اصولی به همراه تئوری) تا طراحی، بعدا خیلی واجب تر میشه.

@ever_code
❤1
بیاین یکم بیشتر روی گرافیک تمرکز کنیم.
این تصویر:
https://www.shadertoy.com/embed/XsXXDn?gui=true&t=10&paused=true

یک shader هست، کاملا با کد نوشته شده و طبق یه سری فرمول داره این ظاهر رو برای هر pixel میسازه.
تفاوت CPU و GPU، در زمینه ی همزمانی هست. توی گرافیک ما یک function رو به ازای تمام پیکسل های روی صفحه بصورت همزمان (parallel) اجرا میکنیم. اما CPU بصورت سری دونه دونه دستورات رو با سرعت بالا اجرا میکنه. سوالی که پیش میاد اینه که خب اگه انقد خفنه چرا کلا بجای CPU از GPU استفاده نمیکنیم؟
تو پست قبلی راجب اینکه گرافیک کلی فرمول ریاضی پشتشه صحبت کردیم. ریاضی چیزیه که میشه مستقیم روی مدار طراحی کرد و بصورت سخت افزاری محاسبه کرد.
بزارین اینطوری بگم، ما بجای اینکه با نرم افزار بیایم فرمول رو محاسبه کنیم: سیستم عامل بالا بیاد، دستورات رو لود کنه، بعد نرم افزار ما هم مثل بقیه دستورات لود و اجرا بشن
میایم روی سخت افزار، روی خود Transistor ها فرمول رو میسازیم، یعنی خود مدار یه محاسبه رو به سریعترین شکل ممکن (میشه گفت با سرعت برق) انجام میده.
اولین بار که با این موضوع برخورد داشتم تو درس طراحی دیجیتال (Digital Design) توی دانشگاه بود. اونجا یاد میگرفتیم با استفاده از Verilog مداری طراحی کنیم که یه محاسبه انجام میده، بعد میشد اون مدار رو بدیم بسازن و با ورودی و خروجی 0 و 1 مدار بهمون جواب محاسبات رو میده. این موضوع توی پردازش تصویر (مثلا توی دوربین راهنمایی و رانندگی) استفاده میشه.
کارت گرافیک هم از همین موضوع برای یه سری فرمول از پیش تعیین شده که بیشترین کاربرد رو توی محاسبه تصویر دارن استفاده میکنه و دستورات خارج ازون طراحی خیلی کندتر اجرا میشه. برای همینه که یه سری کارت گرافیک برای بازی خوبن، و یه سری برای هوش مصنوعی، چون فرمول هایی که روی مدار طراحی شدن فرق داره.
@ever_code
❤1
https://claude.ai/artifact/SQQRuCYtcH9RyBY1ZfWaXg

برای ادامه دادن مبحث shader programming نیاز داشتم مثلثات مرور کنم، دادم claude برام یه آموزش interactive درست کنه، بنظرم جالب شد.

@ever_code