COMPΞZ 🧬
مینیاپلیکیشن GenyTask دوباره در دسترس قرار گرفت. ✔️ 🧬 https://farcaster.xyz/compez.eth/0xdd1aefef ممنون از حمایتها و صبوری شما. یاد آوری! کسانی که پروژههای مارو توی گیتهاب ستاره میزنن، میتونن امتیاز ژن از جنی بگیرن. کافیه توی وظایفی که تعریف شده اینارو…
خب یک تجربهٔ جدید داشته باشیم!
تا به حال من ندیده بودم که مینیاپهای فارکستر عیناً ادغام بشه با مینیاپهای تلگرام.
حالا جنیتسک میتونه روی تلگرام اجرا بشه!
https://t.me/GenyAppsBot/GenyTasks
https://farcaster.xyz/compez.eth/0x9848b7d2
تا به حال من ندیده بودم که مینیاپهای فارکستر عیناً ادغام بشه با مینیاپهای تلگرام.
حالا جنیتسک میتونه روی تلگرام اجرا بشه!
https://t.me/GenyAppsBot/GenyTasks
https://farcaster.xyz/compez.eth/0x9848b7d2
Telegram
GenyTask
Genyleap Task System
🔥2😍2😨1 1
COMPΞZ 🧬
خب یک تجربهٔ جدید داشته باشیم! تا به حال من ندیده بودم که مینیاپهای فارکستر عیناً ادغام بشه با مینیاپهای تلگرام. حالا جنیتسک میتونه روی تلگرام اجرا بشه! https://t.me/GenyAppsBot/GenyTasks https://farcaster.xyz/compez.eth/0x9848b7d2
اینو نگا! فکر کرده با خاخول طرفه! 😒 چون جنی قدیمی رو داره...
واقعاً چرا بعضیا فکر میکنن ما خنگیم یا مشنگیم یا معتادی چیزی هستیم از یادمون میره؟ بابا ما یادمونم بره که بلاکچین یادش نمیره. 😁
داشتم شک میکردم به محاسباتم... من توی یک هزارم توکنهامم حساسم! امکان نداره حق کسی رو نداده باشم هرکسی هم فکر میکنه واقعاً جایی چیزی در رفته به خودم بگه ولی زرنگ بازی در نیاره که میفهمم.
واقعاً چرا بعضیا فکر میکنن ما خنگیم یا مشنگیم یا معتادی چیزی هستیم از یادمون میره؟ بابا ما یادمونم بره که بلاکچین یادش نمیره. 😁
داشتم شک میکردم به محاسباتم... من توی یک هزارم توکنهامم حساسم! امکان نداره حق کسی رو نداده باشم هرکسی هم فکر میکنه واقعاً جایی چیزی در رفته به خودم بگه ولی زرنگ بازی در نیاره که میفهمم.
😁2
🚨 نشت بزرگ اطلاعاتی: ۱۲۴ میلیون رمز و ۵۶ میلیون ایمیل لو رفت!
این بار ماجرا فقط هک یک سایت نیست؛ بدافزارها از روی سیستمهای آلوده، رمزهای ذخیرهشده، کوکیها و اطلاعات مرورگر را دزدیدهاند.
ایمیل خود را در Have I Been Pwned بررسی کنید:
https://haveibeenpwned.com
اگر اطلاعاتتان لو رفته بود:
رمزها را عوض کنید و 2FA را فعال کنید.
این بار ماجرا فقط هک یک سایت نیست؛ بدافزارها از روی سیستمهای آلوده، رمزهای ذخیرهشده، کوکیها و اطلاعات مرورگر را دزدیدهاند.
ایمیل خود را در Have I Been Pwned بررسی کنید:
https://haveibeenpwned.com
اگر اطلاعاتتان لو رفته بود:
رمزها را عوض کنید و 2FA را فعال کنید.
Have I Been Pwned
Have I Been Pwned: Check if your email address has been exposed in a data breach
Search tens of billions of breached records, monitor corporate domains via API, and get alerted when credentials are exposed. Trusted by security teams, MSSPs, and government agencies worldwide.
این قطعهٔ ۵۳ از سوپر بردها
https://superrare.com/artwork/eth/0xE44cE61Ea4a150524F092677e98108017C74884A/53
میتونه تبدیل بشه به یک نسخهٔ مدرنیزهتر و واقعیگرایانهتر.
https://superrare.com/artwork/eth/0xE44cE61Ea4a150524F092677e98108017C74884A/53
میتونه تبدیل بشه به یک نسخهٔ مدرنیزهتر و واقعیگرایانهتر.
وقتی با یه آدم منطقی صحبت میکنی، آوردن یه واقعیت کافیه! چون اون دنبال فهمیدنه نه بردن!
اما وقتی با یه آدم متعصب روبرو میشی، مسأله اطلاعات نیست، مسأله هویته! در واقع از نظرش یا اطلاعات دفاع نمیکنه در واقع داره از خودش دفاع میکنه.
برای همین اگه صدها واقعیت رو هم ثابت کنی چیزی عضو نمیشه! چون مشکل اصلاً کمبود داده نیست، مشکل عدم آمادگی برای دیدنشه.
بسپارید به زمان... هر چیزی باید برسه!
اما وقتی با یه آدم متعصب روبرو میشی، مسأله اطلاعات نیست، مسأله هویته! در واقع از نظرش یا اطلاعات دفاع نمیکنه در واقع داره از خودش دفاع میکنه.
برای همین اگه صدها واقعیت رو هم ثابت کنی چیزی عضو نمیشه! چون مشکل اصلاً کمبود داده نیست، مشکل عدم آمادگی برای دیدنشه.
بسپارید به زمان... هر چیزی باید برسه!
👍5💯2
از وقتی این سند رو خوندم دیگه حوصلهٔ هیچ چیزی رو ندارم؛ با خودم میگم سندی که همون بند اولش با لبنان شروع شده، نیازی به توضیح، تحلیل و تفکر نداره.
دیگه چطوری باید به وضوح بهمون میگفتن
من هیچ بندی در مورد ایران و مردم ایران ندیدم! هیچ چیزی توش نیافتم که ذرهای برای مردم باشه. همش در خصوص منابع حاکمیت و لبنان بود! :)
مبارکتان باد. 👌🏼به پای هم پیر شید.
اگه ذرهای هم شک میکردم که شاید واقعاً یه ذره به فکر مردم هستید، دیگه بهش شکی ندارم که هیچوقت نبودید، نیستید و نخواهید بود.
عطای همرو به لقایش بخشیدم، سرطان بد دردیه... مخصوصاً وقتی بدخیم باشه!
دیگه چطوری باید به وضوح بهمون میگفتن
من هیچ بندی در مورد ایران و مردم ایران ندیدم! هیچ چیزی توش نیافتم که ذرهای برای مردم باشه. همش در خصوص منابع حاکمیت و لبنان بود! :)
مبارکتان باد. 👌🏼به پای هم پیر شید.
اگه ذرهای هم شک میکردم که شاید واقعاً یه ذره به فکر مردم هستید، دیگه بهش شکی ندارم که هیچوقت نبودید، نیستید و نخواهید بود.
عطای همرو به لقایش بخشیدم، سرطان بد دردیه... مخصوصاً وقتی بدخیم باشه!
👌6💔5👍4 2 1
فرسودگی در یک واژهٔ ساده بسیار معنادار است!
خستگی واقعی از جایی شروع میشود که آدم به یک الگوی تکرارشونده از فرسایش اعتماد میرسد! درواقع زمانی به بلوغ فکری تجربی میرسد؛ جایی که میبیند قواعد نوشتهشده و قواعد واقعی زندگی، دو مسیر کاملاً جدا دارند.
در ظاهر، قانون، اخلاق و شایستگی تعریف شدهاند، اما در عمل، آنچه تعیینکننده است شبکهای از روابط، قدرت، دور زدنها و ترجیح منافع کوتاهمدت است.
در چنین شرایطی، بیعدالتی دیگر یک اتفاق نیست؛ به نظر میرسد یک ویژگی پایدار از محیط است. نه استثنا دارد، نه تصادف. همین تداوم است که ذهن را فرسوده میکند، چون مغز انسان برای مواجهه با ناهماهنگی دائمی بین «بایدها» و «هستها» طراحی نشده است.
کمکم یک شکاف درونی شکل میگیرد: از یک طرف دانشی که میگوید «راه درست چیست»، و از طرف دیگر تجربهای که هر بار خلاف آن را ثابت میکند.
این تضاد طولانیمدت، سرمایهٔ روانی را میساید؛ یعنی همان نیرویی که امید را به عمل تبدیل میکند، تلاش را به نتیجه گره میزند، و معنا را در استمرار زنده نگه میدارد.
وقتی این سرمایه تحلیل میرود، فرد دیگر نه درگیر اصلاح میشود، نه درگیر مبارزه، نه حتی درگیر توضیح دادن. به نقطهای میرسد که تحلیل جای خودش را به مشاهده میدهد، اعتراض جای خودش را به سکوت، و سکوت جای خودش را به فاصله گرفتن.
این فاصله گرفتن، از جنس بیتفاوتی نیست؛ از جنس یک تصمیم خاموش است: اینکه ادامه دادن در همان چارچوب، هزینهای دارد که دیگر با هیچ خروجیای جبران نمیشود.
و این همان نقطهای است که آدم نه از روی نفرت، نه از روی بیاحساسی، بلکه از روی فرسایشِ کاملِ سرمایهٔ روانی، آرام آرام فاصله میگیرد؛ از سیستم، از انتظار، و از آن نسخهای از آینده که قرار بود روزی واقعی شود.
خستگی واقعی از جایی شروع میشود که آدم به یک الگوی تکرارشونده از فرسایش اعتماد میرسد! درواقع زمانی به بلوغ فکری تجربی میرسد؛ جایی که میبیند قواعد نوشتهشده و قواعد واقعی زندگی، دو مسیر کاملاً جدا دارند.
در ظاهر، قانون، اخلاق و شایستگی تعریف شدهاند، اما در عمل، آنچه تعیینکننده است شبکهای از روابط، قدرت، دور زدنها و ترجیح منافع کوتاهمدت است.
در چنین شرایطی، بیعدالتی دیگر یک اتفاق نیست؛ به نظر میرسد یک ویژگی پایدار از محیط است. نه استثنا دارد، نه تصادف. همین تداوم است که ذهن را فرسوده میکند، چون مغز انسان برای مواجهه با ناهماهنگی دائمی بین «بایدها» و «هستها» طراحی نشده است.
کمکم یک شکاف درونی شکل میگیرد: از یک طرف دانشی که میگوید «راه درست چیست»، و از طرف دیگر تجربهای که هر بار خلاف آن را ثابت میکند.
این تضاد طولانیمدت، سرمایهٔ روانی را میساید؛ یعنی همان نیرویی که امید را به عمل تبدیل میکند، تلاش را به نتیجه گره میزند، و معنا را در استمرار زنده نگه میدارد.
وقتی این سرمایه تحلیل میرود، فرد دیگر نه درگیر اصلاح میشود، نه درگیر مبارزه، نه حتی درگیر توضیح دادن. به نقطهای میرسد که تحلیل جای خودش را به مشاهده میدهد، اعتراض جای خودش را به سکوت، و سکوت جای خودش را به فاصله گرفتن.
این فاصله گرفتن، از جنس بیتفاوتی نیست؛ از جنس یک تصمیم خاموش است: اینکه ادامه دادن در همان چارچوب، هزینهای دارد که دیگر با هیچ خروجیای جبران نمیشود.
و این همان نقطهای است که آدم نه از روی نفرت، نه از روی بیاحساسی، بلکه از روی فرسایشِ کاملِ سرمایهٔ روانی، آرام آرام فاصله میگیرد؛ از سیستم، از انتظار، و از آن نسخهای از آینده که قرار بود روزی واقعی شود.
امسال چه غریب است…
کربلاییهایی که دیگر در میان ما نیستند؛ آنان که در زندانها، در میدانها، در کوچهها و خیابانها جان باختند و نامشان در حافظه این سرزمین باقی ماند.
و من میخواهم به مصاف تزویر بروم؛ همان آفتی که هرگاه بر دین چیره شود، حقیقت را قربانی قدرت میکند.
تزویر با لباس دیانت و تقوا به میدان میآید؛ سکهای دو رو که بر یک سویش نام خدا نقش بسته و بر سوی دیگرش چهره ابلیس. عوام، نام خدا را میبینند و اهل بصیرت، ردّ پای ابلیس را.
چه خونِ دلها خورد علی از دست آنان که پیشانی بر خاک میساییدند اما حق را قربانی مصلحت و قدرت میکردند؛ آنان که آیه میخواندند اما عدالت را فراموش کرده بودند.
«یا أیها الذین آمنوا، آمنوا…»
تزویر نخست به تو امان میدهد تا مقاومتت را در هم بشکند؛ با وعده امنیت، با دعوت به سکوت، با ترس و تطمیع. اما چون بر تو چیره شد، دیگر به امانش وفادار نمیماند و آنگاه گردن حقیقت را خواهد شکست.
در این روزهای عاشورا، یاد همه آن جاوید نامان را گرامی میداریم که در برابر ظلم ایستادند، هزینه دادند و رفتند؛ بیآنکه نامشان از دفتر تاریخ و وجدان مردم پاک شود.
کربلا یک واقعه نبود؛ معیاری بود برای تشخیص حق از باطل، و این معیار هنوز زنده است.
کربلاییهایی که دیگر در میان ما نیستند؛ آنان که در زندانها، در میدانها، در کوچهها و خیابانها جان باختند و نامشان در حافظه این سرزمین باقی ماند.
و من میخواهم به مصاف تزویر بروم؛ همان آفتی که هرگاه بر دین چیره شود، حقیقت را قربانی قدرت میکند.
تزویر با لباس دیانت و تقوا به میدان میآید؛ سکهای دو رو که بر یک سویش نام خدا نقش بسته و بر سوی دیگرش چهره ابلیس. عوام، نام خدا را میبینند و اهل بصیرت، ردّ پای ابلیس را.
چه خونِ دلها خورد علی از دست آنان که پیشانی بر خاک میساییدند اما حق را قربانی مصلحت و قدرت میکردند؛ آنان که آیه میخواندند اما عدالت را فراموش کرده بودند.
«یا أیها الذین آمنوا، آمنوا…»
تزویر نخست به تو امان میدهد تا مقاومتت را در هم بشکند؛ با وعده امنیت، با دعوت به سکوت، با ترس و تطمیع. اما چون بر تو چیره شد، دیگر به امانش وفادار نمیماند و آنگاه گردن حقیقت را خواهد شکست.
در این روزهای عاشورا، یاد همه آن جاوید نامان را گرامی میداریم که در برابر ظلم ایستادند، هزینه دادند و رفتند؛ بیآنکه نامشان از دفتر تاریخ و وجدان مردم پاک شود.
کربلا یک واقعه نبود؛ معیاری بود برای تشخیص حق از باطل، و این معیار هنوز زنده است.
چی شده باز این SuperRare چهارتا کار از چند تا ایرانی خریده باز فکر کردین خبریه حملهور شدین به اینکه چطور توش به عنوان آرتیست عضو شید یا سپرده بشید؟ چرا شماها وقتی سودی منفعتی توی یه چیزی هست میایین منو پیدا میکنید؟ کلاً عادت کردین هرجا نفعی براتون داشته باشم پیام بدین نه؟! رفت اون دوران سواری کم ندادم من به شماها. 👋🏼
خودم برای حساب خودم با ایمیل با همون روند عمومی پیش میرم هیچ نفوذی هم ندارم توش خیالتون راحت، هرکسی هم کاری ازش مینت شده لیاقتشو داشته تلاش کرده و دیده شده.
نوش جونش! چه ۱ دلار چه هزاران دلار.
اینایی که ازشونم مینت کردن رو من میشناسم! هم کارشون خوبه هم بیحاشین! 😉 هنرمندن نه فارمر. قبلاً کلی پستهای آموزشی دادم چطور باید یه آرتیست بشید دیگه واقعاً احمقانست توضیح دادن این چیزها.
خودم برای حساب خودم با ایمیل با همون روند عمومی پیش میرم هیچ نفوذی هم ندارم توش خیالتون راحت، هرکسی هم کاری ازش مینت شده لیاقتشو داشته تلاش کرده و دیده شده.
نوش جونش! چه ۱ دلار چه هزاران دلار.
اینایی که ازشونم مینت کردن رو من میشناسم! هم کارشون خوبه هم بیحاشین! 😉 هنرمندن نه فارمر. قبلاً کلی پستهای آموزشی دادم چطور باید یه آرتیست بشید دیگه واقعاً احمقانست توضیح دادن این چیزها.
مد شده تو این وضعیت شخمی توهم فروشهای لینکدینی میگن کم شکایت کنید، کار کنید بی سرو صدا فقط مثل خر کار کنید نتیجه میگیرید!
خب پس بهتر نیست به جای گفتن: هرکی مثل خر کار کنه موفقه
یه کلمه بگیم خر باشید و سلام!؟ 😒 عجب مثالهای انگیزشیای! عجب تولید محتوایی.
خب پس بهتر نیست به جای گفتن: هرکی مثل خر کار کنه موفقه
یه کلمه بگیم خر باشید و سلام!؟ 😒 عجب مثالهای انگیزشیای! عجب تولید محتوایی.
This media is not supported in your browser
VIEW IN TELEGRAM
بعضیها میگن ساختن کنترلهای جذاب توی QML سخته! آره سخته ومثل وب ساده نیستن! اما ساختن همچین کنترلی توی QML واقعاً ارزشمنده چون هزینهٔ مدیرتی لایه بندی و DOM رو نداره و در عوض راندمانش بسیار بالاست؛ الان با ShaderEffect میشه کل UI رو مستقیم برد روی GPU و همه چیز رو مستقیم رندر کرد! در پایینترین سطح ممکن از سختافزار :)
بد نیست یه کیت توسعهٔ UI اختصاصی بسازم که دیگه توی هر محصول نشینم دوباره کامپوننت طراحی کنم.
این کنترل عملاً از صفر تا صدش با ریاضی و شیدر ساخته شده.
فرآیند تولیدش اینطوریه:
۱) با فناوری QML میگیم: «یه دکمه لازم دارم»
۲) با کیوت میگم اون رو تبدیل میکنه به یک شیء گرافیکی در Scene Graph
۳) موتور رندر (Qt RHI) براش یک سطح ساده (Quad) آماده میکنه
۴) دادهها و وضعیتها (مثل روشن/خاموش و انیمیشن) به شیدر ارسال میشن
۵) پردازندهٔ گرافیکی یعنی GPU برای هر پیکسل اجرا میشه و با تکنیک SDF شکل رو محاسبه میکنه
۶) و نتیجهٔ نهایی به صورت یک تصویر یکپارچه روی صفحه رندر میشه
منظور از SDF مخفف Signed Distance Field است و یکی از مهمترین تکنیکها در گرافیک مدرن و شیدرهاست.
کسانی که سطح پایین با هنرِ گرافیکی کار میکنن قطعاً میدونن چیه.
بد نیست یه کیت توسعهٔ UI اختصاصی بسازم که دیگه توی هر محصول نشینم دوباره کامپوننت طراحی کنم.
این کنترل عملاً از صفر تا صدش با ریاضی و شیدر ساخته شده.
فرآیند تولیدش اینطوریه:
۱) با فناوری QML میگیم: «یه دکمه لازم دارم»
۲) با کیوت میگم اون رو تبدیل میکنه به یک شیء گرافیکی در Scene Graph
۳) موتور رندر (Qt RHI) براش یک سطح ساده (Quad) آماده میکنه
۴) دادهها و وضعیتها (مثل روشن/خاموش و انیمیشن) به شیدر ارسال میشن
۵) پردازندهٔ گرافیکی یعنی GPU برای هر پیکسل اجرا میشه و با تکنیک SDF شکل رو محاسبه میکنه
۶) و نتیجهٔ نهایی به صورت یک تصویر یکپارچه روی صفحه رندر میشه
منظور از SDF مخفف Signed Distance Field است و یکی از مهمترین تکنیکها در گرافیک مدرن و شیدرهاست.
کسانی که سطح پایین با هنرِ گرافیکی کار میکنن قطعاً میدونن چیه.
COMPΞZ 🧬
بعضیها میگن ساختن کنترلهای جذاب توی QML سخته! آره سخته ومثل وب ساده نیستن! اما ساختن همچین کنترلی توی QML واقعاً ارزشمنده چون هزینهٔ مدیرتی لایه بندی و DOM رو نداره و در عوض راندمانش بسیار بالاست؛ الان با ShaderEffect میشه کل UI رو مستقیم برد روی GPU و…
فرق این با بقیه زبانها و فناوریها اینه که به جای اینکه هی بره از لایههای سنگین و پیچیده نرمافزاری رد بشه، مستقیم به خودِ سختافزار نزدیکه، مخصوصاً GPU. برای همین حتی روی سختافزارهای خیلی ساده و کممصرف ARM هم خیلی روان و سبک اجرا میشه.
احتمالاً آیندهٔ نرمافزارها هم میره به همین سمت؛ رابط کاربری دیگه یه سری المان تو در تو و پیچیده مثل الان نیست، بلکه نتیجهٔ مستقیم یه سری محاسبه روی پیکسلهاست. برای همین هم کمکم نیاز به ابزارها و کیتهای توسعه UI/UX سطح پایین و نزدیک به سختافزار بیشتر میشه، چیزی که الان هنوز خیلی جا نیفتاده.
مزیت QML نسبت به فناوریهای وب (مثل React، Vue، حتی UIهای مبتنی بر DOM) بیشتر در مدل رندر و نزدیکی به GPU + C++ runtime هست و نه صرفاً سینتکس یا راحتی توسعه.
در QML ما این مراحل رو در مدلسازی داریم:
UI → Scene Graph → GPU (OpenGL/Metal/Vulkan)
و در وب این مراحل
DOM → CSS → Layout → Paint → Composite → GPU
و به خاطر همین Qt Quick Scene Graph سریعتر از DOM است چون کار کمتری در CPU انجام میدهد، ساختار سادهتر دارد، و بیشتر کار را مستقیم به GPU میسپارد.
در نتیجه، Qt Quick معمولاً در UIهای سنگین گرافیکی:
- تعداد مراحل CPU کمتر دارد
- مدل رندر اختصاصیتر مبتنی بر سطح پایین دارد
- برای animation و scene-based UI بهینهتر است
احتمالاً آیندهٔ نرمافزارها هم میره به همین سمت؛ رابط کاربری دیگه یه سری المان تو در تو و پیچیده مثل الان نیست، بلکه نتیجهٔ مستقیم یه سری محاسبه روی پیکسلهاست. برای همین هم کمکم نیاز به ابزارها و کیتهای توسعه UI/UX سطح پایین و نزدیک به سختافزار بیشتر میشه، چیزی که الان هنوز خیلی جا نیفتاده.
مزیت QML نسبت به فناوریهای وب (مثل React، Vue، حتی UIهای مبتنی بر DOM) بیشتر در مدل رندر و نزدیکی به GPU + C++ runtime هست و نه صرفاً سینتکس یا راحتی توسعه.
در QML ما این مراحل رو در مدلسازی داریم:
UI → Scene Graph → GPU (OpenGL/Metal/Vulkan)
و در وب این مراحل
DOM → CSS → Layout → Paint → Composite → GPU
و به خاطر همین Qt Quick Scene Graph سریعتر از DOM است چون کار کمتری در CPU انجام میدهد، ساختار سادهتر دارد، و بیشتر کار را مستقیم به GPU میسپارد.
در نتیجه، Qt Quick معمولاً در UIهای سنگین گرافیکی:
- تعداد مراحل CPU کمتر دارد
- مدل رندر اختصاصیتر مبتنی بر سطح پایین دارد
- برای animation و scene-based UI بهینهتر است
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)
در نهایت فقط پردازش خام رو میبینی که با یک کیفیت و خروجی بسیار عالیست.
از نظر فنی مهندسی اینطوری میشه که، هرچی پایینتر میری، نزدیک به زبان ماشین، کار با اشیاء گرافیکی کمتر «تعریف میشه» و بیشتر «محاسبه میشه» یعنی مغز ریاضیات و برنامهنویسی ریاضی و قوانین فیزیک.