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

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

We create because the world deserves better code.

https://linktr.ee/compez
Download Telegram
خیلی حرفه که خانوادهٔ مذهبی افراطی بسیار شدید باشی؛ نه دسترسی به ماهواره و رسانه‌های اونور آبی داشته باشی و نه قدرت خرید اینترنت... چیزی هم که مدام تو مغزت می‌کنن رسانهٔ داخلی باشه ولی با وجود این شرایط بچهٔ ده سالت بیاد بگه دوس نداشتم تو اون شب‌ها پرچم لبنان فلسطین دستم باشه! آخرش که چی؟! مگه خودمون پرچم نداشتیم...؟!

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

شب شیک. 😪
خوشی زده زیر دل اونور آبی‌ها نمی‌دونن به چی اعتراض کنن.

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

کریتوس یه شخصیت با چهرهٔ خشن می‌خواد نه یه دماغ پرچ شدهٔ له و لورده سوسول WWE 😐 حداقل راک رو انتخاب می‌کردین البته اونم کفتار شده دیگه حال نمیدن... 😔 به نظرم حتی این فوووولاد پسر آقاا خشایار خودمون با کله کچل و ریش بلند گزینهٔ بهتری نسبت به باتیستا بود فقط حیف نیم متر قدشه. 😁😄

ببینیم چی در میاد از سریالش امیدوارم گند نزنه به هرچی تصور در موردش دارم.
P1000R8_Cpp29_Schedule_FA.pdf
80.2 KB
در مورد نقشهٔ راه استاندارد C++29 یه سوألی بود که آیا ویژگی‌هایی مثل Networking داخل این ویرایش خواهند بود یا نه؟

قبل از هرچیز باید این رو بدونیم که کارگروه استاندارد‌سازی می‌گه، صرفاً مهم بودن یک قابلیت تضمین نمی‌کند وارد C++29 شود؛ باید تا یک برنامهٔ پایان زمانی (deadline) داشته باشد و ویژگی مربوطه واقعاً آماده‌‌ٔ استانداردسازی باشد، وگرنه می‌تواند به C++32 منتقل شود. 😉

مستند «برنامه زمانبندی پیشنهادی استاندارد بین‌المللی سی‌پلاس‌پلاس» هم به فارسی ضمیمه شد.

مناسب برای کسانی که می‌خوان بدونن نقشهٔ راه استاندارد بعدی چی هست. 👋🏼

#cpp #isocpp #cppfeatures #pdf
محو جزئیات برنامه‌نویسی توی سری جدید سالینت هیل بازی مورد علاقم شدم.

بعد از سال‌ها کونامی تونسته بدون اسطورهٔ اعظم (کوجیما) چیزی خلق کنه که بهش بگی آ باریکلا، این شد یه چیزی 😐 البته بخش بزرگی از این عظمت به خاطر Unreal Engine هست و خب می‌دونیم که پشت همهٔ این‌ها چی خوابیده.

https://www.youtube.com/watch?v=ueCeXnq4HOQ

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

اون رادیو که یکی از اشیاء بسیار پر خاطرهٔ من هست تقریباً توی همه سری‌های سایلنت هیل از نسخه ۱ تا به کنون ازش خاطره دارم! و حالا رادیو رو تبدیل کردن به یک ابزار بسیار کاربردی! چطور به ذهنش رسیده توی موج‌های رادیو تصویری از حضور دشمناش رو بسازه.


ساختن چنین جزئیاتی حاصل معماری‌های ترکیب‌پذیر و سیستم‌های مستقل در موتورهای مدرنه؛ جایی که OOP، Composition و در بعضی بخش‌ها معماری‌های Data-Oriented یا ECS می‌تونن کنار هم قرار بگیرن که قدرت سی++ رو داره به تصویر می‌کشه.

توی مرجع رسمی راهنمای زبان در قانون C.10 می‌گه concrete typeها رو به class hierarchy ترجیح بده و صریحاً توصیه می‌کنه وقتی داشتن یک data member کافی است، بی‌دلیل inheritance نسازید.

حتی cppreference در بخش Derived Classes درباره Composition می‌گه استفاده از یک member object معمولاً encapsulation بهتری نسبت به استفاده از inheritance برای این منظور فراهم می‌کنه.

