DevTwitter | توییت برنامه نویسی
32.5K subscribers
5.48K photos
444 videos
6 files
5.4K links
توییت های برنامه نویسی و طراحی وب :)

Admin:
@dvtwi

Hashtags:
devtwitter.t.me/5

DevBooks Channel:
https://t.me/+AYbOl75CLNYxY2U0

Github:
https://github.com/DevTwitter

X:
https://x.com/devtwittir
Download Telegram
وقتی Redis به خواب می‌رود، صندوق ورودی کاربر تبدیل به میدان جنگ می‌شود!️

تصور کنید سیستم نوتیفیکیشن شما با سرعت بالا در حال ارسال پیامک‌ها و ایمیل‌های دوره‌ای است. برای اینکه به یک کاربر در بازه زمانی کوتاه پیام تکراری نفرستید (Deduplication & Suppression)، تصمیم می‌گیرید کلیدهای سایلنت را با یک TTL ساده داخل Redis ذخیره کنید.
همه چیز سریع، سبک و عالی به نظر می‌رسد… تا زمانی که:
رم ردیس پر می‌شود و کلیدها Evict می‌شوند.
سرویس به هر دلیلی ری‌استارت می‌شود یا با خطای 503 / Network Timeout مواجه می‌شوید.
یا یک Flush ناخواسته رخ می‌دهد.

نتیجه؟
تمام سد‌های دفاعی برداشته می‌شوند و صدها هزار پیامک یا ایمیل تکراری در عرض چند دقیقه روی سر کاربر آوار می‌شود؛ هم هزینه‌های زیرساخت سر به فلک می‌کشد و هم تجربه کاربری نابود می‌شود!

چرا اتکای ۱۰۰٪ به این‌مموری (In-Memory) خطرناک است؟
ردیس فوق‌العاده سریع است، اما ماهیت آن Ephemeral (فرّار) است. در سیستم‌های حساس به اسپم، شما نه تنها نیاز به سرعت دارید، بلکه به پایداری داده (Durability) و ردیابی (Auditability) نیاز دارید:
قابلیت اتکا و ماندگاری (Durability): دیتابیس تضمین می‌کند که سابقه و وضعیت سرکوب پیام‌ها (Suppression Policies) پایدار است و با کرش سرویس دود نمی‌شود و به هوا نمی‌رود.
ثبت وقایع و لاگ سایلنت‌ها (Audit Logs): وقتی پیامی ارسال نمی‌شود، باید دقیقاً مشخص باشد چرا، به چه دلیلی و طبق کدام Rule سرکوب شده است تا پشتیبانی و مانیتورینگ کور نمانند.

معماری برنده: ترکیب هوشمندانه دیتابیس و ردیس (Hybrid Pattern)
به جای حذف کامل ردیس یا تحمیل بار سنگین کوئری به دیتابیس، راهکار استاندارد پیاده‌سازی یک معماری ترکیبی و مقاوم است:
۱. دیتابیس به عنوان Source of Truth: سیاست‌های سایلنت، لاگ‌ها و وضعیت‌های ماندگار در RDBMS ذخیره و ایندکس‌گذاری دقیق می‌شوند.
۲. ردیس به عنوان Gatekeeper (سد دفاعی اول): ترافیک بالا در سطح میلی‌ثانیه با دستورات اتمیک مثل SET NX EX چک می‌شود.
۳. مکانیزم Fallback و تاب‌آوری: در صورت قطعی یا تایم‌اوت ردیس، با کمک Circuit Breaker و Local Cache (کش موقت درون سرویس) جلوی طوفان پیام‌های تکراری گرفته شده و سیستم به شکل کنترل‌شده با دیتابیس همگام می‌ماند (Graceful Degradation).

درس اصلی معماری سیستم:
در سرویس‌های حساس، هیچ‌وقت کلید جلوگیری از خسارت مالی یا اسپم کاربر را فقط در دست داده‌های فرّار قرار ندهید؛ سیستم باید برای لحظه وقوع خرابی (Design for Failure) طراحی شده باشد.

