Tag: python
306 รายการ
Blog

แพตช์แล้วยังไม่จบ: เช็กและแก้ LiteLLM, GitLab, Python, Java และ pandas ประจำสัปดาห์
คู่มือสายเดฟจากคลิปสรุปข่าว 19–26 ต.ค. 2026: คำสั่งเช็กเวอร์ชันและร่องรอย รุ่นที่ต้องอัปตอนนี้ (หลายตัวออกรอบสองแล้ว) และขั้นตอนแก้ตามประกาศทางการ

จัดรูปแบบตัวเลข Python ให้รายงานเงินบาทอ่านง่าย พร้อมเทสต์
ใช้ format specification จัดหลักพัน ทศนิยม และคอลัมน์รายงานเงินบาทด้วย Python พร้อมตัวอย่าง Decimal และ unittest ที่รันได้ทั้งไฟล์

สร้างลิงก์ภาษาไทยด้วย urllib.parse พร้อมเทสต์กัน URL พัง
ใช้ quote, urlencode และ urlsplit สร้างลิงก์ภาษาไทยที่มีช่องว่างและอักขระพิเศษ พร้อม unittest ตรวจการอ่านค่ากลับและเติม query ลง URL เดิม

pandas 3.1.0 มาแล้ว อ่าน CSV เร็วขึ้น แต่ต้องเช็กเลขศูนย์และวันเวลา
pandas 3.1.0 เพิ่มวิธีเลือกและกรองข้อมูล พร้อมอ่าน CSV หลายแกนประมวลผล สรุปสิ่งที่ควรทดสอบก่อนอัปเกรดงานรายงานและไฟล์ Excel

LeetCode #57 Insert Interval: หมี มด เหยี่ยว แข่งแทรกช่วงเวลา
แทรกช่วงเวลาแล้วรวมส่วนที่ทับกันด้วย Python 3 วิธี ผ่านวงโต้วาทีของหมี มด และเหยี่ยว พร้อมเทสต์และ benchmark ที่รันจริง

LeetCode #205 Isomorphic Strings: วาฬ แมว ลิง นกแก้ว ประชันสมุดแปลงอักษร
เข้าใจสตริงที่มีรูปแบบเดียวกันผ่านสัตว์การ์ตูน 4 วิธี พร้อมโค้ด 5 แบบ เทสต์ และ benchmark ที่รันจริงบนเครื่องนี้

LeetCode #242 Valid Anagram: ช้าง กระรอก ผึ้ง นกฮูก ใครนับแม่นสุด
ตรวจคำสลับอักษรด้วย Python 4 วิธี ผ่านวงถกของสัตว์นักนับ พร้อมเทสต์และ benchmark ที่รันจริงบนเครื่องนี้

Pydantic AI 2.60.0 เพิ่มห้องแยกให้ AI ทำงาน พร้อมสิทธิ์รายคำขอ
เครื่องมือสร้าง AI agent เพิ่มพื้นที่รันโค้ดแยกและการเชื่อมต่อด้วยสิทธิ์ของแต่ละผู้ใช้ ชวนดูว่าช่วยงานตรงไหน ต้องทดสอบอะไร และความเสี่ยงใดยังเหลือ

Agent Framework Python 1.23.0 เปลี่ยน MCP ครั้งใหญ่ ทีม AI ต้องเช็กก่อนอัปเดต
Microsoft Agent Framework Python 1.23.0 ย้ายสู่ MCP 2.x พร้อมเปลี่ยนเงื่อนไขสิทธิ์และเครื่องมือรันคำสั่ง สรุปสิ่งที่ทีมพัฒนาต้องทดสอบก่อนกระทบงานจริง

Python โหลด Secret ให้ครบก่อนเริ่มงาน พร้อมปิดค่าลับใน Log
ตรวจตัวแปรสภาพแวดล้อมที่จำเป็นให้ครบก่อนเปิดบริการ ซ่อนค่าลับใน log และเตรียมรับคีย์เก่าระหว่างหมุนคีย์ พร้อม unittest ที่รันได้

uv 0.13.5 อุดความเชื่อใจใบรับรองเก่า แต่อัปเดตแล้วต้องเช็กทุกโปรเจกต์
uv 0.13.5 ปรับ Python ที่ดาวน์โหลดมาให้ใช้ pip และ certifi ที่ตัดใบรับรองมีปัญหา พร้อมวิธีจัดการสภาพแวดล้อมเก่าและงานอัตโนมัติที่ไม่ได้เปลี่ยนตามเอง

LiteLLM 1.107.0 ฝังตัวขโมยกุญแจ AI แค่เริ่ม Python ก็เสี่ยง
LiteLLM รุ่นอันตรายหลุดทั้ง PyPI และ Docker กระทบรหัสผ่านและกุญแจบริการ AI สรุปช่วงเวลาเสี่ยง ข้อมูลที่ยังไม่ตรงกัน และสิ่งที่ผู้ใช้ ทีมไอทีกับผู้บริหารควรทำ

ตรวจ Python startup: อ่าน .pth และหา sitecustomize ก่อนโค้ดเริ่มรัน
สร้างตัวตรวจ .pth และโมดูลปรับแต่ง startup แบบอ่านอย่างเดียว พร้อมเทสต์ เพื่อหาจุดที่ควรทบทวนในแต่ละ Python environment

Python 3.15.1 มาแล้ว อัปเดตด่วนเรื่องใบรับรองเว็บ อย่าลืม pip ในงานเก่า
Python ออกอัปเดตพร้อมกันสามสายเพื่อรับมือเหตุใบรับรอง eMudhra/emSign อธิบายว่าควรลงรุ่นไหน และทำไมอัปเดต Python แล้วต้องเช็ก pip กับ uv ในสภาพแวดล้อมงานเดิมด้วย

Python ใช้ CA store ไหน เช็กให้ชัดก่อนแก้ TLS error
ไล่ดูแหล่งใบรับรองที่ Python ใช้ด้วย ssl พร้อมเทสต์แบบไม่ต่อเครือข่าย แยกพาธเริ่มต้นออกจากใบรับรองที่โหลดจริง เพื่อแก้ปัญหา TLS ให้ตรงจุด

pip 26.2.2 มาแล้ว: อัปเดตเครื่องอย่างเดียวอาจยังไม่พอ หลังเหตุ emSign
เหตุใบรับรอง eMudhra กระทบความเชื่อถือของการเชื่อมต่อใน Python เช็ก pip, certifi และสภาพแวดล้อมงานให้ครบ พร้อมแยกสิ่งที่ยืนยันแล้วกับสิ่งที่ยังไม่ชัด

LeetCode #973 K Closest Points to Origin: หมี เพนกวิน จิ้งจอก ลิง ชิงจุดใกล้สุด
หาจุดใกล้จุดกำเนิดด้วย Python 4 วิธี ตั้งแต่ sort ถึง quickselect พร้อมเทสต์และ benchmark ที่รันจริง

LeetCode #35 Search Insert Position: เต่า เหยี่ยว แมว ชิงตำแหน่งเสียบเลข
เทียบ 3 วิธีหาตำแหน่งแทรกในลิสต์เรียงแล้ว ตั้งแต่เดินทีละช่องถึง binary search และ bisect พร้อมเทสต์และ benchmark ที่รันจริง

LeetCode #88 Merge Sorted Array: ช้าง กระต่าย นกฮูก ประลองรวมคิว
รวมอาร์เรย์ที่เรียงแล้วด้วย 3 วิธี ผ่านวงถกของช้าง กระต่าย และนกฮูก พร้อมเทสต์และ benchmark ที่รันจริงใน Python

Pydantic AI 2.58.0 มาแล้ว อุดช่องโทเคนหลุดในบันทึกและแชตสั่งเครื่องมือ
อัปเดต Pydantic AI วันนี้แก้ความเสี่ยงสองจุด ทั้งข้อมูลลับติดบันทึกและเครื่องมือทำงานข้ามโมเดล พร้อมสิ่งที่ทีมพัฒนาควรตรวจและข้อควรระวังก่อนย้ายรุ่น

ส่งออก CSV ภาษาไทยให้ Excel อ่านง่ายด้วย Python utf-8-sig
เขียน CSV ภาษาไทยพร้อม BOM ด้วย utf-8-sig และจัดการบรรทัดด้วย newline='' พร้อมเทสต์ตรวจไบต์ อ่านกลับ และจับ BOM ที่ติดหัวคอลัมน์

uv 0.13.3 มาแล้ว หลัง 0.13.2 แก้ข้อมูลล็อกอินหลุดติดข้อความระบบ
uv แก้ข้อมูลรับรองที่อาจหลุดผ่านข้อความวิเคราะห์ปัญหาและข้อมูลที่บันทึกไว้ พร้อมแก้กฎพักแพ็กเกจใหม่ ชวนทีมตรวจบันทึกงานเก่าและอัปเดตให้ครบ

FastAPI ออก 3 รุ่นเปลี่ยนกติกาฟอร์ม ช่องว่างอาจใช้ค่าเริ่มต้นหรือส่งไม่ผ่าน
FastAPI 0.148.0–0.150.0 เปลี่ยนวิธีรับช่องว่าง ค่าเริ่มต้น และไฟล์ที่ไม่ได้เลือก สรุปผลต่อแบบฟอร์มประจำวัน พร้อมสิ่งที่ทีมเว็บควรตรวจสอบก่อนอัปเกรด

LangChain 1.4.6 ให้ AI ขออนุมัติแยกงาน ก่อนลงมือใช้เครื่องมือ
LangChain เพิ่มโหมดให้ผู้ช่วย AI หยุดขออนุมัติทีละงาน ช่วยตรวจคำสั่งก่อนลงมือ แต่ยังต้องตั้งค่าและระวังงานซ้ำเมื่อส่งหลายคำตอบพร้อมกัน

ล้างรหัสงานด้วย Python removeprefix และ removesuffix ให้ข้อมูลไม่แหว่ง
ตัด INV- หน้าเลขคำสั่งซื้อและ .csv ท้ายชื่อไฟล์ให้ตรงจุด พร้อมเทสต์จับบั๊ก lstrip และ rstrip ที่มักเผลอลบเนื้อข้อมูลไปด้วย

จัดชุดสิทธิ์เอกสารด้วย enum.Flag ใน Python พร้อมเทสต์
รวมสิทธิ์อ่าน เขียน ลบ และอนุมัติด้วย enum.Flag แทน boolean หลายตัว พร้อมตรวจสิทธิ์ เก็บค่าลงฐานข้อมูล และทดสอบด้วย unittest

FastAPI ออก 3 รุ่นติด: ค่าเก่าถูกถอด ย้าย root_path ไปตั้งที่เซิร์ฟเวอร์
FastAPI เปลี่ยนการตั้งค่าเบื้องหลังเว็บในวันที่ 18 ตุลาคม ทีมที่อัปเดตอัตโนมัติควรตรวจอะไร และทำไมต้องทดสอบผ่านพร็อกซีจริง

OpenAI Agents SDK 0.24.0 อัปเกรดความปลอดภัย ดึงป้ายกำกับ MCP คุมเครื่องมือ AI
เจาะลึก OpenAI Agents SDK v0.24.0 สำหรับ Python เพิ่มการอ่าน MCP annotations ปรับระบบจัดการข้อผิดพลาดเครื่องมือ และแก้บั๊กค้างรอบอนุมัติ

เจาะลึก Pydantic AI 2.57.0 ส่ง AI ช่วยกดอนุมัติคำสั่งไม่อันตราย ลดภาระคนเฝ้าจอ
Pydantic AI 2.57.0 เพิ่ม ApprovalReviewer ให้โมเดลตัวที่สองช่วยคัดกรองอนุมัติ tool call ความเสี่ยงต่ำแทนคน โดยไม่ให้สิทธิ์ปฏิเสธเอง

Python string.Template: ให้ผู้ใช้แก้ข้อความแจ้งเตือนเองได้ โดยไม่เปิดช่องให้ล้วงข้อมูลในอ็อบเจกต์
ทำไมไม่ควรเอาข้อความที่ผู้ใช้พิมพ์ไปเข้า str.format ตรงๆ และใช้ string.Template กับ substitute, safe_substitute, get_identifiers แทน พร้อม unittest ที่รันจริงบน Python 3.14

