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

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

We create because the world deserves better code.

https://linktr.ee/compez
Download Telegram
COMPΞZ 🧬
جنی‌کانکت ویرایش ۱.۳.۸۰۰ منتشر شد — سریع‌تر، تمیزتر و پایدارتر 🔼🔥 جنی‌کانکت یک کلاینت مدرن، قدرتمند و چندسکویی برای تونل‌سازی امن و وی‌پی‌ان است که با استاندارد ایزو ۲۳ از سی‌پلاس‌پلاس توسعه داده شده است. این نسخه تمرکز ویژه‌ای روی پایداری هستهٔ اجرایی،…
از نظر خیلی‌ها اغراق‌آمیز شاید باشه...

اما من سال‌هاست در مورد جنس برنامه‌های ++C صحبت کردم بارها گفتم هر یک ساعت کار با این زبان ده‌ها برابر گرون‌تر از ابزار‌های دیگست! همیشه گفتم اگه یه نرخ ۱ دلاری روی چند خط کد شما گذاشتن کدت با سی++ ضریب ۱۰ می‌خوره چون ژِنِ تمام برنامه‌های تجاری و سطح بالای شرکت‌هایی مثل اپل، مایکروسافت و گوگل همینه.

چند ماه حتی بیشتر، دقیقاً از زمان شروع جنگ تنهایی روی این محصول کار کردم تجربم رو گذاشتم، تحقیق کردم و کل پروژه xray رو حتی با کمک هوش مصنوعی تحلیل کردم، درکش کردم و پیادش کردم!

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

خستگیِ آدم تو تنش می‌مونه...

به طور کلی برنامه‌نویسی پر درآمد‌سازترین شغل دنیاست اما نه در این مملکتی که نسخهٔ کپی و کرک شدهٔ ویندوز رو به نسخهٔ اورجینالش حلوا حولا می‌کنن.

هنوز فرهنگ درک جامعهٔ متن‌باز در اینجا جا نیفتاده... چه کسی می‌دونه شاید روزی جا افتاد.
82
COMPΞZ 🧬
از نظر خیلی‌ها اغراق‌آمیز شاید باشه... اما من سال‌هاست در مورد جنس برنامه‌های ++C صحبت کردم بارها گفتم هر یک ساعت کار با این زبان ده‌ها برابر گرون‌تر از ابزار‌های دیگست! همیشه گفتم اگه یه نرخ ۱ دلاری روی چند خط کد شما گذاشتن کدت با سی++ ضریب ۱۰ می‌خوره چون…
بعضی چیزها توی یک جامعه طبیعیه، ولی توی یک جامعهٔ دیگه هنوز شبیه رویاست یا حتی درکش سخت باشه!
این تفاوت خیلی فاصله داره و درکش دو نتیجهٔ متفاوت داره.

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

این تفاوت، فقط فرق پول یا تکنولوژی نیست؛
فرق فرهنگیه که طی سال‌ها شکل گرفته... ما هزاران سال در این سرزمین فرهنگ ساختن و هنر کردن داشتیم! ولی چرا الآن دیگه مثل گذشته نیست؟

چون وقتی یک جامعه فرصت رشد، ثبات، آموزش درست و تجربهٔ واقعیِ توسعه رو داشته باشه، کم‌کم یاد می‌گیره:

- از تولیدکننده حمایت کنه،
- به حق سازنده احترام بذاره،
- و بدونه پیشرفت، بدون ساختن ممکن نیست.

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

این نه از کم‌هوشی مردمه، نه ذات یک کشور.
فرهنگ‌ها نتیجهٔ سال‌ها تجربه‌ان که باید کنار هم چیده بشن!

فرهنگ هم قابل تغییره، کافیه:

- به‌جای تمسخر، یادگرفتن رو تشویق کنیم،
- به‌جای فقط مصرف‌کردن، خلق‌کردن رو ارزش بدونیم،
- و به‌جای ناامیدی، به بهترشدن فکر کنیم…

آینده کم‌کم عوض میشه.

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

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

