وسط اینهمه دنگ و فنگ بهروز شدن خودش داستانه.
با اینهمه موضوع فنی در حال تغییر و دگرگونی مگه وقت میکنیم بریم پست و کست بنویسیم آخه. 😣
با اینهمه موضوع فنی در حال تغییر و دگرگونی مگه وقت میکنیم بریم پست و کست بنویسیم آخه. 😣
🥴2😁1
COMPΞZ 🧬
وسط اینهمه دنگ و فنگ بهروز شدن خودش داستانه. با اینهمه موضوع فنی در حال تغییر و دگرگونی مگه وقت میکنیم بریم پست و کست بنویسیم آخه. 😣
بعد فکرشو بکن طرف میاد میگه کامپز به من تیپ نمیده! بهش تیپ ندین... 😂 من به چیا فکر میکنم اون به چی فکر میکنه!😩 تیپ کیلو چنده آخه اصل داستان اون پشت مشتاست برای ما. 😍🤣
👍3🤣3
COMPΞZ 🧬
خب جلسه تموم شد!!! 🔥 مهمترین موضوعات اینها بودند: پروتکل Farcaster در حال جایگزینی هابها با Snapchain Mainnet است. (موضوع مهم برای همهٔ توسعهدهندههاست). از ۱۲ آوریل به بعد، توسعهدهندگان باید از Snapchain برای خواندن و نوشتن دادهها استفاده کنند. از…
به زبان PHP هم نیاز داریم بهش اگه کسی آمادگی داره بهم اطلاع بده.
کلی کار برای انجام داریم، شاید این فرصت خوبی باشه برای اینکه بتونی بخشی از تیم توسعه باشی.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
COMPΞZ 🧬
خب! درود بر برنامهنویس عالم! چالش سی روزه رو آغاز میکنم 🫵🏼✍🏼 اما هدف آموزش نحوهٔ کدنویسی با C++23 و Solidity. شما هم میتونید نکته برداری کنید، منم هدفم اینه هرچی به روز رسانی کردم رو یادداشت کنم تا دوباره برای خودم مرور بشه. هیچ سخت نیست، تنهایی پیش…
ویژگی std::basic_stacktrace کلاسی است که در استاندارد ۲۳ معرفی شده و برای ثبت تصویری (اسنپ شات) از «پشته فراخوانی» یا همان «stack trace» فعلی به کار میرود. این اطلاعات میتواند برای اشکالزدایی (debugging) مفید باشد، زیرا به شما امکان میدهد تا دنبالهای از فراخوانی توابعی که به یک نقطه خاص در اجرای برنامه شما منجر شدهاند را مشاهده کنید.
همچنین با استفاده از تابع عضو استاتیک ()std::basic_stacktrace::current میتوانید پشته فراخوانی را در نقطهای که این تابع فراخوانی میشود ثبت کنید. از طرفی std::basic_stacktrace به عنوان یک مخزن عمل میکند که اطلاعات مربوط به هر فراخوانی تابع در پشته فراخوانی را نگه میدارد. این اطلاعات در اشیاء std::stacktrace_entry ذخیره میشوند.
با وجود اینکه std::basic_stacktrace مانند یک مخزن استاندارد با iterators و توابع دسترسی عمل میکند، اما عمدتاً از "مفاهیم انتقال (move semantics) و عملیات مربوط به دسترسی ثابت را پشتیبانی میکند.
این الگوی کلاس به شما اجازه میدهد تا یک تخصیصدهنده سفارشی برای مدیریت حافظه مشخص کنید، که میتواند در سناریوهای خاصی مانند سیستمهای تعبیهشده (embedded) مفید باشد.
در این مثال، تابع bar ابتدا تابع foo را فراخوانی میکند و سپس از std::basic_stacktrace::current برای چاپ پشته فراخوانی فعلی استفاده میکند. خروجی نشان میدهد که پشته فراخوانی شامل سه فریم است: bar، foo و main.
#cpp20 #cpp23 #basic_stacktrace #چالش #سیروزه #رمضان #روز_بیست_و_پنجم
همچنین با استفاده از تابع عضو استاتیک ()std::basic_stacktrace::current میتوانید پشته فراخوانی را در نقطهای که این تابع فراخوانی میشود ثبت کنید. از طرفی std::basic_stacktrace به عنوان یک مخزن عمل میکند که اطلاعات مربوط به هر فراخوانی تابع در پشته فراخوانی را نگه میدارد. این اطلاعات در اشیاء std::stacktrace_entry ذخیره میشوند.
با وجود اینکه std::basic_stacktrace مانند یک مخزن استاندارد با iterators و توابع دسترسی عمل میکند، اما عمدتاً از "مفاهیم انتقال (move semantics) و عملیات مربوط به دسترسی ثابت را پشتیبانی میکند.
این الگوی کلاس به شما اجازه میدهد تا یک تخصیصدهنده سفارشی برای مدیریت حافظه مشخص کنید، که میتواند در سناریوهای خاصی مانند سیستمهای تعبیهشده (embedded) مفید باشد.
import <print>;
import <stacktrace>;
auto foo() -> void {
std::println("Inside foo(){}");
bar();
}
auto bar() -> void {
std::println("Inside bar(){}");
// Print the stack trace
auto stacktrace = std::basic_stacktrace::current();
for (const auto& entry : stacktrace) {
std::println("{}", entry.function_name());
}
}
auto main() -> int {
foo();
}
در این مثال، تابع bar ابتدا تابع foo را فراخوانی میکند و سپس از std::basic_stacktrace::current برای چاپ پشته فراخوانی فعلی استفاده میکند. خروجی نشان میدهد که پشته فراخوانی شامل سه فریم است: bar، foo و main.
#cpp20 #cpp23 #basic_stacktrace #چالش #سیروزه #رمضان #روز_بیست_و_پنجم
بخش تخصصی دوم (بهروز رسانی Solidity) |سربارگذاری توابع (Function Overloading)
در سالیدیتی، یک قرارداد میتواند چندین تابع با نام یکسان اما با انواع پارامترهای متفاوت داشته باشد. این فرایند «اضافه بارگذاری» (overloading) نامیده میشود و برای توابع به ارثرسیده نیز اعمال میشود و تقریباً مشابه سربارگذاری توابع در سیپلاسپلاس است.
مثال زیر اضافه بارگذاری تابع f در محدوده قرارداد A را نشان میدهد.
توابع اضافه بارگذاری شده همچنین در رابط خارجی (external interface) وجود دارند. اگر دو تابع قابل مشاهده خارجی از نظر نوع سالیدیتی متفاوت باشند اما از نظر نوع خارجی (external) یکسان باشند، خطا رخ میدهد.
هر دو نسخه از تابع f که بارگذاری اضافه شدهاند، علیرغم اینکه داخل سالیدیتی از هم جدا درنظر گرفته میشوند، در نهایت برای رابط باینری کاربردی (ABI) نوع دادهی آدرس «address» را قبول میکنند. به عبارت دیگر، برنامههای خارجی که با قرارداد شما کار میکنند فقط نوع دادهی «address» را برای هر دو تابع f میبینند، حتی اگر داخل خود قرارداد سالیدیتی شما این دو تابع با هم فرق داشته باشند.
در سالیدیتی، یک قرارداد میتواند چندین تابع با نام یکسان اما با انواع پارامترهای متفاوت داشته باشد. این فرایند «اضافه بارگذاری» (overloading) نامیده میشود و برای توابع به ارثرسیده نیز اعمال میشود و تقریباً مشابه سربارگذاری توابع در سیپلاسپلاس است.
مثال زیر اضافه بارگذاری تابع f در محدوده قرارداد A را نشان میدهد.
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.4.16 <0.9.0;
contract A {
function f(uint value) public pure returns (uint out) {
out = value;
}
function f(uint value, bool really) public pure returns (uint out) {
if (really)
out = value;
}
}
توابع اضافه بارگذاری شده همچنین در رابط خارجی (external interface) وجود دارند. اگر دو تابع قابل مشاهده خارجی از نظر نوع سالیدیتی متفاوت باشند اما از نظر نوع خارجی (external) یکسان باشند، خطا رخ میدهد.
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.4.16 <0.9.0;
// This will not compile
contract A {
function f(B value) public pure returns (B out) {
out = value;
}
function f(address value) public pure returns (address out) {
out = value;
}
}
contract B {
}
هر دو نسخه از تابع f که بارگذاری اضافه شدهاند، علیرغم اینکه داخل سالیدیتی از هم جدا درنظر گرفته میشوند، در نهایت برای رابط باینری کاربردی (ABI) نوع دادهی آدرس «address» را قبول میکنند. به عبارت دیگر، برنامههای خارجی که با قرارداد شما کار میکنند فقط نوع دادهی «address» را برای هر دو تابع f میبینند، حتی اگر داخل خود قرارداد سالیدیتی شما این دو تابع با هم فرق داشته باشند.
COMPΞZ 🧬
ویژگی std::basic_stacktrace کلاسی است که در استاندارد ۲۳ معرفی شده و برای ثبت تصویری (اسنپ شات) از «پشته فراخوانی» یا همان «stack trace» فعلی به کار میرود. این اطلاعات میتواند برای اشکالزدایی (debugging) مفید باشد، زیرا به شما امکان میدهد تا دنبالهای…
کلاس الگوی std::flat_map در استاندارد ۲۳ یکی از اعضای موجود در مخازن تخت (Flat) است؛ برخلاف مخازن استاندارد مانند set، map، multimap و multiset که از درختان جستجوی دودویی برای ذخیره دادهها استفاده میکنند این نسخهها از مخازن ترتیبی (مانند std::vector، std::array یا حتی std::deque) به عنوان ساختار زیربنایی خود استفاده میکنند. اعضای معرفی شده نسخهٔ تخت از map | set | multimap | multiset میباشد که به صورت زیر خواهند بود:
استفاده از مخازن ترتیبی به جای درختان جستجوی دودویی، مزایای متعددی را برای مخازن تخت به ارمغان میآورد و برای مواردی که درج، حذف و تکرار مکرر دادهها رایج است، ایدهآل هستند:
۱) عملکرد بهتر: مخازن تخت معمولاً عملکرد بهتری برای عملیاتهایی مانند درج، حذف و تکرار ارائه میکنند.
۲) استفاده از حافظه کمتر: مخازن تخت معمولاً حافظه کمتری نسبت به مخازن انجمنی استاندارد استفاده میکنند.
مخازن تخت در استاندارد ۲۳ یک ابزار جدید قدرتمند هستند که میتوانند در بسیاری از موارد استفاده، عملکرد و کارایی برنامه شما را بهبود بخشند.
#cpp20 #cpp23 #flat_map #چالش #سیروزه #رمضان #روز_بیست_و_ششم
std::flat_map
std::flat_set
std::flat_multimap
std::flat_multiset
استفاده از مخازن ترتیبی به جای درختان جستجوی دودویی، مزایای متعددی را برای مخازن تخت به ارمغان میآورد و برای مواردی که درج، حذف و تکرار مکرر دادهها رایج است، ایدهآل هستند:
۱) عملکرد بهتر: مخازن تخت معمولاً عملکرد بهتری برای عملیاتهایی مانند درج، حذف و تکرار ارائه میکنند.
۲) استفاده از حافظه کمتر: مخازن تخت معمولاً حافظه کمتری نسبت به مخازن انجمنی استاندارد استفاده میکنند.
import <print>;
import <flat_map>;
auto main() -> int {
std::flat_map<std::string, int> ages = {
{"Kambiz", 35},
{"Hadi", 40},
{"Mohammad", 35}
};
for (const auto& [name, age] : ages) {
std::println("{}, is {}, years old.", name, age);
}
return 0;
}
مخازن تخت در استاندارد ۲۳ یک ابزار جدید قدرتمند هستند که میتوانند در بسیاری از موارد استفاده، عملکرد و کارایی برنامه شما را بهبود بخشند.
#cpp20 #cpp23 #flat_map #چالش #سیروزه #رمضان #روز_بیست_و_ششم
COMPΞZ 🧬
بخش تخصصی دوم (بهروز رسانی Solidity) |سربارگذاری توابع (Function Overloading) در سالیدیتی، یک قرارداد میتواند چندین تابع با نام یکسان اما با انواع پارامترهای متفاوت داشته باشد. این فرایند «اضافه بارگذاری» (overloading) نامیده میشود و برای توابع به ارثرسیده…
بخش تخصصی دوم (بهروز رسانی Solidity) |حل توابع اضافه بار (Overloaded Functions) و تطبیق آرگومان
توابع اضافه بار بر اساس تطبیق اعلان توابع در محدوده فعلی با آرگومان های ارائه شده در فراخوانی تابع انتخاب می شوند. اگر تمام آرگومان ها بتوانند به طور ضمنی به انواع مورد انتظار تبدیل شوند، توابع به عنوان کاندیدای اضافه بار انتخاب می شوند. اگر به طور دقیقاً یک کاندیدا وجود نداشته باشد، حل مشکل با شکست مواجه می شود.
فراخوانی f(50) منجر به خطای نوع داده خواهد شد زیرا 50 هم به نوع uint8 و هم به نوع uint256 قابل تبدیل است. از طرف دیگر، f(256) به f(uint256) ترجمه می شود زیرا 256 به طور ضمنی به uint8 قابل تبدیل نیست.
#solidity #web3 #update #ether #اتریوم
توابع اضافه بار بر اساس تطبیق اعلان توابع در محدوده فعلی با آرگومان های ارائه شده در فراخوانی تابع انتخاب می شوند. اگر تمام آرگومان ها بتوانند به طور ضمنی به انواع مورد انتظار تبدیل شوند، توابع به عنوان کاندیدای اضافه بار انتخاب می شوند. اگر به طور دقیقاً یک کاندیدا وجود نداشته باشد، حل مشکل با شکست مواجه می شود.
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.4.16 <0.9.0;
contract A {
function f(uint8 val) public pure returns (uint8 out) {
out = val;
}
function f(uint256 val) public pure returns (uint256 out) {
out = val;
}
}
فراخوانی f(50) منجر به خطای نوع داده خواهد شد زیرا 50 هم به نوع uint8 و هم به نوع uint256 قابل تبدیل است. از طرف دیگر، f(256) به f(uint256) ترجمه می شود زیرا 256 به طور ضمنی به uint8 قابل تبدیل نیست.
#solidity #web3 #update #ether #اتریوم
معروفترین و خفنترینشون روی ISP آمازون پشتیبانی میشه.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
COMPΞZ 🧬
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
COMPΞZ 🧬
GM ~ 65536 Square https://warpcast.com/compez.eth/0xfce0992b
راز نهفتهٔ قطعهٔ 6️⃣ 3️⃣ 5️⃣ 5️⃣ 6️⃣ اینطور هست
در این تصویر، اعداد مفهومی ۰ و ۱ را در مرکز خواهید یافت که از طریق تولید تصادفی رنگ، بین روشن و تاریک تغییر میکنند. با دقت بیشتر، هشت ذرهٔ اطراف را مشاهده خواهید کرد که هرکدام مفهوم خاص خود را دارند.
🔹 راز تراکنش در بلاکچین
۶۴ بلوک اول، با اندازهی کوچکتر، نشاندهندهٔ یک تراکنش روی بلاکچین هستند. مقدار واقعی، ۶۴ کاراکتر بعد از 0x است که نشاندهندهی آدرس اولین تراکنش خریدار است و توسط Punk 6529 تأیید شده است.
🔹 یگانگی اثر
این اثر کاملاً منحصربهفرد است، زیرا هر بار که تولید میشود، تمام بلوکهای ایجاد شده متفاوت از یکدیگر خواهند بود. یعنی حالتهای آنها (۰/۱) تغییر میکنند و فقط تعداد محدودی از آنها میتوانند تولید شوند.
🔹 ویژگیهای اثر ۳۶,۸۶۴
عدد ۳۶,۸۶۴ یک عدد مرکب زوج است که از حاصلضرب دو عدد اول تشکیل شده است.
🔹 نسل بعدی این اثر، عدد ۶۵,۵۳۶ خواهد بود!
عدد ۶۵,۵۳۶ یک عدد طبیعی است که در علوم مختلف، بهویژه در علوم کامپیوتر و ریاضیات، اهمیت زیادی دارد.
چرا ۶۵,۵۳۶ مهم است؟
🔹 توان ۲:
عدد ۶۵,۵۳۶ برابر با ۲^۱۶ است، یعنی ۲ را ۱۶ بار در خودش ضرب کنیم. این ویژگی آن را در نمایش باینری، آدرسدهی حافظه، و سایر حوزههایی که توانهای ۲ اهمیت دارند، مهم میسازد.
🔹 نمایش باینری:
در قالب باینری، ۶۵,۵۳۶ به صورت 10000000000000000 نمایش داده میشود. این ساختار به دلیل داشتن ۱۶ صفر متوالی، در پردازشهای کامپیوتری کاربرد زیادی دارد.
🔹 حافظه:
در محاسبات، اندازههای حافظه معمولاً بر اساس توانهای ۲ تعیین میشوند. ۶۵,۵۳۶ بایت معادل ۶۴ کیلوبایت است که یک واحد مناسب برای اندازهگیری حافظه محسوب میشود.
🔹 پروتکل اینترنت (IP):
در IPv4، ۶۵,۵۳۶ تعداد پورتهای TCP/IP است که نقش مهمی در ارتباطات شبکه دارد.
🔹 اهمیت در ریاضیات:
عدد ۶۵,۵۳۶ بهعنوان یک توان از ۲، در مفاهیم رشد نمایی و سایر محاسبات ریاضی کاربرد دارد.
🔹 علوم کامپیوتر:
بسیاری از سیستمهای کامپیوتری بر پایه معماری ۱۶ بیتی طراحی شدهاند و این عدد در مدیریت دادهها و آدرسدهی بسیار مهم است.
🔹 بیتکوین و بلاکهای فشرده:
در بیتکوین، محدودیت ۱۶ بیتی در شاخص تراکنشها باعث شده بود که هر بلاک فقط ۶۵,۵۳۶ تراکنش داشته باشد. این محدودیت در بلاکهای بزرگتر از ۴ مگابایت مشکلساز میشد، اما با تغییر به ۳۲ بیت، مشکل برطرف شد.
🔹 جمعبندی:
عدد ۶۵,۵۳۶ به دلیل نمایش باینری، ویژگی توان ۲، و نقش کلیدی در آدرسدهی حافظه، شبکه، و برنامههای محاسباتی، اهمیت زیادی در علوم کامپیوتر و ریاضیات دارد.
در این تصویر، اعداد مفهومی ۰ و ۱ را در مرکز خواهید یافت که از طریق تولید تصادفی رنگ، بین روشن و تاریک تغییر میکنند. با دقت بیشتر، هشت ذرهٔ اطراف را مشاهده خواهید کرد که هرکدام مفهوم خاص خود را دارند.
🔹 راز تراکنش در بلاکچین
۶۴ بلوک اول، با اندازهی کوچکتر، نشاندهندهٔ یک تراکنش روی بلاکچین هستند. مقدار واقعی، ۶۴ کاراکتر بعد از 0x است که نشاندهندهی آدرس اولین تراکنش خریدار است و توسط Punk 6529 تأیید شده است.
🔹 یگانگی اثر
این اثر کاملاً منحصربهفرد است، زیرا هر بار که تولید میشود، تمام بلوکهای ایجاد شده متفاوت از یکدیگر خواهند بود. یعنی حالتهای آنها (۰/۱) تغییر میکنند و فقط تعداد محدودی از آنها میتوانند تولید شوند.
🔹 ویژگیهای اثر ۳۶,۸۶۴
عدد ۳۶,۸۶۴ یک عدد مرکب زوج است که از حاصلضرب دو عدد اول تشکیل شده است.
🔹 نسل بعدی این اثر، عدد ۶۵,۵۳۶ خواهد بود!
عدد ۶۵,۵۳۶ یک عدد طبیعی است که در علوم مختلف، بهویژه در علوم کامپیوتر و ریاضیات، اهمیت زیادی دارد.
چرا ۶۵,۵۳۶ مهم است؟
🔹 توان ۲:
عدد ۶۵,۵۳۶ برابر با ۲^۱۶ است، یعنی ۲ را ۱۶ بار در خودش ضرب کنیم. این ویژگی آن را در نمایش باینری، آدرسدهی حافظه، و سایر حوزههایی که توانهای ۲ اهمیت دارند، مهم میسازد.
🔹 نمایش باینری:
در قالب باینری، ۶۵,۵۳۶ به صورت 10000000000000000 نمایش داده میشود. این ساختار به دلیل داشتن ۱۶ صفر متوالی، در پردازشهای کامپیوتری کاربرد زیادی دارد.
🔹 حافظه:
در محاسبات، اندازههای حافظه معمولاً بر اساس توانهای ۲ تعیین میشوند. ۶۵,۵۳۶ بایت معادل ۶۴ کیلوبایت است که یک واحد مناسب برای اندازهگیری حافظه محسوب میشود.
🔹 پروتکل اینترنت (IP):
در IPv4، ۶۵,۵۳۶ تعداد پورتهای TCP/IP است که نقش مهمی در ارتباطات شبکه دارد.
🔹 اهمیت در ریاضیات:
عدد ۶۵,۵۳۶ بهعنوان یک توان از ۲، در مفاهیم رشد نمایی و سایر محاسبات ریاضی کاربرد دارد.
🔹 علوم کامپیوتر:
بسیاری از سیستمهای کامپیوتری بر پایه معماری ۱۶ بیتی طراحی شدهاند و این عدد در مدیریت دادهها و آدرسدهی بسیار مهم است.
🔹 بیتکوین و بلاکهای فشرده:
در بیتکوین، محدودیت ۱۶ بیتی در شاخص تراکنشها باعث شده بود که هر بلاک فقط ۶۵,۵۳۶ تراکنش داشته باشد. این محدودیت در بلاکهای بزرگتر از ۴ مگابایت مشکلساز میشد، اما با تغییر به ۳۲ بیت، مشکل برطرف شد.
🔹 جمعبندی:
عدد ۶۵,۵۳۶ به دلیل نمایش باینری، ویژگی توان ۲، و نقش کلیدی در آدرسدهی حافظه، شبکه، و برنامههای محاسباتی، اهمیت زیادی در علوم کامپیوتر و ریاضیات دارد.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
COMPΞZ 🧬
راز نهفتهٔ قطعهٔ 6️⃣ 3️⃣ 5️⃣ 5️⃣ 6️⃣ اینطور هست در این تصویر، اعداد مفهومی ۰ و ۱ را در مرکز خواهید یافت که از طریق تولید تصادفی رنگ، بین روشن و تاریک تغییر میکنند. با دقت بیشتر، هشت ذرهٔ اطراف را مشاهده خواهید کرد که هرکدام مفهوم خاص خود را دارند. 🔹 راز تراکنش…
جزئیات فنی و علمیتر.
انقدر خاص بود که براش یه قرارداد اختصاصی نوشتم.
قراردادی با عنوان CPZ داره که خودش مشتق شدهٔ قرارداد ERC721Creator از نوع پروکسی هست که از قرارداد Proxy ارثبری میکنه، درواقع چنین کلاس انتزاعی داریم:
این قرارداد انتزاعی یک تابع بازگشتی ارائه میکنه که با استفاده از ماشین مجازی اتریوم (EVM) همهٔ تماسها رو به قرارداد دیگری واگذار میکنه.
انقدر خاص بود که براش یه قرارداد اختصاصی نوشتم.
قراردادی با عنوان CPZ داره که خودش مشتق شدهٔ قرارداد ERC721Creator از نوع پروکسی هست که از قرارداد Proxy ارثبری میکنه، درواقع چنین کلاس انتزاعی داریم:
abstract contract Proxy {}این قرارداد انتزاعی یک تابع بازگشتی ارائه میکنه که با استفاده از ماشین مجازی اتریوم (EVM) همهٔ تماسها رو به قرارداد دیگری واگذار میکنه.
Unreal Engine ⭐ vs Unity ⚡️
فرق این دو موتور چیه؟🎮
هر دو با ++C ساخته شدن، اما Unreal Engine (UE) برای بازیهای AAA طراحی شده! محیطی پیچیده، قدرتمند و مملو از قابلیتهای پیشرفته که دستت رو در توسعهٔ بازیهای گرافیکی سطح بالا باز میذاره. اگر میخوای یه بازی خارقالعاده بسازی که گیمر رو میخکوب کنه، UE انتخاب اولته!
مزایای UE:
✅ تعامل قوی با ++C
✅ سیستم Blueprint برای توسعه سریعتر
✅ گرافیک فوقالعاده با جدیدترین تکنولوژیهای نورپردازی و فیزیک
✅ کاملاً رایگان، تا وقتی که درآمد بازی از ۱ میلیون دلار بیشتر بشه! بعدش فقط ۵٪ سود رو بهشون میدی.
حالا یونیتی چی؟
اگرچه Unity هم موتور قدرتمندیه، اما بیشتر برای بازیهای موبایل و دوبعدی استفاده میشه. نمونه موفقش؟ Clash of Clans که با یونیتی ساخته شده!
اما از نظر هزینه، بهصرفه نیست، چون نسخه رایگانش محدودیتهای زیادی داره.
پس انتخاب من؟
بدون شک Unreal Engine! چون اگر بازی AAA میسازی، UE یه سر و گردن بالاتر از بقیهست.
🔥 تا بحث بعدی، بهدرود
فرق این دو موتور چیه؟
هر دو با ++C ساخته شدن، اما Unreal Engine (UE) برای بازیهای AAA طراحی شده! محیطی پیچیده، قدرتمند و مملو از قابلیتهای پیشرفته که دستت رو در توسعهٔ بازیهای گرافیکی سطح بالا باز میذاره. اگر میخوای یه بازی خارقالعاده بسازی که گیمر رو میخکوب کنه، UE انتخاب اولته!
مزایای UE:
✅ تعامل قوی با ++C
✅ سیستم Blueprint برای توسعه سریعتر
✅ گرافیک فوقالعاده با جدیدترین تکنولوژیهای نورپردازی و فیزیک
✅ کاملاً رایگان، تا وقتی که درآمد بازی از ۱ میلیون دلار بیشتر بشه! بعدش فقط ۵٪ سود رو بهشون میدی.
حالا یونیتی چی؟
اگرچه Unity هم موتور قدرتمندیه، اما بیشتر برای بازیهای موبایل و دوبعدی استفاده میشه. نمونه موفقش؟ Clash of Clans که با یونیتی ساخته شده!
اما از نظر هزینه، بهصرفه نیست، چون نسخه رایگانش محدودیتهای زیادی داره.
پس انتخاب من؟
بدون شک Unreal Engine! چون اگر بازی AAA میسازی، UE یه سر و گردن بالاتر از بقیهست.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1
تابع std::ranges::starts_with در استاندارد ۲۳ معرفی شده است که بررسی میکند آیا یک محدوده با یک محدودهٔ دیگر شروع میشود یا خیر. تابع ابتدا اندازه دو محدوده ([first1, last1) و [first2, last2)) را مقایسه میکند. اگر اندازه محدوده اول کوچکتر از اندازه محدوده دوم باشد، تابع false را برمیگرداند.
به طور کلی بررسی اینکه آیا یک رشته با یک پیشوند خاص شروع میشود یا خیر، یا اینکه بررسی شروع یک دنبالهٔ خاص در یک آرایه را ارزیابی میکند.
در این مثال، تابع std::ranges::starts_with بررسی میکند که آیا آرایه numbers با دو عدد زوج شروع میشود یا خیر. برای این کار، از تابع is_even به عنوان تابع مقایسه استفاده میشود.
#cpp20 #cpp23 #ranges #starts_with #ranges_starts_with #چالش #سیروزه #رمضان #روز_بیست_و_هفتم
به طور کلی بررسی اینکه آیا یک رشته با یک پیشوند خاص شروع میشود یا خیر، یا اینکه بررسی شروع یک دنبالهٔ خاص در یک آرایه را ارزیابی میکند.
import std;
bool is_even(int x) {
return x % 2 == 0;
}
auto main() -> int {
int numbers[] = {1, 2, 3, 4, 5};
bool starts_with_even = std::ranges::starts_with(numbers, numbers + 2, is_even);
if (starts_with_even) {
std::println("Yes, the first two numbers are even.");
} else {
std::println("No, the first two numbers are not even.");
}
}
در این مثال، تابع std::ranges::starts_with بررسی میکند که آیا آرایه numbers با دو عدد زوج شروع میشود یا خیر. برای این کار، از تابع is_even به عنوان تابع مقایسه استفاده میشود.
#cpp20 #cpp23 #ranges #starts_with #ranges_starts_with #چالش #سیروزه #رمضان #روز_بیست_و_هفتم
COMPΞZ 🧬
تابع std::ranges::starts_with در استاندارد ۲۳ معرفی شده است که بررسی میکند آیا یک محدوده با یک محدودهٔ دیگر شروع میشود یا خیر. تابع ابتدا اندازه دو محدوده ([first1, last1) و [first2, last2)) را مقایسه میکند. اگر اندازه محدوده اول کوچکتر از اندازه محدوده…
بخش تخصصی دوم (بهروز رسانی Solidity) |جایگزینسازی (بازنویسی) توابع
در سالیدیتی، قراردادهای پایه (Base Contract) میتوانند رفتاری که توابع آنها انجام میدهند را با استفاده از ارثبری (Inheritance) تغییر دهند، به شرطی که این توابع با کلیدواژه virtual مشخص شده باشند. تابعی که جایگزین تابع دیگر میشود (Overriding Function) باید از کلیدواژه override در تعریف خود استفاده کند.
محدودیتهای تغییر رفتار در بازنویسی:
- تنها محدودیت در جایگزینسازی، تغییر دسترسی (Visibility) تابع از external به public است.
- قابلیت تغییر وضعیت (Mutability) تابع میتواند به حالت سختگیرانهتری تغییر کند.
این ترتیب به صورت زیر است:
- وضعیت nonpayable میتواند به view و pure تغییر یابد.
- وضعیت view میتواند به pure تغییر یابد.
- وضعیت payable یک استثنا است و نمیتواند به هیچ حالت دیگری از Mutability تغییر یابد.
#solidity #web3 #update #ether #اتریوم
در سالیدیتی، قراردادهای پایه (Base Contract) میتوانند رفتاری که توابع آنها انجام میدهند را با استفاده از ارثبری (Inheritance) تغییر دهند، به شرطی که این توابع با کلیدواژه virtual مشخص شده باشند. تابعی که جایگزین تابع دیگر میشود (Overriding Function) باید از کلیدواژه override در تعریف خود استفاده کند.
محدودیتهای تغییر رفتار در بازنویسی:
- تنها محدودیت در جایگزینسازی، تغییر دسترسی (Visibility) تابع از external به public است.
- قابلیت تغییر وضعیت (Mutability) تابع میتواند به حالت سختگیرانهتری تغییر کند.
این ترتیب به صورت زیر است:
- وضعیت nonpayable میتواند به view و pure تغییر یابد.
- وضعیت view میتواند به pure تغییر یابد.
- وضعیت payable یک استثنا است و نمیتواند به هیچ حالت دیگری از Mutability تغییر یابد.
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
contract Base {
function foo() virtual external view {}
}
contract Middle is Base {}
contract Inherited is Middle {
function foo() override public pure {}
}
#solidity #web3 #update #ether #اتریوم
دنیا پر از مگسهایی است که به زنبورها میگویند چطور عسل بسازند! 🐝
Please open Telegram to view this post
VIEW IN TELEGRAM
😁3💯2👍1👀1
هر موقع یک فایل دیجیتالی روی بستر شبکهٔ بلاکچین بارگذاری میشه؛ به عنوان توکن شناخته میشه. در اصل شبکه یک قرارداد هوشمند به فایل ضمیمه میکنه و این ترکیب رو به عنوان مفهوم توکن میشناسه. ماهیت و جنس این موضوع یک قرارداد هوشمند یا به عنوانی یک سند مالکیت هستش که به نام خالق اثر ثبت میشه و منحصراً روی تمامی حالاتی که به نوعی با حقوق مالکیت مرتبط هستند اشاره میکنه.
بخشی از دنیای FOSS برای همین موضوع هست که ما به واسطهٔ خاصیتهای ساخت و توسعه، تغییرات و مجوزهای ذکر شده، مشخص میکنیم که خالق چه چیزی هستیم و به مرور زمان ارزش دارایی ما هرچند متنباز، به چه سطحی میرسه! به💸 بیتکوین بنگرید، اما من در خصوص توکنهای غیر قابل تعویض توضیح خواهم داد که اصلاً چی هستند.
در مورد بلاکچین خودتون تحقیق کنید توضیحات مفصل isj" من فقط یک ریسمانی از برداشتهای خودم رو بهتون انتقال میدم تا بدونید قضیهٔ NFTsها چه چیزی هستش.
بنابراین، با شِمایههای متعددی که، توکنهای غیر قابل تعویض (NFT) از طریق کدهای هوشمند بلاکچین ارائه میده، ارزش اثرات خلق شده از کد و غیر کد به شکلهای مختلفی تجلای اونها میشه که به صورت زیر هستش:
۱) مالکیت و اثبات اصالت: ارزش اصلی NFT به خاطر مالکیت داراییهای دیجیتال و اثرات خلق شده از کد بوده و با کمک کدهای هوشمند بلاکچین، مالکیت این داراییها به صورت یکتا و غیر قابل تعویض تأیید میشود. این اصالت نشاندهندهٔ محتوای منحصر به فرد و اثر خلق شده توسط خالق است که میتواند به طور قانونی تأیید شود. این به معنای این است که شما واقعاً مالک آن اثر هستید و میتوانید به عنوان مالک آن ادعا کنید، چرا که از نظر حقوقی و قانونی اهمیت دارد و به شما امکان حصول از حقوق مالکیت و کنترل کامل بر اثر خلاقیتی را میدهد.
۲) انتقالپذیری و بازار معاملاتی: کدهای هوشمند به نحوی طراحی شدهاند که انتقالپذیری NFT را بین کاربران امکانپذیر میسازند. این امکان ایجاد بازار معاملاتی برای داراییها و اثرات خلق شده را فراهم میکند و باعث ارتقاء ارزش آنها میشود.
۳) تعیین شرایط و حقوق خالق: کدهای هوشمند میتوانند در قراردادهای NFT شرایط معینی را برای استفاده از داراییها و اثرات خلق شده را تعیین کنند. به عنوان مثال، میتوانند نسبت به هر فروش دومی یک مبلغ به خالق تعلق دهند که این امر به هنرمندان و خالقان اثر ارتقاء انگیزه میدهد و حتی مالکات دوم و بعدی را تشویق برای معاملات بیشتر جهت کسب ارزش بیشتر از اثر را فراهم میسازد.
۴) جمعآوری کارهای هنری: کدهای هوشمند میتوانند نحوهٔ جمعآوری کارهای هنری و اثرات خلق شده را تنظیم کنند. این اجازه را به ارتباطدهندگان و طرفهای خریدار این داراییها میدهد و باعث افزایش ارتباطات فرهنگی و هنری میشود. از طریق خرید NFT، شما نه تنها از آثار هنری و خلاقیت هنرمندان حمایت میکنید، بلکه ارتباط عمیقتری با آنها ایجاد میشود. این ارتباطگیری اجتماعی به هنرمندان انگیزه میدهد و آنها را تشویق میکند تا کارهای خلاقانهتری انجام دهند.
۵) اثبات منشأ و ارزش کار: کدهای هوشمند میتوانند مشخصات منحصر به فرد هنرمندان و خالقان اثر را در NFT ثبت کنند. این امر میتواند در تعیین ارزش و تاریخچهٔ کار هنری و اثر خلق شده از کد موثر باشد که مشابه آن در گیتهاب به وضوح قابل اثبات است.
۶) اقتصادیسازی هنری و محتوای دیجیتال: NFTها به عنوان یک بازار معاملاتی برای هنرمندان و خالقان محتوا کار میکنند. این امکان را فراهم میکنند تا از آثار خلاقیتی آنها به عنوان یک دارایی دیجیتال بهرهمند شوند و از آن کسب درآمد کنند و هر خدمات که در راستای آن میدهند از ارزش مادی و معنوی بسیار شفافی برخوردارد شود.
خلاصهٔ موضوع، کدهای هوشمند بلاکچین و امکانات NFT به خالقان و هنرمندان اجازه میده تا ارزش اثر خلق شدهٔ خود را بهتر تعیین کنند، آثار خود را به صورت یکتا عرضه کنند و از بازار معاملاتی پویا برای داراییها و اثرات خلق شدهٔ خود بهرهمند شوند. همچنین، این فناوری اطمینان میدهند که مالکیت داراییها به شکلی امن و قانونی تأیید و اثبات شده است.
#نکته #بلاکچین #انافتی #NFT #NFTs #Blockchain #Art #Code #کد
بخشی از دنیای FOSS برای همین موضوع هست که ما به واسطهٔ خاصیتهای ساخت و توسعه، تغییرات و مجوزهای ذکر شده، مشخص میکنیم که خالق چه چیزی هستیم و به مرور زمان ارزش دارایی ما هرچند متنباز، به چه سطحی میرسه! به
در مورد بلاکچین خودتون تحقیق کنید توضیحات مفصل isj" من فقط یک ریسمانی از برداشتهای خودم رو بهتون انتقال میدم تا بدونید قضیهٔ NFTsها چه چیزی هستش.
بنابراین، با شِمایههای متعددی که، توکنهای غیر قابل تعویض (NFT) از طریق کدهای هوشمند بلاکچین ارائه میده، ارزش اثرات خلق شده از کد و غیر کد به شکلهای مختلفی تجلای اونها میشه که به صورت زیر هستش:
۱) مالکیت و اثبات اصالت: ارزش اصلی NFT به خاطر مالکیت داراییهای دیجیتال و اثرات خلق شده از کد بوده و با کمک کدهای هوشمند بلاکچین، مالکیت این داراییها به صورت یکتا و غیر قابل تعویض تأیید میشود. این اصالت نشاندهندهٔ محتوای منحصر به فرد و اثر خلق شده توسط خالق است که میتواند به طور قانونی تأیید شود. این به معنای این است که شما واقعاً مالک آن اثر هستید و میتوانید به عنوان مالک آن ادعا کنید، چرا که از نظر حقوقی و قانونی اهمیت دارد و به شما امکان حصول از حقوق مالکیت و کنترل کامل بر اثر خلاقیتی را میدهد.
۲) انتقالپذیری و بازار معاملاتی: کدهای هوشمند به نحوی طراحی شدهاند که انتقالپذیری NFT را بین کاربران امکانپذیر میسازند. این امکان ایجاد بازار معاملاتی برای داراییها و اثرات خلق شده را فراهم میکند و باعث ارتقاء ارزش آنها میشود.
۳) تعیین شرایط و حقوق خالق: کدهای هوشمند میتوانند در قراردادهای NFT شرایط معینی را برای استفاده از داراییها و اثرات خلق شده را تعیین کنند. به عنوان مثال، میتوانند نسبت به هر فروش دومی یک مبلغ به خالق تعلق دهند که این امر به هنرمندان و خالقان اثر ارتقاء انگیزه میدهد و حتی مالکات دوم و بعدی را تشویق برای معاملات بیشتر جهت کسب ارزش بیشتر از اثر را فراهم میسازد.
۴) جمعآوری کارهای هنری: کدهای هوشمند میتوانند نحوهٔ جمعآوری کارهای هنری و اثرات خلق شده را تنظیم کنند. این اجازه را به ارتباطدهندگان و طرفهای خریدار این داراییها میدهد و باعث افزایش ارتباطات فرهنگی و هنری میشود. از طریق خرید NFT، شما نه تنها از آثار هنری و خلاقیت هنرمندان حمایت میکنید، بلکه ارتباط عمیقتری با آنها ایجاد میشود. این ارتباطگیری اجتماعی به هنرمندان انگیزه میدهد و آنها را تشویق میکند تا کارهای خلاقانهتری انجام دهند.
۵) اثبات منشأ و ارزش کار: کدهای هوشمند میتوانند مشخصات منحصر به فرد هنرمندان و خالقان اثر را در NFT ثبت کنند. این امر میتواند در تعیین ارزش و تاریخچهٔ کار هنری و اثر خلق شده از کد موثر باشد که مشابه آن در گیتهاب به وضوح قابل اثبات است.
۶) اقتصادیسازی هنری و محتوای دیجیتال: NFTها به عنوان یک بازار معاملاتی برای هنرمندان و خالقان محتوا کار میکنند. این امکان را فراهم میکنند تا از آثار خلاقیتی آنها به عنوان یک دارایی دیجیتال بهرهمند شوند و از آن کسب درآمد کنند و هر خدمات که در راستای آن میدهند از ارزش مادی و معنوی بسیار شفافی برخوردارد شود.
خلاصهٔ موضوع، کدهای هوشمند بلاکچین و امکانات NFT به خالقان و هنرمندان اجازه میده تا ارزش اثر خلق شدهٔ خود را بهتر تعیین کنند، آثار خود را به صورت یکتا عرضه کنند و از بازار معاملاتی پویا برای داراییها و اثرات خلق شدهٔ خود بهرهمند شوند. همچنین، این فناوری اطمینان میدهند که مالکیت داراییها به شکلی امن و قانونی تأیید و اثبات شده است.
#نکته #بلاکچین #انافتی #NFT #NFTs #Blockchain #Art #Code #کد
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Please open Telegram to view this post
VIEW IN TELEGRAM
Warpcast
C O M P Ξ Z on Warpcast
GM | Superboard #58 https://imagedelivery.net/BXluQx4ige9GuW0Ia56BHw/e91be827-3677-47ab-c209-b1dc15824100/original
❤1