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

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

We create because the world deserves better code.

https://linktr.ee/compez
Download Telegram
COMPΞZ 🧬
افزونهٔ ChatGPT از ++C به‌روز رسانی شد. ✔️ https://chatgpt.com/g/g-68795c2e54ac81918a63dbdf1b452076-modern-c این افزونه به صورت پیش‌فرض از استاندارد‌های جدید زبان استفاده می‌کنه؛ همچنین توصیه‌های Core Guideline به عنوان بخش مهمی در روند تولید کد در نظر می‌گیره.…
خب این افزونه رو باز هم به‌روز رسانی کردم.

در نسخهٔ جدید، دستورالعمل‌ها دقیق‌تر و سخت‌گیرانه‌تر شدن؛ مخصوصاً برای چیزهایی که در تولید کد با AI خیلی مهم‌اند:

- استفاده از استانداردهای جدیدزبتم مثل C++20، C++23 و در صورت نیاز C++26
- استفاده از C++ Modules به جای ساختارهای قدیمی مبتنی بر header
- استفاده از CMake مدرن، مخصوصاً نسخه‌های جدیدتر مثل CMake 4.x
- رعایت توصیه‌های C++ Core Guidelines
- نوشتن کد ایمن‌تر، خواناتر و قابل نگه‌داری‌تر
- توجه به طراحی درست API
- استفاده از توضیحات Doxygen در جاهایی که لازم است
- جدا کردن درست تعریف‌ها و پیاده‌سازی‌ها با ساختار ماژولار
و مهم‌تر از همه: حساسیت روی نام‌گذاری‌های اشتباه و وصله‌پینه‌ای

https://chatgpt.com/g/g-6a4a5321aa6c81919db8ad13b87530d8-modern-c

برای همین من این افزونه رو طوری تنظیم کردم که از همان ابتدا، زبان را با نگاه مدرن‌تر و حرفه‌ای‌تر جلو ببرد. ✔️😊

برید کیف کنید.
Please open Telegram to view this post
VIEW IN TELEGRAM
COMPΞZ 🧬
یکی رو سیمون ساخته که از کمیتهٔ استاندارد‌سازیه. یکیشم خودم ساختم! خوبه از همین استفاده کنید حال کنید. خوبیش اینه که به فارسی هم درک درستی داره چون از من آموزش دیده. 😎
یک خوبی دیگه اینه که علاوه بر نمونهٔ CMake، آخر کدش توصیه به نسخهٔ سنتی رو هم میده.

اینارو بدین به اون اساتید دانشگاه بی‌سوادتون که حداقل ازاین سی++ ۹۸ بکشن بیرون.

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

«بابا زیاد کمال‌گرایی نکن، یه چیزی سرهم کن بیاد بالا، زودتر پول بشه بچسبونیم به درد و بدبختیامون.»


این حرف‌ها تا حدی درسته ولی قوائد مهندسی این چیزا حالیش نیست.

کد شلخته و عجله‌ای یعنی یه نقطهٔ کور توی سیستم درست کردی؛ یه جایی که بعداً نمی‌فهمی با تغییر دادنش چی قراره بترکه.

یکی از زیبایی‌های معماری تگرا همینه که هر بخشش باید جداگانه قابل ساختن، تست کردن، توسعه دادن و حتی جایگزین کردن باشه. آره، زمان می‌بره؛ ولی بعداً جلوی کلی هزینه و دردسر رو می‌گیره.

مثلاً اگه فردا سیستم جستجوی تگرا نیاز داشت کامل عوض بشه، نباید مجبور بشیم کل CMS رو زیر و رو کنیم. وقتی معماری درست باشه، همون بخش رو جدا تغییر می‌دی، تست می‌کنی، جایگزین می‌کنی و بقیهٔ سیستم هم سر جاش می‌مونه.

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

این کمال‌گرایی نیست؛ این اصول معماریه.

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

تگرا باید از اول با همین نگاه ساخته بشه:
ظاهرش تمیز، معماریش دقیق، اجراییش قابل اعتماد.

این چیزارو باید کرد تو مغز اونی که با AI هوا هوا می‌کنه فکر می‌کنه چون یه خروجی گرفته پس شده طراح!
والاما سال‌ها درسشو باید بخون اینطوری نیست که چون یه چیزی اجرا میشه پس مناسبِ یک محصول شدن هست.

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

