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

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

We create because the world deserves better code.

https://linktr.ee/compez
Download Telegram
COMPΞZ 🧬
خب در فصل جدید ایردراپ دیجن، یه سیستم جدید اضافه شده که در اون، اگه کسی از فریم (Frame) برای ارسال یک کست استفاده کنه و از بقیه انعام (Tip) بگیره، ما (توسعه‌دهنده‌ها) ۲۰٪ معادل انعام دریافت شده توسط شخص رو دریافت می‌کنیم. مثلاً: اگه شما از فریم انعام‌دهی…
خیلی‌ها معتقدن که توسعه‌دهنده‌ها سود بیشتری کسب می‌کنن؟! شاید! اما این حقیقت نداره.

۱) نگه‌داری فریم یعنی نگه‌داری از خدمات و زیرساخت‌هایی که خدمات رو در اون ارائه میدیم به شدت هزینه‌بر هست، هزینهٔ منابع، پهنای باند و در کل سرور.

۲) توسعه و به‌روز رسانی به عنوان بخش مهمی از خدمات نیاز به دانش و تخصص در لحظه داره! در واقع نیروی کاری، یا خودت یا تیم.

بنابراین شخصاً با ۲.۲ میلیون درخواست روی فریم‌هام در طول ۳۰ روز هزینهٔ خیلی زیادی رو متحمل می‌شم.

هیچ چیز مفت و مجانی‌ای قابل اجرا نیست، حتی با توجه به تحریم‌ها، حذف شدن امتیازتت ماکسی و غیره همشون باعث شده همهٔ هزینه‌ها رو از جیب بپردازیم تا بتونیم فقط ابزار‌ها رو آنلاین نگه داریم.

چیزی که من هزینه می‌کنم چندین برابر تیپ‌هایی هست که شما دریافت می‌کنید.

بعد یه سری میان می‌گن عهه توسعه‌دهنده‌ها بیشتر از همه سود می‌برن! نخیر همچین خبری نیست الکی جو ندین ملت فکر می‌کنن چه خبره!
👍2💯1
COMPΞZ 🧬
خیلی‌ها معتقدن که توسعه‌دهنده‌ها سود بیشتری کسب می‌کنن؟! شاید! اما این حقیقت نداره. ۱) نگه‌داری فریم یعنی نگه‌داری از خدمات و زیرساخت‌هایی که خدمات رو در اون ارائه میدیم به شدت هزینه‌بر هست، هزینهٔ منابع، پهنای باند و در کل سرور. ۲) توسعه و به‌روز رسانی…
چیزی حدود ۱.۵ میلیون درخواست فقط با موقعیت USA ثبت شده، حدود ۱۷ هزار درخواست البته که بخشیش هم از VPN هست، از ایران (بدون vpn).

اما در کل پشتیبانی خدمات سخت‌‌ترین موضوع هست! مکانیزیمی که پیاده‌سازی می‌کنی و هر سرویسی که میدی باید ساختاری داشته باشه که بتونی دیباگ رو به راحتی انجام بدی.

در کل شما نیستید که با سختی روبرو هستید، ماهم هزینه می‌کنیم خیلی بیشتر از اونی که فکرشو بکنید هم هزینه می‌کنیم اما هیچ‌وقت نا امید نیستیم.
1🔥1👀1
COMPΞZ 🧬
حدود ۱۷ هزار
این هم بخشی از تلاش‌های آدم‌های بد بد بد... 😁که همیشه سعی دارن یه چیزی لای چرخ آدم بکنن.

این ماه ۱۹۶ بار بهم حمله شده اما ۲ بار یه چیز خاص دیدم خیلی سخت بود که موجب خرابی زیادی شد و به خاطر یک حملهٔ عجیب از دست رفت و برای به کار گیری بک‌آپ‌هاش کلی هزینه کردم.

انقدر از این اتفاقات می‌افته که تو اون پشت مشتا هیچ‌کس خبر دار نمیشه ولی همش برای ما لذت‌بخشه! همه چیزش هم روز‌های سختش هم خوبش.
1
COMPΞZ 🧬
🔥 بخش دوم: یادگیری زبان برنامه‌نویسی Solidity البته من از ۱ سال قبل شروعش کردم و این پست بازیابی شدست، ولی اینجا به‌روز‌رسانی میدم. ## سالیدیتی چیه؟ سالیدیتی یک زبان برنامه‌نویسی سطح بالا، شیءگرا و کامپایل‌شده‌ است که برای نوشتن قراردادهای هوشمند در…
بخش تخصصی اول (به‌روز‌رسانی سی‌پلاس‌پلاس ۲۳)

