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

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

We create because the world deserves better code.

https://linktr.ee/compez
Download Telegram
هرچند گزینهٔ یک کانال اختصاصی و میزان رتبهٔ کانال می‌تونه گزینهٔ خیلی ساده و شسته رفته‌ای هم باشه!
اما مدیریت خودِ کانال دهن صاف کن خواهد بود! یه بار طعمشو چشیدم کلی فحش بارم شد! پس کار من نیست و باید فکر بهتری کنیم.
نکته) هرکس بتونه راه حل خفن بده بهم، یک میزانی توکن در زمان اجراء بهش میدم که بره عشق کنه نیازی هم به ایردراپ نداشته باشه. 😉

زمان انقضاء ۲۴ ساعت از همین الآن.
COMPΞZ 🧬
نکته) هرکس بتونه راه حل خفن بده بهم، یک میزانی توکن در زمان اجراء بهش میدم که بره عشق کنه نیازی هم به ایردراپ نداشته باشه. 😉 زمان انقضاء ۲۴ ساعت از همین الآن.
گزینه‌های فعلی، تکیه بر فارکستر گزینه‌هایی مانند OpenRank و Spam Label وجود دارن اما هنوز مورد قبول همه نیست! کمی خام هستن.

گزینه‌هایی که خودم روشون کار می‌کنم، Trust Value بر مبنای تراکنش روی بلاک‌چین بیس و توکن اختصاصی خودمون که یک کاربر رو جامعه باید تأیید کنه و یک گواهی اطمینان دریافت می‌کنه با برچسب ویژه مثل Artist، Collector، Developer یا هر چیزی مثل این می‌گیره که می‌تونه تضمین کنه که همیشه واجد شرایط هست.
معیار واقعی ثروت ما این است که اگر پولمان را گم کنیم، چقدر می‌ارزیم. 😉

شب شیک 🌙
👍72
🔥2😍1
https://warpcast.com/compez.eth/0xe0644c92

چرا توسعه‌دهندگان اکنون از همیشه مهم‌تر هستند

ما زیرساخت‌ها را داریم — اما آنچه به شدت به آن نیاز داریم، رابط‌های کاربری پایدار و سازگار با توسعه‌دهندگان است، به‌ویژه برای کسانی که از دنیای وب ۲ می‌آیند.

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

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

اما برای تحقق این امر، آن پل‌ها هنوز باید ساخته شوند.

به همین دلیل است که توسعه‌دهندگان عاملان اصلی موج بعدی پذیرش بر بستر زنجیره هستند.
🔥1
https://warpcast.com/compez.eth/0x377bb05b

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

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

و ساختن معنادار نیازمند دو مولفهٔ اساسی است:


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

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

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

"ما به سر و صدا بیشتر نیاز نداریم — ما به سازندگان بیشتری نیاز داریم."

بیایید از تکرار کلمات کلیدی بگذریم و به ساخت تأثیر واقعی بپردازیم.
پس، بیایید آنچه را که جهان واقعاً به آن نیاز دارد بسازیم.
👍2🔥1
بدترین حرفی که یه مخاطب می‌تونه به فاندر یه پروژه بزنه این هست!
پروژه کیلو چنده!

این باور روی پروژه‌های میم شاید صدق کنه، اما روی پروژه‌های خدماتی عمراً! توضیحش میدم چرا...
👍2
COMPΞZ 🧬
بدترین حرفی که یه مخاطب می‌تونه به فاندر یه پروژه بزنه این هست! پروژه کیلو چنده! این باور روی پروژه‌های میم شاید صدق کنه، اما روی پروژه‌های خدماتی عمراً! توضیحش میدم چرا...
مردم وقتی به سود‌های خودشون فکر می‌کنن و همیشه به دنبال ایردراپ‌ها هستن بدون اینکه براشون مهم باشه، ما سازنده‌ها به فکر اینیم که ...

- پروژه چطور باید اجرا بشه! اصلاً ایده چی هست؟! کاربردش کجاست؟!
- پروژه چطور باید توسعه پیدا کنه و چطور هزینه‌های زیرساختیش تأمین بشه!
- خدماتی که میدیم تا چه حدی می‌تونه گسترش پیدا کنه و صد‌ها فکر و خیال دیگه!
- پروژه چطور باید طی بازهٔ مشخصی توکن‌هاش رو آزاد کنه، نحوهٔ توزیعش چطور باشه!
- موضوع توکنومیکس به قدری مهمه که صد بار توی این ماه اخیر من از اول نوشتمش! که برای کمتر کردن احتمالات اشتباه ۱۰ پروژه‌ای که سال‌ها باهاشون درگیر هستم رو زیر رو کردم همشون رو شخم زدم که ببینم ضعفشون و مزیتشون کجاست و چه دلایلی منجر به دامپ شدیدشون شده.
- ده‌ها بار کل مجموعه قرارداد‌های DAO رو توی قرارداد خودم ترکوندم از اول نوشتم! فقط برای اینکه مطمئن باشم مخاطب احساس مالکیت و حق نظر و رأی رو خواهد داشت! فقط برای اینکه هیچطور عذاب وجدان نگیریم که کسی ضرر نکنه این وسط!
و حالا کاری ندارم به محدودیت‌ها و کلی هزینه‌های موجود و صد‌ها مورد دیگه که همه رو باید در نظر بگیریم که نه پروژه شکست بخوره، نه سرمایه‌گذار ضرر کنه! در مقابل تریدر‌ها رو جذب کنه و مخاطب‌های پروژه رو راضی نگه‌داره!

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

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

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

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

