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

Flowistry

اول با این ابزار شروع شد؛ یک متغییر یا ... رو انتخاب می‌کنید و بعد این extension رو فعال می‌کنید که باعث میشه کل کدهای دیگه fade بشه و فقط بخش‌هایی از کد که این متغییر رو تغییر دادند هایلایت بمونه.

برای خوندن سورس کد پروژه‌های دیگه و دیباگ پروژه‌های خودم خیلی کمکی هست.

اما همین تیم یک ابزار دیگه هم داره که من ۲ روزه دارم باهاش کار می‌کنم ( خیلی کم استفاده کردم ولی قدرتش خیلی زیاده) اونم :
Argus

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

توی دو موردی که من بهش برخوردم به محض سوییچ روی vsode و فعال کردنش متوجه شدم کدوم Trait داره بهم ارور میده و توی ۲ دقیقه حل شد.

تنها مشکلم با این دو مورد :
کاش برای neovim هم پلاگین میدادند؛ چون هی مجبورم جابجا بشم بین این دو مورد.

پیشنهاد می‌کنم حتما استفاده کنید.
این ریپو اومده یه لیستی از چیزایی که اون سورس هست و میتونید سلف هاست کنید رو گزاشته
از وی پی ان تا پسورد منیجر و تایم ترکر و کلی چیزای دیگه
اگه ازونایی هستید که حریم خصوصی براتون خیلی مهمه و میخواید کنترل همه چیز دست خودتون باشه میتونه براتون کاربردی باشه
لینک ریپو
https://github.com/awesome-selfhosted/awesome-selfhosted

@DevTwitter | <ixAbolfazl />
Forwarded from Agora (Alireza)
برای یک سناریو، مجبور شدیم که بریم سراغ persistence کردن ردیس و استفاده از مکانیزم AOF(Append Only File). توی این روش، سربار سیستم‌کال fsync پررنگ میشه. حالا این که دقیقا ماجرا چیه رو سر فرصت توضیح میدم. یک نوتی برای این ماجرا نوشتم که نیازه که سر فرصت مرتبش کنم بعد میذارمش تو کانال.
توی این بررسی که توش پر از نکته و جزئیات جالب بود، خود fsync و چالش‌هاش خیلی برام جذاب شد. ماجرا به طور کل اینه که وقتی شما یک فایل رو تغییری میدین (رایت میکنید) کلی لایه بافر و کش وجود داره. و این تنها محدود به خود سیستم‌عامل نیست. توی سطح storage device هم ما یک لایه‌ی write back cache داریم قبل از این که دیتا واقعا روی دیسک ذخیره بشه. حالا سیستم‌عامل نیاز داره که بتونه حتی این رو هم مدیریت کنه. چون به صورت پیش‌فرض این دستگاه (درایور) به سیستم‌عامل اطلاع میده که IO انجام شده ولی واقعا هنوز دیتا روی کش دیسک ذخیره شده. fsync باید بتونه که این رو مدیریت کنه و دیسک رو فورس کنه که داده رو ذخیره کنه. به طوری باید از ذخیره‌ی قطعی داده مطمئن بشه.

توی این دو تا پست، راجع‌به این مسیر و جزئیاتش حرف میزنه و این که چطوری لینوکس (کرنل نسخه‌ی ۶) در فایل سیستم ext4 این کار رو مدیریت می‌کنه.

Explicit volatile write back cache control

The Secret Life of fsync
امروز ساعت ۱۸:۳۰ به وقت ایران یک ارائه رایگان از طرف Addy Osmani و انتشارات O'Reilly با عنوان Coding for the Agentic World برگزار میشه و که قراره موضوعات زیر رو پوشش بدن:

- Agentic interfaces: Moving beyond chat UX to sophisticated agent interactions
- Tool-to-tool workflows: How agents chain across environments to complete complex tasks
- Background coding agents: Asynchronous, autonomous code generation in production
- MCP and agent protocols: The infrastructure enabling the agentic web