Python json: ไฟล์ config มี key ซ้ำ ระบบไม่เตือนสักคำ จับให้ได้ด้วย object_pairs_hook
json.loads เก็บค่าตัวสุดท้ายเมื่อ key ซ้ำแบบเงียบๆ ตามที่เอกสาร Python เขียนไว้ ใช้ object_pairs_hook โยน error ตั้งแต่ตอนโหลด config พร้อม unittest ที่รันจริง

Python difflib.get_close_matches: เดาคำที่ผู้ใช้พิมพ์ผิด แล้วถามว่า "หมายถึงอันนี้ไหม?"
ใช้ difflib.get_close_matches ในไลบรารีมาตรฐาน ทำระบบแนะนำคำเมื่อพิมพ์ชื่อจังหวัดหรือคำสั่งผิด ปรับ n และ cutoff ให้พอดี พร้อม unittest ที่รันจริงบน Python 3.14

LeetCode #48 Rotate Image: ยีราฟ จิ้งจอก เพนกวิน มดงาน หมุนรูป 90 องศาให้ไม่เบี้ยว
หมุนเมทริกซ์ n×n ตามเข็มนาฬิกา 90 องศา 4 วิธี ตั้งแต่สร้างตารางใหม่จนถึงสลับทีละชั้นแบบ in-place พร้อม benchmark ที่รันจริงสองขนาด

LeetCode #136 Single Number: ผึ้ง เป็ด กระต่าย แพนด้า หาเลขโสดตัวเดียวในฝูงคู่
หาเลขที่ไม่มีคู่ในลิสต์ที่ทุกตัวอื่นซ้ำสองครั้ง 4 วิธี ตั้งแต่นับด้วย dict จนถึง XOR ที่ไม่ใช้ที่เพิ่ม พร้อม benchmark จริงและตารางเลือกใช้

LeetCode #189 Rotate Array: เต่า ช้าง แมว นกฮูก กระรอก ใครหมุนอาร์เรย์เก่งสุด
หมุนอาร์เรย์ไปทางขวา k ช่อง 5 วิธีที่ต่างกันจริง เทียบเวลาและหน่วยความจำ พร้อม benchmark ที่รันบนเครื่องนี้ และตารางเลือกวิธีตามสถานการณ์

Python math.fsum: บวกทศนิยมทั้งลิสต์ให้แม่น และรู้ว่าเมื่อไหร่ควรเลิกใช้ float กับเงิน
เทียบ total += x กับ sum() และ math.fsum บน Python 3.14 แบบรันจริง ดูว่าทำไมยอดรวมเพี้ยน อะไรแก้ได้ อะไรแก้ไม่ได้ พร้อม unittest

Python บน Vercel เปิดตัว GA แล้ว: ใช้ FastAPI Django ได้จริง ไม่ต้องเซ็ตเซิร์ฟเวอร์เอง
15 ตุลาคม 2026 Vercel ประกาศ Python เป็นภาษาและ runtime หลักเต็มตัว (GA) ตรวจจับ FastAPI Flask Django อัตโนมัติ ใช้ uv และ pyproject.toml ได้ พร้อมข้อจำกัดที่ควรรู้ก่อนเอา LINE bot หรือ API ขึ้นใช้งานจริง

PyPI ตรวจชื่อเสียงอีเมลใหม่ กลับมาใช้ Outlook-Hotmail ได้แล้ว
PyPI เริ่มตรวจชื่อเสียงอีเมลตอนสมัครหรือเพิ่มอีเมลใหม่ ปฏิเสธอีเมลแบบใช้แล้วทิ้ง และเปิดให้ใช้ @outlook.com กับ @hotmail.com อีกครั้ง หลังห้ามมาตั้งแต่ปี 2024 เพราะบอทสมัครเยอะ เรื่องนี้สำคัญกับนักเรียน นักพัฒนาไทยที่ใช้เมล Microsoft ในการลงทะเบียนเพื่ออัปโหลดแพ็กเกจ

PyPI พบมัลแวร์ getpubip และ py-wormgpt หลอกด้วยชื่อล่อใจ
เมื่อวานนี้ PyPI ถูกแทรกมัลแวร์สองตัวที่ตั้งชื่อให้คนอยากติดตั้ง ทั้ง getpubip ที่อ้างช่วยหา IP และ py-wormgpt ที่อ้างเป็น AI แฮกเกอร์ มาดูว่ามันทำอะไรกับเครื่องเรา เงินเรา และควรทำอย่างไร

ตั้ง Cooldown 3 วันให้ pip และ uv: กันแพ็กเกจพิษที่เพิ่งอัปโหลดบน PyPI
งานวิจัยจาก Eye Security แนะนำตั้ง cooldown 3 วัน ไม่ติดตั้งแพ็กเกจที่เพิ่งอัพโหลดใหม่ เพราะมัลแวร์ส่วนใหญ่ถูกจับและถอดออกภายในไม่กี่วัน วิธีตั้ง pip, uv และเปรียบเทียบกับ npm พร้อมคำแนะนำสำหรับคนทำงานออฟฟิศและนักพัฒนา

Langflow CVE-2026-105740: รหัสผ่านอ่อนโดนโจมตี 1,706 ครั้งใน Honeypot
Langflow โปรแกรมสร้าง AI agent แบบลากวาง ถูกโจมตีจริงผ่านช่องโหว่ RCE แม้ต้องล็อกอินก่อน ใครใช้ Langflow ควรอัพเดทด่วนเพื่อป้องกันเซิร์ฟเวอร์โดนแฮก เรื่องนี้กระทบทั้งเงิน เวลา และความปลอดภัยข้อมูล

OpenAI Python 3.31.0 เพิ่มเครื่องมือ Browser และ Computer ให้ AI Agent
ไลบรารี Python ทางการของ OpenAI ออกเวอร์ชัน 3.31.0 พร้อมเครื่องมือใหม่ที่ให้ AI ควบคุมเบราว์เซอร์และคอมพิวเตอร์ได้ ช่วยนักพัฒนาไทยสร้างระบบอัตโนมัติที่ปลอดภัยกว่าเดิม พร้อมคำแนะนำเรื่องการ pin เวอร์ชันและการตั้งค่าการใช้เงิน

uv 0.13.1 ปล่อย Docker image Python 3.15 แท็ก stable แล้ว
ทีมที่ใช้ ghcr.io/astral-sh/uv:python3.15-* ต้องรู้แท็กไหนมีบ้าง ทำไมควร pin ทั้ง uv และ Python version พร้อมวิธีทดสอบก่อนเอาไปใช้จริงใน production

PyPI มัลแวร์ webreader 2.3.8 + pafer 0.9.7/0.9.8 แฝง pickle เป็น config
แพ็กเกจ Python บน PyPI สองตัวถูกเจาะ เปิดแล้วรันโค้ดมัลแวร์อัตโนมัติ ติดตั้ง persistence ผ่าน .pth แล้วดาวน์โหลด RAT ระบาดตั้งแต่ต้นเดือนตุลาคม 2569 ใครใช้ Python ต้องเช็ค requirements.txt วันนี้

LeetCode #438 Find All Anagrams: หน้าต่างเลื่อนชนะการ sort ทุกช่อง
แมวขี้เกียจกับนากนับตัวอักษรเถียงกันเรื่องหา anagram ทุกตำแหน่ง พร้อม benchmark จริง

LeetCode #239 Sliding Window Maximum: คิวสองหัวชนะการหา max ทุกหน้าต่าง
หมีขี้เกียจ นากคิว และนกฮูกกองโต เถียงกันเรื่องหาค่ามากสุดในทุกหน้าต่างขนาด k พร้อม benchmark จริง

LeetCode #424 Longest Repeating Character Replacement: หน้าต่างเลื่อน vs ไล่ทุกช่วง
กบขี้เกียจ นากขยัน และนกฮูกแผนที่ เถียงกันเรื่องเปลี่ยนตัวอักษรได้ k ครั้งให้ช่วงยาวสุด พร้อม benchmark จริงบนเครื่องนี้

Python 3.15 อัปเกรด JIT: เครื่องยนต์ใหม่ เร็วขึ้นแบบไม่ต้องเปลี่ยนพวงมาลัย
Python 3.15 มาพร้อม JIT compiler รุ่นใหม่ แรงขึ้น 7–12% บน Linux/Mac เครื่องผู้ใช้ไม่ต้องติดตั้งอะไรเพิ่ม เหมือนได้เครื่องยนต์รถใหม่แต่ขับเหมือนเดิม

Python 3.15 เปิดศักราชใหม่: รองรับ Stable ABI แบบ Free-Threading (abi3t) และ macOS ติดตั้งโหมดนี้เป็นค่าเริ่มต้น
Python 3.15 ออก Stable ABI แบบใหม่ (abi3t) รองรับ free-threading และ macOS ติดตั้งโหมดนี้เป็น default แล้ว นักพัฒนา C extension ต้องเตรียมตัวปรับโค้ดและ build pattern ใหม่

Python 3.15 แตกลิสต์ใน comprehension ได้แล้ว: PEP 798 คืออะไร
อัปเดต Python 3.15 ที่ให้ใช้ * และ ** ใน list/set/dict comprehension อ่านแล้วรู้ว่าเมื่อไหร่ควรใช้แทน nested loop และผลกระทบกับโค้ดเดิม

Strands Python 1.60.0 ให้ AI รันโค้ดได้ แต่ทีมต้องคุมสิทธิ์และข้อมูลที่แชร์
ผู้ช่วย AI ทำงานกับ Python และแบ่งข้อมูลกันได้สะดวกขึ้น แต่มีการเปลี่ยนแปลงที่กระทบระบบเดิม อ่านสิ่งที่ทีมไทยควรตรวจ ก่อนให้ผู้ช่วยแตะไฟล์และข้อมูลลูกค้า

NumPy 2.5.4 ยอมหยุดคำนวณ ดีกว่าปล่อยตัวเลขผิดเข้ารายงาน
NumPy แก้การคำนวณที่เจอค่าอนันต์ ให้แจ้งข้อผิดพลาดแทนผลลัพธ์ผิด เข้าใจผลต่อรายงานและสมุดงาน Python พร้อมแนวทางเตรียมอัปเดต

Ruff 0.17.0 เซ็นรับรองไฟล์แล้ว แต่เกณฑ์ตรวจ Python เปลี่ยนด้วย
อัปเดต Ruff รอบนี้ช่วยตรวจผู้เผยแพร่ไฟล์ แต่เปลี่ยนค่าเริ่มต้นและการตั้งค่า VS Code ด้วย สรุปสิ่งที่นักเรียนและทีมพัฒนาควรเช็กก่อนอัปเกรด