@DevTwitter | <AliReza Ghenaatiyan/>
🔥26❤5👎3
چیزیکه تا الان من متوجه شدم خیلی از برنامه نویسای frontend فرق بین کوکی معمولی با HttpOnly یا Secure رو نمیدونن یا کلا فکر می کنن HttpOnly همون Secure cookie هستش...

ببینید زمانیکه شما کوکی رو میسازید میتونید چندتا فلگ براش ست کنید, که 2 تا از اونها HttpOnly و Secure هستش. وقتی شما HttpOnly رو از سمت سرور ست کنید, دیگه با جاوااسکریپت نمیتونید بهش دسترسی داشته باشید. در عوض مرورگر میاد تو هدر ریکوئست هایی که میزنید مقدار کوکی رو میفرسته و کار تمام هستش.

این HttpOnly دقیقا میاد جلوی XSS و سرقت رفتن مقادیری مثل jwt-token رو میگیره.

حالا Secure کوکی یعنی شما باید روی HTTPS این کوکی رو بسازید و به سرور بفرستید و اگر مثلا وب سایت روی HTTP باز بشه کوکی خوانده و ارسال نمیشه!

این رو درنظر داشته باشید که Secure کوکی میتونه با JavaScript ساخته و خوانده بشه ولی HttpOnly فقط روی سرور ساخته میشه. و در آخر اینکه HttpOnly و Secure میتونن هر دو فعال باشن یا یکیشون فعال بشه و با هم تداخل ندارن

حالا بیایم یکم عمیق تر به موضوع نگاه کنیم, اگر خواستیم تو React یا مثلا Angular این مقدار کوکی رو بگیریم و از اتفاق از نوع HttpOnly باشه باید چیکار کنیم؟

تو این شرایط معمولا تیم بک اند یک سرویس مخصوص Auth به شما میده که بهش ریکوئست میزنی ببینی کاربر Authenticated هستش و میتونه Protected Route و Component هارو ببینه یا نه؟ اینجوری میشه امنیت رو هم باهاش هندل کرد


@DevTwitter | <Mohammad E/>
👍46🍌5👎1
چند روز پیش مقاله‌ای درباره «AI-Native Software Engineering» می‌خوندم که یک نکته‌اش برام خیلی جالب بود:

اینکه LLM دیگه کل Architecture نیست؛ فقط یکی از اجزای اونه.

مقاله از چیزهایی مثل Context Engineering، Agent Orchestration، Tool/MCP Architecture، Sandboxed Execution و Verification صحبت می‌کنه.

اما وقتی این بحث را می‌برم سمت Enterprise و مخصوصاً On-Prem، یک سؤال دیگه برام پررنگ‌تر می‌شه:

اینکه Agent دقیقاً اجازه داره چه کاری انجام بده؟

در محیط واقعی ممکنه مشتری:
- به LLMهای Cloud دسترسی نداشته باشد
- داده‌هاش نباید از شبکه خارج بشه
- اینترنت و سرویس‌های خارجی محدود باشه
- ما تو ایران هستیم و با محدودیت‌های تحریم مواجه باشه
- و مهم‌تر از همه، Agent قرار باشه روی سیستم واقعی مشتری Action انجام بده.

تو این شرایط، اینکه یک LLM رو داخل شبکه بیاریم، به‌تنهایی مسئله رو حل نمی‌کنه.
باید بدونیم:

این Agent با چه Identity ای کار می‌کنه؟
چه Permissionهایی داره؟
به چه داده‌ای دسترسی داره؟
چه Capabilityهایی در اختیارشه؟
کدوم Actionها نیاز به Approval دارن؟
و چطور می‌تونیم بعداً Audit کنیم که چه تصمیمی گرفته و چرا؟

برام این زنجیره داره تبدیل به یکی از بخش‌های اصلی معماری Agent می‌شه:

Identity → Permission → Capability → Approval → Audit

یک API معمولاً می‌گه:
Do X

اما Agent می‌گه:
I decided to do X.

و این دو از نظر معماری خیلی با هم فرق دارن.

به نظرم یکی از تغییرات مهم معماری با ورود Agentها این نیست که Agent جای Service را می‌گیره.

