[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"academy-blogs-th-8-12-Web%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252520Development-all-all-createdAt:desc-default":3},{"data":4,"page":515,"perPage":516,"totalItems":517,"totalPages":518},[5,76,129,170,204,236,290,326,366,398,431,483],{"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},"Git สำหรับผู้เริ่มต้น: เข้าใจ Add, Commit, Push แบบเห็นภาพ ไม่ต้องท่องจำ","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F0nq4jactw3ay5um\u002Finfographic_showing_git_workflow_working_directory_staging_area_and_local_repository_xretq2u7fp.webp","2026-03-04 08:44:47.152Z",{"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:36.134Z","76qprkevbgfdps8","pg679bitpkii9vv","Git","2026-06-07 06:46:36.158Z",{"collectionId":12,"collectionName":13,"created":20,"created_by":15,"id":21,"name":22,"updated":23,"updated_by":15},"2026-03-04 08:44:45.516Z","3nmqs1jfzhl7unv","สอน Git","2026-06-07 06:46:38.371Z",{"collectionId":12,"collectionName":13,"created":25,"created_by":15,"id":26,"name":27,"updated":28,"updated_by":15},"2026-03-04 08:44:45.738Z","zii0fvxs1ygxi1r","Git สำหรับมือใหม่","2026-06-07 06:46:38.466Z",{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},"2026-03-04 08:44:46.125Z","reeulx12kt2xrmk","พื้นฐาน Git","2026-06-07 06:46:38.568Z",{"collectionId":12,"collectionName":13,"created":35,"created_by":15,"id":36,"name":37,"updated":38,"updated_by":15},"2026-03-04 08:44:35.619Z","9z8e1xfjt07e7n9","Git Workflow","2026-06-07 06:46:35.800Z",{"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},"spm4l1k5bgmhmmt","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:31:18.590Z","50hyjr6os45_ayazwr5gq7.png","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclcatblg987654321\u002Fspm4l1k5bgmhmmt\u002F50hyjr6os45_ayazwr5gq7.png",{"en":63,"th":63},"Knowledge",0,"2026-03-18 02:25:41.222Z","published","2026-06-07 06:45:02.533Z","8ljoi174s3n7xdv","git-for-beginners-visual-guide","2026-06-29 05:17:25.725Z",282,"0nq4jactw3ay5um","2025-12-30 10:31:28.406Z","เลิกตั้งชื่อไฟล์ Project_Final ได้แล้ว! มาทำความเข้าใจพื้นฐาน Git ผ่านภาพจำที่เข้าใจง่าย เรียนรู้ขั้นตอน Add, Commit และ Push แบบโปรแกรมเมอร์มืออาชีพ","2026-06-07 06:43:22.517Z",{"alt":77,"cover_image_path":78,"created":79,"expand":80,"id":125,"published_at":126,"school_blog":121,"short_description":127,"title":77,"updated":128,"slug":122,"views":124},"EP.123 Load Balancing & Sticky Sessions สำหรับ WebSocket (Production-Ready Guide)","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F9jkgoya0lc1xyon\u002Fcover_image_ep_gqh5x2ytmj.onsforWebSocket.webp","2026-03-04 08:44:49.572Z",{"keywords":81,"locale":107,"school_blog":108},[82,87,92,97,102],{"collectionId":12,"collectionName":13,"created":83,"created_by":15,"id":84,"name":85,"updated":86,"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":88,"created_by":15,"id":89,"name":90,"updated":91,"updated_by":15},"2026-03-04 08:20:11.547Z","ey3puyme01a9bsw","Go","2026-06-07 06:45:07.798Z",{"collectionId":12,"collectionName":13,"created":93,"created_by":15,"id":94,"name":95,"updated":96,"updated_by":15},"2026-03-04 08:34:10.799Z","m3qoswhgnc4c38n","Kubernetes","2026-06-07 06:46:00.116Z",{"collectionId":12,"collectionName":13,"created":98,"created_by":15,"id":99,"name":100,"updated":101,"updated_by":15},"2026-03-04 08:44:49.054Z","vbjgbr5ah0kh43p","Real-time System","2026-06-07 06:46:39.270Z",{"collectionId":12,"collectionName":13,"created":103,"created_by":15,"id":104,"name":105,"updated":106,"updated_by":15},"2026-03-04 08:20:14.253Z","ah6lvy4x8qe08l5","Golang","2026-06-07 06:45:08.193Z",{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":109,"collectionId":51,"collectionName":52,"created":53,"expand":110,"id":121,"slug":122,"updated":123,"views":124},"wqxt7ag2gn7xcmk",{"category":111},{"blogIds":112,"collectionId":57,"collectionName":58,"created":113,"created_by":15,"id":109,"image":114,"image_alt":53,"image_path":115,"label":116,"name":117,"priority":118,"publish_at":119,"scheduled_at":53,"status":66,"updated":120,"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":117,"th":117},"Golang The Series",1,"2026-03-16 04:39:38.440Z","2026-06-07 06:45:03.856Z","rr43ycru4104v7f","ep-123-load-balancing-sticky-sessions-websocket","2026-06-30 15:33:13.221Z",271,"9jkgoya0lc1xyon","2025-12-30 09:45:56.384Z","เจาะลึกการออกแบบ Load Balancer สำหรับ WebSocket ตั้งแต่หลักการ Sticky Session ไปจนถึงแนวทาง Scale ระบบจริงบน Kubernetes เพื่อป้องกันการหลุดของ connection และรองรับผู้ใช้จำนวนมากในระดับ Production","2026-06-07 06:43:23.353Z",{"alt":130,"cover_image_path":131,"created":132,"expand":133,"id":166,"published_at":167,"school_blog":162,"short_description":168,"title":130,"updated":169,"slug":163,"views":165},"EP.122 ขยายระบบ WebSocket ข้าม Region ด้วย Geo-distributed Scaling","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fknc34p98jnuu78s\u002Fcover_image_ep_wgq6o3mql5.iesforWebSocket.webp","2026-03-04 08:44:49.918Z",{"keywords":134,"locale":156,"school_blog":157},[135,140,141,146,151],{"collectionId":12,"collectionName":13,"created":136,"created_by":15,"id":137,"name":138,"updated":139,"updated_by":15},"2026-03-04 08:34:00.920Z","ecac9y661or1xka","WebSocket","2026-06-07 06:45:55.734Z",{"collectionId":12,"collectionName":13,"created":88,"created_by":15,"id":89,"name":90,"updated":91,"updated_by":15},{"collectionId":12,"collectionName":13,"created":142,"created_by":15,"id":143,"name":144,"updated":145,"updated_by":15},"2026-03-04 08:44:32.154Z","u0s66bjop3dljau","Horizontal Scaling","2026-06-07 06:46:34.757Z",{"collectionId":12,"collectionName":13,"created":147,"created_by":15,"id":148,"name":149,"updated":150,"updated_by":15},"2026-03-04 08:44:49.245Z","mmj7m8vbrznqxx6","Geo-Distributed","2026-06-07 06:46:39.431Z",{"collectionId":12,"collectionName":13,"created":152,"created_by":15,"id":153,"name":154,"updated":155,"updated_by":15},"2026-03-04 08:44:49.445Z","0ips6v3gj6yy1h7","ระบบเรียลไทม์","2026-06-07 06:46:39.574Z",{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":109,"collectionId":51,"collectionName":52,"created":53,"expand":158,"id":162,"slug":163,"updated":164,"views":165},{"category":159},{"blogIds":160,"collectionId":57,"collectionName":58,"created":113,"created_by":15,"id":109,"image":114,"image_alt":53,"image_path":115,"label":161,"name":117,"priority":118,"publish_at":119,"scheduled_at":53,"status":66,"updated":120,"updated_by":15},[],{"en":117,"th":117},"br3q5z8ln357s53","websocket-geo-scaling-strategies","2026-05-13 08:24:48.462Z",226,"knc34p98jnuu78s","2025-12-30 09:45:47.000Z","เรียนรู้แนวทางขยาย WebSocket Server แบบข้ามภูมิภาค เพื่อลด latency รองรับผู้ใช้ทั่วโลก และวางโครงสร้างให้พร้อมระดับ Enterprise","2026-06-07 06:43:23.504Z",{"alt":171,"cover_image_path":172,"created":173,"expand":174,"id":200,"published_at":201,"school_blog":196,"short_description":202,"title":171,"updated":203,"slug":197,"views":199},"EP.121 Deploy WebSocket Server บน Kubernetes ให้เสถียรและพร้อมใช้งานจริง","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F7zzc9diqnbfzpd5\u002Fcover_image_ep_itflh3jc0p.oductionSystems.webp","2026-03-04 08:44:50.865Z",{"keywords":175,"locale":190,"school_blog":191},[176,177,178,183,188,189],{"collectionId":12,"collectionName":13,"created":136,"created_by":15,"id":137,"name":138,"updated":139,"updated_by":15},{"collectionId":12,"collectionName":13,"created":93,"created_by":15,"id":94,"name":95,"updated":96,"updated_by":15},{"collectionId":12,"collectionName":13,"created":179,"created_by":15,"id":180,"name":181,"updated":182,"updated_by":15},"2026-03-04 08:44:18.923Z","jt1jqlzs29xu1i7","Deploy","2026-06-07 06:46:31.098Z",{"collectionId":12,"collectionName":13,"created":184,"created_by":15,"id":185,"name":186,"updated":187,"updated_by":15},"2026-03-04 08:44:47.385Z","li4cs2v3atd0wds","Production","2026-06-07 06:46:38.822Z",{"collectionId":12,"collectionName":13,"created":88,"created_by":15,"id":89,"name":90,"updated":91,"updated_by":15},{"collectionId":12,"collectionName":13,"created":103,"created_by":15,"id":104,"name":105,"updated":106,"updated_by":15},{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":109,"collectionId":51,"collectionName":52,"created":53,"expand":192,"id":196,"slug":197,"updated":198,"views":199},{"category":193},{"blogIds":194,"collectionId":57,"collectionName":58,"created":113,"created_by":15,"id":109,"image":114,"image_alt":53,"image_path":115,"label":195,"name":117,"priority":118,"publish_at":119,"scheduled_at":53,"status":66,"updated":120,"updated_by":15},[],{"en":117,"th":117},"jdvfu3khsdfw08k","deploy-websocket-server-kubernetes-production","2026-06-27 15:27:10.897Z",279,"7zzc9diqnbfzpd5","2025-12-29 10:10:07.916Z","เรียนรู้วิธี Deploy WebSocket Server ด้วย Kubernetes ตั้งแต่การสร้าง Docker Image, ตั้งค่า Load Balancer, ใช้ Sticky Session, Auto Scaling และจัดการ Graceful Shutdown ให้พร้อมใช้งานในระดับ Production จริง","2026-06-07 06:43:23.871Z",{"alt":205,"cover_image_path":206,"created":207,"expand":208,"id":232,"published_at":233,"school_blog":228,"short_description":234,"title":205,"updated":235,"slug":229,"views":231},"EP.120 Whiteboard & Real-time Drawing Synchronization ด้วย WebSocket","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fb3o64zx8imsejrd\u002Fcover_image_ep_siccboj32o.onwithWebSocket.webp","2026-03-04 08:44:52.925Z",{"keywords":209,"locale":222,"school_blog":223},[210,211,215,216,217],{"collectionId":12,"collectionName":13,"created":136,"created_by":15,"id":137,"name":138,"updated":139,"updated_by":15},{"collectionId":12,"collectionName":13,"created":212,"created_by":15,"id":213,"name":117,"updated":214,"updated_by":15},"2026-03-04 08:44:51.471Z","hlato0hav8vo8wm","2026-06-07 06:46:40.040Z",{"collectionId":12,"collectionName":13,"created":103,"created_by":15,"id":104,"name":105,"updated":106,"updated_by":15},{"collectionId":12,"collectionName":13,"created":88,"created_by":15,"id":89,"name":90,"updated":91,"updated_by":15},{"collectionId":12,"collectionName":13,"created":218,"created_by":15,"id":219,"name":220,"updated":221,"updated_by":15},"2026-03-04 08:44:51.688Z","ztv5f26qud778za","whiteboard","2026-06-07 06:46:40.164Z",{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":109,"collectionId":51,"collectionName":52,"created":53,"expand":224,"id":228,"slug":229,"updated":230,"views":231},{"category":225},{"blogIds":226,"collectionId":57,"collectionName":58,"created":113,"created_by":15,"id":109,"image":114,"image_alt":53,"image_path":115,"label":227,"name":117,"priority":118,"publish_at":119,"scheduled_at":53,"status":66,"updated":120,"updated_by":15},[],{"en":117,"th":117},"clsm7oxkvsptxhx","ep-120-realtime-whiteboard-drawing-websocket","2026-05-25 19:49:50.035Z",241,"b3o64zx8imsejrd","2025-12-29 04:41:19.809Z","ออกแบบระบบ Whiteboard ที่รองรับการวาดพร้อมกันหลายคนแบบเรียลไทม์ ด้วย Go และ WebSocket พร้อมแนวคิด undo\u002Fredo และ performance optimization","2026-06-07 06:43:24.279Z",{"alt":237,"cover_image_path":238,"created":239,"expand":240,"id":286,"published_at":287,"school_blog":282,"short_description":288,"title":237,"updated":289,"slug":283,"views":285},"JS2GO EP.49 Security สำหรับ Backend ด้วย Go และ Node.js","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fik5ueoh4be7ojlt\u002Fcover_image_js2_go_ep_49_backend_security_with_go_and_node_3l4haf828s.js.webp","2026-03-04 08:44:53.727Z",{"keywords":241,"locale":268,"school_blog":269},[242,247,252,257,262,267],{"collectionId":12,"collectionName":13,"created":243,"created_by":15,"id":244,"name":245,"updated":246,"updated_by":15},"2026-03-04 08:44:52.376Z","7kgkxt1b9xd0cca","Authorization","2026-06-07 06:46:40.298Z",{"collectionId":12,"collectionName":13,"created":248,"created_by":15,"id":249,"name":250,"updated":251,"updated_by":15},"2026-03-04 08:34:18.095Z","z3u3nql685g5e3b","Authentication","2026-06-07 06:46:03.611Z",{"collectionId":12,"collectionName":13,"created":253,"created_by":15,"id":254,"name":255,"updated":256,"updated_by":15},"2026-03-04 08:44:53.062Z","puutdnxuitnxxgq","Backend","2026-06-07 06:46:40.599Z",{"collectionId":12,"collectionName":13,"created":258,"created_by":15,"id":259,"name":260,"updated":261,"updated_by":15},"2026-03-04 08:44:52.790Z","tkf1l5rauw0t7m0","Secure API Design","2026-06-07 06:46:40.418Z",{"collectionId":12,"collectionName":13,"created":263,"created_by":15,"id":264,"name":265,"updated":266,"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":88,"created_by":15,"id":89,"name":90,"updated":91,"updated_by":15},{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":270,"collectionId":51,"collectionName":52,"created":53,"expand":271,"id":282,"slug":283,"updated":284,"views":285},"hsa1afr8fcnd6qb",{"category":272},{"blogIds":273,"collectionId":57,"collectionName":58,"created":274,"created_by":15,"id":270,"image":275,"image_alt":53,"image_path":276,"label":277,"name":278,"priority":279,"publish_at":280,"scheduled_at":53,"status":66,"updated":281,"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":278,"th":278},"JS2GO",10,"2025-08-11 03:41:08.820Z","2026-06-07 06:45:02.240Z","q6au12trb7ipmxx","js2go-ep49-backend-security-authentication-authorization-validation","2026-07-02 05:12:42.575Z",268,"ik5ueoh4be7ojlt","2025-12-24 10:19:35.052Z","สรุปพื้นฐาน Security ที่ระบบ Backend ต้องมี ตั้งแต่ Authentication Authorization และ Data Validation พร้อมแนวทางใช้งานจริงใน Go และ Node.js สำหรับระบบ Production","2026-06-07 06:43:24.586Z",{"alt":291,"cover_image_path":292,"created":293,"expand":294,"id":322,"published_at":323,"school_blog":319,"short_description":324,"title":291,"updated":325,"slug":320,"views":231},"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":295,"locale":313,"school_blog":314},[296,301,306,307,312],{"collectionId":12,"collectionName":13,"created":297,"created_by":15,"id":298,"name":299,"updated":300,"updated_by":15},"2026-03-04 08:44:53.651Z","tuo9u1ayxlr8xvm","Monitoring System","2026-06-07 06:46:40.799Z",{"collectionId":12,"collectionName":13,"created":302,"created_by":15,"id":303,"name":304,"updated":305,"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":263,"created_by":15,"id":264,"name":265,"updated":266,"updated_by":15},{"collectionId":12,"collectionName":13,"created":308,"created_by":15,"id":309,"name":310,"updated":311,"updated_by":15},"2026-03-04 08:20:42.484Z","vslzz9nvv6n77cx","JavaScript","2026-06-07 06:45:10.888Z",{"collectionId":12,"collectionName":13,"created":88,"created_by":15,"id":89,"name":90,"updated":91,"updated_by":15},{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":270,"collectionId":51,"collectionName":52,"created":53,"expand":315,"id":319,"slug":320,"updated":321,"views":231},{"category":316},{"blogIds":317,"collectionId":57,"collectionName":58,"created":274,"created_by":15,"id":270,"image":275,"image_alt":53,"image_path":276,"label":318,"name":278,"priority":279,"publish_at":280,"scheduled_at":53,"status":66,"updated":281,"updated_by":15},[],{"en":278,"th":278},"d8jrjoxb8k7la64","js2go-ep48-logging-monitoring-production-go-nodejs","2026-07-01 01:37:27.351Z","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":327,"cover_image_path":328,"created":329,"expand":330,"id":362,"published_at":363,"school_blog":358,"short_description":364,"title":327,"updated":365,"slug":359,"views":361},"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":331,"locale":352,"school_blog":353},[332,337,342,347],{"collectionId":12,"collectionName":13,"created":333,"created_by":15,"id":334,"name":335,"updated":336,"updated_by":15},"2026-03-04 08:35:12.499Z","9bexb3o9mxg9dei","Burnout","2026-06-07 06:46:27.454Z",{"collectionId":12,"collectionName":13,"created":338,"created_by":15,"id":339,"name":340,"updated":341,"updated_by":15},"2026-03-04 08:44:58.046Z","h2p9vyglxcuqfov","ชีวิตโปรแกรมเมอร์","2026-06-07 06:46:41.730Z",{"collectionId":12,"collectionName":13,"created":343,"created_by":15,"id":344,"name":345,"updated":346,"updated_by":15},"2026-03-04 08:44:58.280Z","hoxhv4dr3heikf6","โปรแกรมเมอร์หมดไฟ","2026-06-07 06:46:41.931Z",{"collectionId":12,"collectionName":13,"created":348,"created_by":15,"id":349,"name":350,"updated":351,"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":50,"collectionId":51,"collectionName":52,"created":53,"expand":354,"id":358,"slug":359,"updated":360,"views":361},{"category":355},{"blogIds":356,"collectionId":57,"collectionName":58,"created":59,"created_by":15,"id":50,"image":60,"image_alt":53,"image_path":61,"label":357,"name":63,"priority":64,"publish_at":65,"scheduled_at":53,"status":66,"updated":67,"updated_by":15},[],{"en":63,"th":63},"sy7kac0t03r9dox","work-life-balance-for-programmers","2026-06-27 15:11:33.631Z",242,"kwwrvw3iltat93v","2025-12-22 02:12:40.992Z","การทำงานสายโปรแกรมเมอร์เต็มไปด้วยความกดดัน เดดไลน์ และการเรียนรู้ไม่สิ้นสุด บทความนี้จะพาคุณเข้าใจ Work-Life Balance สำหรับ Programmer อย่างแท้จริง พร้อมแนวคิดและวิธีดูแลตัวเอง เพื่อทำงานได้ดีโดยไม่หมดไฟในระยะยาว","2026-06-07 06:43:25.935Z",{"alt":367,"cover_image_path":368,"created":369,"expand":370,"id":394,"published_at":395,"school_blog":390,"short_description":396,"title":367,"updated":397,"slug":391,"views":393},"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":371,"locale":384,"school_blog":385},[372,373,374,379],{"collectionId":12,"collectionName":13,"created":136,"created_by":15,"id":137,"name":138,"updated":139,"updated_by":15},{"collectionId":12,"collectionName":13,"created":88,"created_by":15,"id":89,"name":90,"updated":91,"updated_by":15},{"collectionId":12,"collectionName":13,"created":375,"created_by":15,"id":376,"name":377,"updated":378,"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":380,"created_by":15,"id":381,"name":382,"updated":383,"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":109,"collectionId":51,"collectionName":52,"created":53,"expand":386,"id":390,"slug":391,"updated":392,"views":393},{"category":387},{"blogIds":388,"collectionId":57,"collectionName":58,"created":113,"created_by":15,"id":109,"image":114,"image_alt":53,"image_path":115,"label":389,"name":117,"priority":118,"publish_at":119,"scheduled_at":53,"status":66,"updated":120,"updated_by":15},[],{"en":117,"th":117},"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":399,"cover_image_path":400,"created":401,"expand":402,"id":427,"published_at":428,"school_blog":423,"short_description":429,"title":399,"updated":430,"slug":424,"views":426},"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":403,"locale":417,"school_blog":418},[404,405,410,411,416],{"collectionId":12,"collectionName":13,"created":88,"created_by":15,"id":89,"name":90,"updated":91,"updated_by":15},{"collectionId":12,"collectionName":13,"created":406,"created_by":15,"id":407,"name":408,"updated":409,"updated_by":15},"2026-03-04 08:44:56.136Z","1ant8hjpcxuj8a2","IoT","2026-06-07 06:46:41.338Z",{"collectionId":12,"collectionName":13,"created":136,"created_by":15,"id":137,"name":138,"updated":139,"updated_by":15},{"collectionId":12,"collectionName":13,"created":412,"created_by":15,"id":413,"name":414,"updated":415,"updated_by":15},"2026-03-04 08:31:29.142Z","hrqdq7kjl5lzjmi","AI","2026-06-07 06:45:27.147Z",{"collectionId":12,"collectionName":13,"created":98,"created_by":15,"id":99,"name":100,"updated":101,"updated_by":15},{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":109,"collectionId":51,"collectionName":52,"created":53,"expand":419,"id":423,"slug":424,"updated":425,"views":426},{"category":420},{"blogIds":421,"collectionId":57,"collectionName":58,"created":113,"created_by":15,"id":109,"image":114,"image_alt":53,"image_path":115,"label":422,"name":117,"priority":118,"publish_at":119,"scheduled_at":53,"status":66,"updated":120,"updated_by":15},[],{"en":117,"th":117},"3wlgaoume77bwtm","golang-ep118-ai-websocket-iot-real-time","2026-06-26 00:15:15.437Z",255,"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":432,"cover_image_path":433,"created":434,"expand":435,"id":479,"published_at":480,"school_blog":475,"short_description":481,"title":432,"updated":482,"slug":476,"views":478},"ไขความลับ \"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":436,"locale":462,"school_blog":463},[437,442,447,452,457],{"collectionId":12,"collectionName":13,"created":438,"created_by":15,"id":439,"name":440,"updated":441,"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":443,"created_by":15,"id":444,"name":445,"updated":446,"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":448,"created_by":15,"id":449,"name":450,"updated":451,"updated_by":15},"2026-03-04 08:45:00.752Z","2c5b5bcrxk9qvpy","สร้างภาพด้วย AI","2026-06-07 06:46:42.777Z",{"collectionId":12,"collectionName":13,"created":453,"created_by":15,"id":454,"name":455,"updated":456,"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":458,"created_by":15,"id":459,"name":460,"updated":461,"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":464,"collectionId":51,"collectionName":52,"created":53,"expand":465,"id":475,"slug":476,"updated":477,"views":478},"pkuzfil3b4ug2ea",{"category":466},{"blogIds":467,"collectionId":57,"collectionName":58,"created":468,"created_by":15,"id":464,"image":469,"image_alt":53,"image_path":470,"label":471,"name":472,"priority":64,"publish_at":473,"scheduled_at":53,"status":66,"updated":474,"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":472,"th":472},"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-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":484,"cover_image_path":485,"created":486,"expand":487,"id":511,"published_at":512,"school_blog":507,"short_description":513,"title":484,"updated":514,"slug":508,"views":510},"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":488,"locale":501,"school_blog":502},[489,494,499,500],{"collectionId":12,"collectionName":13,"created":490,"created_by":15,"id":491,"name":492,"updated":493,"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":495,"created_by":15,"id":496,"name":497,"updated":498,"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":263,"created_by":15,"id":264,"name":265,"updated":266,"updated_by":15},{"collectionId":12,"collectionName":13,"created":88,"created_by":15,"id":89,"name":90,"updated":91,"updated_by":15},{"code":40,"collectionId":41,"collectionName":42,"created":43,"flag":44,"id":45,"is_default":46,"label":47,"updated":48},{"category":270,"collectionId":51,"collectionName":52,"created":53,"expand":503,"id":507,"slug":508,"updated":509,"views":510},{"category":504},{"blogIds":505,"collectionId":57,"collectionName":58,"created":274,"created_by":15,"id":270,"image":275,"image_alt":53,"image_path":276,"label":506,"name":278,"priority":279,"publish_at":280,"scheduled_at":53,"status":66,"updated":281,"updated_by":15},[],{"en":278,"th":278},"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",8,12,438,37]