GyaanSetu WebDev

Frontend, backend and devops for the modern web.

209 articlesDeep, practical knowledge

OpenCode با بازنویسی هوک‌های React در ترمینال، یک ساعت از زمان اسپرینت را کاهش داد

در یک دوره آزمایشی دو هفته‌ای، OpenCode نام یک هوک React را در یازده کامپوننت تغییر داد، فایل‌های pytest موفقیت‌آمیز ایجاد کرد و بسته‌های npm را ارتقا داد—همگی از طریق خط فرمان—که باعث شد ضمن حفظ ویرایشگرهای مورد علاقه تیم، حدود یک ساعت از زمان کار اسپرینت ذخیره شود.

WebDev · 4 min read

ربات‌های ایمیل هوش مصنوعی با استفاده از CSS مخفی، رمزهای عبور را سرقت کرده و Outlook و Gmail را دور می‌زنند

محققان در کنفرانس Black Hat USA 2026 نشان دادند که CSSهای به‌طور ویژه طراحی‌شده می‌توانند متن را از دید انسان پنهان کنند، در حالی که ایجنت‌های ایمیل مبتنی بر هوش مصنوعی همچنان قادر به خواندن آن هستند؛ این موضوع به این ایجنت‌ها اجازه می‌دهد تا رمزهای عبور، توکن‌ها و آدرس‌های IP را از Outlook، Gmail، Yahoo و Proton استخراج کنند.

WebDev · 4 min read

TechForge هشدار می‌دهد: میکروسرویس‌های اولیه به مونو‌لیت‌های توزیع‌شده با تأخیر بالا تبدیل می‌شوند

این راهنما نشان می‌دهد که بسیاری از استارتاپ‌ها با وجود استفاده از یک پایگاه داده مشترک، کد خود را «مبتنی بر میکروسرویس» می‌نامند؛ امری که منجر به ایجاد ماژول‌های با وابستگی شدید شده و همچنان با مشکل تأخیر شبکه مواجه هستند. تنها زمانی یک سرویس را مجزا کنید که نیاز واقعی به مقیاس‌پذیری یا تفکیک مالکیت ایجاد شده باشد.

WebDev · 5 min read

کلید تک‌کلیکی Edge کلودفلر، هر سایتی را برای عامل‌های هوش مصنوعی آماده می‌کند

سوئیچ جدید «Browser Run → Agent Readiness» یک کد جاوااسکریپت کوچک را به HTML خروجی اضافه می‌کند که به‌طور خودکار سایت را در WebMCP ثبت کرده و دو بسته ابزار آماده شامل Content Credentials و یک پروکسی سرور Site MCP را ارائه می‌دهد.

WebDev · 3 min read

World Labs فرآیند «واقعیت به شبیه‌سازی به واقعیت» را برای کاهش هزینه‌های آموزش ربات‌ها عرضه کرد

در پادکست اخیر a16z، فی-فی لی و یونزو لی توضیح دادند که چگونه SceniX از شرکت World Labs، دوقلوهای دیجیتال دقیقی از انبارها، رستوران‌ها و هتل‌ها ایجاد می‌کند تا به ربات‌ها اجازه دهد پیش از کار در محیط‌های واقعی، وظایف خود را در محیط شبیه‌سازی تمرین کنند.

WebDev · 3 min read

چگونه ربات‌های آموزشی را متوقف کنیم و همزمان ربات‌های ارجاع را برای جذب ترافیک ChatGPT حفظ کنیم؟

استفاده از دستور عمومی “Disallow: /” برای GPTBot تنها خزنده آموزشی را مسدود می‌کند؛ اما ربات‌های ارجاع که صفحات شما را در بخش پاسخ‌های ChatGPT نمایش می‌دهند، فعال باقی می‌مانند. برای اجازه دادن به OAI-SearchBot، ChatGPT-User و همتایان آن‌ها و در عین حال مسدود کردن GPTBot و ClaudeBot، از قوانین صریح robots.txt یا قابلیت AI Crawl Control کلودفلر استفاده کنید.

WebDev · 4 min read

تغییر از مرتب‌سازی بر اساس امتیاز به A-Res، باگ «همیشه یک شبکه ثابت» در صفحه اصلی ما را برطرف کرد

با پردازش هر ردیف کاندید تنها یک بار و نگهداری تنها یک min-heap ۲۴ آیتمی، روش جدید نمونه‌برداری مخزنی وزن‌دار (weighted reservoir sampling) نه تنها باعث به‌روزرسانی شبکه در هر بار بارگذاری مجدد می‌شود، بلکه سربار حافظه SQLite را نیز به طرز چشمگیری کاهش می‌دهد.

WebDev · 3 min read

رفع مشکل JSON-LD تکراری محصول در شاپیفای در پنج مرحله ساده

ابزار Schema Markup Validator گوگل را اجرا کنید، فایل قالب یا اپلیکیشن مسبب مشکل را شناسایی کرده، بلوک اضافی JSON-LD را حذف کنید و اپلیکیشن‌های خود را مجدداً بررسی کنید؛ هر مرحله باعث بازیابی یک اسکیما (Schema) محصول واحد و تمیز می‌شود تا نمایش نتایج غنی (rich results) بهبود یابد.

