Data Sci Boot Camp Batch#11: Intro to Python

สำหรับวันนี้มา Recap live Class เรื่อง Python ครับ โดยวันนี้แอดสอน 5 เรื่องครับ ผมจดมาตามนี้ครับ Python vs R Google Colab ปกติ Run ใน vscode แก้งาน ตอนนี้ได้ลองของใหม่เป็น Web แล้ว Variable & Data Type 📌 การประกาศตัวแปรตัวที่ได้เรียนจะมี string / integer / float / boolean 📌 การลบตัวแปร ใช้คำสั่ง del ลบตัวแปร //เอาจริงๆ ผมเพิ่งรู้ 📌 การแปลงข้อมูล (Casting) 📌 การรับข้อมูล Input ใช้ input โดยจะได้ผลลัพธ์เป็น String เสมอ 📌 String Template จัดรูปแบบ String เติมตามช่องที่เว้นไว้ f”ข้อความ {ตัวแปร}” Python ตัวนี้มีมานานมากแล้ว แต่ dotnet csharp เพิ่มมา 3-4 ปีนี้เอง function 📌 แยกส่วน Code ให้ดูง่าย โดยใช้ keyword def ประกาศ ตัวอย่าง simple function 📌 การเรียกใช้งาน 📌 กรณีที่มี parameter ส่งเข้าไป 📌 default argument ถ้าไม่ส่งเข้ามาใช้ค่า default 📌 return multiple value ใช้ turple…

Data Sci Boot Camp Batch#11: Essential Machine Learning

หัวข้อที่จดๆใน Live Class จดได้ปประมาณนี้ What is Machine Learning (ML) Key: Maximize Reward / Minimize Pain ตอนนี้ ML มี 2 แบบ เรียนรู้จาก Data ถ้าคนเรา คือ Experience (ประสบการณ์) Model มันแยกย่อยได้อีก parametric – เช่น พวก regression / non-parametric (rule base) เช่น Decision Tree ก็ if-else โดยตัว Model มันเขียนในรูปแบบ Function ได้ตามนี้ Model = Machine Learning Algorithm(Data) Why ML is different from statistics Statistics / Machine Learning เอา Sample จาก Population โดยทีา 📊 Statistics มา ตอบข้อมูลที่มีอดีต 🤖 Machine Learning เอา Sample จาก Population มา ตอบข้อมูลในอนาคต >> เพราะ history repeat itself + new data ให้ตามทัน Simple ML Pipeline ถ้า Accuracy ตอน TRAIN > SCORING ไม่ดี มัน…

Back to Basic: Fundamental Data Structure in C# (English Version)

Thai Version (ภาษาไทย): Back to Basic: Fundamental Data Structure in C# (Thai Version) For this blog, I wrote to share my experience at meetup .NET Developer Day 2025 – Thailand. The inspiration for writing about this topic came from last month when I helped put out fires in the Performance Test section, whose solutions are WEB API / WinApp. The one root cause of the slow processes was choosing the wrong data structures. There are many examples, but I found people using IList<T> / List<T> in almost every case. If the data is small, you won’t notice much difference, but…

Global AI Bootcamp Bangkok 2025

