WP – Updating failed. Could not update post in the database

หลังจากได้ปรับ WordPress ไปในรอบก่อน แล้วที่นี้เดือนที่แล้ว ผมได้ไปงาน Agile Thailand 2025 ตอนแรกตั้งใจว่าเดียวเอาจากที่ Note มาแปบเดียวแหละ เดี๋ยวสัก 5 ทุ่ม Publish Blog ปรากฏว่าหลังจากเขียนเสร็จ จะกด Save เชี่ยอยู่ๆ ทำไมมาพังตอนนี้หวะเนี่ย หรือ จะเป็นเพราะขยับ WordPress ล่าสุดไป อย่างแรกที่ผมทำนอนครับ ทำอะไรตอนมืนๆ อันตรายมาก แล้ววันรุ่งขึ้นมาดูต่อ เอา Post Copy แปะลง Notion สำรองไว้ก่อน แล้วกลับมาดูก่อนว่าเราทำอะไรไปบ้าง จดๆ Tune WordPress 2025 อ๋อเจอแล้ว ตัว WordPress เรายังใช้ Charset/Collation utf8mb3_general_ci แล้วที่นี้ใน Post ผมดันใส่ Emoji เข้าไป เห็นใน Facebook Post เค้าแปะกัน เราอยากแปะบ้าง 555 สรุปพังจากตรงนี้เลยครับ ถ้าอยาก Save Emoji ลง DB ต้องใช้ Collation แบบไหน ? ต้องปรับไปใช้ utf8mb4_xxx แทน โดยที่มันต่างกับ utf8mb3_xxx ดังนี้ ตอนนี้เรารู้แน่ๆแล้วใช้ utf8mb4_xxx แล้ว xxx มันมีแบบไหนบ้างหละ หลังจากลองไปส่องใน DB WordPress ตัวเองจะมี 3 แบบ utf8mb4_general_ci / utf8mb4_unicode_ci / utf8mb4_unicode_520_ci แล้วมันต่างกันยังไง โดยหลักจะเป็นการรองรับภาษาต่างๆ และการเปรียบเทียบ จัดเรียงตัวอักษรครับ ผมเลยสรุปมาเป็นตารางไว้ Catagory utf8mb4_general_ci utf8mb4_unicode_ci utf8mb4_unicode_520_ci Unicode Standard…

The SqlDbType enumeration value, 0, is invalid. (Parameter ‘SqlDbType’)

สำหรับวันนี้เจอเคสพิเศษนิดนึงครับ มี Code ที่ merge มาล่าสุดเจอ Error SqlDbType คือ อะไร ? เป็น Enum ที่เอาไว้ Map DataType ของ dotnet กับ SQL Server โดยมีรายละเอียดเต็มๆ ดังนี้ สำหรับ Code ที่มีปัญหาจะเป็นรูปแบบนี้ มีการ Parallel และต่อ DB โดยใช้ ADO.NET objects ตัวเดียวกัน ซึ่งพวก ADO.NET objects (พวก SqlParameter, SqlCommand, SqlConnection) ไม่เป็น thread-safe. พอเอาไป Parallel เลย Shared Object มันเลยเกิดปัญหา ทางแก้ง่ายๆ ยอมสร้างทุกรอบ ตัวอย่าง Code สำหรับสาเหตุที่เจอ Recap สั้นๆ เราคุม เรื่อง Connection DB ไม่ได้ครับ ตัว ADOInterceptor (คนเดิมเค้าเขียนคุม Connection DB เอง) มันจ่าย Connection มาให้ แล้ว Connection นั้นอาจจะ reuse SqlParameter ทำให้เกิดเคสผิดฝาผิดตัว จังหวะมันเสียบ Connection ของ thread c Connection b / d เอา a มาให้ ผิดฝาผิดตัวกัน เช่น