هیچ حکومتی صاحبِ مردم نیست.
هیچ قدرتی هم ابدی نیست.


شب شیک!
👍53
تویی که تا دیروز خودتو جر میدادی پست‌های ضد حکومتی میدادی مارو هم بلاک می‌کردی... می‌گفتی ببینید به خاطر یه تار مو زندگیمو به آتیش کشیدن! چی شده حالا نافو چاکتو گذاشتی بیرون پرچم به دست جانم فدای این وضعیت می‌کنی؟ خاک بر سرت کنم! کل مطالبهٔ شماها ناف بیرون گذاشتنتون بود؟! چقدر شماها تشنه‌های جنسی و ندید بدید‌های متوهم هستید! چقدر گُشنهٔ دیده شدن هستید! من کل تاریخ و فرهنگ ایران رو شخم زدم هیچ جایی واقعیتِ ایرانی‌ها همچین پست فطرتی و دو رویی ندیدم! الحق که این نسل زباله‌ای بیش نیست! یک سری متوهم چشم و دل گشنهٔ ظاهری که با هر بادی سمت و سو عوض می‌کنن.

الحق که باید تحسین کرد چنین سیستمی رو که به این راحتی می‌تونه دشمنانش رو به بردگان خودش تبدیل کنه. 🫡 سر تعظیم باید فرود آورد.

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

خلاصه که راست می‌گن! مشخصه پیروز میدان چه کسیه! 👌🏼
Please open Telegram to view this post
VIEW IN TELEGRAM
COMPΞZ 🧬
الحق که باید تحسین کرد چنین سیستمی رو که به این راحتی می‌تونه دشمنانش رو به بردگان خودش تبدیل کنه. 🫡 سر تعظیم باید فرود آورد.
حالا فهمیدین چطور یه نماینده جرأت می‌کنه بگه ۹۰٪ ملت نیازی به اینترنت ندارند و راضی‌ هستن از این وضعیت همینه که هست و فلان! راست می‌گه! من آزمایشی هم که شده برنامهٔ روبیکارو نصب کردم و رفتم بخش اکسپلوررش! اگه فرقی در محتواش با اینستاگرام دیدین!!! حتی آزاد‌تر از اونجا :) بعدش که بیرون هم همین وضعیت رو دیدم دیگه برام ثابت شد که واقعاً چرند نگفتن همش واقعیت داره!

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

یه وقت‌هایی بیشتر که فکر می‌کنم با خودم می‌گم الحق در طول تاریخ ایران باستانی هرچی آدم حسابی و مشتی و با غیرت بوده همشون رفتن توی جنگ‌ها کشته شدن و ژن‌هاشون همونجا مدفون شده و آخرین نسل‌هاشون هم همون ۸ سال دفاع مقدس بود که ریششون رو خُشکوندن! و در نهایت اینی که برای این مملکت مونده یک ژنِ ضعیف شدهٔ رام شدهٔ ضعیفه که سیستم به راحتی می‌تونه کنترلش کنه.

حقیقتاً نا امیدکننده‌ست.
💯4
COMPΞZ 🧬
حالا فهمیدین چطور یه نماینده جرأت می‌کنه بگه ۹۰٪ ملت نیازی به اینترنت ندارند و راضی‌ هستن از این وضعیت همینه که هست و فلان! راست می‌گه! من آزمایشی هم که شده برنامهٔ روبیکارو نصب کردم و رفتم بخش اکسپلوررش! اگه فرقی در محتواش با اینستاگرام دیدین!!! حتی آزاد‌تر…
جامعه به چند دستگی تقسیم شده بخشی راضی و بخشی ناراضی؛ بخشی مجبور و بخشی خوشحال!
رسانه هم که مشخصه از کجا چه چیزی رو به تصویر می‌کشه.

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

