[CR] Starbucks Banana Choc Chip Loaf Cake

Reference (พลังงาน)

Reference (พลังงาน)

ผมได้ได้เชี่ยว Go นะ อาจจะผิดได้แวะมาพบน้องที่เคยทำงานด้วยกัน เลยมาพบในงาน และจดๆนิดหน่อยครับ Common Mistakes in Go and How to Avoid Them Speaker Bhuridech Sudsee 📌 Ignore to check if ok 📌 Unintend shadow variable 📌context – หัวข้อถัดไป The Art of Context: How to Use Context Properly 📌No graceful shutdown 📌 overuser init function 📌 defer thining 📌 Returning interface 📌 Accept Struct 📌 Sophisticated Dependency Injection ผมว่าคล้ายกับอันนี้ หัวข้อนี้นะ Dependency Injection in Golang Ref book 100 hundred mistake in Go The Art of Context: How to Use Context Properly Speaker Jirayut Khantavee 📌 ปัญหา เราจะรู้ได้ยังไง ว่าแต่ละ microservice / go rountine ทำงานยังได้ ตามที่เรากำหนดไหม ตัว Context จะมาช่วยตรงนี้ 📌 Use…

ใน Blog นี้มาจด How To หลังจากที่ได้ฟังมาหลายๆที่ และลอง MCP ถ้าเป็น dotnet ถ้าเรามี Code เดิมอยู่แล้ว อยากมาปรับให้ตัวมันเองเป็น MCP Server ต้องทำอย่างไรบ้าง ลองตามมาอ่านกันครับ MCP คือ อะไร ? MCP หรือ Model Context Protocol เป็นมาตรฐานกลางที่ช่วยให้ AI Model (LLM) มันมีความสามารถเพิ่มขึ้น เพราะข้อจำกัดของ Model มีองค์ความรู้จำกัด และข้อมูลบางอัน อาจจะมีการมโน (hallucination) ได้ ซึ่งก่อนที่จะมี MCP ถ้าเราอยากให้ LLM มันรู้จักกับ Tools/Service ที่เราทำไว้ไว้ ต้องไปเขียนวิธีการเชื่อมต่อตามที่ AI Model (LLM) แค่ละค่ายนั้นกำหนดขึ้นมาเอง หรือ แต่ละ Library ที่กำหนดไว้ ถ้าเรามีเปลี่ยน Model อย่างจาก GPT > Claude > Qwen มีกรี๊ดสิครับ MCP เลยมาเป็นคำตอบ ทำมาตรฐานกลางเลย ให้ทุกคนเชื่อมได้ง่าย และ AI Model (LLM) เอาไป Implement ด้วยนั่นเองครับ โดยก่อนที่เราใช้ MCP ได้ อย่างแรกที่ต้องคิดถึงก่อน เลือก Model ที่มีความสามารถ Function / Tools Calling หลังจากที่ AI Model (LLM) มันรู้จัก Tools มันจะช่วยแก้ปัญหา องค์ความรู้จำกัด และลดการมโนได้ อาทิ เช่น 🔴 เรื่องของเวลา ปกติ…

I’ve been reviewing code from a junior team member who developed an API for generating reports using DevExpress XtraReport. During re-testing before sending it to QA, I noticed that on the last page, there’s no data, but the system still prints out the column headers. 📌 Hide Page Header Create an expression for the PageHeader.Visible property as shown below Sample Step in Report Designer 📌 Hide Group Header Create an expression for the GroupHeaderBand.Visible property as shown below Reference

