DevSource
86 subscribers
28 photos
10 videos
6 files
48 links
Download Telegram
مسئله:
چالش مدیریت بافت در عامل های هوش مصنوعی و مصرف انفجاری توکن
استراتژی:
MikroSkill
کپسوله سازی مهارت و ایجاد چهارچوب تشخیص مهارت های موجود و مرز میان بروزرسانی یک مهارت یا ایجاد مهارت جدید

این فریم ورک میتواند نرخ مصرف توکن را تا ۹۳ درصد کاهش داده و نرخ کامپایل موفق کدها را از ۴۰ به ۸۰ درصد برساند

اطلاعات بیشتر در مقاله ی ذیل:
https://arxiv.org/abs/2606.05720

#سامان #AI

⚠️ آدرس کانال در تلگرام(حتما عضو بشید)
🚀 @devsourcech
در بله
🔹 @devsource

سایت مستندات برنامه نویسی:
🥇 https://devsource.ir
اگر به اجرای مدل های LLM در لوکال و کدنویسی با اونها علاقه مندید و مثل من با مشکلات زمینه ی کانتکست٬ توهم مدل٬ نادیده گرفتن قوانین٬ عدم تعامل صحیح در Agent هایی مثل هارنس و ... دست و پنجه نرم میکنید
این مقاله میتونه انتقال تجربه ی خوبی از alexellis (‌ یک توسعه دهنده ی فعال و متخصص ) باشه

https://blog.alexellis.io/local-ai-is-not-opus

#سامان #AI

⚠️ آدرس کانال در تلگرام(حتما عضو بشید)
🚀 @devsourcech
در بله
🔹 @devsource

سایت مستندات برنامه نویسی:
🥇 https://devsource.ir
1
HPC چیست؟
High-Performance Computing
اگه بخوام خیلی ساده بگم، HPC یعنی وقتی یه مسئله اونقدر سنگین و پیچیده هست که یه کامپیوتر معمولی (حتی اگه خیلی قوی باشه) می‌خواد هفته‌ها روش وقت بذاره، ما می‌ریم سراغ دنیای HPC تا اون کار رو در چند ساعت یا حتی دقیقه انجام بدیم.

⚙️ حالا چطوری کار می‌کنه؟

توی سیستم‌های معمولی، ما با یه CPU و یه مقدار رم سر و کله می‌زنیم. اما توی HPC، ما با یه “کلاستر” طرفیم. یعنی صدها یا حتی هزاران سرور رو به هم وصل می‌کنیم تا مثل یه موجود واحد، با هم محاسبات رو انجام بدن.

فرق اصلی توی “موازی‌سازی” (Parallelism) هست. فرض کنید می‌خوای یه کتاب ۱۰۰۰ صفحه‌ای رو ترجمه کنی؛ اگه یه نفر باشه، خیلی طول می‌کشه. اما اگه ۱۰۰ نفر رو بیاری و به هر کدوم ۲۰ صفحه بدی، کار خیلی سریع‌تر تموم می‌شه. HPC دقیقاً همین کار رو با داده‌ها انجام می‌ده.

🖥️ نقش انویدیا و GPUها کجاست؟

خوب، اینجا داستان جالب می‌شه… قدیما همه فکر می‌کردن HPC فقط با CPUهای خیلی قدرتمند ساخته می‌شه. اما با اومدن هوش مصنوعی، بازی عوض شد. GPUها (همون کارت گرافیک‌هایی که برای گیمینگ هم استفاده می‌شن) چون هزاران هسته کوچک دارن، توی انجام محاسبات ریاضی همزمان، از CPUها خیلی جلوترن. الان دیگه اکثر کلاسترهای بزرگ دنیا، ترکیبی از CPUهای قوی و GPUهای وحشتناک قدرتمند انویدیا هستن تا بتونن مدل‌های عظیم مثل GPT رو آموزش بدن.

خلاصه ماجرا اینه:

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


#سامان #مفاهیم

⚠️ آدرس کانال در تلگرام(حتما عضو بشید)
🚀 @devsourcech
در بله
🔹 @devsource