توضیحات بیشتر و ثبت‌نام:
https://www.oreilly.com/AgenticWorld/

@aminrbg
از محتواهای خیلی خوبی که اخیراً بهش برخوردم کتاب رایگان Agentic Design Patterns از Antonio Gulli هستش. ایشون در حال حاضر با عنوان شغلی Sr Director, Distinguished Engineer, CTO Office در شرکت Google مشغول به کار هستن.

نویسنده در چپترهایی مجزا و با مثال‌های عملی الگوهای استفاده از Agentها رو ارائه می‌ده. من فکر می‌کنم کتاب مفیدیه چون هم به تازگی منتشر شده و اطلاعات بروزی داره و هم نگاهش به مسئله خیلی کاربردیه. خودم هم شروع به خوندنش کردم.

Agentic Design Patterns
@aminrbg
Forwarded from یک برنامه نویس تنبل (Lazy 🌱)
🔶 یکی از چیزهایی که بیشتر در مورد Inertia.js به آن افتخار میکنم، نحوه مدیریت به‌ روزرسانی‌های asset است. وقتی شما یک باندل جاوا اسکریپت جدید را منتشر می کنید، سرور در درخواست بعدی این تغییر را تشخیص میدهد و به فرانت اند می‌گوید که به جای یک بازدید SPA، یک بارگذاری کامل صفحه انجام دهد تا assets به صورت خودکار به ‌روزرسانی شوند. ما هش فعلی asset را در هر درخواست پیگیری میکنیم و اگر تغییر کند، سرور یک پاسخ 409 conflict بر می‌گرداند.

چیزی که واقعاً جالب است این است که این هش در state تاریخچه نیز ذخیره میشود و بنابراین اگر به عقب برگردید و assets شما با چیزی که در یک درخواست قبلی استفاده شده مطابقت نداشته باشد، این مکانیزم یک بارگذاری تازه از سرور را اعمال میکند. این یعنی داده‌های سرور و props کلاینت هرگز از هماهنگی خارج نمی شوند.

#توییت

@TheRaymondDev
Forwarded from Geek Alerts
ساخت انیمیشن توی هالیوود معمولا سه سال طول میکشه و بودجه‌ای بالای ۱۰۰ میلیون دلار لازم داره، ولی الان OpenAI اومده از یه انیمیشن که قراره با هوش‌مصنوعی ساخته بشه به اسم «کریتِرز» حمایت کرده و قراره توی ۹ ماه با بودجه ۳۰ میلیون دلار بسازنش.

البته کل انیمیشن با AI نیست، چیزهایی مثل صداپیشه‌ها، طراحی اولیه، فیلم‌نامه توسط تیم حرفه‌ای انجام میشه و برای تبدیل طرح‌ها به ویدیو از Sora و DALL·E میخوان استفاده کنن. از این نظر اهمیت داره که اگه این پروژه موفق باشه میتونه صنعت هالیوود رو تغییر بده و باعث بشه پروژه‌های بیشتری با هزینه کمتر تولید بشن.

فیلم Critterz قراره سال ۲۰۲۶ تو جشنواره کن نمایش داده بشه. [L]

🤓 @geekalerts
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Gopher Academy
🔵 عنوان مقاله
How Go Schedules Millions of Goroutines: A Deep Dive into GMP