สำหรับวันนี้มาเจอ Code Report หลังจากเผามา 3-4 เดือนที่ผ่านมา แล้วพบว่าทุก Report รูป Logo Fixed Path หมดเลย ถ้าดูจาก xml ของ report พบว่า ถ้าดูจาก Code พบว่ามันจะ Lock Path C:\ฺNineYCom\CTD\Report\Logo\Logo_Landscape.jpg ถ้าเกิดต้องไปลองที่อื่น หรือใช้เป็น Container มันจะแบบเราหา Drive C ได้ที่ไหน ? มีแต่ /var /usr เป็นต้น หลังจากลอง Research พบว่าตัว DevExpress มันบอก Base Path แล้วไป map เป็น แบบ Relative Path ได้ครับ โดยไปเพิ่ม “DXResourceDirectory” แล้ว Load เข้ามา และเขียน Code ที่ main หรือ program.cs เพื่อกำหนด ดังนี้ หรือ แบบ webapi เขียนเต็มๆ ตามนี้ จากนั้นที่ Code ของ Report ไปแก้ ImageUrl จาก Full Path มาเป็นแบบ Relative Path ตามรูป สำหรับวิธีนี้ข้อดี App ของเรา Dynamic มากขึ้น ไม่ต้องมา Fixed Path ลงทุกที่ แต่ข้อเสียมันมีเหมือนกัน ต้องตรวจสอบนิดนึงมัน เปิดช่องให้ดึง Data อาจจะอันตรายมาด้วย แต่มีแนวทางแนะนำตามนี้ Reference

Reference (พลังงาน)

Blog มาจดๆไว้ก่อนครับ พอดีลองทำ Blazor WASM มาเป็น Utility เล็กๆ ช่วยงาน แล้วที่นี้ ดันเจอปัญหาว่าบางเครื่องทำงานได้ปกติ แต่บางเครื่องไม่ได้ เมื่อเข้า Web Developer tools จะเจอ Error เต็มๆตามนี้ครับ สำหรับทางแก้ไข เอาตาม Error Message มันแนะนำครับ ใน csproj เพิ่ม เพื่อที่ตอน Bundle มันจะได้ใส่ตัว icu_xx ของภาษา (พวก icudt.dat, icudt_CJK.dat, icudt_EFIGS.dat เป็นต้น) ลงไปให้ครับ ปัญหาว่าบางเครื่องทำงานได้ปกติ แต่บางเครื่องไม่ได้ จากที่ลองมา และอ่าน Doc ของ microsoft ปกติเวลา Client ยิง Request ไป มันจะมีส่วน Accept-Language header ซึ่งตัว Web Browser มันอ้งอิงตามภาษาที่แสดงผล และส่งกับ Request ด้วย เคสที่เจอ ปัญหาตัว wasm มัน Bundle มาเฉพาะ en-US พอเจอเครื่องที่กำหนดเมนูภาษาไทยแล้วไป มันเลยส่งไปเป็น th-Th ตอน Render ก็เลยระเบิดตุ้มที่ฝั่ง Client ส่วนขา Server ไม่มี Log บอกอะไร เลยต้องมาดูในส่วน Web Developer tools ครับ ถ้าเราอยากรู้ว่าส่งอะไร ลองไปดูได้จาก Tab “Network” > Header จะมีส่วนของ en-US,en;q=0.9 หรือ ถ้ามีภาษาไทย th-TH,th;q=0.9,en-US;q=0.8,en;q=0.7แต่เครื่องที่ผมเจอ th-TH,th;q=0.9 มาอธิบายสักนิดต่อ th-TH,th;q=0.9,en-US;q=0.8,en;q=0.7 จบไปอีกปัญหานึงในวันนี้ครับ Happy Coding…

เช้าวันเสาร์อีกวันที่เข้ามาตึก K+ ครับ สัปดาห์ก่อนมางาน Data + AI Day 2025 แบบงงๆ (พอดีได้บัตรมา) สำหรับอันนี้มาตามที่วางแผนไว้ครับ โชคดีได้เข้า Workshop ด้วยไหนๆมาแล้ว อยู่ยาวทั้งวันเลย เลยจดๆตาม Style ของ Blog นี้ครับผม [Workshop] Conversational Analytics API & ADK: Building Your First Data Chatbot Speaker Burasakorn Sabyeying 📌 สำหรับ Session ช่วงเช้าจะมีแนะนำ Product ใหม่ของ Google Conversational Analytics API (Preview) โดยเกิดจาก Pain ที่ว่า 📌 Conversational Analytics API เลยเกิดขึ้นมา เอามาสร้าง Data Chat Bot / Data Agent เคสนี้เข้าไปอ่านอย่างเดียวใน Big Query / Looker Studio (ไม่มีการ Update Insert Delete) โดยการ Implement จะมี 📌 ผลลัพธ์ที่ได้จาก API / SDK จะเป็น JSON แบบ Vege-Lite ตัว Vega Altair มาทำกราฟสวยๆให้ 📌 Lab Guide Resource: Slide เหมือนใน Slide มี ADK ให้ทำต่อด้วย / Lab Guide…

