COMPΞZ 🧬
396 subscribers
1.87K photos
52 videos
24 files
739 links
متخصص کامپیوتر و نرم‌افزار • سازنده • هنرمند و طراح • مجموعه‌دار • نویسنده • تحلیل‌گر • مشاور استارتاپی و ایده‌پرداز

𐎲𐎴𐎠𐎼𐎴𐎫𐎹 𐏃𐎢𐎶𐎠𐎫𐎹

We create because the world deserves better code.

https://linktr.ee/compez
Download Telegram
یک طراحی سیستم انقدر مهمه که آگاهی از هر بخشی از اون کم کمش ۱۵۰ دلار ارزششه.

مثلاً‌ همین نقشهٔ طراحی فقط برای اینکه بدونی اصلاً تایپوگرافی یعنی چی ۲۰۰ دلار قیمت PDF اشه فقط.

یعنی اگه بخوای به عنوان یه شخص بی‌سواد از صفر شروع کنی فکر کنی ببینی طراحی اختصاصی و ظاهر برنامت چطور باید باشه باید ۱۳۰۰ دلار پیاده بشی که فقط اصولش رو بخونی!

بعد انتظار داری برنامه‌ای که AI واست بلغور کرده اینارو بدون هزینه واست در بیاره؟!

اپل یه کاری کرده که هرکس بخواد برنامه‌ای بسازه که طراحی‌هاش شبیه به مهندسی طراحی سیستم اپل باشه می‌تونه این هزینه‌ها رو بپردازه و برای هوش مصنوعی آموزشش بده.

این فقط یکی از چندین نوع طراحی سیستمه. بماند حالا یکی می‌خواد اختصاصی طراحی کنه چه چیز‌هایی رو که باید بدونه.
COMPΞZ 🧬
یک طراحی سیستم انقدر مهمه که آگاهی از هر بخشی از اون کم کمش ۱۵۰ دلار ارزششه. مثلاً‌ همین نقشهٔ طراحی فقط برای اینکه بدونی اصلاً تایپوگرافی یعنی چی ۲۰۰ دلار قیمت PDF اشه فقط. یعنی اگه بخوای به عنوان یه شخص بی‌سواد از صفر شروع کنی فکر کنی ببینی طراحی اختصاصی…
این لینک رو بخونید متوجه خواهید شد طراحی و آرتیست بودن در حوزهٔ UI چقدر موضوع‌های مهمی داره. درواقع یا شما باید این موارد رو بلد باشی یا اگه ادعا می‌کنی با AI می‌سازی، باید پول بدی اینارو برای هوش مصنوعی تعلیم بدی تا نزدیک به این استاندارد طراحی کنه. واسهٔ همینه می‌گیم خروجی هوش مصنوعی تکراری هست چیزی نیست که بیاد مخصوص تو یه کار خاص انجام بده.

این فکر هوشمندانه‌ایه که اپل یک نقشهٔ راه یادگیری برای مدل‌های هوش مصنوعی ارائه کرده که داره می‌فروشتش!

https://designsystems.surf/products/ai-ready-roadmap

در واقع می‌گه تو اگه طراح هم نیستی، بهتره پول بپردازی من طراحی رو برای مدل هوش مصنوعی شما آموزش بدم. جالب بود!
همون حرفی که بارها بهش اشاره کردم هوش مصنوعی نمیاد دانشی که شما ندارید رو کامل کنه! نمیاد یک تخصص رو حذف کنه!

چون خودش نیازمند اینه که باید براش بفهمونی که چه چیزی رو باید پیاده کنه.

خب طبیعیه وقتی من یه طراح نباشم، از کجا باید بفهممم مثلاً قانون margin در طراحی لایه در استاندارد چی هست؟ بعد انتظار داری AI بیاد اینارو شسته رفته تحویلت بده؟

اگه اینطور بود این همه شرکت نمیومدن مهارت‌های طراحی رو بفروشن!

مثلاً این برای شرکت ادوبی:

https://designsystems.surf/design-systems/adobe

اینیکی برای آمازون:

https://designsystems.surf/design-systems/amazon

این واسه آی‌بی‌ام:

https://designsystems.surf/design-systems/ibm

به به پورش!!!

https://designsystems.surf/design-systems/porsche

ببین چی پیدا کردم اصلاً:

https://github.com/porsche-design-system

یا خدا اینجارو

https://designsystem.porsche.com/v4/

😄😆 یعنی نشده یه چیزی بگم برعکسش از آب در بیاد. دیدین گفتم طولی نمی‌کشه این ابر غول‌های فناوری و صنایع مسیر AI رو مشخص می‌کنن. بفرما!

این یعنی برندینگ مهمه! طراحی اختصاصی مهمه! اینطوری نیست که طراحی و طراح حذف بشن اتفاقاً برعکس طراح باید بتونه از این به بعد به AI آموزش بده که چطوری براش باید طراحی کنه.

خب شما باید بفهمی طراحی یعنی چی که تا بتونی بهش آموزش بدی.
COMPΞZ 🧬
همون حرفی که بارها بهش اشاره کردم هوش مصنوعی نمیاد دانشی که شما ندارید رو کامل کنه! نمیاد یک تخصص رو حذف کنه! چون خودش نیازمند اینه که باید براش بفهمونی که چه چیزی رو باید پیاده کنه. خب طبیعیه وقتی من یه طراح نباشم، از کجا باید بفهممم مثلاً قانون margin…
بفرما ببین اپل با اون عظمتش اندازهٔ توی کارفرمای ایرانی که با ۲۰ دلار در ماه فکر می‌کنی کلی طراح استخدام کردی نمی‌دونه؟ 😄 من شخصاً دونه دونه Road Map‌های مربوط به این شرکت‌های گردن کلفت رو دانلود کردم می‌خونم! انقدر قائده توشون هست که تازه می‌فهمی AI اصلاً برای چی ساخته شده و چرا باید بخش مهمی از کسب‌و‌کارت باشه. اینارو باید بخونم درک کنم بفهمم تا طراحی سیستم محصولات خودم رو باز‌نویسی کنم و مدل طراحی سیستم اختصاصی خودم رو برای محصولاتم پیاده‌سازی کنم.

این فقط مربوط به طراحی نیست؛ همون مثالی که زدم AI for modern cpp دقیقاً در راستای همین موضوع بود. تفاوتش این بود که اون فعلاً برای خصوص برنامه‌نویسی منطقی و ساختار پروژه‌هاست. شما می‌تونید برای بحث UI/UX هم همچین طراحی‌ای انجام بدین.

https://github.com/thecompez/ai-for-modern-cpp

در واقع من می‌تونم به دنبال همچین چیزی باشم:

Genyleap Design System

و این رو به یک طراحی سیستم اختصاصی تبدیل کنم که هر محصولی که ساخته می‌شه یک امضاء طراحی توش باشه تا ابزار AI بتونه آگاهی لازم در خصوص طراحی سیستم من رو بفهمه.
یکی از مسئولان کلیدی حوزهٔ فناوری کشور که در زمینه‌ای مرتبط با فعالیت حرفه‌ای خودم یعنی جامعهٔ استارتاپی و فناوری ایران مسئولیت بسیار مهمی داره و سال‌هاست می‌شناسمش؛ فردی که پیش‌تر هم دربارهٔ نگاه و طرز فکرش نوشته بودم امروز دیدم توی استوری‌هاش یه سوألی پرسیده بود که، چرا امکان ندارد ایران و آمریکا توافق نهایی کنن؟

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

با توجه به توضیحاتی که دادم پاسخی که گرفتم این بود:
تمام عمرتان را از همین امروز صرف دانش، تخصص، تجربه و مهارت خودتان کنید.
تمام عمرتان را خرج خودتان و خدای خودتان کنید.