uv เปลี่ยน Python เริ่มต้นเป็น 3.15 งานเดิมต้องเช็กอะไรบ้าง
คำสั่งติดตั้งเดิมอาจได้ Python รุ่นใหม่ แต่เครื่องที่มีรุ่นเดิมยังใช้ต่อได้ ดูวิธีตรึงรุ่นและจุดเปลี่ยนที่ทีมงานควรตรวจ ก่อนอัปเดต uv
Python zipfile.Path: อ่านไฟล์ใน ZIP โดยไม่แตกทั้งก้อน
ใช้ zipfile.Path เลือกอ่านสมาชิกใน archive แบบ path-like พร้อม unittest และกฎตรวจชื่อไฟล์ก่อนแตะ ZIP ที่ไม่เชื่อถือ
Python statistics.multimode: รายงานอันดับหนึ่งร่วมโดยไม่ทิ้งคำตอบ
ใช้ statistics.multimode จัดการข้อมูลที่มีค่าพบบ่อยเท่ากัน พร้อม unittest สำหรับ tie, empty input และลำดับผลลัพธ์
Python shutil.which: หา executable ก่อนเรียก subprocess อย่างมีขอบเขต
ใช้ shutil.which กับ PATH ที่กำหนดเองและ allowlist คำสั่ง พร้อม unittest ที่สร้าง executable ชั่วคราวโดยไม่เรียก shell
Python base64.urlsafe_b64encode: ส่งไบต์ใน URL โดยไม่พังเครื่องหมาย
ใช้ urlsafe_b64encode/decode แทนมาตรฐานเมื่อฝังโทเคนใน query string พร้อมจัดการ padding
Python re.fullmatch: ตรวจทั้งสตริง ไม่ให้ส่วนเกินหลุดผ่าน
ใช้ fullmatch แทน search เมื่อต้องการให้แพทเทิร์นครอบคลุมทั้งค่า เช่น รหัสคูปองหรือสลักชื่อไฟล์
Python ipaddress: แยก IP ส่วนตัวกับสาธารณะก่อนเปิดพอร์ต
ใช้ ip_address(...).is_private และ is_global กรองที่อยู่ก่อน bind หรือยิง webhook เพื่อกันยิงเข้าเครือข่ายภายในโดยไม่ตั้งใจ
Python urljoin: ต่อ URL โดยไม่เปิดทางให้ input เปลี่ยน host
ใช้ urllib.parse.urljoin พร้อมตรวจ same-origin กัน absolute URL และ scheme-relative redirect พร้อม unittest
Python Counter.total: รวมจำนวนคงเหลือโดยยังเห็นค่าติดลบ
ใช้ collections.Counter.total คำนวณผลรวมสุทธิ อธิบายค่าศูนย์/ติดลบและการ normalize พร้อม unittest
Python annotationlib: อ่าน type hint เป็นข้อความโดยไม่ resolve ชื่อทันที
ใช้ annotationlib.get_annotations กับ Format.STRING สำหรับ tooling ที่ต้องอ่าน type hint โดยไม่ import dependency เพิ่ม พร้อม unittest

Pydantic AI 2.55.0 ให้บอตพกแชตต่อ พร้อมยอดใช้ที่ไม่เริ่มนับใหม่
Conversation รวมประวัติแชต ยอดใช้งาน และงานรออนุมัติไว้ด้วยกัน อธิบายว่าช่วยร้านค้าอย่างไร และทำไมยังต้องออกแบบการเก็บข้อมูลกับทดสอบก่อนอัปเกรด

Python 3.16 นัด alpha 13 ต.ค. แล้วเครื่องทำงานควรลงรุ่นไหน
แยกรุ่นใช้งานจริงกับรุ่นทดลองก่อนอัปเดต Python พร้อมอ่านสถานะการดูแลและจุดเปลี่ยนในเอกสารร่างที่อาจกระทบสคริปต์เก่า

GhostAction เจาะผู้สร้าง pyxel ลบรหัสจากโค้ดแล้วก็ยังเสี่ยง
บัญชีผู้ดูแล pyxel ถูกใช้เพิ่มงานตรวจความปลอดภัยปลอมที่ขโมยรหัสถึงประวัติโค้ดเก่า แยกความเสี่ยงของคนเล่นเกมกับคนเขียน Python พร้อมขั้นตอนตรวจและเพิกถอนสิทธิ์
LeetCode #394 Decode String: แกะวงเล็บซ้อนด้วย stack
เทียบ 3 วิธีถอดข้อความ k[encoded] พร้อม parser, stack, Python, Java, complexity และ decision table
LeetCode #73 Set Matrix Zeroes: ใช้แถวแรกเป็นสมุดจด
เทียบ 3 วิธีทำแถวและคอลัมน์ให้เป็นศูนย์ พร้อมวิธี O(1), Python, Java, edge cases และ decision table
LeetCode #2 Add Two Numbers: บวก linked list ด้วย carry ทีละหลัก
เทียบ 3 วิธีบวกเลขที่เก็บกลับหลักใน linked list พร้อม Python, Java, complexity, edge cases และ decision table
Python importlib.resources.files: อ่านไฟล์ใน package โดยไม่เดา path
ใช้ Traversable API อ่าน resource ที่มากับ package รองรับ wheel/zip และทดสอบผ่าน temporary package
Python inspect.signature: ตรวจรูปแบบ callable โดยไม่เรียกโค้ดจริง
อ่าน parameter kind และ default เพื่อเช็ก capability ของ plugin แบบไม่ execute พร้อม unittest
Python calendar.monthrange: หาวันสุดท้ายของเดือนโดยไม่บวก 31 วัน
ใช้ monthrange คืน weekday และจำนวนวัน พร้อม validate timezone boundary และ leap year ด้วย unittest

uv 0.12.24 ล้างไฟล์ค้าง ตรวจ hash เข้มขึ้น คนใช้ Python ควรรู้อะไร
อัปเดต uv รอบนี้ช่วยเก็บกวาดพื้นที่และแก้การตรวจไฟล์แพ็กเกจ อธิบายว่าคนทำงานกับ Python และทีมดูแลระบบควรตรวจอะไร ก่อนใช้ตัวอย่าง Docker แบบ frozen

Pydantic 2.14 มาแล้ว ทีมที่ใช้ Python เก่าต้องเช็กก่อนอัปเดต
ไลบรารีตรวจข้อมูลเพิ่มการรองรับ Python รุ่นใหม่ พร้อม frozendict และ MISSING ที่เสถียรแล้ว แต่การเปลี่ยนเล็กน้อยอาจกระทบแบบฟอร์มเดิม อ่านวิธีเตรียมทีมก่อนอัปเกรด

Python 3.15 มาแล้ว อ่านไทยง่ายขึ้น แต่เครื่องทำงานควรรอก่อน
Python รุ่นใหม่เปลี่ยนวิธีอ่านไฟล์ข้อความและเพิ่มทางเลือกด้านความเร็ว เช็กผลต่อไฟล์ไทย ไลบรารี และคำเตือน IDLE บน Mac ก่อนตัดสินใจอัปเกรด

LeetCode #283 Move Zeroes: 5 สัตว์เถียงกันว่าใครย้ายลังเปล่าได้เร็วสุด
ลบแล้วต่อท้าย, สร้าง list ใหม่, sort ด้วย key, สองตัวชี้สลับ และเขียนทับแล้วเติม 0 มาเถียงกันในโจทย์ย้ายเลขศูนย์ไปท้าย พร้อม test และ benchmark ที่วัดจริง

LeetCode #268 Missing Number: 5 วิธีเถียงกันว่าใครเร็วสุด แล้วให้ benchmark ตัดสิน
ไล่ทีละตัว, sort, set, สูตรผลบวก และ XOR มาเถียงกันในโจทย์หาเลขที่หายไป พร้อม test และผล benchmark ที่วัดจริง

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

Django เลิกรับรายงานใหม่ผ่าน HackerOne เจ้าของเว็บต้องเช็กอะไร
Django ให้ส่งช่องโหว่ใหม่ทางอีเมล แต่ยังดูแลรายงานเดิมบน HackerOne แยกเรื่องช่องทางแจ้งปัญหาออกจากการอัปเดตเว็บ พร้อมเช็กแพตช์และนโยบายบริษัท
Python secrets.compare_digest: เทียบลายเซ็นโดยลด timing leak
ตรวจ webhook MAC ด้วย compare_digest หลัง decode และ validate format พร้อมแยก constant-time comparison ออกจากการคำนวณ HMAC และ replay protection
Python bisect กับ key: แทรก record ลงลิสต์เรียงโดยไม่สร้าง key list ใหม่
ใช้ bisect_left และ insort_right กับ key function ให้ถูก โดยแยกค่าที่ค้นจาก record ที่แทรก พร้อม trade-off ของ O(log n) search กับ O(n) insertion
Python datetime.fromisoformat: รับเวลา ISO 8601 โดยไม่ลืม timezone
parse timestamp ด้วย fromisoformat พร้อมบังคับ timezone, normalize เป็น UTC และทดสอบ Z, offset, naive datetime กับเวลาที่ไม่ถูกต้อง

pandas 3.1.0rc0 มาแล้ว ลองรายงานก่อนยอดจริงเปลี่ยน
pandas เปิดรุ่นทดสอบก่อนออกจริง คนทำรายงานควรเช็กการเลือกคอลัมน์ กรองแถว รหัสศูนย์นำหน้า และยอดรวมทศนิยม พร้อมขั้นตอนลองโดยแยกจากงานจริง

16 ต.ค. Excel บนเว็บหยุดส่ง Power Query ให้ Python งานรายงานต้องเช็กก่อน
คนทำบัญชีและรายงานบน Excel ในเบราว์เซอร์ควรตรวจไฟล์ที่ใช้ Power Query ร่วมกับ Python ก่อนวันยุติ แยกทางออกบน Windows ที่ Microsoft ยืนยัน กับวิธีผ่านตารางที่ยังต้องทดสอบ
LeetCode 79 Word Search: backtracking ที่คืนสถานะกระดานทุกทางออก
เทียบ visited set, in-place marking และ frequency pruning พร้อม complexity, edge cases, decision table และ Python tests
LeetCode 15 3Sum: sort แล้วบีบสองฝั่งเพื่อคุมชุดซ้ำ
เทียบ two pointers, hash per pivot และ brute-force oracle พร้อม complexity, duplicate rules, decision table และ Python tests
LeetCode 55 Jump Game: ไปถึงปลายทางด้วย greedy แบบไม่แบกตาราง
เทียบ forward reach, backward goal และ dynamic programming พร้อม complexity, edge cases, decision table และ Python tests
Python inspect.getmembers_static: สำรวจ object โดยไม่เผลอเรียก property
เทียบ getmembers กับ getmembers_static ผ่าน descriptor ที่มี side effect และ unittest แบบ isolated
Python typing.assert_never: ทำให้ branch ที่ไม่ควรถึงตรวจได้ทั้ง static และ runtime
สร้าง exhaustive dispatch ด้วย Enum, assert_never และ unittest พร้อมอธิบายข้อจำกัดของ type checker
Python deque.copy: ถ่าย snapshot คิวโดยรักษา maxlen
ดู shallow-copy semantics, maxlen และการแยก mutation ของคิวด้วย unittest ที่รันจริงบน Python 3.14

EVE ย้ายโค้ด 2.4 ล้านบรรทัด บทเรียนสำหรับสคริปต์เก่าที่ออฟฟิศไม่กล้าแตะ
EVE Online เริ่มย้ายจาก Python เก่าโดยให้เกมเดินต่อและข้อมูลเดิมต้องไม่เปลี่ยน ชวนบริษัทไทยสำรวจสคริปต์ที่ใช้ทุกวัน พร้อมวิธีเตรียมทดสอบก่อนย้ายทีละขั้น

Django อุดช่องโหว่ เว็บร้านค้าไม่ควรรอจนช้าถึงค่อยแพตช์
Django ออกแพตช์ความปลอดภัยสำหรับเว็บและระบบหลังบ้าน อ่านว่าช่องโหว่กระทบอะไร ทำไมระดับ moderate ยังควรใส่ใจ และเจ้าของกิจการควรให้ทีมเว็บตรวจอะไรบ้าง

Polars 2.0 ออกแล้ว รายงานเร็วขึ้นได้ แต่ลำดับแถวอาจเปลี่ยน
คนทำรายงานด้วย Python ควรตรวจอะไรเมื่อ Polars เปลี่ยนเครื่องประมวลผลเริ่มต้น อธิบายลำดับแถว ชนิดข้อมูล และขั้นตอนทดลองก่อนส่ง Excel ให้ทีม

Strands Agents Python 1.58.1 แก้ nested interrupt resume: patch เล็ก แต่ approval boundary ต้องทดสอบใหญ่
ตรวจ release, PyPI, tool/HITL docs, advisories และ known issue ของ Strands Agents 1.58.1 พร้อมแนวทางจำกัด host permissions และ approval