شیر بودن سخت‌تر است؛
تنها می‌مانی،
زخم می‌خوری،
اما نه زوزه می‌کشی،
نه از سایه‌ات فرار می‌کنی.
4
یه قابلیت جدید از Codex رو بررسی می‌کردم! از طریق گوشی نیازی نیست حتی بشینی پشت سیستم دیباگ‌کنی! یعنی سیستم رو ریموت می‌کنه روی گوشی و کافیه بیرون یا هرجایی که هستی دستورات و ارزیابی‌های لازم برای توسعه و یا اشکال زدائی رو بدی!

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

یه زمانی می‌گفتم AI رو باید طوری باهاش رفتار کنی که انگار خودت پشت سیستمی، الآن با این به‌روز رسانی‌های اخیر کم کم داره به همون مراحل میرسه! باور کنید هوش مصنوعی قرار نیست جای شغلی رو بگیره! کافیه یکم هوشمندانه ازش استقبال کنید! ابزار برای راحتی کاره.
👍5
COMPΞZ 🧬
این امکان خیلی جالبه وقتی شما دسترسی کامل به سیستم بدی کدکس می‌تونه حتی برنامه رو اجرا و برات آزمایشش کنه. 😉 این یعنی من حتی وقتی پیاده‌روی هم برم می‌تونم برنامه‌نویسی کنم؛ محصولم رو توسعه بدم، ایراداتش رو بگیرم! دقیقاً روی سیستم توسعهٔ خودم! انگار که خودم نشستم پشت سیستم.
فکرش رو بکن منِ توسعه‌دهنده خصوصیات، دانش و سبک برنامه‌نویسیم و سطح اطلاعاتم رو در یک الگوی از پیش تعریف شده میدم به AI و بهش می‌گم عیناً من باید رفتار کنی. به قول استراستروپ کد‌های تولید شده توسط AI هنوز باگ‌های زیادی دارن و متناسب با چیزی که از مرجع گرفتن رفتار می‌کنن؛ بنابراین قرار نیست عیناً چیزی که شما هستید رفتار کنن اما می‌تونه برای کسی که می‌دونه چیکار می‌کنه بسیار مفید باشه.

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

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

شخصاً دیسک گردن دهنمو صاف کرده طی این سال‌ها سر این موضوع و من قطعاً برای بهره‌وری بالا و سلامتی بیشتر از AI استقبال می‌کنم چرا که نه! به این ابعادش واقعاً فکر کنید فناوری می‌تونه بهره‌وری رو ببره بالا و فرصت برای سلامتی بیشتر رو افزایش بده.

اگه بدونی چیکار داری می‌کنی واقعاً سر تا پاش طلاست!
💯3
COMPΞZ 🧬
جنی‌کانکت ویرایش ۱.۳.۸۰۰ منتشر شد — سریع‌تر، تمیزتر و پایدارتر 🔼🔥 جنی‌کانکت یک کلاینت مدرن، قدرتمند و چندسکویی برای تونل‌سازی امن و وی‌پی‌ان است که با استاندارد ایزو ۲۳ از سی‌پلاس‌پلاس توسعه داده شده است. این نسخه تمرکز ویژه‌ای روی پایداری هستهٔ اجرایی،…
خوشحالم از اینکه ایرانی‌های اونر آبی به خصوص اونایی که آموزش وی‌پی‌ان فروشیو این چیزارو میدن اینو بازنشر نکردن!

از دلایلش پرسیدم یکی از دوستان گفت به خاطر عدم اعتماد! 😂 آخه نادان‌ها کل کد متن بازه و فرآیند کامپایل و ریلیزش هم شفافه!

ببین نادان، وقتی یه پروژه متن باز هست یه مجوزی داره! مجوز سورس کل جنی‌کانکت هم GPL هست. این از این!
بعد سورسی که شفاف و همه چیزش منتشر شده یه بخشی داره به عنوان Release که نسخه‌های منتشر شده رو اونجا قرار میدن.

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

