[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"academy-blogs-th-8-12-Tailwind%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252520CSS-all-all-createdAt:desc-default":3},{"data":4,"page":520,"perPage":521,"totalItems":522,"totalPages":523},[5,76,124,168,205,257,289,321,349,391,444,482],{"alt":6,"cover_image_path":7,"created":8,"expand":9,"id":72,"published_at":73,"school_blog":68,"short_description":74,"title":6,"updated":75,"slug":69,"views":71},"JS2GO EP.48 Logging & Monitoring for Production (Go & Node.js)","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fssj081nxo3m7iqh\u002Fcover_image_js2_go_ep_48_logging_monitoring_for_production_go_node_qpowgw7zj4.js.webp","2026-03-04 08:44:54.485Z",{"keywords":10,"locale":39,"school_blog":49},[11,19,24,29,34],{"collectionId":12,"collectionName":13,"created":14,"created_by":15,"id":16,"name":17,"updated":18,"updated_by":15},"sclkey987654321","school_keywords","2026-03-04 08:44:53.651Z","76qprkevbgfdps8","tuo9u1ayxlr8xvm","Monitoring System","2026-06-07 06:46:40.799Z",{"collectionId":12,"collectionName":13,"created":20,"created_by":15,"id":21,"name":22,"updated":23,"updated_by":15},"2026-03-04 08:44:54.012Z","e283qzmjw1vq2l4","Logging Production","2026-06-07 06:46:40.937Z",{"collectionId":12,"collectionName":13,"created":25,"created_by":15,"id":26,"name":27,"updated":28,"updated_by":15},"2026-03-04 08:24:40.405Z","05u3tysava2z6ga","Node.js","2026-06-07 06:45:12.195Z",{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},"2026-03-04 08:20:42.484Z","vslzz9nvv6n77cx","JavaScript","2026-06-07 06:45:10.888Z",{"collectionId":12,"collectionName":13,"created":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},"2026-03-04 08:20:11.547Z","ey3puyme01a9bsw","Go","2026-06-07 06:45:07.798Z",{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},"th","pbc_1989393366","locales","2026-01-22 10:59:55.832Z","twemoji:flag-thailand","s8wri3bt4vgg2ji",true,"Thai","2026-04-10 15:42:46.614Z",{"category":50,"collectionId":51,"collectionName":52,"created":53,"expand":54,"id":68,"slug":69,"updated":70,"views":71},"hsa1afr8fcnd6qb","pbc_2105096300","school_blogs","",{"category":55},{"blogIds":56,"collectionId":57,"collectionName":58,"created":59,"created_by":15,"id":50,"image":60,"image_alt":53,"image_path":61,"label":62,"name":63,"priority":64,"publish_at":65,"scheduled_at":53,"status":66,"updated":67,"updated_by":15},[],"sclcatblg987654321","school_category_blogs","2026-03-04 08:24:37.986Z","js2_go_2_11zon_y6paxmuz32.webp","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclcatblg987654321\u002Fhsa1afr8fcnd6qb\u002Fjs2_go_2_11zon_y6paxmuz32.webp",{"en":63,"th":63},"JS2GO",10,"2025-08-11 03:41:08.820Z","published","2026-06-07 06:45:02.240Z","d8jrjoxb8k7la64","js2go-ep48-logging-monitoring-production-go-nodejs","2026-06-14 01:46:58.031Z",239,"ssj081nxo3m7iqh","2025-12-23 04:57:48.010Z","จากการมีแค่ log สู่การเข้าใจระบบทั้งก้อน เรียนรู้ Structured Logging, Correlation ID, Metrics, Tracing และ Error Monitoring เพื่อให้ระบบ Go และ Node.js พร้อมใช้งานจริงในระดับ Production และ Microservices","2026-06-07 06:43:24.808Z",{"alt":77,"cover_image_path":78,"created":79,"expand":80,"id":120,"published_at":121,"school_blog":116,"short_description":122,"title":77,"updated":123,"slug":117,"views":119},"Work-Life Balance แบบ Programmer: วิธีไม่ให้หมดไฟในวงการนี้","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fkwwrvw3iltat93v\u002Fwork_life_balance_for_programmers_how_to_avoid_burnout_in_the_tech_industry_762b9s96my.webp","2026-03-04 08:44:58.989Z",{"keywords":81,"locale":102,"school_blog":103},[82,87,92,97],{"collectionId":12,"collectionName":13,"created":83,"created_by":15,"id":84,"name":85,"updated":86,"updated_by":15},"2026-03-04 08:35:12.499Z","9bexb3o9mxg9dei","Burnout","2026-06-07 06:46:27.454Z",{"collectionId":12,"collectionName":13,"created":88,"created_by":15,"id":89,"name":90,"updated":91,"updated_by":15},"2026-03-04 08:44:58.046Z","h2p9vyglxcuqfov","ชีวิตโปรแกรมเมอร์","2026-06-07 06:46:41.730Z",{"collectionId":12,"collectionName":13,"created":93,"created_by":15,"id":94,"name":95,"updated":96,"updated_by":15},"2026-03-04 08:44:58.280Z","hoxhv4dr3heikf6","โปรแกรมเมอร์หมดไฟ","2026-06-07 06:46:41.931Z",{"collectionId":12,"collectionName":13,"created":98,"created_by":15,"id":99,"name":100,"updated":101,"updated_by":15},"2026-03-04 08:44:57.697Z","rw5wz1cf9aox58p","Work-Life Balance","2026-06-07 06:46:41.636Z",{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":104,"collectionId":51,"collectionName":52,"created":53,"expand":105,"id":116,"slug":117,"updated":118,"views":119},"spm4l1k5bgmhmmt",{"category":106},{"blogIds":107,"collectionId":57,"collectionName":58,"created":108,"created_by":15,"id":104,"image":109,"image_alt":53,"image_path":110,"label":111,"name":112,"priority":113,"publish_at":114,"scheduled_at":53,"status":66,"updated":115,"updated_by":15},[],"2026-03-04 08:31:18.590Z","50hyjr6os45_ayazwr5gq7.png","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclcatblg987654321\u002Fspm4l1k5bgmhmmt\u002F50hyjr6os45_ayazwr5gq7.png",{"en":112,"th":112},"Knowledge",0,"2026-03-18 02:25:41.222Z","2026-06-07 06:45:02.533Z","sy7kac0t03r9dox","work-life-balance-for-programmers","2026-06-18 13:46:23.039Z",241,"kwwrvw3iltat93v","2025-12-22 02:12:40.992Z","การทำงานสายโปรแกรมเมอร์เต็มไปด้วยความกดดัน เดดไลน์ และการเรียนรู้ไม่สิ้นสุด บทความนี้จะพาคุณเข้าใจ Work-Life Balance สำหรับ Programmer อย่างแท้จริง พร้อมแนวคิดและวิธีดูแลตัวเอง เพื่อทำงานได้ดีโดยไม่หมดไฟในระยะยาว","2026-06-07 06:43:25.935Z",{"alt":125,"cover_image_path":126,"created":127,"expand":128,"id":164,"published_at":165,"school_blog":160,"short_description":166,"title":125,"updated":167,"slug":161,"views":163},"EP.119 สร้างระบบ Real-time Document Editing แบบ Google Docs ด้วย WebSocket และ Go","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fnyzij7kxx6kmddu\u002Fcover_image_ep_ylr3nwpk30.gWebSocketandGo.webp","2026-03-04 08:44:56.148Z",{"keywords":129,"locale":146,"school_blog":147},[130,135,136,141],{"collectionId":12,"collectionName":13,"created":131,"created_by":15,"id":132,"name":133,"updated":134,"updated_by":15},"2026-03-04 08:34:00.920Z","ecac9y661or1xka","WebSocket","2026-06-07 06:45:55.734Z",{"collectionId":12,"collectionName":13,"created":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},{"collectionId":12,"collectionName":13,"created":137,"created_by":15,"id":138,"name":139,"updated":140,"updated_by":15},"2026-03-04 08:44:54.877Z","ype7kkszqa7py9n","Real-time Document","2026-06-07 06:46:41.155Z",{"collectionId":12,"collectionName":13,"created":142,"created_by":15,"id":143,"name":144,"updated":145,"updated_by":15},"2026-03-04 08:44:54.550Z","dhhilrqrpmtr3x7","Google Docs","2026-06-07 06:46:41.069Z",{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":148,"collectionId":51,"collectionName":52,"created":53,"expand":149,"id":160,"slug":161,"updated":162,"views":163},"wqxt7ag2gn7xcmk",{"category":150},{"blogIds":151,"collectionId":57,"collectionName":58,"created":152,"created_by":15,"id":148,"image":153,"image_alt":53,"image_path":154,"label":155,"name":156,"priority":157,"publish_at":158,"scheduled_at":53,"status":66,"updated":159,"updated_by":15},[],"2026-03-04 08:33:53.210Z","59ty92ns80w_15oc1implw.png","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclcatblg987654321\u002Fwqxt7ag2gn7xcmk\u002F59ty92ns80w_15oc1implw.png",{"en":156,"th":156},"Golang The Series",1,"2026-03-16 04:39:38.440Z","2026-06-07 06:45:03.856Z","nez2cwex9p6we4q","realtime-document-editing-with-go-websocket","2026-05-26 19:25:14.652Z",243,"nyzij7kxx6kmddu","2025-12-22 02:12:35.702Z","เรียนรู้การพัฒนาระบบแก้ไขเอกสารแบบหลายคนพร้อมกันแบบ Real-time ด้วย Go และ WebSocket พร้อมแนวคิดจัดการ Conflict และ Version Control","2026-06-07 06:43:25.293Z",{"alt":169,"cover_image_path":170,"created":171,"expand":172,"id":201,"published_at":202,"school_blog":197,"short_description":203,"title":169,"updated":204,"slug":198,"views":200},"EP.118 การสร้างระบบ AI + WebSocket สำหรับ IoT แบบเรียลไทม์","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fusojgv4mbo51ee9\u002Fcover_image_ep_5u7zo3et9b.emforIoTDevices.webp","2026-03-04 08:44:57.441Z",{"keywords":173,"locale":191,"school_blog":192},[174,175,180,181,186],{"collectionId":12,"collectionName":13,"created":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},{"collectionId":12,"collectionName":13,"created":176,"created_by":15,"id":177,"name":178,"updated":179,"updated_by":15},"2026-03-04 08:44:56.136Z","1ant8hjpcxuj8a2","IoT","2026-06-07 06:46:41.338Z",{"collectionId":12,"collectionName":13,"created":131,"created_by":15,"id":132,"name":133,"updated":134,"updated_by":15},{"collectionId":12,"collectionName":13,"created":182,"created_by":15,"id":183,"name":184,"updated":185,"updated_by":15},"2026-03-04 08:31:29.142Z","hrqdq7kjl5lzjmi","AI","2026-06-07 06:45:27.147Z",{"collectionId":12,"collectionName":13,"created":187,"created_by":15,"id":188,"name":189,"updated":190,"updated_by":15},"2026-03-04 08:44:49.054Z","vbjgbr5ah0kh43p","Real-time System","2026-06-07 06:46:39.270Z",{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":148,"collectionId":51,"collectionName":52,"created":53,"expand":193,"id":197,"slug":198,"updated":199,"views":200},{"category":194},{"blogIds":195,"collectionId":57,"collectionName":58,"created":152,"created_by":15,"id":148,"image":153,"image_alt":53,"image_path":154,"label":196,"name":156,"priority":157,"publish_at":158,"scheduled_at":53,"status":66,"updated":159,"updated_by":15},[],{"en":156,"th":156},"3wlgaoume77bwtm","golang-ep118-ai-websocket-iot-real-time","2026-06-01 18:25:26.840Z",253,"usojgv4mbo51ee9","2025-12-22 02:12:30.693Z","เรียนรู้การสร้างระบบ IoT อัจฉริยะด้วย Go + WebSocket ที่ผสาน AI เพื่อทำ Anomaly Detection และ Predictive Maintenance แบบเรียลไทม์ พร้อมแนวทางใช้งานจริงในระดับ Production","2026-06-07 06:43:25.541Z",{"alt":206,"cover_image_path":207,"created":208,"expand":209,"id":253,"published_at":254,"school_blog":249,"short_description":255,"title":206,"updated":256,"slug":250,"views":252},"ไขความลับ \"Nano Banana\": ทำไม AI ชื่อกล้วยๆ ถึงล้มแชมป์เก่าได้ราบคาบ?","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fndyl8vxkneahr45\u002Fdigital_glowing_banana_graphic_representing_nano_banana_the_codename_for_google_s_new_gemini_image_m_4di09vp1hq.webp","2026-03-04 08:45:01.197Z",{"keywords":210,"locale":236,"school_blog":237},[211,216,221,226,231],{"collectionId":12,"collectionName":13,"created":212,"created_by":15,"id":213,"name":214,"updated":215,"updated_by":15},"2026-03-04 08:44:59.347Z","zx9l4eq448df98a","Gemini AI","2026-06-07 06:46:42.128Z",{"collectionId":12,"collectionName":13,"created":217,"created_by":15,"id":218,"name":219,"updated":220,"updated_by":15},"2026-03-04 08:45:00.090Z","yxvyznmahwofbr4","Gemini Image Generation","2026-06-07 06:46:42.509Z",{"collectionId":12,"collectionName":13,"created":222,"created_by":15,"id":223,"name":224,"updated":225,"updated_by":15},"2026-03-04 08:45:00.752Z","2c5b5bcrxk9qvpy","สร้างภาพด้วย AI","2026-06-07 06:46:42.777Z",{"collectionId":12,"collectionName":13,"created":227,"created_by":15,"id":228,"name":229,"updated":230,"updated_by":15},"2026-03-04 08:44:59.765Z","51knaqayw5mn73i","Google Gemini","2026-06-07 06:46:42.374Z",{"collectionId":12,"collectionName":13,"created":232,"created_by":15,"id":233,"name":234,"updated":235,"updated_by":15},"2026-03-04 08:45:00.498Z","21720ewj4b2qmja","Nano Banana","2026-06-07 06:46:42.647Z",{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":238,"collectionId":51,"collectionName":52,"created":53,"expand":239,"id":249,"slug":250,"updated":251,"views":252},"pkuzfil3b4ug2ea",{"category":240},{"blogIds":241,"collectionId":57,"collectionName":58,"created":242,"created_by":15,"id":238,"image":243,"image_alt":53,"image_path":244,"label":245,"name":246,"priority":113,"publish_at":247,"scheduled_at":53,"status":66,"updated":248,"updated_by":15},[],"2026-03-04 08:31:47.860Z","3w9eadde0ql_vquww3nx7o.png","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclcatblg987654321\u002Fpkuzfil3b4ug2ea\u002F3w9eadde0ql_vquww3nx7o.png",{"en":246,"th":246},"Cutting-Edge Tech","2025-01-27 08:43:38.395Z","2026-06-07 06:45:02.895Z","r41jxqt4x4t621a","nano-banana-google-gemini-ai-reveal","2026-06-22 21:07:10.664Z",277,"ndyl8vxkneahr45","2025-12-17 11:47:04.517Z","เจาะลึกเบื้องหลัง \"Nano Banana\" ชื่อลับของ Gemini Image Model ที่เอาชนะ Midjourney ในการทดสอบ Blind Test ด้วยฟีเจอร์เขียนข้อความแม่นยำและความเข้าใจบริบทระดับเทพ พร้อมวิธีใช้งานจริง","2026-06-07 06:43:26.073Z",{"alt":258,"cover_image_path":259,"created":260,"expand":261,"id":285,"published_at":286,"school_blog":281,"short_description":287,"title":258,"updated":288,"slug":282,"views":284},"JS2GO EP.47 Dependency Injection ใน Go และ Node.js: ทำไมระบบใหญ่ต้องมี DI?","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F89duht4c5ae6qrn\u002Fcover_image_js2_go_ep_47_dependency_injection_in_go_and_node_hehykg0srq.geSystemsNeedDI.webp","2026-03-04 08:45:02.070Z",{"keywords":262,"locale":275,"school_blog":276},[263,268,273,274],{"collectionId":12,"collectionName":13,"created":264,"created_by":15,"id":265,"name":266,"updated":267,"updated_by":15},"2026-03-04 08:45:01.083Z","anx8rod7y41shjl","Clean Architecture","2026-06-07 06:46:42.927Z",{"collectionId":12,"collectionName":13,"created":269,"created_by":15,"id":270,"name":271,"updated":272,"updated_by":15},"2026-03-04 08:45:01.460Z","bbwe2jz83qa1d1j","Dependency Injection","2026-06-07 06:46:43.035Z",{"collectionId":12,"collectionName":13,"created":25,"created_by":15,"id":26,"name":27,"updated":28,"updated_by":15},{"collectionId":12,"collectionName":13,"created":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":50,"collectionId":51,"collectionName":52,"created":53,"expand":277,"id":281,"slug":282,"updated":283,"views":284},{"category":278},{"blogIds":279,"collectionId":57,"collectionName":58,"created":59,"created_by":15,"id":50,"image":60,"image_alt":53,"image_path":61,"label":280,"name":63,"priority":64,"publish_at":65,"scheduled_at":53,"status":66,"updated":67,"updated_by":15},[],{"en":63,"th":63},"i20pcnin578firk","js2go-ep47-dependency-injection-go-nodejs","2026-06-23 02:44:29.685Z",259,"89duht4c5ae6qrn","2025-12-17 02:25:59.478Z","DI คือเทคนิคสำคัญที่ช่วยให้ระบบทดสอบง่าย ลดการผูกติดกันของโค้ด และปรับเปลี่ยน implementation ได้โดยไม่กระทบส่วนอื่น บทความนี้อธิบายแนวคิด DI พร้อมโค้ดตัวอย่างใน Go (pgx\u002FGORM) และ Node.js รวมถึงวิธีทำให้ระบบพร้อมสำหรับ Production จริง","2026-06-07 06:43:26.371Z",{"alt":290,"cover_image_path":291,"created":292,"expand":293,"id":317,"published_at":318,"school_blog":313,"short_description":319,"title":290,"updated":320,"slug":314,"views":316},"JS2GO EP.46 การสร้าง Middleware และ Modular Architecture ใน Go และ Node.js","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fddfdxscguz1ldsl\u002Fcover_image_js2_go_ep_46_building_middleware_and_modular_architecture_in_go_and_node_exrof0jwyi.js.webp","2026-03-04 08:45:03.591Z",{"keywords":294,"locale":307,"school_blog":308},[295,296,297,302],{"collectionId":12,"collectionName":13,"created":25,"created_by":15,"id":26,"name":27,"updated":28,"updated_by":15},{"collectionId":12,"collectionName":13,"created":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},{"collectionId":12,"collectionName":13,"created":298,"created_by":15,"id":299,"name":300,"updated":301,"updated_by":15},"2026-03-04 08:45:02.900Z","12i9ika4aocvtm5","Modular Architecture","2026-06-07 06:46:43.146Z",{"collectionId":12,"collectionName":13,"created":303,"created_by":15,"id":304,"name":305,"updated":306,"updated_by":15},"2026-03-04 08:34:25.436Z","bctyeonwhcrzvq3","Middleware","2026-06-07 06:46:06.743Z",{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":50,"collectionId":51,"collectionName":52,"created":53,"expand":309,"id":313,"slug":314,"updated":315,"views":316},{"category":310},{"blogIds":311,"collectionId":57,"collectionName":58,"created":59,"created_by":15,"id":50,"image":60,"image_alt":53,"image_path":61,"label":312,"name":63,"priority":64,"publish_at":65,"scheduled_at":53,"status":66,"updated":67,"updated_by":15},[],{"en":63,"th":63},"06v021j7mqri9t7","js2go-ep46-middleware-modular-architecture-go-nodejs","2026-06-07 21:08:22.260Z",254,"ddfdxscguz1ldsl","2025-12-17 02:25:26.894Z","เรียนรู้การสร้าง Middleware (Auth, Logging, Rate Limit) และออกแบบ Modular Architecture แบบองค์กรใน Go และ Node.js พร้อมตัวอย่างโค้ด Fiber + Express และ Best Practices ที่ใช้จริงในระบบ Production","2026-06-07 06:43:26.644Z",{"alt":322,"cover_image_path":323,"created":324,"expand":325,"id":345,"published_at":346,"school_blog":341,"short_description":347,"title":322,"updated":348,"slug":342,"views":344},"EP.117 การเชื่อมต่อ IoT Device หลายตัวด้วย WebSocket (Real-time IoT Network)","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F6geyjq1575qgjai\u002Fcover_image_ep_gg70n9zn2d.-timeIoTNetwork.webp","2026-03-04 08:45:04.567Z",{"keywords":326,"locale":335,"school_blog":336},[327,332,333,334],{"collectionId":12,"collectionName":13,"created":328,"created_by":15,"id":329,"name":330,"updated":331,"updated_by":15},"2026-03-04 08:44:49.445Z","0ips6v3gj6yy1h7","ระบบเรียลไทม์","2026-06-07 06:46:39.574Z",{"collectionId":12,"collectionName":13,"created":176,"created_by":15,"id":177,"name":178,"updated":179,"updated_by":15},{"collectionId":12,"collectionName":13,"created":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},{"collectionId":12,"collectionName":13,"created":131,"created_by":15,"id":132,"name":133,"updated":134,"updated_by":15},{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":148,"collectionId":51,"collectionName":52,"created":53,"expand":337,"id":341,"slug":342,"updated":343,"views":344},{"category":338},{"blogIds":339,"collectionId":57,"collectionName":58,"created":152,"created_by":15,"id":148,"image":153,"image_alt":53,"image_path":154,"label":340,"name":156,"priority":157,"publish_at":158,"scheduled_at":53,"status":66,"updated":159,"updated_by":15},[],{"en":156,"th":156},"nboyiqnzglp5uh7","ep117-iot-multi-device-websocket","2026-06-14 08:59:26.973Z",215,"6geyjq1575qgjai","2025-12-15 01:58:37.695Z","เรียนรู้การสร้างระบบ IoT แบบ Real-time ด้วย Go และ WebSocket ที่รองรับอุปกรณ์หลายตัวพร้อมกัน พร้อมแนวทาง Authentication, Bandwidth Management และการขยายระบบให้รองรับอุปกรณ์นับหมื่น","2026-06-07 06:43:27.119Z",{"alt":350,"cover_image_path":351,"created":352,"expand":353,"id":387,"published_at":388,"school_blog":383,"short_description":389,"title":350,"updated":390,"slug":384,"views":386},"EP.116 การเพิ่มฟีเจอร์ Voice\u002FVideo แบบเรียลไทม์ด้วย WebRTC + WebSocket Signaling","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fvkhrndyjxf6sakd\u002Fcover_image_ep_kpibg1eae8.etSignalinginGo.webp","2026-03-04 08:45:06.410Z",{"keywords":354,"locale":377,"school_blog":378},[355,360,361,366,371,372],{"collectionId":12,"collectionName":13,"created":356,"created_by":15,"id":357,"name":358,"updated":359,"updated_by":15},"2026-03-04 08:45:05.836Z","37t2tvjs3vvty3x","WebRTC","2026-06-07 06:46:43.723Z",{"collectionId":12,"collectionName":13,"created":131,"created_by":15,"id":132,"name":133,"updated":134,"updated_by":15},{"collectionId":12,"collectionName":13,"created":362,"created_by":15,"id":363,"name":364,"updated":365,"updated_by":15},"2026-03-04 08:45:05.158Z","836if8oqwpocqe3","Voice Chat","2026-06-07 06:46:43.489Z",{"collectionId":12,"collectionName":13,"created":367,"created_by":15,"id":368,"name":369,"updated":370,"updated_by":15},"2026-03-04 08:45:04.918Z","2oi71a8zf6vf68l","Video Call","2026-06-07 06:46:43.246Z",{"collectionId":12,"collectionName":13,"created":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},{"collectionId":12,"collectionName":13,"created":373,"created_by":15,"id":374,"name":375,"updated":376,"updated_by":15},"2026-03-04 08:45:05.632Z","cof4vbc2ts3emn3","WebSocket Signaling","2026-06-07 06:46:43.558Z",{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":148,"collectionId":51,"collectionName":52,"created":53,"expand":379,"id":383,"slug":384,"updated":385,"views":386},{"category":380},{"blogIds":381,"collectionId":57,"collectionName":58,"created":152,"created_by":15,"id":148,"image":153,"image_alt":53,"image_path":154,"label":382,"name":156,"priority":157,"publish_at":158,"scheduled_at":53,"status":66,"updated":159,"updated_by":15},[],{"en":156,"th":156},"9u83c9b4adi7p6e","ep116-realtime-voice-video-webrtc-websocket-go","2026-06-04 08:54:22.325Z",264,"vkhrndyjxf6sakd","2025-12-15 01:58:16.309Z","เรียนรู้วิธีสร้างระบบ Video Call และ Voice Chat แบบเรียลไทม์ด้วย WebRTC และ WebSocket Signaling ในภาษา Go พร้อมโค้ดตัวอย่างและแนวทางการออกแบบระบบระดับ Production","2026-06-07 06:43:27.528Z",{"alt":392,"cover_image_path":393,"created":394,"expand":395,"id":439,"published_at":440,"school_blog":435,"short_description":441,"title":442,"updated":443,"slug":436,"views":438},"Docker Compose คืออะไร? เครื่องมือสำคัญที่โปรแกรมเมอร์ยุคใหม่ต้องรู้","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fhbhtvcn6m4zvtaf\u002Fcover_image_what_is_docker_compose_the_essential_tool_for_modern_developers_clkznj0vwv.webp","2026-03-04 08:45:07.426Z",{"keywords":396,"locale":422,"school_blog":423},[397,402,407,412,417],{"collectionId":12,"collectionName":13,"created":398,"created_by":15,"id":399,"name":400,"updated":401,"updated_by":15},"2026-03-04 08:35:11.709Z","ga2eo1rr4uw66mu","DevOps","2026-06-07 06:46:27.244Z",{"collectionId":12,"collectionName":13,"created":403,"created_by":15,"id":404,"name":405,"updated":406,"updated_by":15},"2026-03-04 08:45:06.613Z","mel6m5brnjq2zmy","Multi-container","2026-06-07 06:46:44.026Z",{"collectionId":12,"collectionName":13,"created":408,"created_by":15,"id":409,"name":410,"updated":411,"updated_by":15},"2026-03-04 08:26:56.612Z","yf74wkqyamfc5qx","โปรแกรมเมอร์","2026-06-07 06:45:20.920Z",{"collectionId":12,"collectionName":13,"created":413,"created_by":15,"id":414,"name":415,"updated":416,"updated_by":15},"2026-03-04 08:45:06.433Z","h61cls1b4isvvvx","Docker Compose","2026-06-07 06:46:43.945Z",{"collectionId":12,"collectionName":13,"created":418,"created_by":15,"id":419,"name":420,"updated":421,"updated_by":15},"2026-03-04 08:44:18.652Z","jr5zczy6qrxmd88","Docker","2026-06-07 06:46:30.990Z",{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":424,"collectionId":51,"collectionName":52,"created":53,"expand":425,"id":435,"slug":436,"updated":437,"views":438},"jwhmeg2uxwz0bkp",{"category":426},{"blogIds":427,"collectionId":57,"collectionName":58,"created":428,"created_by":15,"id":424,"image":429,"image_alt":53,"image_path":430,"label":431,"name":432,"priority":113,"publish_at":433,"scheduled_at":53,"status":66,"updated":434,"updated_by":15},[],"2026-03-04 08:31:40.635Z","1qt33a4n2u3_lr23qy62xh.png","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclcatblg987654321\u002Fjwhmeg2uxwz0bkp\u002F1qt33a4n2u3_lr23qy62xh.png",{"en":432,"th":432},"Tools & Resources","2025-01-31 09:55:27.001Z","2026-06-07 06:45:02.778Z","myt8jk36cr4iuqn","what-is-docker-compose-essential-tool-for-developers","2026-06-18 13:37:39.515Z",409,"hbhtvcn6m4zvtaf","2025-12-12 02:47:35.017Z","เรียนรู้ Docker Compose เครื่องมือจัดการ Multi-container ที่สำคัญที่สุดสำหรับโปรแกรมเมอร์และ DevOps สรุปวิธีการทำงาน พร้อมตัวอย่างไฟล์ docker-compose.yml ที่ทำให้การพัฒนาซอฟต์แวร์ง่ายขึ้นหลายเท่าตัว!","Docker Compose คืออะไร? เครื่องมือสำคัญที่โปรแกรมเมอร์ต้องรู้","2026-06-07 06:43:27.761Z",{"alt":445,"cover_image_path":446,"created":447,"expand":448,"id":478,"published_at":479,"school_blog":474,"short_description":480,"title":445,"updated":481,"slug":475,"views":477},"JS2GO EP.45 การจัดการ Transactions และ ACID ใน Go และ JavaScript","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F4buexxrk2sagdet\u002Fcover_image_js2_go_ep_dfqdfnfoh9.nGovsJavaScript.webp","2026-03-04 08:45:08.122Z",{"keywords":449,"locale":468,"school_blog":469},[450,451,452,457,458,463],{"collectionId":12,"collectionName":13,"created":25,"created_by":15,"id":26,"name":27,"updated":28,"updated_by":15},{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},{"collectionId":12,"collectionName":13,"created":453,"created_by":15,"id":454,"name":455,"updated":456,"updated_by":15},"2026-03-04 08:20:14.253Z","ah6lvy4x8qe08l5","Golang","2026-06-07 06:45:08.193Z",{"collectionId":12,"collectionName":13,"created":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},{"collectionId":12,"collectionName":13,"created":459,"created_by":15,"id":460,"name":461,"updated":462,"updated_by":15},"2026-03-04 08:45:07.600Z","k7yaeiuxv1skqiy","ACID","2026-06-07 06:46:44.234Z",{"collectionId":12,"collectionName":13,"created":464,"created_by":15,"id":465,"name":466,"updated":467,"updated_by":15},"2026-03-04 08:45:07.399Z","72jmv19z0d4abka","Transactions","2026-06-07 06:46:44.128Z",{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":50,"collectionId":51,"collectionName":52,"created":53,"expand":470,"id":474,"slug":475,"updated":476,"views":477},{"category":471},{"blogIds":472,"collectionId":57,"collectionName":58,"created":59,"created_by":15,"id":50,"image":60,"image_alt":53,"image_path":61,"label":473,"name":63,"priority":64,"publish_at":65,"scheduled_at":53,"status":66,"updated":67,"updated_by":15},[],{"en":63,"th":63},"bk7k4smwq526one","js2go-ep45-transaction-acid-go-vs-javascript","2026-06-22 03:52:47.559Z",235,"4buexxrk2sagdet","2025-12-08 07:52:14.487Z","เรียนรู้พื้นฐานสำคัญของ Transaction, ACID, Deadlock, Isolation Level และวิธีทำธุรกรรมให้ถูกต้องในระบบ Production พร้อมตัวอย่างโค้ด Go (pgx\u002FGORM) และ Node.js (pg) ที่ใช้งานได้จริง","2026-06-07 06:43:28.011Z",{"alt":483,"cover_image_path":484,"created":485,"expand":486,"id":516,"published_at":517,"school_blog":512,"short_description":518,"title":483,"updated":519,"slug":513,"views":515},"JS2GO EP.44 การเชื่อมต่อ Database: SQL & NoSQL ใน JavaScript และ Go","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fy8ql3s3zg33thzx\u002Fcover_image_js2_go_ep_i85wxvw0ej.JavaScriptandGo.webp","2026-03-04 08:45:10.183Z",{"keywords":487,"locale":506,"school_blog":507},[488,489,494,495,500,501],{"collectionId":12,"collectionName":13,"created":25,"created_by":15,"id":26,"name":27,"updated":28,"updated_by":15},{"collectionId":12,"collectionName":13,"created":490,"created_by":15,"id":491,"name":492,"updated":493,"updated_by":15},"2026-03-04 08:45:08.439Z","wscthqnz8vx2sox","PostgreSQL","2026-06-07 06:46:44.506Z",{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},{"collectionId":12,"collectionName":13,"created":496,"created_by":15,"id":497,"name":498,"updated":499,"updated_by":15},"2026-03-04 08:45:09.036Z","l1oi3jpol4c4ezx","Database","2026-06-07 06:46:44.684Z",{"collectionId":12,"collectionName":13,"created":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},{"collectionId":12,"collectionName":13,"created":502,"created_by":15,"id":503,"name":504,"updated":505,"updated_by":15},"2026-03-04 08:45:09.799Z","402ofda7qxj0vs0","การเชื่อมต่อฐานข้อมูล","2026-06-07 06:46:44.992Z",{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":50,"collectionId":51,"collectionName":52,"created":53,"expand":508,"id":512,"slug":513,"updated":514,"views":515},{"category":509},{"blogIds":510,"collectionId":57,"collectionName":58,"created":59,"created_by":15,"id":50,"image":60,"image_alt":53,"image_path":61,"label":511,"name":63,"priority":64,"publish_at":65,"scheduled_at":53,"status":66,"updated":67,"updated_by":15},[],{"en":63,"th":63},"80o1aimylbrt97t","js2go-ep44-database-connection-sql-nosql-javascript-go","2026-06-19 22:24:57.918Z",227,"y8ql3s3zg33thzx","2025-12-08 07:51:54.211Z","สรุปวิธีเชื่อมต่อ PostgreSQL, MySQL, MongoDB และ Redis ใน JavaScript และ Go พร้อมตัวอย่างโค้ดจริง การตั้งค่า Connection Pool, การเลือก ORM\u002FQuery Builder และ Best Practices ที่ต้องรู้ก่อนขึ้นระบบ Production","2026-06-07 06:43:28.285Z",8,12,432,36]