GyaanSetu WebDev

Frontend, Backend และ DevOps สำหรับเว็บยุคใหม่

244 articlesDeep, practical knowledge

สคริปต์ทำความสะอาดข้อมูลลบชิ้นส่วนโค้ดออกจากบทความหลายสิบรายการ

งานบำรุงรักษาตามปกติเกิดข้อผิดพลาดในการระบุแท็ก {% raw %} ของ Liquid โดยระบบเข้าใจผิดว่าเป็นตัวแปรที่ไม่ได้ปิด และได้ลบโค้ดบล็อกที่อยู่ล้อมรอบออกจากทุกบทความที่มีการใช้งานแท็กดังกล่าว ส่งผลให้ต้องทำการ Rollback ฉุกเฉิน และต้องกลับมาทบทวนกระบวนการทดสอบการย้ายข้อมูล (migration testing) ใหม่

WebDev · 3 min read

Hermes Agent เปิดกว้างสู่การทำ AI Automation แต่ก็ผลักภาระด้านความปลอดภัยไปที่นักพัฒนา

การออกแบบเชิงโมดูลของ Hermes Agent แยกโมเดลภาษา แกนกลางการจัดการ และเครื่องมือที่สั่งการได้ออกจากกัน ช่วยให้คุณสามารถเชื่อมต่อสคริปต์, การเรียกใช้ REST หรือคำสั่ง Docker ได้ แต่ในขณะเดียวกันก็กำหนดให้คุณต้องทำ sandbox ให้กับเอเจนต์และปกป้อง API keys ด้วย

WebDev · 3 min read

BrowserAct เอาชนะ Playwright โหมด Headless ในการทดสอบการตรวจจับบอท

จากการทดสอบเปรียบเทียบกันบนหน้าล็อกอินจำลอง (sandbox) พบว่าเบราว์เซอร์แบบ Stealth ของ BrowserAct ส่งค่า isBot:false ในขณะที่เซสชัน Headless เริ่มต้นของ Playwright รายงานค่าเป็น isBot:true ซึ่งเผยให้เห็นว่าค่า user-agent และ webdriver flags เริ่มต้นนั้นเปิดเผยร่องรอยของการใช้งานอัตโนมัติได้อย่างไร

WebDev · 4 min read

การอัปเกรด Astro 7 ส่งผลกระทบต่อ Math, Heading Links และ Custom Options – วิธีแก้ไข

Astro 7 เปลี่ยนมาใช้เอนจิน markdown Sätteri ที่พัฒนาด้วย Rust ซึ่งจะรัน syntax highlighting ก่อนปลั๊กอิน HTML-AST การเปลี่ยนแปลงนี้ทำให้บล็อก $$...$$ ถูกจัดประเภทผิดเป็นโค้ด ทำให้ปลั๊กอิน heading-slug ไม่สามารถสร้าง ID ได้ และทำให้การตั้งค่า markdown ที่ไม่ใช่มาตรฐานที่คุณกำหนดไว้หายไป

WebDev · 4 min read

การจองหน่วยความจำของ Substring สิ้นเปลืองไป 7.8 MB ใน Hot Loop – เปลี่ยนมาใช้ Span Lookup แทน

โปรไฟล์เลอร์เผยให้เห็นว่าการสร้าง string ใหม่สำหรับการค้นหาใน dictionary ทุกครั้งผ่าน Substring ทำให้เกิดขยะ (garbage) ในหน่วยความจำถึง 7.8 MB การใช้ GetAlternateLookup ของ .NET 9 ร่วมกับ ReadOnlySpan<char> ช่วยกำจัดปัญหาการจองหน่วยความจำและทำให้ loop ทำงานเร็วขึ้น 1.5 เท่า

WebDev · 1 min read

CollectionsMarshal ช่วยลดเวลาการนับ Dictionary ให้เร็วขึ้นกว่า TryGetValue ถึง 1.7 เท่า

