Tuesday, September 29, 2026

[OpenCode] ลองของใหม่! LongCat 2.5 Preview บน OpenCode — AI สายโค้ด Context 1M รองรับโปรเจกต์ยักษ์

สายการพัฒนาซอฟต์แวร์ด้วย AI Coding Tools บน OpenCode ต้องไม่พลาดกับโมเดลแรงรุ่นใหม่อย่าง LongCat 2.5 Preview จาก Meituan ที่เปิดตัวมาเพื่อสายโค้ดดิ้งและเอเจนต์ที่ต้องการประมวลผล Context ขนาดใหญ่โดยเฉพาะ


เจาะลึกฟีเจอร์เด่น LongCat 2.5 Preview

โมเดลระดับ Trillion Parameters นี้ได้รับการปรับแต่งมาให้ทำงานร่วมกับสภาพแวดล้อม Dev Tools ยุคใหม่ได้อย่างมีประสิทธิภาพ:

  • 1M Long Context Window: รองรับ Context สูงสุดถึง 1,000,000 Tokens วิเคราะห์โค้ดฐานใหญ่ (Codebase) และอ่านเอกสารเชิงลึกได้สบาย
  • Native Tool Calling & Multi-Step Reasoning: ออกแบบมาสำหรับการทำงานแบบเอเจนต์ ตัดสินใจใช้ Tools และวางแผนการแก้ปัญหาโค้ดซับซ้อนได้หลายขั้นตอน
  • Deeply Compatible: เข้ากันได้ดีกับ OpenCode, Claude Code และเครื่องมือพัฒนาชั้นนำ

Thursday, September 24, 2026

[OpenCode] ใส่ Model ID ผิด ชีวิตเปลี่ยน! เช็กวิธีหาโค้ดโมเดลที่ถูกต้องใน OpenCode ผ่าน Terminal

การค้นหารหัสโมเดล (Model ID) เพื่อนำไปใช้งานกับเอเจนต์ใน OpenCode สามารถทำได้อย่างรวดเร็วผ่าน OpenCode Terminal / CLI โดยตรง ด้วย 2 ขั้นตอนดังนี้


ขั้นตอนที่ 1: ค้นหาชื่อโมเดลผ่าน Terminal

คุณสามารถพิมพ์คำสั่ง /models ขณะใช้งาน OpenCode TUI หรือรันคำสั่งผ่าน Terminal โดยตรง:

opencode models

ระบบจะแสดงรายชื่อโมเดลทั้งหมดที่พร้อมใช้งาน พร้อมรูปแบบ Provider ID เช่น anthropic/claude-sonnet-4-5, openai/gpt-4o หรือโมเดล Local อย่าง ollama/gemma3:4b

Wednesday, September 23, 2026

[Kubernetes] วิธีบริหารจัดการคอนฟิกฉบับมือโปร: แยก Code และ Configuration บน Kubernetes ด้วย Deployment, ConfigMap และ Secret

หลังจากที่เราเรียนรู้วิธีเปิดใช้งาน Kubernetes บน Docker Desktop ไปแล้ว ในบทเรียนนี้เราจะมาดูวิธีการปรับแต่งและควบคุมแอปพลิเคชันอย่างเป็นระบบด้วย Deployment (YAML) ร่วมกับการจัดการคอนฟิกผ่าน ConfigMap และข้อมูลลับด้วย Secret ผ่านการ Mount Volume แบบไม่ต้องพึ่งพา Environment Variables ครับ


ทำความรู้จัก ConfigMap และ Secret

เพื่อแยกส่วนประกอบของการตั้งค่าออกจากตัว Container Image เราจึงใช้วัตถุ 2 ตัวนี้เข้ามาช่วยบริหารจัดการข้อมูล:

  • ConfigMap: สำหรับเก็บข้อมูลการตั้งค่าทั่วไป เช่น ไฟล์ Config, พอร์ต หรือ URL ระบบ
  • Secret: สำหรับเก็บข้อมูลสำคัญ เช่น Password, API Tokens หรือข้อมูลฐานข้อมูล

[Kubernetes] วิธีการเปิดใช้งานและทดลองใช้ Kubernetes (Kube) บน Docker Desktop

สำหรับบทเรียนนี้ เราจะมาเรียนรู้วิธีการเปิดใช้งานและทดลองใช้ Kubernetes (Kube) บน Docker Desktop แบบมือจับทำทีละขั้นตอนครับ เหมาะมากสำหรับผู้เริ่มต้นที่ต้องการสภาพแวดล้อมทดสอบ Local Cluster โดยไม่ต้องติดตั้งเครื่องมือซับซ้อนเพิ่มเติม


ขั้นตอนที่ 1: เปิดใช้งาน Kubernetes ใน Docker Desktop

ปกติแล้ว Docker Desktop จะมาพร้อมกับ Kubernetes ในตัว แต่ถูกปิดไว้อยู่ ให้เปิดใช้งานตามนี้ครับ:

  1. เปิดโปรแกรม Docker Desktop ขึ้นมา
  2. กดที่ไอคอนรูปเฟือง ⚙️ (Settings) บริเวณมุมขวาบน
  3. เลือกแถบเมนู Kubernetes จากรายการด้านซ้าย
  4. ติ๊กถูกที่ช่อง Enable Kubernetes
  5. กดปุ่ม Apply & restart ด้านล่างขวา
  6. รอระบบดาวน์โหลดและเริ่มต้นบริการ (อาจใช้เวลา 3–5 นาที สังเกตไอคอนมุมซ้ายล่างจะเปลี่ยนเป็นสีเขียว)

Monday, September 21, 2026

[ExpressJS] Express.js trust proxy: ตั้งค่าผิดนิดเดียว เสี่ยงโดน IP Spoofing ไม่รู้ตัว

ทำไม Express.js ถึงอ่าน IP ฝั่ง Client ผิดพลาดเมื่ออยู่หลัง Proxy?

เมื่อเรานำ Express.js แอปพลิเคชันไปรันอยู่หลัง Reverse Proxy หรือ Load Balancer (เช่น Nginx, HAProxy, AWS ALB หรือ Cloudflare) Connection ที่วิ่งเข้าหา Node.js โดยตรงจะมาจาก IP ของ Proxy เอง ไม่ใช่ IP ของผู้ใช้งานจริง (Client) ส่งผลให้ค่า req.ip คืนค่าเป็น IP ของ Proxy เสมอ

เพื่อแก้ปัญหานี้ Reverse Proxy จะแนบ HTTP Header เพิ่มเติมเพื่อบอก IP ต้นทาง ได้แก่:

  • X-Forwarded-For: รายการ IP Address ที่ส่งต่อกันมาเป็นทอดๆ (รูปแบบ: client, proxy1, proxy2)
  • X-Forwarded-Proto: โปรโตคอลที่ Client ใช้เชื่อมต่อเข้ามาจริง (http หรือ https)
  • X-Forwarded-Host: Host Header ดั้งเดิมที่ Client เรียกใช้

การตั้งค่า app.set('trust proxy', value) คือการบอกให้ Express ทราบว่าจะยอมรับและนำค่าจาก Header เหล่านี้มาใช้อัปเดต Property เช่น req.ip, req.ips, req.protocol และ req.secure หรือไม่