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

پست پین رو بخونید
https://t.iss.one/dev_perfects/455


ارتباط:
https://t.iss.one/HidenChat_Bot?start=936082426
Download Telegram
Forwarded from Gopher Academy
⚙️ Span Allocation: mheap.alloc

در فضای عظیم آدرس مجازی، پیدا کردن چند صفحه‌ی آزاد پشت سر هم (contiguous pages) کار ساده‌ای نیست — مخصوصاً وقتی چندین goroutine همزمان در حال تخصیص حافظه‌ان 😵‍💫

در نسخه‌های اولیه‌ی Go، تمام عملیات‌های mheap به‌صورت global sync انجام می‌شدن، یعنی فقط یک goroutine در آنِ واحد می‌تونست حافظه بگیره یا آزاد کنه.
نتیجه؟ 🔻 سرعت کم و افزایش latency در بارهای زیاد.

🧠 اما Go جدید با طراحی جدیدی به نام Scalable Page Allocator این مشکل رو حل کرده:

تقسیم‌بندی allocator برای کاهش قفل‌گذاری (lock contention)

تخصیص هم‌زمان و مستقل در چندین CPU

بهبود چشمگیر throughput در workloadهای سنگین

در واقع، mheap.alloc امروزی طوری طراحی شده که بتونه در محیط‌های بسیار concurrent هم حافظه رو سریع و هوشمند مدیریت کنه 🚀

👑 @gopher_academy
دارم سعی میکنم سوالات متداول و مهم از طراحی سیستم که در مصاحبه ها پرسیده میشه و از خودم هم پرسیده شده رو به صورت ویدئو ضبط کنم و کلیدواژهای مهم برای هر سوال رو در حد توان و وقتی که دارم کمی توضیح بدم.

توی هر سوال به موضوعات مهمش بیشتر پرداخته شده که در مصاحبه اهمیت بیشتری داره تا نشون بده از یک سری مفاهیم اون موضوع شناخت دارید.

البته که در هر سوال مطالب زیادی هست ولی سعی کردم هم موارد مهمش توضیح داده بشه و هم ساده باشه.

این پلی لیست در حدود 40 ویدئو هست که به مرور منتشر میشه.
در حال تکمیل پلی لیست های دیگه هم هستم :))
https://www.youtube.com/watch?v=3J-2KRValAA&feature=youtu.be

@DevTwitter | <Mohammad Keshavarz/>
Forwarded from Gopher Academy
📦 Tracking Free Pages

در Go، فضای آدرس مجازی بسیار بزرگه، بنابراین برای مشخص کردن وضعیت هر صفحه (آزاد یا در حال استفاده) از bitmap استفاده می‌شه

در این bitmap:

1 = صفحه در حال استفاده (توسط span)

0 = صفحه آزاد

🔹 هر bitmap شامل ۸ عدد uint64 هست (یعنی ۶۴ بایت) و وضعیت ۵۱۲ صفحه‌ی متوالی رو نگه می‌داره.
🔹 از اون‌جا که هر arena در Go اندازه‌ی ۶۴ مگابایت داره و هر صفحه ۸ کیلوبایت هست، پس در هر arena:

۸۱۹۲ صفحه داریم

۱۶ تا bitmap برای پوشش کل صفحات

در مجموع فقط ۱ کیلوبایت حافظه برای ذخیره‌ی وضعیت کل صفحات لازمه! ⚡️

اما مشکل: پیمایش bitmap برای پیدا کردن صفحات آزاد هنوز کند بود
برای حل این، Go مفهومی به نام Summary معرفی کرد که سه ویژگی داره:

start → تعداد صفرهای پشت سر هم از ابتدای bitmap

end → تعداد صفرهای پشت سر هم از انتهای bitmap

max → طولانی‌ترین دنباله‌ی صفرها در کل bitmap

هر بار که صفحه‌ای allocate یا free می‌شه، این summary بلافاصله به‌روزرسانی می‌شه تا Go بتونه خیلی سریع‌تر صفحات آزاد رو پیدا کنه 🚀

👑 @gopher_academy
Forwarded from Gopher Academy
🧩 Bitmap Summary در مدیریت صفحات Go