https://en.cppreference.com/cpp/language/derived_class

و یک منبع آموزشی خیلی سرراست هم از دوره++C دانشگاه Oxford وجود داره که دقیقاً عنوانش Inheritance and Composition است و همین تفاوت is-a و has-a را درس می‌دهد. 

Oxford RSE — Inheritance and Composition in C++

تعریف ساده‌اش می‌شه همچین چیزی:

ساختن یک شیء یا سیستم از کنار هم قرار دادن چند جزء مستقل.


مثلاً به جای اینکه همچین کلاسی داشته باشیم:

class Enemy : public Signal

که خود کلاس دشمن از کلاس سیگنال ارث‌بری کنه؛ بهش می‌گیم دشمن یک قابلیت تولید سیگنال دارد نه اینکه خود دشمن یه سیگنال باشه و رادیو می‌تونه اون سیگنال رو دریافت کنه.

یعنی همچین چیزی:

const Enemy enemy;

if (enemy.signal().strength() > 0.5F) {
// Show enemy presence on CRTV.
}


اینجاست که می‌گیم شیء Enemy یک کلاس مشتق شده کلاسیک نیست بلکه متشکل از جزئیات بسیار است مثل

حرکت + جان + هوش مصنوعی + سیگنال


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

این یعنی همون مفهوم Composition ترکیب‌سازی.

#cpp #software #oop #ecs #composition
COMPΞZ 🧬
توی مرجع رسمی راهنمای زبان در قانون C.10 می‌گه concrete typeها رو به class hierarchy ترجیح بده و صریحاً توصیه می‌کنه وقتی داشتن یک data member کافی است، بی‌دلیل inheritance نسازید.
نوع‌های عینی (Concrete Types) را به سلسله‌مراتب کلاسی ترجیح دهید!

یک نوع عینی ذاتاً از نوعی که در یک سلسله‌مراتب کلاسی قرار دارد ساده‌تر است.

طراحی آن آسان‌تر است، پیاده‌سازی آن آسان‌تر است، استفاده از آن ساده‌تر است، استدلال دربارهٔ رفتار آن راحت‌تر است، حجم کمتری دارد و سریع‌تر است.

برای استفاده از یک سلسله‌مراتب کلاسی باید دلیل مشخص و مورد استفادهٔ واقعی داشته باشید.

اگر یک کلاس بخشی از یک سلسله‌مراتب باشد، معمولاً در کد واقعی، هرچند نه لزوماً در مثال‌های کوچک مجبوریم اشیای آن را از طریق اشاره‌گرها (pointers) یا ارجاع‌ها (references) مدیریت کنیم.

این موضوع معمولاً به معنای موارد زیر است:

- سربار بیشتر حافظه
- تخصیص و آزادسازی بیشتر حافظه
- سربار بیشتر در زمان اجرا، به‌دلیل دسترسی‌های غیرمستقیم (indirection)
باید در خودت، یک گوشه‌ای از وجودت، آدمی ساخته باشی که در روز‌های سخت نیازی به پناه بردن به هیچ‌ کس و هیچ‌ کجا نداشته باشی.
سلام و درود بر هفت جد و خاندانتون!😐

تقریباً الآن ۱ ماه هست روی پروتکل OpenProof کار می‌کنم، بدون سرو صدا که بخش مهمی از محصولات آیندهٔ‌ ماست و امروز به مرحلهٔ اجرای آزمایشی رسید.

حالا چی هست و چرا ساختمش؟
تقریباً هر محصول نرم‌افزاری با یک مسئلهٔ مشترک روبه‌روست: کاربر کیست، چگونه هویتش را اثبات می‌کند و تا چه حد باید به او اعتماد کرد؟

اوپن پروف یک زیرساخت Identity & Trust مبتنی بر  C++26 است که Authentication، OAuth/OIDC، Session، Token، Organization، Policy و Evidence/Trust را در یک معماری واحد ارائه می‌کند.

هدف OpenProof ساده است:

یک لایهٔ استاندارد، سریع و قابل‌اعتماد برای مدیریت هویت، اثبات و دسترسی در نرم‌افزارهای نوین.

در این پروتکل ما نمی‌گوییم:
Who's this user?