سایت مستندات برنامه نویسی:
🥇 https://devsource.ir
DevSource
Photo
میدونستید یک هنری داریم به اسم ASCII Art ؟
🎨 یه بار که داشتیم روی یه پروژه‌ی محیط ترمینال (CLI) کار می‌کردیم، می‌خواستم یه ظاهر باحال‌تر بهش بدم که وقتی کاربر برنامه رو باز می‌کنه، یه خوش‌آمدگویی شیک ببینه… راستش اونجا بود که با دنیای جذاب ASCII Art روبرو شدم.

🖼️ اگه تا حالا توی ترمینال یا لاگ‌های سیستم، دیدید که با استفاده از کاراکترهای ساده مثل / \ | _ یه شکل یا یه کلمه بزرگ ساخته شده، همون ASCII Art هست.

🤔 حالا شاید بپرسید این کاراکترهای بی‌روح چیکار می‌کنن؟ اصلاً چرا وسط این همه گرافیک و تصویر باکیفیت، هنوز سراغ این چیزها می‌ریم؟

خوب، داستان اینه که توی دنیای زیرساخت و ابزارهای مهندسی، ما همیشه با محیط‌های بدون گرافیک (Headless) سر و کار داریم. مثلاً وقتی دارید با SSH به یه سرور وصل می‌شید یا دارید لاگ‌های یه کانتینر رو توی داکر می‌بینید، شما هیچ مانیتور یا محیط گرافیکی ندارید. اینجاست که ASCII Art می‌تونه:

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

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

۳. شخصی‌سازی: محیط خشک و بی‌روح ترمینال رو برای خودتون یا تیمتون خاص کنید.

🛠️ حالا چطوری این کار رو انجام می‌دیم؟

اصلاً لازم نیست بشینید ساعت‌ها با کیبورد کاراکتر بچینید! کلی ابزار و کتابخانه هست که این کار رو براتون انجام می‌ده.

مثلاً اگه بخواید توی پایتون یه متن رو سریع به استایل ASCII تبدیل کنید، کتابخانه‌ی pyfiglet معجزه می‌کنه. فقط یه خط کد می‌نویسید و تمام! یا اگه دنبال ابزارهای آنلاین هستید، سایت‌هایی مثل asciiart.eu کلی مدل مختلف رو دم دستتون گذاشتن.

خلاصه اینکه، ASCII Art یه راه ساده و خیلی باحال برای اضافه کردن شخصیت به کدهایی هست که توی محیط‌های متنی اجرا می‌شن.

#سامان #مفاهیم

⚠️ آدرس کانال در تلگرام(حتما عضو بشید)
🚀 @devsourcech
در بله
🔹 @devsource

سایت مستندات برنامه نویسی:
🥇 https://devsource.ir
اگر برای مصاحبه Node.js آماده می‌شید، این لیست سوالات رو از دست ندید.

بیش از ۱۰۰ سوال Node.js از مباحث پایه تا موضوعات مهمی مثل Event Loop، Async/Await، Streams، Error Handling، Worker Threads و Performance داخل این مجموعه جمع‌آوری شده.

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

لینک: http://gist.github.com/paulfranco/9f88a2879b7b7d88de5d1921aef2093b

#نود_جی_اس #NodeJS #مصاحبه_فنی #بک_اند #جاوااسکریپت #علی

⚠️ آدرس کانال در تلگرام(حتما عضو بشید)
🚀 @devsourcech
در بله
🔹 @devsource

سایت مستندات برنامه نویسی:
🥇 https://devsource.ir
2
🚀 بازم سلام!
می‌خوام در مورد یه چیزی صحبت کنم که شاید اسمش رو کمتر شنیده باشین ولی اگه با دنیای برنامه‌نویسی وب سروکار داشته باشین، خیلی به دردتون می‌خوره: *Asynchronous Local Storage (ASL)*.

قبل از اینکه بریم سراغ ASL، بذارین یه خاطره تعریف کنم…

🐳 یه وقتایی نیازه یه سری اطلاعات رو سمت کاربر (روی مرورگرش) ذخیره کنیم. اولش ممکنه بریم سراغ همون روش‌های قدیمی، مثلاً localStorage جاوااسکریپت. در این روش همه چی خوبه تا اینکه متوجه میشیم این localStorage یه مشکل اساسی داره: *همزمان (synchronous) کار می‌کنه.*

