Dev Perfects – Telegram
Dev Perfects
41 subscribers
9.23K photos
1.26K videos
468 files
13K links
بخوام خیلی خلاصه بگم
این کانال میاد مطالب کانالای خفن تو حوزه تکنولوژی و برنامه نویسی رو جمع میکنه

پست پین رو بخونید
https://news.1rj.ru/str/dev_perfects/455


ارتباط:
https://news.1rj.ru/str/HidenChat_Bot?start=936082426
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
خب جمینای ۳ هم منتشر شد!
نسخه اولیه‌اش تا اینجای کار خیلی جذاب به نظر می‌رسه.

تمرکز جمینای ۳ اینه که برای اولین بار مولتی‌مدل واقعی ارائه بده. علاوه بر این، ادعا می‌کنه بین همه مدل‌ها بهترین توانایی تحلیل عمیق رو داره.

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

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

@DevTwitter | <Farokh/>
Forwarded from Gopher Academy
این تصویر به‌صورت دقیق نحوه‌ی ادغام خلاصه‌ها (summary merging) در مدیریت حافظه‌ی Go را نشان می‌دهد.
ایده‌ی اصلی:
در Go برای مدیریت صفحات آزاد از ساختاری به نام Summary استفاده می‌کند که سه مقدار دارد:

start → تعداد صفحات آزاد در ابتدای محدوده

end → تعداد صفحات آزاد در انتهای محدوده

max → بیشترین دنباله‌ی صفحات آزاد در هر نقطه از محدوده

هر Summary معمولاً ۵۱۲ صفحه را پوشش می‌دهد. وقتی دو محدوده‌ی متوالی (مثل S1 و S2) کنار هم قرار می‌گیرند، Go می‌تواند آنها را با هم ادغام کند تا یک summary بزرگ‌تر بسازد.

👑 @gopher_academy
Forwarded from Gopher Academy
وقتی این دو کنار هم قرار می‌گیرند، Go مقدارهای جدید را به شکل زیر محاسبه می‌کند:

start = S1.start = 3
(از آنجایی که ناحیه پایین‌تر از S1 شروع می‌شود)

end = S2.end = 2
(زیرا انتهای کل محدوده با S2 تمام می‌شود)

max = max(S1.max, S2.max, S1.end + S2.start)
= max(10, 8, 7 + 5)
= max(10, 8, 12)

با ادغام S1 و S2، خلاصه‌ی جدید محدوده‌ی ۱۰۲۴ صفحه‌ای برابر است با:

start = 3, max = 12, end = 2

مزیت این روش:
Go با استفاده از این ساختار سلسله‌مراتبی از summaryها می‌تواند بدون نیاز به اسکن کامل بیت‌مپ‌ها، در چند سطح (arena → chunk → bitmap) سریعاً پیدا کند کجا فضای خالی کافی برای تخصیص span جدید وجود دارد — در نتیجه تخصیص حافظه بسیار سریع‌تر و مقیاس‌پذیرتر انجام می‌شود.

👑 @gopher_academy
Forwarded from Gopher Academy
توضیحات👇👇👇👇

👑 @gopher_academy
Forwarded from Gopher Academy
این تصویر به‌خوبی ساختار سلسله‌مراتبی (Hierarchical Summary Structure) در مدیریت حافظه‌ی Go را نشان می‌دهد — یکی از بخش‌های کلیدی طراحی allocator مدرن Go.

🧠 ایده‌ی اصلی:

برای اینکه Go بتواند خیلی سریع تشخیص دهد کجا فضای خالی کافی برای تخصیص وجود دارد**، از یک ساختار درختی چندسطحی استفاده می‌کند.
این ساختار درواقع یک **Radix Tree
جهانی از *summaryها* است.


🏗 نحوه‌ی کار:

* Level 4 (پایین‌ترین سطح)
شامل بیت‌مپ‌های واقعی از صفحات (هر بیت = یک صفحه 8KB).
در تصویر با رنگ سبز نشان داده شده و مقدار 1011...0010 وضعیت صفحات را مشخص می‌کند (۰ = آزاد، ۱ = اشغال).

* Level 3 و بالاتر:
هر سطح بالاتر از ترکیب دو یا چند خلاصه‌ی سطح پایین‌تر تشکیل می‌شود.
هر جعبه‌ی آبی، یک Summary است که نشان می‌دهد در زیرمجموعه‌ی خود چند صفحه آزاد به‌صورت پیوسته وجود دارد.
برای هر سطح، سه مقدار (start, max, end) بر اساس ادغام سطوح پایین‌تر محاسبه می‌شوند (مثل مثال S1 و S2 که قبلاً دیدی).