بلکه می‌گوییم:
1) Who is this actor?
2) How was it authenticated?
3) What evidence supports that identity?
4) What device is it using?
5) How much should I trust this assertion?
6) Is this operation permissible right now
COMPΞZ 🧬
سلام و درود بر هفت جد و خاندانتون!😐 تقریباً الآن ۱ ماه هست روی پروتکل OpenProof کار می‌کنم، بدون سرو صدا که بخش مهمی از محصولات آیندهٔ‌ ماست و امروز به مرحلهٔ اجرای آزمایشی رسید. حالا چی هست و چرا ساختمش؟ تقریباً هر محصول نرم‌افزاری با یک مسئلهٔ مشترک روبه‌روست: کاربر…
در واقع OpenProof یک زیرساخت یکپارچه برای Identity, Authentication, Trust and Authorization است که به‌جای ساختن چندین سیستم پراکنده، هویت، دسترسی و اعتماد را در یک معماری واحد جمع می‌کند.

این پلتفرم هم OAuth/OIDC و Session/Token را پوشش می‌دهد، هم ارائه کننده‌های مختلف را پشت یک identity مرکزی مدیریت می‌کند، و هم لایهٔ Evidence/Trust را به تصمیم‌گیری دسترسی اضافه می‌کند.

برای مثال احراز هویت چنین ترتیبی داره:

OpenProof Architecture
Providers
(Google, Apple, GitHub, Passkey, Wallet, Farcaster, LDAP, SAML)

Trusted Authentication

Canonical Identity

Organizations / Memberships / Roles

OAuth / OIDC / Sessions / Tokens

Evidence & Trust

Policy & Gateway

Secure Access Decision
COMPΞZ 🧬
در واقع OpenProof یک زیرساخت یکپارچه برای Identity, Authentication, Trust and Authorization است که به‌جای ساختن چندین سیستم پراکنده، هویت، دسترسی و اعتماد را در یک معماری واحد جمع می‌کند. این پلتفرم هم OAuth/OIDC و Session/Token را پوشش می‌دهد، هم ارائه کننده‌های…
اگر دقت کرده باشید، من حتی در پروژه‌هایی مثل GenyConnect عمداً هنوز بخش حساب کاربری و احراز هویت را به شکل مستقل پیاده نکرده‌ام. دلیلش ساده است: نمی‌خواستم هر محصول، سیستم هویت خودش را داشته باشد و دوباره همان مسئله را از صفر حل کند.

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

مثلاً اگر کاربری از قبل در اکوسیستم Geny سابقه، هویت یا حساب متصل دارد، یا در پروتکل‌هایی مثل فارکستر شناخته شده است، نباید برای استفاده از Tegra، CMS، CRM یا هر محصول دیگری دوباره یک حساب و پروفایل کاملاً جدید بسازد و تمام سوابق و هویت او در آنجا از بین برود!

هویت باید قابل حمل باشد، اما سطح دسترسی و نقش کاربر در هر محصول همچنان مستقل و کنترل‌شده باقی بماند.

این مسئله در ظاهر ساده است، اما در مقیاس سازمانی تبدیل به یکی از پرهزینه‌ترین بخش‌های معماری می‌شود. اگر یک مجموعه ده محصول داشته باشد و هر محصول سیستم Login، Session، Token، MFA، Role، Recovery و Policy خودش را بسازد، عملاً ده بار یک مسئله امنیتی حساس را طراحی، نگهداری و بازبینی کرده است.

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

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

این همان مسئله‌ای بود که باعث شد OpenProof را بسازم و ازش راضیم بندهٔ خداااا راضیم! 😎
COMPΞZ 🧬
اگر دقت کرده باشید، من حتی در پروژه‌هایی مثل GenyConnect عمداً هنوز بخش حساب کاربری و احراز هویت را به شکل مستقل پیاده نکرده‌ام. دلیلش ساده است: نمی‌خواستم هر محصول، سیستم هویت خودش را داشته باشد و دوباره همان مسئله را از صفر حل کند. هدف این بود که اول یک زیرساخت…
هستهٔ مرکزی پروتکل با سی++ هست تمام سعیمو کردم تا پایه اساسش از همین ابتدا با به‌روز ترین فناوری‌ باشه، از عمق جزئیات گرفته تا تأخیر پایین در درخواست‌های بسیار حجیم، سرعت بسیار بالا و راندمان عالی و طبیعتاً مصرف بسیار بسیار بهینهٔ منابع که در حجم سازمانی بسیار هزینه‌ها رو کاهش خواهد داد؛ اما محدود به زبان نیست، خیلی راحت می‌شه در خروجی زبان‌های دیگه روی هر پلتفرمی که هستیم استفاده بشه.