یعنی چی؟ یعنی وقتی می‌خوایم یه اطلاعاتی رو ذخیره کنیم یا بخونیم، کل نخ اصلی (main thread) مرورگر رو قفل می‌کنه تا این عملیات تموم بشه. فکر کنین کاربر داره یه کاری انجام می‌ده، یه دکمه رو می‌زنه که یه اطلاعاتی رو ذخیره کنه، و ناگهان صفحه یه‌لحظه هنگ می‌کنه! اصلاً تجربه خوبی نیست، مخصوصاً اگه حجم اطلاعات زیاد باشه یا سرعت دیسک کاربر پایین باشه.

اینجا دقیقاً مشکل کجاست؟ 🤔

این قضیه بلوکه کردن نخ اصلی، باعث می‌شه رابط کاربری (UI) کند بشه و کاربر حس کنه برنامه کند و بی‌جواب شده. مخصوصاً توی اپلیکیشن‌های تک‌صفحه‌ای (SPA) که همه چی باید روان و سریع اتفاق بیفته، این موضوع واقعاً آزاردهنده‌ست.

حالا چیکار کنیم؟ راه حل چیه؟

اینجاست که *Asynchronous Local Storage (ASL)* وارد می‌شه! 😎

ASL یه راهکار مدرن‌تر برای ذخیره‌سازی اطلاعات سمت کاربره که از APIهای ناهمزمان (asynchronous) استفاده می‌کنه. یعنی چی؟ یعنی وقتی شما یه دستوری برای ذخیره یا خوندن اطلاعات می‌دین، ASL این کار رو در پس‌زمینه انجام می‌ده و جلوی نخ اصلی رو نمی‌گیره. وقتی عملیات تموم شد، از طریق Promise یا Callback به شما خبر می‌ده.

این دقیقا شبیه اینه که یه دستیار داری که کارهای وقت‌گیر رو انجام می‌ده و شما همزمان می‌تونی به کارهای دیگه برسی.

یه مثال واقعی بزنم:
فرض کنید یه اپلیکیشن مدیریت وظایف (To-Do List) دارین که لیست کارها رو توی مرورگر ذخیره می‌کنه. اگه از localStorage استفاده کنین، وقتی کاربر یه کار جدید اضافه می‌کنه و لیست طولانی می‌شه، ممکنه یه لحظه صفحه قفل کنه. اما با ASL، این عملیات ذخیره‌سازی بدون اینکه کاربر متوجه بشه انجام می‌شه و برنامه همچنان روان باقی می‌مونه.

ASL معمولاً بر پایه IndexedDB کار می‌کنه که یه پایگاه داده NoSQL قدرتمند درون مرورگره. این یعنی شما می‌تونین حجم زیادی از داده‌های ساختاریافته رو هم ذخیره کنین.

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


#سامان #مفاهیم

⚠️ آدرس کانال در تلگرام(حتما عضو بشید)
🚀 @devsourcech
در بله
🔹 @devsource

سایت مستندات برنامه نویسی:
🥇 https://devsource.ir
3
2
مخاطبین محترم کانال و گروه DevSource
میت آنلاین بذارم باهاتون؟
در مورد چه موضوعاتی دوست دارید صحبت کنیم و انتقال دانش داشته باشیم؟
یک میت دو ساعته


حتما توی کامنت ها نظرتونو بگید🚀
6
یک کتاب جمع و جور و کاربردی برای مبانی زبان طراحی سیستم ( Design system )

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

این موضوع در توسعه ی برنامه ها هم صدق میکنه٬ مخصوصا در فرانت اند. اگر یه وقتایی خواستید به عنوان توسعه دهنده ی فرانت اند خلاقیت به خرج بدید و فیچر جدیدی خارج از برنامه به رابط کاربری اضافه کنید٬ حتما باید استاندارد های طراحی رو بدونید تا یکپارچگی زبان طراحی سیستم از دست نره

منابع ذیل میتونه برای همین مواقع بهتون کمک کنه:
https://ebooks.karbust.me/Technology/UI%20Design%20Principles%20-%20Michael%20Filipiuk.pdf

https://designcode.io/ui-design-handbook

Reaction 👎👍 و Share

#سامان #مفاهیم

⚠️ آدرس کانال در تلگرام(حتما عضو بشید)
🚀 @devsourcech
در بله
🔹 @devsource

سایت مستندات برنامه نویسی:
🥇 https://devsource.ir
3
اعداد حیاتی که هر برنامه‌نویس باید بداند (Latency Numbers)

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