۱) دستی روی سیستم خودم کامپایل کنم و قرار بدم اونجا و اگه دوست داشتم یه کد مخرب هم بنویسم که دهن شمارو صاف کنه که این کار رو انجام نمیدم به دو دلیل:
- اول اینکه سرعت اینترنت درست درمونی ندارم چون صد بار باید آپلود کنم هر صد بارش هم رد میشه!
- دوم اینکه وقتی کد‌ها رومنتشر کردم مرض ندارم که بیام همه چیزو خود کار نکنم!

۲) این کارو نکنم، و بسپارمش به CI در قسمت action خود گیت‌هاب. وظیفش چیه؟ وقتی یه Tag روی گیت‌هاب بسازیم یعنی به این شکل

v1.3.800

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

https://github.com/genyleap/GenyConnect/tree/refs/tags/v1.3.800

شماها با همون آت‌اشغال‌های خودتون سیر کنید جیب ملت رو بچاپید! من اینو ساختم برای خودم هرکس هم دوست داشت استفاده کنه هرکس هم نخواست فدای سرم.
1
این دستیار Codex یه زیر شاخه‌ای از خود OpenAI هست به کمک ChatGPT. شما وقتی حسابتون رو در OpenAI شارژ بکنید یعنی از نسخهٔ پلاس استفاده کنید همین کدکس براتون به صورت ماهیانه مبتنی بر اعتبار مصرف توکن کار می‌کنه با تفاوت اینکه اینجا قابلیت مدیریت و بهروری بهتر روی پروژه رو بهتون میده.

نسخهٔ رایگانش خیلی محدود هست با چند تا دستور ساده به راحتی به محدودیت می‌خورید.

نسخهٔ پلاس یعنی ۲۰ دلاریش هم تا یه حدی جوابگو هست! اما اگه بتونید روش آموزش یا سوأل پرسیتون رو بهینه کنید مصرف توکن هم بهینه میشه و بیشتر مفید خواهد بود.

وقتی به محدودیت بخورید معمولاً به صورت ساعتی یا روزانه بهتون می‌گه برو فلان ساعت یا فلان روز بیا 😄 این به خاطر همون موضوع مصرف بیش از حد توکن هست.

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

چرت و پرت هم نپرسیدی! خیلی‌ها همین براش سوأله.
COMPΞZ 🧬
نسخهٔ پلاس یعنی ۲۰ دلاریش هم تا یه حدی جوابگو هست! اما اگه بتونید روش آموزش یا سوأل پرسیتون رو بهینه کنید مصرف توکن هم بهینه میشه و بیشتر مفید خواهد بود.
یک توصیه که می‌تونم بر مبنای تجربیات خودم بگم اینه که نباید به AI اجازه بدی زیاد به چرندیاتی که توی پوشهٔ git. مدام تولید میشه توجه کنه! هرچقدر بیشتر با محتوای log و غیره درگیر باشه بیشتر توکن‌سوزی می‌کنه و سریع‌تر به محدودیت می‌خورید.

مخصوصاً پوشهٔ objects رو باید کنترل کنید. یهو می‌بینی ۲۰ گیگ شده حجم تحلیل‌های OpenAI و روحتم خبر نداره که چطور شد اینطور شد! 😁 برای همین می‌گم برای کسانی که می‌دونن چیکار می‌کنن خیلی بهتره! چون نباید همه چیرو هم بسپاری به این بی‌خرد!
از بدنهٔ حکومت زنگ زدن می‌گن چطوری؟؟؟!؟
می‌گم سلام! چطورید حاج اقا؟ وسلام علیکم و رحمت‌الله!😂 اهلن و سهله یا اخی! یا سیدی چاکی چونی؟ خوژ بی ایشالا؟ 😂😂😂

میگه خیلی وقته نیستی! این جنگ بهت ضرر نزده که؟ چه می‌کنی کارو بارت تعطیل نیست که؟ هنوزم ترید می‌کنی؟ برنامه‌نویسی می‌کنی؟ هنوزم می‌ترکونی؟
من: 😐😐😐😐 بقیه مکالمات بماند که چی گفت چی شنیدم! 😄 یعنی همه جوره اعصاب آدمو بریزید بهم فقط!