کلمهٔ کلیدی constinit در زبان برنامه‌نویسی ++C به شما اجازه می‌دهد تا تضمین کنید متغیر موردنظر در زمان کامپایل مقداردهی شود، نه در زمان اجرا. این ویژگی می‌تواند کارایی برنامه را بهبود ببخشد، زیرا از مقداردهی پویا در زمان اجرا جلوگیری می‌کند.

import std;

constinit int temperature = 20;

auto main() -> int
{
std::println("Current temperature: {:+3d} degrees Celsius.", temperature);
}


در این مثال، استفاده از کلمهٔ کلیدی constinit تضمین می‌کند که مقدار temperature در زمان کامپایل مقداردهی می‌شود، بنابراین هزینهٔ مقداردهی پویا در زمان اجرا حذف خواهد شد. این قابلیت برای متغیرهایی که مقدارشان در زمان کامپایل مشخص است و نیازی به مقداردهی پویا ندارند، بسیار مفید است.

### تفاوت constinit با constexpr
ممکن است این سؤال پیش بیاید که تفاوت کلمهٔ کلیدی constinit با کلمهٔ کلیدی constexpr چیست؟ این دو در ++C برای تعریف متغیرهای ثابت استفاده می‌شوند، اما تفاوت‌هایی دارند:

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

#چالش #سی‌روزه #رمضان #روز_دوم #cpp23 #update
👍1
COMPΞZ 🧬
بخش تخصصی اول (به‌روز‌رسانی سی‌پلاس‌پلاس ۲۳) کلمهٔ کلیدی constinit در زبان برنامه‌نویسی ++C به شما اجازه می‌دهد تا تضمین کنید متغیر موردنظر در زمان کامپایل مقداردهی شود، نه در زمان اجرا. این ویژگی می‌تواند کارایی برنامه را بهبود ببخشد، زیرا از مقداردهی…
### بخش تخصصی دوم (به‌روز‌رسانی Solidity) – انواع داده‌ها

زبان Solidity نیز مانند ++C یک زبان با انواع ایستا است، به این معنا که نوع هر متغیر (حالت و محلی) باید مشخص شود. Solidity چندین نوع ابتدایی را ارائه می‌دهد که می‌توان آن‌ها را برای ایجاد انواع پیچیده ترکیب کرد. علاوه بر این، انواع داده‌ها می‌توانند در عباراتی که شامل عملگر هستند با یکدیگر تعامل داشته باشند. مفهوم مقادیر "تعریف نشده" یا "null" در Solidity وجود ندارد، اما متغیرهای تازه اعلام شده همیشه دارای مقدار پیش‌فرض هستند که به نوع آن‌ها بستگی دارد.

### کلمهٔ کلیدی انواع پایه در Solidity:
- کلمهٔ کلیدی uint – اعداد صحیح بدون علامت (مثبت)
- کلمهٔ کلیدی int – اعداد صحیح با علامت (مثبت و منفی)
- کلمهٔ کلیدی bool – مقادیر درست یا غلط
- کلمهٔ کلیدی address – آدرس‌های قراردادهای هوشمند
- کلمهٔ کلیدی bytes – رشته‌های بایت
- کلمهٔ کلیدی string – رشته‌های متنی

### کلمهٔ کلیدی انواع پیچیده‌تر در Solidity:
- کلمهٔ کلیدی array – آرایه‌هایی از مقادیر هم‌نوع
- کلمهٔ کلیدی struct – ساختارهایی برای دسته‌بندی داده‌های مرتبط
- کلمهٔ کلیدی enum – نوعی داده برای مقادیر محدود و از پیش تعریف‌شده
- کلمهٔ کلیدی mapping – نگاشت‌هایی برای ذخیره‌سازی داده‌ها به‌صورت کلید-مقدار


### کلمهٔ کلیدی address در Solidity

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

به‌عنوان نمونه، کلمهٔ کلیدی address در Solidity دو حالت مختلف دارد:

- کلمهٔ کلیدی address – نوعی داده که یک مقدار ۲۰ بایتی را نگه می‌دارد (معادل یک آدرس اتریوم).
- کلمهٔ کلیدی address payable – مشابه address است، اما دارای توابع `transfer` و `send` برای ارسال اتر (ETH) نیز می‌باشد.

#### تفاوت address و address payable
اگر بخواهید اتر (ETH) به یک آدرس ارسال کنید، حتماً باید از address payable استفاده کنید. دلیل این موضوع این است که برخی قراردادهای هوشمند ممکن است برای دریافت اتر طراحی نشده باشند.

// یک آدرس عادی
address myAddress = address(0x123...);

// یک آدرس قابل پرداخت
address payable x = payable(0x123...);


از نسخه ۰.۵.۰ در Solidity، قراردادها به‌طور ضمنی به address تبدیل نمی‌شوند، اما همچنان می‌توان آن‌ها را به‌صورت صریح به address یا address payable تبدیل کرد، به شرطی که یک تابع `fallback` از نوع `receive` یا `payable` داشته باشند.

### مثالی از خواندن موجودی یک آدرس اتریوم
pragma solidity ^0.8.0;

contract AddressBalance {
// دریافت موجودی یک آدرس (بر حسب Wei)
function getAddressBalance(address addr) public view returns (uint) {
return addr.balance;
}
}

کلمهٔ کلیدی address در Solidity به‌عنوان نوعی داده ۲۰ بایتی (۱۶۰ بیت) استفاده می‌شود که می‌تواند آدرس یک حساب کاربری یا قرارداد هوشمند را در شبکه اتریوم نگه دارد.

### کاربردهای `address` در Solidity:
ارسال اتر به یک حساب کاربری یا قرارداد هوشمند
فراخوانی توابع یک قرارداد هوشمند
ذخیره آدرس‌ها در متغیرها
مقایسه آدرس‌ها

### چرا Solidity را دوست دارم؟
برخلاف ++C که یک زبان چندمنظوره است، Solidity به‌طور خاص برای قراردادهای هوشمند روی اتریوم طراحی شده است. این یعنی شما نیازی به پیاده‌سازی پایه‌ای انواع داده‌ها مثل address ندارید، چون زبان از ابتدا برای همین منظور طراحی شده است!

در حالی که در ++C باید همه چیز را دستی پیاده‌سازی کنید، Solidity ابزارهای موردنیاز برای توسعه قراردادهای هوشمند را از پیش آماده کرده است. این ویژگی باعث می‌شود که خواندن و نوشتن قراردادهای هوشمند بسیار ساده‌تر باشد!

به همین دلیل، هر زبان برنامه‌نویسی برای هدف خودش ابزار مناسبی است!

#solidity #web3 #update‌ #چالش #سی‌روزه #رمضان
2👍1
همونطور که گفتم این موارد رو از آرشیو سال قبل دارم در میارم! اما کمی هم روشون تغییرات میدم با توجه به به‌روز رسانی‌های اخیر.

هر روز یک مثال از سی++ مدرن و سالیدیتی؛ تا آخر ماه باهم یه یه قرارداد رو می‌خونیم! قراردادی که برای دیجن نوشتم رو براتون توضیح خواهم داد.

برای خوندن قرارداد نیازی نیست مهندس کامپیوتر باشی! اگه هستی که چه بهتر! اگه نیستی فقط در بالاترین سطوح ممکن کلمات کلیدی رو باید درک کنی. سالیدیتی زبان سطح بالاست که نزدیک به انگلیسیه پس درکش هم نباید سخت باشه.

مثلاً، وقتی بین کد‌ها یه چیزی مثل address payable می‌بینی، این قطعاً داره اشاره می‌کنه به آدرسی که شما می‌تونید انتظار ترنسفر یا ارسال روی یک آدرس رو داشته باشید.
یعنی آدرسی که قابلیت پرداخت روش هست!

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

#موقت
👍1🙏1
یکم به کاربر حال بدیم حوصلش موقع کار با فریم سر نره! 😌
2👻1
یه Logger شیک هم براش بذاریم تمیز... 👀
1👍1
از سه تا کد دعوت فقط ۲ تاش رو دارم.

