کافه برنامه نویسان | 𝗣𝗿𝗼𝗴𝗿𝗮𝗺𝗲𝗿s 𝗖𝗮𝗳𝗲
2.91K subscribers
1.21K photos
277 videos
31 files
1.23K links
👈 اینجا جاییه که یاد می‌گیریم و با هم رشد می‌کنیم

💬 Group : @IRdeveloperchat
تبادل : @ProgramersCafeSup 🫴
تبلیغات : @Cafe_Code_add


♂️ مالک : @Ali_Rohany ♂️
Download Telegram
Forwarded from ILIA HASHEMI
ترامپ: امشب و فردا شب بسیار سخت حمله خواهیم کرد.



توصیه برای کسانی که نزدیک مناطق انفجار هستند:

از اسکله‌ها (در جنوب ایران) و تاسیسات نظامی فاصله بگیرید.

در صورت شنیده شدن صدای انفجار، به پنجره یا پشت‌بام نزدیک نشوید.

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

مراقب حیوانات در خیابان باشید و اگر توان دارید، موقتاً آن‌ها را پارکینگ یا حیاط خانه پناه دارید.

@iliaen
6👍1😁1
⚙️ تفاوت LLVM، GCC و Cranelift

هر سه در نهایت یک کار مشترک انجام می‌دن: تبدیل کد برنامه به کد ماشین. اما فلسفه‌ی طراحی، معماری و کاربردشون کاملاً با هم فرق داره.

ا🔹 GCC (GNU Compiler Collection)
قدیمی‌ترین و باتجربه‌ترین عضو این خانواده‌ست. از دهه‌ی ۸۰ میلادی توسعه‌ش شروع شده و از زبان‌های مختلفی مثل C، C++، Fortran، Ada، Go و چند زبان دیگه پشتیبانی می‌کنه.

معماری GCC نسبت به LLVM یکپارچه‌تر (Monolithic) هست؛ یعنی Front-end و Back-end مثل LLVM کاملاً از هم جدا نیستن. همین باعث می‌شه توسعه‌ی زبان‌ها یا ابزارهای جدید روی GCC سخت‌تر باشه، اما در عوض سال‌ها بهینه‌سازی باعث شده برای پروژه‌های C و C++ یکی از بهترین انتخاب‌ها باشه.

ضمن اینکه روی معماری‌ها و پلتفرم‌های زیادی، مخصوصاً سیستم‌های Embedded، پشتیبانی فوق‌العاده‌ای داره.


ا🔹 LLVM
اLLVM بیشتر از اینکه یک کامپایلر باشه، یک زیرساخت برای ساخت کامپایلره.

زبان‌های مختلف مثل Clang (برای C/C++)، Rust، Swift و Julia کدشون رو به یک نمایش میانی به اسم LLVM IR تبدیل می‌کنن و بعد LLVM اون رو برای معماری‌هایی مثل x86، ARM و RISC-V به کد ماشین تبدیل می‌کنه.

همین طراحی ماژولار باعث شده LLVM تبدیل به قلب خیلی از زبان‌های مدرن بشه.

قدرت اصلی LLVM توی بهینه‌سازی‌های فوق‌العادهشه؛ البته این قدرت معمولاً به قیمت زمان کامپایل بیشتر به دست میاد.


ا🔹 Cranelift
اCranelift یک Backend نسبتاً جدیده که اصلاً برای رقابت با LLVM در تولید سریع‌ترین باینری ساخته نشده.

هدفش اینه که کد رو تا جای ممکن سریع کامپایل کنه. به همین خاطر توی پروژه‌هایی مثل Wasmtime یا rustc_codegen_cranelift ازش استفاده می‌شه؛ جاهایی که سرعت کامپایل از چند درصد بهینه‌تر بودن کد مهم‌تره.

در نتیجه معمولاً خروجی Cranelift به اندازه‌ی LLVM بهینه نیست، ولی سرعت کامپایلش می‌تونه به شکل محسوسی بیشتر باشه.


هیچ‌کدوم «بهتر» نیستن؛ هرکدوم برای یه هدف متفاوت ساخته شدن.

#LLVM #GCC #Cranelift #Compiler #Compiler_Design

𝗖𝗵𝗮𝗻𝗻𝗲𝗹 • @Programers_Cafe

𝗚𝗿𝗼𝘂𝗽 • @IRdeveloperchat
7👍1
Forwarded from Matin SenPai (᯽マティ️️ン先輩)
ماجرای اوپن سورس شدن xAI Grok-Build