خوش به حال کسانی که بتونن درکش کنن.
👍4💯1
COMPΞZ 🧬
مردم وقتی به سود‌های خودشون فکر می‌کنن و همیشه به دنبال ایردراپ‌ها هستن بدون اینکه براشون مهم باشه، ما سازنده‌ها به فکر اینیم که ... - پروژه چطور باید اجرا بشه! اصلاً ایده چی هست؟! کاربردش کجاست؟! - پروژه چطور باید توسعه پیدا کنه و چطور هزینه‌های زیرساختیش…
پشت هر پروژه، هزاران جنبهٔ مهندسی و تحلیلی پنهانه؛ که گاهی فقط یک خطای کوچک می‌تونه همه‌چیز رو به نابودی بکشونه!
تمام هزینه‌ها، زمان‌ها، و زحمات یک تیم ممکنه با یک بی‌دقتی به باد بره.

از نظر من، ایردراپ همون‌قدر که می‌تونه موتور رشد یک پروژه باشه، به همون اندازه هم می‌تونه خطرناک بشه—اگر جامعهٔ آگاه و هدف‌مندی پشتش نباشه.

ما امروز بیش از هر زمان دیگه‌ای، به یک فرهنگ آموزشی قوی نیاز داریم؛ فرهنگی که بتونه FOMO رو به‌درستی هدایت کنه و تصمیم‌گیری‌ها رو منطقی‌تر و آگاهانه‌تر کنه.
COMPΞZ 🧬
پشت هر پروژه، هزاران جنبهٔ مهندسی و تحلیلی پنهانه؛ که گاهی فقط یک خطای کوچک می‌تونه همه‌چیز رو به نابودی بکشونه! تمام هزینه‌ها، زمان‌ها، و زحمات یک تیم ممکنه با یک بی‌دقتی به باد بره. از نظر من، ایردراپ همون‌قدر که می‌تونه موتور رشد یک پروژه باشه، به همون…
این دلیلی هست که تیم‌هایی مثل Rare Lab دیگه هیچ فعالیت برای پاداش در جامعه نمی‌کنن! هم دیسکوردش رو جمع کرد هم فارکسترش رو!
چرا؟ چون دید بخش عمده‌ای از مردم فرهنگ تعامل رو ندارند. 😉 پس چه چیزی بهتر از حذف موضوع RareDrop از نقشهٔ توکنومیکس!

۱۵ درصد چیز کمی نیست برای نابودی یک پروژه! اگه درست جا نیفته کل تیم با خاک یکسان میشه.

دلیل اینهمه ریزش ریر هم همین بود. وسلام!
👍1
COMPΞZ 🧬
این مدل از بین ۳۵ مدل اصلاح شده در اومده (Dev). نظر شما؟
نکته ضعف‌های اساسی که در بحث ایردراپ‌ها وجود داشت:
۱) قفل کردن اجباری توکن برای مدت معین
۲) تصمیمات ناگهانی و اجرا بدون نظرخواهی جامعه

این دو ویژگی در بخش ایردراپ به هیچ وجه وجود نداره. اول اینکه هیچ شرطی برای قفل کردن وجود نداره اما برای هولد کردن چرا!
و دوم اینکه هر تصمیمی گرفته بشه با رأی گیری جامعه به صورت on-chain و ثبت روی شبکهٔ بیس شکل می‌گیره و بعد تصمیم اجراء می‌شه. یعنی جامعه تصمیم می‌گیره، داوری میشه و بعد از رأی آوردن تصمیم اجرا میشه. اینطوری دیگه یک نفر تصمیم. گیرنده نخواهد بود.

این دو مورد رو من اینطور در نظر گرفتم که خطاهای دیجن رو نداشته باشیم و مقداری هم شبیه قانون هولد ریر پیش بریم که اجباری توش نباشه.