با انگیزه‌ترین فردی که به این کد‌ها نیاز داره رو بهم معرفی کنید این‌ها رو بهش بدم تا بتونه بدون موضوع پرداخت دلاری عضو فارکستر بشه.
8
اگه بخوام همچین چیزی بسازم برای فارکستر، عین آب خوردنه واسم! اما هر بار درخواستش معادل ۱ دلار روی api‌های AI آب می‌خوره!

چالش... چطور می‌شه هزینهٔ توکن‌سوزی رو به حداقل رسوند... 🤔
🤔1
COMPΞZ 🧬
اگه بخوام همچین چیزی بسازم برای فارکستر، عین آب خوردنه واسم! اما هر بار درخواستش معادل ۱ دلار روی api‌های AI آب می‌خوره! چالش... چطور می‌شه هزینهٔ توکن‌سوزی رو به حداقل رسوند... 🤔
خب یکم توکن رو تحلیل کنیم ببینیم چطور پردازش میشه. این نتیجهٔ خروجی و تعدد توکن و کاراکتری هست که بر مبنای ChatGPT برای تحلیل حساب من روی توئیتر می‌شه به دست آورد.

پس...
🔥1
COMPΞZ 🧬
خب یکم توکن رو تحلیل کنیم ببینیم چطور پردازش میشه. این نتیجهٔ خروجی و تعدد توکن و کاراکتری هست که بر مبنای ChatGPT برای تحلیل حساب من روی توئیتر می‌شه به دست آورد. پس...
نکته) تحلیلی که گروک انجام داده بر مبنای ۶۸ پست اخیر از من هست.
فرض کنیم من بخشی از هزینه‌های تحلیل رو روی سرور مرکزی خودم پردازش کنم، ۱۰۰ کست آخر رو بگیرم و تحلیلش کنم.

خب این ۱۰۰ کست روی حساب‌های مختلف می‌تونه به پاراگراف‌هایی کوتاه یا بلند تبدیل بشه و در نهایت بر تعداد توکن‌ها تقسیم و سوزونده بشه تا به یک نتیجهٔ نهایی برسیم. با توجه به اینکه روی پست قبلی متوجه شدیم چقدر توکن می‌سوزونه یعنی ۱۴۲ توکن با ۵۹۳ کاراکتر از نوه خروجی! خب این رو ضریب بدیم به هزاران کاربر! 🤔

🔹 توکن در متن یعنی چه؟
یک توکن می‌تواند شامل موارد زیر باشد:

یک کلمه کامل (مثلاً "سلام")
یک بخش از یک کلمه (مثلاً در کلمات طولانی‌تر، ممکن است به چند توکن شکسته شوند)
یک علامت نگارشی (مثل "؟" یا "،")
یک فاصله یا کاراکتر خاص


🔹 مثال‌های تعداد توکن در یک متن
متن: "سلام، حال شما چطور است؟"
تقسیم‌بندی به توکن‌ها: ["سلام"، "،"، "حال"، "شما"، "چطور"، "است", "؟"]
تعداد توکن‌ها: ۷

💡 نکته: تعداد توکن‌ها همیشه برابر با تعداد کلمات نیست، زیرا برخی از کلمات ممکن است به چند توکن شکسته شوند.

🔹 چرا توکن‌ها مهم هستند؟
هزینه پردازشی: مدل‌های زبانی معمولاً با تعداد توکن‌ها شارژ می‌شوند. هرچه متن طولانی‌تر باشد، هزینه پردازش بالاتر می‌رود.
محدودیت تعداد توکن: هر مدل زبانی یک حداکثر ظرفیت برای تعداد توکن دارد.
تأثیر در کیفیت متن: نحوه شکسته شدن متن به توکن‌ها روی دقت و سرعت پردازش مدل تأثیر می‌گذارد.

حالا هزینه‌ها رو محاسبه کنیم:
قیمت برای هر ۱ میلیون توکن برای متن ورودی ۲ دلار هست.
قیمت برای هر ۱ میلیون توکن برای متن خروجی ۱۰ دلار هست.