یعنی قشنگ با مسخره بازی خوشید! 😉
هرچقدر زبان سطح‌پایین (نزدیک به سطح ماشین) باشه؛ صراحت‌نویسی مهم‌تره!

این کد یک ماشین حساب خیلی ساده می‌سازد که فقط عدد قبول می‌کند.

مثلاً این‌ها درست هستند:
calc.add(10, 20);
calc.add(1.5, 2.5);

ولی این اشتباه است:
calc.add("Hello", "World");

چون ما با concept Numeric گفته‌ایم فقط نوع‌های عددی مجاز هستند.

قسمت‌های مهم از مدرن نویسی:
export module

یعنی به‌جای فایل‌های قدیمی include از سیستم جدید و سریع‌تر Modules استفاده می‌کنیم.

concept Numeric

مثل نگهبان عمل می‌کند!
بررسی می‌کند ورودی واقعاً عدد باشد.
constexpr

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

یعنی این تابع قرار نیست خطای exception تولید کند.
[[nodiscard]]

اگر خروجی تابع را نگیری، کامپایلر هشدار از نوع warning می‌دهد چون احتمالاً اشتباه کردی.

خلاصه:
این فقط یک جمع ساده نیست؛
نمونه‌ای از سبک برنامه‌نویسی مدرن در سی‌پلاس‌پلاس است که:
- سریع‌تر است
- امن‌تر است
- تمیزتر است

و برای پروژه‌های بزرگ حرفه‌ای آینده‌دار استفاده می‌شود.

#cpp #example #یادگیری #به‌روز‌رسانی #برنامه‌نویسی #مثال #تکه‌کد
3👍3
COMPΞZ 🧬
هرچقدر زبان سطح‌پایین (نزدیک به سطح ماشین) باشه؛ صراحت‌نویسی مهم‌تره! این کد یک ماشین حساب خیلی ساده می‌سازد که فقط عدد قبول می‌کند. مثلاً این‌ها درست هستند: calc.add(10, 20); calc.add(1.5, 2.5); ولی این اشتباه است: calc.add("Hello", "World"); چون ما با…
می‌دونم خیلی‌هاتون تعجب می‌کنید! که چرا این سی++ با اونی که توی کتاب‌ها خوندیم متفاوته! وقتی می‌گم مدرن، یعنی هیچ خبری از iostream یا اون چرندیات قدیمی printf یا std::cout و اینجور چیزا نیست! اینارو حتی اگه شما تخصص نرم‌افزار هم نداشته باشی به هر حال یجوری توی دانشگاه به عنوان یه واحد پاس کردی.

این چیزارو هنوز هم که هنوزه توی ایران تدریس می‌کنن متأسفانه.

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

خب حالا دیدی چقدر فاصلهٔ عجیب و غریبی ایجاد شده اگه همون وقت که می‌گفتم یاد بگیرید اقدام کرده بودین زیاد جای تعجب نداشت.

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

https://t.me/advancedcpp
💯2
یکی از مهمترین کد‌های بیت‌کوین 💸 در مورد سختی استخراجه که مربوط به سرآیند الگوریتم PoW در کد‌های سی++ هست.

این تابعی که می‌بینید، وظیفش اینه که بگه سختی استخراج بلاک بعدی بیت‌کوین چقدر باید باشد؟

نکته) بیت‌کوین هر بلاک سختی را عوض نمی‌کند. تقریباً هر ۲۰۱۶ بلاک یک‌بار سختی را تنظیم می‌کند؛ یعنی حدوداً هر ۱۴ روز.

پس اول بررسی می‌کند:
(pindexLast->nHeight + 1) % params.DifficultyAdjustmentInterval()

اگر هنوز زمان تنظیم سختی نرسیده باشد، معمولاً همان سختی بلاک قبلی را برمی‌گرداند:
return pindexLast->nBits;

بعد از آن این تابع می‌گه:

اگر وقت تنظیم سختی نرسیده:
همان سختی قبلی

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

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