สำหรับอันนี้เป็น Error มาจากฝั่ง WebAPI ที่ต่อกับ DB2 ครับ มันทำเว็บตายเลยครับ 555 โดยจะมี Log มาแนวๆนี้ครับ จาก Error SQL0290N Table space access is not allowed. เห็นอันนี้ก็ร้องดังๆในใจแล้ว WTF DB ลูกค้าไปทำอะไรหว่า ซึ่งลูกค้าบอกว่าเปล่า ไม่มี้ เอาจริงๆแอบกลัวเหมือนกัน แต่อยากรู้ว่าลูกค้าไปทำอะไรจริง หรือป่าว เลยไปขอ db2diag.log ของวันที่มีปัญหามาครับ รู้ Lock จาก App ว่าตายช่วงเที่ยง เลยลองไล่ db2diag.log พบว่า สำหรับใครที่ไม่รู้ว่า Path db2diag.log อยู่ไหน ลองคำสั่งนี้หาได้ครับ db2 get dbm cfg | grep DIAGPATH ที่เครื่อง DB Server ครับ หลังจากรู้แล้วว่าคำสั่ง Load ก่อนให้เกิดปัญหาเจ้า SQL0290N Table space access is not allowed ต่อไปก็มาตรวจ Tablespace ครับ ว่าแต่ละตัวมีสถานะเป็นอย่างไร การแก้ไข ทำได้ 2 วิธีครับ จากนั้นลองรัน db2 LIST TABLESPACES SHOW DETAIL แล้วตรวจสอบ State ของ table space ครับ ต้องเป็น 0x0000 สุดท้ายลอง Restart Container ของ App Server (Web API) จบปิดเคสครับ Reference

สำหรับงานในวันนี้ก่อนอีกเลย ผมต้องขอบคุณทาง Skooldio ที่ได้จัดกิจกรรมแจกบัตรฟรีครับ และได้เป็นผู้โชคดีที่ได้รับบัตรเข้างานครับ เลยลองมาฟัง และจดสรุปเป็น Blog นี้ครับ คิดว่าน่าจะยาวนิดนึงนะครับ หัวข้อตามนี้ EMPOWERING INTELLIGENCE Speaker คุณสุดารัตน์ เอกธนมณี / คุณจตวัฒน์ เชี่ย 🚀 ตอนนี้ AI ถ้ามองในแง่ IQ แล้วความฉลาดมันเกินมนุษย์ เราไปแล้วนะครับ มันเก่งมาก🎓 แต่มันยังไม่เทียบเท่าคนเรา อันนี้วัดจากเกณฑ์ของคุณ Howard Gardner ความฉลาดมันมีหลายด้าน นอกจากเรื่องการใช้ตรรกะ การคำนวณ ยังมีส่วน มิติสัมพันธ์ (Spatial) หรือมนุษยสัมพันธ์ (Interpersonal) การเข้าใจผู้อื่นตรงนี้ AI ยังขาดไปนะ 🚀 และปิดท้าย ความเข้าใจมาจากคนเรา โดยความชัดเจนมาจากข้อมูล ที่มีความเร็วมาจาก Technolgy และ AI ช่วยทำให้มันต่อเนื่องได้ 2026 AND BEYOND: THE ROAD AHEAD FOR DATA & AI เส้นทางอนาคตคนทำงาน DATA & AI ต้องเตรียมรับมือ Speaker คุณเปรม โชติพานิช / คุณสรทรรศน์ คิรีรัตรจักริน / คุณวิธวินท์ ศรีเพียรพล / คุณธนณัฏฐ์ สันตติยานนท์ เป็น Talk ชวนคุยกับผู้เชี่ยวชาญด้าน AI 3 ท่าน คุณเปรม โชติพานิช (เปรม) Data Karate / คุณสรทรรศน์ คิรีรัตรจักริน บอยด์ (BigData RPG) / คุณวิธวินท์ ศรีเพียรพล (โร่) HowKnow…