รู้สึกว่างานมันดูแน่นๆเดือนนี้ สงสัยหลบวันสงกรานต์ สำหรับงาน Global AI Bootcamp Bangkok 2025 ผมได้แวะมาฟัง เป็นงาน Online ครับปีนี้ เลยมาจดๆไว้ประมาณนี้ครับ Keynote เอาคนดังจากหลายสาขา มาเล่าถึงการใช้ AI โดยสรุปได้ประมาณนี้ 🧵 คุณ Scott Hanselman ก่อนเอา AI มาใช้ Code แบบ Intellisense แนะนำ ตอนนี้มี AI เข้ามาช่วยเขียน และที่สำคัญช่วยทำความเข้าใจ Code จาก GitHub Copilot ที่มาช่วยความน่าเบื่อตอนทำงาน และเอาเวลาไปทำอย่างอื่น ทั้งในสาย Dev / Devops นอกจากนี้แกยัง LLM มันใช้ Data เรามี พูดเหมือนนกแก้ว ถ้าเราจัดการข้อมูลไม่ดี AI มันออกมาไม่ดี มันมีกับไป AI เหมือน และสุดท้ายตอนพัฒนา App อย่างลืมคิดถึงผล / จริยธรรม ที่เราต้องคุมจากการนำ AI มาใช้งานด้วย 🧵 คุณ Guido van Rossum แกเป็นคนคิดภาษา Python ทำตั้งสมัยยังไม่มีคำว่า Open Source จริงจังๆ เลย โดย Python เหมือนตัวภาษามาลดความยุ่งยากของการปีกกาเปิด-ปิด ด้วยที่มันเปิดมีคนไปใช้ต่อ โดยมี lib หลายตัวที่เอา python ไปเป็น Base เสริมความสามารถอย่างตัว NumPy (Numerical Python) จากนั้นมีอีกหลายตัว TensorFlow > scikit-learn > PyTorch มาจดการเป็นภาษาสำหรับ AI และทิ้งท้าย ถ้าเราจะเริ่มทำรอะไรให้ inner/motivation…

Data Sci Boot Camp Batch#11: Google Looker Studio

ใน Week นี้มาเรียนย้อนหลังครับ พอดีไปพูดในงาน .NET Developer Day 2025 – Bangkok @Agoda กลับมาเรียนต่อครับ โดยหัวข้อประมาณนี้ครับ ปกติแล้วตลาด Dashboard มีใครเล่นบ้าง การใช้งาน Looker Studio จริง Process ของทุกเจ้าเหมือนกัน Select Data Source > Select Visulization > Publish Data Freshness + Caching นอกจากนี้ เรายังสามารถกดแบบ manual … > refresh data ถ้ามีการเพิ่ม Field ใหม่ที่ต้นทาง เช่น ไปแยก Quater ใหม่ใน Google Sheet อันนี้ต้องไป Data Source แล้ว Reconnect นะ Sample Chart Control ที่เหลือต้องดูจาก Calculated Field การสร้าง Field ใหม่ โดยคำนวณจากข้อมูลที่มีอยู่เชื่อ เช่น Total Scale / Total Profit หา % Profit Margin เป็นต้น โดยมี 2 Scope Parameter Field เป็นช่องที่ User ใส่ค่าได้ แล้วเราเอามาผูกสูตรต่อได้ เช่น Tax Rate แล้วทนี่เราเอาไปใส่ใน Combox Box เมื่อ user เปลี่ยนข้อมูล หรือจะทำเป็น Range ให้กรอกเองก็ได้ ใน Slider Filter…

พบหมอที่ รพ. ตากสิน 2025

สำหรับ Blog นี้เรียกมา Update Flow จาก Blog เดิมที่เคยเขียนไว้ปี 2021 อย่างแรกเลยตอนนี้ Flow ที่ติดต่อห้องกลาง เพื่อออกใบนัด ตอนนี้เค้าย้ายมาให้ระบบ Kiosk แล้ว เอกสาร ใบนัดหมอ แผนกต่างๆ ยังต้องเอามาด้วยนะครับ ห้ามลืมมมมม หลังจากลงทะเบียนเสร็จ จะได้ ใบนำทางสำหรับคลินิค มา จะมีลักษณะตามรูปเลย จุดที่ต้องสนใจ รหัสรับบริการ อันนี้เป็นชื่อแทนเราในวันนั้น ในการเรียกคิว จากเดิมคุณชาตรี พบแพทย์ที่ห้อง 11 จะเป็นคุณ B203 พบแพทย์ที่ห้อง 11 โดยเจ้ารหัสรับบริการ การใช้งานจริงไม่ได้ครอบคุลมทั้งหมดนะ บางแผนกใช่ แต่บางแผนกยังไม่ได้ใช้ อย่างเช่น เจาะเลือดมีรันคิวย่อยของตัวเองอีกที แต่เราต้องมี รหัสรับบริการ ก่อนนะ เข้าใจว่ายัง Parallel อยู่เลยมี 2 ระบบ สำหรับการมาหาหมอรอบนี้ จดเวลาไว้ตามนี้ เนื่องจากหมอนัด 11 โมง เลยออกไปทานข้าว เดินเล่นข้างหลังโรงพยาบาล จากนั้นมาทำงานที่ Cafe Amazon ประมาณ 2 ชม ครับ จดไว้ก่อนปีนี้หนัก 79.8 เดียวลืมอีก