چرا مهم بود که بیت‌کوین با ++C ساخته بشه؟
- کنترل کامل روی عددها و بایت‌ها
- سرعت بالا
مناسب به عنوان زیرساخت صنعت بلاک‌چین
- تعیین دقیق رفتار! این موضوع خیلی مهمه که ++C
- اجازه میده نوع داده و الگوریتم بسیار دقیق محاسبه و مدیریت بشه.


مثلاً با Python/JS:
نوشتنش راحت‌تر بود، ولی برای Bitcoin Core فاجعه می‌شد: کندتر، مصرف RAM بیشتر، کنترل کمتر روی بایت‌ها، و وابستگی زیاد به runtime.

با Java/سی‌شارپ:
قابل‌ساخت‌تر بود، ولی GC می‌تواند در زمان‌های حساس pause بدهد. همچنین کنترل binary/serialization و رفتار دقیق عددها سخت‌تر می‌شود.

با Go:
برای شبکه خوب است، ولی GC و کنترل کمتر روی memory برای consensus engine ایده‌آل نیست.

برای بیت‌کوین، مشکل فقط «برنامه اجرا شود» نیست. باید میلیون‌ها نود در سراسر دنیا دقیقاً به یک نتیجه برسند. کوچک‌ترین تفاوت در محاسبه difficulty، parsing block، hash یا serialization می‌تواند باعث fork شود.

با Rust احتمالاً بعضی خطاهای حافظه در سطح زبان سخت‌تر رخ می‌دادند و بخش‌هایی از codebase safety بیشتری می‌گرفت. اما این به معنی سریع‌تر، بهتر یا کم‌ریسک‌تر بودن مطلق نسبت به ++C مدرن نیست.

به جرأت می‌توان گفت برنامه‌نویسی دقیق و بدون نقص در این زیر ساخت به همراه سال‌ها آزمایش‌های متنوع منجر شده بیت‌کوین به یکی از پایدارترین و دقیق‌ترین نرم‌افزارهای زیرساختی دنیا تبدیل شده.
Please open Telegram to view this post
VIEW IN TELEGRAM
COMPΞZ 🧬
یکی از مهمترین کد‌های بیت‌کوین 💸 در مورد سختی استخراجه که مربوط به سرآیند الگوریتم PoW در کد‌های سی++ هست. این تابعی که می‌بینید، وظیفش اینه که بگه سختی استخراج بلاک بعدی بیت‌کوین چقدر باید باشد؟ نکته) بیت‌کوین هر بلاک سختی را عوض نمی‌کند. تقریباً هر ۲۰۱۶…
اینم بگم کرک و پرتون بریزه!

داخل پرانتز، اتریوم با Go ساخته شده؛ اما بخش بزرگی از performance-critical و low-level صنعت بلاک‌چین همچنان وابسته به ++C و کتابخانه‌های نوشته‌شده با آن است. از رمز‌نگاری و موتور‌های بانک اطلاعاتیش گرفته تا کامپایلر‌ها و ماشین‌های مجازی اتریوم، شبکه و حتی بخش‌هایی از کلاینت‌ها و و ساختار نود‌هاش.

حتی چیزی که من باهاش GENY رو ساختم، یعنی Solidity هم با ++C ساخته شده.😎
COMPΞZ 🧬
اینم بگم کرک و پرتون بریزه! داخل پرانتز، اتریوم با Go ساخته شده؛ اما بخش بزرگی از performance-critical و low-level صنعت بلاک‌چین همچنان وابسته به ++C و کتابخانه‌های نوشته‌شده با آن است. از رمز‌نگاری و موتور‌های بانک اطلاعاتیش گرفته تا کامپایلر‌ها و ماشین‌های…
می‌بینید چه کانال باحالی دارم! به جای تبلیغات شر و ور دیگران؛ هر از گاهی پیام‌های بازرگانی اختصاصی خفن‌ترین زبان برنامه‌نوسی رو پست می‌کنم.
همینه که هست! 😝
Please open Telegram to view this post
VIEW IN TELEGRAM
5311