کدهایی که می‌نویسد، اگه مهندسی نباشن اکثر مواقع یک ریال هم ارزش ندارن! حالا بماند اون بدبختی که پول میده بهش رو چطور خر فرض کردین، بیچاره مشتری...
COMPΞZ 🧬
خب این افزونه رو باز هم به‌روز رسانی کردم. در نسخهٔ جدید، دستورالعمل‌ها دقیق‌تر و سخت‌گیرانه‌تر شدن؛ مخصوصاً برای چیزهایی که در تولید کد با AI خیلی مهم‌اند: - استفاده از استانداردهای جدیدزبتم مثل C++20، C++23 و در صورت نیاز C++26 - استفاده از C++ Modules…
دستم خورد کل GPT برای سی++ رو حذف کردم! نه پیامی نه هشداری!!!

هیچ راه بازیابی نداشت مجبور شدم مدل رو دوباره بسازم!

لینک جدید:

https://chatgpt.com/g/g-6a4a5321aa6c81919db8ad13b87530d8-modern-c

یکم باهاش چت کنید توی فهرست بیاد بالا 😑

در کل این GPT App چیز خوبیه! به عنوان استاد یا کسی که می‌تونید آموزشی بدین می‌تونید مدل رو آموزش بدین بقیه ازش سوال کنن!

عین یه منتور :) چیزای جالبی دارم پیدا می‌کنم.
COMPΞZ 🧬
دستم خورد کل GPT برای سی++ رو حذف کردم! نه پیامی نه هشداری!!! هیچ راه بازیابی نداشت مجبور شدم مدل رو دوباره بسازم! لینک جدید: https://chatgpt.com/g/g-6a4a5321aa6c81919db8ad13b87530d8-modern-c یکم باهاش چت کنید توی فهرست بیاد بالا 😑 در کل این GPT App چیز…
از این تمیز تر چی می‌خوای!؟ بدون هیچ توضیح اضافه همه چیرو به‌روز شده می‌نویسه واست.

بدون حاشیه! متمرکز بر روی همین مبحث و عنوان البته آشنا و تعالیم دیده در‌مورد جنی و جنی‌لیپ.

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

مشکل راست به چپ شدنش هم حل شد! مثلا توی فارسی دیگه نمی‌نویسه C++ می‌نویسه ++C.

اینارو باید حالیش می‌کردم.

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

خبر خوش اینکه از همون نسخهٔ ابتدایی زبان‌ها رو بر مبنای استاندارد پشتیبانی می‌کنه.

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

۱) محتوای درون بانک اطلاعاتی، مثل خبر، لینک، عنوان، موضوع یا هر چیزی.
۲) محتوای درون سیستمی، مانند استثناء‌ها، پیام‌ها یا هر چیزی که به عنوان یک پیام از سمت سیستم ساطع می‌شه.
۳) پشتیبانی از هوش مصنوعی و مدل مشخص (سفارشی شده) در بخش مدیریت که اجازه خواهد داد در کمترین زمان مملکن محتوا رو به زبان مورد نظر ترجمه کنه.

هر سه بخش به ترتیب از روی لینک‌های درون سیستمی تحت فایل json تجزیه می‌شن و محتوا در درون جداول دیتابیس مربوط به هر ماژول نگه‌داری می‌شه.

یک موردی هم که در نظر دارم پشتیبانی از سیستم هوشمند صوتی هست و پوشش دادن یک سری محتوا مختص نابینایان و نا شنوایان. این بخشش پیچیدست ولی توی برنامه خواهیم داشت.
COMPΞZ 🧬
امروز بخش مدیریت زبان و محتوای تگرا کمی پیچیدگی داشت! چون یکی از مهم‌ترین بخش‌های مدیریت محتواست. خبر خوش اینکه از همون نسخهٔ ابتدایی زبان‌ها رو بر مبنای استاندارد پشتیبانی می‌کنه. این ویژگی به عنوان یک بخش مهمی از هستهٔ سیستم هست که اجازه میده بخش‌های مختلف…
ساختار سادست، فرض بگیریم چنین کدی خواهیم داشت:

auto key = MessageKey::parse("content.slug.conflict");

این درون سیستم به هیچ محتوا یا متن صریحی اشاره نداره، صرفاً یک کلید دسترسی به یک رشتهٔ مشخص در مسیر مشخصه.

سیستم صد در صد به صورت پویاست.

ساختار فایل JSON:
{
"content": {
"slug": {
"conflict": "The slug \"{slug}\" is already used."
}
}
}

نمونه مسیری از ساختار فایل‌های ترجمه:
locales/
en/
core.json
content.json
fa/
core.json
content.json

مثال از ساختار هدایت کننده در پیوند‌ها:
eng
en
fa
per
fa-IR
en-US
en-us
zh-Hant-TW

https://yourwebsite.com/en-us/news
https://yourwebsite.com/fa-ir/news
https://yourwebsite.com/fa-ir/خبر
https://yourwebsite.com/fa-ir/دربارهٔ-ما