تغییر مهم‌تر اینه که:
یک Decision Boundary تبدیل به یک Architectural Concern می‌شه.

در Enterprise، قبل از اینکه بپرسیم:
«کدوم LLM رو انتخاب کنیم؟»

شاید باید بپرسیم:
این «Agent رو تا کجا وارد سیستم کنیم و مرز اختیارش کجاست؟»

مقاله‌ای که این بحث رو ازش شروع کردم:
AI-Native Software Engineering: Architecture Patterns for Context, Agents and Developer Tools
اگر شما هم درگیر معماری AI در محیط‌های Enterprise یا On-Prem هستید، به نظرم این بخش از بحث، خیلی مهم‌تر از انتخاب صرف Model هستش.

پ.ن: لینک مقاله:
https://www.linkedin.com/pulse/ai-native-software-engineering-architecture-patterns-context-r-e6hoc/


@DevTwitter | <Mehdi Halvaei/>
❤11🍌3👍1
Forwarded from DevTwitter Ads.
✳ دوره جامع آمادگی آزمون آیلتس

نمره‌ مورد نظرتان را مطمئن بگیرید🎯

✅ با کسی همراه شوید که خودش نمره‌ی 9 آیلتس آکادمیک دارد و 10 سال است داوطلبان را قدم‌به‌قدم به هدفشان می‌رساند.

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

✳ برای اطلاعات بیشتر و مشاوره رایگان قبل از ثبت نام عدد  3  را به آیدی زیر بفرستید

👇👇👇👇

@easyielts9sup
@easyielts9sup


🟣 صفحه اینستاگرام ایزی آیلتس:

https://www.instagram.com/easyielts9
🍌8👎1
یک آپدیت جدید برای nextjs-progress

بعد از انتشار nextjs-progress، در حین استفاده و توسعه بیشتر پکیج متوجه شدم که برای بعضی از پروژه‌ها، فقط داشتن Link و useRouter اختصاصی کافی نیست.

به‌خصوص در پروژه‌هایی که از routing سفارشی یا کتابخانه‌هایی مثل next-intl استفاده می‌کنند، نیاز به راهی بود که قابلیت progress را به router و Link موجود اضافه کنیم.

در نسخه جدید، چند قابلیت مهم به پکیج اضافه کردم:
- پشتیبانی از basePath
- پشتیبانی از مسیرهای دارای locale با i18nPath
- اضافه شدن createRouter() برای custom routerها
- اضافه شدن createLink() برای custom Linkها
- اضافه شدن nextjs-progress/navigation
- بهبود تشخیص navigation و مقایسه مسیرها
- پشتیبانی بهتر از navigation در پروژه‌هایی با routing سفارشی

یکی از قسمت‌هایی که بیشتر روی آن کار کردم، امکان استفاده از createRouter() و createLink() در کنار next-intl است؛ بدون اینکه نیاز باشد ساختار routing پروژه تغییر کند.

برای نمونه می‌توان progress را به router و Link موجود اضافه کرد:
const useRouter = createRouter(useNextIntlRouter);
const Link = createLink(NextIntlLink);

هدفم این بوده که nextjs-progress در پروژه‌های مختلف، مخصوصاً پروژه‌های واقعی‌تر و پیچیده‌تر Next.js، انعطاف‌پذیرتر باشد.

اگر با Next.js کار می‌کنید، خوشحال می‌شوم نگاهی به پروژه بیندازید و اگر تجربه‌ای با آن داشتید، فیدبکتان را با من به اشتراک بگذارید.

GitHub: https://github.com/thehadikarimi/nextjs-progress
npm: https://www.npmjs.com/package/nextjs-progress

@DevTwitter | <Hadi Karimi/>
👍5👎1🍌1
این ریپو توی یکی دو روزی که معرفی شده بالای ۱۵کا استار گرفته!!
شعارش اینکه هر اپی رو میتونی مهندسی معکوس کنی با ایجنت! mcp مختص خودشو داره

http://github.com/morluto/rea

