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
خب کمال‌گرایی در این حد توی این فاز کافیست! اصولاً برای اینکه ماست مالی کنن میان با worker و یه شبیه‌سازی ساده‌تر قضیه رو می‌بندن! ولی مهم بود که native از خود سیستم‌عامل کمک بگیریم.

حالا بخش دیتابیس تگرا تقریباً به حد کافی non block I/O شده و این برای پیشروی بخش‌های بعدی عالیست.
COMPΞZ 🧬
بعضی از دوستان میرن فارکستر، وارپلت رو باز می‌کنن می‌بینن جنی‌هاشون نیست زهره ترک می‌شن! 😄 نترسید قبلاً که گفتم باگ فارکستره! همه چیز جاشه فقط وارپلته که مشکل نمایشی داره. کافیه کیف فارکستر رو کلیدواژه‌هاش رو بدین به Rabby یا Metamask خواهید دید جنی‌های نازنینتون…
گفتم که پیگیرش هستم!😎

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

به هر حال ازم کلی مدارک خواستن که احراز هویت کنن که سازندهٔ توکن خودمم یانه! تمام مدارک و سورس کدها به علاوهٔ ممیزی و خود قرارداد رو زیر رو کردن تا ثابت کنم الکی نیست!

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

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

خلاصه که کوروش بزرگ دمش گرم! ✔️
با حل شدن این موضوع تا ۲۴ ساعت آینده انتظار دارم مشکل نمایشی فارکستر هم حل بشه.

حالا تو فکرشو بکن این موضوع دست امثال آروان باشه! مگه تو می‌تونی جواب بگیری؟ مگه به تیکتت جواب میدن اصلاً!

حالا دلیل اینکه تأیید شد می‌دونید چیه؟
عظمت گیت‌هاب! و سورس کد و کاغذ سفیدی که به اون دقت و با اون کمال‌گرایی نوشته بودم.

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

اینهمه مستندات فنی الکیه مگه من چند ماه روش زحمت کشیدم.

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

خلاصه که ما ایرانی‌ها هر روز یه داستان داریم. ملت که این چیزارو نمی‌بینن می‌گن بابا همه چیز راحته! نه بابا هر روز یه بدبختی پشت سر تلاش‌هامون هست و این چیزارو باید توی کمال‌گرایی بهش بپردازی.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
وقتی می‌گم کدی که هوش مصنوعی تولید می‌کنه حتماً باید توسط یک متخصص بررسی بشه، منظورم دقیقاً همین چیزهاست.

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

مثلاً این کد رو ببینید:
enum class HttpMethod {
get,
head,
post,
put,
delete_,
patch,
options,
trace,
connect,
unknown,
};

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

چرا؟ چون کلمات کلیدی خود هستهٔ زبان مثل delete، class، concept، requires، module، import و export با حروف کوچک نوشته می‌شن. وقتی شما مقدارهای یک enum رو هم با همین سبکِ حروف کوچک می‌نویسید، احتمال برخورد با کلمات کلیدی زبان بالا می‌ره.

راه حل هوش مصنوعی اینه که میاد یه همچین مزخرفی تولید می‌کنه:
delete_

این چیه آخه بی‌شعور! این چه سبک کد نویسه! خب به این حساس شده چون می‌دونه کلمهٔ کلیدی delete برای آزاد کردن حافظه و حذف کردن شیء استفاده می‌شه.راه‌کارش این بوده که یه _ جلوش بذاره! خاککک عالم بر سرت.

درستش اینه برای enum class که خودش محدودهٔ مشخص داره، شکل تمیزتری داشته باشیم مثل این:
enum class HttpMethod {
Unknown,
Get,
Head,
Post,
Put,
Delete,
Patch,
Options,
Trace,
Connect,
};

اینجا وقتی می‌نویسیم:
HttpMethod::Delete

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

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

صد جور می‌تونم ثابت کنم که تولید کد با هوش مصنوعی به معنی قبول کردن خروجی خام اون نیست. شما وقتی یه برنامه می‌نویسی و می‌گی ساختمش یا نوشتمش اما حتی نمی‌دونی قانون استاندارد چی هست یعنی یه آشغال ساختی! به خصوص در مورد زبانهای چند پارادایمی مثل سی++ قرار نیست چون اگه کار می‌کنه پس خوب باشه، باید آموزشش بدی.
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 هم اضافه خواهد شد که فقط با هولد توکن قابل استفادست. فعلاً همه چیز در حال آزمایشه...