Google ADK Python 2.11.0 เพิ่ม tool confirmation และ cancellation: guardrail ดีขึ้น แต่ tool ยังมีสิทธิ์เท่า process
ตรวจ release, PyPI, docs และ advisories ของ Google ADK Python 2.11.0 พร้อมวิเคราะห์ workflow approval, ModelConsultTool, SQLite memory และ MCP 2.x
Python Fraction.from_number: รับเฉพาะตัวเลขโดยไม่เผลอ parse ข้อความ
ใช้ Fraction.from_number แยก numeric API จาก string parsing พร้อมทดสอบ int, float, Decimal และข้อควรระวังค่าทศนิยมฐานสอง
Python ExitStack.pop_all: โอนสิทธิ์ cleanup เมื่อทุกขั้นเตรียมสำเร็จ
ใช้ ExitStack.pop_all ทำ all-or-nothing resource setup พร้อม unittest ที่ตรวจ cleanup ก่อนและหลังโอน ownership
Python ChainMap.new_child: ซ้อน scope ใหม่โดยไม่ copy config ทั้งก้อน
ใช้ ChainMap.new_child สร้าง override ชั้นใหม่ พร้อมทดสอบ lookup, mutation และ parents เพื่อจัดการ config หลายระดับอย่างชัดเจน

Python แก้ช่องโหว่แปลงชื่อเว็บ: ตัวพิมพ์เล็กทำให้ระบบมองคนละโดเมน
ชื่อเว็บเดียวกันอาจแปลงออกมาต่างกัน เพราะ Python ใช้กฎตัวอักษรผิดยุค อธิบายความเสี่ยงต่อการตรวจชื่อเว็บ รุ่นที่แก้แล้ว และสิ่งที่คนทั่วไปกับทีม IT ควรตรวจ

SQLAlchemy 2.1 มาแล้ว: เช็กก่อนอัปเกรด ไม่ให้หลังร้านสะดุด
ติดตั้ง SQLAlchemy ใหม่อาจได้ค่าเริ่มต้นที่เปลี่ยนไป เช็ก Python ตัวเชื่อมฐานข้อมูล และส่วนเสริมงานพร้อมกัน ก่อนนำระบบร้านค้า จองคิว หรือบัญชีขึ้นใช้งานจริง
Python LoggerAdapter merge_extra: รวม context ประจำกับข้อมูลต่อ log call
ใช้ LoggerAdapter merge_extra เพิ่ม request context โดยไม่ทับข้อมูลต่อเหตุการณ์ พร้อม unittest ที่ตรวจ LogRecord จริงและข้อควรระวัง secret
Python weakref.finalize: วาง cleanup สำรองโดยไม่ทำให้ object อยู่ค้าง
ใช้ weakref.finalize ลงทะเบียน cleanup แบบไม่ยึด owner ไว้ พร้อมทดสอบ idempotency และย้ำว่า context manager ยังเป็นเส้นทางหลัก
Python sqlite3 backup: สำรองฐานข้อมูลทีละหน้าโดยไม่ copy ไฟล์ที่กำลังเขียน
ใช้ Connection.backup สร้างสำเนา SQLite ที่สอดคล้อง พร้อม unittest จริงและข้อควรระวัง transaction, destination และการตรวจ restore

Python 3.15 เลื่อนตัวจริงไป 9 ต.ค. เจอบั๊กท้ายรอบ ทำไมรออีกสัปดาห์จึงเป็นข่าวดี
Python ออก 3.15.0rc3 เพิ่มเพื่อทดสอบการแก้บั๊ก lazy imports ก่อนตัวจริงตามกำหนดใหม่ 9 ตุลาคม อธิบายผลต่อผู้ใช้แอป นักพัฒนา และคนดูแลไลบรารี พร้อมสิ่งที่ควรทดสอบระหว่างรอ