@DevTwitter | <Meisam/>
🍌14👍10❤4
چند وقته رو یه پروژه فان کار میکردم، مفسر سی شارپ برای میکروکنترلر ها هست
همچین چیزی قبلا هست، مثل نانو فریمورک و حتی میکرو پایتون اما این ۳ برابر سریعتر از میکروپایتون هست و قابلیت های بیشتری داره
پروژه خیلی حرفه ای شده دوست داشتید یه نگاه بندازید

https://github.com/amir1387aht/MicroCS

@DevTwitter | <Another/>
🍌15👎2💔1
Forwarded from DevTwitter Ads.
دوره جامع پایتون: مقدماتی تا پیشرفته

🗓شروع دوره: 18 مهر

🎁 تخفیف ویژه برای دانشجویان، فرصتی بی‌نظیر برای شما!

🔥 آموزشی که شما را به برنامه‌نویس حرفه‌ای تبدیل می‌کند و در بازار کار به شما رقابت‌پذیری بیشتری می‌دهد. همچنین برای اپلای‌های شغلی و تحصیلی شما را برتر می‌کند و به راه‌اندازی استارت‌آپ‌های شگفت‌انگیز کمک می‌کند.

⏰ 140 ساعت آموزش مجازی، با بیش از 25 پروژه و مینی‌پروژه برای تسلط کامل!

🌟 سرفصل‌های دوره شامل:

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

🎁 همراه با هدایای ویژه، از جمله پکیج کسب درآمد از پایتون!

همین حالا شروع کنید و بهترین نسخه خود را با ما کشف کنید! 💥🚀🔥

🌟 به دوستان خود نیز اطلاع دهید تا این فرصت را از دست ندهند! 🌟

👨‍🏫برگزارکننده: شرکت آتی پژوهش امیرکبیر
@kargah2018

👩‍🎓جهت ثبت نام و کسب اطلاعات بیشتر
@apa_admin12
🍌8👎2
فتوکرافت یه ادیتور جدید و متن‌بازه، شبیه فتوشاپ، که با زبان راست نوشته شده. فایل‌های واقعی PSD رو باز می‌کنه و روی مک، ویندوز، لینوکس و وب کار می‌کنه.

از ۱۳۵ فایل تست PSD، ۱۳۴ تاشون بعد از ذخیره دوباره دقیقاً همون بودن

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

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

ریپو:
https://github.com/storytold/photocraft

@DevTwitter | <Yarad/>
❤20🔥4🍌2
یکی اومده یه نقشهٔ راه کامل برای مهندس هوش مصنوعی شدن رو اوپن‌سورس کرده.

«ستاد مرکزی مهندس هوش مصنوعی» از پایه‌ها شروع می‌کنه و می‌رسه به مدل‌های زبانی بزرگ، RAG، فاین‌تیون، صدا زدن ابزار، و گردش‌کارهای ایجنتی؛ همه تو یه برنامهٔ آموزشی مرتب.

ریپو:
https://github.com/hemansnation/AI-Engineer-Headquarters

@DevTwitter | <Yarad/>
🍌12💔2👎1
Forwarded from DevTwitter Ads.
بچه ها
تو این شرایط اقتصادی که همه دنبال کار می‌گردن ، دوست من دکتر علی آقایی یه کار قابل تقدیر کردن🙏

ایشون دندون پزشک هستند و تصمیم گرفتن هرکسی میخواد دستیار دندون پزشک بشه رو، بهش #رایگان آموزش بدن♥️

ارزش این آموزش ها ۲ میلیون تومانه، ولی امروز به مدت 24 ساعت کل آموزش دستیار دندان پزشکی رو رایگان در اختیارتون میزارن🙏

یعنی هم بهتون آموزش میدن، هم براتون توی مطب ها و کلینیک‌های دندانپزشکی کار پیدا می‌کنند . فرقی هم نمیکنه از کدوم شهر باشید.

⚠️ بچه ها حواستون باشه فقط ۲۴ ساعت زمان دارید که از این فرصت بصورت #رایگان استفاده کنید

👈 پس همین الان وارد کانال تلگرام زیر بشید و ثبت نام کنید :