ผมทำ Hashing ทุกคำสองรอบเพื่อที่จะนับมันเพียงครั้งเดียว เมื่อสัปดาห์ที่แล้วผมได้ทำ profiling ตัว log parser ซึ่งทำหน้าที่นับ error code ใน log ประจำวัน โดยตรรกะหลักคือการอัปเดต dictionary แบบง่ายๆ นักพัฒนาส่วนใหญ่...

WebDev · 1 min read

AV2 Promises 30% Gains but No FFmpeg Support or Hardware Decoders Yet

The AV2 reference encoder 1.0.0, released in May 2026, shows a 30 % bitrate reduction over AV1, but it runs far slower than existing AV1 encoders, lacks integration in FFmpeg, and has no hardware decoders, making it unsuitable for live streaming pipelines.

WebDev · 3 min read

เมื่อ ISP ล่มเพียงครั้งเดียวก็อาจทำให้วันทำงานของวิศวกร Remote ต้องหยุดชะงัก – พร้อมวิธีป้องกันไม่ให้เกิดขึ้น

การที่ ISP ล่มเพียงครั้งเดียวอาจทำให้ Developer ที่ทำงานแบบ Remote ต้องขาดการติดต่อได้นานหลายชั่วโมง ไม่ต่างจากการที่เซิร์ฟเวอร์ล่ม การวัดการใช้พลังงาน การเพิ่มเครื่องสำรองไฟ (UPS) และการติดตั้งเราเตอร์แบบ Dual-WAN พร้อมระบบสำรองผ่าน Hotspot 4G/5G จะช่วยให้คุณบรรลุค่า RTO และสามารถเขียนโค้ดต่อไปได้โดยไม่สะดุด

WebDev · 2 min read

จัดการ Prompt Injection ในฐานะข้อบกพร่องด้านการอนุญาตสิทธิ์ และตัดเครื่องมือที่ไม่ได้รับอนุญาตออก

นักพัฒนาต้องหยุดเปิดเผยฟังก์ชันที่มีสิทธิ์สูงในชุดเครื่องมือของโมเดล การสร้างรายการฟังก์ชันตามคำขอโดยอิงตามสิทธิ์ของผู้เรียกใช้งาน และการใช้หลักการ 'fail closed' เมื่อไม่สามารถระบุตัวตนได้ชัดเจน จะช่วยให้ LLM agent สามารถปิดช่องว่างการโจมตีแบบ prompt-injection 1% ที่นำไปสู่การรั่วไหลของข้อมูลได้

WebDev · 5 min read

Flaky Tests กำลังทำลาย CI ของคุณ – เปลี่ยนจากการวัด Pass Rate มาเป็น Failure Trust Metrics

หลายทีมมุ่งเน้นแต่การทำเปอร์เซ็นต์การผ่าน (Pass Rate) ให้สูง จนมองข้ามบั๊กที่แท้จริงเพราะถูกกลบด้วย Flaky failures การติดตามค่า failure recurrence, defect detection rate, retry dependence และ time-to-diagnosis จะช่วยเปลี่ยนสัญญาณเตือนสีแดงที่วุ่นวาย ให้กลายเป็นสัญญาณที่เชื่อถือได้ซึ่งช่วยนำทางการ Release ได้อย่างแท้จริง

WebDev · 4 min read

LLM สร้างเพียงคำขอในรูปแบบ JSON เท่านั้น – โค้ดของคุณคือผู้ดำเนินการจริง

ตัวโมเดลไม่ได้เป็นผู้รันฟังก์ชันของคุณโดยตรง แต่มันจะส่งคำขอที่มีโครงสร้างออกมาเพื่อให้ตัว Dispatcher ของคุณนำไปตรวจสอบ ให้สิทธิ์ และดำเนินการในขั้นตอนสุดท้าย การเข้าใจกระบวนการส่งต่องานนี้คือหัวใจสำคัญในการแก้ไขบั๊กและป้องกันผลกระทบข้างเคียงที่ไม่ได้รับอนุญาต