حالا باید فکر کنم! چقدر می‌شه کاربر رو پوشش داد و چه میزان درخواست و با چه مقدار هزینه!
خب قطعاً استفاده از چنین فریمی باید پولی باشه در این شکی نیست، اما چقدر برای هر درخواست یا کاربر باید تحلیل کنم! 👀 فکرینگ....
👍2
COMPΞZ 🧬
نکته) تحلیلی که گروک انجام داده بر مبنای ۶۸ پست اخیر از من هست. فرض کنیم من بخشی از هزینه‌های تحلیل رو روی سرور مرکزی خودم پردازش کنم، ۱۰۰ کست آخر رو بگیرم و تحلیلش کنم. خب این ۱۰۰ کست روی حساب‌های مختلف می‌تونه به پاراگراف‌هایی کوتاه یا بلند تبدیل بشه و…
برای محاسبه تعداد توکن‌هایی که در روز مصرف می‌کنی، باید چند فاکتور را در نظر بگیری:

تعداد درخواست‌ها در روز = ۱۰۰۰
تعداد کاراکترها در هر درخواست = ۱۰۰۰
میانگین نسبت توکن به کاراکتر = تقریباً ۱ توکن به ازای هر ۴ کاراکتر در زبان فارسی و انگلیسی (بسته به متن)
مرحله ۱: تبدیل کاراکتر به توکن
اگر هر درخواست ۱۰۰۰ کاراکتر باشد، تعداد تقریبی توکن‌ها:

1000÷4=250 توکن

(این مقدار تقریبی است و ممکن است بین ۲۰۰ تا ۳۰۰ توکن باشد)

مرحله ۲: محاسبه تعداد کل توکن‌های روزانه
توکن مصرفی در روز:

250×1000=250,000 توکن

مرحله ۳: هزینه و محدودیت‌ها

بسته به اینکه از چه پلنی استفاده می‌کنی، باید بررسی کنی که آیا این مقدار توکن در محدودیت پلن شما قرار دارد یا نیاز به ارتقا داری. برای مثال، اگر محدودیت ماهانه ۱۰ میلیون توکن باشد، این مقدار روزانه حدود ۲.۵٪ از کل سهمیه ماهانه را مصرف می‌کند.

نتیجه: اگر روزانه ۱۰۰۰ درخواست با ۱۰۰۰ کاراکتر بفرستی، به‌طور میانگین حدود ۲۵۰,۰۰۰ توکن در روز مصرف خواهی کرد.

هزینه‌هامون میشه بر مبنای هزار درخواست و پاسخی که ارائه می‌شه، حدود ۳۰۰ دلار در ماه. 👀
👍2🤯2
COMPΞZ 🧬
برای محاسبه تعداد توکن‌هایی که در روز مصرف می‌کنی، باید چند فاکتور را در نظر بگیری: تعداد درخواست‌ها در روز = ۱۰۰۰ تعداد کاراکترها در هر درخواست = ۱۰۰۰ میانگین نسبت توکن به کاراکتر = تقریباً ۱ توکن به ازای هر ۴ کاراکتر در زبان فارسی و انگلیسی (بسته به متن)…
من چقدر درخواست داشتم روی فریم‌ها در ماه؟ چیزی حدود ۲.۵ میلیون بار در بدترین شرایط بازار، وقتی سوپر ریر بود و بازار هم خوب بود سقف ۱۰ میلیون درخواست رو داشتیم!

خب بذاریم ۱ هزارم همون ۲.۵ میلیون یعنی ۲،۵۰۰ درخواست! 😁 محاسبهٔ ما چقدر بود؟ روی ۱۰۰۰ درخواست! 😝 پس بالای ۷۵۰ دلار در ماه همچین چیزی به شرط ثابت موندن درخواست‌ها آب می‌خوره. 😌
Gm

جسارت اجرایی کردن
ایده‌هایت را داشته باش
جهان پر است
از ترسوهای خوش فکر

https://warpcast.com/compez.eth/0xd357532b
4
👀
COMPΞZ 🧬
👀
وضعیت اتر هیچ جای تعریفی نداره! به خصوص بعد از این کثافت‌کاری‌های که روش انجام شد.
تمام 🤚🏼 اینجا دیگه کف حمایتی روی روند بلند‌مدتیش هست!

نظاره‌گر هستیم...
😢2😐2
COMPΞZ 🧬
👀
تسلط بیت‌کوین هم روی بازهٔ ۱ ماهه.
کاملاً تمایل به غالب شدن به کل بازار رو داره! اگه وارد اون کادری که حدس می‌زنم بشه، یعنی بالای ۷۰٪ تسلط و این یعنی آلت‌کوین‌ها یه کف ریزشی اساسی جدیدی خواهند دید.

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

البته... Rare همین الآن هم تجربش کرده. 😉
👍1