در این شکل، هر بیت از bitmap نشان‌دهنده‌ی وضعیت یک صفحه‌ی حافظه است:

0 → صفحه آزاد (free)

1 → صفحه در حال استفاده (allocated)

برای بهینه‌سازی جستجوی صفحات آزاد، Go برای هر bitmap سه مقدار خلاصه‌شده (summary) نگه می‌داره:

start = 3 → یعنی در ابتدای bitmap، ۳ صفحه‌ی متوالی آزاد داریم

end = 7 → یعنی در انتهای bitmap، ۷ صفحه‌ی متوالی آزاد داریم

max = 10 → طولانی‌ترین دنباله‌ی صفحات آزاد در کل bitmap برابر با ۱۰ صفحه است

🔹 فلش در تصویر جهت افزایش آدرس حافظه (از پایین به بالا) رو نشون می‌ده.
در نتیجه، ۳ صفحه‌ی آزاد در بخش پایین‌تر حافظه (low address) و ۷ صفحه‌ی آزاد در بالاترین بخش (high address) قرار دارن.


این ساختار باعث می‌شه Go خیلی سریع‌تر بتونه محدوده‌های بزرگ از صفحات آزاد رو پیدا کنه بدون این‌که کل bitmap رو اسکن کنه — فقط با نگاه کردن به summaryها! ⚡️

👑 @gopher_academy
Forwarded from GitHub Trending Daily
🔥 New GitHub Trending Repositories 🔥

Found 9 new trending repositories:

1. daytona by daytonaio
📝 Daytona is a Secure and Elastic Infrastructure for Running AI-Generated Code
💻 TypeScript | 22,565 | 🌟 Today: 242
🔗 Link

2. RSSHub by DIYgod
📝 🧡 Everything is RSSible
💻 TypeScript | 39,072 | 🌟 Today: 18
🔗 Link

3. Everywhere by DearVa
📝 A context-aware AI assistant for your desktop. Ready to respond intelligently, seamlessly integratin...
💻 C# | 350 | 🌟 Today: 84
🔗 Link

4. HowToCook by Anduin2017
📝 程序员在家做饭方法指南。Programmer's guide about how to cook at home (Simplified Chinese only).
💻 Dockerfile | 94,782 | 🌟 Today: 56
🔗 Link

5. spring-ai-alibaba by alibaba
📝 Agentic AI Framework for Java Developers
💻 Java | 6,092 | 🌟 Today: 19
🔗 Link

6. bun by oven-sh
📝 Incredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one
💻 Zig | 80,991 | 🌟 Today: 92
🔗 Link

7. diffusers by huggingface
📝 🤗 Diffusers: State-of-the-art diffusion models for image, video, and audio generation in PyTorch.
💻 Python | 31,073 | 🌟 Today: 17
🔗 Link

8. klavis by Klavis-AI
📝 Klavis AI (YC X25): MCP integration layers that let AI agents use thousands of tools reliably.
💻 Python | 4,708 | 🌟 Today: 47
🔗 Link

9. MinerU by opendatalab
📝 Transforms complex documents like PDFs into LLM-ready markdown/JSON for your Agentic workflows.
💻 Python | 45,732 | 🌟 Today: 68
🔗 Link


🔘 @github_trending_daily
Forwarded from Linuxor ?
خیلیا هنوز نمی‌دونن که این مدل های هوش مصنوعی اصلا بر پایه کامل کردن جمله ساخته شدن (در اصل مدل‌های پیش‌بینی کلمه بعدی هستن و به مرور بهشون منطق و استدلال و... اضافه کردن) یعنی می‌تونی یه چیزی بهش بدی به طرز فوق العاده ای کاملش کنه


@Linuxor
Forwarded from Linuxor ?
چند سال پیش که خام تر بودم، نرم افزار های بزرگ رو که نگاه می‌کردم کلی ازشون اشکال پیدا می‌کردم می‌گفتم اینا که این همه پول نیرو و علمشو دارن چرا همچین اشکالاتی دارن؛

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

@Linuxor
Forwarded from Linuxor ?
توی اینترنت پر پروژه های آماده ماشین لرنینگی پایتونی هستش اما هیچ کدوم توی پروداکشن واقعی استفاده نمی‌شن و بیشتر جنبه تحقیقی تفریحی دارن، اینجا لیست پروژه های ماشین لرنینگی هست که واقعا می‌شه برای پروداکشن و هزاران کاربر استفاده بشن