داستان یه مقدار خنده‌دار (و یه مقدار دارک) هستش. همونطور که می‌دونید Grok-Build همون ایجنت کدنویسی تحت ترمینال شرکت xAI (مال ایلان ماسک) هست که به‌تازگی توی گیت‌هاب اوپن‌سورس شده؛ اما پشت این اوپن‌سورس شدن یه رسوایی بزرگ خوابیده بود.

داستان از این قراره:

1- رسوایی سرقت کد (Spyware شدن ابزار): چند وقت پیش، یه سری از محقق‌های امنیتی و دولوپرها نشستن ریکوئست‌های شبکه‌ی Grok-Build رو مانیتور کردن. دیدن این ابزار وقتی روی سیستم کاربر اجرا می‌شه، فقط فایل‌هایی که بهش می‌گی رو نمی‌خونه؛ بلکه داره تو بک‌گراند کل هیستوری گیت، کل فایل‌های پروژه (حتی اونایی که بهش ربطی نداره)، کلیدهای SSH، پسوردها و Credentials رو زیپ می‌کنه و می‌فرسته روی سرورهای xAI!😂

2- مچ‌گیری و آبروریزی توی توییتر: وقتی این قضیه لو رفت، توییتر منفجر شد. همه شروع کردن به گفتن اینکه xAI داره دیتای خصوصیِ دولوپرها رو واسه Train کردن مدل‌هاش می‌دزده و اسم ابزار رو گذاشتن «جاسوس‌افزار (Spyware)».

3- ماله‌کشیِ سریع xAI: شرکت xAI وقتی دید مچش رو بدجور گرفتن، سریعا یه بیانیه داد و آپلود اتوماتیک دیتا رو قطع کرد. گفتن تمام دیتای قبلی رو پاک می‌کنیم و یه دستور /privacy هم اضافه کردن که کاربر بتونه کنترل کنه چه دیتایی بره به سرورا.

4- تیر آخر (اوپن‌سورس کردن اجباری): برای اینکه اعتماد از دست‌رفته رو برگردونن و بگن «ببینید ما هیچ کدی رو قایم نکردیم و چیزی نمی‌دزدیم»، مجبور شدن کُل پروژه‌ی ۸۰۰ هزار(😭😭😭) خطی Grok-Build رو (که به زبان Rust نوشته شده) اوپن‌سورس کنن! الان سورس کدش به صورت کامل روی اکانت xai-org تو گیت‌هاب منتشر شده: https://github.com/xai-org/grok-build

خلاصه:
دلیل خنده‌ی ملت اینه که xAI از قصد نمی‌خواست این ابزار خفن رو اوپن‌سورس کنه، ولی چون دولوپرها مچشون رو سر «دزدی بی‌سروصدای کدها» گرفتن، واسه فرار از رسوایی و اعتمادسازی مجدد، مجبور شدن کل سورسش رو بریزن بیرون!


ولی خب، از هر زاویه‌ای نگاه کنیم، این رسوایی در نهایت به نفع ما دولوپرها تموم شد و الان یه ایجنت کدنویسی لوکال، قدرتمند و اوپن‌سورس داریم که می‌تونیم مستقیما رو سیستم خودمون (بدون فرستادن دیتا به سرورهای اونا) اجراش کنیم.
هرچند فعلا باید خودمون بیلد بگیریم با Rust

✉️ t.me/MatinSenPaii
Please open Telegram to view this post
VIEW IN TELEGRAM
8🔥2💔1
خطاب به کسانی که در قبال حملات به جنوب لبنان گلوی خود را پاره میکردند ؛
حالا میتوانند که امتحانشان را در جنوب ایران پس بدهند

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

𝗖𝗵𝗮𝗻𝗻𝗲𝗹 • @Programers_Cafe
👌23👍3🕊2
♻️ گزارش رادار کلودفلر :
کاهش ترافیک اینترنت در چند استان ؛

اصفهان، فارس و خراسان رضوی در صدر افت


بررسی داده‌های رادار کلودفلر از وضعیت ترافیک اینترنت ایران در بازه‌های ۴۸ ساعت و هفت روز اخیر نشان می‌دهد که چند استان از جمله اصفهان، فارس، خراسان رضوی، البرز و تهران با کاهش نسبی ترافیک اینترنت مواجه بوده‌اند؛
موضوعی که می‌تواند نشانه‌ای از اختلال یا افت کیفیت دسترسی در این مناطق باشد / سیتنا

𝗖𝗵𝗮𝗻𝗻𝗲𝗹 • @Programers_Cafe
💔9👍4
Forwarded from localhost (Yousef Taheri)
با شدت گرفتن درگیریا، لغو عضویت جانفدا به ترند سوم گوگل تبدیل شده.
😁32
با پیگیری‌هایی که انجام دادیم ، خبرِ "آمادگی دیتاسنترها برای قطعی اینترنت" که از صبح داره وایرال میشه صحت نداره / سیتنا