WebDev · 1 min read

هزینه واقعی میزبانی شخصی Whisper در مقابل APIها

هزینه واقعی میزبانی شخصی Whisper در مقابل APIها. تیم شما صورت‌حساب AssemblyAI را می‌بیند. کسی می‌پرسد: «چرا برای صرفه‌جویی در هزینه‌ها، خودمان Whisper را میزبانی نکنیم؟» ساده به نظر می‌رسد. دانلود یک...

WebDev · 3 min read

بمباران پیامکی باعث پنهان شدن هشدارهای تعویض سیم‌کارت می‌شود و به مهاجمان اجازه می‌دهد بدون هیچ هشداری، شماره‌ها را به سرقت ببرند

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

WebDev · 3 min read

چالش ربات کلودفلر درخواست‌های POST پرداخت بومی را مختل می‌کند، اما Fetch نجات‌بخش ظاهر شد

یک فرم ساده HTML که به Stripe بازنشانی می‌شد، در تست‌ها به درستی کار می‌کرد اما کاربران واقعی کروم که پشت کلودفلر بودند با خطای 503 مواجه می‌شدند. تغییر فرآیند ارسال به یک جریان مبتنی بر fetch باعث شد درخواست POST از چالش ربات عبور کند و سپس با یک redirect از نوع GET، فرآیند پرداخت تکمیل شود.

WebDev · 4 min read

Cleanup Script Erased Code Snippets From Dozens of Articles

A routine maintenance job mis-identified Liquid’s {% raw %} tags, treating them as unclosed variables and stripping the surrounding code blocks from every article that used them, forcing an emergency rollback and a rethink of migration testing.

WebDev · 3 min read

MCP بدون وضعیت به توسعه‌دهندگان اجازه می‌دهد مارک‌داون را به‌صورت رایگان در Cloudflare ارائه دهند

بنچمارک‌ها نشان می‌دهند که سرور MCP فقط‌خواندنی در نقاط پایانی کلیدی، مصرف CPU را به ۰ تا ۱ میلی‌ثانیه می‌رساند که بسیار کمتر از محدودیت ۱۰ میلی‌ثانیه‌ای Cloudflare برای هر درخواست است، در حالی که زمان کل ممکن است به دلیل تأخیر شبکه به حدود ۸۸ میلی‌ثانیه برسد.

WebDev · 2 min read

هرمس ایجنت اتوماسیون هوش مصنوعی را تسهیل می‌کند، اما بار امنیت را به دوش توسعه‌دهندگان می‌گذارد

طراحی ماژولار هرمس ایجنت، مدل زبانی، هسته ارکستراسیون و ابزارهای قابل اجرا را از هم جدا می‌کند و امکان اتصال اسکریپت‌ها، فراخوانی‌های REST یا دستورات داکر را فراهم می‌سازد؛ اما در عین حال، شما را ملزم می‌کند که ایجنت را در محیط ایزوله (sandbox) قرار داده و از کلیدهای API محافظت کنید.

WebDev · 3 min read

BrowserAct در تست تشخیص ربات، حالت Headless Playwright را شکست داد

در یک اجرای همزمان روی صفحه ورود یک محیط Sandbox، مرورگر Stealth از BrowserAct مقدار isBot:false را برگرداند، در حالی که نشست Headless پیش‌فرض Playwright مقدار isBot:true را گزارش کرد؛ این موضوع نشان داد که چگونه پرچم‌های پیش‌فرض user-agent و webdriver، ماهیت اتوماسیون را لو می‌دهند.

WebDev · 4 min read

ارتقای Astro 7 باعث بروز مشکل در ریاضیات، لینک‌های تیتر و گزینه‌های سفارشی می‌شود – راه حل رفع مشکل

Astro 7 اکنون از موتور مارک‌داون Sätteri مبتنی بر Rust استفاده می‌کند که فرآیند Syntax Highlighting را پیش از پلاگین‌های HTML-AST انجام می‌دهد. این تغییر باعث می‌شود بلوک‌های $$...$$ به اشتباه به عنوان کد شناسایی شوند، پلاگین‌های heading-slug در تولید ID با مشکل مواجه شوند و تنظیمات غیر استاندارد مارک‌داون نیز نادیده گرفته شوند.

WebDev · 4 min read

CollectionsMarshal زمان شمارش دیکشنری را ۱.۷ برابر سریع‌تر از TryGetValue می‌کند

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

WebDev · 1 min read

FastPix در آپلودهای ۱۷۷ مگابایتی از همه پیشی گرفت، در حالی که Cloudinary در تست ۶۵ مگابایتی برنده شد

ابزار تست Node.js هم زمان خام آپلود و هم زمان آماده‌سازی را روی یک لینک محدود شده با سرعت ۱۰ مگابیت بر ثانیه اندازه‌گیری کرد؛ نتایج نشان داد که FastPix برای یک فایل ۱۷۷ مگابایتی سریع‌ترین است و Cloudinary برای یک کلیپ ۶۵ مگابایتی، وضعیت آماده‌سازی را در ۲ ثانیه فراهم می‌کند، در حالی که Mux در فریم‌های شروع سرد (cold-start) عملکرد ممتازی داشت.

WebDev · 3 min read