[C#] Semantic Kernel – Error System.Text.Json.JsonException: The JSON value could not be converted to System.String. Path: $.properties.month.type

ช่วงลองทำ Side Project เกี่ยวกับเจ้า Semantic Kernel ทำไว [KernelFunction] เตรียม Function การคำนวณให้ LLM มันปั๊น และส่งค่ามาให้ถูกเท่านั้นพอ ทำมาหลาย [KernelFunction] แต่อันนี้ดัน Error ซะงั้น ถ้าดู Error จะขึ้นแนวๆ System.Text.Json.JsonException: The JSON value could not be converted to System.String. Path: $.properties.month.type | LineNumber: 0 | BytePositionInLine: 187. ถ้าตัว Trace เต็มๆตามนี้ครับ ตอนแรกก็งงไปเกือบวัน พังเพราะอะไร แต่หลังจากกินข้าว และลองมาไล่อีกที เจ้า Kernel Function ของเรามันไม่เคยรับ Nullable เลยนี่หว่า พวก int? เลยลองไปดู Sample จาก อ้าวมันไม่มีเหมือนกันนะ ตัวอย่างมันไม่มีพวก Nullable เลยนี่หว่า พวก int? เลยลองเอาออก และลองใช้งานดู ทำงานได้ซะงั้น ไม่มี Error แต่ต้องพิมพ์ Prompt ให้มันชัดเจนหน่อยอย่าง “ข้อมูล Lotto ย้อนหลังเดือน 9 วันที่ 1” ให้มันเข้าทำงานได้ หรือ เราควร Design เป็นส่ง String ให้ [KernelFunction] จะปลอดภัยกว่าป่าวนะ แล้วให้ไปแปลง + ดักข้อมูลกันเองอีกที จบไปอีกวันครับ เดี๋ยวต้องลองไปหาเพิ่งว่ามีคนแจ้งเคสไปยัง ถ้าไม่มีเราอาจจะได้เป็นคนเจิมครับ ^__^

ลอง N8N ให้ AI สรุป devblogs.microsoft แล้วดันไม่มีข่าวอะไร ??

มาจดไว้ก่อน เพราะได้ตั้งโจทย์ลองทำ Local LLM + n8n ทำสรุปข่าวนี้ โดยตั้งต้นจาก devblogs.microsoft แต่ทิ้งไว้่ Week นึงแล้วไม่มีข่าวอะไรมาเลยต้องลองหาสาเหตุ ได้เป็น Blog ตามนี้ สำหรับรายละเอียดตามนี้เลย เริ่มจาก 📌 Schedule Trigger ผมตั้งไว้ตอนตี 4 📌 RSS Feed ผมให้มันดึงจาก 📌 Filter เขียน javascript ต้นทางจะมี isoDate เอาตัดมาเฉพาะวันที่ แล้วเอามาเทียบกับวันที่ปัจจุบัน เพื่อกรองออก 📌 Node IF 📌 ตอนนี้จะเป็น Node AI Agent ผมเชื่อมกับ Ollama และใช้ Model Qwen3 แล้วแจ้งตาม Prompt ดังนี้ 📌 หลังจากนั้นรอ AI มันทำ ถ้าทำเสร็จเราจะได้ json array มา ที่นี่ มันจะมีส่วนของ Model Qwen3 มันคิด (Tag think) ผมก็เลยจะตัดออก โดยใช้ Code แปะลง Node Code ตามนี้ 📌 ข้อมูลที่ได้จาก Node Code จะเป็น json array มีข้อมูลข่าวสรุป โดยอยู่ใน Format MarkDown แต่ผมจะส่งเมล์ เลยให้ Node MarkDown แปลง MarkDown มาเป็น HTML 📌 สุดท้าย เมื่อ Data พร้อม ผมใช้ Node…

ลองใช้ Locale Emulator สำหรับ App เก่าๆที่ต้องการ Locale เป็นพิเศษ

จาก Blog ตอนที่แล้วที่จะว่าตัว Sun One มัน Required Specific Locale ทำให้ dotnet build เจอ Error MSB3554 เลยต้องหาทางแก้กัน เพราะ ผบห ไม่ให้งบ Resource เพิ่มและ ให้เอามาฝาก Agent ที่ผมดูแลแบบงงๆ Solution ที่เป็นไปได้ หลังจากถกกันสรุปจะไม่เพิ่ม User แนวทางเลยมาเป็นการใช้ Locale Emulator แทนครับ Locale Emulator / Locale Remulator คือ อะไร เป็น Utility เล็กๆ ที่ช่วยจำลอง Environment ขึ้นมา เพราะตัว App ดังนั้น เพื่อแก้ปัญหานี้ทาง Microsoft ได้ทำ App Microsoft AppLocale แต่หยุดพัฒนาไป 10 กว่าปีแล้วครับ ทีนี่มีชุมชน Open Source พัฒนาขึ้นมามาต่อครับ โดยตอนแรกจะเป็นตัว ทางผมเลยจะเลือกใช้ตัวนี้มาแก้ปัญหาเรื่อง Sun One เพราะถ้าแก้ได้ เดี๋ยวผูก Jenkins ต่อได้ การใช้งาน Locale Remulator – ติดตั้ง Locale Remulator – กำหนด Profile ใน Locale Remulator ที่ Path ติดตั้ง ดับเบิ๊ลคลิก LREditor.exe ด้วยสิทธิ Administrator จากนั้นทำการกำหนดค่าตาม Step ดังรูป ข้อมูลทั้งหมดจะอยู่ในไฟล์ LRConfig.xml โดยจำ Guid ไว้นะครับ – ตรวจสอบก่อน Path…

.NET Meetup Thailand Aug 2025 @Seven Peaks Software

วันนี้รีบแวะไปฟังช่วงนี้ลอง Semantic Kernel กับ Local LLM ในช่วงวันหยุดครับ เลยสนใจ และได้จดมา 3 หัวข้อตามนี้ มี FB Live ด้วยนะ A2A for .NET Development with GPT-OSS: How AI-powered open-source tools are transforming .NET development workflows. Speaker Charunthon Limseelo – GPT-OSS: The First Open Weight Models from OpenAI 📌 หลังจาก Open AI ได้ Open Weight Models จริงๆอีกรอบตามชื่อ บ อีกรอบ (เคยเปิดตอน GPT2) โดยมี Model 2 ตัว ได้แก่ gpt-oss-20b / gpt-oss-120b License แบบ Apache 2.0 📌 ความสามารถเจ้า GPT-OSS Model นี้มีหลายอย่างได้แก่ Chat Completions / Function calling / Reasoning / Structured outputs / Streaming รองรับแบบ text in/out นะ 📌 ถ้าลองมาเทียบกับ GPT2 พบว่าโครงสร้างของตัว Model จะมีการเพิ่ม Transformer / MoE Layer (ให้…

อยู่ๆ Jenkins Agents ฟ้อง Error MSB3554: Cannot write to the output file

มาจดเคสที่แปลกนิดนึง เพราะเจอว่า Jenkins Windows Agent อยู่ Build แล้วเจอ Error MSB3554 แต่พอไปดู Error MSB3554 เขียนไฟล์ไม่ได้ ตอนแรกสงสัยว่า ตอนแรกสงสัยทำไมถึงเกิดปัญหา เลยลองไปดู Event Log ดู พบว่ามีคนมาลอง App เพิ่มตัวชื่อ Sun One + JDK2 ซึ่งมันเก่ามาก หน่าตาตัวอย่างที่หามาจากในเนต จะประมาณนี้ครับ และมีการแก้ Config ของเครื่องอย่างตัวแปร PATH และพวก Region Format ด้วยครับ สำหรับสาเหตุตัว Sun One มันต้อง Set Region Format เป็น Thai (Thailand) ถึงใช้งานได้ครับ เหมือนเจอสาเหตุ และปัญหาใหม่ที่ต้องมาตามแก้ต่อเลย สรุปทางแก้ ปรับ Region Format English (United State) เหมือนเดิม ส่วน Sun One ที่มาที่หลัง อันนี้ ผมแก้ โดยการไปใช้ Locale Emulator แทนครับ ส่วนแก้ไขด้วยท่าไหน รอตามใน Blog ต่อไปเลยครับ สำหรับเคสนี้เรียงว่าติดไปแบบงง 2-3 วันเลยครับ

มาลองใช้ GitHub Copilot ในส่วนของ Pull Request (PR)

จริงๆ Feature นี้มันมีมานานมากแล้วแหละครับ แต่ของผมใช้ Tier GitHub Copilot (10 USD) งบน้อย ออกทุนเอง แล้วระหว่างที่ทำ Slide Project มันมีให้ Copilot เป็น Reviewer ครับ ปกติใช้แต่ Chat (Ask / Edit) เป็นหลักครับ ไอ้เราก็อยากลองเหมือนกัน เลยไปเปิด VS Code แอบๆส่องๆก่อน ว่าส่วน Premium Request เดือนนี้ใช้ไปเท่าไหร่ ตอนนี้ 6% แล้วครับ (เสียดายลืม Cap รูปไว้) จากนั้นมาลุยกันเลยครับ 🎹 Generate Pull Request Summary ลองให้ AI มันสร้างมาให้ เออลองอ่านดูแล้ว ก็ตรงระดับนึงเลยครับ ✅ Pull Request Code Review ใน PR หลังจาก Assign Copilot เป็น Reviewer รอสัก 1 -2 นาที มี Comment เพิ่มเข้ามาตามนี้เลยครับ อันนี้มันแนะนำดีครับ ลองๆจบไว้ ถ้า Request เข้ามากันเยอะๆ ตัว Concurrent Dictionary จะปลอดภัยกว่าครับ อันนี้ผมยังไม่แก้นะ จดไว้ ถ้า Scale Side Project นี้แล้ว อาจจะใช้พวก Redis แทนเป็นต้น อันนี้มันตรวจ Hard Code ได้ด้วย และมีถามให้ Commit ด้วยไหม แต่ของผมพวก CI/CD ยังไม่ขึ้นเลย ตอนนี้กดมือ…