𝗖𝗵𝗮𝗻𝗻𝗲𝗹 • @Programers_Cafe
👍11😁2

فاکس‌نیوز :

یه گزارش محرمانه که برای دفتر پزشکیان تهیه شده ، نشون میده فقط 9 درصد مردم ایران موافق ادامه وضع فعلی‌ان ؛

♻️ 53 درصد خواهان اصلاحات اساسی و ساختاری‌ان و بیش از 19 درصد هم می‌خوان کل نظام سیاسی عوض بشه

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



𝗖𝗵𝗮𝗻𝗻𝗲𝗹 • @Programers_Cafe
👍8👌2🕊1
localhost
با شدت گرفتن درگیریا، لغو عضویت جانفدا به ترند سوم گوگل تبدیل شده.
🔴خبرگزاری دریانیوز:
درحال حاضر امکان لغو عضویت تو پویش جانفدا وجود نداره
.

𝗖𝗵𝗮𝗻𝗻𝗲𝗹 • @Programers_Cafe
😁26
Forwarded from Matin SenPai (᯽マティ️️ン先輩)
سرعت نت من به شدت پایین اومده. از 30 مگابیت به 2 مگابیت عملا. با و بدون وی پی ان هم فرقی نمیکنه
نمیدونم چه گندی دارن می‌زنن باز
💔13😁1
This media is not supported in your browser
VIEW IN TELEGRAM
وزیر ارتباطات:
به زباله‌رسان (پیام‌رسان) های داخلی دیگه بودجه‌ای نمیدیم🔥

𝗖𝗵𝗮𝗻𝗻𝗲𝗹 • @Programers_Cafe
🔥21
Forwarded from 𝐃𝐫 𝐓𝐞𝐥
🔴دست به گیرنده‌هاتون نزنید که مشکل جهانیه؛

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

@DrTeL
Please open Telegram to view this post
VIEW IN TELEGRAM
آخیش اسپانیا زد
👍18💔5😁2
کافه برنامه نویسان | 𝗣𝗿𝗼𝗴𝗿𝗮𝗺𝗲𝗿s 𝗖𝗮𝗳𝗲
آخیش اسپانیا زد
♻️ رسمی :

با سوت پایان داور و اتمام جام جهانی، ازاین لحظه به بعد دیگه وارد جنگ جهانی شدیم.
#fun

𝗖𝗵𝗮𝗻𝗻𝗲𝗹 • @Programers_Cafe
😁18💔5🔥1
Forwarded from جادی | Jadi
اگر وردپرسی دارین که از نسخه اش از ۷.۰.۲ قدیمی تر است، سریعا آپدیتش کنین. دو تا مشکل امنیتی خیلی حاد هست که داره به شکل فعال برای حمله به سایت ها استفاده می شه. یک حمله sql injection و یک مشکل در REST API که اجازه اجرای کد از راه دور رو می ده. آپدیت همیشه مهمه، الان در وردپرس الزامی.
7
سایت فوتبال ۳۶۰ عادل فردوسی‌پور توسط قوه عاقله فیلتر و دیشب چند دقیقه قبل از شروع برنامه زنده از دسترس خارج شد.

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

🔗 ᴡᴇʙꜱɪᴛᴇᴠᴘɴʜᴜʙɢɪᴛʜᴜʙᴍɪʀʀᴏʀ
@ircfspace
💔15👌1
Forwarded from جوانان ایران (𝑨𝒎𝒊𝒓 𝒉𝒐𝒔𝒔𝒆𝒊𝒏)
🔴 عکس برگه صحیح شده یکی از دانش آموزا که امتحان نهاییش رو 0.25 شد.

نکته جالب ماجرا اینجاست که در جواب تمام سوالات نوشته: با این مملکت درس خوندن جواب نمیده.

@iR_Javan
💔126👍1🤯1
Forwarded from ILIA HASHEMI
ساعت حدود ۰۲:۰۰ صبح چهارشنبه؛ تهران - در محدوده نارمک (سمت فدک) صدای یک انفجار شنیده شد.

شدت انفجار در حد برخورد موشک نبود و بیشتر شباهت به یک انفجار خفیف داشت.

@iliaen
🔥4
Forwarded from ILIA HASHEMI
با توجه به عملیات شناسایی شب گذشته با حضور چند پهپاد در آسمان تهران، که قاعدتاً به دنبال ثبت موقعیت‌هایی بودند که به علت استتار، در تصاویر ماهواره به‌دقت موقعیت‌یابی نمی‌شدند، همچنین با توجه به تاکید مجدد ترامپ بر لزوم بمباران محل استقرار سانتریفیوژها در کوه کلنگ (اصفهان) و درنهایت لزوم برهم زدن تسلط نظامی در جنوب ایران، ما در آستانه‌ی یک عملیات نظامی در سطحِ جنگ ۴۰ روزه یا فراتر از آن هستیم.

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