🟢 خلاصه مقاله:
این مطلب با نگاهی عمیق و قابل‌فهم توضیح می‌دهد که زمان‌بند Go چگونه با مدل GMP (گورو‌تین‌ها، رشته‌های سیستم‌عامل، و پردازنده‌های منطقی) میلیون‌ها گورو‌تین را روی تعداد کمی نخ اجرا می‌کند. سازوکار صف‌های اجرا، «کار‌ربایی» بین پردازنده‌ها، نحوهٔ ایجاد و توقف گورو‌تین‌ها، مدیریت بلاک‌شدن روی I/O یا syscall، پیش‌امپشن برای عدالت و کاهش تأخیر، و تعامل زمان‌بند با جمع‌آوری زباله بررسی می‌شود. همچنین نکات عملی مانند تنظیم GOMAXPROCS، پرهیز از انفجار گورو‌تین‌ها، مدیریت فشار کانال‌ها، و استفاده از ابزارهای ردیابی و pprof برای عیب‌یابی مطرح شده است. در کنار آن، دو راهنمای کاربردی معرفی می‌شود: ساخت تصویر کانتینر از کد Go با Depot API (تأکید بر بیلد سریع، کش و ادغام در CI) و استقرار یک سایت استاتیک Hugo روی Hetzнер (از آماده‌سازی تا TLS و تحویل پایدار). این مجموعه پلی بین تئوری زمان‌بندی و استقرار عملی ایجاد می‌کند.

🟣لینک مقاله:
https://golangweekly.com/link/173629/web


👑 @gopher_academy
Forwarded from Geek Alerts
گوگل بلاخره سطح محدودیت‌های Gemini رو اعلام کرد، با مدل Gemini 2.5 Pro تو سطح رایگان میشه ۵ پیام در روز ارسال کرد. ۱۰۰ عکس میشه ساخت، ۵ گزارش Deep Research در ماه میشه گرفت، امکان ساخت ویدیو رایگان نیست، و حداکثر ۳۲ هزار توکن پشتیبان میشه، ویژگی Deep Think هم به صورت محدود برای کاربران Pro در دسترس هست. [L]

🤓 @geekalerts
Please open Telegram to view this post
VIEW IN TELEGRAM
https://github.com/ItsReZNuM/4InARowTelBot

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

@DevTwitter | <Agha Reza/>
Forwarded from Philocode
یه باگ داشتم، متوجه شدم یه اشتباه عجیب کردم. این دو حالت رو ببینید:

var_dump([$someVariable]);
var_dump((array) $someVariable);

وقتی که مقدار someVariable نال باشه، اولی مشکل ایجاد می‌کنه. چون خروجی‌ها این‌طور می‌شه:

array(1) {
[0]=>
NULL
}
array(0) {
}

دیگه اولی یه آرایه‌ی خالی نیست.
Forwarded from Armon technical logs (armon Taheri)
مثل اینکه خبر ها حاکی از اون عه اقا وصال
@Vesal_J
روی کور یوتولیتی راست ( شامل کامند های اصلی لینوکس مثل cp , ls , pwd , ... )مشارکت کردن
این به معنی اون که در آینده نه چندان دور کدی که ایشون اضافه کردن در تمام دیسترو های اصلی لینوکس دنیا الردی نصب و قابل دسترس خواهد بود
https://github.com/uutils/coreutils/pull/8565
اگر پخش زنده آکادمی ۲۰۲۵ و همینطور تصاویری که از کی‌دی‌ای لینوکس منتشر شده رو دیده باشید و درمورد موز 🍌 براتون سوال شده که چی هستش، داستانش از این قراره، طبق ویکی کی‌دی‌ای:


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

کمی تاریخچه: در ابتدا از https://files.kde.org/kde-linux/ به عنوان محل به‌روزرسانی استفاده می‌کردیم. این به طرز بدی شکاف تغییر نام به kde-linux را پر کرد و در نهایت برای مهاجرت rootfsv2 از هم پاشید. حالا به جای آن این کار را می‌کنیم:
‏* https://files.kde.org/kde-linux/ حاوی تصویر دیسک .raw و همچنین .torrent مربوط به آن است
‏* https://files.kde.org/kde-linux/sysupdate/*/ حاوی همه مصنوعات sysupdate است
‏* https://files.kde.org/kde-linux/sysupdate/v2/ و غیره نسخه‌های مختلف هستند
‏* https://files.kde.org/kde-linux/vacuum.yaml کدگذاری می‌کند که کدام بیلدها را باید برای همیشه نگه داشت (آنها را سنگ قبر می‌نامند). همچنین تصاویر طلایی را کدگذاری می‌کند (یعنی آنهایی که می‌خواهیم نگه داریم چون می‌دانیم خوب هستند)

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

