COMPΞZ 🧬
Kanalga Telegram’da o‘tish
متخصص کامپیوتر و نرمافزار • سازنده • هنرمند و طراح • مجموعهدار • نویسنده • تحلیلگر • مشاور استارتاپی و ایدهپرداز 𐎲𐎴𐎠𐎼𐎴𐎫𐎹 𐏃𐎢𐎶𐎠𐎫𐎹 We create because the world deserves better code. https://linktr.ee/compez
Ko'proq ko'rsatishMamlakat belgilanmaganToif belgilanmagan
394
Obunachilar
Ma'lumot yo'q24 soatlar
-47 kun
+2830 kun
Postlar arxiv
394
بزن باران که دین را دام کردند
شکار خلق و صید خام کردند
بزن باران خدا بازیچهای شد
که با آن کسب ننگ و نام کردند
بزن باران به نام هرچه خوبیست
به زیر آوار گاه پایکوبیست
مزار تشنه جوباران پراز سنگ
بزن باران که وقت لایروبیست
394
یعنی خدا شاهده عین فحش ناموسیه این پیامها. دستبردار هم نیستن چرا... 😐 وای چقدر حرص میدن آدمو اینا. اه اه
394
یعنی تپههای آباد نشده نذارید بمونه باشه؟ آبرو نذاشتین بمونه برای ایرانیها.
خدا به دادتون برسه اگه بفهمم کسی از خودمون بوده!
394
و من پذیرفتهام که گاهی ممکن است ما برای آدمها فقط پناهگاهی باشیم تا زمانی که خانهٔ امنی پیدا کنند و بروند. 🤫
394
آدم بعضی وقتها عجیب عصبانی میشه! عجیبها!!!
میدونی آدم برای رسیدن به هرچیزی که میخواد باید تلاش کنه، اما بعضی از تلاشها واقعاً ارزش رسیدن بهش رو نداره! چون تبعیض و حروم لقمگی از همونجا ریشه میزنه!
همینطوری اتفاقی توئیتر بعضی از این برنامهنویسهایی که تحریم بهشون اثر نمیکنه و مدام با صد جور تلفن و حسابهای بانکی از گیتهاب بگیر تا موقعیتشون از هفت دولت آزاد هست رو بررسی میکردم...
رسیدم به چند تا از دوستان خودم که مدام دهنشونو باز میکردن میگفتن همه چیز گل و بلبله! حتی بارها شده بود بهم میگفتن که چقدر ناله میکنی... بارها هم میپرسیدم که خب مگه شما تو این مملکت نیستید پس چطور هیچی بهتون اثر نمیکنه بگین ماهم یاد بگیریم!!! تنها پاسخی که میدادن یه لبخند بود! ولی حالا فهمیدم اون لبخندِ چی بود.
همش برای من سوأل بودها... که خدایا چطور میشه منم تو صنف مهندسی نرمافزار سالها جون کندم توی همین خراب شده سوختم! طرف ۱ هزارم منم مهارت نداره و توی همین مملکت صد برابر من جواب میگیره؟! پس چرا من مدام همه جا گیر میکنم ولی اینایی که من میبینم همشون راحت ده تا پاسپورت با ده جور موقعیت دسترسی و کاری دارن! یه چیزی این وسط میلنگه قطعاً...!
کاملاً اتفاقی با این کار ایلان ماسک قشنگ حسابهاشونو بررسی کردم توی همشون این تصویری که شات کردم رو دیدم!
حالا متوجه شدین جریان چیه و چرا بعضیها واقعاً با ما فرق دارن؟! ولی اینطور نمیمونه... دونه دونه به بدترین شکل ممکن خوار خواهید شد.
از این به بعد هرکسی باهاتون حرف زد اول حساب توئیترش رو بگیرید و بررسی کنید تا بشناسید با چه کسانی در تعامل هستید! دست دوستی دراز کردن به کسی که توی مملکت پر از مشکل هیچ مشکلی نداره و حتی ۱ هزارم مشکلات شمارو نچشیده توهین به شعور و حقانیت خود شماست.
394
حساسترین بخشش هم این قسمته که مشخص کردم.
چه کار میکنه؟
اگر دو سکه بزرگ را روی هم بگذاری و تعدادشان از اندازهٔ ظرف معمولی بیشتر شود،
uint128_t__ حکم یک ظرف بزرگتر را دارد تا همهٔ سکهها در آن جا شوند بدون اینکه چیزی بیفتد. 😝
این یعنی چی؟ یعنی یک «کیف پول دیجیتال فوقالعاده بزرگ» که میتواند میلیاردها یا حتی اعداد با ۷۷ رقم را نگه دارد.
ENJOY!394
این هم یک مثال کلاس uint256 از نحوهٔ مدیریت اعداد بزرگتر از ۶۴ بیت در سیپلاسپلاس که عدد ۲۵۶ بیتی رو با چهارتا
uint64__ به کمک نوع کمکی uint128_t__ شبیهسازی میکنه! بدون نیاز به بوست یا کتابخانههای نوع سوم.
https://gist.github.com/thecompez/90cbf5109baaa98f6b3e3eb6dd032395
اینکه به صورت استاندارد چیزی رو درون زبان ++C قرار ندادن به معنای این نیست که نمیشه!
مطمئن نیستم خطایی یا ایرادی داشته باشه یا نه اما خودم توی جنی ازش استفاده خواهم کرد. 😎394
رابرت کیوساکی (Robert Kiyosaki) نویسنده مشهور کتاب پدر پولدار پدر بیپول، با اعلام پایان دوران معاملات یِن (Yen Carry Trade) نسبت به ترکیدن حباب بازارها هشدار داد و تنها راه نجات سرمایهگذاران را خرید طلا و ارز دیجیتال دانست.
این چهره برجسته حوزه مالی در پلتفرم ایکس (X) نوشت که با تقویت ین ژاپن و افزایش بازده اوراق قرضه در نوامبر ۲۰۲۵، زمان ریزش بزرگ فرا رسیده است و حباب بازارها بهزودی تخلیه میشود. به گفته او سرمایهگذاران باید برای تلاطمهای شدید آماده شوند و داراییهای امنی مانند طلا، نقره، بیت کوین (BTC) و اتریوم (ETH) را جایگزین کنند.
https://news.bitcoin.com/robert-kiyosaki-says-buy-bitcoin-as-yen-carry-trade-forces-bubble-panic/
394
یکی از سوألهایی که به ذهن میاد اینه که چرا در زبانهایی مثل Solidity ما انواع دادهای ۲۵۶ بیتی داریم مثل
uint256 ولی روی ++C با این عظمت نوع ۲۵۶ بیتی نداریم و حداکثر استاندارد تا ۶۴ بیت محاسبه میشه؟
پس چطوری میشه زبانی مثل سالیدیتی رو که با سیپلاسپلاس ساختن یعنی قویتر و دارای قابلیتهای بیشتریه؟
خب این موضوع نیاز به درک دقیق نوع دادهای و نوع هدف زبان داره! اصلاً مقایسش غلطه! شما زبانی که هدفش اجرای مستقیم روی سختافزار داره رو با یک زبان که هدفش اجرا روی شبیهساز نرمافزاری هست رو نباید باهم مقایسه کنید!
در واقع، قدرت و گستردگی یک زبان برنامهنویسی به تعداد بیتهای یک نوع داده محدود نمیشود، بلکه به هدف طراحی و محیط اجرایی آن زبان مربوط است.
زبان ++C روی سختافزار واقعی (CPU) اجرا میشود و بنابراین انواع دادهها محدود به پهنای ثباتهای پردازنده هستند. حتی int128__ هم بزرگترین نوع عدد صحیح native است، چون CPUهای ۶۴ بیتی میتوانند با دو ثبات ۶۴ بیتی آن را مدیریت کنند. ایجاد نوعی مثل uint256 در ++C به صورت native عملیاتی بسیار سنگین و کند خواهد بود و بنابراین در استاندارد لحاظ نشده است.
چون ++C روی سختافزار واقعی (CPU) اجرا میشود و CPUهای معمولی (x86, ARM) ثباتهای ۶۴ بیتی دارند نه ۱۲۸ یا ۲۵۶! الآن مدرنترین پردازندهها همگی دارای ۶۴ بیت ثبات هستند نه بیشتر.
حتی int128__ هم روی ۶۴ بیت CPU پیادهسازی میشود و با ترکیب چند دستورالعمل ۶۴ بیتی شبیهسازی میشود برای همین در داخل خود زبان به عنوان استاندارد جاسازی نشده و از طریق کامپایلرها به عنوان یک داده شبیهسازی شده فراهم میشه.
اگر بخواهید uint256 داشته باشید:
- پردازندهٔ مرکزی مجبور است عملیات را روی ۴ بخش ۶۴ بیتی جداگانه انجام دهد.
- سرعت بسیار پایین میآید، چون تمام عملیات جمع، ضرب و تقسیم باید نرمافزاری شبیهسازی شود.
به همین دلیل ++C استاندارد uint256 ندارد، چون اصلاً هدف پوشش دادن ثباتهای غیر واقعی نیست! خروجیهای برنامهٔ سی++ همگی بر مبنای واقعیت و توان سختافزاری اجرا میشوند.
اما Solidity روی ماشین مجازی اتریوم (EVM) اجرا میشود و هیچ محدودیت سختافزاری ندارد؛ تمام اعداد بزرگ به صورت نرمافزاری روی حافظه مجازی شبیه سازی و مدیریت میشوند. بنابراین میتواند uint256 را تعریف کند و عملیات روی آن را انجام دهد، حتی اگر این عملیات هزینهٔ گس بالاتری داشته باشد. این به معنای قدرت بیشتر نیست، بلکه فقط یک شبیهسازی برای رسیدن به یک بازهٔ عددی در تراکنشهاست، بنابراین هدف اجرای آن فقط پوشش دادن بازهٔ بیشتر است و این کار ربطی به سرعت اجرایی ندارد.
خلاصه Solidity روی EVM (Ethereum Virtual Machine) اجرا میشود، نه سختافزار واقعی. و EVM یک ماشین مجازی است و همه عملیات روی اعداد بزرگ را نرمافزاری انجام میدهد.به عبارت دیگر، Solidity نیازی به محدودیت سختافزاری ندارد و هدفش ذخیرهسازی امن و دقیق مقدار تراکنشها و توکنها روی بلاکچین است. در حالی که ++C هدفش اجرای سریع و بهینه روی CPU واقعی است و محدودیتهای سختافزاری را رعایت میکند تا برنامه با حداکثر کارایی اجرا شود. پس داشتن uint256 در Solidity به معنای قویتر بودن زبان نسبت به ++C نیست؛ بلکه بازتاب نیازهای متفاوت محیط اجرا و هدف طراحی زبان است. سوأل، اگر ما بخواهیم تبدیلات اعدادی بسیار بالای ۲۵۶ بیتی روی سیپلاسپلاس انجام بدیم تکلیف چیه؟ پاسخ! استفاده از کتابخانههای مخصوص این کار مانند BigInt یا استانداردهای تعبیه شده در Boost.Multiprecision گزینههای خوبی هستند. البته باید در نظر داشته باشید این موضوع به صورت بومی (Native) نیست و شما صرفاً یک معادل مشابه Solidity رو میتونید سمت سیپلاسپلاس شبیهسازی کنید؛ دقیقاً همون کاری که توی ماشین مجازی اتریوم شکل میگیره.
394
فقط عاشقان سرعت و متخصصان واقعی نرمافزار میفهمن این پرچمهای تنظیم در کامپایلر چه شتابی به برنامه میده! 🙃
البته همیشه نباید فعالسازی کرد! اما عموماً فعالسازی این چیزی که به موتور اضافه کردم، تعداد و نوع محاسبات (حلقههای سنگین، پردازش تصویر، شبکه، الگوریتمها) رو از ۱۰ تا ۱۰۰٪ میتونه افزایش سرعت و بهینگی بده.
مخصوصاً اون flto که دیگه همه چیرو شخم میزنه.
394
به نظر میاد دلیل کاهش سرعت همراهاول و ایرانسل بعد از ساعات ۲۰:۰۰ به بعد به خاطر عدم افزایش تعرفههاشون باشه! زور زیادی زدن که تعرفه افزایش بدن (با اینکه قیمتها بالاس) اما مشخصه که شدیداً دارن کم فروشی میکنن، کی به کیه سرعت رو بکش پایین مردم کیلو چنده... بیشرفا.
من رسماً چند هفتست الآن هشت به بعد نمیتونم یه فایل ساده رو مثل آدم دانلود یا آپلود کنم.
394
نفسم گرفت از این شهر درِ این حصار بشکن
درِ این حصار جادویِ روزگار بشکن
چو شقایق از دل سنگ برآر رایت خون
به جنون صلابتِ صخره کوهسار بشکن
تو که ترجمان صبحی به ترنم و ترانه
لب زخم دیده بگشا صفِ انتظار بشکن
نفسم گرفت از این شهر در این حصار بشکن
در این حصار جادویِ روزگار بشکن
شب غارت تَتاران همه سو فکنده سایه
تو به آذرخشی این سایه دیوسار بشکن
زبرون کسی نیاید چو به یاری تو اینجا
تو زِ خویشتن برون آ سپه تتار بشکن
سر آن ندارد امشب که برآید آفتابی
تو خود آفتاب خود باش و طلسم کار بشکن
بسرای تا که هستی که سرودن است بودن
به ترنمی دژِ وحشت این دیار بشکن
394
بیایید در مورد fast-path optimization توضیح بدم! حین توسعهٔ کدهای جنی متوجه یه چیز جالب شدم که میشه در هر تراکنش تبدیلات رو سریعتر به پردازشگر و کامپایلر مسیردهی کنیم!
فرض کن داخل یک تابع چند حالت مختلف داریم، ولی ۹۰٪ مواقع فقط یک حالت اتفاق میافته.
مثال واقعی:
if (balance >= cost) {
// این مسیر تقریبا همیشه اجرا میشه → fast-path
pay();
} else {
// این مسیر خیلی کم اتفاق میفته → slow-path
error("Insufficient funds");
}
خب CPU وقتی کد شرطی میرسه، حدس میزنه کد بعدی چی میشه و همزمان اجرای اون مسیر رو آماده میکنه.
- اگر حدسش درست باشه، اجرای برنامه سریعتر میشه.
- اگر اشتباه حدس بزنه، باید عقب برگرده و اجرا کُند میشه.
حالا ماکروی ویژهٔ [[likely]] چی کار میکنه؟ خیلی ساده با اینا دستور به کامپایلر میگم، این مسیر معمولاً درست است، روی این تمرکز کن.
if ([[likely]] balance >= cost) {
pay(); // fast-path → اجرای سریع
} else {
error(); // slow-path → اجرا کمتر
}
در واقع یعنی کامپایلر و CPU بهتر حدس میزنند و branch misprediction کمتر میشه و نتیجش یعنی سرعت بهتر!!!
برعکسش هم میشه همچین چیزی با استفاده از unlikely:
وقتی یک حالت خیلی کم اتفاق میافتد:
if ([[unlikely]] error_occurred) {
log_error();
}
توی مثال تصویر بخشی که دایره قرمز کشیدم، میگه رایجترین حالت این است که واحد مقصد و مبدأ یکسان باشند، پس سریعاً مقدار را برگردان، بدون محاسبه اضافی.
در ادامه بهش میگیم، بیشتر تبدیلها Ether ⇆ Wei است؛ بنابراین این دو مسیر را کامپایلر بهتر optimize کند.
این یعنی CPU شانس بیشتری دارد تا شاخه را درست حدس بزند و پردازش سریعتر انجام شود.
در کاربردهای Web3 معمولاً بزرگترین حجم تبدیلها Wei ⇆ Ether است، پس این انتخاب منطقی است.
با سی++ نوین کدنویسی بسیار خفنتره! سریعتره بدون اینکه بهینهسازی مشکل خاصی ایجاد کنه.394
یک نکتهٔ مهم، اگه برنامهنویسی وب ۳ و یا به خصوص شبکه انجام میدین، به خصوص جاهایی که محاسبات در کار هست؛ مخصوصاً اعداد ارقام مالی؛ مفاهیم یا ویژگی
concepts رو حتماً به کار بگیرید.
برای مثال: این مفهوم در اینجا محدود میکنه که فقط انواع عددی (int, float, double, long double و دامنهٔ مشابهش) قابل استفاده باشند.
به غیر از این کامپایلر اجازهٔ ادامه رو نخواهد داد و برنامهٔ شما کامپایل نخواهد شد.
چیزی که در استانداردهای گذشته اصلاً دیمی بود و احتمال مواجهه با SFINAE بالا بود.
این موضوع در ترکیب ایمنی کدها به شدت مهمه.394
+1
این واژهٔ کلیدی
export روی استاندارد جدید ماژولها به شدت دسترسیپذیری بین ماژولی رو ممکن میکنه! سرعتعمل بیشتر و مدرنیزهتر!
هرچقدر بیشتر بهروز رسانی میکنم بیشتر شیفتش میشم. 😎🫡394
طبق قانون مجازات این مملکت این کار اسمش هست «کلاشی» جرم محسوب میشه.
دو حالت داره:
۱) طبق مادهٔ ۷۱۲ قانون، کسی که تکدی یا کلاشی را «پیشه خود قرار داده باشد» و از این راه امرار معاش کند یا ولگردی نماید به ۱ تا ۳ ماه مجازات حبس محکوم میشه.
۲) طبق مادهٔ ۷۱۳ اگر شخصی از کودکان یا افراد غیررشید بهعنوان وسیله تکدی/کلاشی استفاده کند (یعنی آنها را مجبور یا گماشته باشد)، طبق آن، محکوم به حبس از ۳ ماه تا ۲ سال و استرداد تمام اموالی میشود که از این راه بهدست آورده است.
بنابراین هر کسی، هر فروشگاهی، هر صاحب کسب و کاری اگه با فریب از شما سوء استفاده کنه مجازات داره! حتی اون پدر سوختههایی که توی وب ۳ میان گدایی میکنن و از نیت کمک شما سوء استفاده میکنن به نوعی گدایی میکنن اینا همش جرم هست و اگه کسی واقعاً پیگیری کنه میتونه محکومش کنه.
اینها چیزهایی هستن که مردم بهش آگاهی ندارن و عاملین فساد هم قشنگ دارن باهاش سوء استفاده میکنن؛ فقط به خاطر عدم آگاهی مخاطب.
عصر عصر فناوری هست، هوش مصنوعی و اینترنت دم دستتون قبل از هر چیزی خوبه که تحقیق کنید فریب یه مشت وعده دهنده رو نخورید.
394
+1
نام سایت رو که بنویسید، در ادامه روی سه نقطه کلیک کنید؛ سپس گزینهٔ Feedback رو بزنید.
بعدش Irrelevant content رو انتخاب کن و توش بنویس Scam Shopping و بعد ارسال.
تمام شد رفت. 👋🏼 این کار باعث میشه خیلی تمیز بازدید ارگانیکشون از سمت گوگل افت کنه!
اگه ملت بخوان واقعاً به شرف خودشون احترام قائل باشن این کار پدر سایتهای اینارو در میاره. هیچوقت در مقابل حرکتهای کثیف ساکت نمونیم چون وقتی ساکتی و میگی ولش کن اینا بد عادت میشن و دوباره میان سر مردم کلاه میذارن و جیبشونو با سوء استفاده از مردم پر پول میکنن.
394
خب؛ مثل همیشه جمعهٔ سیاهی که هیچ ربطی به ایران نداره؛ با شعارهایی که این فروشگاههای ایرانی دادن مردم رو برای چندمین بار خر فرض کردن با کلی دروغ و جعل و حقه بازی! یعنی واقعاً محتوای ایرانی که یه جوری به این عنترای سپاه وصله همشون حقهباز و دزد و کلاهبردارن! حتی بعضی از اینفلوئنسرها که حسابی تبلیغشون میکردن هم به غلط کردیم افتادن! میدونی چرا؟ چون همش دروغ بوده! عزیز من توی ایران کاسبان ۱٪ انصاف ندارن چیزی که میفروشن رو با دهها برابر قیمتش میکنن تو پاچهٔ ملت! اونوقت شما انتظار داری که همون بیانصافهای روزگار بیاد با ۹۰٪ تخفیف مالشو بفروشه بهت؟ اصلاً با منطق همخونی نداره! بابا اینا جیب من و شمارو نزنن نخواستیم تخفیف بدن! این انتظارات رو توکشوری که ۹۰٪ کلاهبردارن انتظار نداشته باش ممکن نیست!
دیجیکالا و اسنپ از کثیفترین سیستمهای کلاهبرداری ایرانی هستن به اینها هیچوقت اعتماد نکنید.
چند روزی بود این موضوع هم داغ شده بود مثل دهها و صدها موضوع دیگه که ذهن و وقت و شعور مردم رو به سخره بگیره! تهش چی شد؟ با هایپهای الکی هم وقت مردم رو دزدیدن هم به شعور و شرفشون توهین کردن. من شخصاً کاری که میکنم چیه؟ در ادامه توضیح میدم.
برید وارد گوگل بشید واژهٔ «اسنپ» رو جستجو کنید. نه تنها این هر سایتی که وقتت رو گرفته و بهت دروغ تخفیف و فروش داده. 👇🏼