اگه باهوش باشی متوجه می‌شی که منظورش چیه.😉
COMPΞZ 🧬
https://designsystems.surf/design-systems/porsche
برای آزمایش که خودم بدونم چطور یک طراحی سیستم رو می‌شه برای AI آموزش داد؛ این مورد رو انجام خواهم داد.

https://designsystem.porsche.com/v4/

یک سیستم طراحی پورشه که اتفاقاً هیچ گزینه‌ای برای فناوری Qt Quick ندارن و صرفاً برای وب و فریم‌ورک‌هایی مثل vue و nextjs پیاده‌سازی شده.

من این طراحی سیستم رو می‌سازم و کامل پورتش می‌کنم به کیوت کوئیک.
شما می‌تونید ساختار پروژه و کد‌هایی که عیناً از روی طراحی سیستم هست رو ببینید.

البته هدفم پیشنهاد دادن به شرکت پورشه هست به عنوان گزینهٔ مناسب در امبد و نرم‌افزار‌های دسکتاپی و موبایل. 😎
COMPΞZ 🧬
برای آزمایش که خودم بدونم چطور یک طراحی سیستم رو می‌شه برای AI آموزش داد؛ این مورد رو انجام خواهم داد. https://designsystem.porsche.com/v4/ یک سیستم طراحی پورشه که اتفاقاً هیچ گزینه‌ای برای فناوری Qt Quick ندارن و صرفاً برای وب و فریم‌ورک‌هایی مثل vue و…
حالا روش ساختش چطوریه؟ واقعاً فکر کردی من می‌شینم معماری رو از اول می‌سازم؟ نه! ابداً! چون قبلاً این کار رو انجام دادم. اون مخزنی بود که گفتم ai for cpp! ابتدا باید ساختار رو برای همون بدم!

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

چون طبق آموزه‌هام حالا AI می‌فهمه که من دقیقاً چه ساختاری رو می‌خوام و طبق چه اصولی برنامه‌نویسی می‌کنم.

نتیجهٔ اولیه شد همچین چیزی از معماری! بدون کوچیک‌ترین اضافه کاری در ساختار پروژه. 👌

دقت کن، همه چیز ماژولار، با CMake حرفه‌ای، ساختار فایل‌ای cppm و cpp دقیق بدون هیچ مکانیزم کلاسیک یا سنتی.

ساختار اجزاء با هر چیزی که باید باشن رو عیناً چیزی که بهش آموزش دادم پیاده می‌کنه.

کار اصلی که باید از این به بعد انجام بشه، نحوهٔ تفسیر و پورت کردن طراحی سیستم پورشه برای فناوری کیوت کوئیک هست.
COMPΞZ 🧬
این ساختاری که می‌بینی با سال‌ها تجربه حداقل کار ۱ تا ۲ روز هست! چند دقیقه طول کشید؟ حدود ۱۰ دقیقه! 😉 از AI باید اینطوری استفاده کنی.
سوأل

خب تو از کجا فهمیدی که چه کامپوننت‌هایی رو پورشه به کار می‌گیره؟
چون من ساختار کیت رو از قبل دارم، پس می‌تونم پایهٔ ابزار رو بسازم. چرا اینهمه سریع؟ چون قبلاً ساختار پروژهٔ خودم رو بارها و بارها برای هوش مصنوعی تعریف کردم! اینکه یک کنترل چه جزئیاتی داره. قرار نیست بشینم دوباره برای هر کاری همرو از اول تایپ کنم.

اما از کجا باید دقیقاً بدونم ساختار و استاندارد طراحی پورشه چیه؟ چون استاندارد شاید یکی باشه اما ظاهر و کاربرد متفاوته قطعا!

بله، کافیه به مستندات همون Design System مراجعه کنی! نمونه‌ای از مرجعش رو بگیری و پورتش کنی.
اون کاتالوگ‌های Road Map Design برای همین منظوره.

البته من با یک روش خاص‌تر تحلیلش کردم که نیازی به صرف هزینهٔ هزار دلاری نیست.