Python 3.10.22 รุ่นสุดท้ายมาแล้ว เว็บและบอทเก่าต้องวางแผนย้าย พร้อมแพตช์อีกหลายรุ่น
Python ประกาศปิดการดูแลสาย 3.10 พร้อมอัปเดตความปลอดภัยหลายสาย อธิบายผลต่อเว็บ บอท และงานอัตโนมัติของธุรกิจไทย พร้อมขั้นตอนเช็กและย้ายรุ่นโดยทดสอบก่อน
Python email.headerregistry: อ่านหัวอีเมลแบบมีชนิด ไม่ต้องตัดสตริงเอง
ใช้ HeaderRegistry และ Address แยกชื่อกับที่อยู่ พร้อมทดสอบ Content-Type แบบมีพารามิเตอร์
Python csv.unix_dialect: ส่งไฟล์ CSV ข้ามเครื่องโดยไม่พังเพราะขึ้นบรรทัดใหม่
ใช้ dialect ที่ quote ทุกฟิลด์และขึ้นบรรทัดแบบ LF พร้อมทดสอบความต่างจาก excel
LeetCode 14 Longest Common Prefix: หดคำตั้งต้นจนทุกคำยอมรับ
เทียบ horizontal shrink, vertical scan และ sort first-last พร้อม complexity, edge cases, decision table และ Python tests
LeetCode 7 Reverse Integer: กลับหลักพร้อมหยุดก่อนล้น 32-bit
เทียบ string reversal กับ arithmetic pop-push พร้อม overflow guard, complexity, edge cases, decision table และ Python tests
LeetCode 4 Median of Two Sorted Arrays: แบ่งสองฝั่งให้ซ้ายไม่เกินขวา
เทียบ merge, kth elimination และ binary partition พร้อม complexity, edge cases, decision table และ Python tests ที่รันจริง
Python collapse_addresses: รวม CIDR ที่ติดกันโดยไม่ขยายเป็นทุก IP
ใช้ ipaddress.collapse_addresses ลดรายการ network ที่ซ้อนหรือติดกัน พร้อมทดสอบ IPv4, type mismatch และข้อจำกัดด้าน policy
Python Path.readlink: อ่านปลายทาง symlink โดยไม่เผลอ resolve ทั้งเส้น
แยกการอ่านค่าที่ symlink เก็บจากการ resolve path จริง พร้อมทดสอบ relative target และ broken link ด้วย pathlib
Python random.binomialvariate: จำลองจำนวนครั้งที่สำเร็จโดยไม่เขียนลูปเอง
ใช้ random.binomialvariate สำหรับการทดลองอิสระ n ครั้ง พร้อม seed, validation และคำเตือนว่า PRNG ไม่เหมาะกับความลับ
Python 3.14 max-heap API: เลิกใส่เครื่องหมายลบเพื่อจัดคิวค่าสูงสุด
ใช้ heapify_max, heappush_max และ heappop_max โดยตรง พร้อมทดสอบลำดับและแยกจาก min-heap เดิม
Python statistics.kde: ประมาณ distribution โดยไม่บังคับให้ข้อมูลเป็นโค้งระฆัง
ใช้ kernel density estimation กับข้อมูลขนาดเล็ก พร้อมทดสอบ density, bandwidth และขอบเขตการตีความ
Python 3.14 os.reload_environ: รีเฟรช environment ได้ แต่ห้ามแข่งกับ thread อื่น
เข้าใจเวลาที่ os.environ ไม่ตรงกับ process environment พร้อมทดสอบ reload แบบ isolated และวาง synchronization
Python AsyncContextDecorator: ใช้ lifecycle เดียวกันทั้ง async with และ decorator
สร้างขอบเขต async ที่นำกลับใช้ได้สองรูปแบบ พร้อม unittest พิสูจน์ลำดับ enter/work/exit
Python itertools.tee: แยก iterator ได้ แต่ต้องรู้ว่า buffer โตตรงไหน
อธิบาย shared source, backlog เมื่อ consumer วิ่งไม่เท่ากัน และวิธีเลือก list หรือ tee ให้ตรงงาน
Python 3.14 make_dataclass decorator: กำหนด policy ตอนสร้างคลาสจาก schema
ใช้ decorator hook บังคับ frozen/slots กับ dataclass แบบ dynamic พร้อม unittest ป้องกัน mutation
LeetCode 287 Find the Duplicate Number: 4 วิธีจาก Set ถึง Floyd Cycle
เทียบ hash set, sort, binary search บนช่วงค่า และ Floyd cycle detection พร้อม decision table และ Python tests
LeetCode 105: สร้าง Binary Tree จาก Preorder กับ Inorder
เทียบ recursive hash map, iterative stack และ naive scan พร้อม complexity, decision table และ Python tests
LeetCode 54 Spiral Matrix: เดินขอบให้ครบโดยไม่หลงมุม
เทียบ 2 วิธีเดินเมทริกซ์แบบก้นหอย พร้อม complexity, edge cases, decision table และ Python tests ที่รันจริง
Python dataclasses.astuple: แปลงเป็น tuple พร้อมรู้ต้นทุน deep copy
ใช้ dataclasses.astuple ที่ boundary และทดสอบว่าข้อมูลซ้อนถูกคัดลอก ไม่แชร์ list กับต้นฉบับ
Python AsyncExitStack: รวม cleanup แบบ sync และ async ไว้ในจุดเดียว
จัดการ resource ที่เปิดตามเงื่อนไขด้วย contextlib.AsyncExitStack และยืนยันลำดับปิดย้อนกลับด้วย unittest
Python math.sumprod: คูณเป็นคู่แล้วรวมอย่างอ่านตรงโจทย์
ใช้ math.sumprod ทำ dot product และ weighted total พร้อมตรวจความยาว input และชนิดตัวเลข
LeetCode #133 Clone Graph: คัดลอกวงจรด้วยตาราง old-to-new
เทียบ DFS และ BFS สำหรับ clone กราฟ พร้อม edge cases, decision table และ tests ตรวจ deep copy
LeetCode #62 Unique Paths: นับทางเดินด้วย memo, DP และคณิตศาสตร์
เทียบ top-down, bottom-up และ combinatorics พร้อม complexity, decision table และ Python tests
LeetCode #153 หาเลขน้อยสุดใน rotated array: อ่านรอยต่อด้วย binary search
เทียบ linear scan, sort-copy และ binary search พร้อม decision table, edge cases และ Python tests
Python operator.call: ส่งฟังก์ชันเข้า pipeline แบบไม่ต้องห่อ lambda
ใช้ operator.call เรียก callable ใน functional pipeline พร้อมรู้ว่าความอ่านง่ายสำคัญกว่าความสั้น
Python Path.from_uri: แปลง file URI เป็น path โดยตรวจ scheme ให้ก่อน
รับ file:// URI ด้วย pathlib ใน Python 3.13+ พร้อมข้อควรระวังเรื่อง authority และ trust boundary
Python argparse: ชี้คำสั่งที่พิมพ์ใกล้เคียง และคุมสี error ได้
ใช้ suggest_on_error และ color ใน Python 3.14 เพื่อทำ CLI ที่ช่วยแก้ typo โดยไม่ซ่อน validation
uv 0.12.20: ล็อกไฟล์ฉลาดขึ้น แก้แฮชซ้ำ และคืนแคช HTTP บน ext4
สรุป GitHub release 28 ก.ย. 2026 ของ uv 0.12.20 — reuse lockfile เมื่อ dependency เทียบเท่ากัน, บังคับแฮชครบทุก requirement ซ้ำ, และถอยตารางเขียนแคช HTTP หลังเจอ stall บน ext4
Python hashlib.file_digest: แฮชไฟล์ใหญ่โดยไม่อ่านทั้งก้อนเอง
ใช้ hashlib.file_digest ตั้งแต่ Python 3.11 คำนวณแฮชจากไฟล์หรือไฟล์ออบเจ็กต์โดยไลบรารีจัดการบัฟเฟอร์ให้ ลดโค้ดผิดพลาดตอนเช็กซัม
Python Path.walk: เดินต้นไม้โฟลเดอร์แบบ pathlib โดยไม่ต้อง os.walk
ใช้ Path.walk ตั้งแต่ Python 3.12 ได้ dirpath/dirnames/filenames คล้าย os.walk แต่เป็น Path object ลดการต่อสตริงเอง
Python os.fwalk: เดินต้นไม้ไฟล์พร้อม dir_fd เพื่อลด path race
ใช้ os.fwalk เปิดไฟล์แบบอ้างอิงไดเรกทอรีปัจจุบัน พร้อมอธิบายอายุของ descriptor และ unittest ที่รันจริง
Python zoneinfo.reset_tzpath: คุมแหล่งข้อมูล timezone ใน test และ deployment
เปลี่ยนเส้นทางค้นหา TZif แบบชั่วคราวอย่างมีวินัย พร้อม restore state และ unittest ที่รันจริง
Python tomllib + Decimal: อ่านเลขทศนิยมจาก config โดยไม่เสียเศษ
ใช้ parse_float ของ tomllib ส่งค่าทศนิยมเข้า Decimal ตั้งแต่ตอน parse พร้อม unittest ที่รันจริง
Python SimpleNamespace: ทำวัตถุ attribute เร็วๆ โดยไม่ต้องเขียนคลาส
ใช้ types.SimpleNamespace เก็บค่าแบบจุดเข้าถึงด้วยชื่อ พร้อมเทียบกับ dict และทดสอบการอัปเดต attribute
Python atexit: จองคิวเก็บกวาดก่อนโปรเซสจบ
ลงทะเบียนฟังก์ชันด้วย atexit.register ให้รันตอน interpreter ปกติจะจบ พร้อมทดสอบลำดับ LIFO และกรณีที่ handler ไม่ถูกเรียก
Python enum.auto: ให้เลขสมาชิกเอง ไม่ต้องไล่พิมพ์เอง
ใช้ enum.auto() ไล่ค่าอัตโนมัติใน IntEnum/Enum พร้อมทดสอบว่าลำดับประกาศคือลำดับตัวเลข และกันสับสนตอนแทรกสมาชิกใหม่
LeetCode #417 Pacific Atlantic: เดินน้ำย้อนจากสองมหาสมุทร
เทียบ brute force, reverse DFS/BFS และ bitmask frontier พร้อม decision table และ Python tests
LeetCode #230 Kth Smallest in BST: หยุด inorder เมื่อถึงลำดับ
เทียบ inorder ทั้งชุด, iterative early-stop และ subtree size พร้อม decision table และ tests
LeetCode #139 Word Break: ต่อคำให้เต็มสตริงโดยไม่หลงทางซ้ำ
เทียบ DP, memoized DFS, BFS และ trie พร้อม decision table และ Python unittest ที่รันจริง
Python unicodedata.normalize: เทียบข้อความให้ตรงโลก Unicode
เลือก NFC/NFKC ก่อนเทียบ identifier พร้อมอธิบายว่าการ normalize ไม่ใช่ระบบป้องกันชื่อหลอกทั้งหมด
Python redirect_stdout: จับ output ของโค้ดเก่าไว้ทดสอบ
ใช้ contextlib.redirect_stdout ครอบฟังก์ชันที่ print โดยไม่แก้ global state นานเกิน scope
Python memoryview.cast: เปลี่ยนมุมมอง bytes โดยไม่ copy
อ่านบัฟเฟอร์เดิมเป็นสมาชิกชนิดใหม่ด้วย memoryview.cast พร้อมตรวจ alignment เชิงรูปแบบและ byte order
Python bisect.insort: สอดค่าใหม่แล้วยังเรียงอยู่
ใช้ bisect.insort คงลิสต์เรียงตอนแทรก พร้อมตัวอย่าง unittest — เหมาะคิวคะแนน/ตารางเวลาเล็ก ๆ
Python statistics.correlation: วัดแนวโน้มสองชุดตัวเลขใน stdlib
ใช้ statistics.correlation (3.10+) คำนวณ Pearson พร้อม unittest รันจริง — ไม่ต้องดึง NumPy แค่ดูความสัมพันธ์คร่าว ๆ
uv 0.12.19: อัป PyPy/GraalPy และกันรีอินสตอลแพ็กเกจ URL เซ็นแล้ว
สรุป GitHub release 24 ก.ย. 2026 — PyPy 3.11.16/3.12.14, แก้ query เซ็นใน direct-URL, preview build-lazy-imports
LeetCode #208 Implement Trie: ต้นไม้คำนำหน้าสำหรับค้นเร็ว
เทียบโหนด+dict, อาเรย์ 26 ช่อง และเซ็ตคำแบบช้า พร้อมเลือกใช้ตามสถานการณ์
LeetCode #46 Permutations: สลับให้ครบทุกแถวโดยไม่ซ้ำตำแหน่ง
เทียบ backtracking+used, swap in-place และ itertools พร้อม tradeoff
LeetCode #22 Generate Parentheses: เปิด-ปิดให้ถูกทุกแบบ
เทียบ backtracking นับเปิด/ปิด, brute+validate และ DP แบบ Catalan พร้อม decision table
LangChain MCP 1.4 beta: ย้ายเข้า langchain.mcp + elicitation แบบ interrupt
สรุปจากบล็อก LangChain 3 ก.ย. 2026 — MCP อยู่ในแพ็กเกจหลัก, สร้างบน FastMCP, รองรับแคชและ elicitation ผ่าน LangGraph interrupt
Python typing.override: แสตมป์บอก type checker ว่าตั้งใจทับเมธอดแม่
ใช้ @override จาก typing (PEP 698) เพื่อจับชื่อเมธอดทับผิด พร้อม unittest รันไทม์
Python dataclasses.replace: คัดลอกแล้วแก้บางฟิลด์แบบปลอดภัย
ใช้ dataclasses.replace กับ dataclass ธรรมดาและ frozen พร้อม unittest
Python deque(maxlen): คิววงกลมที่ตัดของเก่าให้อัตโนมัติ
ใช้ collections.deque แบบ maxlen เพื่อเก็บหน้าต่างล่าสุด N ชิ้น พร้อม unittest
Python operator.methodcaller: เรียกเมธอดเป็นคีย์เรียง/แมปโดยไม่เขียนแลมบ์ดา
ใช้ operator.methodcaller สร้าง callable ที่เรียกเมธอดชื่อเดิม พร้อมอาร์กิวเมนต์ คู่กับ sorted/map
Python as_completed: เก็บผลงานขนานทีละชิ้นตามลำดับเสร็จ
ใช้ concurrent.futures.as_completed เพื่อประมวลผล future ที่เสร็จก่อนโดยไม่รอทั้งหมด พร้อม unittest
uv 0.12.18: --check + JSON จาก pip install/sync และแพตช์ path บน Windows
สรุป Astral uv 0.12.18 (22 ก.ย. 2026) — เพิ่ม --output-format json และ --check ให้ uv pip install/sync พร้อมแก้ GHSA path traversal บน Windows
uv 0.12.16: ตรวจ hash จาก index ก่อนใช้ wheel/sdist
สรุปรีลีส Astral uv 0.12.16 (17 ก.ย. 2026) — ตรวจ hash ที่ index ส่งมา, ใส่ hash ใน build-constraint และกัน panic จาก Git URL scheme
Python 3.10 ใกล้ EOL 31 ต.ค. 2026 — เช็กโปรดักชันก่อนหมดแพตช์
เตือนปฏิทิน: CPython 3.10 สิ้นสุดการสนับสนุน 31 ต.ค. 2026 เหลือไม่กี่สัปดาห์ แนะนำอัปไป 3.12/3.13/3.14 หรือรอ 3.15 GA 1 ต.ค.
uv 0.12.17: กัน Git path พัง + ล็อก macOS environment เข้มขึ้น
สรุปรีลีส Astral uv 0.12.17 (18 ก.ย. 2026) — error ชัดแทน panic, ตรวจ pylock.toml, และกันเลือกวงล้อที่ต้องการ macOS ใหม่เกิน baseline
Python NormalDist: แปลงค่าเฉลี่ยกับส่วนเบี่ยงเบนเป็น threshold ที่อธิบายได้
ใช้ statistics.NormalDist คำนวณ percentile และ probability พร้อมเตือนเรื่องสมมติฐานการกระจายปกติ
Python total_ordering: ลด comparison boilerplate แต่เก็บกฎลำดับไว้จุดเดียว
สร้าง value object ที่เรียงได้จาก __eq__ และ comparator หนึ่งตัว พร้อมขอบเขตของ NotImplemented
Python WeakValueDictionary: ทำ cache ที่ไม่ยื้ออายุ object
ใช้ weak reference ให้ cache ปล่อยค่าเมื่อไม่มีเจ้าของจริง พร้อมอธิบาย race และชนิดที่เก็บไม่ได้
Cloudflare Python Workers ขึ้น GA แล้ว — FastAPI/Django บนเอดจ์ได้จริง
สรุปประกาศ 21 ก.ย. 2026: Python Workers เป็น first-class บน Cloudflare พร้อม bindings แบบ Pythonic และเฟรมเวิร์ก ASGI/WSGI
operator.attrgetter: ดึงฟิลด์เรียง/แมปโดยไม่เขียน lambda ซ้ำ
ใช้ operator.attrgetter ดึง attribute เดี่ยวหรือหลายตัว รวม dotted path สำหรับ sorted และ map
textwrap.shorten: ตัดสรุปยาวให้พอดีการ์ด UI
ใช้ textwrap.shorten ยุบช่องว่างแล้วตัดข้อความให้กว้างตามที่กำหนด พร้อม placeholder
hmac.compare_digest: เทียบลายเซ็นแบบกัน timing attack
ใช้ hmac.compare_digest เทียบ digest แทน == เพื่อลดความเสี่ยง timing side-channel ตามเอกสาร Python stdlib
LeetCode #39 Combination Sum: เลือกซ้ำได้ แต่ห้ามสร้างคำตอบซ้ำ
เทียบ include-skip, sorted backtracking และ bottom-up DP พร้อม pruning และ decision table
LeetCode #23 Merge k Sorted Lists: เลือกหัวที่เล็กสุดโดยไม่ sort ทั้งกอง
เทียบ collect-sort, merge ทีละลิสต์, heap และ divide-and-conquer พร้อม decision table
LeetCode #19 Remove Nth Node From End: เว้นระยะให้ pointer นำทาง
เทียบสองรอบ, two pointers และ stack พร้อม complexity, edge cases และ decision table
Python os.path.commonpath: ตรวจขอบเขต path โดยไม่หลง prefix ที่หน้าตาเหมือนกัน
เทียบ commonpath กับ commonprefix และย้ำว่าต้อง resolve symlink ก่อนใช้เป็น security boundary
Python enum.verify: ให้คลาส Enum ล้มตั้งแต่ import เมื่อค่าผิดสัญญา
ใช้ UNIQUE และ CONTINUOUS ตรวจ enum ตอนประกาศ พร้อมเลือกกฎให้ตรงกับ domain
Python csv.Sniffer: เดารูปแบบไฟล์ได้ แต่ต้องมี fallback ที่คาดเดาได้
ใช้ Sniffer ตรวจ delimiter จาก sample พร้อมรับมือข้อมูลสั้น กำกวม และ input ที่ไม่น่าเชื่อถือ
Python SpooledTemporaryFile: เก็บใน RAM ก่อน แล้วค่อยกลิ้งลงดิสก์เมื่อใหญ่เกิน
ใช้ tempfile.SpooledTemporaryFile เมื่อยังไม่รู้ขนาด — ตั้ง max_size แล้ว rollover() เมื่อต้องการ fileno
Python SharedMemory: แชร์ไบต์ข้ามโปรเซสโดยไม่ pickle ทั้งก้อน
สรุป multiprocessing.shared_memory — สร้างบล็อก ตั้งชื่อ แนบจากโปรเซสอื่น แล้ว close/unlink ให้ครบ
Python ipaddress: เช็กเครือข่ายทับกันด้วย overlaps() ก่อนเปิด firewall
ใช้ IPv4Network/IPv6Network.overlaps() จาก stdlib ตรวจว่าสองซัปเน็ตชนกันไหม — พร้อมตัวอย่างที่รันได้
LeetCode #215 Kth Largest: sort, heap และ quickselect เลือกเมื่อไร
สามวิธีหาค่าอันดับ k โดยนับค่าซ้ำ พร้อม worst case, memory และการแก้ input
LeetCode #169 Majority Element: นับ จัดเรียง หรือหักคะแนนเสียง
เทียบ Counter, sorting และ Boyer–Moore พร้อมเงื่อนไข majority ที่ต้องมีจริง
Python sqlite3: ระบุ transaction ชัดเพื่อไม่ให้ข้อมูลค้างครึ่งทาง
ใช้ autocommit=False, commit, rollback และ connection context manager พร้อมทดสอบกรณีล้มเหลว
Python Fraction: เก็บอัตราส่วนให้ตรงตั้งแต่รับค่า
แยกการสร้าง Fraction จาก string กับ float และใช้ limit_denominator อย่างมีขอบเขต
Python difflib: อ่านการเปลี่ยนบรรทัดด้วย opcode ก่อนทำ review
ใช้ SequenceMatcher.get_opcodes แยกส่วนที่เท่ากัน เพิ่ม ลบ และแทนที่ พร้อมข้อจำกัดของ similarity score
LeetCode #739 Daily Temperatures: รอวันอุ่นขึ้นด้วย stack หรือมองอุณหภูมิที่เป็นไปได้
เทียบ brute force, monotonic stack และช่วงอุณหภูมิจำกัด พร้อมตารางเลือกวิธีและ Python tests
LeetCode #560 Subarray Sum Equals K: prefix sum + ฮัชแมปนับครั้ง
เทียบ brute O(n²) กับ prefix-sum hashmap O(n) สำหรับนับ subarray ที่ผลรวมเท่ากับ k
LeetCode #234 Palindrome Linked List: หา mid แล้วกลับครึ่งหลังเทียบ
สามแนวทางเช็กพาลินโดรมลิงก์ลิสต์ — คัดลอกเป็นอาร์เรย์, reverse ทั้งก้อน, และ O(1) space ด้วย slow/fast + reverse ครึ่งหลัง
LeetCode #198 House Robber: DP บ้านคู่กันห้ามปล้น — จากอาร์เรย์สู่ตัวแปรสองตัว
อธิบาย House Robber สามระดับ: DP อาร์เรย์, rolling variables, และเมื่อไหร่ไม่ควร recursion ดิบ
OpenAI Agents Python 0.22.3 บน PyPI — ต่อจาก 0.22.2 เน้น Sandbox / Realtime extras
สรุป openai-agents 0.22.3 (อัปโหลด ~17 ก.ย. 2026) จาก PyPI — เฟรมเวิร์ก multi-agent พร้อม SandboxAgent และ optional voice/realtime/docker
Python 3.14: map(..., strict=True) — จับความยาว iterable ไม่เท่ากันแบบ zip
สรุปพารามิเตอร์ strict ของ built-in map ใน Python 3.14 ให้พฤติกรรมคล้าย zip(..., strict=True)
Python 3.14: heapq มี heapify_max / heappush_max — เลิกกลับเครื่องหมายเอง
สรุปตัวช่วย max-heap ใหม่ใน heapq 3.14 — heapify_max, heappush_max, heappop_max, heapreplace_max, heappushpop_max
Python 3.14: Token ของ contextvars ใช้ with ได้ — set แล้วรีเซ็ตอัตโนมัติ
สรุป contextvars.Token เป็น context manager ใน Python 3.14 — with var.set(value): … แล้วค่าเดิมกลับเอง
Python 3.15: bytearray.take_bytes — ดึง bytes ออกจากบัฟเฟอร์โดยไม่คัดลอกเกินจำเป็น
สรุป bytearray.take_bytes ใน Python 3.15 สำหรับพาร์สโปรโตคอล/บัฟเฟอร์เครือข่าย — คืน bytes แล้วตัดออกจาก bytearray
Python 3.15: TaskGroup.cancel — ยกเลิกกลุ่มงาน asyncio แบบตรง ๆ
สรุป asyncio.TaskGroup.cancel ใน Python 3.15 — เลิกใช้ทริคยก exception ปลอมเพื่อหยุดกลุ่มเมื่องานเสร็จก่อนกำหนด
Python 3.15: Path.mkdir(parent_mode=…) — ตั้งสิทธิ์โฟลเดอร์กลางทางแยกจากปลายทาง
สรุป pathlib.Path.mkdir parent_mode ใน Python 3.15 เมื่อ parents=True — ควบคุม mode ของ intermediate dirs แยกจากโฟลเดอร์สุดท้าย
compression.zstd ใน stdlib: บีบไฟล์ .zst โดยไม่ติดตั้งแพ็กเกจนอก (Python 3.14)
ใช้ compression.zstd.compress/decompress และ open เขียนไฟล์ Zstandard ใน Python 3.14 ตาม PEP 784
asyncio.print_call_graph: ดูต้นไม้ task ค้างตอนดีบัก (Python 3.14)
ใช้ capture_call_graph / print_call_graph / format_call_graph ดูว่าคอร์รูทีนไหนรออะไร พร้อมตัวอย่าง static ที่รันบน 3.14
Python 3.14: Path.copy / Path.move — คัดลอกและย้ายไฟล์โดยไม่ต้องเรียก shutil แยก
สรุป pathlib.Path.copy, copy_into, move, move_into ใน Python 3.14 พร้อมตัวอย่าง verified และข้อควรระวัง metadata/symlink
Python decimal.localcontext: ล็อกกฎปัดเศษเฉพาะงาน ไม่ทำ Context รั่วทั้งโปรแกรม
ใช้ decimal.localcontext จำกัด precision และ ROUND_HALF_UP ในขอบเขตสั้น พร้อม unittest ตรวจว่า global context ไม่ถูกเปลี่ยน
Python MappingProxyType: แจก View อ่านอย่างเดียวโดยไม่แช่แข็งข้อมูลต้นทาง
ใช้ types.MappingProxyType ป้องกัน caller เขียน dict ผ่าน API แต่ยังเห็นการอัปเดตจาก owner พร้อมข้อควรระวังเรื่องค่าซ้อน
Python singledispatchmethod: แยก Handler ตามชนิดโดยยังเป็น Method เดียว
ใช้ functools.singledispatchmethod ทำ command handler ที่ขยายได้ พร้อมเข้าใจตำแหน่ง argument, inheritance และข้อจำกัดของ type annotation
tempfile.TemporaryDirectory: โฟลเดอร์ชั่วคราวที่ลบเองเมื่อจบบล็อก
ใช้ TemporaryDirectory เป็น context manager ให้ได้ path ชั่วคราวแล้วลบอัตโนมัติ ตาม docs.python.org
secrets.token_urlsafe: สร้างโทเคนสุ่มสำหรับลิงก์และคุกกี้
ใช้ secrets.token_urlsafe จาก stdlib สร้างสตริงสุ่มที่ใส่ใน URL ได้ พร้อมตัวอย่างรันจริง
heapq.nlargest / nsmallest: หยิบ Top-N โดยไม่ sort ทั้งก้อน
ใช้ heapq.nlargest และ nsmallest จาก docs.python.org ดึงค่าสูงสุด/ต่ำสุด n ตัว พร้อมตัวอย่างรันจริง
LeetCode #300 LIS: จาก DP ตารางตรงไปตรงมาถึง patience sorting และ Fenwick tree
เทียบสามวิธีหา longest increasing subsequence พร้อม strict-increasing detail, complexity และ unittest
LeetCode #104 Maximum Depth: Recursive DFS, stack หรือ BFS เลือกจากรูปทรงต้นไม้
เทียบสามวิธีหาความลึกสูงสุดของ binary tree พร้อม memory tradeoff, skewed tree และ unittest ที่รันจริง
LeetCode #125 Valid Palindrome: กรองก่อนหรือเดินสองด้าน แบบไหนเหมาะกว่า
เทียบ normalize-and-reverse, two pointers และ deque สำหรับตรวจ palindrome พร้อม complexity, Unicode caveat และ unittest
Python 3.14 Path.info: ใช้ type cache จาก directory scan โดยไม่เผลอเชื่อข้อมูลเก่า
ใช้ pathlib.Path.info ลดการเรียก filesystem ซ้ำหลัง iterdir พร้อมเข้าใจ cache freshness และวิธีตรวจสถานะปัจจุบัน
Python itertools.compress: ให้ boolean mask กับข้อมูลเดินพร้อมกันแบบ lazy
คัดสมาชิกด้วย itertools.compress พร้อมรับมือ selector สั้นยาวไม่เท่ากัน และแยกกรณีที่ควร validate ก่อน
Python partialmethod: สร้างเมธอดเฉพาะทางโดยยังผูก self ถูกตำแหน่ง
ใช้ functools.partialmethod ลด wrapper ซ้ำใน class พร้อม unittest และข้อควรระวังเรื่อง signature กับ descriptor
Path.relative_to(..., walk_up=True): หาพาธญาติเมื่อเป้าหมายอยู่นอกต้นไม้เดิม
อธิบายพารามิเตอร์ walk_up ของ pathlib.Path.relative_to ตาม docs — ใช้เมื่อต้องปีนขึ้นก่อนแล้วค่อยลงไปโฟลเดอร์พี่น้อง
statistics.quantiles: ตัดคะแนนเป็นช่วงเปอร์เซ็นไทล์ใน stdlib
ใช้ statistics.quantiles แบ่งข้อมูลเป็น n กลุ่มอย่างเป็นระบบ พร้อมตัวอย่างคำนวณจริงจาก docs.python.org
uv 0.12.15: แก้รีเกรสชัน --system / --target และเร่งเขียนแคช
รีลีส 15 ก.ย. 2026 แก้ปัญหา 0.12.14 ที่ปฏิเสธ uv pip install --system ใน python Docker และ --target พร้อม batch เขียนแคช
Python 3.14 functools.Placeholder: partial ช่องกลางได้โดยไม่เขียน lambda ห่อ
ใช้ Placeholder จอง positional argument ตรงกลางของ partial พร้อมข้อจำกัดเรื่องจำนวนช่องและ keyword arguments
Python itertools.accumulate: เก็บสถานะสะสมโดยไม่สร้างลูปข้างเคียง
ใช้ accumulate ทำ running total และ state transition พร้อม initial value ที่ช่วยให้ขอบเขตข้อมูลอ่านง่าย
Python nullcontext: ทำให้เส้นทางมีและไม่มี context manager ใช้โครงเดียวกัน
ใช้ contextlib.nullcontext ลด if ซ้ำรอบ with สำหรับ resource ที่ผู้เรียกอาจส่งมาให้แล้ว พร้อม unittest