github.com/EthicalML/awesome-production-machine-learning

@Linuxor
Forwarded from 🎄 یک برنامه نویس تنبل (Lazy 🌱)
🔶 سایت جابینجا یه سری فیلتر جدیدی تعریف کرده که با آن بتوانید نتایج اگهی مرتبط به آن فیلتر مشاهده کنید.

https://jobinja.ir/

@TheRaymondDev
ویژوال استودیوی 2026 توسط مایکروسافت منتشر شد
استفاده کنید و لذت ببرید
- ویژگی های جدید
ادغام با هوش مصنوعی
افزایش سرعت و کارایی
بهبود تجربه کاربری
پشتیبانی از سی شارپ 14 و دات نت 10
بهبود هات ری لود توی asp.net و blazor
بهبود سرعت بیلد و اجرای پروژه ها
انجام اپدیت ها به صورت ماهانه

@DevTwitter | <Säber V/>
Forwarded from محتوای آزاد سهراب (Sohrab)
برای بیرون کشیدن پیکربندی کرنل روی یک توزیعی که دارید استفاده می‌کنید چندتا راه وجود داره.


یکی از اون راه‌ها استفاده از zcat برای پرونده config.gz هستش.

zcat /proc/config.gz > ~/kernel-config

و یا از مسیر بوت:
cp /boot/config-$(uname -r) ~/kernel-config

و در انتها می‌تونید محتویات رو روی پرونده .config در مسیر ریشه کدمنبع کرنل بنویسید و کرنل رو به صورت عادی بسازید و استفاده کنید.


https://wiki.archlinux.org/title/Kernel/Traditional_compilation


و البته توصیه می‌کنم این کار رو وقتی بکنید که می‌دونید دارید چیکار می‌کنید :)




من یک بیلد از کرنل ۶.۱۷ با پیکربندی اوبونتو گرفتم و می‌خوام ازش بنچمارک بگیرم و ببینم چه تفاوت عملکردی داره.



@SohrabContents
Forwarded from Linuxor ?
یکی از مدل‌های فوق‌العاده تولید عکس از متن DALL-E هستش،
اما خیلی سنگینه و روی سیستم‌های معمولی جواب نمیده!
اینجا اومدن یه نسخه سبک‌ترش ساختن به اسم DALL-E Mini که باهاش می‌تونی فقط با یه جمله مثل "یک گربه ربات در باغ گل شبانه" یه تصویر زیبا بسازی

فقط کافیه ایمپورتش کنید و ازش استفاده کنید (می‌تونید اول توی colab تستش کنید)

github.com/borisdayma/dalle-mini


@Linuxor
Forwarded from محتوای آزاد سهراب (Sohrab)
البته اینجا یک چیزی گفته بود که من رد شده بودم ازش:

دستگاه‌های قدیمی

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

وابستگی بیشتر گوگل به قابلیت‌های جدید eBPF باعث شده پشتیبانی از دستگاه‌هایی با کرنل‌های قدیمی لینوکس به‌طور فزاینده‌ای دشوار شود. اندروید 16 «QPR0» «نیازمند لینوکس 5.4 و بالاتر است، و در زمان نگارش، ویژگی‌های لازم تنها تا نسخه 4.14 به‌طور کامل بازپورت شده‌اند.

متأسفانه، LineageOS 22.2 هنوز از بسیاری از دستگاه‌هایی که از نسخه‌های 4.4 و 4.9 استفاده می‌کنند، پشتیبانی می‌کند. تا کنون هیچ بازپورت کامل ویژگی‌های مورد نیاز برای این کرنل‌ها وجود ندارد. نکته مثبت این است که، برخلاف از دست دادن گسترده دستگاه‌هایی که هنگام مهاجرت از LineageOS 18.1 تجربه کردیم، این نسخه‌ها می‌توانند نجات پیدا کنند اگر کسی کار تطبیق بازپورت‌ها را برعهده بگیرد. اگر موفق شدید، لطفاً با devrel(at)lineageos.org تماس بگیرید، خوشحال می‌شویم آن را بررسی کنیم!