@iliaen
🔥5👍2😁2
چرا Go معمولاٌ سریع‌تر از Rust کامپایل می‌شود؟

هر دو زبان کامپایل‌شدنی، سریع و مناسب توسعه نرم‌افزارهای سیستمی هستند. اما احتمالاٌ اگر با هر دو کار کرده باشید، متوجه شدید که پروژه‌های Go بسیار سریع‌تر Build می‌شوند.

دلیلش چیه؟ 🤔

🔹ا ۱. Generics و Monomorphization
ا Rust از Generics واقعی استفاده می‌کند. یعنی برای هر نوع داده‌ای که از یک تابع یا Struct ژنریک استفاده کند، کامپایلر یک نسخه اختصاصی از کد تولید می‌کند؛ فرآیندی که به آن Monomorphization می‌گویند.

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

ا Go تا قبل از نسخه 1.18 اصلاٌ Generics نداشت و پیاده‌سازی فعلی آن هم نسبت به Rust سبک‌تر است؛ بنابراین بار کمتری روی کامپایلر ایجاد می‌کند.


🔹ا ۲. Borrow Checker
یکی از مهم‌ترین ویژگی‌های Rust، Borrow Checker است.

قبل از اینکه حتی کد ماشین تولید شود، کامپایلر باید مالکیت (Ownership)، قرض گرفتن (Borrowing) و طول عمر داده‌ها (Lifetimes) را بررسی کند تا از خطاهایی مثل Data Race یا Use After Free جلوگیری شود.

این بررسی‌ها زمان کامپایل را افزایش می‌دهند، اما در عوض ایمنی حافظه را بدون نیاز به Garbage Collector تضمین می‌کنند.


🔹ا ۳. LLVM در برابر کامپایلر اختصاصی Go
ا Rust به‌طور پیش‌فرض از LLVM برای تولید کد ماشین استفاده می‌کند.

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

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

البته همه‌ی کندی Rust به LLVM مربوط نمی‌شود؛ بخش قابل‌توجهی از زمان کامپایل هم صرف تحلیل‌های خود کامپایلر Rust می‌شود.


🔹ا ۴. Trait Resolution، Macros و Incremental Compilation
سیستم Trait در Rust بسیار قدرتمند است و پیدا کردن اینکه برای هر نوع، کدام "impl" باید استفاده شود، خودش زمان‌بر است.

از طرفی، Procedural Macros و فرآیند Monomorphization باعث می‌شوند Incremental Compilation در Rust پیچیده‌تر از Go باشد.

ا Go ساختار ساده‌تری دارد و وابستگی‌هایش سریع‌تر پردازش می‌شوند.


🔹ا ۵. Linking
در بعضی پروژه‌های Rust، مخصوصاً وقتی تعداد زیادی کتابخانه به‌صورت Static لینک می‌شوند، مرحله‌ی Linking هم می‌تواند سهم قابل‌توجهی در زمان Build داشته باشد.

البته این موضوع به سیستم‌عامل، نوع پروژه و تنظیمات Build هم بستگی دارد.


💡 جمع‌بندی
کندتر بودن کامپایل Rust یک ضعف نیست؛ بلکه نتیجه‌ی تصمیم‌های طراحی این زبان است.

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

در مقابل، Go از ابتدا با فلسفه‌ی سادگی و سرعت توسعه طراحی شده؛ به همین دلیل زمان کامپایل کوتاه‌تری دارد، حتی اگر بعضی بهینه‌سازی‌ها یا بررسی‌های پیچیده‌ی Rust را انجام ندهد.


🛠 اگر زمان Build پروژه‌های Rust اذیتتان می‌کند...
از cargo check موقع توسعه استفاده کنید.
ا Incremental Compilation را فعال نگه دارید.
از لینکرهای mold یا lld استفاده کنید.
تا حد امکان از Generics و Procedural Macroهای غیرضروری استفاده نکنید.


💬 نظر شما چیست؟
حاضر بودید برای داشتن ایمنی حافظه و بهینه‌سازی‌های بهتر، زمان کامپایل بیشتری را بپذیرید؟ یا سرعت Build برای شما اولویت بالاتری دارد؟

#Go #Rust #Programming #SoftwareEngineering #Compilers

𝗖𝗵𝗮𝗻𝗻𝗲𝗹 • @Programers_Cafe

𝗚𝗿𝗼𝘂𝗽 • @IRdeveloperchat
6