[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"academy-blogs-en-7-12-superdev%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252520academy-all-all-createdAt:desc-default":3},{"data":4,"page":512,"perPage":513,"totalItems":514,"totalPages":515},[5,71,124,161,192,246,293,332,369,402,449,481],{"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},"Git for Beginners: Visual Guide to Add, Commit, and Push (No Memorizing Needed)","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fznbpmjusku9bqjn\u002Finfographic_showing_git_workflow_93apmqhvpj.webp","2026-03-04 08:44:46.224Z",{"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: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:35.619Z","9z8e1xfjt07e7n9","Git Workflow","2026-06-07 06:46:35.800Z",{"collectionId":12,"collectionName":13,"created":25,"created_by":15,"id":26,"name":27,"updated":28,"updated_by":15},"2026-03-04 08:44:44.589Z","0rhtp9q4g9epxjv","Git tutorial","2026-06-07 06:46:38.052Z",{"collectionId":12,"collectionName":13,"created":30,"created_by":15,"id":31,"name":32,"updated":33,"updated_by":15},"2026-03-04 08:44:44.958Z","hl4mu6quhfjhdlw","Git for beginners","2026-06-07 06:46:38.201Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},"en","pbc_1989393366","locales","2026-01-22 11:00:02.726Z","twemoji:flag-united-states","qv9c1llfov2d88z",false,"English","2026-04-10 15:42:46.825Z",{"category":45,"collectionId":46,"collectionName":47,"created":48,"expand":49,"id":63,"slug":64,"updated":65,"views":66},"spm4l1k5bgmhmmt","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:31:18.590Z","50hyjr6os45_ayazwr5gq7.png","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclcatblg987654321\u002Fspm4l1k5bgmhmmt\u002F50hyjr6os45_ayazwr5gq7.png",{"en":58,"th":58},"Knowledge",0,"2026-03-18 02:25:41.222Z","published","2026-06-07 06:45:02.533Z","g4okogcok21khr0","git-beginner-add-commit-push-visual","2026-06-12 18:56:42.153Z",222,"znbpmjusku9bqjn","2025-12-30 10:31:34.048Z","Stop naming files \"Project_Final\"! Master Git basics through a visual mental model. Learn how Add, Commit, and Push work in the professional software development workflow.","2026-06-07 06:43:22.289Z",{"alt":72,"cover_image_path":73,"created":74,"expand":75,"id":120,"published_at":121,"school_blog":116,"short_description":122,"title":72,"updated":123,"slug":117,"views":119},"EP.123 Load Balancing & Sticky Sessions for WebSocket (Production-Ready Guide)","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fek7zzajyalhrlh3\u002Fcover_image_ep_2pqo0kl48b.tion-ReadyGuide.webp","2026-03-04 08:44:49.230Z",{"keywords":76,"locale":102,"school_blog":103},[77,82,87,92,97],{"collectionId":12,"collectionName":13,"created":78,"created_by":15,"id":79,"name":80,"updated":81,"updated_by":15},"2026-03-04 08:20:11.547Z","ey3puyme01a9bsw","Go","2026-06-07 06:45:07.798Z",{"collectionId":12,"collectionName":13,"created":83,"created_by":15,"id":84,"name":85,"updated":86,"updated_by":15},"2026-03-04 08:20:14.253Z","ah6lvy4x8qe08l5","Golang","2026-06-07 06:45:08.193Z",{"collectionId":12,"collectionName":13,"created":88,"created_by":15,"id":89,"name":90,"updated":91,"updated_by":15},"2026-03-04 08:44:47.893Z","1r53azecnj44o3t","Real-time","2026-06-07 06:46:38.989Z",{"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:34:00.920Z","ecac9y661or1xka","WebSocket","2026-06-07 06:45:55.734Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":104,"collectionId":46,"collectionName":47,"created":48,"expand":105,"id":116,"slug":117,"updated":118,"views":119},"wqxt7ag2gn7xcmk",{"category":106},{"blogIds":107,"collectionId":52,"collectionName":53,"created":108,"created_by":15,"id":104,"image":109,"image_alt":48,"image_path":110,"label":111,"name":112,"priority":113,"publish_at":114,"scheduled_at":48,"status":61,"updated":115,"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":112,"th":112},"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-05-27 08:01:51.970Z",270,"ek7zzajyalhrlh3","2025-12-30 09:45:58.631Z","A practical guide to designing WebSocket load balancing with sticky sessions, covering real-world scaling strategies on Kubernetes to prevent dropped connections and ensure production-grade reliability.","2026-06-07 06:43:23.185Z",{"alt":125,"cover_image_path":126,"created":127,"expand":128,"id":157,"published_at":158,"school_blog":153,"short_description":159,"title":125,"updated":160,"slug":154,"views":156},"EP.122 Horizontal & Geo‑distributed Scaling Strategies for WebSocket","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Frbp4h275asugxet\u002Fcover_image_ep_xg7ebflqf4.iesforWebSocket.webp","2026-03-04 08:44:50.633Z",{"keywords":129,"locale":147,"school_blog":148},[130,131,136,141,146],{"collectionId":12,"collectionName":13,"created":78,"created_by":15,"id":79,"name":80,"updated":81,"updated_by":15},{"collectionId":12,"collectionName":13,"created":132,"created_by":15,"id":133,"name":134,"updated":135,"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":137,"created_by":15,"id":138,"name":139,"updated":140,"updated_by":15},"2026-03-04 08:44:49.944Z","5sx3ab5gv2n24mh","Geo Distributed Architecture","2026-06-07 06:46:39.804Z",{"collectionId":12,"collectionName":13,"created":142,"created_by":15,"id":143,"name":144,"updated":145,"updated_by":15},"2026-03-04 08:44:50.258Z","nrtw5001po78dez","WebSocket Scaling","2026-06-07 06:46:39.944Z",{"collectionId":12,"collectionName":13,"created":98,"created_by":15,"id":99,"name":100,"updated":101,"updated_by":15},{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":104,"collectionId":46,"collectionName":47,"created":48,"expand":149,"id":153,"slug":154,"updated":155,"views":156},{"category":150},{"blogIds":151,"collectionId":52,"collectionName":53,"created":108,"created_by":15,"id":104,"image":109,"image_alt":48,"image_path":110,"label":152,"name":112,"priority":113,"publish_at":114,"scheduled_at":48,"status":61,"updated":115,"updated_by":15},[],{"en":112,"th":112},"xrv5n3fjd3aocjj","ep122-horizontal-geo-distributed-websocket-scaling","2026-06-10 14:08:39.520Z",203,"rbp4h275asugxet","2025-12-30 09:45:49.195Z","Learn how to design a geo‑distributed WebSocket system that reduces global latency and supports cross‑region real‑time communication.","2026-06-07 06:43:23.686Z",{"alt":162,"cover_image_path":163,"created":164,"expand":165,"id":188,"published_at":189,"school_blog":185,"short_description":190,"title":162,"updated":191,"slug":186,"views":187},"EP.120 Whiteboard & Real-time Drawing Synchronization with WebSocket","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fahq5ev6lnmk68vh\u002Fcover_image_ep_tlqmwo22d8.onwithWebSocket.webp","2026-03-04 08:44:52.189Z",{"keywords":166,"locale":179,"school_blog":180},[167,171,172,173,174],{"collectionId":12,"collectionName":13,"created":168,"created_by":15,"id":169,"name":112,"updated":170,"updated_by":15},"2026-03-04 08:44:51.471Z","hlato0hav8vo8wm","2026-06-07 06:46:40.040Z",{"collectionId":12,"collectionName":13,"created":98,"created_by":15,"id":99,"name":100,"updated":101,"updated_by":15},{"collectionId":12,"collectionName":13,"created":83,"created_by":15,"id":84,"name":85,"updated":86,"updated_by":15},{"collectionId":12,"collectionName":13,"created":78,"created_by":15,"id":79,"name":80,"updated":81,"updated_by":15},{"collectionId":12,"collectionName":13,"created":175,"created_by":15,"id":176,"name":177,"updated":178,"updated_by":15},"2026-03-04 08:44:51.688Z","ztv5f26qud778za","whiteboard","2026-06-07 06:46:40.164Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":104,"collectionId":46,"collectionName":47,"created":48,"expand":181,"id":185,"slug":186,"updated":48,"views":187},{"category":182},{"blogIds":183,"collectionId":52,"collectionName":53,"created":108,"created_by":15,"id":104,"image":109,"image_alt":48,"image_path":110,"label":184,"name":112,"priority":113,"publish_at":114,"scheduled_at":48,"status":61,"updated":115,"updated_by":15},[],{"en":112,"th":112},"1h3hjyb5awyprlq","ep-120-whiteboard-realtime-drawing-websocket",217,"ahq5ev6lnmk68vh","2025-12-29 04:41:05.049Z","Learn how to build a real-time whiteboard system that supports multi-user drawing, cursor sync, and undo\u002Fredo using Go and WebSocket","2026-06-07 06:43:24.097Z",{"alt":193,"cover_image_path":194,"created":195,"expand":196,"id":242,"published_at":243,"school_blog":238,"short_description":244,"title":193,"updated":245,"slug":239,"views":241},"JS2GO EP.49 Backend Security with Go and Node.js","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fje5avechsgnsfjr\u002Fcover_js2_go_ep_49_backend_security_with_go_and_node_a53bkt8g8u.js.webp","2026-03-04 08:44:53.258Z",{"keywords":197,"locale":224,"school_blog":225},[198,203,208,213,218,223],{"collectionId":12,"collectionName":13,"created":199,"created_by":15,"id":200,"name":201,"updated":202,"updated_by":15},"2026-03-04 08:34:18.714Z","7cb29z95923lmhe","authentication","2026-06-07 06:46:03.846Z",{"collectionId":12,"collectionName":13,"created":204,"created_by":15,"id":205,"name":206,"updated":207,"updated_by":15},"2026-03-04 08:44:52.376Z","7kgkxt1b9xd0cca","Authorization","2026-06-07 06:46:40.298Z",{"collectionId":12,"collectionName":13,"created":209,"created_by":15,"id":210,"name":211,"updated":212,"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":214,"created_by":15,"id":215,"name":216,"updated":217,"updated_by":15},"2026-03-04 08:44:53.062Z","puutdnxuitnxxgq","Backend","2026-06-07 06:46:40.599Z",{"collectionId":12,"collectionName":13,"created":219,"created_by":15,"id":220,"name":221,"updated":222,"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":78,"created_by":15,"id":79,"name":80,"updated":81,"updated_by":15},{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":226,"collectionId":46,"collectionName":47,"created":48,"expand":227,"id":238,"slug":239,"updated":240,"views":241},"hsa1afr8fcnd6qb",{"category":228},{"blogIds":229,"collectionId":52,"collectionName":53,"created":230,"created_by":15,"id":226,"image":231,"image_alt":48,"image_path":232,"label":233,"name":234,"priority":235,"publish_at":236,"scheduled_at":48,"status":61,"updated":237,"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":234,"th":234},"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-06-12 19:43:51.972Z",261,"je5avechsgnsfjr","2025-12-24 10:19:37.092Z","A practical guide to backend security covering authentication authorization and data validation with real production examples in Go and Node.js.","2026-06-07 06:43:24.431Z",{"alt":247,"cover_image_path":248,"created":249,"expand":250,"id":289,"published_at":290,"school_blog":285,"short_description":291,"title":247,"updated":292,"slug":286,"views":288},"JS2GO EP.48 Logging & Monitoring for Production (Go & Node.js)","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fjim444bkspf39pv\u002Fcover_image_js2_go_ep_48_logging_monitoring_for_production_go_node_3wt2yddnc6.js.webp","2026-03-04 08:44:55.136Z",{"keywords":251,"locale":279,"school_blog":280},[252,257,262,267,272,273,278],{"collectionId":12,"collectionName":13,"created":253,"created_by":15,"id":254,"name":255,"updated":256,"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":258,"created_by":15,"id":259,"name":260,"updated":261,"updated_by":15},"2026-03-04 08:44:34.571Z","fiybaq65m7oymtd","Monitoring","2026-06-07 06:46:35.275Z",{"collectionId":12,"collectionName":13,"created":263,"created_by":15,"id":264,"name":265,"updated":266,"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":268,"created_by":15,"id":269,"name":270,"updated":271,"updated_by":15},"2026-03-04 08:33:55.302Z","0mue4zt83jcdtq9","Logging","2026-06-07 06:45:53.507Z",{"collectionId":12,"collectionName":13,"created":219,"created_by":15,"id":220,"name":221,"updated":222,"updated_by":15},{"collectionId":12,"collectionName":13,"created":274,"created_by":15,"id":275,"name":276,"updated":277,"updated_by":15},"2026-03-04 08:20:42.484Z","vslzz9nvv6n77cx","JavaScript","2026-06-07 06:45:10.888Z",{"collectionId":12,"collectionName":13,"created":78,"created_by":15,"id":79,"name":80,"updated":81,"updated_by":15},{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":226,"collectionId":46,"collectionName":47,"created":48,"expand":281,"id":285,"slug":286,"updated":287,"views":288},{"category":282},{"blogIds":283,"collectionId":52,"collectionName":53,"created":230,"created_by":15,"id":226,"image":231,"image_alt":48,"image_path":232,"label":284,"name":234,"priority":235,"publish_at":236,"scheduled_at":48,"status":61,"updated":237,"updated_by":15},[],{"en":234,"th":234},"d8jrjoxb8k7la64","js2go-ep48-logging-monitoring-production-go-nodejs","2026-06-07 21:12:47.917Z",238,"jim444bkspf39pv","2025-12-23 04:57:41.053Z","Move from basic logging to full system observability. Learn structured logging, correlation IDs, metrics, distributed tracing, and error monitoring to build production-ready Go and Node.js systems.","2026-06-07 06:43:24.955Z",{"alt":294,"cover_image_path":295,"created":296,"expand":297,"id":328,"published_at":329,"school_blog":325,"short_description":330,"title":294,"updated":331,"slug":326,"views":288},"Work-Life Balance for Programmers: How to Avoid Burnout in the Tech Industry","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fcz95hm8rkof4th4\u002Fwork_life_balance_for_programmers_how_to_avoid_burnout_in_the_tech_industry_e8j2y888zl.webp","2026-03-04 08:44:58.316Z",{"keywords":298,"locale":319,"school_blog":320},[299,304,309,314],{"collectionId":12,"collectionName":13,"created":300,"created_by":15,"id":301,"name":302,"updated":303,"updated_by":15},"2026-03-04 08:44:57.070Z","5g80f54k2d56ht8","Programmer Burnout","2026-06-07 06:46:41.444Z",{"collectionId":12,"collectionName":13,"created":305,"created_by":15,"id":306,"name":307,"updated":308,"updated_by":15},"2026-03-04 08:44:57.484Z","kfa3z2tnhtzzhvo","Work-Life Balance for Programmers","2026-06-07 06:46:41.541Z",{"collectionId":12,"collectionName":13,"created":310,"created_by":15,"id":311,"name":312,"updated":313,"updated_by":15},"2026-03-04 08:44:57.697Z","rw5wz1cf9aox58p","Work-Life Balance","2026-06-07 06:46:41.636Z",{"collectionId":12,"collectionName":13,"created":315,"created_by":15,"id":316,"name":317,"updated":318,"updated_by":15},"2026-03-04 08:35:12.499Z","9bexb3o9mxg9dei","Burnout","2026-06-07 06:46:27.454Z",{"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":321,"id":325,"slug":326,"updated":327,"views":288},{"category":322},{"blogIds":323,"collectionId":52,"collectionName":53,"created":54,"created_by":15,"id":45,"image":55,"image_alt":48,"image_path":56,"label":324,"name":58,"priority":59,"publish_at":60,"scheduled_at":48,"status":61,"updated":62,"updated_by":15},[],{"en":58,"th":58},"sy7kac0t03r9dox","work-life-balance-for-programmers","2026-06-10 11:01:27.769Z","cz95hm8rkof4th4","2025-12-22 02:12:43.379Z","Programming is a high-pressure career filled with deadlines and constant learning. This article explores work-life balance for programmers, practical mindset shifts, and sustainable habits to help developers stay productive without burning out.","2026-06-07 06:43:25.802Z",{"alt":333,"cover_image_path":334,"created":335,"expand":336,"id":365,"published_at":366,"school_blog":361,"short_description":367,"title":333,"updated":368,"slug":362,"views":364},"EP.119 Build Real-time Document Editing System Like Google Docs Using WebSocket and Go","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fi06pxwfxjgbsk10\u002Fcover_image_ep_iax677t9cg.gWebSocketandGo.webp","2026-03-04 08:44:55.170Z",{"keywords":337,"locale":355,"school_blog":356},[338,343,348,349,350],{"collectionId":12,"collectionName":13,"created":339,"created_by":15,"id":340,"name":341,"updated":342,"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":344,"created_by":15,"id":345,"name":346,"updated":347,"updated_by":15},"2026-03-04 08:44:54.550Z","dhhilrqrpmtr3x7","Google Docs","2026-06-07 06:46:41.069Z",{"collectionId":12,"collectionName":13,"created":78,"created_by":15,"id":79,"name":80,"updated":81,"updated_by":15},{"collectionId":12,"collectionName":13,"created":98,"created_by":15,"id":99,"name":100,"updated":101,"updated_by":15},{"collectionId":12,"collectionName":13,"created":351,"created_by":15,"id":352,"name":353,"updated":354,"updated_by":15},"2026-03-04 08:44:54.877Z","ype7kkszqa7py9n","Real-time Document","2026-06-07 06:46:41.155Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":104,"collectionId":46,"collectionName":47,"created":48,"expand":357,"id":361,"slug":362,"updated":363,"views":364},{"category":358},{"blogIds":359,"collectionId":52,"collectionName":53,"created":108,"created_by":15,"id":104,"image":109,"image_alt":48,"image_path":110,"label":360,"name":112,"priority":113,"publish_at":114,"scheduled_at":48,"status":61,"updated":115,"updated_by":15},[],{"en":112,"th":112},"nez2cwex9p6we4q","realtime-document-editing-with-go-websocket","2026-05-26 19:25:14.652Z",243,"i06pxwfxjgbsk10","2025-12-22 02:12:37.647Z","Learn how to build a collaborative real-time document editing system with Go and WebSocket, featuring conflict resolution and version control","2026-06-07 06:43:25.088Z",{"alt":370,"cover_image_path":371,"created":372,"expand":373,"id":398,"published_at":399,"school_blog":394,"short_description":400,"title":370,"updated":401,"slug":395,"views":397},"EP.118 Building Real-time AI + WebSocket System for IoT Devices","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Ftmpxi6w64ybdlt3\u002Fcover_image_ep_ljoqeir96z.emforIoTDevices.webp","2026-03-04 08:44:56.620Z",{"keywords":374,"locale":388,"school_blog":389},[375,376,381,386,387],{"collectionId":12,"collectionName":13,"created":339,"created_by":15,"id":340,"name":341,"updated":342,"updated_by":15},{"collectionId":12,"collectionName":13,"created":377,"created_by":15,"id":378,"name":379,"updated":380,"updated_by":15},"2026-03-04 08:31:29.142Z","hrqdq7kjl5lzjmi","AI","2026-06-07 06:45:27.147Z",{"collectionId":12,"collectionName":13,"created":382,"created_by":15,"id":383,"name":384,"updated":385,"updated_by":15},"2026-03-04 08:44:56.136Z","1ant8hjpcxuj8a2","IoT","2026-06-07 06:46:41.338Z",{"collectionId":12,"collectionName":13,"created":78,"created_by":15,"id":79,"name":80,"updated":81,"updated_by":15},{"collectionId":12,"collectionName":13,"created":98,"created_by":15,"id":99,"name":100,"updated":101,"updated_by":15},{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":104,"collectionId":46,"collectionName":47,"created":48,"expand":390,"id":394,"slug":395,"updated":396,"views":397},{"category":391},{"blogIds":392,"collectionId":52,"collectionName":53,"created":108,"created_by":15,"id":104,"image":109,"image_alt":48,"image_path":110,"label":393,"name":112,"priority":113,"publish_at":114,"scheduled_at":48,"status":61,"updated":115,"updated_by":15},[],{"en":112,"th":112},"3wlgaoume77bwtm","golang-ep118-ai-websocket-iot-real-time","2026-06-01 18:25:26.840Z",253,"tmpxi6w64ybdlt3","2025-12-22 02:12:32.820Z","Learn how to build a real-time AI-powered IoT system using Go and WebSocket for anomaly detection and predictive maintenance, designed for production-ready environments.","2026-06-07 06:43:25.454Z",{"alt":403,"cover_image_path":404,"created":405,"expand":406,"id":445,"published_at":446,"school_blog":441,"short_description":447,"title":403,"updated":448,"slug":442,"views":444},"Unveiling \"Nano Banana\": How Google's Secret AI Model Dominated the Leaderboard","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fujrpqaxotr44fvx\u002Fimage_digital_glowing_banana_graphic_representing_nano_banana_the_codename_for_google_s_new_gemini_i_s3l9z0lqxx.webp","2026-03-04 08:45:01.815Z",{"keywords":407,"locale":428,"school_blog":429},[408,413,418,423],{"collectionId":12,"collectionName":13,"created":409,"created_by":15,"id":410,"name":411,"updated":412,"updated_by":15},"2026-03-04 08:44:58.971Z","f63kzgztnhq2zg5","AI Image Generator","2026-06-07 06:46:42.057Z",{"collectionId":12,"collectionName":13,"created":414,"created_by":15,"id":415,"name":416,"updated":417,"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":419,"created_by":15,"id":420,"name":421,"updated":422,"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":424,"created_by":15,"id":425,"name":426,"updated":427,"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":430,"collectionId":46,"collectionName":47,"created":48,"expand":431,"id":441,"slug":442,"updated":443,"views":444},"pkuzfil3b4ug2ea",{"category":432},{"blogIds":433,"collectionId":52,"collectionName":53,"created":434,"created_by":15,"id":430,"image":435,"image_alt":48,"image_path":436,"label":437,"name":438,"priority":59,"publish_at":439,"scheduled_at":48,"status":61,"updated":440,"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":438,"th":438},"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-07 18:40:55.715Z",275,"ujrpqaxotr44fvx","2025-12-17 11:47:07.553Z","Discover the truth behind \"Nano Banana,\" the secret codename for Google's Gemini image model that topped the LMSYS leaderboard. Learn how it beats competitors with superior text rendering and prompt adherence.","2026-06-07 06:43:26.189Z",{"alt":450,"cover_image_path":451,"created":452,"expand":453,"id":477,"published_at":478,"school_blog":473,"short_description":479,"title":450,"updated":480,"slug":474,"views":476},"JS2GO EP.47 Dependency Injection in Go and Node.js: Why Large Systems Need DI","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fg72uu715esxebkw\u002Fcover_image_js2_go_ep_47_dependency_injection_in_go_and_node_iuyyactaxs.geSystemsNeedDI.webp","2026-03-04 08:45:02.477Z",{"keywords":454,"locale":467,"school_blog":468},[455,460,461,462],{"collectionId":12,"collectionName":13,"created":456,"created_by":15,"id":457,"name":458,"updated":459,"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":219,"created_by":15,"id":220,"name":221,"updated":222,"updated_by":15},{"collectionId":12,"collectionName":13,"created":78,"created_by":15,"id":79,"name":80,"updated":81,"updated_by":15},{"collectionId":12,"collectionName":13,"created":463,"created_by":15,"id":464,"name":465,"updated":466,"updated_by":15},"2026-03-04 08:45:01.460Z","bbwe2jz83qa1d1j","Dependency Injection","2026-06-07 06:46:43.035Z",{"code":35,"collectionId":36,"collectionName":37,"created":38,"flag":39,"id":40,"is_default":41,"label":42,"updated":43},{"category":226,"collectionId":46,"collectionName":47,"created":48,"expand":469,"id":473,"slug":474,"updated":475,"views":476},{"category":470},{"blogIds":471,"collectionId":52,"collectionName":53,"created":230,"created_by":15,"id":226,"image":231,"image_alt":48,"image_path":232,"label":472,"name":234,"priority":235,"publish_at":236,"scheduled_at":48,"status":61,"updated":237,"updated_by":15},[],{"en":234,"th":234},"qo0d0sbi306ytfv","js2go-ep47-dependency-injection-go-nodejs-en","2026-06-12 16:26:23.645Z",210,"g72uu715esxebkw","2025-12-17 02:26:07.719Z","Dependency Injection (DI) makes systems more testable, maintainable, and scalable. This article explains DI concepts, constructor-based injection in Go, DI containers in Node.js, mock-based testing, and how DI enables clean system architecture suitable.","2026-06-07 06:43:26.513Z",{"alt":482,"cover_image_path":483,"created":484,"expand":485,"id":508,"published_at":509,"school_blog":505,"short_description":510,"title":482,"updated":511,"slug":506,"views":476},"JS2GO EP.46 Building Middleware and Modular Architecture in Go and Node.js","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fch8d3odsl34310z\u002Fcover_image_js2_go_building_middleware_and_modular_architecture_in_go_and_node_s8zxa4c1l8.js.webp","2026-03-04 08:45:04.090Z",{"keywords":486,"locale":499,"school_blog":500},[487,488,493,494],{"collectionId":12,"collectionName":13,"created":219,"created_by":15,"id":220,"name":221,"updated":222,"updated_by":15},{"collectionId":12,"collectionName":13,"created":489,"created_by":15,"id":490,"name":491,"updated":492,"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":78,"created_by":15,"id":79,"name":80,"updated":81,"updated_by":15},{"collectionId":12,"collectionName":13,"created":495,"created_by":15,"id":496,"name":497,"updated":498,"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":226,"collectionId":46,"collectionName":47,"created":48,"expand":501,"id":505,"slug":506,"updated":507,"views":476},{"category":502},{"blogIds":503,"collectionId":52,"collectionName":53,"created":230,"created_by":15,"id":226,"image":231,"image_alt":48,"image_path":232,"label":504,"name":234,"priority":235,"publish_at":236,"scheduled_at":48,"status":61,"updated":237,"updated_by":15},[],{"en":234,"th":234},"ka7u3ttruvadnf0","js2go-ep46-middleware-modular-architecture-go-nodejs-en","2026-05-25 09:50:37.248Z","ch8d3odsl34310z","2025-12-17 02:25:18.881Z","Learn how to build essential Middleware (Auth, Logging, Rate Limit) and design a clean, scalable Modular Architecture in Go and Node.js. Includes real-world examples using Fiber and Express, plus Production Best Practices.","2026-06-07 06:43:26.859Z",7,12,425,36]