این موضوع در بحث SEO سازی به زبان موقعیت جغرافیایی و زبان سیستم مهمه.
همچنین رشته‌ها به یونیکد ترجمه می‌شن تا از نظر زبان انسانی قابل درک‌تر باشه؛ هرچند در پس زمینه به کد‌های سطح پایین‌تر تبدیلشون می‌کنم.
در مورد جنی یه سوألی پرسیدن دوستان که ایردراپ‌های جنی همونی بود که قبلاً دادیم؟ دیگه خبری نیست؟

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

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

موضوع ایردراپ برای توزیع ۳۰ میلیون واحد توکن هم برنامه‌ریزی می‌شه ولی نه به صورت الکی! برانمش از قبل مشخصه، در یک بازهٔ ۲۴ ماهه قابل توزیعه و نه یک‌باره.

انقدر توکن داریم که بخوایم برای هر تک به تکش برنامه‌ریزی کنیم. خیالتون راحت.

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

بین این فاز‌ها، GenyConnect نسخهٔ پرمیوم و بخشی از GenyDL هم اضافه خواهد شد که فقط با هولد توکن قابل استفادست. فعلاً همه چیز در حال آزمایشه...
گفتم که درستش می‌کنم! 😎 بچم‌ برگشت تو لیست. 🫡

حالا دیگه مشکل عدم نمایشی روی وارپلت نداره.
COMPΞZ 🧬
ساختار سادست، فرض بگیریم چنین کدی خواهیم داشت: auto key = MessageKey::parse("content.slug.conflict"); این درون سیستم به هیچ محتوا یا متن صریحی اشاره نداره، صرفاً یک کلید دسترسی به یک رشتهٔ مشخص در مسیر مشخصه. سیستم صد در صد به صورت پویاست. ساختار فایل JSON:…
این هم نمونه‌ای از نحوه‌ٔ ادغام داده‌های بک‌اند با قالب‌های فرانت‌اند در Tegra CMS.

سعی کردم سینتکس قالب‌نویسی چیزی شبیه Django باشد؛ ساده، قابل فهم و تمیز.

ایده اینه که بک‌اند داده‌ها را آماده می‌کند، سپس Template Engine آن داده‌ها را با HTML ترکیب می‌کند و خروجی نهایی صفحه ساخته می‌شود.

در این مدل می‌توانیم فایل‌های جداگانه مثل header یا footer را include کنیم، شرط بگذاریم، روی لیست‌ها loop بزنیم، متغیرها را داخل HTML نمایش دهیم و حتی کامنت‌های مخصوص template داشته باشیم که در خروجی نهایی HTML ظاهر نمی‌شوند.

هدفم این بوده که لایه‌ٔ قالب‌نویسی هم ساده باشد، هم امن، هم قابل نگهداری؛ بدون اینکه تبدیل به یک زبان برنامه‌نویسی کامل و پیچیده داخل HTML شود.

به زبان ساده یعنی:

۱) بک‌اند سمت ++C داده را می‌سازد.
۲) قالب (موتور قالب‌سازی سمت ++C) آن را نمایش می‌دهد.
۳) خروجی نهایی، HTML تمیز و قابل کنترل است.

برای CMS این بخش پایهٔ یک سیستم رندرینگ سبک، قابل توسعه و شبیه Django-style template engine هست هرچند من به دنبال یک مدل قوی‌تر نسبت به نمونه‌هایی هستم که قبلاً تجربش کردم.
COMPΞZ 🧬
گفتم که درستش می‌کنم! 😎 بچم‌ برگشت تو لیست. 🫡 حالا دیگه مشکل عدم نمایشی روی وارپلت نداره.
سوأل جالبی بود!

خب جنی بر پایهٔ شبکهٔ Base هست (با کمترین کارمزد و سریع‌ترین تراکنش) و کاملاً غیر متمرکزه!

هیچ وابستگی‌ای هم به فارکستر نداره (فارکستر فقط یه شبکه اجتماعی غیرمتمرکزه که تمام سعیمون اینه که باهاش ادغام بشه).

هر پلتفرمی که غیرمتمرکز باشه اینو پشتیبانی می‌کنه.

https://basescan.org/address/0x2a3d6f8c1fc4AcDcf3A75d19b445bae02F03676B

استخرش رو اون زمان روی Uniswap v4 بالا آوردم.

https://app.uniswap.org/explore/tokens/base/0x2a3d6f8c1fc4AcDcf3A75d19b445bae02F03676B

قبل از هر چیز باید روی صرافی coingecko لیستش کنم به وقتش.