* Level 0 (بالای درخت):
این سطح تنها یک نود دارد که کل فضای مجازی تخصیص‌پذیر Go را پوشش می‌دهد.
این نود به allocator اجازه می‌دهد خیلی سریع بفهمد آیا در کل heap جایی وجود دارد که مثلاً 100 صفحه‌ی خالی پشت‌سرهم داشته باشد یا نه.

⚙️ مزایا:

1. 🔍 جستجوی سریع:
ا Allocator دیگر لازم نیست کل heap را اسکن کند — فقط در درخت پایین می‌رود تا بخش‌های مناسب را بیابد.

2. 🔄 به‌روزرسانی بلادرنگ:
وقتی صفحه‌ای تخصیص یا آزاد می‌شود، فقط summary همان بخش و مسیرش تا بالا به‌روزرسانی می‌شود (O(log n) پیچیدگی).

3. 🧩 مقیاس‌پذیری بالا:
چون هر سطح می‌تواند به‌صورت محلی به‌روزرسانی شود، چندین goroutine می‌توانند به‌صورت هم‌زمان در بخش‌های مختلف heap کار کنند بدون قفل‌گذاری سراسری.

👑 @gopher_academy
Forwarded from Gopher Academy
📌 Memory Allocation in Go

این پست اپدیت می‌شود

🔹 در این پست به بررسی جزئیات مدیریت حافظه در زبان Go می‌پردازیم.

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

🔵 Introduction
🔴 https://news.1rj.ru/str/gopher_academy/4231

🔵 Go’s View of Virtual Memory
🔴 https://news.1rj.ru/str/gopher_academy/4232

🔵 Arena and Page
🔴 https://news.1rj.ru/str/gopher_academy/4233

🔵 Span and Size Class
🔴https://news.1rj.ru/str/gopher_academy/4260

🟡Two spans with different size classes
🟢https://news.1rj.ru/str/gopher_academy/4261

🟡Tail waste in span
🟢https://news.1rj.ru/str/gopher_academy/4262

🟡User objects and size class objects
🟢https://news.1rj.ru/str/gopher_academy/4263


🔵Span Class
🔴 https://news.1rj.ru/str/gopher_academy/4283

🔵Span Set
🔴https://news.1rj.ru/str/gopher_academy/4284

🔵 Heap Bits and Malloc Header
🔴https://news.1rj.ru/str/gopher_academy/4285

🟡Heap bits in a span
🟢https://news.1rj.ru/str/gopher_academy/4286

🟡Malloc header in objects
🟢https://news.1rj.ru/str/gopher_academy/4287

🔵 Heap Management
🔴https://news.1rj.ru/str/gopher_academy/4304

🔵 Span Allocation: mheap.alloc
🔴https://news.1rj.ru/str/gopher_academy/4305

🔵 Tracking Free Pages
🔴 https://news.1rj.ru/str/gopher_academy/4306

🔵 Visualization of a bitmap summary
🔴https://news.1rj.ru/str/gopher_academy/4307

🔵 Merging summaries of two contiguous memory chunks
🔴 https://news.1rj.ru/str/gopher_academy/4416

🔵 Radix tree of summaries for the entire address space
🔴https://news.1rj.ru/str/gopher_academy/4451

🔵 A deeper look into the summary radix tree
🔴https://news.1rj.ru/str/gopher_academy/4453

🔵 Finding Free Pages: pageAlloc.find
🔴

🔵 Growing the Heap: mheap.grow
🔴

🔵 Setting up a Span: mheap.haveSpan
🔴

🔵 Caching Free Pages: mheap.allocToCache
🔴

🔵 Logic for finding free pages for span allocation
🔴

🔵 Caching Span Objects: mheap.allocMSpanLocked
🔴

🔵Central Span Manager: mcentral
🔴

🔵Processor’s Memory Allocator: mcache
🔴

🔵 Heap Allocation
🔴

🔵Tiny Objects: mallocgcTiny
🔴

🔵 Small Objects: mallocgcSmall*
🔴

🔵 Large Objects: mallocgcLarge
🔴

🔵Stack Management
🔴

🔵Allocating Stack: stackalloc
🔴

🔵 Stack Growth: morestack
🔴

🔵Reusing Stack: stackfree
🔴

🔵 Stack or Heap?
🔴

🔵 Case Studies
🔴