بیایید مثال از v2 به v3 را در نظر بگیریم: می‌خواهیم نسخه‌ای در v2 ایجاد کنیم که آخرین نسخه باشد تا بتوان گفت. وظیفه این نسخه این است که یک نسخه v2 باشد در حالی که تغییرات sysupdate.d برای v3 را فراهم کند. شاید آن جمله را تا زمانی که جا بیفتد بخوانید. مصنوعات سنگ قبر باید شبیه آنهای v2 باشند، اما دستورالعمل‌های به‌روزرسانی (یعنی فایل‌های sysupdate.d) درون سنگ قبر باید شبیه آنهای v3 باشند.

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

* اطمینان حاصل کنید v2 (یعنی git master) واقعاً کار می‌کند
‏* v3 را آماده کنید (احتمالاً در یک شاخه) و شاید کمی آن را آزمایش کنید تا مطمئن شوید پیکربندی‌های ارتقا کار می‌کنند
* نسبت به دسترسی کلید امضا فوق‌العاده مراقب باشید. شاخه‌های تصادفی به طور پیش‌فرض امضا ندارند!
* upload.sh را در شاخه v3 به‌روزرسانی کنید تا خط به‌روزرسانی v3 را شروع کند
* تعدادی بیلد v3 برای آزمایش بسازید
* یک بیلد v2 با پیکربندی‌های sysupdate.d نسخه v3 بسازید
* یک بیلد v3 بسازید تا نسخه بالاتری داشته باشید
* ارتقا را آزمایش کنید
‏* vacuum.yaml را ویرایش کنید یا از مدیر سیستم بخواهید تا بیلد v2 (و احتمالاً اولین v3 خوب) را به عنوان سنگ قبر (و احتمالاً طلایی) علامت‌گذاری کند.



https://community.kde.org/KDE_Linux/Banana_Split

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

عددش هرچقدر که هست، در مورد این، می‌تونید به Magnet اعتماد کنید و خب، طبق معمول این روزها، با Rust نوشتمش.

https://github.com/naseridev/magnet

@DevTwitter | <Nima Naseri/>
Forwarded from Linuxor ?
ابزار پایتونی ArchiveBox یه ابزار متن‌باز و self-hosted برای بایگانی وب هستش که به شما این امکانو می‌ده تا صفحات وب، و منابعی مثل Pocket یا Pinboard رو ذخیره کنین. این ابزار محتوای صفحات رو به صورت HTML، JavaScript، PDF، تصاویر، ویدیوها و دیگر فرمت‌ها ذخیره می‌کنه.

archivebox.io

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


ایده‌هاتونو بریزید وسط می‌خوام آپدیت ماژور بدم.

از هرچیز مفیدی استقبال میشه.


#موقت
Forwarded from یک برنامه نویس تنبل (Lazy 🌱)
🔶 بسیاری از مهندسان ارشد و مدیران از این می ‌ترسند که حقوق بالاتر، گزینه ‌های جابجایی شغلی را محدود کند. نظر من این است...

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

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

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

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

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

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

هر چه در مسیر شغلی بالاتر می‌روید، تمرکز بر انتخاب‌های درست اهمیت بیشتری پیدا می‌کند. محیط ‌هایی را انتخاب کنید که در آن شکوفا شوید، نه صرفاً دوام بیاورید. اشکالی ندارد برای یک جابجایی درست زمان بگذارید، اما مطمئن شوید این تغییر با تخصص شما همسو است.

هرچه بالاتر می‌روید، باید روی نقاط قوت خود بیشتر سرمایه‌گذاری کنید تا تأثیرتان چندبرابر شود.

@TheRaymondDev
Forwarded from Linuxor ?
این سایته توش همه الگوریتم های مهمی که با C پیاده شدن رو جمع کرده توی کامنت های هر بخش توضیحات هر الگوریتم رو نوشته می‌تونید بخونیدش:

thealgorithms.github.io/C

@Linuxor