https://t.me/+ebnVFtKx0cZkZWU8
.
#دستیار_دندانپزشکی
🍌37👎6💔1
مدل EmbeddingGemma 2 یه مدل جدید Embedding از Google و بر پایه Gemma 4 هست که با مجوز Apache 2.0 منتشر شده. چیزی که این مدل رو از نسل قبلی جدا می‌کنه اینه که دیگه فقط با text و code کار نمی‌کنه و می‌تونه text، code، image، video و audio رو توی یه فضای برداری مشترک قرار بده. یعنی می‌شه انواع مختلف داده رو کنار هم مقایسه کرد و برای کارهایی مثل جستجوی معنایی و بازیابی اطلاعات ازش استفاده کرد.

یکی از قابلیت‌های جالبش اینه که می‌تونه چند نوع داده رو همزمان پردازش کنه. مثلاً می‌شه یه متن رو همراه با یه تصویر یا حتی صدا و ویدئو به مدل داد و در نهایت یه embedding مشترک برای همه این اطلاعات گرفت. این ویژگی برای ساخت سیستم‌هایی مثل multimodal RAG خیلی کاربردیه.

از طرف دیگه، معماری این مدل به شکل modular طراحی شده و لازم نیست همیشه کل مدل 740M پارامتر رو اجرا کنیم. برای مثال، یه نسخه 270M برای text و code وجود داره و با اضافه شدن بخش‌های مربوط به تصویر و صدا، نسخه‌های بزرگ‌تر ساخته می‌شن. این طراحی باعث شده مدل برای اجرای on-device و لوکال هم مناسب باشه. حتی نسخه کامل مالتی مودال، بعد از quantization، می‌تونه با حدود 567MB رم روی دستگاه‌هایی مثل Pixel اجرا بشه. از کانتکس ویندو 8k اون هم نباید چشم پوشی کرد.

یه ویژگی مهم دیگه هم Matryoshka Representation Learning (MRL) هست. با این قابلیت می‌تونیم اندازه embedding رو از 768 تا 512، 256 یا 128 بعد کاهش بدیم و بر اساس نیازمون بین دقت، سرعت و فضای ذخیره‌سازی تعادل ایجاد کنیم. این موضوع توی پروژه‌های بزرگ Vector Search اهمیت زیادی داره و می‌تونه حجم مورد نیاز برای ذخیره‌سازی بردارها رو تا حدود 6 برابر کاهش بده.

در نهایت، چیزی که EmbeddingGemma 2 رو واقعاً جالب می‌کنه اینه که از یه مدل عمدتاً متنی به یه مدل سبک و مالتی مودال تبدیل شده که می‌تونه انواع مختلف داده رو توی یه فضای مشترک قرار بده، به شکل modular اجرا بشه و حتی روی دستگاه‌های نسبتاً محدود هم قابل استفاده باشه. ترکیب این قابلیت‌ها باعث می‌شه برای ساخت سیستم‌های local search، multimodal RAG، Vector Database و AI agentها انتخاب خیلی خوبی باشه.

https://huggingface.co/google/embeddinggemma-2

@DevTwitter | <Reza Jafari/>
❤12👍3🍌1
Forwarded from DevTwitter Ads.
📌 پنجشنبه شب دیپلوی نکنید.

ساعت ۲۳:۴۷ پنجشنبه، یه git push origin main ساده، و کل جمعه‌تون می‌ره پای درست کردنش.
اگه مجبورید، اول روی یه سرور ابری تستش کنید: چند دقیقه‌ای از پنل بسازیدش، کپی پروداکشن رو روش بیارید بالا و با خیال راحت تست کنید. کارتون که تموم شد، حذفش کنید؛ سرور ابری از لحظه‌ی ساخت تا لحظه‌ی حذف ساعتی حساب می‌شه و هزینه‌ش همون لحظه تموم می‌شه.
ایران، هلند، آلمان، آمریکا؛ همه از یه پنل

🎁 ۱۰۰ هزار تومن اعتبار هدیه برای شروع

جمعه‌تون رو نجات بدید 👇

https://my.webdade.com/link.php?id=7
https://my.webdade.com/link.php?id=7

📞 031-3740
🌐 webdade.com
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥1💔1