شاید زمانی برسه این چیزارو هم به آموزش تبدیل کنم، اما قصدم فعلاً‌ اینه که ضریب سرعت باز‌سازی رو محک بزنم اونم با سخت‌ترین زبان برنامه‌نویسی که برای خیلی‌ها این چیز‌ها باهاش رویاست! به نظرت می‌تونم زیر چند ساعت کل طراحی سیستم پورشه رو پیاده کنم؟!

خواهیم دید چه می‌شود!
این چطوری کفش می‌دوزه؟ 🤨
COMPΞZ 🧬
خب و تمام. ✔️
حالا این یک Design System اختصاصی دقیقاً مبتنی بر قوائد نسخهٔ ۴.۴ خود طراحی سیستم پورشه هست.

کافیه هر محصولی که نیاز هست روی دسکتاپ، موبایل و امبد برای برند پورشه ساخته بشه، این DS رو وارد پروژه کنن.

ساختش چقدر طول کشید؟ اگه بخوام ساعت بگیرم؛ چیزی حدود ۴ ساعت برای من زمان برد که منطق پس‌زمینه بک‌‌اند رو به همراه UI از طراحی سیستم پورشه پورتش کنم.

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

این کار در حالت عادی تخمینم اینه بیش از ۲ هفته زمان می‌برد البته برای من. 😉 که با استفاده از اون مدلی که گفتم اینهمه بهینه‌ در زمان توسعه شکل می‌گیره.
COMPΞZ 🧬
حالا این یک Design System اختصاصی دقیقاً مبتنی بر قوائد نسخهٔ ۴.۴ خود طراحی سیستم پورشه هست. کافیه هر محصولی که نیاز هست روی دسکتاپ، موبایل و امبد برای برند پورشه ساخته بشه، این DS رو وارد پروژه کنن. ساختش چقدر طول کشید؟ اگه بخوام ساعت بگیرم؛ چیزی حدود ۴…
خب این هم نسخهٔ آزمایشی. ✔️

https://github.com/thecompez/porsche-design-system

این مخزن مناسب برای آشنایی با نحوهٔ پورت یک طراحی سیستم از وب به سی‌پلاس‌پلاس و کیوت کوئیک رو ارائه می‌کنه.

زیرساختش کاملاً مطابق نسخهٔ اصلی هست. یک سازنده براش تعبیه کردم که با کوچیک‌ترین تغییر در طراحی رسمی، خروجی Kit هم تغییر می‌کنه.

#Porsche #Qt #QtQuick #QML #Cpp #ModernCpp #DesignSystem #UIDesign #HMI #Embedded #OpenSource #SoftwareArchitecture #CMake
Please open Telegram to view this post
VIEW IN TELEGRAM
COMPΞZ 🧬
معماری این طراحی سیستم همچین چیزی هست. 😉
یک نکتهٔ آموزشی هم بدم برای اون دسته از کسانی که تازه وارد دنیای متن‌باز می‌شن و باید خیلی چیز‌ها رو رعایت کنن.

چرا بعضی پروژه‌های متن‌باز این متن را در ابتدای مخزن خود قرار می‌دهند؟


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

This project is not affiliated with...


یا

This is an unofficial implementation...


به این نوع متن‌ها «سلب مسئولیت» یا «بیانیهٔ شفاف‌سازی» گفته می‌شود.

هدف آن‌ها این نیست که پروژه را کوچک جلوه دهند؛ بلکه می‌خواهند از همان ابتدا وضعیت پروژه را برای همه روشن کنند.

مثلاً اگر یک توسعه‌دهنده نسخه‌ای از یک نرم‌افزار، کتابخانه یا Design System متعلق به یک شرکت را برای پلتفرم دیگری پیاده‌سازی کند، باید شفاف اعلام کند که:

- این پروژه نسخهٔ رسمی شرکت نیست.
- شرکت سازنده در توسعه یا انتشار آن نقشی نداشته است.
- این پروژه مورد تأیید یا پشتیبانی آن شرکت نیست.