openai-agents-python 0.22.2: ตัวเลือก image gen tool และปิดช่อง symlink ในแซนด์บ็อกซ์
สรุป GitHub release v0.22.2 (9 ก.ย. 2026): รองรับตัวเลือก image generation tool และแก้ race ของ symlink ใน UnixLocal file API

อ่านไฟล์ TOML ด้วย tomllib ในสแตนดาร์ดไลบรารี
สอนโหลดคอนฟิก TOML ด้วย tomllib.load / loads พร้อม unittest ที่รันจริง ไม่ต้องติดตั้งแพ็กเกจภายนอก

Python itertools.batched: หั่นลิสต์เป็นก้อนคงที่แบบสั้น ๆ
สอนใช้ itertools.batched แบ่ง iterable เป็นทูเปิลขนาด n พร้อม unittest ที่รันจริง อ้างอิง docs.python.org

uv 0.12.14: วินิจฉัยแพ็กเกจชัดขึ้น ดาวน์โหลดต่อด้วย HTTP Range
สรุป GitHub release astral-sh/uv 0.12.14 (15 ก.ย. 2026): diagnostics/exit codes, resume ดาวน์โหลด, แก้รีซอลเวอร์และประสิทธิภาพ
Python contextlib.suppress: กลืนเฉพาะ error ที่ขั้นตอนนั้นยอมรับได้
ใช้ contextlib.suppress กับ cleanup แบบ best effort โดยจำกัด exception ให้แคบและทดสอบว่า error อื่นยังหลุดออกมา
Python itemgetter: เขียน sort key หลายช่องให้สั้นและเห็นลำดับชัด
ใช้ operator.itemgetter เรียง record ตามหลายฟิลด์ พร้อมจัดการค่ากลับทิศและข้อจำกัดของข้อมูลที่อาจขาด
Python deque(maxlen): เก็บประวัติล่าสุดโดยไม่ปล่อยหน่วยความจำโตไม่จบ
ใช้ collections.deque แบบกำหนด maxlen ทำ rolling window ที่ทิ้งของเก่าอัตโนมัติ พร้อมเทสต์ลำดับและขอบเขต