دکتر دین (Dr. Jeff Dean) از گوگل جدولی از زمان‌بندی عملیات‌های پایه‌ای کامپیوتر ارائه کرده که با وجود گذشت سال‌ها، هنوز هم «انجیل» درک کارایی سیستم‌هاست. اگرچه سخت‌افزارها سریع‌تر شده‌اند، اما تفاوت مقیاس زمانی (مثلاً تفاوت بین حافظه کش و شبکه) هنوز هم به همان نسبت تکان‌دهنده است.

💡 سه درس کلیدی از این اعداد:
۱. حافظه از دیسک بسیار سریع‌تر است: تفاوت بین خواندن از رم و خواندن از دیسک مثل تفاوت یک چشم به هم زدن و چندین دقیقه زمان است.
۲. شبکه گران‌قیمت‌ترین عملیات است: هر بار که درخواستی به شبکه می‌فرستید، چندین مرتبه بزرگ‌تر از عملیات‌های داخل CPU هزینه زمانی می‌پردازید.
۳. بهینه‌سازی را از گلوگاه‌ها شروع کنید: تا زمانی که دیتابیس یا شبکه شما کند است، بهینه‌سازی کدهای ریاضی CPU تفاوت محسوسی در تجربه کاربری ایجاد نمی‌کند.
1
سال ها پیش هر بار که کاربر درخواست می‌فرستاد، سرویس احراز هویت باید توکن را بررسی می‌کرد، اطلاعات کاربر را از دیتابیس می‌خواند و مجوزهای دسترسی را محاسبه می‌کرد. وقتی تعداد درخواست‌ها زیاد می‌شد، همین بخش به یکی از گلوگاه‌های اصلی سیستم تبدیل می‌شد.

اینجاست که Cache وارد بازی می‌شود.

اگر اطلاعاتی مثل Session، Claims، Role یا نتیجه اعتبارسنجی Token را برای مدت کوتاهی Cache کنید، بخش بزرگی از درخواست‌ها دیگر نیازی به مراجعه به دیتابیس یا سرویس Identity ندارند. نتیجه کاملاً ملموس است:

کاهش زمان پاسخگویی
کاهش فشار روی دیتابیس
افزایش توان پردازش سیستم
تجربه کاربری بهتر

البته Cache در Authentication یک شمشیر دولبه است. اگر زمان انقضا (TTL) را درست انتخاب نکنید، ممکن است کاربری که دسترسی‌اش حذف شده، تا چند دقیقه همچنان بتواند از همان مجوزها استفاده کند.

به همین دلیل، طراحی Cache در Auth فقط برای افزایش سرعت نیست؛ باید بین Performance و Security تعادل برقرار کنید.

یک قانون ساده:
هر اطلاعاتی که امنیت بالایی دارد و ممکن است سریع تغییر کند، یا نباید Cache شود یا باید مدت نگهداری بسیار کوتاهی داشته باشد. یا در زمان ویرایش اطلاعات ، در Cache هم آپدیت شود.

سرعت مهم است، اما در سیستم‌های احراز هویت، امنیت همیشه اولویت اول است.

#Authentication #Authorization #Cache #Redis #Performance #Security #Backend #رادمان


🚀 Telegram: @devsourcech
🍂 Bale: @devsource
4
Media is too big
VIEW IN TELEGRAM
🤖 OpenAi and Hugging Face

برای اولین بار، OpenAI تأیید کرد که یک عامل هوش مصنوعی در حین تست امنیتی از محیط آزمایشی خارج شد و به زیرساخت Hugging Face نفوذ کرد.🔥

داخل ویدئو بیشتر توضیح داده شده توسط جادی عزیز♥️

#abolfazl #ai #OpenAi #HuggingFace

🚀 Telegram: @devsourcech
🍂 Bale: @devsource
🤯1
This media is not supported in your browser
VIEW IN TELEGRAM
در مورد Race condition خوب توضیح می‌ده ☘️

منبع

ممنون از هادی عزیز برای ارسال این پست✌️

#abolfazl #race_condition #database

🚀 Telegram: @devsourcech
🍂 Bale: @devsource
👍2
بعد از مدت ها سلام 😍
یه چیز جالب بگم؟
🐳 خیلی‌ها جداولشون رو طوری می‌نویسن که همیشه فیلد id از نوع عدد و به صورت AUTO_INCREMENT باشه.