ما در حال حاضر تنها روی کرنل‌های عرضه‌شده تمرکز می‌کنیم که بازپورت‌های eBPF آن‌ها ۱:۱ انجام شده باشد تا از اینجا به بعد با لینوکس 5.4 ویژگی‌ها برابر شوند و مشکلات سازگاری پیش نیاید.



از لینیج ۲۳ (اندروید ۱۶) اگر دستگاهتون کرنلش از ۴.۱۴ قدیمی‌تر باشه و امکان بازپورت نداشته باشه، دیگه پشتیبانی نمیشه دستگاهتون.

البته تلاش‌هایی هم صورت گرفته برای دستگاه‌هایی که کرنل مین‌لاین دارن که بشه از اون استفاده کرد، مثل Pocophone f1 و یا x3 nfc.


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



@SohrabContents
Forwarded from یه شعر (Poem Bot)
حافظ | غزلیات | غزل شمارهٔ ۳۶۵

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

#حافظ | گنجور
📍@iipoem
Forwarded from Linuxor ?
Media is too big
VIEW IN TELEGRAM
زندگی لینوس توروالدز خالق لینوکس و گیت ببینید چطوریه!

@Linuxor
این ریپوی گیت‌هاب مجموعه‌ای از Agentهای آماده در حوزه‌های مختلف داره که می‌تونید مستقیماً توی Claude Code ازشون استفاده کنید.

پوشش گسترده‌ای هم داره — از Full Stack و SEO گرفته تا Code Review، Database و Security.

https://github.com/wshobson/agents

@DevTwitter | <Mohammad/>
Forwarded from Code Module | کد ماژول (𔓙)
بدرود با نوشتن دستی API ها و تایپ هاشون ☃️

پکیج Orval یک ابزار هوشمنده که از روی فایل OpenAPI یا Swagger (که بک‌اند دولوپر برات می‌فرسته)، به صورت خودکار ریکوست‌ها و تایپ‌ مدل ها و رسپانس هارو برای کار با API می‌سازه.

تو پروژه‌های بزرگ که تعداد APIها زیاده (مثلاً ۵۰ تا endpoint یا بیشتر)، نوشتن دستی اون همه ریکوست و تایپ خیلی وقت‌گیره و امکان بروز اشتباه و باگ هست.

این پکیج ساخته شده تا:

سرعت توسعه رو بالا ببره.

هماهنگی با بک‌اند رو حفظ کنه.

خطاهای تایپی و ارتباطی رو از بین ببره.


ویژگی و مزیت های Orval

🌪تولید خودکار کد API: از روی فایل OpenAPI (.yaml) یا (json.) Swagger، به‌صورت خودکار توابع ریکوست (GET, POST, …) می‌سازه.

🌪تولید تایپ های TypeScript: تایپ مدل‌های داده و رسپانس هارو کامل جنریت میکنه.

🌪هماهنگی کامل با بک‌اند: وقتی بک‌اند تغییر می‌کنه، فقط نیازه یک بار کامند Orval رو اجرا کنی تا همه‌چی آپدیت بشه.

🌪پشتیبانی از کتابخونه‌های مختلف: بر اساس نیازتون میتونه خروجی رو برای Axios، Fetch API، React Query، SWR و … تولید کنه.

🌪امکان Mock کردن API: بدون نیاز به سرور واقعی، پاسخ‌های فیک Mock می‌سازه.

🌪 ساختار تمیز و سازمان‌یافته کدها: خروجی‌ها منظم، خوانا و آماده استفاده در پروژه هستن.

🔗 Document

#orval
@CodeModule @CodeModuleGap
Forwarded from Code Module | کد ماژول (𔓙)
حالا مگه بک اند دولوپر زیر بار سواگر type safe میره؟😞
Forwarded from Arvin
آموزش اندروید مقدماتی

شروع مسیر اندروید با یادگیری مفاهیم کاربردی و توسعه اپلیکیشن‌ ساده با کاتلین.

فقط ۲۴ ساعت فرصت داری این دوره رو با ۴۰ درصد تخفیف اونم به صورت قسطی ثبت‌نام کنی!

🔗 https://quera.org/r/pi1sv