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

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

We create because the world deserves better code.

https://linktr.ee/compez
Download Telegram
این قطعهٔ ۵۳ از سوپر برد‌ها

https://superrare.com/artwork/eth/0xE44cE61Ea4a150524F092677e98108017C74884A/53

می‌تونه تبدیل بشه به یک نسخهٔ مدرنیزه‌تر و واقعی‌گرایانه‌تر.
4
وقتی با یه آدم منطقی صحبت می‌کنی، آوردن یه واقعیت کافیه! چون اون دنبال فهمیدنه نه بردن!
اما وقتی با یه آدم متعصب روبرو می‌شی، مسأله اطلاعات نیست، مسأله هویته! در واقع از نظرش یا اطلاعات دفاع نمی‌کنه در واقع داره از خودش دفاع می‌کنه.

برای همین اگه صد‌ها واقعیت رو هم ثابت کنی چیزی عضو نمیشه! چون مشکل اصلاً کمبود داده نیست، مشکل عدم آمادگی برای دیدنشه.

بسپارید به زمان... هر چیزی باید برسه!
👍5💯2
از وقتی این سند رو خوندم دیگه حوصلهٔ هیچ چیزی رو ندارم؛ با خودم می‌گم سندی که همون بند اولش با لبنان شروع شده، نیازی به توضیح، تحلیل و تفکر نداره.

دیگه چطوری باید به وضوح بهمون می‌گفتن

من هیچ بندی در مورد ایران و مردم ایران ندیدم! هیچ چیزی توش نیافتم که ذره‌ای برای مردم باشه. همش در خصوص منابع حاکمیت و لبنان بود! :)

مبارکتان باد. 👌🏼به پای هم پیر شید.
اگه ذره‌ای هم شک می‌کردم که شاید واقعاً یه ذره به فکر مردم هستید، دیگه بهش شکی ندارم که هیچ‌وقت نبودید، نیستید و نخواهید بود.

عطای همرو به لقایش بخشیدم، سرطان بد دردیه... مخصوصاً وقتی بد‌خیم باشه!
👌6💔5👍421
فرسودگی در یک واژهٔ ساده بسیار معنا‌دار است!

خستگی واقعی از جایی شروع می‌شود که آدم به یک الگوی تکرارشونده از فرسایش اعتماد می‌رسد! درواقع زمانی به بلوغ فکری تجربی می‌رسد؛ جایی که می‌بیند قواعد نوشته‌شده و قواعد واقعی زندگی، دو مسیر کاملاً جدا دارند.

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

در چنین شرایطی، بی‌عدالتی دیگر یک اتفاق نیست؛ به نظر می‌رسد یک ویژگی پایدار از محیط است. نه استثنا دارد، نه تصادف. همین تداوم است که ذهن را فرسوده می‌کند، چون مغز انسان برای مواجهه با ناهماهنگی دائمی بین «بایدها» و «هست‌ها» طراحی نشده است.

کم‌کم یک شکاف درونی شکل می‌گیرد: از یک طرف دانشی که می‌گوید «راه درست چیست»، و از طرف دیگر تجربه‌ای که هر بار خلاف آن را ثابت می‌کند.

این تضاد طولانی‌مدت، سرمایه‌ٔ روانی را می‌ساید؛ یعنی همان نیرویی که امید را به عمل تبدیل می‌کند، تلاش را به نتیجه گره می‌زند، و معنا را در استمرار زنده نگه می‌دارد.

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

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

و این همان نقطه‌ای است که آدم نه از روی نفرت، نه از روی بی‌احساسی، بلکه از روی فرسایشِ کاملِ سرمایه‌ٔ روانی، آرام آرام فاصله می‌گیرد؛ از سیستم، از انتظار، و از آن نسخه‌ای از آینده که قرار بود روزی واقعی شود.
امسال چه غریب است…

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

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