WebDev · 4 min read

ฟิลด์สแปมที่ซ่อนอยู่ทำยอด Impression ของหน้าภาษาอาหรับหายเกลี้ยง จนต้องเสียเวลาแก้บั๊กไปหลายชั่วโมง

Honeypot ทำหน้าภาษาอาหรับของผมพัง Convertica รองรับทั้งหมด 7 ภาษา โดย 6 ภาษาอ่านจากซ้ายไปขวา แต่ภาษาอาหรับอ่านจากขวาไปซ้าย ความแตกต่างนี้ทำให้ผมต้องเสียเวลาแก้บั๊กไปหลายชั่วโมง ทุกๆ หน้าภาษาอาหรับ...

WebDev · 1 min read

E-commerce Sites Can Escape Facet Crawl Traps by Blocking Low-Value URLs

An audit found Googlebot hitting filter URLs three times daily while main categories were crawled once every three weeks, causing fresh inventory to sit invisible for weeks. By classifying facets, using canonicals, blocking low-value URLs, and rendering filters as buttons, sites trimmed indexing tim

WebDev · 3 min read

การคลิกเพียงครั้งเดียวบน Cloudflare Bot Fight Mode ทำเอา SaaS API หยุดทำงานไปนานถึงหนึ่งเดือน

ทราฟฟิก API ของนักพัฒนาหายวับไปเนื่องจาก Cloudflare ตรวจจับ AWS Lambda callbacks ของเขาเองว่าเป็นบอท โดยที่ไม่มีข้อผิดพลาดใดๆ ปรากฏขึ้นในแอป ทำให้ตัวเลขการใช้งานนิ่งสนิทอยู่หลายสัปดาห์ จนกระทั่งมีการปิดการใช้งาน Bot Fight

WebDev · 3 min read

GitHub เปิดตัว Stacked Pull Requests เวอร์ชัน Public Preview เพื่อช่วยลดเวลาในการรีวิว

ฟีเจอร์พรีวิวนี้ช่วยให้คุณสามารถสร้างลำดับของ pull requests ที่มีความเกี่ยวข้องกัน โดยแต่ละรายการจะสร้างต่อยอดจากรายการก่อนหน้า ทำให้ผู้รีวิวเห็นเฉพาะการเปลี่ยนแปลงที่เกี่ยวข้องกับเลเยอร์นั้นๆ ซึ่งช่วยลดภาระในการรีวิวและปัญหาการรวมโค้ด (merge conflicts) ได้อย่างมาก

WebDev · 2 min read

TanStack ตัดสินใจเลิกใช้ React Server Components เนื่องจากความซับซ้อนและปัญหาเรื่องความล่าช้า

ทีม TanStack พบว่าการดีบั๊ก RSC จำเป็นต้องใช้โมเดลทางความคิดที่แตกต่างออกไป และการทำงานแบบ server-only ยังส่งผลให้ไม่สามารถใช้งานร่วมกับไลบรารีภายนอกได้หลายตัว จึงทำให้พวกเขาตัดสินใจเลือกใช้สถาปัตยกรรมแบบ client-only ที่เรียบง่ายกว่า

WebDev · 2 min read

ผลการศึกษาพบว่า มีเพียง 47% ของโดเมนที่เปิดใช้งาน DMARC เท่านั้นที่มีการบังคับใช้นโยบายจริง

ภาพลวงตาของความปลอดภัยทางอีเมล ผู้คนต่างกล่าวว่าการยืนยันตัวตนทางอีเมลเป็นปัญหาที่ได้รับการแก้ไขแล้ว โดยอ้างว่ากฎของ Google และ Yahoo ช่วยให้โลกอินเทอร์เน็ตปลอดภัย แต่ข้อมูลกลับแสดงให้เห็นเรื่องราวที่ต่างออกไป...

WebDev · 1 min read