تا حالا فکر کردید اگه به جای عدد از UUID توی فیلدهای primary استفاده کنید، چه مزیت‌هایی به دست میارید؟

خوب اولین چیزی که باید بگم اینه که AUTO_INCREMENT فقط وقتی راحت و تمیزه که یه سیستم خصوصی و دم دستی داشته باشی. همین که بخوای از چند جا رکورد بسازی، دیتا رو مرج کنی، یا حتی آفلاین ID تولید کنی، داستان عوض میشه.
UUID اینجا کمک می‌کنه چون ID رو مستقل از دیتابیس می‌سازی… بدون اینکه منتظر شماره بعدی بمونی.

⚠️ چند دلیل مهم که معمولاً باعث میشه UUID انتخاب بهتری باشه:
- می‌تونی ID رو سمت اپلیکیشن، سرویس، یا حتی کلاینت بسازی
- برای سیستم‌های توزیع‌شده، shard شده، یا چند دیتابیسی خیلی راحت‌تره
- موقع merge کردن دیتا از چند منبع، تداخل ID نداری
- شماره ردیف‌ها رو لو نمی‌دی و حدس زدن رکوردها برای هکر ها که میخوان با استفاده از URL دیتا رو استخراج کنند سخت‌تر میشه
- برای ساخت داده قبل از ذخیره‌سازی، وابستگی‌ات به دیتابیس کمتر میشه

حالا یه سؤال پیش میاد… پس چرا همه‌جا UUID نمی‌زنیم؟

اینجاست که باید واقع‌بین باشی. UUID توی جدول‌های بزرگ می‌تونه روی index فشار بیاره، مخصوصاً اگه نسخه‌های تصادفی مثل UUIDv4 استفاده کنی، چون درج‌ها پراکنده میشن و page split و fragmentation بیشتر میشه.
برای همین توی بعضی دیتابیس‌ها و سناریوها، AUTO_INCREMENT هنوز برای یه دیتابیس تک‌نویسنده، ساده‌تر و بهینه‌تره. حتی الان هم خیلی وقت‌ها برای سیستم‌های ساده، همون AUTO_INCREMENT بهترین انتخابه.

🚀 یه مثال واقعی: فرض کنید یه فروشگاه آنلاین دارید که سفارش‌هاش از وب‌سایت، اپ موبایل، و یه سرویس بک‌اند جدا ساخته می‌شن. اگر همه‌جا AUTO_INCREMENT داشته باشی، هماهنگ کردن شماره‌ها و merge کردن دیتا دردسر میشه. ولی با UUID هر سرویس همون لحظه ID خودش رو می‌سازه و بعداً بدون اصطکاک ذخیره‌اش می‌کنی.

خلاصه ماجرا اینه:
اگر سیستم‌ات ساده‌ست و فقط یه دیتابیس مرکزی داری، AUTO_INCREMENT هنوز انتخاب خوبیه.
اگر داری سمت معماری توزیع‌شده، چند سرویس، sync، merge، یا تولید ID مستقل می‌ری، UUID انتخاب منطقی‌تریه.

#سامان
#db
⚠️ آدرس کانال در تلگرام(حتما عضو بشید)
🚀 https://t.me/devsourcech
در بله
🔹 @devsource

سایت مستندات برنامه نویسی:
🥇 https://devsource.ir
👍41
عجب وضعیه 😂

کپشن: وایب کدینگ باعث شده اگه داخل گیت‌هاب OPENAI_API_KEY رو سرچ کنید، هزاران کلید رایگان به دست بیارید .

منبع

#abolfazl #ai

Telegram: @devsourcech
⚠️ Bale: @devsource
یه چیزی که اخیراً توی Google AI Studio دیدم واقعاً جالب بود 😳

🧐 فرض کنید دارید یک ویدیو آموزشی، یک جلسه آنلاین یا حتی یک صفحه وب به زبان دیگهای میبینید؛ به جای اینکه متن رو کپی کنید، زیرنویس پیدا کنید یا دنبال ترجمه بگردید، خود مرورگر میتونه همون لحظه صدای صفحه رو بگیره و براتون ترجمه کنه 🤯
ادامه 👇👇
linkedin

ممنون میشم از این پست در لینکدین هم دیدن کنید🌹

سایت:
https://aistudio.google.com/live

#abolfazl #ai #google #live_translate

Telegram: @devsourcech
⚠️ Bale: @devsource