Pydantic AI 2.43.0: แบนเนอร์รันแรกใน clai และแก้ขอบเขตข้อความหลัง tool call
สรุป changelog ที่ยืนยันได้จาก pydantic/pydantic-ai v2.43.0 พร้อมเตือนความปลอดภัยตอน tool calling

Google ADK Python 2.9.0: FallbackModel, LiveKit, YAML กราฟ และ MCP 2.x แบบ opt-in
สรุปไฮไลต์และ breaking changes จาก google/adk-python v2.9.0 พร้อมกรอบความปลอดภัยสิทธิ์/เครือข่าย

Python StrEnum: ติดป้ายสถานะที่เป็นสตริงโดยไม่ต้อง .value ทุกครั้ง
ใช้ enum.StrEnum ให้สมาชิกเทียบและต่อสตริงได้ตรง ๆ พร้อม unittest อ้างอิงเอกสารมาตรฐาน

Python lru_cache: จำผลคำนวณซ้ำให้ฟังก์ชันบริสุทธิ์เร็วขึ้น
อธิบาย functools.lru_cache แบบสั้น พร้อม unittest ที่พิสูจน์ว่าเรียกซ้ำไม่คำนวณใหม่

uv 0.12.13: เพิ่ม GraalPy 3.13.0 และตรวจแฮช metadata ตาม PEP 658
สรุปโน้ตปล่อย astral-sh/uv 0.12.13 วันที่ 10 ก.ย. 2026 — GraalPy, ตรวจแฮช sidecar, แก้ Windows launcher ในหน่วยความจำ
Python pathlib.full_match: ตรวจ Path ทั้งเส้นโดยไม่เผลอรับไฟล์นอกกฎ
เทียบ full_match กับ match สำหรับ allowlist ของ path พร้อมตัวอย่าง PurePath ที่ทดสอบได้โดยไม่แตะ filesystem
Python itertools.groupby: รวมข้อมูลที่ติดกัน ไม่ใช่ SQL GROUP BY
เข้าใจ adjacent runs, shared iterator และเหตุผลที่ต้อง sort ก่อนเมื่ออยากรวม key ทั้งชุด พร้อม unittest กันบั๊กข้อมูลสลับกลุ่ม
Python contextlib.aclosing: ปิด Async Generator แม้ Loop หยุดก่อนจบ
ใช้ aclosing จัด lifecycle ของ async generator ให้ cleanup รันใน context เดิม พร้อม unittest ที่พิสูจน์กรณี break กลาง stream
LeetCode #76 Minimum Window Substring: Sliding Window ที่นับ Duplicate ถูก
เทียบ brute force กับ sliding window พร้อม invariant ของ formed/required, complexity, edge cases และ unittest
LeetCode #5 Longest Palindromic Substring: ขยายจากกลาง, DP หรือ Manacher
เทียบสามวิธีหาพาลินโดรมยาวสุด พร้อม complexity, edge cases, decision table และ unittest ที่รันจริง
LeetCode #128 Longest Consecutive Sequence: เริ่มนับเฉพาะหัวแถว
เทียบ sort กับ hash set สำหรับลำดับจำนวนเต็มต่อเนื่อง พร้อม complexity, duplicate edge cases และ unittest

Microsoft Agent Framework: โครงเปิดสำหรับเอเจนต์โปรดักชันบน Python และ .NET
สรุปจากรีโป microsoft/agent-framework ว่า MAF รวมแพทเทิร์นมัลติเอเจนต์ เวิร์กโฟลว์ และโฮสติ้ง โดยเน้นเส้นทางจากต้นแบบสู่โปรดักชัน

Polars 2.0.0rc1: ปล่อย RC แรกของสาย 2.0 ให้ลองก่อนของจริง
สรุปจาก GitHub Releases ของ pola-rs/polars ว่ามี Python Polars 2.0.0rc1 ให้ทด — ยังเป็น release candidate ไม่ใช่ GA

Django 6.1.1 ออกแล้ว: บั๊กฟิกส์สำหรับสาย 6.1
สรุปจาก weblog ของ Django วันที่ 2 ก.ย. 2026 ว่า 6.1.1 แก้บั๊กใน 6.1 และมีหนึ่งเคสที่เกี่ยวกับ 5.2 พร้อมลิงก์ release notes

Cloudflare Python Workers รองรับ Django / Flask / FastAPI ผ่าน WSGI และ ASGI
สรุป changelog 2 ก.ย. 2026: ใช้ wsgi.entrypoint หรือ asgi.entrypoint จากโมดูล workers เพื่อยกเฟรมเวิร์กเดิมขึ้น Workers

Cloudflare Python Workers ใช้ Python 3.14 เป็นค่าเริ่มต้นแล้ว
สรุป changelog วันที่ 8 ก.ย. 2026: เวิร์กเกอร์ Python ใหม่ที่ compatibility_date ตั้งแต่ 2026-09-08 ขึ้นไปรันบน Python 3.14 (Pyodide 314.0.6)
LeetCode #207 Course Schedule: ตรวจวงจรด้วย Kahn BFS หรือ DFS สีสามสถานะ
เทียบ topological sort สองแบบ พร้อม complexity, graph edge cases, decision table และ unittest
LeetCode #75 Sort Colors: Counting เทียบ Dutch National Flag แบบเขียนทับในที่เดิม
เทียบ 3 วิธีเรียง 0,1,2 พร้อม invariant, mutation tradeoff, decision table และ unittest
LeetCode #78 Subsets: ขยายคำตอบ, backtracking หรือ bitmask เลือกแบบไหนดี
เทียบ 3 วิธีสร้าง power set พร้อม complexity, edge cases, decision table และ unittest ที่รันจริง
Python shlex.join: แสดงคำสั่ง shell ให้คนอ่านโดย quote argument อย่างถูกขอบเขต
ประกอบ argv เป็นข้อความสำหรับ Unix shell แบบย้อนกลับด้วย shlex.split ได้ โดยไม่ชวนใช้ shell=True
Python Counter.total: นับยอดรวม multiset โดยไม่เขียน sum(values) ซ้ำ
ใช้ Counter.total ร่วมกับการบวกและลบ multiset พร้อมทำความเข้าใจ count ศูนย์กับค่าติดลบ
Python cached_property: คำนวณครั้งเดียว แต่อย่าลืมออกแบบจังหวะล้าง cache
เข้าใจการเขียนทับ การลบเพื่อคำนวณใหม่ ข้อจำกัดของ __dict__ และ race ที่ยังเกิดได้

itertools.pairwise: เดินคู่ติดกันในลำดับโดยไม่เขียน zip เอง
อธิบาย pairwise ตั้งแต่ Python 3.10 เทียบกับ zip(seq, seq[1:]) พร้อม unittest

contextlib.chdir: เปลี่ยนโฟลเดอร์ชั่วคราวแบบปลอดภัยใน with
สอนใช้ contextlib.chdir ตั้งแต่ Python 3.11 เทียบกับ os.chdir เปล่าๆ พร้อมตัวอย่างที่รันตรวจได้

uv 0.12.12 เริ่ม code-sign บน macOS/Windows — ลดคำเตือน Gatekeeper และช่วย allowlist
สรุปจาก release notes ทางการของ astral-sh/uv วันที่ 9 ก.ย. 2026 ว่าไบนารีและ wheel ของ uv / uv_build ถูกเซ็นแล้วบน macOS (Developer ID + notarize) และ Windows (Authenticode)
LeetCode 155: Min Stack เก็บค่าต่ำสุดอย่างไรให้ทุกคำสั่ง O(1)
เทียบ scan, dual stack, pair stack และ encoded difference พร้อม edge cases, decision table และ self-contained tests
LeetCode 98: ตรวจ BST ด้วย Bound หรือ Inorder แบบไหนชัดกว่า
เทียบ recursive bounds, iterative inorder และเก็บลำดับก่อนตรวจ พร้อม complexity, decision table และ test กรณี node ผิดข้าม subtree
LeetCode 33: ค้นหาใน Array ที่หมุนแล้ว เลือก Linear หรือ Binary ดี
เทียบ 3 วิธีตั้งแต่สแกนตรง, หา pivot แล้ว binary search และ one-pass binary พร้อมตารางตัดสินใจและ test ครบ edge case
InterpreterPoolExecutor: ใช้หลาย Core โดยไม่แยก Process
ทดลอง subinterpreter pool ใน Python 3.14 เข้าใจ isolation, pickle boundary และเกณฑ์เลือกเทียบ thread/process pool
Python uuid7: ID เรียงตามเวลาโดยไม่เปิดเผย MAC Address
ใช้ UUIDv7 สำหรับคีย์ที่กระจายได้และมี locality ดีกว่า UUIDv4 พร้อมอธิบาย monotonicity, security และขอบเขตการเรียง
asyncio.Queue.shutdown: ปิดสายพานงานโดยไม่ส่ง Sentinel
ใช้ shutdown และ QueueShutDown แยกการปิดรับงานออกจากการประมวลผลงานค้าง พร้อมทดสอบ graceful shutdown จริง

LeetCode #42 Trapping Rain Water: น้ำขังระหว่างแท่งความสูง
เทียบ two pointers, prefix/suffix max และโมโนโทนิกสแต็ก พร้อมเทสต์ python และตารางเลือกใช้

LeetCode #347 Top K Frequent Elements: กองหรือถังนับความถี่
เทียบ Counter+heap, bucket sort ตามความถี่ และ sorting พร้อมเทสต์ python และตารางเลือกใช้

LeetCode #49 Group Anagrams: จัดกลุ่มคำที่ตัวอักษรเหมือนกัน
เทียบ sorted-key, count-tuple key และคู่มือเลือกใช้ พร้อมเทสต์ python รันได้

statistics.fmean: ค่าเฉลี่ยทศนิยมเร็วเมื่อข้อมูลเป็น float
อธิบาย statistics.fmean จากมาตรฐาน Python เทียบกับ mean ทั่วไป พร้อมตัวอย่างรันได้

functools.cache กับ lru_cache: เมื่อไหร่ควรจำกัดขนาดแคช
เทียบ @cache กับ @lru_cache จากเอกสาร Python พร้อมตัวอย่างรันได้และเกณฑ์เลือกใช้
PyPI สรุปเหตุ CDN สิงหาคม: Fastly canary ที่ Seattle + บั๊กคอนฟิก
สรุป incident report ของ PyPI เรื่องดาวน์โหลดแพ็กเกจล้มเป็นพักๆ ในสิงหาคม 2026 จาก Fastly canary ที่ Seattle และการแก้คอนฟิก origin/range — กลับมาปกติ 28 ส.ค. รายงานราว 8 ก.ย.
LeetCode 102 Level Order Traversal: เลือก queue, index หรือ DFS
เทียบ BFS ด้วย deque, list พร้อม head index และ DFS สะสมตาม depth พร้อม trade-off ด้าน width recursion และ readability
LeetCode 11 Container With Most Water: ทำไมต้องขยับฝั่งเตี้ย
เทียบ brute force, suffix maximum และ two pointers พร้อมพิสูจน์การตัดตัวเลือกและเลือกวิธีตาม memory
LeetCode 217 Contains Duplicate: เลือก set, sort หรือ brute force
เทียบสามวิธีตรวจค่าซ้ำด้วยเวลา memory การแก้ input และ streaming พร้อม unittest ครบ edge cases
Python bisect key=: ค้นช่วงในข้อมูลเรียงโดยไม่เรียก key ซ้ำเกินจำเป็น
ใช้ bisect_left กับ key อย่างถูกชนิด และเลือก precomputed keys หรือ cache เมื่อต้องค้นซ้ำบนข้อมูลเดิม
Python heapq.merge: รวม stream ที่เรียงแล้วโดยไม่กองทั้งหมดใน RAM
ใช้ heapq.merge รวมหลาย iterable แบบ lazy พร้อมเงื่อนไขข้อมูลต้องเรียงและผลต่อ memory เมื่อเทียบกับ sorted
Python ChainMap: ซ้อน config หลายชั้นโดยไม่รีบ copy
จัดลำดับ CLI environment และ defaults ด้วย ChainMap พร้อมทดสอบ precedence การเขียน และผลจาก mapping ต้นทาง