زبان‌هایی که در توسعش استفاده کردم:

C++ STL (20, 23, 26), Boost, JavaScript

البته برای اولین بار هم به صورت جدی از بوست استفاده می‌کنم، نخواستم وابستگی به cURL ایجاد کنم؛ مستقیم boost.asio و boost.beast استفاده کردم که بعداً شاید این بخش شبکه رو در استاندارد‌های C++29 بتونیم روی STL به‌روز رسانیش کنیم.
من هیچ فکری در خصوص بازار نمی‌کنم. 😊 بیشتر از ۹ ماهه حتی یه تراکنش معاملاتی هم نداشتم.

کلاً مسیرم یه چیز دیگست، بازار رو می‌بینم اما نه برای خرید و فروش.
لعنت بهت بیاد ستار با این فیلترنتت 😐
COMPΞZ 🧬
من هیچ فکری در خصوص بازار نمی‌کنم. 😊 بیشتر از ۹ ماهه حتی یه تراکنش معاملاتی هم نداشتم. کلاً مسیرم یه چیز دیگست، بازار رو می‌بینم اما نه برای خرید و فروش.
هرجوری بپرسید می‌ذارمش کانال. 😉
هیچ تعارفی با کسی نداریم 😒 اگه قراره سیگنال بدم به همه میدم پارتی بازی هم نداریم.
🙂
COMPΞZ 🧬
🙂
راست می‌گه دیگه عقب مونده‌ایم. هر روز از خدامونه کاش یه ثانیه قبل بود! کاش ۵۰ سال پیش بود! 🥴 چرا بهم باید بر بخوره؟ راست می‌گه والا!

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

اول اینکه، فارسی صحبت کردن و فارسی نوشتن رو یاد بگیرید بی‌سواد‌های ابله! هرچیزی نوشتی غلطه! نشد یه بار ببینم یکی از شماها حتی درست حرف زدن رو هم‌ بلد باشه 🙂! آخه زبونتون هم فارسی نیست برا همین همیشه غلط املائی دارید! بقیه رو ابله و عقب مونده خطاب می‌کنید ولی خودتون یه ذره سواد نوشتن هم ندارید مشخصه ابله کیه.☝🏼

دوم، اینکه نوشتی من از نسل حسینم! یادت باشه شماها رو هیچ‌وقت امام حسین (ع) گردن نمی‌گیره، خودتونو نچسبونید به اونا و نه به شهدای ۸ سال دفاع مقدس! هیچ‌وقت که اگه امثال باکری‌ها بودن الان شما اجازه اینطور وقاحت ‌بازی‌هارو نداشتین.

و اینکه اعتراف می‌کنید ایرانی نیستید خوبه، توی این یک‌ مورد خوشم اومد صادقین! اما من مطمئنم از نسل یزید و‌ شمر ‌ملعون هستید در این شکی نیست. 👋🏼

سوم،‌ عنترای کثافت، بالای ۶۰ درصد مردم الان زیر خط فقر هستن سگ‌ پدر‌ بی همه چیز. از کدوم مفت‌خوری صحبت می‌کنی حروم لقمه؟ مفت‌خور ملتن یا مفت خور شماهایی که برای یه کیسه برنج و‌ روغن عر عر می‌کنی؟ بیا برات تلاش کردن رو نشون بدم زر نزنی واسه ما. صبح تا شب عین سگ داریم از خودمون بی‌گاری می‌کشیم یا برقمون قطعه یا نتمون تهشم هشتمون گرو نهمون! چقدر شماها پر‌رو‌ زبون درازو پست فطرتین.

اینکه ملت نمی‌خوان مثل شما با رانت و حقه بازی و حروم خوری و کلاه‌برداری زندگی کنن می‌شن مفت‌خور؟

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

