COMPΞZ 🧬
بعضیها میگن ساختن کنترلهای جذاب توی QML سخته! آره سخته ومثل وب ساده نیستن! اما ساختن همچین کنترلی توی QML واقعاً ارزشمنده چون هزینهٔ مدیرتی لایه بندی و DOM رو نداره و در عوض راندمانش بسیار بالاست؛ الان با ShaderEffect میشه کل UI رو مستقیم برد روی GPU و…
سوألی شاید پیش بیاد که طراحیهای گذشته در QML رو آیا با همین روش محاسباتی انجام دادم؟
پاسخ؟ خیر!
روش طراحی کار با Qt Quick سادهتره و در بالاترین لایههای ممکن اجرا میشه هرچند به نوعی خروجی نهاییش به کد ++C ترجمه و بعد کامپایل میشه! برای همین سرعتش واقعاً سریعه.
اما یه مرحله خفنتر از اون هم داریم که بهش میگیم طراحی با Fragment Shader.
اینجا دیگه ما با دکمه و یه سری شیء سرو کار نداریم و با چیزهای آمادهٔ از قبل تعریف شده کار نمیکنیم؛ بلکه کل UI تبدیل میشه به یک محاسبهٔ تصویری روی GPU.
یعنی چی؟
یعنی به جای اینکه بگیم:
«این یه دکمه است، اینم رنگشه، اینم گوشههاش»
میگیم: برای هر پیکسل تصمیم میگیری این نقطه داخل کدوم جهان هندسیه، چقدر از مرزها فاصله داره، و چطور باید با میدانهای دیگه قاطی بشه تا در نهایت خودش تصویر رو بسازه.
این روش به شدت سخته و در واقع برنامهنویسی سطح پایین به حساب میاد؛ بیشتر برنامهنویسان سیستمی گرافیکی، مثلاً طراحان مایکروسافت، گوگل، اپل ازش تبعیت میکنن! مثل هیمن طراحی UI گوشیهای آیفون یا iOS جدید یا مک جدید که با طرح شیشهای معروفه.
همهٔ اینا در سطح پایین طراحی میشن و مهندسی به شدت پیچیدهای دارن.
اما نتیجش اگه دقت کنید بسیار روان و واقعیگرایانست.
پاسخ؟ خیر!
روش طراحی کار با Qt Quick سادهتره و در بالاترین لایههای ممکن اجرا میشه هرچند به نوعی خروجی نهاییش به کد ++C ترجمه و بعد کامپایل میشه! برای همین سرعتش واقعاً سریعه.
اما یه مرحله خفنتر از اون هم داریم که بهش میگیم طراحی با Fragment Shader.
اینجا دیگه ما با دکمه و یه سری شیء سرو کار نداریم و با چیزهای آمادهٔ از قبل تعریف شده کار نمیکنیم؛ بلکه کل UI تبدیل میشه به یک محاسبهٔ تصویری روی GPU.
یعنی چی؟
یعنی به جای اینکه بگیم:
«این یه دکمه است، اینم رنگشه، اینم گوشههاش»
میگیم: برای هر پیکسل تصمیم میگیری این نقطه داخل کدوم جهان هندسیه، چقدر از مرزها فاصله داره، و چطور باید با میدانهای دیگه قاطی بشه تا در نهایت خودش تصویر رو بسازه.
این روش به شدت سخته و در واقع برنامهنویسی سطح پایین به حساب میاد؛ بیشتر برنامهنویسان سیستمی گرافیکی، مثلاً طراحان مایکروسافت، گوگل، اپل ازش تبعیت میکنن! مثل هیمن طراحی UI گوشیهای آیفون یا iOS جدید یا مک جدید که با طرح شیشهای معروفه.
همهٔ اینا در سطح پایین طراحی میشن و مهندسی به شدت پیچیدهای دارن.
اما نتیجش اگه دقت کنید بسیار روان و واقعیگرایانست.
COMPΞZ 🧬
سوألی شاید پیش بیاد که طراحیهای گذشته در QML رو آیا با همین روش محاسباتی انجام دادم؟ پاسخ؟ خیر! روش طراحی کار با Qt Quick سادهتره و در بالاترین لایههای ممکن اجرا میشه هرچند به نوعی خروجی نهاییش به کد ++C ترجمه و بعد کامپایل میشه! برای همین سرعتش واقعاً…
یعنی بخوام خلاصهٔ مراحل طراحی و کار با گرافیک رو بکنم اینطوریه:
سطوح طراحی گرافیک/UI مثل وب (HTML/CSS/React)
تو فقط ساختار و رفتار رو تعریف میکنی، بقیه رو مرورگر رندر میکنه.
ساده ولی کنترل محدود.
فریمورکهای UI مثل Qt Quick / QML
اشیاء UI داری و سیستم خودش رندر رو مدیریت میکنه.
سریعتر، با کنترل متوسط.
روش Scene Graph / GPU Acceleration
سمت UI تبدیل به گراف رندر میشه.
یعنی توسط GPU batching و compositing انجام میشه.
کنترل و سرعت بسیار بالاتر هست.
و روش Shader-based UI
همه چیز محاسبهٔ پیکسلیه.
طراحی UI = تابع ریاضی روی پیکسلها.
کنترل کامل، realism بالا، پیچیدگی زیاد.
بخش خفنتر مثل کار با رابطهای برنامهنویسی گرافیکی با سطح پایین (Vulkan / Metal / DX12)
دیگه UI نداری، فقط دستور مستقیم به GPU (مغز پردازشگر گرافیکی) میدی.
حداکثر کنترل، حداکثر پیچیدگی.
در سطح GPU Pipeline (Hardware Level)
در نهایت فقط پردازش خام رو میبینی که با یک کیفیت و خروجی بسیار عالیست.
از نظر فنی مهندسی اینطوری میشه که، هرچی پایینتر میری، نزدیک به زبان ماشین، کار با اشیاء گرافیکی کمتر «تعریف میشه» و بیشتر «محاسبه میشه» یعنی مغز ریاضیات و برنامهنویسی ریاضی و قوانین فیزیک.
سطوح طراحی گرافیک/UI مثل وب (HTML/CSS/React)
تو فقط ساختار و رفتار رو تعریف میکنی، بقیه رو مرورگر رندر میکنه.
ساده ولی کنترل محدود.
فریمورکهای UI مثل Qt Quick / QML
اشیاء UI داری و سیستم خودش رندر رو مدیریت میکنه.
سریعتر، با کنترل متوسط.
روش Scene Graph / GPU Acceleration
سمت UI تبدیل به گراف رندر میشه.
یعنی توسط GPU batching و compositing انجام میشه.
کنترل و سرعت بسیار بالاتر هست.
و روش Shader-based UI
همه چیز محاسبهٔ پیکسلیه.
طراحی UI = تابع ریاضی روی پیکسلها.
کنترل کامل، realism بالا، پیچیدگی زیاد.
بخش خفنتر مثل کار با رابطهای برنامهنویسی گرافیکی با سطح پایین (Vulkan / Metal / DX12)
دیگه UI نداری، فقط دستور مستقیم به GPU (مغز پردازشگر گرافیکی) میدی.
حداکثر کنترل، حداکثر پیچیدگی.
در سطح GPU Pipeline (Hardware Level)
در نهایت فقط پردازش خام رو میبینی که با یک کیفیت و خروجی بسیار عالیست.
از نظر فنی مهندسی اینطوری میشه که، هرچی پایینتر میری، نزدیک به زبان ماشین، کار با اشیاء گرافیکی کمتر «تعریف میشه» و بیشتر «محاسبه میشه» یعنی مغز ریاضیات و برنامهنویسی ریاضی و قوانین فیزیک.
COMPΞZ 🧬
۱) باز بینی مراحل توسعهٔ بازی WARRIORS در فارکستر
👆🏼👆🏼👆🏼
این اولین بازی مبتنی بر بلاکچین بر مبنای ادغام با توکن جنی هست!
چیزی که تمام اساسش بر مبنای سیستم جنی و پروفایلهای فارکستر کار میکنه (البته فعلاً).
از نظر عملکرد و هماهنگی با قرارداد توکن بسیار تمیز پیادهسازی شد.
به خاطر جنگ و فلان عقب افتاده بود نمیتونستم منطق قراردادشو ادامه بدم که اونم حل شد.
به زودی اجرایی میشه و در موردش توضیح میدم که چطوری کار میکنه.
این اولین بازی مبتنی بر بلاکچین بر مبنای ادغام با توکن جنی هست!
چیزی که تمام اساسش بر مبنای سیستم جنی و پروفایلهای فارکستر کار میکنه (البته فعلاً).
از نظر عملکرد و هماهنگی با قرارداد توکن بسیار تمیز پیادهسازی شد.
به خاطر جنگ و فلان عقب افتاده بود نمیتونستم منطق قراردادشو ادامه بدم که اونم حل شد.
به زودی اجرایی میشه و در موردش توضیح میدم که چطوری کار میکنه.
حالتِ دانینگ-کروگر میدونی یعنی چی؟
یعنی وقتی:
یه تیم ۱۲ سال از عمرش رو گذاشته، نزدیک ۲ میلیارد دلار هزینه کرده، هزاران متخصص شب و روز کار کردن تا یه بازی منتشر بشه.
بعد یه ایرانی خود خفن پندار که همیشه که آخرین دستاورد فنی زندگیش عوض کردن عکس پروفایل تلگرام بوده، میاد با قیافه میگه:
«از گرافیکش خوشم نیومد! بده»!
تو آخه چه میفهمی موتور بازی چیه، آرتیست بازی چیه! برو تو کوچتون همون گِل بازیتو کن تورو چه به نظر دادن تو کارهای طراحی برنامهنویسی.
یعنی وقتی:
یه تیم ۱۲ سال از عمرش رو گذاشته، نزدیک ۲ میلیارد دلار هزینه کرده، هزاران متخصص شب و روز کار کردن تا یه بازی منتشر بشه.
بعد یه ایرانی خود خفن پندار که همیشه که آخرین دستاورد فنی زندگیش عوض کردن عکس پروفایل تلگرام بوده، میاد با قیافه میگه:
«از گرافیکش خوشم نیومد! بده»!
تو آخه چه میفهمی موتور بازی چیه، آرتیست بازی چیه! برو تو کوچتون همون گِل بازیتو کن تورو چه به نظر دادن تو کارهای طراحی برنامهنویسی.
جامعهها معمولاً بر اساس «درک» تقسیم نمیشوند، بلکه بر اساس نحوه پردازش و واکنش به واقعیت تحت فشار شکل میگیرند.
یک گروه واقعیت را میبیند اما بهخاطر هزینههای اجتماعی، ترس یا ناتوانی در اثرگذاری، واکنش را سرکوب میکند.
گروه دیگر همان واقعیت را از طریق فیلترهای سادهساز (رسانه، باورهای آماده، یا عادت ذهنی) دریافت میکند و آن را یا طبیعی تلقی میکند یا اصلاً مسأله نمیبیند.
در واقع، مسأله این نیست که همه یک چیز را نمیبینند؛ بلکه مسأله این است که دیدن، برای همه به یک معنی واحد تبدیل نمیشود!
چون هر ذهن مجبور است واقعیت را در قالبی بازسازی کند که با بقا و فشار اجتماعیاش سازگار باشد.
یک گروه واقعیت را میبیند اما بهخاطر هزینههای اجتماعی، ترس یا ناتوانی در اثرگذاری، واکنش را سرکوب میکند.
گروه دیگر همان واقعیت را از طریق فیلترهای سادهساز (رسانه، باورهای آماده، یا عادت ذهنی) دریافت میکند و آن را یا طبیعی تلقی میکند یا اصلاً مسأله نمیبیند.
در واقع، مسأله این نیست که همه یک چیز را نمیبینند؛ بلکه مسأله این است که دیدن، برای همه به یک معنی واحد تبدیل نمیشود!
چون هر ذهن مجبور است واقعیت را در قالبی بازسازی کند که با بقا و فشار اجتماعیاش سازگار باشد.
یه زمانی بود همه چیز در انحصار سونی دیده میشد! همون چیزی که در دوران PS1 و مخصوصاً PS2 به اوج رسیده بود! اگه کسی گیمیر باشه و به خصوص هم سن و سال من قشنگ میدونه چی میگم.
اون دوره، بازیها فقط یک محصول چندسکویی نبودند؛ هر کنسول یک اکوسیستم بسته و هویتی مستقل داشت.
شعار “Only on PlayStation” صرفاً یک برچسب تبلیغاتی نبود، بلکه یک مرزبندی فرهنگی بود: اینکه بعضی تجربهها فقط روی همان سختافزار معنا پیدا میکردند. بازیهایی مثل Metal Gear Solid یا Gran Turismo دقیقاً نمونههای همین فلسفه بودند!
تجربههایی که نه فقط از نظر فنی، بلکه از نظر طراحی، روایت و حتی حس کنترلر، برای یک پلتفرم خاص ساخته شده بودند.
اگر کمی جلوتر برویم، این هویت با عناوینی مثل God of War تبدیل به یک امضای فرهنگی شد.
هرکدام از این بازیها نه قابل جایگزینی بودند و نه هدفشان این بود که “روی همهجا اجرا شوند”. همین محدودیت هدفمند، باعث خلق تجربههای متمرکزتر و بهاصطلاح «دستسازتر» شده بود.
حالا اگر سونی دوباره به سمت تقویت انحصاریها و بازتعریف مرزهای اکوسیستم خودش حرکت کند، در واقع دارد به همان منطق قدیمی برمیگردد: اینکه ارزش یک پلتفرم فقط در قدرت سختافزار نیست، بلکه در «تجربههایی است که فقط همانجا وجود دارند».
این برای بازار امروز که بیش از حد به سمت همگن شدن رفته، میتواند یک حرکت هویتی مهم باشد، نه صرفاً یک تصمیم تجاری.
مدتهاست صنعت بازی حس و حال گذشته رو نداره و با این تصمیمات میشه گفت بر میگردیم به نوستالژی گذشته! 👌🏼
اون دوره، بازیها فقط یک محصول چندسکویی نبودند؛ هر کنسول یک اکوسیستم بسته و هویتی مستقل داشت.
شعار “Only on PlayStation” صرفاً یک برچسب تبلیغاتی نبود، بلکه یک مرزبندی فرهنگی بود: اینکه بعضی تجربهها فقط روی همان سختافزار معنا پیدا میکردند. بازیهایی مثل Metal Gear Solid یا Gran Turismo دقیقاً نمونههای همین فلسفه بودند!
تجربههایی که نه فقط از نظر فنی، بلکه از نظر طراحی، روایت و حتی حس کنترلر، برای یک پلتفرم خاص ساخته شده بودند.
اگر کمی جلوتر برویم، این هویت با عناوینی مثل God of War تبدیل به یک امضای فرهنگی شد.
هرکدام از این بازیها نه قابل جایگزینی بودند و نه هدفشان این بود که “روی همهجا اجرا شوند”. همین محدودیت هدفمند، باعث خلق تجربههای متمرکزتر و بهاصطلاح «دستسازتر» شده بود.
حالا اگر سونی دوباره به سمت تقویت انحصاریها و بازتعریف مرزهای اکوسیستم خودش حرکت کند، در واقع دارد به همان منطق قدیمی برمیگردد: اینکه ارزش یک پلتفرم فقط در قدرت سختافزار نیست، بلکه در «تجربههایی است که فقط همانجا وجود دارند».
این برای بازار امروز که بیش از حد به سمت همگن شدن رفته، میتواند یک حرکت هویتی مهم باشد، نه صرفاً یک تصمیم تجاری.
مدتهاست صنعت بازی حس و حال گذشته رو نداره و با این تصمیمات میشه گفت بر میگردیم به نوستالژی گذشته! 👌🏼
COMPΞZ 🧬
بین کامپایل یه تحلیل هم حواسمون به پادشاه باشه! معتقدم که صحنههای جرم رو خواهد دید. همین موضوع صحنهٔ جرم رو توی کانالم جستجو کن خواهی دید هرجا گفتم میبینه و دیده! الآن در وضعیت فعلی ماهانه صحنهٔ جرم نزدیک به قبل رو دوباره دیده (چند کندل قبل) و احتمال هم…
خب صحنهٔ جرم دوم رو هم دید.😉 سالهاست توی این کانال هرچی و هر نقطهای رو که گفتم عین همون رو دیده! میتونید جستجو کنید.
درسشو خوندم؟ نه! پکیج گرفتم یاد گرفتم؟ نه!
ترید رو نمیشه با توهم فروخت! یه پکیج فروش شغلش پکیج فروشیه نه ترید! گول تبلیغاتشونو نخور.
منم اگه آموزش نمیدم چون شغلم پکیج فروشی نیست، این واقعیتو کسی نمیگه بهت ولی سالها و بارها لیکوئید شدم تا مرز سکته رفتم، راهی بیمارستان شدم! اونم نه برای یه دلار دو دلار! به اندازه هیکل خیلیها از دست دادم که بفهمم موج چطوری کار میکنه و ماهیت کل بازار چطوریه.
ترید رو باید واقعی یاد بگیری نه با هیجان و تبلیغات اینکه فلانی داره ترید میکنه پس وضعش خوبه! نه جانم تا به خاک سیاه ننشستی نمیتونی یاد بگیریش و اینجاست که سر عقل میای یواش یواش یاد میگیری که هیجان و احساسات رو کنترل کنی.
منطق برنامهنویسی چاشنی خوبی برای من طی این سالها بوده، در کنترل احساسات گزینهٔ خوبیه! قانون میگه یا صفره یا یکه! دیگه غیر این نیست و شما نمیتونی بگی نه آخه فلان چیز یا فلان خبر باعث شد.
خبر فقط شتاب دهندست!
و منطق، احساس حالیش نیست، قانونه.
⚠️ درضمن، اگه دارایی چیزی توی صرافی کوینکس دارید بکشید بیرون. ⚠️
طولی نمیکشه بن خواهید شد.
درسشو خوندم؟ نه! پکیج گرفتم یاد گرفتم؟ نه!
ترید رو نمیشه با توهم فروخت! یه پکیج فروش شغلش پکیج فروشیه نه ترید! گول تبلیغاتشونو نخور.
منم اگه آموزش نمیدم چون شغلم پکیج فروشی نیست، این واقعیتو کسی نمیگه بهت ولی سالها و بارها لیکوئید شدم تا مرز سکته رفتم، راهی بیمارستان شدم! اونم نه برای یه دلار دو دلار! به اندازه هیکل خیلیها از دست دادم که بفهمم موج چطوری کار میکنه و ماهیت کل بازار چطوریه.
ترید رو باید واقعی یاد بگیری نه با هیجان و تبلیغات اینکه فلانی داره ترید میکنه پس وضعش خوبه! نه جانم تا به خاک سیاه ننشستی نمیتونی یاد بگیریش و اینجاست که سر عقل میای یواش یواش یاد میگیری که هیجان و احساسات رو کنترل کنی.
منطق برنامهنویسی چاشنی خوبی برای من طی این سالها بوده، در کنترل احساسات گزینهٔ خوبیه! قانون میگه یا صفره یا یکه! دیگه غیر این نیست و شما نمیتونی بگی نه آخه فلان چیز یا فلان خبر باعث شد.
خبر فقط شتاب دهندست!
و منطق، احساس حالیش نیست، قانونه.
طولی نمیکشه بن خواهید شد.
Please open Telegram to view this post
VIEW IN TELEGRAM
COMPΞZ 🧬
خب صحنهٔ جرم دوم رو هم دید.😉 سالهاست توی این کانال هرچی و هر نقطهای رو که گفتم عین همون رو دیده! میتونید جستجو کنید. درسشو خوندم؟ نه! پکیج گرفتم یاد گرفتم؟ نه! ترید رو نمیشه با توهم فروخت! یه پکیج فروش شغلش پکیج فروشیه نه ترید! گول تبلیغاتشونو نخور.…
درضمن اگه توی این حوزه فعالیتی دارید، یک کیف تمیز با کلید خصوصی واژههای کلیدی تمیز و خام بسازید.
چیزی که به هیچ یک از صرافیهای ایرانی ارسال یا دریافتی نداشته باشه.
و اگر خواستید معاملهای چیزی تجربه کنید، روی صرافیهایی مثل هایپر لیکوئید تجربه کنید.
چنین صرافیهایی با موضوع تحریم به خصوص برای ایران مشکلی ندارند، چون غیرمتمرکز به شمار میان.
دارایی شما روی کیف پول شماست نه حساب صرافی، یعنی صرافی این وسط فقط یک واسطهٔ معاملاتیه و نه بیشتر.
عموما کارمزدهاشون هم پایینه و امنیت هم تا وقتی که کیف شخصیت از دست نرفته مشکلی نداره.
البته سلیقهایه و ممکنه بعضیها با این تیپ صرافیها حالی نکنن.
برای من فرقی نداره چون ماههاست هیچ تریدی نمیکنم بیشتر با برنامهنویسی مشغولم اما به نظر من عصر عصر صرافیهایی خواهد بود که غیرمتمرکز هستند.
فکر نمیکنم در بلند مدت مثل گذشته بایننس و امثالش پرچمدار بازارهای رمز ارزها باقی بمونن.
یعنی هرچی غیرمتمرکزتر و کنترل در دست کاربر باشه مطمئنتره و جای نگرانی ندارد.
چیزی که به هیچ یک از صرافیهای ایرانی ارسال یا دریافتی نداشته باشه.
و اگر خواستید معاملهای چیزی تجربه کنید، روی صرافیهایی مثل هایپر لیکوئید تجربه کنید.
چنین صرافیهایی با موضوع تحریم به خصوص برای ایران مشکلی ندارند، چون غیرمتمرکز به شمار میان.
دارایی شما روی کیف پول شماست نه حساب صرافی، یعنی صرافی این وسط فقط یک واسطهٔ معاملاتیه و نه بیشتر.
عموما کارمزدهاشون هم پایینه و امنیت هم تا وقتی که کیف شخصیت از دست نرفته مشکلی نداره.
البته سلیقهایه و ممکنه بعضیها با این تیپ صرافیها حالی نکنن.
برای من فرقی نداره چون ماههاست هیچ تریدی نمیکنم بیشتر با برنامهنویسی مشغولم اما به نظر من عصر عصر صرافیهایی خواهد بود که غیرمتمرکز هستند.
فکر نمیکنم در بلند مدت مثل گذشته بایننس و امثالش پرچمدار بازارهای رمز ارزها باقی بمونن.
یعنی هرچی غیرمتمرکزتر و کنترل در دست کاربر باشه مطمئنتره و جای نگرانی ندارد.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
COMPΞZ 🧬
به به...✔️ درخواستمون تأیید شده و رفتیم روی SourceForge و AlternativeTo 😌
اهمیت SourceForge روی گوگل بسیار زیاه! 👌به مرور زمان موثرتر خواهد شد. باید بشینم روی سایت کار کنم و SEO رو بکشم بالا. قاماس قاماس یولداش!
Audio
انسانا باخین، خاصیّتی بیر جور، اوزو بیر جور
الله یارادیبدیر قاشی بیر جور، گؤزو بیر جور
Please open Telegram to view this post
VIEW IN TELEGRAM
چهارچوب Qt میخواهد QML/Qt Quick را به یک فریمورک UI چندزبانه تبدیل کند و اولین قدم جدی آن، پشتیبانی از #C است.
تا به الآن اگر میخواستیم با سیشارپ از Qt استفاده کنیم، باید از bindingها استفاده میکردیم و عملاً به سبک برنامهنویسی Qt/CPP فکر میکردیم. اما Qt Bridges میگوید:
شما منطق برنامه را با زبان خودت (مثلاً سیشارپ) بنویس، و UI را با QML؛ ما بین این دو پل میزنیم.
مثلاً:
و بعد در QML:
بدون اینکه مجبور باشی QObject، moc، signal/slot و الگوهای سنتی Qt را مستقیم استفاده کنی.
چرا Qt این کار را میکند؟
چون وضعیت UI در دنیای #C بهخصوص خارج از ویندوز، پراکنده و نامطمئن شده است:
فناوری طراحی WPF تقریباً فقط ویندوز است.
همچنین WinUI فقط در ویندوز است.
و یا MAUI از لینوکس بهصورت رسمی پشتیبانی نمیکند.
و حتی توسعهدهندگان Embedded Linux و Desktop Linux گزینههای محدودی دارند.
کیوت میخواهد بگوید:
نکتهٔ قابل توجه:
در واقع، Qt دارد همان معماریای را رسمی میکند که خیلی از پروژههای مدرن Qt به آن رسیدهاند:
یعنی QML عملاً دارد از یک «زبان UI مخصوص ++C» به یک UI Runtime مستقل از زبان تبدیل میشود و این یعنی گستردگی بیشتر در دنیای طراحی و توسعه.
https://www.qt.io/blog/csharp-ui-framework-via-bridging-technology
این هم افزونهٔ ویژوال استودیو برای پشتیبانی از این موضوع:
https://marketplace.visualstudio.com/items?itemName=TheQtCompany.QtBridgeCSharp
تا به الآن اگر میخواستیم با سیشارپ از Qt استفاده کنیم، باید از bindingها استفاده میکردیم و عملاً به سبک برنامهنویسی Qt/CPP فکر میکردیم. اما Qt Bridges میگوید:
شما منطق برنامه را با زبان خودت (مثلاً سیشارپ) بنویس، و UI را با QML؛ ما بین این دو پل میزنیم.
مثلاً:
public class Backend
{
public string Message => "Hello from C#";
}
و بعد در QML:
ApplicationWindow {
Backend { id: backend }
Text {
text: backend.message
}
}بدون اینکه مجبور باشی QObject، moc، signal/slot و الگوهای سنتی Qt را مستقیم استفاده کنی.
چرا Qt این کار را میکند؟
چون وضعیت UI در دنیای #C بهخصوص خارج از ویندوز، پراکنده و نامطمئن شده است:
فناوری طراحی WPF تقریباً فقط ویندوز است.
همچنین WinUI فقط در ویندوز است.
و یا MAUI از لینوکس بهصورت رسمی پشتیبانی نمیکند.
و حتی توسعهدهندگان Embedded Linux و Desktop Linux گزینههای محدودی دارند.
کیوت میخواهد بگوید:
«اگر بکاند برنامهٔ شما C#، Rust، Swift یا Python است، لازم نیست آن را دور بریزید؛ فقط UI را با Qt Quick بسازید.»
نکتهٔ قابل توجه:
در واقع، Qt دارد همان معماریای را رسمی میکند که خیلی از پروژههای مدرن Qt به آن رسیدهاند:
Business Logic (C#, Rust, Python, ...)
↓
Qt Bridge
↓
QML / Qt Quick
↓
GPU Renderer
یعنی QML عملاً دارد از یک «زبان UI مخصوص ++C» به یک UI Runtime مستقل از زبان تبدیل میشود و این یعنی گستردگی بیشتر در دنیای طراحی و توسعه.
https://www.qt.io/blog/csharp-ui-framework-via-bridging-technology
این هم افزونهٔ ویژوال استودیو برای پشتیبانی از این موضوع:
https://marketplace.visualstudio.com/items?itemName=TheQtCompany.QtBridgeCSharp
www.qt.io
A Cross-Platform C# UI Framework via Qt’s Bridging Technology
A new, alternative C# UI framework, also for C# on Linux. Try out Qt’s bridging technology for feature-rich UI development.
همینطوری اتفاقی این ویدئو رو دیدم که برای ۹ سال پیش هست!
اینو زمانی ساختنش که هوش مصنوعی و ابزارهای امروزی وجود نداشت و جالبترش این که اصلاً CGI نبوده! یعنی با افتر افکت و یا امثال اینها برای تبلیغات نساختنش همه چیزش کامل مهندسی شده.
https://www.youtube.com/watch?v=FG_l1oacWoQ
در سال ۲۰۱۷، Gatorade برای ساخت این تبلیغ، یه دستگاه عظیم به اسم «3D Liquid Printer» ساخت که ۲۰۴۸ نازل آب داشت و برای کنترل نازلهاش یک برنامهنویسی بسیار دقیق انجام داده.
هر قطره آب باید دقیقاً در زمان و مکان درست رها میشد تا شکل یه انسان در حال حرکت ساخته بشه! این کار فقط با حرکت واقعی یه ورزشکار (از طریق Motion Capture) ممکن شد و بعد این دادهها توسط برنامهنویسی بسیار حرفهای دستورالعملها رو به به دستورات دقیق برای نازلها تبدیل کردن یعنی دادههای حرکت رو با نرمافزار پردازش کردن و به نازلها دستور میدادن که دقیقاً کی آب رو رها کنن.
سیستم کنترل این دستگاه آنقدر دقیق بود که نازلها با دقت ۲ میلیثانیه (و حتی میکروثانیه) هماهنگ میشدن! بدون برنامهنویسی پیشرفته و سیستم کنترل هوشمند، این حجم از هماهنگی غیرممکن بود.
یعنی برای ساخت این تبلیغ این سه مورد به کار گرفته شده:
- مکانیک و الکترونیک (ساخت دستگاه)
- نرمافزار و برنامهنویسی (کنترل دقیق نازلها)
- عکاسی با سرعت بالا
اینو زمانی ساختنش که هوش مصنوعی و ابزارهای امروزی وجود نداشت و جالبترش این که اصلاً CGI نبوده! یعنی با افتر افکت و یا امثال اینها برای تبلیغات نساختنش همه چیزش کامل مهندسی شده.
https://www.youtube.com/watch?v=FG_l1oacWoQ
در سال ۲۰۱۷، Gatorade برای ساخت این تبلیغ، یه دستگاه عظیم به اسم «3D Liquid Printer» ساخت که ۲۰۴۸ نازل آب داشت و برای کنترل نازلهاش یک برنامهنویسی بسیار دقیق انجام داده.
هر قطره آب باید دقیقاً در زمان و مکان درست رها میشد تا شکل یه انسان در حال حرکت ساخته بشه! این کار فقط با حرکت واقعی یه ورزشکار (از طریق Motion Capture) ممکن شد و بعد این دادهها توسط برنامهنویسی بسیار حرفهای دستورالعملها رو به به دستورات دقیق برای نازلها تبدیل کردن یعنی دادههای حرکت رو با نرمافزار پردازش کردن و به نازلها دستور میدادن که دقیقاً کی آب رو رها کنن.
سیستم کنترل این دستگاه آنقدر دقیق بود که نازلها با دقت ۲ میلیثانیه (و حتی میکروثانیه) هماهنگ میشدن! بدون برنامهنویسی پیشرفته و سیستم کنترل هوشمند، این حجم از هماهنگی غیرممکن بود.
یعنی برای ساخت این تبلیغ این سه مورد به کار گرفته شده:
- مکانیک و الکترونیک (ساخت دستگاه)
- نرمافزار و برنامهنویسی (کنترل دقیق نازلها)
- عکاسی با سرعت بالا
YouTube
Water Droplets Create Amazing Human-Like Animations In This Gatorade Ad
Gatorade built this technology from scratch just for an ad. 2,500 switches turn the water on and off, and motion capture tells it what to do. The results are incredible.
------------------------------------------------------
#Gatorade #Animations #BusinessInsider…
------------------------------------------------------
#Gatorade #Animations #BusinessInsider…
COMPΞZ 🧬
همینطوری اتفاقی این ویدئو رو دیدم که برای ۹ سال پیش هست! اینو زمانی ساختنش که هوش مصنوعی و ابزارهای امروزی وجود نداشت و جالبترش این که اصلاً CGI نبوده! یعنی با افتر افکت و یا امثال اینها برای تبلیغات نساختنش همه چیزش کامل مهندسی شده. https://www.yout…
بعد طرف میاد با AI دو تا کد مینویسه واسه ما مدعی متخصص بودن میکنه.
مهندسی یعنی این! قدرت برنامهنویسی رو ببین فقط! کنترل قطرات آب در این سطح به من اینو ثابت کرد که یه بیسواد خالصم! 😁 چنان رفتم تو شک که هیچ واژهای برای تعریفش پیدا نمیکنم.
بعد طرف میاد ذرت میگیره نخود میخره میگه ما پیروزیم... خاک عالم بر سرت با اون کرونا یاب ساختنت.
مهندسی یعنی این! قدرت برنامهنویسی رو ببین فقط! کنترل قطرات آب در این سطح به من اینو ثابت کرد که یه بیسواد خالصم! 😁 چنان رفتم تو شک که هیچ واژهای برای تعریفش پیدا نمیکنم.
بعد طرف میاد ذرت میگیره نخود میخره میگه ما پیروزیم... خاک عالم بر سرت با اون کرونا یاب ساختنت.