البته یک استثناء هم وجود داره، هرکسی که روی بیس NFT و یا کدی رو اجرا و مینت کنه، ممکنه بتونیم براش بدون هولد کردن مقدار مشخصی از توکن، سهمیه بدیم! این رو من باید با جامعه بیس هم یک مشورتی کنم ببینم چی میشه...
COMPΞZ 🧬
این دلیلی هست که تیم‌هایی مثل Rare Lab دیگه هیچ فعالیت برای پاداش در جامعه نمی‌کنن! هم دیسکوردش رو جمع کرد هم فارکسترش رو! چرا؟ چون دید بخش عمده‌ای از مردم فرهنگ تعامل رو ندارند. 😉 پس چه چیزی بهتر از حذف موضوع RareDrop از نقشهٔ توکنومیکس! ۱۵ درصد چیز کمی…
به این نگاه کن، در مورد ریر هست!
سرمایه‌گذار‌ها همیشه دنبال نقاط قوت مثل نقطهٔ ستاره صعودی هستن که یه چیزی مثل علامت + (سبز رنگ) در پایین‌ترین نقطهٔ ممکن هست! و معمولاً برعکسش یعنی در قله با رنگ قرمز علامت یک ریزش درست حسابی میده.

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

پر کردن این کپ‌ها خودش داستان‌ها داره... 👀 پیدا کردن این نقاط معمولاً به همراه تأیید برای اشباع فروش و لحظهٔ خوبی برای حمایت هست.
👍1
واین موضوع هم مهمه که یاد آوری کنیم، شت‌کوین و میم‌کوین چیه؟

شت‌کوین:
معمولاً پروژه‌های بی‌ارزش یا کلاهبرداری هستن که هیچ هدف واقعی، کاربرد یا برنامه توسعه‌ای ندارن.

ویژگی‌ها:
- عرضه خیلی بالا (مثلاً چندین میلیارد و تیریلیون توکن).
- بدون قفل یا برنامه آزادسازی (همه توکن‌ها یهو توی بازار دامپ می‌شن).
- تیم ناشناس یا بدون شفافیت.
- فقط برای پامپ و دامپ کوتاه‌مدت ساخته می‌شن.

میم‌کوین:
پروژه‌هایی هستن که بیشتر بر اساس شوخی، میم‌های اینترنتی یا جامعه طرفدارا ساخته می‌شن (مثل Dogecoin یا Shiba Inu یا Degen).

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

#میم‌کوین #شت‌کوین #توکن #memecoin #shitcoin
1👍1
COMPΞZ 🧬
ابزار کمکی std::to_underlying در C++23 در استاندارد ۲۳، تابع std::to_underlying برای تبدیل مقادیر شمارشی به نوع پایه ای آنها معرفی شده است. این تابع می‌تواند برای تبدیل انواع شمارشی مانند enum و enum class به نوع پایه‌ای آنها مانند int یا unsigned int استفاده…
اعلان مستعار (alias) در C++23

یکی از پیشرفت‌های C++23، گسترش عبارت‌های init برای اجازه دادن به اعلان (مستعار) alias است.
عبارت‌های init بخشی از حلقه‌ها (for، while)، switch و عبارت‌های range-based for هستند. آنها به شما اجازه می‌دهند تا متغیرها را در داخل خود حلقه یا عبارت declare و initialize کنید، یا از typedef استفاده کنید. این کار می‌تواند خوانایی و قابلیت نگهداری کد را با نگه داشتن اعلان‌های متغیر نزدیک به جایی که استفاده می‌شوند، بهبود بخشد.

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

std::vector pointsScored {27, 41, 32, 23, 28};
for (typedef int Points; Points points : pointsScored) {
//ToDo...
}



در C++23 با اجازه دادن به اعلان مستعار با استفاده از using در عبارت‌های init، این ناسازگاری را حل می‌کند. این کار انسجام را به ارمغان می‌آورد و به شما امکان می‌دهد از مزایای aliasها در این زمینه‌ها استفاده کنید.

import std;

auto main() -> int {

std::vector pointsScored {27, 41, 32, 23, 28};
for (using Points = int; Points points : pointsScored) {
std::println("Compez scored {}", points);
}

}



#cpp20 #cpp23 #alias #چالش #سی‌روزه #رمضان #روز_چهاردهم
COMPΞZ 🧬
بخش تخصصی دوم (به‌روز رسانی Solidity) |انواع نگاشت‌ها (Mapping) در Solidity، از نوع داده‌های Mapping برای ایجاد یک نوع داده کلید-مقدار استفاده می‌شود. این نوع داده‌ها با نحو دستوری زیر تعریف می‌شوند: mapping(KeyType KeyName? => ValueType ValueName?) و متغیرهای…
بخش تخصصی دوم (به‌روز رسانی Solidity) |کلمهٔ کلیدی delete