چرا این موضوع مهم است؟

چون متن‌باز بودن کد، به معنی آزاد بودن نام و نشان تجاری نیست.

ممکن است کد یک پروژه با مجوزی مانند Apache 2.0 یا MIT منتشر شده باشد، اما همچنان موارد زیر تحت قوانین مالکیت فکری محافظت شوند:

- نام تجاری (Trademark)
- لوگو
- فونت اختصاصی
- آیکون‌ها
- تصاویر و سایر دارایی‌های برند

به همین دلیل، در پروژه‌ای که اخیراً منتشر کردم این توضیح را اضافه کردم:

این یک پیاده‌سازی مستقل و آزمایشی است و هیچ وابستگی، همکاری یا تأیید رسمی از سوی Porsche AG ندارد. همچنین دارایی‌هایی مانند فونت، آیکون، لوگو و سایر مواردی که مجوز انتشار عمومی ندارند، داخل مخزن توزیع نشده‌اند.

این کار چند مزیت مهم دارد:

- احترام به حقوق مالکیت فکری
- شفاف بودن وضعیت پروژه برای کاربران
- جلوگیری از سوءبرداشت دربارهٔ رسمی بودن پروژه
- افزایش اعتماد توسعه‌دهندگان
- فراهم کردن زمینهٔ مناسب برای همکاری احتمالی با تیم اصلی در آینده

در دنیای متن‌باز، نوشتن کد فقط نیمی از مسیر است؛ نیم دیگر، رعایت مجوزها، حقوق برندها و شفافیت در نحوهٔ انتشار پروژه است.

#مجوز_نرم‌افزار #مالکیت_فکری #مهندسی_نرم‌افزار #Qt #Cpp #DesignSystem
COMPΞZ 🧬
یک نکتهٔ آموزشی هم بدم برای اون دسته از کسانی که تازه وارد دنیای متن‌باز می‌شن و باید خیلی چیز‌ها رو رعایت کنن. چرا بعضی پروژه‌های متن‌باز این متن را در ابتدای مخزن خود قرار می‌دهند؟ شاید در گیت‌هاب با جمله‌هایی مثل این روبه‌رو شده باشید: This project is…
در چنین شرایطی وقتی شما طرحی رو از روی یک شرکت مهم الگو‌برداری یا گسترش میدین، باید با تیمش در ارتباط قرار بگیرید و اطلاع‌رسانی کنید.

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

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

https://github.com/porsche-design-system/porsche-design-system/issues/4597

هدف از این درخواست اینه که:

- وضعیت پروژه برای تیم رسمی پورشه شفاف باشه.
- مشخص بشه آیا نسخهٔ Native برای Qt Quick در مسیر آیندهٔ Porsche Design System جایی دارد یا نه.
- دربارهٔ نام‌گذاری، مجوزها و استفاده از دارایی‌های برند نظر رسمی بگیریم.
- معلوم شود پروژه بهتر است مستقل بماند یا به‌عنوان یک نسخهٔ همراه رسمی توسعه پیدا کند.
- قبل از ادامهٔ توسعه، معماری و مسیر نگه‌داری با تیم اصلی هماهنگ شود.

یعنی در کنار اعلام غیررسمی بودن پروژه، مسیر همکاری رسمی هم باز گذاشته شده است.

خیلی‌ها ازم می‌پرسن آقا چطوری نمونه کار برای خودم بسازم چطور نظر یه شرکت رو جلب کنم؟ چطوری رزومه بسازم؟ خب منم صد‌ها جا رزومه فرستادم ولی در نهایت ملت بیکار نیستن صرفاً با یه کاغذ روی تجربه شما حساب باز کنن.

باید نمونه‌های واقعی داشته باشی.
من پیشنهادم اینه در خصوص رزومه‌های فنی بهتره شما یک نمونهٔ واقعی بسازید و نه صرفاً یک ظاهر ساده! بلکه یک نمونه که در گسترش اکوسیستم یک شرکت مهم یا معروف چیزی بهش اضافه کنه.