👑 @gopher_academy
This media is not supported in your browser
VIEW IN TELEGRAM
واقعا الان با این ابزارهای vibe coding و این مدلهای LLM هر چیزی به ذهن آدم میرسه میتونه بسازه و امتحان کنه. نه لزوما برای پروداکشن برای استفاده شخصی و یا برای بازی.
یکی از این ابزارها google ai studio هست. از درست کردن اپ برای یادگیریِ مثلا یک مفهوم ریاضی یا فیزیک گرفته، یا اَپ هایی که بچه ها بازی کنند. این اَپ که زیر ۲ دقیقه با پسرم درست کردیم، داستان تولید میکنه، با تصویر و داستان را با صدا میخونه. ویدیو صدا داره.
یا مثلا داشتیم چند روز پیش چند نفره monopoly بازی میکردیم. ولی track/دنبال کردن اینکه نوبت کیه و انداختن تاس ها گاهی قاطی میشه. تو ۵ دقیقه یک اَپ که کاملا لوکال کار میکنه و همه بازیکن ها را track میکنه با گرافیک قشنگ و animation و تاس ۳بعدی نوشتیم.
نتیجه اخلاقی: تا میتونید از این ابزارها استفاده کنید. هر چیزی به ذهنتون میاد یا دوست دارد یاد بگیرید میتونید یک جورایی تبدیلش کنید به یک آپ و بسازیدشون و استفاده کنید.

@DevTwitter | <Mehdi Allahyari/>
Forwarded from یک برنامه نویس تنبل (  MΞ)
ایشون روز اول کاریش توی کلودفلر بود

@TheRaymondDev
😁1
Forwarded from RandRng
مثل اینکه امروز، روز مرد هست.

این روز رو به (زن و مرد، دختر و پسر) همه‌ی اون‌هایی که از سال ۵۰ به بعد توی ایران به دنیا اومدند و با ننگ ۵۷ و ج.ا زندگی کردند تبریک می‌گم!

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

به امید آینده بهتر، حداقل برای نسل بعدی 🌹
گوگل به کد ادیتور جدید به اسم Antigravity داده
یه vscode با کمک Gemini 3 Pro

یه جوریه انگار نسخه‌ی preview باشه
https://antigravity.google/

* رو لینوکس که 403 می‌گرفتم و به سختی نصبش کردم.

@DevTwitter | <Milad Niroee/>
Marde Tanha
Farhad Mehrad
مرد تنها
خواننده: فرهاد مهراد
سال انتشار : ۱۳۴۹
ترانه و آهنگ : شهیار قنبری
تنظیم: اسفندیار منفردزاده

برای خودم
@PytensMusic
Forwarded from OpenPCB
طبق گفته FFmpeg پچ جدید باعث شده یه تابع مهم تو پردازش ویدیو ۳.۴۶ برابر سریع‌تر بشه. ماجرا اینه که یکی از کانتریبیوترها به اسم mkver اومده تابع add_8x8basis_sse3 رو که قبلاً با C نوشته شده بود رو کاملا با اسمبلی x86 بازنویسی کرده و خروجی هم شده همین جهش سرعت جدی.

دلیلش اینه که کامپایلرهای GCC و Clang وقتی با فلگ O3 کد رو کامپایل می‌کنند، معمولاً یه سری حلقه هایی که اصلاً قرار نیست زیاد اجرا بشن رو باز می‌کنن و کد رو حجیم‌تر می‌کنن. اینجا هم اون فانکشن رو از ۱۷۶ بایت رسونده به ۱۴۰۶ بایت! تو این مدل پردازش‌ها، چون دستورهای خاص و عجیب‌غریبی مثل pmulhrsw وجود داره، کامپایلر همیشه انتخاب‌های درستی نمی‌کنه. دولوپرهای FFmpeg هم میگن: «باشه، خودمون درستش می‌کنیم.» نکته مهم اینه که لزوماً کد C مشکل نداره! این رفتار کامپایلر تو مرحله بهینه‌سازیه که گاهی خودش دردسر درست می‌کنه.

این اولین‌بار نیست FFmpeg از اسمبلی برای گرفتن نهایت قدرت سخت‌افزار استفاده می‌کنه واین همون بحث معروف چند وقت پیشه که چرا پلیر dav1d که چندتا آدم معمولی ساختنش، بعضی جاها از libgav1 گوگل بهتره. جواب همون همیشگیه: وقتی دقیق می‌دونی چی می‌خوای و خودت دستی کد اسمبلی رو می‌نویسی، خروجی معمولاً از نسخه‌ی تولیدشده توسط کامپایلر بهتره.

یه سوال هم که همیشه مطرح می‌شه اینه که «چرا این مشکلات رو به سازنده‌های کامپایلر گزارش نمی‌کنن؟» گزارش می‌دن، ولی تا نسخه جدید کامپایلر بیاد مدت‌ها طول می‌کشه. یعنی عملاً بهترین کار اینه که خودشون همزمان دست به آچار باشن و مشکل رو دور بزنن.