LeetCode #70 Climbing Stairs: ก้าว 1 หรือ 2 แล้วจำผลย่อย
เทียบ recursion, memo, bottom-up DP และสูตรปิด พร้อม tradeoff และเคสบันไดสั้น

zoneinfo: เก็บเวลาแบบ DST-safe โดยไม่เดาออฟเซ็ตเอง
ใช้ zoneinfo.ZoneInfo กับ fold และแปลงผ่าน UTC เพื่อข้ามช่วงเปลี่ยนเวลาฤดูร้อนอย่างถูกต้อง พร้อมตัวอย่างรันได้

dataclass(slots=True, kw_only=True): ล็อกฟิลด์และบังคับคีย์เวิร์ด
สรุป slots กับ kw_only ของ dataclasses พร้อมตัวอย่างรันได้ว่าทำไมถึงกันพิมพ์ผิดและลดหน่วยความจำ

functools.lru_cache: จำผลคำนวณซ้ำโดยไม่ต้องเขียนแคชเอง
อธิบาย lru_cache จาก stdlib พร้อมตัวอย่างรันได้ ตารางเลือก maxsize และข้อควรระวังเรื่องอาร์กิวเมนต์ที่แฮชได้

Python StrEnum: เมื่อค่า enum ต้องเป็นสตริงจริงๆ
เทียบ enum.Enum กับ enum.StrEnum แบบสั้น พร้อมตัวอย่างรันได้และตารางเลือกใช้

Python 3.15: โอกาสสุดท้ายช่วยเทสต์ก่อนไฟนอล 1 ต.ค.
สรุปคำเรียกจาก Hugo van Kemenade ให้เมนเทนเนอร์เทสต์ 3.15.0rc2 และเตรียมล้อรถก่อน GA วันที่ 1 ตุลาคม 2026

uv 0.12.9 พร้อม CPython 3.15.0rc2: ทดสอบล้อรถก่อน GA
สรุป uv 0.12.9 ที่เพิ่มรองรับ CPython 3.15.0rc2 พร้อมวิธีลองในโปรเจกต์โดยไม่ปนกับ Python โปรดักชัน

asyncio.timeout: ใส่กรอบเวลาให้งาน async โดยไม่กลืน CancelledError
ใช้ asyncio.timeout เป็น context manager จำกัดเวลารอ พร้อม unittest.IsolatedAsyncioTestCase ที่พิสูจน์ทั้งสำเร็จและ TimeoutError

PEP 752 Accepted: PyPI จอง prefix แบบ NuGet กันปลอมชื่อแพ็กเกจ
อธิบาย PEP 752 Accepted เรื่องจอง package name prefix คล้าย NuGet

pip CVE-2026-13346: อินเด็กซ์มุ่งร้ายทะลุ path ได้แม้ใช้ --only-binary
สรุปประกาศ security-announce ของ Python เรื่อง CVE-2026-13346 ความรุนแรงระดับ MEDIUM ที่กระทบ pip download จาก package index ที่ไม่น่าเชื่อถือ
โหวต Packaging Council ได้ถึง 15 ก.ย. 2026 เวลา 14:00 UTC
สรุปกำหนดเลือกตั้ง Python Packaging Council รอบแรกจาก blog.python.org และช่องทางตรวจบัตรเลือกตั้ง
PEP 694 ยัง Draft: PyPI ปฏิเสธไฟล์ใหม่หลัง 14 วันไปก่อน
แยกสถานะ Upload 2.0 API ที่ยังเป็น Draft ออกจากมาตรการเซิร์ฟเวอร์ของ PyPI ที่ปิดการเติมไฟล์ในรีลีสเก่า
Python 3.15.0rc2: ทดสอบ wheel ก่อน GA 1 ต.ค. ตาม PEP 790
RC2 เป็นตัวสมัครสุดท้ายก่อน 3.15.0 วันที่ 1 ตุลาคม 2026 พร้อมเช็กลิสต์ผู้ดูแลแพ็กเกจจาก blog.python.org
Starlette CVE-2026-48710 ใน KEV: Host header ทำให้ path ใน middleware เพี้ยน
อธิบายผลกระทบเมื่อ request.url.path ไม่ตรง path จริง และให้แพตช์เป็น 1.0.1 โดยไม่ลงวิธีโจมตี
LeetCode #200 Number of Islands: Flood Fill, BFS หรือ Union-Find เลือกตามข้อจำกัด
เทียบสามวิธีนับเกาะ พร้อม complexity, edge cases, mutation trade-off และ tests ที่รันจริง
LeetCode #141 Linked List Cycle: เต่ากับกระต่ายพิสูจน์วงโดยไม่ใช้แรมเพิ่ม
เทียบ hash set กับ Floyd cycle detection พร้อม proof intuition, complexity, edge cases และ decision table
LeetCode #21 Merge Two Sorted Lists: เลือกโหนดเล็กแล้วต่อหาง
เทียบ iterative reuse, recursion และสร้างลิสต์ใหม่ พร้อม complexity, edge cases และ decision table
Python TopologicalSorter: เรียงงานจาก dependency และจับวงจรก่อนเริ่ม
สร้างแผนงานจากกราฟ predecessor พร้อม unittest สำหรับลำดับถูกต้อง งานอิสระ และ cycle
Python contextvars: ส่ง Request ID ข้าม async โดยไม่ปนกัน
ใช้ ContextVar แทน global สำหรับข้อมูลระดับ task พร้อม unittest ที่ปล่อยสอง coroutine วิ่งพร้อมกัน
Python zip(strict=True): ให้ข้อมูลคนละความยาวล้มตรงจุด ไม่เงียบหาย
ป้องกัน record ถูกตัดเมื่อสองลิสต์ยาวไม่เท่ากัน พร้อม unittest สำหรับ input ปกติ ว่าง และผิดรูป

Python 3.15 PEP 829: ไฟล์ .start แทน import ใน .pth
สรุป PEP 829 ที่เพิ่มไฟล์ .start สำหรับ entry point ตอนสตาร์ท Python และทยอยเลิกประมวลผลบรรทัด import ใน .pth
![นากกายสีมิ้นต์ถือการ์ดชนิด list[int] และ Union ส่งเข้าช่อง TypeForm บนโต๊ะมิ้นต์](/images/python/python-315-pep-747-typeform.webp?v=161e610acc473a26)
Python 3.15 PEP 747: TypeForm สำหรับฟังก์ชันที่รับ type expression
สรุป PEP 747 ที่เพิ่ม typing.TypeForm ให้ annotate พารามิเตอร์ซึ่งรับผลจากการประเมิน type expression ตอนรันไทม์

Python 3.15 PEP 728: TypedDict ปิดหรือพิมพ์ extra items ได้แล้ว
สรุป PEP 728 ที่เพิ่มพารามิเตอร์ closed และ extra_items ให้ TypedDict เพื่อจำกัดหรือพิมพ์คีย์ส่วนเกินอย่างชัดเจน

PEP 686: Python 3.15 เปิด UTF-8 mode เป็นค่าเริ่มต้น
สรุป PEP 686 Final ที่ทำให้ UTF-8 เป็นค่าเริ่มต้นของไฟล์ stdio และ pipe พร้อมวิธีถอยด้วย PYTHONUTF8=0

PEP 798: ใช้ * และ ** ใน comprehension ของ Python 3.15
สรุป PEP 798 Final ที่อนุญาต unpacking ใน list/set/dict comprehension และ generator expression

PEP 831: CPython 3.15 เปิด frame pointers เป็นค่าเริ่มต้น
สรุป PEP 831 Final ที่ให้ build CPython ด้วย frame pointers เพื่อให้ perf/eBPF/ดีบักเกอร์ unwind สแต็กได้ดีขึ้น

Python 3.15 Tachyon: โปรไฟล์แบบสุ่มตัวอย่างโดยไม่ฝังโค้ดในโปรเซส
สรุปโมดูล profiling.sampling ชื่อ Tachyon ใน Python 3.15 ที่แนบ PID ได้ สร้าง flame graph และเหมาะกับโปรดักชันเพราะโอเวอร์เฮดเกือบศูนย์

Python 3.15 ใส่ sentinel ตาม PEP 661 ในไฮไลต์รุ่น
สรุปจากหน้าปล่อย Python 3.15.0rc2 ว่ามีชนิด sentinel ตาม PEP 661 เป็นของใหม่ในสาย 3.15 โดยชี้ไปที่เอกสารอย่างเป็นทางการ

PEP 814: frozendict ใน builtins ของ Python 3.15
สรุป frozendict ชนิด immutable mapping ใน builtins ตาม PEP 814 Final สำหรับแชร์ค่าคงที่และใส่เป็นอาร์กิวเมนต์ของ lru_cache ได้
Python singledispatch: แยกพฤติกรรมตามชนิดโดยไม่สร้าง if ยาว
ใช้ functools.singledispatch ทำจุดเข้าเดียวที่ขยาย handler ตามชนิด พร้อม unittest ของ fallback และ subclass
Python itertools.batched แบบ strict: จับข้อมูลชุดสุดท้ายที่มาไม่ครบ
แบ่ง iterable เป็นก้อนแบบ lazy และใช้ strict=True เมื่อต้องการให้จำนวนข้อมูลหารขนาด batch ลงตัว พร้อม unittest
Python copy.replace: อัปเดต Value Object โดยไม่แก้ของเดิม
ใช้ copy.replace กับ dataclass แบบ frozen เพื่อสร้างสถานะใหม่เฉพาะฟิลด์ พร้อมตรวจ invariant ด้วย unittest

python tomllib: อ่านไฟล์ตั้งค่า TOML ด้วยไลบรารีในมาตรฐาน
สอนใช้ tomllib ในมาตรฐาน Python เพื่ออ่านคอนฟิก TOML พร้อมตัวอย่างที่รันทดสอบได้

PyPI ปิดอัปโหลดไฟล์ใหม่เข้า release เก่าหลัง 14 วัน
สรุปประกาศบล็อก PyPI ว่าปฏิเสธไฟล์ใหม่บน release ที่เก่าเกิน 14 วันเพื่อกันพิษซัพพลายเชน

PEP 833: แช่แข็ง HTML simple index ของ PyPI หันไปที่ JSON
สรุป PEP 833 Final ว่า HTML representation ของ simple repository API ถูกแช่แข็งสำหรับมาตรฐานต่อจากนี้
Python asyncio.TaskGroup: ให้งานพี่น้องล้มและยกเลิกเป็นกลุ่ม
ใช้ structured concurrency ใน Python เพื่อไม่ทิ้ง background task ค้าง พร้อม unittest ที่ทดสอบทั้งสำเร็จและ fail-fast
Python Path.walk: เดินโฟลเดอร์แบบ prune ได้และไม่ตาม symlink โดยปริยาย
ใช้ pathlib.Path.walk ค้นไฟล์อย่างอ่านง่าย พร้อมตัด subtree และทดสอบด้วย temporary directory
Python ExitStack: จัดการ resource จำนวนไม่แน่นอนให้ปิดย้อนลำดับ
รวม context manager และ callback แบบ dynamic ด้วย ExitStack พร้อม unittest ที่พิสูจน์ลำดับ cleanup

lazy import ใน Python 3.15: เลื่อนโหลดโมดูลจนกว่าจะถูกใช้จริง
อธิบาย PEP 810 Explicit lazy imports ที่มากับสาย Python 3.15 เหมาะกับ CLI และแอปที่ import หนักตั้งแต่เปิดโปรแกรม

Python 3.15.0rc2: รอบทดสอบสุดท้ายก่อนปล่อยจริง 1 ต.ค.
สรุปประกาศ Python Insider วันที่ 1 ก.ย. 2026 ว่า 3.15.0rc2 เป็น release candidate สุดท้าย พร้อมไฮไลต์ lazy imports, frozendict และ Tachyon

CPython รองรับ RISC-V อย่างเป็นทางการในระดับ Tier 3
สรุปประกาศ Python Insider 24 ส.ค. 2026 ว่า riscv64-unknown-linux-gnu เข้า PEP 11 เป็นแพลตฟอร์ม Tier 3 พร้อมความหมายต่อทีมที่บิลด์บนฮาร์ดแวร์เปิด