کلمهٔ کلیدی حذف (delete) یک مقدار اولیه برای نوع داده مورد نظر به متغیر می‌دهد. به عنوان مثال برای اعداد صحیح، معادل با a = 0 است، اما می‌تواند بر روی آرایه‌ها نیز استفاده شود، جایی که یک آرایه پویا با طول صفر یا یک آرایه استاتیک با همان طول و تمام عناصر به مقدار اولیه خود اختصاص می‌دهد.

برای مثال در این بخش از کد:
delete a[x]



کلمهٔ کلیدی delete، موردی که در شاخص x آرایه قرار دارد را حذف کرده و سایر عناصر و طول آرایه را بدون تغییر باقی می‌گذارد. این به ویژه به این معنا است که یک جای خالی در آرایه باقی می‌ماند. بنابراین، اگر قصد حذف عناصر را دارید، استفاده از یک نگاشت (mapping) احتمالاً انتخاب بهتری است.

برای ساختارها (structs)، یک ساختار با تمام اعضا بازنشانده می‌شود. به عبارت دیگر، مقدار a پس از delete a همانند این است که a بدون اختصاص اعلام شود.
کلمهٔ کلیدی delete تأثیری بر روی نگاشت‌ها (mapping) ندارد (زیرا کلیدهای نگاشت‌ها ممکن است خودکار و در کل ناشناخته باشند). بنابراین اگر یک ساختار را حذف کنید، تمام اعضایی که نگاشت نیستند را بازنشانده می‌کند و همچنین به اعضا داخلی عملیات بازگشتی انجام می‌دهد مگر اینکه آنها نگاشت باشند. با این حال، کلیدها و مقادیر متناظر با آنها قابل حذف هستند: اگر a یک نگاشت باشد، آنگاه delete a[x] مقدار ذخیره شده در x را حذف می‌کند.

// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.4.0 <0.9.0;

contract DeleteExample {
uint data;
uint[] dataArray;

function f() public {
uint x = data;
delete x; // sets x to 0, does not affect data
delete data; // sets data to 0, does not affect x
uint[] storage y = dataArray;
delete dataArray; // this sets dataArray.length to zero, but as uint[] is a complex object, also
// y is affected which is an alias to the storage object
// On the other hand: "delete y" is not valid, as assignments to local variables
// referencing storage objects can only be made from existing storage objects.
assert(y.length == 0);
}
}



#solidity #web3 #update #ether #اتریوم
COMPΞZ 🧬
اعلان مستعار (alias) در C++23 یکی از پیشرفت‌های C++23، گسترش عبارت‌های init برای اجازه دادن به اعلان (مستعار) alias است. عبارت‌های init بخشی از حلقه‌ها (for، while)، switch و عبارت‌های range-based for هستند. آنها به شما اجازه می‌دهند تا متغیرها را در داخل…
در استاندارد ۲۳ ویژگی جدیدی به نام std::move_only_function معرفی شده است که به منظور بهبود کارایی و مدیریت حافظه در برنامه‌ها، به خصوص در مواردی که با انتقال اشیاء بزرگ سرو کار داریم، طراحی شده است.

در واقع std::move_only_function یک کلاس template است که به شما امکان می‌دهد توابعی را تعریف کنید که فقط می‌توانند با اشیاء موقت (rvalue) کار کنند. این نوع توابع قادر به دریافت اشیاء به عنوان lvalue (غیر موقت) نیستند، و در عوض، آنها اشیاء را به طور مستقیم «move» می‌کنند.

- این منجر به افزایش کارایی قابل توجهی در برنامه‌ها، به خصوص در مواردی که با اشیاء بزرگ سروکار داریم، می‌شود. دلیل این امر این است که نیازی به کپی اشیاء در هنگام فراخوانی تابع نیست، و به جای آن، اشیاء به طور مستقیم «move» می‌شوند.
- می‌تواند به مدیریت حافظه کارآمدتر کمک کند، زیرا از ایجاد کپی‌های غیرضروری اشیاء جلوگیری می‌کند.

مثال زیر شامل دو تابع معمولی و با عنوان printValue و تابع جدید با عنوان printValueRvalue را نمایش می‌دهد که در اینجا printValueRvalue یک std::move_only_function است که فقط می‌تواند با اشیاء rvalue کار کند:

import std;

void printValue(int value)
{
std::println("value: {}", value);
}

std::move_only_function<void(int)> printValueRvalue = [](int value)
{
std::println("value (rvalue): {}", value);

};

auto main() -> int {

int x = 10;
printValue(x);
printValueRvalue(std::move(x));

}


نکته، منظور از «move»، انتقال مالکیت یک شیء از یک مکان حافظه به مکان دیگر است که در استاندارد سی‌پلاس‌پلاس با std::move شناخته می‌شود.

#cpp20 #cpp23 #move_only_function #چالش #سی‌روزه #رمضان #روز_پانزدهم