مهم نیست حتی نبیننش! مهم اینه که شما کار رو انجام بدی.

این‌ها کارهایی هستن که شما می‌تونید کنار ده‌ها و صد‌ها برنامهٔ دیگه در اوقات فراغت انجام بدین.
این مگه چقدر وقت منو گرفت؟ حتی نصف روز هم نشد! البته که به خاطر تجربه قوی‌ای که دارم هست! با کمی ترکیب با هوش مصنوعی با کمترین زمان ممکن ساختمش.

به همین راحتی!

حالا من اینو از روی علاقه که خودم ببینم چطور با اون مدلی که آموزش داده بودم می‌شه چیزی رو بالا آورد امتحانش کردم، شاید الکی الکی جدی شد! باز هم مهم نیست.

مهم اینه انجام شد. ✔️
Please open Telegram to view this post
VIEW IN TELEGRAM
COMPΞZ 🧬
در چنین شرایطی وقتی شما طرحی رو از روی یک شرکت مهم الگو‌برداری یا گسترش میدین، باید با تیمش در ارتباط قرار بگیرید و اطلاع‌رسانی کنید. توی ایران این چیزا معنا نداره فرهنگ سازی نشده اما یکی از الزامات رفتار حرفه‌ای در سطح بین‌المللی همین هست حتی در داخل که…
اینو دقت کن!
همچین شرکتی کم چیزی نیست! حتی طرحی که از شما به عنوان یک پروپوزال پیشنهادی می‌بینه خودکار منتقلش کرد به بخش برنامه‌های پیشنهادی.

خب ممکنه واقعاً بهش اهمیت بدن! جدی بگیرن.

این‌ها همشون روش‌هایی هست که شما می‌تونید در کنار لذت بردن از کارهایی که می‌کنید، بذاریدش در مسیر درست که ممکنه واقعاً دیده بشه.

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

دوست داشته باشه باهات ارتباط می‌گیره. 👋🏼 این روش خیلی فرق داره با اینکه بری رزومتو در قالب چند تا کاغذ ارسال کنی اینور اونور تهشم هیچ‌کس نبینتش.
یک سوألی بود که نقشه‌های فارسی مبتنی بر رند gl توی کیوت چرا فارسی پشتیبانی نمی‌کنن؟!
دلیلش اینه که شما باید مدل‌ رندر رو با icu کامپایل کنید.✔️
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
هرچی شما می‌گین، من برعکسش رو در نظر می‌گیرم.
و کاملاً درست از آب در میاد، تا به امروز هم همینطور بوده. 👋🏼
یه بنده خدایی تماس گرفته بود می‌گفت، بازار خرابه! می‌خوام بیام برنامه‌نویسی یاد بگیرم سریع پول در بیارم ازش! همینجاست می‌گم یکم دست ترمزتو بکش!

واقعیت اینه، اینو باید در نظر بگیری ما سال‌ها طول کشید که بفهمیم که هنوز نمی‌فهمیم. 😒

می‌خنده فکر می‌کنه مسخرش می‌کنم! می‌گم نه ببین جدی می‌گم سال‌های سال طول کشیده ما بفهمیم که خیلی چیز‌ها هست که واقعاً هنوز نمی‌فهمیم. ولی خب ما بدون حضور هوش مصنوعی یاد گرفتیم و بیشتر زمان از ما گرفته! شماها می‌تونید خیلی سریع‌تر هم یاد بگیرید؛ فقط کافیه نحوهٔ فکر کردن برای ساختن رو درک کنید.

این توصیف من از دنیای برنامه‌نویسی؛ به هر حال خوش آمدید؛ همین کانال رو زیر رو کن ده‌ها بار اشاره کردم که چه چیز‌هایی رو باید یاد بگیری.

از ایده‌های خیلی ساده شروع کن، خیلی ساده :)