چهارم، ابله تویی و هفت نسل اندر نسلته، ابله شماهایی هستین که یه مملکت رو ویران کردی یه ملتو به خاک سیاه نشوندین دست به هر کثافتی هم میزنید تا به دنیا ثابت کنید بهترین مخلوقات خدا روی زمین هستید.

پنجم، ابر قدرت شدن؟ شما ابر قدرت بشید؟ کی گفته که توئه مغز پهن باید ابر قدرت بشی؟ کی گفته که تو لیاقتشو داری؟

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

ششم، که مردم حاضرن نون خالی بخورن ولی دشمن رو نابود کنن!؟ جدی!؟

مطمئنی دشمن ما شما نیستی؟ از اون کله زرد قرووومساق املاکی گرفته تا شما عرب‌زاده‌های غارت‌گر همتون به خون ایرانی جماعت تشنه‌اید و در این شکی نیست، خودتونو هیچ‌وقت دوست خطاب نکنید! شماها خیلی وقته دوست مردم ایران نیستید و هیچ وقت هم نمی‌تونید دوست این مردم باشید چون دیگه ثابت کردین که چه جونورایی هستین.

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

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

ایت تخوملاره.
COMPΞZ 🧬
راست می‌گه دیگه عقب مونده‌ایم. هر روز از خدامونه کاش یه ثانیه قبل بود! کاش ۵۰ سال پیش بود! 🥴 چرا بهم باید بر بخوره؟ راست می‌گه والا! ولی من به شما عنترا جواب ندم نمی‌شه چون توهین کردنتون انگار تمومی نداره و اگه کسی چیزی بهتون نمی‌گه از روی بدبختی نیست از…
ابر قدرت شدن تاوان داره… فکر کردن ایران همون ایران چند هزار سال پیشه که با غیرت و علم و شکوه به قدرت رسیده بود!

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

عین این بچه‌های زبون نفهم بی‌تربیت که زبون نمی‌فهمه میگه به زور باید به من بگید ابر قدرت! ولی حتی نمی‌تونه کثافته دماغشو بالا بکشه.

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

نه تویی که از اونور خزرو بدی بره، از اینور جنوبو‌ بدی بره از اونطرف تنگه‌رو بی ارزش کنی بعد بگی کار من نبود کار قبلیا بود!

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

نشستین مفت مفت می‌خورید توهم زدین رسما.

ابر قدرتیم…. آره چقدرم قدرتمندیم آدم افتخار می‌کنه به قدرت و ابوهتش!
COMPΞZ 🧬
راست می‌گه دیگه عقب مونده‌ایم. هر روز از خدامونه کاش یه ثانیه قبل بود! کاش ۵۰ سال پیش بود! 🥴 چرا بهم باید بر بخوره؟ راست می‌گه والا! ولی من به شما عنترا جواب ندم نمی‌شه چون توهین کردنتون انگار تمومی نداره و اگه کسی چیزی بهتون نمی‌گه از روی بدبختی نیست از…
نمایی از ابر قدرت جهان. 🫵🏼

با هیچ روش تحلیلی با هیچ منطقی نمی‌شه گفت حتی ۱ ساعت شما در حال پیشرف بودین همیشهٔ خدا گنده گویی زدین همیشه خدا هم پس‌‌رفت.

این دیگه نمودار واضح قدرت اقتصاد کشورمونه که یه زمانی جز قدرتمند‌ترین‌ها بود. 👋🏼

جایی برای بحث نیست، صحبت تمام.
آدم‌ها با تربیت تغییر نمی‌کنن؛ ذات آدم ثابته.☝🏼کسی که شروره، کسی که گناه‌کاره، هرچقدر هم توی محیط خوب قرار بگیره، هرچقدر هم با سواد باشه هر چقدر هم پولدار ‌باشه، یه جایی شرارت خودش رو نشون میده!

می‌گه: درختی که تلخ است پی را سرشت
اگر بر نشانی به باغ بهشت

ور‌ از جوی خلدش به هنگام آب
به بیخ انگبین ریزی و شهد ناب

سرانجام گوهر با کار آورد
همان میوهٔ تلخ به بار آورد

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

ذاتش عوض نمی‌شه!