[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"academy-blogs-th-9-12-Tailwind%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252520CSS-all-all-createdAt:desc-default":3},{"data":4,"page":510,"perPage":511,"totalItems":512,"totalPages":513},[5,71,108,161,205,236,264,306,359,401,439,477],{"alt":6,"cover_image_path":7,"created":8,"expand":9,"id":67,"published_at":68,"school_blog":63,"short_description":69,"title":6,"updated":70,"slug":64,"views":66},"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":10,"locale":34,"school_blog":44},[11,19,24,29],{"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:34:00.920Z","76qprkevbgfdps8","ecac9y661or1xka","WebSocket","2026-06-07 06:45:55.734Z",{"collectionId":12,"collectionName":13,"created":20,"created_by":15,"id":21,"name":22,"updated":23,"updated_by":15},"2026-03-04 08:20:11.547Z","ey3puyme01a9bsw","Go","2026-06-07 06:45:07.798Z",{"collectionId":12,"collectionName":13,"created":25,"created_by":15,"id":26,"name":27,"updated":28,"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":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},"2026-03-04 08:44:54.550Z","dhhilrqrpmtr3x7","Google Docs","2026-06-07 06:46:41.069Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},"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":45,"collectionId":46,"collectionName":47,"created":48,"expand":49,"id":63,"slug":64,"updated":65,"views":66},"wqxt7ag2gn7xcmk","pbc_2105096300","school_blogs","",{"category":50},{"blogIds":51,"collectionId":52,"collectionName":53,"created":54,"created_by":15,"id":45,"image":55,"image_alt":48,"image_path":56,"label":57,"name":58,"priority":59,"publish_at":60,"scheduled_at":48,"status":61,"updated":62,"updated_by":15},[],"sclcatblg987654321","school_category_blogs","2026-03-04 08:33:53.210Z","59ty92ns80w_15oc1implw.png","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclcatblg987654321\u002Fwqxt7ag2gn7xcmk\u002F59ty92ns80w_15oc1implw.png",{"en":58,"th":58},"Golang The Series",1,"2026-03-16 04:39:38.440Z","published","2026-06-07 06:45:03.856Z","nez2cwex9p6we4q","realtime-document-editing-with-go-websocket","2026-07-01 17:24:39.715Z",246,"nyzij7kxx6kmddu","2025-12-22 02:12:35.702Z","เรียนรู้การพัฒนาระบบแก้ไขเอกสารแบบหลายคนพร้อมกันแบบ Real-time ด้วย Go และ WebSocket พร้อมแนวคิดจัดการ Conflict และ Version Control","2026-06-07 06:43:25.293Z",{"alt":72,"cover_image_path":73,"created":74,"expand":75,"id":104,"published_at":105,"school_blog":100,"short_description":106,"title":72,"updated":107,"slug":101,"views":103},"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":76,"locale":94,"school_blog":95},[77,78,83,84,89],{"collectionId":12,"collectionName":13,"created":20,"created_by":15,"id":21,"name":22,"updated":23,"updated_by":15},{"collectionId":12,"collectionName":13,"created":79,"created_by":15,"id":80,"name":81,"updated":82,"updated_by":15},"2026-03-04 08:44:56.136Z","1ant8hjpcxuj8a2","IoT","2026-06-07 06:46:41.338Z",{"collectionId":12,"collectionName":13,"created":14,"created_by":15,"id":16,"name":17,"updated":18,"updated_by":15},{"collectionId":12,"collectionName":13,"created":85,"created_by":15,"id":86,"name":87,"updated":88,"updated_by":15},"2026-03-04 08:31:29.142Z","hrqdq7kjl5lzjmi","AI","2026-06-07 06:45:27.147Z",{"collectionId":12,"collectionName":13,"created":90,"created_by":15,"id":91,"name":92,"updated":93,"updated_by":15},"2026-03-04 08:44:49.054Z","vbjgbr5ah0kh43p","Real-time System","2026-06-07 06:46:39.270Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":45,"collectionId":46,"collectionName":47,"created":48,"expand":96,"id":100,"slug":101,"updated":102,"views":103},{"category":97},{"blogIds":98,"collectionId":52,"collectionName":53,"created":54,"created_by":15,"id":45,"image":55,"image_alt":48,"image_path":56,"label":99,"name":58,"priority":59,"publish_at":60,"scheduled_at":48,"status":61,"updated":62,"updated_by":15},[],{"en":58,"th":58},"3wlgaoume77bwtm","golang-ep118-ai-websocket-iot-real-time","2026-07-03 17:23:52.340Z",256,"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":109,"cover_image_path":110,"created":111,"expand":112,"id":157,"published_at":158,"school_blog":153,"short_description":159,"title":109,"updated":160,"slug":154,"views":156},"ไขความลับ \"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":113,"locale":139,"school_blog":140},[114,119,124,129,134],{"collectionId":12,"collectionName":13,"created":115,"created_by":15,"id":116,"name":117,"updated":118,"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":120,"created_by":15,"id":121,"name":122,"updated":123,"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":125,"created_by":15,"id":126,"name":127,"updated":128,"updated_by":15},"2026-03-04 08:45:00.752Z","2c5b5bcrxk9qvpy","สร้างภาพด้วย AI","2026-06-07 06:46:42.777Z",{"collectionId":12,"collectionName":13,"created":130,"created_by":15,"id":131,"name":132,"updated":133,"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":135,"created_by":15,"id":136,"name":137,"updated":138,"updated_by":15},"2026-03-04 08:45:00.498Z","21720ewj4b2qmja","Nano Banana","2026-06-07 06:46:42.647Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":141,"collectionId":46,"collectionName":47,"created":48,"expand":142,"id":153,"slug":154,"updated":155,"views":156},"pkuzfil3b4ug2ea",{"category":143},{"blogIds":144,"collectionId":52,"collectionName":53,"created":145,"created_by":15,"id":141,"image":146,"image_alt":48,"image_path":147,"label":148,"name":149,"priority":150,"publish_at":151,"scheduled_at":48,"status":61,"updated":152,"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":149,"th":149},"Cutting-Edge Tech",0,"2025-01-27 08:43:38.395Z","2026-06-07 06:45:02.895Z","r41jxqt4x4t621a","nano-banana-google-gemini-ai-reveal","2026-07-01 19:39:19.735Z",278,"ndyl8vxkneahr45","2025-12-17 11:47:04.517Z","เจาะลึกเบื้องหลัง \"Nano Banana\" ชื่อลับของ Gemini Image Model ที่เอาชนะ Midjourney ในการทดสอบ Blind Test ด้วยฟีเจอร์เขียนข้อความแม่นยำและความเข้าใจบริบทระดับเทพ พร้อมวิธีใช้งานจริง","2026-06-07 06:43:26.073Z",{"alt":162,"cover_image_path":163,"created":164,"expand":165,"id":201,"published_at":202,"school_blog":197,"short_description":203,"title":162,"updated":204,"slug":198,"views":200},"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":166,"locale":183,"school_blog":184},[167,172,177,182],{"collectionId":12,"collectionName":13,"created":168,"created_by":15,"id":169,"name":170,"updated":171,"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":173,"created_by":15,"id":174,"name":175,"updated":176,"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":178,"created_by":15,"id":179,"name":180,"updated":181,"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":20,"created_by":15,"id":21,"name":22,"updated":23,"updated_by":15},{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":185,"collectionId":46,"collectionName":47,"created":48,"expand":186,"id":197,"slug":198,"updated":199,"views":200},"hsa1afr8fcnd6qb",{"category":187},{"blogIds":188,"collectionId":52,"collectionName":53,"created":189,"created_by":15,"id":185,"image":190,"image_alt":48,"image_path":191,"label":192,"name":193,"priority":194,"publish_at":195,"scheduled_at":48,"status":61,"updated":196,"updated_by":15},[],"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":193,"th":193},"JS2GO",10,"2025-08-11 03:41:08.820Z","2026-06-07 06:45:02.240Z","i20pcnin578firk","js2go-ep47-dependency-injection-go-nodejs","2026-06-27 17:50:32.910Z",260,"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":206,"cover_image_path":207,"created":208,"expand":209,"id":232,"published_at":233,"school_blog":229,"short_description":234,"title":206,"updated":235,"slug":230,"views":103},"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":210,"locale":223,"school_blog":224},[211,212,213,218],{"collectionId":12,"collectionName":13,"created":178,"created_by":15,"id":179,"name":180,"updated":181,"updated_by":15},{"collectionId":12,"collectionName":13,"created":20,"created_by":15,"id":21,"name":22,"updated":23,"updated_by":15},{"collectionId":12,"collectionName":13,"created":214,"created_by":15,"id":215,"name":216,"updated":217,"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":219,"created_by":15,"id":220,"name":221,"updated":222,"updated_by":15},"2026-03-04 08:34:25.436Z","bctyeonwhcrzvq3","Middleware","2026-06-07 06:46:06.743Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":185,"collectionId":46,"collectionName":47,"created":48,"expand":225,"id":229,"slug":230,"updated":231,"views":103},{"category":226},{"blogIds":227,"collectionId":52,"collectionName":53,"created":189,"created_by":15,"id":185,"image":190,"image_alt":48,"image_path":191,"label":228,"name":193,"priority":194,"publish_at":195,"scheduled_at":48,"status":61,"updated":196,"updated_by":15},[],{"en":193,"th":193},"06v021j7mqri9t7","js2go-ep46-middleware-modular-architecture-go-nodejs","2026-07-07 03:08:11.849Z","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":237,"cover_image_path":238,"created":239,"expand":240,"id":260,"published_at":261,"school_blog":256,"short_description":262,"title":237,"updated":263,"slug":257,"views":259},"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":241,"locale":250,"school_blog":251},[242,247,248,249],{"collectionId":12,"collectionName":13,"created":243,"created_by":15,"id":244,"name":245,"updated":246,"updated_by":15},"2026-03-04 08:44:49.445Z","0ips6v3gj6yy1h7","ระบบเรียลไทม์","2026-06-07 06:46:39.574Z",{"collectionId":12,"collectionName":13,"created":79,"created_by":15,"id":80,"name":81,"updated":82,"updated_by":15},{"collectionId":12,"collectionName":13,"created":20,"created_by":15,"id":21,"name":22,"updated":23,"updated_by":15},{"collectionId":12,"collectionName":13,"created":14,"created_by":15,"id":16,"name":17,"updated":18,"updated_by":15},{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":45,"collectionId":46,"collectionName":47,"created":48,"expand":252,"id":256,"slug":257,"updated":258,"views":259},{"category":253},{"blogIds":254,"collectionId":52,"collectionName":53,"created":54,"created_by":15,"id":45,"image":55,"image_alt":48,"image_path":56,"label":255,"name":58,"priority":59,"publish_at":60,"scheduled_at":48,"status":61,"updated":62,"updated_by":15},[],{"en":58,"th":58},"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":265,"cover_image_path":266,"created":267,"expand":268,"id":302,"published_at":303,"school_blog":298,"short_description":304,"title":265,"updated":305,"slug":299,"views":301},"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":269,"locale":292,"school_blog":293},[270,275,276,281,286,287],{"collectionId":12,"collectionName":13,"created":271,"created_by":15,"id":272,"name":273,"updated":274,"updated_by":15},"2026-03-04 08:45:05.836Z","37t2tvjs3vvty3x","WebRTC","2026-06-07 06:46:43.723Z",{"collectionId":12,"collectionName":13,"created":14,"created_by":15,"id":16,"name":17,"updated":18,"updated_by":15},{"collectionId":12,"collectionName":13,"created":277,"created_by":15,"id":278,"name":279,"updated":280,"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":282,"created_by":15,"id":283,"name":284,"updated":285,"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":20,"created_by":15,"id":21,"name":22,"updated":23,"updated_by":15},{"collectionId":12,"collectionName":13,"created":288,"created_by":15,"id":289,"name":290,"updated":291,"updated_by":15},"2026-03-04 08:45:05.632Z","cof4vbc2ts3emn3","WebSocket Signaling","2026-06-07 06:46:43.558Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":45,"collectionId":46,"collectionName":47,"created":48,"expand":294,"id":298,"slug":299,"updated":300,"views":301},{"category":295},{"blogIds":296,"collectionId":52,"collectionName":53,"created":54,"created_by":15,"id":45,"image":55,"image_alt":48,"image_path":56,"label":297,"name":58,"priority":59,"publish_at":60,"scheduled_at":48,"status":61,"updated":62,"updated_by":15},[],{"en":58,"th":58},"9u83c9b4adi7p6e","ep116-realtime-voice-video-webrtc-websocket-go","2026-06-27 05:16:24.975Z",265,"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":307,"cover_image_path":308,"created":309,"expand":310,"id":354,"published_at":355,"school_blog":350,"short_description":356,"title":357,"updated":358,"slug":351,"views":353},"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":311,"locale":337,"school_blog":338},[312,317,322,327,332],{"collectionId":12,"collectionName":13,"created":313,"created_by":15,"id":314,"name":315,"updated":316,"updated_by":15},"2026-03-04 08:35:11.709Z","ga2eo1rr4uw66mu","DevOps","2026-06-07 06:46:27.244Z",{"collectionId":12,"collectionName":13,"created":318,"created_by":15,"id":319,"name":320,"updated":321,"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":323,"created_by":15,"id":324,"name":325,"updated":326,"updated_by":15},"2026-03-04 08:26:56.612Z","yf74wkqyamfc5qx","โปรแกรมเมอร์","2026-06-07 06:45:20.920Z",{"collectionId":12,"collectionName":13,"created":328,"created_by":15,"id":329,"name":330,"updated":331,"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":333,"created_by":15,"id":334,"name":335,"updated":336,"updated_by":15},"2026-03-04 08:44:18.652Z","jr5zczy6qrxmd88","Docker","2026-06-07 06:46:30.990Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":339,"collectionId":46,"collectionName":47,"created":48,"expand":340,"id":350,"slug":351,"updated":352,"views":353},"jwhmeg2uxwz0bkp",{"category":341},{"blogIds":342,"collectionId":52,"collectionName":53,"created":343,"created_by":15,"id":339,"image":344,"image_alt":48,"image_path":345,"label":346,"name":347,"priority":150,"publish_at":348,"scheduled_at":48,"status":61,"updated":349,"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":347,"th":347},"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-07-03 19:21:34.054Z",412,"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":360,"cover_image_path":361,"created":362,"expand":363,"id":397,"published_at":398,"school_blog":393,"short_description":399,"title":360,"updated":400,"slug":394,"views":396},"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":364,"locale":387,"school_blog":388},[365,366,371,376,377,382],{"collectionId":12,"collectionName":13,"created":178,"created_by":15,"id":179,"name":180,"updated":181,"updated_by":15},{"collectionId":12,"collectionName":13,"created":367,"created_by":15,"id":368,"name":369,"updated":370,"updated_by":15},"2026-03-04 08:20:42.484Z","vslzz9nvv6n77cx","JavaScript","2026-06-07 06:45:10.888Z",{"collectionId":12,"collectionName":13,"created":372,"created_by":15,"id":373,"name":374,"updated":375,"updated_by":15},"2026-03-04 08:20:14.253Z","ah6lvy4x8qe08l5","Golang","2026-06-07 06:45:08.193Z",{"collectionId":12,"collectionName":13,"created":20,"created_by":15,"id":21,"name":22,"updated":23,"updated_by":15},{"collectionId":12,"collectionName":13,"created":378,"created_by":15,"id":379,"name":380,"updated":381,"updated_by":15},"2026-03-04 08:45:07.600Z","k7yaeiuxv1skqiy","ACID","2026-06-07 06:46:44.234Z",{"collectionId":12,"collectionName":13,"created":383,"created_by":15,"id":384,"name":385,"updated":386,"updated_by":15},"2026-03-04 08:45:07.399Z","72jmv19z0d4abka","Transactions","2026-06-07 06:46:44.128Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":185,"collectionId":46,"collectionName":47,"created":48,"expand":389,"id":393,"slug":394,"updated":395,"views":396},{"category":390},{"blogIds":391,"collectionId":52,"collectionName":53,"created":189,"created_by":15,"id":185,"image":190,"image_alt":48,"image_path":191,"label":392,"name":193,"priority":194,"publish_at":195,"scheduled_at":48,"status":61,"updated":196,"updated_by":15},[],{"en":193,"th":193},"bk7k4smwq526one","js2go-ep45-transaction-acid-go-vs-javascript","2026-06-27 17:50:31.882Z",236,"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":402,"cover_image_path":403,"created":404,"expand":405,"id":435,"published_at":436,"school_blog":431,"short_description":437,"title":402,"updated":438,"slug":432,"views":434},"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":406,"locale":425,"school_blog":426},[407,408,413,414,419,420],{"collectionId":12,"collectionName":13,"created":178,"created_by":15,"id":179,"name":180,"updated":181,"updated_by":15},{"collectionId":12,"collectionName":13,"created":409,"created_by":15,"id":410,"name":411,"updated":412,"updated_by":15},"2026-03-04 08:45:08.439Z","wscthqnz8vx2sox","PostgreSQL","2026-06-07 06:46:44.506Z",{"collectionId":12,"collectionName":13,"created":367,"created_by":15,"id":368,"name":369,"updated":370,"updated_by":15},{"collectionId":12,"collectionName":13,"created":415,"created_by":15,"id":416,"name":417,"updated":418,"updated_by":15},"2026-03-04 08:45:09.036Z","l1oi3jpol4c4ezx","Database","2026-06-07 06:46:44.684Z",{"collectionId":12,"collectionName":13,"created":20,"created_by":15,"id":21,"name":22,"updated":23,"updated_by":15},{"collectionId":12,"collectionName":13,"created":421,"created_by":15,"id":422,"name":423,"updated":424,"updated_by":15},"2026-03-04 08:45:09.799Z","402ofda7qxj0vs0","การเชื่อมต่อฐานข้อมูล","2026-06-07 06:46:44.992Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":185,"collectionId":46,"collectionName":47,"created":48,"expand":427,"id":431,"slug":432,"updated":433,"views":434},{"category":428},{"blogIds":429,"collectionId":52,"collectionName":53,"created":189,"created_by":15,"id":185,"image":190,"image_alt":48,"image_path":191,"label":430,"name":193,"priority":194,"publish_at":195,"scheduled_at":48,"status":61,"updated":196,"updated_by":15},[],{"en":193,"th":193},"80o1aimylbrt97t","js2go-ep44-database-connection-sql-nosql-javascript-go","2026-07-08 11:27:06.789Z",229,"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",{"alt":440,"cover_image_path":441,"created":442,"expand":443,"id":473,"published_at":474,"school_blog":469,"short_description":475,"title":440,"updated":476,"slug":470,"views":472},"EP.114 การจัดการ Multi-device & Multi-session สำหรับ WebSocket Server","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F3ijessvp7wgttqd\u002Fcover_image_ep_ozojn2qh39.ebSocketSystems.webp","2026-03-04 08:45:11.857Z",{"keywords":444,"locale":463,"school_blog":464},[445,450,451,452,457,462],{"collectionId":12,"collectionName":13,"created":446,"created_by":15,"id":447,"name":448,"updated":449,"updated_by":15},"2026-03-04 08:44:48.724Z","s6xhnfomy7n5ycp","WebSocket Server","2026-06-07 06:46:39.070Z",{"collectionId":12,"collectionName":13,"created":90,"created_by":15,"id":91,"name":92,"updated":93,"updated_by":15},{"collectionId":12,"collectionName":13,"created":20,"created_by":15,"id":21,"name":22,"updated":23,"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:45:11.216Z","4pcpc8j9lxwki40","Multi-session","2026-06-07 06:46:45.378Z",{"collectionId":12,"collectionName":13,"created":458,"created_by":15,"id":459,"name":460,"updated":461,"updated_by":15},"2026-03-04 08:45:11.536Z","dam2zlrgu9l1qrd","Multi-device","2026-06-07 06:46:45.580Z",{"collectionId":12,"collectionName":13,"created":14,"created_by":15,"id":16,"name":17,"updated":18,"updated_by":15},{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":45,"collectionId":46,"collectionName":47,"created":48,"expand":465,"id":469,"slug":470,"updated":471,"views":472},{"category":466},{"blogIds":467,"collectionId":52,"collectionName":53,"created":54,"created_by":15,"id":45,"image":55,"image_alt":48,"image_path":56,"label":468,"name":58,"priority":59,"publish_at":60,"scheduled_at":48,"status":61,"updated":62,"updated_by":15},[],{"en":58,"th":58},"wzoz7l3fkolypwa","ep114-multi-device-multi-session-websocket","2026-06-13 09:20:54.602Z",271,"3ijessvp7wgttqd","2025-12-08 03:47:51.843Z","เรียนรู้การออกแบบระบบ WebSocket ที่รองรับผู้ใช้ 1 คนเข้าใช้งานหลายอุปกรณ์พร้อมกันอย่างเสถียร ปลอดภัย และซิงก์ข้อมูลแบบเรียลไทม์ พร้อมตัวอย่างโค้ด Go และแนวทางระดับ Production","2026-06-07 06:43:28.743Z",{"alt":478,"cover_image_path":479,"created":480,"expand":481,"id":506,"published_at":507,"school_blog":502,"short_description":508,"title":478,"updated":509,"slug":503,"views":505},"EP.115 การใช้ WebSocket ในระบบ Multiplayer Game ขั้นสูง (Advanced Multiplayer Game System)","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fghutpdhsg8a4psb\u002Fcover_image_ep_4l3pq7n7eo.bSocketinGolang.webp","2026-03-04 08:45:10.850Z",{"keywords":482,"locale":496,"school_blog":497},[483,488,489,490,491],{"collectionId":12,"collectionName":13,"created":484,"created_by":15,"id":485,"name":486,"updated":487,"updated_by":15},"2026-03-04 08:45:10.623Z","2zhfdpu8sy1xeju","Golang WebSocket","2026-06-07 06:46:45.080Z",{"collectionId":12,"collectionName":13,"created":372,"created_by":15,"id":373,"name":374,"updated":375,"updated_by":15},{"collectionId":12,"collectionName":13,"created":14,"created_by":15,"id":16,"name":17,"updated":18,"updated_by":15},{"collectionId":12,"collectionName":13,"created":20,"created_by":15,"id":21,"name":22,"updated":23,"updated_by":15},{"collectionId":12,"collectionName":13,"created":492,"created_by":15,"id":493,"name":494,"updated":495,"updated_by":15},"2026-03-04 08:45:09.425Z","75vnd9vtdgbgcsr","Multiplayer Game","2026-06-07 06:46:44.768Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":45,"collectionId":46,"collectionName":47,"created":48,"expand":498,"id":502,"slug":503,"updated":504,"views":505},{"category":499},{"blogIds":500,"collectionId":52,"collectionName":53,"created":54,"created_by":15,"id":45,"image":55,"image_alt":48,"image_path":56,"label":501,"name":58,"priority":59,"publish_at":60,"scheduled_at":48,"status":61,"updated":62,"updated_by":15},[],{"en":58,"th":58},"9o11ptzo0838b9r","ep115-websocket-multiplayer-game-advanced","2026-06-30 02:51:14.649Z",244,"ghutpdhsg8a4psb","2025-12-08 02:13:56.236Z","เรียนรู้การออกแบบ Multiplayer Game แบบเรียลไทม์ด้วย Go และ WebSocket ตั้งแต่ Player Sync, Position Update, Event Broadcast, Room Architecture ไปจนถึงเทคนิคลด Latency และแนวทางระดับ Production สำหรับเกมหลายผู้เล่น","2026-06-07 06:43:28.600Z",9,12,442,37]