Data Sci Boot Camp Batch#11: Essential Statistics #2 (Confidence Intervals)

อันนี้เป็น Class เสริมต่อจาก Essential Statistics: Descriptive Statistics – สำหรับวันนี้ Confident Interval (ช่วงความเชื่อมั่น) ทำไมต้องมี Confident Interval (ช่วงความเชื่อมั่น) ❓แอดทอยได้ยกตัวอย่างลอง ถ้าเราได้ลองทำแบบสำรวจ รอบแรกได้ผลเฉลี่ย 70 แล้วลองทำซ้ำ 4-5 รอบ คำถามผลที่ได้ไม่มีทาง 70 เสมอ หรือ ป่าว ?คำตอบ ไม่ แต่มีโอกาศไปทางเดียวกัน ❓แล้วเราสุ่ม 5 รอบ ผลที่ได้จะตอบแทน population ได้ไหม ?คำตอบ ได้ แต่ต้องสำรวจไปตามแนวทางของกฏ Central Limit Theorem กฏ Central Limit Theorem (CLT) ถ้าสุ่มตามกฏ แล้วเราเอาตัวเลขมา Plot Graph ผลที่ได้จะเป็น Normal Distribution หรืออีกชื่อ Sampling Distribution ยิ่งถ้าสำรวจเยอะ Graph จะใกล้ Normal Distribution มากขึ้นด้วย Mean จากทุกรอบ ตอบในส่วนของมิวได้ไหม ? สัญลักษณ์ การอ่าน นิยาม  μ มิว ค่าเฉลี่ย ของ population σ Sigma SD ของ population ปกติแล้วค่าที่เราไม่รู้ จะเรียกว่า Unknown Parameter (ศัพท์ใหม่) แล้วค่ามิว ค่าเฉลี่ย ของ population เป็น Unknown Parameter เพราะเราวัดเองไม่ได้หมด Standard Error (SE) คือ อิหยัง ?…

จดๆจากงาน .NET Developer Day 2025 – Bangkok @ Agoda

วันนี้ผมมาใน 2 บทบาท จากเป็นคนมาฟังมาจด มาวันนี้มาเป็นคนลองแชร์บางด้วย สำหรับหัวข้อมีอะไรนั้นลองตามอ่านกันได้ครับ Back to Basic: Fundamental Data Structure in C# Speaker Chatri Ngambenchawong สำหรับ Session นี้ ผมลองออกมาพูดเองครับ เป็นภาษาอังกฤษแบบงูๆปลาๆ มาเล่าว่า ส่วนนึงที่ระบบมันช้า มาจากการที่เราเลือก Data Structure ผิด Use-Case ของมันก็ได้ครับ โดยผมได้สรุปลง Blog แล้ว และ Feedback ต่างๆ เช่น ลองใช้ Benchmark.NET ผมปรับใน Sample Code ใน Git แล้ว แต่ใน .net fiddle อันนี้ปรับตามไม่ได้ตามเหมือนจะโดนเค้าแบน Error 500 ถ้า Login เพราะลองเล่นอะไรแปลกให้ CPU Peak 55 ผลที่ได้ก็ OK นะ ไม่ต้องมาแก้ Code Run ที่ละอันใส่ param กดแล้วนอนตื่นมาดูผล สำหรับ Code ตามนี้ครับ นอกจากมีคุยเหมือนกันว่าในพวก Linq First() จะเห็นว่าการปรับ Perf ด้วยนะใน .NET9 อันนี้เดียวต้องไปลองเพิ่ม สุดท้าย ตอนนำเสนอ ถ้าพูดอะไรตะกุตะกะ หรือพูดอะไรพลาดไปในวันนั้น ผมขอโทษด้วยครับรอบหน้าจะปรับปรุงให้ดีขึ้นครับผม Local Reasoning Model Deployment with AutoGen Between Ollama and LM Studio Speaker Charunthon Limseelo สำหรับ Session เป็นภาคต่อจากตัว Season…