تزویر با لباس دیانت و تقوا به میدان می‌آید؛ سکه‌ای دو رو که بر یک سویش نام خدا نقش بسته و بر سوی دیگرش چهره ابلیس. عوام، نام خدا را می‌بینند و اهل بصیرت، ردّ پای ابلیس را.

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

«یا أیها الذین آمنوا، آمنوا…»

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

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

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

این معیار رو اگه بسنجی بله! درسته. 👌
چی شده باز این 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 است و یکی از مهم‌ترین تکنیک‌ها در گرافیک مدرن و شیدرهاست.

کسانی که سطح پایین با هنرِ گرافیکی کار می‌کنن قطعاً می‌دونن چیه.
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 بهینه‌تر است
COMPΞZ 🧬
بعضی‌ها می‌گن ساختن کنترل‌های جذاب توی QML سخته! آره سخته ومثل وب ساده نیستن! اما ساختن همچین کنترلی توی QML واقعاً ارزشمنده چون هزینهٔ مدیرتی لایه بندی و DOM رو نداره و در عوض راندمانش بسیار بالاست؛ الان با ShaderEffect می‌شه کل UI رو مستقیم برد روی GPU و…
سوألی شاید پیش بیاد که طراحی‌های گذشته در QML رو آیا با همین روش محاسباتی انجام دادم؟
پاسخ؟ خیر!

روش طراحی کار با 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)

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

از نظر فنی مهندسی اینطوری میشه که، هرچی پایین‌تر می‌ری، نزدیک به زبان ماشین، کار با اشیاء گرافیکی کمتر «تعریف میشه» و بیشتر «محاسبه میشه» یعنی مغز ریاضیات و برنامه‌نویسی ریاضی و قوانین فیزیک.
سرگرمی خوبی می‌شه این…
COMPΞZ 🧬
۱) باز بینی مراحل توسعهٔ بازی WARRIORS در فارکستر
👆🏼👆🏼👆🏼

این اولین بازی مبتنی بر بلاک‌چین بر مبنای ادغام با توکن جنی هست!
چیزی که تمام اساسش بر مبنای سیستم جنی و پروفایل‌های فارکستر کار می‌کنه (البته فعلاً).

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

به خاطر جنگ و فلان عقب افتاده بود نمی‌تونستم منطق قراردادشو ادامه بدم که اونم حل شد.
به زودی اجرایی می‌شه و در موردش توضیح میدم که چطوری کار می‌کنه.
حالتِ دانینگ-کروگر می‌دونی یعنی چی؟
یعنی وقتی:

یه تیم ۱۲ سال از عمرش رو گذاشته، نزدیک ۲ میلیارد دلار هزینه کرده، هزاران متخصص شب و روز کار کردن تا یه بازی منتشر بشه.

بعد یه ایرانی خود خفن پندار که همیشه که آخرین دستاورد فنی زندگیش عوض کردن عکس پروفایل تلگرام بوده، میاد با قیافه میگه:

«از گرافیکش خوشم نیومد! بده»
!

تو آخه چه می‌فهمی موتور بازی چیه، آرتیست بازی چیه! برو تو کوچتون همون گِل بازیتو کن تورو چه به نظر دادن تو کارهای طراحی برنامه‌نویسی.
جامعه‌ها معمولاً بر اساس «درک» تقسیم نمی‌شوند، بلکه بر اساس نحوه پردازش و واکنش به واقعیت تحت فشار شکل می‌گیرند.

یک گروه واقعیت را می‌بیند اما به‌خاطر هزینه‌های اجتماعی، ترس یا ناتوانی در اثرگذاری، واکنش را سرکوب می‌کند.

گروه دیگر همان واقعیت را از طریق فیلترهای ساده‌ساز (رسانه، باورهای آماده، یا عادت ذهنی) دریافت می‌کند و آن را یا طبیعی تلقی می‌کند یا اصلاً مسأله نمی‌بیند.

در واقع، مسأله این نیست که همه یک چیز را نمی‌بینند؛ بلکه مسأله این است که دیدن، برای همه به یک معنی واحد تبدیل نمی‌شود!

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