برای همین پروژه‌هایی مثل FFmpeg اینقدر ارزشمندن. از یه طرف همیشه تو بهینه‌ترین حالت ممکنه، از یه طرف دیگه همین مواردی که پیدا می‌کنن عملاً به کل کامیونیتی C و کامپایلرها سود می‌رسونه و باعث می‌شه ابزارهایی که همه استفاده می‌کنن، کم‌کم بهتر بشن.


📺Source
📡openpcb
Forwarded from یک برنامه نویس تنبل (Lazy 🌱)
🔶 خلاصه قطعی کلودفلر در ۱۸ نوامبر ۲۰۲۵

قطعی از ساعت ۱۱:۲۰ UTC شروع شد و تا ۱۴:۳۰ ادامه داشت. تمام سرویس ‌ها تا ساعت ۱۷:۰۶ به حالت عادی برگشتند. این بدترین قطعی کلودفلر از سال ۲۰۱۹ بود.

علت اصلی:
تغییر در مجوز های یک پایگاه داده باعث شد فایل پیکربندی سیستم Bot Management دو برابر شود و از حد مجاز عبور کند. این فایل بزرگتر به تمام سرور های شبکه ارسال شد و نرم ‌افزار مسیر یابی ترافیک را مختل کرد.

جزئیات فنی:

- یک کوئری ClickHouse که هر ۵ دقیقه اجرا می‌شد، به دلیل تغییر در مجوز های دسترسی، ردیف ‌های تکراری تولید کرد
- تعداد "فیچر ها" در فایل از حدود ۶۰ به بیش از ۲۰۰ افزایش یافت
- محدودیت حافظه سیستم Bot Management روی ۲۰۰ فیچر تنظیم شده بود
- نرم‌افزار با خطا مواجه شد و کد خطای 5xx برگرداند

سرویس‌های آسیب‌دیده:

- سرویس CDN و سرویس‌های امنیتی اصلی
- سرویس Turnstile و Workers KV
- بخش Dashboard (مشکل ورود کاربران)
- بخش Access (خطاهای احراز هویت)
- بخش Email Security (کاهش دقت تشخیص اسپم)

تیم ابتدا گمان کرد حمله DDoS است، اما بعداً منبع مشکل را شناسایی کردند. با متوقف کردن تولید فایل خراب و بازگرداندن نسخه قدیمی، ترافیک اصلی تا ساعت ۱۴:۳۰ برقرار شد.
کلودفلر برای جلوگیری از تکرار چنین قطعی ‌ها, برنامه ‌هایی برای تقویت سیستم ‌ها، بررسی فایل ‌های پیکر بندی، و بهبود مدیریت خطا ها در دست اجراست.

#خبر

@TheRaymondDev
Forwarded from Linuxor ?
علت قطعی بزرگ اینترنت دیروز :

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

کُدِ مسیریاب اصلی (proxy) برای سرعت، حافظه رو از قبل تخصیص می‌داد و انتظار داشت تعداد ویژگی‌ها کمتر از حد مشخص (مثلاً 200) باشن. وقتی فایل خیلی بزرگ شد، این محدودیت پر شد و برنامشون کرش کرد.

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



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

دانلود از گیت هاب :
https://github.com/ehsanerfani98/bookina


@DevTwitter | <Ehsan Bavaghar/>
Forwarded from Reza Jafari
این AGI ما چی شد؟!؟!؟

@reza_jafari_ai
حوصلم سررفت و تیبل تسک‌هام از نوشن رو وصل کردم به یه مدل ساده. تا هنوز کامل جایگزین نشدیم یکم لذت ببریم از سرعت کدزدن با AI

https://github.com/alirezasakhaei/Notion-AI-Integratoin

@DevTwitter | <سخا/>
تمپلیت r1ec honojs رو یسری تغییرات بهش دادم که خیلی تجربتون بهتر شه:
- سیستم بیلد جدید با rollup
- استفاده از تایپ اسکریپت
- آنالیز کامل باندل سایز پس از بیلد
- دیپلویمنت راحت تر

از اینجا میتونید Use this template رو بزنید و شروع کنید:
https://github.com/amirparsadd/r1ec-edge-hono

@DevTwitter | <Amirparsa Baghdadi/>
از بعد از جنگ از ۲ تا از دوستان فعال در حوزه اینترنت آزاد بی‌خبر موندم و حقیقتش نگران وضعیشونم. اسم نمیارم، ولی امیدوارم از همین طریق پیامم رو ببینن، یا خبری از وضعیت و سلامتیشون بهم برسه.

🔍 ircf.space
@ircfspace
Forwarded from یک برنامه نویس تنبل (Lazy 🌱)
🔶 از سر بیکاری فریم ورک CSS ساختم 🚬

@TheRaymondDev