Back to Basic: Fundamental Data Structure in C#

English Version: Back to Basic: Fundamental Data Structure in C# (English Version) สำหรับ Blog นี้ ผมเขียนมาประกอบกับ Talk ที่ลองส่งในงาน .NET Developer Day 2025 – Thailand ครับ โดยแรงบันดาลใจในการเขียนเรื่องนี้ มาจากที่ว่าช่วงเดือนที่แล้วได้เข้าไปช่วยดับไฟ ในส่วนของ Performance Test ซึ่งมันเป็นในส่วน WEB API / WinApp ด้วย โดยสาเหตุที่ทำให้ Process มันช้า เกิดจากการเลือก Data Structure ที่ผิดประเภทมันมีหลายตัวนะ แต่ผมเจอแต่คนใช้ IList<T> / List<T> แทบจะทุกเรื่องเลย ถ้า Data มันเล็กๆมันจะไม่เห็นผลเท่าไหร่ แต่ถ้าข้อมูลมันเพิ่มจากหลักสิบ มาเป็นร้อย หมืน แสน ล้าน มันจะส่งผลได้ชัดเจนเลยครับ ปัญหาที่พบ – Component MoverBox มันตอบสนองช้ามาก เวลาเลือกข้อมูลจำนวนเยอะ MoverBox ตัวที่ช่วยเลือกข้อมูลเยอะ โดยทำมาจาก DevExpress นี้แหละ มันอยู่มานานและน่าจะเกิน 10 ปีได้ โดยมี – Process ต่างๆ มันกินเวลามาขึ้น อย่างมีนัยสำคัญ เมื่อข้อมูลเพิ่มขึ้น ใน Loop นอกจาก for แล้ว ยังมี Where หรือ FirstOrDefault หาใน List อีก ตัวอย่างจะประมาณนี้ Recap Data Structure ไม่แน่ใจว่าคนอื่นเจอเหมือนกันไหม แต่ผมเจอคนที่ใช้ List แทน Data Structure ทุกอย่างเลย…

เอา Secret ที่ลืมไว้ออกจาก Code ด้วย BFG Repo-Cleaner

หลังจากที่ได้ Review Code พบว่าบางส่วนมันหลุดไป แล้วมี Endpoint + API Key ติดไปด้วย เลยต้องรีบเอาออกไป ถ้าหลุดไปเดี๋ยวยาว ลองมาปัดฝุ่นดู เราเคยใช้ BFG Repo-Cleaner เมื่อหลายปีก่อนลบพวกนี้ในงานอยู่แล้ว แต่มันจดๆไว้ใน Notion รอบนี้เลย ย้ายมาลง Blog เลยดีกว่า ทำไมต้องใช้ BFG Repo-Cleaner สั่่นๆ Simple แล้วตัว Tools นี้มันมี Feature พวกนี้มาให้เลย ถ้าใช้ git-filter repo น่าจะท่ายากไปนะ ถ้าพร้อมแล้วไป Download BFG Repo-Cleaner และติดตั้ง Java 8++ กันได้เลย คอมผมใช้ Java 21 ทำงานได้นะ ลุยกันเลย ถ้าเราๆไม่ใส่ ==>คำที่ต้องการแทนที มันจะแทนด้วยคำว่า ***REMOVE**